c_src: update
authorJean Privat <jean@pryen.org>
Tue, 17 Apr 2012 14:12:16 +0000 (10:12 -0400)
committerJean Privat <jean@pryen.org>
Tue, 17 Apr 2012 15:13:55 +0000 (11:13 -0400)
164 files changed:
c_src/abstracttool._sep.c
c_src/analysis._sep.c
c_src/analysis._sep.h
c_src/analysis___allocate_iregister_slots._sep.c
c_src/analysis___cha_analysis._sep.h [deleted file]
c_src/analysis___dead_method_removal._sep.h [deleted file]
c_src/analysis___icode_dump._sep.c
c_src/analysis___inline_get_and_set._sep.h [deleted file]
c_src/analysis___inline_methods._sep.c
c_src/analysis___instantiated_type_analysis._sep.h [deleted file]
c_src/analysis___reachable_as_init._sep.h [deleted file]
c_src/analysis___reachable_as_init_impl._sep.c [deleted file]
c_src/analysis___reachable_as_init_impl._sep.h [deleted file]
c_src/analysis___reachable_from_init_method_analysis._sep.h [deleted file]
c_src/analysis___reachable_from_init_method_analysis_impl._sep.h [deleted file]
c_src/analysis___reachable_method_analysis._sep.h [deleted file]
c_src/analysis___remove_out_of_init_get_test._sep.h [deleted file]
c_src/analysis___rta_analysis._sep.h [deleted file]
c_src/clib/gc.c
c_src/clib/nit_common.h
c_src/compiling._sep.c
c_src/compiling___compiling_base._sep.c
c_src/compiling___compiling_base._sep.h
c_src/compiling___compiling_global._sep.c
c_src/compiling___compiling_global._sep.h
c_src/compiling___compiling_icode._sep.c
c_src/compiling___compiling_writer._sep.c
c_src/compiling___icode_generator._sep.c
c_src/compiling___table_computation._sep.c
c_src/compiling___table_computation._sep.h
c_src/file._nitni.c
c_src/file._nitni.h
c_src/file_nit.c
c_src/file_nit.h
c_src/global._sep.c [new file with mode: 0644]
c_src/global._sep.h [new file with mode: 0644]
c_src/global___cha_analysis._sep.c [moved from c_src/analysis___cha_analysis._sep.c with 60% similarity]
c_src/global___cha_analysis._sep.h [new file with mode: 0644]
c_src/global___dead_method_removal._sep.c [moved from c_src/analysis___dead_method_removal._sep.c with 69% similarity]
c_src/global___dead_method_removal._sep.h [new file with mode: 0644]
c_src/global___inline_get_and_set._sep.c [moved from c_src/analysis___inline_get_and_set._sep.c with 67% similarity]
c_src/global___inline_get_and_set._sep.h [new file with mode: 0644]
c_src/global___instantiated_type_analysis._sep.c [moved from c_src/analysis___instantiated_type_analysis._sep.c with 69% similarity]
c_src/global___instantiated_type_analysis._sep.h [new file with mode: 0644]
c_src/global___reachable_as_init._sep.c [moved from c_src/analysis___reachable_as_init._sep.c with 66% similarity]
c_src/global___reachable_as_init._sep.h [new file with mode: 0644]
c_src/global___reachable_as_init_impl._sep.c [new file with mode: 0644]
c_src/global___reachable_as_init_impl._sep.h [new file with mode: 0644]
c_src/global___reachable_from_init_method_analysis._sep.c [moved from c_src/analysis___reachable_from_init_method_analysis._sep.c with 64% similarity]
c_src/global___reachable_from_init_method_analysis._sep.h [new file with mode: 0644]
c_src/global___reachable_from_init_method_analysis_impl._sep.c [moved from c_src/analysis___reachable_from_init_method_analysis_impl._sep.c with 54% similarity]
c_src/global___reachable_from_init_method_analysis_impl._sep.h [new file with mode: 0644]
c_src/global___reachable_method_analysis._sep.c [moved from c_src/analysis___reachable_method_analysis._sep.c with 70% similarity]
c_src/global___reachable_method_analysis._sep.h [new file with mode: 0644]
c_src/global___remove_out_of_init_get_test._sep.c [moved from c_src/analysis___remove_out_of_init_get_test._sep.c with 61% similarity]
c_src/global___remove_out_of_init_get_test._sep.h [new file with mode: 0644]
c_src/global___rta_analysis._sep.c [moved from c_src/analysis___rta_analysis._sep.c with 63% similarity]
c_src/global___rta_analysis._sep.h [new file with mode: 0644]
c_src/icode___icode_base._sep.c
c_src/icode___icode_builder._sep.c
c_src/icode___icode_tools._sep.c
c_src/location._sep.c
c_src/location._sep.h
c_src/metamodel___abstractmetamodel._sep.c
c_src/metamodel___genericity._sep.c
c_src/metamodel___inheritance._sep.c
c_src/metamodel___partial_order._sep.c
c_src/metamodel___static_type._sep.c
c_src/metamodel___type_formal._sep.c
c_src/metamodel___vararg._sep.c
c_src/metamodel___virtualtype._sep.c
c_src/mmloader._sep.c
c_src/mmloader._sep.h
c_src/native_interface._sep.c
c_src/native_interface___frontier._sep.c
c_src/native_interface___frontier._sep.h
c_src/native_interface___ni_metamodel._sep.c
c_src/native_interface___ni_tools._sep.c
c_src/nit_version._sep.c
c_src/nitc._build.sh
c_src/nitc._sep.c
c_src/nitc._sep.h
c_src/nitc._tables.c
c_src/opts._sep.c
c_src/opts._sep.h
c_src/parser._sep.c
c_src/parser._sep.h
c_src/parser___lexer._sep.c
c_src/parser___lexer._sep.h
c_src/parser___parser_nodes._sep.c
c_src/parser___parser_nodes._sep.h
c_src/parser___parser_prod._sep.c
c_src/parser___parser_prod._sep.h
c_src/parser___tables._sep.c
c_src/primitive_info._sep.c
c_src/program._sep.c
c_src/program._sep.h
c_src/separate_options._sep.c
c_src/separate_options._sep.h
c_src/standard._sep.h
c_src/standard___collection._sep.h
c_src/standard___collection___abstract_collection._sep.c
c_src/standard___collection___abstract_collection._sep.h
c_src/standard___collection___array._sep.c
c_src/standard___collection___array._sep.h
c_src/standard___collection___hash_collection._sep.c
c_src/standard___collection___hash_collection._sep.h
c_src/standard___collection___list._sep.c
c_src/standard___collection___list._sep.h
c_src/standard___collection___range._sep.c
c_src/standard___collection___range._sep.h
c_src/standard___collection___sorter._sep.c
c_src/standard___collection___sorter._sep.h
c_src/standard___environ._sep.c
c_src/standard___environ._sep.h
c_src/standard___exec._sep.c
c_src/standard___exec._sep.h
c_src/standard___file._sep.c
c_src/standard___file._sep.h
c_src/standard___gc._sep.c
c_src/standard___gc._sep.h
c_src/standard___hash._sep.c
c_src/standard___hash._sep.h
c_src/standard___kernel._sep.c
c_src/standard___kernel._sep.h
c_src/standard___math._sep.c
c_src/standard___math._sep.h
c_src/standard___stream._sep.c
c_src/standard___stream._sep.h
c_src/standard___string._sep.c
c_src/standard___string._sep.h
c_src/standard___string_search._sep.c
c_src/standard___string_search._sep.h
c_src/standard___symbol._sep.c
c_src/standard___symbol._sep.h
c_src/standard___time._sep.c
c_src/standard___time._sep.h
c_src/stream._nitni.c
c_src/stream._nitni.h
c_src/stream_nit.c
c_src/stream_nit.h
c_src/string._nitni.c
c_src/string._nitni.h
c_src/string_nit.c [new file with mode: 0644]
c_src/string_nit.h
c_src/syntax._sep.c
c_src/syntax._sep.h
c_src/syntax___flow._sep.c
c_src/syntax___icode_generation._sep.c
c_src/syntax___icode_generation._sep.h
c_src/syntax___mmbuilder._sep.c
c_src/syntax___mmbuilder._sep.h
c_src/syntax___scope._sep.c
c_src/syntax___scope._sep.h
c_src/syntax___syntax_base._sep.c
c_src/syntax___syntax_base._sep.h
c_src/syntax___typing._sep.c
c_src/syntax___typing._sep.h
c_src/tables._nitni.c
c_src/tables._nitni.h
c_src/tables_nit.c
c_src/toolcontext._sep.c [new file with mode: 0644]
c_src/toolcontext._sep.h [new file with mode: 0644]
c_src/utils._sep.c

index 6b57e7e..6a17bb7 100644 (file)
@@ -17,13 +17,13 @@ void abstracttool___AbstractCompiler___init(val_t p0, val_t p1, int* init_table)
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./abstracttool.nit:29 */
+  /* abstracttool.nit:29 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./abstracttool.nit:31 */
+  /* abstracttool.nit:31 */
   ATTR_abstracttool___AbstractCompiler____tool_name(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./abstracttool.nit:32 */
-  CALL_mmloader___ToolContext___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./abstracttool.nit:33 */
+  /* abstracttool.nit:32 */
+  CALL_toolcontext___ToolContext___init(fra.me.REG[0])(fra.me.REG[0], init_table);
+  /* abstracttool.nit:33 */
   fra.me.REG[0] = NEW_SrcModuleLoader_syntax___SrcModuleLoader___init();
   CALL_mmloader___ToolContext___register_loader(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -43,7 +43,7 @@ val_t abstracttool___AbstractCompiler___tool_name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./abstracttool.nit:36 */
+  /* abstracttool.nit:36 */
   REGB0 = TAG_Bool(ATTR_abstracttool___AbstractCompiler____tool_name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -81,13 +81,13 @@ void abstracttool___AbstractCompiler___exec_cmd_line(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./abstracttool.nit:42 */
-  CALL_mmloader___ToolContext___process_options(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./abstracttool.nit:44 */
-  fra.me.REG[1] = CALL_mmloader___ToolContext___opt_version(fra.me.REG[0])(fra.me.REG[0]);
+  /* abstracttool.nit:42 */
+  CALL_toolcontext___ToolContext___process_options(fra.me.REG[0])(fra.me.REG[0]);
+  /* abstracttool.nit:44 */
+  fra.me.REG[1] = CALL_toolcontext___ToolContext___opt_version(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(fra.me.REG[1])) {
-    /* ./abstracttool.nit:45 */
+    /* abstracttool.nit:45 */
     REGB0 = TAG_Int(5);
     fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -123,15 +123,15 @@ void abstracttool___AbstractCompiler___exec_cmd_line(val_t p0){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
     fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
     CALL_standard___file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    /* ./abstracttool.nit:46 */
+    /* abstracttool.nit:46 */
     REGB0 = TAG_Int(0);
     CALL_standard___kernel___Object___exit(fra.me.REG[0])(fra.me.REG[0], REGB0);
   }
-  /* ./abstracttool.nit:49 */
-  fra.me.REG[1] = CALL_mmloader___ToolContext___opt_help(fra.me.REG[0])(fra.me.REG[0]);
+  /* abstracttool.nit:49 */
+  fra.me.REG[1] = CALL_toolcontext___ToolContext___opt_help(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(fra.me.REG[1])) {
-    /* ./abstracttool.nit:50 */
+    /* abstracttool.nit:50 */
     REGB0 = TAG_Int(3);
     fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_4) {
@@ -156,35 +156,35 @@ void abstracttool___AbstractCompiler___exec_cmd_line(val_t p0){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
     fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
     CALL_standard___file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    /* ./abstracttool.nit:51 */
-    fra.me.REG[1] = CALL_mmloader___ToolContext___option_context(fra.me.REG[0])(fra.me.REG[0]);
+    /* abstracttool.nit:51 */
+    fra.me.REG[1] = CALL_toolcontext___ToolContext___option_context(fra.me.REG[0])(fra.me.REG[0]);
     CALL_opts___OptionContext___usage(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./abstracttool.nit:52 */
+    /* abstracttool.nit:52 */
     REGB0 = TAG_Int(0);
     CALL_standard___kernel___Object___exit(fra.me.REG[0])(fra.me.REG[0], REGB0);
   }
-  /* ./abstracttool.nit:55 */
-  fra.me.REG[1] = CALL_mmloader___ToolContext___option_context(fra.me.REG[0])(fra.me.REG[0]);
+  /* abstracttool.nit:55 */
+  fra.me.REG[1] = CALL_toolcontext___ToolContext___option_context(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_opts___OptionContext___rest(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./abstracttool.nit:55 */
+  /* abstracttool.nit:55 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./abstracttool.nit:55 */
+    /* abstracttool.nit:55 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./abstracttool.nit:56 */
+    /* abstracttool.nit:56 */
     REGB2 = TAG_Int(3);
     fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
     if (!once_value_6) {
@@ -209,19 +209,19 @@ void abstracttool___AbstractCompiler___exec_cmd_line(val_t p0){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
     fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
     CALL_standard___file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    /* ./abstracttool.nit:57 */
-    fra.me.REG[1] = CALL_mmloader___ToolContext___option_context(fra.me.REG[0])(fra.me.REG[0]);
+    /* abstracttool.nit:57 */
+    fra.me.REG[1] = CALL_toolcontext___ToolContext___option_context(fra.me.REG[0])(fra.me.REG[0]);
     CALL_opts___OptionContext___usage(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./abstracttool.nit:58 */
+    /* abstracttool.nit:58 */
     REGB2 = TAG_Int(1);
     CALL_standard___kernel___Object___exit(fra.me.REG[0])(fra.me.REG[0], REGB2);
   }
-  /* ./abstracttool.nit:61 */
-  fra.me.REG[1] = CALL_mmloader___ToolContext___option_context(fra.me.REG[0])(fra.me.REG[0]);
+  /* abstracttool.nit:61 */
+  fra.me.REG[1] = CALL_toolcontext___ToolContext___option_context(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_opts___OptionContext___rest(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./abstracttool.nit:62 */
+  /* abstracttool.nit:62 */
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-  /* ./abstracttool.nit:63 */
+  /* abstracttool.nit:63 */
   if (!once_value_8) {
     fra.me.REG[3] = BOX_NativeString("Syntax analysis");
     REGB2 = TAG_Int(15);
@@ -231,41 +231,41 @@ void abstracttool___AbstractCompiler___exec_cmd_line(val_t p0){
   } else fra.me.REG[3] = once_value_8;
   fra.me.REG[3] = fra.me.REG[3];
   REGB2 = TAG_Int(1);
-  CALL_mmloader___ToolContext___info(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], REGB2);
-  /* ./abstracttool.nit:64 */
+  CALL_toolcontext___ToolContext___info(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], REGB2);
+  /* abstracttool.nit:64 */
   REGB2 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB0 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./abstracttool.nit:64 */
+      /* abstracttool.nit:64 */
       REGB0 = REGB2;
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       fra.me.REG[3] = fra.me.REG[1];
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB3 = TAG_Int(0);
       REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB4)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB3 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB3)) {
         REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
@@ -278,52 +278,52 @@ void abstracttool___AbstractCompiler___exec_cmd_line(val_t p0){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB4 = TAG_Bool(false);
         REGB3 = REGB4;
       }
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
       REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label9;
       label9: while(0);
-      /* ./abstracttool.nit:65 */
+      /* abstracttool.nit:65 */
       fra.me.REG[3] = CALL_mmloader___ToolContext___get_module_from_filename(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-      /* ./abstracttool.nit:66 */
+      /* abstracttool.nit:66 */
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = REGB0;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label10;
     }
   }
   label10: while(0);
-  /* ./abstracttool.nit:68 */
-  fra.me.REG[1] = CALL_mmloader___ToolContext___opt_log(fra.me.REG[0])(fra.me.REG[0]);
+  /* abstracttool.nit:68 */
+  fra.me.REG[1] = CALL_toolcontext___ToolContext___opt_log(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(fra.me.REG[1])) {
-    /* ./abstracttool.nit:69 */
+    /* abstracttool.nit:69 */
     CALL_abstracttool___AbstractCompiler___dump_context_info(fra.me.REG[0])(fra.me.REG[0]);
   }
-  /* ./abstracttool.nit:72 */
+  /* abstracttool.nit:72 */
   REGB2 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   if (UNTAG_Bool(REGB2)) {
@@ -343,7 +343,7 @@ void abstracttool___AbstractCompiler___exec_cmd_line(val_t p0){
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./abstracttool.nit:73 */
+    /* abstracttool.nit:73 */
     CALL_abstracttool___AbstractCompiler___perform_work(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
   }
   stack_frame_head = fra.me.prev;
@@ -359,7 +359,7 @@ void abstracttool___AbstractCompiler___perform_work(val_t p0, val_t p1){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./abstracttool.nit:77 */
+  /* abstracttool.nit:77 */
   nit_abort("Deferred method called", NULL, LOCATE_abstracttool, 77);
   stack_frame_head = fra.me.prev;
   return;
@@ -388,15 +388,15 @@ void abstracttool___AbstractCompiler___dump_context_info(val_t p0){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./abstracttool.nit:81 */
+  /* abstracttool.nit:81 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMContext___module_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_abstracttool___AbstractCompiler___dump_context_info_1));
-  /* ./abstracttool.nit:84 */
+  /* abstracttool.nit:84 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  /* ./abstracttool.nit:85 */
+  /* abstracttool.nit:85 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMContext___module_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./abstracttool.nit:86 */
+  /* abstracttool.nit:86 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMContext___module_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_metamodel___partial_order___PartialOrder___select_smallests(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   if (!once_value_2) {
@@ -408,7 +408,7 @@ void abstracttool___AbstractCompiler___dump_context_info(val_t p0){
   } else fra.me.REG[2] = once_value_2;
   fra.me.REG[2] = fra.me.REG[2];
   fra.me.REG[2] = CALL_standard___string___Collection___join(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./abstracttool.nit:88 */
+  /* abstracttool.nit:88 */
   REGB0 = TAG_Int(5);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_3) {
@@ -420,7 +420,7 @@ void abstracttool___AbstractCompiler___dump_context_info(val_t p0){
   } else fra.me.REG[3] = once_value_3;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_mmloader___ToolContext___log_directory(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[3] = CALL_toolcontext___ToolContext___log_directory(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   if (!once_value_4) {
     fra.me.REG[3] = BOX_NativeString("/");
@@ -443,13 +443,13 @@ void abstracttool___AbstractCompiler___dump_context_info(val_t p0){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[1]);
-  /* ./abstracttool.nit:89 */
+  /* abstracttool.nit:89 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMContext___class_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrder___to_dot(fra.me.REG[3])(fra.me.REG[3]);
   CALL_standard___stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./abstracttool.nit:90 */
+  /* abstracttool.nit:90 */
   CALL_standard___stream___IOS___close(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./abstracttool.nit:92 */
+  /* abstracttool.nit:92 */
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_6) {
@@ -461,7 +461,7 @@ void abstracttool___AbstractCompiler___dump_context_info(val_t p0){
   } else fra.me.REG[4] = once_value_6;
   fra.me.REG[4] = fra.me.REG[4];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  fra.me.REG[4] = CALL_mmloader___ToolContext___log_directory(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[4] = CALL_toolcontext___ToolContext___log_directory(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   if (!once_value_7) {
     fra.me.REG[4] = BOX_NativeString("/");
@@ -485,11 +485,11 @@ void abstracttool___AbstractCompiler___dump_context_info(val_t p0){
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[3]);
   fra.me.REG[1] = fra.me.REG[3];
-  /* ./abstracttool.nit:93 */
+  /* abstracttool.nit:93 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMContext___module_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___partial_order___PartialOrder___to_dot(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./abstracttool.nit:94 */
+  /* abstracttool.nit:94 */
   CALL_standard___stream___IOS___close(fra.me.REG[1])(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -511,8 +511,8 @@ void abstracttool___AbstractCompiler___dump_context_info(val_t p0){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./abstracttool.nit:82 */
-    fra.me.REG[1] = CALL_mmloader___ToolContext___log_directory(closctx->REG[0])(closctx->REG[0]);
+    /* abstracttool.nit:82 */
+    fra.me.REG[1] = CALL_toolcontext___ToolContext___log_directory(closctx->REG[0])(closctx->REG[0]);
     CALL_abstracttool___MMModule___dump_module_info(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
     stack_frame_head = fra.me.prev;
     return;
@@ -542,7 +542,7 @@ void abstracttool___MMModule___dump_module_info(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./abstracttool.nit:101 */
+  /* abstracttool.nit:101 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -577,7 +577,7 @@ void abstracttool___MMModule___dump_module_info(val_t p0, val_t p1){
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./abstracttool.nit:102 */
+  /* abstracttool.nit:102 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_4) {
@@ -601,13 +601,13 @@ void abstracttool___MMModule___dump_module_info(val_t p0, val_t p1){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[1]);
-  /* ./abstracttool.nit:103 */
+  /* abstracttool.nit:103 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___class_specialization_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrder___to_dot(fra.me.REG[3])(fra.me.REG[3]);
   CALL_standard___stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./abstracttool.nit:104 */
+  /* abstracttool.nit:104 */
   CALL_standard___stream___IOS___close(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./abstracttool.nit:106 */
+  /* abstracttool.nit:106 */
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_6) {
@@ -632,10 +632,10 @@ void abstracttool___MMModule___dump_module_info(val_t p0, val_t p1){
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[3]);
   fra.me.REG[1] = fra.me.REG[3];
-  /* ./abstracttool.nit:107 */
+  /* abstracttool.nit:107 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_abstracttool___MMModule___dump_module_info_8));
-  /* ./abstracttool.nit:111 */
+  /* abstracttool.nit:111 */
   CALL_standard___stream___IOS___close(fra.me.REG[1])(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -658,9 +658,9 @@ void abstracttool___MMModule___dump_module_info(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./abstracttool.nit:108 */
+    /* abstracttool.nit:108 */
     CALL_abstracttool___MMLocalClass___dump_properties(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
-    /* ./abstracttool.nit:109 */
+    /* abstracttool.nit:109 */
     if (!once_value_9) {
       fra.me.REG[0] = BOX_NativeString("\n");
       REGB0 = TAG_Int(1);
@@ -698,7 +698,7 @@ void abstracttool___MMLocalClass___dump_properties(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./abstracttool.nit:118 */
+  /* abstracttool.nit:118 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -723,16 +723,16 @@ void abstracttool___MMLocalClass___dump_properties(val_t p0, val_t p1){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./abstracttool.nit:119 */
+  /* abstracttool.nit:119 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[2])(fra.me.REG[2]);
   REGB1 = TAG_Int(3);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./abstracttool.nit:119 */
+    /* abstracttool.nit:119 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
@@ -750,7 +750,7 @@ void abstracttool___MMLocalClass___dump_properties(val_t p0, val_t p1){
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./abstracttool.nit:120 */
+    /* abstracttool.nit:120 */
     if (!once_value_3) {
       fra.me.REG[2] = BOX_NativeString("\tclass not visible in this module\n");
       REGB2 = TAG_Int(34);
@@ -761,7 +761,7 @@ void abstracttool___MMLocalClass___dump_properties(val_t p0, val_t p1){
     fra.me.REG[2] = fra.me.REG[2];
     CALL_standard___stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   } else {
-    /* ./abstracttool.nit:121 */
+    /* abstracttool.nit:121 */
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMGlobalClass___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
@@ -770,13 +770,13 @@ void abstracttool___MMLocalClass___dump_properties(val_t p0, val_t p1){
     REGB0 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
     if (UNTAG_Bool(REGB0)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB1 = TAG_Bool((REGB2)==(REGB1));
-      /* ./abstracttool.nit:121 */
+      /* abstracttool.nit:121 */
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./abstracttool.nit:122 */
+      /* abstracttool.nit:122 */
       if (!once_value_4) {
         fra.me.REG[3] = BOX_NativeString("\tclass is defined later in the hierarchy\n");
         REGB0 = TAG_Int(41);
@@ -787,12 +787,12 @@ void abstracttool___MMLocalClass___dump_properties(val_t p0, val_t p1){
       fra.me.REG[3] = fra.me.REG[3];
       CALL_standard___stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
     } else {
-      /* ./abstracttool.nit:124 */
+      /* abstracttool.nit:124 */
       fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[0])(fra.me.REG[0]);
       CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_abstracttool___MMLocalClass___dump_properties_5));
     }
   }
-  /* ./abstracttool.nit:129 */
+  /* abstracttool.nit:129 */
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_9) {
@@ -842,9 +842,9 @@ void abstracttool___MMLocalClass___dump_properties(val_t p0, val_t p1){
         fra.me.closure_funs = CREG;
         fra.me.REG[0] = p0;
         CREG[0] = clos_fun0;
-        /* ./abstracttool.nit:125 */
+        /* abstracttool.nit:125 */
         fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
-        /* ./abstracttool.nit:126 */
+        /* abstracttool.nit:126 */
         REGB0 = TAG_Int(5);
         fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_6) {
index 7d1bc4e..c1927b6 100644 (file)
 /* This C file is generated by NIT to compile module analysis. */
 #include "analysis._sep.h"
-val_t analysis___ToolContext___global_callgraph(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis;
-  fra.me.line = 48;
-  fra.me.meth = LOCATE_analysis___ToolContext___global_callgraph;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./analysis//analysis.nit:48 */
-  REGB0 = TAG_Bool(ATTR_analysis___ToolContext____global_callgraph(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_global_callgraph", LOCATE_analysis, 48);
-  }
-  fra.me.REG[0] = ATTR_analysis___ToolContext____global_callgraph(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-void analysis___ToolContext___global_callgraph__eq(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis;
-  fra.me.line = 48;
-  fra.me.meth = LOCATE_analysis___ToolContext___global_callgraph__eq;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./analysis//analysis.nit:48 */
-  ATTR_analysis___ToolContext____global_callgraph(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-val_t analysis___ToolContext___no_dead_method_removal(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis;
-  fra.me.line = 49;
-  fra.me.meth = LOCATE_analysis___ToolContext___no_dead_method_removal;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./analysis//analysis.nit:49 */
-  REGB0 = TAG_Bool(ATTR_analysis___ToolContext____no_dead_method_removal(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_no_dead_method_removal", LOCATE_analysis, 49);
-  }
-  REGB0 = ATTR_analysis___ToolContext____no_dead_method_removal(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-void analysis___ToolContext___no_dead_method_removal__eq(val_t p0, val_t p1){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis;
-  fra.me.line = 49;
-  fra.me.meth = LOCATE_analysis___ToolContext___no_dead_method_removal__eq;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = p1;
-  /* ./analysis//analysis.nit:49 */
-  ATTR_analysis___ToolContext____no_dead_method_removal(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-  return;
-}
-val_t analysis___ToolContext___no_inline_get_set(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis;
-  fra.me.line = 50;
-  fra.me.meth = LOCATE_analysis___ToolContext___no_inline_get_set;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./analysis//analysis.nit:50 */
-  REGB0 = TAG_Bool(ATTR_analysis___ToolContext____no_inline_get_set(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_no_inline_get_set", LOCATE_analysis, 50);
-  }
-  REGB0 = ATTR_analysis___ToolContext____no_inline_get_set(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-void analysis___ToolContext___no_inline_get_set__eq(val_t p0, val_t p1){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis;
-  fra.me.line = 50;
-  fra.me.meth = LOCATE_analysis___ToolContext___no_inline_get_set__eq;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = p1;
-  /* ./analysis//analysis.nit:50 */
-  ATTR_analysis___ToolContext____no_inline_get_set(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-  return;
-}
-val_t analysis___ToolContext___no_callgraph_from_init(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis;
-  fra.me.line = 51;
-  fra.me.meth = LOCATE_analysis___ToolContext___no_callgraph_from_init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./analysis//analysis.nit:51 */
-  REGB0 = TAG_Bool(ATTR_analysis___ToolContext____no_callgraph_from_init(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_no_callgraph_from_init", LOCATE_analysis, 51);
-  }
-  REGB0 = ATTR_analysis___ToolContext____no_callgraph_from_init(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-void analysis___ToolContext___no_callgraph_from_init__eq(val_t p0, val_t p1){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis;
-  fra.me.line = 51;
-  fra.me.meth = LOCATE_analysis___ToolContext___no_callgraph_from_init__eq;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = p1;
-  /* ./analysis//analysis.nit:51 */
-  ATTR_analysis___ToolContext____no_callgraph_from_init(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-  return;
-}
-val_t analysis___ToolContext___no_out_of_init_get_test_removal(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis;
-  fra.me.line = 52;
-  fra.me.meth = LOCATE_analysis___ToolContext___no_out_of_init_get_test_removal;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./analysis//analysis.nit:52 */
-  REGB0 = TAG_Bool(ATTR_analysis___ToolContext____no_out_of_init_get_test_removal(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_no_out_of_init_get_test_removal", LOCATE_analysis, 52);
-  }
-  REGB0 = ATTR_analysis___ToolContext____no_out_of_init_get_test_removal(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-void analysis___ToolContext___no_out_of_init_get_test_removal__eq(val_t p0, val_t p1){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis;
-  fra.me.line = 52;
-  fra.me.meth = LOCATE_analysis___ToolContext___no_out_of_init_get_test_removal__eq;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = p1;
-  /* ./analysis//analysis.nit:52 */
-  ATTR_analysis___ToolContext____no_out_of_init_get_test_removal(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-  return;
-}
-void analysis___Program___do_global_analysis(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-    static val_t once_value_2; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis;
-  fra.me.line = 56;
-  fra.me.meth = LOCATE_analysis___Program___do_global_analysis;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./analysis//analysis.nit:58 */
-  fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = CALL_program___ToolContext___global(fra.me.REG[1])(fra.me.REG[1]);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Assert failed", NULL, LOCATE_analysis, 58);
-  }
-  /* ./analysis//analysis.nit:60 */
-  fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[1] = CALL_analysis___ToolContext___global_callgraph(fra.me.REG[1])(fra.me.REG[1]);
-  if (!once_value_1) {
-    fra.me.REG[2] = BOX_NativeString("cha");
-    REGB0 = TAG_Int(3);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_1 = fra.me.REG[2];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[2] = once_value_1;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[2]));
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-    REGB0 = REGB1;
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//analysis.nit:61 */
-    fra.me.REG[2] = NEW_ChaBuilder_analysis___cha_analysis___ChaBuilder___init(fra.me.REG[0]);
-    /* ./analysis//analysis.nit:62 */
-    CALL_analysis___cha_analysis___ChaBuilder___work(fra.me.REG[2])(fra.me.REG[2]);
-    /* ./analysis//analysis.nit:63 */
-    fra.me.REG[2] = CALL_analysis___cha_analysis___ChaBuilder___context(fra.me.REG[2])(fra.me.REG[2]);
-    CALL_analysis___reachable_method_analysis___Program___rma__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  } else {
-    /* ./analysis//analysis.nit:64 */
-    fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
-    fra.me.REG[2] = CALL_analysis___ToolContext___global_callgraph(fra.me.REG[2])(fra.me.REG[2]);
-    if (!once_value_2) {
-      fra.me.REG[1] = BOX_NativeString("rta");
-      REGB0 = TAG_Int(3);
-      fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-      once_value_2 = fra.me.REG[1];
-      register_static_object(&once_value_2);
-    } else fra.me.REG[1] = once_value_2;
-    fra.me.REG[1] = fra.me.REG[1];
-    REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[1]));
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-      REGB0 = REGB1;
-    }
-    if (UNTAG_Bool(REGB0)) {
-      /* ./analysis//analysis.nit:65 */
-      fra.me.REG[1] = NEW_RtaBuilder_analysis___rta_analysis___RtaBuilder___init(fra.me.REG[0]);
-      /* ./analysis//analysis.nit:66 */
-      CALL_analysis___rta_analysis___RtaBuilder___work(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./analysis//analysis.nit:67 */
-      fra.me.REG[2] = CALL_analysis___rta_analysis___RtaBuilder___context(fra.me.REG[1])(fra.me.REG[1]);
-      CALL_analysis___reachable_method_analysis___Program___rma__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-      /* ./analysis//analysis.nit:68 */
-      fra.me.REG[1] = CALL_analysis___rta_analysis___RtaBuilder___context(fra.me.REG[1])(fra.me.REG[1]);
-      CALL_analysis___instantiated_type_analysis___Program___ita__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    }
-  }
-  /* ./analysis//analysis.nit:72 */
-  fra.me.REG[1] = CALL_analysis___reachable_method_analysis___Program___rma(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(false);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  if (UNTAG_Bool(REGB0)) {
-    fra.me.REG[1] = NEW_DefaultReachableMethodAnalysis_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___init();
-    CALL_analysis___reachable_method_analysis___Program___rma__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  }
-  /* ./analysis//analysis.nit:73 */
-  fra.me.REG[1] = CALL_analysis___instantiated_type_analysis___Program___ita(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(false);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  if (UNTAG_Bool(REGB0)) {
-    fra.me.REG[1] = NEW_DefaultInstantiatedTypeAnalysis_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init();
-    CALL_analysis___instantiated_type_analysis___Program___ita__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  }
-  /* ./analysis//analysis.nit:75 */
-  fra.me.REG[1] = NEW_ReachableAsInitBuilder_analysis___reachable_as_init_impl___ReachableAsInitBuilder___init(fra.me.REG[0]);
-  /* ./analysis//analysis.nit:76 */
-  CALL_analysis___reachable_as_init_impl___ReachableAsInitBuilder___work(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./analysis//analysis.nit:77 */
-  fra.me.REG[1] = CALL_analysis___reachable_as_init_impl___ReachableAsInitBuilder___context(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_analysis___reachable_as_init___Program___rai__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./analysis//analysis.nit:79 */
-  fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = CALL_analysis___ToolContext___no_callgraph_from_init(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//analysis.nit:80 */
-    fra.me.REG[1] = NEW_RFIMABuilder_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___init(fra.me.REG[0]);
-    /* ./analysis//analysis.nit:81 */
-    CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./analysis//analysis.nit:82 */
-    fra.me.REG[1] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___context(fra.me.REG[1])(fra.me.REG[1]);
-    CALL_analysis___reachable_from_init_method_analysis___Program___rfima__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  }
-  /* ./analysis//analysis.nit:85 */
-  fra.me.REG[1] = CALL_analysis___reachable_from_init_method_analysis___Program___rfima(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(false);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  if (UNTAG_Bool(REGB0)) {
-    fra.me.REG[1] = NEW_DefaultReachableFromInitMethodAnalysis_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init();
-    CALL_analysis___reachable_from_init_method_analysis___Program___rfima__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  }
-  stack_frame_head = fra.me.prev;
-  return;
-}
-void analysis___Program___do_global_pre_analysis_optimizations(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis;
-  fra.me.line = 88;
-  fra.me.meth = LOCATE_analysis___Program___do_global_pre_analysis_optimizations;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./analysis//analysis.nit:91 */
-  fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = CALL_program___ToolContext___global(fra.me.REG[1])(fra.me.REG[1]);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Assert failed", NULL, LOCATE_analysis, 91);
-  }
-  /* ./analysis//analysis.nit:92 */
-  fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = CALL_analysis___ToolContext___no_inline_get_set(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    CALL_analysis___inline_get_and_set___Program___inline_get_set(fra.me.REG[0])(fra.me.REG[0]);
-  }
-  stack_frame_head = fra.me.prev;
-  return;
-}
-void analysis___Program___do_global_post_analysis_optimizations(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis;
-  fra.me.line = 95;
-  fra.me.meth = LOCATE_analysis___Program___do_global_post_analysis_optimizations;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./analysis//analysis.nit:98 */
-  fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = CALL_program___ToolContext___global(fra.me.REG[1])(fra.me.REG[1]);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Assert failed", NULL, LOCATE_analysis, 98);
-  }
-  /* ./analysis//analysis.nit:99 */
-  fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = CALL_analysis___ToolContext___no_dead_method_removal(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    CALL_analysis___dead_method_removal___Program___optimize_dead_methods(fra.me.REG[0])(fra.me.REG[0]);
-  }
-  /* ./analysis//analysis.nit:100 */
-  fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = CALL_analysis___ToolContext___no_out_of_init_get_test_removal(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    CALL_analysis___remove_out_of_init_get_test___Program___optimize_out_of_init_getters(fra.me.REG[0])(fra.me.REG[0]);
-  }
-  stack_frame_head = fra.me.prev;
-  return;
-}
-void analysis___Program___dump_global_optimizations_information(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis;
-  fra.me.line = 103;
-  fra.me.meth = LOCATE_analysis___Program___dump_global_optimizations_information;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./analysis//analysis.nit:104 */
-  CALL_analysis___remove_out_of_init_get_test___Program___dump_out_of_init_information(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./analysis//analysis.nit:105 */
-  CALL_analysis___dead_method_removal___Program___dump_dead_method_optimization(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./analysis//analysis.nit:106 */
-  CALL_analysis___inline_get_and_set___Program___dump_inline_get_set(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-void analysis___Program___dump_global_analysis_information(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis;
-  fra.me.line = 109;
-  fra.me.meth = LOCATE_analysis___Program___dump_global_analysis_information;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./analysis//analysis.nit:111 */
-  fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[2] = CALL_analysis___ToolContext___global_callgraph(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_analysis___reachable_method_analysis___Program___dump_reachable_methods(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
-  /* ./analysis//analysis.nit:112 */
-  fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[2] = CALL_analysis___ToolContext___global_callgraph(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_analysis___reachable_method_analysis___Program___dump_unreachable_methods(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
-  /* ./analysis//analysis.nit:113 */
-  CALL_analysis___instantiated_type_analysis___Program___dump_instantiated_types(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./analysis//analysis.nit:114 */
-  CALL_analysis___instantiated_type_analysis___Program___dump_not_instantiated_types(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./analysis//analysis.nit:115 */
-  CALL_analysis___reachable_as_init___Program___dump_reachable_as_init_methods(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./analysis//analysis.nit:116 */
-  CALL_analysis___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./analysis//analysis.nit:117 */
-  CALL_analysis___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
 void analysis___IRoutine___optimize(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_analysis;
-  fra.me.line = 122;
+  fra.me.line = 31;
   fra.me.meth = LOCATE_analysis___IRoutine___optimize;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -510,9 +14,9 @@ void analysis___IRoutine___optimize(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//analysis.nit:125 */
+  /* analysis/analysis.nit:34 */
   CALL_analysis___inline_methods___IRoutine___inline_methods(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./analysis//analysis.nit:126 */
+  /* analysis/analysis.nit:35 */
   CALL_analysis___allocate_iregister_slots___IRoutine___allocate_iregister_slots(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
index c41b9a7..dd8320e 100644 (file)
@@ -2,85 +2,12 @@
 #ifndef analysis_sep
 #define analysis_sep
 #include "analysis___icode_dump._sep.h"
+#include "program._sep.h"
 #include "analysis___inline_methods._sep.h"
-#include "analysis___cha_analysis._sep.h"
-#include "analysis___rta_analysis._sep.h"
-#include "analysis___reachable_as_init_impl._sep.h"
-#include "analysis___reachable_from_init_method_analysis_impl._sep.h"
-#include "analysis___dead_method_removal._sep.h"
-#include "analysis___inline_get_and_set._sep.h"
-#include "analysis___remove_out_of_init_get_test._sep.h"
 #include <nit_common.h>
 extern const char *LOCATE_analysis;
 extern const int SFT_analysis[];
-#define ATTR_analysis___ToolContext____global_callgraph(recv) ATTR(recv, (SFT_analysis[0] + 0))
-#define ATTR_analysis___ToolContext____no_dead_method_removal(recv) ATTR(recv, (SFT_analysis[0] + 1))
-#define ATTR_analysis___ToolContext____no_inline_get_set(recv) ATTR(recv, (SFT_analysis[0] + 2))
-#define ATTR_analysis___ToolContext____no_callgraph_from_init(recv) ATTR(recv, (SFT_analysis[0] + 3))
-#define ATTR_analysis___ToolContext____no_out_of_init_get_test_removal(recv) ATTR(recv, (SFT_analysis[0] + 4))
-#define CALL_analysis___ToolContext___global_callgraph(recv) ((analysis___ToolContext___global_callgraph_t)CALL((recv), (SFT_analysis[1] + 0)))
-#define CALL_analysis___ToolContext___global_callgraph__eq(recv) ((analysis___ToolContext___global_callgraph__eq_t)CALL((recv), (SFT_analysis[1] + 1)))
-#define CALL_analysis___ToolContext___no_dead_method_removal(recv) ((analysis___ToolContext___no_dead_method_removal_t)CALL((recv), (SFT_analysis[1] + 2)))
-#define CALL_analysis___ToolContext___no_dead_method_removal__eq(recv) ((analysis___ToolContext___no_dead_method_removal__eq_t)CALL((recv), (SFT_analysis[1] + 3)))
-#define CALL_analysis___ToolContext___no_inline_get_set(recv) ((analysis___ToolContext___no_inline_get_set_t)CALL((recv), (SFT_analysis[1] + 4)))
-#define CALL_analysis___ToolContext___no_inline_get_set__eq(recv) ((analysis___ToolContext___no_inline_get_set__eq_t)CALL((recv), (SFT_analysis[1] + 5)))
-#define CALL_analysis___ToolContext___no_callgraph_from_init(recv) ((analysis___ToolContext___no_callgraph_from_init_t)CALL((recv), (SFT_analysis[1] + 6)))
-#define CALL_analysis___ToolContext___no_callgraph_from_init__eq(recv) ((analysis___ToolContext___no_callgraph_from_init__eq_t)CALL((recv), (SFT_analysis[1] + 7)))
-#define CALL_analysis___ToolContext___no_out_of_init_get_test_removal(recv) ((analysis___ToolContext___no_out_of_init_get_test_removal_t)CALL((recv), (SFT_analysis[1] + 8)))
-#define CALL_analysis___ToolContext___no_out_of_init_get_test_removal__eq(recv) ((analysis___ToolContext___no_out_of_init_get_test_removal__eq_t)CALL((recv), (SFT_analysis[1] + 9)))
-#define CALL_analysis___Program___do_global_analysis(recv) ((analysis___Program___do_global_analysis_t)CALL((recv), (SFT_analysis[2] + 0)))
-#define CALL_analysis___Program___do_global_pre_analysis_optimizations(recv) ((analysis___Program___do_global_pre_analysis_optimizations_t)CALL((recv), (SFT_analysis[2] + 1)))
-#define CALL_analysis___Program___do_global_post_analysis_optimizations(recv) ((analysis___Program___do_global_post_analysis_optimizations_t)CALL((recv), (SFT_analysis[2] + 2)))
-#define CALL_analysis___Program___dump_global_optimizations_information(recv) ((analysis___Program___dump_global_optimizations_information_t)CALL((recv), (SFT_analysis[2] + 3)))
-#define CALL_analysis___Program___dump_global_analysis_information(recv) ((analysis___Program___dump_global_analysis_information_t)CALL((recv), (SFT_analysis[2] + 4)))
-#define CALL_analysis___IRoutine___optimize(recv) ((analysis___IRoutine___optimize_t)CALL((recv), (SFT_analysis[3] + 0)))
-static const char * const LOCATE_analysis___ToolContext___global_callgraph = "analysis::ToolContext::global_callgraph";
-val_t analysis___ToolContext___global_callgraph(val_t p0);
-typedef val_t (*analysis___ToolContext___global_callgraph_t)(val_t p0);
-static const char * const LOCATE_analysis___ToolContext___global_callgraph__eq = "analysis::ToolContext::global_callgraph=";
-void analysis___ToolContext___global_callgraph__eq(val_t p0, val_t p1);
-typedef void (*analysis___ToolContext___global_callgraph__eq_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___ToolContext___no_dead_method_removal = "analysis::ToolContext::no_dead_method_removal";
-val_t analysis___ToolContext___no_dead_method_removal(val_t p0);
-typedef val_t (*analysis___ToolContext___no_dead_method_removal_t)(val_t p0);
-static const char * const LOCATE_analysis___ToolContext___no_dead_method_removal__eq = "analysis::ToolContext::no_dead_method_removal=";
-void analysis___ToolContext___no_dead_method_removal__eq(val_t p0, val_t p1);
-typedef void (*analysis___ToolContext___no_dead_method_removal__eq_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___ToolContext___no_inline_get_set = "analysis::ToolContext::no_inline_get_set";
-val_t analysis___ToolContext___no_inline_get_set(val_t p0);
-typedef val_t (*analysis___ToolContext___no_inline_get_set_t)(val_t p0);
-static const char * const LOCATE_analysis___ToolContext___no_inline_get_set__eq = "analysis::ToolContext::no_inline_get_set=";
-void analysis___ToolContext___no_inline_get_set__eq(val_t p0, val_t p1);
-typedef void (*analysis___ToolContext___no_inline_get_set__eq_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___ToolContext___no_callgraph_from_init = "analysis::ToolContext::no_callgraph_from_init";
-val_t analysis___ToolContext___no_callgraph_from_init(val_t p0);
-typedef val_t (*analysis___ToolContext___no_callgraph_from_init_t)(val_t p0);
-static const char * const LOCATE_analysis___ToolContext___no_callgraph_from_init__eq = "analysis::ToolContext::no_callgraph_from_init=";
-void analysis___ToolContext___no_callgraph_from_init__eq(val_t p0, val_t p1);
-typedef void (*analysis___ToolContext___no_callgraph_from_init__eq_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___ToolContext___no_out_of_init_get_test_removal = "analysis::ToolContext::no_out_of_init_get_test_removal";
-val_t analysis___ToolContext___no_out_of_init_get_test_removal(val_t p0);
-typedef val_t (*analysis___ToolContext___no_out_of_init_get_test_removal_t)(val_t p0);
-static const char * const LOCATE_analysis___ToolContext___no_out_of_init_get_test_removal__eq = "analysis::ToolContext::no_out_of_init_get_test_removal=";
-void analysis___ToolContext___no_out_of_init_get_test_removal__eq(val_t p0, val_t p1);
-typedef void (*analysis___ToolContext___no_out_of_init_get_test_removal__eq_t)(val_t p0, val_t p1);
-val_t NEW_ToolContext_mmloader___ToolContext___init();
-static const char * const LOCATE_analysis___Program___do_global_analysis = "analysis::Program::do_global_analysis";
-void analysis___Program___do_global_analysis(val_t p0);
-typedef void (*analysis___Program___do_global_analysis_t)(val_t p0);
-static const char * const LOCATE_analysis___Program___do_global_pre_analysis_optimizations = "analysis::Program::do_global_pre_analysis_optimizations";
-void analysis___Program___do_global_pre_analysis_optimizations(val_t p0);
-typedef void (*analysis___Program___do_global_pre_analysis_optimizations_t)(val_t p0);
-static const char * const LOCATE_analysis___Program___do_global_post_analysis_optimizations = "analysis::Program::do_global_post_analysis_optimizations";
-void analysis___Program___do_global_post_analysis_optimizations(val_t p0);
-typedef void (*analysis___Program___do_global_post_analysis_optimizations_t)(val_t p0);
-static const char * const LOCATE_analysis___Program___dump_global_optimizations_information = "analysis::Program::dump_global_optimizations_information";
-void analysis___Program___dump_global_optimizations_information(val_t p0, val_t p1);
-typedef void (*analysis___Program___dump_global_optimizations_information_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___Program___dump_global_analysis_information = "analysis::Program::dump_global_analysis_information";
-void analysis___Program___dump_global_analysis_information(val_t p0, val_t p1);
-typedef void (*analysis___Program___dump_global_analysis_information_t)(val_t p0, val_t p1);
-val_t NEW_Program_program___Program___init(val_t p0, val_t p1);
+#define CALL_analysis___IRoutine___optimize(recv) ((analysis___IRoutine___optimize_t)CALL((recv), (SFT_analysis[0] + 0)))
 static const char * const LOCATE_analysis___IRoutine___optimize = "analysis::IRoutine::optimize";
 void analysis___IRoutine___optimize(val_t p0, val_t p1);
 typedef void (*analysis___IRoutine___optimize_t)(val_t p0, val_t p1);
index d69493f..d8b8fb9 100644 (file)
@@ -18,7 +18,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//allocate_iregister_slots.nit:39 */
+  /* analysis/allocate_iregister_slots.nit:39 */
   REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -51,7 +51,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//allocate_iregister_slots.nit:40 */
+    /* analysis/allocate_iregister_slots.nit:40 */
     fra.me.REG[3] = ATTR_analysis___allocate_iregister_slots___IRegister____local_iroutine(fra.me.REG[1]);
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -66,7 +66,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark
       }
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./analysis//allocate_iregister_slots.nit:41 */
+      /* analysis/allocate_iregister_slots.nit:41 */
       REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -75,7 +75,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark
       fra.me.REG[0] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra.me.REG[0]);
       ATTR_analysis___allocate_iregister_slots___IRegister____local_iroutine(fra.me.REG[1]) = fra.me.REG[0];
     } else {
-      /* ./analysis//allocate_iregister_slots.nit:43 */
+      /* analysis/allocate_iregister_slots.nit:43 */
       REGB0 = TAG_Bool(false);
       ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra.me.REG[1]) = REGB0;
     }
@@ -103,39 +103,39 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./analysis//allocate_iregister_slots.nit:52 */
+  /* analysis/allocate_iregister_slots.nit:52 */
   REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_pass", LOCATE_analysis___allocate_iregister_slots, 52);
   }
   REGB0 = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra.me.REG[0]);
-  /* ./analysis//allocate_iregister_slots.nit:53 */
+  /* analysis/allocate_iregister_slots.nit:53 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./analysis//allocate_iregister_slots.nit:53 */
+    /* analysis/allocate_iregister_slots.nit:53 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./analysis//allocate_iregister_slots.nit:54 */
+    /* analysis/allocate_iregister_slots.nit:54 */
     CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-    /* ./analysis//allocate_iregister_slots.nit:55 */
+    /* analysis/allocate_iregister_slots.nit:55 */
     ATTR_analysis___allocate_iregister_slots___IRegister____last(fra.me.REG[2]) = fra.me.REG[1];
-    /* ./analysis//allocate_iregister_slots.nit:56 */
+    /* analysis/allocate_iregister_slots.nit:56 */
     ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra.me.REG[2]) = NIT_NULL;
   } else {
-    /* ./analysis//allocate_iregister_slots.nit:57 */
+    /* analysis/allocate_iregister_slots.nit:57 */
     REGB2 = TAG_Int(1);
     REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
     if (UNTAG_Bool(REGB1)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB2 = TAG_Bool((REGB0)==(REGB2));
-      /* ./analysis//allocate_iregister_slots.nit:57 */
+      /* analysis/allocate_iregister_slots.nit:57 */
       REGB1 = REGB2;
     }
     if (UNTAG_Bool(REGB1)) {
@@ -157,7 +157,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
       REGB1 = REGB2;
     }
     if (UNTAG_Bool(REGB1)) {
-      /* ./analysis//allocate_iregister_slots.nit:58 */
+      /* analysis/allocate_iregister_slots.nit:58 */
       CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
     }
   }
@@ -184,29 +184,29 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./analysis//allocate_iregister_slots.nit:64 */
+  /* analysis/allocate_iregister_slots.nit:64 */
   REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_pass", LOCATE_analysis___allocate_iregister_slots, 64);
   }
   REGB0 = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra.me.REG[0]);
-  /* ./analysis//allocate_iregister_slots.nit:65 */
+  /* analysis/allocate_iregister_slots.nit:65 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./analysis//allocate_iregister_slots.nit:65 */
+    /* analysis/allocate_iregister_slots.nit:65 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./analysis//allocate_iregister_slots.nit:66 */
+    /* analysis/allocate_iregister_slots.nit:66 */
     CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-    /* ./analysis//allocate_iregister_slots.nit:67 */
+    /* analysis/allocate_iregister_slots.nit:67 */
     ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra.me.REG[2]) = NIT_NULL;
-    /* ./analysis//allocate_iregister_slots.nit:69 */
+    /* analysis/allocate_iregister_slots.nit:69 */
     fra.me.REG[3] = ATTR_analysis___allocate_iregister_slots___IRegister____first(fra.me.REG[2]);
     REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
@@ -223,7 +223,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
     if (UNTAG_Bool(REGB2)) {
       ATTR_analysis___allocate_iregister_slots___IRegister____first(fra.me.REG[2]) = fra.me.REG[1];
     }
-    /* ./analysis//allocate_iregister_slots.nit:71 */
+    /* analysis/allocate_iregister_slots.nit:71 */
     fra.me.REG[3] = ATTR_analysis___allocate_iregister_slots___IRegister____last(fra.me.REG[2]);
     REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
@@ -242,18 +242,18 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
       ATTR_analysis___allocate_iregister_slots___IRegister____last(fra.me.REG[2]) = fra.me.REG[1];
     }
   } else {
-    /* ./analysis//allocate_iregister_slots.nit:72 */
+    /* analysis/allocate_iregister_slots.nit:72 */
     REGB2 = TAG_Int(1);
     REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
     if (UNTAG_Bool(REGB1)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB2 = TAG_Bool((REGB0)==(REGB2));
-      /* ./analysis//allocate_iregister_slots.nit:72 */
+      /* analysis/allocate_iregister_slots.nit:72 */
       REGB1 = REGB2;
     }
     if (UNTAG_Bool(REGB1)) {
-      /* ./analysis//allocate_iregister_slots.nit:73 */
+      /* analysis/allocate_iregister_slots.nit:73 */
       fra.me.REG[3] = ATTR_analysis___allocate_iregister_slots___IRegister____first(fra.me.REG[2]);
       REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
       if (UNTAG_Bool(REGB1)) {
@@ -268,10 +268,10 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
         }
       }
       if (UNTAG_Bool(REGB1)) {
-        /* ./analysis//allocate_iregister_slots.nit:74 */
+        /* analysis/allocate_iregister_slots.nit:74 */
         CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___register(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
       } else {
-        /* ./analysis//allocate_iregister_slots.nit:75 */
+        /* analysis/allocate_iregister_slots.nit:75 */
         fra.me.REG[3] = ATTR_analysis___allocate_iregister_slots___IRegister____last(fra.me.REG[2]);
         REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
         if (UNTAG_Bool(REGB1)) {
@@ -286,7 +286,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
           }
         }
         if (UNTAG_Bool(REGB1)) {
-          /* ./analysis//allocate_iregister_slots.nit:76 */
+          /* analysis/allocate_iregister_slots.nit:76 */
           CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
         }
       }
@@ -312,7 +312,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___defe
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//allocate_iregister_slots.nit:98 */
+  /* analysis/allocate_iregister_slots.nit:98 */
   REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -320,20 +320,20 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___defe
   }
   fra.me.REG[1] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra.me.REG[0]);
   fra.me.REG[1] = CALL_standard___collection___abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./analysis//allocate_iregister_slots.nit:99 */
+  /* analysis/allocate_iregister_slots.nit:99 */
   REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_analysis___allocate_iregister_slots, 99);
   }
   REGB0 = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra.me.REG[0]);
-  /* ./analysis//allocate_iregister_slots.nit:100 */
+  /* analysis/allocate_iregister_slots.nit:100 */
   while(1) {
     REGB1 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
     if (UNTAG_Bool(REGB1)) {
-      /* ./analysis//allocate_iregister_slots.nit:101 */
+      /* analysis/allocate_iregister_slots.nit:101 */
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./analysis//allocate_iregister_slots.nit:102 */
+      /* analysis/allocate_iregister_slots.nit:102 */
       REGB1 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____born_rank(fra.me.REG[2])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -345,19 +345,19 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___defe
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
-      /* ./analysis//allocate_iregister_slots.nit:102 */
+      /* analysis/allocate_iregister_slots.nit:102 */
       if (UNTAG_Bool(REGB1)) {
-        /* ./analysis//allocate_iregister_slots.nit:103 */
+        /* analysis/allocate_iregister_slots.nit:103 */
         CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-        /* ./analysis//allocate_iregister_slots.nit:104 */
+        /* analysis/allocate_iregister_slots.nit:104 */
         CALL_standard___collection___list___ListIterator___delete(fra.me.REG[1])(fra.me.REG[1]);
       }
-      /* ./analysis//allocate_iregister_slots.nit:106 */
+      /* analysis/allocate_iregister_slots.nit:106 */
       CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
     } else {
-      /* ./analysis//allocate_iregister_slots.nit:100 */
+      /* analysis/allocate_iregister_slots.nit:100 */
       goto label1;
     }
   }
@@ -384,10 +384,10 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//allocate_iregister_slots.nit:110 */
+  /* analysis/allocate_iregister_slots.nit:110 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./analysis//allocate_iregister_slots.nit:112 */
+  /* analysis/allocate_iregister_slots.nit:112 */
   REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -398,9 +398,9 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./analysis//allocate_iregister_slots.nit:112 */
+    /* analysis/allocate_iregister_slots.nit:112 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
@@ -410,21 +410,21 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./analysis//allocate_iregister_slots.nit:113 */
+    /* analysis/allocate_iregister_slots.nit:113 */
     REGB2 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_analysis___allocate_iregister_slots, 113);
     }
     REGB2 = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra.me.REG[2]);
-    /* ./analysis//allocate_iregister_slots.nit:114 */
+    /* analysis/allocate_iregister_slots.nit:114 */
     REGB1 = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra.me.REG[2]);
     REGB0 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
-    /* ./analysis//allocate_iregister_slots.nit:114 */
+    /* analysis/allocate_iregister_slots.nit:114 */
     ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra.me.REG[2]) = REGB0;
-    /* ./analysis//allocate_iregister_slots.nit:115 */
+    /* analysis/allocate_iregister_slots.nit:115 */
     REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -432,14 +432,14 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
     }
     REGB0 = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra.me.REG[2]);
     ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra.me.REG[2]) = REGB0;
-    /* ./analysis//allocate_iregister_slots.nit:116 */
+    /* analysis/allocate_iregister_slots.nit:116 */
     CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    /* ./analysis//allocate_iregister_slots.nit:117 */
+    /* analysis/allocate_iregister_slots.nit:117 */
     ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra.me.REG[2]) = REGB2;
-    /* ./analysis//allocate_iregister_slots.nit:118 */
+    /* analysis/allocate_iregister_slots.nit:118 */
     CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free(fra.me.REG[2])(fra.me.REG[2]);
   } else {
-    /* ./analysis//allocate_iregister_slots.nit:120 */
+    /* analysis/allocate_iregister_slots.nit:120 */
     CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   }
   stack_frame_head = fra.me.prev;
@@ -463,9 +463,9 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//allocate_iregister_slots.nit:124 */
+  /* analysis/allocate_iregister_slots.nit:124 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./analysis//allocate_iregister_slots.nit:126 */
+  /* analysis/allocate_iregister_slots.nit:126 */
   REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -476,27 +476,27 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./analysis//allocate_iregister_slots.nit:126 */
+    /* analysis/allocate_iregister_slots.nit:126 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./analysis//allocate_iregister_slots.nit:127 */
+    /* analysis/allocate_iregister_slots.nit:127 */
     REGB2 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_analysis___allocate_iregister_slots, 127);
     }
     REGB2 = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra.me.REG[2]);
-    /* ./analysis//allocate_iregister_slots.nit:128 */
+    /* analysis/allocate_iregister_slots.nit:128 */
     REGB1 = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra.me.REG[2]);
     REGB0 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
-    /* ./analysis//allocate_iregister_slots.nit:128 */
+    /* analysis/allocate_iregister_slots.nit:128 */
     ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra.me.REG[2]) = REGB0;
-    /* ./analysis//allocate_iregister_slots.nit:129 */
+    /* analysis/allocate_iregister_slots.nit:129 */
     REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -504,14 +504,14 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
     }
     REGB0 = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra.me.REG[2]);
     ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra.me.REG[2]) = REGB0;
-    /* ./analysis//allocate_iregister_slots.nit:130 */
+    /* analysis/allocate_iregister_slots.nit:130 */
     CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    /* ./analysis//allocate_iregister_slots.nit:131 */
+    /* analysis/allocate_iregister_slots.nit:131 */
     ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra.me.REG[2]) = REGB2;
-    /* ./analysis//allocate_iregister_slots.nit:132 */
+    /* analysis/allocate_iregister_slots.nit:132 */
     CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free(fra.me.REG[2])(fra.me.REG[2]);
   } else {
-    /* ./analysis//allocate_iregister_slots.nit:134 */
+    /* analysis/allocate_iregister_slots.nit:134 */
     CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   }
   stack_frame_head = fra.me.prev;
@@ -540,12 +540,12 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//allocate_iregister_slots.nit:142 */
+  /* analysis/allocate_iregister_slots.nit:142 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./analysis//allocate_iregister_slots.nit:144 */
+  /* analysis/allocate_iregister_slots.nit:144 */
   fra.me.REG[4] = CALL_icode___icode_base___IRoutine___result(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./analysis//allocate_iregister_slots.nit:145 */
+  /* analysis/allocate_iregister_slots.nit:145 */
   REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -556,27 +556,27 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./analysis//allocate_iregister_slots.nit:145 */
+    /* analysis/allocate_iregister_slots.nit:145 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./analysis//allocate_iregister_slots.nit:146 */
+    /* analysis/allocate_iregister_slots.nit:146 */
     REGB2 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_current_ir", LOCATE_analysis___allocate_iregister_slots, 146);
     }
     fra.me.REG[5] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra.me.REG[2]);
-    /* ./analysis//allocate_iregister_slots.nit:147 */
+    /* analysis/allocate_iregister_slots.nit:147 */
     ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra.me.REG[2]) = fra.me.REG[3];
-    /* ./analysis//allocate_iregister_slots.nit:148 */
+    /* analysis/allocate_iregister_slots.nit:148 */
     fra.me.REG[6] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[3])(fra.me.REG[3]);
     CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[6])(fra.me.REG[6], (&(fra.me)), ((fun_t)OC_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine_1));
-    /* ./analysis//allocate_iregister_slots.nit:152 */
+    /* analysis/allocate_iregister_slots.nit:152 */
     CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    /* ./analysis//allocate_iregister_slots.nit:153 */
+    /* analysis/allocate_iregister_slots.nit:153 */
     REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -591,44 +591,44 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
     }
     REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
     if (UNTAG_Bool(REGB2)) {
-      /* ./analysis//allocate_iregister_slots.nit:154 */
+      /* analysis/allocate_iregister_slots.nit:154 */
       ATTR_analysis___allocate_iregister_slots___IRegister____last(fra.me.REG[4]) = fra.me.REG[2];
-      /* ./analysis//allocate_iregister_slots.nit:155 */
+      /* analysis/allocate_iregister_slots.nit:155 */
       CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
     }
-    /* ./analysis//allocate_iregister_slots.nit:157 */
+    /* analysis/allocate_iregister_slots.nit:157 */
     ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra.me.REG[2]) = fra.me.REG[5];
   } else {
-    /* ./analysis//allocate_iregister_slots.nit:159 */
+    /* analysis/allocate_iregister_slots.nit:159 */
     REGB2 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_tag_slots", LOCATE_analysis___allocate_iregister_slots, 159);
     }
     fra.me.REG[5] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra.me.REG[2]);
-    /* ./analysis//allocate_iregister_slots.nit:160 */
+    /* analysis/allocate_iregister_slots.nit:160 */
     fra.me.REG[6] = NEW_SlotGroup_analysis___allocate_iregister_slots___SlotGroup___init();
     ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra.me.REG[2]) = fra.me.REG[6];
-    /* ./analysis//allocate_iregister_slots.nit:161 */
+    /* analysis/allocate_iregister_slots.nit:161 */
     REGB2 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_std_slots", LOCATE_analysis___allocate_iregister_slots, 161);
     }
     fra.me.REG[6] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra.me.REG[2]);
-    /* ./analysis//allocate_iregister_slots.nit:162 */
+    /* analysis/allocate_iregister_slots.nit:162 */
     REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___IClosureDef, ID_icode___icode_base___IClosureDef)) /*cast IClosureDef*/;
     if (UNTAG_Bool(REGB2)) {
-      /* ./analysis//allocate_iregister_slots.nit:163 */
+      /* analysis/allocate_iregister_slots.nit:163 */
       fra.me.REG[7] = NEW_SlotGroup_analysis___allocate_iregister_slots___SlotGroup___init();
       ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra.me.REG[2]) = fra.me.REG[7];
     }
-    /* ./analysis//allocate_iregister_slots.nit:165 */
+    /* analysis/allocate_iregister_slots.nit:165 */
     fra.me.REG[7] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[3])(fra.me.REG[3]);
     CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[7])(fra.me.REG[7], (&(fra.me)), ((fun_t)OC_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine_2));
-    /* ./analysis//allocate_iregister_slots.nit:168 */
+    /* analysis/allocate_iregister_slots.nit:168 */
     CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    /* ./analysis//allocate_iregister_slots.nit:169 */
+    /* analysis/allocate_iregister_slots.nit:169 */
     REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -645,7 +645,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
     if (UNTAG_Bool(REGB2)) {
       CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
     }
-    /* ./analysis//allocate_iregister_slots.nit:170 */
+    /* analysis/allocate_iregister_slots.nit:170 */
     REGB2 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -659,9 +659,9 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
     }
     REGB2 = ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra.me.REG[4]);
     ATTR_analysis___allocate_iregister_slots___IRoutine____tag_slots_nb(fra.me.REG[3]) = REGB2;
-    /* ./analysis//allocate_iregister_slots.nit:171 */
+    /* analysis/allocate_iregister_slots.nit:171 */
     ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra.me.REG[2]) = fra.me.REG[5];
-    /* ./analysis//allocate_iregister_slots.nit:172 */
+    /* analysis/allocate_iregister_slots.nit:172 */
     REGB2 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -675,7 +675,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
     }
     REGB2 = ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra.me.REG[5]);
     ATTR_analysis___allocate_iregister_slots___IRoutine____std_slots_nb(fra.me.REG[3]) = REGB2;
-    /* ./analysis//allocate_iregister_slots.nit:173 */
+    /* analysis/allocate_iregister_slots.nit:173 */
     ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra.me.REG[2]) = fra.me.REG[6];
   }
   stack_frame_head = fra.me.prev;
@@ -697,9 +697,9 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./analysis//allocate_iregister_slots.nit:149 */
+      /* analysis/allocate_iregister_slots.nit:149 */
       ATTR_analysis___allocate_iregister_slots___IRegister____first(fra.me.REG[0]) = closctx->REG[2];
-      /* ./analysis//allocate_iregister_slots.nit:150 */
+      /* analysis/allocate_iregister_slots.nit:150 */
       CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
       stack_frame_head = fra.me.prev;
       return;
@@ -720,7 +720,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visi
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./analysis//allocate_iregister_slots.nit:166 */
+      /* analysis/allocate_iregister_slots.nit:166 */
       CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___register(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
       stack_frame_head = fra.me.prev;
       return;
@@ -742,7 +742,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___regi
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//allocate_iregister_slots.nit:190 */
+  /* analysis/allocate_iregister_slots.nit:190 */
   fra.me.REG[2] = ATTR_analysis___allocate_iregister_slots___IRegister____last(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -759,7 +759,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___regi
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./analysis//allocate_iregister_slots.nit:191 */
+  /* analysis/allocate_iregister_slots.nit:191 */
   fra.me.REG[2] = ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -769,9 +769,9 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___regi
       REGB1 = TAG_Bool(false);
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB1 = TAG_Bool((fra.me.REG[2])==(NIT_NULL));
-      /* ./analysis//allocate_iregister_slots.nit:191 */
+      /* analysis/allocate_iregister_slots.nit:191 */
       REGB0 = REGB1;
     }
   }
@@ -779,7 +779,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___regi
   } else {
     nit_abort("Assert failed", NULL, LOCATE_analysis___allocate_iregister_slots, 191);
   }
-  /* ./analysis//allocate_iregister_slots.nit:192 */
+  /* analysis/allocate_iregister_slots.nit:192 */
   REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -787,7 +787,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___regi
   }
   REGB0 = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra.me.REG[0]);
   ATTR_analysis___allocate_iregister_slots___IRegister____born_rank(fra.me.REG[1]) = REGB0;
-  /* ./analysis//allocate_iregister_slots.nit:193 */
+  /* analysis/allocate_iregister_slots.nit:193 */
   REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -796,7 +796,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___regi
   REGB0 = ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra.me.REG[1]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//allocate_iregister_slots.nit:194 */
+    /* analysis/allocate_iregister_slots.nit:194 */
     REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -805,14 +805,14 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___regi
     fra.me.REG[2] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra.me.REG[0]);
     CALL_analysis___allocate_iregister_slots___SlotGroup___register(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   } else {
-    /* ./analysis//allocate_iregister_slots.nit:195 */
+    /* analysis/allocate_iregister_slots.nit:195 */
     fra.me.REG[2] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = CALL_primitive_info___MMType___is_tagged(fra.me.REG[2])(fra.me.REG[2]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./analysis//allocate_iregister_slots.nit:196 */
+      /* analysis/allocate_iregister_slots.nit:196 */
       REGB0 = TAG_Bool(true);
       ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra.me.REG[1]) = REGB0;
-      /* ./analysis//allocate_iregister_slots.nit:197 */
+      /* analysis/allocate_iregister_slots.nit:197 */
       REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -821,7 +821,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___regi
       fra.me.REG[2] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra.me.REG[0]);
       CALL_analysis___allocate_iregister_slots___SlotGroup___register(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
     } else {
-      /* ./analysis//allocate_iregister_slots.nit:199 */
+      /* analysis/allocate_iregister_slots.nit:199 */
       REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -853,9 +853,9 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//allocate_iregister_slots.nit:207 */
+  /* analysis/allocate_iregister_slots.nit:207 */
   fra.me.REG[2] = ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra.me.REG[1]);
-  /* ./analysis//allocate_iregister_slots.nit:208 */
+  /* analysis/allocate_iregister_slots.nit:208 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -864,16 +864,16 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free
       REGB1 = TAG_Bool(false);
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB1 = TAG_Bool((fra.me.REG[2])==(NIT_NULL));
-      /* ./analysis//allocate_iregister_slots.nit:208 */
+      /* analysis/allocate_iregister_slots.nit:208 */
       REGB0 = REGB1;
     }
   }
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./analysis//allocate_iregister_slots.nit:209 */
+  /* analysis/allocate_iregister_slots.nit:209 */
   REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____born_rank(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -891,11 +891,11 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-  /* ./analysis//allocate_iregister_slots.nit:209 */
+  /* analysis/allocate_iregister_slots.nit:209 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./analysis//allocate_iregister_slots.nit:210 */
+    /* analysis/allocate_iregister_slots.nit:210 */
     REGB1 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -904,7 +904,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free
     fra.me.REG[2] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   } else {
-    /* ./analysis//allocate_iregister_slots.nit:211 */
+    /* analysis/allocate_iregister_slots.nit:211 */
     fra.me.REG[2] = ATTR_analysis___allocate_iregister_slots___IRegister____last(fra.me.REG[1]);
     REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -920,7 +920,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free
     }
     REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
     if (UNTAG_Bool(REGB1)) {
-      /* ./analysis//allocate_iregister_slots.nit:212 */
+      /* analysis/allocate_iregister_slots.nit:212 */
       REGB1 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra.me.REG[1])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -928,7 +928,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free
       }
       REGB1 = ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra.me.REG[1]);
       if (UNTAG_Bool(REGB1)) {
-        /* ./analysis//allocate_iregister_slots.nit:213 */
+        /* analysis/allocate_iregister_slots.nit:213 */
         REGB1 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra.me.REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
@@ -937,7 +937,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free
         fra.me.REG[2] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra.me.REG[0]);
         CALL_analysis___allocate_iregister_slots___SlotGroup___free(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
       } else {
-        /* ./analysis//allocate_iregister_slots.nit:214 */
+        /* analysis/allocate_iregister_slots.nit:214 */
         REGB1 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra.me.REG[1])!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
@@ -945,7 +945,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free
         }
         REGB1 = ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra.me.REG[1]);
         if (UNTAG_Bool(REGB1)) {
-          /* ./analysis//allocate_iregister_slots.nit:215 */
+          /* analysis/allocate_iregister_slots.nit:215 */
           REGB1 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
           } else {
@@ -954,7 +954,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free
           fra.me.REG[2] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra.me.REG[0]);
           CALL_analysis___allocate_iregister_slots___SlotGroup___free(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
         } else {
-          /* ./analysis//allocate_iregister_slots.nit:217 */
+          /* analysis/allocate_iregister_slots.nit:217 */
           REGB1 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
           } else {
@@ -964,7 +964,7 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free
           CALL_analysis___allocate_iregister_slots___SlotGroup___free(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
         }
       }
-      /* ./analysis//allocate_iregister_slots.nit:219 */
+      /* analysis/allocate_iregister_slots.nit:219 */
       ATTR_analysis___allocate_iregister_slots___IRegister____last(fra.me.REG[1]) = NIT_NULL;
     }
   }
@@ -986,21 +986,21 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___irou
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//allocate_iregister_slots.nit:226 */
+  /* analysis/allocate_iregister_slots.nit:226 */
   REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_current_ir", LOCATE_analysis___allocate_iregister_slots, 226);
   }
   fra.me.REG[1] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra.me.REG[0]);
-  /* ./analysis//allocate_iregister_slots.nit:227 */
+  /* analysis/allocate_iregister_slots.nit:227 */
   CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./analysis//allocate_iregister_slots.nit:228 */
+  /* analysis/allocate_iregister_slots.nit:228 */
   REGB0 = TAG_Int(1);
   ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra.me.REG[0]) = REGB0;
-  /* ./analysis//allocate_iregister_slots.nit:229 */
+  /* analysis/allocate_iregister_slots.nit:229 */
   CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./analysis//allocate_iregister_slots.nit:230 */
+  /* analysis/allocate_iregister_slots.nit:230 */
   REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1033,12 +1033,12 @@ void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___init
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//allocate_iregister_slots.nit:233 */
+  /* analysis/allocate_iregister_slots.nit:233 */
   fra.me.REG[2] = fra.me.REG[0];
   CALL_icode___icode_tools___ICodeVisitor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./analysis//allocate_iregister_slots.nit:235 */
+  /* analysis/allocate_iregister_slots.nit:235 */
   ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./analysis//allocate_iregister_slots.nit:236 */
+  /* analysis/allocate_iregister_slots.nit:236 */
   REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1067,7 +1067,7 @@ void analysis___allocate_iregister_slots___SlotGroup___register(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//allocate_iregister_slots.nit:251 */
+  /* analysis/allocate_iregister_slots.nit:251 */
   REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1076,7 +1076,7 @@ void analysis___allocate_iregister_slots___SlotGroup___register(val_t p0, val_t
   fra.me.REG[2] = ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//allocate_iregister_slots.nit:252 */
+    /* analysis/allocate_iregister_slots.nit:252 */
     REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1084,15 +1084,15 @@ void analysis___allocate_iregister_slots___SlotGroup___register(val_t p0, val_t
     }
     REGB0 = ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra.me.REG[0]);
     ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra.me.REG[1]) = REGB0;
-    /* ./analysis//allocate_iregister_slots.nit:253 */
+    /* analysis/allocate_iregister_slots.nit:253 */
     REGB0 = ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra.me.REG[0]);
     REGB1 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-    /* ./analysis//allocate_iregister_slots.nit:253 */
+    /* analysis/allocate_iregister_slots.nit:253 */
     ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra.me.REG[0]) = REGB1;
   } else {
-    /* ./analysis//allocate_iregister_slots.nit:255 */
+    /* analysis/allocate_iregister_slots.nit:255 */
     REGB1 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1121,9 +1121,9 @@ void analysis___allocate_iregister_slots___SlotGroup___free(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//allocate_iregister_slots.nit:259 */
+  /* analysis/allocate_iregister_slots.nit:259 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./analysis//allocate_iregister_slots.nit:262 */
+  /* analysis/allocate_iregister_slots.nit:262 */
   REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1169,7 +1169,7 @@ val_t analysis___allocate_iregister_slots___IRoutine___std_slots_nb(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//allocate_iregister_slots.nit:267 */
+  /* analysis/allocate_iregister_slots.nit:267 */
   REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRoutine____std_slots_nb(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1192,7 +1192,7 @@ val_t analysis___allocate_iregister_slots___IRoutine___tag_slots_nb(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//allocate_iregister_slots.nit:270 */
+  /* analysis/allocate_iregister_slots.nit:270 */
   REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRoutine____tag_slots_nb(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1214,9 +1214,9 @@ void analysis___allocate_iregister_slots___IRoutine___allocate_iregister_slots(v
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//allocate_iregister_slots.nit:275 */
+  /* analysis/allocate_iregister_slots.nit:275 */
   fra.me.REG[0] = NEW_IRegisterSlotAllocationVisitor_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___init(fra.me.REG[0]);
-  /* ./analysis//allocate_iregister_slots.nit:276 */
+  /* analysis/allocate_iregister_slots.nit:276 */
   CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___iroutine_slot_allocation(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
@@ -1233,7 +1233,7 @@ val_t analysis___allocate_iregister_slots___IRegister___slot_index(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//allocate_iregister_slots.nit:281 */
+  /* analysis/allocate_iregister_slots.nit:281 */
   fra.me.REG[0] = ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1252,7 +1252,7 @@ void analysis___allocate_iregister_slots___IRegister___slot_index__eq(val_t p0,
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//allocate_iregister_slots.nit:281 */
+  /* analysis/allocate_iregister_slots.nit:281 */
   ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1270,7 +1270,7 @@ val_t analysis___allocate_iregister_slots___IRegister___is_local(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//allocate_iregister_slots.nit:286 */
+  /* analysis/allocate_iregister_slots.nit:286 */
   REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1294,7 +1294,7 @@ void analysis___allocate_iregister_slots___IRegister___is_local__eq(val_t p0, va
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./analysis//allocate_iregister_slots.nit:286 */
+  /* analysis/allocate_iregister_slots.nit:286 */
   ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -1311,7 +1311,7 @@ val_t analysis___allocate_iregister_slots___IRegister___local_iroutine(val_t p0)
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//allocate_iregister_slots.nit:289 */
+  /* analysis/allocate_iregister_slots.nit:289 */
   fra.me.REG[0] = ATTR_analysis___allocate_iregister_slots___IRegister____local_iroutine(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1330,7 +1330,7 @@ void analysis___allocate_iregister_slots___IRegister___local_iroutine__eq(val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//allocate_iregister_slots.nit:289 */
+  /* analysis/allocate_iregister_slots.nit:289 */
   ATTR_analysis___allocate_iregister_slots___IRegister____local_iroutine(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1348,7 +1348,7 @@ val_t analysis___allocate_iregister_slots___IRegister___in_tag_slots(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//allocate_iregister_slots.nit:292 */
+  /* analysis/allocate_iregister_slots.nit:292 */
   REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1372,7 +1372,7 @@ void analysis___allocate_iregister_slots___IRegister___in_tag_slots__eq(val_t p0
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./analysis//allocate_iregister_slots.nit:292 */
+  /* analysis/allocate_iregister_slots.nit:292 */
   ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
diff --git a/c_src/analysis___cha_analysis._sep.h b/c_src/analysis___cha_analysis._sep.h
deleted file mode 100644 (file)
index e7d2bc0..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./analysis/cha_analysis. */
-#ifndef analysis___cha_analysis_sep
-#define analysis___cha_analysis_sep
-#include "analysis___reachable_method_analysis._sep.h"
-#include <nit_common.h>
-
-extern const classtable_elt_t VFT_analysis___cha_analysis___ChaContext[];
-
-extern const classtable_elt_t VFT_analysis___cha_analysis___ChaBuilder[];
-
-extern const classtable_elt_t VFT_analysis___cha_analysis___ChaVisitor[];
-extern const char *LOCATE_analysis___cha_analysis;
-extern const int SFT_analysis___cha_analysis[];
-#define ID_analysis___cha_analysis___ChaContext (SFT_analysis___cha_analysis[0])
-#define COLOR_analysis___cha_analysis___ChaContext (SFT_analysis___cha_analysis[1])
-#define ATTR_analysis___cha_analysis___ChaContext____reachable_iroutines(recv) ATTR(recv, (SFT_analysis___cha_analysis[2] + 0))
-#define INIT_TABLE_POS_analysis___cha_analysis___ChaContext (SFT_analysis___cha_analysis[3] + 0)
-#define CALL_analysis___cha_analysis___ChaContext___reachable_iroutines(recv) ((analysis___cha_analysis___ChaContext___reachable_iroutines_t)CALL((recv), (SFT_analysis___cha_analysis[3] + 1)))
-#define ID_analysis___cha_analysis___ChaBuilder (SFT_analysis___cha_analysis[4])
-#define COLOR_analysis___cha_analysis___ChaBuilder (SFT_analysis___cha_analysis[5])
-#define ATTR_analysis___cha_analysis___ChaBuilder____iroutine_to_search(recv) ATTR(recv, (SFT_analysis___cha_analysis[6] + 0))
-#define ATTR_analysis___cha_analysis___ChaBuilder____context(recv) ATTR(recv, (SFT_analysis___cha_analysis[6] + 1))
-#define ATTR_analysis___cha_analysis___ChaBuilder____program(recv) ATTR(recv, (SFT_analysis___cha_analysis[6] + 2))
-#define INIT_TABLE_POS_analysis___cha_analysis___ChaBuilder (SFT_analysis___cha_analysis[7] + 0)
-#define CALL_analysis___cha_analysis___ChaBuilder___iroutine_to_search(recv) ((analysis___cha_analysis___ChaBuilder___iroutine_to_search_t)CALL((recv), (SFT_analysis___cha_analysis[7] + 1)))
-#define CALL_analysis___cha_analysis___ChaBuilder___context(recv) ((analysis___cha_analysis___ChaBuilder___context_t)CALL((recv), (SFT_analysis___cha_analysis[7] + 2)))
-#define CALL_analysis___cha_analysis___ChaBuilder___program(recv) ((analysis___cha_analysis___ChaBuilder___program_t)CALL((recv), (SFT_analysis___cha_analysis[7] + 3)))
-#define CALL_analysis___cha_analysis___ChaBuilder___init(recv) ((analysis___cha_analysis___ChaBuilder___init_t)CALL((recv), (SFT_analysis___cha_analysis[7] + 4)))
-#define CALL_analysis___cha_analysis___ChaBuilder___add_search(recv) ((analysis___cha_analysis___ChaBuilder___add_search_t)CALL((recv), (SFT_analysis___cha_analysis[7] + 5)))
-#define CALL_analysis___cha_analysis___ChaBuilder___work(recv) ((analysis___cha_analysis___ChaBuilder___work_t)CALL((recv), (SFT_analysis___cha_analysis[7] + 6)))
-#define ID_analysis___cha_analysis___ChaVisitor (SFT_analysis___cha_analysis[8])
-#define COLOR_analysis___cha_analysis___ChaVisitor (SFT_analysis___cha_analysis[9])
-#define ATTR_analysis___cha_analysis___ChaVisitor____builder(recv) ATTR(recv, (SFT_analysis___cha_analysis[10] + 0))
-#define INIT_TABLE_POS_analysis___cha_analysis___ChaVisitor (SFT_analysis___cha_analysis[11] + 0)
-#define CALL_analysis___cha_analysis___ChaVisitor___builder(recv) ((analysis___cha_analysis___ChaVisitor___builder_t)CALL((recv), (SFT_analysis___cha_analysis[11] + 1)))
-#define CALL_SUPER_analysis___cha_analysis___ChaVisitor___visit_icode(recv) ((analysis___cha_analysis___ChaVisitor___visit_icode_t)CALL((recv), (SFT_analysis___cha_analysis[11] + 2)))
-#define CALL_analysis___cha_analysis___ChaVisitor___init(recv) ((analysis___cha_analysis___ChaVisitor___init_t)CALL((recv), (SFT_analysis___cha_analysis[11] + 3)))
-static const char * const LOCATE_analysis___cha_analysis___ChaContext___reachable_iroutines = "cha_analysis::ChaContext::reachable_iroutines";
-val_t analysis___cha_analysis___ChaContext___reachable_iroutines(val_t p0);
-typedef val_t (*analysis___cha_analysis___ChaContext___reachable_iroutines_t)(val_t p0);
-static const char * const LOCATE_analysis___cha_analysis___ChaContext___is_iroutine_reachable = "cha_analysis::ChaContext::(reachable_method_analysis::ReachableMethodAnalysis::is_iroutine_reachable)";
-val_t analysis___cha_analysis___ChaContext___is_iroutine_reachable(val_t p0, val_t p1);
-typedef val_t (*analysis___cha_analysis___ChaContext___is_iroutine_reachable_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___cha_analysis___ChaContext___is_method_reachable = "cha_analysis::ChaContext::(reachable_method_analysis::ReachableMethodAnalysis::is_method_reachable)";
-val_t analysis___cha_analysis___ChaContext___is_method_reachable(val_t p0, val_t p1);
-typedef val_t (*analysis___cha_analysis___ChaContext___is_method_reachable_t)(val_t p0, val_t p1);
-val_t NEW_ChaContext_analysis___reachable_method_analysis___ReachableMethodAnalysis___init();
-static const char * const LOCATE_analysis___cha_analysis___ChaBuilder___iroutine_to_search = "cha_analysis::ChaBuilder::iroutine_to_search";
-val_t analysis___cha_analysis___ChaBuilder___iroutine_to_search(val_t p0);
-typedef val_t (*analysis___cha_analysis___ChaBuilder___iroutine_to_search_t)(val_t p0);
-static const char * const LOCATE_analysis___cha_analysis___ChaBuilder___context = "cha_analysis::ChaBuilder::context";
-val_t analysis___cha_analysis___ChaBuilder___context(val_t p0);
-typedef val_t (*analysis___cha_analysis___ChaBuilder___context_t)(val_t p0);
-static const char * const LOCATE_analysis___cha_analysis___ChaBuilder___program = "cha_analysis::ChaBuilder::program";
-val_t analysis___cha_analysis___ChaBuilder___program(val_t p0);
-typedef val_t (*analysis___cha_analysis___ChaBuilder___program_t)(val_t p0);
-static const char * const LOCATE_analysis___cha_analysis___ChaBuilder___init = "cha_analysis::ChaBuilder::init";
-void analysis___cha_analysis___ChaBuilder___init(val_t p0, val_t p1, int* init_table);
-typedef void (*analysis___cha_analysis___ChaBuilder___init_t)(val_t p0, val_t p1, int* init_table);
-val_t NEW_ChaBuilder_analysis___cha_analysis___ChaBuilder___init(val_t p0);
-static const char * const LOCATE_analysis___cha_analysis___ChaBuilder___add_search = "cha_analysis::ChaBuilder::add_search";
-void analysis___cha_analysis___ChaBuilder___add_search(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-typedef void (*analysis___cha_analysis___ChaBuilder___add_search_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-      typedef void (*CLOS_OC_analysis___cha_analysis___ChaBuilder___add_search_1_0)(struct stack_frame_t *);
-      void OC_analysis___cha_analysis___ChaBuilder___add_search_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-      typedef void (*OC_analysis___cha_analysis___ChaBuilder___add_search_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-      typedef void (*CLOS_OC_analysis___cha_analysis___ChaBuilder___add_search_2_0)(struct stack_frame_t *);
-      void OC_analysis___cha_analysis___ChaBuilder___add_search_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-      typedef void (*OC_analysis___cha_analysis___ChaBuilder___add_search_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-static const char * const LOCATE_analysis___cha_analysis___ChaBuilder___work = "cha_analysis::ChaBuilder::work";
-void analysis___cha_analysis___ChaBuilder___work(val_t p0);
-typedef void (*analysis___cha_analysis___ChaBuilder___work_t)(val_t p0);
-static const char * const LOCATE_analysis___cha_analysis___ChaVisitor___builder = "cha_analysis::ChaVisitor::builder";
-val_t analysis___cha_analysis___ChaVisitor___builder(val_t p0);
-typedef val_t (*analysis___cha_analysis___ChaVisitor___builder_t)(val_t p0);
-static const char * const LOCATE_analysis___cha_analysis___ChaVisitor___visit_icode = "cha_analysis::ChaVisitor::(icode_tools::ICodeVisitor::visit_icode)";
-void analysis___cha_analysis___ChaVisitor___visit_icode(val_t p0, val_t p1);
-typedef void (*analysis___cha_analysis___ChaVisitor___visit_icode_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___cha_analysis___ChaVisitor___init = "cha_analysis::ChaVisitor::init";
-void analysis___cha_analysis___ChaVisitor___init(val_t p0, val_t p1, int* init_table);
-typedef void (*analysis___cha_analysis___ChaVisitor___init_t)(val_t p0, val_t p1, int* init_table);
-val_t NEW_ChaVisitor_analysis___cha_analysis___ChaVisitor___init(val_t p0);
-#endif
diff --git a/c_src/analysis___dead_method_removal._sep.h b/c_src/analysis___dead_method_removal._sep.h
deleted file mode 100644 (file)
index 1f2dd38..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./analysis/dead_method_removal. */
-#ifndef analysis___dead_method_removal_sep
-#define analysis___dead_method_removal_sep
-#include "analysis___reachable_method_analysis._sep.h"
-#include <nit_common.h>
-extern const char *LOCATE_analysis___dead_method_removal;
-extern const int SFT_analysis___dead_method_removal[];
-#define ATTR_analysis___dead_method_removal___Program____nb_removed_iroutines(recv) ATTR(recv, (SFT_analysis___dead_method_removal[0] + 0))
-#define ATTR_analysis___dead_method_removal___Program____nb_not_removed_iroutines(recv) ATTR(recv, (SFT_analysis___dead_method_removal[0] + 1))
-#define CALL_analysis___dead_method_removal___Program___nb_removed_iroutines(recv) ((analysis___dead_method_removal___Program___nb_removed_iroutines_t)CALL((recv), (SFT_analysis___dead_method_removal[1] + 0)))
-#define CALL_analysis___dead_method_removal___Program___nb_not_removed_iroutines(recv) ((analysis___dead_method_removal___Program___nb_not_removed_iroutines_t)CALL((recv), (SFT_analysis___dead_method_removal[1] + 1)))
-#define CALL_analysis___dead_method_removal___Program___optimize_dead_methods(recv) ((analysis___dead_method_removal___Program___optimize_dead_methods_t)CALL((recv), (SFT_analysis___dead_method_removal[1] + 2)))
-#define CALL_analysis___dead_method_removal___Program___dump_dead_method_optimization(recv) ((analysis___dead_method_removal___Program___dump_dead_method_optimization_t)CALL((recv), (SFT_analysis___dead_method_removal[1] + 3)))
-#define CALL_analysis___dead_method_removal___IRoutine___set_not_reachable(recv) ((analysis___dead_method_removal___IRoutine___set_not_reachable_t)CALL((recv), (SFT_analysis___dead_method_removal[2] + 0)))
-static const char * const LOCATE_analysis___dead_method_removal___Program___nb_removed_iroutines = "dead_method_removal::Program::nb_removed_iroutines";
-val_t analysis___dead_method_removal___Program___nb_removed_iroutines(val_t p0);
-typedef val_t (*analysis___dead_method_removal___Program___nb_removed_iroutines_t)(val_t p0);
-static const char * const LOCATE_analysis___dead_method_removal___Program___nb_not_removed_iroutines = "dead_method_removal::Program::nb_not_removed_iroutines";
-val_t analysis___dead_method_removal___Program___nb_not_removed_iroutines(val_t p0);
-typedef val_t (*analysis___dead_method_removal___Program___nb_not_removed_iroutines_t)(val_t p0);
-static const char * const LOCATE_analysis___dead_method_removal___Program___optimize_dead_methods = "dead_method_removal::Program::optimize_dead_methods";
-void analysis___dead_method_removal___Program___optimize_dead_methods(val_t p0);
-typedef void (*analysis___dead_method_removal___Program___optimize_dead_methods_t)(val_t p0);
-  void OC_analysis___dead_method_removal___Program___optimize_dead_methods_1(struct stack_frame_t *closctx, val_t p0, val_t p1);
-  typedef void (*OC_analysis___dead_method_removal___Program___optimize_dead_methods_1_t)(struct stack_frame_t *closctx, val_t p0, val_t p1);
-static const char * const LOCATE_analysis___dead_method_removal___Program___dump_dead_method_optimization = "dead_method_removal::Program::dump_dead_method_optimization";
-void analysis___dead_method_removal___Program___dump_dead_method_optimization(val_t p0, val_t p1);
-typedef void (*analysis___dead_method_removal___Program___dump_dead_method_optimization_t)(val_t p0, val_t p1);
-val_t NEW_Program_program___Program___init(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___dead_method_removal___IRoutine___set_not_reachable = "dead_method_removal::IRoutine::set_not_reachable";
-void analysis___dead_method_removal___IRoutine___set_not_reachable(val_t p0, val_t p1);
-typedef void (*analysis___dead_method_removal___IRoutine___set_not_reachable_t)(val_t p0, val_t p1);
-val_t NEW_IRoutine_icode___icode_base___IRoutine___init(val_t p0, val_t p1);
-#endif
index 903a2b4..86c6edd 100644 (file)
@@ -29,17 +29,17 @@ void analysis___icode_dump___IRoutine___dump(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:27 */
+  /* analysis/icode_dump.nit:27 */
   fra.me.REG[2] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//icode_dump.nit:28 */
+    /* analysis/icode_dump.nit:28 */
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-    /* ./analysis//icode_dump.nit:29 */
+    /* analysis/icode_dump.nit:29 */
     fra.me.REG[3] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_analysis___icode_dump___IRoutine___dump_1));
-    /* ./analysis//icode_dump.nit:32 */
+    /* analysis/icode_dump.nit:32 */
     REGB0 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_2) {
@@ -73,9 +73,9 @@ void analysis___icode_dump___IRoutine___dump(val_t p0, val_t p1){
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     CALL_analysis___icode_dump___ICodeDumper___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./analysis//icode_dump.nit:34 */
+  /* analysis/icode_dump.nit:34 */
   fra.me.REG[3] = CALL_icode___icode_base___IRoutine___result(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./analysis//icode_dump.nit:35 */
+  /* analysis/icode_dump.nit:35 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -90,7 +90,7 @@ void analysis___icode_dump___IRoutine___dump(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//icode_dump.nit:36 */
+    /* analysis/icode_dump.nit:36 */
     REGB0 = TAG_Int(3);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_5) {
@@ -116,7 +116,7 @@ void analysis___icode_dump___IRoutine___dump(val_t p0, val_t p1){
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_analysis___icode_dump___ICodeDumper___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
   }
-  /* ./analysis//icode_dump.nit:38 */
+  /* analysis/icode_dump.nit:38 */
   REGB0 = CALL_analysis___allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -124,11 +124,11 @@ void analysis___icode_dump___IRoutine___dump(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-  /* ./analysis//icode_dump.nit:38 */
+  /* analysis/icode_dump.nit:38 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./analysis//icode_dump.nit:39 */
+    /* analysis/icode_dump.nit:39 */
     REGB1 = TAG_Int(3);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
     if (!once_value_7) {
@@ -155,7 +155,7 @@ void analysis___icode_dump___IRoutine___dump(val_t p0, val_t p1){
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_analysis___icode_dump___ICodeDumper___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
   }
-  /* ./analysis//icode_dump.nit:41 */
+  /* analysis/icode_dump.nit:41 */
   REGB1 = CALL_analysis___allocate_iregister_slots___IRoutine___tag_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
@@ -163,11 +163,11 @@ void analysis___icode_dump___IRoutine___dump(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
-  /* ./analysis//icode_dump.nit:41 */
+  /* analysis/icode_dump.nit:41 */
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//icode_dump.nit:42 */
+    /* analysis/icode_dump.nit:42 */
     REGB0 = TAG_Int(3);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_9) {
@@ -194,9 +194,9 @@ void analysis___icode_dump___IRoutine___dump(val_t p0, val_t p1){
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_analysis___icode_dump___ICodeDumper___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
   }
-  /* ./analysis//icode_dump.nit:44 */
+  /* analysis/icode_dump.nit:44 */
   fra.me.REG[4] = CALL_icode___icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./analysis//icode_dump.nit:45 */
+  /* analysis/icode_dump.nit:45 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -211,14 +211,14 @@ void analysis___icode_dump___IRoutine___dump(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//icode_dump.nit:46 */
+    /* analysis/icode_dump.nit:46 */
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_analysis___icode_dump, 46);
     }
     CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_analysis___icode_dump___IRoutine___dump_11));
   }
-  /* ./analysis//icode_dump.nit:50 */
+  /* analysis/icode_dump.nit:50 */
   fra.me.REG[0] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]);
   CALL_analysis___icode_dump___ICode___dump(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
@@ -240,7 +240,7 @@ void analysis___icode_dump___IRoutine___dump(val_t p0, val_t p1){
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./analysis//icode_dump.nit:30 */
+      /* analysis/icode_dump.nit:30 */
       fra.me.REG[0] = CALL_analysis___icode_dump___ICodeDumper___register(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
       stack_frame_head = fra.me.prev;
@@ -262,7 +262,7 @@ void analysis___icode_dump___IRoutine___dump(val_t p0, val_t p1){
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./analysis//icode_dump.nit:47 */
+      /* analysis/icode_dump.nit:47 */
       CALL_analysis___icode_dump___IClosureDecl___dump(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
       stack_frame_head = fra.me.prev;
       return;
@@ -287,7 +287,7 @@ void analysis___icode_dump___IClosureDecl___dump(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:58 */
+  /* analysis/icode_dump.nit:58 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -312,7 +312,7 @@ void analysis___icode_dump___IClosureDecl___dump(val_t p0, val_t p1){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_analysis___icode_dump___ICodeDumper___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./analysis//icode_dump.nit:59 */
+  /* analysis/icode_dump.nit:59 */
   fra.me.REG[2] = CALL_icode___icode_base___IClosureDecl___default(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -328,16 +328,16 @@ void analysis___icode_dump___IClosureDecl___dump(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//icode_dump.nit:60 */
+    /* analysis/icode_dump.nit:60 */
     CALL_analysis___icode_dump___ICodeDumper___indent(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./analysis//icode_dump.nit:61 */
+    /* analysis/icode_dump.nit:61 */
     fra.me.REG[0] = CALL_icode___icode_base___IClosureDecl___default(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_analysis___icode_dump, 61);
     }
     CALL_analysis___icode_dump___IRoutine___dump(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    /* ./analysis//icode_dump.nit:62 */
+    /* analysis/icode_dump.nit:62 */
     CALL_analysis___icode_dump___ICodeDumper___unindent(fra.me.REG[1])(fra.me.REG[1]);
   }
   stack_frame_head = fra.me.prev;
@@ -356,7 +356,7 @@ val_t analysis___icode_dump___ICodeDumper___dump_locations(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//icode_dump.nit:68 */
+  /* analysis/icode_dump.nit:68 */
   REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____dump_locations(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -379,7 +379,7 @@ val_t analysis___icode_dump___ICodeDumper___dump_line_numbers(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//icode_dump.nit:69 */
+  /* analysis/icode_dump.nit:69 */
   REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____dump_line_numbers(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -407,9 +407,9 @@ void analysis___icode_dump___ICodeDumper___init(val_t p0, val_t p1, val_t p2, in
   fra.me.REG[0] = p0;
   REGB0 = p1;
   REGB1 = p2;
-  /* ./analysis//icode_dump.nit:74 */
+  /* analysis/icode_dump.nit:74 */
   ATTR_analysis___icode_dump___ICodeDumper____dump_locations(fra.me.REG[0]) = REGB0;
-  /* ./analysis//icode_dump.nit:75 */
+  /* analysis/icode_dump.nit:75 */
   ATTR_analysis___icode_dump___ICodeDumper____dump_line_numbers(fra.me.REG[0]) = REGB1;
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -447,7 +447,7 @@ val_t analysis___icode_dump___ICodeDumper___register(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:82 */
+  /* analysis/icode_dump.nit:82 */
   REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -456,7 +456,7 @@ val_t analysis___icode_dump___ICodeDumper___register(val_t p0, val_t p1){
   fra.me.REG[2] = ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//icode_dump.nit:83 */
+    /* analysis/icode_dump.nit:83 */
     REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -466,9 +466,9 @@ val_t analysis___icode_dump___ICodeDumper___register(val_t p0, val_t p1){
     fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
     goto label1;
   } else {
-    /* ./analysis//icode_dump.nit:85 */
+    /* analysis/icode_dump.nit:85 */
     fra.me.REG[3] = CALL_analysis___allocate_iregister_slots___IRegister___slot_index(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./analysis//icode_dump.nit:86 */
+    /* analysis/icode_dump.nit:86 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -477,21 +477,21 @@ val_t analysis___icode_dump___ICodeDumper___register(val_t p0, val_t p1){
         REGB1 = TAG_Bool(false);
         REGB0 = REGB1;
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB1 = TAG_Bool((fra.me.REG[3])==(NIT_NULL));
-        /* ./analysis//icode_dump.nit:86 */
+        /* analysis/icode_dump.nit:86 */
         REGB0 = REGB1;
       }
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./analysis//icode_dump.nit:87 */
+      /* analysis/icode_dump.nit:87 */
       REGB0 = ATTR_analysis___icode_dump___ICodeDumper____last_value(fra.me.REG[0]);
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./analysis//icode_dump.nit:87 */
+      /* analysis/icode_dump.nit:87 */
       ATTR_analysis___icode_dump___ICodeDumper____last_value(fra.me.REG[0]) = REGB1;
-      /* ./analysis//icode_dump.nit:88 */
+      /* analysis/icode_dump.nit:88 */
       REGB1 = TAG_Int(3);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_2) {
@@ -521,7 +521,7 @@ val_t analysis___icode_dump___ICodeDumper___register(val_t p0, val_t p1){
       fra.me.REG[5] = fra.me.REG[5];
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
       fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-      /* ./analysis//icode_dump.nit:89 */
+      /* analysis/icode_dump.nit:89 */
       REGB1 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -529,21 +529,21 @@ val_t analysis___icode_dump___ICodeDumper___register(val_t p0, val_t p1){
       }
       fra.me.REG[5] = ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0]);
       CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[4]);
-      /* ./analysis//icode_dump.nit:90 */
+      /* analysis/icode_dump.nit:90 */
       fra.me.REG[2] = fra.me.REG[4];
       goto label1;
     } else {
-      /* ./analysis//icode_dump.nit:92 */
+      /* analysis/icode_dump.nit:92 */
       REGB1 = ATTR_analysis___icode_dump___ICodeDumper____last_value(fra.me.REG[0]);
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
-      /* ./analysis//icode_dump.nit:92 */
+      /* analysis/icode_dump.nit:92 */
       ATTR_analysis___icode_dump___ICodeDumper____last_value(fra.me.REG[0]) = REGB0;
-      /* ./analysis//icode_dump.nit:94 */
+      /* analysis/icode_dump.nit:94 */
       REGB0 = CALL_analysis___allocate_iregister_slots___IRegister___in_tag_slots(fra.me.REG[1])(fra.me.REG[1]);
       if (UNTAG_Bool(REGB0)) {
-        /* ./analysis//icode_dump.nit:95 */
+        /* analysis/icode_dump.nit:95 */
         REGB0 = TAG_Int(5);
         fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_4) {
@@ -585,10 +585,10 @@ val_t analysis___icode_dump___ICodeDumper___register(val_t p0, val_t p1){
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
         fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
       } else {
-        /* ./analysis//icode_dump.nit:96 */
+        /* analysis/icode_dump.nit:96 */
         REGB0 = CALL_analysis___allocate_iregister_slots___IRegister___is_local(fra.me.REG[1])(fra.me.REG[1]);
         if (UNTAG_Bool(REGB0)) {
-          /* ./analysis//icode_dump.nit:97 */
+          /* analysis/icode_dump.nit:97 */
           REGB0 = TAG_Int(5);
           fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
           if (!once_value_7) {
@@ -631,7 +631,7 @@ val_t analysis___icode_dump___ICodeDumper___register(val_t p0, val_t p1){
           fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
           fra.me.REG[4] = fra.me.REG[5];
         } else {
-          /* ./analysis//icode_dump.nit:99 */
+          /* analysis/icode_dump.nit:99 */
           REGB0 = TAG_Int(5);
           fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
           if (!once_value_10) {
@@ -675,7 +675,7 @@ val_t analysis___icode_dump___ICodeDumper___register(val_t p0, val_t p1){
           fra.me.REG[4] = fra.me.REG[5];
         }
       }
-      /* ./analysis//icode_dump.nit:101 */
+      /* analysis/icode_dump.nit:101 */
       REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -683,7 +683,7 @@ val_t analysis___icode_dump___ICodeDumper___register(val_t p0, val_t p1){
       }
       fra.me.REG[0] = ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0]);
       CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[4]);
-      /* ./analysis//icode_dump.nit:102 */
+      /* analysis/icode_dump.nit:102 */
       fra.me.REG[2] = fra.me.REG[4];
       goto label1;
     }
@@ -712,7 +712,7 @@ val_t analysis___icode_dump___ICodeDumper___register_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:110 */
+  /* analysis/icode_dump.nit:110 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -736,15 +736,15 @@ val_t analysis___icode_dump___ICodeDumper___register_all(val_t p0, val_t p1){
     fra.me.REG[2] = fra.me.REG[2];
     goto label2;
   }
-  /* ./analysis//icode_dump.nit:111 */
+  /* analysis/icode_dump.nit:111 */
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-  /* ./analysis//icode_dump.nit:112 */
+  /* analysis/icode_dump.nit:112 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_analysis___icode_dump, 112);
   }
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_analysis___icode_dump___ICodeDumper___register_all_3));
-  /* ./analysis//icode_dump.nit:115 */
+  /* analysis/icode_dump.nit:115 */
   if (!once_value_4) {
     fra.me.REG[0] = BOX_NativeString(", ");
     REGB0 = TAG_Int(2);
@@ -776,7 +776,7 @@ val_t analysis___icode_dump___ICodeDumper___register_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./analysis//icode_dump.nit:113 */
+    /* analysis/icode_dump.nit:113 */
     fra.me.REG[0] = CALL_analysis___icode_dump___ICodeDumper___register(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
@@ -803,7 +803,7 @@ val_t analysis___icode_dump___ICodeDumper___closdecl(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:124 */
+  /* analysis/icode_dump.nit:124 */
   REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -812,7 +812,7 @@ val_t analysis___icode_dump___ICodeDumper___closdecl(val_t p0, val_t p1){
   fra.me.REG[2] = ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//icode_dump.nit:125 */
+    /* analysis/icode_dump.nit:125 */
     REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -822,14 +822,14 @@ val_t analysis___icode_dump___ICodeDumper___closdecl(val_t p0, val_t p1){
     fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
     goto label1;
   } else {
-    /* ./analysis//icode_dump.nit:127 */
+    /* analysis/icode_dump.nit:127 */
     REGB0 = ATTR_analysis___icode_dump___ICodeDumper____last_clos(fra.me.REG[0]);
     REGB1 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-    /* ./analysis//icode_dump.nit:127 */
+    /* analysis/icode_dump.nit:127 */
     ATTR_analysis___icode_dump___ICodeDumper____last_clos(fra.me.REG[0]) = REGB1;
-    /* ./analysis//icode_dump.nit:128 */
+    /* analysis/icode_dump.nit:128 */
     REGB1 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
     if (!once_value_2) {
@@ -859,7 +859,7 @@ val_t analysis___icode_dump___ICodeDumper___closdecl(val_t p0, val_t p1){
     fra.me.REG[4] = fra.me.REG[4];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-    /* ./analysis//icode_dump.nit:129 */
+    /* analysis/icode_dump.nit:129 */
     REGB1 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -867,7 +867,7 @@ val_t analysis___icode_dump___ICodeDumper___closdecl(val_t p0, val_t p1){
     }
     fra.me.REG[0] = ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
-    /* ./analysis//icode_dump.nit:130 */
+    /* analysis/icode_dump.nit:130 */
     fra.me.REG[2] = fra.me.REG[3];
     goto label1;
   }
@@ -896,7 +896,7 @@ val_t analysis___icode_dump___ICodeDumper___lab(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:139 */
+  /* analysis/icode_dump.nit:139 */
   REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -905,7 +905,7 @@ val_t analysis___icode_dump___ICodeDumper___lab(val_t p0, val_t p1){
   fra.me.REG[2] = ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//icode_dump.nit:140 */
+    /* analysis/icode_dump.nit:140 */
     REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -915,14 +915,14 @@ val_t analysis___icode_dump___ICodeDumper___lab(val_t p0, val_t p1){
     fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
     goto label1;
   } else {
-    /* ./analysis//icode_dump.nit:142 */
+    /* analysis/icode_dump.nit:142 */
     REGB0 = ATTR_analysis___icode_dump___ICodeDumper____last_label(fra.me.REG[0]);
     REGB1 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-    /* ./analysis//icode_dump.nit:142 */
+    /* analysis/icode_dump.nit:142 */
     ATTR_analysis___icode_dump___ICodeDumper____last_label(fra.me.REG[0]) = REGB1;
-    /* ./analysis//icode_dump.nit:143 */
+    /* analysis/icode_dump.nit:143 */
     REGB1 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
     if (!once_value_2) {
@@ -952,7 +952,7 @@ val_t analysis___icode_dump___ICodeDumper___lab(val_t p0, val_t p1){
     fra.me.REG[4] = fra.me.REG[4];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-    /* ./analysis//icode_dump.nit:144 */
+    /* analysis/icode_dump.nit:144 */
     REGB1 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -960,7 +960,7 @@ val_t analysis___icode_dump___ICodeDumper___lab(val_t p0, val_t p1){
     }
     fra.me.REG[0] = ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
-    /* ./analysis//icode_dump.nit:145 */
+    /* analysis/icode_dump.nit:145 */
     fra.me.REG[2] = fra.me.REG[3];
     goto label1;
   }
@@ -989,7 +989,7 @@ val_t analysis___icode_dump___ICodeDumper___line(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:153 */
+  /* analysis/icode_dump.nit:153 */
   REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -998,7 +998,7 @@ val_t analysis___icode_dump___ICodeDumper___line(val_t p0, val_t p1){
   fra.me.REG[2] = ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//icode_dump.nit:154 */
+    /* analysis/icode_dump.nit:154 */
     REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1008,14 +1008,14 @@ val_t analysis___icode_dump___ICodeDumper___line(val_t p0, val_t p1){
     fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
     goto label1;
   } else {
-    /* ./analysis//icode_dump.nit:156 */
+    /* analysis/icode_dump.nit:156 */
     REGB0 = ATTR_analysis___icode_dump___ICodeDumper____last_line(fra.me.REG[0]);
     REGB1 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-    /* ./analysis//icode_dump.nit:156 */
+    /* analysis/icode_dump.nit:156 */
     ATTR_analysis___icode_dump___ICodeDumper____last_line(fra.me.REG[0]) = REGB1;
-    /* ./analysis//icode_dump.nit:157 */
+    /* analysis/icode_dump.nit:157 */
     REGB1 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
     if (!once_value_2) {
@@ -1045,7 +1045,7 @@ val_t analysis___icode_dump___ICodeDumper___line(val_t p0, val_t p1){
     fra.me.REG[4] = fra.me.REG[4];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-    /* ./analysis//icode_dump.nit:158 */
+    /* analysis/icode_dump.nit:158 */
     REGB1 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1053,7 +1053,7 @@ val_t analysis___icode_dump___ICodeDumper___line(val_t p0, val_t p1){
     }
     fra.me.REG[0] = ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
-    /* ./analysis//icode_dump.nit:159 */
+    /* analysis/icode_dump.nit:159 */
     fra.me.REG[2] = fra.me.REG[3];
     goto label1;
   }
@@ -1076,7 +1076,7 @@ val_t analysis___icode_dump___ICodeDumper___has_lab(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:166 */
+  /* analysis/icode_dump.nit:166 */
   REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1109,7 +1109,7 @@ void analysis___icode_dump___ICodeDumper___write(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:172 */
+  /* analysis/icode_dump.nit:172 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____indent_level(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -1117,18 +1117,18 @@ void analysis___icode_dump___ICodeDumper___write(val_t p0, val_t p1){
     nit_abort("Uninitialized attribute %s", "_indent_level", LOCATE_analysis___icode_dump, 172);
   }
   REGB1 = ATTR_analysis___icode_dump___ICodeDumper____indent_level(fra.me.REG[0]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./analysis//icode_dump.nit:173 */
+      /* analysis/icode_dump.nit:173 */
       REGB2 = TAG_Int(0);
       fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_1) {
@@ -1141,19 +1141,19 @@ void analysis___icode_dump___ICodeDumper___write(val_t p0, val_t p1){
       fra.me.REG[3] = fra.me.REG[3];
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
       CALL_standard___file___Object___printn(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./analysis//icode_dump.nit:175 */
+  /* analysis/icode_dump.nit:175 */
   CALL_standard___file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -1171,7 +1171,7 @@ val_t analysis___icode_dump___ICodeDumper___indent_level(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//icode_dump.nit:178 */
+  /* analysis/icode_dump.nit:178 */
   REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____indent_level(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1195,12 +1195,12 @@ void analysis___icode_dump___ICodeDumper___indent(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//icode_dump.nit:181 */
+  /* analysis/icode_dump.nit:181 */
   REGB0 = ATTR_analysis___icode_dump___ICodeDumper____indent_level(fra.me.REG[0]);
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./analysis//icode_dump.nit:181 */
+  /* analysis/icode_dump.nit:181 */
   ATTR_analysis___icode_dump___ICodeDumper____indent_level(fra.me.REG[0]) = REGB1;
   stack_frame_head = fra.me.prev;
   return;
@@ -1219,12 +1219,12 @@ void analysis___icode_dump___ICodeDumper___unindent(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//icode_dump.nit:184 */
+  /* analysis/icode_dump.nit:184 */
   REGB0 = ATTR_analysis___icode_dump___ICodeDumper____indent_level(fra.me.REG[0]);
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./analysis//icode_dump.nit:184 */
+  /* analysis/icode_dump.nit:184 */
   ATTR_analysis___icode_dump___ICodeDumper____indent_level(fra.me.REG[0]) = REGB1;
   stack_frame_head = fra.me.prev;
   return;
@@ -1266,9 +1266,9 @@ void analysis___icode_dump___ICode___dump(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:191 */
+  /* analysis/icode_dump.nit:191 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./analysis//icode_dump.nit:192 */
+  /* analysis/icode_dump.nit:192 */
   if (!once_value_1) {
     fra.me.REG[3] = BOX_NativeString("");
     REGB0 = TAG_Int(0);
@@ -1277,7 +1277,7 @@ void analysis___icode_dump___ICode___dump(val_t p0, val_t p1){
     register_static_object(&once_value_1);
   } else fra.me.REG[3] = once_value_1;
   fra.me.REG[3] = fra.me.REG[3];
-  /* ./analysis//icode_dump.nit:193 */
+  /* analysis/icode_dump.nit:193 */
   if (!once_value_2) {
     fra.me.REG[4] = BOX_NativeString("");
     REGB0 = TAG_Int(0);
@@ -1286,9 +1286,9 @@ void analysis___icode_dump___ICode___dump(val_t p0, val_t p1){
     register_static_object(&once_value_2);
   } else fra.me.REG[4] = once_value_2;
   fra.me.REG[4] = fra.me.REG[4];
-  /* ./analysis//icode_dump.nit:194 */
+  /* analysis/icode_dump.nit:194 */
   fra.me.REG[5] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./analysis//icode_dump.nit:195 */
+  /* analysis/icode_dump.nit:195 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1309,7 +1309,7 @@ void analysis___icode_dump___ICode___dump(val_t p0, val_t p1){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//icode_dump.nit:196 */
+    /* analysis/icode_dump.nit:196 */
     REGB0 = TAG_Int(3);
     fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_3) {
@@ -1335,10 +1335,10 @@ void analysis___icode_dump___ICode___dump(val_t p0, val_t p1){
     fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
     fra.me.REG[3] = fra.me.REG[6];
   }
-  /* ./analysis//icode_dump.nit:198 */
+  /* analysis/icode_dump.nit:198 */
   REGB0 = CALL_analysis___icode_dump___ICodeDumper___dump_line_numbers(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//icode_dump.nit:199 */
+    /* analysis/icode_dump.nit:199 */
     REGB0 = TAG_Int(3);
     fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_5) {
@@ -1364,7 +1364,7 @@ void analysis___icode_dump___ICode___dump(val_t p0, val_t p1){
     fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
     fra.me.REG[4] = fra.me.REG[6];
   }
-  /* ./analysis//icode_dump.nit:201 */
+  /* analysis/icode_dump.nit:201 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1378,7 +1378,7 @@ void analysis___icode_dump___ICode___dump(val_t p0, val_t p1){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//icode_dump.nit:202 */
+    /* analysis/icode_dump.nit:202 */
     REGB0 = TAG_Int(7);
     fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_7) {
@@ -1424,7 +1424,7 @@ void analysis___icode_dump___ICode___dump(val_t p0, val_t p1){
     fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
     CALL_analysis___icode_dump___ICodeDumper___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
   } else {
-    /* ./analysis//icode_dump.nit:204 */
+    /* analysis/icode_dump.nit:204 */
     REGB0 = TAG_Int(9);
     fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_11) {
@@ -1500,7 +1500,7 @@ val_t analysis___icode_dump___ICode___dump_intern(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:209 */
+  /* analysis/icode_dump.nit:209 */
   if (!once_value_1) {
     fra.me.REG[1] = BOX_NativeString("???");
     REGB0 = TAG_Int(3);
@@ -1532,14 +1532,14 @@ void analysis___icode_dump___ICodeN___dump(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:213 */
+  /* analysis/icode_dump.nit:213 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./analysis//icode_dump.nit:215 */
+  /* analysis/icode_dump.nit:215 */
   CALL_SUPER_analysis___icode_dump___ICodeN___dump(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./analysis//icode_dump.nit:216 */
+  /* analysis/icode_dump.nit:216 */
   fra.me.REG[2] = CALL_icode___icode_base___ICodeN___closure_defs(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./analysis//icode_dump.nit:217 */
+  /* analysis/icode_dump.nit:217 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1554,7 +1554,7 @@ void analysis___icode_dump___ICodeN___dump(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//icode_dump.nit:218 */
+    /* analysis/icode_dump.nit:218 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_analysis___icode_dump, 218);
@@ -1585,7 +1585,7 @@ void analysis___icode_dump___ICodeN___dump(val_t p0, val_t p1){
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./analysis//icode_dump.nit:219 */
+      /* analysis/icode_dump.nit:219 */
       REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -1599,7 +1599,7 @@ void analysis___icode_dump___ICodeN___dump(val_t p0, val_t p1){
         }
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./analysis//icode_dump.nit:220 */
+        /* analysis/icode_dump.nit:220 */
         if (!once_value_2) {
           fra.me.REG[1] = BOX_NativeString("CLOSURE = NULL");
           REGB0 = TAG_Int(14);
@@ -1610,7 +1610,7 @@ void analysis___icode_dump___ICodeN___dump(val_t p0, val_t p1){
         fra.me.REG[1] = fra.me.REG[1];
         CALL_analysis___icode_dump___ICodeDumper___write(closctx->REG[3])(closctx->REG[3], fra.me.REG[1]);
       } else {
-        /* ./analysis//icode_dump.nit:222 */
+        /* analysis/icode_dump.nit:222 */
         if (!once_value_3) {
           fra.me.REG[1] = BOX_NativeString("CLOSURE");
           REGB0 = TAG_Int(7);
@@ -1620,15 +1620,15 @@ void analysis___icode_dump___ICodeN___dump(val_t p0, val_t p1){
         } else fra.me.REG[1] = once_value_3;
         fra.me.REG[1] = fra.me.REG[1];
         CALL_analysis___icode_dump___ICodeDumper___write(closctx->REG[3])(closctx->REG[3], fra.me.REG[1]);
-        /* ./analysis//icode_dump.nit:223 */
+        /* analysis/icode_dump.nit:223 */
         CALL_analysis___icode_dump___ICodeDumper___indent(closctx->REG[3])(closctx->REG[3]);
-        /* ./analysis//icode_dump.nit:224 */
+        /* analysis/icode_dump.nit:224 */
         REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
           nit_abort("Reciever is null", NULL, LOCATE_analysis___icode_dump, 224);
         }
         CALL_analysis___icode_dump___IRoutine___dump(fra.me.REG[0])(fra.me.REG[0], closctx->REG[3]);
-        /* ./analysis//icode_dump.nit:225 */
+        /* analysis/icode_dump.nit:225 */
         CALL_analysis___icode_dump___ICodeDumper___unindent(closctx->REG[3])(closctx->REG[3]);
       }
       stack_frame_head = fra.me.prev;
@@ -1654,12 +1654,12 @@ void analysis___icode_dump___ISeq___dump(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:235 */
+  /* analysis/icode_dump.nit:235 */
   fra.me.REG[2] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_analysis___icode_dump___ISeq___dump_1));
-  /* ./analysis//icode_dump.nit:238 */
+  /* analysis/icode_dump.nit:238 */
   fra.me.REG[0] = CALL_icode___icode_base___ISeq___iescape_mark(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./analysis//icode_dump.nit:239 */
+  /* analysis/icode_dump.nit:239 */
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1724,7 +1724,7 @@ void analysis___icode_dump___ISeq___dump(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./analysis//icode_dump.nit:236 */
+    /* analysis/icode_dump.nit:236 */
     CALL_analysis___icode_dump___ICode___dump(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
     stack_frame_head = fra.me.prev;
     return;
@@ -1750,7 +1750,7 @@ void analysis___icode_dump___IIf___dump(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:246 */
+  /* analysis/icode_dump.nit:246 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -1776,14 +1776,14 @@ void analysis___icode_dump___IIf___dump(val_t p0, val_t p1){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_analysis___icode_dump___ICodeDumper___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./analysis//icode_dump.nit:247 */
+  /* analysis/icode_dump.nit:247 */
   CALL_analysis___icode_dump___ICodeDumper___indent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./analysis//icode_dump.nit:248 */
+  /* analysis/icode_dump.nit:248 */
   fra.me.REG[2] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[0])(fra.me.REG[0]);
   CALL_analysis___icode_dump___ICode___dump(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./analysis//icode_dump.nit:249 */
+  /* analysis/icode_dump.nit:249 */
   CALL_analysis___icode_dump___ICodeDumper___unindent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./analysis//icode_dump.nit:250 */
+  /* analysis/icode_dump.nit:250 */
   if (!once_value_3) {
     fra.me.REG[2] = BOX_NativeString("} ELSE {");
     REGB0 = TAG_Int(8);
@@ -1793,14 +1793,14 @@ void analysis___icode_dump___IIf___dump(val_t p0, val_t p1){
   } else fra.me.REG[2] = once_value_3;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_analysis___icode_dump___ICodeDumper___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./analysis//icode_dump.nit:251 */
+  /* analysis/icode_dump.nit:251 */
   CALL_analysis___icode_dump___ICodeDumper___indent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./analysis//icode_dump.nit:252 */
+  /* analysis/icode_dump.nit:252 */
   fra.me.REG[0] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[0])(fra.me.REG[0]);
   CALL_analysis___icode_dump___ICode___dump(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./analysis//icode_dump.nit:253 */
+  /* analysis/icode_dump.nit:253 */
   CALL_analysis___icode_dump___ICodeDumper___unindent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./analysis//icode_dump.nit:254 */
+  /* analysis/icode_dump.nit:254 */
   if (!once_value_4) {
     fra.me.REG[0] = BOX_NativeString("}");
     REGB0 = TAG_Int(1);
@@ -1835,7 +1835,7 @@ void analysis___icode_dump___ILoop___dump(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:261 */
+  /* analysis/icode_dump.nit:261 */
   if (!once_value_1) {
     fra.me.REG[2] = BOX_NativeString("LOOP {");
     REGB0 = TAG_Int(6);
@@ -1845,14 +1845,14 @@ void analysis___icode_dump___ILoop___dump(val_t p0, val_t p1){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_analysis___icode_dump___ICodeDumper___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./analysis//icode_dump.nit:262 */
+  /* analysis/icode_dump.nit:262 */
   CALL_analysis___icode_dump___ICodeDumper___indent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./analysis//icode_dump.nit:263 */
+  /* analysis/icode_dump.nit:263 */
   fra.me.REG[2] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_analysis___icode_dump___ILoop___dump_2));
-  /* ./analysis//icode_dump.nit:266 */
+  /* analysis/icode_dump.nit:266 */
   CALL_analysis___icode_dump___ICodeDumper___unindent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./analysis//icode_dump.nit:267 */
+  /* analysis/icode_dump.nit:267 */
   if (!once_value_3) {
     fra.me.REG[2] = BOX_NativeString("}");
     REGB0 = TAG_Int(1);
@@ -1862,9 +1862,9 @@ void analysis___icode_dump___ILoop___dump(val_t p0, val_t p1){
   } else fra.me.REG[2] = once_value_3;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_analysis___icode_dump___ICodeDumper___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./analysis//icode_dump.nit:268 */
+  /* analysis/icode_dump.nit:268 */
   fra.me.REG[0] = CALL_icode___icode_base___ISeq___iescape_mark(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./analysis//icode_dump.nit:269 */
+  /* analysis/icode_dump.nit:269 */
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1929,7 +1929,7 @@ void analysis___icode_dump___ILoop___dump(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./analysis//icode_dump.nit:264 */
+    /* analysis/icode_dump.nit:264 */
     CALL_analysis___icode_dump___ICode___dump(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
     stack_frame_head = fra.me.prev;
     return;
@@ -1953,7 +1953,7 @@ val_t analysis___icode_dump___IEscape___dump_intern(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:276 */
+  /* analysis/icode_dump.nit:276 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2002,7 +2002,7 @@ val_t analysis___icode_dump___IAbort___dump_intern(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:283 */
+  /* analysis/icode_dump.nit:283 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2060,7 +2060,7 @@ val_t analysis___icode_dump___ICall___dump_intern(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:290 */
+  /* analysis/icode_dump.nit:290 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2123,7 +2123,7 @@ val_t analysis___icode_dump___INew___dump_intern(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:297 */
+  /* analysis/icode_dump.nit:297 */
   REGB0 = TAG_Int(7);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2197,7 +2197,7 @@ val_t analysis___icode_dump___ISuper___dump_intern(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:304 */
+  /* analysis/icode_dump.nit:304 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2259,7 +2259,7 @@ val_t analysis___icode_dump___IStaticCall___dump_intern(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:311 */
+  /* analysis/icode_dump.nit:311 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2319,7 +2319,7 @@ val_t analysis___icode_dump___IAllocateInstance___dump_intern(val_t p0, val_t p1
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:318 */
+  /* analysis/icode_dump.nit:318 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2369,7 +2369,7 @@ val_t analysis___icode_dump___ICheckInstance___dump_intern(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:325 */
+  /* analysis/icode_dump.nit:325 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2431,7 +2431,7 @@ val_t analysis___icode_dump___IInitAttributes___dump_intern(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:332 */
+  /* analysis/icode_dump.nit:332 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2493,7 +2493,7 @@ val_t analysis___icode_dump___IClosCall___dump_intern(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:339 */
+  /* analysis/icode_dump.nit:339 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2555,7 +2555,7 @@ val_t analysis___icode_dump___IAttrRead___dump_intern(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:346 */
+  /* analysis/icode_dump.nit:346 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2618,7 +2618,7 @@ val_t analysis___icode_dump___IAttrWrite___dump_intern(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:353 */
+  /* analysis/icode_dump.nit:353 */
   REGB0 = TAG_Int(7);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2692,7 +2692,7 @@ val_t analysis___icode_dump___IAttrIsset___dump_intern(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:360 */
+  /* analysis/icode_dump.nit:360 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2754,7 +2754,7 @@ val_t analysis___icode_dump___ITypeCheck___dump_intern(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:367 */
+  /* analysis/icode_dump.nit:367 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2816,7 +2816,7 @@ val_t analysis___icode_dump___INative___dump_intern(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:374 */
+  /* analysis/icode_dump.nit:374 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2876,7 +2876,7 @@ val_t analysis___icode_dump___IIntValue___dump_intern(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:381 */
+  /* analysis/icode_dump.nit:381 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2923,7 +2923,7 @@ val_t analysis___icode_dump___IBoolValue___dump_intern(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:388 */
+  /* analysis/icode_dump.nit:388 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2971,7 +2971,7 @@ val_t analysis___icode_dump___IStringValue___dump_intern(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:395 */
+  /* analysis/icode_dump.nit:395 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -3018,7 +3018,7 @@ val_t analysis___icode_dump___ICharValue___dump_intern(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:402 */
+  /* analysis/icode_dump.nit:402 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -3065,7 +3065,7 @@ val_t analysis___icode_dump___IFloatValue___dump_intern(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:409 */
+  /* analysis/icode_dump.nit:409 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -3113,7 +3113,7 @@ val_t analysis___icode_dump___IMove___dump_intern(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:416 */
+  /* analysis/icode_dump.nit:416 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -3163,7 +3163,7 @@ val_t analysis___icode_dump___IIs___dump_intern(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:423 */
+  /* analysis/icode_dump.nit:423 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -3224,7 +3224,7 @@ val_t analysis___icode_dump___INot___dump_intern(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:430 */
+  /* analysis/icode_dump.nit:430 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -3275,9 +3275,9 @@ void analysis___icode_dump___IOnce___dump(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:435 */
+  /* analysis/icode_dump.nit:435 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./analysis//icode_dump.nit:437 */
+  /* analysis/icode_dump.nit:437 */
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -3308,14 +3308,14 @@ void analysis___icode_dump___IOnce___dump(val_t p0, val_t p1){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_analysis___icode_dump___ICodeDumper___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./analysis//icode_dump.nit:438 */
+  /* analysis/icode_dump.nit:438 */
   CALL_analysis___icode_dump___ICodeDumper___indent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./analysis//icode_dump.nit:439 */
+  /* analysis/icode_dump.nit:439 */
   fra.me.REG[2] = CALL_icode___icode_base___IOnce___body(fra.me.REG[2])(fra.me.REG[2]);
   CALL_analysis___icode_dump___ICode___dump(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./analysis//icode_dump.nit:440 */
+  /* analysis/icode_dump.nit:440 */
   CALL_analysis___icode_dump___ICodeDumper___unindent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./analysis//icode_dump.nit:441 */
+  /* analysis/icode_dump.nit:441 */
   if (!once_value_3) {
     fra.me.REG[2] = BOX_NativeString("}");
     REGB0 = TAG_Int(1);
@@ -3347,7 +3347,7 @@ val_t analysis___icode_dump___IHasClos___dump_intern(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//icode_dump.nit:448 */
+  /* analysis/icode_dump.nit:448 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
diff --git a/c_src/analysis___inline_get_and_set._sep.h b/c_src/analysis___inline_get_and_set._sep.h
deleted file mode 100644 (file)
index 1a92b36..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./analysis/inline_get_and_set. */
-#ifndef analysis___inline_get_and_set_sep
-#define analysis___inline_get_and_set_sep
-#include "syntax._sep.h"
-#include "program._sep.h"
-#include <nit_common.h>
-
-extern const classtable_elt_t VFT_analysis___inline_get_and_set___InlineGetSetVisitor[];
-extern const char *LOCATE_analysis___inline_get_and_set;
-extern const int SFT_analysis___inline_get_and_set[];
-#define ATTR_analysis___inline_get_and_set___Program____number_getter_setter_inlined(recv) ATTR(recv, (SFT_analysis___inline_get_and_set[0] + 0))
-#define CALL_analysis___inline_get_and_set___Program___dump_inline_get_set(recv) ((analysis___inline_get_and_set___Program___dump_inline_get_set_t)CALL((recv), (SFT_analysis___inline_get_and_set[1] + 0)))
-#define CALL_analysis___inline_get_and_set___Program___inline_get_set(recv) ((analysis___inline_get_and_set___Program___inline_get_set_t)CALL((recv), (SFT_analysis___inline_get_and_set[1] + 1)))
-#define ID_analysis___inline_get_and_set___InlineGetSetVisitor (SFT_analysis___inline_get_and_set[2])
-#define COLOR_analysis___inline_get_and_set___InlineGetSetVisitor (SFT_analysis___inline_get_and_set[3])
-#define ATTR_analysis___inline_get_and_set___InlineGetSetVisitor____icb(recv) ATTR(recv, (SFT_analysis___inline_get_and_set[4] + 0))
-#define ATTR_analysis___inline_get_and_set___InlineGetSetVisitor____number_inlined(recv) ATTR(recv, (SFT_analysis___inline_get_and_set[4] + 1))
-#define INIT_TABLE_POS_analysis___inline_get_and_set___InlineGetSetVisitor (SFT_analysis___inline_get_and_set[5] + 0)
-#define CALL_analysis___inline_get_and_set___InlineGetSetVisitor___number_inlined(recv) ((analysis___inline_get_and_set___InlineGetSetVisitor___number_inlined_t)CALL((recv), (SFT_analysis___inline_get_and_set[5] + 1)))
-#define CALL_SUPER_analysis___inline_get_and_set___InlineGetSetVisitor___visit_icode(recv) ((analysis___inline_get_and_set___InlineGetSetVisitor___visit_icode_t)CALL((recv), (SFT_analysis___inline_get_and_set[5] + 2)))
-#define CALL_analysis___inline_get_and_set___InlineGetSetVisitor___init(recv) ((analysis___inline_get_and_set___InlineGetSetVisitor___init_t)CALL((recv), (SFT_analysis___inline_get_and_set[5] + 3)))
-static const char * const LOCATE_analysis___inline_get_and_set___Program___dump_inline_get_set = "inline_get_and_set::Program::dump_inline_get_set";
-void analysis___inline_get_and_set___Program___dump_inline_get_set(val_t p0, val_t p1);
-typedef void (*analysis___inline_get_and_set___Program___dump_inline_get_set_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___inline_get_and_set___Program___inline_get_set = "inline_get_and_set::Program::inline_get_set";
-void analysis___inline_get_and_set___Program___inline_get_set(val_t p0);
-typedef void (*analysis___inline_get_and_set___Program___inline_get_set_t)(val_t p0);
-  void OC_analysis___inline_get_and_set___Program___inline_get_set_1(struct stack_frame_t *closctx, val_t p0, val_t p1);
-  typedef void (*OC_analysis___inline_get_and_set___Program___inline_get_set_1_t)(struct stack_frame_t *closctx, val_t p0, val_t p1);
-val_t NEW_Program_program___Program___init(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___inline_get_and_set___InlineGetSetVisitor___number_inlined = "inline_get_and_set::InlineGetSetVisitor::number_inlined";
-val_t analysis___inline_get_and_set___InlineGetSetVisitor___number_inlined(val_t p0);
-typedef val_t (*analysis___inline_get_and_set___InlineGetSetVisitor___number_inlined_t)(val_t p0);
-static const char * const LOCATE_analysis___inline_get_and_set___InlineGetSetVisitor___visit_icode = "inline_get_and_set::InlineGetSetVisitor::(icode_tools::ICodeVisitor::visit_icode)";
-void analysis___inline_get_and_set___InlineGetSetVisitor___visit_icode(val_t p0, val_t p1);
-typedef void (*analysis___inline_get_and_set___InlineGetSetVisitor___visit_icode_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___inline_get_and_set___InlineGetSetVisitor___init = "inline_get_and_set::InlineGetSetVisitor::init";
-void analysis___inline_get_and_set___InlineGetSetVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table);
-typedef void (*analysis___inline_get_and_set___InlineGetSetVisitor___init_t)(val_t p0, val_t p1, val_t p2, int* init_table);
-val_t NEW_InlineGetSetVisitor_analysis___inline_get_and_set___InlineGetSetVisitor___init(val_t p0, val_t p1);
-#endif
index 4829691..1f587b2 100644 (file)
@@ -24,10 +24,10 @@ void analysis___inline_methods___InlineMethodVisitor___visit_icode(val_t p0, val
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//inline_methods.nit:27 */
+  /* analysis/inline_methods.nit:27 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./analysis//inline_methods.nit:29 */
+  /* analysis/inline_methods.nit:29 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___ICall, ID_icode___icode_base___ICall)) /*cast ICall*/;
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
@@ -41,15 +41,15 @@ void analysis___inline_methods___InlineMethodVisitor___visit_icode(val_t p0, val
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//inline_methods.nit:30 */
+    /* analysis/inline_methods.nit:30 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 30);
     }
     fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
-    /* ./analysis//inline_methods.nit:31 */
+    /* analysis/inline_methods.nit:31 */
     fra.me.REG[4] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[4])(fra.me.REG[4]);
-    /* ./analysis//inline_methods.nit:32 */
+    /* analysis/inline_methods.nit:32 */
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -74,14 +74,14 @@ void analysis___inline_methods___InlineMethodVisitor___visit_icode(val_t p0, val
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./analysis//inline_methods.nit:33 */
+      /* analysis/inline_methods.nit:33 */
       REGB0 = TAG_Bool(ATTR_analysis___inline_methods___InlineMethodVisitor____icb(fra.me.REG[2])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_icb", LOCATE_analysis___inline_methods, 33);
       }
       fra.me.REG[5] = ATTR_analysis___inline_methods___InlineMethodVisitor____icb(fra.me.REG[2]);
-      /* ./analysis//inline_methods.nit:34 */
+      /* analysis/inline_methods.nit:34 */
       fra.me.REG[6] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[5])(fra.me.REG[5]);
       REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[6],fra.me.REG[4]));
       if (UNTAG_Bool(REGB0)) {
@@ -90,14 +90,14 @@ void analysis___inline_methods___InlineMethodVisitor___visit_icode(val_t p0, val
         REGB0 = REGB1;
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./analysis//inline_methods.nit:37 */
+        /* analysis/inline_methods.nit:37 */
         fra.me.REG[6] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
         REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
           nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 37);
         }
         CALL_standard___collection___list___ListIterator___delete(fra.me.REG[6])(fra.me.REG[6]);
-        /* ./analysis//inline_methods.nit:38 */
+        /* analysis/inline_methods.nit:38 */
         REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
           nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 38);
@@ -109,28 +109,28 @@ void analysis___inline_methods___InlineMethodVisitor___visit_icode(val_t p0, val
         }
         fra.me.REG[7] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[3])(fra.me.REG[3]);
         fra.me.REG[7] = NEW_IStaticCall_icode___icode_base___IStaticCall___init(fra.me.REG[6], fra.me.REG[7]);
-        /* ./analysis//inline_methods.nit:39 */
+        /* analysis/inline_methods.nit:39 */
         REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
           nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 39);
         }
         fra.me.REG[6] = CALL_icode___icode_base___ICodeN___closure_defs(fra.me.REG[3])(fra.me.REG[3]);
         CALL_icode___icode_base___ICodeN___closure_defs__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
-        /* ./analysis//inline_methods.nit:40 */
+        /* analysis/inline_methods.nit:40 */
         REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
           nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 40);
         }
         fra.me.REG[6] = CALL_icode___icode_base___ICode___result(fra.me.REG[3])(fra.me.REG[3]);
         CALL_icode___icode_base___ICode___result__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
-        /* ./analysis//inline_methods.nit:41 */
+        /* analysis/inline_methods.nit:41 */
         fra.me.REG[6] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
         REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
           nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 41);
         }
         CALL_standard___collection___list___ListIterator___insert_before(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-        /* ./analysis//inline_methods.nit:42 */
+        /* analysis/inline_methods.nit:42 */
         fra.me.REG[7] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
         REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
@@ -138,20 +138,20 @@ void analysis___inline_methods___InlineMethodVisitor___visit_icode(val_t p0, val
         }
         CALL_standard___collection___list___ListIterator___delete(fra.me.REG[7])(fra.me.REG[7]);
       } else {
-        /* ./analysis//inline_methods.nit:44 */
+        /* analysis/inline_methods.nit:44 */
         fra.me.REG[7] = NEW_ISeq_icode___icode_base___ISeq___init();
-        /* ./analysis//inline_methods.nit:45 */
+        /* analysis/inline_methods.nit:45 */
         fra.me.REG[6] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[5])(fra.me.REG[5]);
-        /* ./analysis//inline_methods.nit:46 */
+        /* analysis/inline_methods.nit:46 */
         CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
-        /* ./analysis//inline_methods.nit:47 */
+        /* analysis/inline_methods.nit:47 */
         fra.me.REG[8] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
         REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
           nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 47);
         }
         CALL_standard___collection___list___ListIterator___insert_before(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
-        /* ./analysis//inline_methods.nit:48 */
+        /* analysis/inline_methods.nit:48 */
         REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
           nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 48);
@@ -163,13 +163,13 @@ void analysis___inline_methods___InlineMethodVisitor___visit_icode(val_t p0, val
         }
         fra.me.REG[9] = CALL_icode___icode_base___ICodeN___closure_defs(fra.me.REG[3])(fra.me.REG[3]);
         fra.me.REG[9] = CALL_icode___icode_tools___ICodeBuilder___inline_routine(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[8], fra.me.REG[9]);
-        /* ./analysis//inline_methods.nit:49 */
+        /* analysis/inline_methods.nit:49 */
         REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
           nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 49);
         }
         fra.me.REG[3] = CALL_icode___icode_base___ICode___result(fra.me.REG[3])(fra.me.REG[3]);
-        /* ./analysis//inline_methods.nit:50 */
+        /* analysis/inline_methods.nit:50 */
         REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
         } else {
@@ -184,7 +184,7 @@ void analysis___inline_methods___InlineMethodVisitor___visit_icode(val_t p0, val
         }
         REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
         if (UNTAG_Bool(REGB0)) {
-          /* ./analysis//inline_methods.nit:51 */
+          /* analysis/inline_methods.nit:51 */
           REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
           if (UNTAG_Bool(REGB0)) {
           } else {
@@ -202,7 +202,7 @@ void analysis___inline_methods___InlineMethodVisitor___visit_icode(val_t p0, val
           } else {
             nit_abort("Assert failed", NULL, LOCATE_analysis___inline_methods, 51);
           }
-          /* ./analysis//inline_methods.nit:52 */
+          /* analysis/inline_methods.nit:52 */
           fra.me.REG[8] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
           fra.me.REG[9] = NEW_IMove_icode___icode_base___IMove___init(fra.me.REG[3], fra.me.REG[9]);
           REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
@@ -211,21 +211,21 @@ void analysis___inline_methods___InlineMethodVisitor___visit_icode(val_t p0, val
           }
           CALL_standard___collection___list___ListIterator___insert_before(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
         }
-        /* ./analysis//inline_methods.nit:54 */
+        /* analysis/inline_methods.nit:54 */
         fra.me.REG[9] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
         REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
           nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 54);
         }
         CALL_standard___collection___list___ListIterator___delete(fra.me.REG[9])(fra.me.REG[9]);
-        /* ./analysis//inline_methods.nit:55 */
+        /* analysis/inline_methods.nit:55 */
         CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-        /* ./analysis//inline_methods.nit:56 */
+        /* analysis/inline_methods.nit:56 */
         CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
       }
     }
   }
-  /* ./analysis//inline_methods.nit:60 */
+  /* analysis/inline_methods.nit:60 */
   CALL_SUPER_analysis___inline_methods___InlineMethodVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -249,10 +249,10 @@ void analysis___inline_methods___InlineMethodVisitor___init(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./analysis//inline_methods.nit:63 */
+  /* analysis/inline_methods.nit:63 */
   fra.me.REG[3] = fra.me.REG[0];
   CALL_icode___icode_tools___ICodeVisitor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./analysis//inline_methods.nit:65 */
+  /* analysis/inline_methods.nit:65 */
   fra.me.REG[2] = NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init(fra.me.REG[1], fra.me.REG[2]);
   ATTR_analysis___inline_methods___InlineMethodVisitor____icb(fra.me.REG[3]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
@@ -302,14 +302,14 @@ val_t analysis___inline_methods___ICall___is_inlinable(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//inline_methods.nit:72 */
+  /* analysis/inline_methods.nit:72 */
   fra.me.REG[0] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./analysis//inline_methods.nit:73 */
+  /* analysis/inline_methods.nit:73 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./analysis//inline_methods.nit:74 */
+  /* analysis/inline_methods.nit:74 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./analysis//inline_methods.nit:75 */
+  /* analysis/inline_methods.nit:75 */
   REGB0 = CALL_metamodel___abstractmetamodel___MMMethod___is_intern(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
     if (!once_value_1) {
@@ -340,7 +340,7 @@ val_t analysis___inline_methods___ICall___is_inlinable(val_t p0){
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(true);
   } else {
-    /* ./analysis//inline_methods.nit:76 */
+    /* analysis/inline_methods.nit:76 */
     if (!once_value_3) {
       if (!once_value_4) {
         fra.me.REG[3] = BOX_NativeString("Int");
@@ -411,13 +411,13 @@ val_t analysis___inline_methods___ICall___is_inlinable(val_t p0){
       REGB2 = TAG_Bool(false);
       REGB1 = REGB2;
     }
-    /* ./analysis//inline_methods.nit:75 */
+    /* analysis/inline_methods.nit:75 */
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(true);
   } else {
-    /* ./analysis//inline_methods.nit:77 */
+    /* analysis/inline_methods.nit:77 */
     if (!once_value_9) {
       if (!once_value_10) {
         fra.me.REG[3] = BOX_NativeString("Array");
@@ -513,13 +513,13 @@ val_t analysis___inline_methods___ICall___is_inlinable(val_t p0){
       REGB2 = TAG_Bool(false);
       REGB1 = REGB2;
     }
-    /* ./analysis//inline_methods.nit:75 */
+    /* analysis/inline_methods.nit:75 */
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(true);
   } else {
-    /* ./analysis//inline_methods.nit:78 */
+    /* analysis/inline_methods.nit:78 */
     if (!once_value_17) {
       if (!once_value_18) {
         fra.me.REG[3] = BOX_NativeString("AbstractArrayRead");
@@ -590,13 +590,13 @@ val_t analysis___inline_methods___ICall___is_inlinable(val_t p0){
       REGB2 = TAG_Bool(false);
       REGB1 = REGB2;
     }
-    /* ./analysis//inline_methods.nit:75 */
+    /* analysis/inline_methods.nit:75 */
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(true);
   } else {
-    /* ./analysis//inline_methods.nit:79 */
+    /* analysis/inline_methods.nit:79 */
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
@@ -621,7 +621,7 @@ val_t analysis___inline_methods___ICall___is_inlinable(val_t p0){
       REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
       REGB1 = REGB2;
     }
-    /* ./analysis//inline_methods.nit:75 */
+    /* analysis/inline_methods.nit:75 */
     REGB0 = REGB1;
   }
   goto label25;
@@ -643,9 +643,9 @@ void analysis___inline_methods___IRoutine___inline_methods(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//inline_methods.nit:86 */
+  /* analysis/inline_methods.nit:86 */
   fra.me.REG[1] = NEW_InlineMethodVisitor_analysis___inline_methods___InlineMethodVisitor___init(fra.me.REG[1], fra.me.REG[0]);
-  /* ./analysis//inline_methods.nit:87 */
+  /* analysis/inline_methods.nit:87 */
   CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
diff --git a/c_src/analysis___instantiated_type_analysis._sep.h b/c_src/analysis___instantiated_type_analysis._sep.h
deleted file mode 100644 (file)
index 58e8548..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./analysis/instantiated_type_analysis. */
-#ifndef analysis___instantiated_type_analysis_sep
-#define analysis___instantiated_type_analysis_sep
-#include "program._sep.h"
-#include <nit_common.h>
-
-extern const classtable_elt_t VFT_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis[];
-
-extern const classtable_elt_t VFT_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis[];
-extern const char *LOCATE_analysis___instantiated_type_analysis;
-extern const int SFT_analysis___instantiated_type_analysis[];
-#define ATTR_analysis___instantiated_type_analysis___Program____ita(recv) ATTR(recv, (SFT_analysis___instantiated_type_analysis[0] + 0))
-#define CALL_analysis___instantiated_type_analysis___Program___ita(recv) ((analysis___instantiated_type_analysis___Program___ita_t)CALL((recv), (SFT_analysis___instantiated_type_analysis[1] + 0)))
-#define CALL_analysis___instantiated_type_analysis___Program___ita__eq(recv) ((analysis___instantiated_type_analysis___Program___ita__eq_t)CALL((recv), (SFT_analysis___instantiated_type_analysis[1] + 1)))
-#define CALL_analysis___instantiated_type_analysis___Program___dump_instantiated_types(recv) ((analysis___instantiated_type_analysis___Program___dump_instantiated_types_t)CALL((recv), (SFT_analysis___instantiated_type_analysis[1] + 2)))
-#define CALL_analysis___instantiated_type_analysis___Program___dump_not_instantiated_types(recv) ((analysis___instantiated_type_analysis___Program___dump_not_instantiated_types_t)CALL((recv), (SFT_analysis___instantiated_type_analysis[1] + 3)))
-#define ID_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis (SFT_analysis___instantiated_type_analysis[2])
-#define COLOR_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis (SFT_analysis___instantiated_type_analysis[3])
-#define INIT_TABLE_POS_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis (SFT_analysis___instantiated_type_analysis[4] + 0)
-#define CALL_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated(recv) ((analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated_t)CALL((recv), (SFT_analysis___instantiated_type_analysis[4] + 1)))
-#define CALL_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___init(recv) ((analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___init_t)CALL((recv), (SFT_analysis___instantiated_type_analysis[4] + 2)))
-#define ID_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis (SFT_analysis___instantiated_type_analysis[5])
-#define COLOR_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis (SFT_analysis___instantiated_type_analysis[6])
-#define INIT_TABLE_POS_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis (SFT_analysis___instantiated_type_analysis[7] + 0)
-#define CALL_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init(recv) ((analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init_t)CALL((recv), (SFT_analysis___instantiated_type_analysis[7] + 1)))
-static const char * const LOCATE_analysis___instantiated_type_analysis___Program___ita = "instantiated_type_analysis::Program::ita";
-val_t analysis___instantiated_type_analysis___Program___ita(val_t p0);
-typedef val_t (*analysis___instantiated_type_analysis___Program___ita_t)(val_t p0);
-static const char * const LOCATE_analysis___instantiated_type_analysis___Program___ita__eq = "instantiated_type_analysis::Program::ita=";
-void analysis___instantiated_type_analysis___Program___ita__eq(val_t p0, val_t p1);
-typedef void (*analysis___instantiated_type_analysis___Program___ita__eq_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___instantiated_type_analysis___Program___dump_instantiated_types = "instantiated_type_analysis::Program::dump_instantiated_types";
-void analysis___instantiated_type_analysis___Program___dump_instantiated_types(val_t p0, val_t p1);
-typedef void (*analysis___instantiated_type_analysis___Program___dump_instantiated_types_t)(val_t p0, val_t p1);
-  void OC_analysis___instantiated_type_analysis___Program___dump_instantiated_types_4(struct stack_frame_t *closctx, val_t p0);
-  typedef void (*OC_analysis___instantiated_type_analysis___Program___dump_instantiated_types_4_t)(struct stack_frame_t *closctx, val_t p0);
-static const char * const LOCATE_analysis___instantiated_type_analysis___Program___dump_not_instantiated_types = "instantiated_type_analysis::Program::dump_not_instantiated_types";
-void analysis___instantiated_type_analysis___Program___dump_not_instantiated_types(val_t p0, val_t p1);
-typedef void (*analysis___instantiated_type_analysis___Program___dump_not_instantiated_types_t)(val_t p0, val_t p1);
-  typedef void (*CLOS_OC_analysis___instantiated_type_analysis___Program___dump_not_instantiated_types_4_0)(struct stack_frame_t *);
-  void OC_analysis___instantiated_type_analysis___Program___dump_not_instantiated_types_4(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_analysis___instantiated_type_analysis___Program___dump_not_instantiated_types_4_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-typedef void (*CLOS_analysis___instantiated_type_analysis___Program___with_each_live_local_classes_0)(struct stack_frame_t *, val_t);
-static const char * const LOCATE_analysis___instantiated_type_analysis___Program___with_each_live_local_classes = "instantiated_type_analysis::Program::(program::Program::with_each_live_local_classes)";
-void analysis___instantiated_type_analysis___Program___with_each_live_local_classes(val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-typedef void (*analysis___instantiated_type_analysis___Program___with_each_live_local_classes_t)(val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*CLOS_OC_analysis___instantiated_type_analysis___Program___with_each_live_local_classes_1_0)(struct stack_frame_t *);
-  void OC_analysis___instantiated_type_analysis___Program___with_each_live_local_classes_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_analysis___instantiated_type_analysis___Program___with_each_live_local_classes_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_Program_program___Program___init(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated = "instantiated_type_analysis::InstantiatedTypeAnalysis::is_class_instantiated";
-val_t analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated(val_t p0, val_t p1);
-typedef val_t (*analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___init = "instantiated_type_analysis::InstantiatedTypeAnalysis::init";
-void analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___init(val_t p0, int* init_table);
-typedef void (*analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___init_t)(val_t p0, int* init_table);
-val_t NEW_InstantiatedTypeAnalysis_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___init();
-static const char * const LOCATE_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___is_class_instantiated = "instantiated_type_analysis::DefaultInstantiatedTypeAnalysis::(instantiated_type_analysis::InstantiatedTypeAnalysis::is_class_instantiated)";
-val_t analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___is_class_instantiated(val_t p0, val_t p1);
-typedef val_t (*analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___is_class_instantiated_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init = "instantiated_type_analysis::DefaultInstantiatedTypeAnalysis::init";
-void analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init(val_t p0, int* init_table);
-typedef void (*analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init_t)(val_t p0, int* init_table);
-val_t NEW_DefaultInstantiatedTypeAnalysis_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init();
-#endif
diff --git a/c_src/analysis___reachable_as_init._sep.h b/c_src/analysis___reachable_as_init._sep.h
deleted file mode 100644 (file)
index 836ac7f..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./analysis/reachable_as_init. */
-#ifndef analysis___reachable_as_init_sep
-#define analysis___reachable_as_init_sep
-#include "program._sep.h"
-#include <nit_common.h>
-
-extern const classtable_elt_t VFT_analysis___reachable_as_init___ReachableAsInitAnalysis[];
-
-extern const classtable_elt_t VFT_analysis___reachable_as_init___DefaultReachableAsInitAnalysis[];
-extern const char *LOCATE_analysis___reachable_as_init;
-extern const int SFT_analysis___reachable_as_init[];
-#define ATTR_analysis___reachable_as_init___Program____rai(recv) ATTR(recv, (SFT_analysis___reachable_as_init[0] + 0))
-#define CALL_analysis___reachable_as_init___Program___rai(recv) ((analysis___reachable_as_init___Program___rai_t)CALL((recv), (SFT_analysis___reachable_as_init[1] + 0)))
-#define CALL_analysis___reachable_as_init___Program___rai__eq(recv) ((analysis___reachable_as_init___Program___rai__eq_t)CALL((recv), (SFT_analysis___reachable_as_init[1] + 1)))
-#define CALL_analysis___reachable_as_init___Program___dump_reachable_as_init_methods(recv) ((analysis___reachable_as_init___Program___dump_reachable_as_init_methods_t)CALL((recv), (SFT_analysis___reachable_as_init[1] + 2)))
-#define ID_analysis___reachable_as_init___ReachableAsInitAnalysis (SFT_analysis___reachable_as_init[2])
-#define COLOR_analysis___reachable_as_init___ReachableAsInitAnalysis (SFT_analysis___reachable_as_init[3])
-#define INIT_TABLE_POS_analysis___reachable_as_init___ReachableAsInitAnalysis (SFT_analysis___reachable_as_init[4] + 0)
-#define CALL_analysis___reachable_as_init___ReachableAsInitAnalysis___is_method_reachable_as_init(recv) ((analysis___reachable_as_init___ReachableAsInitAnalysis___is_method_reachable_as_init_t)CALL((recv), (SFT_analysis___reachable_as_init[4] + 1)))
-#define CALL_analysis___reachable_as_init___ReachableAsInitAnalysis___init(recv) ((analysis___reachable_as_init___ReachableAsInitAnalysis___init_t)CALL((recv), (SFT_analysis___reachable_as_init[4] + 2)))
-#define ID_analysis___reachable_as_init___DefaultReachableAsInitAnalysis (SFT_analysis___reachable_as_init[5])
-#define COLOR_analysis___reachable_as_init___DefaultReachableAsInitAnalysis (SFT_analysis___reachable_as_init[6])
-#define INIT_TABLE_POS_analysis___reachable_as_init___DefaultReachableAsInitAnalysis (SFT_analysis___reachable_as_init[7] + 0)
-#define CALL_analysis___reachable_as_init___DefaultReachableAsInitAnalysis___init(recv) ((analysis___reachable_as_init___DefaultReachableAsInitAnalysis___init_t)CALL((recv), (SFT_analysis___reachable_as_init[7] + 1)))
-static const char * const LOCATE_analysis___reachable_as_init___Program___rai = "reachable_as_init::Program::rai";
-val_t analysis___reachable_as_init___Program___rai(val_t p0);
-typedef val_t (*analysis___reachable_as_init___Program___rai_t)(val_t p0);
-static const char * const LOCATE_analysis___reachable_as_init___Program___rai__eq = "reachable_as_init::Program::rai=";
-void analysis___reachable_as_init___Program___rai__eq(val_t p0, val_t p1);
-typedef void (*analysis___reachable_as_init___Program___rai__eq_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___reachable_as_init___Program___dump_reachable_as_init_methods = "reachable_as_init::Program::dump_reachable_as_init_methods";
-void analysis___reachable_as_init___Program___dump_reachable_as_init_methods(val_t p0, val_t p1);
-typedef void (*analysis___reachable_as_init___Program___dump_reachable_as_init_methods_t)(val_t p0, val_t p1);
-  void OC_analysis___reachable_as_init___Program___dump_reachable_as_init_methods_4(struct stack_frame_t *closctx, val_t p0);
-  typedef void (*OC_analysis___reachable_as_init___Program___dump_reachable_as_init_methods_4_t)(struct stack_frame_t *closctx, val_t p0);
-    typedef void (*CLOS_OC_analysis___reachable_as_init___Program___dump_reachable_as_init_methods_5_0)(struct stack_frame_t *);
-    void OC_analysis___reachable_as_init___Program___dump_reachable_as_init_methods_5(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-    typedef void (*OC_analysis___reachable_as_init___Program___dump_reachable_as_init_methods_5_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_Program_program___Program___init(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___reachable_as_init___ReachableAsInitAnalysis___is_method_reachable_as_init = "reachable_as_init::ReachableAsInitAnalysis::is_method_reachable_as_init";
-val_t analysis___reachable_as_init___ReachableAsInitAnalysis___is_method_reachable_as_init(val_t p0, val_t p1, val_t p2);
-typedef val_t (*analysis___reachable_as_init___ReachableAsInitAnalysis___is_method_reachable_as_init_t)(val_t p0, val_t p1, val_t p2);
-static const char * const LOCATE_analysis___reachable_as_init___ReachableAsInitAnalysis___init = "reachable_as_init::ReachableAsInitAnalysis::init";
-void analysis___reachable_as_init___ReachableAsInitAnalysis___init(val_t p0, int* init_table);
-typedef void (*analysis___reachable_as_init___ReachableAsInitAnalysis___init_t)(val_t p0, int* init_table);
-val_t NEW_ReachableAsInitAnalysis_analysis___reachable_as_init___ReachableAsInitAnalysis___init();
-static const char * const LOCATE_analysis___reachable_as_init___DefaultReachableAsInitAnalysis___is_method_reachable_as_init = "reachable_as_init::DefaultReachableAsInitAnalysis::(reachable_as_init::ReachableAsInitAnalysis::is_method_reachable_as_init)";
-val_t analysis___reachable_as_init___DefaultReachableAsInitAnalysis___is_method_reachable_as_init(val_t p0, val_t p1, val_t p2);
-typedef val_t (*analysis___reachable_as_init___DefaultReachableAsInitAnalysis___is_method_reachable_as_init_t)(val_t p0, val_t p1, val_t p2);
-static const char * const LOCATE_analysis___reachable_as_init___DefaultReachableAsInitAnalysis___init = "reachable_as_init::DefaultReachableAsInitAnalysis::init";
-void analysis___reachable_as_init___DefaultReachableAsInitAnalysis___init(val_t p0, int* init_table);
-typedef void (*analysis___reachable_as_init___DefaultReachableAsInitAnalysis___init_t)(val_t p0, int* init_table);
-val_t NEW_DefaultReachableAsInitAnalysis_analysis___reachable_as_init___DefaultReachableAsInitAnalysis___init();
-#endif
diff --git a/c_src/analysis___reachable_as_init_impl._sep.c b/c_src/analysis___reachable_as_init_impl._sep.c
deleted file mode 100644 (file)
index a4dc54c..0000000
+++ /dev/null
@@ -1,359 +0,0 @@
-/* This C file is generated by NIT to compile module analysis___reachable_as_init_impl. */
-#include "analysis___reachable_as_init_impl._sep.h"
-val_t analysis___reachable_as_init_impl___ReachableAsInitBuilder___context(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_as_init_impl;
-  fra.me.line = 24;
-  fra.me.meth = LOCATE_analysis___reachable_as_init_impl___ReachableAsInitBuilder___context;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./analysis//reachable_as_init_impl.nit:24 */
-  REGB0 = TAG_Bool(ATTR_analysis___reachable_as_init_impl___ReachableAsInitBuilder____context(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_context", LOCATE_analysis___reachable_as_init_impl, 24);
-  }
-  fra.me.REG[0] = ATTR_analysis___reachable_as_init_impl___ReachableAsInitBuilder____context(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t analysis___reachable_as_init_impl___ReachableAsInitBuilder___program(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_as_init_impl;
-  fra.me.line = 25;
-  fra.me.meth = LOCATE_analysis___reachable_as_init_impl___ReachableAsInitBuilder___program;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./analysis//reachable_as_init_impl.nit:25 */
-  REGB0 = TAG_Bool(ATTR_analysis___reachable_as_init_impl___ReachableAsInitBuilder____program(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_program", LOCATE_analysis___reachable_as_init_impl, 25);
-  }
-  fra.me.REG[0] = ATTR_analysis___reachable_as_init_impl___ReachableAsInitBuilder____program(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-void analysis___reachable_as_init_impl___ReachableAsInitBuilder___work(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_as_init_impl;
-  fra.me.line = 27;
-  fra.me.meth = LOCATE_analysis___reachable_as_init_impl___ReachableAsInitBuilder___work;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./analysis//reachable_as_init_impl.nit:28 */
-  fra.me.REG[1] = CALL_analysis___reachable_as_init_impl___ReachableAsInitBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_program___Program___with_each_iroutines(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_analysis___reachable_as_init_impl___ReachableAsInitBuilder___work_1));
-  stack_frame_head = fra.me.prev;
-  return;
-}
-  void OC_analysis___reachable_as_init_impl___ReachableAsInitBuilder___work_1(struct stack_frame_t *closctx, val_t p0, val_t p1){
-    struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-    val_t REGB0;
-    val_t tmp;
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_analysis___reachable_as_init_impl;
-    fra.me.line = 28;
-    fra.me.meth = LOCATE_analysis___reachable_as_init_impl___ReachableAsInitBuilder___work;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 2;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.REG[1] = NIT_NULL;
-    fra.me.REG[0] = p0;
-    fra.me.REG[1] = p1;
-    /* ./analysis//reachable_as_init_impl.nit:29 */
-    fra.me.REG[1] = CALL_analysis___reachable_as_init_impl___ReachableAsInitBuilder___program(closctx->REG[0])(closctx->REG[0]);
-    fra.me.REG[1] = CALL_analysis___reachable_method_analysis___Program___rma(fra.me.REG[1])(fra.me.REG[1]);
-    REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_as_init_impl, 29);
-    }
-    REGB0 = CALL_analysis___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    if (UNTAG_Bool(REGB0)) {
-      /* ./analysis//reachable_as_init_impl.nit:30 */
-      fra.me.REG[1] = NEW_RAIVisitor_analysis___reachable_as_init_impl___RAIVisitor___init(closctx->REG[0]);
-      /* ./analysis//reachable_as_init_impl.nit:31 */
-      CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    }
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-void analysis___reachable_as_init_impl___ReachableAsInitBuilder___init(val_t p0, val_t p1, int* init_table){
-  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___reachable_as_init_impl___ReachableAsInitBuilder].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  if (init_table[itpos0]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_as_init_impl;
-  fra.me.line = 36;
-  fra.me.meth = LOCATE_analysis___reachable_as_init_impl___ReachableAsInitBuilder___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./analysis//reachable_as_init_impl.nit:37 */
-  ATTR_analysis___reachable_as_init_impl___ReachableAsInitBuilder____program(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos0] = 1;
-  return;
-}
-val_t analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___is_method_reachable_as_init(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_as_init_impl;
-  fra.me.line = 47;
-  fra.me.meth = LOCATE_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___is_method_reachable_as_init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* ./analysis//reachable_as_init_impl.nit:48 */
-  REGB0 = TAG_Bool(ATTR_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_methods", LOCATE_analysis___reachable_as_init_impl, 48);
-  }
-  fra.me.REG[3] = ATTR_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[0]);
-  REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Bool(ATTR_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[0])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_methods", LOCATE_analysis___reachable_as_init_impl, 48);
-    }
-    fra.me.REG[0] = ATTR_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[0]);
-    fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_as_init_impl, 48);
-    }
-    REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-    goto label1;
-  }
-  /* ./analysis//reachable_as_init_impl.nit:49 */
-  REGB1 = TAG_Bool(false);
-  REGB0 = REGB1;
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-void analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init(val_t p0, int* init_table){
-  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl].i;
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  if (init_table[itpos1]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_as_init_impl;
-  fra.me.line = 52;
-  fra.me.meth = LOCATE_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./analysis//reachable_as_init_impl.nit:52 */
-  CALL_analysis___reachable_as_init___ReachableAsInitAnalysis___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  stack_frame_head = fra.me.prev;
-  init_table[itpos1] = 1;
-  return;
-}
-val_t analysis___reachable_as_init_impl___RAIVisitor___builder(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_as_init_impl;
-  fra.me.line = 57;
-  fra.me.meth = LOCATE_analysis___reachable_as_init_impl___RAIVisitor___builder;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./analysis//reachable_as_init_impl.nit:57 */
-  REGB0 = TAG_Bool(ATTR_analysis___reachable_as_init_impl___RAIVisitor____builder(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_builder", LOCATE_analysis___reachable_as_init_impl, 57);
-  }
-  fra.me.REG[0] = ATTR_analysis___reachable_as_init_impl___RAIVisitor____builder(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-void analysis___reachable_as_init_impl___RAIVisitor___visit_icode(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_as_init_impl;
-  fra.me.line = 59;
-  fra.me.meth = LOCATE_analysis___reachable_as_init_impl___RAIVisitor___visit_icode;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 7;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[6] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./analysis//reachable_as_init_impl.nit:59 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* ./analysis//reachable_as_init_impl.nit:61 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___INew, ID_icode___icode_base___INew)) /*cast INew*/;
-  if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//reachable_as_init_impl.nit:63 */
-    REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_as_init_impl, 63);
-    }
-    fra.me.REG[4] = CALL_icode___icode_base___INew___stype(fra.me.REG[3])(fra.me.REG[3]);
-    /* ./analysis//reachable_as_init_impl.nit:64 */
-    fra.me.REG[5] = CALL_analysis___reachable_as_init_impl___RAIVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
-    fra.me.REG[5] = CALL_analysis___reachable_as_init_impl___ReachableAsInitBuilder___program(fra.me.REG[5])(fra.me.REG[5]);
-    fra.me.REG[5] = CALL_program___Program___main_module(fra.me.REG[5])(fra.me.REG[5]);
-    fra.me.REG[5] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    fra.me.REG[5] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[5])(fra.me.REG[5]);
-    /* ./analysis//reachable_as_init_impl.nit:65 */
-    REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_as_init_impl, 65);
-    }
-    fra.me.REG[3] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
-    fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
-    fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
-    REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Cast failed", NULL, LOCATE_analysis___reachable_as_init_impl, 65);
-    }
-    /* ./analysis//reachable_as_init_impl.nit:66 */
-    fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
-    REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Assert failed", NULL, LOCATE_analysis___reachable_as_init_impl, 66);
-    }
-    /* ./analysis//reachable_as_init_impl.nit:67 */
-    fra.me.REG[4] = CALL_analysis___reachable_as_init_impl___RAIVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
-    fra.me.REG[4] = CALL_analysis___reachable_as_init_impl___ReachableAsInitBuilder___context(fra.me.REG[4])(fra.me.REG[4]);
-    REGB0 = TAG_Bool(ATTR_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[4])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_methods", LOCATE_analysis___reachable_as_init_impl, 67);
-    }
-    fra.me.REG[4] = ATTR_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[4]);
-    REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-    if (UNTAG_Bool(REGB0)) {
-      fra.me.REG[4] = CALL_analysis___reachable_as_init_impl___RAIVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
-      fra.me.REG[4] = CALL_analysis___reachable_as_init_impl___ReachableAsInitBuilder___context(fra.me.REG[4])(fra.me.REG[4]);
-      REGB0 = TAG_Bool(ATTR_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[4])!=NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-      } else {
-        nit_abort("Uninitialized attribute %s", "_methods", LOCATE_analysis___reachable_as_init_impl, 67);
-      }
-      fra.me.REG[4] = ATTR_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[4]);
-      fra.me.REG[6] = NEW_List_standard___collection___list___List___init();
-      CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
-    }
-    /* ./analysis//reachable_as_init_impl.nit:68 */
-    fra.me.REG[6] = CALL_analysis___reachable_as_init_impl___RAIVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
-    fra.me.REG[6] = CALL_analysis___reachable_as_init_impl___ReachableAsInitBuilder___context(fra.me.REG[6])(fra.me.REG[6]);
-    REGB0 = TAG_Bool(ATTR_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[6])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_methods", LOCATE_analysis___reachable_as_init_impl, 68);
-    }
-    fra.me.REG[6] = ATTR_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[6]);
-    fra.me.REG[6] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
-    REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_as_init_impl, 68);
-    }
-    REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
-    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-    if (UNTAG_Bool(REGB0)) {
-      fra.me.REG[2] = CALL_analysis___reachable_as_init_impl___RAIVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
-      fra.me.REG[2] = CALL_analysis___reachable_as_init_impl___ReachableAsInitBuilder___context(fra.me.REG[2])(fra.me.REG[2]);
-      REGB0 = TAG_Bool(ATTR_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[2])!=NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-      } else {
-        nit_abort("Uninitialized attribute %s", "_methods", LOCATE_analysis___reachable_as_init_impl, 68);
-      }
-      fra.me.REG[2] = ATTR_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[2]);
-      fra.me.REG[5] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-      REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_as_init_impl, 68);
-      }
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
-    }
-  }
-  /* ./analysis//reachable_as_init_impl.nit:70 */
-  CALL_SUPER_analysis___reachable_as_init_impl___RAIVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-void analysis___reachable_as_init_impl___RAIVisitor___init(val_t p0, val_t p1, int* init_table){
-  int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___reachable_as_init_impl___RAIVisitor].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  if (init_table[itpos2]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_as_init_impl;
-  fra.me.line = 73;
-  fra.me.meth = LOCATE_analysis___reachable_as_init_impl___RAIVisitor___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./analysis//reachable_as_init_impl.nit:73 */
-  fra.me.REG[2] = fra.me.REG[0];
-  CALL_icode___icode_tools___ICodeVisitor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./analysis//reachable_as_init_impl.nit:75 */
-  ATTR_analysis___reachable_as_init_impl___RAIVisitor____builder(fra.me.REG[2]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos2] = 1;
-  return;
-}
diff --git a/c_src/analysis___reachable_as_init_impl._sep.h b/c_src/analysis___reachable_as_init_impl._sep.h
deleted file mode 100644 (file)
index e3168fc..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./analysis/reachable_as_init_impl. */
-#ifndef analysis___reachable_as_init_impl_sep
-#define analysis___reachable_as_init_impl_sep
-#include "analysis___reachable_method_analysis._sep.h"
-#include "analysis___reachable_as_init._sep.h"
-#include <nit_common.h>
-
-extern const classtable_elt_t VFT_analysis___reachable_as_init_impl___ReachableAsInitBuilder[];
-
-extern const classtable_elt_t VFT_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl[];
-
-extern const classtable_elt_t VFT_analysis___reachable_as_init_impl___RAIVisitor[];
-extern const char *LOCATE_analysis___reachable_as_init_impl;
-extern const int SFT_analysis___reachable_as_init_impl[];
-#define ID_analysis___reachable_as_init_impl___ReachableAsInitBuilder (SFT_analysis___reachable_as_init_impl[0])
-#define COLOR_analysis___reachable_as_init_impl___ReachableAsInitBuilder (SFT_analysis___reachable_as_init_impl[1])
-#define ATTR_analysis___reachable_as_init_impl___ReachableAsInitBuilder____context(recv) ATTR(recv, (SFT_analysis___reachable_as_init_impl[2] + 0))
-#define ATTR_analysis___reachable_as_init_impl___ReachableAsInitBuilder____program(recv) ATTR(recv, (SFT_analysis___reachable_as_init_impl[2] + 1))
-#define INIT_TABLE_POS_analysis___reachable_as_init_impl___ReachableAsInitBuilder (SFT_analysis___reachable_as_init_impl[3] + 0)
-#define CALL_analysis___reachable_as_init_impl___ReachableAsInitBuilder___context(recv) ((analysis___reachable_as_init_impl___ReachableAsInitBuilder___context_t)CALL((recv), (SFT_analysis___reachable_as_init_impl[3] + 1)))
-#define CALL_analysis___reachable_as_init_impl___ReachableAsInitBuilder___program(recv) ((analysis___reachable_as_init_impl___ReachableAsInitBuilder___program_t)CALL((recv), (SFT_analysis___reachable_as_init_impl[3] + 2)))
-#define CALL_analysis___reachable_as_init_impl___ReachableAsInitBuilder___work(recv) ((analysis___reachable_as_init_impl___ReachableAsInitBuilder___work_t)CALL((recv), (SFT_analysis___reachable_as_init_impl[3] + 3)))
-#define CALL_analysis___reachable_as_init_impl___ReachableAsInitBuilder___init(recv) ((analysis___reachable_as_init_impl___ReachableAsInitBuilder___init_t)CALL((recv), (SFT_analysis___reachable_as_init_impl[3] + 4)))
-#define ID_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl (SFT_analysis___reachable_as_init_impl[4])
-#define COLOR_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl (SFT_analysis___reachable_as_init_impl[5])
-#define ATTR_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(recv) ATTR(recv, (SFT_analysis___reachable_as_init_impl[6] + 0))
-#define INIT_TABLE_POS_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl (SFT_analysis___reachable_as_init_impl[7] + 0)
-#define CALL_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init(recv) ((analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init_t)CALL((recv), (SFT_analysis___reachable_as_init_impl[7] + 1)))
-#define ID_analysis___reachable_as_init_impl___RAIVisitor (SFT_analysis___reachable_as_init_impl[8])
-#define COLOR_analysis___reachable_as_init_impl___RAIVisitor (SFT_analysis___reachable_as_init_impl[9])
-#define ATTR_analysis___reachable_as_init_impl___RAIVisitor____builder(recv) ATTR(recv, (SFT_analysis___reachable_as_init_impl[10] + 0))
-#define INIT_TABLE_POS_analysis___reachable_as_init_impl___RAIVisitor (SFT_analysis___reachable_as_init_impl[11] + 0)
-#define CALL_analysis___reachable_as_init_impl___RAIVisitor___builder(recv) ((analysis___reachable_as_init_impl___RAIVisitor___builder_t)CALL((recv), (SFT_analysis___reachable_as_init_impl[11] + 1)))
-#define CALL_SUPER_analysis___reachable_as_init_impl___RAIVisitor___visit_icode(recv) ((analysis___reachable_as_init_impl___RAIVisitor___visit_icode_t)CALL((recv), (SFT_analysis___reachable_as_init_impl[11] + 2)))
-#define CALL_analysis___reachable_as_init_impl___RAIVisitor___init(recv) ((analysis___reachable_as_init_impl___RAIVisitor___init_t)CALL((recv), (SFT_analysis___reachable_as_init_impl[11] + 3)))
-static const char * const LOCATE_analysis___reachable_as_init_impl___ReachableAsInitBuilder___context = "reachable_as_init_impl::ReachableAsInitBuilder::context";
-val_t analysis___reachable_as_init_impl___ReachableAsInitBuilder___context(val_t p0);
-typedef val_t (*analysis___reachable_as_init_impl___ReachableAsInitBuilder___context_t)(val_t p0);
-static const char * const LOCATE_analysis___reachable_as_init_impl___ReachableAsInitBuilder___program = "reachable_as_init_impl::ReachableAsInitBuilder::program";
-val_t analysis___reachable_as_init_impl___ReachableAsInitBuilder___program(val_t p0);
-typedef val_t (*analysis___reachable_as_init_impl___ReachableAsInitBuilder___program_t)(val_t p0);
-static const char * const LOCATE_analysis___reachable_as_init_impl___ReachableAsInitBuilder___work = "reachable_as_init_impl::ReachableAsInitBuilder::work";
-void analysis___reachable_as_init_impl___ReachableAsInitBuilder___work(val_t p0);
-typedef void (*analysis___reachable_as_init_impl___ReachableAsInitBuilder___work_t)(val_t p0);
-  void OC_analysis___reachable_as_init_impl___ReachableAsInitBuilder___work_1(struct stack_frame_t *closctx, val_t p0, val_t p1);
-  typedef void (*OC_analysis___reachable_as_init_impl___ReachableAsInitBuilder___work_1_t)(struct stack_frame_t *closctx, val_t p0, val_t p1);
-static const char * const LOCATE_analysis___reachable_as_init_impl___ReachableAsInitBuilder___init = "reachable_as_init_impl::ReachableAsInitBuilder::init";
-void analysis___reachable_as_init_impl___ReachableAsInitBuilder___init(val_t p0, val_t p1, int* init_table);
-typedef void (*analysis___reachable_as_init_impl___ReachableAsInitBuilder___init_t)(val_t p0, val_t p1, int* init_table);
-val_t NEW_ReachableAsInitBuilder_analysis___reachable_as_init_impl___ReachableAsInitBuilder___init(val_t p0);
-static const char * const LOCATE_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___is_method_reachable_as_init = "reachable_as_init_impl::ReachableAsInitAnalysisImpl::(reachable_as_init::ReachableAsInitAnalysis::is_method_reachable_as_init)";
-val_t analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___is_method_reachable_as_init(val_t p0, val_t p1, val_t p2);
-typedef val_t (*analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___is_method_reachable_as_init_t)(val_t p0, val_t p1, val_t p2);
-static const char * const LOCATE_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init = "reachable_as_init_impl::ReachableAsInitAnalysisImpl::init";
-void analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init(val_t p0, int* init_table);
-typedef void (*analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init_t)(val_t p0, int* init_table);
-val_t NEW_ReachableAsInitAnalysisImpl_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init();
-static const char * const LOCATE_analysis___reachable_as_init_impl___RAIVisitor___builder = "reachable_as_init_impl::RAIVisitor::builder";
-val_t analysis___reachable_as_init_impl___RAIVisitor___builder(val_t p0);
-typedef val_t (*analysis___reachable_as_init_impl___RAIVisitor___builder_t)(val_t p0);
-static const char * const LOCATE_analysis___reachable_as_init_impl___RAIVisitor___visit_icode = "reachable_as_init_impl::RAIVisitor::(icode_tools::ICodeVisitor::visit_icode)";
-void analysis___reachable_as_init_impl___RAIVisitor___visit_icode(val_t p0, val_t p1);
-typedef void (*analysis___reachable_as_init_impl___RAIVisitor___visit_icode_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___reachable_as_init_impl___RAIVisitor___init = "reachable_as_init_impl::RAIVisitor::init";
-void analysis___reachable_as_init_impl___RAIVisitor___init(val_t p0, val_t p1, int* init_table);
-typedef void (*analysis___reachable_as_init_impl___RAIVisitor___init_t)(val_t p0, val_t p1, int* init_table);
-val_t NEW_RAIVisitor_analysis___reachable_as_init_impl___RAIVisitor___init(val_t p0);
-#endif
diff --git a/c_src/analysis___reachable_from_init_method_analysis._sep.h b/c_src/analysis___reachable_from_init_method_analysis._sep.h
deleted file mode 100644 (file)
index e02ba8e..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./analysis/reachable_from_init_method_analysis. */
-#ifndef analysis___reachable_from_init_method_analysis_sep
-#define analysis___reachable_from_init_method_analysis_sep
-#include "analysis___reachable_method_analysis._sep.h"
-#include <nit_common.h>
-
-extern const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis[];
-
-extern const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis[];
-extern const char *LOCATE_analysis___reachable_from_init_method_analysis;
-extern const int SFT_analysis___reachable_from_init_method_analysis[];
-#define ATTR_analysis___reachable_from_init_method_analysis___Program____rfima(recv) ATTR(recv, (SFT_analysis___reachable_from_init_method_analysis[0] + 0))
-#define CALL_analysis___reachable_from_init_method_analysis___Program___rfima(recv) ((analysis___reachable_from_init_method_analysis___Program___rfima_t)CALL((recv), (SFT_analysis___reachable_from_init_method_analysis[1] + 0)))
-#define CALL_analysis___reachable_from_init_method_analysis___Program___rfima__eq(recv) ((analysis___reachable_from_init_method_analysis___Program___rfima__eq_t)CALL((recv), (SFT_analysis___reachable_from_init_method_analysis[1] + 1)))
-#define CALL_analysis___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init(recv) ((analysis___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init_t)CALL((recv), (SFT_analysis___reachable_from_init_method_analysis[1] + 2)))
-#define CALL_analysis___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init(recv) ((analysis___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init_t)CALL((recv), (SFT_analysis___reachable_from_init_method_analysis[1] + 3)))
-#define ID_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis (SFT_analysis___reachable_from_init_method_analysis[2])
-#define COLOR_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis (SFT_analysis___reachable_from_init_method_analysis[3])
-#define INIT_TABLE_POS_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis (SFT_analysis___reachable_from_init_method_analysis[4] + 0)
-#define CALL_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(recv) ((analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init_t)CALL((recv), (SFT_analysis___reachable_from_init_method_analysis[4] + 1)))
-#define CALL_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_method_reachable_from_init(recv) ((analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_method_reachable_from_init_t)CALL((recv), (SFT_analysis___reachable_from_init_method_analysis[4] + 2)))
-#define CALL_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init(recv) ((analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init_t)CALL((recv), (SFT_analysis___reachable_from_init_method_analysis[4] + 3)))
-#define ID_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis (SFT_analysis___reachable_from_init_method_analysis[5])
-#define COLOR_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis (SFT_analysis___reachable_from_init_method_analysis[6])
-#define INIT_TABLE_POS_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis (SFT_analysis___reachable_from_init_method_analysis[7] + 0)
-#define CALL_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init(recv) ((analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init_t)CALL((recv), (SFT_analysis___reachable_from_init_method_analysis[7] + 1)))
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis___Program___rfima = "reachable_from_init_method_analysis::Program::rfima";
-val_t analysis___reachable_from_init_method_analysis___Program___rfima(val_t p0);
-typedef val_t (*analysis___reachable_from_init_method_analysis___Program___rfima_t)(val_t p0);
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis___Program___rfima__eq = "reachable_from_init_method_analysis::Program::rfima=";
-void analysis___reachable_from_init_method_analysis___Program___rfima__eq(val_t p0, val_t p1);
-typedef void (*analysis___reachable_from_init_method_analysis___Program___rfima__eq_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init = "reachable_from_init_method_analysis::Program::dump_reachable_methods_from_init";
-void analysis___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init(val_t p0, val_t p1);
-typedef void (*analysis___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init_t)(val_t p0, val_t p1);
-  void OC_analysis___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init_4(struct stack_frame_t *closctx, val_t p0);
-  typedef void (*OC_analysis___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init_4_t)(struct stack_frame_t *closctx, val_t p0);
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init = "reachable_from_init_method_analysis::Program::dump_unreachable_methods_from_init";
-void analysis___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init(val_t p0, val_t p1);
-typedef void (*analysis___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init_t)(val_t p0, val_t p1);
-  void OC_analysis___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init_4(struct stack_frame_t *closctx, val_t p0);
-  typedef void (*OC_analysis___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init_4_t)(struct stack_frame_t *closctx, val_t p0);
-val_t NEW_Program_program___Program___init(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init = "reachable_from_init_method_analysis::ReachableFromInitMethodAnalysis::is_iroutine_reachable_from_init";
-val_t analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(val_t p0, val_t p1);
-typedef val_t (*analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_method_reachable_from_init = "reachable_from_init_method_analysis::ReachableFromInitMethodAnalysis::is_method_reachable_from_init";
-val_t analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_method_reachable_from_init(val_t p0, val_t p1);
-typedef val_t (*analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_method_reachable_from_init_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init = "reachable_from_init_method_analysis::ReachableFromInitMethodAnalysis::init";
-void analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init(val_t p0, int* init_table);
-typedef void (*analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init_t)(val_t p0, int* init_table);
-val_t NEW_ReachableFromInitMethodAnalysis_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init();
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init = "reachable_from_init_method_analysis::DefaultReachableFromInitMethodAnalysis::(reachable_from_init_method_analysis::ReachableFromInitMethodAnalysis::is_iroutine_reachable_from_init)";
-val_t analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(val_t p0, val_t p1);
-typedef val_t (*analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_method_reachable_from_init = "reachable_from_init_method_analysis::DefaultReachableFromInitMethodAnalysis::(reachable_from_init_method_analysis::ReachableFromInitMethodAnalysis::is_method_reachable_from_init)";
-val_t analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_method_reachable_from_init(val_t p0, val_t p1);
-typedef val_t (*analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_method_reachable_from_init_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init = "reachable_from_init_method_analysis::DefaultReachableFromInitMethodAnalysis::init";
-void analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init(val_t p0, int* init_table);
-typedef void (*analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init_t)(val_t p0, int* init_table);
-val_t NEW_DefaultReachableFromInitMethodAnalysis_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init();
-#endif
diff --git a/c_src/analysis___reachable_from_init_method_analysis_impl._sep.h b/c_src/analysis___reachable_from_init_method_analysis_impl._sep.h
deleted file mode 100644 (file)
index 68b6b40..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./analysis/reachable_from_init_method_analysis_impl. */
-#ifndef analysis___reachable_from_init_method_analysis_impl_sep
-#define analysis___reachable_from_init_method_analysis_impl_sep
-#include "analysis___reachable_from_init_method_analysis._sep.h"
-#include <nit_common.h>
-
-extern const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder[];
-
-extern const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis_impl___RFIMAContext[];
-
-extern const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor[];
-extern const char *LOCATE_analysis___reachable_from_init_method_analysis_impl;
-extern const int SFT_analysis___reachable_from_init_method_analysis_impl[];
-#define ID_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder (SFT_analysis___reachable_from_init_method_analysis_impl[0])
-#define COLOR_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder (SFT_analysis___reachable_from_init_method_analysis_impl[1])
-#define ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder____program(recv) ATTR(recv, (SFT_analysis___reachable_from_init_method_analysis_impl[2] + 0))
-#define ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder____context(recv) ATTR(recv, (SFT_analysis___reachable_from_init_method_analysis_impl[2] + 1))
-#define INIT_TABLE_POS_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder (SFT_analysis___reachable_from_init_method_analysis_impl[3] + 0)
-#define CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___program(recv) ((analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___program_t)CALL((recv), (SFT_analysis___reachable_from_init_method_analysis_impl[3] + 1)))
-#define CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___context(recv) ((analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___context_t)CALL((recv), (SFT_analysis___reachable_from_init_method_analysis_impl[3] + 2)))
-#define CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___init(recv) ((analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___init_t)CALL((recv), (SFT_analysis___reachable_from_init_method_analysis_impl[3] + 3)))
-#define CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work(recv) ((analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work_t)CALL((recv), (SFT_analysis___reachable_from_init_method_analysis_impl[3] + 4)))
-#define ID_analysis___reachable_from_init_method_analysis_impl___RFIMAContext (SFT_analysis___reachable_from_init_method_analysis_impl[4])
-#define COLOR_analysis___reachable_from_init_method_analysis_impl___RFIMAContext (SFT_analysis___reachable_from_init_method_analysis_impl[5])
-#define ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAContext____reachable_from_init_iroutines(recv) ATTR(recv, (SFT_analysis___reachable_from_init_method_analysis_impl[6] + 0))
-#define INIT_TABLE_POS_analysis___reachable_from_init_method_analysis_impl___RFIMAContext (SFT_analysis___reachable_from_init_method_analysis_impl[7] + 0)
-#define CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(recv) ((analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines_t)CALL((recv), (SFT_analysis___reachable_from_init_method_analysis_impl[7] + 1)))
-#define ID_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor (SFT_analysis___reachable_from_init_method_analysis_impl[8])
-#define COLOR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor (SFT_analysis___reachable_from_init_method_analysis_impl[9])
-#define ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(recv) ATTR(recv, (SFT_analysis___reachable_from_init_method_analysis_impl[10] + 0))
-#define ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(recv) ATTR(recv, (SFT_analysis___reachable_from_init_method_analysis_impl[10] + 1))
-#define INIT_TABLE_POS_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor (SFT_analysis___reachable_from_init_method_analysis_impl[11] + 0)
-#define CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(recv) ((analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___context_t)CALL((recv), (SFT_analysis___reachable_from_init_method_analysis_impl[11] + 1)))
-#define CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(recv) ((analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program_t)CALL((recv), (SFT_analysis___reachable_from_init_method_analysis_impl[11] + 2)))
-#define CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(recv) ((analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init_t)CALL((recv), (SFT_analysis___reachable_from_init_method_analysis_impl[11] + 3)))
-#define CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(recv) ((analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call_t)CALL((recv), (SFT_analysis___reachable_from_init_method_analysis_impl[11] + 4)))
-#define CALL_SUPER_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode(recv) ((analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_t)CALL((recv), (SFT_analysis___reachable_from_init_method_analysis_impl[11] + 5)))
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___program = "reachable_from_init_method_analysis_impl::RFIMABuilder::program";
-val_t analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___program(val_t p0);
-typedef val_t (*analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___program_t)(val_t p0);
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___context = "reachable_from_init_method_analysis_impl::RFIMABuilder::context";
-val_t analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___context(val_t p0);
-typedef val_t (*analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___context_t)(val_t p0);
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___init = "reachable_from_init_method_analysis_impl::RFIMABuilder::init";
-void analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___init(val_t p0, val_t p1, int* init_table);
-typedef void (*analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___init_t)(val_t p0, val_t p1, int* init_table);
-val_t NEW_RFIMABuilder_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___init(val_t p0);
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work = "reachable_from_init_method_analysis_impl::RFIMABuilder::work";
-void analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work(val_t p0);
-typedef void (*analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work_t)(val_t p0);
-  void OC_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work_1(struct stack_frame_t *closctx, val_t p0);
-  typedef void (*OC_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work_1_t)(struct stack_frame_t *closctx, val_t p0);
-    typedef void (*CLOS_OC_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work_2_0)(struct stack_frame_t *);
-    void OC_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-    typedef void (*OC_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines = "reachable_from_init_method_analysis_impl::RFIMAContext::reachable_from_init_iroutines";
-val_t analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(val_t p0);
-typedef val_t (*analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines_t)(val_t p0);
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init = "reachable_from_init_method_analysis_impl::RFIMAContext::(reachable_from_init_method_analysis::ReachableFromInitMethodAnalysis::is_iroutine_reachable_from_init)";
-val_t analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init(val_t p0, val_t p1);
-typedef val_t (*analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init = "reachable_from_init_method_analysis_impl::RFIMAContext::(reachable_from_init_method_analysis::ReachableFromInitMethodAnalysis::is_method_reachable_from_init)";
-val_t analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init(val_t p0, val_t p1);
-typedef val_t (*analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init_t)(val_t p0, val_t p1);
-val_t NEW_RFIMAContext_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init();
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___context = "reachable_from_init_method_analysis_impl::RFIMAVisitor::context";
-val_t analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(val_t p0);
-typedef val_t (*analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___context_t)(val_t p0);
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program = "reachable_from_init_method_analysis_impl::RFIMAVisitor::program";
-val_t analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(val_t p0);
-typedef val_t (*analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program_t)(val_t p0);
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init = "reachable_from_init_method_analysis_impl::RFIMAVisitor::init";
-void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table);
-typedef void (*analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init_t)(val_t p0, val_t p1, val_t p2, int* init_table);
-val_t NEW_RFIMAVisitor_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call = "reachable_from_init_method_analysis_impl::RFIMAVisitor::process_call";
-void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(val_t p0, val_t p1);
-typedef void (*analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode = "reachable_from_init_method_analysis_impl::RFIMAVisitor::(icode_tools::ICodeVisitor::visit_icode)";
-void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode(val_t p0, val_t p1);
-typedef void (*analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_t)(val_t p0, val_t p1);
-        typedef void (*CLOS_OC_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_1_0)(struct stack_frame_t *);
-        void OC_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-        typedef void (*OC_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-          typedef void (*CLOS_OC_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_2_0)(struct stack_frame_t *);
-          void OC_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-          typedef void (*OC_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-#endif
diff --git a/c_src/analysis___reachable_method_analysis._sep.h b/c_src/analysis___reachable_method_analysis._sep.h
deleted file mode 100644 (file)
index f42d9de..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./analysis/reachable_method_analysis. */
-#ifndef analysis___reachable_method_analysis_sep
-#define analysis___reachable_method_analysis_sep
-#include "program._sep.h"
-#include <nit_common.h>
-
-extern const classtable_elt_t VFT_analysis___reachable_method_analysis___ReachableMethodAnalysis[];
-
-extern const classtable_elt_t VFT_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis[];
-extern const char *LOCATE_analysis___reachable_method_analysis;
-extern const int SFT_analysis___reachable_method_analysis[];
-#define ATTR_analysis___reachable_method_analysis___Program____rma(recv) ATTR(recv, (SFT_analysis___reachable_method_analysis[0] + 0))
-#define CALL_analysis___reachable_method_analysis___Program___rma(recv) ((analysis___reachable_method_analysis___Program___rma_t)CALL((recv), (SFT_analysis___reachable_method_analysis[1] + 0)))
-#define CALL_analysis___reachable_method_analysis___Program___rma__eq(recv) ((analysis___reachable_method_analysis___Program___rma__eq_t)CALL((recv), (SFT_analysis___reachable_method_analysis[1] + 1)))
-#define CALL_analysis___reachable_method_analysis___Program___dump_reachable_methods(recv) ((analysis___reachable_method_analysis___Program___dump_reachable_methods_t)CALL((recv), (SFT_analysis___reachable_method_analysis[1] + 2)))
-#define CALL_analysis___reachable_method_analysis___Program___dump_unreachable_methods(recv) ((analysis___reachable_method_analysis___Program___dump_unreachable_methods_t)CALL((recv), (SFT_analysis___reachable_method_analysis[1] + 3)))
-#define ID_analysis___reachable_method_analysis___ReachableMethodAnalysis (SFT_analysis___reachable_method_analysis[2])
-#define COLOR_analysis___reachable_method_analysis___ReachableMethodAnalysis (SFT_analysis___reachable_method_analysis[3])
-#define INIT_TABLE_POS_analysis___reachable_method_analysis___ReachableMethodAnalysis (SFT_analysis___reachable_method_analysis[4] + 0)
-#define CALL_analysis___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(recv) ((analysis___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable_t)CALL((recv), (SFT_analysis___reachable_method_analysis[4] + 1)))
-#define CALL_analysis___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable(recv) ((analysis___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable_t)CALL((recv), (SFT_analysis___reachable_method_analysis[4] + 2)))
-#define CALL_analysis___reachable_method_analysis___ReachableMethodAnalysis___init(recv) ((analysis___reachable_method_analysis___ReachableMethodAnalysis___init_t)CALL((recv), (SFT_analysis___reachable_method_analysis[4] + 3)))
-#define ID_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis (SFT_analysis___reachable_method_analysis[5])
-#define COLOR_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis (SFT_analysis___reachable_method_analysis[6])
-#define INIT_TABLE_POS_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis (SFT_analysis___reachable_method_analysis[7] + 0)
-#define CALL_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___init(recv) ((analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___init_t)CALL((recv), (SFT_analysis___reachable_method_analysis[7] + 1)))
-static const char * const LOCATE_analysis___reachable_method_analysis___Program___rma = "reachable_method_analysis::Program::rma";
-val_t analysis___reachable_method_analysis___Program___rma(val_t p0);
-typedef val_t (*analysis___reachable_method_analysis___Program___rma_t)(val_t p0);
-static const char * const LOCATE_analysis___reachable_method_analysis___Program___rma__eq = "reachable_method_analysis::Program::rma=";
-void analysis___reachable_method_analysis___Program___rma__eq(val_t p0, val_t p1);
-typedef void (*analysis___reachable_method_analysis___Program___rma__eq_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___reachable_method_analysis___Program___dump_reachable_methods = "reachable_method_analysis::Program::dump_reachable_methods";
-void analysis___reachable_method_analysis___Program___dump_reachable_methods(val_t p0, val_t p1, val_t p2);
-typedef void (*analysis___reachable_method_analysis___Program___dump_reachable_methods_t)(val_t p0, val_t p1, val_t p2);
-  void OC_analysis___reachable_method_analysis___Program___dump_reachable_methods_5(struct stack_frame_t *closctx, val_t p0);
-  typedef void (*OC_analysis___reachable_method_analysis___Program___dump_reachable_methods_5_t)(struct stack_frame_t *closctx, val_t p0);
-static const char * const LOCATE_analysis___reachable_method_analysis___Program___dump_unreachable_methods = "reachable_method_analysis::Program::dump_unreachable_methods";
-void analysis___reachable_method_analysis___Program___dump_unreachable_methods(val_t p0, val_t p1, val_t p2);
-typedef void (*analysis___reachable_method_analysis___Program___dump_unreachable_methods_t)(val_t p0, val_t p1, val_t p2);
-  void OC_analysis___reachable_method_analysis___Program___dump_unreachable_methods_5(struct stack_frame_t *closctx, val_t p0);
-  typedef void (*OC_analysis___reachable_method_analysis___Program___dump_unreachable_methods_5_t)(struct stack_frame_t *closctx, val_t p0);
-val_t NEW_Program_program___Program___init(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable = "reachable_method_analysis::ReachableMethodAnalysis::is_iroutine_reachable";
-val_t analysis___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(val_t p0, val_t p1);
-typedef val_t (*analysis___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable = "reachable_method_analysis::ReachableMethodAnalysis::is_method_reachable";
-val_t analysis___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable(val_t p0, val_t p1);
-typedef val_t (*analysis___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___reachable_method_analysis___ReachableMethodAnalysis___init = "reachable_method_analysis::ReachableMethodAnalysis::init";
-void analysis___reachable_method_analysis___ReachableMethodAnalysis___init(val_t p0, int* init_table);
-typedef void (*analysis___reachable_method_analysis___ReachableMethodAnalysis___init_t)(val_t p0, int* init_table);
-val_t NEW_ReachableMethodAnalysis_analysis___reachable_method_analysis___ReachableMethodAnalysis___init();
-static const char * const LOCATE_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___is_iroutine_reachable = "reachable_method_analysis::DefaultReachableMethodAnalysis::(reachable_method_analysis::ReachableMethodAnalysis::is_iroutine_reachable)";
-val_t analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___is_iroutine_reachable(val_t p0, val_t p1);
-typedef val_t (*analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___is_iroutine_reachable_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___is_method_reachable = "reachable_method_analysis::DefaultReachableMethodAnalysis::(reachable_method_analysis::ReachableMethodAnalysis::is_method_reachable)";
-val_t analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___is_method_reachable(val_t p0, val_t p1);
-typedef val_t (*analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___is_method_reachable_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___init = "reachable_method_analysis::DefaultReachableMethodAnalysis::init";
-void analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___init(val_t p0, int* init_table);
-typedef void (*analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___init_t)(val_t p0, int* init_table);
-val_t NEW_DefaultReachableMethodAnalysis_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___init();
-#endif
diff --git a/c_src/analysis___remove_out_of_init_get_test._sep.h b/c_src/analysis___remove_out_of_init_get_test._sep.h
deleted file mode 100644 (file)
index 4f0e0ce..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./analysis/remove_out_of_init_get_test. */
-#ifndef analysis___remove_out_of_init_get_test_sep
-#define analysis___remove_out_of_init_get_test_sep
-#include "analysis___reachable_from_init_method_analysis._sep.h"
-#include <nit_common.h>
-
-extern const classtable_elt_t VFT_analysis___remove_out_of_init_get_test___IssetCounter[];
-
-extern const classtable_elt_t VFT_analysis___remove_out_of_init_get_test___GetterTestRemover[];
-extern const char *LOCATE_analysis___remove_out_of_init_get_test;
-extern const int SFT_analysis___remove_out_of_init_get_test[];
-#define ATTR_analysis___remove_out_of_init_get_test___Program____nb_optimized_isset(recv) ATTR(recv, (SFT_analysis___remove_out_of_init_get_test[0] + 0))
-#define CALL_analysis___remove_out_of_init_get_test___Program___nb_optimized_isset(recv) ((analysis___remove_out_of_init_get_test___Program___nb_optimized_isset_t)CALL((recv), (SFT_analysis___remove_out_of_init_get_test[1] + 0)))
-#define CALL_analysis___remove_out_of_init_get_test___Program___optimize_out_of_init_getters(recv) ((analysis___remove_out_of_init_get_test___Program___optimize_out_of_init_getters_t)CALL((recv), (SFT_analysis___remove_out_of_init_get_test[1] + 1)))
-#define CALL_analysis___remove_out_of_init_get_test___Program___dump_out_of_init_information(recv) ((analysis___remove_out_of_init_get_test___Program___dump_out_of_init_information_t)CALL((recv), (SFT_analysis___remove_out_of_init_get_test[1] + 2)))
-#define ID_analysis___remove_out_of_init_get_test___IssetCounter (SFT_analysis___remove_out_of_init_get_test[2])
-#define COLOR_analysis___remove_out_of_init_get_test___IssetCounter (SFT_analysis___remove_out_of_init_get_test[3])
-#define ATTR_analysis___remove_out_of_init_get_test___IssetCounter____nb_isset(recv) ATTR(recv, (SFT_analysis___remove_out_of_init_get_test[4] + 0))
-#define INIT_TABLE_POS_analysis___remove_out_of_init_get_test___IssetCounter (SFT_analysis___remove_out_of_init_get_test[5] + 0)
-#define CALL_analysis___remove_out_of_init_get_test___IssetCounter___nb_isset(recv) ((analysis___remove_out_of_init_get_test___IssetCounter___nb_isset_t)CALL((recv), (SFT_analysis___remove_out_of_init_get_test[5] + 1)))
-#define CALL_SUPER_analysis___remove_out_of_init_get_test___IssetCounter___visit_icode(recv) ((analysis___remove_out_of_init_get_test___IssetCounter___visit_icode_t)CALL((recv), (SFT_analysis___remove_out_of_init_get_test[5] + 2)))
-#define ID_analysis___remove_out_of_init_get_test___GetterTestRemover (SFT_analysis___remove_out_of_init_get_test[6])
-#define COLOR_analysis___remove_out_of_init_get_test___GetterTestRemover (SFT_analysis___remove_out_of_init_get_test[7])
-#define ATTR_analysis___remove_out_of_init_get_test___GetterTestRemover____nb_optimized_isset(recv) ATTR(recv, (SFT_analysis___remove_out_of_init_get_test[8] + 0))
-#define INIT_TABLE_POS_analysis___remove_out_of_init_get_test___GetterTestRemover (SFT_analysis___remove_out_of_init_get_test[9] + 0)
-#define CALL_analysis___remove_out_of_init_get_test___GetterTestRemover___nb_optimized_isset(recv) ((analysis___remove_out_of_init_get_test___GetterTestRemover___nb_optimized_isset_t)CALL((recv), (SFT_analysis___remove_out_of_init_get_test[9] + 1)))
-#define CALL_SUPER_analysis___remove_out_of_init_get_test___GetterTestRemover___visit_icode(recv) ((analysis___remove_out_of_init_get_test___GetterTestRemover___visit_icode_t)CALL((recv), (SFT_analysis___remove_out_of_init_get_test[9] + 2)))
-static const char * const LOCATE_analysis___remove_out_of_init_get_test___Program___nb_optimized_isset = "remove_out_of_init_get_test::Program::nb_optimized_isset";
-val_t analysis___remove_out_of_init_get_test___Program___nb_optimized_isset(val_t p0);
-typedef val_t (*analysis___remove_out_of_init_get_test___Program___nb_optimized_isset_t)(val_t p0);
-static const char * const LOCATE_analysis___remove_out_of_init_get_test___Program___optimize_out_of_init_getters = "remove_out_of_init_get_test::Program::optimize_out_of_init_getters";
-void analysis___remove_out_of_init_get_test___Program___optimize_out_of_init_getters(val_t p0);
-typedef void (*analysis___remove_out_of_init_get_test___Program___optimize_out_of_init_getters_t)(val_t p0);
-  void OC_analysis___remove_out_of_init_get_test___Program___optimize_out_of_init_getters_1(struct stack_frame_t *closctx, val_t p0, val_t p1);
-  typedef void (*OC_analysis___remove_out_of_init_get_test___Program___optimize_out_of_init_getters_1_t)(struct stack_frame_t *closctx, val_t p0, val_t p1);
-static const char * const LOCATE_analysis___remove_out_of_init_get_test___Program___dump_out_of_init_information = "remove_out_of_init_get_test::Program::dump_out_of_init_information";
-void analysis___remove_out_of_init_get_test___Program___dump_out_of_init_information(val_t p0, val_t p1);
-typedef void (*analysis___remove_out_of_init_get_test___Program___dump_out_of_init_information_t)(val_t p0, val_t p1);
-  void OC_analysis___remove_out_of_init_get_test___Program___dump_out_of_init_information_4(struct stack_frame_t *closctx, val_t p0, val_t p1);
-  typedef void (*OC_analysis___remove_out_of_init_get_test___Program___dump_out_of_init_information_4_t)(struct stack_frame_t *closctx, val_t p0, val_t p1);
-val_t NEW_Program_program___Program___init(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___remove_out_of_init_get_test___IssetCounter___nb_isset = "remove_out_of_init_get_test::IssetCounter::nb_isset";
-val_t analysis___remove_out_of_init_get_test___IssetCounter___nb_isset(val_t p0);
-typedef val_t (*analysis___remove_out_of_init_get_test___IssetCounter___nb_isset_t)(val_t p0);
-static const char * const LOCATE_analysis___remove_out_of_init_get_test___IssetCounter___visit_icode = "remove_out_of_init_get_test::IssetCounter::(icode_tools::ICodeVisitor::visit_icode)";
-void analysis___remove_out_of_init_get_test___IssetCounter___visit_icode(val_t p0, val_t p1);
-typedef void (*analysis___remove_out_of_init_get_test___IssetCounter___visit_icode_t)(val_t p0, val_t p1);
-val_t NEW_IssetCounter_icode___icode_tools___ICodeVisitor___init();
-static const char * const LOCATE_analysis___remove_out_of_init_get_test___GetterTestRemover___nb_optimized_isset = "remove_out_of_init_get_test::GetterTestRemover::nb_optimized_isset";
-val_t analysis___remove_out_of_init_get_test___GetterTestRemover___nb_optimized_isset(val_t p0);
-typedef val_t (*analysis___remove_out_of_init_get_test___GetterTestRemover___nb_optimized_isset_t)(val_t p0);
-static const char * const LOCATE_analysis___remove_out_of_init_get_test___GetterTestRemover___visit_icode = "remove_out_of_init_get_test::GetterTestRemover::(icode_tools::ICodeVisitor::visit_icode)";
-void analysis___remove_out_of_init_get_test___GetterTestRemover___visit_icode(val_t p0, val_t p1);
-typedef void (*analysis___remove_out_of_init_get_test___GetterTestRemover___visit_icode_t)(val_t p0, val_t p1);
-val_t NEW_GetterTestRemover_icode___icode_tools___ICodeVisitor___init();
-#endif
diff --git a/c_src/analysis___rta_analysis._sep.h b/c_src/analysis___rta_analysis._sep.h
deleted file mode 100644 (file)
index 18f7671..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./analysis/rta_analysis. */
-#ifndef analysis___rta_analysis_sep
-#define analysis___rta_analysis_sep
-#include "analysis___instantiated_type_analysis._sep.h"
-#include "analysis___reachable_method_analysis._sep.h"
-#include <nit_common.h>
-
-extern const classtable_elt_t VFT_analysis___rta_analysis___RtaContext[];
-
-extern const classtable_elt_t VFT_analysis___rta_analysis___RtaBuilder[];
-
-extern const classtable_elt_t VFT_analysis___rta_analysis___RtaVisitor[];
-extern const char *LOCATE_analysis___rta_analysis;
-extern const int SFT_analysis___rta_analysis[];
-#define ID_analysis___rta_analysis___RtaContext (SFT_analysis___rta_analysis[0])
-#define COLOR_analysis___rta_analysis___RtaContext (SFT_analysis___rta_analysis[1])
-#define ATTR_analysis___rta_analysis___RtaContext____instanciated_classes(recv) ATTR(recv, (SFT_analysis___rta_analysis[2] + 0))
-#define ATTR_analysis___rta_analysis___RtaContext____reachable_iroutines(recv) ATTR(recv, (SFT_analysis___rta_analysis[2] + 1))
-#define INIT_TABLE_POS_analysis___rta_analysis___RtaContext (SFT_analysis___rta_analysis[3] + 0)
-#define CALL_analysis___rta_analysis___RtaContext___init(recv) ((analysis___rta_analysis___RtaContext___init_t)CALL((recv), (SFT_analysis___rta_analysis[3] + 1)))
-#define CALL_analysis___rta_analysis___RtaContext___instanciated_classes(recv) ((analysis___rta_analysis___RtaContext___instanciated_classes_t)CALL((recv), (SFT_analysis___rta_analysis[3] + 2)))
-#define CALL_analysis___rta_analysis___RtaContext___reachable_iroutines(recv) ((analysis___rta_analysis___RtaContext___reachable_iroutines_t)CALL((recv), (SFT_analysis___rta_analysis[3] + 3)))
-#define ID_analysis___rta_analysis___RtaBuilder (SFT_analysis___rta_analysis[4])
-#define COLOR_analysis___rta_analysis___RtaBuilder (SFT_analysis___rta_analysis[5])
-#define ATTR_analysis___rta_analysis___RtaBuilder____context(recv) ATTR(recv, (SFT_analysis___rta_analysis[6] + 0))
-#define ATTR_analysis___rta_analysis___RtaBuilder____program(recv) ATTR(recv, (SFT_analysis___rta_analysis[6] + 1))
-#define ATTR_analysis___rta_analysis___RtaBuilder____iroutine_to_search(recv) ATTR(recv, (SFT_analysis___rta_analysis[6] + 2))
-#define ATTR_analysis___rta_analysis___RtaBuilder____call_sites(recv) ATTR(recv, (SFT_analysis___rta_analysis[6] + 3))
-#define ATTR_analysis___rta_analysis___RtaBuilder____called_methods(recv) ATTR(recv, (SFT_analysis___rta_analysis[6] + 4))
-#define INIT_TABLE_POS_analysis___rta_analysis___RtaBuilder (SFT_analysis___rta_analysis[7] + 0)
-#define CALL_analysis___rta_analysis___RtaBuilder___context(recv) ((analysis___rta_analysis___RtaBuilder___context_t)CALL((recv), (SFT_analysis___rta_analysis[7] + 1)))
-#define CALL_analysis___rta_analysis___RtaBuilder___program(recv) ((analysis___rta_analysis___RtaBuilder___program_t)CALL((recv), (SFT_analysis___rta_analysis[7] + 2)))
-#define CALL_analysis___rta_analysis___RtaBuilder___iroutine_to_search(recv) ((analysis___rta_analysis___RtaBuilder___iroutine_to_search_t)CALL((recv), (SFT_analysis___rta_analysis[7] + 3)))
-#define CALL_analysis___rta_analysis___RtaBuilder___call_sites(recv) ((analysis___rta_analysis___RtaBuilder___call_sites_t)CALL((recv), (SFT_analysis___rta_analysis[7] + 4)))
-#define CALL_analysis___rta_analysis___RtaBuilder___called_methods(recv) ((analysis___rta_analysis___RtaBuilder___called_methods_t)CALL((recv), (SFT_analysis___rta_analysis[7] + 5)))
-#define CALL_analysis___rta_analysis___RtaBuilder___init(recv) ((analysis___rta_analysis___RtaBuilder___init_t)CALL((recv), (SFT_analysis___rta_analysis[7] + 6)))
-#define CALL_analysis___rta_analysis___RtaBuilder___check_method(recv) ((analysis___rta_analysis___RtaBuilder___check_method_t)CALL((recv), (SFT_analysis___rta_analysis[7] + 7)))
-#define CALL_analysis___rta_analysis___RtaBuilder___check_call_sites(recv) ((analysis___rta_analysis___RtaBuilder___check_call_sites_t)CALL((recv), (SFT_analysis___rta_analysis[7] + 8)))
-#define CALL_analysis___rta_analysis___RtaBuilder___add_instantiated_class(recv) ((analysis___rta_analysis___RtaBuilder___add_instantiated_class_t)CALL((recv), (SFT_analysis___rta_analysis[7] + 9)))
-#define CALL_analysis___rta_analysis___RtaBuilder___add_reachable_call(recv) ((analysis___rta_analysis___RtaBuilder___add_reachable_call_t)CALL((recv), (SFT_analysis___rta_analysis[7] + 10)))
-#define CALL_analysis___rta_analysis___RtaBuilder___add_reachable_iroutine(recv) ((analysis___rta_analysis___RtaBuilder___add_reachable_iroutine_t)CALL((recv), (SFT_analysis___rta_analysis[7] + 11)))
-#define CALL_analysis___rta_analysis___RtaBuilder___force_some_type_analysis(recv) ((analysis___rta_analysis___RtaBuilder___force_some_type_analysis_t)CALL((recv), (SFT_analysis___rta_analysis[7] + 12)))
-#define CALL_analysis___rta_analysis___RtaBuilder___work(recv) ((analysis___rta_analysis___RtaBuilder___work_t)CALL((recv), (SFT_analysis___rta_analysis[7] + 13)))
-#define ID_analysis___rta_analysis___RtaVisitor (SFT_analysis___rta_analysis[8])
-#define COLOR_analysis___rta_analysis___RtaVisitor (SFT_analysis___rta_analysis[9])
-#define ATTR_analysis___rta_analysis___RtaVisitor____builder(recv) ATTR(recv, (SFT_analysis___rta_analysis[10] + 0))
-#define INIT_TABLE_POS_analysis___rta_analysis___RtaVisitor (SFT_analysis___rta_analysis[11] + 0)
-#define CALL_analysis___rta_analysis___RtaVisitor___builder(recv) ((analysis___rta_analysis___RtaVisitor___builder_t)CALL((recv), (SFT_analysis___rta_analysis[11] + 1)))
-#define CALL_SUPER_analysis___rta_analysis___RtaVisitor___visit_icode(recv) ((analysis___rta_analysis___RtaVisitor___visit_icode_t)CALL((recv), (SFT_analysis___rta_analysis[11] + 2)))
-#define CALL_analysis___rta_analysis___RtaVisitor___init(recv) ((analysis___rta_analysis___RtaVisitor___init_t)CALL((recv), (SFT_analysis___rta_analysis[11] + 3)))
-static const char * const LOCATE_analysis___rta_analysis___RtaContext___init = "rta_analysis::RtaContext::init";
-void analysis___rta_analysis___RtaContext___init(val_t p0, int* init_table);
-typedef void (*analysis___rta_analysis___RtaContext___init_t)(val_t p0, int* init_table);
-val_t NEW_RtaContext_analysis___rta_analysis___RtaContext___init();
-static const char * const LOCATE_analysis___rta_analysis___RtaContext___instanciated_classes = "rta_analysis::RtaContext::instanciated_classes";
-val_t analysis___rta_analysis___RtaContext___instanciated_classes(val_t p0);
-typedef val_t (*analysis___rta_analysis___RtaContext___instanciated_classes_t)(val_t p0);
-static const char * const LOCATE_analysis___rta_analysis___RtaContext___is_class_instantiated = "rta_analysis::RtaContext::(instantiated_type_analysis::InstantiatedTypeAnalysis::is_class_instantiated)";
-val_t analysis___rta_analysis___RtaContext___is_class_instantiated(val_t p0, val_t p1);
-typedef val_t (*analysis___rta_analysis___RtaContext___is_class_instantiated_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___rta_analysis___RtaContext___reachable_iroutines = "rta_analysis::RtaContext::reachable_iroutines";
-val_t analysis___rta_analysis___RtaContext___reachable_iroutines(val_t p0);
-typedef val_t (*analysis___rta_analysis___RtaContext___reachable_iroutines_t)(val_t p0);
-static const char * const LOCATE_analysis___rta_analysis___RtaContext___is_iroutine_reachable = "rta_analysis::RtaContext::(reachable_method_analysis::ReachableMethodAnalysis::is_iroutine_reachable)";
-val_t analysis___rta_analysis___RtaContext___is_iroutine_reachable(val_t p0, val_t p1);
-typedef val_t (*analysis___rta_analysis___RtaContext___is_iroutine_reachable_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___rta_analysis___RtaContext___is_method_reachable = "rta_analysis::RtaContext::(reachable_method_analysis::ReachableMethodAnalysis::is_method_reachable)";
-val_t analysis___rta_analysis___RtaContext___is_method_reachable(val_t p0, val_t p1);
-typedef val_t (*analysis___rta_analysis___RtaContext___is_method_reachable_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___rta_analysis___RtaBuilder___context = "rta_analysis::RtaBuilder::context";
-val_t analysis___rta_analysis___RtaBuilder___context(val_t p0);
-typedef val_t (*analysis___rta_analysis___RtaBuilder___context_t)(val_t p0);
-static const char * const LOCATE_analysis___rta_analysis___RtaBuilder___program = "rta_analysis::RtaBuilder::program";
-val_t analysis___rta_analysis___RtaBuilder___program(val_t p0);
-typedef val_t (*analysis___rta_analysis___RtaBuilder___program_t)(val_t p0);
-static const char * const LOCATE_analysis___rta_analysis___RtaBuilder___iroutine_to_search = "rta_analysis::RtaBuilder::iroutine_to_search";
-val_t analysis___rta_analysis___RtaBuilder___iroutine_to_search(val_t p0);
-typedef val_t (*analysis___rta_analysis___RtaBuilder___iroutine_to_search_t)(val_t p0);
-static const char * const LOCATE_analysis___rta_analysis___RtaBuilder___call_sites = "rta_analysis::RtaBuilder::call_sites";
-val_t analysis___rta_analysis___RtaBuilder___call_sites(val_t p0);
-typedef val_t (*analysis___rta_analysis___RtaBuilder___call_sites_t)(val_t p0);
-static const char * const LOCATE_analysis___rta_analysis___RtaBuilder___called_methods = "rta_analysis::RtaBuilder::called_methods";
-val_t analysis___rta_analysis___RtaBuilder___called_methods(val_t p0);
-typedef val_t (*analysis___rta_analysis___RtaBuilder___called_methods_t)(val_t p0);
-static const char * const LOCATE_analysis___rta_analysis___RtaBuilder___init = "rta_analysis::RtaBuilder::init";
-void analysis___rta_analysis___RtaBuilder___init(val_t p0, val_t p1, int* init_table);
-typedef void (*analysis___rta_analysis___RtaBuilder___init_t)(val_t p0, val_t p1, int* init_table);
-val_t NEW_RtaBuilder_analysis___rta_analysis___RtaBuilder___init(val_t p0);
-static const char * const LOCATE_analysis___rta_analysis___RtaBuilder___check_method = "rta_analysis::RtaBuilder::check_method";
-val_t analysis___rta_analysis___RtaBuilder___check_method(val_t p0, val_t p1);
-typedef val_t (*analysis___rta_analysis___RtaBuilder___check_method_t)(val_t p0, val_t p1);
-  typedef void (*CLOS_OC_analysis___rta_analysis___RtaBuilder___check_method_2_0)(struct stack_frame_t *);
-  void OC_analysis___rta_analysis___RtaBuilder___check_method_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_analysis___rta_analysis___RtaBuilder___check_method_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-static const char * const LOCATE_analysis___rta_analysis___RtaBuilder___check_call_sites = "rta_analysis::RtaBuilder::check_call_sites";
-void analysis___rta_analysis___RtaBuilder___check_call_sites(val_t p0);
-typedef void (*analysis___rta_analysis___RtaBuilder___check_call_sites_t)(val_t p0);
-  typedef void (*CLOS_OC_analysis___rta_analysis___RtaBuilder___check_call_sites_1_0)(struct stack_frame_t *);
-  void OC_analysis___rta_analysis___RtaBuilder___check_call_sites_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_analysis___rta_analysis___RtaBuilder___check_call_sites_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-    typedef void (*CLOS_OC_analysis___rta_analysis___RtaBuilder___check_call_sites_2_0)(struct stack_frame_t *);
-    void OC_analysis___rta_analysis___RtaBuilder___check_call_sites_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-    typedef void (*OC_analysis___rta_analysis___RtaBuilder___check_call_sites_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*CLOS_OC_analysis___rta_analysis___RtaBuilder___check_call_sites_4_0)(struct stack_frame_t *);
-  void OC_analysis___rta_analysis___RtaBuilder___check_call_sites_4(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_analysis___rta_analysis___RtaBuilder___check_call_sites_4_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-static const char * const LOCATE_analysis___rta_analysis___RtaBuilder___add_instantiated_class = "rta_analysis::RtaBuilder::add_instantiated_class";
-void analysis___rta_analysis___RtaBuilder___add_instantiated_class(val_t p0, val_t p1);
-typedef void (*analysis___rta_analysis___RtaBuilder___add_instantiated_class_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___rta_analysis___RtaBuilder___add_reachable_call = "rta_analysis::RtaBuilder::add_reachable_call";
-void analysis___rta_analysis___RtaBuilder___add_reachable_call(val_t p0, val_t p1);
-typedef void (*analysis___rta_analysis___RtaBuilder___add_reachable_call_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___rta_analysis___RtaBuilder___add_reachable_iroutine = "rta_analysis::RtaBuilder::add_reachable_iroutine";
-void analysis___rta_analysis___RtaBuilder___add_reachable_iroutine(val_t p0, val_t p1);
-typedef void (*analysis___rta_analysis___RtaBuilder___add_reachable_iroutine_t)(val_t p0, val_t p1);
-static const char * const LOCATE_analysis___rta_analysis___RtaBuilder___force_some_type_analysis = "rta_analysis::RtaBuilder::force_some_type_analysis";
-void analysis___rta_analysis___RtaBuilder___force_some_type_analysis(val_t p0);
-typedef void (*analysis___rta_analysis___RtaBuilder___force_some_type_analysis_t)(val_t p0);
-    typedef void (*CLOS_OC_analysis___rta_analysis___RtaBuilder___force_some_type_analysis_15_0)(struct stack_frame_t *);
-    void OC_analysis___rta_analysis___RtaBuilder___force_some_type_analysis_15(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-    typedef void (*OC_analysis___rta_analysis___RtaBuilder___force_some_type_analysis_15_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-    typedef void (*CLOS_OC_analysis___rta_analysis___RtaBuilder___force_some_type_analysis_18_0)(struct stack_frame_t *);
-    void OC_analysis___rta_analysis___RtaBuilder___force_some_type_analysis_18(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-    typedef void (*OC_analysis___rta_analysis___RtaBuilder___force_some_type_analysis_18_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*CLOS_OC_analysis___rta_analysis___RtaBuilder___force_some_type_analysis_19_0)(struct stack_frame_t *);
-  void OC_analysis___rta_analysis___RtaBuilder___force_some_type_analysis_19(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_analysis___rta_analysis___RtaBuilder___force_some_type_analysis_19_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  void OC_analysis___rta_analysis___RtaBuilder___force_some_type_analysis_21(struct stack_frame_t *closctx, val_t p0);
-  typedef void (*OC_analysis___rta_analysis___RtaBuilder___force_some_type_analysis_21_t)(struct stack_frame_t *closctx, val_t p0);
-static const char * const LOCATE_analysis___rta_analysis___RtaBuilder___work = "rta_analysis::RtaBuilder::work";
-void analysis___rta_analysis___RtaBuilder___work(val_t p0);
-typedef void (*analysis___rta_analysis___RtaBuilder___work_t)(val_t p0);
-static const char * const LOCATE_analysis___rta_analysis___RtaVisitor___builder = "rta_analysis::RtaVisitor::builder";
-val_t analysis___rta_analysis___RtaVisitor___builder(val_t p0);
-typedef val_t (*analysis___rta_analysis___RtaVisitor___builder_t)(val_t p0);
-static const char * const LOCATE_analysis___rta_analysis___RtaVisitor___visit_icode = "rta_analysis::RtaVisitor::(icode_tools::ICodeVisitor::visit_icode)";
-void analysis___rta_analysis___RtaVisitor___visit_icode(val_t p0, val_t p1);
-typedef void (*analysis___rta_analysis___RtaVisitor___visit_icode_t)(val_t p0, val_t p1);
-        typedef void (*CLOS_OC_analysis___rta_analysis___RtaVisitor___visit_icode_1_0)(struct stack_frame_t *);
-        void OC_analysis___rta_analysis___RtaVisitor___visit_icode_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-        typedef void (*OC_analysis___rta_analysis___RtaVisitor___visit_icode_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-static const char * const LOCATE_analysis___rta_analysis___RtaVisitor___init = "rta_analysis::RtaVisitor::init";
-void analysis___rta_analysis___RtaVisitor___init(val_t p0, val_t p1, int* init_table);
-typedef void (*analysis___rta_analysis___RtaVisitor___init_t)(val_t p0, val_t p1, int* init_table);
-val_t NEW_RtaVisitor_analysis___rta_analysis___RtaVisitor___init(val_t p0);
-#endif
index 5b51911..ad051d9 100644 (file)
@@ -146,8 +146,8 @@ static void GC_collect(void) {
        struct stack_frame_t *frame = stack_frame_head;
        GC_static_object *staticObject = staticObjects.top;
        val_t object;
-       struct nitni_ref *ref;
-       struct nitni_ref_array_link *local_ref_array_link;
+       struct nitni_ref *global_ref;
+       struct nitni_ref_array_link *local_ref_array_link; /* for native interface */
 
        gc_allocation_pointer = gc_heap_pointer;
        gc_scavenging_pointer = gc_heap_pointer;
@@ -161,14 +161,14 @@ static void GC_collect(void) {
                staticObject = staticObject->next;
        }
 
-       /* Process global referenced Nit objects from C code */
-       ref = nitni_global_ref_list->head;
-       while (ref != NULL) {
-               object = ref->val;
+       /* Process global reference to Nit objects from C code */
+       global_ref = nitni_global_ref_list->head;
+       while (global_ref != NULL) {
+               object = global_ref->val;
                if (!ISNULL(object) && ISOBJ(object)) {
-                       ref->val = GC_evacuation((obj_t)object);
+                       global_ref->val = GC_evacuation((obj_t)object);
                }
-               ref = ref->next;
+               global_ref = global_ref->next;
        }
 
        /* Process function frames (local variables) */
index f9b96e8..1652ea9 100644 (file)
@@ -131,10 +131,10 @@ struct nitni_ref {
        int count; /* number of time this global reference has been marked */
 };
 
-/* This structure is used by extern methods to keep track of references to Nit objects */
+/* This structure is used by extern methods to keep track of local references to Nit objects */
 /* These references make sure an object is not collected by the GC while
  * this extern methods is on the call stack. */
-/* This takes the form of an array link. */
+/* This takes the form of an array link, each link of size 8 to avoid multiple mallocs. */
 #define NITNI_REF_ARRAY_LINK_SIZE 8
 struct nitni_ref_array_link {
        struct nitni_ref *reg[ NITNI_REF_ARRAY_LINK_SIZE ];
@@ -191,7 +191,6 @@ struct stack_frame_t {
 extern struct stack_frame_t *stack_frame_head;
 
 
-
 typedef enum {true = (1==1),false = (0==1)} bool;
 
 void nit_exit(int);
index 377442e..aab5b33 100644 (file)
@@ -13,7 +13,7 @@ val_t compiling___Program___output_format(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling.nit:28 */
+  /* compiling/compiling.nit:28 */
   REGB0 = TAG_Bool(ATTR_compiling___Program____output_format(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -37,7 +37,7 @@ void compiling___Program___output_format__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling.nit:28 */
+  /* compiling/compiling.nit:28 */
   ATTR_compiling___Program____output_format(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -61,7 +61,7 @@ void compiling___Program___compile_prog(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling.nit:34 */
+  /* compiling/compiling.nit:34 */
   fra.me.REG[1] = CALL_compiling___Program___output_format(fra.me.REG[0])(fra.me.REG[0]);
   if (!once_value_1) {
     fra.me.REG[2] = BOX_NativeString("none");
@@ -80,7 +80,7 @@ void compiling___Program___compile_prog(val_t p0){
   if (UNTAG_Bool(REGB0)) {
   } else {
     CALL_program___Program___with_each_iroutines(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_compiling___Program___compile_prog_2));
-    /* ./compiling//compiling.nit:40 */
+    /* compiling/compiling.nit:40 */
     fra.me.REG[2] = CALL_compiling___Program___output_format(fra.me.REG[0])(fra.me.REG[0]);
     if (!once_value_3) {
       fra.me.REG[1] = BOX_NativeString("C");
@@ -97,10 +97,10 @@ void compiling___Program___compile_prog(val_t p0){
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//compiling.nit:41 */
+      /* compiling/compiling.nit:41 */
       CALL_compiling___Program___compile_prog_to_c(fra.me.REG[0])(fra.me.REG[0]);
     } else {
-      /* ./compiling//compiling.nit:42 */
+      /* compiling/compiling.nit:42 */
       fra.me.REG[1] = CALL_compiling___Program___output_format(fra.me.REG[0])(fra.me.REG[0]);
       if (!once_value_4) {
         fra.me.REG[2] = BOX_NativeString("icode");
@@ -117,7 +117,7 @@ void compiling___Program___compile_prog(val_t p0){
         REGB0 = REGB1;
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./compiling//compiling.nit:43 */
+        /* compiling/compiling.nit:43 */
         CALL_compiling___icode_generator___Program___generate_icode_files(fra.me.REG[0])(fra.me.REG[0]);
       }
     }
@@ -128,7 +128,7 @@ void compiling___Program___compile_prog(val_t p0){
     void OC_compiling___Program___compile_prog_2(struct stack_frame_t *closctx, val_t p0, val_t p1){
       struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
       val_t tmp;
-      /* ./compiling//compiling.nit:38 */
+      /* compiling/compiling.nit:38 */
       fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
       fra.me.file = LOCATE_compiling;
       fra.me.line = 38;
@@ -165,12 +165,12 @@ void compiling___Program___compile_prog_to_c(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling.nit:53 */
+  /* compiling/compiling.nit:53 */
   fra.me.REG[1] = NEW_CProgram_compiling___compiling_base___CProgram___init(fra.me.REG[0]);
-  /* ./compiling//compiling.nit:55 */
+  /* compiling/compiling.nit:55 */
   fra.me.REG[2] = CALL_compiling___compiling_base___CProgram___compdir(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___file___String___mkdir(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./compiling//compiling.nit:57 */
+  /* compiling/compiling.nit:57 */
   fra.me.REG[2] = CALL_compiling___compiling_base___CProgram___files(fra.me.REG[1])(fra.me.REG[1]);
   if (!once_value_1) {
     fra.me.REG[3] = BOX_NativeString("$CLIBDIR/nit_main.c");
@@ -181,7 +181,7 @@ void compiling___Program___compile_prog_to_c(val_t p0){
   } else fra.me.REG[3] = once_value_1;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling.nit:58 */
+  /* compiling/compiling.nit:58 */
   fra.me.REG[3] = CALL_compiling___compiling_base___CProgram___files(fra.me.REG[1])(fra.me.REG[1]);
   if (!once_value_2) {
     fra.me.REG[2] = BOX_NativeString("$CLIBDIR/gc.c");
@@ -192,7 +192,7 @@ void compiling___Program___compile_prog_to_c(val_t p0){
   } else fra.me.REG[2] = once_value_2;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./compiling//compiling.nit:59 */
+  /* compiling/compiling.nit:59 */
   fra.me.REG[2] = CALL_compiling___compiling_base___CProgram___files(fra.me.REG[1])(fra.me.REG[1]);
   if (!once_value_3) {
     fra.me.REG[3] = BOX_NativeString("$CLIBDIR/gc_static_objects_list.c");
@@ -203,7 +203,7 @@ void compiling___Program___compile_prog_to_c(val_t p0){
   } else fra.me.REG[3] = once_value_3;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling.nit:61 */
+  /* compiling/compiling.nit:61 */
   fra.me.REG[3] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
   if (!once_value_4) {
     fra.me.REG[2] = BOX_NativeString("Generating C code");
@@ -214,8 +214,8 @@ void compiling___Program___compile_prog_to_c(val_t p0){
   } else fra.me.REG[2] = once_value_4;
   fra.me.REG[2] = fra.me.REG[2];
   REGB0 = TAG_Int(1);
-  CALL_mmloader___ToolContext___info(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], REGB0);
-  /* ./compiling//compiling.nit:62 */
+  CALL_toolcontext___ToolContext___info(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], REGB0);
+  /* compiling/compiling.nit:62 */
   fra.me.REG[2] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -224,7 +224,7 @@ void compiling___Program___compile_prog_to_c(val_t p0){
   }
   fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling___Program___compile_prog_to_c_5));
-  /* ./compiling//compiling.nit:64 */
+  /* compiling/compiling.nit:64 */
   fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
   if (!once_value_6) {
     fra.me.REG[3] = BOX_NativeString("Generating main, tables and makefile ...");
@@ -235,12 +235,12 @@ void compiling___Program___compile_prog_to_c(val_t p0){
   } else fra.me.REG[3] = once_value_6;
   fra.me.REG[3] = fra.me.REG[3];
   REGB0 = TAG_Int(1);
-  CALL_mmloader___ToolContext___info(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], REGB0);
-  /* ./compiling//compiling.nit:65 */
+  CALL_toolcontext___ToolContext___info(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], REGB0);
+  /* compiling/compiling.nit:65 */
   CALL_compiling___Program___compile_main(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling.nit:67 */
+  /* compiling/compiling.nit:67 */
   CALL_compiling___compiling_base___CProgram___generate_build_file(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling.nit:69 */
+  /* compiling/compiling.nit:69 */
   fra.me.REG[0] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_compiling___compiling_base___ToolContext___no_cc(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
@@ -295,10 +295,10 @@ void compiling___Program___compile_main(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling.nit:75 */
+  /* compiling/compiling.nit:75 */
   fra.me.REG[2] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = NEW_CompilerVisitor_compiling___compiling_base___CompilerVisitor___init(fra.me.REG[2], fra.me.REG[1]);
-  /* ./compiling//compiling.nit:76 */
+  /* compiling/compiling.nit:76 */
   if (!once_value_1) {
     fra.me.REG[3] = BOX_NativeString("#include <nit_common.h>");
     REGB0 = TAG_Int(23);
@@ -308,11 +308,11 @@ void compiling___Program___compile_main(val_t p0, val_t p1){
   } else fra.me.REG[3] = once_value_1;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling.nit:77 */
+  /* compiling/compiling.nit:77 */
   CALL_compiling___compiling_global___Program___compile_tables_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./compiling//compiling.nit:78 */
+  /* compiling/compiling.nit:78 */
   CALL_compiling___compiling_global___Program___compile_main_part(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./compiling//compiling.nit:79 */
+  /* compiling/compiling.nit:79 */
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_2) {
@@ -348,12 +348,12 @@ void compiling___Program___compile_main(val_t p0, val_t p1){
   fra.me.REG[4] = fra.me.REG[4];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./compiling//compiling.nit:80 */
+  /* compiling/compiling.nit:80 */
   fra.me.REG[4] = CALL_compiling___compiling_base___CProgram___files(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-  /* ./compiling//compiling.nit:81 */
+  /* compiling/compiling.nit:81 */
   fra.me.REG[3] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[3]);
-  /* ./compiling//compiling.nit:82 */
+  /* compiling/compiling.nit:82 */
   REGB0 = TAG_Int(3);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_5) {
@@ -379,7 +379,7 @@ void compiling___Program___compile_main(val_t p0, val_t p1){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
   CALL_standard___stream___OStream___write(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./compiling//compiling.nit:83 */
+  /* compiling/compiling.nit:83 */
   fra.me.REG[0] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
@@ -388,13 +388,13 @@ void compiling___Program___compile_main(val_t p0, val_t p1){
   }
   fra.me.REG[0] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_compiling___Program___compile_main_7));
-  /* ./compiling//compiling.nit:86 */
+  /* compiling/compiling.nit:86 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___header_writer(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_writer___Writer___write_to_stream(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling.nit:87 */
+  /* compiling/compiling.nit:87 */
   fra.me.REG[2] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_writer___Writer___write_to_stream(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling.nit:88 */
+  /* compiling/compiling.nit:88 */
   CALL_standard___stream___IOS___close(fra.me.REG[3])(fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
   return;
@@ -420,7 +420,7 @@ void compiling___Program___compile_main(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./compiling//compiling.nit:84 */
+    /* compiling/compiling.nit:84 */
     REGB0 = TAG_Int(3);
     fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_8) {
@@ -512,10 +512,10 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling.nit:96 */
+  /* compiling/compiling.nit:96 */
   fra.me.REG[2] = CALL_compiling___compiling_base___CProgram___program(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./compiling//compiling.nit:97 */
+  /* compiling/compiling.nit:97 */
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -541,10 +541,10 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Int(2);
-  CALL_mmloader___ToolContext___info(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], REGB0);
-  /* ./compiling//compiling.nit:98 */
+  CALL_toolcontext___ToolContext___info(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], REGB0);
+  /* compiling/compiling.nit:98 */
   fra.me.REG[3] = NEW_CompilerVisitor_compiling___compiling_base___CompilerVisitor___init(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling.nit:99 */
+  /* compiling/compiling.nit:99 */
   if (!once_value_3) {
     fra.me.REG[2] = BOX_NativeString("#include <nit_common.h>");
     REGB0 = TAG_Int(23);
@@ -554,10 +554,10 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
   } else fra.me.REG[2] = once_value_3;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./compiling//compiling.nit:101 */
+  /* compiling/compiling.nit:101 */
   REGB0 = CALL_metamodel___abstractmetamodel___MMModule___is_extern_hybrid(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling.nit:104 */
+    /* compiling/compiling.nit:104 */
     REGB0 = TAG_Int(3);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_4) {
@@ -582,7 +582,7 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
     fra.me.REG[4] = fra.me.REG[4];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
     fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-    /* ./compiling//compiling.nit:105 */
+    /* compiling/compiling.nit:105 */
     REGB0 = TAG_Int(3);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_6) {
@@ -606,7 +606,7 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-    /* ./compiling//compiling.nit:106 */
+    /* compiling/compiling.nit:106 */
     REGB0 = TAG_Int(3);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_8) {
@@ -631,7 +631,7 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
     fra.me.REG[2] = fra.me.REG[2];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-    /* ./compiling//compiling.nit:107 */
+    /* compiling/compiling.nit:107 */
     fra.me.REG[2] = CALL_compiling___compiling_base___CProgram___files(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Int(5);
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -667,7 +667,7 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-    /* ./compiling//compiling.nit:110 */
+    /* compiling/compiling.nit:110 */
     fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMModule___location(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[5] = CALL_location___Location___file(fra.me.REG[5])(fra.me.REG[5]);
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
@@ -684,7 +684,7 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
     } else fra.me.REG[2] = once_value_13;
     fra.me.REG[2] = fra.me.REG[2];
     fra.me.REG[2] = CALL_standard___file___String___strip_extension(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
-    /* ./compiling//compiling.nit:111 */
+    /* compiling/compiling.nit:111 */
     if (!once_value_14) {
       fra.me.REG[5] = BOX_NativeString(".nit.c");
       REGB0 = TAG_Int(6);
@@ -694,14 +694,14 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
     } else fra.me.REG[5] = once_value_14;
     fra.me.REG[5] = fra.me.REG[5];
     fra.me.REG[5] = CALL_standard___string___String_____plus(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-    /* ./compiling//compiling.nit:112 */
+    /* compiling/compiling.nit:112 */
     REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[5])(fra.me.REG[5]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//compiling.nit:113 */
+      /* compiling/compiling.nit:113 */
       fra.me.REG[4] = CALL_compiling___compiling_base___CProgram___files(fra.me.REG[1])(fra.me.REG[1]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
     } else {
-      /* ./compiling//compiling.nit:115 */
+      /* compiling/compiling.nit:115 */
       if (!once_value_15) {
         fra.me.REG[4] = BOX_NativeString("_nit.c");
         REGB0 = TAG_Int(6);
@@ -712,7 +712,7 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
       fra.me.REG[4] = fra.me.REG[4];
       fra.me.REG[4] = CALL_standard___string___String_____plus(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
       fra.me.REG[5] = fra.me.REG[4];
-      /* ./compiling//compiling.nit:116 */
+      /* compiling/compiling.nit:116 */
       REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[5])(fra.me.REG[5]);
       if (UNTAG_Bool(REGB0)) {
         fra.me.REG[4] = CALL_compiling___compiling_base___CProgram___files(fra.me.REG[1])(fra.me.REG[1]);
@@ -720,13 +720,13 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
       }
     }
   }
-  /* ./compiling//compiling.nit:120 */
+  /* compiling/compiling.nit:120 */
   CALL_compiling___compiling_global___MMModule___declare_class_tables_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-  /* ./compiling//compiling.nit:121 */
+  /* compiling/compiling.nit:121 */
   CALL_compiling___compiling_global___MMModule___compile_mod_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-  /* ./compiling//compiling.nit:123 */
+  /* compiling/compiling.nit:123 */
   fra.me.REG[5] = CALL_compiling___compiling_base___CProgram___module_header_name(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./compiling//compiling.nit:124 */
+  /* compiling/compiling.nit:124 */
   REGB0 = TAG_Int(5);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_16) {
@@ -761,7 +761,7 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[4]);
-  /* ./compiling//compiling.nit:125 */
+  /* compiling/compiling.nit:125 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_19) {
@@ -787,7 +787,7 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___stream___OStream___write(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-  /* ./compiling//compiling.nit:126 */
+  /* compiling/compiling.nit:126 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_21) {
@@ -823,7 +823,7 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___stream___OStream___write(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-  /* ./compiling//compiling.nit:127 */
+  /* compiling/compiling.nit:127 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_24) {
@@ -859,27 +859,27 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___stream___OStream___write(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-  /* ./compiling//compiling.nit:128 */
+  /* compiling/compiling.nit:128 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_compiling, 128);
   }
   fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -891,18 +891,18 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
-      /* ./compiling//compiling.nit:128 */
+      /* compiling/compiling.nit:128 */
       REGB1 = TAG_Int(3);
       fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_27) {
@@ -927,22 +927,22 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
       fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
       CALL_standard___stream___OStream___write(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label29;
     }
   }
   label29: while(0);
-  /* ./compiling//compiling.nit:129 */
+  /* compiling/compiling.nit:129 */
   fra.me.REG[6] = CALL_compiling___compiling_base___CompilerVisitor___header_writer(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___write_to_stream(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
-  /* ./compiling//compiling.nit:130 */
+  /* compiling/compiling.nit:130 */
   if (!once_value_30) {
     fra.me.REG[6] = BOX_NativeString("#endif\n");
     REGB0 = TAG_Int(7);
@@ -952,9 +952,9 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
   } else fra.me.REG[6] = once_value_30;
   fra.me.REG[6] = fra.me.REG[6];
   CALL_standard___stream___OStream___write(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-  /* ./compiling//compiling.nit:131 */
+  /* compiling/compiling.nit:131 */
   CALL_standard___stream___IOS___close(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./compiling//compiling.nit:133 */
+  /* compiling/compiling.nit:133 */
   REGB0 = TAG_Int(7);
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_31) {
@@ -1000,10 +1000,10 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
   fra.me.REG[2] = fra.me.REG[2];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
   fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-  /* ./compiling//compiling.nit:134 */
+  /* compiling/compiling.nit:134 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CProgram___files(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-  /* ./compiling//compiling.nit:135 */
+  /* compiling/compiling.nit:135 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_35) {
@@ -1028,7 +1028,7 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[1]);
   fra.me.REG[4] = fra.me.REG[1];
-  /* ./compiling//compiling.nit:136 */
+  /* compiling/compiling.nit:136 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_37) {
@@ -1053,7 +1053,7 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___stream___OStream___write(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
-  /* ./compiling//compiling.nit:137 */
+  /* compiling/compiling.nit:137 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_39) {
@@ -1077,10 +1077,10 @@ void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___stream___OStream___write(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
-  /* ./compiling//compiling.nit:138 */
+  /* compiling/compiling.nit:138 */
   fra.me.REG[3] = CALL_compiling___compiling_base___CompilerVisitor___top_writer(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___write_to_stream(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./compiling//compiling.nit:139 */
+  /* compiling/compiling.nit:139 */
   CALL_standard___stream___IOS___close(fra.me.REG[4])(fra.me.REG[4]);
   stack_frame_head = fra.me.prev;
   return;
index cab2420..30af041 100644 (file)
@@ -12,7 +12,7 @@ val_t compiling___compiling_base___ToolContext___compdir(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:27 */
+  /* compiling/compiling_base.nit:27 */
   fra.me.REG[0] = ATTR_compiling___compiling_base___ToolContext____compdir(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -31,7 +31,7 @@ void compiling___compiling_base___ToolContext___compdir__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_base.nit:27 */
+  /* compiling/compiling_base.nit:27 */
   ATTR_compiling___compiling_base___ToolContext____compdir(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -48,7 +48,7 @@ val_t compiling___compiling_base___ToolContext___clibdir(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:28 */
+  /* compiling/compiling_base.nit:28 */
   fra.me.REG[0] = ATTR_compiling___compiling_base___ToolContext____clibdir(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -67,7 +67,7 @@ void compiling___compiling_base___ToolContext___clibdir__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_base.nit:28 */
+  /* compiling/compiling_base.nit:28 */
   ATTR_compiling___compiling_base___ToolContext____clibdir(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -84,7 +84,7 @@ val_t compiling___compiling_base___ToolContext___bindir(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:29 */
+  /* compiling/compiling_base.nit:29 */
   fra.me.REG[0] = ATTR_compiling___compiling_base___ToolContext____bindir(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -103,7 +103,7 @@ void compiling___compiling_base___ToolContext___bindir__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_base.nit:29 */
+  /* compiling/compiling_base.nit:29 */
   ATTR_compiling___compiling_base___ToolContext____bindir(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -120,7 +120,7 @@ val_t compiling___compiling_base___ToolContext___output_file(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:30 */
+  /* compiling/compiling_base.nit:30 */
   fra.me.REG[0] = ATTR_compiling___compiling_base___ToolContext____output_file(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -139,7 +139,7 @@ void compiling___compiling_base___ToolContext___output_file__eq(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_base.nit:30 */
+  /* compiling/compiling_base.nit:30 */
   ATTR_compiling___compiling_base___ToolContext____output_file(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -157,7 +157,7 @@ val_t compiling___compiling_base___ToolContext___boost(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:31 */
+  /* compiling/compiling_base.nit:31 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____boost(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -181,7 +181,7 @@ void compiling___compiling_base___ToolContext___boost__eq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./compiling//compiling_base.nit:31 */
+  /* compiling/compiling_base.nit:31 */
   ATTR_compiling___compiling_base___ToolContext____boost(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -199,7 +199,7 @@ val_t compiling___compiling_base___ToolContext___no_cc(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:32 */
+  /* compiling/compiling_base.nit:32 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____no_cc(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -223,7 +223,7 @@ void compiling___compiling_base___ToolContext___no_cc__eq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./compiling//compiling_base.nit:32 */
+  /* compiling/compiling_base.nit:32 */
   ATTR_compiling___compiling_base___ToolContext____no_cc(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -241,7 +241,7 @@ val_t compiling___compiling_base___ToolContext___cc_link(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:33 */
+  /* compiling/compiling_base.nit:33 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____cc_link(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -265,7 +265,7 @@ void compiling___compiling_base___ToolContext___cc_link__eq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./compiling//compiling_base.nit:33 */
+  /* compiling/compiling_base.nit:33 */
   ATTR_compiling___compiling_base___ToolContext____cc_link(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -283,7 +283,7 @@ val_t compiling___compiling_base___ToolContext___cc_libs(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:34 */
+  /* compiling/compiling_base.nit:34 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____cc_libs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -307,7 +307,7 @@ void compiling___compiling_base___ToolContext___cc_libs__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_base.nit:34 */
+  /* compiling/compiling_base.nit:34 */
   ATTR_compiling___compiling_base___ToolContext____cc_libs(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -325,7 +325,7 @@ val_t compiling___compiling_base___ToolContext___cc_lib_paths(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:35 */
+  /* compiling/compiling_base.nit:35 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____cc_lib_paths(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -349,7 +349,7 @@ void compiling___compiling_base___ToolContext___cc_lib_paths__eq(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_base.nit:35 */
+  /* compiling/compiling_base.nit:35 */
   ATTR_compiling___compiling_base___ToolContext____cc_lib_paths(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -367,7 +367,7 @@ val_t compiling___compiling_base___ToolContext___cc_include_paths(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:36 */
+  /* compiling/compiling_base.nit:36 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____cc_include_paths(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -391,7 +391,7 @@ void compiling___compiling_base___ToolContext___cc_include_paths__eq(val_t p0, v
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_base.nit:36 */
+  /* compiling/compiling_base.nit:36 */
   ATTR_compiling___compiling_base___ToolContext____cc_include_paths(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -409,7 +409,7 @@ val_t compiling___compiling_base___ToolContext___ext_prefix(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:37 */
+  /* compiling/compiling_base.nit:37 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____ext_prefix(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -433,7 +433,7 @@ void compiling___compiling_base___ToolContext___ext_prefix__eq(val_t p0, val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_base.nit:37 */
+  /* compiling/compiling_base.nit:37 */
   ATTR_compiling___compiling_base___ToolContext____ext_prefix(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -459,11 +459,11 @@ void compiling___compiling_base___CProgram___init(val_t p0, val_t p1, int* init_
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_base.nit:42 */
+  /* compiling/compiling_base.nit:42 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./compiling//compiling_base.nit:44 */
+  /* compiling/compiling_base.nit:44 */
   ATTR_compiling___compiling_base___CProgram____program(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:45 */
+  /* compiling/compiling_base.nit:45 */
   fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = CALL_compiling___compiling_base___ToolContext___compdir(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
@@ -472,7 +472,7 @@ void compiling___compiling_base___CProgram___init(val_t p0, val_t p1, int* init_
     nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_base, 45);
   }
   ATTR_compiling___compiling_base___CProgram____compdir(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:46 */
+  /* compiling/compiling_base.nit:46 */
   REGB0 = TAG_Int(5);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -527,7 +527,7 @@ val_t compiling___compiling_base___CProgram___program(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:49 */
+  /* compiling/compiling_base.nit:49 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____program(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -550,7 +550,7 @@ val_t compiling___compiling_base___CProgram___files(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:52 */
+  /* compiling/compiling_base.nit:52 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____files(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -573,7 +573,7 @@ val_t compiling___compiling_base___CProgram___include_dirs(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:55 */
+  /* compiling/compiling_base.nit:55 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____include_dirs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -596,7 +596,7 @@ val_t compiling___compiling_base___CProgram___build_file(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:58 */
+  /* compiling/compiling_base.nit:58 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____build_file(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -619,7 +619,7 @@ val_t compiling___compiling_base___CProgram___compdir(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:61 */
+  /* compiling/compiling_base.nit:61 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____compdir(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -650,7 +650,7 @@ val_t compiling___compiling_base___CProgram___module_header_name(val_t p0, val_t
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_base.nit:67 */
+  /* compiling/compiling_base.nit:67 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____module_include(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -659,7 +659,7 @@ val_t compiling___compiling_base___CProgram___module_header_name(val_t p0, val_t
   fra.me.REG[2] = ATTR_compiling___compiling_base___CProgram____module_include(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_base.nit:68 */
+    /* compiling/compiling_base.nit:68 */
     REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____module_include(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -669,7 +669,7 @@ val_t compiling___compiling_base___CProgram___module_header_name(val_t p0, val_t
     fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
     goto label1;
   }
-  /* ./compiling//compiling_base.nit:70 */
+  /* compiling/compiling_base.nit:70 */
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_2) {
@@ -704,7 +704,7 @@ val_t compiling___compiling_base___CProgram___module_header_name(val_t p0, val_t
   fra.me.REG[4] = fra.me.REG[4];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./compiling//compiling_base.nit:71 */
+  /* compiling/compiling_base.nit:71 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____module_include(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -712,7 +712,7 @@ val_t compiling___compiling_base___CProgram___module_header_name(val_t p0, val_t
   }
   fra.me.REG[0] = ATTR_compiling___compiling_base___CProgram____module_include(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_base.nit:72 */
+  /* compiling/compiling_base.nit:72 */
   fra.me.REG[2] = fra.me.REG[3];
   goto label1;
   label1: while(0);
@@ -735,7 +735,7 @@ val_t compiling___compiling_base___CProgram___get_file_ending(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:80 */
+  /* compiling/compiling_base.nit:80 */
   fra.me.REG[0] = CALL_compiling___compiling_base___CProgram___program(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_program___ToolContext___global(fra.me.REG[0])(fra.me.REG[0]);
@@ -820,9 +820,9 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:82 */
+  /* compiling/compiling_base.nit:82 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./compiling//compiling_base.nit:85 */
+  /* compiling/compiling_base.nit:85 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____build_file(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -830,7 +830,7 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
   }
   fra.me.REG[2] = ATTR_compiling___compiling_base___CProgram____build_file(fra.me.REG[1]);
   fra.me.REG[2] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[2]);
-  /* ./compiling//compiling_base.nit:86 */
+  /* compiling/compiling_base.nit:86 */
   if (!once_value_1) {
     fra.me.REG[3] = BOX_NativeString("");
     REGB0 = TAG_Int(0);
@@ -839,22 +839,22 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
     register_static_object(&once_value_1);
   } else fra.me.REG[3] = once_value_1;
   fra.me.REG[3] = fra.me.REG[3];
-  /* ./compiling//compiling_base.nit:87 */
+  /* compiling/compiling_base.nit:87 */
   fra.me.REG[4] = CALL_compiling___compiling_base___CProgram___program(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[4] = CALL_program___Program___tc(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./compiling//compiling_base.nit:89 */
-  REGB0 = CALL_mmloader___ToolContext___verbose_level(fra.me.REG[4])(fra.me.REG[4]);
+  /* compiling/compiling_base.nit:89 */
+  REGB0 = CALL_toolcontext___ToolContext___verbose_level(fra.me.REG[4])(fra.me.REG[4]);
   REGB1 = TAG_Int(1);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./compiling//compiling_base.nit:89 */
+    /* compiling/compiling_base.nit:89 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./compiling//compiling_base.nit:90 */
+    /* compiling/compiling_base.nit:90 */
     if (!once_value_2) {
       fra.me.REG[5] = BOX_NativeString("-v");
       REGB2 = TAG_Int(2);
@@ -865,19 +865,19 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
     fra.me.REG[5] = fra.me.REG[5];
     fra.me.REG[3] = fra.me.REG[5];
   } else {
-    /* ./compiling//compiling_base.nit:91 */
-    REGB2 = CALL_mmloader___ToolContext___verbose_level(fra.me.REG[4])(fra.me.REG[4]);
+    /* compiling/compiling_base.nit:91 */
+    REGB2 = CALL_toolcontext___ToolContext___verbose_level(fra.me.REG[4])(fra.me.REG[4]);
     REGB1 = TAG_Int(2);
     REGB0 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB1));
-    /* ./compiling//compiling_base.nit:91 */
+    /* compiling/compiling_base.nit:91 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./compiling//compiling_base.nit:93 */
+      /* compiling/compiling_base.nit:93 */
       if (!once_value_3) {
         fra.me.REG[5] = BOX_NativeString("-vv");
         REGB1 = TAG_Int(3);
@@ -889,7 +889,7 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
       fra.me.REG[3] = fra.me.REG[5];
     }
   }
-  /* ./compiling//compiling_base.nit:98 */
+  /* compiling/compiling_base.nit:98 */
   fra.me.REG[5] = CALL_compiling___compiling_base___CProgram___include_dirs(fra.me.REG[1])(fra.me.REG[1]);
   REGB1 = TAG_Int(3);
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
@@ -915,7 +915,7 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
   fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-  /* ./compiling//compiling_base.nit:100 */
+  /* compiling/compiling_base.nit:100 */
   if (!once_value_6) {
     fra.me.REG[6] = BOX_NativeString("#!/bin/sh\n");
     REGB1 = TAG_Int(10);
@@ -925,7 +925,7 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
   } else fra.me.REG[6] = once_value_6;
   fra.me.REG[6] = fra.me.REG[6];
   CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
-  /* ./compiling//compiling_base.nit:101 */
+  /* compiling/compiling_base.nit:101 */
   REGB1 = TAG_Int(3);
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
   if (!once_value_7) {
@@ -953,7 +953,7 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
   fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
   CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
-  /* ./compiling//compiling_base.nit:102 */
+  /* compiling/compiling_base.nit:102 */
   REGB1 = TAG_Int(3);
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
   if (!once_value_9) {
@@ -983,7 +983,7 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
   fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
   CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
-  /* ./compiling//compiling_base.nit:103 */
+  /* compiling/compiling_base.nit:103 */
   REGB1 = TAG_Int(9);
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
   if (!once_value_11) {
@@ -1054,7 +1054,7 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
   fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
   CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
-  /* ./compiling//compiling_base.nit:104 */
+  /* compiling/compiling_base.nit:104 */
   fra.me.REG[6] = CALL_compiling___compiling_base___ToolContext___output_file(fra.me.REG[4])(fra.me.REG[4]);
   REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -1070,7 +1070,7 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
   }
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
   if (UNTAG_Bool(REGB1)) {
-    /* ./compiling//compiling_base.nit:105 */
+    /* compiling/compiling_base.nit:105 */
     REGB1 = TAG_Int(3);
     fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
     if (!once_value_17) {
@@ -1101,11 +1101,11 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
     fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
     CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
   } else {
-    /* ./compiling//compiling_base.nit:106 */
+    /* compiling/compiling_base.nit:106 */
     fra.me.REG[6] = CALL_compiling___compiling_base___ToolContext___ext_prefix(fra.me.REG[4])(fra.me.REG[4]);
     REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[6])(fra.me.REG[6]);
     if (UNTAG_Bool(REGB1)) {
-      /* ./compiling//compiling_base.nit:107 */
+      /* compiling/compiling_base.nit:107 */
       REGB1 = TAG_Int(3);
       fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_19) {
@@ -1134,7 +1134,7 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
       fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
       CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
     } else {
-      /* ./compiling//compiling_base.nit:109 */
+      /* compiling/compiling_base.nit:109 */
       REGB1 = TAG_Int(5);
       fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_21) {
@@ -1175,7 +1175,7 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
       CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
     }
   }
-  /* ./compiling//compiling_base.nit:111 */
+  /* compiling/compiling_base.nit:111 */
   REGB1 = CALL_compiling___compiling_base___ToolContext___boost(fra.me.REG[4])(fra.me.REG[4]);
   if (UNTAG_Bool(REGB1)) {
     if (!once_value_24) {
@@ -1188,7 +1188,7 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
     fra.me.REG[6] = fra.me.REG[6];
     CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
   }
-  /* ./compiling//compiling_base.nit:112 */
+  /* compiling/compiling_base.nit:112 */
   REGB1 = CALL_compiling___compiling_base___ToolContext___cc_link(fra.me.REG[4])(fra.me.REG[4]);
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
   if (UNTAG_Bool(REGB1)) {
@@ -1202,22 +1202,22 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
     fra.me.REG[6] = fra.me.REG[6];
     CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
   }
-  /* ./compiling//compiling_base.nit:113 */
+  /* compiling/compiling_base.nit:113 */
   fra.me.REG[6] = CALL_compiling___compiling_base___ToolContext___cc_libs(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -1229,18 +1229,18 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
-      /* ./compiling//compiling_base.nit:113 */
+      /* compiling/compiling_base.nit:113 */
       REGB2 = TAG_Int(3);
       fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_26) {
@@ -1264,34 +1264,34 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
       fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
       CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label28;
     }
   }
   label28: while(0);
-  /* ./compiling//compiling_base.nit:114 */
+  /* compiling/compiling_base.nit:114 */
   fra.me.REG[5] = CALL_compiling___compiling_base___ToolContext___cc_lib_paths(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -1303,18 +1303,18 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB1)];
-      /* ./compiling//compiling_base.nit:114 */
+      /* compiling/compiling_base.nit:114 */
       REGB2 = TAG_Int(3);
       fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_29) {
@@ -1338,34 +1338,34 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
       fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
       CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label31;
     }
   }
   label31: while(0);
-  /* ./compiling//compiling_base.nit:115 */
+  /* compiling/compiling_base.nit:115 */
   fra.me.REG[4] = CALL_compiling___compiling_base___ToolContext___cc_include_paths(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -1377,18 +1377,18 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB1)];
-      /* ./compiling//compiling_base.nit:115 */
+      /* compiling/compiling_base.nit:115 */
       REGB2 = TAG_Int(3);
       fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_32) {
@@ -1412,19 +1412,19 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
       fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
       CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label34;
     }
   }
   label34: while(0);
-  /* ./compiling//compiling_base.nit:116 */
+  /* compiling/compiling_base.nit:116 */
   REGB1 = TAG_Int(3);
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
   if (!once_value_35) {
@@ -1458,7 +1458,7 @@ void compiling___compiling_base___CProgram___generate_build_file(val_t p0){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
   fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
   CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
-  /* ./compiling//compiling_base.nit:117 */
+  /* compiling/compiling_base.nit:117 */
   CALL_standard___stream___IOS___close(fra.me.REG[2])(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
@@ -1482,7 +1482,7 @@ void compiling___compiling_base___CProgram___run_c_compiler(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:123 */
+  /* compiling/compiling_base.nit:123 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CProgram___program(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[1])(fra.me.REG[1]);
   if (!once_value_1) {
@@ -1494,8 +1494,8 @@ void compiling___compiling_base___CProgram___run_c_compiler(val_t p0){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   REGB0 = TAG_Int(1);
-  CALL_mmloader___ToolContext___info(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], REGB0);
-  /* ./compiling//compiling_base.nit:124 */
+  CALL_toolcontext___ToolContext___info(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], REGB0);
+  /* compiling/compiling_base.nit:124 */
   fra.me.REG[2] = CALL_standard___kernel___Object___sys(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -1545,7 +1545,7 @@ void compiling___compiling_base___CompilerVisitor___add_decl(val_t p0, val_t p1)
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_base.nit:135 */
+  /* compiling/compiling_base.nit:135 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____decl_writer(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1572,7 +1572,7 @@ void compiling___compiling_base___CompilerVisitor___add_instr(val_t p0, val_t p1
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_base.nit:141 */
+  /* compiling/compiling_base.nit:141 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____writer(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1603,7 +1603,7 @@ void compiling___compiling_base___CompilerVisitor___add_indent(val_t p0, val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_base.nit:147 */
+  /* compiling/compiling_base.nit:147 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____indent_level(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1616,11 +1616,11 @@ void compiling___compiling_base___CompilerVisitor___add_indent(val_t p0, val_t p
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./compiling//compiling_base.nit:147 */
+  /* compiling/compiling_base.nit:147 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./compiling//compiling_base.nit:148 */
+    /* compiling/compiling_base.nit:148 */
     if (!once_value_1) {
       fra.me.REG[2] = BOX_NativeString("\t\t");
       REGB1 = TAG_Int(2);
@@ -1631,7 +1631,7 @@ void compiling___compiling_base___CompilerVisitor___add_indent(val_t p0, val_t p
     fra.me.REG[2] = fra.me.REG[2];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   } else {
-    /* ./compiling//compiling_base.nit:150 */
+    /* compiling/compiling_base.nit:150 */
     REGB1 = TAG_Int(0);
     REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____indent_level(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -1639,18 +1639,18 @@ void compiling___compiling_base___CompilerVisitor___add_indent(val_t p0, val_t p
       nit_abort("Uninitialized attribute %s", "_indent_level", LOCATE_compiling___compiling_base, 150);
     }
     REGB0 = ATTR_compiling___compiling_base___CompilerVisitor____indent_level(fra.me.REG[0]);
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     while(1) {
       REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       if (UNTAG_Bool(REGB2)) {
-        /* ./compiling//compiling_base.nit:151 */
+        /* compiling/compiling_base.nit:151 */
         if (!once_value_2) {
           fra.me.REG[0] = BOX_NativeString("  ");
           REGB2 = TAG_Int(2);
@@ -1660,14 +1660,14 @@ void compiling___compiling_base___CompilerVisitor___add_indent(val_t p0, val_t p
         } else fra.me.REG[0] = once_value_2;
         fra.me.REG[0] = fra.me.REG[0];
         CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB1 = REGB2;
       } else {
-        /* ./../lib/standard//kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:352 */
         goto label3;
       }
     }
@@ -1694,11 +1694,11 @@ void compiling___compiling_base___CompilerVisitor___add_line_to(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_base.nit:158 */
+  /* compiling/compiling_base.nit:158 */
   CALL_compiling___compiling_base___CompilerVisitor___add_indent(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling_base.nit:159 */
+  /* compiling/compiling_base.nit:159 */
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_base.nit:160 */
+  /* compiling/compiling_base.nit:160 */
   if (!once_value_1) {
     fra.me.REG[2] = BOX_NativeString("\n");
     REGB0 = TAG_Int(1);
@@ -1732,7 +1732,7 @@ void compiling___compiling_base___CompilerVisitor___add_assignment(val_t p0, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_base.nit:166 */
+  /* compiling/compiling_base.nit:166 */
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[2]));
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1741,18 +1741,18 @@ void compiling___compiling_base___CompilerVisitor___add_assignment(val_t p0, val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_base.nit:167 */
+    /* compiling/compiling_base.nit:167 */
     REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____writer(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_writer", LOCATE_compiling___compiling_base, 167);
     }
     fra.me.REG[3] = ATTR_compiling___compiling_base___CompilerVisitor____writer(fra.me.REG[0]);
-    /* ./compiling//compiling_base.nit:168 */
+    /* compiling/compiling_base.nit:168 */
     CALL_compiling___compiling_base___CompilerVisitor___add_indent(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-    /* ./compiling//compiling_base.nit:169 */
+    /* compiling/compiling_base.nit:169 */
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-    /* ./compiling//compiling_base.nit:170 */
+    /* compiling/compiling_base.nit:170 */
     if (!once_value_1) {
       fra.me.REG[1] = BOX_NativeString(" = ");
       REGB0 = TAG_Int(3);
@@ -1762,9 +1762,9 @@ void compiling___compiling_base___CompilerVisitor___add_assignment(val_t p0, val
     } else fra.me.REG[1] = once_value_1;
     fra.me.REG[1] = fra.me.REG[1];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-    /* ./compiling//compiling_base.nit:171 */
+    /* compiling/compiling_base.nit:171 */
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-    /* ./compiling//compiling_base.nit:172 */
+    /* compiling/compiling_base.nit:172 */
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString(";\n");
       REGB0 = TAG_Int(2);
@@ -1792,20 +1792,20 @@ val_t compiling___compiling_base___CompilerVisitor___new_number(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:179 */
+  /* compiling/compiling_base.nit:179 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____number_cpt(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_number_cpt", LOCATE_compiling___compiling_base, 179);
   }
   REGB0 = ATTR_compiling___compiling_base___CompilerVisitor____number_cpt(fra.me.REG[0]);
-  /* ./compiling//compiling_base.nit:180 */
+  /* compiling/compiling_base.nit:180 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./compiling//compiling_base.nit:180 */
+  /* compiling/compiling_base.nit:180 */
   ATTR_compiling___compiling_base___CompilerVisitor____number_cpt(fra.me.REG[0]) = REGB1;
-  /* ./compiling//compiling_base.nit:181 */
+  /* compiling/compiling_base.nit:181 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -1825,12 +1825,12 @@ void compiling___compiling_base___CompilerVisitor___indent(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:188 */
+  /* compiling/compiling_base.nit:188 */
   REGB0 = ATTR_compiling___compiling_base___CompilerVisitor____indent_level(fra.me.REG[0]);
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./compiling//compiling_base.nit:188 */
+  /* compiling/compiling_base.nit:188 */
   ATTR_compiling___compiling_base___CompilerVisitor____indent_level(fra.me.REG[0]) = REGB1;
   stack_frame_head = fra.me.prev;
   return;
@@ -1850,14 +1850,14 @@ void compiling___compiling_base___CompilerVisitor___unindent(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:193 */
+  /* compiling/compiling_base.nit:193 */
   REGB0 = ATTR_compiling___compiling_base___CompilerVisitor____indent_level(fra.me.REG[0]);
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./compiling//compiling_base.nit:193 */
+  /* compiling/compiling_base.nit:193 */
   ATTR_compiling___compiling_base___CompilerVisitor____indent_level(fra.me.REG[0]) = REGB1;
-  /* ./compiling//compiling_base.nit:194 */
+  /* compiling/compiling_base.nit:194 */
   REGB1 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____indent_level(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -1870,9 +1870,9 @@ void compiling___compiling_base___CompilerVisitor___unindent(val_t p0){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-  /* ./compiling//compiling_base.nit:194 */
+  /* compiling/compiling_base.nit:194 */
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Int(0);
     ATTR_compiling___compiling_base___CompilerVisitor____indent_level(fra.me.REG[0]) = REGB0;
@@ -1893,7 +1893,7 @@ val_t compiling___compiling_base___CompilerVisitor___mmmodule(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:197 */
+  /* compiling/compiling_base.nit:197 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____mmmodule(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1916,7 +1916,7 @@ val_t compiling___compiling_base___CompilerVisitor___header_writer(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:200 */
+  /* compiling/compiling_base.nit:200 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____header_writer(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1940,7 +1940,7 @@ void compiling___compiling_base___CompilerVisitor___header_writer__eq(val_t p0,
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_base.nit:200 */
+  /* compiling/compiling_base.nit:200 */
   ATTR_compiling___compiling_base___CompilerVisitor____header_writer(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1958,7 +1958,7 @@ val_t compiling___compiling_base___CompilerVisitor___writer(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:203 */
+  /* compiling/compiling_base.nit:203 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____writer(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1982,7 +1982,7 @@ void compiling___compiling_base___CompilerVisitor___writer__eq(val_t p0, val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_base.nit:203 */
+  /* compiling/compiling_base.nit:203 */
   ATTR_compiling___compiling_base___CompilerVisitor____writer(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2000,7 +2000,7 @@ val_t compiling___compiling_base___CompilerVisitor___decl_writer(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:206 */
+  /* compiling/compiling_base.nit:206 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____decl_writer(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2024,7 +2024,7 @@ void compiling___compiling_base___CompilerVisitor___decl_writer__eq(val_t p0, va
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_base.nit:206 */
+  /* compiling/compiling_base.nit:206 */
   ATTR_compiling___compiling_base___CompilerVisitor____decl_writer(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2042,7 +2042,7 @@ val_t compiling___compiling_base___CompilerVisitor___top_writer(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:209 */
+  /* compiling/compiling_base.nit:209 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____top_writer(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2066,7 +2066,7 @@ void compiling___compiling_base___CompilerVisitor___top_writer__eq(val_t p0, val
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_base.nit:209 */
+  /* compiling/compiling_base.nit:209 */
   ATTR_compiling___compiling_base___CompilerVisitor____top_writer(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2084,7 +2084,7 @@ val_t compiling___compiling_base___CompilerVisitor___top_decl_writer(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:212 */
+  /* compiling/compiling_base.nit:212 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____top_decl_writer(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2108,7 +2108,7 @@ void compiling___compiling_base___CompilerVisitor___top_decl_writer__eq(val_t p0
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_base.nit:212 */
+  /* compiling/compiling_base.nit:212 */
   ATTR_compiling___compiling_base___CompilerVisitor____top_decl_writer(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2126,7 +2126,7 @@ val_t compiling___compiling_base___CompilerVisitor___indent_level(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:215 */
+  /* compiling/compiling_base.nit:215 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____indent_level(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2150,7 +2150,7 @@ void compiling___compiling_base___CompilerVisitor___indent_level__eq(val_t p0, v
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./compiling//compiling_base.nit:215 */
+  /* compiling/compiling_base.nit:215 */
   ATTR_compiling___compiling_base___CompilerVisitor____indent_level(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -2168,7 +2168,7 @@ val_t compiling___compiling_base___CompilerVisitor___program(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:218 */
+  /* compiling/compiling_base.nit:218 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____program(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2191,7 +2191,7 @@ val_t compiling___compiling_base___CompilerVisitor___cprogram(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:221 */
+  /* compiling/compiling_base.nit:221 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____cprogram(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2219,27 +2219,27 @@ void compiling___compiling_base___CompilerVisitor___init(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_base.nit:227 */
+  /* compiling/compiling_base.nit:227 */
   ATTR_compiling___compiling_base___CompilerVisitor____mmmodule(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:228 */
+  /* compiling/compiling_base.nit:228 */
   ATTR_compiling___compiling_base___CompilerVisitor____cprogram(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./compiling//compiling_base.nit:229 */
+  /* compiling/compiling_base.nit:229 */
   fra.me.REG[2] = CALL_compiling___compiling_base___CProgram___program(fra.me.REG[2])(fra.me.REG[2]);
   ATTR_compiling___compiling_base___CompilerVisitor____program(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./compiling//compiling_base.nit:231 */
+  /* compiling/compiling_base.nit:231 */
   fra.me.REG[2] = NEW_Writer_compiling___compiling_writer___Writer___init();
-  /* ./compiling//compiling_base.nit:232 */
+  /* compiling/compiling_base.nit:232 */
   ATTR_compiling___compiling_base___CompilerVisitor____header_writer(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./compiling//compiling_base.nit:233 */
+  /* compiling/compiling_base.nit:233 */
   ATTR_compiling___compiling_base___CompilerVisitor____decl_writer(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./compiling//compiling_base.nit:234 */
+  /* compiling/compiling_base.nit:234 */
   fra.me.REG[1] = NEW_Writer_compiling___compiling_writer___Writer___init();
   fra.me.REG[2] = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:235 */
+  /* compiling/compiling_base.nit:235 */
   ATTR_compiling___compiling_base___CompilerVisitor____writer(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./compiling//compiling_base.nit:236 */
+  /* compiling/compiling_base.nit:236 */
   ATTR_compiling___compiling_base___CompilerVisitor____top_writer(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./compiling//compiling_base.nit:237 */
+  /* compiling/compiling_base.nit:237 */
   fra.me.REG[2] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[2])(fra.me.REG[2]);
   ATTR_compiling___compiling_base___CompilerVisitor____top_decl_writer(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
@@ -2263,7 +2263,7 @@ val_t compiling___compiling_base___MMGlobalProperty___meth_call(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:245 */
+  /* compiling/compiling_base.nit:245 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2310,7 +2310,7 @@ val_t compiling___compiling_base___MMGlobalProperty___attr_access(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:251 */
+  /* compiling/compiling_base.nit:251 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2357,7 +2357,7 @@ val_t compiling___compiling_base___MMGlobalProperty___vt_class_color(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:257 */
+  /* compiling/compiling_base.nit:257 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2404,7 +2404,7 @@ val_t compiling___compiling_base___MMGlobalProperty___vt_class_id(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:263 */
+  /* compiling/compiling_base.nit:263 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2453,9 +2453,9 @@ val_t compiling___compiling_base___MMGlobalClass___cname(val_t p0){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:274 */
+  /* compiling/compiling_base.nit:274 */
   fra.me.REG[1] = ATTR_compiling___compiling_base___MMGlobalClass____cname_cache(fra.me.REG[0]);
-  /* ./compiling//compiling_base.nit:275 */
+  /* compiling/compiling_base.nit:275 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2469,7 +2469,7 @@ val_t compiling___compiling_base___MMGlobalClass___cname(val_t p0){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_base.nit:276 */
+    /* compiling/compiling_base.nit:276 */
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[2] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[2])(fra.me.REG[2]);
@@ -2490,10 +2490,10 @@ val_t compiling___compiling_base___MMGlobalClass___cname(val_t p0){
     fra.me.REG[2] = CALL_utils___Object___cmangle(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
     fra.me.REG[2] = CALL_standard___string___String_____plus(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
     fra.me.REG[1] = fra.me.REG[2];
-    /* ./compiling//compiling_base.nit:277 */
+    /* compiling/compiling_base.nit:277 */
     ATTR_compiling___compiling_base___MMGlobalClass____cname_cache(fra.me.REG[0]) = fra.me.REG[1];
   }
-  /* ./compiling//compiling_base.nit:279 */
+  /* compiling/compiling_base.nit:279 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -2516,7 +2516,7 @@ val_t compiling___compiling_base___MMGlobalClass___id_id(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:285 */
+  /* compiling/compiling_base.nit:285 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2562,7 +2562,7 @@ val_t compiling___compiling_base___MMGlobalClass___color_id(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:291 */
+  /* compiling/compiling_base.nit:291 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2608,7 +2608,7 @@ val_t compiling___compiling_base___MMGlobalClass___init_table_pos_id(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:297 */
+  /* compiling/compiling_base.nit:297 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2657,9 +2657,9 @@ val_t compiling___compiling_base___MMModule___cname(val_t p0){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:308 */
+  /* compiling/compiling_base.nit:308 */
   fra.me.REG[1] = ATTR_compiling___compiling_base___MMModule____cname_cache(fra.me.REG[0]);
-  /* ./compiling//compiling_base.nit:309 */
+  /* compiling/compiling_base.nit:309 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2673,11 +2673,11 @@ val_t compiling___compiling_base___MMModule___cname(val_t p0){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_base.nit:310 */
+    /* compiling/compiling_base.nit:310 */
     fra.me.REG[2] = NEW_List_standard___collection___list___List___init();
-    /* ./compiling//compiling_base.nit:311 */
+    /* compiling/compiling_base.nit:311 */
     fra.me.REG[3] = fra.me.REG[0];
-    /* ./compiling//compiling_base.nit:312 */
+    /* compiling/compiling_base.nit:312 */
     while(1) {
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
@@ -2693,7 +2693,7 @@ val_t compiling___compiling_base___MMModule___cname(val_t p0){
       }
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
-        /* ./compiling//compiling_base.nit:313 */
+        /* compiling/compiling_base.nit:313 */
         REGB0 = TAG_Int(0);
         fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
@@ -2704,13 +2704,13 @@ val_t compiling___compiling_base___MMModule___cname(val_t p0){
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
         fra.me.REG[4] = CALL_utils___Object___cmangle(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
         CALL_standard___collection___abstract_collection___Sequence___unshift(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-        /* ./compiling//compiling_base.nit:314 */
+        /* compiling/compiling_base.nit:314 */
         REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
           nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_base, 314);
         }
         fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMModule___directory(fra.me.REG[3])(fra.me.REG[3]);
-        /* ./compiling//compiling_base.nit:315 */
+        /* compiling/compiling_base.nit:315 */
         while(1) {
           REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
           if (UNTAG_Bool(REGB0)) {
@@ -2759,7 +2759,7 @@ val_t compiling___compiling_base___MMModule___cname(val_t p0){
           }
         }
         label1: while(0);
-        /* ./compiling//compiling_base.nit:316 */
+        /* compiling/compiling_base.nit:316 */
         REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
         } else {
@@ -2783,12 +2783,12 @@ val_t compiling___compiling_base___MMModule___cname(val_t p0){
           fra.me.REG[3] = fra.me.REG[4];
         }
       } else {
-        /* ./compiling//compiling_base.nit:312 */
+        /* compiling/compiling_base.nit:312 */
         goto label2;
       }
     }
     label2: while(0);
-    /* ./compiling//compiling_base.nit:318 */
+    /* compiling/compiling_base.nit:318 */
     fra.me.REG[2] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[2])(fra.me.REG[2]);
     if (!once_value_3) {
       fra.me.REG[3] = BOX_NativeString("___");
@@ -2800,10 +2800,10 @@ val_t compiling___compiling_base___MMModule___cname(val_t p0){
     fra.me.REG[3] = fra.me.REG[3];
     fra.me.REG[3] = CALL_standard___string___Collection___join(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
     fra.me.REG[1] = fra.me.REG[3];
-    /* ./compiling//compiling_base.nit:319 */
+    /* compiling/compiling_base.nit:319 */
     ATTR_compiling___compiling_base___MMModule____cname_cache(fra.me.REG[0]) = fra.me.REG[1];
   }
-  /* ./compiling//compiling_base.nit:321 */
+  /* compiling/compiling_base.nit:321 */
   goto label4;
   label4: while(0);
   stack_frame_head = fra.me.prev;
@@ -2821,7 +2821,7 @@ val_t compiling___compiling_base___MMLocalClass___cname(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:327 */
+  /* compiling/compiling_base.nit:327 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalClass___cname(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -2848,9 +2848,9 @@ val_t compiling___compiling_base___MMLocalProperty___cname(val_t p0){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:337 */
+  /* compiling/compiling_base.nit:337 */
   fra.me.REG[1] = ATTR_compiling___compiling_base___MMLocalProperty____cname_cache(fra.me.REG[0]);
-  /* ./compiling//compiling_base.nit:338 */
+  /* compiling/compiling_base.nit:338 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2864,7 +2864,7 @@ val_t compiling___compiling_base___MMLocalProperty___cname(val_t p0){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_base.nit:339 */
+    /* compiling/compiling_base.nit:339 */
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[2] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[2])(fra.me.REG[2]);
     if (!once_value_1) {
@@ -2886,10 +2886,10 @@ val_t compiling___compiling_base___MMLocalProperty___cname(val_t p0){
     fra.me.REG[2] = CALL_utils___Object___cmangle(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
     fra.me.REG[2] = CALL_standard___string___String_____plus(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
     fra.me.REG[1] = fra.me.REG[2];
-    /* ./compiling//compiling_base.nit:340 */
+    /* compiling/compiling_base.nit:340 */
     ATTR_compiling___compiling_base___MMLocalProperty____cname_cache(fra.me.REG[0]) = fra.me.REG[1];
   }
-  /* ./compiling//compiling_base.nit:342 */
+  /* compiling/compiling_base.nit:342 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -2912,7 +2912,7 @@ val_t compiling___compiling_base___MMLocalProperty___super_meth_call(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:348 */
+  /* compiling/compiling_base.nit:348 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
index 5254879..76fac4d 100644 (file)
@@ -181,7 +181,7 @@ typedef val_t (*compiling___compiling_base___ToolContext___ext_prefix_t)(val_t p
 static const char * const LOCATE_compiling___compiling_base___ToolContext___ext_prefix__eq = "compiling_base::ToolContext::ext_prefix=";
 void compiling___compiling_base___ToolContext___ext_prefix__eq(val_t p0, val_t p1);
 typedef void (*compiling___compiling_base___ToolContext___ext_prefix__eq_t)(val_t p0, val_t p1);
-val_t NEW_ToolContext_mmloader___ToolContext___init();
+val_t NEW_ToolContext_toolcontext___ToolContext___init();
 static const char * const LOCATE_compiling___compiling_base___CProgram___init = "compiling_base::CProgram::init";
 void compiling___compiling_base___CProgram___init(val_t p0, val_t p1, int* init_table);
 typedef void (*compiling___compiling_base___CProgram___init_t)(val_t p0, val_t p1, int* init_table);
index bc3137e..22c2355 100644 (file)
@@ -31,7 +31,7 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:27 */
+  /* compiling/compiling_global.nit:27 */
   fra.me.REG[2] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -41,7 +41,7 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
   fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling___compiling_global___Program___compile_tables_to_c_1));
   CALL_program___Program___with_each_live_local_classes(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_compiling___compiling_global___Program___compile_tables_to_c_2));
-  /* ./compiling//compiling_global.nit:36 */
+  /* compiling/compiling_global.nit:36 */
   if (!once_value_4) {
     fra.me.REG[2] = BOX_NativeString("classtable_t TAG2VFT[4] = {NULL");
     REGB0 = TAG_Int(31);
@@ -51,7 +51,7 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
   } else fra.me.REG[2] = once_value_4;
   fra.me.REG[2] = fra.me.REG[2];
   fra.me.REG[2] = NEW_Buffer_standard___string___Buffer___from(fra.me.REG[2]);
-  /* ./compiling//compiling_global.nit:37 */
+  /* compiling/compiling_global.nit:37 */
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_5) {
@@ -81,20 +81,20 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
   } else fra.me.REG[4] = once_value_7;
   fra.me.REG[4] = fra.me.REG[4];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -106,27 +106,27 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-      /* ./compiling//compiling_global.nit:38 */
+      /* compiling/compiling_global.nit:38 */
       fra.me.REG[6] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[7] = CALL_standard___symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
       REGB1 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
       if (UNTAG_Bool(REGB1)) {
-        /* ./compiling//compiling_global.nit:39 */
+        /* compiling/compiling_global.nit:39 */
         fra.me.REG[7] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
         fra.me.REG[5] = CALL_standard___symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
         fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
-        /* ./compiling//compiling_global.nit:40 */
+        /* compiling/compiling_global.nit:40 */
         REGB1 = TAG_Int(3);
         fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
         if (!once_value_8) {
@@ -152,7 +152,7 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
         fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
         CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
       } else {
-        /* ./compiling//compiling_global.nit:42 */
+        /* compiling/compiling_global.nit:42 */
         if (!once_value_10) {
           fra.me.REG[7] = BOX_NativeString(", NULL");
           REGB1 = TAG_Int(6);
@@ -163,19 +163,19 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
         fra.me.REG[7] = fra.me.REG[7];
         CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label11;
     }
   }
   label11: while(0);
-  /* ./compiling//compiling_global.nit:45 */
+  /* compiling/compiling_global.nit:45 */
   if (!once_value_12) {
     fra.me.REG[0] = BOX_NativeString("};");
     REGB0 = TAG_Int(2);
@@ -185,7 +185,7 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
   } else fra.me.REG[0] = once_value_12;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:46 */
+  /* compiling/compiling_global.nit:46 */
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -207,7 +207,7 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./compiling//compiling_global.nit:28 */
+    /* compiling/compiling_global.nit:28 */
     CALL_compiling___compiling_global___MMModule___compile_local_table_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
     stack_frame_head = fra.me.prev;
     return;
@@ -217,7 +217,7 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
     val_t REGB0;
     val_t REGB1;
     val_t tmp;
-    /* ./compiling//compiling_global.nit:31 */
+    /* compiling/compiling_global.nit:31 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_compiling___compiling_global;
     fra.me.line = 31;
@@ -228,7 +228,7 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
     fra.me.REG[0] = NIT_NULL;
     fra.me.REG[1] = NIT_NULL;
     fra.me.REG[0] = p0;
-    /* ./compiling//compiling_global.nit:32 */
+    /* compiling/compiling_global.nit:32 */
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[1])(fra.me.REG[1]);
     if (UNTAG_Bool(REGB0)) {
@@ -241,7 +241,7 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
     if (UNTAG_Bool(REGB0)) {
       goto label3;
     }
-    /* ./compiling//compiling_global.nit:33 */
+    /* compiling/compiling_global.nit:33 */
     CALL_compiling___compiling_global___MMLocalClass___compile_tables_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
     label3: while(0);
     stack_frame_head = fra.me.prev;
@@ -276,7 +276,7 @@ void compiling___compiling_global___Program___compile_main_part(val_t p0, val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:52 */
+  /* compiling/compiling_global.nit:52 */
   if (!once_value_1) {
     fra.me.REG[2] = BOX_NativeString("int main(int argc, char **argv) {");
     REGB0 = TAG_Int(33);
@@ -286,9 +286,9 @@ void compiling___compiling_global___Program___compile_main_part(val_t p0, val_t
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_global.nit:53 */
+  /* compiling/compiling_global.nit:53 */
   CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:54 */
+  /* compiling/compiling_global.nit:54 */
   if (!once_value_2) {
     fra.me.REG[2] = BOX_NativeString("prepare_signals();");
     REGB0 = TAG_Int(18);
@@ -298,7 +298,7 @@ void compiling___compiling_global___Program___compile_main_part(val_t p0, val_t
   } else fra.me.REG[2] = once_value_2;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_global.nit:55 */
+  /* compiling/compiling_global.nit:55 */
   if (!once_value_3) {
     fra.me.REG[2] = BOX_NativeString("glob_argc = argc; glob_argv = argv;");
     REGB0 = TAG_Int(35);
@@ -308,7 +308,7 @@ void compiling___compiling_global___Program___compile_main_part(val_t p0, val_t
   } else fra.me.REG[2] = once_value_3;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_global.nit:56 */
+  /* compiling/compiling_global.nit:56 */
   fra.me.REG[2] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_program___Program___main_method(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -324,7 +324,7 @@ void compiling___compiling_global___Program___compile_main_part(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_global.nit:57 */
+    /* compiling/compiling_global.nit:57 */
     if (!once_value_4) {
       fra.me.REG[2] = BOX_NativeString("No main");
       REGB0 = TAG_Int(7);
@@ -335,10 +335,10 @@ void compiling___compiling_global___Program___compile_main_part(val_t p0, val_t
     fra.me.REG[2] = fra.me.REG[2];
     CALL_standard___file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
   } else {
-    /* ./compiling//compiling_global.nit:59 */
+    /* compiling/compiling_global.nit:59 */
     fra.me.REG[2] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[2] = CALL_program___Program___main_class(fra.me.REG[2])(fra.me.REG[2]);
-    /* ./compiling//compiling_global.nit:60 */
+    /* compiling/compiling_global.nit:60 */
     REGB0 = TAG_Int(3);
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_5) {
@@ -367,7 +367,7 @@ void compiling___compiling_global___Program___compile_main_part(val_t p0, val_t
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./compiling//compiling_global.nit:61 */
+    /* compiling/compiling_global.nit:61 */
     if (!once_value_7) {
       fra.me.REG[0] = BOX_NativeString("register_static_object(&G_sys);");
       REGB0 = TAG_Int(31);
@@ -377,7 +377,7 @@ void compiling___compiling_global___Program___compile_main_part(val_t p0, val_t
     } else fra.me.REG[0] = once_value_7;
     fra.me.REG[0] = fra.me.REG[0];
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./compiling//compiling_global.nit:62 */
+    /* compiling/compiling_global.nit:62 */
     REGB0 = TAG_Int(3);
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_8) {
@@ -409,7 +409,7 @@ void compiling___compiling_global___Program___compile_main_part(val_t p0, val_t
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
-  /* ./compiling//compiling_global.nit:64 */
+  /* compiling/compiling_global.nit:64 */
   if (!once_value_10) {
     fra.me.REG[0] = BOX_NativeString("return 0;");
     REGB0 = TAG_Int(9);
@@ -419,9 +419,9 @@ void compiling___compiling_global___Program___compile_main_part(val_t p0, val_t
   } else fra.me.REG[0] = once_value_10;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:65 */
+  /* compiling/compiling_global.nit:65 */
   CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:66 */
+  /* compiling/compiling_global.nit:66 */
   if (!once_value_11) {
     fra.me.REG[0] = BOX_NativeString("}");
     REGB0 = TAG_Int(1);
@@ -449,7 +449,7 @@ void compiling___compiling_global___MMModule___declare_class_tables_to_c(val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:74 */
+  /* compiling/compiling_global.nit:74 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling___compiling_global___MMModule___declare_class_tables_to_c_1));
   stack_frame_head = fra.me.prev;
@@ -474,7 +474,7 @@ void compiling___compiling_global___MMModule___declare_class_tables_to_c(val_t p
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./compiling//compiling_global.nit:75 */
+    /* compiling/compiling_global.nit:75 */
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],closctx->REG[0]));
@@ -484,7 +484,7 @@ void compiling___compiling_global___MMModule___declare_class_tables_to_c(val_t p
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//compiling_global.nit:76 */
+      /* compiling/compiling_global.nit:76 */
       CALL_compiling___compiling_global___MMLocalClass___declare_tables_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
     }
     stack_frame_head = fra.me.prev;
@@ -523,7 +523,7 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:84 */
+  /* compiling/compiling_global.nit:84 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -548,13 +548,13 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_global.nit:85 */
+  /* compiling/compiling_global.nit:85 */
   fra.me.REG[2] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_program___ToolContext___use_SFT_optimization(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_global.nit:86 */
+    /* compiling/compiling_global.nit:86 */
     REGB0 = TAG_Int(3);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_3) {
@@ -580,24 +580,24 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
     fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
     CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
-  /* ./compiling//compiling_global.nit:88 */
+  /* compiling/compiling_global.nit:88 */
   REGB0 = TAG_Int(0);
-  /* ./compiling//compiling_global.nit:89 */
+  /* compiling/compiling_global.nit:89 */
   fra.me.REG[2] = CALL_compiling___table_computation___MMModule___local_table(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -609,23 +609,23 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB1)];
-      /* ./compiling//compiling_global.nit:91 */
+      /* compiling/compiling_global.nit:91 */
       fra.me.REG[5] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[5] = CALL_program___Program___tc(fra.me.REG[5])(fra.me.REG[5]);
       REGB2 = CALL_program___ToolContext___use_SFT_optimization(fra.me.REG[5])(fra.me.REG[5]);
       if (UNTAG_Bool(REGB2)) {
-        /* ./compiling//compiling_global.nit:92 */
+        /* compiling/compiling_global.nit:92 */
         REGB2 = TAG_Int(3);
         fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
         if (!once_value_5) {
@@ -651,7 +651,7 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
         fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
       } else {
-        /* ./compiling//compiling_global.nit:94 */
+        /* compiling/compiling_global.nit:94 */
         REGB2 = TAG_Int(5);
         fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
         if (!once_value_7) {
@@ -687,28 +687,28 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
         fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
         fra.me.REG[5] = fra.me.REG[6];
-        /* ./compiling//compiling_global.nit:95 */
+        /* compiling/compiling_global.nit:95 */
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-        /* ./compiling//compiling_global.nit:95 */
+        /* compiling/compiling_global.nit:95 */
         REGB0 = REGB2;
       }
-      /* ./compiling//compiling_global.nit:97 */
+      /* compiling/compiling_global.nit:97 */
       CALL_compiling___compiling_global___AbsTableElt___compile_macros(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[5]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label10;
     }
   }
   label10: while(0);
-  /* ./compiling//compiling_global.nit:99 */
+  /* compiling/compiling_global.nit:99 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_compiling___compiling_global___MMModule___compile_mod_to_c_11));
   stack_frame_head = fra.me.prev;
@@ -732,13 +732,13 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
     closctx->REG[3] = fra.me.REG[0];
-    /* ./compiling//compiling_global.nit:100 */
+    /* compiling/compiling_global.nit:100 */
     REGB0 = TAG_Bool(VAL_ISA(closctx->REG[3], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
       goto label12;
     }
-    /* ./compiling//compiling_global.nit:101 */
+    /* compiling/compiling_global.nit:101 */
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(closctx->REG[3])(closctx->REG[3]);
     CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], closctx, ((fun_t)OC_compiling___compiling_global___MMModule___compile_mod_to_c_13));
     label12: while(0);
@@ -775,9 +775,9 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./compiling//compiling_global.nit:102 */
+      /* compiling/compiling_global.nit:102 */
       fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx->REG[3])(closctx->REG[3], fra.me.REG[0]);
-      /* ./compiling//compiling_global.nit:103 */
+      /* compiling/compiling_global.nit:103 */
       fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[1])(fra.me.REG[1]);
       REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],closctx->REG[3]));
       if (UNTAG_Bool(REGB0)) {
@@ -792,15 +792,15 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
         REGB0 = REGB1;
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./compiling//compiling_global.nit:104 */
+        /* compiling/compiling_global.nit:104 */
         CALL_compiling___compiling_global___MMMethod___compile_property_to_c(fra.me.REG[1])(fra.me.REG[1], closctx->REG[1]);
       }
-      /* ./compiling//compiling_global.nit:106 */
+      /* compiling/compiling_global.nit:106 */
       REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra.me.REG[0])(fra.me.REG[0], closctx->REG[3]);
       if (UNTAG_Bool(REGB0)) {
-        /* ./compiling//compiling_global.nit:108 */
+        /* compiling/compiling_global.nit:108 */
         fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
-        /* ./compiling//compiling_global.nit:109 */
+        /* compiling/compiling_global.nit:109 */
         REGB0 = TAG_Int(0);
         fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[1])(fra.me.REG[1]);
         REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -808,20 +808,20 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
           nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 109);
         }
         REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
-        /* ./../lib/standard//kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:352 */
         while(1) {
           REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
           if (UNTAG_Bool(REGB2)) {
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-          /* ./../lib/standard//kernel.nit:352 */
+          /* ../lib/standard/kernel.nit:352 */
           if (UNTAG_Bool(REGB2)) {
-            /* ./compiling//compiling_global.nit:109 */
+            /* compiling/compiling_global.nit:109 */
             REGB2 = REGB0;
-            /* ./compiling//compiling_global.nit:110 */
+            /* compiling/compiling_global.nit:110 */
             REGB3 = TAG_Int(3);
             fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
             if (!once_value_14) {
@@ -846,19 +846,19 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
             fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-            /* ./../lib/standard//kernel.nit:354 */
+            /* ../lib/standard/kernel.nit:354 */
             REGB2 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-            /* ./../lib/standard//kernel.nit:354 */
+            /* ../lib/standard/kernel.nit:354 */
             REGB0 = REGB2;
           } else {
-            /* ./../lib/standard//kernel.nit:352 */
+            /* ../lib/standard/kernel.nit:352 */
             goto label16;
           }
         }
         label16: while(0);
-        /* ./compiling//compiling_global.nit:112 */
+        /* compiling/compiling_global.nit:112 */
         REGB0 = TAG_Int(7);
         fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_17) {
@@ -947,7 +947,7 @@ void compiling___compiling_global___MMModule___compile_local_table_to_c(val_t p0
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:121 */
+  /* compiling/compiling_global.nit:121 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -989,7 +989,7 @@ void compiling___compiling_global___MMModule___compile_local_table_to_c(val_t p0
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_global.nit:123 */
+  /* compiling/compiling_global.nit:123 */
   fra.me.REG[2] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_program___ToolContext___use_SFT_optimization(fra.me.REG[2])(fra.me.REG[2]);
@@ -1001,10 +1001,10 @@ void compiling___compiling_global___MMModule___compile_local_table_to_c(val_t p0
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_global.nit:124 */
+    /* compiling/compiling_global.nit:124 */
     goto label4;
   }
-  /* ./compiling//compiling_global.nit:127 */
+  /* compiling/compiling_global.nit:127 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_5) {
@@ -1028,14 +1028,14 @@ void compiling___compiling_global___MMModule___compile_local_table_to_c(val_t p0
   fra.me.REG[3] = fra.me.REG[3];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[3] = CALL_compiling___table_computation___MMModule___local_table(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./compiling//compiling_global.nit:127 */
+  /* compiling/compiling_global.nit:127 */
   fra.me.REG[3] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   if (!once_value_7) {
@@ -1049,24 +1049,24 @@ void compiling___compiling_global___MMModule___compile_local_table_to_c(val_t p0
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_global.nit:128 */
+  /* compiling/compiling_global.nit:128 */
   CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:129 */
+  /* compiling/compiling_global.nit:129 */
   fra.me.REG[0] = CALL_compiling___table_computation___MMModule___local_table(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1078,18 +1078,18 @@ void compiling___compiling_global___MMModule___compile_local_table_to_c(val_t p0
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./compiling//compiling_global.nit:130 */
+      /* compiling/compiling_global.nit:130 */
       fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[4] = CALL_compiling___compiling_global___ModuleTableElt___value(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
       if (!once_value_8) {
@@ -1102,21 +1102,21 @@ void compiling___compiling_global___MMModule___compile_local_table_to_c(val_t p0
       fra.me.REG[3] = fra.me.REG[3];
       fra.me.REG[3] = CALL_standard___string___String_____plus(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label9;
     }
   }
   label9: while(0);
-  /* ./compiling//compiling_global.nit:132 */
+  /* compiling/compiling_global.nit:132 */
   CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:133 */
+  /* compiling/compiling_global.nit:133 */
   if (!once_value_10) {
     fra.me.REG[2] = BOX_NativeString("};");
     REGB0 = TAG_Int(2);
@@ -1140,7 +1140,7 @@ void compiling___compiling_global___AbsTableElt___compile_macros(val_t p0, val_t
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./compiling//compiling_global.nit:140 */
+  /* compiling/compiling_global.nit:140 */
   nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_global, 140);
   stack_frame_head = fra.me.prev;
   return;
@@ -1155,7 +1155,7 @@ val_t compiling___compiling_global___TableElt___compile_to_c(val_t p0, val_t p1,
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./compiling//compiling_global.nit:145 */
+  /* compiling/compiling_global.nit:145 */
   nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_global, 145);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1170,7 +1170,7 @@ val_t compiling___compiling_global___ModuleTableElt___value(val_t p0, val_t p1){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./compiling//compiling_global.nit:150 */
+  /* compiling/compiling_global.nit:150 */
   nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_global, 150);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1194,7 +1194,7 @@ val_t compiling___compiling_global___ModuleTableEltGroup___value(val_t p0, val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:155 */
+  /* compiling/compiling_global.nit:155 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -1254,24 +1254,24 @@ void compiling___compiling_global___ModuleTableEltGroup___compile_macros(val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:158 */
+  /* compiling/compiling_global.nit:158 */
   REGB0 = TAG_Int(0);
-  /* ./compiling//compiling_global.nit:159 */
+  /* compiling/compiling_global.nit:159 */
   fra.me.REG[0] = CALL_compiling___table_computation___ModuleTableEltGroup___elements(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -1283,18 +1283,18 @@ void compiling___compiling_global___ModuleTableEltGroup___compile_macros(val_t p
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB1)];
-      /* ./compiling//compiling_global.nit:160 */
+      /* compiling/compiling_global.nit:160 */
       REGB2 = TAG_Int(5);
       fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_1) {
@@ -1329,20 +1329,20 @@ void compiling___compiling_global___ModuleTableEltGroup___compile_macros(val_t p
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
       fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
       CALL_compiling___compiling_global___AbsTableElt___compile_macros(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[5]);
-      /* ./compiling//compiling_global.nit:161 */
+      /* compiling/compiling_global.nit:161 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./compiling//compiling_global.nit:161 */
+      /* compiling/compiling_global.nit:161 */
       REGB0 = REGB2;
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label4;
     }
   }
@@ -1373,10 +1373,10 @@ void compiling___compiling_global___TableEltMeth___compile_macros(val_t p0, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:169 */
+  /* compiling/compiling_global.nit:169 */
   fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:170 */
+  /* compiling/compiling_global.nit:170 */
   REGB0 = TAG_Int(7);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -1442,11 +1442,11 @@ val_t compiling___compiling_global___TableEltMeth___compile_to_c(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:175 */
+  /* compiling/compiling_global.nit:175 */
   fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:176 */
+  /* compiling/compiling_global.nit:176 */
   fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -1476,9 +1476,9 @@ void compiling___compiling_global___TableEltSuper___compile_macros(val_t p0, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:183 */
+  /* compiling/compiling_global.nit:183 */
   fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:184 */
+  /* compiling/compiling_global.nit:184 */
   REGB0 = TAG_Int(7);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -1551,31 +1551,31 @@ val_t compiling___compiling_global___TableEltSuper___compile_to_c(val_t p0, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:189 */
+  /* compiling/compiling_global.nit:189 */
   fra.me.REG[1] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:190 */
+  /* compiling/compiling_global.nit:190 */
   fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:191 */
+  /* compiling/compiling_global.nit:191 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___linear_extension(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./compiling//compiling_global.nit:192 */
+  /* compiling/compiling_global.nit:192 */
   REGB0 = TAG_Bool(false);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -1587,18 +1587,18 @@ val_t compiling___compiling_global___TableEltSuper___compile_to_c(val_t p0, val_
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
-      /* ./compiling//compiling_global.nit:195 */
+      /* compiling/compiling_global.nit:195 */
       REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[5],fra.me.REG[1]));
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -1606,11 +1606,11 @@ val_t compiling___compiling_global___TableEltSuper___compile_to_c(val_t p0, val_
         REGB2 = REGB3;
       }
       if (UNTAG_Bool(REGB2)) {
-        /* ./compiling//compiling_global.nit:196 */
+        /* compiling/compiling_global.nit:196 */
         REGB2 = TAG_Bool(true);
         REGB0 = REGB2;
       } else {
-        /* ./compiling//compiling_global.nit:197 */
+        /* compiling/compiling_global.nit:197 */
         if (UNTAG_Bool(REGB0)) {
           fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]);
           REGB2 = CALL_metamodel___partial_order___PartialOrderElement_____l(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
@@ -1619,29 +1619,29 @@ val_t compiling___compiling_global___TableEltSuper___compile_to_c(val_t p0, val_
           REGB2 = REGB3;
         }
         if (UNTAG_Bool(REGB2)) {
-          /* ./compiling//compiling_global.nit:198 */
+          /* compiling/compiling_global.nit:198 */
           REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
           if (UNTAG_Bool(REGB2)) {
-            /* ./compiling//compiling_global.nit:200 */
+            /* compiling/compiling_global.nit:200 */
             fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
             fra.me.REG[5] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[5])(fra.me.REG[5]);
             goto label1;
           }
         }
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./compiling//compiling_global.nit:204 */
+  /* compiling/compiling_global.nit:204 */
   nit_abort("Aborted", NULL, LOCATE_compiling___compiling_global, 204);
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -1669,10 +1669,10 @@ void compiling___compiling_global___TableEltVTClassColor___compile_macros(val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:211 */
+  /* compiling/compiling_global.nit:211 */
   fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:212 */
+  /* compiling/compiling_global.nit:212 */
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -1738,15 +1738,15 @@ val_t compiling___compiling_global___TableEltVTClassColor___compile_to_c(val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:215 */
+  /* compiling/compiling_global.nit:215 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./compiling//compiling_global.nit:217 */
+  /* compiling/compiling_global.nit:217 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:218 */
+  /* compiling/compiling_global.nit:218 */
   fra.me.REG[4] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* ./compiling//compiling_global.nit:219 */
+  /* compiling/compiling_global.nit:219 */
   fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[5])(fra.me.REG[5]);
@@ -1756,7 +1756,7 @@ val_t compiling___compiling_global___TableEltVTClassColor___compile_to_c(val_t p
   }
   fra.me.REG[5] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[5])(fra.me.REG[5]);
   fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
-  /* ./compiling//compiling_global.nit:220 */
+  /* compiling/compiling_global.nit:220 */
   fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[5])(fra.me.REG[5]);
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[6], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
   if (UNTAG_Bool(REGB0)) {
@@ -1764,7 +1764,7 @@ val_t compiling___compiling_global___TableEltVTClassColor___compile_to_c(val_t p
     nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_global, 220);
   }
   fra.me.REG[6] = CALL_compiling___table_computation___MMConcreteClass___class_color_pos(fra.me.REG[6])(fra.me.REG[6]);
-  /* ./compiling//compiling_global.nit:221 */
+  /* compiling/compiling_global.nit:221 */
   REGB0 = TAG_Int(11);
   fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -1863,10 +1863,10 @@ void compiling___compiling_global___TableEltVTClassId___compile_macros(val_t p0,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:228 */
+  /* compiling/compiling_global.nit:228 */
   fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:229 */
+  /* compiling/compiling_global.nit:229 */
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -1931,13 +1931,13 @@ val_t compiling___compiling_global___TableEltVTClassId___compile_to_c(val_t p0,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:234 */
+  /* compiling/compiling_global.nit:234 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:235 */
+  /* compiling/compiling_global.nit:235 */
   fra.me.REG[3] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_global.nit:236 */
+  /* compiling/compiling_global.nit:236 */
   fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]);
@@ -1947,7 +1947,7 @@ val_t compiling___compiling_global___TableEltVTClassId___compile_to_c(val_t p0,
   }
   fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./compiling//compiling_global.nit:237 */
+  /* compiling/compiling_global.nit:237 */
   REGB0 = TAG_Int(11);
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2051,10 +2051,10 @@ void compiling___compiling_global___TableEltAttr___compile_macros(val_t p0, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:244 */
+  /* compiling/compiling_global.nit:244 */
   fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:245 */
+  /* compiling/compiling_global.nit:245 */
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2116,13 +2116,13 @@ val_t compiling___compiling_global___TableEltAttr___compile_to_c(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:250 */
+  /* compiling/compiling_global.nit:250 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:251 */
+  /* compiling/compiling_global.nit:251 */
   fra.me.REG[3] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_global.nit:252 */
+  /* compiling/compiling_global.nit:252 */
   REGB0 = TAG_Int(7);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2185,7 +2185,7 @@ val_t compiling___compiling_global___AbsTableEltClass___symbol(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./compiling//compiling_global.nit:258 */
+  /* compiling/compiling_global.nit:258 */
   nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_global, 258);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -2212,7 +2212,7 @@ void compiling___compiling_global___AbsTableEltClass___compile_macros(val_t p0,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:263 */
+  /* compiling/compiling_global.nit:263 */
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2262,7 +2262,7 @@ val_t compiling___compiling_global___TableEltClassId___symbol(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_global.nit:268 */
+  /* compiling/compiling_global.nit:268 */
   fra.me.REG[0] = CALL_compiling___table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalClass___id_id(fra.me.REG[0])(fra.me.REG[0]);
@@ -2291,7 +2291,7 @@ val_t compiling___compiling_global___TableEltClassId___value(val_t p0, val_t p1)
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:272 */
+  /* compiling/compiling_global.nit:272 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2353,7 +2353,7 @@ val_t compiling___compiling_global___TableEltClassInitTable___symbol(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_global.nit:277 */
+  /* compiling/compiling_global.nit:277 */
   fra.me.REG[0] = CALL_compiling___table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalClass___init_table_pos_id(fra.me.REG[0])(fra.me.REG[0]);
@@ -2391,33 +2391,33 @@ val_t compiling___compiling_global___TableEltClassInitTable___compile_to_c(val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:281 */
+  /* compiling/compiling_global.nit:281 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:282 */
+  /* compiling/compiling_global.nit:282 */
   fra.me.REG[3] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[4] = CALL_compiling___table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./compiling//compiling_global.nit:283 */
+  /* compiling/compiling_global.nit:283 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___reverse_linear_extension(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./compiling//compiling_global.nit:284 */
+  /* compiling/compiling_global.nit:284 */
   REGB0 = TAG_Int(0);
-  /* ./compiling//compiling_global.nit:285 */
+  /* compiling/compiling_global.nit:285 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:278 */
+    /* ../lib/standard/collection/array.nit:278 */
     fra.me.REG[5] = fra.me.REG[3];
     REGB1 = REGB0;
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB2 = TAG_Int(0);
     REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     if (UNTAG_Bool(REGB2)) {
       REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
@@ -2430,29 +2430,29 @@ val_t compiling___compiling_global___TableEltClassInitTable___compile_to_c(val_t
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
     } else {
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB3 = TAG_Bool(false);
       REGB2 = REGB3;
     }
     if (UNTAG_Bool(REGB2)) {
     } else {
-      nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+      nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
     }
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
     REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
     }
-    /* ./../lib/standard//collection//array.nit:718 */
+    /* ../lib/standard/collection/array.nit:718 */
     fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     goto label1;
     label1: while(0);
-    /* ./compiling//compiling_global.nit:285 */
+    /* compiling/compiling_global.nit:285 */
     REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 285);
@@ -2468,19 +2468,19 @@ val_t compiling___compiling_global___TableEltClassInitTable___compile_to_c(val_t
     }
     REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
     if (UNTAG_Bool(REGB1)) {
-      /* ./compiling//compiling_global.nit:286 */
+      /* compiling/compiling_global.nit:286 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./compiling//compiling_global.nit:286 */
+      /* compiling/compiling_global.nit:286 */
       REGB0 = REGB1;
     } else {
-      /* ./compiling//compiling_global.nit:285 */
+      /* compiling/compiling_global.nit:285 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./compiling//compiling_global.nit:288 */
+  /* compiling/compiling_global.nit:288 */
   REGB1 = TAG_Int(9);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
   if (!once_value_3) {
@@ -2557,7 +2557,7 @@ val_t compiling___compiling_global___TableEltClassColor___symbol(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_global.nit:293 */
+  /* compiling/compiling_global.nit:293 */
   fra.me.REG[0] = CALL_compiling___table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalClass___color_id(fra.me.REG[0])(fra.me.REG[0]);
@@ -2586,7 +2586,7 @@ val_t compiling___compiling_global___TableEltClassColor___value(val_t p0, val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:297 */
+  /* compiling/compiling_global.nit:297 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2654,14 +2654,14 @@ val_t compiling___compiling_global___TableEltClassColor___compile_to_c(val_t p0,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:302 */
+  /* compiling/compiling_global.nit:302 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:303 */
+  /* compiling/compiling_global.nit:303 */
   fra.me.REG[3] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[4] = CALL_compiling___table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./compiling//compiling_global.nit:304 */
+  /* compiling/compiling_global.nit:304 */
   REGB0 = TAG_Int(9);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2743,7 +2743,7 @@ val_t compiling___compiling_global___TableEltComposite___compile_to_c(val_t p0,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:309 */
+  /* compiling/compiling_global.nit:309 */
   nit_abort("Aborted", NULL, LOCATE_compiling___compiling_global, 309);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -2770,9 +2770,9 @@ val_t compiling___compiling_global___TableEltClassSelfId___compile_to_c(val_t p0
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:315 */
+  /* compiling/compiling_global.nit:315 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:316 */
+  /* compiling/compiling_global.nit:316 */
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2844,9 +2844,9 @@ val_t compiling___compiling_global___TableEltClassSelfName___compile_to_c(val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:323 */
+  /* compiling/compiling_global.nit:323 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:324 */
+  /* compiling/compiling_global.nit:324 */
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2916,11 +2916,11 @@ val_t compiling___compiling_global___TableEltClassObjectSize___compile_to_c(val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:331 */
+  /* compiling/compiling_global.nit:331 */
   REGB0 = TAG_Int(0);
-  /* ./compiling//compiling_global.nit:332 */
+  /* compiling/compiling_global.nit:332 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:333 */
+  /* compiling/compiling_global.nit:333 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
   if (!once_value_1) {
     fra.me.REG[4] = BOX_NativeString("NativeArray");
@@ -2938,33 +2938,33 @@ val_t compiling___compiling_global___TableEltClassObjectSize___compile_to_c(val_
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
-    /* ./compiling//compiling_global.nit:334 */
+    /* compiling/compiling_global.nit:334 */
     REGB1 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:236 */
     REGB1 = TAG_Int(-UNTAG_Int(REGB1));
-    /* ./compiling//compiling_global.nit:334 */
+    /* compiling/compiling_global.nit:334 */
     REGB0 = REGB1;
   } else {
-    /* ./compiling//compiling_global.nit:336 */
+    /* compiling/compiling_global.nit:336 */
     fra.me.REG[4] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-    /* ./compiling//compiling_global.nit:337 */
+    /* compiling/compiling_global.nit:337 */
     fra.me.REG[2] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[2])(fra.me.REG[2]);
-    /* ./../lib/standard//collection//array.nit:269 */
+    /* ../lib/standard/collection/array.nit:269 */
     REGB1 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:270 */
+    /* ../lib/standard/collection/array.nit:270 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
     }
     REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-    /* ./../lib/standard//collection//array.nit:271 */
+    /* ../lib/standard/collection/array.nit:271 */
     fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     while(1) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -2976,37 +2976,37 @@ val_t compiling___compiling_global___TableEltClassObjectSize___compile_to_c(val_
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       if (UNTAG_Bool(REGB2)) {
-        /* ./../lib/standard//collection//array.nit:273 */
+        /* ../lib/standard/collection/array.nit:273 */
         REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
-        /* ./compiling//compiling_global.nit:339 */
+        /* compiling/compiling_global.nit:339 */
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-        /* ./compiling//compiling_global.nit:339 */
+        /* compiling/compiling_global.nit:339 */
         REGB0 = REGB2;
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB1 = REGB2;
       } else {
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         goto label2;
       }
     }
     label2: while(0);
   }
-  /* ./compiling//compiling_global.nit:342 */
+  /* compiling/compiling_global.nit:342 */
   REGB1 = TAG_Int(5);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
   if (!once_value_3) {
@@ -3068,9 +3068,9 @@ val_t compiling___compiling_global___TableEltObjectId___compile_to_c(val_t p0, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:349 */
+  /* compiling/compiling_global.nit:349 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:350 */
+  /* compiling/compiling_global.nit:350 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -3121,9 +3121,9 @@ val_t compiling___compiling_global___TableEltVftPointer___compile_to_c(val_t p0,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:357 */
+  /* compiling/compiling_global.nit:357 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:358 */
+  /* compiling/compiling_global.nit:358 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -3188,7 +3188,7 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:368 */
+  /* compiling/compiling_global.nit:368 */
   if (!once_value_1) {
     fra.me.REG[2] = BOX_NativeString("");
     REGB0 = TAG_Int(0);
@@ -3198,9 +3198,9 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_global.nit:369 */
+  /* compiling/compiling_global.nit:369 */
   fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:370 */
+  /* compiling/compiling_global.nit:370 */
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_2) {
@@ -3225,7 +3225,7 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_global.nit:371 */
+  /* compiling/compiling_global.nit:371 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3251,13 +3251,13 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_global.nit:372 */
+    /* compiling/compiling_global.nit:372 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 372);
     }
     fra.me.REG[2] = CALL_primitive_info___PrimitiveInfo___cname(fra.me.REG[2])(fra.me.REG[2]);
-    /* ./compiling//compiling_global.nit:373 */
+    /* compiling/compiling_global.nit:373 */
     REGB0 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_4) {
@@ -3282,7 +3282,7 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
     fra.me.REG[4] = fra.me.REG[4];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-    /* ./compiling//compiling_global.nit:374 */
+    /* compiling/compiling_global.nit:374 */
     REGB0 = TAG_Int(5);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_6) {
@@ -3316,7 +3316,7 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-    /* ./compiling//compiling_global.nit:375 */
+    /* compiling/compiling_global.nit:375 */
     REGB0 = TAG_Int(5);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_9) {
@@ -3352,7 +3352,7 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-    /* ./compiling//compiling_global.nit:376 */
+    /* compiling/compiling_global.nit:376 */
     REGB0 = TAG_Int(5);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_12) {
@@ -3482,27 +3482,27 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:380 */
+  /* compiling/compiling_global.nit:380 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./compiling//compiling_global.nit:383 */
+  /* compiling/compiling_global.nit:383 */
   fra.me.REG[3] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./compiling//compiling_global.nit:384 */
+  /* compiling/compiling_global.nit:384 */
   fra.me.REG[3] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./compiling//compiling_global.nit:386 */
+  /* compiling/compiling_global.nit:386 */
   fra.me.REG[5] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[5] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[5])(fra.me.REG[5]);
   REGB1 = CALL_compiling___table_computation___TableInformation___max_class_table_length(fra.me.REG[5])(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -3514,17 +3514,17 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
-  /* ./compiling//compiling_global.nit:386 */
+  /* compiling/compiling_global.nit:386 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./compiling//compiling_global.nit:387 */
+    /* compiling/compiling_global.nit:387 */
     fra.me.REG[5] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[5] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[5])(fra.me.REG[5]);
     REGB2 = CALL_compiling___table_computation___TableInformation___max_class_table_length(fra.me.REG[5])(fra.me.REG[5]);
     REGB0 = REGB2;
   }
-  /* ./compiling//compiling_global.nit:390 */
+  /* compiling/compiling_global.nit:390 */
   REGB2 = TAG_Int(5);
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
   if (!once_value_1) {
@@ -3560,24 +3560,24 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
   fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./compiling//compiling_global.nit:391 */
+  /* compiling/compiling_global.nit:391 */
   CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:266 */
+  /* ../lib/standard/collection/array.nit:266 */
   fra.me.REG[5] = fra.me.REG[3];
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB2 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -3589,18 +3589,18 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB2)];
-      /* ./compiling//compiling_global.nit:393 */
+      /* compiling/compiling_global.nit:393 */
       REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -3614,7 +3614,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         }
       }
       if (UNTAG_Bool(REGB1)) {
-        /* ./compiling//compiling_global.nit:394 */
+        /* compiling/compiling_global.nit:394 */
         if (!once_value_4) {
           fra.me.REG[8] = BOX_NativeString("{0} /* Class Hole :( */,");
           REGB1 = TAG_Int(24);
@@ -3625,7 +3625,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         fra.me.REG[8] = fra.me.REG[8];
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
       } else {
-        /* ./compiling//compiling_global.nit:396 */
+        /* compiling/compiling_global.nit:396 */
         REGB1 = TAG_Int(3);
         fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
         if (!once_value_5) {
@@ -3655,19 +3655,19 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label7;
     }
   }
   label7: while(0);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -3679,11 +3679,11 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB2));
-  /* ./compiling//compiling_global.nit:399 */
+  /* compiling/compiling_global.nit:399 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./compiling//compiling_global.nit:400 */
+    /* compiling/compiling_global.nit:400 */
     if (!once_value_8) {
       fra.me.REG[6] = BOX_NativeString("{0},");
       REGB2 = TAG_Int(4);
@@ -3692,22 +3692,22 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       register_static_object(&once_value_8);
     } else fra.me.REG[6] = once_value_8;
     fra.me.REG[6] = fra.me.REG[6];
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-    /* ./../lib/standard//kernel.nit:237 */
+    /* ../lib/standard/kernel.nit:237 */
     REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
-    /* ./compiling//compiling_global.nit:400 */
+    /* compiling/compiling_global.nit:400 */
     fra.me.REG[6] = CALL_standard___string___String_____star(fra.me.REG[6])(fra.me.REG[6], REGB2);
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
   }
-  /* ./compiling//compiling_global.nit:402 */
+  /* compiling/compiling_global.nit:402 */
   CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:403 */
+  /* compiling/compiling_global.nit:403 */
   if (!once_value_9) {
     fra.me.REG[6] = BOX_NativeString("};");
     REGB2 = TAG_Int(2);
@@ -3717,24 +3717,24 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
   } else fra.me.REG[6] = once_value_9;
   fra.me.REG[6] = fra.me.REG[6];
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-  /* ./compiling//compiling_global.nit:404 */
+  /* compiling/compiling_global.nit:404 */
   fra.me.REG[4] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:266 */
+  /* ../lib/standard/collection/array.nit:266 */
   fra.me.REG[6] = fra.me.REG[4];
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB2 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -3746,18 +3746,18 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB2)];
-      /* ./compiling//compiling_global.nit:406 */
+      /* compiling/compiling_global.nit:406 */
       REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -3771,7 +3771,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         }
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./compiling//compiling_global.nit:407 */
+        /* compiling/compiling_global.nit:407 */
         if (!once_value_10) {
           fra.me.REG[8] = BOX_NativeString("/* Instance Hole :( */");
           REGB0 = TAG_Int(22);
@@ -3782,7 +3782,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         fra.me.REG[8] = fra.me.REG[8];
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
       } else {
-        /* ./compiling//compiling_global.nit:409 */
+        /* compiling/compiling_global.nit:409 */
         REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
           nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 409);
@@ -3790,21 +3790,21 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         fra.me.REG[5] = CALL_compiling___compiling_global___TableElt___compile_to_c(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[2]);
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = REGB0;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label11;
     }
   }
   label11: while(0);
-  /* ./compiling//compiling_global.nit:413 */
+  /* compiling/compiling_global.nit:413 */
   fra.me.REG[3] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./compiling//compiling_global.nit:414 */
+  /* compiling/compiling_global.nit:414 */
   fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
   if (!once_value_12) {
     fra.me.REG[5] = BOX_NativeString("NativeArray");
@@ -3822,7 +3822,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
     REGB2 = REGB0;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./compiling//compiling_global.nit:415 */
+    /* compiling/compiling_global.nit:415 */
     if (!once_value_13) {
       fra.me.REG[5] = BOX_NativeString("val_t NEW_NativeArray(size_t length, size_t size) {");
       REGB2 = TAG_Int(51);
@@ -3832,9 +3832,9 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
     } else fra.me.REG[5] = once_value_13;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* ./compiling//compiling_global.nit:416 */
+    /* compiling/compiling_global.nit:416 */
     CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./compiling//compiling_global.nit:417 */
+    /* compiling/compiling_global.nit:417 */
     if (!once_value_14) {
       fra.me.REG[5] = BOX_NativeString("Nit_NativeArray array;");
       REGB2 = TAG_Int(22);
@@ -3844,7 +3844,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
     } else fra.me.REG[5] = once_value_14;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* ./compiling//compiling_global.nit:418 */
+    /* compiling/compiling_global.nit:418 */
     if (!once_value_15) {
       fra.me.REG[5] = BOX_NativeString("array = (Nit_NativeArray)alloc(sizeof(struct Nit_NativeArray) + ((length - 1) * size));");
       REGB2 = TAG_Int(87);
@@ -3854,7 +3854,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
     } else fra.me.REG[5] = once_value_15;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* ./compiling//compiling_global.nit:419 */
+    /* compiling/compiling_global.nit:419 */
     REGB2 = TAG_Int(3);
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
     if (!once_value_16) {
@@ -3879,7 +3879,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* ./compiling//compiling_global.nit:420 */
+    /* compiling/compiling_global.nit:420 */
     if (!once_value_18) {
       fra.me.REG[5] = BOX_NativeString("array->object_id = object_id_counter;");
       REGB2 = TAG_Int(37);
@@ -3889,7 +3889,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
     } else fra.me.REG[5] = once_value_18;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* ./compiling//compiling_global.nit:421 */
+    /* compiling/compiling_global.nit:421 */
     if (!once_value_19) {
       fra.me.REG[5] = BOX_NativeString("object_id_counter = object_id_counter + 1;");
       REGB2 = TAG_Int(42);
@@ -3899,7 +3899,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
     } else fra.me.REG[5] = once_value_19;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* ./compiling//compiling_global.nit:422 */
+    /* compiling/compiling_global.nit:422 */
     if (!once_value_20) {
       fra.me.REG[5] = BOX_NativeString("array->size = length;");
       REGB2 = TAG_Int(21);
@@ -3909,7 +3909,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
     } else fra.me.REG[5] = once_value_20;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* ./compiling//compiling_global.nit:423 */
+    /* compiling/compiling_global.nit:423 */
     if (!once_value_21) {
       fra.me.REG[5] = BOX_NativeString("return OBJ2VAL(array);");
       REGB2 = TAG_Int(22);
@@ -3919,9 +3919,9 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
     } else fra.me.REG[5] = once_value_21;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* ./compiling//compiling_global.nit:424 */
+    /* compiling/compiling_global.nit:424 */
     CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./compiling//compiling_global.nit:425 */
+    /* compiling/compiling_global.nit:425 */
     if (!once_value_22) {
       fra.me.REG[5] = BOX_NativeString("}");
       REGB2 = TAG_Int(1);
@@ -3932,7 +3932,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
     fra.me.REG[5] = fra.me.REG[5];
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
   } else {
-    /* ./compiling//compiling_global.nit:426 */
+    /* compiling/compiling_global.nit:426 */
     REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -3946,7 +3946,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       }
     }
     if (UNTAG_Bool(REGB2)) {
-      /* ./compiling//compiling_global.nit:429 */
+      /* compiling/compiling_global.nit:429 */
       REGB2 = TAG_Int(3);
       fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_23) {
@@ -3970,7 +3970,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       fra.me.REG[6] = fra.me.REG[6];
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
       fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-      /* ./compiling//compiling_global.nit:430 */
+      /* compiling/compiling_global.nit:430 */
       fra.me.REG[6] = CALL_program___MMLocalClass___init_var_iroutine(fra.me.REG[2])(fra.me.REG[2]);
       REGB2 = TAG_Int(3);
       fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
@@ -4001,24 +4001,24 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 430);
       }
       fra.me.REG[8] = CALL_compiling___compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1], fra.me.REG[5], fra.me.REG[8], NIT_NULL, NIT_NULL);
-      /* ./compiling//compiling_global.nit:431 */
+      /* compiling/compiling_global.nit:431 */
       fra.me.REG[6] = CALL_compiling___compiling_base___CompilerVisitor___decl_writer(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//compiling_global.nit:432 */
+      /* compiling/compiling_global.nit:432 */
       fra.me.REG[7] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[7] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[7])(fra.me.REG[7]);
       CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
-      /* ./compiling//compiling_global.nit:433 */
+      /* compiling/compiling_global.nit:433 */
       fra.me.REG[7] = CALL_program___MMLocalClass___init_var_iroutine(fra.me.REG[2])(fra.me.REG[2]);
       REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 433);
       }
       CALL_compiling___compiling_icode___IRoutine___compile_to_c(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[1], fra.me.REG[5], fra.me.REG[8]);
-      /* ./compiling//compiling_global.nit:434 */
+      /* compiling/compiling_global.nit:434 */
       CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:435 */
+      /* compiling/compiling_global.nit:435 */
       CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//compiling_global.nit:436 */
+      /* compiling/compiling_global.nit:436 */
       if (!once_value_27) {
         fra.me.REG[6] = BOX_NativeString("}");
         REGB2 = TAG_Int(1);
@@ -4028,7 +4028,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       } else fra.me.REG[6] = once_value_27;
       fra.me.REG[6] = fra.me.REG[6];
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:440 */
+      /* compiling/compiling_global.nit:440 */
       REGB2 = TAG_Int(3);
       fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_28) {
@@ -4053,7 +4053,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
       fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
       CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:441 */
+      /* compiling/compiling_global.nit:441 */
       REGB2 = TAG_Int(3);
       fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_30) {
@@ -4078,7 +4078,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
       fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:442 */
+      /* compiling/compiling_global.nit:442 */
       if (!once_value_32) {
         fra.me.REG[6] = BOX_NativeString("{");
         REGB2 = TAG_Int(1);
@@ -4088,9 +4088,9 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       } else fra.me.REG[6] = once_value_32;
       fra.me.REG[6] = fra.me.REG[6];
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:443 */
+      /* compiling/compiling_global.nit:443 */
       CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//compiling_global.nit:444 */
+      /* compiling/compiling_global.nit:444 */
       if (!once_value_33) {
         fra.me.REG[6] = BOX_NativeString("obj_t obj;");
         REGB2 = TAG_Int(10);
@@ -4100,7 +4100,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       } else fra.me.REG[6] = once_value_33;
       fra.me.REG[6] = fra.me.REG[6];
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:445 */
+      /* compiling/compiling_global.nit:445 */
       REGB2 = TAG_Int(3);
       fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_34) {
@@ -4112,14 +4112,14 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       } else fra.me.REG[8] = once_value_34;
       fra.me.REG[8] = fra.me.REG[8];
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
       }
       REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-      /* ./compiling//compiling_global.nit:445 */
+      /* compiling/compiling_global.nit:445 */
       fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
       if (!once_value_35) {
@@ -4133,7 +4133,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
       fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:446 */
+      /* compiling/compiling_global.nit:446 */
       REGB2 = TAG_Int(3);
       fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_36) {
@@ -4158,7 +4158,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
       fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:447 */
+      /* compiling/compiling_global.nit:447 */
       if (!once_value_38) {
         fra.me.REG[6] = BOX_NativeString("obj[1].object_id = object_id_counter;");
         REGB2 = TAG_Int(37);
@@ -4168,7 +4168,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       } else fra.me.REG[6] = once_value_38;
       fra.me.REG[6] = fra.me.REG[6];
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:448 */
+      /* compiling/compiling_global.nit:448 */
       if (!once_value_39) {
         fra.me.REG[6] = BOX_NativeString("object_id_counter = object_id_counter + 1;");
         REGB2 = TAG_Int(42);
@@ -4178,7 +4178,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       } else fra.me.REG[6] = once_value_39;
       fra.me.REG[6] = fra.me.REG[6];
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:449 */
+      /* compiling/compiling_global.nit:449 */
       if (!once_value_40) {
         fra.me.REG[6] = BOX_NativeString("return OBJ2VAL(obj);");
         REGB2 = TAG_Int(20);
@@ -4188,9 +4188,9 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       } else fra.me.REG[6] = once_value_40;
       fra.me.REG[6] = fra.me.REG[6];
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:450 */
+      /* compiling/compiling_global.nit:450 */
       CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//compiling_global.nit:451 */
+      /* compiling/compiling_global.nit:451 */
       if (!once_value_41) {
         fra.me.REG[6] = BOX_NativeString("}");
         REGB2 = TAG_Int(1);
@@ -4200,7 +4200,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       } else fra.me.REG[6] = once_value_41;
       fra.me.REG[6] = fra.me.REG[6];
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:455 */
+      /* compiling/compiling_global.nit:455 */
       REGB2 = TAG_Int(3);
       fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_42) {
@@ -4224,7 +4224,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       fra.me.REG[4] = fra.me.REG[4];
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
       fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:456 */
+      /* compiling/compiling_global.nit:456 */
       fra.me.REG[4] = CALL_program___MMLocalClass___checknew_iroutine(fra.me.REG[2])(fra.me.REG[2]);
       REGB2 = TAG_Int(3);
       fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
@@ -4255,24 +4255,24 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 456);
       }
       fra.me.REG[8] = CALL_compiling___compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[6], fra.me.REG[8], NIT_NULL, NIT_NULL);
-      /* ./compiling//compiling_global.nit:457 */
+      /* compiling/compiling_global.nit:457 */
       fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___decl_writer(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//compiling_global.nit:458 */
+      /* compiling/compiling_global.nit:458 */
       fra.me.REG[5] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[5] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[5])(fra.me.REG[5]);
       CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-      /* ./compiling//compiling_global.nit:459 */
+      /* compiling/compiling_global.nit:459 */
       fra.me.REG[5] = CALL_program___MMLocalClass___checknew_iroutine(fra.me.REG[2])(fra.me.REG[2]);
       REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 459);
       }
       CALL_compiling___compiling_icode___IRoutine___compile_to_c(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[6], fra.me.REG[8]);
-      /* ./compiling//compiling_global.nit:460 */
+      /* compiling/compiling_global.nit:460 */
       CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-      /* ./compiling//compiling_global.nit:461 */
+      /* compiling/compiling_global.nit:461 */
       CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//compiling_global.nit:462 */
+      /* compiling/compiling_global.nit:462 */
       if (!once_value_46) {
         fra.me.REG[4] = BOX_NativeString("}");
         REGB2 = TAG_Int(1);
@@ -4282,14 +4282,14 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       } else fra.me.REG[4] = once_value_46;
       fra.me.REG[4] = fra.me.REG[4];
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-      /* ./compiling//compiling_global.nit:465 */
+      /* compiling/compiling_global.nit:465 */
       fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]);
       fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___greaters(fra.me.REG[4])(fra.me.REG[4]);
       REGB2 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
-      /* ./compiling//compiling_global.nit:466 */
+      /* compiling/compiling_global.nit:466 */
       REGB2 = TAG_Int(5);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_47) {
@@ -4321,9 +4321,9 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       } else fra.me.REG[8] = once_value_49;
       fra.me.REG[8] = fra.me.REG[8];
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
-      /* ./compiling//compiling_global.nit:466 */
+      /* compiling/compiling_global.nit:466 */
       fra.me.REG[8] = CALL_standard___string___String_____star(fra.me.REG[8])(fra.me.REG[8], REGB2);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
       if (!once_value_50) {
@@ -4336,11 +4336,11 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       fra.me.REG[8] = fra.me.REG[8];
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
       fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-      /* ./compiling//compiling_global.nit:468 */
+      /* compiling/compiling_global.nit:468 */
       fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[2])(fra.me.REG[2]);
       CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[8])(fra.me.REG[8], (&(fra.me)), ((fun_t)OC_compiling___compiling_global___MMLocalClass___compile_tables_to_c_51));
     } else {
-      /* ./compiling//compiling_global.nit:485 */
+      /* compiling/compiling_global.nit:485 */
       REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 485);
@@ -4348,13 +4348,13 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       REGB2 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[3])(fra.me.REG[3]);
       REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
       if (UNTAG_Bool(REGB2)) {
-        /* ./compiling//compiling_global.nit:486 */
+        /* compiling/compiling_global.nit:486 */
         REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
           nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 486);
         }
         fra.me.REG[3] = CALL_primitive_info___PrimitiveInfo___cname(fra.me.REG[3])(fra.me.REG[3]);
-        /* ./compiling//compiling_global.nit:487 */
+        /* compiling/compiling_global.nit:487 */
         REGB2 = TAG_Int(3);
         fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
         if (!once_value_62) {
@@ -4379,7 +4379,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         fra.me.REG[4] = fra.me.REG[4];
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
         fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
-        /* ./compiling//compiling_global.nit:488 */
+        /* compiling/compiling_global.nit:488 */
         REGB2 = TAG_Int(5);
         fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
         if (!once_value_64) {
@@ -4415,9 +4415,9 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
         fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* ./compiling//compiling_global.nit:489 */
+        /* compiling/compiling_global.nit:489 */
         CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-        /* ./compiling//compiling_global.nit:490 */
+        /* compiling/compiling_global.nit:490 */
         REGB2 = TAG_Int(7);
         fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
         if (!once_value_67) {
@@ -4461,7 +4461,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
         fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* ./compiling//compiling_global.nit:491 */
+        /* compiling/compiling_global.nit:491 */
         REGB2 = TAG_Int(3);
         fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
         if (!once_value_71) {
@@ -4486,7 +4486,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
         fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* ./compiling//compiling_global.nit:492 */
+        /* compiling/compiling_global.nit:492 */
         if (!once_value_73) {
           fra.me.REG[4] = BOX_NativeString("box->val = val;");
           REGB2 = TAG_Int(15);
@@ -4496,7 +4496,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         } else fra.me.REG[4] = once_value_73;
         fra.me.REG[4] = fra.me.REG[4];
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* ./compiling//compiling_global.nit:493 */
+        /* compiling/compiling_global.nit:493 */
         if (!once_value_74) {
           fra.me.REG[4] = BOX_NativeString("box->object_id = object_id_counter;");
           REGB2 = TAG_Int(35);
@@ -4506,7 +4506,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         } else fra.me.REG[4] = once_value_74;
         fra.me.REG[4] = fra.me.REG[4];
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* ./compiling//compiling_global.nit:494 */
+        /* compiling/compiling_global.nit:494 */
         if (!once_value_75) {
           fra.me.REG[4] = BOX_NativeString("object_id_counter = object_id_counter + 1;");
           REGB2 = TAG_Int(42);
@@ -4516,7 +4516,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         } else fra.me.REG[4] = once_value_75;
         fra.me.REG[4] = fra.me.REG[4];
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* ./compiling//compiling_global.nit:495 */
+        /* compiling/compiling_global.nit:495 */
         if (!once_value_76) {
           fra.me.REG[4] = BOX_NativeString("return OBJ2VAL(box);");
           REGB2 = TAG_Int(20);
@@ -4526,9 +4526,9 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         } else fra.me.REG[4] = once_value_76;
         fra.me.REG[4] = fra.me.REG[4];
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* ./compiling//compiling_global.nit:496 */
+        /* compiling/compiling_global.nit:496 */
         CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-        /* ./compiling//compiling_global.nit:497 */
+        /* compiling/compiling_global.nit:497 */
         if (!once_value_77) {
           fra.me.REG[4] = BOX_NativeString("}");
           REGB2 = TAG_Int(1);
@@ -4574,22 +4574,22 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         fra.me.closure_funs = CREG;
         fra.me.REG[0] = p0;
         CREG[0] = clos_fun0;
-        /* ./compiling//compiling_global.nit:469 */
+        /* compiling/compiling_global.nit:469 */
         fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
-        /* ./compiling//compiling_global.nit:471 */
+        /* compiling/compiling_global.nit:471 */
         fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
         REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra.me.REG[1])(fra.me.REG[1], closctx->REG[2]);
         REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
         if (UNTAG_Bool(REGB0)) {
           goto label52;
         }
-        /* ./compiling//compiling_global.nit:472 */
+        /* compiling/compiling_global.nit:472 */
         REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
         if (UNTAG_Bool(REGB0)) {
         } else {
           nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_global, 472);
         }
-        /* ./compiling//compiling_global.nit:474 */
+        /* compiling/compiling_global.nit:474 */
         REGB0 = TAG_Int(5);
         fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_53) {
@@ -4626,7 +4626,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         fra.me.REG[2] = fra.me.REG[2];
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
         fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
-        /* ./compiling//compiling_global.nit:475 */
+        /* compiling/compiling_global.nit:475 */
         fra.me.REG[2] = CALL_program___MMLocalClass___new_instance_iroutine(closctx->REG[2])(closctx->REG[2]);
         fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         REGB0 = TAG_Int(5);
@@ -4668,15 +4668,15 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
           nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 475);
         }
         fra.me.REG[3] = CALL_compiling___compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[2])(fra.me.REG[2], closctx->REG[1], fra.me.REG[1], fra.me.REG[3], NIT_NULL, NIT_NULL);
-        /* ./compiling//compiling_global.nit:476 */
+        /* compiling/compiling_global.nit:476 */
         fra.me.REG[2] = CALL_compiling___compiling_base___CompilerVisitor___decl_writer(closctx->REG[1])(closctx->REG[1]);
-        /* ./compiling//compiling_global.nit:477 */
+        /* compiling/compiling_global.nit:477 */
         fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___writer(closctx->REG[1])(closctx->REG[1]);
         fra.me.REG[4] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[4])(fra.me.REG[4]);
         CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(closctx->REG[1])(closctx->REG[1], fra.me.REG[4]);
-        /* ./compiling//compiling_global.nit:478 */
+        /* compiling/compiling_global.nit:478 */
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(closctx->REG[1])(closctx->REG[1], closctx->REG[4]);
-        /* ./compiling//compiling_global.nit:479 */
+        /* compiling/compiling_global.nit:479 */
         fra.me.REG[4] = CALL_program___MMLocalClass___new_instance_iroutine(closctx->REG[2])(closctx->REG[2]);
         fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
         REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
@@ -4689,7 +4689,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         } else {
           nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_global, 479);
         }
-        /* ./compiling//compiling_global.nit:480 */
+        /* compiling/compiling_global.nit:480 */
         REGB0 = TAG_Int(3);
         fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_59) {
@@ -4713,11 +4713,11 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
         fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(closctx->REG[1])(closctx->REG[1], fra.me.REG[1]);
-        /* ./compiling//compiling_global.nit:481 */
+        /* compiling/compiling_global.nit:481 */
         CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(closctx->REG[1])(closctx->REG[1], fra.me.REG[2]);
-        /* ./compiling//compiling_global.nit:482 */
+        /* compiling/compiling_global.nit:482 */
         CALL_compiling___compiling_base___CompilerVisitor___unindent(closctx->REG[1])(closctx->REG[1]);
-        /* ./compiling//compiling_global.nit:483 */
+        /* compiling/compiling_global.nit:483 */
         if (!once_value_61) {
           fra.me.REG[2] = BOX_NativeString("}");
           REGB0 = TAG_Int(1);
@@ -4769,9 +4769,9 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:505 */
+  /* compiling/compiling_global.nit:505 */
   fra.me.REG[2] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:506 */
+  /* compiling/compiling_global.nit:506 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -4789,9 +4789,9 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
   } else {
     nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_global, 506);
   }
-  /* ./compiling//compiling_global.nit:508 */
+  /* compiling/compiling_global.nit:508 */
   fra.me.REG[3] = NIT_NULL;
-  /* ./compiling//compiling_global.nit:509 */
+  /* compiling/compiling_global.nit:509 */
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]);
   if (UNTAG_Bool(REGB0)) {
@@ -4805,7 +4805,7 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     fra.me.REG[4] = fra.me.REG[4];
     fra.me.REG[3] = fra.me.REG[4];
   }
-  /* ./compiling//compiling_global.nit:510 */
+  /* compiling/compiling_global.nit:510 */
   fra.me.REG[4] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -4813,25 +4813,25 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 510);
   }
   fra.me.REG[3] = CALL_compiling___compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[4], fra.me.REG[5], NIT_NULL, fra.me.REG[3]);
-  /* ./compiling//compiling_global.nit:511 */
+  /* compiling/compiling_global.nit:511 */
   fra.me.REG[5] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:512 */
+  /* compiling/compiling_global.nit:512 */
   fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[4] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[4])(fra.me.REG[4]);
   CALL_compiling___compiling_base___CompilerVisitor___writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./compiling//compiling_global.nit:513 */
+  /* compiling/compiling_global.nit:513 */
   fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___decl_writer(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:514 */
+  /* compiling/compiling_global.nit:514 */
   fra.me.REG[6] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[6] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]);
   CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-  /* ./compiling//compiling_global.nit:516 */
+  /* compiling/compiling_global.nit:516 */
   fra.me.REG[6] = NIT_NULL;
-  /* ./compiling//compiling_global.nit:517 */
+  /* compiling/compiling_global.nit:517 */
   fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[7])(fra.me.REG[7]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_global.nit:518 */
+    /* compiling/compiling_global.nit:518 */
     REGB0 = TAG_Int(3);
     fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_2) {
@@ -4857,7 +4857,7 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
     fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
     fra.me.REG[6] = fra.me.REG[7];
-    /* ./compiling//compiling_global.nit:519 */
+    /* compiling/compiling_global.nit:519 */
     REGB0 = TAG_Int(7);
     fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_4) {
@@ -4905,7 +4905,7 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
     fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
     CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
-    /* ./compiling//compiling_global.nit:520 */
+    /* compiling/compiling_global.nit:520 */
     REGB0 = TAG_Int(3);
     fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_8) {
@@ -4930,14 +4930,14 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
   }
-  /* ./compiling//compiling_global.nit:523 */
+  /* compiling/compiling_global.nit:523 */
   fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 523);
   }
   fra.me.REG[3] = CALL_compiling___compiling_icode___IRoutine___compile_to_c(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
-  /* ./compiling//compiling_global.nit:525 */
+  /* compiling/compiling_global.nit:525 */
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -4952,7 +4952,7 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_global.nit:526 */
+    /* compiling/compiling_global.nit:526 */
     REGB0 = TAG_Int(3);
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_10) {
@@ -4977,7 +4977,7 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
-  /* ./compiling//compiling_global.nit:528 */
+  /* compiling/compiling_global.nit:528 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -4991,7 +4991,7 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_global.nit:529 */
+    /* compiling/compiling_global.nit:529 */
     if (!once_value_12) {
       fra.me.REG[0] = BOX_NativeString("return;");
       REGB0 = TAG_Int(7);
@@ -5002,7 +5002,7 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     fra.me.REG[0] = fra.me.REG[0];
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   } else {
-    /* ./compiling//compiling_global.nit:531 */
+    /* compiling/compiling_global.nit:531 */
     REGB0 = TAG_Int(3);
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_13) {
@@ -5027,9 +5027,9 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
-  /* ./compiling//compiling_global.nit:533 */
+  /* compiling/compiling_global.nit:533 */
   CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:534 */
+  /* compiling/compiling_global.nit:534 */
   if (!once_value_15) {
     fra.me.REG[0] = BOX_NativeString("}");
     REGB0 = TAG_Int(1);
@@ -5039,9 +5039,9 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
   } else fra.me.REG[0] = once_value_15;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:536 */
+  /* compiling/compiling_global.nit:536 */
   CALL_compiling___compiling_base___CompilerVisitor___writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./compiling//compiling_global.nit:537 */
+  /* compiling/compiling_global.nit:537 */
   CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
   stack_frame_head = fra.me.prev;
   return;
index 4341415..72ff657 100644 (file)
@@ -52,22 +52,19 @@ val_t NEW_MMModule_metamodel___abstractmetamodel___MMModule___init(val_t p0, val
 static const char * const LOCATE_compiling___compiling_global___AbsTableElt___compile_macros = "compiling_global::AbsTableElt::compile_macros";
 void compiling___compiling_global___AbsTableElt___compile_macros(val_t p0, val_t p1, val_t p2);
 typedef void (*compiling___compiling_global___AbsTableElt___compile_macros_t)(val_t p0, val_t p1, val_t p2);
-val_t NEW_AbsTableElt_compiling___table_computation___AbsTableElt___init();
 static const char * const LOCATE_compiling___compiling_global___TableElt___compile_to_c = "compiling_global::TableElt::compile_to_c";
 val_t compiling___compiling_global___TableElt___compile_to_c(val_t p0, val_t p1, val_t p2);
 typedef val_t (*compiling___compiling_global___TableElt___compile_to_c_t)(val_t p0, val_t p1, val_t p2);
-val_t NEW_TableElt_compiling___table_computation___AbsTableElt___init();
 static const char * const LOCATE_compiling___compiling_global___ModuleTableElt___value = "compiling_global::ModuleTableElt::value";
 val_t compiling___compiling_global___ModuleTableElt___value(val_t p0, val_t p1);
 typedef val_t (*compiling___compiling_global___ModuleTableElt___value_t)(val_t p0, val_t p1);
-val_t NEW_ModuleTableElt_compiling___table_computation___AbsTableElt___init();
 static const char * const LOCATE_compiling___compiling_global___ModuleTableEltGroup___value = "compiling_global::ModuleTableEltGroup::(compiling_global::ModuleTableElt::value)";
 val_t compiling___compiling_global___ModuleTableEltGroup___value(val_t p0, val_t p1);
 typedef val_t (*compiling___compiling_global___ModuleTableEltGroup___value_t)(val_t p0, val_t p1);
 static const char * const LOCATE_compiling___compiling_global___ModuleTableEltGroup___compile_macros = "compiling_global::ModuleTableEltGroup::(compiling_global::AbsTableElt::compile_macros)";
 void compiling___compiling_global___ModuleTableEltGroup___compile_macros(val_t p0, val_t p1, val_t p2);
 typedef void (*compiling___compiling_global___ModuleTableEltGroup___compile_macros_t)(val_t p0, val_t p1, val_t p2);
-val_t NEW_ModuleTableEltGroup_compiling___table_computation___AbsTableElt___init();
+val_t NEW_ModuleTableEltGroup_compiling___table_computation___ModuleTableEltGroup___init();
 static const char * const LOCATE_compiling___compiling_global___TableEltMeth___compile_macros = "compiling_global::TableEltMeth::(compiling_global::AbsTableElt::compile_macros)";
 void compiling___compiling_global___TableEltMeth___compile_macros(val_t p0, val_t p1, val_t p2);
 typedef void (*compiling___compiling_global___TableEltMeth___compile_macros_t)(val_t p0, val_t p1, val_t p2);
@@ -141,23 +138,23 @@ val_t NEW_TableEltComposite_compiling___table_computation___TableEltComposite___
 static const char * const LOCATE_compiling___compiling_global___TableEltClassSelfId___compile_to_c = "compiling_global::TableEltClassSelfId::(compiling_global::TableElt::compile_to_c)";
 val_t compiling___compiling_global___TableEltClassSelfId___compile_to_c(val_t p0, val_t p1, val_t p2);
 typedef val_t (*compiling___compiling_global___TableEltClassSelfId___compile_to_c_t)(val_t p0, val_t p1, val_t p2);
-val_t NEW_TableEltClassSelfId_compiling___table_computation___AbsTableElt___init();
+val_t NEW_TableEltClassSelfId_compiling___table_computation___TableEltClassSelfId___init();
 static const char * const LOCATE_compiling___compiling_global___TableEltClassSelfName___compile_to_c = "compiling_global::TableEltClassSelfName::(compiling_global::TableElt::compile_to_c)";
 val_t compiling___compiling_global___TableEltClassSelfName___compile_to_c(val_t p0, val_t p1, val_t p2);
 typedef val_t (*compiling___compiling_global___TableEltClassSelfName___compile_to_c_t)(val_t p0, val_t p1, val_t p2);
-val_t NEW_TableEltClassSelfName_compiling___table_computation___AbsTableElt___init();
+val_t NEW_TableEltClassSelfName_compiling___table_computation___TableEltClassSelfName___init();
 static const char * const LOCATE_compiling___compiling_global___TableEltClassObjectSize___compile_to_c = "compiling_global::TableEltClassObjectSize::(compiling_global::TableElt::compile_to_c)";
 val_t compiling___compiling_global___TableEltClassObjectSize___compile_to_c(val_t p0, val_t p1, val_t p2);
 typedef val_t (*compiling___compiling_global___TableEltClassObjectSize___compile_to_c_t)(val_t p0, val_t p1, val_t p2);
-val_t NEW_TableEltClassObjectSize_compiling___table_computation___AbsTableElt___init();
+val_t NEW_TableEltClassObjectSize_compiling___table_computation___TableEltClassObjectSize___init();
 static const char * const LOCATE_compiling___compiling_global___TableEltObjectId___compile_to_c = "compiling_global::TableEltObjectId::(compiling_global::TableElt::compile_to_c)";
 val_t compiling___compiling_global___TableEltObjectId___compile_to_c(val_t p0, val_t p1, val_t p2);
 typedef val_t (*compiling___compiling_global___TableEltObjectId___compile_to_c_t)(val_t p0, val_t p1, val_t p2);
-val_t NEW_TableEltObjectId_compiling___table_computation___AbsTableElt___init();
+val_t NEW_TableEltObjectId_compiling___table_computation___TableEltObjectId___init();
 static const char * const LOCATE_compiling___compiling_global___TableEltVftPointer___compile_to_c = "compiling_global::TableEltVftPointer::(compiling_global::TableElt::compile_to_c)";
 val_t compiling___compiling_global___TableEltVftPointer___compile_to_c(val_t p0, val_t p1, val_t p2);
 typedef val_t (*compiling___compiling_global___TableEltVftPointer___compile_to_c_t)(val_t p0, val_t p1, val_t p2);
-val_t NEW_TableEltVftPointer_compiling___table_computation___AbsTableElt___init();
+val_t NEW_TableEltVftPointer_compiling___table_computation___TableEltVftPointer___init();
 static const char * const LOCATE_compiling___compiling_global___MMLocalClass___declare_tables_to_c = "compiling_global::MMLocalClass::declare_tables_to_c";
 void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0, val_t p1);
 typedef void (*compiling___compiling_global___MMLocalClass___declare_tables_to_c_t)(val_t p0, val_t p1);
index 0d9f12c..b9d8cd0 100644 (file)
@@ -33,7 +33,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___register(val_t p0, val_
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:35 */
+  /* compiling/compiling_icode.nit:35 */
   fra.me.REG[2] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
   if (UNTAG_Bool(REGB0)) {
@@ -47,14 +47,14 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___register(val_t p0, val_
     fra.me.REG[2] = fra.me.REG[2];
     goto label2;
   }
-  /* ./compiling//compiling_icode.nit:36 */
+  /* compiling/compiling_icode.nit:36 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_ids", LOCATE_compiling___compiling_icode, 36);
   }
   fra.me.REG[3] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:37 */
+  /* compiling/compiling_icode.nit:37 */
   REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
     REGB0 = CALL_analysis___allocate_iregister_slots___IRegister___is_local(fra.me.REG[1])(fra.me.REG[1]);
@@ -72,17 +72,17 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___register(val_t p0, val_
     fra.me.REG[4] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids2(fra.me.REG[0]);
     fra.me.REG[3] = fra.me.REG[4];
   }
-  /* ./compiling//compiling_icode.nit:38 */
+  /* compiling/compiling_icode.nit:38 */
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:39 */
+    /* compiling/compiling_icode.nit:39 */
     fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
     fra.me.REG[2] = fra.me.REG[4];
     goto label2;
   } else {
-    /* ./compiling//compiling_icode.nit:41 */
+    /* compiling/compiling_icode.nit:41 */
     fra.me.REG[4] = CALL_analysis___allocate_iregister_slots___IRegister___slot_index(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./compiling//compiling_icode.nit:42 */
+    /* compiling/compiling_icode.nit:42 */
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -91,14 +91,14 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___register(val_t p0, val_
         REGB1 = TAG_Bool(false);
         REGB0 = REGB1;
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB1 = TAG_Bool((fra.me.REG[4])==(NIT_NULL));
-        /* ./compiling//compiling_icode.nit:42 */
+        /* compiling/compiling_icode.nit:42 */
         REGB0 = REGB1;
       }
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//compiling_icode.nit:44 */
+      /* compiling/compiling_icode.nit:44 */
       if (!once_value_3) {
         fra.me.REG[5] = BOX_NativeString("NIT_NULL");
         REGB0 = TAG_Int(8);
@@ -107,23 +107,23 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___register(val_t p0, val_
         register_static_object(&once_value_3);
       } else fra.me.REG[5] = once_value_3;
       fra.me.REG[5] = fra.me.REG[5];
-      /* ./compiling//compiling_icode.nit:45 */
+      /* compiling/compiling_icode.nit:45 */
       CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[5]);
-      /* ./compiling//compiling_icode.nit:46 */
+      /* compiling/compiling_icode.nit:46 */
       fra.me.REG[2] = fra.me.REG[5];
       goto label2;
     } else {
-      /* ./compiling//compiling_icode.nit:50 */
+      /* compiling/compiling_icode.nit:50 */
       REGB0 = CALL_analysis___allocate_iregister_slots___IRegister___in_tag_slots(fra.me.REG[1])(fra.me.REG[1]);
       if (UNTAG_Bool(REGB0)) {
-        /* ./compiling//compiling_icode.nit:51 */
+        /* compiling/compiling_icode.nit:51 */
         if (!once_value_4) {
           fra.me.REG[5] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
           once_value_4 = fra.me.REG[5];
           register_static_object(&once_value_4);
         } else fra.me.REG[5] = once_value_4;
         fra.me.REG[5] = fra.me.REG[5];
-        /* ./compiling//compiling_icode.nit:52 */
+        /* compiling/compiling_icode.nit:52 */
         REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
         REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
         if (UNTAG_Bool(REGB0)) {
@@ -153,7 +153,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___register(val_t p0, val_
           CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
         }
       } else {
-        /* ./compiling//compiling_icode.nit:53 */
+        /* compiling/compiling_icode.nit:53 */
         REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[0])(fra.me.REG[0]);
         if (UNTAG_Bool(REGB0)) {
           REGB0 = CALL_analysis___allocate_iregister_slots___IRegister___is_local(fra.me.REG[1])(fra.me.REG[1]);
@@ -163,7 +163,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___register(val_t p0, val_
           REGB0 = REGB1;
         }
         if (UNTAG_Bool(REGB0)) {
-          /* ./compiling//compiling_icode.nit:54 */
+          /* compiling/compiling_icode.nit:54 */
           if (!once_value_7) {
             fra.me.REG[0] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
             once_value_7 = fra.me.REG[0];
@@ -171,7 +171,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___register(val_t p0, val_
           } else fra.me.REG[0] = once_value_7;
           fra.me.REG[0] = fra.me.REG[0];
           fra.me.REG[5] = fra.me.REG[0];
-          /* ./compiling//compiling_icode.nit:55 */
+          /* compiling/compiling_icode.nit:55 */
           REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
           REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
           if (UNTAG_Bool(REGB0)) {
@@ -201,7 +201,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___register(val_t p0, val_
             CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[0]);
           }
         } else {
-          /* ./compiling//compiling_icode.nit:57 */
+          /* compiling/compiling_icode.nit:57 */
           if (!once_value_10) {
             fra.me.REG[0] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
             once_value_10 = fra.me.REG[0];
@@ -209,7 +209,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___register(val_t p0, val_
           } else fra.me.REG[0] = once_value_10;
           fra.me.REG[0] = fra.me.REG[0];
           fra.me.REG[5] = fra.me.REG[0];
-          /* ./compiling//compiling_icode.nit:58 */
+          /* compiling/compiling_icode.nit:58 */
           REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
           REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
           if (UNTAG_Bool(REGB0)) {
@@ -240,11 +240,11 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___register(val_t p0, val_
           }
         }
       }
-      /* ./compiling//compiling_icode.nit:60 */
+      /* compiling/compiling_icode.nit:60 */
       fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-      /* ./compiling//compiling_icode.nit:61 */
+      /* compiling/compiling_icode.nit:61 */
       CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[4]);
-      /* ./compiling//compiling_icode.nit:62 */
+      /* compiling/compiling_icode.nit:62 */
       fra.me.REG[2] = fra.me.REG[4];
       goto label2;
     }
@@ -269,11 +269,11 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___registers(val_t p0, val
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:70 */
+  /* compiling/compiling_icode.nit:70 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_compiling___compiling_icode___I2CCompilerVisitor___registers_1));
-  /* ./compiling//compiling_icode.nit:74 */
+  /* compiling/compiling_icode.nit:74 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -283,7 +283,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___registers(val_t p0, val
     struct {struct stack_frame_t me;} fra;
     fun_t CREG[1];
     val_t tmp;
-    /* ./compiling//compiling_icode.nit:71 */
+    /* compiling/compiling_icode.nit:71 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_compiling___compiling_icode;
     fra.me.line = 0;
@@ -296,7 +296,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___registers(val_t p0, val
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./compiling//compiling_icode.nit:72 */
+    /* compiling/compiling_icode.nit:72 */
     fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
@@ -316,14 +316,14 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___new_number(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_icode.nit:81 */
+  /* compiling/compiling_icode.nit:81 */
   REGB0 = ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0]);
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./compiling//compiling_icode.nit:81 */
+  /* compiling/compiling_icode.nit:81 */
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0]) = REGB1;
-  /* ./compiling//compiling_icode.nit:82 */
+  /* compiling/compiling_icode.nit:82 */
   REGB1 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -355,7 +355,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___lab(val_t p0, val_t p1)
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:88 */
+  /* compiling/compiling_icode.nit:88 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -364,7 +364,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___lab(val_t p0, val_t p1)
   fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:89 */
+    /* compiling/compiling_icode.nit:89 */
     REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -374,7 +374,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___lab(val_t p0, val_t p1)
     fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
     goto label1;
   } else {
-    /* ./compiling//compiling_icode.nit:91 */
+    /* compiling/compiling_icode.nit:91 */
     REGB0 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_2) {
@@ -399,7 +399,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___lab(val_t p0, val_t p1)
     fra.me.REG[4] = fra.me.REG[4];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-    /* ./compiling//compiling_icode.nit:92 */
+    /* compiling/compiling_icode.nit:92 */
     REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -407,7 +407,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___lab(val_t p0, val_t p1)
     }
     fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
-    /* ./compiling//compiling_icode.nit:93 */
+    /* compiling/compiling_icode.nit:93 */
     fra.me.REG[2] = fra.me.REG[3];
     goto label1;
   }
@@ -428,7 +428,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___closures(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_icode.nit:97 */
+  /* compiling/compiling_icode.nit:97 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____closures(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -451,7 +451,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___clostypes(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_icode.nit:100 */
+  /* compiling/compiling_icode.nit:100 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____clostypes(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -474,7 +474,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___local_labels(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_icode.nit:103 */
+  /* compiling/compiling_icode.nit:103 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____local_labels(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -498,7 +498,7 @@ void compiling___compiling_icode___I2CCompilerVisitor___local_labels__eq(val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:103 */
+  /* compiling/compiling_icode.nit:103 */
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____local_labels(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -516,7 +516,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___escaped_labels(val_t p0
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_icode.nit:106 */
+  /* compiling/compiling_icode.nit:106 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -540,7 +540,7 @@ void compiling___compiling_icode___I2CCompilerVisitor___escaped_labels__eq(val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:106 */
+  /* compiling/compiling_icode.nit:106 */
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -563,7 +563,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___register_escape_label(v
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:113 */
+  /* compiling/compiling_icode.nit:113 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -572,7 +572,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___register_escape_label(v
   fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:114 */
+    /* compiling/compiling_icode.nit:114 */
     REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -583,7 +583,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___register_escape_label(v
     REGB0 = fra.me.REG[2];
     goto label1;
   } else {
-    /* ./compiling//compiling_icode.nit:116 */
+    /* compiling/compiling_icode.nit:116 */
     REGB1 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -592,9 +592,9 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___register_escape_label(v
     fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
     REGB1 = CALL_standard___collection___abstract_collection___MapRead___length(fra.me.REG[2])(fra.me.REG[2]);
     REGB2 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-    /* ./compiling//compiling_icode.nit:117 */
+    /* compiling/compiling_icode.nit:117 */
     REGB1 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -602,7 +602,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___register_escape_label(v
     }
     fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB2);
-    /* ./compiling//compiling_icode.nit:118 */
+    /* compiling/compiling_icode.nit:118 */
     REGB0 = REGB2;
     goto label1;
   }
@@ -629,7 +629,7 @@ void compiling___compiling_icode___I2CCompilerVisitor___add_label(val_t p0, val_
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:125 */
+  /* compiling/compiling_icode.nit:125 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -638,7 +638,7 @@ void compiling___compiling_icode___I2CCompilerVisitor___add_label(val_t p0, val_
   fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:126 */
+    /* compiling/compiling_icode.nit:126 */
     REGB0 = TAG_Int(3);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -698,13 +698,13 @@ void compiling___compiling_icode___I2CCompilerVisitor___add_goto(val_t p0, val_t
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:130 */
+  /* compiling/compiling_icode.nit:130 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./compiling//compiling_icode.nit:133 */
+  /* compiling/compiling_icode.nit:133 */
   fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:134 */
+    /* compiling/compiling_icode.nit:134 */
     REGB0 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -730,15 +730,15 @@ void compiling___compiling_icode___I2CCompilerVisitor___add_goto(val_t p0, val_t
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   } else {
-    /* ./compiling//compiling_icode.nit:136 */
+    /* compiling/compiling_icode.nit:136 */
     REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[2])(fra.me.REG[2]);
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 136);
     }
-    /* ./compiling//compiling_icode.nit:137 */
+    /* compiling/compiling_icode.nit:137 */
     REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___register_escape_label(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-    /* ./compiling//compiling_icode.nit:138 */
+    /* compiling/compiling_icode.nit:138 */
     REGB1 = TAG_Int(3);
     fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
     if (!once_value_3) {
@@ -763,7 +763,7 @@ void compiling___compiling_icode___I2CCompilerVisitor___add_goto(val_t p0, val_t
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
     fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
     CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-    /* ./compiling//compiling_icode.nit:139 */
+    /* compiling/compiling_icode.nit:139 */
     REGB0 = TAG_Int(3);
     fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_5) {
@@ -811,7 +811,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___marks_to_seq(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_icode.nit:143 */
+  /* compiling/compiling_icode.nit:143 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____marks_to_seq(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -834,7 +834,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___closure(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_icode.nit:146 */
+  /* compiling/compiling_icode.nit:146 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____closure(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -858,7 +858,7 @@ void compiling___compiling_icode___I2CCompilerVisitor___closure__eq(val_t p0, va
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./compiling//compiling_icode.nit:146 */
+  /* compiling/compiling_icode.nit:146 */
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____closure(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -876,7 +876,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___visitor(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_icode.nit:149 */
+  /* compiling/compiling_icode.nit:149 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____visitor(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -899,7 +899,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___iroutine(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_icode.nit:152 */
+  /* compiling/compiling_icode.nit:152 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____iroutine(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -921,7 +921,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___return_label(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_icode.nit:155 */
+  /* compiling/compiling_icode.nit:155 */
   fra.me.REG[0] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____return_label(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -940,7 +940,7 @@ void compiling___compiling_icode___I2CCompilerVisitor___return_label__eq(val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:155 */
+  /* compiling/compiling_icode.nit:155 */
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____return_label(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -959,7 +959,7 @@ void compiling___compiling_icode___I2CCompilerVisitor___add_decl(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:160 */
+  /* compiling/compiling_icode.nit:160 */
   fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
@@ -985,12 +985,12 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___new_instr(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_icode.nit:167 */
+  /* compiling/compiling_icode.nit:167 */
   fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:168 */
+  /* compiling/compiling_icode.nit:168 */
   fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____next_location(fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:169 */
+  /* compiling/compiling_icode.nit:169 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1005,10 +1005,10 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___new_instr(val_t p0){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:170 */
+    /* compiling/compiling_icode.nit:170 */
     fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
     CALL_compiling___compiling_base___CompilerVisitor___add_indent(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-    /* ./compiling//compiling_icode.nit:171 */
+    /* compiling/compiling_icode.nit:171 */
     if (!once_value_1) {
       fra.me.REG[3] = BOX_NativeString("/* ");
       REGB0 = TAG_Int(3);
@@ -1018,7 +1018,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___new_instr(val_t p0){
     } else fra.me.REG[3] = once_value_1;
     fra.me.REG[3] = fra.me.REG[3];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-    /* ./compiling//compiling_icode.nit:172 */
+    /* compiling/compiling_icode.nit:172 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 172);
@@ -1030,7 +1030,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___new_instr(val_t p0){
     }
     fra.me.REG[3] = CALL_location___SourceFile___filename(fra.me.REG[3])(fra.me.REG[3]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-    /* ./compiling//compiling_icode.nit:173 */
+    /* compiling/compiling_icode.nit:173 */
     if (!once_value_2) {
       fra.me.REG[3] = BOX_NativeString(":");
       REGB0 = TAG_Int(1);
@@ -1040,7 +1040,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___new_instr(val_t p0){
     } else fra.me.REG[3] = once_value_2;
     fra.me.REG[3] = fra.me.REG[3];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-    /* ./compiling//compiling_icode.nit:174 */
+    /* compiling/compiling_icode.nit:174 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 174);
@@ -1048,7 +1048,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___new_instr(val_t p0){
     REGB0 = CALL_location___Location___line_start(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[2] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-    /* ./compiling//compiling_icode.nit:175 */
+    /* compiling/compiling_icode.nit:175 */
     if (!once_value_3) {
       fra.me.REG[2] = BOX_NativeString(" */\n");
       REGB0 = TAG_Int(4);
@@ -1058,13 +1058,13 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___new_instr(val_t p0){
     } else fra.me.REG[2] = once_value_3;
     fra.me.REG[2] = fra.me.REG[2];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-    /* ./compiling//compiling_icode.nit:176 */
+    /* compiling/compiling_icode.nit:176 */
     ATTR_compiling___compiling_icode___I2CCompilerVisitor____next_location(fra.me.REG[0]) = NIT_NULL;
   }
-  /* ./compiling//compiling_icode.nit:178 */
+  /* compiling/compiling_icode.nit:178 */
   fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_base___CompilerVisitor___add_indent(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:179 */
+  /* compiling/compiling_icode.nit:179 */
   goto label4;
   label4: while(0);
   stack_frame_head = fra.me.prev;
@@ -1086,7 +1086,7 @@ void compiling___compiling_icode___I2CCompilerVisitor___add_instr(val_t p0, val_
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:184 */
+  /* compiling/compiling_icode.nit:184 */
   fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (!once_value_1) {
@@ -1113,7 +1113,7 @@ void compiling___compiling_icode___I2CCompilerVisitor___indent(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_icode.nit:189 */
+  /* compiling/compiling_icode.nit:189 */
   fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1131,7 +1131,7 @@ void compiling___compiling_icode___I2CCompilerVisitor___unindent(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_icode.nit:194 */
+  /* compiling/compiling_icode.nit:194 */
   fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1153,7 +1153,7 @@ void compiling___compiling_icode___I2CCompilerVisitor___add_assignment(val_t p0,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_icode.nit:199 */
+  /* compiling/compiling_icode.nit:199 */
   fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_base___CompilerVisitor___add_assignment(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -1179,9 +1179,9 @@ void compiling___compiling_icode___I2CCompilerVisitor___add_location(val_t p0, v
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:209 */
+  /* compiling/compiling_icode.nit:209 */
   fra.me.REG[2] = ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_location(fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:210 */
+  /* compiling/compiling_icode.nit:210 */
   REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1214,9 +1214,9 @@ void compiling___compiling_icode___I2CCompilerVisitor___add_location(val_t p0, v
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./compiling//compiling_icode.nit:211 */
+  /* compiling/compiling_icode.nit:211 */
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_location(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_icode.nit:212 */
+  /* compiling/compiling_icode.nit:212 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1271,9 +1271,9 @@ void compiling___compiling_icode___I2CCompilerVisitor___add_location(val_t p0, v
     REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
     if (UNTAG_Bool(REGB2)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB1 = TAG_Bool((REGB0)==(REGB1));
-      /* ./compiling//compiling_icode.nit:212 */
+      /* compiling/compiling_icode.nit:212 */
       REGB2 = REGB1;
     }
   } else {
@@ -1281,10 +1281,10 @@ void compiling___compiling_icode___I2CCompilerVisitor___add_location(val_t p0, v
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./compiling//compiling_icode.nit:213 */
+    /* compiling/compiling_icode.nit:213 */
     goto label1;
   } else {
-    /* ./compiling//compiling_icode.nit:215 */
+    /* compiling/compiling_icode.nit:215 */
     ATTR_compiling___compiling_icode___I2CCompilerVisitor____next_location(fra.me.REG[0]) = fra.me.REG[1];
   }
   label1: while(0);
@@ -1304,7 +1304,7 @@ val_t compiling___compiling_icode___I2CCompilerVisitor___basecname(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_icode.nit:219 */
+  /* compiling/compiling_icode.nit:219 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_icode___I2CCompilerVisitor____basecname(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1334,11 +1334,11 @@ void compiling___compiling_icode___I2CCompilerVisitor___init(val_t p0, val_t p1,
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./compiling//compiling_icode.nit:224 */
+  /* compiling/compiling_icode.nit:224 */
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____visitor(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_icode.nit:225 */
+  /* compiling/compiling_icode.nit:225 */
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____iroutine(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./compiling//compiling_icode.nit:226 */
+  /* compiling/compiling_icode.nit:226 */
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____basecname(fra.me.REG[0]) = fra.me.REG[3];
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -1418,11 +1418,11 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
-  /* ./compiling//compiling_icode.nit:237 */
+  /* compiling/compiling_icode.nit:237 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./compiling//compiling_icode.nit:238 */
+  /* compiling/compiling_icode.nit:238 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./compiling//compiling_icode.nit:239 */
+  /* compiling/compiling_icode.nit:239 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1439,24 +1439,24 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
   if (UNTAG_Bool(REGB0)) {
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
   }
-  /* ./compiling//compiling_icode.nit:240 */
+  /* compiling/compiling_icode.nit:240 */
   REGB0 = TAG_Int(0);
   fra.me.REG[4] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./compiling//compiling_icode.nit:240 */
+      /* compiling/compiling_icode.nit:240 */
       REGB2 = REGB0;
-      /* ./compiling//compiling_icode.nit:241 */
+      /* compiling/compiling_icode.nit:241 */
       REGB3 = TAG_Int(3);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
       if (!once_value_1) {
@@ -1481,7 +1481,7 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
       fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
-      /* ./compiling//compiling_icode.nit:242 */
+      /* compiling/compiling_icode.nit:242 */
       REGB3 = TAG_Int(3);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
       if (!once_value_3) {
@@ -1506,19 +1506,19 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
       fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label5;
     }
   }
   label5: while(0);
-  /* ./compiling//compiling_icode.nit:244 */
+  /* compiling/compiling_icode.nit:244 */
   fra.me.REG[4] = CALL_icode___icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1534,7 +1534,7 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:245 */
+    /* compiling/compiling_icode.nit:245 */
     if (!once_value_6) {
       fra.me.REG[4] = BOX_NativeString("struct stack_frame_t *closctx_param");
       REGB0 = TAG_Int(35);
@@ -1544,7 +1544,7 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
     } else fra.me.REG[4] = once_value_6;
     fra.me.REG[4] = fra.me.REG[4];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
-    /* ./compiling//compiling_icode.nit:246 */
+    /* compiling/compiling_icode.nit:246 */
     REGB0 = TAG_Int(0);
     fra.me.REG[4] = CALL_icode___icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
     REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
@@ -1552,20 +1552,20 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
       nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 246);
     }
     REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     while(1) {
       REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       if (UNTAG_Bool(REGB2)) {
-        /* ./compiling//compiling_icode.nit:246 */
+        /* compiling/compiling_icode.nit:246 */
         REGB2 = REGB0;
-        /* ./compiling//compiling_icode.nit:247 */
+        /* compiling/compiling_icode.nit:247 */
         REGB3 = TAG_Int(5);
         fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
         if (!once_value_7) {
@@ -1599,7 +1599,7 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
         fra.me.REG[8] = fra.me.REG[8];
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
         fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-        /* ./compiling//compiling_icode.nit:248 */
+        /* compiling/compiling_icode.nit:248 */
         fra.me.REG[8] = CALL_icode___icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
         REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
@@ -1612,9 +1612,9 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
         }
         fra.me.REG[8] = CALL_icode___icode_base___IClosureDecl___closure(fra.me.REG[8])(fra.me.REG[8]);
         fra.me.REG[8] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[8])(fra.me.REG[8]);
-        /* ./compiling//compiling_icode.nit:249 */
+        /* compiling/compiling_icode.nit:249 */
         fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
-        /* ./compiling//compiling_icode.nit:250 */
+        /* compiling/compiling_icode.nit:250 */
         if (!once_value_10) {
           fra.me.REG[10] = BOX_NativeString("struct stack_frame_t *");
           REGB3 = TAG_Int(22);
@@ -1624,21 +1624,21 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
         } else fra.me.REG[10] = once_value_10;
         fra.me.REG[10] = fra.me.REG[10];
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
-        /* ./compiling//compiling_icode.nit:251 */
+        /* compiling/compiling_icode.nit:251 */
         REGB3 = TAG_Int(0);
         REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]);
-        /* ./../lib/standard//kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:352 */
         while(1) {
           REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
           if (UNTAG_Bool(REGB5)) {
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
-          /* ./../lib/standard//kernel.nit:352 */
+          /* ../lib/standard/kernel.nit:352 */
           if (UNTAG_Bool(REGB5)) {
-            /* ./compiling//compiling_icode.nit:252 */
+            /* compiling/compiling_icode.nit:252 */
             if (!once_value_11) {
               fra.me.REG[10] = BOX_NativeString("val_t");
               REGB5 = TAG_Int(5);
@@ -1648,19 +1648,19 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
             } else fra.me.REG[10] = once_value_11;
             fra.me.REG[10] = fra.me.REG[10];
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
-            /* ./../lib/standard//kernel.nit:354 */
+            /* ../lib/standard/kernel.nit:354 */
             REGB5 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
-            /* ./../lib/standard//kernel.nit:354 */
+            /* ../lib/standard/kernel.nit:354 */
             REGB3 = REGB5;
           } else {
-            /* ./../lib/standard//kernel.nit:352 */
+            /* ../lib/standard/kernel.nit:352 */
             goto label12;
           }
         }
         label12: while(0);
-        /* ./compiling//compiling_icode.nit:254 */
+        /* compiling/compiling_icode.nit:254 */
         if (!once_value_13) {
           fra.me.REG[10] = BOX_NativeString("void");
           REGB3 = TAG_Int(4);
@@ -1669,7 +1669,7 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
           register_static_object(&once_value_13);
         } else fra.me.REG[10] = once_value_13;
         fra.me.REG[10] = fra.me.REG[10];
-        /* ./compiling//compiling_icode.nit:255 */
+        /* compiling/compiling_icode.nit:255 */
         fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[8])(fra.me.REG[8]);
         REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
@@ -1695,7 +1695,7 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
           fra.me.REG[8] = fra.me.REG[8];
           fra.me.REG[10] = fra.me.REG[8];
         }
-        /* ./compiling//compiling_icode.nit:256 */
+        /* compiling/compiling_icode.nit:256 */
         REGB3 = TAG_Int(7);
         fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
         if (!once_value_15) {
@@ -1748,7 +1748,7 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
         fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
         CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
-        /* ./compiling//compiling_icode.nit:257 */
+        /* compiling/compiling_icode.nit:257 */
         REGB3 = TAG_Int(3);
         fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
         if (!once_value_20) {
@@ -1773,7 +1773,7 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
         fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
-        /* ./compiling//compiling_icode.nit:258 */
+        /* compiling/compiling_icode.nit:258 */
         REGB3 = TAG_Int(3);
         fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
         if (!once_value_22) {
@@ -1798,20 +1798,20 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[4]);
         fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB0 = REGB2;
       } else {
-        /* ./../lib/standard//kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:352 */
         goto label24;
       }
     }
     label24: while(0);
   }
-  /* ./compiling//compiling_icode.nit:261 */
+  /* compiling/compiling_icode.nit:261 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1828,7 +1828,7 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
   if (UNTAG_Bool(REGB0)) {
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
   }
-  /* ./compiling//compiling_icode.nit:262 */
+  /* compiling/compiling_icode.nit:262 */
   if (!once_value_25) {
     fra.me.REG[5] = BOX_NativeString("void");
     REGB0 = TAG_Int(4);
@@ -1837,7 +1837,7 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
     register_static_object(&once_value_25);
   } else fra.me.REG[5] = once_value_25;
   fra.me.REG[5] = fra.me.REG[5];
-  /* ./compiling//compiling_icode.nit:263 */
+  /* compiling/compiling_icode.nit:263 */
   fra.me.REG[0] = CALL_icode___icode_base___IRoutine___result(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1863,10 +1863,10 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
     fra.me.REG[0] = fra.me.REG[0];
     fra.me.REG[5] = fra.me.REG[0];
   }
-  /* ./compiling//compiling_icode.nit:265 */
+  /* compiling/compiling_icode.nit:265 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[7])(fra.me.REG[7]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:266 */
+    /* compiling/compiling_icode.nit:266 */
     if (!once_value_27) {
       fra.me.REG[0] = BOX_NativeString("void");
       REGB0 = TAG_Int(4);
@@ -1876,7 +1876,7 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
     } else fra.me.REG[0] = once_value_27;
     fra.me.REG[0] = fra.me.REG[0];
   } else {
-    /* ./compiling//compiling_icode.nit:268 */
+    /* compiling/compiling_icode.nit:268 */
     if (!once_value_28) {
       fra.me.REG[8] = BOX_NativeString(", ");
       REGB0 = TAG_Int(2);
@@ -1888,7 +1888,7 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
     fra.me.REG[8] = CALL_standard___string___Collection___join(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
     fra.me.REG[0] = fra.me.REG[8];
   }
-  /* ./compiling//compiling_icode.nit:270 */
+  /* compiling/compiling_icode.nit:270 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1937,7 +1937,7 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
     fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
     CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
   }
-  /* ./compiling//compiling_icode.nit:271 */
+  /* compiling/compiling_icode.nit:271 */
   REGB0 = TAG_Int(7);
   fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_32) {
@@ -1981,7 +1981,7 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
   fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
   CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
-  /* ./compiling//compiling_icode.nit:272 */
+  /* compiling/compiling_icode.nit:272 */
   REGB0 = TAG_Int(7);
   fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_36) {
@@ -2025,7 +2025,7 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
   fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
   CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
-  /* ./compiling//compiling_icode.nit:273 */
+  /* compiling/compiling_icode.nit:273 */
   REGB0 = TAG_Int(7);
   fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_40) {
@@ -2069,9 +2069,9 @@ val_t compiling___compiling_icode___IRoutine___compile_signature_to_c(val_t p0,
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
   fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
-  /* ./compiling//compiling_icode.nit:274 */
+  /* compiling/compiling_icode.nit:274 */
   CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:275 */
+  /* compiling/compiling_icode.nit:275 */
   goto label44;
   label44: while(0);
   stack_frame_head = fra.me.prev;
@@ -2141,9 +2141,9 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_icode.nit:282 */
+  /* compiling/compiling_icode.nit:282 */
   REGB0 = TAG_Int(0);
-  /* ./compiling//compiling_icode.nit:283 */
+  /* compiling/compiling_icode.nit:283 */
   fra.me.REG[3] = CALL_icode___icode_base___IRoutine___location(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -2159,7 +2159,7 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
   }
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
   if (UNTAG_Bool(REGB1)) {
-    /* ./compiling//compiling_icode.nit:284 */
+    /* compiling/compiling_icode.nit:284 */
     fra.me.REG[3] = CALL_icode___icode_base___IRoutine___location(fra.me.REG[0])(fra.me.REG[0]);
     REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -2168,7 +2168,7 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
     REGB1 = CALL_location___Location___line_start(fra.me.REG[3])(fra.me.REG[3]);
     REGB0 = REGB1;
   }
-  /* ./compiling//compiling_icode.nit:287 */
+  /* compiling/compiling_icode.nit:287 */
   REGB1 = CALL_analysis___allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
   REGB2 = TAG_Int(1);
   REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
@@ -2176,11 +2176,11 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
-  /* ./compiling//compiling_icode.nit:287 */
+  /* compiling/compiling_icode.nit:287 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./compiling//compiling_icode.nit:288 */
+    /* compiling/compiling_icode.nit:288 */
     REGB2 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
     if (!once_value_1) {
@@ -2194,9 +2194,9 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     REGB2 = CALL_analysis___allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
     REGB1 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:237 */
+    /* ../lib/standard/kernel.nit:237 */
     REGB1 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB1));
-    /* ./compiling//compiling_icode.nit:288 */
+    /* compiling/compiling_icode.nit:288 */
     fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB1)(REGB1);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     if (!once_value_2) {
@@ -2211,7 +2211,7 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   } else {
-    /* ./compiling//compiling_icode.nit:290 */
+    /* compiling/compiling_icode.nit:290 */
     if (!once_value_3) {
       fra.me.REG[3] = BOX_NativeString("struct {struct stack_frame_t me;} fra;");
       REGB1 = TAG_Int(38);
@@ -2222,7 +2222,7 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
     fra.me.REG[3] = fra.me.REG[3];
     CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./compiling//compiling_icode.nit:292 */
+  /* compiling/compiling_icode.nit:292 */
   if (!once_value_4) {
     fra.me.REG[3] = BOX_NativeString("fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;");
     REGB1 = TAG_Int(59);
@@ -2232,7 +2232,7 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
   } else fra.me.REG[3] = once_value_4;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:293 */
+  /* compiling/compiling_icode.nit:293 */
   REGB1 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
   if (!once_value_5) {
@@ -2259,7 +2259,7 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:294 */
+  /* compiling/compiling_icode.nit:294 */
   REGB1 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
   if (!once_value_7) {
@@ -2284,7 +2284,7 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:295 */
+  /* compiling/compiling_icode.nit:295 */
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_9) {
@@ -2309,7 +2309,7 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:296 */
+  /* compiling/compiling_icode.nit:296 */
   if (!once_value_11) {
     fra.me.REG[3] = BOX_NativeString("fra.me.has_broke = 0;");
     REGB0 = TAG_Int(21);
@@ -2319,7 +2319,7 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
   } else fra.me.REG[3] = once_value_11;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:297 */
+  /* compiling/compiling_icode.nit:297 */
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_12) {
@@ -2345,7 +2345,7 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:298 */
+  /* compiling/compiling_icode.nit:298 */
   if (!once_value_14) {
     fra.me.REG[3] = BOX_NativeString("fra.me.nitni_local_ref_head = NULL;");
     REGB0 = TAG_Int(35);
@@ -2355,23 +2355,23 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
   } else fra.me.REG[3] = once_value_14;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:301 */
+  /* compiling/compiling_icode.nit:301 */
   REGB0 = TAG_Int(0);
   REGB1 = CALL_analysis___allocate_iregister_slots___IRoutine___std_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./compiling//compiling_icode.nit:301 */
+      /* compiling/compiling_icode.nit:301 */
       REGB2 = REGB0;
-      /* ./compiling//compiling_icode.nit:302 */
+      /* compiling/compiling_icode.nit:302 */
       REGB3 = TAG_Int(3);
       fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
       if (!once_value_15) {
@@ -2396,35 +2396,35 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
       fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
       CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label17;
     }
   }
   label17: while(0);
-  /* ./compiling//compiling_icode.nit:304 */
+  /* compiling/compiling_icode.nit:304 */
   REGB0 = TAG_Int(0);
   REGB1 = CALL_analysis___allocate_iregister_slots___IRoutine___tag_slots_nb(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./compiling//compiling_icode.nit:304 */
+      /* compiling/compiling_icode.nit:304 */
       REGB2 = REGB0;
-      /* ./compiling//compiling_icode.nit:305 */
+      /* compiling/compiling_icode.nit:305 */
       REGB3 = TAG_Int(3);
       fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
       if (!once_value_18) {
@@ -2449,21 +2449,21 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
       fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
       CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label20;
     }
   }
   label20: while(0);
-  /* ./compiling//compiling_icode.nit:307 */
+  /* compiling/compiling_icode.nit:307 */
   fra.me.REG[3] = CALL_icode___icode_base___IRoutine___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:308 */
+  /* compiling/compiling_icode.nit:308 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2478,7 +2478,7 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:309 */
+    /* compiling/compiling_icode.nit:309 */
     REGB0 = TAG_Int(3);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_21) {
@@ -2508,7 +2508,7 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-    /* ./compiling//compiling_icode.nit:310 */
+    /* compiling/compiling_icode.nit:310 */
     if (!once_value_23) {
       fra.me.REG[4] = BOX_NativeString("fra.me.closure_ctx = closctx_param;");
       REGB0 = TAG_Int(35);
@@ -2518,7 +2518,7 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
     } else fra.me.REG[4] = once_value_23;
     fra.me.REG[4] = fra.me.REG[4];
     CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-    /* ./compiling//compiling_icode.nit:311 */
+    /* compiling/compiling_icode.nit:311 */
     if (!once_value_24) {
       fra.me.REG[4] = BOX_NativeString("fra.me.closure_funs = CREG;");
       REGB0 = TAG_Int(27);
@@ -2529,13 +2529,13 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
     fra.me.REG[4] = fra.me.REG[4];
     CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
   }
-  /* ./compiling//compiling_icode.nit:313 */
+  /* compiling/compiling_icode.nit:313 */
   REGB0 = TAG_Int(0);
   fra.me.REG[4] = REGB0;
-  /* ./compiling//compiling_icode.nit:314 */
+  /* compiling/compiling_icode.nit:314 */
   fra.me.REG[5] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_compiling___compiling_icode___IRoutine___compile_inside_to_c_25));
-  /* ./compiling//compiling_icode.nit:318 */
+  /* compiling/compiling_icode.nit:318 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2550,33 +2550,33 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:319 */
+    /* compiling/compiling_icode.nit:319 */
     REGB0 = TAG_Int(0);
     REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 319);
     }
     REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     while(1) {
       REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       if (UNTAG_Bool(REGB2)) {
-        /* ./compiling//compiling_icode.nit:319 */
+        /* compiling/compiling_icode.nit:319 */
         REGB2 = REGB0;
-        /* ./compiling//compiling_icode.nit:320 */
+        /* compiling/compiling_icode.nit:320 */
         REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
           nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 320);
         }
         fra.me.REG[4] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
-        /* ./compiling//compiling_icode.nit:321 */
+        /* compiling/compiling_icode.nit:321 */
         REGB3 = TAG_Int(5);
         fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
         if (!once_value_27) {
@@ -2601,20 +2601,20 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
         fra.me.REG[6] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]);
         REGB3 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[6])(fra.me.REG[6]);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB3 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB2));
-        /* ./../lib/standard//collection//array.nit:278 */
+        /* ../lib/standard/collection/array.nit:278 */
         fra.me.REG[6] = fra.me.REG[2];
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB4 = TAG_Int(0);
         REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB5)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB4)) {
           REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
           if (UNTAG_Bool(REGB4)) {
@@ -2627,29 +2627,29 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
         } else {
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB5 = TAG_Bool(false);
           REGB4 = REGB5;
         }
         if (UNTAG_Bool(REGB4)) {
         } else {
-          nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+          nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
         }
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
         REGB4 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
         if (UNTAG_Bool(REGB4)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB3)];
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         goto label29;
         label29: while(0);
-        /* ./compiling//compiling_icode.nit:321 */
+        /* compiling/compiling_icode.nit:321 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
         if (!once_value_30) {
           fra.me.REG[6] = BOX_NativeString(";");
@@ -2662,16 +2662,16 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
         fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
         CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-        /* ./compiling//compiling_icode.nit:322 */
+        /* compiling/compiling_icode.nit:322 */
         fra.me.REG[5] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[6] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
         CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
-        /* ./compiling//compiling_icode.nit:323 */
+        /* compiling/compiling_icode.nit:323 */
         fra.me.REG[6] = CALL_icode___icode_base___IClosureDecl___closure(fra.me.REG[4])(fra.me.REG[4]);
         fra.me.REG[6] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[6])(fra.me.REG[6]);
-        /* ./compiling//compiling_icode.nit:324 */
+        /* compiling/compiling_icode.nit:324 */
         fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-        /* ./compiling//compiling_icode.nit:325 */
+        /* compiling/compiling_icode.nit:325 */
         if (!once_value_31) {
           fra.me.REG[7] = BOX_NativeString("struct stack_frame_t *");
           REGB2 = TAG_Int(22);
@@ -2681,21 +2681,21 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
         } else fra.me.REG[7] = once_value_31;
         fra.me.REG[7] = fra.me.REG[7];
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
-        /* ./compiling//compiling_icode.nit:326 */
+        /* compiling/compiling_icode.nit:326 */
         REGB2 = TAG_Int(0);
         REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]);
-        /* ./../lib/standard//kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:352 */
         while(1) {
           REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
           if (UNTAG_Bool(REGB4)) {
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB4 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
-          /* ./../lib/standard//kernel.nit:352 */
+          /* ../lib/standard/kernel.nit:352 */
           if (UNTAG_Bool(REGB4)) {
-            /* ./compiling//compiling_icode.nit:327 */
+            /* compiling/compiling_icode.nit:327 */
             if (!once_value_32) {
               fra.me.REG[7] = BOX_NativeString("val_t");
               REGB4 = TAG_Int(5);
@@ -2704,21 +2704,21 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
               register_static_object(&once_value_32);
             } else fra.me.REG[7] = once_value_32;
             fra.me.REG[7] = fra.me.REG[7];
-            /* ./compiling//compiling_icode.nit:328 */
+            /* compiling/compiling_icode.nit:328 */
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
-            /* ./../lib/standard//kernel.nit:354 */
+            /* ../lib/standard/kernel.nit:354 */
             REGB4 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB4 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
-            /* ./../lib/standard//kernel.nit:354 */
+            /* ../lib/standard/kernel.nit:354 */
             REGB2 = REGB4;
           } else {
-            /* ./../lib/standard//kernel.nit:352 */
+            /* ../lib/standard/kernel.nit:352 */
             goto label33;
           }
         }
         label33: while(0);
-        /* ./compiling//compiling_icode.nit:330 */
+        /* compiling/compiling_icode.nit:330 */
         if (!once_value_34) {
           fra.me.REG[7] = BOX_NativeString("void");
           REGB2 = TAG_Int(4);
@@ -2727,7 +2727,7 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
           register_static_object(&once_value_34);
         } else fra.me.REG[7] = once_value_34;
         fra.me.REG[7] = fra.me.REG[7];
-        /* ./compiling//compiling_icode.nit:331 */
+        /* compiling/compiling_icode.nit:331 */
         fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[6])(fra.me.REG[6]);
         REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
@@ -2753,7 +2753,7 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
           fra.me.REG[6] = fra.me.REG[6];
           fra.me.REG[7] = fra.me.REG[6];
         }
-        /* ./compiling//compiling_icode.nit:332 */
+        /* compiling/compiling_icode.nit:332 */
         fra.me.REG[6] = CALL_compiling___compiling_icode___I2CCompilerVisitor___clostypes(fra.me.REG[1])(fra.me.REG[1]);
         REGB2 = TAG_Int(5);
         fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
@@ -2797,20 +2797,20 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
         fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
         CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4], fra.me.REG[8]);
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB0 = REGB2;
       } else {
-        /* ./../lib/standard//kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:352 */
         goto label40;
       }
     }
     label40: while(0);
   }
-  /* ./compiling//compiling_icode.nit:335 */
+  /* compiling/compiling_icode.nit:335 */
   if (!once_value_41) {
     fra.me.REG[2] = BOX_NativeString("val_t tmp;");
     REGB0 = TAG_Int(10);
@@ -2820,15 +2820,15 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
   } else fra.me.REG[2] = once_value_41;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:338 */
+  /* compiling/compiling_icode.nit:338 */
   fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___return_label(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:339 */
+  /* compiling/compiling_icode.nit:339 */
   fra.me.REG[3] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___return_label__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:342 */
+  /* compiling/compiling_icode.nit:342 */
   fra.me.REG[3] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:344 */
+  /* compiling/compiling_icode.nit:344 */
   if (!once_value_42) {
     fra.me.REG[3] = BOX_NativeString("stack_frame_head = fra.me.prev;");
     REGB0 = TAG_Int(31);
@@ -2838,11 +2838,11 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
   } else fra.me.REG[3] = once_value_42;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:345 */
+  /* compiling/compiling_icode.nit:345 */
   CALL_compiling___compiling_icode___I2CCompilerVisitor___return_label__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:346 */
+  /* compiling/compiling_icode.nit:346 */
   fra.me.REG[0] = CALL_icode___icode_base___IRoutine___result(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:347 */
+  /* compiling/compiling_icode.nit:347 */
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2857,11 +2857,11 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:348 */
+    /* compiling/compiling_icode.nit:348 */
     fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
     goto label43;
   } else {
-    /* ./compiling//compiling_icode.nit:350 */
+    /* compiling/compiling_icode.nit:350 */
     fra.me.REG[0] = NIT_NULL;
     goto label43;
   }
@@ -2889,7 +2889,7 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./compiling//compiling_icode.nit:315 */
+    /* compiling/compiling_icode.nit:315 */
     fra.me.REG[1] = CALL_analysis___allocate_iregister_slots___IRegister___slot_index(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -2899,28 +2899,28 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
         REGB1 = TAG_Bool(false);
         REGB0 = REGB1;
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB1 = TAG_Bool((fra.me.REG[1])==(NIT_NULL));
-        /* ./compiling//compiling_icode.nit:315 */
+        /* compiling/compiling_icode.nit:315 */
         REGB0 = REGB1;
       }
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
       fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       fra.me.REG[1] = closctx->REG[2];
       REGB0 = closctx->REG[4];
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB1 = TAG_Int(0);
       REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB1)) {
         REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
@@ -2933,36 +2933,36 @@ val_t compiling___compiling_icode___IRoutine___compile_inside_to_c(val_t p0, val
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB2 = TAG_Bool(false);
         REGB1 = REGB2;
       }
       if (UNTAG_Bool(REGB1)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
       REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label26;
       label26: while(0);
-      /* ./compiling//compiling_icode.nit:315 */
+      /* compiling/compiling_icode.nit:315 */
       CALL_compiling___compiling_icode___I2CCompilerVisitor___add_assignment(closctx->REG[1])(closctx->REG[1], fra.me.REG[0], fra.me.REG[1]);
     }
-    /* ./compiling//compiling_icode.nit:316 */
+    /* compiling/compiling_icode.nit:316 */
     REGB0 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB0 = TAG_Int(UNTAG_Int(closctx->REG[4])+UNTAG_Int(REGB0));
-    /* ./compiling//compiling_icode.nit:316 */
+    /* compiling/compiling_icode.nit:316 */
     closctx->REG[4] = REGB0;
     stack_frame_head = fra.me.prev;
     return;
@@ -2985,9 +2985,9 @@ val_t compiling___compiling_icode___IRoutine___compile_to_c(val_t p0, val_t p1,
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./compiling//compiling_icode.nit:358 */
+  /* compiling/compiling_icode.nit:358 */
   fra.me.REG[2] = NEW_I2CCompilerVisitor_compiling___compiling_icode___I2CCompilerVisitor___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:359 */
+  /* compiling/compiling_icode.nit:359 */
   fra.me.REG[3] = CALL_compiling___compiling_icode___IRoutine___compile_inside_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]);
   goto label1;
   label1: while(0);
@@ -3004,7 +3004,7 @@ void compiling___compiling_icode___ICode___compile_to_c(val_t p0, val_t p1){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./compiling//compiling_icode.nit:364 */
+  /* compiling/compiling_icode.nit:364 */
   nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_icode, 364);
   stack_frame_head = fra.me.prev;
   return;
@@ -3023,9 +3023,9 @@ val_t compiling___compiling_icode___ICode___need_result(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_icode.nit:370 */
+  /* compiling/compiling_icode.nit:370 */
   fra.me.REG[0] = CALL_icode___icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:371 */
+  /* compiling/compiling_icode.nit:371 */
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3053,9 +3053,9 @@ val_t compiling___compiling_icode___ICode___need_result(val_t p0){
         REGB1 = TAG_Bool(false);
         REGB0 = REGB1;
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB1 = TAG_Bool((fra.me.REG[0])==(NIT_NULL));
-        /* ./compiling//compiling_icode.nit:371 */
+        /* compiling/compiling_icode.nit:371 */
         REGB0 = REGB1;
       }
     }
@@ -3092,9 +3092,9 @@ void compiling___compiling_icode___ICode___store_result(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_icode.nit:377 */
+  /* compiling/compiling_icode.nit:377 */
   fra.me.REG[3] = CALL_icode___icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:378 */
+  /* compiling/compiling_icode.nit:378 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3122,9 +3122,9 @@ void compiling___compiling_icode___ICode___store_result(val_t p0, val_t p1, val_
         REGB1 = TAG_Bool(false);
         REGB0 = REGB1;
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB1 = TAG_Bool((fra.me.REG[4])==(NIT_NULL));
-        /* ./compiling//compiling_icode.nit:378 */
+        /* compiling/compiling_icode.nit:378 */
         REGB0 = REGB1;
       }
     }
@@ -3134,7 +3134,7 @@ void compiling___compiling_icode___ICode___store_result(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:379 */
+    /* compiling/compiling_icode.nit:379 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -3152,12 +3152,12 @@ void compiling___compiling_icode___ICode___store_result(val_t p0, val_t p1, val_
     } else {
       nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 379);
     }
-    /* ./compiling//compiling_icode.nit:380 */
+    /* compiling/compiling_icode.nit:380 */
     fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./compiling//compiling_icode.nit:381 */
+    /* compiling/compiling_icode.nit:381 */
     fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-    /* ./compiling//compiling_icode.nit:382 */
+    /* compiling/compiling_icode.nit:382 */
     if (!once_value_1) {
       fra.me.REG[3] = BOX_NativeString(" = ");
       REGB0 = TAG_Int(3);
@@ -3167,9 +3167,9 @@ void compiling___compiling_icode___ICode___store_result(val_t p0, val_t p1, val_
     } else fra.me.REG[3] = once_value_1;
     fra.me.REG[3] = fra.me.REG[3];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-    /* ./compiling//compiling_icode.nit:383 */
+    /* compiling/compiling_icode.nit:383 */
     CALL_compiling___compiling_writer___Writer___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-    /* ./compiling//compiling_icode.nit:384 */
+    /* compiling/compiling_icode.nit:384 */
     if (!once_value_2) {
       fra.me.REG[3] = BOX_NativeString(";\n");
       REGB0 = TAG_Int(2);
@@ -3180,7 +3180,7 @@ void compiling___compiling_icode___ICode___store_result(val_t p0, val_t p1, val_
     fra.me.REG[3] = fra.me.REG[3];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   } else {
-    /* ./compiling//compiling_icode.nit:385 */
+    /* compiling/compiling_icode.nit:385 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -3202,11 +3202,11 @@ void compiling___compiling_icode___ICode___store_result(val_t p0, val_t p1, val_
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//compiling_icode.nit:388 */
+      /* compiling/compiling_icode.nit:388 */
       fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//compiling_icode.nit:389 */
+      /* compiling/compiling_icode.nit:389 */
       CALL_compiling___compiling_writer___Writer___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-      /* ./compiling//compiling_icode.nit:390 */
+      /* compiling/compiling_icode.nit:390 */
       if (!once_value_3) {
         fra.me.REG[2] = BOX_NativeString(";\n");
         REGB0 = TAG_Int(2);
@@ -3241,7 +3241,7 @@ val_t compiling___compiling_icode___ICode___new_result(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:398 */
+  /* compiling/compiling_icode.nit:398 */
   REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(true);
@@ -3254,11 +3254,11 @@ val_t compiling___compiling_icode___ICode___new_result(val_t p0, val_t p1){
   } else {
     nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 398);
   }
-  /* ./compiling//compiling_icode.nit:399 */
+  /* compiling/compiling_icode.nit:399 */
   fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:400 */
+  /* compiling/compiling_icode.nit:400 */
   fra.me.REG[0] = CALL_icode___icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:401 */
+  /* compiling/compiling_icode.nit:401 */
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3286,9 +3286,9 @@ val_t compiling___compiling_icode___ICode___new_result(val_t p0, val_t p1){
         REGB1 = TAG_Bool(false);
         REGB0 = REGB1;
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB1 = TAG_Bool((fra.me.REG[3])==(NIT_NULL));
-        /* ./compiling//compiling_icode.nit:401 */
+        /* compiling/compiling_icode.nit:401 */
         REGB0 = REGB1;
       }
     }
@@ -3298,10 +3298,10 @@ val_t compiling___compiling_icode___ICode___new_result(val_t p0, val_t p1){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:402 */
+    /* compiling/compiling_icode.nit:402 */
     fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-    /* ./compiling//compiling_icode.nit:403 */
+    /* compiling/compiling_icode.nit:403 */
     if (!once_value_1) {
       fra.me.REG[0] = BOX_NativeString(" = ");
       REGB0 = TAG_Int(3);
@@ -3312,9 +3312,9 @@ val_t compiling___compiling_icode___ICode___new_result(val_t p0, val_t p1){
     fra.me.REG[0] = fra.me.REG[0];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
   }
-  /* ./compiling//compiling_icode.nit:405 */
+  /* compiling/compiling_icode.nit:405 */
   fra.me.REG[0] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:406 */
+  /* compiling/compiling_icode.nit:406 */
   if (!once_value_2) {
     fra.me.REG[1] = BOX_NativeString(";\n");
     REGB0 = TAG_Int(2);
@@ -3324,7 +3324,7 @@ val_t compiling___compiling_icode___ICode___new_result(val_t p0, val_t p1){
   } else fra.me.REG[1] = once_value_2;
   fra.me.REG[1] = fra.me.REG[1];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:407 */
+  /* compiling/compiling_icode.nit:407 */
   goto label3;
   label3: while(0);
   stack_frame_head = fra.me.prev;
@@ -3348,15 +3348,15 @@ void compiling___compiling_icode___ISeq___compile_to_c(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:414 */
+  /* compiling/compiling_icode.nit:414 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:415 */
+  /* compiling/compiling_icode.nit:415 */
   fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:416 */
+  /* compiling/compiling_icode.nit:416 */
   fra.me.REG[2] = CALL_icode___icode_base___ISeq___iescape_mark(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:417 */
+  /* compiling/compiling_icode.nit:417 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3374,10 +3374,10 @@ void compiling___compiling_icode___ISeq___compile_to_c(val_t p0, val_t p1){
     fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___marks_to_seq(fra.me.REG[1])(fra.me.REG[1]);
     CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
   }
-  /* ./compiling//compiling_icode.nit:418 */
+  /* compiling/compiling_icode.nit:418 */
   fra.me.REG[2] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling___compiling_icode___ISeq___compile_to_c_1));
-  /* ./compiling//compiling_icode.nit:421 */
+  /* compiling/compiling_icode.nit:421 */
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
@@ -3398,7 +3398,7 @@ void compiling___compiling_icode___ISeq___compile_to_c(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./compiling//compiling_icode.nit:419 */
+    /* compiling/compiling_icode.nit:419 */
     CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
     stack_frame_head = fra.me.prev;
     return;
@@ -3424,12 +3424,12 @@ void compiling___compiling_icode___IIf___compile_to_c(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:428 */
+  /* compiling/compiling_icode.nit:428 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:429 */
+  /* compiling/compiling_icode.nit:429 */
   fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:430 */
+  /* compiling/compiling_icode.nit:430 */
   if (!once_value_1) {
     fra.me.REG[3] = BOX_NativeString("if (UNTAG_Bool(");
     REGB0 = TAG_Int(15);
@@ -3439,11 +3439,11 @@ void compiling___compiling_icode___IIf___compile_to_c(val_t p0, val_t p1){
   } else fra.me.REG[3] = once_value_1;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:431 */
+  /* compiling/compiling_icode.nit:431 */
   fra.me.REG[3] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:432 */
+  /* compiling/compiling_icode.nit:432 */
   if (!once_value_2) {
     fra.me.REG[3] = BOX_NativeString(")) {\n");
     REGB0 = TAG_Int(5);
@@ -3453,27 +3453,27 @@ void compiling___compiling_icode___IIf___compile_to_c(val_t p0, val_t p1){
   } else fra.me.REG[3] = once_value_2;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:433 */
+  /* compiling/compiling_icode.nit:433 */
   fra.me.REG[3] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:434 */
+    /* compiling/compiling_icode.nit:434 */
     CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./compiling//compiling_icode.nit:435 */
+    /* compiling/compiling_icode.nit:435 */
     fra.me.REG[3] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[0])(fra.me.REG[0]);
     CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-    /* ./compiling//compiling_icode.nit:436 */
+    /* compiling/compiling_icode.nit:436 */
     CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
   }
-  /* ./compiling//compiling_icode.nit:438 */
+  /* compiling/compiling_icode.nit:438 */
   fra.me.REG[3] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:439 */
+    /* compiling/compiling_icode.nit:439 */
     if (!once_value_3) {
       fra.me.REG[3] = BOX_NativeString("} else {");
       REGB0 = TAG_Int(8);
@@ -3483,15 +3483,15 @@ void compiling___compiling_icode___IIf___compile_to_c(val_t p0, val_t p1){
     } else fra.me.REG[3] = once_value_3;
     fra.me.REG[3] = fra.me.REG[3];
     CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-    /* ./compiling//compiling_icode.nit:440 */
+    /* compiling/compiling_icode.nit:440 */
     CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./compiling//compiling_icode.nit:441 */
+    /* compiling/compiling_icode.nit:441 */
     fra.me.REG[0] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[0])(fra.me.REG[0]);
     CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    /* ./compiling//compiling_icode.nit:442 */
+    /* compiling/compiling_icode.nit:442 */
     CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
   }
-  /* ./compiling//compiling_icode.nit:444 */
+  /* compiling/compiling_icode.nit:444 */
   if (!once_value_4) {
     fra.me.REG[0] = BOX_NativeString("}");
     REGB0 = TAG_Int(1);
@@ -3524,15 +3524,15 @@ void compiling___compiling_icode___ILoop___compile_to_c(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:451 */
+  /* compiling/compiling_icode.nit:451 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:452 */
+  /* compiling/compiling_icode.nit:452 */
   fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:453 */
+  /* compiling/compiling_icode.nit:453 */
   fra.me.REG[2] = CALL_icode___icode_base___ISeq___iescape_mark(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:454 */
+  /* compiling/compiling_icode.nit:454 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3550,7 +3550,7 @@ void compiling___compiling_icode___ILoop___compile_to_c(val_t p0, val_t p1){
     fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___marks_to_seq(fra.me.REG[1])(fra.me.REG[1]);
     CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
   }
-  /* ./compiling//compiling_icode.nit:455 */
+  /* compiling/compiling_icode.nit:455 */
   if (!once_value_1) {
     fra.me.REG[2] = BOX_NativeString("while(1) {");
     REGB0 = TAG_Int(10);
@@ -3560,14 +3560,14 @@ void compiling___compiling_icode___ILoop___compile_to_c(val_t p0, val_t p1){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:456 */
+  /* compiling/compiling_icode.nit:456 */
   CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:457 */
+  /* compiling/compiling_icode.nit:457 */
   fra.me.REG[2] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling___compiling_icode___ILoop___compile_to_c_2));
-  /* ./compiling//compiling_icode.nit:460 */
+  /* compiling/compiling_icode.nit:460 */
   CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:461 */
+  /* compiling/compiling_icode.nit:461 */
   if (!once_value_3) {
     fra.me.REG[2] = BOX_NativeString("}");
     REGB0 = TAG_Int(1);
@@ -3577,7 +3577,7 @@ void compiling___compiling_icode___ILoop___compile_to_c(val_t p0, val_t p1){
   } else fra.me.REG[2] = once_value_3;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:462 */
+  /* compiling/compiling_icode.nit:462 */
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
@@ -3598,7 +3598,7 @@ void compiling___compiling_icode___ILoop___compile_to_c(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./compiling//compiling_icode.nit:458 */
+    /* compiling/compiling_icode.nit:458 */
     CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
     stack_frame_head = fra.me.prev;
     return;
@@ -3618,10 +3618,10 @@ void compiling___compiling_icode___IEscape___compile_to_c(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:469 */
+  /* compiling/compiling_icode.nit:469 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:470 */
+  /* compiling/compiling_icode.nit:470 */
   fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___marks_to_seq(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_icode___icode_base___IEscape___iescape_mark(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
@@ -3670,21 +3670,21 @@ void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:475 */
+  /* compiling/compiling_icode.nit:475 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./compiling//compiling_icode.nit:477 */
+  /* compiling/compiling_icode.nit:477 */
   fra.me.REG[3] = CALL_icode___icode_base___ICode___location(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:478 */
+  /* compiling/compiling_icode.nit:478 */
   fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:481 */
+  /* compiling/compiling_icode.nit:481 */
   fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:482 */
+  /* compiling/compiling_icode.nit:482 */
   fra.me.REG[5] = CALL_icode___icode_base___ICodeN___closure_defs(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:483 */
+  /* compiling/compiling_icode.nit:483 */
   fra.me.REG[6] = NIT_NULL;
-  /* ./compiling//compiling_icode.nit:484 */
+  /* compiling/compiling_icode.nit:484 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3699,10 +3699,10 @@ void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:486 */
+    /* compiling/compiling_icode.nit:486 */
     REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//compiling_icode.nit:487 */
+      /* compiling/compiling_icode.nit:487 */
       if (!once_value_1) {
         fra.me.REG[7] = BOX_NativeString("closctx");
         REGB0 = TAG_Int(7);
@@ -3713,7 +3713,7 @@ void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
       fra.me.REG[7] = fra.me.REG[7];
       fra.me.REG[6] = fra.me.REG[7];
     } else {
-      /* ./compiling//compiling_icode.nit:489 */
+      /* compiling/compiling_icode.nit:489 */
       if (!once_value_2) {
         fra.me.REG[7] = BOX_NativeString("(&(fra.me))");
         REGB0 = TAG_Int(11);
@@ -3724,23 +3724,23 @@ void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
       fra.me.REG[7] = fra.me.REG[7];
       fra.me.REG[6] = fra.me.REG[7];
     }
-    /* ./compiling//compiling_icode.nit:493 */
+    /* compiling/compiling_icode.nit:493 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
-    /* ./compiling//compiling_icode.nit:496 */
+    /* compiling/compiling_icode.nit:496 */
     fra.me.REG[7] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
     CALL_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
-    /* ./compiling//compiling_icode.nit:499 */
+    /* compiling/compiling_icode.nit:499 */
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 499);
     }
     CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_compiling___compiling_icode___IAbsCall___compile_to_c_3));
   }
-  /* ./compiling//compiling_icode.nit:510 */
+  /* compiling/compiling_icode.nit:510 */
   fra.me.REG[3] = CALL_compiling___compiling_icode___IAbsCall___compile_call_to_c(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:511 */
+  /* compiling/compiling_icode.nit:511 */
   fra.me.REG[5] = fra.me.REG[3];
-  /* ./compiling//compiling_icode.nit:514 */
+  /* compiling/compiling_icode.nit:514 */
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3755,20 +3755,20 @@ void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:515 */
+    /* compiling/compiling_icode.nit:515 */
     fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./compiling//compiling_icode.nit:516 */
+    /* compiling/compiling_icode.nit:516 */
     CALL_compiling___compiling_icode___I2CCompilerVisitor___escaped_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-    /* ./compiling//compiling_icode.nit:518 */
+    /* compiling/compiling_icode.nit:518 */
     REGB0 = CALL_standard___collection___abstract_collection___MapRead___is_empty(fra.me.REG[7])(fra.me.REG[7]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//compiling_icode.nit:520 */
+      /* compiling/compiling_icode.nit:520 */
       fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//compiling_icode.nit:521 */
+      /* compiling/compiling_icode.nit:521 */
       REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[2])(fra.me.REG[2]);
       if (UNTAG_Bool(REGB0)) {
-        /* ./compiling//compiling_icode.nit:522 */
+        /* compiling/compiling_icode.nit:522 */
         if (!once_value_5) {
           fra.me.REG[8] = BOX_NativeString("tmp");
           REGB0 = TAG_Int(3);
@@ -3778,7 +3778,7 @@ void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
         } else fra.me.REG[8] = once_value_5;
         fra.me.REG[8] = fra.me.REG[8];
         CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
-        /* ./compiling//compiling_icode.nit:523 */
+        /* compiling/compiling_icode.nit:523 */
         if (!once_value_6) {
           fra.me.REG[8] = BOX_NativeString(" = ");
           REGB0 = TAG_Int(3);
@@ -3788,9 +3788,9 @@ void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
         } else fra.me.REG[8] = once_value_6;
         fra.me.REG[8] = fra.me.REG[8];
         CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
-        /* ./compiling//compiling_icode.nit:524 */
+        /* compiling/compiling_icode.nit:524 */
         CALL_compiling___compiling_writer___Writer___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-        /* ./compiling//compiling_icode.nit:525 */
+        /* compiling/compiling_icode.nit:525 */
         if (!once_value_7) {
           fra.me.REG[8] = BOX_NativeString(";\n");
           REGB0 = TAG_Int(2);
@@ -3800,10 +3800,10 @@ void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
         } else fra.me.REG[8] = once_value_7;
         fra.me.REG[8] = fra.me.REG[8];
         CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
-        /* ./compiling//compiling_icode.nit:526 */
+        /* compiling/compiling_icode.nit:526 */
         fra.me.REG[8] = NEW_Writer_compiling___compiling_writer___Writer___init();
         fra.me.REG[5] = fra.me.REG[8];
-        /* ./compiling//compiling_icode.nit:527 */
+        /* compiling/compiling_icode.nit:527 */
         if (!once_value_8) {
           fra.me.REG[8] = BOX_NativeString("tmp");
           REGB0 = TAG_Int(3);
@@ -3818,11 +3818,11 @@ void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
         }
         CALL_compiling___compiling_writer___Writer___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
       } else {
-        /* ./compiling//compiling_icode.nit:529 */
+        /* compiling/compiling_icode.nit:529 */
         fra.me.REG[5] = NIT_NULL;
-        /* ./compiling//compiling_icode.nit:530 */
+        /* compiling/compiling_icode.nit:530 */
         CALL_compiling___compiling_writer___Writer___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-        /* ./compiling//compiling_icode.nit:531 */
+        /* compiling/compiling_icode.nit:531 */
         if (!once_value_9) {
           fra.me.REG[3] = BOX_NativeString(";\n");
           REGB0 = TAG_Int(2);
@@ -3833,7 +3833,7 @@ void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
         fra.me.REG[3] = fra.me.REG[3];
         CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
       }
-      /* ./compiling//compiling_icode.nit:534 */
+      /* compiling/compiling_icode.nit:534 */
       fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
       if (!once_value_10) {
         fra.me.REG[4] = BOX_NativeString("switch (");
@@ -3854,9 +3854,9 @@ void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
       } else fra.me.REG[3] = once_value_11;
       fra.me.REG[3] = fra.me.REG[3];
       CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-      /* ./compiling//compiling_icode.nit:535 */
+      /* compiling/compiling_icode.nit:535 */
       CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//compiling_icode.nit:537 */
+      /* compiling/compiling_icode.nit:537 */
       if (!once_value_12) {
         fra.me.REG[3] = BOX_NativeString("case 0: break;");
         REGB0 = TAG_Int(14);
@@ -3866,22 +3866,22 @@ void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
       } else fra.me.REG[3] = once_value_12;
       fra.me.REG[3] = fra.me.REG[3];
       CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-      /* ./compiling//compiling_icode.nit:538 */
+      /* compiling/compiling_icode.nit:538 */
       fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//compiling_icode.nit:539 */
+      /* compiling/compiling_icode.nit:539 */
       fra.me.REG[7] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[7])(fra.me.REG[7]);
-      /* ./compiling//compiling_icode.nit:540 */
+      /* compiling/compiling_icode.nit:540 */
       REGB0 = TAG_Bool(false);
-      /* ./compiling//compiling_icode.nit:541 */
+      /* compiling/compiling_icode.nit:541 */
       while(1) {
         REGB1 = CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra.me.REG[7])(fra.me.REG[7]);
         if (UNTAG_Bool(REGB1)) {
-          /* ./compiling//compiling_icode.nit:542 */
+          /* compiling/compiling_icode.nit:542 */
           fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapIterator___key(fra.me.REG[7])(fra.me.REG[7]);
-          /* ./compiling//compiling_icode.nit:543 */
+          /* compiling/compiling_icode.nit:543 */
           REGB1 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
           if (UNTAG_Bool(REGB1)) {
-            /* ./compiling//compiling_icode.nit:546 */
+            /* compiling/compiling_icode.nit:546 */
             fra.me.REG[8] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
             if (!once_value_13) {
               fra.me.REG[9] = BOX_NativeString("case ");
@@ -3930,29 +3930,29 @@ void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
             fra.me.REG[8] = fra.me.REG[8];
             CALL_compiling___compiling_writer___Writer___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[8]);
           } else {
-            /* ./compiling//compiling_icode.nit:549 */
+            /* compiling/compiling_icode.nit:549 */
             REGB1 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
             if (UNTAG_Bool(REGB1)) {
             } else {
               nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 549);
             }
-            /* ./compiling//compiling_icode.nit:550 */
+            /* compiling/compiling_icode.nit:550 */
             CALL_compiling___compiling_icode___I2CCompilerVisitor___register_escape_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-            /* ./compiling//compiling_icode.nit:551 */
+            /* compiling/compiling_icode.nit:551 */
             REGB1 = TAG_Bool(true);
             REGB0 = REGB1;
           }
-          /* ./compiling//compiling_icode.nit:553 */
+          /* compiling/compiling_icode.nit:553 */
           CALL_standard___collection___abstract_collection___MapIterator___next(fra.me.REG[7])(fra.me.REG[7]);
         } else {
-          /* ./compiling//compiling_icode.nit:541 */
+          /* compiling/compiling_icode.nit:541 */
           goto label17;
         }
       }
       label17: while(0);
-      /* ./compiling//compiling_icode.nit:556 */
+      /* compiling/compiling_icode.nit:556 */
       if (UNTAG_Bool(REGB0)) {
-        /* ./compiling//compiling_icode.nit:559 */
+        /* compiling/compiling_icode.nit:559 */
         fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
         if (!once_value_18) {
           fra.me.REG[6] = BOX_NativeString("default: goto ");
@@ -3981,9 +3981,9 @@ void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
         fra.me.REG[6] = fra.me.REG[6];
         CALL_compiling___compiling_writer___Writer___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
       }
-      /* ./compiling//compiling_icode.nit:561 */
+      /* compiling/compiling_icode.nit:561 */
       CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//compiling_icode.nit:562 */
+      /* compiling/compiling_icode.nit:562 */
       if (!once_value_20) {
         fra.me.REG[6] = BOX_NativeString("}");
         REGB0 = TAG_Int(1);
@@ -3995,7 +3995,7 @@ void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
       CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
     }
   }
-  /* ./compiling//compiling_icode.nit:566 */
+  /* compiling/compiling_icode.nit:566 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -4010,9 +4010,9 @@ void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:567 */
+    /* compiling/compiling_icode.nit:567 */
     fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-    /* ./compiling//compiling_icode.nit:568 */
+    /* compiling/compiling_icode.nit:568 */
     CALL_compiling___compiling_writer___Writer___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
   }
   stack_frame_head = fra.me.prev;
@@ -4037,7 +4037,7 @@ void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./compiling//compiling_icode.nit:500 */
+      /* compiling/compiling_icode.nit:500 */
       REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -4052,16 +4052,16 @@ void compiling___compiling_icode___IAbsCall___compile_to_c(val_t p0, val_t p1){
       }
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
-        /* ./compiling//compiling_icode.nit:501 */
+        /* compiling/compiling_icode.nit:501 */
         REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
           nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 501);
         }
         fra.me.REG[0] = CALL_compiling___compiling_icode___IClosureDef___compile_closure(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
-        /* ./compiling//compiling_icode.nit:502 */
+        /* compiling/compiling_icode.nit:502 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[0]);
       } else {
-        /* ./compiling//compiling_icode.nit:504 */
+        /* compiling/compiling_icode.nit:504 */
         if (!once_value_4) {
           fra.me.REG[0] = BOX_NativeString("NULL");
           REGB0 = TAG_Int(4);
@@ -4085,7 +4085,7 @@ val_t compiling___compiling_icode___IAbsCall___compile_call_to_c(val_t p0, val_t
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./compiling//compiling_icode.nit:572 */
+  /* compiling/compiling_icode.nit:572 */
   nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_icode, 572);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4114,17 +4114,17 @@ val_t compiling___compiling_icode___ICall___compile_call_to_c(val_t p0, val_t p1
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_icode.nit:579 */
+  /* compiling/compiling_icode.nit:579 */
   fra.me.REG[1] = NEW_Writer_compiling___compiling_writer___Writer___init();
-  /* ./compiling//compiling_icode.nit:583 */
+  /* compiling/compiling_icode.nit:583 */
   REGB0 = CALL_icode___icode_base___IAbsCall___is_explicit_from_extern(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
     fra.me.REG[3] = fra.me.REG[1];
     goto label1;
   }
-  /* ./compiling//compiling_icode.nit:585 */
+  /* compiling/compiling_icode.nit:585 */
   fra.me.REG[0] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:586 */
+  /* compiling/compiling_icode.nit:586 */
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]);
   if (UNTAG_Bool(REGB0)) {
@@ -4138,11 +4138,11 @@ val_t compiling___compiling_icode___ICall___compile_call_to_c(val_t p0, val_t p1
     fra.me.REG[4] = fra.me.REG[4];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   }
-  /* ./compiling//compiling_icode.nit:587 */
+  /* compiling/compiling_icode.nit:587 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalProperty___meth_call(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:588 */
+  /* compiling/compiling_icode.nit:588 */
   if (!once_value_3) {
     fra.me.REG[0] = BOX_NativeString("(");
     REGB0 = TAG_Int(1);
@@ -4152,10 +4152,10 @@ val_t compiling___compiling_icode___ICall___compile_call_to_c(val_t p0, val_t p1
   } else fra.me.REG[0] = once_value_3;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:589 */
+  /* compiling/compiling_icode.nit:589 */
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:590 */
+  /* compiling/compiling_icode.nit:590 */
   if (!once_value_4) {
     fra.me.REG[0] = BOX_NativeString(")(");
     REGB0 = TAG_Int(2);
@@ -4165,7 +4165,7 @@ val_t compiling___compiling_icode___ICall___compile_call_to_c(val_t p0, val_t p1
   } else fra.me.REG[0] = once_value_4;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:591 */
+  /* compiling/compiling_icode.nit:591 */
   if (!once_value_5) {
     fra.me.REG[0] = BOX_NativeString(", ");
     REGB0 = TAG_Int(2);
@@ -4175,7 +4175,7 @@ val_t compiling___compiling_icode___ICall___compile_call_to_c(val_t p0, val_t p1
   } else fra.me.REG[0] = once_value_5;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_writer___Writer___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:592 */
+  /* compiling/compiling_icode.nit:592 */
   if (!once_value_6) {
     fra.me.REG[0] = BOX_NativeString(")");
     REGB0 = TAG_Int(1);
@@ -4185,7 +4185,7 @@ val_t compiling___compiling_icode___ICall___compile_call_to_c(val_t p0, val_t p1
   } else fra.me.REG[0] = once_value_6;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:593 */
+  /* compiling/compiling_icode.nit:593 */
   fra.me.REG[3] = fra.me.REG[1];
   goto label1;
   label1: while(0);
@@ -4215,15 +4215,15 @@ val_t compiling___compiling_icode___ISuper___compile_call_to_c(val_t p0, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_icode.nit:602 */
+  /* compiling/compiling_icode.nit:602 */
   REGB0 = CALL_icode___icode_base___IAbsCall___is_explicit_from_extern(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
     fra.me.REG[1] = NEW_Writer_compiling___compiling_writer___Writer___init();
     goto label1;
   }
-  /* ./compiling//compiling_icode.nit:604 */
+  /* compiling/compiling_icode.nit:604 */
   fra.me.REG[0] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:605 */
+  /* compiling/compiling_icode.nit:605 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
@@ -4237,12 +4237,12 @@ val_t compiling___compiling_icode___ISuper___compile_call_to_c(val_t p0, val_t p
     fra.me.REG[3] = fra.me.REG[3];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   }
-  /* ./compiling//compiling_icode.nit:606 */
+  /* compiling/compiling_icode.nit:606 */
   fra.me.REG[3] = NEW_Writer_compiling___compiling_writer___Writer___init();
-  /* ./compiling//compiling_icode.nit:607 */
+  /* compiling/compiling_icode.nit:607 */
   fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalProperty___super_meth_call(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:608 */
+  /* compiling/compiling_icode.nit:608 */
   if (!once_value_3) {
     fra.me.REG[0] = BOX_NativeString("(");
     REGB0 = TAG_Int(1);
@@ -4252,10 +4252,10 @@ val_t compiling___compiling_icode___ISuper___compile_call_to_c(val_t p0, val_t p
   } else fra.me.REG[0] = once_value_3;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:609 */
+  /* compiling/compiling_icode.nit:609 */
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:610 */
+  /* compiling/compiling_icode.nit:610 */
   if (!once_value_4) {
     fra.me.REG[0] = BOX_NativeString(")(");
     REGB0 = TAG_Int(2);
@@ -4265,7 +4265,7 @@ val_t compiling___compiling_icode___ISuper___compile_call_to_c(val_t p0, val_t p
   } else fra.me.REG[0] = once_value_4;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:611 */
+  /* compiling/compiling_icode.nit:611 */
   if (!once_value_5) {
     fra.me.REG[0] = BOX_NativeString(", ");
     REGB0 = TAG_Int(2);
@@ -4275,7 +4275,7 @@ val_t compiling___compiling_icode___ISuper___compile_call_to_c(val_t p0, val_t p
   } else fra.me.REG[0] = once_value_5;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_writer___Writer___add_all(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:612 */
+  /* compiling/compiling_icode.nit:612 */
   if (!once_value_6) {
     fra.me.REG[0] = BOX_NativeString(")");
     REGB0 = TAG_Int(1);
@@ -4285,7 +4285,7 @@ val_t compiling___compiling_icode___ISuper___compile_call_to_c(val_t p0, val_t p
   } else fra.me.REG[0] = once_value_6;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:613 */
+  /* compiling/compiling_icode.nit:613 */
   fra.me.REG[1] = fra.me.REG[3];
   goto label1;
   label1: while(0);
@@ -4316,15 +4316,15 @@ val_t compiling___compiling_icode___INew___compile_call_to_c(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_icode.nit:620 */
+  /* compiling/compiling_icode.nit:620 */
   fra.me.REG[1] = NEW_Writer_compiling___compiling_writer___Writer___init();
-  /* ./compiling//compiling_icode.nit:624 */
+  /* compiling/compiling_icode.nit:624 */
   REGB0 = CALL_icode___icode_base___IAbsCall___is_explicit_from_extern(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
     fra.me.REG[3] = fra.me.REG[1];
     goto label1;
   }
-  /* ./compiling//compiling_icode.nit:626 */
+  /* compiling/compiling_icode.nit:626 */
   if (!once_value_2) {
     fra.me.REG[4] = BOX_NativeString("NEW_");
     REGB0 = TAG_Int(4);
@@ -4334,12 +4334,12 @@ val_t compiling___compiling_icode___INew___compile_call_to_c(val_t p0, val_t p1,
   } else fra.me.REG[4] = once_value_2;
   fra.me.REG[4] = fra.me.REG[4];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./compiling//compiling_icode.nit:627 */
+  /* compiling/compiling_icode.nit:627 */
   fra.me.REG[4] = CALL_icode___icode_base___INew___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./compiling//compiling_icode.nit:628 */
+  /* compiling/compiling_icode.nit:628 */
   if (!once_value_3) {
     fra.me.REG[4] = BOX_NativeString("_");
     REGB0 = TAG_Int(1);
@@ -4349,13 +4349,13 @@ val_t compiling___compiling_icode___INew___compile_call_to_c(val_t p0, val_t p1,
   } else fra.me.REG[4] = once_value_3;
   fra.me.REG[4] = fra.me.REG[4];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./compiling//compiling_icode.nit:629 */
+  /* compiling/compiling_icode.nit:629 */
   fra.me.REG[0] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:630 */
+  /* compiling/compiling_icode.nit:630 */
   if (!once_value_4) {
     fra.me.REG[0] = BOX_NativeString("(");
     REGB0 = TAG_Int(1);
@@ -4365,7 +4365,7 @@ val_t compiling___compiling_icode___INew___compile_call_to_c(val_t p0, val_t p1,
   } else fra.me.REG[0] = once_value_4;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:631 */
+  /* compiling/compiling_icode.nit:631 */
   if (!once_value_5) {
     fra.me.REG[0] = BOX_NativeString(", ");
     REGB0 = TAG_Int(2);
@@ -4375,7 +4375,7 @@ val_t compiling___compiling_icode___INew___compile_call_to_c(val_t p0, val_t p1,
   } else fra.me.REG[0] = once_value_5;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_writer___Writer___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:632 */
+  /* compiling/compiling_icode.nit:632 */
   if (!once_value_6) {
     fra.me.REG[0] = BOX_NativeString(")");
     REGB0 = TAG_Int(1);
@@ -4385,7 +4385,7 @@ val_t compiling___compiling_icode___INew___compile_call_to_c(val_t p0, val_t p1,
   } else fra.me.REG[0] = once_value_6;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:633 */
+  /* compiling/compiling_icode.nit:633 */
   fra.me.REG[3] = fra.me.REG[1];
   goto label1;
   label1: while(0);
@@ -4410,12 +4410,12 @@ void compiling___compiling_icode___IAllocateInstance___compile_to_c(val_t p0, va
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:640 */
+  /* compiling/compiling_icode.nit:640 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:641 */
+  /* compiling/compiling_icode.nit:641 */
   fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:642 */
+  /* compiling/compiling_icode.nit:642 */
   if (!once_value_1) {
     fra.me.REG[2] = BOX_NativeString("NEW_");
     REGB0 = TAG_Int(4);
@@ -4425,12 +4425,12 @@ void compiling___compiling_icode___IAllocateInstance___compile_to_c(val_t p0, va
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:643 */
+  /* compiling/compiling_icode.nit:643 */
   fra.me.REG[0] = CALL_icode___icode_base___IAllocateInstance___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:644 */
+  /* compiling/compiling_icode.nit:644 */
   if (!once_value_2) {
     fra.me.REG[0] = BOX_NativeString("()");
     REGB0 = TAG_Int(2);
@@ -4463,12 +4463,12 @@ void compiling___compiling_icode___ICheckInstance___compile_to_c(val_t p0, val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:651 */
+  /* compiling/compiling_icode.nit:651 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:652 */
+  /* compiling/compiling_icode.nit:652 */
   fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:653 */
+  /* compiling/compiling_icode.nit:653 */
   if (!once_value_1) {
     fra.me.REG[3] = BOX_NativeString("CHECKNEW_");
     REGB0 = TAG_Int(9);
@@ -4478,12 +4478,12 @@ void compiling___compiling_icode___ICheckInstance___compile_to_c(val_t p0, val_t
   } else fra.me.REG[3] = once_value_1;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:654 */
+  /* compiling/compiling_icode.nit:654 */
   fra.me.REG[3] = CALL_icode___icode_base___ICheckInstance___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:655 */
+  /* compiling/compiling_icode.nit:655 */
   if (!once_value_2) {
     fra.me.REG[3] = BOX_NativeString("(");
     REGB0 = TAG_Int(1);
@@ -4493,11 +4493,11 @@ void compiling___compiling_icode___ICheckInstance___compile_to_c(val_t p0, val_t
   } else fra.me.REG[3] = once_value_2;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:656 */
+  /* compiling/compiling_icode.nit:656 */
   fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:657 */
+  /* compiling/compiling_icode.nit:657 */
   if (!once_value_3) {
     fra.me.REG[0] = BOX_NativeString(")");
     REGB0 = TAG_Int(1);
@@ -4530,12 +4530,12 @@ void compiling___compiling_icode___IInitAttributes___compile_to_c(val_t p0, val_
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:664 */
+  /* compiling/compiling_icode.nit:664 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:665 */
+  /* compiling/compiling_icode.nit:665 */
   fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:666 */
+  /* compiling/compiling_icode.nit:666 */
   if (!once_value_1) {
     fra.me.REG[3] = BOX_NativeString("INIT_ATTRIBUTES__");
     REGB0 = TAG_Int(17);
@@ -4545,12 +4545,12 @@ void compiling___compiling_icode___IInitAttributes___compile_to_c(val_t p0, val_
   } else fra.me.REG[3] = once_value_1;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:667 */
+  /* compiling/compiling_icode.nit:667 */
   fra.me.REG[3] = CALL_icode___icode_base___IInitAttributes___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_compiling___compiling_base___MMLocalClass___cname(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:668 */
+  /* compiling/compiling_icode.nit:668 */
   if (!once_value_2) {
     fra.me.REG[3] = BOX_NativeString("(");
     REGB0 = TAG_Int(1);
@@ -4560,11 +4560,11 @@ void compiling___compiling_icode___IInitAttributes___compile_to_c(val_t p0, val_
   } else fra.me.REG[3] = once_value_2;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:669 */
+  /* compiling/compiling_icode.nit:669 */
   fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:670 */
+  /* compiling/compiling_icode.nit:670 */
   if (!once_value_3) {
     fra.me.REG[0] = BOX_NativeString(");\n");
     REGB0 = TAG_Int(3);
@@ -4598,9 +4598,9 @@ val_t compiling___compiling_icode___IStaticCall___compile_call_to_c(val_t p0, va
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_icode.nit:677 */
+  /* compiling/compiling_icode.nit:677 */
   fra.me.REG[1] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:678 */
+  /* compiling/compiling_icode.nit:678 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
@@ -4614,13 +4614,13 @@ val_t compiling___compiling_icode___IStaticCall___compile_call_to_c(val_t p0, va
     fra.me.REG[1] = fra.me.REG[1];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   }
-  /* ./compiling//compiling_icode.nit:679 */
+  /* compiling/compiling_icode.nit:679 */
   fra.me.REG[1] = NEW_Writer_compiling___compiling_writer___Writer___init();
-  /* ./compiling//compiling_icode.nit:680 */
+  /* compiling/compiling_icode.nit:680 */
   fra.me.REG[0] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:681 */
+  /* compiling/compiling_icode.nit:681 */
   if (!once_value_2) {
     fra.me.REG[0] = BOX_NativeString("(");
     REGB0 = TAG_Int(1);
@@ -4630,7 +4630,7 @@ val_t compiling___compiling_icode___IStaticCall___compile_call_to_c(val_t p0, va
   } else fra.me.REG[0] = once_value_2;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:682 */
+  /* compiling/compiling_icode.nit:682 */
   if (!once_value_3) {
     fra.me.REG[0] = BOX_NativeString(", ");
     REGB0 = TAG_Int(2);
@@ -4640,7 +4640,7 @@ val_t compiling___compiling_icode___IStaticCall___compile_call_to_c(val_t p0, va
   } else fra.me.REG[0] = once_value_3;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_writer___Writer___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:683 */
+  /* compiling/compiling_icode.nit:683 */
   if (!once_value_4) {
     fra.me.REG[0] = BOX_NativeString(")");
     REGB0 = TAG_Int(1);
@@ -4650,7 +4650,7 @@ val_t compiling___compiling_icode___IStaticCall___compile_call_to_c(val_t p0, va
   } else fra.me.REG[0] = once_value_4;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:684 */
+  /* compiling/compiling_icode.nit:684 */
   goto label5;
   label5: while(0);
   stack_frame_head = fra.me.prev;
@@ -4672,23 +4672,23 @@ void compiling___compiling_icode___INative___compile_to_c(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:691 */
+  /* compiling/compiling_icode.nit:691 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:692 */
+  /* compiling/compiling_icode.nit:692 */
   fra.me.REG[2] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMMethod___is_intern(fra.me.REG[2])(fra.me.REG[2]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:693 */
+    /* compiling/compiling_icode.nit:693 */
     CALL_compiling___compiling_icode___INative___compile_intern_method_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   } else {
-    /* ./compiling//compiling_icode.nit:694 */
+    /* compiling/compiling_icode.nit:694 */
     fra.me.REG[2] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//compiling_icode.nit:695 */
+      /* compiling/compiling_icode.nit:695 */
       CALL_compiling___compiling_icode___INative___compile_extern_method_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
     }
   }
@@ -4725,7 +4725,7 @@ void compiling___compiling_icode___INative___compile_extern_method_to_c(val_t p0
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:701 */
+  /* compiling/compiling_icode.nit:701 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -4752,10 +4752,10 @@ void compiling___compiling_icode___INative___compile_extern_method_to_c(val_t p0
   fra.me.REG[4] = fra.me.REG[4];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:703 */
+  /* compiling/compiling_icode.nit:703 */
   fra.me.REG[4] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./compiling//compiling_icode.nit:704 */
+  /* compiling/compiling_icode.nit:704 */
   fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
   REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
@@ -4764,40 +4764,40 @@ void compiling___compiling_icode___INative___compile_extern_method_to_c(val_t p0
   }
   REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
   REGB2 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-  /* ./compiling//compiling_icode.nit:704 */
+  /* compiling/compiling_icode.nit:704 */
   REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
   if (UNTAG_Bool(REGB1)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB2 = TAG_Bool((REGB0)==(REGB2));
-    /* ./compiling//compiling_icode.nit:704 */
+    /* compiling/compiling_icode.nit:704 */
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 704);
   }
-  /* ./compiling//compiling_icode.nit:706 */
+  /* compiling/compiling_icode.nit:706 */
   fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:708 */
+  /* compiling/compiling_icode.nit:708 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./compiling//compiling_icode.nit:709 */
+  /* compiling/compiling_icode.nit:709 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:278 */
+  /* ../lib/standard/collection/array.nit:278 */
   fra.me.REG[6] = fra.me.REG[3];
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   REGB2 = TAG_Int(0);
   REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   if (UNTAG_Bool(REGB2)) {
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
@@ -4810,66 +4810,66 @@ void compiling___compiling_icode___INative___compile_extern_method_to_c(val_t p0
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
   } else {
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB0 = TAG_Bool(false);
     REGB2 = REGB0;
   }
   if (UNTAG_Bool(REGB2)) {
   } else {
-    nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+    nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
   }
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
   REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
   }
-  /* ./../lib/standard//collection//array.nit:718 */
+  /* ../lib/standard/collection/array.nit:718 */
   fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB1)];
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   goto label3;
   label3: while(0);
-  /* ./compiling//compiling_icode.nit:709 */
+  /* compiling/compiling_icode.nit:709 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-  /* ./compiling//compiling_icode.nit:710 */
+  /* compiling/compiling_icode.nit:710 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
     nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 710);
   }
   REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//compiling_icode.nit:710 */
+      /* compiling/compiling_icode.nit:710 */
       REGB0 = REGB1;
-      /* ./compiling//compiling_icode.nit:711 */
+      /* compiling/compiling_icode.nit:711 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       fra.me.REG[4] = fra.me.REG[3];
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB0 = TAG_Int(0);
       REGB4 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB4)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB0 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB0));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB0)) {
         REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
@@ -4882,43 +4882,43 @@ void compiling___compiling_icode___INative___compile_extern_method_to_c(val_t p0
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB0 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB0));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB4 = TAG_Bool(false);
         REGB0 = REGB4;
       }
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
       REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB3)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label4;
       label4: while(0);
-      /* ./compiling//compiling_icode.nit:711 */
+      /* compiling/compiling_icode.nit:711 */
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB1 = REGB3;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label5;
     }
   }
   label5: while(0);
-  /* ./compiling//compiling_icode.nit:713 */
+  /* compiling/compiling_icode.nit:713 */
   REGB1 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
   if (!once_value_6) {
@@ -4960,13 +4960,13 @@ void compiling___compiling_icode___INative___compile_extern_method_to_c(val_t p0
   fra.me.REG[2] = fra.me.REG[2];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:715 */
+  /* compiling/compiling_icode.nit:715 */
   REGB1 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB1)) {
   }
-  /* ./compiling//compiling_icode.nit:716 */
+  /* compiling/compiling_icode.nit:716 */
   fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:717 */
+  /* compiling/compiling_icode.nit:717 */
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
   return;
@@ -5358,10 +5358,10 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:722 */
+  /* compiling/compiling_icode.nit:722 */
   fra.me.REG[2] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:723 */
+  /* compiling/compiling_icode.nit:723 */
   fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
   REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -5370,34 +5370,34 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
   }
   REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
   REGB2 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-  /* ./compiling//compiling_icode.nit:723 */
+  /* compiling/compiling_icode.nit:723 */
   REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
   if (UNTAG_Bool(REGB1)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB2 = TAG_Bool((REGB0)==(REGB2));
-    /* ./compiling//compiling_icode.nit:723 */
+    /* compiling/compiling_icode.nit:723 */
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_icode, 723);
   }
-  /* ./compiling//compiling_icode.nit:724 */
+  /* compiling/compiling_icode.nit:724 */
   fra.me.REG[2] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:725 */
+  /* compiling/compiling_icode.nit:725 */
   fra.me.REG[3] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:726 */
+  /* compiling/compiling_icode.nit:726 */
   fra.me.REG[4] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./compiling//compiling_icode.nit:727 */
+  /* compiling/compiling_icode.nit:727 */
   fra.me.REG[5] = NIT_NULL;
-  /* ./compiling//compiling_icode.nit:728 */
+  /* compiling/compiling_icode.nit:728 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[6] = BOX_NativeString("Int");
@@ -5419,7 +5419,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
-    /* ./compiling//compiling_icode.nit:729 */
+    /* compiling/compiling_icode.nit:729 */
     if (!once_value_3) {
       if (!once_value_4) {
         fra.me.REG[6] = BOX_NativeString("object_id");
@@ -5441,20 +5441,20 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
       REGB1 = REGB2;
     }
     if (UNTAG_Bool(REGB1)) {
-      /* ./compiling//compiling_icode.nit:730 */
+      /* compiling/compiling_icode.nit:730 */
       REGB1 = TAG_Int(0);
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       fra.me.REG[6] = fra.me.REG[4];
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB2 = TAG_Int(0);
       REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB2)) {
         REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
@@ -5467,32 +5467,32 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB0 = TAG_Bool(false);
         REGB2 = REGB0;
       }
       if (UNTAG_Bool(REGB2)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
       REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB1)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label5;
       label5: while(0);
-      /* ./compiling//compiling_icode.nit:730 */
+      /* compiling/compiling_icode.nit:730 */
       fra.me.REG[5] = fra.me.REG[6];
     } else {
-      /* ./compiling//compiling_icode.nit:731 */
+      /* compiling/compiling_icode.nit:731 */
       if (!once_value_6) {
         if (!once_value_7) {
           fra.me.REG[6] = BOX_NativeString("unary -");
@@ -5514,7 +5514,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
         REGB1 = REGB2;
       }
       if (UNTAG_Bool(REGB1)) {
-        /* ./compiling//compiling_icode.nit:732 */
+        /* compiling/compiling_icode.nit:732 */
         REGB1 = TAG_Int(3);
         fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
         if (!once_value_8) {
@@ -5527,18 +5527,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
         fra.me.REG[7] = fra.me.REG[7];
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
         REGB1 = TAG_Int(0);
-        /* ./../lib/standard//collection//array.nit:278 */
+        /* ../lib/standard/collection/array.nit:278 */
         fra.me.REG[7] = fra.me.REG[4];
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB2 = TAG_Int(0);
         REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB0)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB2)) {
           REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
@@ -5551,29 +5551,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
         } else {
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB0 = TAG_Bool(false);
           REGB2 = REGB0;
         }
         if (UNTAG_Bool(REGB2)) {
         } else {
-          nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+          nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
         }
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
         REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         goto label9;
         label9: while(0);
-        /* ./compiling//compiling_icode.nit:732 */
+        /* compiling/compiling_icode.nit:732 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
         if (!once_value_10) {
           fra.me.REG[7] = BOX_NativeString("))");
@@ -5587,7 +5587,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
         fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
         fra.me.REG[5] = fra.me.REG[6];
       } else {
-        /* ./compiling//compiling_icode.nit:733 */
+        /* compiling/compiling_icode.nit:733 */
         if (!once_value_11) {
           if (!once_value_12) {
             fra.me.REG[6] = BOX_NativeString("output");
@@ -5609,7 +5609,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
           REGB1 = REGB2;
         }
         if (UNTAG_Bool(REGB1)) {
-          /* ./compiling//compiling_icode.nit:734 */
+          /* compiling/compiling_icode.nit:734 */
           REGB1 = TAG_Int(3);
           fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
           if (!once_value_13) {
@@ -5622,18 +5622,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
           fra.me.REG[7] = fra.me.REG[7];
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
           REGB1 = TAG_Int(0);
-          /* ./../lib/standard//collection//array.nit:278 */
+          /* ../lib/standard/collection/array.nit:278 */
           fra.me.REG[7] = fra.me.REG[4];
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB2 = TAG_Int(0);
           REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
           if (UNTAG_Bool(REGB0)) {
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:233 */
+          /* ../lib/standard/kernel.nit:233 */
           REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           if (UNTAG_Bool(REGB2)) {
             REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
             if (UNTAG_Bool(REGB2)) {
@@ -5646,29 +5646,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:232 */
+            /* ../lib/standard/kernel.nit:232 */
             REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
           } else {
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB0 = TAG_Bool(false);
             REGB2 = REGB0;
           }
           if (UNTAG_Bool(REGB2)) {
           } else {
-            nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+            nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
           }
-          /* ./../lib/standard//collection//array.nit:281 */
+          /* ../lib/standard/collection/array.nit:281 */
           fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
           REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
             nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
           }
-          /* ./../lib/standard//collection//array.nit:718 */
+          /* ../lib/standard/collection/array.nit:718 */
           fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-          /* ./../lib/standard//collection//array.nit:281 */
+          /* ../lib/standard/collection/array.nit:281 */
           goto label14;
           label14: while(0);
-          /* ./compiling//compiling_icode.nit:734 */
+          /* compiling/compiling_icode.nit:734 */
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
           if (!once_value_15) {
             fra.me.REG[7] = BOX_NativeString("));");
@@ -5682,7 +5682,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
           fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
           fra.me.REG[5] = fra.me.REG[6];
         } else {
-          /* ./compiling//compiling_icode.nit:735 */
+          /* compiling/compiling_icode.nit:735 */
           if (!once_value_16) {
             if (!once_value_17) {
               fra.me.REG[6] = BOX_NativeString("ascii");
@@ -5704,7 +5704,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
             REGB1 = REGB2;
           }
           if (UNTAG_Bool(REGB1)) {
-            /* ./compiling//compiling_icode.nit:736 */
+            /* compiling/compiling_icode.nit:736 */
             REGB1 = TAG_Int(3);
             fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
             if (!once_value_18) {
@@ -5717,18 +5717,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
             fra.me.REG[7] = fra.me.REG[7];
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
             REGB1 = TAG_Int(0);
-            /* ./../lib/standard//collection//array.nit:278 */
+            /* ../lib/standard/collection/array.nit:278 */
             fra.me.REG[7] = fra.me.REG[4];
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB2 = TAG_Int(0);
             REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
             if (UNTAG_Bool(REGB0)) {
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:233 */
+            /* ../lib/standard/kernel.nit:233 */
             REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             if (UNTAG_Bool(REGB2)) {
               REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
               if (UNTAG_Bool(REGB2)) {
@@ -5741,29 +5741,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:232 */
+              /* ../lib/standard/kernel.nit:232 */
               REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
             } else {
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB0 = TAG_Bool(false);
               REGB2 = REGB0;
             }
             if (UNTAG_Bool(REGB2)) {
             } else {
-              nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+              nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
             }
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
             REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
             if (UNTAG_Bool(REGB2)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             goto label19;
             label19: while(0);
-            /* ./compiling//compiling_icode.nit:736 */
+            /* compiling/compiling_icode.nit:736 */
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
             if (!once_value_20) {
               fra.me.REG[7] = BOX_NativeString("))");
@@ -5777,7 +5777,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
             fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
             fra.me.REG[5] = fra.me.REG[6];
           } else {
-            /* ./compiling//compiling_icode.nit:737 */
+            /* compiling/compiling_icode.nit:737 */
             if (!once_value_21) {
               if (!once_value_22) {
                fra.me.REG[6] = BOX_NativeString("succ");
@@ -5799,7 +5799,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               REGB1 = REGB2;
             }
             if (UNTAG_Bool(REGB1)) {
-              /* ./compiling//compiling_icode.nit:738 */
+              /* compiling/compiling_icode.nit:738 */
               REGB1 = TAG_Int(3);
               fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
               if (!once_value_23) {
@@ -5812,18 +5812,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               fra.me.REG[7] = fra.me.REG[7];
               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
               REGB1 = TAG_Int(0);
-              /* ./../lib/standard//collection//array.nit:278 */
+              /* ../lib/standard/collection/array.nit:278 */
               fra.me.REG[7] = fra.me.REG[4];
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB2 = TAG_Int(0);
               REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
               if (UNTAG_Bool(REGB0)) {
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:233 */
+              /* ../lib/standard/kernel.nit:233 */
               REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -5836,29 +5836,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
               } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
               }
               if (UNTAG_Bool(REGB2)) {
               } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
               }
-              /* ./../lib/standard//collection//array.nit:281 */
+              /* ../lib/standard/collection/array.nit:281 */
               fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
               REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
               if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
               }
-              /* ./../lib/standard//collection//array.nit:718 */
+              /* ../lib/standard/collection/array.nit:718 */
               fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-              /* ./../lib/standard//collection//array.nit:281 */
+              /* ../lib/standard/collection/array.nit:281 */
               goto label24;
               label24: while(0);
-              /* ./compiling//compiling_icode.nit:738 */
+              /* compiling/compiling_icode.nit:738 */
               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
               if (!once_value_25) {
                fra.me.REG[7] = BOX_NativeString(")+1)");
@@ -5872,7 +5872,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
               fra.me.REG[5] = fra.me.REG[6];
             } else {
-              /* ./compiling//compiling_icode.nit:739 */
+              /* compiling/compiling_icode.nit:739 */
               if (!once_value_26) {
                if (!once_value_27) {
                fra.me.REG[6] = BOX_NativeString("prec");
@@ -5894,7 +5894,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
               }
               if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:740 */
+               /* compiling/compiling_icode.nit:740 */
                REGB1 = TAG_Int(3);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_28) {
@@ -5907,18 +5907,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -5931,29 +5931,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label29;
                label29: while(0);
-               /* ./compiling//compiling_icode.nit:740 */
+               /* compiling/compiling_icode.nit:740 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_30) {
                fra.me.REG[7] = BOX_NativeString(")-1)");
@@ -5967,7 +5967,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
               } else {
-               /* ./compiling//compiling_icode.nit:741 */
+               /* compiling/compiling_icode.nit:741 */
                if (!once_value_31) {
                if (!once_value_32) {
                fra.me.REG[6] = BOX_NativeString("to_f");
@@ -5989,7 +5989,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:742 */
+               /* compiling/compiling_icode.nit:742 */
                REGB1 = TAG_Int(3);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_33) {
@@ -6002,18 +6002,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -6026,29 +6026,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label34;
                label34: while(0);
-               /* ./compiling//compiling_icode.nit:742 */
+               /* compiling/compiling_icode.nit:742 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_35) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -6062,7 +6062,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:743 */
+               /* compiling/compiling_icode.nit:743 */
                if (!once_value_36) {
                if (!once_value_37) {
                fra.me.REG[6] = BOX_NativeString("+");
@@ -6084,7 +6084,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:744 */
+               /* compiling/compiling_icode.nit:744 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_38) {
@@ -6097,18 +6097,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -6121,29 +6121,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label39;
                label39: while(0);
-               /* ./compiling//compiling_icode.nit:744 */
+               /* compiling/compiling_icode.nit:744 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_40) {
                fra.me.REG[7] = BOX_NativeString(")+UNTAG_Int(");
@@ -6155,18 +6155,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -6179,29 +6179,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label41;
                label41: while(0);
-               /* ./compiling//compiling_icode.nit:744 */
+               /* compiling/compiling_icode.nit:744 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_42) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -6215,7 +6215,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:745 */
+               /* compiling/compiling_icode.nit:745 */
                if (!once_value_43) {
                if (!once_value_44) {
                fra.me.REG[6] = BOX_NativeString("-");
@@ -6237,7 +6237,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:746 */
+               /* compiling/compiling_icode.nit:746 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_45) {
@@ -6250,18 +6250,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -6274,29 +6274,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label46;
                label46: while(0);
-               /* ./compiling//compiling_icode.nit:746 */
+               /* compiling/compiling_icode.nit:746 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_47) {
                fra.me.REG[7] = BOX_NativeString(")-UNTAG_Int(");
@@ -6308,18 +6308,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -6332,29 +6332,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label48;
                label48: while(0);
-               /* ./compiling//compiling_icode.nit:746 */
+               /* compiling/compiling_icode.nit:746 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_49) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -6368,7 +6368,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:747 */
+               /* compiling/compiling_icode.nit:747 */
                if (!once_value_50) {
                if (!once_value_51) {
                fra.me.REG[6] = BOX_NativeString("*");
@@ -6390,7 +6390,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:748 */
+               /* compiling/compiling_icode.nit:748 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_52) {
@@ -6403,18 +6403,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -6427,29 +6427,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label53;
                label53: while(0);
-               /* ./compiling//compiling_icode.nit:748 */
+               /* compiling/compiling_icode.nit:748 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_54) {
                fra.me.REG[7] = BOX_NativeString(")*UNTAG_Int(");
@@ -6461,18 +6461,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -6485,29 +6485,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label55;
                label55: while(0);
-               /* ./compiling//compiling_icode.nit:748 */
+               /* compiling/compiling_icode.nit:748 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_56) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -6521,7 +6521,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:749 */
+               /* compiling/compiling_icode.nit:749 */
                if (!once_value_57) {
                if (!once_value_58) {
                fra.me.REG[6] = BOX_NativeString("/");
@@ -6543,7 +6543,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:750 */
+               /* compiling/compiling_icode.nit:750 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_59) {
@@ -6556,18 +6556,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -6580,29 +6580,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label60;
                label60: while(0);
-               /* ./compiling//compiling_icode.nit:750 */
+               /* compiling/compiling_icode.nit:750 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_61) {
                fra.me.REG[7] = BOX_NativeString(")/UNTAG_Int(");
@@ -6614,18 +6614,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -6638,29 +6638,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label62;
                label62: while(0);
-               /* ./compiling//compiling_icode.nit:750 */
+               /* compiling/compiling_icode.nit:750 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_63) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -6674,7 +6674,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:751 */
+               /* compiling/compiling_icode.nit:751 */
                if (!once_value_64) {
                if (!once_value_65) {
                fra.me.REG[6] = BOX_NativeString("%");
@@ -6696,7 +6696,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:752 */
+               /* compiling/compiling_icode.nit:752 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_66) {
@@ -6709,18 +6709,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -6733,29 +6733,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label67;
                label67: while(0);
-               /* ./compiling//compiling_icode.nit:752 */
+               /* compiling/compiling_icode.nit:752 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_68) {
                fra.me.REG[7] = BOX_NativeString(")%UNTAG_Int(");
@@ -6767,18 +6767,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -6791,29 +6791,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label69;
                label69: while(0);
-               /* ./compiling//compiling_icode.nit:752 */
+               /* compiling/compiling_icode.nit:752 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_70) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -6827,7 +6827,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:753 */
+               /* compiling/compiling_icode.nit:753 */
                if (!once_value_71) {
                if (!once_value_72) {
                fra.me.REG[6] = BOX_NativeString("<");
@@ -6849,7 +6849,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:754 */
+               /* compiling/compiling_icode.nit:754 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_73) {
@@ -6862,18 +6862,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -6886,29 +6886,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label74;
                label74: while(0);
-               /* ./compiling//compiling_icode.nit:754 */
+               /* compiling/compiling_icode.nit:754 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_75) {
                fra.me.REG[7] = BOX_NativeString(")<UNTAG_Int(");
@@ -6920,18 +6920,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -6944,29 +6944,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label76;
                label76: while(0);
-               /* ./compiling//compiling_icode.nit:754 */
+               /* compiling/compiling_icode.nit:754 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_77) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -6980,7 +6980,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:755 */
+               /* compiling/compiling_icode.nit:755 */
                if (!once_value_78) {
                if (!once_value_79) {
                fra.me.REG[6] = BOX_NativeString(">");
@@ -7002,7 +7002,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:756 */
+               /* compiling/compiling_icode.nit:756 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_80) {
@@ -7015,18 +7015,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -7039,29 +7039,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label81;
                label81: while(0);
-               /* ./compiling//compiling_icode.nit:756 */
+               /* compiling/compiling_icode.nit:756 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_82) {
                fra.me.REG[7] = BOX_NativeString(")>UNTAG_Int(");
@@ -7073,18 +7073,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -7097,29 +7097,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label83;
                label83: while(0);
-               /* ./compiling//compiling_icode.nit:756 */
+               /* compiling/compiling_icode.nit:756 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_84) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -7133,7 +7133,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:757 */
+               /* compiling/compiling_icode.nit:757 */
                if (!once_value_85) {
                if (!once_value_86) {
                fra.me.REG[6] = BOX_NativeString("<=");
@@ -7155,7 +7155,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:758 */
+               /* compiling/compiling_icode.nit:758 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_87) {
@@ -7168,18 +7168,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -7192,29 +7192,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label88;
                label88: while(0);
-               /* ./compiling//compiling_icode.nit:758 */
+               /* compiling/compiling_icode.nit:758 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_89) {
                fra.me.REG[7] = BOX_NativeString(")<=UNTAG_Int(");
@@ -7226,18 +7226,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -7250,29 +7250,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label90;
                label90: while(0);
-               /* ./compiling//compiling_icode.nit:758 */
+               /* compiling/compiling_icode.nit:758 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_91) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -7286,7 +7286,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:759 */
+               /* compiling/compiling_icode.nit:759 */
                if (!once_value_92) {
                if (!once_value_93) {
                fra.me.REG[6] = BOX_NativeString(">=");
@@ -7308,7 +7308,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:760 */
+               /* compiling/compiling_icode.nit:760 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_94) {
@@ -7321,18 +7321,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -7345,29 +7345,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label95;
                label95: while(0);
-               /* ./compiling//compiling_icode.nit:760 */
+               /* compiling/compiling_icode.nit:760 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_96) {
                fra.me.REG[7] = BOX_NativeString(")>=UNTAG_Int(");
@@ -7379,18 +7379,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -7403,29 +7403,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label97;
                label97: while(0);
-               /* ./compiling//compiling_icode.nit:760 */
+               /* compiling/compiling_icode.nit:760 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_98) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -7439,7 +7439,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:761 */
+               /* compiling/compiling_icode.nit:761 */
                if (!once_value_99) {
                if (!once_value_100) {
                fra.me.REG[6] = BOX_NativeString("lshift");
@@ -7461,7 +7461,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:762 */
+               /* compiling/compiling_icode.nit:762 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_101) {
@@ -7474,18 +7474,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -7498,29 +7498,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label102;
                label102: while(0);
-               /* ./compiling//compiling_icode.nit:762 */
+               /* compiling/compiling_icode.nit:762 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_103) {
                fra.me.REG[7] = BOX_NativeString(")<<UNTAG_Int(");
@@ -7532,18 +7532,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -7556,29 +7556,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label104;
                label104: while(0);
-               /* ./compiling//compiling_icode.nit:762 */
+               /* compiling/compiling_icode.nit:762 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_105) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -7592,7 +7592,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:763 */
+               /* compiling/compiling_icode.nit:763 */
                if (!once_value_106) {
                if (!once_value_107) {
                fra.me.REG[6] = BOX_NativeString("rshift");
@@ -7614,7 +7614,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:764 */
+               /* compiling/compiling_icode.nit:764 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_108) {
@@ -7627,18 +7627,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -7651,29 +7651,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label109;
                label109: while(0);
-               /* ./compiling//compiling_icode.nit:764 */
+               /* compiling/compiling_icode.nit:764 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_110) {
                fra.me.REG[7] = BOX_NativeString(")>>UNTAG_Int(");
@@ -7685,18 +7685,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -7709,29 +7709,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label111;
                label111: while(0);
-               /* ./compiling//compiling_icode.nit:764 */
+               /* compiling/compiling_icode.nit:764 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_112) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -7745,7 +7745,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:765 */
+               /* compiling/compiling_icode.nit:765 */
                if (!once_value_113) {
                if (!once_value_114) {
                fra.me.REG[6] = BOX_NativeString("==");
@@ -7767,7 +7767,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:766 */
+               /* compiling/compiling_icode.nit:766 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_115) {
@@ -7780,18 +7780,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -7804,29 +7804,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label116;
                label116: while(0);
-               /* ./compiling//compiling_icode.nit:766 */
+               /* compiling/compiling_icode.nit:766 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_117) {
                fra.me.REG[7] = BOX_NativeString(")==(");
@@ -7838,18 +7838,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -7862,29 +7862,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label118;
                label118: while(0);
-               /* ./compiling//compiling_icode.nit:766 */
+               /* compiling/compiling_icode.nit:766 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_119) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -7898,7 +7898,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:767 */
+               /* compiling/compiling_icode.nit:767 */
                if (!once_value_120) {
                if (!once_value_121) {
                fra.me.REG[6] = BOX_NativeString("!=");
@@ -7920,7 +7920,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:768 */
+               /* compiling/compiling_icode.nit:768 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_122) {
@@ -7933,18 +7933,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -7957,29 +7957,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label123;
                label123: while(0);
-               /* ./compiling//compiling_icode.nit:768 */
+               /* compiling/compiling_icode.nit:768 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_124) {
                fra.me.REG[7] = BOX_NativeString(")!=(");
@@ -7991,18 +7991,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -8015,29 +8015,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label125;
                label125: while(0);
-               /* ./compiling//compiling_icode.nit:768 */
+               /* compiling/compiling_icode.nit:768 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_126) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -8071,7 +8071,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
       }
     }
   } else {
-    /* ./compiling//compiling_icode.nit:770 */
+    /* compiling/compiling_icode.nit:770 */
     if (!once_value_127) {
       if (!once_value_128) {
         fra.me.REG[6] = BOX_NativeString("Float");
@@ -8093,7 +8093,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
       REGB1 = REGB2;
     }
     if (UNTAG_Bool(REGB1)) {
-      /* ./compiling//compiling_icode.nit:771 */
+      /* compiling/compiling_icode.nit:771 */
       if (!once_value_129) {
         if (!once_value_130) {
           fra.me.REG[6] = BOX_NativeString("object_id");
@@ -8115,7 +8115,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
         REGB1 = REGB2;
       }
       if (UNTAG_Bool(REGB1)) {
-        /* ./compiling//compiling_icode.nit:772 */
+        /* compiling/compiling_icode.nit:772 */
         REGB1 = TAG_Int(3);
         fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
         if (!once_value_131) {
@@ -8128,18 +8128,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
         fra.me.REG[7] = fra.me.REG[7];
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
         REGB1 = TAG_Int(0);
-        /* ./../lib/standard//collection//array.nit:278 */
+        /* ../lib/standard/collection/array.nit:278 */
         fra.me.REG[7] = fra.me.REG[4];
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB2 = TAG_Int(0);
         REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB0)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB2)) {
           REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
@@ -8152,29 +8152,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
         } else {
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB0 = TAG_Bool(false);
           REGB2 = REGB0;
         }
         if (UNTAG_Bool(REGB2)) {
         } else {
-          nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+          nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
         }
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
         REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         goto label132;
         label132: while(0);
-        /* ./compiling//compiling_icode.nit:772 */
+        /* compiling/compiling_icode.nit:772 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
         if (!once_value_133) {
           fra.me.REG[7] = BOX_NativeString("))");
@@ -8188,7 +8188,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
         fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
         fra.me.REG[5] = fra.me.REG[6];
       } else {
-        /* ./compiling//compiling_icode.nit:773 */
+        /* compiling/compiling_icode.nit:773 */
         if (!once_value_134) {
           if (!once_value_135) {
             fra.me.REG[6] = BOX_NativeString("unary -");
@@ -8210,7 +8210,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
           REGB1 = REGB2;
         }
         if (UNTAG_Bool(REGB1)) {
-          /* ./compiling//compiling_icode.nit:774 */
+          /* compiling/compiling_icode.nit:774 */
           REGB1 = TAG_Int(3);
           fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
           if (!once_value_136) {
@@ -8223,18 +8223,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
           fra.me.REG[7] = fra.me.REG[7];
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
           REGB1 = TAG_Int(0);
-          /* ./../lib/standard//collection//array.nit:278 */
+          /* ../lib/standard/collection/array.nit:278 */
           fra.me.REG[7] = fra.me.REG[4];
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB2 = TAG_Int(0);
           REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
           if (UNTAG_Bool(REGB0)) {
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:233 */
+          /* ../lib/standard/kernel.nit:233 */
           REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           if (UNTAG_Bool(REGB2)) {
             REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
             if (UNTAG_Bool(REGB2)) {
@@ -8247,29 +8247,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:232 */
+            /* ../lib/standard/kernel.nit:232 */
             REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
           } else {
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB0 = TAG_Bool(false);
             REGB2 = REGB0;
           }
           if (UNTAG_Bool(REGB2)) {
           } else {
-            nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+            nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
           }
-          /* ./../lib/standard//collection//array.nit:281 */
+          /* ../lib/standard/collection/array.nit:281 */
           fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
           REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
             nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
           }
-          /* ./../lib/standard//collection//array.nit:718 */
+          /* ../lib/standard/collection/array.nit:718 */
           fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-          /* ./../lib/standard//collection//array.nit:281 */
+          /* ../lib/standard/collection/array.nit:281 */
           goto label137;
           label137: while(0);
-          /* ./compiling//compiling_icode.nit:774 */
+          /* compiling/compiling_icode.nit:774 */
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
           if (!once_value_138) {
             fra.me.REG[7] = BOX_NativeString("))");
@@ -8283,7 +8283,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
           fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
           fra.me.REG[5] = fra.me.REG[6];
         } else {
-          /* ./compiling//compiling_icode.nit:775 */
+          /* compiling/compiling_icode.nit:775 */
           if (!once_value_139) {
             if (!once_value_140) {
               fra.me.REG[6] = BOX_NativeString("output");
@@ -8305,7 +8305,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
             REGB1 = REGB2;
           }
           if (UNTAG_Bool(REGB1)) {
-            /* ./compiling//compiling_icode.nit:776 */
+            /* compiling/compiling_icode.nit:776 */
             REGB1 = TAG_Int(3);
             fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
             if (!once_value_141) {
@@ -8318,18 +8318,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
             fra.me.REG[7] = fra.me.REG[7];
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
             REGB1 = TAG_Int(0);
-            /* ./../lib/standard//collection//array.nit:278 */
+            /* ../lib/standard/collection/array.nit:278 */
             fra.me.REG[7] = fra.me.REG[4];
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB2 = TAG_Int(0);
             REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
             if (UNTAG_Bool(REGB0)) {
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:233 */
+            /* ../lib/standard/kernel.nit:233 */
             REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             if (UNTAG_Bool(REGB2)) {
               REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
               if (UNTAG_Bool(REGB2)) {
@@ -8342,29 +8342,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:232 */
+              /* ../lib/standard/kernel.nit:232 */
               REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
             } else {
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB0 = TAG_Bool(false);
               REGB2 = REGB0;
             }
             if (UNTAG_Bool(REGB2)) {
             } else {
-              nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+              nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
             }
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
             REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
             if (UNTAG_Bool(REGB2)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             goto label142;
             label142: while(0);
-            /* ./compiling//compiling_icode.nit:776 */
+            /* compiling/compiling_icode.nit:776 */
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
             if (!once_value_143) {
               fra.me.REG[7] = BOX_NativeString("));");
@@ -8378,7 +8378,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
             fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
             fra.me.REG[5] = fra.me.REG[6];
           } else {
-            /* ./compiling//compiling_icode.nit:777 */
+            /* compiling/compiling_icode.nit:777 */
             if (!once_value_144) {
               if (!once_value_145) {
                fra.me.REG[6] = BOX_NativeString("to_i");
@@ -8400,7 +8400,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               REGB1 = REGB2;
             }
             if (UNTAG_Bool(REGB1)) {
-              /* ./compiling//compiling_icode.nit:778 */
+              /* compiling/compiling_icode.nit:778 */
               REGB1 = TAG_Int(3);
               fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
               if (!once_value_146) {
@@ -8413,18 +8413,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               fra.me.REG[7] = fra.me.REG[7];
               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
               REGB1 = TAG_Int(0);
-              /* ./../lib/standard//collection//array.nit:278 */
+              /* ../lib/standard/collection/array.nit:278 */
               fra.me.REG[7] = fra.me.REG[4];
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB2 = TAG_Int(0);
               REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
               if (UNTAG_Bool(REGB0)) {
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:233 */
+              /* ../lib/standard/kernel.nit:233 */
               REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -8437,29 +8437,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
               } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
               }
               if (UNTAG_Bool(REGB2)) {
               } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
               }
-              /* ./../lib/standard//collection//array.nit:281 */
+              /* ../lib/standard/collection/array.nit:281 */
               fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
               REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
               if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
               }
-              /* ./../lib/standard//collection//array.nit:718 */
+              /* ../lib/standard/collection/array.nit:718 */
               fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-              /* ./../lib/standard//collection//array.nit:281 */
+              /* ../lib/standard/collection/array.nit:281 */
               goto label147;
               label147: while(0);
-              /* ./compiling//compiling_icode.nit:778 */
+              /* compiling/compiling_icode.nit:778 */
               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
               if (!once_value_148) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -8473,7 +8473,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
               fra.me.REG[5] = fra.me.REG[6];
             } else {
-              /* ./compiling//compiling_icode.nit:779 */
+              /* compiling/compiling_icode.nit:779 */
               if (!once_value_149) {
                if (!once_value_150) {
                fra.me.REG[6] = BOX_NativeString("+");
@@ -8495,7 +8495,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
               }
               if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:780 */
+               /* compiling/compiling_icode.nit:780 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_151) {
@@ -8508,18 +8508,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -8532,29 +8532,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label152;
                label152: while(0);
-               /* ./compiling//compiling_icode.nit:780 */
+               /* compiling/compiling_icode.nit:780 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_153) {
                fra.me.REG[7] = BOX_NativeString(")+UNBOX_Float(");
@@ -8566,18 +8566,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -8590,29 +8590,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label154;
                label154: while(0);
-               /* ./compiling//compiling_icode.nit:780 */
+               /* compiling/compiling_icode.nit:780 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_155) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -8626,7 +8626,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
               } else {
-               /* ./compiling//compiling_icode.nit:781 */
+               /* compiling/compiling_icode.nit:781 */
                if (!once_value_156) {
                if (!once_value_157) {
                fra.me.REG[6] = BOX_NativeString("-");
@@ -8648,7 +8648,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:782 */
+               /* compiling/compiling_icode.nit:782 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_158) {
@@ -8661,18 +8661,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -8685,29 +8685,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label159;
                label159: while(0);
-               /* ./compiling//compiling_icode.nit:782 */
+               /* compiling/compiling_icode.nit:782 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_160) {
                fra.me.REG[7] = BOX_NativeString(")-UNBOX_Float(");
@@ -8719,18 +8719,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -8743,29 +8743,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label161;
                label161: while(0);
-               /* ./compiling//compiling_icode.nit:782 */
+               /* compiling/compiling_icode.nit:782 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_162) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -8779,7 +8779,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:783 */
+               /* compiling/compiling_icode.nit:783 */
                if (!once_value_163) {
                if (!once_value_164) {
                fra.me.REG[6] = BOX_NativeString("*");
@@ -8801,7 +8801,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:784 */
+               /* compiling/compiling_icode.nit:784 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_165) {
@@ -8814,18 +8814,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -8838,29 +8838,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label166;
                label166: while(0);
-               /* ./compiling//compiling_icode.nit:784 */
+               /* compiling/compiling_icode.nit:784 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_167) {
                fra.me.REG[7] = BOX_NativeString(")*UNBOX_Float(");
@@ -8872,18 +8872,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -8896,29 +8896,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label168;
                label168: while(0);
-               /* ./compiling//compiling_icode.nit:784 */
+               /* compiling/compiling_icode.nit:784 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_169) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -8932,7 +8932,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:785 */
+               /* compiling/compiling_icode.nit:785 */
                if (!once_value_170) {
                if (!once_value_171) {
                fra.me.REG[6] = BOX_NativeString("/");
@@ -8954,7 +8954,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:786 */
+               /* compiling/compiling_icode.nit:786 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_172) {
@@ -8967,18 +8967,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -8991,29 +8991,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label173;
                label173: while(0);
-               /* ./compiling//compiling_icode.nit:786 */
+               /* compiling/compiling_icode.nit:786 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_174) {
                fra.me.REG[7] = BOX_NativeString(")/UNBOX_Float(");
@@ -9025,18 +9025,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -9049,29 +9049,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label175;
                label175: while(0);
-               /* ./compiling//compiling_icode.nit:786 */
+               /* compiling/compiling_icode.nit:786 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_176) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -9085,7 +9085,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:787 */
+               /* compiling/compiling_icode.nit:787 */
                if (!once_value_177) {
                if (!once_value_178) {
                fra.me.REG[6] = BOX_NativeString("<");
@@ -9107,7 +9107,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:788 */
+               /* compiling/compiling_icode.nit:788 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_179) {
@@ -9120,18 +9120,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -9144,29 +9144,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label180;
                label180: while(0);
-               /* ./compiling//compiling_icode.nit:788 */
+               /* compiling/compiling_icode.nit:788 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_181) {
                fra.me.REG[7] = BOX_NativeString(")<UNBOX_Float(");
@@ -9178,18 +9178,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -9202,29 +9202,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label182;
                label182: while(0);
-               /* ./compiling//compiling_icode.nit:788 */
+               /* compiling/compiling_icode.nit:788 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_183) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -9238,7 +9238,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:789 */
+               /* compiling/compiling_icode.nit:789 */
                if (!once_value_184) {
                if (!once_value_185) {
                fra.me.REG[6] = BOX_NativeString(">");
@@ -9260,7 +9260,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:790 */
+               /* compiling/compiling_icode.nit:790 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_186) {
@@ -9273,18 +9273,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -9297,29 +9297,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label187;
                label187: while(0);
-               /* ./compiling//compiling_icode.nit:790 */
+               /* compiling/compiling_icode.nit:790 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_188) {
                fra.me.REG[7] = BOX_NativeString(")>UNBOX_Float(");
@@ -9331,18 +9331,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -9355,29 +9355,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label189;
                label189: while(0);
-               /* ./compiling//compiling_icode.nit:790 */
+               /* compiling/compiling_icode.nit:790 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_190) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -9391,7 +9391,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:791 */
+               /* compiling/compiling_icode.nit:791 */
                if (!once_value_191) {
                if (!once_value_192) {
                fra.me.REG[6] = BOX_NativeString("<=");
@@ -9413,7 +9413,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:792 */
+               /* compiling/compiling_icode.nit:792 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_193) {
@@ -9426,18 +9426,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -9450,29 +9450,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label194;
                label194: while(0);
-               /* ./compiling//compiling_icode.nit:792 */
+               /* compiling/compiling_icode.nit:792 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_195) {
                fra.me.REG[7] = BOX_NativeString(")<=UNBOX_Float(");
@@ -9484,18 +9484,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -9508,29 +9508,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label196;
                label196: while(0);
-               /* ./compiling//compiling_icode.nit:792 */
+               /* compiling/compiling_icode.nit:792 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_197) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -9544,7 +9544,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:793 */
+               /* compiling/compiling_icode.nit:793 */
                if (!once_value_198) {
                if (!once_value_199) {
                fra.me.REG[6] = BOX_NativeString(">=");
@@ -9566,7 +9566,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:794 */
+               /* compiling/compiling_icode.nit:794 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_200) {
@@ -9579,18 +9579,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -9603,29 +9603,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label201;
                label201: while(0);
-               /* ./compiling//compiling_icode.nit:794 */
+               /* compiling/compiling_icode.nit:794 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_202) {
                fra.me.REG[7] = BOX_NativeString(")>=UNBOX_Float(");
@@ -9637,18 +9637,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -9661,29 +9661,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label203;
                label203: while(0);
-               /* ./compiling//compiling_icode.nit:794 */
+               /* compiling/compiling_icode.nit:794 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_204) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -9709,7 +9709,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
         }
       }
     } else {
-      /* ./compiling//compiling_icode.nit:796 */
+      /* compiling/compiling_icode.nit:796 */
       if (!once_value_205) {
         if (!once_value_206) {
           fra.me.REG[6] = BOX_NativeString("Char");
@@ -9731,7 +9731,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
         REGB1 = REGB2;
       }
       if (UNTAG_Bool(REGB1)) {
-        /* ./compiling//compiling_icode.nit:797 */
+        /* compiling/compiling_icode.nit:797 */
         if (!once_value_207) {
           if (!once_value_208) {
             fra.me.REG[6] = BOX_NativeString("object_id");
@@ -9753,7 +9753,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
           REGB1 = REGB2;
         }
         if (UNTAG_Bool(REGB1)) {
-          /* ./compiling//compiling_icode.nit:798 */
+          /* compiling/compiling_icode.nit:798 */
           REGB1 = TAG_Int(3);
           fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
           if (!once_value_209) {
@@ -9766,18 +9766,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
           fra.me.REG[7] = fra.me.REG[7];
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
           REGB1 = TAG_Int(0);
-          /* ./../lib/standard//collection//array.nit:278 */
+          /* ../lib/standard/collection/array.nit:278 */
           fra.me.REG[7] = fra.me.REG[4];
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB2 = TAG_Int(0);
           REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
           if (UNTAG_Bool(REGB0)) {
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:233 */
+          /* ../lib/standard/kernel.nit:233 */
           REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           if (UNTAG_Bool(REGB2)) {
             REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
             if (UNTAG_Bool(REGB2)) {
@@ -9790,29 +9790,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:232 */
+            /* ../lib/standard/kernel.nit:232 */
             REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
           } else {
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB0 = TAG_Bool(false);
             REGB2 = REGB0;
           }
           if (UNTAG_Bool(REGB2)) {
           } else {
-            nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+            nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
           }
-          /* ./../lib/standard//collection//array.nit:281 */
+          /* ../lib/standard/collection/array.nit:281 */
           fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
           REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
             nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
           }
-          /* ./../lib/standard//collection//array.nit:718 */
+          /* ../lib/standard/collection/array.nit:718 */
           fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-          /* ./../lib/standard//collection//array.nit:281 */
+          /* ../lib/standard/collection/array.nit:281 */
           goto label210;
           label210: while(0);
-          /* ./compiling//compiling_icode.nit:798 */
+          /* compiling/compiling_icode.nit:798 */
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
           if (!once_value_211) {
             fra.me.REG[7] = BOX_NativeString("))");
@@ -9826,7 +9826,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
           fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
           fra.me.REG[5] = fra.me.REG[6];
         } else {
-          /* ./compiling//compiling_icode.nit:799 */
+          /* compiling/compiling_icode.nit:799 */
           if (!once_value_212) {
             if (!once_value_213) {
               fra.me.REG[6] = BOX_NativeString("unary -");
@@ -9848,7 +9848,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
             REGB1 = REGB2;
           }
           if (UNTAG_Bool(REGB1)) {
-            /* ./compiling//compiling_icode.nit:800 */
+            /* compiling/compiling_icode.nit:800 */
             REGB1 = TAG_Int(3);
             fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
             if (!once_value_214) {
@@ -9861,18 +9861,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
             fra.me.REG[7] = fra.me.REG[7];
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
             REGB1 = TAG_Int(0);
-            /* ./../lib/standard//collection//array.nit:278 */
+            /* ../lib/standard/collection/array.nit:278 */
             fra.me.REG[7] = fra.me.REG[4];
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB2 = TAG_Int(0);
             REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
             if (UNTAG_Bool(REGB0)) {
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:233 */
+            /* ../lib/standard/kernel.nit:233 */
             REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             if (UNTAG_Bool(REGB2)) {
               REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
               if (UNTAG_Bool(REGB2)) {
@@ -9885,29 +9885,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:232 */
+              /* ../lib/standard/kernel.nit:232 */
               REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
             } else {
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB0 = TAG_Bool(false);
               REGB2 = REGB0;
             }
             if (UNTAG_Bool(REGB2)) {
             } else {
-              nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+              nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
             }
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
             REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
             if (UNTAG_Bool(REGB2)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             goto label215;
             label215: while(0);
-            /* ./compiling//compiling_icode.nit:800 */
+            /* compiling/compiling_icode.nit:800 */
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
             if (!once_value_216) {
               fra.me.REG[7] = BOX_NativeString("))");
@@ -9921,7 +9921,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
             fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
             fra.me.REG[5] = fra.me.REG[6];
           } else {
-            /* ./compiling//compiling_icode.nit:801 */
+            /* compiling/compiling_icode.nit:801 */
             if (!once_value_217) {
               if (!once_value_218) {
                fra.me.REG[6] = BOX_NativeString("output");
@@ -9943,7 +9943,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               REGB1 = REGB2;
             }
             if (UNTAG_Bool(REGB1)) {
-              /* ./compiling//compiling_icode.nit:802 */
+              /* compiling/compiling_icode.nit:802 */
               REGB1 = TAG_Int(3);
               fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
               if (!once_value_219) {
@@ -9956,18 +9956,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               fra.me.REG[7] = fra.me.REG[7];
               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
               REGB1 = TAG_Int(0);
-              /* ./../lib/standard//collection//array.nit:278 */
+              /* ../lib/standard/collection/array.nit:278 */
               fra.me.REG[7] = fra.me.REG[4];
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB2 = TAG_Int(0);
               REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
               if (UNTAG_Bool(REGB0)) {
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:233 */
+              /* ../lib/standard/kernel.nit:233 */
               REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -9980,29 +9980,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
               } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
               }
               if (UNTAG_Bool(REGB2)) {
               } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
               }
-              /* ./../lib/standard//collection//array.nit:281 */
+              /* ../lib/standard/collection/array.nit:281 */
               fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
               REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
               if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
               }
-              /* ./../lib/standard//collection//array.nit:718 */
+              /* ../lib/standard/collection/array.nit:718 */
               fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-              /* ./../lib/standard//collection//array.nit:281 */
+              /* ../lib/standard/collection/array.nit:281 */
               goto label220;
               label220: while(0);
-              /* ./compiling//compiling_icode.nit:802 */
+              /* compiling/compiling_icode.nit:802 */
               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
               if (!once_value_221) {
                fra.me.REG[7] = BOX_NativeString("));");
@@ -10016,7 +10016,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
               fra.me.REG[5] = fra.me.REG[6];
             } else {
-              /* ./compiling//compiling_icode.nit:803 */
+              /* compiling/compiling_icode.nit:803 */
               if (!once_value_222) {
                if (!once_value_223) {
                fra.me.REG[6] = BOX_NativeString("ascii");
@@ -10038,7 +10038,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
               }
               if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:804 */
+               /* compiling/compiling_icode.nit:804 */
                REGB1 = TAG_Int(3);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_224) {
@@ -10051,18 +10051,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -10075,29 +10075,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label225;
                label225: while(0);
-               /* ./compiling//compiling_icode.nit:804 */
+               /* compiling/compiling_icode.nit:804 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_226) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -10111,7 +10111,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
               } else {
-               /* ./compiling//compiling_icode.nit:805 */
+               /* compiling/compiling_icode.nit:805 */
                if (!once_value_227) {
                if (!once_value_228) {
                fra.me.REG[6] = BOX_NativeString("succ");
@@ -10133,7 +10133,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:806 */
+               /* compiling/compiling_icode.nit:806 */
                REGB1 = TAG_Int(3);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_229) {
@@ -10146,18 +10146,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -10170,29 +10170,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label230;
                label230: while(0);
-               /* ./compiling//compiling_icode.nit:806 */
+               /* compiling/compiling_icode.nit:806 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_231) {
                fra.me.REG[7] = BOX_NativeString(")+1)");
@@ -10206,7 +10206,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:807 */
+               /* compiling/compiling_icode.nit:807 */
                if (!once_value_232) {
                if (!once_value_233) {
                fra.me.REG[6] = BOX_NativeString("prec");
@@ -10228,7 +10228,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:808 */
+               /* compiling/compiling_icode.nit:808 */
                REGB1 = TAG_Int(3);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_234) {
@@ -10241,18 +10241,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -10265,29 +10265,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label235;
                label235: while(0);
-               /* ./compiling//compiling_icode.nit:808 */
+               /* compiling/compiling_icode.nit:808 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_236) {
                fra.me.REG[7] = BOX_NativeString(")-1)");
@@ -10301,7 +10301,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:809 */
+               /* compiling/compiling_icode.nit:809 */
                if (!once_value_237) {
                if (!once_value_238) {
                fra.me.REG[6] = BOX_NativeString("to_i");
@@ -10323,7 +10323,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:810 */
+               /* compiling/compiling_icode.nit:810 */
                REGB1 = TAG_Int(3);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_239) {
@@ -10336,18 +10336,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -10360,29 +10360,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label240;
                label240: while(0);
-               /* ./compiling//compiling_icode.nit:810 */
+               /* compiling/compiling_icode.nit:810 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_241) {
                fra.me.REG[7] = BOX_NativeString(")-'0')");
@@ -10396,7 +10396,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:811 */
+               /* compiling/compiling_icode.nit:811 */
                if (!once_value_242) {
                if (!once_value_243) {
                fra.me.REG[6] = BOX_NativeString("+");
@@ -10418,7 +10418,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:812 */
+               /* compiling/compiling_icode.nit:812 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_244) {
@@ -10431,18 +10431,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -10455,29 +10455,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label245;
                label245: while(0);
-               /* ./compiling//compiling_icode.nit:812 */
+               /* compiling/compiling_icode.nit:812 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_246) {
                fra.me.REG[7] = BOX_NativeString(")+UNTAG_Char(");
@@ -10489,18 +10489,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -10513,29 +10513,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label247;
                label247: while(0);
-               /* ./compiling//compiling_icode.nit:812 */
+               /* compiling/compiling_icode.nit:812 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_248) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -10549,7 +10549,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:813 */
+               /* compiling/compiling_icode.nit:813 */
                if (!once_value_249) {
                if (!once_value_250) {
                fra.me.REG[6] = BOX_NativeString("-");
@@ -10571,7 +10571,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:814 */
+               /* compiling/compiling_icode.nit:814 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_251) {
@@ -10584,18 +10584,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -10608,29 +10608,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label252;
                label252: while(0);
-               /* ./compiling//compiling_icode.nit:814 */
+               /* compiling/compiling_icode.nit:814 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_253) {
                fra.me.REG[7] = BOX_NativeString(")-UNTAG_Char(");
@@ -10642,18 +10642,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -10666,29 +10666,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label254;
                label254: while(0);
-               /* ./compiling//compiling_icode.nit:814 */
+               /* compiling/compiling_icode.nit:814 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_255) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -10702,7 +10702,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:815 */
+               /* compiling/compiling_icode.nit:815 */
                if (!once_value_256) {
                if (!once_value_257) {
                fra.me.REG[6] = BOX_NativeString("*");
@@ -10724,7 +10724,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:816 */
+               /* compiling/compiling_icode.nit:816 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_258) {
@@ -10737,18 +10737,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -10761,29 +10761,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label259;
                label259: while(0);
-               /* ./compiling//compiling_icode.nit:816 */
+               /* compiling/compiling_icode.nit:816 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_260) {
                fra.me.REG[7] = BOX_NativeString(")*UNTAG_Char(");
@@ -10795,18 +10795,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -10819,29 +10819,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label261;
                label261: while(0);
-               /* ./compiling//compiling_icode.nit:816 */
+               /* compiling/compiling_icode.nit:816 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_262) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -10855,7 +10855,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:817 */
+               /* compiling/compiling_icode.nit:817 */
                if (!once_value_263) {
                if (!once_value_264) {
                fra.me.REG[6] = BOX_NativeString("/");
@@ -10877,7 +10877,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:818 */
+               /* compiling/compiling_icode.nit:818 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_265) {
@@ -10890,18 +10890,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -10914,29 +10914,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label266;
                label266: while(0);
-               /* ./compiling//compiling_icode.nit:818 */
+               /* compiling/compiling_icode.nit:818 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_267) {
                fra.me.REG[7] = BOX_NativeString(")/UNTAG_Char(");
@@ -10948,18 +10948,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -10972,29 +10972,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label268;
                label268: while(0);
-               /* ./compiling//compiling_icode.nit:818 */
+               /* compiling/compiling_icode.nit:818 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_269) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -11008,7 +11008,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:819 */
+               /* compiling/compiling_icode.nit:819 */
                if (!once_value_270) {
                if (!once_value_271) {
                fra.me.REG[6] = BOX_NativeString("%");
@@ -11030,7 +11030,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:820 */
+               /* compiling/compiling_icode.nit:820 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_272) {
@@ -11043,18 +11043,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -11067,29 +11067,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label273;
                label273: while(0);
-               /* ./compiling//compiling_icode.nit:820 */
+               /* compiling/compiling_icode.nit:820 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_274) {
                fra.me.REG[7] = BOX_NativeString(")%UNTAG_Char(");
@@ -11101,18 +11101,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -11125,29 +11125,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label275;
                label275: while(0);
-               /* ./compiling//compiling_icode.nit:820 */
+               /* compiling/compiling_icode.nit:820 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_276) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -11161,7 +11161,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:821 */
+               /* compiling/compiling_icode.nit:821 */
                if (!once_value_277) {
                if (!once_value_278) {
                fra.me.REG[6] = BOX_NativeString("<");
@@ -11183,7 +11183,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:822 */
+               /* compiling/compiling_icode.nit:822 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_279) {
@@ -11196,18 +11196,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -11220,29 +11220,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label280;
                label280: while(0);
-               /* ./compiling//compiling_icode.nit:822 */
+               /* compiling/compiling_icode.nit:822 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_281) {
                fra.me.REG[7] = BOX_NativeString(")<UNTAG_Char(");
@@ -11254,18 +11254,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -11278,29 +11278,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label282;
                label282: while(0);
-               /* ./compiling//compiling_icode.nit:822 */
+               /* compiling/compiling_icode.nit:822 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_283) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -11314,7 +11314,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:823 */
+               /* compiling/compiling_icode.nit:823 */
                if (!once_value_284) {
                if (!once_value_285) {
                fra.me.REG[6] = BOX_NativeString(">");
@@ -11336,7 +11336,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:824 */
+               /* compiling/compiling_icode.nit:824 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_286) {
@@ -11349,18 +11349,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -11373,29 +11373,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label287;
                label287: while(0);
-               /* ./compiling//compiling_icode.nit:824 */
+               /* compiling/compiling_icode.nit:824 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_288) {
                fra.me.REG[7] = BOX_NativeString(")>UNTAG_Char(");
@@ -11407,18 +11407,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -11431,29 +11431,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label289;
                label289: while(0);
-               /* ./compiling//compiling_icode.nit:824 */
+               /* compiling/compiling_icode.nit:824 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_290) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -11467,7 +11467,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:825 */
+               /* compiling/compiling_icode.nit:825 */
                if (!once_value_291) {
                if (!once_value_292) {
                fra.me.REG[6] = BOX_NativeString("<=");
@@ -11489,7 +11489,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:826 */
+               /* compiling/compiling_icode.nit:826 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_293) {
@@ -11502,18 +11502,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -11526,29 +11526,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label294;
                label294: while(0);
-               /* ./compiling//compiling_icode.nit:826 */
+               /* compiling/compiling_icode.nit:826 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_295) {
                fra.me.REG[7] = BOX_NativeString(")<=UNTAG_Char(");
@@ -11560,18 +11560,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -11584,29 +11584,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label296;
                label296: while(0);
-               /* ./compiling//compiling_icode.nit:826 */
+               /* compiling/compiling_icode.nit:826 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_297) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -11620,7 +11620,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:827 */
+               /* compiling/compiling_icode.nit:827 */
                if (!once_value_298) {
                if (!once_value_299) {
                fra.me.REG[6] = BOX_NativeString(">=");
@@ -11642,7 +11642,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:828 */
+               /* compiling/compiling_icode.nit:828 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_300) {
@@ -11655,18 +11655,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -11679,29 +11679,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label301;
                label301: while(0);
-               /* ./compiling//compiling_icode.nit:828 */
+               /* compiling/compiling_icode.nit:828 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_302) {
                fra.me.REG[7] = BOX_NativeString(")>=UNTAG_Char(");
@@ -11713,18 +11713,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -11737,29 +11737,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label303;
                label303: while(0);
-               /* ./compiling//compiling_icode.nit:828 */
+               /* compiling/compiling_icode.nit:828 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_304) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -11773,7 +11773,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:829 */
+               /* compiling/compiling_icode.nit:829 */
                if (!once_value_305) {
                if (!once_value_306) {
                fra.me.REG[6] = BOX_NativeString("==");
@@ -11795,7 +11795,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:830 */
+               /* compiling/compiling_icode.nit:830 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_307) {
@@ -11808,18 +11808,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -11832,29 +11832,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label308;
                label308: while(0);
-               /* ./compiling//compiling_icode.nit:830 */
+               /* compiling/compiling_icode.nit:830 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_309) {
                fra.me.REG[7] = BOX_NativeString(")==(");
@@ -11866,18 +11866,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -11890,29 +11890,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label310;
                label310: while(0);
-               /* ./compiling//compiling_icode.nit:830 */
+               /* compiling/compiling_icode.nit:830 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_311) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -11926,7 +11926,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:831 */
+               /* compiling/compiling_icode.nit:831 */
                if (!once_value_312) {
                if (!once_value_313) {
                fra.me.REG[6] = BOX_NativeString("!=");
@@ -11948,7 +11948,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:832 */
+               /* compiling/compiling_icode.nit:832 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_314) {
@@ -11961,18 +11961,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -11985,29 +11985,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label315;
                label315: while(0);
-               /* ./compiling//compiling_icode.nit:832 */
+               /* compiling/compiling_icode.nit:832 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_316) {
                fra.me.REG[7] = BOX_NativeString(")!=(");
@@ -12019,18 +12019,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -12043,29 +12043,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label317;
                label317: while(0);
-               /* ./compiling//compiling_icode.nit:832 */
+               /* compiling/compiling_icode.nit:832 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_318) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -12097,7 +12097,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
           }
         }
       } else {
-        /* ./compiling//compiling_icode.nit:834 */
+        /* compiling/compiling_icode.nit:834 */
         if (!once_value_319) {
           if (!once_value_320) {
             fra.me.REG[6] = BOX_NativeString("Bool");
@@ -12119,7 +12119,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
           REGB1 = REGB2;
         }
         if (UNTAG_Bool(REGB1)) {
-          /* ./compiling//compiling_icode.nit:835 */
+          /* compiling/compiling_icode.nit:835 */
           if (!once_value_321) {
             if (!once_value_322) {
               fra.me.REG[6] = BOX_NativeString("object_id");
@@ -12141,7 +12141,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
             REGB1 = REGB2;
           }
           if (UNTAG_Bool(REGB1)) {
-            /* ./compiling//compiling_icode.nit:836 */
+            /* compiling/compiling_icode.nit:836 */
             REGB1 = TAG_Int(3);
             fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
             if (!once_value_323) {
@@ -12154,18 +12154,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
             fra.me.REG[7] = fra.me.REG[7];
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
             REGB1 = TAG_Int(0);
-            /* ./../lib/standard//collection//array.nit:278 */
+            /* ../lib/standard/collection/array.nit:278 */
             fra.me.REG[7] = fra.me.REG[4];
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB2 = TAG_Int(0);
             REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
             if (UNTAG_Bool(REGB0)) {
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:233 */
+            /* ../lib/standard/kernel.nit:233 */
             REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             if (UNTAG_Bool(REGB2)) {
               REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
               if (UNTAG_Bool(REGB2)) {
@@ -12178,29 +12178,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:232 */
+              /* ../lib/standard/kernel.nit:232 */
               REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
             } else {
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB0 = TAG_Bool(false);
               REGB2 = REGB0;
             }
             if (UNTAG_Bool(REGB2)) {
             } else {
-              nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+              nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
             }
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
             REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
             if (UNTAG_Bool(REGB2)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             goto label324;
             label324: while(0);
-            /* ./compiling//compiling_icode.nit:836 */
+            /* compiling/compiling_icode.nit:836 */
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
             if (!once_value_325) {
               fra.me.REG[7] = BOX_NativeString("))");
@@ -12214,7 +12214,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
             fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
             fra.me.REG[5] = fra.me.REG[6];
           } else {
-            /* ./compiling//compiling_icode.nit:837 */
+            /* compiling/compiling_icode.nit:837 */
             if (!once_value_326) {
               if (!once_value_327) {
                fra.me.REG[6] = BOX_NativeString("unary -");
@@ -12236,7 +12236,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               REGB1 = REGB2;
             }
             if (UNTAG_Bool(REGB1)) {
-              /* ./compiling//compiling_icode.nit:838 */
+              /* compiling/compiling_icode.nit:838 */
               REGB1 = TAG_Int(3);
               fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
               if (!once_value_328) {
@@ -12249,18 +12249,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               fra.me.REG[7] = fra.me.REG[7];
               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
               REGB1 = TAG_Int(0);
-              /* ./../lib/standard//collection//array.nit:278 */
+              /* ../lib/standard/collection/array.nit:278 */
               fra.me.REG[7] = fra.me.REG[4];
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB2 = TAG_Int(0);
               REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
               if (UNTAG_Bool(REGB0)) {
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:233 */
+              /* ../lib/standard/kernel.nit:233 */
               REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -12273,29 +12273,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
               } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
               }
               if (UNTAG_Bool(REGB2)) {
               } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
               }
-              /* ./../lib/standard//collection//array.nit:281 */
+              /* ../lib/standard/collection/array.nit:281 */
               fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
               REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
               if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
               }
-              /* ./../lib/standard//collection//array.nit:718 */
+              /* ../lib/standard/collection/array.nit:718 */
               fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-              /* ./../lib/standard//collection//array.nit:281 */
+              /* ../lib/standard/collection/array.nit:281 */
               goto label329;
               label329: while(0);
-              /* ./compiling//compiling_icode.nit:838 */
+              /* compiling/compiling_icode.nit:838 */
               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
               if (!once_value_330) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -12309,7 +12309,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
               fra.me.REG[5] = fra.me.REG[6];
             } else {
-              /* ./compiling//compiling_icode.nit:839 */
+              /* compiling/compiling_icode.nit:839 */
               if (!once_value_331) {
                if (!once_value_332) {
                fra.me.REG[6] = BOX_NativeString("output");
@@ -12331,7 +12331,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
               }
               if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:840 */
+               /* compiling/compiling_icode.nit:840 */
                REGB1 = TAG_Int(3);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_333) {
@@ -12344,18 +12344,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -12368,29 +12368,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label334;
                label334: while(0);
-               /* ./compiling//compiling_icode.nit:840 */
+               /* compiling/compiling_icode.nit:840 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_335) {
                fra.me.REG[7] = BOX_NativeString(")?\"true\\n\":\"false\\n\");");
@@ -12404,7 +12404,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
               } else {
-               /* ./compiling//compiling_icode.nit:841 */
+               /* compiling/compiling_icode.nit:841 */
                if (!once_value_336) {
                if (!once_value_337) {
                fra.me.REG[6] = BOX_NativeString("ascii");
@@ -12426,7 +12426,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:842 */
+               /* compiling/compiling_icode.nit:842 */
                REGB1 = TAG_Int(3);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_338) {
@@ -12439,18 +12439,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -12463,29 +12463,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label339;
                label339: while(0);
-               /* ./compiling//compiling_icode.nit:842 */
+               /* compiling/compiling_icode.nit:842 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_340) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -12499,7 +12499,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:843 */
+               /* compiling/compiling_icode.nit:843 */
                if (!once_value_341) {
                if (!once_value_342) {
                fra.me.REG[6] = BOX_NativeString("to_i");
@@ -12521,7 +12521,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:844 */
+               /* compiling/compiling_icode.nit:844 */
                REGB1 = TAG_Int(3);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_343) {
@@ -12534,18 +12534,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -12558,29 +12558,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label344;
                label344: while(0);
-               /* ./compiling//compiling_icode.nit:844 */
+               /* compiling/compiling_icode.nit:844 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_345) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -12594,7 +12594,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:845 */
+               /* compiling/compiling_icode.nit:845 */
                if (!once_value_346) {
                if (!once_value_347) {
                fra.me.REG[6] = BOX_NativeString("==");
@@ -12616,7 +12616,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:846 */
+               /* compiling/compiling_icode.nit:846 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_348) {
@@ -12629,18 +12629,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -12653,29 +12653,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label349;
                label349: while(0);
-               /* ./compiling//compiling_icode.nit:846 */
+               /* compiling/compiling_icode.nit:846 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_350) {
                fra.me.REG[7] = BOX_NativeString(")==(");
@@ -12687,18 +12687,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -12711,29 +12711,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label351;
                label351: while(0);
-               /* ./compiling//compiling_icode.nit:846 */
+               /* compiling/compiling_icode.nit:846 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_352) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -12747,7 +12747,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:847 */
+               /* compiling/compiling_icode.nit:847 */
                if (!once_value_353) {
                if (!once_value_354) {
                fra.me.REG[6] = BOX_NativeString("!=");
@@ -12769,7 +12769,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:848 */
+               /* compiling/compiling_icode.nit:848 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_355) {
@@ -12782,18 +12782,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -12806,29 +12806,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label356;
                label356: while(0);
-               /* ./compiling//compiling_icode.nit:848 */
+               /* compiling/compiling_icode.nit:848 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_357) {
                fra.me.REG[7] = BOX_NativeString(")!=(");
@@ -12840,18 +12840,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -12864,29 +12864,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label358;
                label358: while(0);
-               /* ./compiling//compiling_icode.nit:848 */
+               /* compiling/compiling_icode.nit:848 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_359) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -12907,7 +12907,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
             }
           }
         } else {
-          /* ./compiling//compiling_icode.nit:850 */
+          /* compiling/compiling_icode.nit:850 */
           if (!once_value_360) {
             if (!once_value_361) {
               fra.me.REG[6] = BOX_NativeString("NativeArray");
@@ -12929,7 +12929,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
             REGB1 = REGB2;
           }
           if (UNTAG_Bool(REGB1)) {
-            /* ./compiling//compiling_icode.nit:851 */
+            /* compiling/compiling_icode.nit:851 */
             if (!once_value_362) {
               if (!once_value_363) {
                fra.me.REG[6] = BOX_NativeString("object_id");
@@ -12951,7 +12951,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               REGB1 = REGB2;
             }
             if (UNTAG_Bool(REGB1)) {
-              /* ./compiling//compiling_icode.nit:852 */
+              /* compiling/compiling_icode.nit:852 */
               REGB1 = TAG_Int(3);
               fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
               if (!once_value_364) {
@@ -12964,18 +12964,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               fra.me.REG[7] = fra.me.REG[7];
               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
               REGB1 = TAG_Int(0);
-              /* ./../lib/standard//collection//array.nit:278 */
+              /* ../lib/standard/collection/array.nit:278 */
               fra.me.REG[7] = fra.me.REG[4];
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB2 = TAG_Int(0);
               REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
               if (UNTAG_Bool(REGB0)) {
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:233 */
+              /* ../lib/standard/kernel.nit:233 */
               REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -12988,29 +12988,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
               } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
               }
               if (UNTAG_Bool(REGB2)) {
               } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
               }
-              /* ./../lib/standard//collection//array.nit:281 */
+              /* ../lib/standard/collection/array.nit:281 */
               fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
               REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
               if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
               }
-              /* ./../lib/standard//collection//array.nit:718 */
+              /* ../lib/standard/collection/array.nit:718 */
               fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-              /* ./../lib/standard//collection//array.nit:281 */
+              /* ../lib/standard/collection/array.nit:281 */
               goto label365;
               label365: while(0);
-              /* ./compiling//compiling_icode.nit:852 */
+              /* compiling/compiling_icode.nit:852 */
               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
               if (!once_value_366) {
                fra.me.REG[7] = BOX_NativeString(")->object_id)");
@@ -13024,7 +13024,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
               fra.me.REG[5] = fra.me.REG[6];
             } else {
-              /* ./compiling//compiling_icode.nit:853 */
+              /* compiling/compiling_icode.nit:853 */
               if (!once_value_367) {
                if (!once_value_368) {
                fra.me.REG[6] = BOX_NativeString("[]");
@@ -13046,7 +13046,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
               }
               if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:854 */
+               /* compiling/compiling_icode.nit:854 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_369) {
@@ -13059,18 +13059,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -13083,29 +13083,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label370;
                label370: while(0);
-               /* ./compiling//compiling_icode.nit:854 */
+               /* compiling/compiling_icode.nit:854 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_371) {
                fra.me.REG[7] = BOX_NativeString(")->val[UNTAG_Int(");
@@ -13117,18 +13117,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -13141,29 +13141,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label372;
                label372: while(0);
-               /* ./compiling//compiling_icode.nit:854 */
+               /* compiling/compiling_icode.nit:854 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_373) {
                fra.me.REG[7] = BOX_NativeString(")]");
@@ -13177,7 +13177,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
               } else {
-               /* ./compiling//compiling_icode.nit:855 */
+               /* compiling/compiling_icode.nit:855 */
                if (!once_value_374) {
                if (!once_value_375) {
                fra.me.REG[6] = BOX_NativeString("[]=");
@@ -13199,7 +13199,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:856 */
+               /* compiling/compiling_icode.nit:856 */
                REGB1 = TAG_Int(7);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_376) {
@@ -13212,18 +13212,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -13236,29 +13236,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label377;
                label377: while(0);
-               /* ./compiling//compiling_icode.nit:856 */
+               /* compiling/compiling_icode.nit:856 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_378) {
                fra.me.REG[7] = BOX_NativeString(")->val[UNTAG_Int(");
@@ -13270,18 +13270,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -13294,29 +13294,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label379;
                label379: while(0);
-               /* ./compiling//compiling_icode.nit:856 */
+               /* compiling/compiling_icode.nit:856 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_380) {
                fra.me.REG[7] = BOX_NativeString(")]=");
@@ -13328,18 +13328,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(2);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -13352,29 +13352,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label381;
                label381: while(0);
-               /* ./compiling//compiling_icode.nit:856 */
+               /* compiling/compiling_icode.nit:856 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_382) {
                fra.me.REG[7] = BOX_NativeString("");
@@ -13388,7 +13388,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:857 */
+               /* compiling/compiling_icode.nit:857 */
                if (!once_value_383) {
                if (!once_value_384) {
                fra.me.REG[6] = BOX_NativeString("copy_to");
@@ -13410,7 +13410,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:858 */
+               /* compiling/compiling_icode.nit:858 */
                REGB1 = TAG_Int(7);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_385) {
@@ -13423,18 +13423,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -13447,29 +13447,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label386;
                label386: while(0);
-               /* ./compiling//compiling_icode.nit:858 */
+               /* compiling/compiling_icode.nit:858 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_387) {
                fra.me.REG[7] = BOX_NativeString(")->val, ((Nit_NativeArray)");
@@ -13481,18 +13481,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -13505,29 +13505,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label388;
                label388: while(0);
-               /* ./compiling//compiling_icode.nit:858 */
+               /* compiling/compiling_icode.nit:858 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_389) {
                fra.me.REG[7] = BOX_NativeString(")->val, UNTAG_Int(");
@@ -13539,18 +13539,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(2);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -13563,29 +13563,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label390;
                label390: while(0);
-               /* ./compiling//compiling_icode.nit:858 */
+               /* compiling/compiling_icode.nit:858 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_391) {
                fra.me.REG[7] = BOX_NativeString(")*sizeof(val_t))");
@@ -13603,7 +13603,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               }
             }
           } else {
-            /* ./compiling//compiling_icode.nit:860 */
+            /* compiling/compiling_icode.nit:860 */
             if (!once_value_392) {
               if (!once_value_393) {
                fra.me.REG[6] = BOX_NativeString("NativeString");
@@ -13625,7 +13625,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
               REGB1 = REGB2;
             }
             if (UNTAG_Bool(REGB1)) {
-              /* ./compiling//compiling_icode.nit:861 */
+              /* compiling/compiling_icode.nit:861 */
               if (!once_value_394) {
                if (!once_value_395) {
                fra.me.REG[6] = BOX_NativeString("object_id");
@@ -13647,7 +13647,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
               }
               if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:862 */
+               /* compiling/compiling_icode.nit:862 */
                REGB1 = TAG_Int(3);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_396) {
@@ -13660,18 +13660,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -13684,29 +13684,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label397;
                label397: while(0);
-               /* ./compiling//compiling_icode.nit:862 */
+               /* compiling/compiling_icode.nit:862 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_398) {
                fra.me.REG[7] = BOX_NativeString("))");
@@ -13720,7 +13720,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
               } else {
-               /* ./compiling//compiling_icode.nit:863 */
+               /* compiling/compiling_icode.nit:863 */
                if (!once_value_399) {
                if (!once_value_400) {
                fra.me.REG[6] = BOX_NativeString("atoi");
@@ -13742,7 +13742,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:864 */
+               /* compiling/compiling_icode.nit:864 */
                REGB1 = TAG_Int(3);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_401) {
@@ -13755,18 +13755,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -13779,29 +13779,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label402;
                label402: while(0);
-               /* ./compiling//compiling_icode.nit:864 */
+               /* compiling/compiling_icode.nit:864 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_403) {
                fra.me.REG[7] = BOX_NativeString(")))");
@@ -13815,7 +13815,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:865 */
+               /* compiling/compiling_icode.nit:865 */
                if (!once_value_404) {
                if (!once_value_405) {
                fra.me.REG[6] = BOX_NativeString("[]");
@@ -13837,7 +13837,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:866 */
+               /* compiling/compiling_icode.nit:866 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_406) {
@@ -13850,18 +13850,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -13874,29 +13874,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label407;
                label407: while(0);
-               /* ./compiling//compiling_icode.nit:866 */
+               /* compiling/compiling_icode.nit:866 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_408) {
                fra.me.REG[7] = BOX_NativeString(")[UNTAG_Int(");
@@ -13908,18 +13908,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -13932,29 +13932,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label409;
                label409: while(0);
-               /* ./compiling//compiling_icode.nit:866 */
+               /* compiling/compiling_icode.nit:866 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_410) {
                fra.me.REG[7] = BOX_NativeString(")])");
@@ -13968,7 +13968,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:867 */
+               /* compiling/compiling_icode.nit:867 */
                if (!once_value_411) {
                if (!once_value_412) {
                fra.me.REG[6] = BOX_NativeString("[]=");
@@ -13990,7 +13990,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:868 */
+               /* compiling/compiling_icode.nit:868 */
                REGB1 = TAG_Int(7);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_413) {
@@ -14003,18 +14003,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -14027,29 +14027,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label414;
                label414: while(0);
-               /* ./compiling//compiling_icode.nit:868 */
+               /* compiling/compiling_icode.nit:868 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_415) {
                fra.me.REG[7] = BOX_NativeString(")[UNTAG_Int(");
@@ -14061,18 +14061,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -14085,29 +14085,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label416;
                label416: while(0);
-               /* ./compiling//compiling_icode.nit:868 */
+               /* compiling/compiling_icode.nit:868 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_417) {
                fra.me.REG[7] = BOX_NativeString(")]=UNTAG_Char(");
@@ -14119,18 +14119,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(2);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -14143,29 +14143,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label418;
                label418: while(0);
-               /* ./compiling//compiling_icode.nit:868 */
+               /* compiling/compiling_icode.nit:868 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_419) {
                fra.me.REG[7] = BOX_NativeString(");");
@@ -14179,7 +14179,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:869 */
+               /* compiling/compiling_icode.nit:869 */
                if (!once_value_420) {
                if (!once_value_421) {
                fra.me.REG[6] = BOX_NativeString("copy_to");
@@ -14201,7 +14201,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:870 */
+               /* compiling/compiling_icode.nit:870 */
                REGB1 = TAG_Int(11);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_422) {
@@ -14214,18 +14214,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -14238,29 +14238,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label423;
                label423: while(0);
-               /* ./compiling//compiling_icode.nit:870 */
+               /* compiling/compiling_icode.nit:870 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_424) {
                fra.me.REG[7] = BOX_NativeString(")+UNTAG_Int(");
@@ -14272,18 +14272,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(4);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -14296,29 +14296,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label425;
                label425: while(0);
-               /* ./compiling//compiling_icode.nit:870 */
+               /* compiling/compiling_icode.nit:870 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_426) {
                fra.me.REG[7] = BOX_NativeString("), UNBOX_NativeString(");
@@ -14330,18 +14330,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -14354,29 +14354,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label427;
                label427: while(0);
-               /* ./compiling//compiling_icode.nit:870 */
+               /* compiling/compiling_icode.nit:870 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_428) {
                fra.me.REG[7] = BOX_NativeString(")+UNTAG_Int(");
@@ -14388,18 +14388,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(3);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -14412,29 +14412,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label429;
                label429: while(0);
-               /* ./compiling//compiling_icode.nit:870 */
+               /* compiling/compiling_icode.nit:870 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_430) {
                fra.me.REG[7] = BOX_NativeString("), UNTAG_Int(");
@@ -14446,18 +14446,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[7] = fra.me.REG[7];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                REGB1 = TAG_Int(2);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[7] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -14470,29 +14470,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
                REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label431;
                label431: while(0);
-               /* ./compiling//compiling_icode.nit:870 */
+               /* compiling/compiling_icode.nit:870 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
                if (!once_value_432) {
                fra.me.REG[7] = BOX_NativeString("));");
@@ -14511,7 +14511,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                }
               }
             } else {
-              /* ./compiling//compiling_icode.nit:872 */
+              /* compiling/compiling_icode.nit:872 */
               if (!once_value_433) {
                if (!once_value_434) {
                fra.me.REG[6] = BOX_NativeString("Sys");
@@ -14533,7 +14533,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
               }
               if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:873 */
+               /* compiling/compiling_icode.nit:873 */
                if (!once_value_435) {
                if (!once_value_436) {
                fra.me.REG[6] = BOX_NativeString("force_garbage_collection");
@@ -14555,7 +14555,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:874 */
+               /* compiling/compiling_icode.nit:874 */
                if (!once_value_437) {
                fra.me.REG[6] = BOX_NativeString("Nit_gc_force_garbage_collection()");
                REGB1 = TAG_Int(33);
@@ -14567,7 +14567,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[5] = fra.me.REG[6];
                }
               } else {
-               /* ./compiling//compiling_icode.nit:876 */
+               /* compiling/compiling_icode.nit:876 */
                if (!once_value_438) {
                if (!once_value_439) {
                fra.me.REG[6] = BOX_NativeString("object_id");
@@ -14589,7 +14589,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:877 */
+               /* compiling/compiling_icode.nit:877 */
                REGB1 = TAG_Int(3);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_440) {
@@ -14602,18 +14602,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[2] = fra.me.REG[2];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[2] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -14626,29 +14626,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
                REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label441;
                label441: while(0);
-               /* ./compiling//compiling_icode.nit:877 */
+               /* compiling/compiling_icode.nit:877 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
                if (!once_value_442) {
                fra.me.REG[2] = BOX_NativeString(")[1].object_id)");
@@ -14662,7 +14662,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:878 */
+               /* compiling/compiling_icode.nit:878 */
                if (!once_value_443) {
                if (!once_value_444) {
                fra.me.REG[6] = BOX_NativeString("sys");
@@ -14684,7 +14684,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:879 */
+               /* compiling/compiling_icode.nit:879 */
                if (!once_value_445) {
                fra.me.REG[6] = BOX_NativeString("(G_sys)");
                REGB1 = TAG_Int(7);
@@ -14695,7 +14695,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = fra.me.REG[6];
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:880 */
+               /* compiling/compiling_icode.nit:880 */
                if (!once_value_446) {
                if (!once_value_447) {
                fra.me.REG[6] = BOX_NativeString("is_same_type");
@@ -14717,7 +14717,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:881 */
+               /* compiling/compiling_icode.nit:881 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_448) {
@@ -14730,18 +14730,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[2] = fra.me.REG[2];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[2] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -14754,29 +14754,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
                REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label449;
                label449: while(0);
-               /* ./compiling//compiling_icode.nit:881 */
+               /* compiling/compiling_icode.nit:881 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
                if (!once_value_450) {
                fra.me.REG[2] = BOX_NativeString(")==VAL2VFT(");
@@ -14788,18 +14788,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[2] = fra.me.REG[2];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[2] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -14812,29 +14812,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
                REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label451;
                label451: while(0);
-               /* ./compiling//compiling_icode.nit:881 */
+               /* compiling/compiling_icode.nit:881 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
                if (!once_value_452) {
                fra.me.REG[2] = BOX_NativeString(")))");
@@ -14848,7 +14848,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:882 */
+               /* compiling/compiling_icode.nit:882 */
                if (!once_value_453) {
                if (!once_value_454) {
                fra.me.REG[6] = BOX_NativeString("exit");
@@ -14870,7 +14870,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:883 */
+               /* compiling/compiling_icode.nit:883 */
                REGB1 = TAG_Int(3);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_455) {
@@ -14883,18 +14883,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[2] = fra.me.REG[2];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[2] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -14907,29 +14907,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
                REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label456;
                label456: while(0);
-               /* ./compiling//compiling_icode.nit:883 */
+               /* compiling/compiling_icode.nit:883 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
                if (!once_value_457) {
                fra.me.REG[2] = BOX_NativeString("));");
@@ -14943,7 +14943,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:884 */
+               /* compiling/compiling_icode.nit:884 */
                if (!once_value_458) {
                if (!once_value_459) {
                fra.me.REG[6] = BOX_NativeString("calloc_array");
@@ -14965,7 +14965,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:885 */
+               /* compiling/compiling_icode.nit:885 */
                REGB1 = TAG_Int(3);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_460) {
@@ -14978,18 +14978,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[2] = fra.me.REG[2];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[2] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -15002,29 +15002,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
                REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label461;
                label461: while(0);
-               /* ./compiling//compiling_icode.nit:885 */
+               /* compiling/compiling_icode.nit:885 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
                if (!once_value_462) {
                fra.me.REG[2] = BOX_NativeString("), sizeof(val_t))");
@@ -15038,7 +15038,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:886 */
+               /* compiling/compiling_icode.nit:886 */
                if (!once_value_463) {
                if (!once_value_464) {
                fra.me.REG[6] = BOX_NativeString("calloc_string");
@@ -15060,7 +15060,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:887 */
+               /* compiling/compiling_icode.nit:887 */
                REGB1 = TAG_Int(3);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_465) {
@@ -15073,18 +15073,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[2] = fra.me.REG[2];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[2] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -15097,29 +15097,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
                REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label466;
                label466: while(0);
-               /* ./compiling//compiling_icode.nit:887 */
+               /* compiling/compiling_icode.nit:887 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
                if (!once_value_467) {
                fra.me.REG[2] = BOX_NativeString(") * sizeof(char))))");
@@ -15133,7 +15133,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:889 */
+               /* compiling/compiling_icode.nit:889 */
                if (!once_value_468) {
                if (!once_value_469) {
                fra.me.REG[6] = BOX_NativeString("output_class_name");
@@ -15155,7 +15155,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:890 */
+               /* compiling/compiling_icode.nit:890 */
                REGB1 = TAG_Int(3);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_470) {
@@ -15168,18 +15168,18 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[2] = fra.me.REG[2];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[2] = fra.me.REG[4];
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -15192,29 +15192,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
                REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label471;
                label471: while(0);
-               /* ./compiling//compiling_icode.nit:890 */
+               /* compiling/compiling_icode.nit:890 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
                if (!once_value_472) {
                fra.me.REG[2] = BOX_NativeString(")[2].cname);");
@@ -15228,7 +15228,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
                fra.me.REG[5] = fra.me.REG[6];
                } else {
-               /* ./compiling//compiling_icode.nit:892 */
+               /* compiling/compiling_icode.nit:892 */
                if (!once_value_473) {
                if (!once_value_474) {
                fra.me.REG[6] = BOX_NativeString("native_class_name");
@@ -15250,7 +15250,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                REGB1 = REGB2;
                }
                if (UNTAG_Bool(REGB1)) {
-               /* ./compiling//compiling_icode.nit:893 */
+               /* compiling/compiling_icode.nit:893 */
                REGB1 = TAG_Int(3);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_475) {
@@ -15263,16 +15263,16 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                fra.me.REG[3] = fra.me.REG[3];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
                REGB1 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB2 = TAG_Int(0);
                REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB2)) {
                REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
@@ -15285,29 +15285,29 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB0 = TAG_Bool(false);
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
                REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
                if (UNTAG_Bool(REGB2)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label476;
                label476: while(0);
-               /* ./compiling//compiling_icode.nit:893 */
+               /* compiling/compiling_icode.nit:893 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
                if (!once_value_477) {
                fra.me.REG[4] = BOX_NativeString(")[2].cname);");
@@ -15335,7 +15335,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
       }
     }
   }
-  /* ./compiling//compiling_icode.nit:896 */
+  /* compiling/compiling_icode.nit:896 */
   REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -15349,9 +15349,9 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
     }
   }
   if (UNTAG_Bool(REGB1)) {
-    /* ./compiling//compiling_icode.nit:897 */
+    /* compiling/compiling_icode.nit:897 */
     fra.me.REG[6] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
-    /* ./compiling//compiling_icode.nit:898 */
+    /* compiling/compiling_icode.nit:898 */
     REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -15395,7 +15395,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
       fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
       CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
     }
-    /* ./compiling//compiling_icode.nit:899 */
+    /* compiling/compiling_icode.nit:899 */
     REGB1 = TAG_Int(3);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
     if (!once_value_480) {
@@ -15421,7 +15421,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-    /* ./compiling//compiling_icode.nit:900 */
+    /* compiling/compiling_icode.nit:900 */
     if (!once_value_482) {
       fra.me.REG[4] = BOX_NativeString("nit_exit(1);");
       REGB1 = TAG_Int(12);
@@ -15431,7 +15431,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
     } else fra.me.REG[4] = once_value_482;
     fra.me.REG[4] = fra.me.REG[4];
     CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-    /* ./compiling//compiling_icode.nit:901 */
+    /* compiling/compiling_icode.nit:901 */
     if (!once_value_483) {
       fra.me.REG[4] = BOX_NativeString("NIT_NULL");
       REGB1 = TAG_Int(8);
@@ -15442,7 +15442,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
     fra.me.REG[4] = fra.me.REG[4];
     fra.me.REG[5] = fra.me.REG[4];
   }
-  /* ./compiling//compiling_icode.nit:903 */
+  /* compiling/compiling_icode.nit:903 */
   fra.me.REG[4] = CALL_icode___icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -15457,7 +15457,7 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
     }
   }
   if (UNTAG_Bool(REGB1)) {
-    /* ./compiling//compiling_icode.nit:904 */
+    /* compiling/compiling_icode.nit:904 */
     fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[4] = CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
     if (!once_value_484) {
@@ -15470,12 +15470,12 @@ void compiling___compiling_icode___INative___compile_intern_method_to_c(val_t p0
     fra.me.REG[6] = fra.me.REG[6];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
   } else {
-    /* ./compiling//compiling_icode.nit:905 */
+    /* compiling/compiling_icode.nit:905 */
     REGB1 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
     if (UNTAG_Bool(REGB1)) {
-      /* ./compiling//compiling_icode.nit:906 */
+      /* compiling/compiling_icode.nit:906 */
       fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-      /* ./compiling//compiling_icode.nit:907 */
+      /* compiling/compiling_icode.nit:907 */
       CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
     }
   }
@@ -15500,12 +15500,12 @@ void compiling___compiling_icode___IIntValue___compile_to_c(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:915 */
+  /* compiling/compiling_icode.nit:915 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:916 */
+  /* compiling/compiling_icode.nit:916 */
   fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:917 */
+  /* compiling/compiling_icode.nit:917 */
   if (!once_value_1) {
     fra.me.REG[2] = BOX_NativeString("TAG_Int(");
     REGB0 = TAG_Int(8);
@@ -15550,12 +15550,12 @@ void compiling___compiling_icode___IBoolValue___compile_to_c(val_t p0, val_t p1)
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:924 */
+  /* compiling/compiling_icode.nit:924 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:925 */
+  /* compiling/compiling_icode.nit:925 */
   fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:926 */
+  /* compiling/compiling_icode.nit:926 */
   if (!once_value_1) {
     fra.me.REG[2] = BOX_NativeString("TAG_Bool(");
     REGB0 = TAG_Int(9);
@@ -15565,7 +15565,7 @@ void compiling___compiling_icode___IBoolValue___compile_to_c(val_t p0, val_t p1)
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:927 */
+  /* compiling/compiling_icode.nit:927 */
   REGB0 = CALL_icode___icode_base___IBoolValue___value(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
     if (!once_value_2) {
@@ -15588,7 +15588,7 @@ void compiling___compiling_icode___IBoolValue___compile_to_c(val_t p0, val_t p1)
     fra.me.REG[0] = fra.me.REG[0];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
-  /* ./compiling//compiling_icode.nit:928 */
+  /* compiling/compiling_icode.nit:928 */
   if (!once_value_4) {
     fra.me.REG[0] = BOX_NativeString(")");
     REGB0 = TAG_Int(1);
@@ -15619,12 +15619,12 @@ void compiling___compiling_icode___ICharValue___compile_to_c(val_t p0, val_t p1)
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:935 */
+  /* compiling/compiling_icode.nit:935 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:936 */
+  /* compiling/compiling_icode.nit:936 */
   fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:937 */
+  /* compiling/compiling_icode.nit:937 */
   if (!once_value_1) {
     fra.me.REG[2] = BOX_NativeString("TAG_Char(");
     REGB0 = TAG_Int(9);
@@ -15666,12 +15666,12 @@ void compiling___compiling_icode___IFloatValue___compile_to_c(val_t p0, val_t p1
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:944 */
+  /* compiling/compiling_icode.nit:944 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:945 */
+  /* compiling/compiling_icode.nit:945 */
   fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:946 */
+  /* compiling/compiling_icode.nit:946 */
   if (!once_value_1) {
     fra.me.REG[2] = BOX_NativeString("BOX_Float(");
     REGB0 = TAG_Int(10);
@@ -15713,12 +15713,12 @@ void compiling___compiling_icode___IStringValue___compile_to_c(val_t p0, val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:953 */
+  /* compiling/compiling_icode.nit:953 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:954 */
+  /* compiling/compiling_icode.nit:954 */
   fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:955 */
+  /* compiling/compiling_icode.nit:955 */
   if (!once_value_1) {
     fra.me.REG[2] = BOX_NativeString("BOX_NativeString(\"");
     REGB0 = TAG_Int(18);
@@ -15768,12 +15768,12 @@ void compiling___compiling_icode___IAbort___compile_to_c(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:962 */
+  /* compiling/compiling_icode.nit:962 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:963 */
+  /* compiling/compiling_icode.nit:963 */
   fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:964 */
+  /* compiling/compiling_icode.nit:964 */
   if (!once_value_1) {
     fra.me.REG[2] = BOX_NativeString("nit_abort(\"");
     REGB0 = TAG_Int(11);
@@ -15783,19 +15783,19 @@ void compiling___compiling_icode___IAbort___compile_to_c(val_t p0, val_t p1){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:965 */
+  /* compiling/compiling_icode.nit:965 */
   fra.me.REG[2] = CALL_icode___icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -15808,51 +15808,51 @@ void compiling___compiling_icode___IAbort___compile_to_c(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
   } else {
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB2 = TAG_Bool(false);
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+    nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
   }
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
   REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
   }
-  /* ./../lib/standard//collection//array.nit:718 */
+  /* ../lib/standard/collection/array.nit:718 */
   fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   goto label2;
   label2: while(0);
-  /* ./compiling//compiling_icode.nit:965 */
+  /* compiling/compiling_icode.nit:965 */
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:966 */
+  /* compiling/compiling_icode.nit:966 */
   fra.me.REG[2] = CALL_icode___icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:966 */
+  /* compiling/compiling_icode.nit:966 */
   REGB1 = TAG_Int(1);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-  /* ./compiling//compiling_icode.nit:966 */
+  /* compiling/compiling_icode.nit:966 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./compiling//compiling_icode.nit:967 */
+    /* compiling/compiling_icode.nit:967 */
     if (!once_value_3) {
       fra.me.REG[2] = BOX_NativeString("\", \"");
       REGB1 = TAG_Int(4);
@@ -15862,19 +15862,19 @@ void compiling___compiling_icode___IAbort___compile_to_c(val_t p0, val_t p1){
     } else fra.me.REG[2] = once_value_3;
     fra.me.REG[2] = fra.me.REG[2];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-    /* ./compiling//compiling_icode.nit:968 */
+    /* compiling/compiling_icode.nit:968 */
     fra.me.REG[2] = CALL_icode___icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
     REGB1 = TAG_Int(1);
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB0 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     if (UNTAG_Bool(REGB0)) {
       REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
@@ -15887,31 +15887,31 @@ void compiling___compiling_icode___IAbort___compile_to_c(val_t p0, val_t p1){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
     } else {
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB2 = TAG_Bool(false);
       REGB0 = REGB2;
     }
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+      nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
     }
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
     }
-    /* ./../lib/standard//collection//array.nit:718 */
+    /* ../lib/standard/collection/array.nit:718 */
     fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     goto label4;
     label4: while(0);
-    /* ./compiling//compiling_icode.nit:968 */
+    /* compiling/compiling_icode.nit:968 */
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-    /* ./compiling//compiling_icode.nit:969 */
+    /* compiling/compiling_icode.nit:969 */
     if (!once_value_5) {
       fra.me.REG[2] = BOX_NativeString("\"");
       REGB1 = TAG_Int(1);
@@ -15922,7 +15922,7 @@ void compiling___compiling_icode___IAbort___compile_to_c(val_t p0, val_t p1){
     fra.me.REG[2] = fra.me.REG[2];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   } else {
-    /* ./compiling//compiling_icode.nit:971 */
+    /* compiling/compiling_icode.nit:971 */
     if (!once_value_6) {
       fra.me.REG[2] = BOX_NativeString("\", NULL");
       REGB1 = TAG_Int(7);
@@ -15933,7 +15933,7 @@ void compiling___compiling_icode___IAbort___compile_to_c(val_t p0, val_t p1){
     fra.me.REG[2] = fra.me.REG[2];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
-  /* ./compiling//compiling_icode.nit:973 */
+  /* compiling/compiling_icode.nit:973 */
   if (!once_value_7) {
     fra.me.REG[2] = BOX_NativeString(", LOCATE_");
     REGB1 = TAG_Int(9);
@@ -15943,13 +15943,13 @@ void compiling___compiling_icode___IAbort___compile_to_c(val_t p0, val_t p1){
   } else fra.me.REG[2] = once_value_7;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:974 */
+  /* compiling/compiling_icode.nit:974 */
   fra.me.REG[2] = CALL_icode___icode_base___IAbort___module_location(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:975 */
+  /* compiling/compiling_icode.nit:975 */
   fra.me.REG[0] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:976 */
+  /* compiling/compiling_icode.nit:976 */
   REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -15964,7 +15964,7 @@ void compiling___compiling_icode___IAbort___compile_to_c(val_t p0, val_t p1){
   }
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
   if (UNTAG_Bool(REGB1)) {
-    /* ./compiling//compiling_icode.nit:977 */
+    /* compiling/compiling_icode.nit:977 */
     if (!once_value_8) {
       fra.me.REG[2] = BOX_NativeString(", ");
       REGB1 = TAG_Int(2);
@@ -15974,7 +15974,7 @@ void compiling___compiling_icode___IAbort___compile_to_c(val_t p0, val_t p1){
     } else fra.me.REG[2] = once_value_8;
     fra.me.REG[2] = fra.me.REG[2];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-    /* ./compiling//compiling_icode.nit:978 */
+    /* compiling/compiling_icode.nit:978 */
     REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 978);
@@ -15983,7 +15983,7 @@ void compiling___compiling_icode___IAbort___compile_to_c(val_t p0, val_t p1){
     fra.me.REG[0] = CALL_standard___string___Object___to_s(REGB1)(REGB1);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   } else {
-    /* ./compiling//compiling_icode.nit:980 */
+    /* compiling/compiling_icode.nit:980 */
     if (!once_value_9) {
       fra.me.REG[0] = BOX_NativeString(", 0");
       REGB1 = TAG_Int(3);
@@ -15994,7 +15994,7 @@ void compiling___compiling_icode___IAbort___compile_to_c(val_t p0, val_t p1){
     fra.me.REG[0] = fra.me.REG[0];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
-  /* ./compiling//compiling_icode.nit:982 */
+  /* compiling/compiling_icode.nit:982 */
   if (!once_value_10) {
     fra.me.REG[0] = BOX_NativeString(");\n");
     REGB1 = TAG_Int(3);
@@ -16028,18 +16028,18 @@ void compiling___compiling_icode___IMove___compile_to_c(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:987 */
+  /* compiling/compiling_icode.nit:987 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./compiling//compiling_icode.nit:989 */
+  /* compiling/compiling_icode.nit:989 */
   REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./compiling//compiling_icode.nit:990 */
+  /* compiling/compiling_icode.nit:990 */
   fra.me.REG[3] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:991 */
+  /* compiling/compiling_icode.nit:991 */
   fra.me.REG[4] = CALL_icode___icode_base___ICode___result(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_icode___icode_base___IRegister, ID_icode___icode_base___IRegister)) /*cast IRegister*/;
   if (UNTAG_Bool(REGB0)) {
@@ -16047,7 +16047,7 @@ void compiling___compiling_icode___IMove___compile_to_c(val_t p0, val_t p1){
     nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_icode, 991);
   }
   fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./compiling//compiling_icode.nit:992 */
+  /* compiling/compiling_icode.nit:992 */
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4]));
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -16057,14 +16057,14 @@ void compiling___compiling_icode___IMove___compile_to_c(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./compiling//compiling_icode.nit:993 */
+  /* compiling/compiling_icode.nit:993 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:994 */
+  /* compiling/compiling_icode.nit:994 */
   fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:995 */
+  /* compiling/compiling_icode.nit:995 */
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./compiling//compiling_icode.nit:996 */
+  /* compiling/compiling_icode.nit:996 */
   if (!once_value_2) {
     fra.me.REG[4] = BOX_NativeString(" = ");
     REGB0 = TAG_Int(3);
@@ -16074,9 +16074,9 @@ void compiling___compiling_icode___IMove___compile_to_c(val_t p0, val_t p1){
   } else fra.me.REG[4] = once_value_2;
   fra.me.REG[4] = fra.me.REG[4];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./compiling//compiling_icode.nit:997 */
+  /* compiling/compiling_icode.nit:997 */
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:998 */
+  /* compiling/compiling_icode.nit:998 */
   if (!once_value_3) {
     fra.me.REG[3] = BOX_NativeString(";\n");
     REGB0 = TAG_Int(2);
@@ -16109,23 +16109,23 @@ void compiling___compiling_icode___IAttrRead___compile_to_c(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:1005 */
+  /* compiling/compiling_icode.nit:1005 */
   REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./compiling//compiling_icode.nit:1006 */
+  /* compiling/compiling_icode.nit:1006 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:1007 */
+  /* compiling/compiling_icode.nit:1007 */
   fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:1008 */
+  /* compiling/compiling_icode.nit:1008 */
   fra.me.REG[3] = CALL_icode___icode_base___IAttrRead___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_compiling___compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:1009 */
+  /* compiling/compiling_icode.nit:1009 */
   if (!once_value_2) {
     fra.me.REG[3] = BOX_NativeString("(");
     REGB0 = TAG_Int(1);
@@ -16135,11 +16135,11 @@ void compiling___compiling_icode___IAttrRead___compile_to_c(val_t p0, val_t p1){
   } else fra.me.REG[3] = once_value_2;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:1010 */
+  /* compiling/compiling_icode.nit:1010 */
   fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:1011 */
+  /* compiling/compiling_icode.nit:1011 */
   if (!once_value_3) {
     fra.me.REG[0] = BOX_NativeString(")");
     REGB0 = TAG_Int(1);
@@ -16173,18 +16173,18 @@ void compiling___compiling_icode___IAttrIsset___compile_to_c(val_t p0, val_t p1)
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:1018 */
+  /* compiling/compiling_icode.nit:1018 */
   REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./compiling//compiling_icode.nit:1019 */
+  /* compiling/compiling_icode.nit:1019 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:1020 */
+  /* compiling/compiling_icode.nit:1020 */
   fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:1021 */
+  /* compiling/compiling_icode.nit:1021 */
   if (!once_value_2) {
     fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
     REGB0 = TAG_Int(9);
@@ -16194,12 +16194,12 @@ void compiling___compiling_icode___IAttrIsset___compile_to_c(val_t p0, val_t p1)
   } else fra.me.REG[3] = once_value_2;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:1022 */
+  /* compiling/compiling_icode.nit:1022 */
   fra.me.REG[3] = CALL_icode___icode_base___IAttrIsset___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_compiling___compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:1023 */
+  /* compiling/compiling_icode.nit:1023 */
   if (!once_value_3) {
     fra.me.REG[3] = BOX_NativeString("(");
     REGB0 = TAG_Int(1);
@@ -16209,11 +16209,11 @@ void compiling___compiling_icode___IAttrIsset___compile_to_c(val_t p0, val_t p1)
   } else fra.me.REG[3] = once_value_3;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:1024 */
+  /* compiling/compiling_icode.nit:1024 */
   fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:1025 */
+  /* compiling/compiling_icode.nit:1025 */
   if (!once_value_4) {
     fra.me.REG[0] = BOX_NativeString(")!=NIT_NULL)");
     REGB0 = TAG_Int(12);
@@ -16247,17 +16247,17 @@ void compiling___compiling_icode___IAttrWrite___compile_to_c(val_t p0, val_t p1)
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:1032 */
+  /* compiling/compiling_icode.nit:1032 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:1033 */
+  /* compiling/compiling_icode.nit:1033 */
   fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_instr(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:1034 */
+  /* compiling/compiling_icode.nit:1034 */
   fra.me.REG[3] = CALL_icode___icode_base___IAttrWrite___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_compiling___compiling_base___MMGlobalProperty___attr_access(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:1035 */
+  /* compiling/compiling_icode.nit:1035 */
   if (!once_value_1) {
     fra.me.REG[3] = BOX_NativeString("(");
     REGB0 = TAG_Int(1);
@@ -16267,11 +16267,11 @@ void compiling___compiling_icode___IAttrWrite___compile_to_c(val_t p0, val_t p1)
   } else fra.me.REG[3] = once_value_1;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:1036 */
+  /* compiling/compiling_icode.nit:1036 */
   fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:1037 */
+  /* compiling/compiling_icode.nit:1037 */
   if (!once_value_2) {
     fra.me.REG[3] = BOX_NativeString(") = ");
     REGB0 = TAG_Int(4);
@@ -16281,11 +16281,11 @@ void compiling___compiling_icode___IAttrWrite___compile_to_c(val_t p0, val_t p1)
   } else fra.me.REG[3] = once_value_2;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:1038 */
+  /* compiling/compiling_icode.nit:1038 */
   fra.me.REG[0] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:1039 */
+  /* compiling/compiling_icode.nit:1039 */
   if (!once_value_3) {
     fra.me.REG[0] = BOX_NativeString(";\n");
     REGB0 = TAG_Int(2);
@@ -16338,21 +16338,21 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:1046 */
+  /* compiling/compiling_icode.nit:1046 */
   REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./compiling//compiling_icode.nit:1047 */
+  /* compiling/compiling_icode.nit:1047 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:1048 */
+  /* compiling/compiling_icode.nit:1048 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:1049 */
+  /* compiling/compiling_icode.nit:1049 */
   fra.me.REG[3] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:1050 */
+  /* compiling/compiling_icode.nit:1050 */
   if (!once_value_2) {
     fra.me.REG[4] = BOX_NativeString("TAG_Bool(");
     REGB0 = TAG_Int(9);
@@ -16362,16 +16362,16 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
   } else fra.me.REG[4] = once_value_2;
   fra.me.REG[4] = fra.me.REG[4];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./compiling//compiling_icode.nit:1051 */
+  /* compiling/compiling_icode.nit:1051 */
   fra.me.REG[4] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:1052 */
+    /* compiling/compiling_icode.nit:1052 */
     fra.me.REG[4] = CALL_icode___icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//compiling_icode.nit:1053 */
+      /* compiling/compiling_icode.nit:1053 */
       if (!once_value_3) {
         fra.me.REG[4] = BOX_NativeString("(");
         REGB0 = TAG_Int(1);
@@ -16381,9 +16381,9 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
       } else fra.me.REG[4] = once_value_3;
       fra.me.REG[4] = fra.me.REG[4];
       CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-      /* ./compiling//compiling_icode.nit:1054 */
+      /* compiling/compiling_icode.nit:1054 */
       CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-      /* ./compiling//compiling_icode.nit:1055 */
+      /* compiling/compiling_icode.nit:1055 */
       if (!once_value_4) {
         fra.me.REG[4] = BOX_NativeString("==NIT_NULL) || ");
         REGB0 = TAG_Int(15);
@@ -16394,7 +16394,7 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
       fra.me.REG[4] = fra.me.REG[4];
       CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     } else {
-      /* ./compiling//compiling_icode.nit:1056 */
+      /* compiling/compiling_icode.nit:1056 */
       fra.me.REG[4] = CALL_icode___icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[4] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[4])(fra.me.REG[4]);
       fra.me.REG[5] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
@@ -16406,9 +16406,9 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
         REGB0 = REGB1;
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./compiling//compiling_icode.nit:1057 */
+        /* compiling/compiling_icode.nit:1057 */
         CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-        /* ./compiling//compiling_icode.nit:1058 */
+        /* compiling/compiling_icode.nit:1058 */
         if (!once_value_5) {
           fra.me.REG[5] = BOX_NativeString("!=NIT_NULL)");
           REGB0 = TAG_Int(11);
@@ -16418,10 +16418,10 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
         } else fra.me.REG[5] = once_value_5;
         fra.me.REG[5] = fra.me.REG[5];
         CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-        /* ./compiling//compiling_icode.nit:1059 */
+        /* compiling/compiling_icode.nit:1059 */
         goto label1;
       } else {
-        /* ./compiling//compiling_icode.nit:1061 */
+        /* compiling/compiling_icode.nit:1061 */
         if (!once_value_6) {
           fra.me.REG[5] = BOX_NativeString("(");
           REGB0 = TAG_Int(1);
@@ -16431,9 +16431,9 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
         } else fra.me.REG[5] = once_value_6;
         fra.me.REG[5] = fra.me.REG[5];
         CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-        /* ./compiling//compiling_icode.nit:1062 */
+        /* compiling/compiling_icode.nit:1062 */
         CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-        /* ./compiling//compiling_icode.nit:1063 */
+        /* compiling/compiling_icode.nit:1063 */
         if (!once_value_7) {
           fra.me.REG[5] = BOX_NativeString("!=NIT_NULL) && ");
           REGB0 = TAG_Int(15);
@@ -16446,18 +16446,18 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
       }
     }
   }
-  /* ./compiling//compiling_icode.nit:1067 */
+  /* compiling/compiling_icode.nit:1067 */
   fra.me.REG[5] = CALL_icode___icode_base___ITypeCheck___stype(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:1068 */
+  /* compiling/compiling_icode.nit:1068 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[5], COLOR_metamodel___virtualtype___MMVirtualType, ID_metamodel___virtualtype___MMVirtualType)) /*cast MMVirtualType*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:1069 */
+    /* compiling/compiling_icode.nit:1069 */
     fra.me.REG[0] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./compiling//compiling_icode.nit:1070 */
+    /* compiling/compiling_icode.nit:1070 */
     fra.me.REG[1] = CALL_metamodel___virtualtype___MMVirtualType___property(fra.me.REG[5])(fra.me.REG[5]);
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./compiling//compiling_icode.nit:1071 */
+    /* compiling/compiling_icode.nit:1071 */
     if (!once_value_8) {
       fra.me.REG[4] = BOX_NativeString("VAL_ISA(");
       REGB0 = TAG_Int(8);
@@ -16467,9 +16467,9 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
     } else fra.me.REG[4] = once_value_8;
     fra.me.REG[4] = fra.me.REG[4];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-    /* ./compiling//compiling_icode.nit:1072 */
+    /* compiling/compiling_icode.nit:1072 */
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-    /* ./compiling//compiling_icode.nit:1073 */
+    /* compiling/compiling_icode.nit:1073 */
     if (!once_value_9) {
       fra.me.REG[4] = BOX_NativeString(", ");
       REGB0 = TAG_Int(2);
@@ -16479,10 +16479,10 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
     } else fra.me.REG[4] = once_value_9;
     fra.me.REG[4] = fra.me.REG[4];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-    /* ./compiling//compiling_icode.nit:1074 */
+    /* compiling/compiling_icode.nit:1074 */
     fra.me.REG[4] = CALL_compiling___compiling_base___MMGlobalProperty___vt_class_color(fra.me.REG[1])(fra.me.REG[1]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-    /* ./compiling//compiling_icode.nit:1075 */
+    /* compiling/compiling_icode.nit:1075 */
     if (!once_value_10) {
       fra.me.REG[4] = BOX_NativeString("(");
       REGB0 = TAG_Int(1);
@@ -16492,9 +16492,9 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
     } else fra.me.REG[4] = once_value_10;
     fra.me.REG[4] = fra.me.REG[4];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-    /* ./compiling//compiling_icode.nit:1076 */
+    /* compiling/compiling_icode.nit:1076 */
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-    /* ./compiling//compiling_icode.nit:1077 */
+    /* compiling/compiling_icode.nit:1077 */
     if (!once_value_11) {
       fra.me.REG[4] = BOX_NativeString(")");
       REGB0 = TAG_Int(1);
@@ -16504,7 +16504,7 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
     } else fra.me.REG[4] = once_value_11;
     fra.me.REG[4] = fra.me.REG[4];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-    /* ./compiling//compiling_icode.nit:1078 */
+    /* compiling/compiling_icode.nit:1078 */
     if (!once_value_12) {
       fra.me.REG[4] = BOX_NativeString(", ");
       REGB0 = TAG_Int(2);
@@ -16514,10 +16514,10 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
     } else fra.me.REG[4] = once_value_12;
     fra.me.REG[4] = fra.me.REG[4];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-    /* ./compiling//compiling_icode.nit:1079 */
+    /* compiling/compiling_icode.nit:1079 */
     fra.me.REG[1] = CALL_compiling___compiling_base___MMGlobalProperty___vt_class_id(fra.me.REG[1])(fra.me.REG[1]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-    /* ./compiling//compiling_icode.nit:1080 */
+    /* compiling/compiling_icode.nit:1080 */
     if (!once_value_13) {
       fra.me.REG[1] = BOX_NativeString("(");
       REGB0 = TAG_Int(1);
@@ -16527,9 +16527,9 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
     } else fra.me.REG[1] = once_value_13;
     fra.me.REG[1] = fra.me.REG[1];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-    /* ./compiling//compiling_icode.nit:1081 */
+    /* compiling/compiling_icode.nit:1081 */
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-    /* ./compiling//compiling_icode.nit:1082 */
+    /* compiling/compiling_icode.nit:1082 */
     if (!once_value_14) {
       fra.me.REG[0] = BOX_NativeString(")");
       REGB0 = TAG_Int(1);
@@ -16539,7 +16539,7 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
     } else fra.me.REG[0] = once_value_14;
     fra.me.REG[0] = fra.me.REG[0];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-    /* ./compiling//compiling_icode.nit:1083 */
+    /* compiling/compiling_icode.nit:1083 */
     if (!once_value_15) {
       fra.me.REG[0] = BOX_NativeString(")) /*cast ");
       REGB0 = TAG_Int(10);
@@ -16549,10 +16549,10 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
     } else fra.me.REG[0] = once_value_15;
     fra.me.REG[0] = fra.me.REG[0];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-    /* ./compiling//compiling_icode.nit:1084 */
+    /* compiling/compiling_icode.nit:1084 */
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-    /* ./compiling//compiling_icode.nit:1085 */
+    /* compiling/compiling_icode.nit:1085 */
     if (!once_value_16) {
       fra.me.REG[0] = BOX_NativeString("*/");
       REGB0 = TAG_Int(2);
@@ -16563,10 +16563,10 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
     fra.me.REG[0] = fra.me.REG[0];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
   } else {
-    /* ./compiling//compiling_icode.nit:1087 */
+    /* compiling/compiling_icode.nit:1087 */
     fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[5])(fra.me.REG[5]);
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
-    /* ./compiling//compiling_icode.nit:1088 */
+    /* compiling/compiling_icode.nit:1088 */
     if (!once_value_17) {
       fra.me.REG[1] = BOX_NativeString("VAL_ISA(");
       REGB0 = TAG_Int(8);
@@ -16576,9 +16576,9 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
     } else fra.me.REG[1] = once_value_17;
     fra.me.REG[1] = fra.me.REG[1];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-    /* ./compiling//compiling_icode.nit:1089 */
+    /* compiling/compiling_icode.nit:1089 */
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-    /* ./compiling//compiling_icode.nit:1090 */
+    /* compiling/compiling_icode.nit:1090 */
     if (!once_value_18) {
       fra.me.REG[2] = BOX_NativeString(", ");
       REGB0 = TAG_Int(2);
@@ -16588,10 +16588,10 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
     } else fra.me.REG[2] = once_value_18;
     fra.me.REG[2] = fra.me.REG[2];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-    /* ./compiling//compiling_icode.nit:1091 */
+    /* compiling/compiling_icode.nit:1091 */
     fra.me.REG[2] = CALL_compiling___compiling_base___MMGlobalClass___color_id(fra.me.REG[0])(fra.me.REG[0]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-    /* ./compiling//compiling_icode.nit:1092 */
+    /* compiling/compiling_icode.nit:1092 */
     if (!once_value_19) {
       fra.me.REG[2] = BOX_NativeString(", ");
       REGB0 = TAG_Int(2);
@@ -16601,10 +16601,10 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
     } else fra.me.REG[2] = once_value_19;
     fra.me.REG[2] = fra.me.REG[2];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-    /* ./compiling//compiling_icode.nit:1093 */
+    /* compiling/compiling_icode.nit:1093 */
     fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalClass___id_id(fra.me.REG[0])(fra.me.REG[0]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-    /* ./compiling//compiling_icode.nit:1094 */
+    /* compiling/compiling_icode.nit:1094 */
     if (!once_value_20) {
       fra.me.REG[0] = BOX_NativeString(")) /*cast ");
       REGB0 = TAG_Int(10);
@@ -16614,10 +16614,10 @@ void compiling___compiling_icode___ITypeCheck___compile_to_c(val_t p0, val_t p1)
     } else fra.me.REG[0] = once_value_20;
     fra.me.REG[0] = fra.me.REG[0];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-    /* ./compiling//compiling_icode.nit:1095 */
+    /* compiling/compiling_icode.nit:1095 */
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-    /* ./compiling//compiling_icode.nit:1096 */
+    /* compiling/compiling_icode.nit:1096 */
     if (!once_value_21) {
       fra.me.REG[5] = BOX_NativeString("*/");
       REGB0 = TAG_Int(2);
@@ -16665,18 +16665,18 @@ void compiling___compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:1104 */
+  /* compiling/compiling_icode.nit:1104 */
   REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./compiling//compiling_icode.nit:1105 */
+  /* compiling/compiling_icode.nit:1105 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:1106 */
+  /* compiling/compiling_icode.nit:1106 */
   fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:1107 */
+  /* compiling/compiling_icode.nit:1107 */
   if (!once_value_2) {
     fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
     REGB0 = TAG_Int(9);
@@ -16686,19 +16686,19 @@ void compiling___compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){
   } else fra.me.REG[3] = once_value_2;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:1108 */
+  /* compiling/compiling_icode.nit:1108 */
   fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:1109 */
+  /* compiling/compiling_icode.nit:1109 */
   fra.me.REG[4] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./compiling//compiling_icode.nit:1110 */
+  /* compiling/compiling_icode.nit:1110 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:1111 */
+    /* compiling/compiling_icode.nit:1111 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//compiling_icode.nit:1112 */
+      /* compiling/compiling_icode.nit:1112 */
       if (!once_value_3) {
         fra.me.REG[5] = BOX_NativeString("1)");
         REGB0 = TAG_Int(2);
@@ -16708,17 +16708,17 @@ void compiling___compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){
       } else fra.me.REG[5] = once_value_3;
       fra.me.REG[5] = fra.me.REG[5];
       CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-      /* ./compiling//compiling_icode.nit:1113 */
+      /* compiling/compiling_icode.nit:1113 */
       goto label1;
     } else {
-      /* ./compiling//compiling_icode.nit:1114 */
+      /* compiling/compiling_icode.nit:1114 */
       REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
       if (UNTAG_Bool(REGB0)) {
-        /* ./compiling//compiling_icode.nit:1115 */
+        /* compiling/compiling_icode.nit:1115 */
         fra.me.REG[5] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
         fra.me.REG[5] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
         CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-        /* ./compiling//compiling_icode.nit:1116 */
+        /* compiling/compiling_icode.nit:1116 */
         if (!once_value_4) {
           fra.me.REG[5] = BOX_NativeString("==NIT_NULL)");
           REGB0 = TAG_Int(11);
@@ -16728,10 +16728,10 @@ void compiling___compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){
         } else fra.me.REG[5] = once_value_4;
         fra.me.REG[5] = fra.me.REG[5];
         CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-        /* ./compiling//compiling_icode.nit:1117 */
+        /* compiling/compiling_icode.nit:1117 */
         goto label1;
       } else {
-        /* ./compiling//compiling_icode.nit:1119 */
+        /* compiling/compiling_icode.nit:1119 */
         if (!once_value_5) {
           fra.me.REG[5] = BOX_NativeString("0)");
           REGB0 = TAG_Int(2);
@@ -16741,22 +16741,22 @@ void compiling___compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){
         } else fra.me.REG[5] = once_value_5;
         fra.me.REG[5] = fra.me.REG[5];
         CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-        /* ./compiling//compiling_icode.nit:1120 */
+        /* compiling/compiling_icode.nit:1120 */
         goto label1;
       }
     }
   } else {
-    /* ./compiling//compiling_icode.nit:1122 */
+    /* compiling/compiling_icode.nit:1122 */
     REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//compiling_icode.nit:1123 */
+      /* compiling/compiling_icode.nit:1123 */
       REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
       if (UNTAG_Bool(REGB0)) {
-        /* ./compiling//compiling_icode.nit:1124 */
+        /* compiling/compiling_icode.nit:1124 */
         fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
         fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
         CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-        /* ./compiling//compiling_icode.nit:1125 */
+        /* compiling/compiling_icode.nit:1125 */
         if (!once_value_6) {
           fra.me.REG[3] = BOX_NativeString("==NIT_NULL)");
           REGB0 = TAG_Int(11);
@@ -16766,13 +16766,13 @@ void compiling___compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){
         } else fra.me.REG[3] = once_value_6;
         fra.me.REG[3] = fra.me.REG[3];
         CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-        /* ./compiling//compiling_icode.nit:1126 */
+        /* compiling/compiling_icode.nit:1126 */
         goto label1;
       } else {
-        /* ./compiling//compiling_icode.nit:1127 */
+        /* compiling/compiling_icode.nit:1127 */
         REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
         if (UNTAG_Bool(REGB0)) {
-          /* ./compiling//compiling_icode.nit:1128 */
+          /* compiling/compiling_icode.nit:1128 */
           if (!once_value_7) {
             fra.me.REG[3] = BOX_NativeString("IS_EQUAL_NN(");
             REGB0 = TAG_Int(12);
@@ -16783,7 +16783,7 @@ void compiling___compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){
           fra.me.REG[3] = fra.me.REG[3];
           CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
         } else {
-          /* ./compiling//compiling_icode.nit:1130 */
+          /* compiling/compiling_icode.nit:1130 */
           if (!once_value_8) {
             fra.me.REG[3] = BOX_NativeString("IS_EQUAL_ON(");
             REGB0 = TAG_Int(12);
@@ -16793,11 +16793,11 @@ void compiling___compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){
           } else fra.me.REG[3] = once_value_8;
           fra.me.REG[3] = fra.me.REG[3];
           CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-          /* ./compiling//compiling_icode.nit:1131 */
+          /* compiling/compiling_icode.nit:1131 */
           fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
           fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
           CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-          /* ./compiling//compiling_icode.nit:1132 */
+          /* compiling/compiling_icode.nit:1132 */
           if (!once_value_9) {
             fra.me.REG[3] = BOX_NativeString(",");
             REGB0 = TAG_Int(1);
@@ -16807,11 +16807,11 @@ void compiling___compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){
           } else fra.me.REG[3] = once_value_9;
           fra.me.REG[3] = fra.me.REG[3];
           CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-          /* ./compiling//compiling_icode.nit:1133 */
+          /* compiling/compiling_icode.nit:1133 */
           fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
           fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
           CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-          /* ./compiling//compiling_icode.nit:1134 */
+          /* compiling/compiling_icode.nit:1134 */
           if (!once_value_10) {
             fra.me.REG[3] = BOX_NativeString("))");
             REGB0 = TAG_Int(2);
@@ -16821,15 +16821,15 @@ void compiling___compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){
           } else fra.me.REG[3] = once_value_10;
           fra.me.REG[3] = fra.me.REG[3];
           CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-          /* ./compiling//compiling_icode.nit:1135 */
+          /* compiling/compiling_icode.nit:1135 */
           goto label1;
         }
       }
     } else {
-      /* ./compiling//compiling_icode.nit:1138 */
+      /* compiling/compiling_icode.nit:1138 */
       REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
       if (UNTAG_Bool(REGB0)) {
-        /* ./compiling//compiling_icode.nit:1139 */
+        /* compiling/compiling_icode.nit:1139 */
         if (!once_value_11) {
           fra.me.REG[3] = BOX_NativeString("0)");
           REGB0 = TAG_Int(2);
@@ -16839,13 +16839,13 @@ void compiling___compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){
         } else fra.me.REG[3] = once_value_11;
         fra.me.REG[3] = fra.me.REG[3];
         CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-        /* ./compiling//compiling_icode.nit:1140 */
+        /* compiling/compiling_icode.nit:1140 */
         goto label1;
       } else {
-        /* ./compiling//compiling_icode.nit:1141 */
+        /* compiling/compiling_icode.nit:1141 */
         REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
         if (UNTAG_Bool(REGB0)) {
-          /* ./compiling//compiling_icode.nit:1142 */
+          /* compiling/compiling_icode.nit:1142 */
           if (!once_value_12) {
             fra.me.REG[4] = BOX_NativeString("IS_EQUAL_ON(");
             REGB0 = TAG_Int(12);
@@ -16856,7 +16856,7 @@ void compiling___compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){
           fra.me.REG[4] = fra.me.REG[4];
           CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
         } else {
-          /* ./compiling//compiling_icode.nit:1144 */
+          /* compiling/compiling_icode.nit:1144 */
           if (!once_value_13) {
             fra.me.REG[4] = BOX_NativeString("IS_EQUAL_OO(");
             REGB0 = TAG_Int(12);
@@ -16870,11 +16870,11 @@ void compiling___compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){
       }
     }
   }
-  /* ./compiling//compiling_icode.nit:1147 */
+  /* compiling/compiling_icode.nit:1147 */
   fra.me.REG[4] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* ./compiling//compiling_icode.nit:1148 */
+  /* compiling/compiling_icode.nit:1148 */
   if (!once_value_14) {
     fra.me.REG[4] = BOX_NativeString(",");
     REGB0 = TAG_Int(1);
@@ -16884,11 +16884,11 @@ void compiling___compiling_icode___IIs___compile_to_c(val_t p0, val_t p1){
   } else fra.me.REG[4] = once_value_14;
   fra.me.REG[4] = fra.me.REG[4];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* ./compiling//compiling_icode.nit:1149 */
+  /* compiling/compiling_icode.nit:1149 */
   fra.me.REG[0] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:1150 */
+  /* compiling/compiling_icode.nit:1150 */
   if (!once_value_15) {
     fra.me.REG[0] = BOX_NativeString("))");
     REGB0 = TAG_Int(2);
@@ -16921,18 +16921,18 @@ void compiling___compiling_icode___INot___compile_to_c(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:1157 */
+  /* compiling/compiling_icode.nit:1157 */
   REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./compiling//compiling_icode.nit:1158 */
+  /* compiling/compiling_icode.nit:1158 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:1159 */
+  /* compiling/compiling_icode.nit:1159 */
   fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:1160 */
+  /* compiling/compiling_icode.nit:1160 */
   if (!once_value_2) {
     fra.me.REG[3] = BOX_NativeString("TAG_Bool(!UNTAG_Bool(");
     REGB0 = TAG_Int(21);
@@ -16942,11 +16942,11 @@ void compiling___compiling_icode___INot___compile_to_c(val_t p0, val_t p1){
   } else fra.me.REG[3] = once_value_2;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:1161 */
+  /* compiling/compiling_icode.nit:1161 */
   fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:1162 */
+  /* compiling/compiling_icode.nit:1162 */
   if (!once_value_3) {
     fra.me.REG[0] = BOX_NativeString("))");
     REGB0 = TAG_Int(2);
@@ -16999,25 +16999,25 @@ void compiling___compiling_icode___IOnce___compile_to_c(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:1167 */
+  /* compiling/compiling_icode.nit:1167 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./compiling//compiling_icode.nit:1169 */
+  /* compiling/compiling_icode.nit:1169 */
   fra.me.REG[3] = CALL_icode___icode_base___ICode___location(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:1170 */
+  /* compiling/compiling_icode.nit:1170 */
   REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___new_number(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:1171 */
+  /* compiling/compiling_icode.nit:1171 */
   fra.me.REG[3] = CALL_icode___icode_base___ICode___result(fra.me.REG[2])(fra.me.REG[2]);
   REGB1 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___IRegister, ID_icode___icode_base___IRegister)) /*cast IRegister*/;
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_icode, 1171);
   }
-  /* ./compiling//compiling_icode.nit:1172 */
+  /* compiling/compiling_icode.nit:1172 */
   fra.me.REG[0] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[3])(fra.me.REG[3]);
   REGB1 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB1)) {
-    /* ./compiling//compiling_icode.nit:1173 */
+    /* compiling/compiling_icode.nit:1173 */
     REGB1 = TAG_Int(5);
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
     if (!once_value_1) {
@@ -17053,7 +17053,7 @@ void compiling___compiling_icode___IOnce___compile_to_c(val_t p0, val_t p1){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
     CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./compiling//compiling_icode.nit:1174 */
+    /* compiling/compiling_icode.nit:1174 */
     REGB1 = TAG_Int(3);
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
     if (!once_value_4) {
@@ -17079,7 +17079,7 @@ void compiling___compiling_icode___IOnce___compile_to_c(val_t p0, val_t p1){
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
     CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   } else {
-    /* ./compiling//compiling_icode.nit:1177 */
+    /* compiling/compiling_icode.nit:1177 */
     REGB1 = TAG_Int(3);
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
     if (!once_value_6) {
@@ -17104,7 +17104,7 @@ void compiling___compiling_icode___IOnce___compile_to_c(val_t p0, val_t p1){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
     CALL_compiling___compiling_icode___I2CCompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./compiling//compiling_icode.nit:1178 */
+    /* compiling/compiling_icode.nit:1178 */
     REGB1 = TAG_Int(3);
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
     if (!once_value_8) {
@@ -17130,14 +17130,14 @@ void compiling___compiling_icode___IOnce___compile_to_c(val_t p0, val_t p1){
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
     CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
-  /* ./compiling//compiling_icode.nit:1180 */
+  /* compiling/compiling_icode.nit:1180 */
   CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:1181 */
+  /* compiling/compiling_icode.nit:1181 */
   fra.me.REG[0] = CALL_icode___icode_base___IOnce___body(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:1182 */
+  /* compiling/compiling_icode.nit:1182 */
   fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:1183 */
+  /* compiling/compiling_icode.nit:1183 */
   REGB1 = TAG_Int(5);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
   if (!once_value_10) {
@@ -17172,7 +17172,7 @@ void compiling___compiling_icode___IOnce___compile_to_c(val_t p0, val_t p1){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./compiling//compiling_icode.nit:1184 */
+  /* compiling/compiling_icode.nit:1184 */
   REGB1 = TAG_Int(3);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
   if (!once_value_13) {
@@ -17197,7 +17197,7 @@ void compiling___compiling_icode___IOnce___compile_to_c(val_t p0, val_t p1){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./compiling//compiling_icode.nit:1185 */
+  /* compiling/compiling_icode.nit:1185 */
   fra.me.REG[3] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[3])(fra.me.REG[3]);
   REGB1 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
   if (UNTAG_Bool(REGB1)) {
@@ -17226,9 +17226,9 @@ void compiling___compiling_icode___IOnce___compile_to_c(val_t p0, val_t p1){
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./compiling//compiling_icode.nit:1186 */
+  /* compiling/compiling_icode.nit:1186 */
   CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:1187 */
+  /* compiling/compiling_icode.nit:1187 */
   REGB1 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
   if (!once_value_17) {
@@ -17263,9 +17263,9 @@ void compiling___compiling_icode___IOnce___compile_to_c(val_t p0, val_t p1){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:1188 */
+  /* compiling/compiling_icode.nit:1188 */
   fra.me.REG[1] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:1189 */
+  /* compiling/compiling_icode.nit:1189 */
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
@@ -17305,13 +17305,13 @@ void compiling___compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:1196 */
+  /* compiling/compiling_icode.nit:1196 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:1199 */
+  /* compiling/compiling_icode.nit:1199 */
   REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:1200 */
+    /* compiling/compiling_icode.nit:1200 */
     REGB0 = TAG_Int(3);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -17337,7 +17337,7 @@ void compiling___compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){
     fra.me.REG[4] = fra.me.REG[4];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
     fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-    /* ./compiling//compiling_icode.nit:1201 */
+    /* compiling/compiling_icode.nit:1201 */
     REGB0 = TAG_Int(1);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_3) {
@@ -17350,7 +17350,7 @@ void compiling___compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){
     fra.me.REG[3] = fra.me.REG[3];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   } else {
-    /* ./compiling//compiling_icode.nit:1203 */
+    /* compiling/compiling_icode.nit:1203 */
     REGB0 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_4) {
@@ -17377,7 +17377,7 @@ void compiling___compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     fra.me.REG[2] = fra.me.REG[3];
-    /* ./compiling//compiling_icode.nit:1204 */
+    /* compiling/compiling_icode.nit:1204 */
     REGB0 = TAG_Int(1);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_6) {
@@ -17391,11 +17391,11 @@ void compiling___compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
     fra.me.REG[4] = fra.me.REG[3];
   }
-  /* ./compiling//compiling_icode.nit:1206 */
+  /* compiling/compiling_icode.nit:1206 */
   fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___registers(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:1208 */
+  /* compiling/compiling_icode.nit:1208 */
   REGB0 = TAG_Int(7);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_7) {
@@ -17450,13 +17450,13 @@ void compiling___compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){
   fra.me.REG[2] = fra.me.REG[2];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:1209 */
+  /* compiling/compiling_icode.nit:1209 */
   fra.me.REG[2] = NEW_Writer_compiling___compiling_writer___Writer___init();
-  /* ./compiling//compiling_icode.nit:1210 */
+  /* compiling/compiling_icode.nit:1210 */
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:1211 */
+  /* compiling/compiling_icode.nit:1211 */
   CALL_compiling___compiling_icode___ICode___store_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:1214 */
+  /* compiling/compiling_icode.nit:1214 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_12) {
@@ -17481,11 +17481,11 @@ void compiling___compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:1215 */
+  /* compiling/compiling_icode.nit:1215 */
   CALL_compiling___compiling_icode___I2CCompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:1216 */
+  /* compiling/compiling_icode.nit:1216 */
   fra.me.REG[0] = CALL_icode___icode_base___IClosCall___break_seq(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:1217 */
+  /* compiling/compiling_icode.nit:1217 */
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -17500,20 +17500,20 @@ void compiling___compiling_icode___IClosCall___compile_to_c(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:1218 */
+    /* compiling/compiling_icode.nit:1218 */
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_icode, 1218);
     }
     CALL_compiling___compiling_icode___ICode___compile_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   }
-  /* ./compiling//compiling_icode.nit:1220 */
+  /* compiling/compiling_icode.nit:1220 */
   fra.me.REG[0] = CALL_compiling___compiling_icode___I2CCompilerVisitor___iroutine(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_goto(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:1221 */
+  /* compiling/compiling_icode.nit:1221 */
   CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:1222 */
+  /* compiling/compiling_icode.nit:1222 */
   if (!once_value_14) {
     fra.me.REG[0] = BOX_NativeString("}");
     REGB0 = TAG_Int(1);
@@ -17550,18 +17550,18 @@ void compiling___compiling_icode___IHasClos___compile_to_c(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:1229 */
+  /* compiling/compiling_icode.nit:1229 */
   REGB0 = CALL_compiling___compiling_icode___ICode___need_result(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./compiling//compiling_icode.nit:1230 */
+  /* compiling/compiling_icode.nit:1230 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_location(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:1231 */
+  /* compiling/compiling_icode.nit:1231 */
   fra.me.REG[2] = CALL_compiling___compiling_icode___ICode___new_result(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:1232 */
+  /* compiling/compiling_icode.nit:1232 */
   if (!once_value_2) {
     fra.me.REG[3] = BOX_NativeString("TAG_Bool(");
     REGB0 = TAG_Int(9);
@@ -17571,10 +17571,10 @@ void compiling___compiling_icode___IHasClos___compile_to_c(val_t p0, val_t p1){
   } else fra.me.REG[3] = once_value_2;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:1233 */
+  /* compiling/compiling_icode.nit:1233 */
   REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_icode.nit:1234 */
+    /* compiling/compiling_icode.nit:1234 */
     if (!once_value_3) {
       fra.me.REG[3] = BOX_NativeString("closctx->closure_funs[");
       REGB0 = TAG_Int(22);
@@ -17584,12 +17584,12 @@ void compiling___compiling_icode___IHasClos___compile_to_c(val_t p0, val_t p1){
     } else fra.me.REG[3] = once_value_3;
     fra.me.REG[3] = fra.me.REG[3];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-    /* ./compiling//compiling_icode.nit:1235 */
+    /* compiling/compiling_icode.nit:1235 */
     fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[4] = CALL_icode___icode_base___IHasClos___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-    /* ./compiling//compiling_icode.nit:1236 */
+    /* compiling/compiling_icode.nit:1236 */
     if (!once_value_4) {
       fra.me.REG[4] = BOX_NativeString("]");
       REGB0 = TAG_Int(1);
@@ -17600,7 +17600,7 @@ void compiling___compiling_icode___IHasClos___compile_to_c(val_t p0, val_t p1){
     fra.me.REG[4] = fra.me.REG[4];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   } else {
-    /* ./compiling//compiling_icode.nit:1238 */
+    /* compiling/compiling_icode.nit:1238 */
     if (!once_value_5) {
       fra.me.REG[4] = BOX_NativeString("CREG[");
       REGB0 = TAG_Int(5);
@@ -17610,12 +17610,12 @@ void compiling___compiling_icode___IHasClos___compile_to_c(val_t p0, val_t p1){
     } else fra.me.REG[4] = once_value_5;
     fra.me.REG[4] = fra.me.REG[4];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-    /* ./compiling//compiling_icode.nit:1239 */
+    /* compiling/compiling_icode.nit:1239 */
     fra.me.REG[1] = CALL_compiling___compiling_icode___I2CCompilerVisitor___closures(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[0] = CALL_icode___icode_base___IHasClos___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-    /* ./compiling//compiling_icode.nit:1240 */
+    /* compiling/compiling_icode.nit:1240 */
     if (!once_value_6) {
       fra.me.REG[0] = BOX_NativeString("]");
       REGB0 = TAG_Int(1);
@@ -17626,7 +17626,7 @@ void compiling___compiling_icode___IHasClos___compile_to_c(val_t p0, val_t p1){
     fra.me.REG[0] = fra.me.REG[0];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
   }
-  /* ./compiling//compiling_icode.nit:1242 */
+  /* compiling/compiling_icode.nit:1242 */
   if (!once_value_7) {
     fra.me.REG[0] = BOX_NativeString(" != NULL)");
     REGB0 = TAG_Int(9);
@@ -17674,31 +17674,31 @@ val_t compiling___compiling_icode___IClosureDef___compile_closure(val_t p0, val_
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_icode.nit:1251 */
+  /* compiling/compiling_icode.nit:1251 */
   fra.me.REG[2] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:1254 */
+  /* compiling/compiling_icode.nit:1254 */
   REGB0 = CALL_compiling___compiling_icode___I2CCompilerVisitor___closure(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:1255 */
+  /* compiling/compiling_icode.nit:1255 */
   REGB1 = TAG_Bool(true);
   CALL_compiling___compiling_icode___I2CCompilerVisitor___closure__eq(fra.me.REG[1])(fra.me.REG[1], REGB1);
-  /* ./compiling//compiling_icode.nit:1258 */
+  /* compiling/compiling_icode.nit:1258 */
   fra.me.REG[3] = CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:1259 */
+  /* compiling/compiling_icode.nit:1259 */
   fra.me.REG[4] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./compiling//compiling_icode.nit:1262 */
+  /* compiling/compiling_icode.nit:1262 */
   fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___decl_writer(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:1263 */
+  /* compiling/compiling_icode.nit:1263 */
   fra.me.REG[5] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./compiling//compiling_icode.nit:1264 */
+  /* compiling/compiling_icode.nit:1264 */
   fra.me.REG[6] = CALL_compiling___compiling_base___CompilerVisitor___top_writer(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[6] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]);
   CALL_compiling___compiling_base___CompilerVisitor___writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
-  /* ./compiling//compiling_icode.nit:1265 */
+  /* compiling/compiling_icode.nit:1265 */
   fra.me.REG[6] = CALL_compiling___compiling_base___CompilerVisitor___header_writer(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[6] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]);
   CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
-  /* ./compiling//compiling_icode.nit:1268 */
+  /* compiling/compiling_icode.nit:1268 */
   REGB1 = TAG_Int(5);
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
   if (!once_value_1) {
@@ -17734,7 +17734,7 @@ val_t compiling___compiling_icode___IClosureDef___compile_closure(val_t p0, val_
   fra.me.REG[7] = fra.me.REG[7];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
   fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-  /* ./compiling//compiling_icode.nit:1269 */
+  /* compiling/compiling_icode.nit:1269 */
   fra.me.REG[7] = CALL_compiling___compiling_icode___I2CCompilerVisitor___visitor(fra.me.REG[1])(fra.me.REG[1]);
   if (!once_value_4) {
     fra.me.REG[8] = BOX_NativeString("struct stack_frame_t *closctx");
@@ -17745,13 +17745,13 @@ val_t compiling___compiling_icode___IClosureDef___compile_closure(val_t p0, val_
   } else fra.me.REG[8] = once_value_4;
   fra.me.REG[8] = fra.me.REG[8];
   fra.me.REG[8] = CALL_compiling___compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[6], NIT_NULL, fra.me.REG[8], NIT_NULL);
-  /* ./compiling//compiling_icode.nit:1270 */
+  /* compiling/compiling_icode.nit:1270 */
   fra.me.REG[7] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[7] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[7])(fra.me.REG[7]);
   CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
-  /* ./compiling//compiling_icode.nit:1272 */
+  /* compiling/compiling_icode.nit:1272 */
   fra.me.REG[8] = CALL_compiling___compiling_icode___IRoutine___compile_inside_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[8]);
-  /* ./compiling//compiling_icode.nit:1273 */
+  /* compiling/compiling_icode.nit:1273 */
   REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -17765,7 +17765,7 @@ val_t compiling___compiling_icode___IClosureDef___compile_closure(val_t p0, val_
     }
   }
   if (UNTAG_Bool(REGB1)) {
-    /* ./compiling//compiling_icode.nit:1274 */
+    /* compiling/compiling_icode.nit:1274 */
     if (!once_value_5) {
       fra.me.REG[0] = BOX_NativeString("return;");
       REGB1 = TAG_Int(7);
@@ -17776,7 +17776,7 @@ val_t compiling___compiling_icode___IClosureDef___compile_closure(val_t p0, val_
     fra.me.REG[0] = fra.me.REG[0];
     CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   } else {
-    /* ./compiling//compiling_icode.nit:1276 */
+    /* compiling/compiling_icode.nit:1276 */
     REGB1 = TAG_Int(3);
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
     if (!once_value_6) {
@@ -17801,9 +17801,9 @@ val_t compiling___compiling_icode___IClosureDef___compile_closure(val_t p0, val_
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
     CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
-  /* ./compiling//compiling_icode.nit:1278 */
+  /* compiling/compiling_icode.nit:1278 */
   CALL_compiling___compiling_icode___I2CCompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_icode.nit:1279 */
+  /* compiling/compiling_icode.nit:1279 */
   if (!once_value_8) {
     fra.me.REG[0] = BOX_NativeString("}");
     REGB1 = TAG_Int(1);
@@ -17813,15 +17813,15 @@ val_t compiling___compiling_icode___IClosureDef___compile_closure(val_t p0, val_
   } else fra.me.REG[0] = once_value_8;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_icode___I2CCompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./compiling//compiling_icode.nit:1282 */
+  /* compiling/compiling_icode.nit:1282 */
   CALL_compiling___compiling_base___CompilerVisitor___writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-  /* ./compiling//compiling_icode.nit:1283 */
+  /* compiling/compiling_icode.nit:1283 */
   CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* ./compiling//compiling_icode.nit:1284 */
+  /* compiling/compiling_icode.nit:1284 */
   CALL_compiling___compiling_icode___I2CCompilerVisitor___closure__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
-  /* ./compiling//compiling_icode.nit:1285 */
+  /* compiling/compiling_icode.nit:1285 */
   CALL_compiling___compiling_icode___I2CCompilerVisitor___local_labels__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_icode.nit:1286 */
+  /* compiling/compiling_icode.nit:1286 */
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_9) {
index 989b04c..2163450 100644 (file)
@@ -17,18 +17,18 @@ val_t compiling___compiling_writer___Writer___add(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_writer.nit:26 */
+  /* compiling/compiling_writer.nit:26 */
   REGB0 = CALL_compiling___compiling_writer___Writer___is_frozen(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_writer, 26);
   }
-  /* ./compiling//compiling_writer.nit:27 */
+  /* compiling/compiling_writer.nit:27 */
   fra.me.REG[2] = ATTR_compiling___compiling_writer___Writer____last_string(fra.me.REG[0]);
-  /* ./compiling//compiling_writer.nit:28 */
+  /* compiling/compiling_writer.nit:28 */
   fra.me.REG[1] = NEW_WriterStrings_compiling___compiling_writer___WriterStrings___init(fra.me.REG[1]);
-  /* ./compiling//compiling_writer.nit:29 */
+  /* compiling/compiling_writer.nit:29 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -42,15 +42,15 @@ val_t compiling___compiling_writer___Writer___add(val_t p0, val_t p1){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_writer.nit:30 */
+    /* compiling/compiling_writer.nit:30 */
     CALL_compiling___compiling_writer___Writer___internal_append(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   } else {
-    /* ./compiling//compiling_writer.nit:32 */
+    /* compiling/compiling_writer.nit:32 */
     ATTR_compiling___compiling_writer___WriterStrings____next(fra.me.REG[2]) = fra.me.REG[1];
   }
-  /* ./compiling//compiling_writer.nit:34 */
+  /* compiling/compiling_writer.nit:34 */
   ATTR_compiling___compiling_writer___Writer____last_string(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_writer.nit:35 */
+  /* compiling/compiling_writer.nit:35 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -78,29 +78,29 @@ val_t compiling___compiling_writer___Writer___add_all(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_writer.nit:41 */
+  /* compiling/compiling_writer.nit:41 */
   REGB0 = CALL_compiling___compiling_writer___Writer___is_frozen(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_writer, 41);
   }
-  /* ./compiling//compiling_writer.nit:42 */
+  /* compiling/compiling_writer.nit:42 */
   REGB0 = TAG_Bool(true);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -112,39 +112,39 @@ val_t compiling___compiling_writer___Writer___add_all(val_t p0, val_t p1, val_t
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB1)];
-      /* ./compiling//compiling_writer.nit:44 */
+      /* compiling/compiling_writer.nit:44 */
       if (UNTAG_Bool(REGB0)) {
         REGB2 = TAG_Bool(false);
         REGB0 = REGB2;
       } else {
         CALL_compiling___compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
       }
-      /* ./compiling//compiling_writer.nit:45 */
+      /* compiling/compiling_writer.nit:45 */
       CALL_compiling___compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./compiling//compiling_writer.nit:47 */
+  /* compiling/compiling_writer.nit:47 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -165,19 +165,19 @@ val_t compiling___compiling_writer___Writer___append(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_writer.nit:59 */
+  /* compiling/compiling_writer.nit:59 */
   REGB0 = CALL_compiling___compiling_writer___Writer___is_frozen(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_writer, 59);
   }
-  /* ./compiling//compiling_writer.nit:60 */
+  /* compiling/compiling_writer.nit:60 */
   fra.me.REG[1] = NEW_WriterCoreNode_compiling___compiling_writer___WriterCoreNode___init(fra.me.REG[1]);
   CALL_compiling___compiling_writer___Writer___internal_append(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling_writer.nit:61 */
+  /* compiling/compiling_writer.nit:61 */
   ATTR_compiling___compiling_writer___Writer____last_string(fra.me.REG[0]) = NIT_NULL;
-  /* ./compiling//compiling_writer.nit:62 */
+  /* compiling/compiling_writer.nit:62 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -200,7 +200,7 @@ void compiling___compiling_writer___Writer___internal_append(val_t p0, val_t p1)
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_writer.nit:68 */
+  /* compiling/compiling_writer.nit:68 */
   fra.me.REG[2] = ATTR_compiling___compiling_writer___Writer____first_sub_writer(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -217,9 +217,9 @@ void compiling___compiling_writer___Writer___internal_append(val_t p0, val_t p1)
   if (UNTAG_Bool(REGB0)) {
     ATTR_compiling___compiling_writer___Writer____first_sub_writer(fra.me.REG[0]) = fra.me.REG[1];
   }
-  /* ./compiling//compiling_writer.nit:69 */
+  /* compiling/compiling_writer.nit:69 */
   fra.me.REG[2] = ATTR_compiling___compiling_writer___Writer____last_sub_writer(fra.me.REG[0]);
-  /* ./compiling//compiling_writer.nit:70 */
+  /* compiling/compiling_writer.nit:70 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -236,7 +236,7 @@ void compiling___compiling_writer___Writer___internal_append(val_t p0, val_t p1)
   if (UNTAG_Bool(REGB0)) {
     ATTR_compiling___compiling_writer___WriterNode____next_writer(fra.me.REG[2]) = fra.me.REG[1];
   }
-  /* ./compiling//compiling_writer.nit:71 */
+  /* compiling/compiling_writer.nit:71 */
   ATTR_compiling___compiling_writer___Writer____last_sub_writer(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -254,11 +254,11 @@ val_t compiling___compiling_writer___Writer___sub(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_writer.nit:77 */
+  /* compiling/compiling_writer.nit:77 */
   fra.me.REG[1] = NEW_Writer_compiling___compiling_writer___Writer___init();
-  /* ./compiling//compiling_writer.nit:78 */
+  /* compiling/compiling_writer.nit:78 */
   CALL_compiling___compiling_writer___Writer___append(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./compiling//compiling_writer.nit:79 */
+  /* compiling/compiling_writer.nit:79 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -282,7 +282,7 @@ void compiling___compiling_writer___Writer___write_to_stream(val_t p0, val_t p1)
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_writer.nit:87 */
+  /* compiling/compiling_writer.nit:87 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_writer___Writer____is_writing(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -294,12 +294,12 @@ void compiling___compiling_writer___Writer___write_to_stream(val_t p0, val_t p1)
   } else {
     nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_writer, 87);
   }
-  /* ./compiling//compiling_writer.nit:88 */
+  /* compiling/compiling_writer.nit:88 */
   REGB0 = TAG_Bool(true);
   ATTR_compiling___compiling_writer___Writer____is_writing(fra.me.REG[0]) = REGB0;
-  /* ./compiling//compiling_writer.nit:89 */
+  /* compiling/compiling_writer.nit:89 */
   fra.me.REG[2] = ATTR_compiling___compiling_writer___Writer____first_sub_writer(fra.me.REG[0]);
-  /* ./compiling//compiling_writer.nit:90 */
+  /* compiling/compiling_writer.nit:90 */
   while(1) {
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -315,22 +315,22 @@ void compiling___compiling_writer___Writer___write_to_stream(val_t p0, val_t p1)
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//compiling_writer.nit:91 */
+      /* compiling/compiling_writer.nit:91 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_writer, 91);
       }
       CALL_compiling___compiling_writer___WriterNode___internal_write_to_stream(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-      /* ./compiling//compiling_writer.nit:92 */
+      /* compiling/compiling_writer.nit:92 */
       fra.me.REG[3] = ATTR_compiling___compiling_writer___WriterNode____next_writer(fra.me.REG[2]);
       fra.me.REG[2] = fra.me.REG[3];
     } else {
-      /* ./compiling//compiling_writer.nit:90 */
+      /* compiling/compiling_writer.nit:90 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./compiling//compiling_writer.nit:94 */
+  /* compiling/compiling_writer.nit:94 */
   REGB0 = TAG_Bool(false);
   ATTR_compiling___compiling_writer___Writer____is_writing(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -349,7 +349,7 @@ val_t compiling___compiling_writer___Writer___is_frozen(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_writer.nit:97 */
+  /* compiling/compiling_writer.nit:97 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_writer___Writer____is_frozen(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -372,12 +372,12 @@ void compiling___compiling_writer___Writer___freeze(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_writer.nit:103 */
+  /* compiling/compiling_writer.nit:103 */
   REGB0 = CALL_compiling___compiling_writer___Writer___is_frozen(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./compiling//compiling_writer.nit:104 */
+  /* compiling/compiling_writer.nit:104 */
   REGB0 = TAG_Bool(true);
   ATTR_compiling___compiling_writer___Writer____is_frozen(fra.me.REG[0]) = REGB0;
   label1: while(0);
@@ -412,7 +412,7 @@ void compiling___compiling_writer___WriterNode___internal_write_to_stream(val_t
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./compiling//compiling_writer.nit:115 */
+  /* compiling/compiling_writer.nit:115 */
   nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_writer, 115);
   stack_frame_head = fra.me.prev;
   return;
@@ -448,7 +448,7 @@ void compiling___compiling_writer___WriterCoreNode___internal_write_to_stream(va
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_writer.nit:124 */
+  /* compiling/compiling_writer.nit:124 */
   REGB0 = TAG_Bool(ATTR_compiling___compiling_writer___WriterCoreNode____writer(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -476,7 +476,7 @@ void compiling___compiling_writer___WriterCoreNode___init(val_t p0, val_t p1, in
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_writer.nit:126 */
+  /* compiling/compiling_writer.nit:126 */
   fra.me.REG[2] = fra.me.REG[0];
   CALL_compiling___compiling_writer___WriterNode___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   ATTR_compiling___compiling_writer___WriterCoreNode____writer(fra.me.REG[2]) = fra.me.REG[1];
@@ -501,10 +501,10 @@ void compiling___compiling_writer___WriterStrings___init(val_t p0, val_t p1, int
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_writer.nit:138 */
+  /* compiling/compiling_writer.nit:138 */
   fra.me.REG[2] = fra.me.REG[0];
   CALL_compiling___compiling_writer___WriterNode___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./compiling//compiling_writer.nit:140 */
+  /* compiling/compiling_writer.nit:140 */
   ATTR_compiling___compiling_writer___WriterStrings____string(fra.me.REG[2]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos3] = 1;
@@ -527,7 +527,7 @@ void compiling___compiling_writer___WriterStrings___internal_write_to_stream(val
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_writer.nit:146 */
+  /* compiling/compiling_writer.nit:146 */
   while(1) {
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -543,7 +543,7 @@ void compiling___compiling_writer___WriterStrings___internal_write_to_stream(val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//compiling_writer.nit:147 */
+      /* compiling/compiling_writer.nit:147 */
       REGB0 = TAG_Bool(ATTR_compiling___compiling_writer___WriterStrings____string(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -551,11 +551,11 @@ void compiling___compiling_writer___WriterStrings___internal_write_to_stream(val
       }
       fra.me.REG[2] = ATTR_compiling___compiling_writer___WriterStrings____string(fra.me.REG[0]);
       CALL_standard___stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-      /* ./compiling//compiling_writer.nit:148 */
+      /* compiling/compiling_writer.nit:148 */
       fra.me.REG[2] = ATTR_compiling___compiling_writer___WriterStrings____next(fra.me.REG[0]);
       fra.me.REG[0] = fra.me.REG[2];
     } else {
-      /* ./compiling//compiling_writer.nit:146 */
+      /* compiling/compiling_writer.nit:146 */
       goto label1;
     }
   }
index 77b9de9..81bc356 100644 (file)
@@ -15,9 +15,9 @@ void compiling___icode_generator___Program___generate_icode_files(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//icode_generator.nit:26 */
+  /* compiling/icode_generator.nit:26 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./compiling//icode_generator.nit:28 */
+  /* compiling/icode_generator.nit:28 */
   fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_compiling___compiling_base___ToolContext___compdir(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -33,7 +33,7 @@ void compiling___icode_generator___Program___generate_icode_files(val_t p0){
     struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
     val_t REGB0;
     val_t tmp;
-    /* ./compiling//icode_generator.nit:30 */
+    /* compiling/icode_generator.nit:30 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_compiling___icode_generator;
     fra.me.line = 30;
@@ -44,7 +44,7 @@ void compiling___icode_generator___Program___generate_icode_files(val_t p0){
     fra.me.REG[0] = NIT_NULL;
     fra.me.REG[1] = NIT_NULL;
     fra.me.REG[0] = p0;
-    /* ./compiling//icode_generator.nit:31 */
+    /* compiling/icode_generator.nit:31 */
     fra.me.REG[1] = CALL_program___Program___tc(closctx->REG[1])(closctx->REG[1]);
     fra.me.REG[1] = CALL_compiling___compiling_base___ToolContext___compdir(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_standard___string___String, ID_standard___string___String)) /*cast String*/;
@@ -75,13 +75,13 @@ void compiling___icode_generator___FileICodeDumper___init(val_t p0, val_t p1, in
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//icode_generator.nit:41 */
+  /* compiling/icode_generator.nit:41 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./compiling//icode_generator.nit:43 */
+  /* compiling/icode_generator.nit:43 */
   REGB0 = TAG_Bool(false);
   REGB1 = TAG_Bool(false);
   CALL_analysis___icode_dump___ICodeDumper___init(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB1, init_table);
-  /* ./compiling//icode_generator.nit:44 */
+  /* compiling/icode_generator.nit:44 */
   ATTR_compiling___icode_generator___FileICodeDumper____file(fra.me.REG[2]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -108,21 +108,21 @@ void compiling___icode_generator___FileICodeDumper___write(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//icode_generator.nit:48 */
+  /* compiling/icode_generator.nit:48 */
   REGB0 = TAG_Int(0);
   REGB1 = CALL_analysis___icode_dump___ICodeDumper___indent_level(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./compiling//icode_generator.nit:49 */
+      /* compiling/icode_generator.nit:49 */
       REGB2 = TAG_Bool(ATTR_compiling___icode_generator___FileICodeDumper____file(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -138,19 +138,19 @@ void compiling___icode_generator___FileICodeDumper___write(val_t p0, val_t p1){
       } else fra.me.REG[3] = once_value_1;
       fra.me.REG[3] = fra.me.REG[3];
       CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./compiling//icode_generator.nit:51 */
+  /* compiling/icode_generator.nit:51 */
   REGB0 = TAG_Bool(ATTR_compiling___icode_generator___FileICodeDumper____file(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -158,7 +158,7 @@ void compiling___icode_generator___FileICodeDumper___write(val_t p0, val_t p1){
   }
   fra.me.REG[3] = ATTR_compiling___icode_generator___FileICodeDumper____file(fra.me.REG[0]);
   CALL_standard___stream___OStream___write(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-  /* ./compiling//icode_generator.nit:52 */
+  /* compiling/icode_generator.nit:52 */
   REGB0 = TAG_Bool(ATTR_compiling___icode_generator___FileICodeDumper____file(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -202,7 +202,7 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//icode_generator.nit:59 */
+  /* compiling/icode_generator.nit:59 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -237,7 +237,7 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[2]);
-  /* ./compiling//icode_generator.nit:60 */
+  /* compiling/icode_generator.nit:60 */
   fra.me.REG[1] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -252,7 +252,7 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//icode_generator.nit:62 */
+    /* compiling/icode_generator.nit:62 */
     fra.me.REG[1] = CALL_program___MMLocalClass___init_var_iroutine(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -268,11 +268,11 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//icode_generator.nit:63 */
+      /* compiling/icode_generator.nit:63 */
       fra.me.REG[1] = NEW_FileICodeDumper_compiling___icode_generator___FileICodeDumper___init(fra.me.REG[2]);
-      /* ./compiling//icode_generator.nit:64 */
+      /* compiling/icode_generator.nit:64 */
       CALL_analysis___icode_dump___ICodeDumper___indent(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//icode_generator.nit:65 */
+      /* compiling/icode_generator.nit:65 */
       if (!once_value_4) {
         fra.me.REG[3] = BOX_NativeString("Init var iroutine::\n");
         REGB0 = TAG_Int(20);
@@ -282,14 +282,14 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
       } else fra.me.REG[3] = once_value_4;
       fra.me.REG[3] = fra.me.REG[3];
       CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-      /* ./compiling//icode_generator.nit:66 */
+      /* compiling/icode_generator.nit:66 */
       fra.me.REG[3] = CALL_program___MMLocalClass___init_var_iroutine(fra.me.REG[0])(fra.me.REG[0]);
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_compiling___icode_generator, 66);
       }
       CALL_analysis___icode_dump___IRoutine___dump(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-      /* ./compiling//icode_generator.nit:67 */
+      /* compiling/icode_generator.nit:67 */
       if (!once_value_5) {
         fra.me.REG[1] = BOX_NativeString("\n\n");
         REGB0 = TAG_Int(2);
@@ -300,7 +300,7 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
       fra.me.REG[1] = fra.me.REG[1];
       CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
     }
-    /* ./compiling//icode_generator.nit:69 */
+    /* compiling/icode_generator.nit:69 */
     fra.me.REG[1] = CALL_program___MMLocalClass___checknew_iroutine(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -316,11 +316,11 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//icode_generator.nit:70 */
+      /* compiling/icode_generator.nit:70 */
       fra.me.REG[1] = NEW_FileICodeDumper_compiling___icode_generator___FileICodeDumper___init(fra.me.REG[2]);
-      /* ./compiling//icode_generator.nit:71 */
+      /* compiling/icode_generator.nit:71 */
       CALL_analysis___icode_dump___ICodeDumper___indent(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//icode_generator.nit:72 */
+      /* compiling/icode_generator.nit:72 */
       if (!once_value_6) {
         fra.me.REG[3] = BOX_NativeString("Check new instance iroutine::\n");
         REGB0 = TAG_Int(30);
@@ -330,14 +330,14 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
       } else fra.me.REG[3] = once_value_6;
       fra.me.REG[3] = fra.me.REG[3];
       CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-      /* ./compiling//icode_generator.nit:73 */
+      /* compiling/icode_generator.nit:73 */
       fra.me.REG[3] = CALL_program___MMLocalClass___checknew_iroutine(fra.me.REG[0])(fra.me.REG[0]);
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_compiling___icode_generator, 73);
       }
       CALL_analysis___icode_dump___IRoutine___dump(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-      /* ./compiling//icode_generator.nit:74 */
+      /* compiling/icode_generator.nit:74 */
       if (!once_value_7) {
         fra.me.REG[1] = BOX_NativeString("\n\n");
         REGB0 = TAG_Int(2);
@@ -348,14 +348,14 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
       fra.me.REG[1] = fra.me.REG[1];
       CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
     }
-    /* ./compiling//icode_generator.nit:78 */
+    /* compiling/icode_generator.nit:78 */
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[0])(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_compiling___icode_generator___MMLocalClass___generate_icode_file_8));
   }
-  /* ./compiling//icode_generator.nit:91 */
+  /* compiling/icode_generator.nit:92 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_compiling___icode_generator___MMLocalClass___generate_icode_file_13));
-  /* ./compiling//icode_generator.nit:97 */
+  /* compiling/icode_generator.nit:98 */
   CALL_standard___stream___IOS___close(fra.me.REG[2])(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
@@ -383,25 +383,32 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./compiling//icode_generator.nit:79 */
+      /* compiling/icode_generator.nit:79 */
       REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
         goto label9;
       }
-      /* ./compiling//icode_generator.nit:80 */
+      /* compiling/icode_generator.nit:80 */
       fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
-      /* ./compiling//icode_generator.nit:81 */
+      /* compiling/icode_generator.nit:81 */
       REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Assert failed", NULL, LOCATE_compiling___icode_generator, 81);
       }
-      /* ./compiling//icode_generator.nit:82 */
+      /* compiling/icode_generator.nit:82 */
+      fra.me.REG[1] = CALL_program___MMLocalClass___new_instance_iroutine(closctx->REG[0])(closctx->REG[0]);
+      REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+      REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+      if (UNTAG_Bool(REGB0)) {
+        goto label9;
+      }
+      /* compiling/icode_generator.nit:83 */
       fra.me.REG[1] = NEW_FileICodeDumper_compiling___icode_generator___FileICodeDumper___init(closctx->REG[2]);
-      /* ./compiling//icode_generator.nit:83 */
+      /* compiling/icode_generator.nit:84 */
       CALL_analysis___icode_dump___ICodeDumper___indent(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//icode_generator.nit:84 */
+      /* compiling/icode_generator.nit:85 */
       REGB0 = TAG_Int(3);
       fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_10) {
@@ -426,15 +433,15 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
       fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
       CALL_standard___stream___OStream___write(closctx->REG[2])(closctx->REG[2], fra.me.REG[2]);
-      /* ./compiling//icode_generator.nit:85 */
+      /* compiling/icode_generator.nit:86 */
       fra.me.REG[2] = CALL_program___MMLocalClass___new_instance_iroutine(closctx->REG[0])(closctx->REG[0]);
       fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
       REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_compiling___icode_generator, 85);
+        nit_abort("Reciever is null", NULL, LOCATE_compiling___icode_generator, 86);
       }
       CALL_analysis___icode_dump___IRoutine___dump(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-      /* ./compiling//icode_generator.nit:86 */
+      /* compiling/icode_generator.nit:87 */
       if (!once_value_12) {
         fra.me.REG[1] = BOX_NativeString("\n\n");
         REGB0 = TAG_Int(2);
@@ -467,9 +474,9 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./compiling//icode_generator.nit:92 */
+    /* compiling/icode_generator.nit:93 */
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
-    /* ./compiling//icode_generator.nit:93 */
+    /* compiling/icode_generator.nit:94 */
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],closctx->REG[0]));
     if (UNTAG_Bool(REGB0)) {
@@ -484,7 +491,7 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//icode_generator.nit:94 */
+      /* compiling/icode_generator.nit:95 */
       CALL_compiling___icode_generator___MMMethod___generate_icode(fra.me.REG[0])(fra.me.REG[0], closctx->REG[2]);
     }
     stack_frame_head = fra.me.prev;
@@ -499,7 +506,7 @@ void compiling___icode_generator___MMMethod___generate_icode(val_t p0, val_t p1)
   static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_compiling___icode_generator;
-  fra.me.line = 102;
+  fra.me.line = 103;
   fra.me.meth = LOCATE_compiling___icode_generator___MMMethod___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -511,11 +518,11 @@ void compiling___icode_generator___MMMethod___generate_icode(val_t p0, val_t p1)
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//icode_generator.nit:104 */
+  /* compiling/icode_generator.nit:105 */
   fra.me.REG[2] = NEW_FileICodeDumper_compiling___icode_generator___FileICodeDumper___init(fra.me.REG[1]);
-  /* ./compiling//icode_generator.nit:105 */
+  /* compiling/icode_generator.nit:106 */
   CALL_analysis___icode_dump___ICodeDumper___indent(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./compiling//icode_generator.nit:106 */
+  /* compiling/icode_generator.nit:107 */
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -540,14 +547,14 @@ void compiling___icode_generator___MMMethod___generate_icode(val_t p0, val_t p1)
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_standard___stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//icode_generator.nit:107 */
+  /* compiling/icode_generator.nit:108 */
   fra.me.REG[0] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_compiling___icode_generator, 107);
+    nit_abort("Reciever is null", NULL, LOCATE_compiling___icode_generator, 108);
   }
   CALL_analysis___icode_dump___IRoutine___dump(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./compiling//icode_generator.nit:108 */
+  /* compiling/icode_generator.nit:109 */
   if (!once_value_3) {
     fra.me.REG[2] = BOX_NativeString("\n\n");
     REGB0 = TAG_Int(2);
index 67e7ea1..fa86208 100644 (file)
@@ -15,7 +15,7 @@ val_t compiling___table_computation___ColorContext___color(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//table_computation.nit:32 */
+  /* compiling/table_computation.nit:32 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -44,7 +44,7 @@ val_t compiling___table_computation___ColorContext___has_color(val_t p0, val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//table_computation.nit:38 */
+  /* compiling/table_computation.nit:38 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -79,7 +79,7 @@ void compiling___table_computation___ColorContext___color__eq(val_t p0, val_t p1
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   REGB0 = p2;
-  /* ./compiling//table_computation.nit:44 */
+  /* compiling/table_computation.nit:44 */
   REGB1 = TAG_Bool(ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -87,23 +87,23 @@ void compiling___table_computation___ColorContext___color__eq(val_t p0, val_t p1
   }
   fra.me.REG[2] = ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], REGB0);
-  /* ./compiling//table_computation.nit:46 */
+  /* compiling/table_computation.nit:46 */
   REGB1 = TAG_Int(0);
   REGB2 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB3)) {
-      /* ./compiling//table_computation.nit:46 */
+      /* compiling/table_computation.nit:46 */
       REGB3 = REGB1;
-      /* ./compiling//table_computation.nit:47 */
+      /* compiling/table_computation.nit:47 */
       REGB4 = TAG_Bool(ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB4)) {
       } else {
@@ -112,20 +112,20 @@ void compiling___table_computation___ColorContext___color__eq(val_t p0, val_t p1
       fra.me.REG[2] = ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0]);
       fra.me.REG[3] = CALL_compiling___table_computation___TableElt___item(fra.me.REG[1])(fra.me.REG[1], REGB3);
       CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], REGB0);
-      /* ./compiling//table_computation.nit:48 */
+      /* compiling/table_computation.nit:48 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-      /* ./compiling//table_computation.nit:48 */
+      /* compiling/table_computation.nit:48 */
       REGB0 = REGB3;
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB1 = REGB3;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label1;
     }
   }
@@ -162,7 +162,7 @@ val_t compiling___table_computation___TableInformation___max_class_table_length(
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:56 */
+  /* compiling/table_computation.nit:56 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___TableInformation____max_class_table_length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -186,7 +186,7 @@ void compiling___table_computation___TableInformation___max_class_table_length__
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./compiling//table_computation.nit:56 */
+  /* compiling/table_computation.nit:56 */
   ATTR_compiling___table_computation___TableInformation____max_class_table_length(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -204,7 +204,7 @@ val_t compiling___table_computation___CompiledClass___local_class(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:63 */
+  /* compiling/table_computation.nit:63 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___CompiledClass____local_class(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -227,7 +227,7 @@ val_t compiling___table_computation___CompiledClass___id(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:66 */
+  /* compiling/table_computation.nit:66 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___CompiledClass____id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -251,7 +251,7 @@ void compiling___table_computation___CompiledClass___id__eq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./compiling//table_computation.nit:66 */
+  /* compiling/table_computation.nit:66 */
   ATTR_compiling___table_computation___CompiledClass____id(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -269,7 +269,7 @@ val_t compiling___table_computation___CompiledClass___class_table(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:69 */
+  /* compiling/table_computation.nit:69 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___CompiledClass____class_table(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -292,7 +292,7 @@ val_t compiling___table_computation___CompiledClass___instance_table(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:72 */
+  /* compiling/table_computation.nit:72 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___CompiledClass____instance_table(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -315,7 +315,7 @@ val_t compiling___table_computation___CompiledClass___class_layout(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:75 */
+  /* compiling/table_computation.nit:75 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___CompiledClass____class_layout(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -339,7 +339,7 @@ void compiling___table_computation___CompiledClass___class_layout__eq(val_t p0,
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//table_computation.nit:75 */
+  /* compiling/table_computation.nit:75 */
   ATTR_compiling___table_computation___CompiledClass____class_layout(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -357,7 +357,7 @@ val_t compiling___table_computation___CompiledClass___instance_layout(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:78 */
+  /* compiling/table_computation.nit:78 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___CompiledClass____instance_layout(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -381,7 +381,7 @@ void compiling___table_computation___CompiledClass___instance_layout__eq(val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//table_computation.nit:78 */
+  /* compiling/table_computation.nit:78 */
   ATTR_compiling___table_computation___CompiledClass____instance_layout(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -403,7 +403,7 @@ void compiling___table_computation___CompiledClass___init(val_t p0, val_t p1, in
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//table_computation.nit:81 */
+  /* compiling/table_computation.nit:81 */
   fra.me.REG[2] = fra.me.REG[0];
   CALL_compiling___table_computation___ColorContext___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   ATTR_compiling___table_computation___CompiledClass____local_class(fra.me.REG[2]) = fra.me.REG[1];
@@ -425,9 +425,9 @@ val_t compiling___table_computation___MMConcreteClass___class_color_pos(val_t p0
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:85 */
+  /* compiling/table_computation.nit:85 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./compiling//table_computation.nit:86 */
+  /* compiling/table_computation.nit:86 */
   fra.me.REG[1] = ATTR_compiling___table_computation___MMConcreteClass____class_color_pos(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -452,7 +452,7 @@ val_t compiling___table_computation___MMConcreteClass___class_layout(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:89 */
+  /* compiling/table_computation.nit:89 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMConcreteClass____class_layout(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -475,7 +475,7 @@ val_t compiling___table_computation___MMConcreteClass___instance_layout(val_t p0
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:92 */
+  /* compiling/table_computation.nit:92 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMConcreteClass____instance_layout(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -504,21 +504,21 @@ void compiling___table_computation___MMConcreteClass___build_layout_in(val_t p0,
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//table_computation.nit:98 */
+  /* compiling/table_computation.nit:98 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMConcreteClass____class_layout(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_class_layout", LOCATE_compiling___table_computation, 98);
   }
   fra.me.REG[2] = ATTR_compiling___table_computation___MMConcreteClass____class_layout(fra.me.REG[0]);
-  /* ./compiling//table_computation.nit:99 */
+  /* compiling/table_computation.nit:99 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMConcreteClass____instance_layout(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_instance_layout", LOCATE_compiling___table_computation, 99);
   }
   fra.me.REG[3] = ATTR_compiling___table_computation___MMConcreteClass____instance_layout(fra.me.REG[0]);
-  /* ./compiling//table_computation.nit:101 */
+  /* compiling/table_computation.nit:101 */
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[0]));
@@ -528,44 +528,44 @@ void compiling___table_computation___MMConcreteClass___build_layout_in(val_t p0,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//table_computation.nit:102 */
+    /* compiling/table_computation.nit:102 */
     fra.me.REG[4] = NEW_TableEltClassId_compiling___table_computation___AbsTableEltClass___init(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-    /* ./compiling//table_computation.nit:103 */
+    /* compiling/table_computation.nit:103 */
     fra.me.REG[4] = NEW_TableEltClassColor_compiling___table_computation___AbsTableEltClass___init(fra.me.REG[0]);
-    /* ./compiling//table_computation.nit:104 */
+    /* compiling/table_computation.nit:104 */
     ATTR_compiling___table_computation___MMConcreteClass____class_color_pos(fra.me.REG[0]) = fra.me.REG[4];
-    /* ./compiling//table_computation.nit:105 */
+    /* compiling/table_computation.nit:105 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-    /* ./compiling//table_computation.nit:106 */
+    /* compiling/table_computation.nit:106 */
     fra.me.REG[4] = NEW_TableEltClassInitTable_compiling___table_computation___AbsTableEltClass___init(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   }
-  /* ./compiling//table_computation.nit:108 */
+  /* compiling/table_computation.nit:108 */
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___local_local_properties(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_compiling___table_computation___MMConcreteClass___build_layout_in_1));
-  /* ./compiling//table_computation.nit:125 */
+  /* compiling/table_computation.nit:125 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//table_computation.nit:126 */
-    fra.me.REG[0] = NEW_ModuleTableEltGroup_compiling___table_computation___AbsTableElt___init();
-    /* ./compiling//table_computation.nit:127 */
+    /* compiling/table_computation.nit:126 */
+    fra.me.REG[0] = NEW_ModuleTableEltGroup_compiling___table_computation___ModuleTableEltGroup___init();
+    /* compiling/table_computation.nit:127 */
     fra.me.REG[4] = CALL_compiling___table_computation___ModuleTableEltGroup___elements(fra.me.REG[0])(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-    /* ./compiling//table_computation.nit:128 */
+    /* compiling/table_computation.nit:128 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
-  /* ./compiling//table_computation.nit:131 */
+  /* compiling/table_computation.nit:131 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//table_computation.nit:132 */
-    fra.me.REG[0] = NEW_ModuleTableEltGroup_compiling___table_computation___AbsTableElt___init();
-    /* ./compiling//table_computation.nit:133 */
+    /* compiling/table_computation.nit:132 */
+    fra.me.REG[0] = NEW_ModuleTableEltGroup_compiling___table_computation___ModuleTableEltGroup___init();
+    /* compiling/table_computation.nit:133 */
     fra.me.REG[3] = CALL_compiling___table_computation___ModuleTableEltGroup___elements(fra.me.REG[0])(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-    /* ./compiling//table_computation.nit:134 */
+    /* compiling/table_computation.nit:134 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
   stack_frame_head = fra.me.prev;
@@ -590,9 +590,9 @@ void compiling___table_computation___MMConcreteClass___build_layout_in(val_t p0,
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./compiling//table_computation.nit:109 */
+    /* compiling/table_computation.nit:109 */
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-    /* ./compiling//table_computation.nit:110 */
+    /* compiling/table_computation.nit:110 */
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
     if (UNTAG_Bool(REGB0)) {
@@ -601,34 +601,34 @@ void compiling___table_computation___MMConcreteClass___build_layout_in(val_t p0,
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//table_computation.nit:111 */
+      /* compiling/table_computation.nit:111 */
       REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMAttribute, ID_metamodel___abstractmetamodel___MMAttribute)) /*cast MMAttribute*/;
       if (UNTAG_Bool(REGB0)) {
-        /* ./compiling//table_computation.nit:112 */
+        /* compiling/table_computation.nit:112 */
         fra.me.REG[1] = NEW_TableEltAttr_compiling___table_computation___TableEltProp___init(fra.me.REG[0]);
         CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[1]);
       } else {
-        /* ./compiling//table_computation.nit:113 */
+        /* compiling/table_computation.nit:113 */
         REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
         if (UNTAG_Bool(REGB0)) {
-          /* ./compiling//table_computation.nit:114 */
+          /* compiling/table_computation.nit:114 */
           fra.me.REG[1] = NEW_TableEltMeth_compiling___table_computation___TableEltProp___init(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[1]);
         } else {
-          /* ./compiling//table_computation.nit:115 */
+          /* compiling/table_computation.nit:115 */
           REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___virtualtype___MMTypeProperty, ID_metamodel___virtualtype___MMTypeProperty)) /*cast MMTypeProperty*/;
           if (UNTAG_Bool(REGB0)) {
-            /* ./compiling//table_computation.nit:116 */
+            /* compiling/table_computation.nit:116 */
             fra.me.REG[1] = NEW_TableEltVTClassId_compiling___table_computation___TableEltProp___init(fra.me.REG[0]);
             CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[1]);
-            /* ./compiling//table_computation.nit:117 */
+            /* compiling/table_computation.nit:117 */
             fra.me.REG[1] = NEW_TableEltVTClassColor_compiling___table_computation___TableEltProp___init(fra.me.REG[0]);
             CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[1]);
           }
         }
       }
     }
-    /* ./compiling//table_computation.nit:120 */
+    /* compiling/table_computation.nit:120 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
     if (UNTAG_Bool(REGB0)) {
       REGB0 = CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super(fra.me.REG[0])(fra.me.REG[0]);
@@ -637,7 +637,7 @@ void compiling___table_computation___MMConcreteClass___build_layout_in(val_t p0,
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//table_computation.nit:121 */
+      /* compiling/table_computation.nit:121 */
       fra.me.REG[0] = NEW_TableEltSuper_compiling___table_computation___TableEltProp___init(fra.me.REG[0]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
     }
@@ -657,7 +657,7 @@ val_t compiling___table_computation___Program___table_information(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:140 */
+  /* compiling/table_computation.nit:140 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___Program____table_information(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -680,7 +680,7 @@ val_t compiling___table_computation___Program___compiled_classes(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:143 */
+  /* compiling/table_computation.nit:143 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___Program____compiled_classes(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -707,7 +707,7 @@ void compiling___table_computation___Program___do_table_computation(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:148 */
+  /* compiling/table_computation.nit:148 */
   fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
   if (!once_value_1) {
     fra.me.REG[2] = BOX_NativeString("Building tables");
@@ -718,8 +718,8 @@ void compiling___table_computation___Program___do_table_computation(val_t p0){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   REGB0 = TAG_Int(1);
-  CALL_mmloader___ToolContext___info(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], REGB0);
-  /* ./compiling//table_computation.nit:149 */
+  CALL_toolcontext___ToolContext___info(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], REGB0);
+  /* compiling/table_computation.nit:149 */
   fra.me.REG[2] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -728,7 +728,7 @@ void compiling___table_computation___Program___do_table_computation(val_t p0){
   }
   fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling___table_computation___Program___do_table_computation_2));
-  /* ./compiling//table_computation.nit:154 */
+  /* compiling/table_computation.nit:154 */
   fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
   if (!once_value_5) {
     fra.me.REG[1] = BOX_NativeString("Merging all tables");
@@ -739,8 +739,8 @@ void compiling___table_computation___Program___do_table_computation(val_t p0){
   } else fra.me.REG[1] = once_value_5;
   fra.me.REG[1] = fra.me.REG[1];
   REGB0 = TAG_Int(2);
-  CALL_mmloader___ToolContext___info(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], REGB0);
-  /* ./compiling//table_computation.nit:155 */
+  CALL_toolcontext___ToolContext___info(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], REGB0);
+  /* compiling/table_computation.nit:155 */
   CALL_compiling___table_computation___Program___do_global_table_analysis(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
@@ -767,7 +767,7 @@ void compiling___table_computation___Program___do_table_computation(val_t p0){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./compiling//table_computation.nit:150 */
+    /* compiling/table_computation.nit:150 */
     fra.me.REG[1] = CALL_program___Program___tc(closctx->REG[0])(closctx->REG[0]);
     REGB0 = TAG_Int(3);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -794,8 +794,8 @@ void compiling___table_computation___Program___do_table_computation(val_t p0){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
     fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Int(2);
-    CALL_mmloader___ToolContext___info(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], REGB0);
-    /* ./compiling//table_computation.nit:151 */
+    CALL_toolcontext___ToolContext___info(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], REGB0);
+    /* compiling/table_computation.nit:151 */
     CALL_compiling___table_computation___MMModule___local_analysis(fra.me.REG[0])(fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -828,58 +828,58 @@ void compiling___table_computation___Program___do_global_table_analysis(val_t p0
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[11] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:161 */
+  /* compiling/table_computation.nit:161 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  /* ./compiling//table_computation.nit:162 */
+  /* compiling/table_computation.nit:162 */
   fra.me.REG[2] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  /* ./compiling//table_computation.nit:163 */
+  /* compiling/table_computation.nit:163 */
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-  /* ./compiling//table_computation.nit:164 */
+  /* compiling/table_computation.nit:164 */
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-  /* ./compiling//table_computation.nit:166 */
-  fra.me.REG[4] = NEW_TableEltClassSelfId_compiling___table_computation___AbsTableElt___init();
+  /* compiling/table_computation.nit:166 */
+  fra.me.REG[4] = NEW_TableEltClassSelfId_compiling___table_computation___TableEltClassSelfId___init();
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* ./compiling//table_computation.nit:167 */
-  fra.me.REG[4] = NEW_TableEltClassObjectSize_compiling___table_computation___AbsTableElt___init();
+  /* compiling/table_computation.nit:167 */
+  fra.me.REG[4] = NEW_TableEltClassObjectSize_compiling___table_computation___TableEltClassObjectSize___init();
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* ./compiling//table_computation.nit:168 */
-  fra.me.REG[4] = NEW_TableEltClassSelfName_compiling___table_computation___AbsTableElt___init();
+  /* compiling/table_computation.nit:168 */
+  fra.me.REG[4] = NEW_TableEltClassSelfName_compiling___table_computation___TableEltClassSelfName___init();
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* ./compiling//table_computation.nit:169 */
-  fra.me.REG[4] = NEW_TableEltVftPointer_compiling___table_computation___AbsTableElt___init();
+  /* compiling/table_computation.nit:169 */
+  fra.me.REG[4] = NEW_TableEltVftPointer_compiling___table_computation___TableEltVftPointer___init();
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./compiling//table_computation.nit:170 */
-  fra.me.REG[4] = NEW_TableEltObjectId_compiling___table_computation___AbsTableElt___init();
+  /* compiling/table_computation.nit:170 */
+  fra.me.REG[4] = NEW_TableEltObjectId_compiling___table_computation___TableEltObjectId___init();
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./compiling//table_computation.nit:172 */
+  /* compiling/table_computation.nit:172 */
   REGB0 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:236 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB0 = TAG_Int(-UNTAG_Int(REGB0));
-  /* ./compiling//table_computation.nit:173 */
+  /* compiling/table_computation.nit:173 */
   REGB1 = TAG_Int(3);
-  /* ./compiling//table_computation.nit:176 */
+  /* compiling/table_computation.nit:176 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./compiling//table_computation.nit:177 */
+  /* compiling/table_computation.nit:177 */
   fra.me.REG[5] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[5])(fra.me.REG[5]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_compiling___table_computation___Program___do_global_table_analysis_1));
   CALL_standard___collection___array___Array___sort(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_compiling___table_computation___Program___do_global_table_analysis_2));
-  /* ./../lib/standard//collection//array.nit:266 */
+  /* ../lib/standard/collection/array.nit:266 */
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB2 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
   if (UNTAG_Bool(REGB3)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
     if (UNTAG_Bool(REGB3)) {
     } else {
@@ -891,28 +891,28 @@ void compiling___table_computation___Program___do_global_table_analysis(val_t p0
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB3)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB2)];
-      /* ./compiling//table_computation.nit:182 */
+      /* compiling/table_computation.nit:182 */
       fra.me.REG[8] = NEW_CompiledClass_compiling___table_computation___CompiledClass___init(fra.me.REG[7]);
-      /* ./compiling//table_computation.nit:183 */
+      /* compiling/table_computation.nit:183 */
       fra.me.REG[9] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
       CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10], fra.me.REG[8]);
-      /* ./compiling//table_computation.nit:187 */
+      /* compiling/table_computation.nit:187 */
       fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
-      /* ./compiling//table_computation.nit:188 */
+      /* compiling/table_computation.nit:188 */
       fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMGlobalClass___mmmodule(fra.me.REG[10])(fra.me.REG[10]);
-      /* ./compiling//table_computation.nit:189 */
+      /* compiling/table_computation.nit:189 */
       fra.me.REG[10] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[7])(fra.me.REG[7]);
       REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
@@ -928,74 +928,74 @@ void compiling___table_computation___Program___do_global_table_analysis(val_t p0
       }
       REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
       if (UNTAG_Bool(REGB3)) {
-        /* ./compiling//table_computation.nit:190 */
+        /* compiling/table_computation.nit:190 */
         CALL_compiling___table_computation___CompiledClass___id__eq(fra.me.REG[8])(fra.me.REG[8], REGB0);
-        /* ./compiling//table_computation.nit:191 */
+        /* compiling/table_computation.nit:191 */
         REGB3 = TAG_Int(4);
-        /* ./../lib/standard//kernel.nit:237 */
+        /* ../lib/standard/kernel.nit:237 */
         REGB3 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB3));
-        /* ./compiling//table_computation.nit:191 */
+        /* compiling/table_computation.nit:191 */
         REGB0 = REGB3;
       } else {
-        /* ./compiling//table_computation.nit:193 */
+        /* compiling/table_computation.nit:193 */
         CALL_compiling___table_computation___CompiledClass___id__eq(fra.me.REG[8])(fra.me.REG[8], REGB1);
-        /* ./compiling//table_computation.nit:194 */
+        /* compiling/table_computation.nit:194 */
         REGB3 = TAG_Int(4);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
-        /* ./compiling//table_computation.nit:194 */
+        /* compiling/table_computation.nit:194 */
         REGB1 = REGB3;
       }
-      /* ./compiling//table_computation.nit:198 */
+      /* compiling/table_computation.nit:198 */
       fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[7])(fra.me.REG[7]);
       fra.me.REG[8] = CALL_metamodel___partial_order___PartialOrderElement___direct_smallers(fra.me.REG[8])(fra.me.REG[8]);
       REGB3 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[8])(fra.me.REG[8]);
       if (UNTAG_Bool(REGB3)) {
-        /* ./compiling//table_computation.nit:199 */
+        /* compiling/table_computation.nit:199 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
       }
-      /* ./compiling//table_computation.nit:203 */
+      /* compiling/table_computation.nit:203 */
       fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
       fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[7])(fra.me.REG[7]);
-      /* ./compiling//table_computation.nit:204 */
+      /* compiling/table_computation.nit:204 */
       REGB3 = TAG_Bool(VAL_ISA(fra.me.REG[7], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
       if (UNTAG_Bool(REGB3)) {
       } else {
         nit_abort("Assert failed", NULL, LOCATE_compiling___table_computation, 204);
       }
-      /* ./compiling//table_computation.nit:205 */
+      /* compiling/table_computation.nit:205 */
       fra.me.REG[7] = CALL_compiling___table_computation___MMConcreteClass___class_color_pos(fra.me.REG[7])(fra.me.REG[7]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = REGB3;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label4;
     }
   }
   label4: while(0);
-  /* ./compiling//table_computation.nit:209 */
+  /* compiling/table_computation.nit:209 */
   fra.me.REG[6] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  /* ./compiling//table_computation.nit:210 */
+  /* compiling/table_computation.nit:210 */
   fra.me.REG[5] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB2 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1007,89 +1007,89 @@ void compiling___table_computation___Program___do_global_table_analysis(val_t p0
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB2)];
-      /* ./compiling//table_computation.nit:212 */
+      /* compiling/table_computation.nit:212 */
       while(1) {
         fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[8])(fra.me.REG[8]);
         fra.me.REG[10] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[10])(fra.me.REG[10]);
-        /* ./../lib/standard//collection//array.nit:24 */
+        /* ../lib/standard/collection/array.nit:24 */
         REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10])!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
         }
         REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10]);
-        /* ./compiling//table_computation.nit:212 */
+        /* compiling/table_computation.nit:212 */
         REGB0 = TAG_Int(1);
         REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
         if (UNTAG_Bool(REGB3)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB0 = TAG_Bool((REGB1)==(REGB0));
-          /* ./compiling//table_computation.nit:212 */
+          /* compiling/table_computation.nit:212 */
           REGB3 = REGB0;
         }
         if (UNTAG_Bool(REGB3)) {
-          /* ./compiling//table_computation.nit:213 */
+          /* compiling/table_computation.nit:213 */
           fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[8])(fra.me.REG[8]);
           fra.me.REG[10] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[10])(fra.me.REG[10]);
           fra.me.REG[10] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[10])(fra.me.REG[10]);
           fra.me.REG[8] = fra.me.REG[10];
         } else {
-          /* ./compiling//table_computation.nit:212 */
+          /* compiling/table_computation.nit:212 */
           goto label5;
         }
       }
       label5: while(0);
-      /* ./compiling//table_computation.nit:215 */
+      /* compiling/table_computation.nit:215 */
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
-      /* ./compiling//table_computation.nit:216 */
+      /* compiling/table_computation.nit:216 */
       fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[8])(fra.me.REG[8]);
       fra.me.REG[8] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[8])(fra.me.REG[8]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = REGB3;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label6;
     }
   }
   label6: while(0);
-  /* ./compiling//table_computation.nit:221 */
+  /* compiling/table_computation.nit:221 */
   REGB2 = TAG_Int(0);
   CALL_compiling___table_computation___Program___colorize(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[6], REGB2);
-  /* ./compiling//table_computation.nit:224 */
+  /* compiling/table_computation.nit:224 */
   REGB2 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:266 */
+  /* ../lib/standard/collection/array.nit:266 */
   fra.me.REG[7] = fra.me.REG[4];
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB3 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1101,30 +1101,30 @@ void compiling___table_computation___Program___do_global_table_analysis(val_t p0
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB0));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB3)];
-      /* ./compiling//table_computation.nit:226 */
+      /* compiling/table_computation.nit:226 */
       fra.me.REG[10] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[8])(fra.me.REG[8]);
       fra.me.REG[9] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]);
-      /* ./compiling//table_computation.nit:227 */
+      /* compiling/table_computation.nit:227 */
       REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
       if (UNTAG_Bool(REGB0)) {
-        /* ./compiling//table_computation.nit:229 */
+        /* compiling/table_computation.nit:229 */
         fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
         CALL_compiling___table_computation___Program___build_tables_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[8], fra.me.REG[2]);
-        /* ./compiling//table_computation.nit:230 */
+        /* compiling/table_computation.nit:230 */
         fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
-        /* ./../lib/standard//collection//array.nit:24 */
+        /* ../lib/standard/collection/array.nit:24 */
         REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10])!=NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
         } else {
@@ -1136,65 +1136,65 @@ void compiling___table_computation___Program___do_global_table_analysis(val_t p0
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
-        /* ./compiling//table_computation.nit:230 */
+        /* compiling/table_computation.nit:230 */
         if (UNTAG_Bool(REGB0)) {
           fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
-          /* ./../lib/standard//collection//array.nit:24 */
+          /* ../lib/standard/collection/array.nit:24 */
           REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10])!=NIT_NULL);
           if (UNTAG_Bool(REGB0)) {
           } else {
             nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
           }
           REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10]);
-          /* ./compiling//table_computation.nit:230 */
+          /* compiling/table_computation.nit:230 */
           REGB2 = REGB0;
         }
       } else {
-        /* ./compiling//table_computation.nit:233 */
+        /* compiling/table_computation.nit:233 */
         fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[8])(fra.me.REG[8]);
         fra.me.REG[10] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[10])(fra.me.REG[10]);
         fra.me.REG[10] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[10])(fra.me.REG[10]);
-        /* ./compiling//table_computation.nit:234 */
+        /* compiling/table_computation.nit:234 */
         fra.me.REG[11] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
         fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[10])(fra.me.REG[10]);
         fra.me.REG[10] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[10]);
-        /* ./compiling//table_computation.nit:235 */
+        /* compiling/table_computation.nit:235 */
         fra.me.REG[11] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
         REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[11])(fra.me.REG[11]);
         if (UNTAG_Bool(REGB0)) {
         } else {
           nit_abort("Assert failed", NULL, LOCATE_compiling___table_computation, 235);
         }
-        /* ./compiling//table_computation.nit:236 */
+        /* compiling/table_computation.nit:236 */
         fra.me.REG[11] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
         fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
         CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[10]);
-        /* ./compiling//table_computation.nit:237 */
+        /* compiling/table_computation.nit:237 */
         fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[8])(fra.me.REG[8]);
         fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[8])(fra.me.REG[8]);
-        /* ./compiling//table_computation.nit:238 */
+        /* compiling/table_computation.nit:238 */
         REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[8], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
         if (UNTAG_Bool(REGB0)) {
         } else {
           nit_abort("Assert failed", NULL, LOCATE_compiling___table_computation, 238);
         }
-        /* ./compiling//table_computation.nit:239 */
+        /* compiling/table_computation.nit:239 */
         fra.me.REG[8] = CALL_compiling___table_computation___MMConcreteClass___class_color_pos(fra.me.REG[8])(fra.me.REG[8]);
-        /* ./compiling//table_computation.nit:240 */
+        /* compiling/table_computation.nit:240 */
         fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
-        /* ./../lib/standard//collection//array.nit:24 */
+        /* ../lib/standard/collection/array.nit:24 */
         REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10])!=NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
         }
         REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10]);
-        /* ./compiling//table_computation.nit:241 */
+        /* compiling/table_computation.nit:241 */
         fra.me.REG[10] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
         CALL_compiling___table_computation___ColorContext___color__eq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8], REGB0);
-        /* ./compiling//table_computation.nit:242 */
+        /* compiling/table_computation.nit:242 */
         fra.me.REG[9] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[9])(fra.me.REG[9]);
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[8]);
         REGB1 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
@@ -1202,48 +1202,48 @@ void compiling___table_computation___Program___do_global_table_analysis(val_t p0
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
-        /* ./compiling//table_computation.nit:243 */
+        /* compiling/table_computation.nit:243 */
         if (UNTAG_Bool(REGB1)) {
           REGB2 = REGB0;
         }
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB0 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB3 = REGB0;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label7;
     }
   }
   label7: while(0);
-  /* ./compiling//table_computation.nit:246 */
+  /* compiling/table_computation.nit:246 */
   fra.me.REG[1] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
   REGB3 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-  /* ./compiling//table_computation.nit:246 */
+  /* compiling/table_computation.nit:246 */
   CALL_compiling___table_computation___TableInformation___max_class_table_length__eq(fra.me.REG[1])(fra.me.REG[1], REGB3);
-  /* ./../lib/standard//collection//array.nit:266 */
+  /* ../lib/standard/collection/array.nit:266 */
   fra.me.REG[1] = fra.me.REG[4];
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB3 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1255,33 +1255,33 @@ void compiling___table_computation___Program___do_global_table_analysis(val_t p0
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB0));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB3)];
-      /* ./compiling//table_computation.nit:250 */
+      /* compiling/table_computation.nit:250 */
       fra.me.REG[9] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[8])(fra.me.REG[8]);
       fra.me.REG[10] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
-      /* ./compiling//table_computation.nit:251 */
+      /* compiling/table_computation.nit:251 */
       fra.me.REG[9] = CALL_compiling___table_computation___CompiledClass___class_layout(fra.me.REG[10])(fra.me.REG[10]);
-      /* ./compiling//table_computation.nit:252 */
+      /* compiling/table_computation.nit:252 */
       fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___instance_layout(fra.me.REG[10])(fra.me.REG[10]);
-      /* ./compiling//table_computation.nit:253 */
+      /* compiling/table_computation.nit:253 */
       fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalClass___crhe(fra.me.REG[8])(fra.me.REG[8]);
       fra.me.REG[11] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[11])(fra.me.REG[11]);
       CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[11])(fra.me.REG[11], (&(fra.me)), ((fun_t)OC_compiling___table_computation___Program___do_global_table_analysis_8));
-      /* ./compiling//table_computation.nit:260 */
+      /* compiling/table_computation.nit:260 */
       REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
       if (UNTAG_Bool(REGB0)) {
-        /* ./compiling//table_computation.nit:261 */
+        /* compiling/table_computation.nit:261 */
         REGB0 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[9])(fra.me.REG[9]);
         REGB1 = TAG_Int(0);
         REGB4 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -1289,14 +1289,14 @@ void compiling___table_computation___Program___do_global_table_analysis(val_t p0
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:234 */
+        /* ../lib/standard/kernel.nit:234 */
         REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-        /* ./compiling//table_computation.nit:261 */
+        /* compiling/table_computation.nit:261 */
         if (UNTAG_Bool(REGB1)) {
-          /* ./compiling//table_computation.nit:262 */
+          /* compiling/table_computation.nit:262 */
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[9]);
         }
-        /* ./compiling//table_computation.nit:264 */
+        /* compiling/table_computation.nit:264 */
         REGB1 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[10])(fra.me.REG[10]);
         REGB0 = TAG_Int(0);
         REGB4 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
@@ -1304,53 +1304,53 @@ void compiling___table_computation___Program___do_global_table_analysis(val_t p0
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:234 */
+        /* ../lib/standard/kernel.nit:234 */
         REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
-        /* ./compiling//table_computation.nit:264 */
+        /* compiling/table_computation.nit:264 */
         if (UNTAG_Bool(REGB0)) {
-          /* ./compiling//table_computation.nit:265 */
+          /* compiling/table_computation.nit:265 */
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[10]);
         }
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB0 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB3 = REGB0;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label9;
     }
   }
   label9: while(0);
-  /* ./compiling//table_computation.nit:271 */
+  /* compiling/table_computation.nit:271 */
   REGB3 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-  /* ./compiling//table_computation.nit:271 */
+  /* compiling/table_computation.nit:271 */
   CALL_compiling___table_computation___Program___colorize(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[6], REGB3);
-  /* ./compiling//table_computation.nit:272 */
+  /* compiling/table_computation.nit:272 */
   REGB3 = TAG_Int(0);
   CALL_compiling___table_computation___Program___colorize(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[6], REGB3);
-  /* ./compiling//table_computation.nit:275 */
+  /* compiling/table_computation.nit:275 */
   fra.me.REG[6] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
   REGB3 = TAG_Int(0);
   CALL_compiling___table_computation___TableInformation___max_class_table_length__eq(fra.me.REG[6])(fra.me.REG[6], REGB3);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB3 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1362,66 +1362,66 @@ void compiling___table_computation___Program___do_global_table_analysis(val_t p0
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB0));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB3)];
-      /* ./compiling//table_computation.nit:277 */
+      /* compiling/table_computation.nit:277 */
       fra.me.REG[1] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
       fra.me.REG[10] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[10]);
-      /* ./compiling//table_computation.nit:278 */
+      /* compiling/table_computation.nit:278 */
       REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
       if (UNTAG_Bool(REGB0)) {
-        /* ./compiling//table_computation.nit:280 */
+        /* compiling/table_computation.nit:280 */
         fra.me.REG[1] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
         CALL_compiling___table_computation___Program___build_tables_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[7], fra.me.REG[2]);
-        /* ./compiling//table_computation.nit:281 */
+        /* compiling/table_computation.nit:281 */
         fra.me.REG[1] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[10])(fra.me.REG[10]);
         CALL_compiling___table_computation___Program___build_tables_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[7], fra.me.REG[3]);
       } else {
-        /* ./compiling//table_computation.nit:284 */
+        /* compiling/table_computation.nit:284 */
         fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[7])(fra.me.REG[7]);
         fra.me.REG[1] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[1] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
-        /* ./compiling//table_computation.nit:285 */
+        /* compiling/table_computation.nit:285 */
         fra.me.REG[9] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[0])(fra.me.REG[0]);
         fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[1] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[1]);
-        /* ./compiling//table_computation.nit:286 */
+        /* compiling/table_computation.nit:286 */
         fra.me.REG[9] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
         CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[9])(fra.me.REG[9]);
-        /* ./compiling//table_computation.nit:287 */
+        /* compiling/table_computation.nit:287 */
         fra.me.REG[9] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
         fra.me.REG[8] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[1])(fra.me.REG[1]);
         CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[8]);
-        /* ./compiling//table_computation.nit:288 */
+        /* compiling/table_computation.nit:288 */
         fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
         fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[7])(fra.me.REG[7]);
-        /* ./compiling//table_computation.nit:289 */
+        /* compiling/table_computation.nit:289 */
         REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[7], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
         if (UNTAG_Bool(REGB0)) {
         } else {
           nit_abort("Assert failed", NULL, LOCATE_compiling___table_computation, 289);
         }
-        /* ./compiling//table_computation.nit:290 */
+        /* compiling/table_computation.nit:290 */
         fra.me.REG[7] = CALL_compiling___table_computation___MMConcreteClass___class_color_pos(fra.me.REG[7])(fra.me.REG[7]);
-        /* ./compiling//table_computation.nit:291 */
+        /* compiling/table_computation.nit:291 */
         fra.me.REG[8] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
         fra.me.REG[9] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
         REGB0 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[7]);
         CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[8])(fra.me.REG[8], REGB0, fra.me.REG[7]);
-        /* ./compiling//table_computation.nit:292 */
+        /* compiling/table_computation.nit:292 */
         while(1) {
           fra.me.REG[7] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
-          /* ./../lib/standard//collection//array.nit:24 */
+          /* ../lib/standard/collection/array.nit:24 */
           REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
           if (UNTAG_Bool(REGB0)) {
           } else {
@@ -1433,47 +1433,47 @@ void compiling___table_computation___Program___do_global_table_analysis(val_t p0
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:231 */
+          /* ../lib/standard/kernel.nit:231 */
           REGB0 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB2));
-          /* ./compiling//table_computation.nit:292 */
+          /* compiling/table_computation.nit:292 */
           if (UNTAG_Bool(REGB0)) {
-            /* ./compiling//table_computation.nit:293 */
+            /* compiling/table_computation.nit:293 */
             fra.me.REG[7] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
           } else {
-            /* ./compiling//table_computation.nit:292 */
+            /* compiling/table_computation.nit:292 */
             goto label10;
           }
         }
         label10: while(0);
-        /* ./compiling//table_computation.nit:295 */
+        /* compiling/table_computation.nit:295 */
         fra.me.REG[7] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[10])(fra.me.REG[10]);
         fra.me.REG[8] = CALL_compiling___table_computation___CompiledClass___class_layout(fra.me.REG[10])(fra.me.REG[10]);
         CALL_compiling___table_computation___Program___append_to_table(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[8]);
-        /* ./compiling//table_computation.nit:296 */
+        /* compiling/table_computation.nit:296 */
         fra.me.REG[8] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[10])(fra.me.REG[10]);
         REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[8])(fra.me.REG[8]);
         if (UNTAG_Bool(REGB0)) {
         } else {
           nit_abort("Assert failed", NULL, LOCATE_compiling___table_computation, 296);
         }
-        /* ./compiling//table_computation.nit:297 */
+        /* compiling/table_computation.nit:297 */
         fra.me.REG[8] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[10])(fra.me.REG[10]);
         fra.me.REG[1] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[1])(fra.me.REG[1]);
         CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[1]);
-        /* ./compiling//table_computation.nit:298 */
+        /* compiling/table_computation.nit:298 */
         fra.me.REG[1] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[10])(fra.me.REG[10]);
         fra.me.REG[10] = CALL_compiling___table_computation___CompiledClass___instance_layout(fra.me.REG[10])(fra.me.REG[10]);
         CALL_compiling___table_computation___Program___append_to_table(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[10]);
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB0 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB3 = REGB0;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label11;
     }
   }
@@ -1505,7 +1505,7 @@ void compiling___table_computation___Program___do_global_table_analysis(val_t p0
     struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
     val_t REGB0;
     val_t tmp;
-    /* ./compiling//table_computation.nit:178 */
+    /* compiling/table_computation.nit:178 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_compiling___table_computation;
     fra.me.line = 178;
@@ -1537,13 +1537,13 @@ void compiling___table_computation___Program___do_global_table_analysis(val_t p0
         fra.me.REG[0] = NIT_NULL;
         fra.me.REG[1] = NIT_NULL;
         fra.me.REG[0] = p0;
-        /* ./compiling//table_computation.nit:254 */
+        /* compiling/table_computation.nit:254 */
         REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
         if (UNTAG_Bool(REGB0)) {
-          /* ./compiling//table_computation.nit:255 */
+          /* compiling/table_computation.nit:255 */
           fra.me.REG[1] = CALL_compiling___table_computation___MMConcreteClass___class_layout(fra.me.REG[0])(fra.me.REG[0]);
           CALL_compiling___table_computation___TableEltComposite___add(closctx->REG[9])(closctx->REG[9], fra.me.REG[0], fra.me.REG[1]);
-          /* ./compiling//table_computation.nit:256 */
+          /* compiling/table_computation.nit:256 */
           fra.me.REG[1] = CALL_compiling___table_computation___MMConcreteClass___instance_layout(fra.me.REG[0])(fra.me.REG[0]);
           CALL_compiling___table_computation___TableEltComposite___add(closctx->REG[10])(closctx->REG[10], fra.me.REG[0], fra.me.REG[1]);
         }
@@ -1584,24 +1584,24 @@ void compiling___table_computation___Program___colorize(val_t p0, val_t p1, val_
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   REGB0 = p3;
-  /* ./compiling//table_computation.nit:306 */
+  /* compiling/table_computation.nit:306 */
   fra.me.REG[3] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  /* ./compiling//table_computation.nit:307 */
+  /* compiling/table_computation.nit:307 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -1613,67 +1613,67 @@ void compiling___table_computation___Program___colorize(val_t p0, val_t p1, val_
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
-      /* ./compiling//table_computation.nit:309 */
+      /* compiling/table_computation.nit:309 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:236 */
+      /* ../lib/standard/kernel.nit:236 */
       REGB2 = TAG_Int(-UNTAG_Int(REGB2));
-      /* ./compiling//table_computation.nit:310 */
+      /* compiling/table_computation.nit:310 */
       REGB3 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[6])(fra.me.REG[6]);
-      /* ./compiling//table_computation.nit:311 */
+      /* compiling/table_computation.nit:311 */
       fra.me.REG[7] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
       REGB4 = CALL_compiling___table_computation___ColorContext___has_color(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
       if (UNTAG_Bool(REGB4)) {
-        /* ./compiling//table_computation.nit:312 */
+        /* compiling/table_computation.nit:312 */
         fra.me.REG[7] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
         REGB4 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
         REGB2 = REGB4;
       } else {
-        /* ./compiling//table_computation.nit:314 */
+        /* compiling/table_computation.nit:314 */
         CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[4])(fra.me.REG[4]);
         CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling___table_computation___Program___colorize_1));
-        /* ./compiling//table_computation.nit:320 */
+        /* compiling/table_computation.nit:320 */
         REGB4 = REGB0;
-        /* ./compiling//table_computation.nit:321 */
+        /* compiling/table_computation.nit:321 */
         while(1) {
           REGB5 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB2));
           if (UNTAG_Bool(REGB5)) {
           } else {
-            /* ./../lib/standard//kernel.nit:227 */
+            /* ../lib/standard/kernel.nit:227 */
             REGB6 = TAG_Bool((REGB4)==(REGB2));
-            /* ./compiling//table_computation.nit:321 */
+            /* compiling/table_computation.nit:321 */
             REGB5 = REGB6;
           }
           REGB5 = TAG_Bool(!UNTAG_Bool(REGB5));
           if (UNTAG_Bool(REGB5)) {
-            /* ./compiling//table_computation.nit:322 */
+            /* compiling/table_computation.nit:322 */
             REGB2 = REGB4;
-            /* ./../lib/standard//collection//array.nit:266 */
+            /* ../lib/standard/collection/array.nit:266 */
             fra.me.REG[7] = fra.me.REG[4];
-            /* ./../lib/standard//collection//array.nit:269 */
+            /* ../lib/standard/collection/array.nit:269 */
             REGB5 = TAG_Int(0);
-            /* ./../lib/standard//collection//array.nit:270 */
+            /* ../lib/standard/collection/array.nit:270 */
             REGB6 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
             if (UNTAG_Bool(REGB6)) {
             } else {
               nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
             }
             REGB6 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
-            /* ./../lib/standard//collection//array.nit:271 */
+            /* ../lib/standard/collection/array.nit:271 */
             fra.me.REG[8] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
-            /* ./../lib/standard//collection//array.nit:272 */
+            /* ../lib/standard/collection/array.nit:272 */
             while(1) {
-              /* ./../lib/standard//collection//array.nit:24 */
+              /* ../lib/standard/collection/array.nit:24 */
               REGB6 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
               if (UNTAG_Bool(REGB6)) {
               } else {
@@ -1685,38 +1685,38 @@ void compiling___table_computation___Program___colorize(val_t p0, val_t p1, val_
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:232 */
+              /* ../lib/standard/kernel.nit:232 */
               REGB6 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB6));
-              /* ./../lib/standard//collection//array.nit:272 */
+              /* ../lib/standard/collection/array.nit:272 */
               if (UNTAG_Bool(REGB6)) {
-               /* ./../lib/standard//collection//array.nit:273 */
+               /* ../lib/standard/collection/array.nit:273 */
                REGB6 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
                if (UNTAG_Bool(REGB6)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[9] = ((Nit_NativeArray)fra.me.REG[8])->val[UNTAG_Int(REGB5)];
-               /* ./compiling//table_computation.nit:324 */
+               /* compiling/table_computation.nit:324 */
                REGB6 = TAG_Int(0);
-               /* ./compiling//table_computation.nit:325 */
+               /* compiling/table_computation.nit:325 */
                while(1) {
                REGB7 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB6), VTID_standard___kernel___Comparable___OTHER(REGB6))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB7)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB7 = TAG_Bool(UNTAG_Int(REGB6)<UNTAG_Int(REGB3));
-               /* ./compiling//table_computation.nit:325 */
+               /* compiling/table_computation.nit:325 */
                if (UNTAG_Bool(REGB7)) {
-               /* ./../lib/standard//kernel.nit:235 */
+               /* ../lib/standard/kernel.nit:235 */
                REGB7 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB6));
-               /* ./compiling//table_computation.nit:326 */
+               /* compiling/table_computation.nit:326 */
                REGB7 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], REGB7);
                if (UNTAG_Bool(REGB7)) {
-               /* ./../lib/standard//kernel.nit:235 */
+               /* ../lib/standard/kernel.nit:235 */
                REGB7 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB6));
-               /* ./compiling//table_computation.nit:326 */
+               /* compiling/table_computation.nit:326 */
                fra.me.REG[10] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB7);
                REGB7 = CALL_compiling___table_computation___Program___free_color(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[9]);
                REGB7 = TAG_Bool(!UNTAG_Bool(REGB7));
@@ -1725,76 +1725,76 @@ void compiling___table_computation___Program___colorize(val_t p0, val_t p1, val_
                REGB7 = REGB8;
                }
                if (UNTAG_Bool(REGB7)) {
-               /* ./../lib/standard//kernel.nit:235 */
+               /* ../lib/standard/kernel.nit:235 */
                REGB7 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB6));
-               /* ./compiling//table_computation.nit:327 */
+               /* compiling/table_computation.nit:327 */
                REGB8 = TAG_Int(1);
-               /* ./../lib/standard//kernel.nit:235 */
+               /* ../lib/standard/kernel.nit:235 */
                REGB8 = TAG_Int(UNTAG_Int(REGB7)+UNTAG_Int(REGB8));
-               /* ./compiling//table_computation.nit:327 */
+               /* compiling/table_computation.nit:327 */
                REGB4 = REGB8;
-               /* ./compiling//table_computation.nit:328 */
+               /* compiling/table_computation.nit:328 */
                REGB8 = TAG_Int(0);
                REGB6 = REGB8;
                } else {
-               /* ./compiling//table_computation.nit:330 */
+               /* compiling/table_computation.nit:330 */
                REGB8 = TAG_Int(1);
-               /* ./../lib/standard//kernel.nit:235 */
+               /* ../lib/standard/kernel.nit:235 */
                REGB8 = TAG_Int(UNTAG_Int(REGB6)+UNTAG_Int(REGB8));
-               /* ./compiling//table_computation.nit:330 */
+               /* compiling/table_computation.nit:330 */
                REGB6 = REGB8;
                }
                } else {
-               /* ./compiling//table_computation.nit:325 */
+               /* compiling/table_computation.nit:325 */
                goto label2;
                }
                }
                label2: while(0);
-               /* ./../lib/standard//collection//array.nit:274 */
+               /* ../lib/standard/collection/array.nit:274 */
                REGB6 = TAG_Int(1);
-               /* ./../lib/standard//kernel.nit:235 */
+               /* ../lib/standard/kernel.nit:235 */
                REGB6 = TAG_Int(UNTAG_Int(REGB5)+UNTAG_Int(REGB6));
-               /* ./../lib/standard//collection//array.nit:274 */
+               /* ../lib/standard/collection/array.nit:274 */
                REGB5 = REGB6;
               } else {
-               /* ./../lib/standard//collection//array.nit:272 */
+               /* ../lib/standard/collection/array.nit:272 */
                goto label3;
               }
             }
             label3: while(0);
           } else {
-            /* ./compiling//table_computation.nit:321 */
+            /* compiling/table_computation.nit:321 */
             goto label4;
           }
         }
         label4: while(0);
-        /* ./compiling//table_computation.nit:335 */
+        /* compiling/table_computation.nit:335 */
         fra.me.REG[8] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
         CALL_compiling___table_computation___ColorContext___color__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6], REGB2);
       }
-      /* ./compiling//table_computation.nit:337 */
+      /* compiling/table_computation.nit:337 */
       REGB4 = TAG_Int(0);
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       while(1) {
         REGB5 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB5)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB3));
-        /* ./../lib/standard//kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:352 */
         if (UNTAG_Bool(REGB5)) {
-          /* ./compiling//table_computation.nit:337 */
+          /* compiling/table_computation.nit:337 */
           REGB5 = REGB4;
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB6 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
-          /* ./compiling//table_computation.nit:338 */
+          /* compiling/table_computation.nit:338 */
           REGB6 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], REGB6);
           if (UNTAG_Bool(REGB6)) {
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB6 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
-            /* ./compiling//table_computation.nit:339 */
+            /* compiling/table_computation.nit:339 */
             fra.me.REG[8] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB6);
             REGB6 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
             if (UNTAG_Bool(REGB6)) {
@@ -1802,34 +1802,34 @@ void compiling___table_computation___Program___colorize(val_t p0, val_t p1, val_
             }
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6]);
           } else {
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
-            /* ./compiling//table_computation.nit:341 */
+            /* compiling/table_computation.nit:341 */
             REGB6 = TAG_Int(1);
             fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB6);
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6]);
             CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB5, fra.me.REG[8]);
           }
-          /* ./../lib/standard//kernel.nit:354 */
+          /* ../lib/standard/kernel.nit:354 */
           REGB5 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB5 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB5));
-          /* ./../lib/standard//kernel.nit:354 */
+          /* ../lib/standard/kernel.nit:354 */
           REGB4 = REGB5;
         } else {
-          /* ./../lib/standard//kernel.nit:352 */
+          /* ../lib/standard/kernel.nit:352 */
           goto label5;
         }
       }
       label5: while(0);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB4 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB4 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB4));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = REGB4;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label6;
     }
   }
@@ -1841,7 +1841,7 @@ void compiling___table_computation___Program___colorize(val_t p0, val_t p1, val_
           struct {struct stack_frame_t me;} fra;
           val_t REGB0;
           val_t tmp;
-          /* ./compiling//table_computation.nit:315 */
+          /* compiling/table_computation.nit:315 */
           fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
           fra.me.file = LOCATE_compiling___table_computation;
           fra.me.line = 0;
@@ -1851,10 +1851,10 @@ void compiling___table_computation___Program___colorize(val_t p0, val_t p1, val_
           fra.me.nitni_local_ref_head = NULL;
           fra.me.REG[0] = NIT_NULL;
           fra.me.REG[0] = p0;
-          /* ./compiling//table_computation.nit:316 */
+          /* compiling/table_computation.nit:316 */
           REGB0 = CALL_compiling___table_computation___TableElt___is_related_to(closctx->REG[6])(closctx->REG[6], fra.me.REG[0]);
           if (UNTAG_Bool(REGB0)) {
-            /* ./compiling//table_computation.nit:317 */
+            /* compiling/table_computation.nit:317 */
             CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[4])(closctx->REG[4], fra.me.REG[0]);
           }
           stack_frame_head = fra.me.prev;
@@ -1880,20 +1880,20 @@ val_t compiling___table_computation___Program___free_color(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1905,37 +1905,37 @@ val_t compiling___table_computation___Program___free_color(val_t p0, val_t p1, v
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
-      /* ./compiling//table_computation.nit:350 */
+      /* compiling/table_computation.nit:350 */
       REGB1 = CALL_compiling___table_computation___TableElt___is_related_to(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
       if (UNTAG_Bool(REGB1)) {
-        /* ./compiling//table_computation.nit:351 */
+        /* compiling/table_computation.nit:351 */
         REGB1 = TAG_Bool(false);
         goto label1;
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./compiling//table_computation.nit:354 */
+  /* compiling/table_computation.nit:354 */
   REGB0 = TAG_Bool(true);
   REGB1 = REGB0;
   goto label1;
@@ -1964,45 +1964,45 @@ void compiling___table_computation___Program___append_to_table(val_t p0, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//table_computation.nit:359 */
+  /* compiling/table_computation.nit:359 */
   REGB0 = TAG_Int(0);
   REGB1 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./compiling//table_computation.nit:359 */
+      /* compiling/table_computation.nit:359 */
       REGB2 = REGB0;
-      /* ./compiling//table_computation.nit:360 */
+      /* compiling/table_computation.nit:360 */
       fra.me.REG[3] = CALL_compiling___table_computation___TableElt___item(fra.me.REG[2])(fra.me.REG[2], REGB2);
-      /* ./compiling//table_computation.nit:361 */
+      /* compiling/table_computation.nit:361 */
       fra.me.REG[4] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
       }
       REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-      /* ./compiling//table_computation.nit:361 */
+      /* compiling/table_computation.nit:361 */
       CALL_compiling___table_computation___ColorContext___color__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3], REGB2);
-      /* ./compiling//table_computation.nit:362 */
+      /* compiling/table_computation.nit:362 */
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label1;
     }
   }
@@ -2037,24 +2037,24 @@ void compiling___table_computation___Program___build_tables_in(val_t p0, val_t p
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./compiling//table_computation.nit:368 */
+  /* compiling/table_computation.nit:368 */
   fra.me.REG[4] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  /* ./compiling//table_computation.nit:369 */
+  /* compiling/table_computation.nit:369 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -2066,121 +2066,121 @@ void compiling___table_computation___Program___build_tables_in(val_t p0, val_t p
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
-      /* ./compiling//table_computation.nit:371 */
+      /* compiling/table_computation.nit:371 */
       REGB2 = CALL_compiling___table_computation___TableElt___is_related_to(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
       if (UNTAG_Bool(REGB2)) {
-        /* ./compiling//table_computation.nit:372 */
+        /* compiling/table_computation.nit:372 */
         fra.me.REG[7] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[0])(fra.me.REG[0]);
         REGB2 = CALL_compiling___table_computation___ColorContext___color(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
-        /* ./compiling//table_computation.nit:373 */
+        /* compiling/table_computation.nit:373 */
         REGB3 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[6])(fra.me.REG[6]);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-        /* ./compiling//table_computation.nit:374 */
+        /* compiling/table_computation.nit:374 */
         CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[4])(fra.me.REG[4], REGB2, fra.me.REG[6]);
         REGB2 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB2)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
-        /* ./compiling//table_computation.nit:375 */
+        /* compiling/table_computation.nit:375 */
         if (UNTAG_Bool(REGB2)) {
-          /* ./compiling//table_computation.nit:376 */
+          /* compiling/table_computation.nit:376 */
           REGB0 = REGB3;
         }
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = REGB3;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./compiling//table_computation.nit:380 */
+  /* compiling/table_computation.nit:380 */
   REGB1 = TAG_Int(0);
-  /* ./compiling//table_computation.nit:381 */
+  /* compiling/table_computation.nit:381 */
   while(1) {
     REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-    /* ./compiling//table_computation.nit:381 */
+    /* compiling/table_computation.nit:381 */
     if (UNTAG_Bool(REGB3)) {
-      /* ./compiling//table_computation.nit:382 */
+      /* compiling/table_computation.nit:382 */
       REGB3 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], REGB1);
       if (UNTAG_Bool(REGB3)) {
-        /* ./compiling//table_computation.nit:383 */
+        /* compiling/table_computation.nit:383 */
         fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], REGB1);
-        /* ./compiling//table_computation.nit:384 */
+        /* compiling/table_computation.nit:384 */
         REGB3 = TAG_Int(0);
         REGB2 = CALL_compiling___table_computation___TableElt___length(fra.me.REG[0])(fra.me.REG[0]);
-        /* ./../lib/standard//kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:352 */
         while(1) {
           REGB4 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
           if (UNTAG_Bool(REGB4)) {
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
-          /* ./../lib/standard//kernel.nit:352 */
+          /* ../lib/standard/kernel.nit:352 */
           if (UNTAG_Bool(REGB4)) {
-            /* ./compiling//table_computation.nit:384 */
+            /* compiling/table_computation.nit:384 */
             REGB4 = REGB3;
-            /* ./compiling//table_computation.nit:385 */
+            /* compiling/table_computation.nit:385 */
             fra.me.REG[2] = CALL_compiling___table_computation___TableElt___item(fra.me.REG[0])(fra.me.REG[0], REGB4);
             CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB1, fra.me.REG[2]);
-            /* ./compiling//table_computation.nit:386 */
+            /* compiling/table_computation.nit:386 */
             REGB4 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB4 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB4));
-            /* ./compiling//table_computation.nit:386 */
+            /* compiling/table_computation.nit:386 */
             REGB1 = REGB4;
-            /* ./../lib/standard//kernel.nit:354 */
+            /* ../lib/standard/kernel.nit:354 */
             REGB4 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
-            /* ./../lib/standard//kernel.nit:354 */
+            /* ../lib/standard/kernel.nit:354 */
             REGB3 = REGB4;
           } else {
-            /* ./../lib/standard//kernel.nit:352 */
+            /* ../lib/standard/kernel.nit:352 */
             goto label2;
           }
         }
         label2: while(0);
       } else {
-        /* ./compiling//table_computation.nit:389 */
+        /* compiling/table_computation.nit:389 */
         CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB1, NIT_NULL);
-        /* ./compiling//table_computation.nit:390 */
+        /* compiling/table_computation.nit:390 */
         REGB3 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
-        /* ./compiling//table_computation.nit:390 */
+        /* compiling/table_computation.nit:390 */
         REGB1 = REGB3;
       }
     } else {
-      /* ./compiling//table_computation.nit:381 */
+      /* compiling/table_computation.nit:381 */
       goto label3;
     }
   }
@@ -2201,7 +2201,7 @@ val_t compiling___table_computation___MMModule___local_table(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:397 */
+  /* compiling/table_computation.nit:397 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMModule____local_table(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2224,7 +2224,7 @@ void compiling___table_computation___MMModule___local_analysis(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:403 */
+  /* compiling/table_computation.nit:403 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_compiling___table_computation___MMModule___local_analysis_1));
   stack_frame_head = fra.me.prev;
@@ -2248,10 +2248,10 @@ void compiling___table_computation___MMModule___local_analysis(val_t p0){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./compiling//table_computation.nit:404 */
+    /* compiling/table_computation.nit:404 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//table_computation.nit:405 */
+      /* compiling/table_computation.nit:405 */
       REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMModule____local_table(closctx->REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -2263,22 +2263,6 @@ void compiling___table_computation___MMModule___local_analysis(val_t p0){
     stack_frame_head = fra.me.prev;
     return;
   }
-void compiling___table_computation___AbsTableElt___init(val_t p0, int* init_table){
-  int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___AbsTableElt].i;
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  if (init_table[itpos2]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_compiling___table_computation;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_compiling___table_computation___AbsTableElt___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-  init_table[itpos2] = 1;
-  return;
-}
 val_t compiling___table_computation___TableElt___is_related_to(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -2289,7 +2273,7 @@ val_t compiling___table_computation___TableElt___is_related_to(val_t p0, val_t p
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./compiling//table_computation.nit:421 */
+  /* compiling/table_computation.nit:421 */
   nit_abort("Deferred method called", NULL, LOCATE_compiling___table_computation, 421);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -2307,7 +2291,7 @@ val_t compiling___table_computation___TableElt___length(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:425 */
+  /* compiling/table_computation.nit:425 */
   REGB0 = TAG_Int(1);
   goto label1;
   label1: while(0);
@@ -2328,7 +2312,7 @@ val_t compiling___table_computation___TableElt___item(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./compiling//table_computation.nit:428 */
+  /* compiling/table_computation.nit:428 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -2347,7 +2331,7 @@ val_t compiling___table_computation___ModuleTableEltGroup___elements(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:440 */
+  /* compiling/table_computation.nit:440 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___ModuleTableEltGroup____elements(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2357,6 +2341,22 @@ val_t compiling___table_computation___ModuleTableEltGroup___elements(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+void compiling___table_computation___ModuleTableEltGroup___init(val_t p0, int* init_table){
+  int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___ModuleTableEltGroup].i;
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  if (init_table[itpos2]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_compiling___table_computation;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_compiling___table_computation___ModuleTableEltGroup___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+  init_table[itpos2] = 1;
+  return;
+}
 val_t compiling___table_computation___TableEltProp___property(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2370,7 +2370,7 @@ val_t compiling___table_computation___TableEltProp___property(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:446 */
+  /* compiling/table_computation.nit:446 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___TableEltProp____property(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2396,7 +2396,7 @@ void compiling___table_computation___TableEltProp___init(val_t p0, val_t p1, int
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//table_computation.nit:450 */
+  /* compiling/table_computation.nit:450 */
   ATTR_compiling___table_computation___TableEltProp____property(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos3] = 1;
@@ -2415,7 +2415,7 @@ val_t compiling___table_computation___AbsTableEltClass___local_class(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:482 */
+  /* compiling/table_computation.nit:482 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___AbsTableEltClass____local_class(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2427,7 +2427,7 @@ val_t compiling___table_computation___AbsTableEltClass___local_class(val_t p0){
 }
 void compiling___table_computation___AbsTableEltClass___init(val_t p0, val_t p1, int* init_table){
   int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___AbsTableEltClass].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   if (init_table[itpos4]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
@@ -2435,18 +2435,14 @@ void compiling___table_computation___AbsTableEltClass___init(val_t p0, val_t p1,
   fra.me.line = 485;
   fra.me.meth = LOCATE_compiling___table_computation___AbsTableEltClass___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
+  fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//table_computation.nit:485 */
-  fra.me.REG[2] = fra.me.REG[0];
-  CALL_compiling___table_computation___AbsTableElt___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./compiling//table_computation.nit:487 */
-  ATTR_compiling___table_computation___AbsTableEltClass____local_class(fra.me.REG[2]) = fra.me.REG[1];
+  /* compiling/table_computation.nit:487 */
+  ATTR_compiling___table_computation___AbsTableEltClass____local_class(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos4] = 1;
   return;
@@ -2467,7 +2463,7 @@ val_t compiling___table_computation___TableEltClass___is_related_to(val_t p0, va
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//table_computation.nit:497 */
+  /* compiling/table_computation.nit:497 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___AbsTableEltClass____local_class(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2477,7 +2473,7 @@ val_t compiling___table_computation___TableEltClass___is_related_to(val_t p0, va
   fra.me.REG[0] = ATTR_compiling___table_computation___AbsTableEltClass____local_class(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* ./compiling//table_computation.nit:498 */
+  /* compiling/table_computation.nit:498 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = CALL_metamodel___partial_order___PartialOrderElement_____leq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   goto label1;
@@ -2498,21 +2494,21 @@ val_t compiling___table_computation___TableEltComposite___length(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:528 */
+  /* compiling/table_computation.nit:528 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_table", LOCATE_compiling___table_computation, 528);
   }
   fra.me.REG[0] = ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./compiling//table_computation.nit:528 */
+  /* compiling/table_computation.nit:528 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -2533,7 +2529,7 @@ val_t compiling___table_computation___TableEltComposite___is_related_to(val_t p0
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//table_computation.nit:529 */
+  /* compiling/table_computation.nit:529 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___TableEltComposite____cc(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2567,7 +2563,7 @@ void compiling___table_computation___TableEltComposite___add(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//table_computation.nit:533 */
+  /* compiling/table_computation.nit:533 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___TableEltComposite____offsets(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2580,16 +2576,16 @@ void compiling___table_computation___TableEltComposite___add(val_t p0, val_t p1,
     nit_abort("Uninitialized attribute %s", "_table", LOCATE_compiling___table_computation, 533);
   }
   fra.me.REG[4] = ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-  /* ./compiling//table_computation.nit:533 */
+  /* compiling/table_computation.nit:533 */
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], REGB0);
-  /* ./compiling//table_computation.nit:534 */
+  /* compiling/table_computation.nit:534 */
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2616,23 +2612,23 @@ val_t compiling___table_computation___TableEltComposite___item(val_t p0, val_t p
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./compiling//table_computation.nit:537 */
+  /* compiling/table_computation.nit:537 */
   REGB1 = TAG_Bool(ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_table", LOCATE_compiling___table_computation, 537);
   }
   fra.me.REG[0] = ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -2645,29 +2641,29 @@ val_t compiling___table_computation___TableEltComposite___item(val_t p0, val_t p
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
   } else {
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB2 = TAG_Bool(false);
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+    nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
   }
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
   REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
   }
-  /* ./../lib/standard//collection//array.nit:718 */
+  /* ../lib/standard/collection/array.nit:718 */
   fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   goto label1;
   label1: while(0);
-  /* ./compiling//table_computation.nit:537 */
+  /* compiling/table_computation.nit:537 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -2689,12 +2685,12 @@ void compiling___table_computation___TableEltComposite___init(val_t p0, val_t p1
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//table_computation.nit:541 */
+  /* compiling/table_computation.nit:541 */
   ATTR_compiling___table_computation___TableEltComposite____cc(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//table_computation.nit:542 */
+  /* compiling/table_computation.nit:542 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_compiling___table_computation___TableEltComposite____table(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//table_computation.nit:543 */
+  /* compiling/table_computation.nit:543 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_compiling___table_computation___TableEltComposite____offsets(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -2716,13 +2712,29 @@ val_t compiling___table_computation___TableEltClassSelfId___is_related_to(val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//table_computation.nit:550 */
+  /* compiling/table_computation.nit:550 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+void compiling___table_computation___TableEltClassSelfId___init(val_t p0, int* init_table){
+  int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___TableEltClassSelfId].i;
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  if (init_table[itpos6]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_compiling___table_computation;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_compiling___table_computation___TableEltClassSelfId___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+  init_table[itpos6] = 1;
+  return;
+}
 val_t compiling___table_computation___TableEltClassSelfName___is_related_to(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -2738,13 +2750,29 @@ val_t compiling___table_computation___TableEltClassSelfName___is_related_to(val_
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//table_computation.nit:556 */
+  /* compiling/table_computation.nit:556 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+void compiling___table_computation___TableEltClassSelfName___init(val_t p0, int* init_table){
+  int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___TableEltClassSelfName].i;
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  if (init_table[itpos7]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_compiling___table_computation;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_compiling___table_computation___TableEltClassSelfName___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+  init_table[itpos7] = 1;
+  return;
+}
 val_t compiling___table_computation___TableEltClassObjectSize___is_related_to(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -2760,13 +2788,29 @@ val_t compiling___table_computation___TableEltClassObjectSize___is_related_to(va
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//table_computation.nit:562 */
+  /* compiling/table_computation.nit:562 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+void compiling___table_computation___TableEltClassObjectSize___init(val_t p0, int* init_table){
+  int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___TableEltClassObjectSize].i;
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  if (init_table[itpos8]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_compiling___table_computation;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_compiling___table_computation___TableEltClassObjectSize___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+  init_table[itpos8] = 1;
+  return;
+}
 val_t compiling___table_computation___TableEltObjectId___is_related_to(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -2782,13 +2826,29 @@ val_t compiling___table_computation___TableEltObjectId___is_related_to(val_t p0,
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//table_computation.nit:568 */
+  /* compiling/table_computation.nit:568 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+void compiling___table_computation___TableEltObjectId___init(val_t p0, int* init_table){
+  int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___TableEltObjectId].i;
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  if (init_table[itpos9]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_compiling___table_computation;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_compiling___table_computation___TableEltObjectId___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+  init_table[itpos9] = 1;
+  return;
+}
 val_t compiling___table_computation___TableEltVftPointer___is_related_to(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -2804,10 +2864,26 @@ val_t compiling___table_computation___TableEltVftPointer___is_related_to(val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//table_computation.nit:574 */
+  /* compiling/table_computation.nit:574 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+void compiling___table_computation___TableEltVftPointer___init(val_t p0, int* init_table){
+  int itpos10 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___table_computation___TableEltVftPointer].i;
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  if (init_table[itpos10]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_compiling___table_computation;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_compiling___table_computation___TableEltVftPointer___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+  init_table[itpos10] = 1;
+  return;
+}
index 4a3b133..b5e5693 100644 (file)
@@ -109,7 +109,6 @@ extern const int SFT_compiling___table_computation[];
 #define ID_compiling___table_computation___AbsTableElt (SFT_compiling___table_computation[18])
 #define COLOR_compiling___table_computation___AbsTableElt (SFT_compiling___table_computation[19])
 #define INIT_TABLE_POS_compiling___table_computation___AbsTableElt (SFT_compiling___table_computation[20] + 0)
-#define CALL_compiling___table_computation___AbsTableElt___init(recv) ((compiling___table_computation___AbsTableElt___init_t)CALL((recv), (SFT_compiling___table_computation[20] + 1)))
 #define ID_compiling___table_computation___TableElt (SFT_compiling___table_computation[21])
 #define COLOR_compiling___table_computation___TableElt (SFT_compiling___table_computation[22])
 #define INIT_TABLE_POS_compiling___table_computation___TableElt (SFT_compiling___table_computation[23] + 0)
@@ -124,6 +123,7 @@ extern const int SFT_compiling___table_computation[];
 #define ATTR_compiling___table_computation___ModuleTableEltGroup____elements(recv) ATTR(recv, (SFT_compiling___table_computation[29] + 0))
 #define INIT_TABLE_POS_compiling___table_computation___ModuleTableEltGroup (SFT_compiling___table_computation[30] + 0)
 #define CALL_compiling___table_computation___ModuleTableEltGroup___elements(recv) ((compiling___table_computation___ModuleTableEltGroup___elements_t)CALL((recv), (SFT_compiling___table_computation[30] + 1)))
+#define CALL_compiling___table_computation___ModuleTableEltGroup___init(recv) ((compiling___table_computation___ModuleTableEltGroup___init_t)CALL((recv), (SFT_compiling___table_computation[30] + 2)))
 #define ID_compiling___table_computation___TableEltProp (SFT_compiling___table_computation[31])
 #define COLOR_compiling___table_computation___TableEltProp (SFT_compiling___table_computation[32])
 #define ATTR_compiling___table_computation___TableEltProp____property(recv) ATTR(recv, (SFT_compiling___table_computation[33] + 0))
@@ -174,18 +174,23 @@ extern const int SFT_compiling___table_computation[];
 #define ID_compiling___table_computation___TableEltClassSelfId (SFT_compiling___table_computation[70])
 #define COLOR_compiling___table_computation___TableEltClassSelfId (SFT_compiling___table_computation[71])
 #define INIT_TABLE_POS_compiling___table_computation___TableEltClassSelfId (SFT_compiling___table_computation[72] + 0)
+#define CALL_compiling___table_computation___TableEltClassSelfId___init(recv) ((compiling___table_computation___TableEltClassSelfId___init_t)CALL((recv), (SFT_compiling___table_computation[72] + 1)))
 #define ID_compiling___table_computation___TableEltClassSelfName (SFT_compiling___table_computation[73])
 #define COLOR_compiling___table_computation___TableEltClassSelfName (SFT_compiling___table_computation[74])
 #define INIT_TABLE_POS_compiling___table_computation___TableEltClassSelfName (SFT_compiling___table_computation[75] + 0)
+#define CALL_compiling___table_computation___TableEltClassSelfName___init(recv) ((compiling___table_computation___TableEltClassSelfName___init_t)CALL((recv), (SFT_compiling___table_computation[75] + 1)))
 #define ID_compiling___table_computation___TableEltClassObjectSize (SFT_compiling___table_computation[76])
 #define COLOR_compiling___table_computation___TableEltClassObjectSize (SFT_compiling___table_computation[77])
 #define INIT_TABLE_POS_compiling___table_computation___TableEltClassObjectSize (SFT_compiling___table_computation[78] + 0)
+#define CALL_compiling___table_computation___TableEltClassObjectSize___init(recv) ((compiling___table_computation___TableEltClassObjectSize___init_t)CALL((recv), (SFT_compiling___table_computation[78] + 1)))
 #define ID_compiling___table_computation___TableEltObjectId (SFT_compiling___table_computation[79])
 #define COLOR_compiling___table_computation___TableEltObjectId (SFT_compiling___table_computation[80])
 #define INIT_TABLE_POS_compiling___table_computation___TableEltObjectId (SFT_compiling___table_computation[81] + 0)
+#define CALL_compiling___table_computation___TableEltObjectId___init(recv) ((compiling___table_computation___TableEltObjectId___init_t)CALL((recv), (SFT_compiling___table_computation[81] + 1)))
 #define ID_compiling___table_computation___TableEltVftPointer (SFT_compiling___table_computation[82])
 #define COLOR_compiling___table_computation___TableEltVftPointer (SFT_compiling___table_computation[83])
 #define INIT_TABLE_POS_compiling___table_computation___TableEltVftPointer (SFT_compiling___table_computation[84] + 0)
+#define CALL_compiling___table_computation___TableEltVftPointer___init(recv) ((compiling___table_computation___TableEltVftPointer___init_t)CALL((recv), (SFT_compiling___table_computation[84] + 1)))
 static const char * const LOCATE_compiling___table_computation___ColorContext___color = "table_computation::ColorContext::color";
 val_t compiling___table_computation___ColorContext___color(val_t p0, val_t p1);
 typedef val_t (*compiling___table_computation___ColorContext___color_t)(val_t p0, val_t p1);
@@ -300,10 +305,6 @@ typedef void (*compiling___table_computation___MMModule___local_analysis_t)(val_
   void OC_compiling___table_computation___MMModule___local_analysis_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_compiling___table_computation___MMModule___local_analysis_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_MMModule_metamodel___abstractmetamodel___MMModule___init(val_t p0, val_t p1, val_t p2, val_t p3);
-static const char * const LOCATE_compiling___table_computation___AbsTableElt___init = "table_computation::AbsTableElt::init";
-void compiling___table_computation___AbsTableElt___init(val_t p0, int* init_table);
-typedef void (*compiling___table_computation___AbsTableElt___init_t)(val_t p0, int* init_table);
-val_t NEW_AbsTableElt_compiling___table_computation___AbsTableElt___init();
 static const char * const LOCATE_compiling___table_computation___TableElt___is_related_to = "table_computation::TableElt::is_related_to";
 val_t compiling___table_computation___TableElt___is_related_to(val_t p0, val_t p1);
 typedef val_t (*compiling___table_computation___TableElt___is_related_to_t)(val_t p0, val_t p1);
@@ -313,12 +314,13 @@ typedef val_t (*compiling___table_computation___TableElt___length_t)(val_t p0);
 static const char * const LOCATE_compiling___table_computation___TableElt___item = "table_computation::TableElt::item";
 val_t compiling___table_computation___TableElt___item(val_t p0, val_t p1);
 typedef val_t (*compiling___table_computation___TableElt___item_t)(val_t p0, val_t p1);
-val_t NEW_TableElt_compiling___table_computation___AbsTableElt___init();
-val_t NEW_ModuleTableElt_compiling___table_computation___AbsTableElt___init();
 static const char * const LOCATE_compiling___table_computation___ModuleTableEltGroup___elements = "table_computation::ModuleTableEltGroup::elements";
 val_t compiling___table_computation___ModuleTableEltGroup___elements(val_t p0);
 typedef val_t (*compiling___table_computation___ModuleTableEltGroup___elements_t)(val_t p0);
-val_t NEW_ModuleTableEltGroup_compiling___table_computation___AbsTableElt___init();
+static const char * const LOCATE_compiling___table_computation___ModuleTableEltGroup___init = "table_computation::ModuleTableEltGroup::init";
+void compiling___table_computation___ModuleTableEltGroup___init(val_t p0, int* init_table);
+typedef void (*compiling___table_computation___ModuleTableEltGroup___init_t)(val_t p0, int* init_table);
+val_t NEW_ModuleTableEltGroup_compiling___table_computation___ModuleTableEltGroup___init();
 static const char * const LOCATE_compiling___table_computation___TableEltProp___property = "table_computation::TableEltProp::property";
 val_t compiling___table_computation___TableEltProp___property(val_t p0);
 typedef val_t (*compiling___table_computation___TableEltProp___property_t)(val_t p0);
@@ -364,21 +366,36 @@ val_t NEW_TableEltComposite_compiling___table_computation___TableEltComposite___
 static const char * const LOCATE_compiling___table_computation___TableEltClassSelfId___is_related_to = "table_computation::TableEltClassSelfId::(table_computation::TableElt::is_related_to)";
 val_t compiling___table_computation___TableEltClassSelfId___is_related_to(val_t p0, val_t p1);
 typedef val_t (*compiling___table_computation___TableEltClassSelfId___is_related_to_t)(val_t p0, val_t p1);
-val_t NEW_TableEltClassSelfId_compiling___table_computation___AbsTableElt___init();
+static const char * const LOCATE_compiling___table_computation___TableEltClassSelfId___init = "table_computation::TableEltClassSelfId::init";
+void compiling___table_computation___TableEltClassSelfId___init(val_t p0, int* init_table);
+typedef void (*compiling___table_computation___TableEltClassSelfId___init_t)(val_t p0, int* init_table);
+val_t NEW_TableEltClassSelfId_compiling___table_computation___TableEltClassSelfId___init();
 static const char * const LOCATE_compiling___table_computation___TableEltClassSelfName___is_related_to = "table_computation::TableEltClassSelfName::(table_computation::TableElt::is_related_to)";
 val_t compiling___table_computation___TableEltClassSelfName___is_related_to(val_t p0, val_t p1);
 typedef val_t (*compiling___table_computation___TableEltClassSelfName___is_related_to_t)(val_t p0, val_t p1);
-val_t NEW_TableEltClassSelfName_compiling___table_computation___AbsTableElt___init();
+static const char * const LOCATE_compiling___table_computation___TableEltClassSelfName___init = "table_computation::TableEltClassSelfName::init";
+void compiling___table_computation___TableEltClassSelfName___init(val_t p0, int* init_table);
+typedef void (*compiling___table_computation___TableEltClassSelfName___init_t)(val_t p0, int* init_table);
+val_t NEW_TableEltClassSelfName_compiling___table_computation___TableEltClassSelfName___init();
 static const char * const LOCATE_compiling___table_computation___TableEltClassObjectSize___is_related_to = "table_computation::TableEltClassObjectSize::(table_computation::TableElt::is_related_to)";
 val_t compiling___table_computation___TableEltClassObjectSize___is_related_to(val_t p0, val_t p1);
 typedef val_t (*compiling___table_computation___TableEltClassObjectSize___is_related_to_t)(val_t p0, val_t p1);
-val_t NEW_TableEltClassObjectSize_compiling___table_computation___AbsTableElt___init();
+static const char * const LOCATE_compiling___table_computation___TableEltClassObjectSize___init = "table_computation::TableEltClassObjectSize::init";
+void compiling___table_computation___TableEltClassObjectSize___init(val_t p0, int* init_table);
+typedef void (*compiling___table_computation___TableEltClassObjectSize___init_t)(val_t p0, int* init_table);
+val_t NEW_TableEltClassObjectSize_compiling___table_computation___TableEltClassObjectSize___init();
 static const char * const LOCATE_compiling___table_computation___TableEltObjectId___is_related_to = "table_computation::TableEltObjectId::(table_computation::TableElt::is_related_to)";
 val_t compiling___table_computation___TableEltObjectId___is_related_to(val_t p0, val_t p1);
 typedef val_t (*compiling___table_computation___TableEltObjectId___is_related_to_t)(val_t p0, val_t p1);
-val_t NEW_TableEltObjectId_compiling___table_computation___AbsTableElt___init();
+static const char * const LOCATE_compiling___table_computation___TableEltObjectId___init = "table_computation::TableEltObjectId::init";
+void compiling___table_computation___TableEltObjectId___init(val_t p0, int* init_table);
+typedef void (*compiling___table_computation___TableEltObjectId___init_t)(val_t p0, int* init_table);
+val_t NEW_TableEltObjectId_compiling___table_computation___TableEltObjectId___init();
 static const char * const LOCATE_compiling___table_computation___TableEltVftPointer___is_related_to = "table_computation::TableEltVftPointer::(table_computation::TableElt::is_related_to)";
 val_t compiling___table_computation___TableEltVftPointer___is_related_to(val_t p0, val_t p1);
 typedef val_t (*compiling___table_computation___TableEltVftPointer___is_related_to_t)(val_t p0, val_t p1);
-val_t NEW_TableEltVftPointer_compiling___table_computation___AbsTableElt___init();
+static const char * const LOCATE_compiling___table_computation___TableEltVftPointer___init = "table_computation::TableEltVftPointer::init";
+void compiling___table_computation___TableEltVftPointer___init(val_t p0, int* init_table);
+typedef void (*compiling___table_computation___TableEltVftPointer___init_t)(val_t p0, int* init_table);
+val_t NEW_TableEltVftPointer_compiling___table_computation___TableEltVftPointer___init();
 #endif
index e4457d6..4734546 100644 (file)
@@ -1,5 +1,24 @@
 #include "file._nitni.h"
 #include "file_nit.h"
+/* out/indirect function for file::String::files */
+val_t String_files___out( val_t recv )
+{
+String recv___nitni;
+Set return___nitni;
+val_t return___nit;
+recv___nitni = malloc( sizeof( struct s_String ) );
+recv___nitni->ref.val = NIT_NULL;
+recv___nitni->ref.count = 0;
+nitni_local_ref_add( (struct nitni_ref *)recv___nitni );
+recv___nitni->ref.val = recv;
+return___nitni = malloc( sizeof( struct s_Set ) );
+return___nitni->ref.val = NIT_NULL;
+return___nitni->ref.count = 0;
+return___nitni = String_files___impl( recv___nitni );
+return___nit = return___nitni->ref.val;
+nitni_local_ref_clean(  );
+return return___nit;
+}
 /* out/indirect function for file::NativeString::file_exists */
 val_t NativeString_file_exists___out( val_t recv )
 {
@@ -164,87 +183,155 @@ return___nit = BOX_FileStat(return___nitni);
 nitni_local_ref_clean(  );
 return return___nit;
 }
-/* out/indirect function for file::NativeFileCapable::io_open_read */
-val_t NativeFileCapable_io_open_read___out( val_t recv, val_t path )
+/* out/indirect function for file::NativeFile::io_open_read */
+val_t NEW_NativeFile_standard___file___NativeFile___io_open_read( val_t path )
 {
-NativeFileCapable recv___nitni;
 char * path___nitni;
 NativeFile return___nitni;
 val_t return___nit;
-recv___nitni = malloc( sizeof( struct s_NativeFileCapable ) );
-recv___nitni->ref.val = NIT_NULL;
-recv___nitni->ref.count = 0;
-nitni_local_ref_add( (struct nitni_ref *)recv___nitni );
-recv___nitni->ref.val = recv;
 path___nitni = UNBOX_NativeString(path);
-return___nitni = file_NativeFileCapable_NativeFileCapable_io_open_read_1( recv___nitni, path___nitni );
+return___nitni = file_NativeFileCapable_NativeFileCapable_io_open_read_1( path___nitni );
 return___nit = BOX_NativeFile(return___nitni);
 nitni_local_ref_clean(  );
 return return___nit;
 }
-/* out/indirect function for file::NativeFileCapable::io_open_write */
-val_t NativeFileCapable_io_open_write___out( val_t recv, val_t path )
+/* out/indirect function for file::NativeFile::io_open_write */
+val_t NEW_NativeFile_standard___file___NativeFile___io_open_write( val_t path )
 {
-NativeFileCapable recv___nitni;
 char * path___nitni;
 NativeFile return___nitni;
 val_t return___nit;
-recv___nitni = malloc( sizeof( struct s_NativeFileCapable ) );
-recv___nitni->ref.val = NIT_NULL;
-recv___nitni->ref.count = 0;
-nitni_local_ref_add( (struct nitni_ref *)recv___nitni );
-recv___nitni->ref.val = recv;
 path___nitni = UNBOX_NativeString(path);
-return___nitni = file_NativeFileCapable_NativeFileCapable_io_open_write_1( recv___nitni, path___nitni );
+return___nitni = file_NativeFileCapable_NativeFileCapable_io_open_write_1( path___nitni );
 return___nit = BOX_NativeFile(return___nitni);
 nitni_local_ref_clean(  );
 return return___nit;
 }
-/* out/indirect function for file::NativeFileCapable::native_stdin */
-val_t NativeFileCapable_native_stdin___out( val_t recv )
+/* out/indirect function for file::NativeFile::native_stdin */
+val_t NEW_NativeFile_standard___file___NativeFile___native_stdin(  )
 {
-NativeFileCapable recv___nitni;
 NativeFile return___nitni;
 val_t return___nit;
-recv___nitni = malloc( sizeof( struct s_NativeFileCapable ) );
-recv___nitni->ref.val = NIT_NULL;
-recv___nitni->ref.count = 0;
-nitni_local_ref_add( (struct nitni_ref *)recv___nitni );
-recv___nitni->ref.val = recv;
-return___nitni = file_NativeFileCapable_NativeFileCapable_native_stdin_0( recv___nitni );
+return___nitni = file_NativeFileCapable_NativeFileCapable_native_stdin_0(  );
 return___nit = BOX_NativeFile(return___nitni);
 nitni_local_ref_clean(  );
 return return___nit;
 }
-/* out/indirect function for file::NativeFileCapable::native_stdout */
-val_t NativeFileCapable_native_stdout___out( val_t recv )
+/* out/indirect function for file::NativeFile::native_stdout */
+val_t NEW_NativeFile_standard___file___NativeFile___native_stdout(  )
 {
-NativeFileCapable recv___nitni;
 NativeFile return___nitni;
 val_t return___nit;
-recv___nitni = malloc( sizeof( struct s_NativeFileCapable ) );
-recv___nitni->ref.val = NIT_NULL;
-recv___nitni->ref.count = 0;
-nitni_local_ref_add( (struct nitni_ref *)recv___nitni );
-recv___nitni->ref.val = recv;
-return___nitni = file_NativeFileCapable_NativeFileCapable_native_stdout_0( recv___nitni );
+return___nitni = file_NativeFileCapable_NativeFileCapable_native_stdout_0(  );
 return___nit = BOX_NativeFile(return___nitni);
 nitni_local_ref_clean(  );
 return return___nit;
 }
-/* out/indirect function for file::NativeFileCapable::native_stderr */
-val_t NativeFileCapable_native_stderr___out( val_t recv )
+/* out/indirect function for file::NativeFile::native_stderr */
+val_t NEW_NativeFile_standard___file___NativeFile___native_stderr(  )
 {
-NativeFileCapable recv___nitni;
 NativeFile return___nitni;
 val_t return___nit;
-recv___nitni = malloc( sizeof( struct s_NativeFileCapable ) );
-recv___nitni->ref.val = NIT_NULL;
-recv___nitni->ref.count = 0;
-nitni_local_ref_add( (struct nitni_ref *)recv___nitni );
-recv___nitni->ref.val = recv;
-return___nitni = file_NativeFileCapable_NativeFileCapable_native_stderr_0( recv___nitni );
+return___nitni = file_NativeFileCapable_NativeFileCapable_native_stderr_0(  );
 return___nit = BOX_NativeFile(return___nitni);
 nitni_local_ref_clean(  );
 return return___nit;
 }
+/* friendly for hash_collection::HashSet::init */
+HashSet file_new_HashSet(  )
+{
+HashSet result___nitni;
+val_t result___nit;
+result___nitni = malloc( sizeof( struct s_HashSet ) );
+result___nitni->ref.val = NIT_NULL;
+result___nitni->ref.count = 0;
+nitni_local_ref_add( (struct nitni_ref *)result___nitni );
+result___nit = NEW_HashSet_standard___collection___hash_collection___HashSet___init(  );
+result___nitni->ref.val = result___nit;
+return result___nitni;
+}
+/* friendly for hash_collection::HashSet::(abstract_collection::SimpleCollection::add) */
+void file_HashSet_add( HashSet recv, Object item )
+{
+val_t recv___nit;
+val_t item___nit;
+recv___nit = recv->ref.val;
+item___nit = item->ref.val;
+CALL_standard___collection___abstract_collection___SimpleCollection___add( recv___nit )( recv___nit, item___nit );
+}
+/* friendly for string::String::from_cstring */
+String file_new_String_from_cstring( char * str )
+{
+val_t str___nit;
+String result___nitni;
+val_t result___nit;
+str___nit = BOX_NativeString(str);
+result___nitni = malloc( sizeof( struct s_String ) );
+result___nitni->ref.val = NIT_NULL;
+result___nitni->ref.count = 0;
+nitni_local_ref_add( (struct nitni_ref *)result___nitni );
+result___nit = NEW_String_standard___string___String___from_cstring( str___nit );
+result___nitni->ref.val = result___nit;
+return result___nitni;
+}
+/* friendly for string::String::to_cstring */
+char * file_String_to_cstring( String recv )
+{
+val_t recv___nit;
+char * result___nitni;
+val_t result___nit;
+recv___nit = recv->ref.val;
+result___nit = CALL_standard___string___String___to_cstring( recv___nit )( recv___nit );
+result___nitni = UNBOX_NativeString(result___nit);
+return result___nitni;
+}
+int file_HashSet_is_a_Set( HashSet value )
+{
+val_t temp;
+temp = value->ref.val;
+if ( ! ( ISOBJ( temp ) ? OBJISA( temp, standard___collection___abstract_collection___Set ): VALISA( temp, standard___collection___abstract_collection___Set ) ) ) return 0;
+return 1;
+}
+Set file_HashSet_as_Set( HashSet value )
+{
+val_t temp;
+Set out;
+out = malloc( sizeof( struct s_Set ) );
+out->ref.val = NIT_NULL;
+out->ref.count = 0;
+nitni_local_ref_add( (struct nitni_ref *)out );
+temp = value->ref.val;
+if ( ISNULL(temp) ){   fprintf( stderr, "Casting from HashSet[String] to Set[String] failed because value is null." );
+       abort();
+}if ( ! ( ISOBJ( temp ) ? OBJISA( temp, standard___collection___abstract_collection___Set ): VALISA( temp, standard___collection___abstract_collection___Set ) ) ){
+       fprintf( stderr, "Casting to Set[String] failed because value is not a Set[String]." );
+       abort();
+}
+out->ref.val = temp;
+return out;
+}
+int file_String_is_a_Object( String value )
+{
+val_t temp;
+temp = value->ref.val;
+if ( ! ( ISOBJ( temp ) ? OBJISA( temp, standard___kernel___Object ): VALISA( temp, standard___kernel___Object ) ) ) return 0;
+return 1;
+}
+Object file_String_as_Object( String value )
+{
+val_t temp;
+Object out;
+out = malloc( sizeof( struct s_Object ) );
+out->ref.val = NIT_NULL;
+out->ref.count = 0;
+nitni_local_ref_add( (struct nitni_ref *)out );
+temp = value->ref.val;
+if ( ISNULL(temp) ){   fprintf( stderr, "Casting from String to Object failed because value is null." );
+       abort();
+}if ( ! ( ISOBJ( temp ) ? OBJISA( temp, standard___kernel___Object ): VALISA( temp, standard___kernel___Object ) ) ){
+       fprintf( stderr, "Casting to Object failed because value is not a Object." );
+       abort();
+}
+out->ref.val = temp;
+return out;
+}
index 5caab9e..cf0a2e9 100644 (file)
@@ -3,17 +3,56 @@
 #ifndef FILE_NITNI_H
 #define FILE_NITNI_H
 
-#ifndef NATIVEFILECAPABLE_TYPE
-#define NATIVEFILECAPABLE_TYPE
-struct s_NativeFileCapable{
+#ifndef STRING_TYPE
+#define STRING_TYPE
+struct s_String{
                struct nitni_ref ref; /* real ref struct, must be first */
 };
-typedef struct s_NativeFileCapable *NativeFileCapable;
-#define NativeFileCapable_incr_ref( x ) nitni_global_ref_incr( (struct nitni_ref*)(x) )
-#define NativeFileCapable_decr_ref( x ) nitni_global_ref_decr( (struct nitni_ref*)(x) )
+typedef struct s_String *String;
+#define String_incr_ref( x ) nitni_global_ref_incr( (struct nitni_ref*)(x) )
+#define String_decr_ref( x ) nitni_global_ref_decr( (struct nitni_ref*)(x) )
+#endif
+#ifndef SET_TYPE
+#define SET_TYPE
+struct s_Set{
+               struct nitni_ref ref; /* real ref struct, must be first */
+};
+typedef struct s_Set *Set;
+#define Set_incr_ref( x ) nitni_global_ref_incr( (struct nitni_ref*)(x) )
+#define Set_decr_ref( x ) nitni_global_ref_decr( (struct nitni_ref*)(x) )
+#endif
+#ifndef HASHSET_TYPE
+#define HASHSET_TYPE
+struct s_HashSet{
+               struct nitni_ref ref; /* real ref struct, must be first */
+};
+typedef struct s_HashSet *HashSet;
+#define HashSet_incr_ref( x ) nitni_global_ref_incr( (struct nitni_ref*)(x) )
+#define HashSet_decr_ref( x ) nitni_global_ref_decr( (struct nitni_ref*)(x) )
+#endif
+#ifndef OBJECT_TYPE
+#define OBJECT_TYPE
+struct s_Object{
+               struct nitni_ref ref; /* real ref struct, must be first */
+};
+typedef struct s_Object *Object;
+#define Object_incr_ref( x ) nitni_global_ref_incr( (struct nitni_ref*)(x) )
+#define Object_decr_ref( x ) nitni_global_ref_decr( (struct nitni_ref*)(x) )
+#endif
+#ifndef HASHSET_TYPE
+#define HASHSET_TYPE
+struct s_HashSet{
+               struct nitni_ref ref; /* real ref struct, must be first */
+};
+typedef struct s_HashSet *HashSet;
+#define HashSet_incr_ref( x ) nitni_global_ref_incr( (struct nitni_ref*)(x) )
+#define HashSet_decr_ref( x ) nitni_global_ref_decr( (struct nitni_ref*)(x) )
 #endif
 #include "file_nit.h"
 
+/* out/indirect function for file::String::files */
+val_t String_files___out( val_t recv );
+
 /* out/indirect function for file::NativeString::file_exists */
 val_t NativeString_file_exists___out( val_t recv );
 
@@ -56,23 +95,67 @@ val_t NativeFile_io_close___out( val_t recv );
 
 /* out/indirect function for file::NativeFile::file_stat */
 val_t NativeFile_file_stat___out( val_t recv );
+
+/* out/indirect function for file::NativeFile::io_open_read */
+val_t NEW_NativeFile_standard___file___NativeFile___io_open_read( val_t path );
+
+/* out/indirect function for file::NativeFile::io_open_write */
+val_t NEW_NativeFile_standard___file___NativeFile___io_open_write( val_t path );
+
+/* out/indirect function for file::NativeFile::native_stdin */
+val_t NEW_NativeFile_standard___file___NativeFile___native_stdin(  );
+
+/* out/indirect function for file::NativeFile::native_stdout */
+val_t NEW_NativeFile_standard___file___NativeFile___native_stdout(  );
+
+/* out/indirect function for file::NativeFile::native_stderr */
+val_t NEW_NativeFile_standard___file___NativeFile___native_stderr(  );
 #ifndef NativeFile
        typedef void* NativeFile;
 #endif
 
+#endif
+/* friendly for hash_collection::HashSet::init */
+HashSet file_new_HashSet(  );
+#ifndef new_HashSet
+#define new_HashSet file_new_HashSet
+#endif
+/* friendly for hash_collection::HashSet::(abstract_collection::SimpleCollection::add) */
+void file_HashSet_add( HashSet recv, Object item );
+#ifndef HashSet_add
+#define HashSet_add file_HashSet_add
+#endif
+/* friendly for string::String::from_cstring */
+String file_new_String_from_cstring( char * str );
+#ifndef new_String_from_cstring
+#define new_String_from_cstring file_new_String_from_cstring
+#endif
+/* friendly for string::String::to_cstring */
+char * file_String_to_cstring( String recv );
+#ifndef String_to_cstring
+#define String_to_cstring file_String_to_cstring
+#endif
 
-/* out/indirect function for file::NativeFileCapable::io_open_read */
-val_t NativeFileCapable_io_open_read___out( val_t recv, val_t path );
-
-/* out/indirect function for file::NativeFileCapable::io_open_write */
-val_t NativeFileCapable_io_open_write___out( val_t recv, val_t path );
+/* Type check for HashSet[String] with Set[String] */
+int file_HashSet_is_a_Set( HashSet value );
+#ifndef HashSet_is_a_Set
+#define HashSet_is_a_Set file_HashSet_is_a_Set
+#endif
 
-/* out/indirect function for file::NativeFileCapable::native_stdin */
-val_t NativeFileCapable_native_stdin___out( val_t recv );
+/* Cast for HashSet[String] to Set[String] */
+Set file_HashSet_as_Set( HashSet value );
+#ifndef HashSet_as_Set
+#define HashSet_as_Set file_HashSet_as_Set
+#endif
 
-/* out/indirect function for file::NativeFileCapable::native_stdout */
-val_t NativeFileCapable_native_stdout___out( val_t recv );
+/* Type check for String with Object */
+int file_String_is_a_Object( String value );
+#ifndef String_is_a_Object
+#define String_is_a_Object file_String_is_a_Object
+#endif
 
-/* out/indirect function for file::NativeFileCapable::native_stderr */
-val_t NativeFileCapable_native_stderr___out( val_t recv );
+/* Cast for String to Object */
+Object file_String_as_Object( String value );
+#ifndef String_as_Object
+#define String_as_Object file_String_as_Object
 #endif
index f9c5654..02b725e 100644 (file)
 #include <unistd.h>
 #include <sys/types.h>
 #include <string.h>
+#include <dirent.h>
+
+#include "file_nit.h"
+
+
+/*
+C implementation of file::String::files
+
+Imported methods signatures:
+       HashSet new_HashSet(  ) for hash_collection::HashSet::init
+       void HashSet_add( HashSet recv, Object item ) for hash_collection::HashSet::(abstract_collection::SimpleCollection::add)
+       String new_String_from_cstring( char * str ) for string::String::from_cstring
+       int HashSet_is_a_Set( HashSet value ) to check if a HashSet[String] is a Set[String]
+       Set HashSet_as_Set( HashSet value ) to cast from HashSet[String] to Set[String]
+*/
+Set String_files___impl( String recv )
+{
+       char *dir_path;
+       DIR *dir;
+
+       dir_path = String_to_cstring( recv );
+       if ((dir = opendir(dir_path)) == NULL)
+       {
+               perror( dir_path );
+               exit( 1 );
+       }
+       else
+       {
+               HashSet results;
+               String file_name;
+               struct dirent *de;
+
+               results = new_HashSet();
+
+               while ( ( de = readdir( dir ) ) != NULL )
+                       if ( strcmp( de->d_name, ".." ) != 0 &&
+                               strcmp( de->d_name, "." ) != 0 )
+                       {
+                               file_name = new_String_from_cstring( strdup( de->d_name ) );
+                               HashSet_add( results, String_as_Object( file_name ) );
+                       }
+
+               closedir( dir );
+               return HashSet_as_Set( results );
+       }
+}
 
 int string_NativeString_NativeString_file_exists_0(char *f){
        FILE *hdl = fopen(f,"r");
index de67757..4e598d0 100644 (file)
 #include <stdio.h>
 #include <sys/types.h>
 
+#include <file._nitni.h>
+
+Set String_files___impl( String recv );
+
 extern int string_NativeString_NativeString_file_exists_0(char *f);
 extern void *string_NativeString_NativeString_file_stat_0(char *f);
 extern void *file_NativeFile_NativeFile_file_stat_0(FILE *f);
@@ -29,12 +33,12 @@ extern int string_NativeString_NativeString_file_delete_0(char *f);
 #define file_NativeFile_NativeFile_io_write_2(p, b, l) fwrite((b), 1, (l), (FILE*)(p))
 #define file_NativeFile_NativeFile_io_close_0(self) fclose((FILE*)(self))
 
-#define file_NativeFileCapable_NativeFileCapable_io_open_read_1(self, p0) fopen((p0), "r")
+#define file_NativeFileCapable_NativeFileCapable_io_open_read_1(p0) fopen((p0), "r")
 
-#define file_NativeFileCapable_NativeFileCapable_io_open_write_1(self, p0) fopen((p0), "w")
-#define file_NativeFileCapable_NativeFileCapable_native_stdin_0(self) stdin
-#define file_NativeFileCapable_NativeFileCapable_native_stdout_0(self) stdout
-#define file_NativeFileCapable_NativeFileCapable_native_stderr_0(self) stderr
+#define file_NativeFileCapable_NativeFileCapable_io_open_write_1(p0) fopen((p0), "w")
+#define file_NativeFileCapable_NativeFileCapable_native_stdin_0() stdin
+#define file_NativeFileCapable_NativeFileCapable_native_stdout_0() stdout
+#define file_NativeFileCapable_NativeFileCapable_native_stderr_0() stderr
 #define file_FileStat_FileStat_mode_0(self) (((struct stat*)self)->st_mode)
 #define file_FileStat_FileStat_atime_0(self) (((struct stat*)self)->st_atime)
 #define file_FileStat_FileStat_ctime_0(self) (((struct stat*)self)->st_ctime)
diff --git a/c_src/global._sep.c b/c_src/global._sep.c
new file mode 100644 (file)
index 0000000..6869060
--- /dev/null
@@ -0,0 +1,540 @@
+/* This C file is generated by NIT to compile module global. */
+#include "global._sep.h"
+val_t global___ToolContext___global_callgraph(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global;
+  fra.me.line = 44;
+  fra.me.meth = LOCATE_global___ToolContext___global_callgraph;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* global/global.nit:44 */
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____global_callgraph(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_global_callgraph", LOCATE_global, 44);
+  }
+  fra.me.REG[0] = ATTR_global___ToolContext____global_callgraph(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+void global___ToolContext___global_callgraph__eq(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global;
+  fra.me.line = 44;
+  fra.me.meth = LOCATE_global___ToolContext___global_callgraph__eq;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* global/global.nit:44 */
+  ATTR_global___ToolContext____global_callgraph(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+  return;
+}
+val_t global___ToolContext___opt_global(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global;
+  fra.me.line = 46;
+  fra.me.meth = LOCATE_global___ToolContext___opt_global;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* global/global.nit:46 */
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_global", LOCATE_global, 46);
+  }
+  fra.me.REG[0] = ATTR_global___ToolContext____opt_global(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t global___ToolContext___opt_global_no_STF_opt(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global;
+  fra.me.line = 47;
+  fra.me.meth = LOCATE_global___ToolContext___opt_global_no_STF_opt;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* global/global.nit:47 */
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_no_STF_opt(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_global_no_STF_opt", LOCATE_global, 47);
+  }
+  fra.me.REG[0] = ATTR_global___ToolContext____opt_global_no_STF_opt(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t global___ToolContext___opt_global_no_DMR_opt(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global;
+  fra.me.line = 48;
+  fra.me.meth = LOCATE_global___ToolContext___opt_global_no_DMR_opt;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* global/global.nit:48 */
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_no_DMR_opt(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_global_no_DMR_opt", LOCATE_global, 48);
+  }
+  fra.me.REG[0] = ATTR_global___ToolContext____opt_global_no_DMR_opt(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t global___ToolContext___opt_global_no_inline_get_set(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global;
+  fra.me.line = 49;
+  fra.me.meth = LOCATE_global___ToolContext___opt_global_no_inline_get_set;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* global/global.nit:49 */
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_no_inline_get_set(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_global_no_inline_get_set", LOCATE_global, 49);
+  }
+  fra.me.REG[0] = ATTR_global___ToolContext____opt_global_no_inline_get_set(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t global___ToolContext___opt_global_no_out_of_init_get_test_opt(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global;
+  fra.me.line = 50;
+  fra.me.meth = LOCATE_global___ToolContext___opt_global_no_out_of_init_get_test_opt;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* global/global.nit:50 */
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_no_out_of_init_get_test_opt(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_global_no_out_of_init_get_test_opt", LOCATE_global, 50);
+  }
+  fra.me.REG[0] = ATTR_global___ToolContext____opt_global_no_out_of_init_get_test_opt(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t global___ToolContext___opt_global_no_RFIMA(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global;
+  fra.me.line = 51;
+  fra.me.meth = LOCATE_global___ToolContext___opt_global_no_RFIMA;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* global/global.nit:51 */
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_no_RFIMA(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_global_no_RFIMA", LOCATE_global, 51);
+  }
+  fra.me.REG[0] = ATTR_global___ToolContext____opt_global_no_RFIMA(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t global___ToolContext___opt_global_callgraph(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global;
+  fra.me.line = 52;
+  fra.me.meth = LOCATE_global___ToolContext___opt_global_callgraph;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* global/global.nit:52 */
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_callgraph(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_global_callgraph", LOCATE_global, 52);
+  }
+  fra.me.REG[0] = ATTR_global___ToolContext____opt_global_callgraph(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+void global___ToolContext___init(val_t p0, int* init_table){
+  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_toolcontext___ToolContext].i;
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t tmp;
+  if (init_table[itpos0]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global;
+  fra.me.line = 54;
+  fra.me.meth = LOCATE_global___ToolContext___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* global/global.nit:54 */
+  fra.me.REG[1] = fra.me.REG[0];
+  /* global/global.nit:56 */
+  CALL_SUPER_global___ToolContext___init(fra.me.REG[0])(fra.me.REG[0], init_table);
+  /* global/global.nit:57 */
+  fra.me.REG[0] = CALL_toolcontext___ToolContext___option_context(fra.me.REG[1])(fra.me.REG[1]);
+  REGB0 = TAG_Int(6);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  fra.me.REG[3] = CALL_global___ToolContext___opt_global(fra.me.REG[1])(fra.me.REG[1]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[3] = CALL_global___ToolContext___opt_global_no_STF_opt(fra.me.REG[1])(fra.me.REG[1]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[3] = CALL_global___ToolContext___opt_global_no_DMR_opt(fra.me.REG[1])(fra.me.REG[1]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[3] = CALL_global___ToolContext___opt_global_callgraph(fra.me.REG[1])(fra.me.REG[1]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[3] = CALL_global___ToolContext___opt_global_no_inline_get_set(fra.me.REG[1])(fra.me.REG[1]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[3] = CALL_global___ToolContext___opt_global_no_RFIMA(fra.me.REG[1])(fra.me.REG[1]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[1] = CALL_global___ToolContext___opt_global_no_out_of_init_get_test_opt(fra.me.REG[1])(fra.me.REG[1]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  CALL_opts___OptionContext___add_option(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  init_table[itpos0] = 1;
+  return;
+}
+void global___AbstractCompiler___process_options(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global;
+  fra.me.line = 62;
+  fra.me.meth = LOCATE_global___AbstractCompiler___process_options;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* global/global.nit:62 */
+  fra.me.REG[1] = fra.me.REG[0];
+  /* global/global.nit:65 */
+  CALL_SUPER_global___AbstractCompiler___process_options(fra.me.REG[0])(fra.me.REG[0]);
+  /* global/global.nit:66 */
+  fra.me.REG[0] = CALL_global___ToolContext___opt_global(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_program___ToolContext___global__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  /* global/global.nit:67 */
+  fra.me.REG[0] = CALL_global___ToolContext___opt_global_no_STF_opt(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = TAG_Bool(!UNTAG_Bool(fra.me.REG[0]));
+  CALL_program___ToolContext___use_SFT_optimization__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
+  /* global/global.nit:68 */
+  fra.me.REG[0] = CALL_global___ToolContext___opt_global_callgraph(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[0] = CALL_opts___OptionEnum___value_name(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_global___ToolContext___global_callgraph__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void global___Program___do_global_analysis(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t tmp;
+  static val_t once_value_1; /* Once value */
+    static val_t once_value_2; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global;
+  fra.me.line = 73;
+  fra.me.meth = LOCATE_global___Program___do_global_analysis;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* global/global.nit:75 */
+  fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = CALL_program___ToolContext___global(fra.me.REG[1])(fra.me.REG[1]);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_global, 75);
+  }
+  /* global/global.nit:77 */
+  fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[1] = CALL_global___ToolContext___opt_global_no_inline_get_set(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
+  REGB0 = TAG_Bool(!UNTAG_Bool(fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+    CALL_global___inline_get_and_set___Program___inline_get_set(fra.me.REG[0])(fra.me.REG[0]);
+  }
+  /* global/global.nit:79 */
+  fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[1] = CALL_global___ToolContext___global_callgraph(fra.me.REG[1])(fra.me.REG[1]);
+  if (!once_value_1) {
+    fra.me.REG[2] = BOX_NativeString("cha");
+    REGB0 = TAG_Int(3);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_1 = fra.me.REG[2];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[2] = once_value_1;
+  fra.me.REG[2] = fra.me.REG[2];
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[2]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* global/global.nit:80 */
+    fra.me.REG[2] = NEW_ChaBuilder_global___cha_analysis___ChaBuilder___init(fra.me.REG[0]);
+    /* global/global.nit:81 */
+    CALL_global___cha_analysis___ChaBuilder___work(fra.me.REG[2])(fra.me.REG[2]);
+    /* global/global.nit:82 */
+    fra.me.REG[2] = CALL_global___cha_analysis___ChaBuilder___context(fra.me.REG[2])(fra.me.REG[2]);
+    CALL_global___reachable_method_analysis___Program___rma__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
+  } else {
+    /* global/global.nit:83 */
+    fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
+    fra.me.REG[2] = CALL_global___ToolContext___global_callgraph(fra.me.REG[2])(fra.me.REG[2]);
+    if (!once_value_2) {
+      fra.me.REG[1] = BOX_NativeString("rta");
+      REGB0 = TAG_Int(3);
+      fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+      once_value_2 = fra.me.REG[1];
+      register_static_object(&once_value_2);
+    } else fra.me.REG[1] = once_value_2;
+    fra.me.REG[1] = fra.me.REG[1];
+    REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[1]));
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+      REGB0 = REGB1;
+    }
+    if (UNTAG_Bool(REGB0)) {
+      /* global/global.nit:84 */
+      fra.me.REG[1] = NEW_RtaBuilder_global___rta_analysis___RtaBuilder___init(fra.me.REG[0]);
+      /* global/global.nit:85 */
+      CALL_global___rta_analysis___RtaBuilder___work(fra.me.REG[1])(fra.me.REG[1]);
+      /* global/global.nit:86 */
+      fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___context(fra.me.REG[1])(fra.me.REG[1]);
+      CALL_global___reachable_method_analysis___Program___rma__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
+      /* global/global.nit:87 */
+      fra.me.REG[1] = CALL_global___rta_analysis___RtaBuilder___context(fra.me.REG[1])(fra.me.REG[1]);
+      CALL_global___instantiated_type_analysis___Program___ita__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+    }
+  }
+  /* global/global.nit:91 */
+  fra.me.REG[1] = CALL_global___reachable_method_analysis___Program___rma(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  if (UNTAG_Bool(REGB0)) {
+    fra.me.REG[1] = NEW_DefaultReachableMethodAnalysis_global___reachable_method_analysis___DefaultReachableMethodAnalysis___init();
+    CALL_global___reachable_method_analysis___Program___rma__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  }
+  /* global/global.nit:92 */
+  fra.me.REG[1] = CALL_global___instantiated_type_analysis___Program___ita(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  if (UNTAG_Bool(REGB0)) {
+    fra.me.REG[1] = NEW_DefaultInstantiatedTypeAnalysis_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init();
+    CALL_global___instantiated_type_analysis___Program___ita__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  }
+  /* global/global.nit:94 */
+  fra.me.REG[1] = NEW_ReachableAsInitBuilder_global___reachable_as_init_impl___ReachableAsInitBuilder___init(fra.me.REG[0]);
+  /* global/global.nit:95 */
+  CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___work(fra.me.REG[1])(fra.me.REG[1]);
+  /* global/global.nit:96 */
+  fra.me.REG[1] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___context(fra.me.REG[1])(fra.me.REG[1]);
+  CALL_global___reachable_as_init___Program___rai__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  /* global/global.nit:98 */
+  fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[1] = CALL_global___ToolContext___opt_global_no_RFIMA(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
+  REGB0 = TAG_Bool(!UNTAG_Bool(fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+    /* global/global.nit:99 */
+    fra.me.REG[1] = NEW_RFIMABuilder_global___reachable_from_init_method_analysis_impl___RFIMABuilder___init(fra.me.REG[0]);
+    /* global/global.nit:100 */
+    CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work(fra.me.REG[1])(fra.me.REG[1]);
+    /* global/global.nit:101 */
+    fra.me.REG[1] = CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___context(fra.me.REG[1])(fra.me.REG[1]);
+    CALL_global___reachable_from_init_method_analysis___Program___rfima__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  }
+  /* global/global.nit:104 */
+  fra.me.REG[1] = CALL_global___reachable_from_init_method_analysis___Program___rfima(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  if (UNTAG_Bool(REGB0)) {
+    fra.me.REG[1] = NEW_DefaultReachableFromInitMethodAnalysis_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init();
+    CALL_global___reachable_from_init_method_analysis___Program___rfima__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  }
+  /* global/global.nit:107 */
+  fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[1] = CALL_global___ToolContext___opt_global_no_DMR_opt(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
+  REGB0 = TAG_Bool(!UNTAG_Bool(fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+    CALL_global___dead_method_removal___Program___optimize_dead_methods(fra.me.REG[0])(fra.me.REG[0]);
+  }
+  /* global/global.nit:108 */
+  fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[1] = CALL_global___ToolContext___opt_global_no_out_of_init_get_test_opt(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
+  REGB0 = TAG_Bool(!UNTAG_Bool(fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+    CALL_global___remove_out_of_init_get_test___Program___optimize_out_of_init_getters(fra.me.REG[0])(fra.me.REG[0]);
+  }
+  /* global/global.nit:111 */
+  fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[1] = CALL_toolcontext___ToolContext___opt_log(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
+  if (UNTAG_Bool(fra.me.REG[1])) {
+    /* global/global.nit:112 */
+    fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
+    fra.me.REG[1] = CALL_toolcontext___ToolContext___log_directory(fra.me.REG[1])(fra.me.REG[1]);
+    CALL_global___Program___dump_global_optimizations_information(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+    /* global/global.nit:113 */
+    fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
+    fra.me.REG[1] = CALL_toolcontext___ToolContext___log_directory(fra.me.REG[1])(fra.me.REG[1]);
+    CALL_global___Program___dump_global_analysis_information(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  }
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void global___Program___dump_global_optimizations_information(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global;
+  fra.me.line = 117;
+  fra.me.meth = LOCATE_global___Program___dump_global_optimizations_information;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* global/global.nit:118 */
+  CALL_global___remove_out_of_init_get_test___Program___dump_out_of_init_information(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  /* global/global.nit:119 */
+  CALL_global___dead_method_removal___Program___dump_dead_method_optimization(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  /* global/global.nit:120 */
+  CALL_global___inline_get_and_set___Program___dump_inline_get_set(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void global___Program___dump_global_analysis_information(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global;
+  fra.me.line = 123;
+  fra.me.meth = LOCATE_global___Program___dump_global_analysis_information;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* global/global.nit:125 */
+  fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[2] = CALL_global___ToolContext___global_callgraph(fra.me.REG[2])(fra.me.REG[2]);
+  CALL_global___reachable_method_analysis___Program___dump_reachable_methods(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
+  /* global/global.nit:126 */
+  fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[2] = CALL_global___ToolContext___global_callgraph(fra.me.REG[2])(fra.me.REG[2]);
+  CALL_global___reachable_method_analysis___Program___dump_unreachable_methods(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
+  /* global/global.nit:127 */
+  CALL_global___instantiated_type_analysis___Program___dump_instantiated_types(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  /* global/global.nit:128 */
+  CALL_global___instantiated_type_analysis___Program___dump_not_instantiated_types(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  /* global/global.nit:129 */
+  CALL_global___reachable_as_init___Program___dump_reachable_as_init_methods(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  /* global/global.nit:130 */
+  CALL_global___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  /* global/global.nit:131 */
+  CALL_global___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
diff --git a/c_src/global._sep.h b/c_src/global._sep.h
new file mode 100644 (file)
index 0000000..822bcb9
--- /dev/null
@@ -0,0 +1,82 @@
+/* This C header file is generated by NIT to compile modules and programs that requires ./global/global. */
+#ifndef global_sep
+#define global_sep
+#include "abstracttool._sep.h"
+#include "global___cha_analysis._sep.h"
+#include "global___rta_analysis._sep.h"
+#include "global___reachable_as_init_impl._sep.h"
+#include "global___reachable_from_init_method_analysis_impl._sep.h"
+#include "global___dead_method_removal._sep.h"
+#include "global___inline_get_and_set._sep.h"
+#include "global___remove_out_of_init_get_test._sep.h"
+#include <nit_common.h>
+extern const char *LOCATE_global;
+extern const int SFT_global[];
+#define ATTR_global___ToolContext____global_callgraph(recv) ATTR(recv, (SFT_global[0] + 0))
+#define ATTR_global___ToolContext____opt_global(recv) ATTR(recv, (SFT_global[0] + 1))
+#define ATTR_global___ToolContext____opt_global_no_STF_opt(recv) ATTR(recv, (SFT_global[0] + 2))
+#define ATTR_global___ToolContext____opt_global_no_DMR_opt(recv) ATTR(recv, (SFT_global[0] + 3))
+#define ATTR_global___ToolContext____opt_global_no_inline_get_set(recv) ATTR(recv, (SFT_global[0] + 4))
+#define ATTR_global___ToolContext____opt_global_no_out_of_init_get_test_opt(recv) ATTR(recv, (SFT_global[0] + 5))
+#define ATTR_global___ToolContext____opt_global_no_RFIMA(recv) ATTR(recv, (SFT_global[0] + 6))
+#define ATTR_global___ToolContext____opt_global_callgraph(recv) ATTR(recv, (SFT_global[0] + 7))
+#define CALL_global___ToolContext___global_callgraph(recv) ((global___ToolContext___global_callgraph_t)CALL((recv), (SFT_global[1] + 0)))
+#define CALL_global___ToolContext___global_callgraph__eq(recv) ((global___ToolContext___global_callgraph__eq_t)CALL((recv), (SFT_global[1] + 1)))
+#define CALL_global___ToolContext___opt_global(recv) ((global___ToolContext___opt_global_t)CALL((recv), (SFT_global[1] + 2)))
+#define CALL_global___ToolContext___opt_global_no_STF_opt(recv) ((global___ToolContext___opt_global_no_STF_opt_t)CALL((recv), (SFT_global[1] + 3)))
+#define CALL_global___ToolContext___opt_global_no_DMR_opt(recv) ((global___ToolContext___opt_global_no_DMR_opt_t)CALL((recv), (SFT_global[1] + 4)))
+#define CALL_global___ToolContext___opt_global_no_inline_get_set(recv) ((global___ToolContext___opt_global_no_inline_get_set_t)CALL((recv), (SFT_global[1] + 5)))
+#define CALL_global___ToolContext___opt_global_no_out_of_init_get_test_opt(recv) ((global___ToolContext___opt_global_no_out_of_init_get_test_opt_t)CALL((recv), (SFT_global[1] + 6)))
+#define CALL_global___ToolContext___opt_global_no_RFIMA(recv) ((global___ToolContext___opt_global_no_RFIMA_t)CALL((recv), (SFT_global[1] + 7)))
+#define CALL_global___ToolContext___opt_global_callgraph(recv) ((global___ToolContext___opt_global_callgraph_t)CALL((recv), (SFT_global[1] + 8)))
+#define CALL_SUPER_global___ToolContext___init(recv) ((global___ToolContext___init_t)CALL((recv), (SFT_global[1] + 9)))
+#define CALL_SUPER_global___AbstractCompiler___process_options(recv) ((global___AbstractCompiler___process_options_t)CALL((recv), (SFT_global[2] + 0)))
+#define CALL_global___Program___do_global_analysis(recv) ((global___Program___do_global_analysis_t)CALL((recv), (SFT_global[3] + 0)))
+#define CALL_global___Program___dump_global_optimizations_information(recv) ((global___Program___dump_global_optimizations_information_t)CALL((recv), (SFT_global[3] + 1)))
+#define CALL_global___Program___dump_global_analysis_information(recv) ((global___Program___dump_global_analysis_information_t)CALL((recv), (SFT_global[3] + 2)))
+static const char * const LOCATE_global___ToolContext___global_callgraph = "global::ToolContext::global_callgraph";
+val_t global___ToolContext___global_callgraph(val_t p0);
+typedef val_t (*global___ToolContext___global_callgraph_t)(val_t p0);
+static const char * const LOCATE_global___ToolContext___global_callgraph__eq = "global::ToolContext::global_callgraph=";
+void global___ToolContext___global_callgraph__eq(val_t p0, val_t p1);
+typedef void (*global___ToolContext___global_callgraph__eq_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___ToolContext___opt_global = "global::ToolContext::opt_global";
+val_t global___ToolContext___opt_global(val_t p0);
+typedef val_t (*global___ToolContext___opt_global_t)(val_t p0);
+static const char * const LOCATE_global___ToolContext___opt_global_no_STF_opt = "global::ToolContext::opt_global_no_STF_opt";
+val_t global___ToolContext___opt_global_no_STF_opt(val_t p0);
+typedef val_t (*global___ToolContext___opt_global_no_STF_opt_t)(val_t p0);
+static const char * const LOCATE_global___ToolContext___opt_global_no_DMR_opt = "global::ToolContext::opt_global_no_DMR_opt";
+val_t global___ToolContext___opt_global_no_DMR_opt(val_t p0);
+typedef val_t (*global___ToolContext___opt_global_no_DMR_opt_t)(val_t p0);
+static const char * const LOCATE_global___ToolContext___opt_global_no_inline_get_set = "global::ToolContext::opt_global_no_inline_get_set";
+val_t global___ToolContext___opt_global_no_inline_get_set(val_t p0);
+typedef val_t (*global___ToolContext___opt_global_no_inline_get_set_t)(val_t p0);
+static const char * const LOCATE_global___ToolContext___opt_global_no_out_of_init_get_test_opt = "global::ToolContext::opt_global_no_out_of_init_get_test_opt";
+val_t global___ToolContext___opt_global_no_out_of_init_get_test_opt(val_t p0);
+typedef val_t (*global___ToolContext___opt_global_no_out_of_init_get_test_opt_t)(val_t p0);
+static const char * const LOCATE_global___ToolContext___opt_global_no_RFIMA = "global::ToolContext::opt_global_no_RFIMA";
+val_t global___ToolContext___opt_global_no_RFIMA(val_t p0);
+typedef val_t (*global___ToolContext___opt_global_no_RFIMA_t)(val_t p0);
+static const char * const LOCATE_global___ToolContext___opt_global_callgraph = "global::ToolContext::opt_global_callgraph";
+val_t global___ToolContext___opt_global_callgraph(val_t p0);
+typedef val_t (*global___ToolContext___opt_global_callgraph_t)(val_t p0);
+static const char * const LOCATE_global___ToolContext___init = "global::ToolContext::(toolcontext::ToolContext::init)";
+void global___ToolContext___init(val_t p0, int* init_table);
+typedef void (*global___ToolContext___init_t)(val_t p0, int* init_table);
+val_t NEW_ToolContext_toolcontext___ToolContext___init();
+static const char * const LOCATE_global___AbstractCompiler___process_options = "global::AbstractCompiler::(toolcontext::ToolContext::process_options)";
+void global___AbstractCompiler___process_options(val_t p0);
+typedef void (*global___AbstractCompiler___process_options_t)(val_t p0);
+val_t NEW_AbstractCompiler_abstracttool___AbstractCompiler___init(val_t p0);
+static const char * const LOCATE_global___Program___do_global_analysis = "global::Program::do_global_analysis";
+void global___Program___do_global_analysis(val_t p0);
+typedef void (*global___Program___do_global_analysis_t)(val_t p0);
+static const char * const LOCATE_global___Program___dump_global_optimizations_information = "global::Program::dump_global_optimizations_information";
+void global___Program___dump_global_optimizations_information(val_t p0, val_t p1);
+typedef void (*global___Program___dump_global_optimizations_information_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___Program___dump_global_analysis_information = "global::Program::dump_global_analysis_information";
+void global___Program___dump_global_analysis_information(val_t p0, val_t p1);
+typedef void (*global___Program___dump_global_analysis_information_t)(val_t p0, val_t p1);
+val_t NEW_Program_program___Program___init(val_t p0, val_t p1);
+#endif
similarity index 60%
rename from c_src/analysis___cha_analysis._sep.c
rename to c_src/global___cha_analysis._sep.c
index 2f46b33..64154e2 100644 (file)
@@ -1,37 +1,37 @@
-/* This C file is generated by NIT to compile module analysis___cha_analysis. */
-#include "analysis___cha_analysis._sep.h"
-val_t analysis___cha_analysis___ChaContext___reachable_iroutines(val_t p0){
+/* This C file is generated by NIT to compile module global___cha_analysis. */
+#include "global___cha_analysis._sep.h"
+val_t global___cha_analysis___ChaContext___reachable_iroutines(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___cha_analysis;
+  fra.me.file = LOCATE_global___cha_analysis;
   fra.me.line = 26;
-  fra.me.meth = LOCATE_analysis___cha_analysis___ChaContext___reachable_iroutines;
+  fra.me.meth = LOCATE_global___cha_analysis___ChaContext___reachable_iroutines;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//cha_analysis.nit:26 */
-  REGB0 = TAG_Bool(ATTR_analysis___cha_analysis___ChaContext____reachable_iroutines(fra.me.REG[0])!=NIT_NULL);
+  /* global/cha_analysis.nit:26 */
+  REGB0 = TAG_Bool(ATTR_global___cha_analysis___ChaContext____reachable_iroutines(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_reachable_iroutines", LOCATE_analysis___cha_analysis, 26);
+    nit_abort("Uninitialized attribute %s", "_reachable_iroutines", LOCATE_global___cha_analysis, 26);
   }
-  fra.me.REG[0] = ATTR_analysis___cha_analysis___ChaContext____reachable_iroutines(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_global___cha_analysis___ChaContext____reachable_iroutines(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t analysis___cha_analysis___ChaContext___is_iroutine_reachable(val_t p0, val_t p1){
+val_t global___cha_analysis___ChaContext___is_iroutine_reachable(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___cha_analysis;
+  fra.me.file = LOCATE_global___cha_analysis;
   fra.me.line = 28;
-  fra.me.meth = LOCATE_analysis___cha_analysis___ChaContext___is_iroutine_reachable;
+  fra.me.meth = LOCATE_global___cha_analysis___ChaContext___is_iroutine_reachable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
@@ -39,7 +39,7 @@ val_t analysis___cha_analysis___ChaContext___is_iroutine_reachable(val_t p0, val
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//cha_analysis.nit:29 */
+  /* global/cha_analysis.nit:29 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -54,7 +54,7 @@ val_t analysis___cha_analysis___ChaContext___is_iroutine_reachable(val_t p0, val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    fra.me.REG[0] = CALL_analysis___cha_analysis___ChaContext___reachable_iroutines(fra.me.REG[0])(fra.me.REG[0]);
+    fra.me.REG[0] = CALL_global___cha_analysis___ChaContext___reachable_iroutines(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   } else {
     REGB1 = TAG_Bool(false);
@@ -65,14 +65,14 @@ val_t analysis___cha_analysis___ChaContext___is_iroutine_reachable(val_t p0, val
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
-val_t analysis___cha_analysis___ChaContext___is_method_reachable(val_t p0, val_t p1){
+val_t global___cha_analysis___ChaContext___is_method_reachable(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___cha_analysis;
+  fra.me.file = LOCATE_global___cha_analysis;
   fra.me.line = 32;
-  fra.me.meth = LOCATE_analysis___cha_analysis___ChaContext___is_method_reachable;
+  fra.me.meth = LOCATE_global___cha_analysis___ChaContext___is_method_reachable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
@@ -80,92 +80,108 @@ val_t analysis___cha_analysis___ChaContext___is_method_reachable(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//cha_analysis.nit:33 */
+  /* global/cha_analysis.nit:33 */
   fra.me.REG[1] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = CALL_analysis___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  REGB0 = CALL_global___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
-val_t analysis___cha_analysis___ChaBuilder___iroutine_to_search(val_t p0){
+void global___cha_analysis___ChaContext___init(val_t p0, int* init_table){
+  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___cha_analysis___ChaContext].i;
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  if (init_table[itpos0]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global___cha_analysis;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_global___cha_analysis___ChaContext___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+  init_table[itpos0] = 1;
+  return;
+}
+val_t global___cha_analysis___ChaBuilder___iroutine_to_search(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___cha_analysis;
+  fra.me.file = LOCATE_global___cha_analysis;
   fra.me.line = 38;
-  fra.me.meth = LOCATE_analysis___cha_analysis___ChaBuilder___iroutine_to_search;
+  fra.me.meth = LOCATE_global___cha_analysis___ChaBuilder___iroutine_to_search;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//cha_analysis.nit:38 */
-  REGB0 = TAG_Bool(ATTR_analysis___cha_analysis___ChaBuilder____iroutine_to_search(fra.me.REG[0])!=NIT_NULL);
+  /* global/cha_analysis.nit:38 */
+  REGB0 = TAG_Bool(ATTR_global___cha_analysis___ChaBuilder____iroutine_to_search(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_iroutine_to_search", LOCATE_analysis___cha_analysis, 38);
+    nit_abort("Uninitialized attribute %s", "_iroutine_to_search", LOCATE_global___cha_analysis, 38);
   }
-  fra.me.REG[0] = ATTR_analysis___cha_analysis___ChaBuilder____iroutine_to_search(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_global___cha_analysis___ChaBuilder____iroutine_to_search(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t analysis___cha_analysis___ChaBuilder___context(val_t p0){
+val_t global___cha_analysis___ChaBuilder___context(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___cha_analysis;
+  fra.me.file = LOCATE_global___cha_analysis;
   fra.me.line = 39;
-  fra.me.meth = LOCATE_analysis___cha_analysis___ChaBuilder___context;
+  fra.me.meth = LOCATE_global___cha_analysis___ChaBuilder___context;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//cha_analysis.nit:39 */
-  REGB0 = TAG_Bool(ATTR_analysis___cha_analysis___ChaBuilder____context(fra.me.REG[0])!=NIT_NULL);
+  /* global/cha_analysis.nit:39 */
+  REGB0 = TAG_Bool(ATTR_global___cha_analysis___ChaBuilder____context(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_context", LOCATE_analysis___cha_analysis, 39);
+    nit_abort("Uninitialized attribute %s", "_context", LOCATE_global___cha_analysis, 39);
   }
-  fra.me.REG[0] = ATTR_analysis___cha_analysis___ChaBuilder____context(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_global___cha_analysis___ChaBuilder____context(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t analysis___cha_analysis___ChaBuilder___program(val_t p0){
+val_t global___cha_analysis___ChaBuilder___program(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___cha_analysis;
+  fra.me.file = LOCATE_global___cha_analysis;
   fra.me.line = 40;
-  fra.me.meth = LOCATE_analysis___cha_analysis___ChaBuilder___program;
+  fra.me.meth = LOCATE_global___cha_analysis___ChaBuilder___program;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//cha_analysis.nit:40 */
-  REGB0 = TAG_Bool(ATTR_analysis___cha_analysis___ChaBuilder____program(fra.me.REG[0])!=NIT_NULL);
+  /* global/cha_analysis.nit:40 */
+  REGB0 = TAG_Bool(ATTR_global___cha_analysis___ChaBuilder____program(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_program", LOCATE_analysis___cha_analysis, 40);
+    nit_abort("Uninitialized attribute %s", "_program", LOCATE_global___cha_analysis, 40);
   }
-  fra.me.REG[0] = ATTR_analysis___cha_analysis___ChaBuilder____program(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_global___cha_analysis___ChaBuilder____program(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-void analysis___cha_analysis___ChaBuilder___init(val_t p0, val_t p1, int* init_table){
-  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___cha_analysis___ChaBuilder].i;
+void global___cha_analysis___ChaBuilder___init(val_t p0, val_t p1, int* init_table){
+  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___cha_analysis___ChaBuilder].i;
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  if (init_table[itpos0]) return;
+  if (init_table[itpos1]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___cha_analysis;
+  fra.me.file = LOCATE_global___cha_analysis;
   fra.me.line = 42;
-  fra.me.meth = LOCATE_analysis___cha_analysis___ChaBuilder___init;
+  fra.me.meth = LOCATE_global___cha_analysis___ChaBuilder___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
@@ -173,16 +189,16 @@ void analysis___cha_analysis___ChaBuilder___init(val_t p0, val_t p1, int* init_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//cha_analysis.nit:43 */
-  ATTR_analysis___cha_analysis___ChaBuilder____program(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./analysis//cha_analysis.nit:44 */
-  fra.me.REG[1] = NEW_ChaContext_analysis___reachable_method_analysis___ReachableMethodAnalysis___init();
-  ATTR_analysis___cha_analysis___ChaBuilder____context(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/cha_analysis.nit:43 */
+  ATTR_global___cha_analysis___ChaBuilder____program(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/cha_analysis.nit:44 */
+  fra.me.REG[1] = NEW_ChaContext_global___cha_analysis___ChaContext___init();
+  ATTR_global___cha_analysis___ChaBuilder____context(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos0] = 1;
+  init_table[itpos1] = 1;
   return;
 }
-void analysis___cha_analysis___ChaBuilder___add_search(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
+void global___cha_analysis___ChaBuilder___add_search(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t REGB1;
@@ -190,9 +206,9 @@ void analysis___cha_analysis___ChaBuilder___add_search(val_t p0, val_t p1, val_t
   val_t REGB3;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___cha_analysis;
+  fra.me.file = LOCATE_global___cha_analysis;
   fra.me.line = 47;
-  fra.me.meth = LOCATE_analysis___cha_analysis___ChaBuilder___add_search;
+  fra.me.meth = LOCATE_global___cha_analysis___ChaBuilder___add_search;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -205,7 +221,7 @@ void analysis___cha_analysis___ChaBuilder___add_search(val_t p0, val_t p1, val_t
   fra.me.REG[2] = p2;
   REGB0 = p3;
   REGB1 = p4;
-  /* ./analysis//cha_analysis.nit:49 */
+  /* global/cha_analysis.nit:49 */
   REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -220,28 +236,28 @@ void analysis___cha_analysis___ChaBuilder___add_search(val_t p0, val_t p1, val_t
   }
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   if (UNTAG_Bool(REGB2)) {
-    fra.me.REG[3] = CALL_analysis___cha_analysis___ChaBuilder___context(fra.me.REG[0])(fra.me.REG[0]);
-    REGB2 = CALL_analysis___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
+    fra.me.REG[3] = CALL_global___cha_analysis___ChaBuilder___context(fra.me.REG[0])(fra.me.REG[0]);
+    REGB2 = CALL_global___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
     REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   } else {
     REGB3 = TAG_Bool(false);
     REGB2 = REGB3;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./analysis//cha_analysis.nit:50 */
-    fra.me.REG[3] = CALL_analysis___cha_analysis___ChaBuilder___context(fra.me.REG[0])(fra.me.REG[0]);
-    fra.me.REG[3] = CALL_analysis___cha_analysis___ChaContext___reachable_iroutines(fra.me.REG[3])(fra.me.REG[3]);
+    /* global/cha_analysis.nit:50 */
+    fra.me.REG[3] = CALL_global___cha_analysis___ChaBuilder___context(fra.me.REG[0])(fra.me.REG[0]);
+    fra.me.REG[3] = CALL_global___cha_analysis___ChaContext___reachable_iroutines(fra.me.REG[3])(fra.me.REG[3]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-    /* ./analysis//cha_analysis.nit:51 */
-    REGB2 = TAG_Bool(ATTR_analysis___cha_analysis___ChaBuilder____iroutine_to_search(fra.me.REG[0])!=NIT_NULL);
+    /* global/cha_analysis.nit:51 */
+    REGB2 = TAG_Bool(ATTR_global___cha_analysis___ChaBuilder____iroutine_to_search(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_iroutine_to_search", LOCATE_analysis___cha_analysis, 51);
+      nit_abort("Uninitialized attribute %s", "_iroutine_to_search", LOCATE_global___cha_analysis, 51);
     }
-    fra.me.REG[3] = ATTR_analysis___cha_analysis___ChaBuilder____iroutine_to_search(fra.me.REG[0]);
+    fra.me.REG[3] = ATTR_global___cha_analysis___ChaBuilder____iroutine_to_search(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
   }
-  /* ./analysis//cha_analysis.nit:54 */
+  /* global/cha_analysis.nit:54 */
   REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -256,43 +272,43 @@ void analysis___cha_analysis___ChaBuilder___add_search(val_t p0, val_t p1, val_t
   }
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   if (UNTAG_Bool(REGB2)) {
-    /* ./analysis//cha_analysis.nit:56 */
+    /* global/cha_analysis.nit:56 */
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./analysis//cha_analysis.nit:57 */
+      /* global/cha_analysis.nit:57 */
       REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_analysis___cha_analysis, 57);
+        nit_abort("Reciever is null", NULL, LOCATE_global___cha_analysis, 57);
       }
       fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrderElement___smallers(fra.me.REG[2])(fra.me.REG[2]);
-      CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_analysis___cha_analysis___ChaBuilder___add_search_1));
+      CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_global___cha_analysis___ChaBuilder___add_search_1));
     }
-    /* ./analysis//cha_analysis.nit:65 */
+    /* global/cha_analysis.nit:65 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./analysis//cha_analysis.nit:66 */
+      /* global/cha_analysis.nit:66 */
       REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
-        nit_abort("Reciever is null", NULL, LOCATE_analysis___cha_analysis, 66);
+        nit_abort("Reciever is null", NULL, LOCATE_global___cha_analysis, 66);
       }
       fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[1] = CALL_metamodel___partial_order___PartialOrderElement___greaters(fra.me.REG[1])(fra.me.REG[1]);
-      CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_analysis___cha_analysis___ChaBuilder___add_search_2));
+      CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_global___cha_analysis___ChaBuilder___add_search_2));
     }
   }
   stack_frame_head = fra.me.prev;
   return;
 }
-      void OC_analysis___cha_analysis___ChaBuilder___add_search_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+      void OC_global___cha_analysis___ChaBuilder___add_search_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
         struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
         val_t REGB0;
         val_t REGB1;
         fun_t CREG[1];
         val_t tmp;
         fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-        fra.me.file = LOCATE_analysis___cha_analysis;
+        fra.me.file = LOCATE_global___cha_analysis;
         fra.me.line = 0;
-        fra.me.meth = LOCATE_analysis___cha_analysis___ChaBuilder___add_search;
+        fra.me.meth = LOCATE_global___cha_analysis___ChaBuilder___add_search;
         fra.me.has_broke = 0;
         fra.me.REG_size = 2;
         fra.me.nitni_local_ref_head = NULL;
@@ -302,28 +318,28 @@ void analysis___cha_analysis___ChaBuilder___add_search(val_t p0, val_t p1, val_t
         fra.me.closure_funs = CREG;
         fra.me.REG[0] = p0;
         CREG[0] = clos_fun0;
-        /* ./analysis//cha_analysis.nit:58 */
+        /* global/cha_analysis.nit:58 */
         REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
         if (UNTAG_Bool(REGB0)) {
-          /* ./analysis//cha_analysis.nit:59 */
+          /* global/cha_analysis.nit:59 */
           fra.me.REG[1] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
           REGB0 = TAG_Bool(true);
           REGB1 = TAG_Bool(false);
-          CALL_analysis___cha_analysis___ChaBuilder___add_search(closctx->REG[0])(closctx->REG[0], fra.me.REG[0], fra.me.REG[1], REGB0, REGB1);
+          CALL_global___cha_analysis___ChaBuilder___add_search(closctx->REG[0])(closctx->REG[0], fra.me.REG[0], fra.me.REG[1], REGB0, REGB1);
         }
         stack_frame_head = fra.me.prev;
         return;
       }
-      void OC_analysis___cha_analysis___ChaBuilder___add_search_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+      void OC_global___cha_analysis___ChaBuilder___add_search_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
         struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
         val_t REGB0;
         val_t REGB1;
         fun_t CREG[1];
         val_t tmp;
         fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-        fra.me.file = LOCATE_analysis___cha_analysis;
+        fra.me.file = LOCATE_global___cha_analysis;
         fra.me.line = 0;
-        fra.me.meth = LOCATE_analysis___cha_analysis___ChaBuilder___add_search;
+        fra.me.meth = LOCATE_global___cha_analysis___ChaBuilder___add_search;
         fra.me.has_broke = 0;
         fra.me.REG_size = 2;
         fra.me.nitni_local_ref_head = NULL;
@@ -333,27 +349,27 @@ void analysis___cha_analysis___ChaBuilder___add_search(val_t p0, val_t p1, val_t
         fra.me.closure_funs = CREG;
         fra.me.REG[0] = p0;
         CREG[0] = clos_fun0;
-        /* ./analysis//cha_analysis.nit:67 */
+        /* global/cha_analysis.nit:67 */
         REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
         if (UNTAG_Bool(REGB0)) {
-          /* ./analysis//cha_analysis.nit:68 */
+          /* global/cha_analysis.nit:68 */
           fra.me.REG[1] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
           REGB0 = TAG_Bool(true);
           REGB1 = TAG_Bool(false);
-          CALL_analysis___cha_analysis___ChaBuilder___add_search(closctx->REG[0])(closctx->REG[0], fra.me.REG[0], fra.me.REG[1], REGB0, REGB1);
+          CALL_global___cha_analysis___ChaBuilder___add_search(closctx->REG[0])(closctx->REG[0], fra.me.REG[0], fra.me.REG[1], REGB0, REGB1);
         }
         stack_frame_head = fra.me.prev;
         return;
       }
-void analysis___cha_analysis___ChaBuilder___work(val_t p0){
+void global___cha_analysis___ChaBuilder___work(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___cha_analysis;
+  fra.me.file = LOCATE_global___cha_analysis;
   fra.me.line = 75;
-  fra.me.meth = LOCATE_analysis___cha_analysis___ChaBuilder___work;
+  fra.me.meth = LOCATE_global___cha_analysis___ChaBuilder___work;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
@@ -361,10 +377,10 @@ void analysis___cha_analysis___ChaBuilder___work(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//cha_analysis.nit:77 */
-  fra.me.REG[1] = CALL_analysis___cha_analysis___ChaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
+  /* global/cha_analysis.nit:77 */
+  fra.me.REG[1] = CALL_global___cha_analysis___ChaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_program___Program___main_method(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./analysis//cha_analysis.nit:78 */
+  /* global/cha_analysis.nit:78 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -380,31 +396,31 @@ void analysis___cha_analysis___ChaBuilder___work(val_t p0){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./analysis//cha_analysis.nit:80 */
+  /* global/cha_analysis.nit:80 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_analysis___cha_analysis, 80);
+    nit_abort("Reciever is null", NULL, LOCATE_global___cha_analysis, 80);
   }
   fra.me.REG[2] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(true);
   REGB1 = TAG_Bool(false);
-  CALL_analysis___cha_analysis___ChaBuilder___add_search(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, REGB1);
-  /* ./analysis//cha_analysis.nit:82 */
+  CALL_global___cha_analysis___ChaBuilder___add_search(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, REGB1);
+  /* global/cha_analysis.nit:82 */
   while(1) {
-    fra.me.REG[2] = CALL_analysis___cha_analysis___ChaBuilder___iroutine_to_search(fra.me.REG[0])(fra.me.REG[0]);
+    fra.me.REG[2] = CALL_global___cha_analysis___ChaBuilder___iroutine_to_search(fra.me.REG[0])(fra.me.REG[0]);
     REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
     REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
     if (UNTAG_Bool(REGB1)) {
-      /* ./analysis//cha_analysis.nit:83 */
-      fra.me.REG[2] = NEW_ChaVisitor_analysis___cha_analysis___ChaVisitor___init(fra.me.REG[0]);
-      /* ./analysis//cha_analysis.nit:84 */
-      fra.me.REG[1] = CALL_analysis___cha_analysis___ChaBuilder___iroutine_to_search(fra.me.REG[0])(fra.me.REG[0]);
+      /* global/cha_analysis.nit:83 */
+      fra.me.REG[2] = NEW_ChaVisitor_global___cha_analysis___ChaVisitor___init(fra.me.REG[0]);
+      /* global/cha_analysis.nit:84 */
+      fra.me.REG[1] = CALL_global___cha_analysis___ChaBuilder___iroutine_to_search(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[1] = CALL_standard___collection___abstract_collection___Sequence___pop(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./analysis//cha_analysis.nit:85 */
+      /* global/cha_analysis.nit:85 */
       fra.me.REG[1] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[1])(fra.me.REG[1]);
       CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
     } else {
-      /* ./analysis//cha_analysis.nit:82 */
+      /* global/cha_analysis.nit:82 */
       goto label2;
     }
   }
@@ -413,38 +429,38 @@ void analysis___cha_analysis___ChaBuilder___work(val_t p0){
   stack_frame_head = fra.me.prev;
   return;
 }
-val_t analysis___cha_analysis___ChaVisitor___builder(val_t p0){
+val_t global___cha_analysis___ChaVisitor___builder(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___cha_analysis;
+  fra.me.file = LOCATE_global___cha_analysis;
   fra.me.line = 92;
-  fra.me.meth = LOCATE_analysis___cha_analysis___ChaVisitor___builder;
+  fra.me.meth = LOCATE_global___cha_analysis___ChaVisitor___builder;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//cha_analysis.nit:92 */
-  REGB0 = TAG_Bool(ATTR_analysis___cha_analysis___ChaVisitor____builder(fra.me.REG[0])!=NIT_NULL);
+  /* global/cha_analysis.nit:92 */
+  REGB0 = TAG_Bool(ATTR_global___cha_analysis___ChaVisitor____builder(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_builder", LOCATE_analysis___cha_analysis, 92);
+    nit_abort("Uninitialized attribute %s", "_builder", LOCATE_global___cha_analysis, 92);
   }
-  fra.me.REG[0] = ATTR_analysis___cha_analysis___ChaVisitor____builder(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_global___cha_analysis___ChaVisitor____builder(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-void analysis___cha_analysis___ChaVisitor___visit_icode(val_t p0, val_t p1){
+void global___cha_analysis___ChaVisitor___visit_icode(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___cha_analysis;
+  fra.me.file = LOCATE_global___cha_analysis;
   fra.me.line = 94;
-  fra.me.meth = LOCATE_analysis___cha_analysis___ChaVisitor___visit_icode;
+  fra.me.meth = LOCATE_global___cha_analysis___ChaVisitor___visit_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -457,53 +473,53 @@ void analysis___cha_analysis___ChaVisitor___visit_icode(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//cha_analysis.nit:94 */
+  /* global/cha_analysis.nit:94 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./analysis//cha_analysis.nit:96 */
+  /* global/cha_analysis.nit:96 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___IStaticCall, ID_icode___icode_base___IStaticCall)) /*cast IStaticCall*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//cha_analysis.nit:98 */
-    fra.me.REG[4] = CALL_analysis___cha_analysis___ChaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+    /* global/cha_analysis.nit:98 */
+    fra.me.REG[4] = CALL_global___cha_analysis___ChaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___cha_analysis, 98);
+      nit_abort("Reciever is null", NULL, LOCATE_global___cha_analysis, 98);
     }
     fra.me.REG[5] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___cha_analysis, 98);
+      nit_abort("Reciever is null", NULL, LOCATE_global___cha_analysis, 98);
     }
     fra.me.REG[6] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
     fra.me.REG[6] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[6])(fra.me.REG[6]);
     REGB0 = TAG_Bool(true);
     REGB1 = TAG_Bool(false);
-    CALL_analysis___cha_analysis___ChaBuilder___add_search(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6], REGB0, REGB1);
+    CALL_global___cha_analysis___ChaBuilder___add_search(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6], REGB0, REGB1);
   } else {
-    /* ./analysis//cha_analysis.nit:99 */
+    /* global/cha_analysis.nit:99 */
     REGB1 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___INew, ID_icode___icode_base___INew)) /*cast INew*/;
     if (UNTAG_Bool(REGB1)) {
-      /* ./analysis//cha_analysis.nit:101 */
+      /* global/cha_analysis.nit:101 */
       REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
-        nit_abort("Reciever is null", NULL, LOCATE_analysis___cha_analysis, 101);
+        nit_abort("Reciever is null", NULL, LOCATE_global___cha_analysis, 101);
       }
       fra.me.REG[6] = CALL_icode___icode_base___INew___stype(fra.me.REG[3])(fra.me.REG[3]);
-      /* ./analysis//cha_analysis.nit:102 */
-      fra.me.REG[5] = CALL_analysis___cha_analysis___ChaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
-      fra.me.REG[5] = CALL_analysis___cha_analysis___ChaBuilder___program(fra.me.REG[5])(fra.me.REG[5]);
+      /* global/cha_analysis.nit:102 */
+      fra.me.REG[5] = CALL_global___cha_analysis___ChaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+      fra.me.REG[5] = CALL_global___cha_analysis___ChaBuilder___program(fra.me.REG[5])(fra.me.REG[5]);
       fra.me.REG[5] = CALL_program___Program___main_module(fra.me.REG[5])(fra.me.REG[5]);
       fra.me.REG[5] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
       fra.me.REG[5] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[5])(fra.me.REG[5]);
-      /* ./analysis//cha_analysis.nit:103 */
+      /* global/cha_analysis.nit:103 */
       fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
       REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[6])(fra.me.REG[6]);
       REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
       if (UNTAG_Bool(REGB1)) {
-        /* ./analysis//cha_analysis.nit:104 */
+        /* global/cha_analysis.nit:104 */
         REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
-          nit_abort("Reciever is null", NULL, LOCATE_analysis___cha_analysis, 104);
+          nit_abort("Reciever is null", NULL, LOCATE_global___cha_analysis, 104);
         }
         fra.me.REG[6] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
         fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[6])(fra.me.REG[6]);
@@ -511,128 +527,128 @@ void analysis___cha_analysis___ChaVisitor___visit_icode(val_t p0, val_t p1){
         REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[6], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
         if (UNTAG_Bool(REGB1)) {
         } else {
-          nit_abort("Cast failed", NULL, LOCATE_analysis___cha_analysis, 104);
+          nit_abort("Cast failed", NULL, LOCATE_global___cha_analysis, 104);
         }
-        /* ./analysis//cha_analysis.nit:105 */
+        /* global/cha_analysis.nit:105 */
         fra.me.REG[5] = CALL_program___MMLocalClass___new_instance_iroutine(fra.me.REG[5])(fra.me.REG[5]);
         fra.me.REG[6] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-        /* ./analysis//cha_analysis.nit:106 */
-        fra.me.REG[5] = CALL_analysis___cha_analysis___ChaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+        /* global/cha_analysis.nit:106 */
+        fra.me.REG[5] = CALL_global___cha_analysis___ChaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
         REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
-          nit_abort("Reciever is null", NULL, LOCATE_analysis___cha_analysis, 106);
+          nit_abort("Reciever is null", NULL, LOCATE_global___cha_analysis, 106);
         }
         fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
         REGB1 = TAG_Bool(false);
         REGB0 = TAG_Bool(false);
-        CALL_analysis___cha_analysis___ChaBuilder___add_search(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6], REGB1, REGB0);
+        CALL_global___cha_analysis___ChaBuilder___add_search(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6], REGB1, REGB0);
       }
     } else {
-      /* ./analysis//cha_analysis.nit:108 */
+      /* global/cha_analysis.nit:108 */
       REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___ISuper, ID_icode___icode_base___ISuper)) /*cast ISuper*/;
       if (UNTAG_Bool(REGB0)) {
-        /* ./analysis//cha_analysis.nit:109 */
-        fra.me.REG[6] = CALL_analysis___cha_analysis___ChaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+        /* global/cha_analysis.nit:109 */
+        fra.me.REG[6] = CALL_global___cha_analysis___ChaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
         REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
-          nit_abort("Reciever is null", NULL, LOCATE_analysis___cha_analysis, 109);
+          nit_abort("Reciever is null", NULL, LOCATE_global___cha_analysis, 109);
         }
         fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
         REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
-          nit_abort("Reciever is null", NULL, LOCATE_analysis___cha_analysis, 109);
+          nit_abort("Reciever is null", NULL, LOCATE_global___cha_analysis, 109);
         }
         fra.me.REG[5] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
         fra.me.REG[5] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[5])(fra.me.REG[5]);
         REGB0 = TAG_Bool(false);
         REGB1 = TAG_Bool(true);
-        CALL_analysis___cha_analysis___ChaBuilder___add_search(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4], fra.me.REG[5], REGB0, REGB1);
+        CALL_global___cha_analysis___ChaBuilder___add_search(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4], fra.me.REG[5], REGB0, REGB1);
       } else {
-        /* ./analysis//cha_analysis.nit:110 */
+        /* global/cha_analysis.nit:110 */
         REGB1 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___ICall, ID_icode___icode_base___ICall)) /*cast ICall*/;
         if (UNTAG_Bool(REGB1)) {
-          /* ./analysis//cha_analysis.nit:111 */
-          fra.me.REG[5] = CALL_analysis___cha_analysis___ChaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+          /* global/cha_analysis.nit:111 */
+          fra.me.REG[5] = CALL_global___cha_analysis___ChaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
           REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
-            nit_abort("Reciever is null", NULL, LOCATE_analysis___cha_analysis, 111);
+            nit_abort("Reciever is null", NULL, LOCATE_global___cha_analysis, 111);
           }
           fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
           REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
-            nit_abort("Reciever is null", NULL, LOCATE_analysis___cha_analysis, 111);
+            nit_abort("Reciever is null", NULL, LOCATE_global___cha_analysis, 111);
           }
           fra.me.REG[6] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
           fra.me.REG[6] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[6])(fra.me.REG[6]);
           REGB1 = TAG_Bool(false);
           REGB0 = TAG_Bool(false);
-          CALL_analysis___cha_analysis___ChaBuilder___add_search(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6], REGB1, REGB0);
+          CALL_global___cha_analysis___ChaBuilder___add_search(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6], REGB1, REGB0);
         } else {
-          /* ./analysis//cha_analysis.nit:112 */
+          /* global/cha_analysis.nit:112 */
           REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___ICheckInstance, ID_icode___icode_base___ICheckInstance)) /*cast ICheckInstance*/;
           if (UNTAG_Bool(REGB0)) {
-            /* ./analysis//cha_analysis.nit:113 */
+            /* global/cha_analysis.nit:113 */
             REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
             if (UNTAG_Bool(REGB0)) {
-              nit_abort("Reciever is null", NULL, LOCATE_analysis___cha_analysis, 113);
+              nit_abort("Reciever is null", NULL, LOCATE_global___cha_analysis, 113);
             }
             fra.me.REG[6] = CALL_icode___icode_base___ICheckInstance___stype(fra.me.REG[3])(fra.me.REG[3]);
-            /* ./analysis//cha_analysis.nit:114 */
-            fra.me.REG[4] = CALL_analysis___cha_analysis___ChaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
-            fra.me.REG[4] = CALL_analysis___cha_analysis___ChaBuilder___program(fra.me.REG[4])(fra.me.REG[4]);
+            /* global/cha_analysis.nit:114 */
+            fra.me.REG[4] = CALL_global___cha_analysis___ChaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+            fra.me.REG[4] = CALL_global___cha_analysis___ChaBuilder___program(fra.me.REG[4])(fra.me.REG[4]);
             fra.me.REG[4] = CALL_program___Program___main_module(fra.me.REG[4])(fra.me.REG[4]);
             fra.me.REG[4] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
             fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[4])(fra.me.REG[4]);
-            /* ./analysis//cha_analysis.nit:115 */
+            /* global/cha_analysis.nit:115 */
             fra.me.REG[4] = CALL_program___MMLocalClass___checknew_iroutine(fra.me.REG[4])(fra.me.REG[4]);
-            /* ./analysis//cha_analysis.nit:116 */
-            fra.me.REG[6] = CALL_analysis___cha_analysis___ChaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+            /* global/cha_analysis.nit:116 */
+            fra.me.REG[6] = CALL_global___cha_analysis___ChaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
             REGB0 = TAG_Bool(true);
             REGB1 = TAG_Bool(false);
-            CALL_analysis___cha_analysis___ChaBuilder___add_search(fra.me.REG[6])(fra.me.REG[6], NIT_NULL, fra.me.REG[4], REGB0, REGB1);
+            CALL_global___cha_analysis___ChaBuilder___add_search(fra.me.REG[6])(fra.me.REG[6], NIT_NULL, fra.me.REG[4], REGB0, REGB1);
           } else {
-            /* ./analysis//cha_analysis.nit:117 */
+            /* global/cha_analysis.nit:117 */
             REGB1 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___IInitAttributes, ID_icode___icode_base___IInitAttributes)) /*cast IInitAttributes*/;
             if (UNTAG_Bool(REGB1)) {
-              /* ./analysis//cha_analysis.nit:118 */
+              /* global/cha_analysis.nit:118 */
               REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
               if (UNTAG_Bool(REGB1)) {
-               nit_abort("Reciever is null", NULL, LOCATE_analysis___cha_analysis, 118);
+               nit_abort("Reciever is null", NULL, LOCATE_global___cha_analysis, 118);
               }
               fra.me.REG[3] = CALL_icode___icode_base___IInitAttributes___stype(fra.me.REG[3])(fra.me.REG[3]);
-              /* ./analysis//cha_analysis.nit:119 */
-              fra.me.REG[4] = CALL_analysis___cha_analysis___ChaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
-              fra.me.REG[4] = CALL_analysis___cha_analysis___ChaBuilder___program(fra.me.REG[4])(fra.me.REG[4]);
+              /* global/cha_analysis.nit:119 */
+              fra.me.REG[4] = CALL_global___cha_analysis___ChaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+              fra.me.REG[4] = CALL_global___cha_analysis___ChaBuilder___program(fra.me.REG[4])(fra.me.REG[4]);
               fra.me.REG[4] = CALL_program___Program___main_module(fra.me.REG[4])(fra.me.REG[4]);
               fra.me.REG[4] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
               fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[4])(fra.me.REG[4]);
-              /* ./analysis//cha_analysis.nit:120 */
+              /* global/cha_analysis.nit:120 */
               fra.me.REG[4] = CALL_program___MMLocalClass___init_var_iroutine(fra.me.REG[4])(fra.me.REG[4]);
-              /* ./analysis//cha_analysis.nit:121 */
-              fra.me.REG[2] = CALL_analysis___cha_analysis___ChaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+              /* global/cha_analysis.nit:121 */
+              fra.me.REG[2] = CALL_global___cha_analysis___ChaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
               REGB1 = TAG_Bool(true);
               REGB0 = TAG_Bool(false);
-              CALL_analysis___cha_analysis___ChaBuilder___add_search(fra.me.REG[2])(fra.me.REG[2], NIT_NULL, fra.me.REG[4], REGB1, REGB0);
+              CALL_global___cha_analysis___ChaBuilder___add_search(fra.me.REG[2])(fra.me.REG[2], NIT_NULL, fra.me.REG[4], REGB1, REGB0);
             }
           }
         }
       }
     }
   }
-  /* ./analysis//cha_analysis.nit:123 */
-  CALL_SUPER_analysis___cha_analysis___ChaVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  /* global/cha_analysis.nit:123 */
+  CALL_SUPER_global___cha_analysis___ChaVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
 }
-void analysis___cha_analysis___ChaVisitor___init(val_t p0, val_t p1, int* init_table){
-  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___cha_analysis___ChaVisitor].i;
+void global___cha_analysis___ChaVisitor___init(val_t p0, val_t p1, int* init_table){
+  int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___cha_analysis___ChaVisitor].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  if (init_table[itpos1]) return;
+  if (init_table[itpos2]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___cha_analysis;
+  fra.me.file = LOCATE_global___cha_analysis;
   fra.me.line = 126;
-  fra.me.meth = LOCATE_analysis___cha_analysis___ChaVisitor___init;
+  fra.me.meth = LOCATE_global___cha_analysis___ChaVisitor___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
@@ -641,12 +657,12 @@ void analysis___cha_analysis___ChaVisitor___init(val_t p0, val_t p1, int* init_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//cha_analysis.nit:126 */
+  /* global/cha_analysis.nit:126 */
   fra.me.REG[2] = fra.me.REG[0];
   CALL_icode___icode_tools___ICodeVisitor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./analysis//cha_analysis.nit:128 */
-  ATTR_analysis___cha_analysis___ChaVisitor____builder(fra.me.REG[2]) = fra.me.REG[1];
+  /* global/cha_analysis.nit:128 */
+  ATTR_global___cha_analysis___ChaVisitor____builder(fra.me.REG[2]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos1] = 1;
+  init_table[itpos2] = 1;
   return;
 }
diff --git a/c_src/global___cha_analysis._sep.h b/c_src/global___cha_analysis._sep.h
new file mode 100644 (file)
index 0000000..570e26d
--- /dev/null
@@ -0,0 +1,87 @@
+/* This C header file is generated by NIT to compile modules and programs that requires ./global/cha_analysis. */
+#ifndef global___cha_analysis_sep
+#define global___cha_analysis_sep
+#include "global___reachable_method_analysis._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_global___cha_analysis___ChaContext[];
+
+extern const classtable_elt_t VFT_global___cha_analysis___ChaBuilder[];
+
+extern const classtable_elt_t VFT_global___cha_analysis___ChaVisitor[];
+extern const char *LOCATE_global___cha_analysis;
+extern const int SFT_global___cha_analysis[];
+#define ID_global___cha_analysis___ChaContext (SFT_global___cha_analysis[0])
+#define COLOR_global___cha_analysis___ChaContext (SFT_global___cha_analysis[1])
+#define ATTR_global___cha_analysis___ChaContext____reachable_iroutines(recv) ATTR(recv, (SFT_global___cha_analysis[2] + 0))
+#define INIT_TABLE_POS_global___cha_analysis___ChaContext (SFT_global___cha_analysis[3] + 0)
+#define CALL_global___cha_analysis___ChaContext___reachable_iroutines(recv) ((global___cha_analysis___ChaContext___reachable_iroutines_t)CALL((recv), (SFT_global___cha_analysis[3] + 1)))
+#define CALL_global___cha_analysis___ChaContext___init(recv) ((global___cha_analysis___ChaContext___init_t)CALL((recv), (SFT_global___cha_analysis[3] + 2)))
+#define ID_global___cha_analysis___ChaBuilder (SFT_global___cha_analysis[4])
+#define COLOR_global___cha_analysis___ChaBuilder (SFT_global___cha_analysis[5])
+#define ATTR_global___cha_analysis___ChaBuilder____iroutine_to_search(recv) ATTR(recv, (SFT_global___cha_analysis[6] + 0))
+#define ATTR_global___cha_analysis___ChaBuilder____context(recv) ATTR(recv, (SFT_global___cha_analysis[6] + 1))
+#define ATTR_global___cha_analysis___ChaBuilder____program(recv) ATTR(recv, (SFT_global___cha_analysis[6] + 2))
+#define INIT_TABLE_POS_global___cha_analysis___ChaBuilder (SFT_global___cha_analysis[7] + 0)
+#define CALL_global___cha_analysis___ChaBuilder___iroutine_to_search(recv) ((global___cha_analysis___ChaBuilder___iroutine_to_search_t)CALL((recv), (SFT_global___cha_analysis[7] + 1)))
+#define CALL_global___cha_analysis___ChaBuilder___context(recv) ((global___cha_analysis___ChaBuilder___context_t)CALL((recv), (SFT_global___cha_analysis[7] + 2)))
+#define CALL_global___cha_analysis___ChaBuilder___program(recv) ((global___cha_analysis___ChaBuilder___program_t)CALL((recv), (SFT_global___cha_analysis[7] + 3)))
+#define CALL_global___cha_analysis___ChaBuilder___init(recv) ((global___cha_analysis___ChaBuilder___init_t)CALL((recv), (SFT_global___cha_analysis[7] + 4)))
+#define CALL_global___cha_analysis___ChaBuilder___add_search(recv) ((global___cha_analysis___ChaBuilder___add_search_t)CALL((recv), (SFT_global___cha_analysis[7] + 5)))
+#define CALL_global___cha_analysis___ChaBuilder___work(recv) ((global___cha_analysis___ChaBuilder___work_t)CALL((recv), (SFT_global___cha_analysis[7] + 6)))
+#define ID_global___cha_analysis___ChaVisitor (SFT_global___cha_analysis[8])
+#define COLOR_global___cha_analysis___ChaVisitor (SFT_global___cha_analysis[9])
+#define ATTR_global___cha_analysis___ChaVisitor____builder(recv) ATTR(recv, (SFT_global___cha_analysis[10] + 0))
+#define INIT_TABLE_POS_global___cha_analysis___ChaVisitor (SFT_global___cha_analysis[11] + 0)
+#define CALL_global___cha_analysis___ChaVisitor___builder(recv) ((global___cha_analysis___ChaVisitor___builder_t)CALL((recv), (SFT_global___cha_analysis[11] + 1)))
+#define CALL_SUPER_global___cha_analysis___ChaVisitor___visit_icode(recv) ((global___cha_analysis___ChaVisitor___visit_icode_t)CALL((recv), (SFT_global___cha_analysis[11] + 2)))
+#define CALL_global___cha_analysis___ChaVisitor___init(recv) ((global___cha_analysis___ChaVisitor___init_t)CALL((recv), (SFT_global___cha_analysis[11] + 3)))
+static const char * const LOCATE_global___cha_analysis___ChaContext___reachable_iroutines = "cha_analysis::ChaContext::reachable_iroutines";
+val_t global___cha_analysis___ChaContext___reachable_iroutines(val_t p0);
+typedef val_t (*global___cha_analysis___ChaContext___reachable_iroutines_t)(val_t p0);
+static const char * const LOCATE_global___cha_analysis___ChaContext___is_iroutine_reachable = "cha_analysis::ChaContext::(reachable_method_analysis::ReachableMethodAnalysis::is_iroutine_reachable)";
+val_t global___cha_analysis___ChaContext___is_iroutine_reachable(val_t p0, val_t p1);
+typedef val_t (*global___cha_analysis___ChaContext___is_iroutine_reachable_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___cha_analysis___ChaContext___is_method_reachable = "cha_analysis::ChaContext::(reachable_method_analysis::ReachableMethodAnalysis::is_method_reachable)";
+val_t global___cha_analysis___ChaContext___is_method_reachable(val_t p0, val_t p1);
+typedef val_t (*global___cha_analysis___ChaContext___is_method_reachable_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___cha_analysis___ChaContext___init = "cha_analysis::ChaContext::init";
+void global___cha_analysis___ChaContext___init(val_t p0, int* init_table);
+typedef void (*global___cha_analysis___ChaContext___init_t)(val_t p0, int* init_table);
+val_t NEW_ChaContext_global___cha_analysis___ChaContext___init();
+static const char * const LOCATE_global___cha_analysis___ChaBuilder___iroutine_to_search = "cha_analysis::ChaBuilder::iroutine_to_search";
+val_t global___cha_analysis___ChaBuilder___iroutine_to_search(val_t p0);
+typedef val_t (*global___cha_analysis___ChaBuilder___iroutine_to_search_t)(val_t p0);
+static const char * const LOCATE_global___cha_analysis___ChaBuilder___context = "cha_analysis::ChaBuilder::context";
+val_t global___cha_analysis___ChaBuilder___context(val_t p0);
+typedef val_t (*global___cha_analysis___ChaBuilder___context_t)(val_t p0);
+static const char * const LOCATE_global___cha_analysis___ChaBuilder___program = "cha_analysis::ChaBuilder::program";
+val_t global___cha_analysis___ChaBuilder___program(val_t p0);
+typedef val_t (*global___cha_analysis___ChaBuilder___program_t)(val_t p0);
+static const char * const LOCATE_global___cha_analysis___ChaBuilder___init = "cha_analysis::ChaBuilder::init";
+void global___cha_analysis___ChaBuilder___init(val_t p0, val_t p1, int* init_table);
+typedef void (*global___cha_analysis___ChaBuilder___init_t)(val_t p0, val_t p1, int* init_table);
+val_t NEW_ChaBuilder_global___cha_analysis___ChaBuilder___init(val_t p0);
+static const char * const LOCATE_global___cha_analysis___ChaBuilder___add_search = "cha_analysis::ChaBuilder::add_search";
+void global___cha_analysis___ChaBuilder___add_search(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+typedef void (*global___cha_analysis___ChaBuilder___add_search_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+      typedef void (*CLOS_OC_global___cha_analysis___ChaBuilder___add_search_1_0)(struct stack_frame_t *);
+      void OC_global___cha_analysis___ChaBuilder___add_search_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+      typedef void (*OC_global___cha_analysis___ChaBuilder___add_search_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+      typedef void (*CLOS_OC_global___cha_analysis___ChaBuilder___add_search_2_0)(struct stack_frame_t *);
+      void OC_global___cha_analysis___ChaBuilder___add_search_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+      typedef void (*OC_global___cha_analysis___ChaBuilder___add_search_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+static const char * const LOCATE_global___cha_analysis___ChaBuilder___work = "cha_analysis::ChaBuilder::work";
+void global___cha_analysis___ChaBuilder___work(val_t p0);
+typedef void (*global___cha_analysis___ChaBuilder___work_t)(val_t p0);
+static const char * const LOCATE_global___cha_analysis___ChaVisitor___builder = "cha_analysis::ChaVisitor::builder";
+val_t global___cha_analysis___ChaVisitor___builder(val_t p0);
+typedef val_t (*global___cha_analysis___ChaVisitor___builder_t)(val_t p0);
+static const char * const LOCATE_global___cha_analysis___ChaVisitor___visit_icode = "cha_analysis::ChaVisitor::(icode_tools::ICodeVisitor::visit_icode)";
+void global___cha_analysis___ChaVisitor___visit_icode(val_t p0, val_t p1);
+typedef void (*global___cha_analysis___ChaVisitor___visit_icode_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___cha_analysis___ChaVisitor___init = "cha_analysis::ChaVisitor::init";
+void global___cha_analysis___ChaVisitor___init(val_t p0, val_t p1, int* init_table);
+typedef void (*global___cha_analysis___ChaVisitor___init_t)(val_t p0, val_t p1, int* init_table);
+val_t NEW_ChaVisitor_global___cha_analysis___ChaVisitor___init(val_t p0);
+#endif
similarity index 69%
rename from c_src/analysis___dead_method_removal._sep.c
rename to c_src/global___dead_method_removal._sep.c
index f5a70b7..7e71c21 100644 (file)
@@ -1,77 +1,77 @@
-/* This C file is generated by NIT to compile module analysis___dead_method_removal. */
-#include "analysis___dead_method_removal._sep.h"
-val_t analysis___dead_method_removal___Program___nb_removed_iroutines(val_t p0){
+/* This C file is generated by NIT to compile module global___dead_method_removal. */
+#include "global___dead_method_removal._sep.h"
+val_t global___dead_method_removal___Program___nb_removed_iroutines(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___dead_method_removal;
+  fra.me.file = LOCATE_global___dead_method_removal;
   fra.me.line = 23;
-  fra.me.meth = LOCATE_analysis___dead_method_removal___Program___nb_removed_iroutines;
+  fra.me.meth = LOCATE_global___dead_method_removal___Program___nb_removed_iroutines;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//dead_method_removal.nit:23 */
-  REGB0 = TAG_Bool(ATTR_analysis___dead_method_removal___Program____nb_removed_iroutines(fra.me.REG[0])!=NIT_NULL);
+  /* global/dead_method_removal.nit:23 */
+  REGB0 = TAG_Bool(ATTR_global___dead_method_removal___Program____nb_removed_iroutines(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_nb_removed_iroutines", LOCATE_analysis___dead_method_removal, 23);
+    nit_abort("Uninitialized attribute %s", "_nb_removed_iroutines", LOCATE_global___dead_method_removal, 23);
   }
-  REGB0 = ATTR_analysis___dead_method_removal___Program____nb_removed_iroutines(fra.me.REG[0]);
+  REGB0 = ATTR_global___dead_method_removal___Program____nb_removed_iroutines(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
-val_t analysis___dead_method_removal___Program___nb_not_removed_iroutines(val_t p0){
+val_t global___dead_method_removal___Program___nb_not_removed_iroutines(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___dead_method_removal;
+  fra.me.file = LOCATE_global___dead_method_removal;
   fra.me.line = 24;
-  fra.me.meth = LOCATE_analysis___dead_method_removal___Program___nb_not_removed_iroutines;
+  fra.me.meth = LOCATE_global___dead_method_removal___Program___nb_not_removed_iroutines;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//dead_method_removal.nit:24 */
-  REGB0 = TAG_Bool(ATTR_analysis___dead_method_removal___Program____nb_not_removed_iroutines(fra.me.REG[0])!=NIT_NULL);
+  /* global/dead_method_removal.nit:24 */
+  REGB0 = TAG_Bool(ATTR_global___dead_method_removal___Program____nb_not_removed_iroutines(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_nb_not_removed_iroutines", LOCATE_analysis___dead_method_removal, 24);
+    nit_abort("Uninitialized attribute %s", "_nb_not_removed_iroutines", LOCATE_global___dead_method_removal, 24);
   }
-  REGB0 = ATTR_analysis___dead_method_removal___Program____nb_not_removed_iroutines(fra.me.REG[0]);
+  REGB0 = ATTR_global___dead_method_removal___Program____nb_not_removed_iroutines(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
-void analysis___dead_method_removal___Program___optimize_dead_methods(val_t p0){
+void global___dead_method_removal___Program___optimize_dead_methods(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___dead_method_removal;
+  fra.me.file = LOCATE_global___dead_method_removal;
   fra.me.line = 26;
-  fra.me.meth = LOCATE_analysis___dead_method_removal___Program___optimize_dead_methods;
+  fra.me.meth = LOCATE_global___dead_method_removal___Program___optimize_dead_methods;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  CALL_program___Program___with_each_iroutines(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_analysis___dead_method_removal___Program___optimize_dead_methods_1));
+  CALL_program___Program___with_each_iroutines(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_global___dead_method_removal___Program___optimize_dead_methods_1));
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_analysis___dead_method_removal___Program___optimize_dead_methods_1(struct stack_frame_t *closctx, val_t p0, val_t p1){
+  void OC_global___dead_method_removal___Program___optimize_dead_methods_1(struct stack_frame_t *closctx, val_t p0, val_t p1){
     struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
     val_t REGB0;
     val_t REGB1;
     val_t tmp;
-    /* ./analysis//dead_method_removal.nit:29 */
+    /* global/dead_method_removal.nit:29 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_analysis___dead_method_removal;
+    fra.me.file = LOCATE_global___dead_method_removal;
     fra.me.line = 29;
-    fra.me.meth = LOCATE_analysis___dead_method_removal___Program___optimize_dead_methods;
+    fra.me.meth = LOCATE_global___dead_method_removal___Program___optimize_dead_methods;
     fra.me.has_broke = 0;
     fra.me.REG_size = 3;
     fra.me.nitni_local_ref_head = NULL;
@@ -80,37 +80,37 @@ void analysis___dead_method_removal___Program___optimize_dead_methods(val_t p0){
     fra.me.REG[2] = NIT_NULL;
     fra.me.REG[0] = p0;
     fra.me.REG[1] = p1;
-    /* ./analysis//dead_method_removal.nit:30 */
-    fra.me.REG[2] = CALL_analysis___reachable_method_analysis___Program___rma(closctx->REG[0])(closctx->REG[0]);
+    /* global/dead_method_removal.nit:30 */
+    fra.me.REG[2] = CALL_global___reachable_method_analysis___Program___rma(closctx->REG[0])(closctx->REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___dead_method_removal, 30);
+      nit_abort("Reciever is null", NULL, LOCATE_global___dead_method_removal, 30);
     }
-    REGB0 = CALL_analysis___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+    REGB0 = CALL_global___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./analysis//dead_method_removal.nit:31 */
-      CALL_analysis___dead_method_removal___IRoutine___set_not_reachable(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-      /* ./analysis//dead_method_removal.nit:32 */
-      REGB0 = CALL_analysis___dead_method_removal___Program___nb_removed_iroutines(closctx->REG[0])(closctx->REG[0]);
+      /* global/dead_method_removal.nit:31 */
+      CALL_global___dead_method_removal___IRoutine___set_not_reachable(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+      /* global/dead_method_removal.nit:32 */
+      REGB0 = CALL_global___dead_method_removal___Program___nb_removed_iroutines(closctx->REG[0])(closctx->REG[0]);
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./analysis//dead_method_removal.nit:32 */
-      ATTR_analysis___dead_method_removal___Program____nb_removed_iroutines(closctx->REG[0]) = REGB1;
+      /* global/dead_method_removal.nit:32 */
+      ATTR_global___dead_method_removal___Program____nb_removed_iroutines(closctx->REG[0]) = REGB1;
     } else {
-      /* ./analysis//dead_method_removal.nit:34 */
-      REGB1 = CALL_analysis___dead_method_removal___Program___nb_not_removed_iroutines(closctx->REG[0])(closctx->REG[0]);
+      /* global/dead_method_removal.nit:34 */
+      REGB1 = CALL_global___dead_method_removal___Program___nb_not_removed_iroutines(closctx->REG[0])(closctx->REG[0]);
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
-      /* ./analysis//dead_method_removal.nit:34 */
-      ATTR_analysis___dead_method_removal___Program____nb_not_removed_iroutines(closctx->REG[0]) = REGB0;
+      /* global/dead_method_removal.nit:34 */
+      ATTR_global___dead_method_removal___Program____nb_not_removed_iroutines(closctx->REG[0]) = REGB0;
     }
     stack_frame_head = fra.me.prev;
     return;
   }
-void analysis___dead_method_removal___Program___dump_dead_method_optimization(val_t p0, val_t p1){
+void global___dead_method_removal___Program___dump_dead_method_optimization(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
@@ -122,9 +122,9 @@ void analysis___dead_method_removal___Program___dump_dead_method_optimization(va
   static val_t once_value_6; /* Once value */
   static val_t once_value_7; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___dead_method_removal;
+  fra.me.file = LOCATE_global___dead_method_removal;
   fra.me.line = 39;
-  fra.me.meth = LOCATE_analysis___dead_method_removal___Program___dump_dead_method_optimization;
+  fra.me.meth = LOCATE_global___dead_method_removal___Program___dump_dead_method_optimization;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -134,7 +134,7 @@ void analysis___dead_method_removal___Program___dump_dead_method_optimization(va
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//dead_method_removal.nit:41 */
+  /* global/dead_method_removal.nit:41 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -171,7 +171,7 @@ void analysis___dead_method_removal___Program___dump_dead_method_optimization(va
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[2]);
-  /* ./analysis//dead_method_removal.nit:43 */
+  /* global/dead_method_removal.nit:43 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_4) {
@@ -183,7 +183,7 @@ void analysis___dead_method_removal___Program___dump_dead_method_optimization(va
   } else fra.me.REG[3] = once_value_4;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  REGB0 = CALL_analysis___dead_method_removal___Program___nb_removed_iroutines(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = CALL_global___dead_method_removal___Program___nb_removed_iroutines(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   if (!once_value_5) {
@@ -197,7 +197,7 @@ void analysis___dead_method_removal___Program___dump_dead_method_optimization(va
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./analysis//dead_method_removal.nit:44 */
+  /* global/dead_method_removal.nit:44 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_6) {
@@ -209,7 +209,7 @@ void analysis___dead_method_removal___Program___dump_dead_method_optimization(va
   } else fra.me.REG[3] = once_value_6;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  REGB0 = CALL_analysis___dead_method_removal___Program___nb_not_removed_iroutines(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = CALL_global___dead_method_removal___Program___nb_not_removed_iroutines(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   if (!once_value_7) {
@@ -223,20 +223,20 @@ void analysis___dead_method_removal___Program___dump_dead_method_optimization(va
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./analysis//dead_method_removal.nit:46 */
+  /* global/dead_method_removal.nit:46 */
   CALL_standard___stream___IOS___close(fra.me.REG[2])(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
 }
-void analysis___dead_method_removal___IRoutine___set_not_reachable(val_t p0, val_t p1){
+void global___dead_method_removal___IRoutine___set_not_reachable(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___dead_method_removal;
+  fra.me.file = LOCATE_global___dead_method_removal;
   fra.me.line = 51;
-  fra.me.meth = LOCATE_analysis___dead_method_removal___IRoutine___set_not_reachable;
+  fra.me.meth = LOCATE_global___dead_method_removal___IRoutine___set_not_reachable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
@@ -245,13 +245,13 @@ void analysis___dead_method_removal___IRoutine___set_not_reachable(val_t p0, val
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//dead_method_removal.nit:53 */
+  /* global/dead_method_removal.nit:53 */
   fra.me.REG[0] = NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init(fra.me.REG[1], fra.me.REG[0]);
-  /* ./analysis//dead_method_removal.nit:54 */
+  /* global/dead_method_removal.nit:54 */
   fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./analysis//dead_method_removal.nit:55 */
+  /* global/dead_method_removal.nit:55 */
   REGB0 = TAG_Int(0);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
diff --git a/c_src/global___dead_method_removal._sep.h b/c_src/global___dead_method_removal._sep.h
new file mode 100644 (file)
index 0000000..92d7897
--- /dev/null
@@ -0,0 +1,34 @@
+/* This C header file is generated by NIT to compile modules and programs that requires ./global/dead_method_removal. */
+#ifndef global___dead_method_removal_sep
+#define global___dead_method_removal_sep
+#include "global___reachable_method_analysis._sep.h"
+#include <nit_common.h>
+extern const char *LOCATE_global___dead_method_removal;
+extern const int SFT_global___dead_method_removal[];
+#define ATTR_global___dead_method_removal___Program____nb_removed_iroutines(recv) ATTR(recv, (SFT_global___dead_method_removal[0] + 0))
+#define ATTR_global___dead_method_removal___Program____nb_not_removed_iroutines(recv) ATTR(recv, (SFT_global___dead_method_removal[0] + 1))
+#define CALL_global___dead_method_removal___Program___nb_removed_iroutines(recv) ((global___dead_method_removal___Program___nb_removed_iroutines_t)CALL((recv), (SFT_global___dead_method_removal[1] + 0)))
+#define CALL_global___dead_method_removal___Program___nb_not_removed_iroutines(recv) ((global___dead_method_removal___Program___nb_not_removed_iroutines_t)CALL((recv), (SFT_global___dead_method_removal[1] + 1)))
+#define CALL_global___dead_method_removal___Program___optimize_dead_methods(recv) ((global___dead_method_removal___Program___optimize_dead_methods_t)CALL((recv), (SFT_global___dead_method_removal[1] + 2)))
+#define CALL_global___dead_method_removal___Program___dump_dead_method_optimization(recv) ((global___dead_method_removal___Program___dump_dead_method_optimization_t)CALL((recv), (SFT_global___dead_method_removal[1] + 3)))
+#define CALL_global___dead_method_removal___IRoutine___set_not_reachable(recv) ((global___dead_method_removal___IRoutine___set_not_reachable_t)CALL((recv), (SFT_global___dead_method_removal[2] + 0)))
+static const char * const LOCATE_global___dead_method_removal___Program___nb_removed_iroutines = "dead_method_removal::Program::nb_removed_iroutines";
+val_t global___dead_method_removal___Program___nb_removed_iroutines(val_t p0);
+typedef val_t (*global___dead_method_removal___Program___nb_removed_iroutines_t)(val_t p0);
+static const char * const LOCATE_global___dead_method_removal___Program___nb_not_removed_iroutines = "dead_method_removal::Program::nb_not_removed_iroutines";
+val_t global___dead_method_removal___Program___nb_not_removed_iroutines(val_t p0);
+typedef val_t (*global___dead_method_removal___Program___nb_not_removed_iroutines_t)(val_t p0);
+static const char * const LOCATE_global___dead_method_removal___Program___optimize_dead_methods = "dead_method_removal::Program::optimize_dead_methods";
+void global___dead_method_removal___Program___optimize_dead_methods(val_t p0);
+typedef void (*global___dead_method_removal___Program___optimize_dead_methods_t)(val_t p0);
+  void OC_global___dead_method_removal___Program___optimize_dead_methods_1(struct stack_frame_t *closctx, val_t p0, val_t p1);
+  typedef void (*OC_global___dead_method_removal___Program___optimize_dead_methods_1_t)(struct stack_frame_t *closctx, val_t p0, val_t p1);
+static const char * const LOCATE_global___dead_method_removal___Program___dump_dead_method_optimization = "dead_method_removal::Program::dump_dead_method_optimization";
+void global___dead_method_removal___Program___dump_dead_method_optimization(val_t p0, val_t p1);
+typedef void (*global___dead_method_removal___Program___dump_dead_method_optimization_t)(val_t p0, val_t p1);
+val_t NEW_Program_program___Program___init(val_t p0, val_t p1);
+static const char * const LOCATE_global___dead_method_removal___IRoutine___set_not_reachable = "dead_method_removal::IRoutine::set_not_reachable";
+void global___dead_method_removal___IRoutine___set_not_reachable(val_t p0, val_t p1);
+typedef void (*global___dead_method_removal___IRoutine___set_not_reachable_t)(val_t p0, val_t p1);
+val_t NEW_IRoutine_icode___icode_base___IRoutine___init(val_t p0, val_t p1);
+#endif
similarity index 67%
rename from c_src/analysis___inline_get_and_set._sep.c
rename to c_src/global___inline_get_and_set._sep.c
index e66eb0c..b99bbaf 100644 (file)
@@ -1,6 +1,6 @@
-/* This C file is generated by NIT to compile module analysis___inline_get_and_set. */
-#include "analysis___inline_get_and_set._sep.h"
-void analysis___inline_get_and_set___Program___dump_inline_get_set(val_t p0, val_t p1){
+/* This C file is generated by NIT to compile module global___inline_get_and_set. */
+#include "global___inline_get_and_set._sep.h"
+void global___inline_get_and_set___Program___dump_inline_get_set(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
@@ -10,9 +10,9 @@ void analysis___inline_get_and_set___Program___dump_inline_get_set(val_t p0, val
   static val_t once_value_4; /* Once value */
   static val_t once_value_5; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___inline_get_and_set;
+  fra.me.file = LOCATE_global___inline_get_and_set;
   fra.me.line = 28;
-  fra.me.meth = LOCATE_analysis___inline_get_and_set___Program___dump_inline_get_set;
+  fra.me.meth = LOCATE_global___inline_get_and_set___Program___dump_inline_get_set;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -22,7 +22,7 @@ void analysis___inline_get_and_set___Program___dump_inline_get_set(val_t p0, val
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//inline_get_and_set.nit:30 */
+  /* global/inline_get_and_set.nit:30 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -59,7 +59,7 @@ void analysis___inline_get_and_set___Program___dump_inline_get_set(val_t p0, val
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[2]);
-  /* ./analysis//inline_get_and_set.nit:32 */
+  /* global/inline_get_and_set.nit:32 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_4) {
@@ -71,12 +71,12 @@ void analysis___inline_get_and_set___Program___dump_inline_get_set(val_t p0, val
   } else fra.me.REG[3] = once_value_4;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  REGB0 = TAG_Bool(ATTR_analysis___inline_get_and_set___Program____number_getter_setter_inlined(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___inline_get_and_set___Program____number_getter_setter_inlined(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_number_getter_setter_inlined", LOCATE_analysis___inline_get_and_set, 32);
+    nit_abort("Uninitialized attribute %s", "_number_getter_setter_inlined", LOCATE_global___inline_get_and_set, 32);
   }
-  REGB0 = ATTR_analysis___inline_get_and_set___Program____number_getter_setter_inlined(fra.me.REG[0]);
+  REGB0 = ATTR_global___inline_get_and_set___Program____number_getter_setter_inlined(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   if (!once_value_5) {
@@ -90,37 +90,37 @@ void analysis___inline_get_and_set___Program___dump_inline_get_set(val_t p0, val
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./analysis//inline_get_and_set.nit:34 */
+  /* global/inline_get_and_set.nit:34 */
   CALL_standard___stream___IOS___close(fra.me.REG[2])(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
 }
-void analysis___inline_get_and_set___Program___inline_get_set(val_t p0){
+void global___inline_get_and_set___Program___inline_get_set(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___inline_get_and_set;
+  fra.me.file = LOCATE_global___inline_get_and_set;
   fra.me.line = 37;
-  fra.me.meth = LOCATE_analysis___inline_get_and_set___Program___inline_get_set;
+  fra.me.meth = LOCATE_global___inline_get_and_set___Program___inline_get_set;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  CALL_program___Program___with_each_iroutines(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_analysis___inline_get_and_set___Program___inline_get_set_1));
+  CALL_program___Program___with_each_iroutines(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_global___inline_get_and_set___Program___inline_get_set_1));
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_analysis___inline_get_and_set___Program___inline_get_set_1(struct stack_frame_t *closctx, val_t p0, val_t p1){
+  void OC_global___inline_get_and_set___Program___inline_get_set_1(struct stack_frame_t *closctx, val_t p0, val_t p1){
     struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
     val_t REGB0;
     val_t REGB1;
     val_t tmp;
-    /* ./analysis//inline_get_and_set.nit:38 */
+    /* global/inline_get_and_set.nit:38 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_analysis___inline_get_and_set;
+    fra.me.file = LOCATE_global___inline_get_and_set;
     fra.me.line = 38;
-    fra.me.meth = LOCATE_analysis___inline_get_and_set___Program___inline_get_set;
+    fra.me.meth = LOCATE_global___inline_get_and_set___Program___inline_get_set;
     fra.me.has_broke = 0;
     fra.me.REG_size = 2;
     fra.me.nitni_local_ref_head = NULL;
@@ -128,52 +128,52 @@ void analysis___inline_get_and_set___Program___inline_get_set(val_t p0){
     fra.me.REG[1] = NIT_NULL;
     fra.me.REG[0] = p0;
     fra.me.REG[1] = p1;
-    /* ./analysis//inline_get_and_set.nit:39 */
-    fra.me.REG[1] = NEW_InlineGetSetVisitor_analysis___inline_get_and_set___InlineGetSetVisitor___init(fra.me.REG[1], fra.me.REG[0]);
-    /* ./analysis//inline_get_and_set.nit:40 */
+    /* global/inline_get_and_set.nit:39 */
+    fra.me.REG[1] = NEW_InlineGetSetVisitor_global___inline_get_and_set___InlineGetSetVisitor___init(fra.me.REG[1], fra.me.REG[0]);
+    /* global/inline_get_and_set.nit:40 */
     CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./analysis//inline_get_and_set.nit:42 */
-    REGB0 = ATTR_analysis___inline_get_and_set___Program____number_getter_setter_inlined(closctx->REG[0]);
-    REGB1 = CALL_analysis___inline_get_and_set___InlineGetSetVisitor___number_inlined(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* global/inline_get_and_set.nit:42 */
+    REGB0 = ATTR_global___inline_get_and_set___Program____number_getter_setter_inlined(closctx->REG[0]);
+    REGB1 = CALL_global___inline_get_and_set___InlineGetSetVisitor___number_inlined(fra.me.REG[1])(fra.me.REG[1]);
+    /* ../lib/standard/kernel.nit:235 */
     REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-    /* ./analysis//inline_get_and_set.nit:42 */
-    ATTR_analysis___inline_get_and_set___Program____number_getter_setter_inlined(closctx->REG[0]) = REGB1;
+    /* global/inline_get_and_set.nit:42 */
+    ATTR_global___inline_get_and_set___Program____number_getter_setter_inlined(closctx->REG[0]) = REGB1;
     stack_frame_head = fra.me.prev;
     return;
   }
-val_t analysis___inline_get_and_set___InlineGetSetVisitor___number_inlined(val_t p0){
+val_t global___inline_get_and_set___InlineGetSetVisitor___number_inlined(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___inline_get_and_set;
+  fra.me.file = LOCATE_global___inline_get_and_set;
   fra.me.line = 50;
-  fra.me.meth = LOCATE_analysis___inline_get_and_set___InlineGetSetVisitor___number_inlined;
+  fra.me.meth = LOCATE_global___inline_get_and_set___InlineGetSetVisitor___number_inlined;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//inline_get_and_set.nit:50 */
-  REGB0 = TAG_Bool(ATTR_analysis___inline_get_and_set___InlineGetSetVisitor____number_inlined(fra.me.REG[0])!=NIT_NULL);
+  /* global/inline_get_and_set.nit:50 */
+  REGB0 = TAG_Bool(ATTR_global___inline_get_and_set___InlineGetSetVisitor____number_inlined(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_number_inlined", LOCATE_analysis___inline_get_and_set, 50);
+    nit_abort("Uninitialized attribute %s", "_number_inlined", LOCATE_global___inline_get_and_set, 50);
   }
-  REGB0 = ATTR_analysis___inline_get_and_set___InlineGetSetVisitor____number_inlined(fra.me.REG[0]);
+  REGB0 = ATTR_global___inline_get_and_set___InlineGetSetVisitor____number_inlined(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
-void analysis___inline_get_and_set___InlineGetSetVisitor___visit_icode(val_t p0, val_t p1){
+void global___inline_get_and_set___InlineGetSetVisitor___visit_icode(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___inline_get_and_set;
+  fra.me.file = LOCATE_global___inline_get_and_set;
   fra.me.line = 52;
-  fra.me.meth = LOCATE_analysis___inline_get_and_set___InlineGetSetVisitor___visit_icode;
+  fra.me.meth = LOCATE_global___inline_get_and_set___InlineGetSetVisitor___visit_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
   fra.me.nitni_local_ref_head = NULL;
@@ -189,15 +189,15 @@ void analysis___inline_get_and_set___InlineGetSetVisitor___visit_icode(val_t p0,
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//inline_get_and_set.nit:52 */
+  /* global/inline_get_and_set.nit:52 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./analysis//inline_get_and_set.nit:55 */
+  /* global/inline_get_and_set.nit:55 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___ICall, ID_icode___icode_base___ICall)) /*cast ICall*/;
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_get_and_set, 55);
+      nit_abort("Reciever is null", NULL, LOCATE_global___inline_get_and_set, 55);
     }
     REGB0 = CALL_icode___icode_base___IAbsCall___is_explicit_from_extern(fra.me.REG[3])(fra.me.REG[3]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
@@ -206,15 +206,15 @@ void analysis___inline_get_and_set___InlineGetSetVisitor___visit_icode(val_t p0,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//inline_get_and_set.nit:56 */
+    /* global/inline_get_and_set.nit:56 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_get_and_set, 56);
+      nit_abort("Reciever is null", NULL, LOCATE_global___inline_get_and_set, 56);
     }
     fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
-    /* ./analysis//inline_get_and_set.nit:57 */
+    /* global/inline_get_and_set.nit:57 */
     fra.me.REG[5] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[4])(fra.me.REG[4]);
-    /* ./analysis//inline_get_and_set.nit:58 */
+    /* global/inline_get_and_set.nit:58 */
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -235,45 +235,45 @@ void analysis___inline_get_and_set___InlineGetSetVisitor___visit_icode(val_t p0,
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./analysis//inline_get_and_set.nit:59 */
-      REGB0 = TAG_Bool(ATTR_analysis___inline_get_and_set___InlineGetSetVisitor____icb(fra.me.REG[2])!=NIT_NULL);
+      /* global/inline_get_and_set.nit:59 */
+      REGB0 = TAG_Bool(ATTR_global___inline_get_and_set___InlineGetSetVisitor____icb(fra.me.REG[2])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_icb", LOCATE_analysis___inline_get_and_set, 59);
+        nit_abort("Uninitialized attribute %s", "_icb", LOCATE_global___inline_get_and_set, 59);
       }
-      fra.me.REG[4] = ATTR_analysis___inline_get_and_set___InlineGetSetVisitor____icb(fra.me.REG[2]);
-      /* ./analysis//inline_get_and_set.nit:60 */
+      fra.me.REG[4] = ATTR_global___inline_get_and_set___InlineGetSetVisitor____icb(fra.me.REG[2]);
+      /* global/inline_get_and_set.nit:60 */
       fra.me.REG[6] = NEW_ISeq_icode___icode_base___ISeq___init();
-      /* ./analysis//inline_get_and_set.nit:61 */
+      /* global/inline_get_and_set.nit:61 */
       fra.me.REG[7] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[4])(fra.me.REG[4]);
-      /* ./analysis//inline_get_and_set.nit:62 */
+      /* global/inline_get_and_set.nit:62 */
       CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-      /* ./analysis//inline_get_and_set.nit:63 */
+      /* global/inline_get_and_set.nit:63 */
       fra.me.REG[8] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
       REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_get_and_set, 63);
+        nit_abort("Reciever is null", NULL, LOCATE_global___inline_get_and_set, 63);
       }
       CALL_standard___collection___list___ListIterator___insert_before(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6]);
-      /* ./analysis//inline_get_and_set.nit:64 */
+      /* global/inline_get_and_set.nit:64 */
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_get_and_set, 64);
+        nit_abort("Reciever is null", NULL, LOCATE_global___inline_get_and_set, 64);
       }
       fra.me.REG[8] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[3])(fra.me.REG[3]);
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_get_and_set, 64);
+        nit_abort("Reciever is null", NULL, LOCATE_global___inline_get_and_set, 64);
       }
       fra.me.REG[9] = CALL_icode___icode_base___ICodeN___closure_defs(fra.me.REG[3])(fra.me.REG[3]);
       fra.me.REG[9] = CALL_icode___icode_tools___ICodeBuilder___inline_routine(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5], fra.me.REG[8], fra.me.REG[9]);
-      /* ./analysis//inline_get_and_set.nit:65 */
+      /* global/inline_get_and_set.nit:65 */
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_get_and_set, 65);
+        nit_abort("Reciever is null", NULL, LOCATE_global___inline_get_and_set, 65);
       }
       fra.me.REG[3] = CALL_icode___icode_base___ICode___result(fra.me.REG[3])(fra.me.REG[3]);
-      /* ./analysis//inline_get_and_set.nit:66 */
+      /* global/inline_get_and_set.nit:66 */
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -288,7 +288,7 @@ void analysis___inline_get_and_set___InlineGetSetVisitor___visit_icode(val_t p0,
       }
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
-        /* ./analysis//inline_get_and_set.nit:67 */
+        /* global/inline_get_and_set.nit:67 */
         REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
         } else {
@@ -304,51 +304,51 @@ void analysis___inline_get_and_set___InlineGetSetVisitor___visit_icode(val_t p0,
         REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
         if (UNTAG_Bool(REGB0)) {
         } else {
-          nit_abort("Assert failed", NULL, LOCATE_analysis___inline_get_and_set, 67);
+          nit_abort("Assert failed", NULL, LOCATE_global___inline_get_and_set, 67);
         }
-        /* ./analysis//inline_get_and_set.nit:68 */
+        /* global/inline_get_and_set.nit:68 */
         fra.me.REG[8] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
         fra.me.REG[9] = NEW_IMove_icode___icode_base___IMove___init(fra.me.REG[3], fra.me.REG[9]);
         REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
-          nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_get_and_set, 68);
+          nit_abort("Reciever is null", NULL, LOCATE_global___inline_get_and_set, 68);
         }
         CALL_standard___collection___list___ListIterator___insert_before(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
       }
-      /* ./analysis//inline_get_and_set.nit:70 */
+      /* global/inline_get_and_set.nit:70 */
       fra.me.REG[9] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
       REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_get_and_set, 70);
+        nit_abort("Reciever is null", NULL, LOCATE_global___inline_get_and_set, 70);
       }
       CALL_standard___collection___list___ListIterator___delete(fra.me.REG[9])(fra.me.REG[9]);
-      /* ./analysis//inline_get_and_set.nit:71 */
+      /* global/inline_get_and_set.nit:71 */
       CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
-      /* ./analysis//inline_get_and_set.nit:72 */
-      REGB0 = ATTR_analysis___inline_get_and_set___InlineGetSetVisitor____number_inlined(fra.me.REG[2]);
+      /* global/inline_get_and_set.nit:72 */
+      REGB0 = ATTR_global___inline_get_and_set___InlineGetSetVisitor____number_inlined(fra.me.REG[2]);
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./analysis//inline_get_and_set.nit:72 */
-      ATTR_analysis___inline_get_and_set___InlineGetSetVisitor____number_inlined(fra.me.REG[2]) = REGB1;
-      /* ./analysis//inline_get_and_set.nit:73 */
+      /* global/inline_get_and_set.nit:72 */
+      ATTR_global___inline_get_and_set___InlineGetSetVisitor____number_inlined(fra.me.REG[2]) = REGB1;
+      /* global/inline_get_and_set.nit:73 */
       CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
     }
   }
-  /* ./analysis//inline_get_and_set.nit:76 */
-  CALL_SUPER_analysis___inline_get_and_set___InlineGetSetVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  /* global/inline_get_and_set.nit:76 */
+  CALL_SUPER_global___inline_get_and_set___InlineGetSetVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
 }
-void analysis___inline_get_and_set___InlineGetSetVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___inline_get_and_set___InlineGetSetVisitor].i;
+void global___inline_get_and_set___InlineGetSetVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
+  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___inline_get_and_set___InlineGetSetVisitor].i;
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t tmp;
   if (init_table[itpos0]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___inline_get_and_set;
+  fra.me.file = LOCATE_global___inline_get_and_set;
   fra.me.line = 79;
-  fra.me.meth = LOCATE_analysis___inline_get_and_set___InlineGetSetVisitor___init;
+  fra.me.meth = LOCATE_global___inline_get_and_set___InlineGetSetVisitor___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -359,12 +359,12 @@ void analysis___inline_get_and_set___InlineGetSetVisitor___init(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./analysis//inline_get_and_set.nit:79 */
+  /* global/inline_get_and_set.nit:79 */
   fra.me.REG[3] = fra.me.REG[0];
   CALL_icode___icode_tools___ICodeVisitor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./analysis//inline_get_and_set.nit:81 */
+  /* global/inline_get_and_set.nit:81 */
   fra.me.REG[2] = NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_analysis___inline_get_and_set___InlineGetSetVisitor____icb(fra.me.REG[3]) = fra.me.REG[2];
+  ATTR_global___inline_get_and_set___InlineGetSetVisitor____icb(fra.me.REG[3]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
   return;
diff --git a/c_src/global___inline_get_and_set._sep.h b/c_src/global___inline_get_and_set._sep.h
new file mode 100644 (file)
index 0000000..2e47bb3
--- /dev/null
@@ -0,0 +1,41 @@
+/* This C header file is generated by NIT to compile modules and programs that requires ./global/inline_get_and_set. */
+#ifndef global___inline_get_and_set_sep
+#define global___inline_get_and_set_sep
+#include "syntax._sep.h"
+#include "program._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_global___inline_get_and_set___InlineGetSetVisitor[];
+extern const char *LOCATE_global___inline_get_and_set;
+extern const int SFT_global___inline_get_and_set[];
+#define ATTR_global___inline_get_and_set___Program____number_getter_setter_inlined(recv) ATTR(recv, (SFT_global___inline_get_and_set[0] + 0))
+#define CALL_global___inline_get_and_set___Program___dump_inline_get_set(recv) ((global___inline_get_and_set___Program___dump_inline_get_set_t)CALL((recv), (SFT_global___inline_get_and_set[1] + 0)))
+#define CALL_global___inline_get_and_set___Program___inline_get_set(recv) ((global___inline_get_and_set___Program___inline_get_set_t)CALL((recv), (SFT_global___inline_get_and_set[1] + 1)))
+#define ID_global___inline_get_and_set___InlineGetSetVisitor (SFT_global___inline_get_and_set[2])
+#define COLOR_global___inline_get_and_set___InlineGetSetVisitor (SFT_global___inline_get_and_set[3])
+#define ATTR_global___inline_get_and_set___InlineGetSetVisitor____icb(recv) ATTR(recv, (SFT_global___inline_get_and_set[4] + 0))
+#define ATTR_global___inline_get_and_set___InlineGetSetVisitor____number_inlined(recv) ATTR(recv, (SFT_global___inline_get_and_set[4] + 1))
+#define INIT_TABLE_POS_global___inline_get_and_set___InlineGetSetVisitor (SFT_global___inline_get_and_set[5] + 0)
+#define CALL_global___inline_get_and_set___InlineGetSetVisitor___number_inlined(recv) ((global___inline_get_and_set___InlineGetSetVisitor___number_inlined_t)CALL((recv), (SFT_global___inline_get_and_set[5] + 1)))
+#define CALL_SUPER_global___inline_get_and_set___InlineGetSetVisitor___visit_icode(recv) ((global___inline_get_and_set___InlineGetSetVisitor___visit_icode_t)CALL((recv), (SFT_global___inline_get_and_set[5] + 2)))
+#define CALL_global___inline_get_and_set___InlineGetSetVisitor___init(recv) ((global___inline_get_and_set___InlineGetSetVisitor___init_t)CALL((recv), (SFT_global___inline_get_and_set[5] + 3)))
+static const char * const LOCATE_global___inline_get_and_set___Program___dump_inline_get_set = "inline_get_and_set::Program::dump_inline_get_set";
+void global___inline_get_and_set___Program___dump_inline_get_set(val_t p0, val_t p1);
+typedef void (*global___inline_get_and_set___Program___dump_inline_get_set_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___inline_get_and_set___Program___inline_get_set = "inline_get_and_set::Program::inline_get_set";
+void global___inline_get_and_set___Program___inline_get_set(val_t p0);
+typedef void (*global___inline_get_and_set___Program___inline_get_set_t)(val_t p0);
+  void OC_global___inline_get_and_set___Program___inline_get_set_1(struct stack_frame_t *closctx, val_t p0, val_t p1);
+  typedef void (*OC_global___inline_get_and_set___Program___inline_get_set_1_t)(struct stack_frame_t *closctx, val_t p0, val_t p1);
+val_t NEW_Program_program___Program___init(val_t p0, val_t p1);
+static const char * const LOCATE_global___inline_get_and_set___InlineGetSetVisitor___number_inlined = "inline_get_and_set::InlineGetSetVisitor::number_inlined";
+val_t global___inline_get_and_set___InlineGetSetVisitor___number_inlined(val_t p0);
+typedef val_t (*global___inline_get_and_set___InlineGetSetVisitor___number_inlined_t)(val_t p0);
+static const char * const LOCATE_global___inline_get_and_set___InlineGetSetVisitor___visit_icode = "inline_get_and_set::InlineGetSetVisitor::(icode_tools::ICodeVisitor::visit_icode)";
+void global___inline_get_and_set___InlineGetSetVisitor___visit_icode(val_t p0, val_t p1);
+typedef void (*global___inline_get_and_set___InlineGetSetVisitor___visit_icode_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___inline_get_and_set___InlineGetSetVisitor___init = "inline_get_and_set::InlineGetSetVisitor::init";
+void global___inline_get_and_set___InlineGetSetVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table);
+typedef void (*global___inline_get_and_set___InlineGetSetVisitor___init_t)(val_t p0, val_t p1, val_t p2, int* init_table);
+val_t NEW_InlineGetSetVisitor_global___inline_get_and_set___InlineGetSetVisitor___init(val_t p0, val_t p1);
+#endif
@@ -1,29 +1,29 @@
-/* This C file is generated by NIT to compile module analysis___instantiated_type_analysis. */
-#include "analysis___instantiated_type_analysis._sep.h"
-val_t analysis___instantiated_type_analysis___Program___ita(val_t p0){
+/* This C file is generated by NIT to compile module global___instantiated_type_analysis. */
+#include "global___instantiated_type_analysis._sep.h"
+val_t global___instantiated_type_analysis___Program___ita(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___instantiated_type_analysis;
+  fra.me.file = LOCATE_global___instantiated_type_analysis;
   fra.me.line = 23;
-  fra.me.meth = LOCATE_analysis___instantiated_type_analysis___Program___ita;
+  fra.me.meth = LOCATE_global___instantiated_type_analysis___Program___ita;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//instantiated_type_analysis.nit:23 */
-  fra.me.REG[0] = ATTR_analysis___instantiated_type_analysis___Program____ita(fra.me.REG[0]);
+  /* global/instantiated_type_analysis.nit:23 */
+  fra.me.REG[0] = ATTR_global___instantiated_type_analysis___Program____ita(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-void analysis___instantiated_type_analysis___Program___ita__eq(val_t p0, val_t p1){
+void global___instantiated_type_analysis___Program___ita__eq(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___instantiated_type_analysis;
+  fra.me.file = LOCATE_global___instantiated_type_analysis;
   fra.me.line = 23;
-  fra.me.meth = LOCATE_analysis___instantiated_type_analysis___Program___ita__eq;
+  fra.me.meth = LOCATE_global___instantiated_type_analysis___Program___ita__eq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
@@ -31,12 +31,12 @@ void analysis___instantiated_type_analysis___Program___ita__eq(val_t p0, val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//instantiated_type_analysis.nit:23 */
-  ATTR_analysis___instantiated_type_analysis___Program____ita(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/instantiated_type_analysis.nit:23 */
+  ATTR_global___instantiated_type_analysis___Program____ita(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
 }
-void analysis___instantiated_type_analysis___Program___dump_instantiated_types(val_t p0, val_t p1){
+void global___instantiated_type_analysis___Program___dump_instantiated_types(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
@@ -44,9 +44,9 @@ void analysis___instantiated_type_analysis___Program___dump_instantiated_types(v
   static val_t once_value_2; /* Once value */
   static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___instantiated_type_analysis;
+  fra.me.file = LOCATE_global___instantiated_type_analysis;
   fra.me.line = 26;
-  fra.me.meth = LOCATE_analysis___instantiated_type_analysis___Program___dump_instantiated_types;
+  fra.me.meth = LOCATE_global___instantiated_type_analysis___Program___dump_instantiated_types;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -56,7 +56,7 @@ void analysis___instantiated_type_analysis___Program___dump_instantiated_types(v
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//instantiated_type_analysis.nit:28 */
+  /* global/instantiated_type_analysis.nit:28 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -93,23 +93,23 @@ void analysis___instantiated_type_analysis___Program___dump_instantiated_types(v
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[2]);
-  CALL_program___Program___with_each_live_local_classes(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_analysis___instantiated_type_analysis___Program___dump_instantiated_types_4));
-  /* ./analysis//instantiated_type_analysis.nit:32 */
+  CALL_program___Program___with_each_live_local_classes(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_global___instantiated_type_analysis___Program___dump_instantiated_types_4));
+  /* global/instantiated_type_analysis.nit:32 */
   CALL_standard___stream___IOS___close(fra.me.REG[2])(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_analysis___instantiated_type_analysis___Program___dump_instantiated_types_4(struct stack_frame_t *closctx, val_t p0){
+  void OC_global___instantiated_type_analysis___Program___dump_instantiated_types_4(struct stack_frame_t *closctx, val_t p0){
     struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
     val_t REGB0;
     val_t tmp;
     static val_t once_value_5; /* Once value */
     static val_t once_value_6; /* Once value */
-    /* ./analysis//instantiated_type_analysis.nit:29 */
+    /* global/instantiated_type_analysis.nit:29 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_analysis___instantiated_type_analysis;
+    fra.me.file = LOCATE_global___instantiated_type_analysis;
     fra.me.line = 29;
-    fra.me.meth = LOCATE_analysis___instantiated_type_analysis___Program___dump_instantiated_types;
+    fra.me.meth = LOCATE_global___instantiated_type_analysis___Program___dump_instantiated_types;
     fra.me.has_broke = 0;
     fra.me.REG_size = 3;
     fra.me.nitni_local_ref_head = NULL;
@@ -117,7 +117,7 @@ void analysis___instantiated_type_analysis___Program___dump_instantiated_types(v
     fra.me.REG[1] = NIT_NULL;
     fra.me.REG[2] = NIT_NULL;
     fra.me.REG[0] = p0;
-    /* ./analysis//instantiated_type_analysis.nit:30 */
+    /* global/instantiated_type_analysis.nit:30 */
     REGB0 = TAG_Int(3);
     fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_5) {
@@ -145,7 +145,7 @@ void analysis___instantiated_type_analysis___Program___dump_instantiated_types(v
     stack_frame_head = fra.me.prev;
     return;
   }
-void analysis___instantiated_type_analysis___Program___dump_not_instantiated_types(val_t p0, val_t p1){
+void global___instantiated_type_analysis___Program___dump_not_instantiated_types(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
@@ -153,9 +153,9 @@ void analysis___instantiated_type_analysis___Program___dump_not_instantiated_typ
   static val_t once_value_2; /* Once value */
   static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___instantiated_type_analysis;
+  fra.me.file = LOCATE_global___instantiated_type_analysis;
   fra.me.line = 35;
-  fra.me.meth = LOCATE_analysis___instantiated_type_analysis___Program___dump_not_instantiated_types;
+  fra.me.meth = LOCATE_global___instantiated_type_analysis___Program___dump_not_instantiated_types;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -165,7 +165,7 @@ void analysis___instantiated_type_analysis___Program___dump_not_instantiated_typ
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//instantiated_type_analysis.nit:37 */
+  /* global/instantiated_type_analysis.nit:37 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -202,16 +202,16 @@ void analysis___instantiated_type_analysis___Program___dump_not_instantiated_typ
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[2]);
-  /* ./analysis//instantiated_type_analysis.nit:39 */
+  /* global/instantiated_type_analysis.nit:39 */
   fra.me.REG[1] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_analysis___instantiated_type_analysis___Program___dump_not_instantiated_types_4));
-  /* ./analysis//instantiated_type_analysis.nit:44 */
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_global___instantiated_type_analysis___Program___dump_not_instantiated_types_4));
+  /* global/instantiated_type_analysis.nit:44 */
   CALL_standard___stream___IOS___close(fra.me.REG[2])(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_analysis___instantiated_type_analysis___Program___dump_not_instantiated_types_4(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+  void OC_global___instantiated_type_analysis___Program___dump_not_instantiated_types_4(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
     struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
     val_t REGB0;
     fun_t CREG[1];
@@ -219,9 +219,9 @@ void analysis___instantiated_type_analysis___Program___dump_not_instantiated_typ
       static val_t once_value_5; /* Once value */
       static val_t once_value_6; /* Once value */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_analysis___instantiated_type_analysis;
+    fra.me.file = LOCATE_global___instantiated_type_analysis;
     fra.me.line = 0;
-    fra.me.meth = LOCATE_analysis___instantiated_type_analysis___Program___dump_not_instantiated_types;
+    fra.me.meth = LOCATE_global___instantiated_type_analysis___Program___dump_not_instantiated_types;
     fra.me.has_broke = 0;
     fra.me.REG_size = 3;
     fra.me.nitni_local_ref_head = NULL;
@@ -232,16 +232,16 @@ void analysis___instantiated_type_analysis___Program___dump_not_instantiated_typ
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./analysis//instantiated_type_analysis.nit:40 */
-    fra.me.REG[1] = CALL_analysis___instantiated_type_analysis___Program___ita(closctx->REG[0])(closctx->REG[0]);
+    /* global/instantiated_type_analysis.nit:40 */
+    fra.me.REG[1] = CALL_global___instantiated_type_analysis___Program___ita(closctx->REG[0])(closctx->REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___instantiated_type_analysis, 40);
+      nit_abort("Reciever is null", NULL, LOCATE_global___instantiated_type_analysis, 40);
     }
-    REGB0 = CALL_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+    REGB0 = CALL_global___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./analysis//instantiated_type_analysis.nit:41 */
+      /* global/instantiated_type_analysis.nit:41 */
       REGB0 = TAG_Int(3);
       fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_5) {
@@ -270,14 +270,14 @@ void analysis___instantiated_type_analysis___Program___dump_not_instantiated_typ
     stack_frame_head = fra.me.prev;
     return;
   }
-void analysis___instantiated_type_analysis___Program___with_each_live_local_classes(val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+void global___instantiated_type_analysis___Program___with_each_live_local_classes(val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   fun_t CREG[1];
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___instantiated_type_analysis;
+  fra.me.file = LOCATE_global___instantiated_type_analysis;
   fra.me.line = 47;
-  fra.me.meth = LOCATE_analysis___instantiated_type_analysis___Program___with_each_live_local_classes;
+  fra.me.meth = LOCATE_global___instantiated_type_analysis___Program___with_each_live_local_classes;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
@@ -288,12 +288,12 @@ void analysis___instantiated_type_analysis___Program___with_each_live_local_clas
   fra.me.closure_funs = CREG;
   fra.me.REG[0] = p0;
   CREG[0] = clos_fun0;
-  /* ./analysis//instantiated_type_analysis.nit:47 */
+  /* global/instantiated_type_analysis.nit:47 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./analysis//instantiated_type_analysis.nit:51 */
+  /* global/instantiated_type_analysis.nit:51 */
   fra.me.REG[2] = CALL_program___Program___main_module(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_analysis___instantiated_type_analysis___Program___with_each_live_local_classes_1));
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_global___instantiated_type_analysis___Program___with_each_live_local_classes_1));
   switch ((&(fra.me))->has_broke) {
     case 0: break;
     case 1: (&(fra.me))->has_broke = 0; goto label3;
@@ -302,16 +302,16 @@ void analysis___instantiated_type_analysis___Program___with_each_live_local_clas
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_analysis___instantiated_type_analysis___Program___with_each_live_local_classes_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+  void OC_global___instantiated_type_analysis___Program___with_each_live_local_classes_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
     struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
     val_t REGB0;
     val_t REGB1;
     fun_t CREG[1];
     val_t tmp;
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_analysis___instantiated_type_analysis;
+    fra.me.file = LOCATE_global___instantiated_type_analysis;
     fra.me.line = 0;
-    fra.me.meth = LOCATE_analysis___instantiated_type_analysis___Program___with_each_live_local_classes;
+    fra.me.meth = LOCATE_global___instantiated_type_analysis___Program___with_each_live_local_classes;
     fra.me.has_broke = 0;
     fra.me.REG_size = 2;
     fra.me.nitni_local_ref_head = NULL;
@@ -321,8 +321,8 @@ void analysis___instantiated_type_analysis___Program___with_each_live_local_clas
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./analysis//instantiated_type_analysis.nit:52 */
-    fra.me.REG[1] = CALL_analysis___instantiated_type_analysis___Program___ita(closctx->REG[1])(closctx->REG[1]);
+    /* global/instantiated_type_analysis.nit:52 */
+    fra.me.REG[1] = CALL_global___instantiated_type_analysis___Program___ita(closctx->REG[1])(closctx->REG[1]);
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -338,17 +338,17 @@ void analysis___instantiated_type_analysis___Program___with_each_live_local_clas
     if (UNTAG_Bool(REGB0)) {
       REGB0 = TAG_Bool(true);
     } else {
-      fra.me.REG[1] = CALL_analysis___instantiated_type_analysis___Program___ita(closctx->REG[1])(closctx->REG[1]);
+      fra.me.REG[1] = CALL_global___instantiated_type_analysis___Program___ita(closctx->REG[1])(closctx->REG[1]);
       REGB1 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
-        nit_abort("Cast failed", NULL, LOCATE_analysis___instantiated_type_analysis, 52);
+        nit_abort("Cast failed", NULL, LOCATE_global___instantiated_type_analysis, 52);
       }
       REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
-        nit_abort("Reciever is null", NULL, LOCATE_analysis___instantiated_type_analysis, 52);
+        nit_abort("Reciever is null", NULL, LOCATE_global___instantiated_type_analysis, 52);
       }
-      REGB1 = CALL_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+      REGB1 = CALL_global___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
@@ -362,45 +362,29 @@ void analysis___instantiated_type_analysis___Program___with_each_live_local_clas
     stack_frame_head = fra.me.prev;
     return;
   }
-val_t analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated(val_t p0, val_t p1){
+val_t global___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___instantiated_type_analysis;
+  fra.me.file = LOCATE_global___instantiated_type_analysis;
   fra.me.line = 61;
-  fra.me.meth = LOCATE_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated;
+  fra.me.meth = LOCATE_global___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./analysis//instantiated_type_analysis.nit:61 */
-  nit_abort("Deferred method called", NULL, LOCATE_analysis___instantiated_type_analysis, 61);
+  /* global/instantiated_type_analysis.nit:61 */
+  nit_abort("Deferred method called", NULL, LOCATE_global___instantiated_type_analysis, 61);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
-void analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___init(val_t p0, int* init_table){
-  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis].i;
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  if (init_table[itpos0]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___instantiated_type_analysis;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-  init_table[itpos0] = 1;
-  return;
-}
-val_t analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___is_class_instantiated(val_t p0, val_t p1){
+val_t global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___is_class_instantiated(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___instantiated_type_analysis;
+  fra.me.file = LOCATE_global___instantiated_type_analysis;
   fra.me.line = 67;
-  fra.me.meth = LOCATE_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___is_class_instantiated;
+  fra.me.meth = LOCATE_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___is_class_instantiated;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
@@ -408,30 +392,28 @@ val_t analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//instantiated_type_analysis.nit:67 */
+  /* global/instantiated_type_analysis.nit:67 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
-void analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init(val_t p0, int* init_table){
-  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis].i;
+void global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init(val_t p0, int* init_table){
+  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos1]) return;
+  if (init_table[itpos0]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___instantiated_type_analysis;
+  fra.me.file = LOCATE_global___instantiated_type_analysis;
   fra.me.line = 69;
-  fra.me.meth = LOCATE_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init;
+  fra.me.meth = LOCATE_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//instantiated_type_analysis.nit:69 */
-  CALL_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   stack_frame_head = fra.me.prev;
-  init_table[itpos1] = 1;
+  init_table[itpos0] = 1;
   return;
 }
diff --git a/c_src/global___instantiated_type_analysis._sep.h b/c_src/global___instantiated_type_analysis._sep.h
new file mode 100644 (file)
index 0000000..1415861
--- /dev/null
@@ -0,0 +1,60 @@
+/* This C header file is generated by NIT to compile modules and programs that requires ./global/instantiated_type_analysis. */
+#ifndef global___instantiated_type_analysis_sep
+#define global___instantiated_type_analysis_sep
+#include "program._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_global___instantiated_type_analysis___InstantiatedTypeAnalysis[];
+
+extern const classtable_elt_t VFT_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis[];
+extern const char *LOCATE_global___instantiated_type_analysis;
+extern const int SFT_global___instantiated_type_analysis[];
+#define ATTR_global___instantiated_type_analysis___Program____ita(recv) ATTR(recv, (SFT_global___instantiated_type_analysis[0] + 0))
+#define CALL_global___instantiated_type_analysis___Program___ita(recv) ((global___instantiated_type_analysis___Program___ita_t)CALL((recv), (SFT_global___instantiated_type_analysis[1] + 0)))
+#define CALL_global___instantiated_type_analysis___Program___ita__eq(recv) ((global___instantiated_type_analysis___Program___ita__eq_t)CALL((recv), (SFT_global___instantiated_type_analysis[1] + 1)))
+#define CALL_global___instantiated_type_analysis___Program___dump_instantiated_types(recv) ((global___instantiated_type_analysis___Program___dump_instantiated_types_t)CALL((recv), (SFT_global___instantiated_type_analysis[1] + 2)))
+#define CALL_global___instantiated_type_analysis___Program___dump_not_instantiated_types(recv) ((global___instantiated_type_analysis___Program___dump_not_instantiated_types_t)CALL((recv), (SFT_global___instantiated_type_analysis[1] + 3)))
+#define ID_global___instantiated_type_analysis___InstantiatedTypeAnalysis (SFT_global___instantiated_type_analysis[2])
+#define COLOR_global___instantiated_type_analysis___InstantiatedTypeAnalysis (SFT_global___instantiated_type_analysis[3])
+#define INIT_TABLE_POS_global___instantiated_type_analysis___InstantiatedTypeAnalysis (SFT_global___instantiated_type_analysis[4] + 0)
+#define CALL_global___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated(recv) ((global___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated_t)CALL((recv), (SFT_global___instantiated_type_analysis[4] + 1)))
+#define ID_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis (SFT_global___instantiated_type_analysis[5])
+#define COLOR_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis (SFT_global___instantiated_type_analysis[6])
+#define INIT_TABLE_POS_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis (SFT_global___instantiated_type_analysis[7] + 0)
+#define CALL_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init(recv) ((global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init_t)CALL((recv), (SFT_global___instantiated_type_analysis[7] + 1)))
+static const char * const LOCATE_global___instantiated_type_analysis___Program___ita = "instantiated_type_analysis::Program::ita";
+val_t global___instantiated_type_analysis___Program___ita(val_t p0);
+typedef val_t (*global___instantiated_type_analysis___Program___ita_t)(val_t p0);
+static const char * const LOCATE_global___instantiated_type_analysis___Program___ita__eq = "instantiated_type_analysis::Program::ita=";
+void global___instantiated_type_analysis___Program___ita__eq(val_t p0, val_t p1);
+typedef void (*global___instantiated_type_analysis___Program___ita__eq_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___instantiated_type_analysis___Program___dump_instantiated_types = "instantiated_type_analysis::Program::dump_instantiated_types";
+void global___instantiated_type_analysis___Program___dump_instantiated_types(val_t p0, val_t p1);
+typedef void (*global___instantiated_type_analysis___Program___dump_instantiated_types_t)(val_t p0, val_t p1);
+  void OC_global___instantiated_type_analysis___Program___dump_instantiated_types_4(struct stack_frame_t *closctx, val_t p0);
+  typedef void (*OC_global___instantiated_type_analysis___Program___dump_instantiated_types_4_t)(struct stack_frame_t *closctx, val_t p0);
+static const char * const LOCATE_global___instantiated_type_analysis___Program___dump_not_instantiated_types = "instantiated_type_analysis::Program::dump_not_instantiated_types";
+void global___instantiated_type_analysis___Program___dump_not_instantiated_types(val_t p0, val_t p1);
+typedef void (*global___instantiated_type_analysis___Program___dump_not_instantiated_types_t)(val_t p0, val_t p1);
+  typedef void (*CLOS_OC_global___instantiated_type_analysis___Program___dump_not_instantiated_types_4_0)(struct stack_frame_t *);
+  void OC_global___instantiated_type_analysis___Program___dump_not_instantiated_types_4(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+  typedef void (*OC_global___instantiated_type_analysis___Program___dump_not_instantiated_types_4_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+typedef void (*CLOS_global___instantiated_type_analysis___Program___with_each_live_local_classes_0)(struct stack_frame_t *, val_t);
+static const char * const LOCATE_global___instantiated_type_analysis___Program___with_each_live_local_classes = "instantiated_type_analysis::Program::(program::Program::with_each_live_local_classes)";
+void global___instantiated_type_analysis___Program___with_each_live_local_classes(val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+typedef void (*global___instantiated_type_analysis___Program___with_each_live_local_classes_t)(val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+  typedef void (*CLOS_OC_global___instantiated_type_analysis___Program___with_each_live_local_classes_1_0)(struct stack_frame_t *);
+  void OC_global___instantiated_type_analysis___Program___with_each_live_local_classes_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+  typedef void (*OC_global___instantiated_type_analysis___Program___with_each_live_local_classes_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+val_t NEW_Program_program___Program___init(val_t p0, val_t p1);
+static const char * const LOCATE_global___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated = "instantiated_type_analysis::InstantiatedTypeAnalysis::is_class_instantiated";
+val_t global___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated(val_t p0, val_t p1);
+typedef val_t (*global___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___is_class_instantiated = "instantiated_type_analysis::DefaultInstantiatedTypeAnalysis::(instantiated_type_analysis::InstantiatedTypeAnalysis::is_class_instantiated)";
+val_t global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___is_class_instantiated(val_t p0, val_t p1);
+typedef val_t (*global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___is_class_instantiated_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init = "instantiated_type_analysis::DefaultInstantiatedTypeAnalysis::init";
+void global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init(val_t p0, int* init_table);
+typedef void (*global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init_t)(val_t p0, int* init_table);
+val_t NEW_DefaultInstantiatedTypeAnalysis_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init();
+#endif
similarity index 66%
rename from c_src/analysis___reachable_as_init._sep.c
rename to c_src/global___reachable_as_init._sep.c
index f7ad3ff..f171144 100644 (file)
@@ -1,29 +1,29 @@
-/* This C file is generated by NIT to compile module analysis___reachable_as_init. */
-#include "analysis___reachable_as_init._sep.h"
-val_t analysis___reachable_as_init___Program___rai(val_t p0){
+/* This C file is generated by NIT to compile module global___reachable_as_init. */
+#include "global___reachable_as_init._sep.h"
+val_t global___reachable_as_init___Program___rai(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_as_init;
+  fra.me.file = LOCATE_global___reachable_as_init;
   fra.me.line = 24;
-  fra.me.meth = LOCATE_analysis___reachable_as_init___Program___rai;
+  fra.me.meth = LOCATE_global___reachable_as_init___Program___rai;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//reachable_as_init.nit:24 */
-  fra.me.REG[0] = ATTR_analysis___reachable_as_init___Program____rai(fra.me.REG[0]);
+  /* global/reachable_as_init.nit:24 */
+  fra.me.REG[0] = ATTR_global___reachable_as_init___Program____rai(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-void analysis___reachable_as_init___Program___rai__eq(val_t p0, val_t p1){
+void global___reachable_as_init___Program___rai__eq(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_as_init;
+  fra.me.file = LOCATE_global___reachable_as_init;
   fra.me.line = 24;
-  fra.me.meth = LOCATE_analysis___reachable_as_init___Program___rai__eq;
+  fra.me.meth = LOCATE_global___reachable_as_init___Program___rai__eq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
@@ -31,12 +31,12 @@ void analysis___reachable_as_init___Program___rai__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//reachable_as_init.nit:24 */
-  ATTR_analysis___reachable_as_init___Program____rai(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/reachable_as_init.nit:24 */
+  ATTR_global___reachable_as_init___Program____rai(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
 }
-void analysis___reachable_as_init___Program___dump_reachable_as_init_methods(val_t p0, val_t p1){
+void global___reachable_as_init___Program___dump_reachable_as_init_methods(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
@@ -44,9 +44,9 @@ void analysis___reachable_as_init___Program___dump_reachable_as_init_methods(val
   static val_t once_value_2; /* Once value */
   static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_as_init;
+  fra.me.file = LOCATE_global___reachable_as_init;
   fra.me.line = 27;
-  fra.me.meth = LOCATE_analysis___reachable_as_init___Program___dump_reachable_as_init_methods;
+  fra.me.meth = LOCATE_global___reachable_as_init___Program___dump_reachable_as_init_methods;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -56,7 +56,7 @@ void analysis___reachable_as_init___Program___dump_reachable_as_init_methods(val
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//reachable_as_init.nit:29 */
+  /* global/reachable_as_init.nit:29 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -93,33 +93,33 @@ void analysis___reachable_as_init___Program___dump_reachable_as_init_methods(val
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[2]);
-  CALL_program___Program___with_each_live_local_classes(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_analysis___reachable_as_init___Program___dump_reachable_as_init_methods_4));
-  /* ./analysis//reachable_as_init.nit:40 */
+  CALL_program___Program___with_each_live_local_classes(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_global___reachable_as_init___Program___dump_reachable_as_init_methods_4));
+  /* global/reachable_as_init.nit:40 */
   CALL_standard___stream___IOS___close(fra.me.REG[2])(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_analysis___reachable_as_init___Program___dump_reachable_as_init_methods_4(struct stack_frame_t *closctx, val_t p0){
+  void OC_global___reachable_as_init___Program___dump_reachable_as_init_methods_4(struct stack_frame_t *closctx, val_t p0){
     struct {struct stack_frame_t me;} fra;
     val_t tmp;
-    /* ./analysis//reachable_as_init.nit:30 */
+    /* global/reachable_as_init.nit:30 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_analysis___reachable_as_init;
+    fra.me.file = LOCATE_global___reachable_as_init;
     fra.me.line = 30;
-    fra.me.meth = LOCATE_analysis___reachable_as_init___Program___dump_reachable_as_init_methods;
+    fra.me.meth = LOCATE_global___reachable_as_init___Program___dump_reachable_as_init_methods;
     fra.me.has_broke = 0;
     fra.me.REG_size = 1;
     fra.me.nitni_local_ref_head = NULL;
     fra.me.REG[0] = NIT_NULL;
     fra.me.REG[0] = p0;
     closctx->REG[1] = fra.me.REG[0];
-    /* ./analysis//reachable_as_init.nit:31 */
+    /* global/reachable_as_init.nit:31 */
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(closctx->REG[1])(closctx->REG[1]);
-    CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], closctx, ((fun_t)OC_analysis___reachable_as_init___Program___dump_reachable_as_init_methods_5));
+    CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], closctx, ((fun_t)OC_global___reachable_as_init___Program___dump_reachable_as_init_methods_5));
     stack_frame_head = fra.me.prev;
     return;
   }
-    void OC_analysis___reachable_as_init___Program___dump_reachable_as_init_methods_5(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+    void OC_global___reachable_as_init___Program___dump_reachable_as_init_methods_5(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
       struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
       val_t REGB0;
       fun_t CREG[1];
@@ -127,9 +127,9 @@ void analysis___reachable_as_init___Program___dump_reachable_as_init_methods(val
         static val_t once_value_7; /* Once value */
         static val_t once_value_8; /* Once value */
       fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-      fra.me.file = LOCATE_analysis___reachable_as_init;
+      fra.me.file = LOCATE_global___reachable_as_init;
       fra.me.line = 0;
-      fra.me.meth = LOCATE_analysis___reachable_as_init___Program___dump_reachable_as_init_methods;
+      fra.me.meth = LOCATE_global___reachable_as_init___Program___dump_reachable_as_init_methods;
       fra.me.has_broke = 0;
       fra.me.REG_size = 3;
       fra.me.nitni_local_ref_head = NULL;
@@ -140,30 +140,30 @@ void analysis___reachable_as_init___Program___dump_reachable_as_init_methods(val
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./analysis//reachable_as_init.nit:32 */
+      /* global/reachable_as_init.nit:32 */
       fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
-      /* ./analysis//reachable_as_init.nit:33 */
+      /* global/reachable_as_init.nit:33 */
       fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
       REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra.me.REG[1])(fra.me.REG[1], closctx->REG[1]);
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
         goto label6;
       }
-      /* ./analysis//reachable_as_init.nit:34 */
+      /* global/reachable_as_init.nit:34 */
       REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_analysis___reachable_as_init, 34);
+        nit_abort("Assert failed", NULL, LOCATE_global___reachable_as_init, 34);
       }
-      /* ./analysis//reachable_as_init.nit:35 */
-      fra.me.REG[1] = CALL_analysis___reachable_as_init___Program___rai(closctx->REG[0])(closctx->REG[0]);
+      /* global/reachable_as_init.nit:35 */
+      fra.me.REG[1] = CALL_global___reachable_as_init___Program___rai(closctx->REG[0])(closctx->REG[0]);
       REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_as_init, 35);
+        nit_abort("Reciever is null", NULL, LOCATE_global___reachable_as_init, 35);
       }
-      REGB0 = CALL_analysis___reachable_as_init___ReachableAsInitAnalysis___is_method_reachable_as_init(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], closctx->REG[1]);
+      REGB0 = CALL_global___reachable_as_init___ReachableAsInitAnalysis___is_method_reachable_as_init(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], closctx->REG[1]);
       if (UNTAG_Bool(REGB0)) {
-        /* ./analysis//reachable_as_init.nit:36 */
+        /* global/reachable_as_init.nit:36 */
         REGB0 = TAG_Int(3);
         fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_7) {
@@ -193,46 +193,30 @@ void analysis___reachable_as_init___Program___dump_reachable_as_init_methods(val
       stack_frame_head = fra.me.prev;
       return;
     }
-val_t analysis___reachable_as_init___ReachableAsInitAnalysis___is_method_reachable_as_init(val_t p0, val_t p1, val_t p2){
+val_t global___reachable_as_init___ReachableAsInitAnalysis___is_method_reachable_as_init(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_as_init;
+  fra.me.file = LOCATE_global___reachable_as_init;
   fra.me.line = 49;
-  fra.me.meth = LOCATE_analysis___reachable_as_init___ReachableAsInitAnalysis___is_method_reachable_as_init;
+  fra.me.meth = LOCATE_global___reachable_as_init___ReachableAsInitAnalysis___is_method_reachable_as_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./analysis//reachable_as_init.nit:49 */
-  nit_abort("Deferred method called", NULL, LOCATE_analysis___reachable_as_init, 49);
+  /* global/reachable_as_init.nit:49 */
+  nit_abort("Deferred method called", NULL, LOCATE_global___reachable_as_init, 49);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
-void analysis___reachable_as_init___ReachableAsInitAnalysis___init(val_t p0, int* init_table){
-  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___reachable_as_init___ReachableAsInitAnalysis].i;
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  if (init_table[itpos0]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_as_init;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_analysis___reachable_as_init___ReachableAsInitAnalysis___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-  init_table[itpos0] = 1;
-  return;
-}
-val_t analysis___reachable_as_init___DefaultReachableAsInitAnalysis___is_method_reachable_as_init(val_t p0, val_t p1, val_t p2){
+val_t global___reachable_as_init___DefaultReachableAsInitAnalysis___is_method_reachable_as_init(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_as_init;
+  fra.me.file = LOCATE_global___reachable_as_init;
   fra.me.line = 55;
-  fra.me.meth = LOCATE_analysis___reachable_as_init___DefaultReachableAsInitAnalysis___is_method_reachable_as_init;
+  fra.me.meth = LOCATE_global___reachable_as_init___DefaultReachableAsInitAnalysis___is_method_reachable_as_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
@@ -242,7 +226,7 @@ val_t analysis___reachable_as_init___DefaultReachableAsInitAnalysis___is_method_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./analysis//reachable_as_init.nit:56 */
+  /* global/reachable_as_init.nit:56 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
@@ -256,7 +240,7 @@ val_t analysis___reachable_as_init___DefaultReachableAsInitAnalysis___is_method_
     REGB0 = TAG_Bool(true);
     goto label1;
   }
-  /* ./analysis//reachable_as_init.nit:57 */
+  /* global/reachable_as_init.nit:57 */
   REGB1 = TAG_Bool(false);
   REGB0 = REGB1;
   goto label1;
@@ -264,23 +248,21 @@ val_t analysis___reachable_as_init___DefaultReachableAsInitAnalysis___is_method_
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
-void analysis___reachable_as_init___DefaultReachableAsInitAnalysis___init(val_t p0, int* init_table){
-  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___reachable_as_init___DefaultReachableAsInitAnalysis].i;
+void global___reachable_as_init___DefaultReachableAsInitAnalysis___init(val_t p0, int* init_table){
+  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___reachable_as_init___DefaultReachableAsInitAnalysis].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos1]) return;
+  if (init_table[itpos0]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_as_init;
+  fra.me.file = LOCATE_global___reachable_as_init;
   fra.me.line = 60;
-  fra.me.meth = LOCATE_analysis___reachable_as_init___DefaultReachableAsInitAnalysis___init;
+  fra.me.meth = LOCATE_global___reachable_as_init___DefaultReachableAsInitAnalysis___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//reachable_as_init.nit:60 */
-  CALL_analysis___reachable_as_init___ReachableAsInitAnalysis___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   stack_frame_head = fra.me.prev;
-  init_table[itpos1] = 1;
+  init_table[itpos0] = 1;
   return;
 }
diff --git a/c_src/global___reachable_as_init._sep.h b/c_src/global___reachable_as_init._sep.h
new file mode 100644 (file)
index 0000000..04ca0ef
--- /dev/null
@@ -0,0 +1,49 @@
+/* This C header file is generated by NIT to compile modules and programs that requires ./global/reachable_as_init. */
+#ifndef global___reachable_as_init_sep
+#define global___reachable_as_init_sep
+#include "program._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_global___reachable_as_init___ReachableAsInitAnalysis[];
+
+extern const classtable_elt_t VFT_global___reachable_as_init___DefaultReachableAsInitAnalysis[];
+extern const char *LOCATE_global___reachable_as_init;
+extern const int SFT_global___reachable_as_init[];
+#define ATTR_global___reachable_as_init___Program____rai(recv) ATTR(recv, (SFT_global___reachable_as_init[0] + 0))
+#define CALL_global___reachable_as_init___Program___rai(recv) ((global___reachable_as_init___Program___rai_t)CALL((recv), (SFT_global___reachable_as_init[1] + 0)))
+#define CALL_global___reachable_as_init___Program___rai__eq(recv) ((global___reachable_as_init___Program___rai__eq_t)CALL((recv), (SFT_global___reachable_as_init[1] + 1)))
+#define CALL_global___reachable_as_init___Program___dump_reachable_as_init_methods(recv) ((global___reachable_as_init___Program___dump_reachable_as_init_methods_t)CALL((recv), (SFT_global___reachable_as_init[1] + 2)))
+#define ID_global___reachable_as_init___ReachableAsInitAnalysis (SFT_global___reachable_as_init[2])
+#define COLOR_global___reachable_as_init___ReachableAsInitAnalysis (SFT_global___reachable_as_init[3])
+#define INIT_TABLE_POS_global___reachable_as_init___ReachableAsInitAnalysis (SFT_global___reachable_as_init[4] + 0)
+#define CALL_global___reachable_as_init___ReachableAsInitAnalysis___is_method_reachable_as_init(recv) ((global___reachable_as_init___ReachableAsInitAnalysis___is_method_reachable_as_init_t)CALL((recv), (SFT_global___reachable_as_init[4] + 1)))
+#define ID_global___reachable_as_init___DefaultReachableAsInitAnalysis (SFT_global___reachable_as_init[5])
+#define COLOR_global___reachable_as_init___DefaultReachableAsInitAnalysis (SFT_global___reachable_as_init[6])
+#define INIT_TABLE_POS_global___reachable_as_init___DefaultReachableAsInitAnalysis (SFT_global___reachable_as_init[7] + 0)
+#define CALL_global___reachable_as_init___DefaultReachableAsInitAnalysis___init(recv) ((global___reachable_as_init___DefaultReachableAsInitAnalysis___init_t)CALL((recv), (SFT_global___reachable_as_init[7] + 1)))
+static const char * const LOCATE_global___reachable_as_init___Program___rai = "reachable_as_init::Program::rai";
+val_t global___reachable_as_init___Program___rai(val_t p0);
+typedef val_t (*global___reachable_as_init___Program___rai_t)(val_t p0);
+static const char * const LOCATE_global___reachable_as_init___Program___rai__eq = "reachable_as_init::Program::rai=";
+void global___reachable_as_init___Program___rai__eq(val_t p0, val_t p1);
+typedef void (*global___reachable_as_init___Program___rai__eq_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___reachable_as_init___Program___dump_reachable_as_init_methods = "reachable_as_init::Program::dump_reachable_as_init_methods";
+void global___reachable_as_init___Program___dump_reachable_as_init_methods(val_t p0, val_t p1);
+typedef void (*global___reachable_as_init___Program___dump_reachable_as_init_methods_t)(val_t p0, val_t p1);
+  void OC_global___reachable_as_init___Program___dump_reachable_as_init_methods_4(struct stack_frame_t *closctx, val_t p0);
+  typedef void (*OC_global___reachable_as_init___Program___dump_reachable_as_init_methods_4_t)(struct stack_frame_t *closctx, val_t p0);
+    typedef void (*CLOS_OC_global___reachable_as_init___Program___dump_reachable_as_init_methods_5_0)(struct stack_frame_t *);
+    void OC_global___reachable_as_init___Program___dump_reachable_as_init_methods_5(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+    typedef void (*OC_global___reachable_as_init___Program___dump_reachable_as_init_methods_5_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+val_t NEW_Program_program___Program___init(val_t p0, val_t p1);
+static const char * const LOCATE_global___reachable_as_init___ReachableAsInitAnalysis___is_method_reachable_as_init = "reachable_as_init::ReachableAsInitAnalysis::is_method_reachable_as_init";
+val_t global___reachable_as_init___ReachableAsInitAnalysis___is_method_reachable_as_init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*global___reachable_as_init___ReachableAsInitAnalysis___is_method_reachable_as_init_t)(val_t p0, val_t p1, val_t p2);
+static const char * const LOCATE_global___reachable_as_init___DefaultReachableAsInitAnalysis___is_method_reachable_as_init = "reachable_as_init::DefaultReachableAsInitAnalysis::(reachable_as_init::ReachableAsInitAnalysis::is_method_reachable_as_init)";
+val_t global___reachable_as_init___DefaultReachableAsInitAnalysis___is_method_reachable_as_init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*global___reachable_as_init___DefaultReachableAsInitAnalysis___is_method_reachable_as_init_t)(val_t p0, val_t p1, val_t p2);
+static const char * const LOCATE_global___reachable_as_init___DefaultReachableAsInitAnalysis___init = "reachable_as_init::DefaultReachableAsInitAnalysis::init";
+void global___reachable_as_init___DefaultReachableAsInitAnalysis___init(val_t p0, int* init_table);
+typedef void (*global___reachable_as_init___DefaultReachableAsInitAnalysis___init_t)(val_t p0, int* init_table);
+val_t NEW_DefaultReachableAsInitAnalysis_global___reachable_as_init___DefaultReachableAsInitAnalysis___init();
+#endif
diff --git a/c_src/global___reachable_as_init_impl._sep.c b/c_src/global___reachable_as_init_impl._sep.c
new file mode 100644 (file)
index 0000000..613a9bb
--- /dev/null
@@ -0,0 +1,357 @@
+/* This C file is generated by NIT to compile module global___reachable_as_init_impl. */
+#include "global___reachable_as_init_impl._sep.h"
+val_t global___reachable_as_init_impl___ReachableAsInitBuilder___context(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global___reachable_as_init_impl;
+  fra.me.line = 24;
+  fra.me.meth = LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___context;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* global/reachable_as_init_impl.nit:24 */
+  REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitBuilder____context(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_context", LOCATE_global___reachable_as_init_impl, 24);
+  }
+  fra.me.REG[0] = ATTR_global___reachable_as_init_impl___ReachableAsInitBuilder____context(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t global___reachable_as_init_impl___ReachableAsInitBuilder___program(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global___reachable_as_init_impl;
+  fra.me.line = 25;
+  fra.me.meth = LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___program;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* global/reachable_as_init_impl.nit:25 */
+  REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitBuilder____program(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_program", LOCATE_global___reachable_as_init_impl, 25);
+  }
+  fra.me.REG[0] = ATTR_global___reachable_as_init_impl___ReachableAsInitBuilder____program(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+void global___reachable_as_init_impl___ReachableAsInitBuilder___work(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global___reachable_as_init_impl;
+  fra.me.line = 27;
+  fra.me.meth = LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___work;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* global/reachable_as_init_impl.nit:28 */
+  fra.me.REG[1] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_program___Program___with_each_iroutines(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_global___reachable_as_init_impl___ReachableAsInitBuilder___work_1));
+  stack_frame_head = fra.me.prev;
+  return;
+}
+  void OC_global___reachable_as_init_impl___ReachableAsInitBuilder___work_1(struct stack_frame_t *closctx, val_t p0, val_t p1){
+    struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+    val_t REGB0;
+    val_t tmp;
+    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+    fra.me.file = LOCATE_global___reachable_as_init_impl;
+    fra.me.line = 28;
+    fra.me.meth = LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___work;
+    fra.me.has_broke = 0;
+    fra.me.REG_size = 2;
+    fra.me.nitni_local_ref_head = NULL;
+    fra.me.REG[0] = NIT_NULL;
+    fra.me.REG[1] = NIT_NULL;
+    fra.me.REG[0] = p0;
+    fra.me.REG[1] = p1;
+    /* global/reachable_as_init_impl.nit:29 */
+    fra.me.REG[1] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___program(closctx->REG[0])(closctx->REG[0]);
+    fra.me.REG[1] = CALL_global___reachable_method_analysis___Program___rma(fra.me.REG[1])(fra.me.REG[1]);
+    REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+      nit_abort("Reciever is null", NULL, LOCATE_global___reachable_as_init_impl, 29);
+    }
+    REGB0 = CALL_global___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+    if (UNTAG_Bool(REGB0)) {
+      /* global/reachable_as_init_impl.nit:30 */
+      fra.me.REG[1] = NEW_RAIVisitor_global___reachable_as_init_impl___RAIVisitor___init(closctx->REG[0]);
+      /* global/reachable_as_init_impl.nit:31 */
+      CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+    }
+    stack_frame_head = fra.me.prev;
+    return;
+  }
+void global___reachable_as_init_impl___ReachableAsInitBuilder___init(val_t p0, val_t p1, int* init_table){
+  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___reachable_as_init_impl___ReachableAsInitBuilder].i;
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  if (init_table[itpos0]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global___reachable_as_init_impl;
+  fra.me.line = 36;
+  fra.me.meth = LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* global/reachable_as_init_impl.nit:37 */
+  ATTR_global___reachable_as_init_impl___ReachableAsInitBuilder____program(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+  init_table[itpos0] = 1;
+  return;
+}
+val_t global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___is_method_reachable_as_init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global___reachable_as_init_impl;
+  fra.me.line = 47;
+  fra.me.meth = LOCATE_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___is_method_reachable_as_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  /* global/reachable_as_init_impl.nit:48 */
+  REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_methods", LOCATE_global___reachable_as_init_impl, 48);
+  }
+  fra.me.REG[3] = ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[0]);
+  REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
+  if (UNTAG_Bool(REGB0)) {
+    REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[0])!=NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      nit_abort("Uninitialized attribute %s", "_methods", LOCATE_global___reachable_as_init_impl, 48);
+    }
+    fra.me.REG[0] = ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[0]);
+    fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+      nit_abort("Reciever is null", NULL, LOCATE_global___reachable_as_init_impl, 48);
+    }
+    REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+    goto label1;
+  }
+  /* global/reachable_as_init_impl.nit:49 */
+  REGB1 = TAG_Bool(false);
+  REGB0 = REGB1;
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return REGB0;
+}
+void global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init(val_t p0, int* init_table){
+  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl].i;
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  if (init_table[itpos1]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global___reachable_as_init_impl;
+  fra.me.line = 52;
+  fra.me.meth = LOCATE_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  stack_frame_head = fra.me.prev;
+  init_table[itpos1] = 1;
+  return;
+}
+val_t global___reachable_as_init_impl___RAIVisitor___builder(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global___reachable_as_init_impl;
+  fra.me.line = 57;
+  fra.me.meth = LOCATE_global___reachable_as_init_impl___RAIVisitor___builder;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* global/reachable_as_init_impl.nit:57 */
+  REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___RAIVisitor____builder(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_builder", LOCATE_global___reachable_as_init_impl, 57);
+  }
+  fra.me.REG[0] = ATTR_global___reachable_as_init_impl___RAIVisitor____builder(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+void global___reachable_as_init_impl___RAIVisitor___visit_icode(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global___reachable_as_init_impl;
+  fra.me.line = 59;
+  fra.me.meth = LOCATE_global___reachable_as_init_impl___RAIVisitor___visit_icode;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 7;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* global/reachable_as_init_impl.nit:59 */
+  fra.me.REG[2] = fra.me.REG[0];
+  fra.me.REG[3] = fra.me.REG[1];
+  /* global/reachable_as_init_impl.nit:61 */
+  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___INew, ID_icode___icode_base___INew)) /*cast INew*/;
+  if (UNTAG_Bool(REGB0)) {
+    /* global/reachable_as_init_impl.nit:63 */
+    REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+      nit_abort("Reciever is null", NULL, LOCATE_global___reachable_as_init_impl, 63);
+    }
+    fra.me.REG[4] = CALL_icode___icode_base___INew___stype(fra.me.REG[3])(fra.me.REG[3]);
+    /* global/reachable_as_init_impl.nit:64 */
+    fra.me.REG[5] = CALL_global___reachable_as_init_impl___RAIVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+    fra.me.REG[5] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___program(fra.me.REG[5])(fra.me.REG[5]);
+    fra.me.REG[5] = CALL_program___Program___main_module(fra.me.REG[5])(fra.me.REG[5]);
+    fra.me.REG[5] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
+    fra.me.REG[5] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[5])(fra.me.REG[5]);
+    /* global/reachable_as_init_impl.nit:65 */
+    REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+      nit_abort("Reciever is null", NULL, LOCATE_global___reachable_as_init_impl, 65);
+    }
+    fra.me.REG[3] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
+    fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
+    fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
+    REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      nit_abort("Cast failed", NULL, LOCATE_global___reachable_as_init_impl, 65);
+    }
+    /* global/reachable_as_init_impl.nit:66 */
+    fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
+    REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      nit_abort("Assert failed", NULL, LOCATE_global___reachable_as_init_impl, 66);
+    }
+    /* global/reachable_as_init_impl.nit:67 */
+    fra.me.REG[4] = CALL_global___reachable_as_init_impl___RAIVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+    fra.me.REG[4] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___context(fra.me.REG[4])(fra.me.REG[4]);
+    REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[4])!=NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      nit_abort("Uninitialized attribute %s", "_methods", LOCATE_global___reachable_as_init_impl, 67);
+    }
+    fra.me.REG[4] = ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[4]);
+    REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      fra.me.REG[4] = CALL_global___reachable_as_init_impl___RAIVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+      fra.me.REG[4] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___context(fra.me.REG[4])(fra.me.REG[4]);
+      REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[4])!=NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Uninitialized attribute %s", "_methods", LOCATE_global___reachable_as_init_impl, 67);
+      }
+      fra.me.REG[4] = ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[4]);
+      fra.me.REG[6] = NEW_List_standard___collection___list___List___init();
+      CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
+    }
+    /* global/reachable_as_init_impl.nit:68 */
+    fra.me.REG[6] = CALL_global___reachable_as_init_impl___RAIVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+    fra.me.REG[6] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___context(fra.me.REG[6])(fra.me.REG[6]);
+    REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[6])!=NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      nit_abort("Uninitialized attribute %s", "_methods", LOCATE_global___reachable_as_init_impl, 68);
+    }
+    fra.me.REG[6] = ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[6]);
+    fra.me.REG[6] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
+    REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+      nit_abort("Reciever is null", NULL, LOCATE_global___reachable_as_init_impl, 68);
+    }
+    REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      fra.me.REG[2] = CALL_global___reachable_as_init_impl___RAIVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+      fra.me.REG[2] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___context(fra.me.REG[2])(fra.me.REG[2]);
+      REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[2])!=NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Uninitialized attribute %s", "_methods", LOCATE_global___reachable_as_init_impl, 68);
+      }
+      fra.me.REG[2] = ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[2]);
+      fra.me.REG[5] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
+      REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_global___reachable_as_init_impl, 68);
+      }
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
+    }
+  }
+  /* global/reachable_as_init_impl.nit:70 */
+  CALL_SUPER_global___reachable_as_init_impl___RAIVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void global___reachable_as_init_impl___RAIVisitor___init(val_t p0, val_t p1, int* init_table){
+  int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___reachable_as_init_impl___RAIVisitor].i;
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  if (init_table[itpos2]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global___reachable_as_init_impl;
+  fra.me.line = 73;
+  fra.me.meth = LOCATE_global___reachable_as_init_impl___RAIVisitor___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* global/reachable_as_init_impl.nit:73 */
+  fra.me.REG[2] = fra.me.REG[0];
+  CALL_icode___icode_tools___ICodeVisitor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
+  /* global/reachable_as_init_impl.nit:75 */
+  ATTR_global___reachable_as_init_impl___RAIVisitor____builder(fra.me.REG[2]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+  init_table[itpos2] = 1;
+  return;
+}
diff --git a/c_src/global___reachable_as_init_impl._sep.h b/c_src/global___reachable_as_init_impl._sep.h
new file mode 100644 (file)
index 0000000..a66fa5a
--- /dev/null
@@ -0,0 +1,68 @@
+/* This C header file is generated by NIT to compile modules and programs that requires ./global/reachable_as_init_impl. */
+#ifndef global___reachable_as_init_impl_sep
+#define global___reachable_as_init_impl_sep
+#include "global___reachable_method_analysis._sep.h"
+#include "global___reachable_as_init._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_global___reachable_as_init_impl___ReachableAsInitBuilder[];
+
+extern const classtable_elt_t VFT_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl[];
+
+extern const classtable_elt_t VFT_global___reachable_as_init_impl___RAIVisitor[];
+extern const char *LOCATE_global___reachable_as_init_impl;
+extern const int SFT_global___reachable_as_init_impl[];
+#define ID_global___reachable_as_init_impl___ReachableAsInitBuilder (SFT_global___reachable_as_init_impl[0])
+#define COLOR_global___reachable_as_init_impl___ReachableAsInitBuilder (SFT_global___reachable_as_init_impl[1])
+#define ATTR_global___reachable_as_init_impl___ReachableAsInitBuilder____context(recv) ATTR(recv, (SFT_global___reachable_as_init_impl[2] + 0))
+#define ATTR_global___reachable_as_init_impl___ReachableAsInitBuilder____program(recv) ATTR(recv, (SFT_global___reachable_as_init_impl[2] + 1))
+#define INIT_TABLE_POS_global___reachable_as_init_impl___ReachableAsInitBuilder (SFT_global___reachable_as_init_impl[3] + 0)
+#define CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___context(recv) ((global___reachable_as_init_impl___ReachableAsInitBuilder___context_t)CALL((recv), (SFT_global___reachable_as_init_impl[3] + 1)))
+#define CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___program(recv) ((global___reachable_as_init_impl___ReachableAsInitBuilder___program_t)CALL((recv), (SFT_global___reachable_as_init_impl[3] + 2)))
+#define CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___work(recv) ((global___reachable_as_init_impl___ReachableAsInitBuilder___work_t)CALL((recv), (SFT_global___reachable_as_init_impl[3] + 3)))
+#define CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___init(recv) ((global___reachable_as_init_impl___ReachableAsInitBuilder___init_t)CALL((recv), (SFT_global___reachable_as_init_impl[3] + 4)))
+#define ID_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl (SFT_global___reachable_as_init_impl[4])
+#define COLOR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl (SFT_global___reachable_as_init_impl[5])
+#define ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(recv) ATTR(recv, (SFT_global___reachable_as_init_impl[6] + 0))
+#define INIT_TABLE_POS_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl (SFT_global___reachable_as_init_impl[7] + 0)
+#define CALL_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init(recv) ((global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init_t)CALL((recv), (SFT_global___reachable_as_init_impl[7] + 1)))
+#define ID_global___reachable_as_init_impl___RAIVisitor (SFT_global___reachable_as_init_impl[8])
+#define COLOR_global___reachable_as_init_impl___RAIVisitor (SFT_global___reachable_as_init_impl[9])
+#define ATTR_global___reachable_as_init_impl___RAIVisitor____builder(recv) ATTR(recv, (SFT_global___reachable_as_init_impl[10] + 0))
+#define INIT_TABLE_POS_global___reachable_as_init_impl___RAIVisitor (SFT_global___reachable_as_init_impl[11] + 0)
+#define CALL_global___reachable_as_init_impl___RAIVisitor___builder(recv) ((global___reachable_as_init_impl___RAIVisitor___builder_t)CALL((recv), (SFT_global___reachable_as_init_impl[11] + 1)))
+#define CALL_SUPER_global___reachable_as_init_impl___RAIVisitor___visit_icode(recv) ((global___reachable_as_init_impl___RAIVisitor___visit_icode_t)CALL((recv), (SFT_global___reachable_as_init_impl[11] + 2)))
+#define CALL_global___reachable_as_init_impl___RAIVisitor___init(recv) ((global___reachable_as_init_impl___RAIVisitor___init_t)CALL((recv), (SFT_global___reachable_as_init_impl[11] + 3)))
+static const char * const LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___context = "reachable_as_init_impl::ReachableAsInitBuilder::context";
+val_t global___reachable_as_init_impl___ReachableAsInitBuilder___context(val_t p0);
+typedef val_t (*global___reachable_as_init_impl___ReachableAsInitBuilder___context_t)(val_t p0);
+static const char * const LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___program = "reachable_as_init_impl::ReachableAsInitBuilder::program";
+val_t global___reachable_as_init_impl___ReachableAsInitBuilder___program(val_t p0);
+typedef val_t (*global___reachable_as_init_impl___ReachableAsInitBuilder___program_t)(val_t p0);
+static const char * const LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___work = "reachable_as_init_impl::ReachableAsInitBuilder::work";
+void global___reachable_as_init_impl___ReachableAsInitBuilder___work(val_t p0);
+typedef void (*global___reachable_as_init_impl___ReachableAsInitBuilder___work_t)(val_t p0);
+  void OC_global___reachable_as_init_impl___ReachableAsInitBuilder___work_1(struct stack_frame_t *closctx, val_t p0, val_t p1);
+  typedef void (*OC_global___reachable_as_init_impl___ReachableAsInitBuilder___work_1_t)(struct stack_frame_t *closctx, val_t p0, val_t p1);
+static const char * const LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___init = "reachable_as_init_impl::ReachableAsInitBuilder::init";
+void global___reachable_as_init_impl___ReachableAsInitBuilder___init(val_t p0, val_t p1, int* init_table);
+typedef void (*global___reachable_as_init_impl___ReachableAsInitBuilder___init_t)(val_t p0, val_t p1, int* init_table);
+val_t NEW_ReachableAsInitBuilder_global___reachable_as_init_impl___ReachableAsInitBuilder___init(val_t p0);
+static const char * const LOCATE_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___is_method_reachable_as_init = "reachable_as_init_impl::ReachableAsInitAnalysisImpl::(reachable_as_init::ReachableAsInitAnalysis::is_method_reachable_as_init)";
+val_t global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___is_method_reachable_as_init(val_t p0, val_t p1, val_t p2);
+typedef val_t (*global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___is_method_reachable_as_init_t)(val_t p0, val_t p1, val_t p2);
+static const char * const LOCATE_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init = "reachable_as_init_impl::ReachableAsInitAnalysisImpl::init";
+void global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init(val_t p0, int* init_table);
+typedef void (*global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init_t)(val_t p0, int* init_table);
+val_t NEW_ReachableAsInitAnalysisImpl_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init();
+static const char * const LOCATE_global___reachable_as_init_impl___RAIVisitor___builder = "reachable_as_init_impl::RAIVisitor::builder";
+val_t global___reachable_as_init_impl___RAIVisitor___builder(val_t p0);
+typedef val_t (*global___reachable_as_init_impl___RAIVisitor___builder_t)(val_t p0);
+static const char * const LOCATE_global___reachable_as_init_impl___RAIVisitor___visit_icode = "reachable_as_init_impl::RAIVisitor::(icode_tools::ICodeVisitor::visit_icode)";
+void global___reachable_as_init_impl___RAIVisitor___visit_icode(val_t p0, val_t p1);
+typedef void (*global___reachable_as_init_impl___RAIVisitor___visit_icode_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___reachable_as_init_impl___RAIVisitor___init = "reachable_as_init_impl::RAIVisitor::init";
+void global___reachable_as_init_impl___RAIVisitor___init(val_t p0, val_t p1, int* init_table);
+typedef void (*global___reachable_as_init_impl___RAIVisitor___init_t)(val_t p0, val_t p1, int* init_table);
+val_t NEW_RAIVisitor_global___reachable_as_init_impl___RAIVisitor___init(val_t p0);
+#endif
@@ -1,29 +1,29 @@
-/* This C file is generated by NIT to compile module analysis___reachable_from_init_method_analysis. */
-#include "analysis___reachable_from_init_method_analysis._sep.h"
-val_t analysis___reachable_from_init_method_analysis___Program___rfima(val_t p0){
+/* This C file is generated by NIT to compile module global___reachable_from_init_method_analysis. */
+#include "global___reachable_from_init_method_analysis._sep.h"
+val_t global___reachable_from_init_method_analysis___Program___rfima(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis;
   fra.me.line = 25;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis___Program___rfima;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis___Program___rfima;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//reachable_from_init_method_analysis.nit:25 */
-  fra.me.REG[0] = ATTR_analysis___reachable_from_init_method_analysis___Program____rfima(fra.me.REG[0]);
+  /* global/reachable_from_init_method_analysis.nit:25 */
+  fra.me.REG[0] = ATTR_global___reachable_from_init_method_analysis___Program____rfima(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-void analysis___reachable_from_init_method_analysis___Program___rfima__eq(val_t p0, val_t p1){
+void global___reachable_from_init_method_analysis___Program___rfima__eq(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis;
   fra.me.line = 25;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis___Program___rfima__eq;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis___Program___rfima__eq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
@@ -31,12 +31,12 @@ void analysis___reachable_from_init_method_analysis___Program___rfima__eq(val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//reachable_from_init_method_analysis.nit:25 */
-  ATTR_analysis___reachable_from_init_method_analysis___Program____rfima(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/reachable_from_init_method_analysis.nit:25 */
+  ATTR_global___reachable_from_init_method_analysis___Program____rfima(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
 }
-void analysis___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init(val_t p0, val_t p1){
+void global___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
@@ -44,9 +44,9 @@ void analysis___reachable_from_init_method_analysis___Program___dump_reachable_m
   static val_t once_value_2; /* Once value */
   static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis;
   fra.me.line = 28;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -56,7 +56,7 @@ void analysis___reachable_from_init_method_analysis___Program___dump_reachable_m
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//reachable_from_init_method_analysis.nit:31 */
+  /* global/reachable_from_init_method_analysis.nit:31 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -93,23 +93,23 @@ void analysis___reachable_from_init_method_analysis___Program___dump_reachable_m
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[2]);
-  CALL_program___Program___with_each_methods(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_analysis___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init_4));
-  /* ./analysis//reachable_from_init_method_analysis.nit:37 */
+  CALL_program___Program___with_each_methods(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_global___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init_4));
+  /* global/reachable_from_init_method_analysis.nit:37 */
   CALL_standard___stream___IOS___close(fra.me.REG[2])(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_analysis___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init_4(struct stack_frame_t *closctx, val_t p0){
+  void OC_global___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init_4(struct stack_frame_t *closctx, val_t p0){
     struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
     val_t REGB0;
     val_t tmp;
       static val_t once_value_5; /* Once value */
       static val_t once_value_6; /* Once value */
-    /* ./analysis//reachable_from_init_method_analysis.nit:32 */
+    /* global/reachable_from_init_method_analysis.nit:32 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis;
+    fra.me.file = LOCATE_global___reachable_from_init_method_analysis;
     fra.me.line = 32;
-    fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init;
+    fra.me.meth = LOCATE_global___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init;
     fra.me.has_broke = 0;
     fra.me.REG_size = 3;
     fra.me.nitni_local_ref_head = NULL;
@@ -117,15 +117,15 @@ void analysis___reachable_from_init_method_analysis___Program___dump_reachable_m
     fra.me.REG[1] = NIT_NULL;
     fra.me.REG[2] = NIT_NULL;
     fra.me.REG[0] = p0;
-    /* ./analysis//reachable_from_init_method_analysis.nit:33 */
-    fra.me.REG[1] = CALL_analysis___reachable_from_init_method_analysis___Program___rfima(closctx->REG[0])(closctx->REG[0]);
+    /* global/reachable_from_init_method_analysis.nit:33 */
+    fra.me.REG[1] = CALL_global___reachable_from_init_method_analysis___Program___rfima(closctx->REG[0])(closctx->REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_from_init_method_analysis, 33);
+      nit_abort("Reciever is null", NULL, LOCATE_global___reachable_from_init_method_analysis, 33);
     }
-    REGB0 = CALL_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_method_reachable_from_init(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+    REGB0 = CALL_global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_method_reachable_from_init(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./analysis//reachable_from_init_method_analysis.nit:34 */
+      /* global/reachable_from_init_method_analysis.nit:34 */
       REGB0 = TAG_Int(3);
       fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_5) {
@@ -154,7 +154,7 @@ void analysis___reachable_from_init_method_analysis___Program___dump_reachable_m
     stack_frame_head = fra.me.prev;
     return;
   }
-void analysis___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init(val_t p0, val_t p1){
+void global___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
@@ -162,9 +162,9 @@ void analysis___reachable_from_init_method_analysis___Program___dump_unreachable
   static val_t once_value_2; /* Once value */
   static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis;
   fra.me.line = 40;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -174,7 +174,7 @@ void analysis___reachable_from_init_method_analysis___Program___dump_unreachable
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//reachable_from_init_method_analysis.nit:43 */
+  /* global/reachable_from_init_method_analysis.nit:43 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -211,24 +211,24 @@ void analysis___reachable_from_init_method_analysis___Program___dump_unreachable
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[2]);
-  CALL_program___Program___with_each_methods(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_analysis___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init_4));
-  /* ./analysis//reachable_from_init_method_analysis.nit:49 */
+  CALL_program___Program___with_each_methods(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_global___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init_4));
+  /* global/reachable_from_init_method_analysis.nit:49 */
   CALL_standard___stream___IOS___close(fra.me.REG[2])(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_analysis___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init_4(struct stack_frame_t *closctx, val_t p0){
+  void OC_global___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init_4(struct stack_frame_t *closctx, val_t p0){
     struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
     val_t REGB0;
     val_t REGB1;
     val_t tmp;
       static val_t once_value_5; /* Once value */
       static val_t once_value_6; /* Once value */
-    /* ./analysis//reachable_from_init_method_analysis.nit:44 */
+    /* global/reachable_from_init_method_analysis.nit:44 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis;
+    fra.me.file = LOCATE_global___reachable_from_init_method_analysis;
     fra.me.line = 44;
-    fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init;
+    fra.me.meth = LOCATE_global___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init;
     fra.me.has_broke = 0;
     fra.me.REG_size = 3;
     fra.me.nitni_local_ref_head = NULL;
@@ -236,27 +236,27 @@ void analysis___reachable_from_init_method_analysis___Program___dump_unreachable
     fra.me.REG[1] = NIT_NULL;
     fra.me.REG[2] = NIT_NULL;
     fra.me.REG[0] = p0;
-    /* ./analysis//reachable_from_init_method_analysis.nit:45 */
-    fra.me.REG[1] = CALL_analysis___reachable_from_init_method_analysis___Program___rfima(closctx->REG[0])(closctx->REG[0]);
+    /* global/reachable_from_init_method_analysis.nit:45 */
+    fra.me.REG[1] = CALL_global___reachable_from_init_method_analysis___Program___rfima(closctx->REG[0])(closctx->REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_from_init_method_analysis, 45);
+      nit_abort("Reciever is null", NULL, LOCATE_global___reachable_from_init_method_analysis, 45);
     }
-    REGB0 = CALL_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_method_reachable_from_init(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+    REGB0 = CALL_global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_method_reachable_from_init(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      fra.me.REG[1] = CALL_analysis___reachable_method_analysis___Program___rma(closctx->REG[0])(closctx->REG[0]);
+      fra.me.REG[1] = CALL_global___reachable_method_analysis___Program___rma(closctx->REG[0])(closctx->REG[0]);
       REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_from_init_method_analysis, 45);
+        nit_abort("Reciever is null", NULL, LOCATE_global___reachable_from_init_method_analysis, 45);
       }
-      REGB0 = CALL_analysis___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+      REGB0 = CALL_global___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
     } else {
       REGB1 = TAG_Bool(false);
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./analysis//reachable_from_init_method_analysis.nit:46 */
+      /* global/reachable_from_init_method_analysis.nit:46 */
       REGB0 = TAG_Int(3);
       fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_5) {
@@ -285,60 +285,44 @@ void analysis___reachable_from_init_method_analysis___Program___dump_unreachable
     stack_frame_head = fra.me.prev;
     return;
   }
-val_t analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(val_t p0, val_t p1){
+val_t global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis;
   fra.me.line = 57;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./analysis//reachable_from_init_method_analysis.nit:57 */
-  nit_abort("Deferred method called", NULL, LOCATE_analysis___reachable_from_init_method_analysis, 57);
+  /* global/reachable_from_init_method_analysis.nit:57 */
+  nit_abort("Deferred method called", NULL, LOCATE_global___reachable_from_init_method_analysis, 57);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
-val_t analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_method_reachable_from_init(val_t p0, val_t p1){
+val_t global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_method_reachable_from_init(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis;
   fra.me.line = 58;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_method_reachable_from_init;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_method_reachable_from_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./analysis//reachable_from_init_method_analysis.nit:58 */
-  nit_abort("Deferred method called", NULL, LOCATE_analysis___reachable_from_init_method_analysis, 58);
+  /* global/reachable_from_init_method_analysis.nit:58 */
+  nit_abort("Deferred method called", NULL, LOCATE_global___reachable_from_init_method_analysis, 58);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
-void analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init(val_t p0, int* init_table){
-  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis].i;
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  if (init_table[itpos0]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-  init_table[itpos0] = 1;
-  return;
-}
-val_t analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(val_t p0, val_t p1){
+val_t global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis;
   fra.me.line = 65;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
@@ -346,21 +330,21 @@ val_t analysis___reachable_from_init_method_analysis___DefaultReachableFromInitM
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//reachable_from_init_method_analysis.nit:65 */
+  /* global/reachable_from_init_method_analysis.nit:65 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
-val_t analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_method_reachable_from_init(val_t p0, val_t p1){
+val_t global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_method_reachable_from_init(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis;
   fra.me.line = 66;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_method_reachable_from_init;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_method_reachable_from_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
@@ -368,30 +352,28 @@ val_t analysis___reachable_from_init_method_analysis___DefaultReachableFromInitM
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//reachable_from_init_method_analysis.nit:66 */
+  /* global/reachable_from_init_method_analysis.nit:66 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
-void analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init(val_t p0, int* init_table){
-  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis].i;
+void global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init(val_t p0, int* init_table){
+  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos1]) return;
+  if (init_table[itpos0]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis;
   fra.me.line = 68;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//reachable_from_init_method_analysis.nit:68 */
-  CALL_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   stack_frame_head = fra.me.prev;
-  init_table[itpos1] = 1;
+  init_table[itpos0] = 1;
   return;
 }
diff --git a/c_src/global___reachable_from_init_method_analysis._sep.h b/c_src/global___reachable_from_init_method_analysis._sep.h
new file mode 100644 (file)
index 0000000..4fb5b79
--- /dev/null
@@ -0,0 +1,59 @@
+/* This C header file is generated by NIT to compile modules and programs that requires ./global/reachable_from_init_method_analysis. */
+#ifndef global___reachable_from_init_method_analysis_sep
+#define global___reachable_from_init_method_analysis_sep
+#include "global___reachable_method_analysis._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis[];
+
+extern const classtable_elt_t VFT_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis[];
+extern const char *LOCATE_global___reachable_from_init_method_analysis;
+extern const int SFT_global___reachable_from_init_method_analysis[];
+#define ATTR_global___reachable_from_init_method_analysis___Program____rfima(recv) ATTR(recv, (SFT_global___reachable_from_init_method_analysis[0] + 0))
+#define CALL_global___reachable_from_init_method_analysis___Program___rfima(recv) ((global___reachable_from_init_method_analysis___Program___rfima_t)CALL((recv), (SFT_global___reachable_from_init_method_analysis[1] + 0)))
+#define CALL_global___reachable_from_init_method_analysis___Program___rfima__eq(recv) ((global___reachable_from_init_method_analysis___Program___rfima__eq_t)CALL((recv), (SFT_global___reachable_from_init_method_analysis[1] + 1)))
+#define CALL_global___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init(recv) ((global___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init_t)CALL((recv), (SFT_global___reachable_from_init_method_analysis[1] + 2)))
+#define CALL_global___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init(recv) ((global___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init_t)CALL((recv), (SFT_global___reachable_from_init_method_analysis[1] + 3)))
+#define ID_global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis (SFT_global___reachable_from_init_method_analysis[2])
+#define COLOR_global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis (SFT_global___reachable_from_init_method_analysis[3])
+#define INIT_TABLE_POS_global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis (SFT_global___reachable_from_init_method_analysis[4] + 0)
+#define CALL_global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(recv) ((global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init_t)CALL((recv), (SFT_global___reachable_from_init_method_analysis[4] + 1)))
+#define CALL_global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_method_reachable_from_init(recv) ((global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_method_reachable_from_init_t)CALL((recv), (SFT_global___reachable_from_init_method_analysis[4] + 2)))
+#define ID_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis (SFT_global___reachable_from_init_method_analysis[5])
+#define COLOR_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis (SFT_global___reachable_from_init_method_analysis[6])
+#define INIT_TABLE_POS_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis (SFT_global___reachable_from_init_method_analysis[7] + 0)
+#define CALL_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init(recv) ((global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init_t)CALL((recv), (SFT_global___reachable_from_init_method_analysis[7] + 1)))
+static const char * const LOCATE_global___reachable_from_init_method_analysis___Program___rfima = "reachable_from_init_method_analysis::Program::rfima";
+val_t global___reachable_from_init_method_analysis___Program___rfima(val_t p0);
+typedef val_t (*global___reachable_from_init_method_analysis___Program___rfima_t)(val_t p0);
+static const char * const LOCATE_global___reachable_from_init_method_analysis___Program___rfima__eq = "reachable_from_init_method_analysis::Program::rfima=";
+void global___reachable_from_init_method_analysis___Program___rfima__eq(val_t p0, val_t p1);
+typedef void (*global___reachable_from_init_method_analysis___Program___rfima__eq_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init = "reachable_from_init_method_analysis::Program::dump_reachable_methods_from_init";
+void global___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init(val_t p0, val_t p1);
+typedef void (*global___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init_t)(val_t p0, val_t p1);
+  void OC_global___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init_4(struct stack_frame_t *closctx, val_t p0);
+  typedef void (*OC_global___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init_4_t)(struct stack_frame_t *closctx, val_t p0);
+static const char * const LOCATE_global___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init = "reachable_from_init_method_analysis::Program::dump_unreachable_methods_from_init";
+void global___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init(val_t p0, val_t p1);
+typedef void (*global___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init_t)(val_t p0, val_t p1);
+  void OC_global___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init_4(struct stack_frame_t *closctx, val_t p0);
+  typedef void (*OC_global___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init_4_t)(struct stack_frame_t *closctx, val_t p0);
+val_t NEW_Program_program___Program___init(val_t p0, val_t p1);
+static const char * const LOCATE_global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init = "reachable_from_init_method_analysis::ReachableFromInitMethodAnalysis::is_iroutine_reachable_from_init";
+val_t global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(val_t p0, val_t p1);
+typedef val_t (*global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_method_reachable_from_init = "reachable_from_init_method_analysis::ReachableFromInitMethodAnalysis::is_method_reachable_from_init";
+val_t global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_method_reachable_from_init(val_t p0, val_t p1);
+typedef val_t (*global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_method_reachable_from_init_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init = "reachable_from_init_method_analysis::DefaultReachableFromInitMethodAnalysis::(reachable_from_init_method_analysis::ReachableFromInitMethodAnalysis::is_iroutine_reachable_from_init)";
+val_t global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(val_t p0, val_t p1);
+typedef val_t (*global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_method_reachable_from_init = "reachable_from_init_method_analysis::DefaultReachableFromInitMethodAnalysis::(reachable_from_init_method_analysis::ReachableFromInitMethodAnalysis::is_method_reachable_from_init)";
+val_t global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_method_reachable_from_init(val_t p0, val_t p1);
+typedef val_t (*global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_method_reachable_from_init_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init = "reachable_from_init_method_analysis::DefaultReachableFromInitMethodAnalysis::init";
+void global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init(val_t p0, int* init_table);
+typedef void (*global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init_t)(val_t p0, int* init_table);
+val_t NEW_DefaultReachableFromInitMethodAnalysis_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init();
+#endif
@@ -1,60 +1,60 @@
-/* This C file is generated by NIT to compile module analysis___reachable_from_init_method_analysis_impl. */
-#include "analysis___reachable_from_init_method_analysis_impl._sep.h"
-val_t analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___program(val_t p0){
+/* This C file is generated by NIT to compile module global___reachable_from_init_method_analysis_impl. */
+#include "global___reachable_from_init_method_analysis_impl._sep.h"
+val_t global___reachable_from_init_method_analysis_impl___RFIMABuilder___program(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
   fra.me.line = 25;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___program;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___program;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:25 */
-  REGB0 = TAG_Bool(ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra.me.REG[0])!=NIT_NULL);
+  /* global/reachable_from_init_method_analysis_impl.nit:25 */
+  REGB0 = TAG_Bool(ATTR_global___reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_program", LOCATE_analysis___reachable_from_init_method_analysis_impl, 25);
+    nit_abort("Uninitialized attribute %s", "_program", LOCATE_global___reachable_from_init_method_analysis_impl, 25);
   }
-  fra.me.REG[0] = ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_global___reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___context(val_t p0){
+val_t global___reachable_from_init_method_analysis_impl___RFIMABuilder___context(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
   fra.me.line = 26;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___context;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___context;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:26 */
-  REGB0 = TAG_Bool(ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder____context(fra.me.REG[0])!=NIT_NULL);
+  /* global/reachable_from_init_method_analysis_impl.nit:26 */
+  REGB0 = TAG_Bool(ATTR_global___reachable_from_init_method_analysis_impl___RFIMABuilder____context(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_context", LOCATE_analysis___reachable_from_init_method_analysis_impl, 26);
+    nit_abort("Uninitialized attribute %s", "_context", LOCATE_global___reachable_from_init_method_analysis_impl, 26);
   }
-  fra.me.REG[0] = ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder____context(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_global___reachable_from_init_method_analysis_impl___RFIMABuilder____context(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-void analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___init(val_t p0, val_t p1, int* init_table){
-  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder].i;
+void global___reachable_from_init_method_analysis_impl___RFIMABuilder___init(val_t p0, val_t p1, int* init_table){
+  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___reachable_from_init_method_analysis_impl___RFIMABuilder].i;
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   if (init_table[itpos0]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
   fra.me.line = 28;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___init;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
@@ -62,19 +62,19 @@ void analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___init(v
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:29 */
-  ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/reachable_from_init_method_analysis_impl.nit:29 */
+  ATTR_global___reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
   return;
 }
-void analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work(val_t p0){
+void global___reachable_from_init_method_analysis_impl___RFIMABuilder___work(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
   fra.me.line = 32;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
@@ -82,42 +82,42 @@ void analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work(v
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:32 */
+  /* global/reachable_from_init_method_analysis_impl.nit:32 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:33 */
-  fra.me.REG[2] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___program(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_program___Program___with_each_live_local_classes(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work_1));
+  /* global/reachable_from_init_method_analysis_impl.nit:33 */
+  fra.me.REG[2] = CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___program(fra.me.REG[1])(fra.me.REG[1]);
+  CALL_program___Program___with_each_live_local_classes(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work_1));
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work_1(struct stack_frame_t *closctx, val_t p0){
+  void OC_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work_1(struct stack_frame_t *closctx, val_t p0){
     struct {struct stack_frame_t me;} fra;
     val_t tmp;
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
+    fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
     fra.me.line = 33;
-    fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work;
+    fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work;
     fra.me.has_broke = 0;
     fra.me.REG_size = 1;
     fra.me.nitni_local_ref_head = NULL;
     fra.me.REG[0] = NIT_NULL;
     fra.me.REG[0] = p0;
     closctx->REG[2] = fra.me.REG[0];
-    /* ./analysis//reachable_from_init_method_analysis_impl.nit:35 */
+    /* global/reachable_from_init_method_analysis_impl.nit:35 */
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(closctx->REG[2])(closctx->REG[2]);
-    CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], closctx, ((fun_t)OC_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work_2));
+    CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], closctx, ((fun_t)OC_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work_2));
     stack_frame_head = fra.me.prev;
     return;
   }
-    void OC_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+    void OC_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
       struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
       val_t REGB0;
       fun_t CREG[1];
       val_t tmp;
       fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-      fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
+      fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
       fra.me.line = 0;
-      fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work;
+      fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work;
       fra.me.has_broke = 0;
       fra.me.REG_size = 3;
       fra.me.nitni_local_ref_head = NULL;
@@ -128,93 +128,93 @@ void analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work(v
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./analysis//reachable_from_init_method_analysis_impl.nit:36 */
+      /* global/reachable_from_init_method_analysis_impl.nit:36 */
       fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
-      /* ./analysis//reachable_from_init_method_analysis_impl.nit:37 */
+      /* global/reachable_from_init_method_analysis_impl.nit:37 */
       fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
       REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra.me.REG[1])(fra.me.REG[1], closctx->REG[2]);
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
         goto label3;
       }
-      /* ./analysis//reachable_from_init_method_analysis_impl.nit:38 */
+      /* global/reachable_from_init_method_analysis_impl.nit:38 */
       REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 38);
+        nit_abort("Assert failed", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 38);
       }
-      /* ./analysis//reachable_from_init_method_analysis_impl.nit:39 */
-      fra.me.REG[1] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___program(closctx->REG[1])(closctx->REG[1]);
-      fra.me.REG[1] = CALL_analysis___reachable_method_analysis___Program___rma(fra.me.REG[1])(fra.me.REG[1]);
-      REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_analysis___reachable_method_analysis___ReachableMethodAnalysis, ID_analysis___reachable_method_analysis___ReachableMethodAnalysis)) /*cast ReachableMethodAnalysis*/;
+      /* global/reachable_from_init_method_analysis_impl.nit:39 */
+      fra.me.REG[1] = CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___program(closctx->REG[1])(closctx->REG[1]);
+      fra.me.REG[1] = CALL_global___reachable_method_analysis___Program___rma(fra.me.REG[1])(fra.me.REG[1]);
+      REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_global___reachable_method_analysis___ReachableMethodAnalysis, ID_global___reachable_method_analysis___ReachableMethodAnalysis)) /*cast ReachableMethodAnalysis*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Cast failed", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 39);
+        nit_abort("Cast failed", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 39);
       }
       REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 39);
+        nit_abort("Reciever is null", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 39);
       }
-      REGB0 = CALL_analysis___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+      REGB0 = CALL_global___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
         goto label3;
       }
-      /* ./analysis//reachable_from_init_method_analysis_impl.nit:40 */
+      /* global/reachable_from_init_method_analysis_impl.nit:40 */
       fra.me.REG[1] = CALL_program___MMLocalClass___new_instance_iroutine(closctx->REG[2])(closctx->REG[2]);
       REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
         goto label3;
       }
-      /* ./analysis//reachable_from_init_method_analysis_impl.nit:41 */
+      /* global/reachable_from_init_method_analysis_impl.nit:41 */
       fra.me.REG[1] = CALL_program___MMLocalClass___new_instance_iroutine(closctx->REG[2])(closctx->REG[2]);
       fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-      /* ./analysis//reachable_from_init_method_analysis_impl.nit:44 */
-      fra.me.REG[1] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___context(closctx->REG[1])(closctx->REG[1]);
-      fra.me.REG[1] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra.me.REG[1])(fra.me.REG[1]);
+      /* global/reachable_from_init_method_analysis_impl.nit:44 */
+      fra.me.REG[1] = CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___context(closctx->REG[1])(closctx->REG[1]);
+      fra.me.REG[1] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra.me.REG[1])(fra.me.REG[1]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-      /* ./analysis//reachable_from_init_method_analysis_impl.nit:45 */
-      fra.me.REG[1] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___context(closctx->REG[1])(closctx->REG[1]);
-      fra.me.REG[2] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___program(closctx->REG[1])(closctx->REG[1]);
-      fra.me.REG[2] = NEW_RFIMAVisitor_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(fra.me.REG[1], fra.me.REG[2]);
+      /* global/reachable_from_init_method_analysis_impl.nit:45 */
+      fra.me.REG[1] = CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___context(closctx->REG[1])(closctx->REG[1]);
+      fra.me.REG[2] = CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___program(closctx->REG[1])(closctx->REG[1]);
+      fra.me.REG[2] = NEW_RFIMAVisitor_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(fra.me.REG[1], fra.me.REG[2]);
       CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
       label3: while(0);
       stack_frame_head = fra.me.prev;
       return;
     }
-val_t analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(val_t p0){
+val_t global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
   fra.me.line = 53;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:53 */
-  REGB0 = TAG_Bool(ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAContext____reachable_from_init_iroutines(fra.me.REG[0])!=NIT_NULL);
+  /* global/reachable_from_init_method_analysis_impl.nit:53 */
+  REGB0 = TAG_Bool(ATTR_global___reachable_from_init_method_analysis_impl___RFIMAContext____reachable_from_init_iroutines(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_reachable_from_init_iroutines", LOCATE_analysis___reachable_from_init_method_analysis_impl, 53);
+    nit_abort("Uninitialized attribute %s", "_reachable_from_init_iroutines", LOCATE_global___reachable_from_init_method_analysis_impl, 53);
   }
-  fra.me.REG[0] = ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAContext____reachable_from_init_iroutines(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_global___reachable_from_init_method_analysis_impl___RFIMAContext____reachable_from_init_iroutines(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init(val_t p0, val_t p1){
+val_t global___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
   fra.me.line = 55;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
@@ -222,7 +222,7 @@ val_t analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_ir
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:56 */
+  /* global/reachable_from_init_method_analysis_impl.nit:56 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -237,7 +237,7 @@ val_t analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_ir
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    fra.me.REG[0] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra.me.REG[0])(fra.me.REG[0]);
+    fra.me.REG[0] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   } else {
     REGB1 = TAG_Bool(false);
@@ -248,14 +248,14 @@ val_t analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_ir
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
-val_t analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init(val_t p0, val_t p1){
+val_t global___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
   fra.me.line = 59;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
@@ -263,69 +263,85 @@ val_t analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_me
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:60 */
+  /* global/reachable_from_init_method_analysis_impl.nit:60 */
   fra.me.REG[1] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = CALL_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  REGB0 = CALL_global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
-val_t analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(val_t p0){
+void global___reachable_from_init_method_analysis_impl___RFIMAContext___init(val_t p0, int* init_table){
+  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___reachable_from_init_method_analysis_impl___RFIMAContext].i;
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  if (init_table[itpos1]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAContext___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+  init_table[itpos1] = 1;
+  return;
+}
+val_t global___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
   fra.me.line = 66;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___context;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___context;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:66 */
-  REGB0 = TAG_Bool(ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra.me.REG[0])!=NIT_NULL);
+  /* global/reachable_from_init_method_analysis_impl.nit:66 */
+  REGB0 = TAG_Bool(ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_context", LOCATE_analysis___reachable_from_init_method_analysis_impl, 66);
+    nit_abort("Uninitialized attribute %s", "_context", LOCATE_global___reachable_from_init_method_analysis_impl, 66);
   }
-  fra.me.REG[0] = ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(val_t p0){
+val_t global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
   fra.me.line = 67;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:67 */
-  REGB0 = TAG_Bool(ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra.me.REG[0])!=NIT_NULL);
+  /* global/reachable_from_init_method_analysis_impl.nit:67 */
+  REGB0 = TAG_Bool(ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_program", LOCATE_analysis___reachable_from_init_method_analysis_impl, 67);
+    nit_abort("Uninitialized attribute %s", "_program", LOCATE_global___reachable_from_init_method_analysis_impl, 67);
   }
-  fra.me.REG[0] = ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor].i;
+void global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
+  int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___reachable_from_init_method_analysis_impl___RFIMAVisitor].i;
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t tmp;
-  if (init_table[itpos1]) return;
+  if (init_table[itpos2]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
   fra.me.line = 69;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -336,25 +352,25 @@ void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:69 */
+  /* global/reachable_from_init_method_analysis_impl.nit:69 */
   fra.me.REG[3] = fra.me.REG[0];
   CALL_icode___icode_tools___ICodeVisitor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:70 */
-  ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:71 */
-  ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra.me.REG[3]) = fra.me.REG[2];
+  /* global/reachable_from_init_method_analysis_impl.nit:70 */
+  ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra.me.REG[3]) = fra.me.REG[1];
+  /* global/reachable_from_init_method_analysis_impl.nit:71 */
+  ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra.me.REG[3]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
-  init_table[itpos1] = 1;
+  init_table[itpos2] = 1;
   return;
 }
-void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(val_t p0, val_t p1){
+void global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
   fra.me.line = 74;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
@@ -363,31 +379,31 @@ void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___proces
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:75 */
-  fra.me.REG[2] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = CALL_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  /* global/reachable_from_init_method_analysis_impl.nit:75 */
+  fra.me.REG[2] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = CALL_global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:76 */
-  fra.me.REG[2] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[2] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra.me.REG[2])(fra.me.REG[2]);
+  /* global/reachable_from_init_method_analysis_impl.nit:76 */
+  fra.me.REG[2] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[2] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:77 */
+  /* global/reachable_from_init_method_analysis_impl.nit:77 */
   CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return;
 }
-void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode(val_t p0, val_t p1){
+void global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
+  fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
   fra.me.line = 80;
-  fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode;
+  fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -399,20 +415,20 @@ void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:80 */
+  /* global/reachable_from_init_method_analysis_impl.nit:80 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:82 */
+  /* global/reachable_from_init_method_analysis_impl.nit:82 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___IStaticCall, ID_icode___icode_base___IStaticCall)) /*cast IStaticCall*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//reachable_from_init_method_analysis_impl.nit:84 */
+    /* global/reachable_from_init_method_analysis_impl.nit:84 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 84);
+      nit_abort("Reciever is null", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 84);
     }
     fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
     fra.me.REG[4] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[4])(fra.me.REG[4]);
-    /* ./analysis//reachable_from_init_method_analysis_impl.nit:85 */
+    /* global/reachable_from_init_method_analysis_impl.nit:85 */
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -427,27 +443,27 @@ void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
+      CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
     }
   } else {
-    /* ./analysis//reachable_from_init_method_analysis_impl.nit:86 */
+    /* global/reachable_from_init_method_analysis_impl.nit:86 */
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___INew, ID_icode___icode_base___INew)) /*cast INew*/;
     if (UNTAG_Bool(REGB0)) {
-      /* ./analysis//reachable_from_init_method_analysis_impl.nit:88 */
+      /* global/reachable_from_init_method_analysis_impl.nit:88 */
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 88);
+        nit_abort("Reciever is null", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 88);
       }
       fra.me.REG[4] = CALL_icode___icode_base___INew___stype(fra.me.REG[3])(fra.me.REG[3]);
-      /* ./analysis//reachable_from_init_method_analysis_impl.nit:89 */
-      fra.me.REG[5] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra.me.REG[2])(fra.me.REG[2]);
+      /* global/reachable_from_init_method_analysis_impl.nit:89 */
+      fra.me.REG[5] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra.me.REG[2])(fra.me.REG[2]);
       fra.me.REG[5] = CALL_program___Program___main_module(fra.me.REG[5])(fra.me.REG[5]);
       fra.me.REG[5] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
       fra.me.REG[5] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[5])(fra.me.REG[5]);
-      /* ./analysis//reachable_from_init_method_analysis_impl.nit:90 */
+      /* global/reachable_from_init_method_analysis_impl.nit:90 */
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 90);
+        nit_abort("Reciever is null", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 90);
       }
       fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
       fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[4])(fra.me.REG[4]);
@@ -455,45 +471,45 @@ void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_
       REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Cast failed", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 90);
+        nit_abort("Cast failed", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 90);
       }
-      /* ./analysis//reachable_from_init_method_analysis_impl.nit:91 */
+      /* global/reachable_from_init_method_analysis_impl.nit:91 */
       REGB0 = CALL_metamodel___abstractmetamodel___MMMethod___is_extern(fra.me.REG[4])(fra.me.REG[4]);
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
-        /* ./analysis//reachable_from_init_method_analysis_impl.nit:92 */
+        /* global/reachable_from_init_method_analysis_impl.nit:92 */
         fra.me.REG[5] = CALL_program___MMLocalClass___new_instance_iroutine(fra.me.REG[5])(fra.me.REG[5]);
         fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-        /* ./analysis//reachable_from_init_method_analysis_impl.nit:93 */
-        CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
+        /* global/reachable_from_init_method_analysis_impl.nit:93 */
+        CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
       }
     } else {
-      /* ./analysis//reachable_from_init_method_analysis_impl.nit:95 */
+      /* global/reachable_from_init_method_analysis_impl.nit:95 */
       REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___ISuper, ID_icode___icode_base___ISuper)) /*cast ISuper*/;
       if (UNTAG_Bool(REGB0)) {
-        /* ./analysis//reachable_from_init_method_analysis_impl.nit:97 */
+        /* global/reachable_from_init_method_analysis_impl.nit:97 */
         REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
-          nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 97);
+          nit_abort("Reciever is null", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 97);
         }
         fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
-        /* ./analysis//reachable_from_init_method_analysis_impl.nit:98 */
+        /* global/reachable_from_init_method_analysis_impl.nit:98 */
         fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[4])(fra.me.REG[4]);
         fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[4])(fra.me.REG[4]);
-        CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_1));
+        CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_1));
       } else {
-        /* ./analysis//reachable_from_init_method_analysis_impl.nit:104 */
+        /* global/reachable_from_init_method_analysis_impl.nit:104 */
         REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___ICall, ID_icode___icode_base___ICall)) /*cast ICall*/;
         if (UNTAG_Bool(REGB0)) {
-          /* ./analysis//reachable_from_init_method_analysis_impl.nit:106 */
+          /* global/reachable_from_init_method_analysis_impl.nit:106 */
           REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
           if (UNTAG_Bool(REGB0)) {
-            nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 106);
+            nit_abort("Reciever is null", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 106);
           }
           fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
-          /* ./analysis//reachable_from_init_method_analysis_impl.nit:107 */
+          /* global/reachable_from_init_method_analysis_impl.nit:107 */
           fra.me.REG[5] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[4])(fra.me.REG[4]);
-          /* ./analysis//reachable_from_init_method_analysis_impl.nit:108 */
+          /* global/reachable_from_init_method_analysis_impl.nit:108 */
           REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
           if (UNTAG_Bool(REGB0)) {
           } else {
@@ -508,30 +524,30 @@ void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_
           }
           REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
           if (UNTAG_Bool(REGB0)) {
-            CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
+            CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
           }
-          /* ./analysis//reachable_from_init_method_analysis_impl.nit:109 */
+          /* global/reachable_from_init_method_analysis_impl.nit:109 */
           fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[4])(fra.me.REG[4]);
           fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___smallers(fra.me.REG[4])(fra.me.REG[4]);
-          CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_2));
+          CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_2));
         } else {
-          /* ./analysis//reachable_from_init_method_analysis_impl.nit:115 */
+          /* global/reachable_from_init_method_analysis_impl.nit:115 */
           REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___ICheckInstance, ID_icode___icode_base___ICheckInstance)) /*cast ICheckInstance*/;
           if (UNTAG_Bool(REGB0)) {
-            /* ./analysis//reachable_from_init_method_analysis_impl.nit:116 */
+            /* global/reachable_from_init_method_analysis_impl.nit:116 */
             REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
             if (UNTAG_Bool(REGB0)) {
-              nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 116);
+              nit_abort("Reciever is null", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 116);
             }
             fra.me.REG[5] = CALL_icode___icode_base___ICheckInstance___stype(fra.me.REG[3])(fra.me.REG[3]);
-            /* ./analysis//reachable_from_init_method_analysis_impl.nit:117 */
-            fra.me.REG[4] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra.me.REG[2])(fra.me.REG[2]);
+            /* global/reachable_from_init_method_analysis_impl.nit:117 */
+            fra.me.REG[4] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra.me.REG[2])(fra.me.REG[2]);
             fra.me.REG[4] = CALL_program___Program___main_module(fra.me.REG[4])(fra.me.REG[4]);
             fra.me.REG[4] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
             fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[4])(fra.me.REG[4]);
-            /* ./analysis//reachable_from_init_method_analysis_impl.nit:118 */
+            /* global/reachable_from_init_method_analysis_impl.nit:118 */
             fra.me.REG[4] = CALL_program___MMLocalClass___checknew_iroutine(fra.me.REG[4])(fra.me.REG[4]);
-            /* ./analysis//reachable_from_init_method_analysis_impl.nit:119 */
+            /* global/reachable_from_init_method_analysis_impl.nit:119 */
             REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
             if (UNTAG_Bool(REGB0)) {
             } else {
@@ -546,26 +562,26 @@ void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_
             }
             REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
             if (UNTAG_Bool(REGB0)) {
-              CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
+              CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
             }
           } else {
-            /* ./analysis//reachable_from_init_method_analysis_impl.nit:120 */
+            /* global/reachable_from_init_method_analysis_impl.nit:120 */
             REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___IInitAttributes, ID_icode___icode_base___IInitAttributes)) /*cast IInitAttributes*/;
             if (UNTAG_Bool(REGB0)) {
-              /* ./analysis//reachable_from_init_method_analysis_impl.nit:121 */
+              /* global/reachable_from_init_method_analysis_impl.nit:121 */
               REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
               if (UNTAG_Bool(REGB0)) {
-               nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 121);
+               nit_abort("Reciever is null", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 121);
               }
               fra.me.REG[3] = CALL_icode___icode_base___IInitAttributes___stype(fra.me.REG[3])(fra.me.REG[3]);
-              /* ./analysis//reachable_from_init_method_analysis_impl.nit:122 */
-              fra.me.REG[4] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra.me.REG[2])(fra.me.REG[2]);
+              /* global/reachable_from_init_method_analysis_impl.nit:122 */
+              fra.me.REG[4] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra.me.REG[2])(fra.me.REG[2]);
               fra.me.REG[4] = CALL_program___Program___main_module(fra.me.REG[4])(fra.me.REG[4]);
               fra.me.REG[4] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
               fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[4])(fra.me.REG[4]);
-              /* ./analysis//reachable_from_init_method_analysis_impl.nit:123 */
+              /* global/reachable_from_init_method_analysis_impl.nit:123 */
               fra.me.REG[4] = CALL_program___MMLocalClass___init_var_iroutine(fra.me.REG[4])(fra.me.REG[4]);
-              /* ./analysis//reachable_from_init_method_analysis_impl.nit:124 */
+              /* global/reachable_from_init_method_analysis_impl.nit:124 */
               REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
               if (UNTAG_Bool(REGB0)) {
               } else {
@@ -580,7 +596,7 @@ void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_
               }
               REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
               if (UNTAG_Bool(REGB0)) {
-               CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
+               CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
               }
             }
           }
@@ -588,21 +604,21 @@ void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_
       }
     }
   }
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:126 */
-  CALL_SUPER_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  /* global/reachable_from_init_method_analysis_impl.nit:126 */
+  CALL_SUPER_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
 }
-        void OC_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+        void OC_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
           struct {struct stack_frame_t me;} fra;
           val_t REGB0;
           val_t REGB1;
           fun_t CREG[1];
           val_t tmp;
           fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-          fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
+          fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
           fra.me.line = 0;
-          fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode;
+          fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode;
           fra.me.has_broke = 0;
           fra.me.REG_size = 1;
           fra.me.nitni_local_ref_head = NULL;
@@ -611,12 +627,12 @@ void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_
           fra.me.closure_funs = CREG;
           fra.me.REG[0] = p0;
           CREG[0] = clos_fun0;
-          /* ./analysis//reachable_from_init_method_analysis_impl.nit:99 */
+          /* global/reachable_from_init_method_analysis_impl.nit:99 */
           REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
           if (UNTAG_Bool(REGB0)) {
-            /* ./analysis//reachable_from_init_method_analysis_impl.nit:100 */
+            /* global/reachable_from_init_method_analysis_impl.nit:100 */
             fra.me.REG[0] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
-            /* ./analysis//reachable_from_init_method_analysis_impl.nit:101 */
+            /* global/reachable_from_init_method_analysis_impl.nit:101 */
             REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
             if (UNTAG_Bool(REGB0)) {
             } else {
@@ -631,22 +647,22 @@ void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_
             }
             REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
             if (UNTAG_Bool(REGB0)) {
-              CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
+              CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
             }
           }
           stack_frame_head = fra.me.prev;
           return;
         }
-          void OC_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+          void OC_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
             struct {struct stack_frame_t me;} fra;
             val_t REGB0;
             val_t REGB1;
             fun_t CREG[1];
             val_t tmp;
             fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-            fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
+            fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
             fra.me.line = 0;
-            fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode;
+            fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode;
             fra.me.has_broke = 0;
             fra.me.REG_size = 1;
             fra.me.nitni_local_ref_head = NULL;
@@ -655,13 +671,13 @@ void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_
             fra.me.closure_funs = CREG;
             fra.me.REG[0] = p0;
             CREG[0] = clos_fun0;
-            /* ./analysis//reachable_from_init_method_analysis_impl.nit:110 */
+            /* global/reachable_from_init_method_analysis_impl.nit:110 */
             REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
             if (UNTAG_Bool(REGB0)) {
-              /* ./analysis//reachable_from_init_method_analysis_impl.nit:111 */
+              /* global/reachable_from_init_method_analysis_impl.nit:111 */
               fra.me.REG[0] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
               closctx->REG[5] = fra.me.REG[0];
-              /* ./analysis//reachable_from_init_method_analysis_impl.nit:112 */
+              /* global/reachable_from_init_method_analysis_impl.nit:112 */
               REGB0 = TAG_Bool(closctx->REG[5]==NIT_NULL);
               if (UNTAG_Bool(REGB0)) {
               } else {
@@ -676,7 +692,7 @@ void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_
               }
               REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
               if (UNTAG_Bool(REGB0)) {
-               CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(closctx->REG[2])(closctx->REG[2], closctx->REG[5]);
+               CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(closctx->REG[2])(closctx->REG[2], closctx->REG[5]);
               }
             }
             stack_frame_head = fra.me.prev;
diff --git a/c_src/global___reachable_from_init_method_analysis_impl._sep.h b/c_src/global___reachable_from_init_method_analysis_impl._sep.h
new file mode 100644 (file)
index 0000000..2e0f226
--- /dev/null
@@ -0,0 +1,92 @@
+/* This C header file is generated by NIT to compile modules and programs that requires ./global/reachable_from_init_method_analysis_impl. */
+#ifndef global___reachable_from_init_method_analysis_impl_sep
+#define global___reachable_from_init_method_analysis_impl_sep
+#include "global___reachable_from_init_method_analysis._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_global___reachable_from_init_method_analysis_impl___RFIMABuilder[];
+
+extern const classtable_elt_t VFT_global___reachable_from_init_method_analysis_impl___RFIMAContext[];
+
+extern const classtable_elt_t VFT_global___reachable_from_init_method_analysis_impl___RFIMAVisitor[];
+extern const char *LOCATE_global___reachable_from_init_method_analysis_impl;
+extern const int SFT_global___reachable_from_init_method_analysis_impl[];
+#define ID_global___reachable_from_init_method_analysis_impl___RFIMABuilder (SFT_global___reachable_from_init_method_analysis_impl[0])
+#define COLOR_global___reachable_from_init_method_analysis_impl___RFIMABuilder (SFT_global___reachable_from_init_method_analysis_impl[1])
+#define ATTR_global___reachable_from_init_method_analysis_impl___RFIMABuilder____program(recv) ATTR(recv, (SFT_global___reachable_from_init_method_analysis_impl[2] + 0))
+#define ATTR_global___reachable_from_init_method_analysis_impl___RFIMABuilder____context(recv) ATTR(recv, (SFT_global___reachable_from_init_method_analysis_impl[2] + 1))
+#define INIT_TABLE_POS_global___reachable_from_init_method_analysis_impl___RFIMABuilder (SFT_global___reachable_from_init_method_analysis_impl[3] + 0)
+#define CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___program(recv) ((global___reachable_from_init_method_analysis_impl___RFIMABuilder___program_t)CALL((recv), (SFT_global___reachable_from_init_method_analysis_impl[3] + 1)))
+#define CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___context(recv) ((global___reachable_from_init_method_analysis_impl___RFIMABuilder___context_t)CALL((recv), (SFT_global___reachable_from_init_method_analysis_impl[3] + 2)))
+#define CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___init(recv) ((global___reachable_from_init_method_analysis_impl___RFIMABuilder___init_t)CALL((recv), (SFT_global___reachable_from_init_method_analysis_impl[3] + 3)))
+#define CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work(recv) ((global___reachable_from_init_method_analysis_impl___RFIMABuilder___work_t)CALL((recv), (SFT_global___reachable_from_init_method_analysis_impl[3] + 4)))
+#define ID_global___reachable_from_init_method_analysis_impl___RFIMAContext (SFT_global___reachable_from_init_method_analysis_impl[4])
+#define COLOR_global___reachable_from_init_method_analysis_impl___RFIMAContext (SFT_global___reachable_from_init_method_analysis_impl[5])
+#define ATTR_global___reachable_from_init_method_analysis_impl___RFIMAContext____reachable_from_init_iroutines(recv) ATTR(recv, (SFT_global___reachable_from_init_method_analysis_impl[6] + 0))
+#define INIT_TABLE_POS_global___reachable_from_init_method_analysis_impl___RFIMAContext (SFT_global___reachable_from_init_method_analysis_impl[7] + 0)
+#define CALL_global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(recv) ((global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines_t)CALL((recv), (SFT_global___reachable_from_init_method_analysis_impl[7] + 1)))
+#define CALL_global___reachable_from_init_method_analysis_impl___RFIMAContext___init(recv) ((global___reachable_from_init_method_analysis_impl___RFIMAContext___init_t)CALL((recv), (SFT_global___reachable_from_init_method_analysis_impl[7] + 2)))
+#define ID_global___reachable_from_init_method_analysis_impl___RFIMAVisitor (SFT_global___reachable_from_init_method_analysis_impl[8])
+#define COLOR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor (SFT_global___reachable_from_init_method_analysis_impl[9])
+#define ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(recv) ATTR(recv, (SFT_global___reachable_from_init_method_analysis_impl[10] + 0))
+#define ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(recv) ATTR(recv, (SFT_global___reachable_from_init_method_analysis_impl[10] + 1))
+#define INIT_TABLE_POS_global___reachable_from_init_method_analysis_impl___RFIMAVisitor (SFT_global___reachable_from_init_method_analysis_impl[11] + 0)
+#define CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(recv) ((global___reachable_from_init_method_analysis_impl___RFIMAVisitor___context_t)CALL((recv), (SFT_global___reachable_from_init_method_analysis_impl[11] + 1)))
+#define CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(recv) ((global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program_t)CALL((recv), (SFT_global___reachable_from_init_method_analysis_impl[11] + 2)))
+#define CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(recv) ((global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init_t)CALL((recv), (SFT_global___reachable_from_init_method_analysis_impl[11] + 3)))
+#define CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(recv) ((global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call_t)CALL((recv), (SFT_global___reachable_from_init_method_analysis_impl[11] + 4)))
+#define CALL_SUPER_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode(recv) ((global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_t)CALL((recv), (SFT_global___reachable_from_init_method_analysis_impl[11] + 5)))
+static const char * const LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___program = "reachable_from_init_method_analysis_impl::RFIMABuilder::program";
+val_t global___reachable_from_init_method_analysis_impl___RFIMABuilder___program(val_t p0);
+typedef val_t (*global___reachable_from_init_method_analysis_impl___RFIMABuilder___program_t)(val_t p0);
+static const char * const LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___context = "reachable_from_init_method_analysis_impl::RFIMABuilder::context";
+val_t global___reachable_from_init_method_analysis_impl___RFIMABuilder___context(val_t p0);
+typedef val_t (*global___reachable_from_init_method_analysis_impl___RFIMABuilder___context_t)(val_t p0);
+static const char * const LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___init = "reachable_from_init_method_analysis_impl::RFIMABuilder::init";
+void global___reachable_from_init_method_analysis_impl___RFIMABuilder___init(val_t p0, val_t p1, int* init_table);
+typedef void (*global___reachable_from_init_method_analysis_impl___RFIMABuilder___init_t)(val_t p0, val_t p1, int* init_table);
+val_t NEW_RFIMABuilder_global___reachable_from_init_method_analysis_impl___RFIMABuilder___init(val_t p0);
+static const char * const LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work = "reachable_from_init_method_analysis_impl::RFIMABuilder::work";
+void global___reachable_from_init_method_analysis_impl___RFIMABuilder___work(val_t p0);
+typedef void (*global___reachable_from_init_method_analysis_impl___RFIMABuilder___work_t)(val_t p0);
+  void OC_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work_1(struct stack_frame_t *closctx, val_t p0);
+  typedef void (*OC_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work_1_t)(struct stack_frame_t *closctx, val_t p0);
+    typedef void (*CLOS_OC_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work_2_0)(struct stack_frame_t *);
+    void OC_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+    typedef void (*OC_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+static const char * const LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines = "reachable_from_init_method_analysis_impl::RFIMAContext::reachable_from_init_iroutines";
+val_t global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(val_t p0);
+typedef val_t (*global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines_t)(val_t p0);
+static const char * const LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init = "reachable_from_init_method_analysis_impl::RFIMAContext::(reachable_from_init_method_analysis::ReachableFromInitMethodAnalysis::is_iroutine_reachable_from_init)";
+val_t global___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init(val_t p0, val_t p1);
+typedef val_t (*global___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init = "reachable_from_init_method_analysis_impl::RFIMAContext::(reachable_from_init_method_analysis::ReachableFromInitMethodAnalysis::is_method_reachable_from_init)";
+val_t global___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init(val_t p0, val_t p1);
+typedef val_t (*global___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAContext___init = "reachable_from_init_method_analysis_impl::RFIMAContext::init";
+void global___reachable_from_init_method_analysis_impl___RFIMAContext___init(val_t p0, int* init_table);
+typedef void (*global___reachable_from_init_method_analysis_impl___RFIMAContext___init_t)(val_t p0, int* init_table);
+val_t NEW_RFIMAContext_global___reachable_from_init_method_analysis_impl___RFIMAContext___init();
+static const char * const LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___context = "reachable_from_init_method_analysis_impl::RFIMAVisitor::context";
+val_t global___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(val_t p0);
+typedef val_t (*global___reachable_from_init_method_analysis_impl___RFIMAVisitor___context_t)(val_t p0);
+static const char * const LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program = "reachable_from_init_method_analysis_impl::RFIMAVisitor::program";
+val_t global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(val_t p0);
+typedef val_t (*global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program_t)(val_t p0);
+static const char * const LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init = "reachable_from_init_method_analysis_impl::RFIMAVisitor::init";
+void global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table);
+typedef void (*global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init_t)(val_t p0, val_t p1, val_t p2, int* init_table);
+val_t NEW_RFIMAVisitor_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(val_t p0, val_t p1);
+static const char * const LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call = "reachable_from_init_method_analysis_impl::RFIMAVisitor::process_call";
+void global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(val_t p0, val_t p1);
+typedef void (*global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode = "reachable_from_init_method_analysis_impl::RFIMAVisitor::(icode_tools::ICodeVisitor::visit_icode)";
+void global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode(val_t p0, val_t p1);
+typedef void (*global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_t)(val_t p0, val_t p1);
+        typedef void (*CLOS_OC_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_1_0)(struct stack_frame_t *);
+        void OC_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+        typedef void (*OC_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+          typedef void (*CLOS_OC_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_2_0)(struct stack_frame_t *);
+          void OC_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+          typedef void (*OC_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+#endif
@@ -1,29 +1,29 @@
-/* This C file is generated by NIT to compile module analysis___reachable_method_analysis. */
-#include "analysis___reachable_method_analysis._sep.h"
-val_t analysis___reachable_method_analysis___Program___rma(val_t p0){
+/* This C file is generated by NIT to compile module global___reachable_method_analysis. */
+#include "global___reachable_method_analysis._sep.h"
+val_t global___reachable_method_analysis___Program___rma(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_method_analysis;
+  fra.me.file = LOCATE_global___reachable_method_analysis;
   fra.me.line = 24;
-  fra.me.meth = LOCATE_analysis___reachable_method_analysis___Program___rma;
+  fra.me.meth = LOCATE_global___reachable_method_analysis___Program___rma;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//reachable_method_analysis.nit:24 */
-  fra.me.REG[0] = ATTR_analysis___reachable_method_analysis___Program____rma(fra.me.REG[0]);
+  /* global/reachable_method_analysis.nit:24 */
+  fra.me.REG[0] = ATTR_global___reachable_method_analysis___Program____rma(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-void analysis___reachable_method_analysis___Program___rma__eq(val_t p0, val_t p1){
+void global___reachable_method_analysis___Program___rma__eq(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_method_analysis;
+  fra.me.file = LOCATE_global___reachable_method_analysis;
   fra.me.line = 24;
-  fra.me.meth = LOCATE_analysis___reachable_method_analysis___Program___rma__eq;
+  fra.me.meth = LOCATE_global___reachable_method_analysis___Program___rma__eq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
@@ -31,12 +31,12 @@ void analysis___reachable_method_analysis___Program___rma__eq(val_t p0, val_t p1
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//reachable_method_analysis.nit:24 */
-  ATTR_analysis___reachable_method_analysis___Program____rma(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/reachable_method_analysis.nit:24 */
+  ATTR_global___reachable_method_analysis___Program____rma(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
 }
-void analysis___reachable_method_analysis___Program___dump_reachable_methods(val_t p0, val_t p1, val_t p2){
+void global___reachable_method_analysis___Program___dump_reachable_methods(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
@@ -45,9 +45,9 @@ void analysis___reachable_method_analysis___Program___dump_reachable_methods(val
   static val_t once_value_3; /* Once value */
   static val_t once_value_4; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_method_analysis;
+  fra.me.file = LOCATE_global___reachable_method_analysis;
   fra.me.line = 27;
-  fra.me.meth = LOCATE_analysis___reachable_method_analysis___Program___dump_reachable_methods;
+  fra.me.meth = LOCATE_global___reachable_method_analysis___Program___dump_reachable_methods;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -59,7 +59,7 @@ void analysis___reachable_method_analysis___Program___dump_reachable_methods(val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./analysis//reachable_method_analysis.nit:29 */
+  /* global/reachable_method_analysis.nit:29 */
   REGB0 = TAG_Int(7);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -106,23 +106,23 @@ void analysis___reachable_method_analysis___Program___dump_reachable_methods(val
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[3]);
-  CALL_program___Program___with_each_methods(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_analysis___reachable_method_analysis___Program___dump_reachable_methods_5));
-  /* ./analysis//reachable_method_analysis.nit:35 */
+  CALL_program___Program___with_each_methods(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_global___reachable_method_analysis___Program___dump_reachable_methods_5));
+  /* global/reachable_method_analysis.nit:35 */
   CALL_standard___stream___IOS___close(fra.me.REG[3])(fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_analysis___reachable_method_analysis___Program___dump_reachable_methods_5(struct stack_frame_t *closctx, val_t p0){
+  void OC_global___reachable_method_analysis___Program___dump_reachable_methods_5(struct stack_frame_t *closctx, val_t p0){
     struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
     val_t REGB0;
     val_t tmp;
       static val_t once_value_6; /* Once value */
       static val_t once_value_7; /* Once value */
-    /* ./analysis//reachable_method_analysis.nit:30 */
+    /* global/reachable_method_analysis.nit:30 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_analysis___reachable_method_analysis;
+    fra.me.file = LOCATE_global___reachable_method_analysis;
     fra.me.line = 30;
-    fra.me.meth = LOCATE_analysis___reachable_method_analysis___Program___dump_reachable_methods;
+    fra.me.meth = LOCATE_global___reachable_method_analysis___Program___dump_reachable_methods;
     fra.me.has_broke = 0;
     fra.me.REG_size = 3;
     fra.me.nitni_local_ref_head = NULL;
@@ -130,15 +130,15 @@ void analysis___reachable_method_analysis___Program___dump_reachable_methods(val
     fra.me.REG[1] = NIT_NULL;
     fra.me.REG[2] = NIT_NULL;
     fra.me.REG[0] = p0;
-    /* ./analysis//reachable_method_analysis.nit:31 */
-    fra.me.REG[1] = CALL_analysis___reachable_method_analysis___Program___rma(closctx->REG[0])(closctx->REG[0]);
+    /* global/reachable_method_analysis.nit:31 */
+    fra.me.REG[1] = CALL_global___reachable_method_analysis___Program___rma(closctx->REG[0])(closctx->REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_method_analysis, 31);
+      nit_abort("Reciever is null", NULL, LOCATE_global___reachable_method_analysis, 31);
     }
-    REGB0 = CALL_analysis___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+    REGB0 = CALL_global___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./analysis//reachable_method_analysis.nit:32 */
+      /* global/reachable_method_analysis.nit:32 */
       REGB0 = TAG_Int(3);
       fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_6) {
@@ -167,7 +167,7 @@ void analysis___reachable_method_analysis___Program___dump_reachable_methods(val
     stack_frame_head = fra.me.prev;
     return;
   }
-void analysis___reachable_method_analysis___Program___dump_unreachable_methods(val_t p0, val_t p1, val_t p2){
+void global___reachable_method_analysis___Program___dump_unreachable_methods(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
@@ -176,9 +176,9 @@ void analysis___reachable_method_analysis___Program___dump_unreachable_methods(v
   static val_t once_value_3; /* Once value */
   static val_t once_value_4; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_method_analysis;
+  fra.me.file = LOCATE_global___reachable_method_analysis;
   fra.me.line = 38;
-  fra.me.meth = LOCATE_analysis___reachable_method_analysis___Program___dump_unreachable_methods;
+  fra.me.meth = LOCATE_global___reachable_method_analysis___Program___dump_unreachable_methods;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -190,7 +190,7 @@ void analysis___reachable_method_analysis___Program___dump_unreachable_methods(v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./analysis//reachable_method_analysis.nit:40 */
+  /* global/reachable_method_analysis.nit:40 */
   REGB0 = TAG_Int(7);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -237,23 +237,23 @@ void analysis___reachable_method_analysis___Program___dump_unreachable_methods(v
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[3]);
-  CALL_program___Program___with_each_methods(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_analysis___reachable_method_analysis___Program___dump_unreachable_methods_5));
-  /* ./analysis//reachable_method_analysis.nit:46 */
+  CALL_program___Program___with_each_methods(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_global___reachable_method_analysis___Program___dump_unreachable_methods_5));
+  /* global/reachable_method_analysis.nit:46 */
   CALL_standard___stream___IOS___close(fra.me.REG[3])(fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_analysis___reachable_method_analysis___Program___dump_unreachable_methods_5(struct stack_frame_t *closctx, val_t p0){
+  void OC_global___reachable_method_analysis___Program___dump_unreachable_methods_5(struct stack_frame_t *closctx, val_t p0){
     struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
     val_t REGB0;
     val_t tmp;
       static val_t once_value_6; /* Once value */
       static val_t once_value_7; /* Once value */
-    /* ./analysis//reachable_method_analysis.nit:41 */
+    /* global/reachable_method_analysis.nit:41 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_analysis___reachable_method_analysis;
+    fra.me.file = LOCATE_global___reachable_method_analysis;
     fra.me.line = 41;
-    fra.me.meth = LOCATE_analysis___reachable_method_analysis___Program___dump_unreachable_methods;
+    fra.me.meth = LOCATE_global___reachable_method_analysis___Program___dump_unreachable_methods;
     fra.me.has_broke = 0;
     fra.me.REG_size = 3;
     fra.me.nitni_local_ref_head = NULL;
@@ -261,16 +261,16 @@ void analysis___reachable_method_analysis___Program___dump_unreachable_methods(v
     fra.me.REG[1] = NIT_NULL;
     fra.me.REG[2] = NIT_NULL;
     fra.me.REG[0] = p0;
-    /* ./analysis//reachable_method_analysis.nit:42 */
-    fra.me.REG[1] = CALL_analysis___reachable_method_analysis___Program___rma(closctx->REG[0])(closctx->REG[0]);
+    /* global/reachable_method_analysis.nit:42 */
+    fra.me.REG[1] = CALL_global___reachable_method_analysis___Program___rma(closctx->REG[0])(closctx->REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_method_analysis, 42);
+      nit_abort("Reciever is null", NULL, LOCATE_global___reachable_method_analysis, 42);
     }
-    REGB0 = CALL_analysis___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+    REGB0 = CALL_global___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./analysis//reachable_method_analysis.nit:43 */
+      /* global/reachable_method_analysis.nit:43 */
       REGB0 = TAG_Int(3);
       fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_6) {
@@ -299,60 +299,44 @@ void analysis___reachable_method_analysis___Program___dump_unreachable_methods(v
     stack_frame_head = fra.me.prev;
     return;
   }
-val_t analysis___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(val_t p0, val_t p1){
+val_t global___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_method_analysis;
+  fra.me.file = LOCATE_global___reachable_method_analysis;
   fra.me.line = 54;
-  fra.me.meth = LOCATE_analysis___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable;
+  fra.me.meth = LOCATE_global___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./analysis//reachable_method_analysis.nit:54 */
-  nit_abort("Deferred method called", NULL, LOCATE_analysis___reachable_method_analysis, 54);
+  /* global/reachable_method_analysis.nit:54 */
+  nit_abort("Deferred method called", NULL, LOCATE_global___reachable_method_analysis, 54);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
-val_t analysis___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable(val_t p0, val_t p1){
+val_t global___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_method_analysis;
+  fra.me.file = LOCATE_global___reachable_method_analysis;
   fra.me.line = 55;
-  fra.me.meth = LOCATE_analysis___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable;
+  fra.me.meth = LOCATE_global___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./analysis//reachable_method_analysis.nit:55 */
-  nit_abort("Deferred method called", NULL, LOCATE_analysis___reachable_method_analysis, 55);
+  /* global/reachable_method_analysis.nit:55 */
+  nit_abort("Deferred method called", NULL, LOCATE_global___reachable_method_analysis, 55);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
-void analysis___reachable_method_analysis___ReachableMethodAnalysis___init(val_t p0, int* init_table){
-  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___reachable_method_analysis___ReachableMethodAnalysis].i;
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  if (init_table[itpos0]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_method_analysis;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_analysis___reachable_method_analysis___ReachableMethodAnalysis___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-  init_table[itpos0] = 1;
-  return;
-}
-val_t analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___is_iroutine_reachable(val_t p0, val_t p1){
+val_t global___reachable_method_analysis___DefaultReachableMethodAnalysis___is_iroutine_reachable(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_method_analysis;
+  fra.me.file = LOCATE_global___reachable_method_analysis;
   fra.me.line = 61;
-  fra.me.meth = LOCATE_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___is_iroutine_reachable;
+  fra.me.meth = LOCATE_global___reachable_method_analysis___DefaultReachableMethodAnalysis___is_iroutine_reachable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
@@ -360,21 +344,21 @@ val_t analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___is
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//reachable_method_analysis.nit:61 */
+  /* global/reachable_method_analysis.nit:61 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
-val_t analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___is_method_reachable(val_t p0, val_t p1){
+val_t global___reachable_method_analysis___DefaultReachableMethodAnalysis___is_method_reachable(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_method_analysis;
+  fra.me.file = LOCATE_global___reachable_method_analysis;
   fra.me.line = 62;
-  fra.me.meth = LOCATE_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___is_method_reachable;
+  fra.me.meth = LOCATE_global___reachable_method_analysis___DefaultReachableMethodAnalysis___is_method_reachable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
@@ -382,30 +366,28 @@ val_t analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___is
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//reachable_method_analysis.nit:62 */
+  /* global/reachable_method_analysis.nit:62 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
-void analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___init(val_t p0, int* init_table){
-  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis].i;
+void global___reachable_method_analysis___DefaultReachableMethodAnalysis___init(val_t p0, int* init_table){
+  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___reachable_method_analysis___DefaultReachableMethodAnalysis].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos1]) return;
+  if (init_table[itpos0]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___reachable_method_analysis;
+  fra.me.file = LOCATE_global___reachable_method_analysis;
   fra.me.line = 64;
-  fra.me.meth = LOCATE_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___init;
+  fra.me.meth = LOCATE_global___reachable_method_analysis___DefaultReachableMethodAnalysis___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//reachable_method_analysis.nit:64 */
-  CALL_analysis___reachable_method_analysis___ReachableMethodAnalysis___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   stack_frame_head = fra.me.prev;
-  init_table[itpos1] = 1;
+  init_table[itpos0] = 1;
   return;
 }
diff --git a/c_src/global___reachable_method_analysis._sep.h b/c_src/global___reachable_method_analysis._sep.h
new file mode 100644 (file)
index 0000000..8410b9f
--- /dev/null
@@ -0,0 +1,59 @@
+/* This C header file is generated by NIT to compile modules and programs that requires ./global/reachable_method_analysis. */
+#ifndef global___reachable_method_analysis_sep
+#define global___reachable_method_analysis_sep
+#include "program._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_global___reachable_method_analysis___ReachableMethodAnalysis[];
+
+extern const classtable_elt_t VFT_global___reachable_method_analysis___DefaultReachableMethodAnalysis[];
+extern const char *LOCATE_global___reachable_method_analysis;
+extern const int SFT_global___reachable_method_analysis[];
+#define ATTR_global___reachable_method_analysis___Program____rma(recv) ATTR(recv, (SFT_global___reachable_method_analysis[0] + 0))
+#define CALL_global___reachable_method_analysis___Program___rma(recv) ((global___reachable_method_analysis___Program___rma_t)CALL((recv), (SFT_global___reachable_method_analysis[1] + 0)))
+#define CALL_global___reachable_method_analysis___Program___rma__eq(recv) ((global___reachable_method_analysis___Program___rma__eq_t)CALL((recv), (SFT_global___reachable_method_analysis[1] + 1)))
+#define CALL_global___reachable_method_analysis___Program___dump_reachable_methods(recv) ((global___reachable_method_analysis___Program___dump_reachable_methods_t)CALL((recv), (SFT_global___reachable_method_analysis[1] + 2)))
+#define CALL_global___reachable_method_analysis___Program___dump_unreachable_methods(recv) ((global___reachable_method_analysis___Program___dump_unreachable_methods_t)CALL((recv), (SFT_global___reachable_method_analysis[1] + 3)))
+#define ID_global___reachable_method_analysis___ReachableMethodAnalysis (SFT_global___reachable_method_analysis[2])
+#define COLOR_global___reachable_method_analysis___ReachableMethodAnalysis (SFT_global___reachable_method_analysis[3])
+#define INIT_TABLE_POS_global___reachable_method_analysis___ReachableMethodAnalysis (SFT_global___reachable_method_analysis[4] + 0)
+#define CALL_global___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(recv) ((global___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable_t)CALL((recv), (SFT_global___reachable_method_analysis[4] + 1)))
+#define CALL_global___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable(recv) ((global___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable_t)CALL((recv), (SFT_global___reachable_method_analysis[4] + 2)))
+#define ID_global___reachable_method_analysis___DefaultReachableMethodAnalysis (SFT_global___reachable_method_analysis[5])
+#define COLOR_global___reachable_method_analysis___DefaultReachableMethodAnalysis (SFT_global___reachable_method_analysis[6])
+#define INIT_TABLE_POS_global___reachable_method_analysis___DefaultReachableMethodAnalysis (SFT_global___reachable_method_analysis[7] + 0)
+#define CALL_global___reachable_method_analysis___DefaultReachableMethodAnalysis___init(recv) ((global___reachable_method_analysis___DefaultReachableMethodAnalysis___init_t)CALL((recv), (SFT_global___reachable_method_analysis[7] + 1)))
+static const char * const LOCATE_global___reachable_method_analysis___Program___rma = "reachable_method_analysis::Program::rma";
+val_t global___reachable_method_analysis___Program___rma(val_t p0);
+typedef val_t (*global___reachable_method_analysis___Program___rma_t)(val_t p0);
+static const char * const LOCATE_global___reachable_method_analysis___Program___rma__eq = "reachable_method_analysis::Program::rma=";
+void global___reachable_method_analysis___Program___rma__eq(val_t p0, val_t p1);
+typedef void (*global___reachable_method_analysis___Program___rma__eq_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___reachable_method_analysis___Program___dump_reachable_methods = "reachable_method_analysis::Program::dump_reachable_methods";
+void global___reachable_method_analysis___Program___dump_reachable_methods(val_t p0, val_t p1, val_t p2);
+typedef void (*global___reachable_method_analysis___Program___dump_reachable_methods_t)(val_t p0, val_t p1, val_t p2);
+  void OC_global___reachable_method_analysis___Program___dump_reachable_methods_5(struct stack_frame_t *closctx, val_t p0);
+  typedef void (*OC_global___reachable_method_analysis___Program___dump_reachable_methods_5_t)(struct stack_frame_t *closctx, val_t p0);
+static const char * const LOCATE_global___reachable_method_analysis___Program___dump_unreachable_methods = "reachable_method_analysis::Program::dump_unreachable_methods";
+void global___reachable_method_analysis___Program___dump_unreachable_methods(val_t p0, val_t p1, val_t p2);
+typedef void (*global___reachable_method_analysis___Program___dump_unreachable_methods_t)(val_t p0, val_t p1, val_t p2);
+  void OC_global___reachable_method_analysis___Program___dump_unreachable_methods_5(struct stack_frame_t *closctx, val_t p0);
+  typedef void (*OC_global___reachable_method_analysis___Program___dump_unreachable_methods_5_t)(struct stack_frame_t *closctx, val_t p0);
+val_t NEW_Program_program___Program___init(val_t p0, val_t p1);
+static const char * const LOCATE_global___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable = "reachable_method_analysis::ReachableMethodAnalysis::is_iroutine_reachable";
+val_t global___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(val_t p0, val_t p1);
+typedef val_t (*global___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable = "reachable_method_analysis::ReachableMethodAnalysis::is_method_reachable";
+val_t global___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable(val_t p0, val_t p1);
+typedef val_t (*global___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___reachable_method_analysis___DefaultReachableMethodAnalysis___is_iroutine_reachable = "reachable_method_analysis::DefaultReachableMethodAnalysis::(reachable_method_analysis::ReachableMethodAnalysis::is_iroutine_reachable)";
+val_t global___reachable_method_analysis___DefaultReachableMethodAnalysis___is_iroutine_reachable(val_t p0, val_t p1);
+typedef val_t (*global___reachable_method_analysis___DefaultReachableMethodAnalysis___is_iroutine_reachable_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___reachable_method_analysis___DefaultReachableMethodAnalysis___is_method_reachable = "reachable_method_analysis::DefaultReachableMethodAnalysis::(reachable_method_analysis::ReachableMethodAnalysis::is_method_reachable)";
+val_t global___reachable_method_analysis___DefaultReachableMethodAnalysis___is_method_reachable(val_t p0, val_t p1);
+typedef val_t (*global___reachable_method_analysis___DefaultReachableMethodAnalysis___is_method_reachable_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___reachable_method_analysis___DefaultReachableMethodAnalysis___init = "reachable_method_analysis::DefaultReachableMethodAnalysis::init";
+void global___reachable_method_analysis___DefaultReachableMethodAnalysis___init(val_t p0, int* init_table);
+typedef void (*global___reachable_method_analysis___DefaultReachableMethodAnalysis___init_t)(val_t p0, int* init_table);
+val_t NEW_DefaultReachableMethodAnalysis_global___reachable_method_analysis___DefaultReachableMethodAnalysis___init();
+#endif
@@ -1,54 +1,54 @@
-/* This C file is generated by NIT to compile module analysis___remove_out_of_init_get_test. */
-#include "analysis___remove_out_of_init_get_test._sep.h"
-val_t analysis___remove_out_of_init_get_test___Program___nb_optimized_isset(val_t p0){
+/* This C file is generated by NIT to compile module global___remove_out_of_init_get_test. */
+#include "global___remove_out_of_init_get_test._sep.h"
+val_t global___remove_out_of_init_get_test___Program___nb_optimized_isset(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___remove_out_of_init_get_test;
+  fra.me.file = LOCATE_global___remove_out_of_init_get_test;
   fra.me.line = 24;
-  fra.me.meth = LOCATE_analysis___remove_out_of_init_get_test___Program___nb_optimized_isset;
+  fra.me.meth = LOCATE_global___remove_out_of_init_get_test___Program___nb_optimized_isset;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//remove_out_of_init_get_test.nit:24 */
-  REGB0 = TAG_Bool(ATTR_analysis___remove_out_of_init_get_test___Program____nb_optimized_isset(fra.me.REG[0])!=NIT_NULL);
+  /* global/remove_out_of_init_get_test.nit:24 */
+  REGB0 = TAG_Bool(ATTR_global___remove_out_of_init_get_test___Program____nb_optimized_isset(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_nb_optimized_isset", LOCATE_analysis___remove_out_of_init_get_test, 24);
+    nit_abort("Uninitialized attribute %s", "_nb_optimized_isset", LOCATE_global___remove_out_of_init_get_test, 24);
   }
-  REGB0 = ATTR_analysis___remove_out_of_init_get_test___Program____nb_optimized_isset(fra.me.REG[0]);
+  REGB0 = ATTR_global___remove_out_of_init_get_test___Program____nb_optimized_isset(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
-void analysis___remove_out_of_init_get_test___Program___optimize_out_of_init_getters(val_t p0){
+void global___remove_out_of_init_get_test___Program___optimize_out_of_init_getters(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___remove_out_of_init_get_test;
+  fra.me.file = LOCATE_global___remove_out_of_init_get_test;
   fra.me.line = 26;
-  fra.me.meth = LOCATE_analysis___remove_out_of_init_get_test___Program___optimize_out_of_init_getters;
+  fra.me.meth = LOCATE_global___remove_out_of_init_get_test___Program___optimize_out_of_init_getters;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  CALL_program___Program___with_each_iroutines(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_analysis___remove_out_of_init_get_test___Program___optimize_out_of_init_getters_1));
+  CALL_program___Program___with_each_iroutines(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_global___remove_out_of_init_get_test___Program___optimize_out_of_init_getters_1));
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_analysis___remove_out_of_init_get_test___Program___optimize_out_of_init_getters_1(struct stack_frame_t *closctx, val_t p0, val_t p1){
+  void OC_global___remove_out_of_init_get_test___Program___optimize_out_of_init_getters_1(struct stack_frame_t *closctx, val_t p0, val_t p1){
     struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
     val_t REGB0;
     val_t REGB1;
     val_t tmp;
-    /* ./analysis//remove_out_of_init_get_test.nit:30 */
+    /* global/remove_out_of_init_get_test.nit:30 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_analysis___remove_out_of_init_get_test;
+    fra.me.file = LOCATE_global___remove_out_of_init_get_test;
     fra.me.line = 30;
-    fra.me.meth = LOCATE_analysis___remove_out_of_init_get_test___Program___optimize_out_of_init_getters;
+    fra.me.meth = LOCATE_global___remove_out_of_init_get_test___Program___optimize_out_of_init_getters;
     fra.me.has_broke = 0;
     fra.me.REG_size = 2;
     fra.me.nitni_local_ref_head = NULL;
@@ -56,31 +56,31 @@ void analysis___remove_out_of_init_get_test___Program___optimize_out_of_init_get
     fra.me.REG[1] = NIT_NULL;
     fra.me.REG[0] = p0;
     fra.me.REG[1] = p1;
-    /* ./analysis//remove_out_of_init_get_test.nit:31 */
-    fra.me.REG[1] = CALL_analysis___reachable_from_init_method_analysis___Program___rfima(closctx->REG[0])(closctx->REG[0]);
+    /* global/remove_out_of_init_get_test.nit:31 */
+    fra.me.REG[1] = CALL_global___reachable_from_init_method_analysis___Program___rfima(closctx->REG[0])(closctx->REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___remove_out_of_init_get_test, 31);
+      nit_abort("Reciever is null", NULL, LOCATE_global___remove_out_of_init_get_test, 31);
     }
-    REGB0 = CALL_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+    REGB0 = CALL_global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./analysis//remove_out_of_init_get_test.nit:32 */
+      /* global/remove_out_of_init_get_test.nit:32 */
       fra.me.REG[1] = NEW_GetterTestRemover_icode___icode_tools___ICodeVisitor___init();
-      /* ./analysis//remove_out_of_init_get_test.nit:33 */
+      /* global/remove_out_of_init_get_test.nit:33 */
       CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-      /* ./analysis//remove_out_of_init_get_test.nit:34 */
-      REGB0 = CALL_analysis___remove_out_of_init_get_test___Program___nb_optimized_isset(closctx->REG[0])(closctx->REG[0]);
-      REGB1 = CALL_analysis___remove_out_of_init_get_test___GetterTestRemover___nb_optimized_isset(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* global/remove_out_of_init_get_test.nit:34 */
+      REGB0 = CALL_global___remove_out_of_init_get_test___Program___nb_optimized_isset(closctx->REG[0])(closctx->REG[0]);
+      REGB1 = CALL_global___remove_out_of_init_get_test___GetterTestRemover___nb_optimized_isset(fra.me.REG[1])(fra.me.REG[1]);
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./analysis//remove_out_of_init_get_test.nit:34 */
-      ATTR_analysis___remove_out_of_init_get_test___Program____nb_optimized_isset(closctx->REG[0]) = REGB1;
+      /* global/remove_out_of_init_get_test.nit:34 */
+      ATTR_global___remove_out_of_init_get_test___Program____nb_optimized_isset(closctx->REG[0]) = REGB1;
     }
     stack_frame_head = fra.me.prev;
     return;
   }
-void analysis___remove_out_of_init_get_test___Program___dump_out_of_init_information(val_t p0, val_t p1){
+void global___remove_out_of_init_get_test___Program___dump_out_of_init_information(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
@@ -92,9 +92,9 @@ void analysis___remove_out_of_init_get_test___Program___dump_out_of_init_informa
   static val_t once_value_7; /* Once value */
   static val_t once_value_8; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___remove_out_of_init_get_test;
+  fra.me.file = LOCATE_global___remove_out_of_init_get_test;
   fra.me.line = 39;
-  fra.me.meth = LOCATE_analysis___remove_out_of_init_get_test___Program___dump_out_of_init_information;
+  fra.me.meth = LOCATE_global___remove_out_of_init_get_test___Program___dump_out_of_init_information;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -105,7 +105,7 @@ void analysis___remove_out_of_init_get_test___Program___dump_out_of_init_informa
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//remove_out_of_init_get_test.nit:41 */
+  /* global/remove_out_of_init_get_test.nit:41 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -142,11 +142,11 @@ void analysis___remove_out_of_init_get_test___Program___dump_out_of_init_informa
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[2]);
-  /* ./analysis//remove_out_of_init_get_test.nit:42 */
+  /* global/remove_out_of_init_get_test.nit:42 */
   REGB0 = TAG_Int(0);
   fra.me.REG[1] = REGB0;
-  CALL_program___Program___with_each_iroutines(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_analysis___remove_out_of_init_get_test___Program___dump_out_of_init_information_4));
-  /* ./analysis//remove_out_of_init_get_test.nit:50 */
+  CALL_program___Program___with_each_iroutines(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_global___remove_out_of_init_get_test___Program___dump_out_of_init_information_4));
+  /* global/remove_out_of_init_get_test.nit:50 */
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_5) {
@@ -158,7 +158,7 @@ void analysis___remove_out_of_init_get_test___Program___dump_out_of_init_informa
   } else fra.me.REG[4] = once_value_5;
   fra.me.REG[4] = fra.me.REG[4];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  REGB0 = CALL_analysis___remove_out_of_init_get_test___Program___nb_optimized_isset(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = CALL_global___remove_out_of_init_get_test___Program___nb_optimized_isset(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
   if (!once_value_6) {
@@ -172,7 +172,7 @@ void analysis___remove_out_of_init_get_test___Program___dump_out_of_init_informa
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./analysis//remove_out_of_init_get_test.nit:51 */
+  /* global/remove_out_of_init_get_test.nit:51 */
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_7) {
@@ -197,20 +197,20 @@ void analysis___remove_out_of_init_get_test___Program___dump_out_of_init_informa
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./analysis//remove_out_of_init_get_test.nit:53 */
+  /* global/remove_out_of_init_get_test.nit:53 */
   CALL_standard___stream___IOS___close(fra.me.REG[2])(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_analysis___remove_out_of_init_get_test___Program___dump_out_of_init_information_4(struct stack_frame_t *closctx, val_t p0, val_t p1){
+  void OC_global___remove_out_of_init_get_test___Program___dump_out_of_init_information_4(struct stack_frame_t *closctx, val_t p0, val_t p1){
     struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
     val_t REGB0;
     val_t tmp;
-    /* ./analysis//remove_out_of_init_get_test.nit:44 */
+    /* global/remove_out_of_init_get_test.nit:44 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_analysis___remove_out_of_init_get_test;
+    fra.me.file = LOCATE_global___remove_out_of_init_get_test;
     fra.me.line = 44;
-    fra.me.meth = LOCATE_analysis___remove_out_of_init_get_test___Program___dump_out_of_init_information;
+    fra.me.meth = LOCATE_global___remove_out_of_init_get_test___Program___dump_out_of_init_information;
     fra.me.has_broke = 0;
     fra.me.REG_size = 2;
     fra.me.nitni_local_ref_head = NULL;
@@ -218,51 +218,51 @@ void analysis___remove_out_of_init_get_test___Program___dump_out_of_init_informa
     fra.me.REG[1] = NIT_NULL;
     fra.me.REG[0] = p0;
     fra.me.REG[1] = p1;
-    /* ./analysis//remove_out_of_init_get_test.nit:45 */
+    /* global/remove_out_of_init_get_test.nit:45 */
     fra.me.REG[1] = NEW_IssetCounter_icode___icode_tools___ICodeVisitor___init();
-    /* ./analysis//remove_out_of_init_get_test.nit:46 */
+    /* global/remove_out_of_init_get_test.nit:46 */
     CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./analysis//remove_out_of_init_get_test.nit:47 */
-    REGB0 = CALL_analysis___remove_out_of_init_get_test___IssetCounter___nb_isset(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* global/remove_out_of_init_get_test.nit:47 */
+    REGB0 = CALL_global___remove_out_of_init_get_test___IssetCounter___nb_isset(fra.me.REG[1])(fra.me.REG[1]);
+    /* ../lib/standard/kernel.nit:235 */
     REGB0 = TAG_Int(UNTAG_Int(closctx->REG[1])+UNTAG_Int(REGB0));
-    /* ./analysis//remove_out_of_init_get_test.nit:47 */
+    /* global/remove_out_of_init_get_test.nit:47 */
     closctx->REG[1] = REGB0;
     stack_frame_head = fra.me.prev;
     return;
   }
-val_t analysis___remove_out_of_init_get_test___IssetCounter___nb_isset(val_t p0){
+val_t global___remove_out_of_init_get_test___IssetCounter___nb_isset(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___remove_out_of_init_get_test;
+  fra.me.file = LOCATE_global___remove_out_of_init_get_test;
   fra.me.line = 59;
-  fra.me.meth = LOCATE_analysis___remove_out_of_init_get_test___IssetCounter___nb_isset;
+  fra.me.meth = LOCATE_global___remove_out_of_init_get_test___IssetCounter___nb_isset;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//remove_out_of_init_get_test.nit:59 */
-  REGB0 = TAG_Bool(ATTR_analysis___remove_out_of_init_get_test___IssetCounter____nb_isset(fra.me.REG[0])!=NIT_NULL);
+  /* global/remove_out_of_init_get_test.nit:59 */
+  REGB0 = TAG_Bool(ATTR_global___remove_out_of_init_get_test___IssetCounter____nb_isset(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_nb_isset", LOCATE_analysis___remove_out_of_init_get_test, 59);
+    nit_abort("Uninitialized attribute %s", "_nb_isset", LOCATE_global___remove_out_of_init_get_test, 59);
   }
-  REGB0 = ATTR_analysis___remove_out_of_init_get_test___IssetCounter____nb_isset(fra.me.REG[0]);
+  REGB0 = ATTR_global___remove_out_of_init_get_test___IssetCounter____nb_isset(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
-void analysis___remove_out_of_init_get_test___IssetCounter___visit_icode(val_t p0, val_t p1){
+void global___remove_out_of_init_get_test___IssetCounter___visit_icode(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___remove_out_of_init_get_test;
+  fra.me.file = LOCATE_global___remove_out_of_init_get_test;
   fra.me.line = 61;
-  fra.me.meth = LOCATE_analysis___remove_out_of_init_get_test___IssetCounter___visit_icode;
+  fra.me.meth = LOCATE_global___remove_out_of_init_get_test___IssetCounter___visit_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -272,57 +272,57 @@ void analysis___remove_out_of_init_get_test___IssetCounter___visit_icode(val_t p
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//remove_out_of_init_get_test.nit:61 */
+  /* global/remove_out_of_init_get_test.nit:61 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./analysis//remove_out_of_init_get_test.nit:63 */
+  /* global/remove_out_of_init_get_test.nit:63 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___IAttrIsset, ID_icode___icode_base___IAttrIsset)) /*cast IAttrIsset*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//remove_out_of_init_get_test.nit:64 */
-    REGB0 = CALL_analysis___remove_out_of_init_get_test___IssetCounter___nb_isset(fra.me.REG[2])(fra.me.REG[2]);
+    /* global/remove_out_of_init_get_test.nit:64 */
+    REGB0 = CALL_global___remove_out_of_init_get_test___IssetCounter___nb_isset(fra.me.REG[2])(fra.me.REG[2]);
     REGB1 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-    /* ./analysis//remove_out_of_init_get_test.nit:64 */
-    ATTR_analysis___remove_out_of_init_get_test___IssetCounter____nb_isset(fra.me.REG[2]) = REGB1;
+    /* global/remove_out_of_init_get_test.nit:64 */
+    ATTR_global___remove_out_of_init_get_test___IssetCounter____nb_isset(fra.me.REG[2]) = REGB1;
   }
-  /* ./analysis//remove_out_of_init_get_test.nit:67 */
-  CALL_SUPER_analysis___remove_out_of_init_get_test___IssetCounter___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  /* global/remove_out_of_init_get_test.nit:67 */
+  CALL_SUPER_global___remove_out_of_init_get_test___IssetCounter___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
 }
-val_t analysis___remove_out_of_init_get_test___GetterTestRemover___nb_optimized_isset(val_t p0){
+val_t global___remove_out_of_init_get_test___GetterTestRemover___nb_optimized_isset(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___remove_out_of_init_get_test;
+  fra.me.file = LOCATE_global___remove_out_of_init_get_test;
   fra.me.line = 73;
-  fra.me.meth = LOCATE_analysis___remove_out_of_init_get_test___GetterTestRemover___nb_optimized_isset;
+  fra.me.meth = LOCATE_global___remove_out_of_init_get_test___GetterTestRemover___nb_optimized_isset;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//remove_out_of_init_get_test.nit:73 */
-  REGB0 = TAG_Bool(ATTR_analysis___remove_out_of_init_get_test___GetterTestRemover____nb_optimized_isset(fra.me.REG[0])!=NIT_NULL);
+  /* global/remove_out_of_init_get_test.nit:73 */
+  REGB0 = TAG_Bool(ATTR_global___remove_out_of_init_get_test___GetterTestRemover____nb_optimized_isset(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_nb_optimized_isset", LOCATE_analysis___remove_out_of_init_get_test, 73);
+    nit_abort("Uninitialized attribute %s", "_nb_optimized_isset", LOCATE_global___remove_out_of_init_get_test, 73);
   }
-  REGB0 = ATTR_analysis___remove_out_of_init_get_test___GetterTestRemover____nb_optimized_isset(fra.me.REG[0]);
+  REGB0 = ATTR_global___remove_out_of_init_get_test___GetterTestRemover____nb_optimized_isset(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
-void analysis___remove_out_of_init_get_test___GetterTestRemover___visit_icode(val_t p0, val_t p1){
+void global___remove_out_of_init_get_test___GetterTestRemover___visit_icode(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___remove_out_of_init_get_test;
+  fra.me.file = LOCATE_global___remove_out_of_init_get_test;
   fra.me.line = 75;
-  fra.me.meth = LOCATE_analysis___remove_out_of_init_get_test___GetterTestRemover___visit_icode;
+  fra.me.meth = LOCATE_global___remove_out_of_init_get_test___GetterTestRemover___visit_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -333,19 +333,19 @@ void analysis___remove_out_of_init_get_test___GetterTestRemover___visit_icode(va
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//remove_out_of_init_get_test.nit:75 */
+  /* global/remove_out_of_init_get_test.nit:75 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./analysis//remove_out_of_init_get_test.nit:78 */
+  /* global/remove_out_of_init_get_test.nit:78 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___IAttrIsset, ID_icode___icode_base___IAttrIsset)) /*cast IAttrIsset*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//remove_out_of_init_get_test.nit:79 */
+    /* global/remove_out_of_init_get_test.nit:79 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___remove_out_of_init_get_test, 79);
+      nit_abort("Reciever is null", NULL, LOCATE_global___remove_out_of_init_get_test, 79);
     }
     fra.me.REG[3] = CALL_icode___icode_base___ICode___result(fra.me.REG[3])(fra.me.REG[3]);
-    /* ./analysis//remove_out_of_init_get_test.nit:80 */
+    /* global/remove_out_of_init_get_test.nit:80 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -361,37 +361,37 @@ void analysis___remove_out_of_init_get_test___GetterTestRemover___visit_icode(va
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert failed", NULL, LOCATE_analysis___remove_out_of_init_get_test, 80);
+      nit_abort("Assert failed", NULL, LOCATE_global___remove_out_of_init_get_test, 80);
     }
-    /* ./analysis//remove_out_of_init_get_test.nit:81 */
+    /* global/remove_out_of_init_get_test.nit:81 */
     REGB0 = TAG_Bool(true);
     fra.me.REG[4] = NEW_IBoolValue_icode___icode_base___IBoolValue___init(REGB0);
-    /* ./analysis//remove_out_of_init_get_test.nit:82 */
+    /* global/remove_out_of_init_get_test.nit:82 */
     CALL_icode___icode_base___ICode___result__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-    /* ./analysis//remove_out_of_init_get_test.nit:83 */
+    /* global/remove_out_of_init_get_test.nit:83 */
     fra.me.REG[3] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___remove_out_of_init_get_test, 83);
+      nit_abort("Reciever is null", NULL, LOCATE_global___remove_out_of_init_get_test, 83);
     }
     CALL_standard___collection___list___ListIterator___insert_before(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-    /* ./analysis//remove_out_of_init_get_test.nit:84 */
+    /* global/remove_out_of_init_get_test.nit:84 */
     fra.me.REG[4] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___remove_out_of_init_get_test, 84);
+      nit_abort("Reciever is null", NULL, LOCATE_global___remove_out_of_init_get_test, 84);
     }
     CALL_standard___collection___list___ListIterator___delete(fra.me.REG[4])(fra.me.REG[4]);
-    /* ./analysis//remove_out_of_init_get_test.nit:85 */
-    REGB0 = CALL_analysis___remove_out_of_init_get_test___GetterTestRemover___nb_optimized_isset(fra.me.REG[2])(fra.me.REG[2]);
+    /* global/remove_out_of_init_get_test.nit:85 */
+    REGB0 = CALL_global___remove_out_of_init_get_test___GetterTestRemover___nb_optimized_isset(fra.me.REG[2])(fra.me.REG[2]);
     REGB1 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-    /* ./analysis//remove_out_of_init_get_test.nit:85 */
-    ATTR_analysis___remove_out_of_init_get_test___GetterTestRemover____nb_optimized_isset(fra.me.REG[2]) = REGB1;
+    /* global/remove_out_of_init_get_test.nit:85 */
+    ATTR_global___remove_out_of_init_get_test___GetterTestRemover____nb_optimized_isset(fra.me.REG[2]) = REGB1;
   }
-  /* ./analysis//remove_out_of_init_get_test.nit:88 */
-  CALL_SUPER_analysis___remove_out_of_init_get_test___GetterTestRemover___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  /* global/remove_out_of_init_get_test.nit:88 */
+  CALL_SUPER_global___remove_out_of_init_get_test___GetterTestRemover___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
 }
diff --git a/c_src/global___remove_out_of_init_get_test._sep.h b/c_src/global___remove_out_of_init_get_test._sep.h
new file mode 100644 (file)
index 0000000..3a213f8
--- /dev/null
@@ -0,0 +1,56 @@
+/* This C header file is generated by NIT to compile modules and programs that requires ./global/remove_out_of_init_get_test. */
+#ifndef global___remove_out_of_init_get_test_sep
+#define global___remove_out_of_init_get_test_sep
+#include "global___reachable_from_init_method_analysis._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_global___remove_out_of_init_get_test___IssetCounter[];
+
+extern const classtable_elt_t VFT_global___remove_out_of_init_get_test___GetterTestRemover[];
+extern const char *LOCATE_global___remove_out_of_init_get_test;
+extern const int SFT_global___remove_out_of_init_get_test[];
+#define ATTR_global___remove_out_of_init_get_test___Program____nb_optimized_isset(recv) ATTR(recv, (SFT_global___remove_out_of_init_get_test[0] + 0))
+#define CALL_global___remove_out_of_init_get_test___Program___nb_optimized_isset(recv) ((global___remove_out_of_init_get_test___Program___nb_optimized_isset_t)CALL((recv), (SFT_global___remove_out_of_init_get_test[1] + 0)))
+#define CALL_global___remove_out_of_init_get_test___Program___optimize_out_of_init_getters(recv) ((global___remove_out_of_init_get_test___Program___optimize_out_of_init_getters_t)CALL((recv), (SFT_global___remove_out_of_init_get_test[1] + 1)))
+#define CALL_global___remove_out_of_init_get_test___Program___dump_out_of_init_information(recv) ((global___remove_out_of_init_get_test___Program___dump_out_of_init_information_t)CALL((recv), (SFT_global___remove_out_of_init_get_test[1] + 2)))
+#define ID_global___remove_out_of_init_get_test___IssetCounter (SFT_global___remove_out_of_init_get_test[2])
+#define COLOR_global___remove_out_of_init_get_test___IssetCounter (SFT_global___remove_out_of_init_get_test[3])
+#define ATTR_global___remove_out_of_init_get_test___IssetCounter____nb_isset(recv) ATTR(recv, (SFT_global___remove_out_of_init_get_test[4] + 0))
+#define INIT_TABLE_POS_global___remove_out_of_init_get_test___IssetCounter (SFT_global___remove_out_of_init_get_test[5] + 0)
+#define CALL_global___remove_out_of_init_get_test___IssetCounter___nb_isset(recv) ((global___remove_out_of_init_get_test___IssetCounter___nb_isset_t)CALL((recv), (SFT_global___remove_out_of_init_get_test[5] + 1)))
+#define CALL_SUPER_global___remove_out_of_init_get_test___IssetCounter___visit_icode(recv) ((global___remove_out_of_init_get_test___IssetCounter___visit_icode_t)CALL((recv), (SFT_global___remove_out_of_init_get_test[5] + 2)))
+#define ID_global___remove_out_of_init_get_test___GetterTestRemover (SFT_global___remove_out_of_init_get_test[6])
+#define COLOR_global___remove_out_of_init_get_test___GetterTestRemover (SFT_global___remove_out_of_init_get_test[7])
+#define ATTR_global___remove_out_of_init_get_test___GetterTestRemover____nb_optimized_isset(recv) ATTR(recv, (SFT_global___remove_out_of_init_get_test[8] + 0))
+#define INIT_TABLE_POS_global___remove_out_of_init_get_test___GetterTestRemover (SFT_global___remove_out_of_init_get_test[9] + 0)
+#define CALL_global___remove_out_of_init_get_test___GetterTestRemover___nb_optimized_isset(recv) ((global___remove_out_of_init_get_test___GetterTestRemover___nb_optimized_isset_t)CALL((recv), (SFT_global___remove_out_of_init_get_test[9] + 1)))
+#define CALL_SUPER_global___remove_out_of_init_get_test___GetterTestRemover___visit_icode(recv) ((global___remove_out_of_init_get_test___GetterTestRemover___visit_icode_t)CALL((recv), (SFT_global___remove_out_of_init_get_test[9] + 2)))
+static const char * const LOCATE_global___remove_out_of_init_get_test___Program___nb_optimized_isset = "remove_out_of_init_get_test::Program::nb_optimized_isset";
+val_t global___remove_out_of_init_get_test___Program___nb_optimized_isset(val_t p0);
+typedef val_t (*global___remove_out_of_init_get_test___Program___nb_optimized_isset_t)(val_t p0);
+static const char * const LOCATE_global___remove_out_of_init_get_test___Program___optimize_out_of_init_getters = "remove_out_of_init_get_test::Program::optimize_out_of_init_getters";
+void global___remove_out_of_init_get_test___Program___optimize_out_of_init_getters(val_t p0);
+typedef void (*global___remove_out_of_init_get_test___Program___optimize_out_of_init_getters_t)(val_t p0);
+  void OC_global___remove_out_of_init_get_test___Program___optimize_out_of_init_getters_1(struct stack_frame_t *closctx, val_t p0, val_t p1);
+  typedef void (*OC_global___remove_out_of_init_get_test___Program___optimize_out_of_init_getters_1_t)(struct stack_frame_t *closctx, val_t p0, val_t p1);
+static const char * const LOCATE_global___remove_out_of_init_get_test___Program___dump_out_of_init_information = "remove_out_of_init_get_test::Program::dump_out_of_init_information";
+void global___remove_out_of_init_get_test___Program___dump_out_of_init_information(val_t p0, val_t p1);
+typedef void (*global___remove_out_of_init_get_test___Program___dump_out_of_init_information_t)(val_t p0, val_t p1);
+  void OC_global___remove_out_of_init_get_test___Program___dump_out_of_init_information_4(struct stack_frame_t *closctx, val_t p0, val_t p1);
+  typedef void (*OC_global___remove_out_of_init_get_test___Program___dump_out_of_init_information_4_t)(struct stack_frame_t *closctx, val_t p0, val_t p1);
+val_t NEW_Program_program___Program___init(val_t p0, val_t p1);
+static const char * const LOCATE_global___remove_out_of_init_get_test___IssetCounter___nb_isset = "remove_out_of_init_get_test::IssetCounter::nb_isset";
+val_t global___remove_out_of_init_get_test___IssetCounter___nb_isset(val_t p0);
+typedef val_t (*global___remove_out_of_init_get_test___IssetCounter___nb_isset_t)(val_t p0);
+static const char * const LOCATE_global___remove_out_of_init_get_test___IssetCounter___visit_icode = "remove_out_of_init_get_test::IssetCounter::(icode_tools::ICodeVisitor::visit_icode)";
+void global___remove_out_of_init_get_test___IssetCounter___visit_icode(val_t p0, val_t p1);
+typedef void (*global___remove_out_of_init_get_test___IssetCounter___visit_icode_t)(val_t p0, val_t p1);
+val_t NEW_IssetCounter_icode___icode_tools___ICodeVisitor___init();
+static const char * const LOCATE_global___remove_out_of_init_get_test___GetterTestRemover___nb_optimized_isset = "remove_out_of_init_get_test::GetterTestRemover::nb_optimized_isset";
+val_t global___remove_out_of_init_get_test___GetterTestRemover___nb_optimized_isset(val_t p0);
+typedef val_t (*global___remove_out_of_init_get_test___GetterTestRemover___nb_optimized_isset_t)(val_t p0);
+static const char * const LOCATE_global___remove_out_of_init_get_test___GetterTestRemover___visit_icode = "remove_out_of_init_get_test::GetterTestRemover::(icode_tools::ICodeVisitor::visit_icode)";
+void global___remove_out_of_init_get_test___GetterTestRemover___visit_icode(val_t p0, val_t p1);
+typedef void (*global___remove_out_of_init_get_test___GetterTestRemover___visit_icode_t)(val_t p0, val_t p1);
+val_t NEW_GetterTestRemover_icode___icode_tools___ICodeVisitor___init();
+#endif
similarity index 63%
rename from c_src/analysis___rta_analysis._sep.c
rename to c_src/global___rta_analysis._sep.c
index 5ad17f4..ead4b2b 100644 (file)
@@ -1,57 +1,54 @@
-/* This C file is generated by NIT to compile module analysis___rta_analysis. */
-#include "analysis___rta_analysis._sep.h"
-void analysis___rta_analysis___RtaContext___init(val_t p0, int* init_table){
-  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___rta_analysis___RtaContext].i;
+/* This C file is generated by NIT to compile module global___rta_analysis. */
+#include "global___rta_analysis._sep.h"
+void global___rta_analysis___RtaContext___init(val_t p0, int* init_table){
+  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___rta_analysis___RtaContext].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   if (init_table[itpos0]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
+  fra.me.file = LOCATE_global___rta_analysis;
   fra.me.line = 28;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaContext___init;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaContext___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//rta_analysis.nit:28 */
-  CALL_analysis___reachable_method_analysis___ReachableMethodAnalysis___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  CALL_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
   return;
 }
-val_t analysis___rta_analysis___RtaContext___instanciated_classes(val_t p0){
+val_t global___rta_analysis___RtaContext___instanciated_classes(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
+  fra.me.file = LOCATE_global___rta_analysis;
   fra.me.line = 29;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaContext___instanciated_classes;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaContext___instanciated_classes;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//rta_analysis.nit:29 */
-  REGB0 = TAG_Bool(ATTR_analysis___rta_analysis___RtaContext____instanciated_classes(fra.me.REG[0])!=NIT_NULL);
+  /* global/rta_analysis.nit:29 */
+  REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaContext____instanciated_classes(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_instanciated_classes", LOCATE_analysis___rta_analysis, 29);
+    nit_abort("Uninitialized attribute %s", "_instanciated_classes", LOCATE_global___rta_analysis, 29);
   }
-  fra.me.REG[0] = ATTR_analysis___rta_analysis___RtaContext____instanciated_classes(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_global___rta_analysis___RtaContext____instanciated_classes(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t analysis___rta_analysis___RtaContext___is_class_instantiated(val_t p0, val_t p1){
+val_t global___rta_analysis___RtaContext___is_class_instantiated(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
+  fra.me.file = LOCATE_global___rta_analysis;
   fra.me.line = 31;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaContext___is_class_instantiated;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaContext___is_class_instantiated;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
@@ -59,46 +56,46 @@ val_t analysis___rta_analysis___RtaContext___is_class_instantiated(val_t p0, val
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//rta_analysis.nit:31 */
-  fra.me.REG[0] = CALL_analysis___rta_analysis___RtaContext___instanciated_classes(fra.me.REG[0])(fra.me.REG[0]);
+  /* global/rta_analysis.nit:31 */
+  fra.me.REG[0] = CALL_global___rta_analysis___RtaContext___instanciated_classes(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
-val_t analysis___rta_analysis___RtaContext___reachable_iroutines(val_t p0){
+val_t global___rta_analysis___RtaContext___reachable_iroutines(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
+  fra.me.file = LOCATE_global___rta_analysis;
   fra.me.line = 33;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaContext___reachable_iroutines;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaContext___reachable_iroutines;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//rta_analysis.nit:33 */
-  REGB0 = TAG_Bool(ATTR_analysis___rta_analysis___RtaContext____reachable_iroutines(fra.me.REG[0])!=NIT_NULL);
+  /* global/rta_analysis.nit:33 */
+  REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaContext____reachable_iroutines(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_reachable_iroutines", LOCATE_analysis___rta_analysis, 33);
+    nit_abort("Uninitialized attribute %s", "_reachable_iroutines", LOCATE_global___rta_analysis, 33);
   }
-  fra.me.REG[0] = ATTR_analysis___rta_analysis___RtaContext____reachable_iroutines(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_global___rta_analysis___RtaContext____reachable_iroutines(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t analysis___rta_analysis___RtaContext___is_iroutine_reachable(val_t p0, val_t p1){
+val_t global___rta_analysis___RtaContext___is_iroutine_reachable(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
+  fra.me.file = LOCATE_global___rta_analysis;
   fra.me.line = 35;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaContext___is_iroutine_reachable;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaContext___is_iroutine_reachable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
@@ -106,7 +103,7 @@ val_t analysis___rta_analysis___RtaContext___is_iroutine_reachable(val_t p0, val
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//rta_analysis.nit:36 */
+  /* global/rta_analysis.nit:36 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -121,7 +118,7 @@ val_t analysis___rta_analysis___RtaContext___is_iroutine_reachable(val_t p0, val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    fra.me.REG[0] = CALL_analysis___rta_analysis___RtaContext___reachable_iroutines(fra.me.REG[0])(fra.me.REG[0]);
+    fra.me.REG[0] = CALL_global___rta_analysis___RtaContext___reachable_iroutines(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   } else {
     REGB1 = TAG_Bool(false);
@@ -132,14 +129,14 @@ val_t analysis___rta_analysis___RtaContext___is_iroutine_reachable(val_t p0, val
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
-val_t analysis___rta_analysis___RtaContext___is_method_reachable(val_t p0, val_t p1){
+val_t global___rta_analysis___RtaContext___is_method_reachable(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
+  fra.me.file = LOCATE_global___rta_analysis;
   fra.me.line = 39;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaContext___is_method_reachable;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaContext___is_method_reachable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
@@ -147,138 +144,138 @@ val_t analysis___rta_analysis___RtaContext___is_method_reachable(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//rta_analysis.nit:40 */
+  /* global/rta_analysis.nit:40 */
   fra.me.REG[1] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = CALL_analysis___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  REGB0 = CALL_global___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
-val_t analysis___rta_analysis___RtaBuilder___context(val_t p0){
+val_t global___rta_analysis___RtaBuilder___context(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
+  fra.me.file = LOCATE_global___rta_analysis;
   fra.me.line = 45;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___context;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___context;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//rta_analysis.nit:45 */
-  REGB0 = TAG_Bool(ATTR_analysis___rta_analysis___RtaBuilder____context(fra.me.REG[0])!=NIT_NULL);
+  /* global/rta_analysis.nit:45 */
+  REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaBuilder____context(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_context", LOCATE_analysis___rta_analysis, 45);
+    nit_abort("Uninitialized attribute %s", "_context", LOCATE_global___rta_analysis, 45);
   }
-  fra.me.REG[0] = ATTR_analysis___rta_analysis___RtaBuilder____context(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_global___rta_analysis___RtaBuilder____context(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t analysis___rta_analysis___RtaBuilder___program(val_t p0){
+val_t global___rta_analysis___RtaBuilder___program(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
+  fra.me.file = LOCATE_global___rta_analysis;
   fra.me.line = 46;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___program;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___program;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//rta_analysis.nit:46 */
-  REGB0 = TAG_Bool(ATTR_analysis___rta_analysis___RtaBuilder____program(fra.me.REG[0])!=NIT_NULL);
+  /* global/rta_analysis.nit:46 */
+  REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaBuilder____program(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_program", LOCATE_analysis___rta_analysis, 46);
+    nit_abort("Uninitialized attribute %s", "_program", LOCATE_global___rta_analysis, 46);
   }
-  fra.me.REG[0] = ATTR_analysis___rta_analysis___RtaBuilder____program(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_global___rta_analysis___RtaBuilder____program(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t analysis___rta_analysis___RtaBuilder___iroutine_to_search(val_t p0){
+val_t global___rta_analysis___RtaBuilder___iroutine_to_search(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
+  fra.me.file = LOCATE_global___rta_analysis;
   fra.me.line = 47;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___iroutine_to_search;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___iroutine_to_search;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//rta_analysis.nit:47 */
-  REGB0 = TAG_Bool(ATTR_analysis___rta_analysis___RtaBuilder____iroutine_to_search(fra.me.REG[0])!=NIT_NULL);
+  /* global/rta_analysis.nit:47 */
+  REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaBuilder____iroutine_to_search(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_iroutine_to_search", LOCATE_analysis___rta_analysis, 47);
+    nit_abort("Uninitialized attribute %s", "_iroutine_to_search", LOCATE_global___rta_analysis, 47);
   }
-  fra.me.REG[0] = ATTR_analysis___rta_analysis___RtaBuilder____iroutine_to_search(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_global___rta_analysis___RtaBuilder____iroutine_to_search(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t analysis___rta_analysis___RtaBuilder___call_sites(val_t p0){
+val_t global___rta_analysis___RtaBuilder___call_sites(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
+  fra.me.file = LOCATE_global___rta_analysis;
   fra.me.line = 48;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___call_sites;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___call_sites;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//rta_analysis.nit:48 */
-  REGB0 = TAG_Bool(ATTR_analysis___rta_analysis___RtaBuilder____call_sites(fra.me.REG[0])!=NIT_NULL);
+  /* global/rta_analysis.nit:48 */
+  REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaBuilder____call_sites(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_call_sites", LOCATE_analysis___rta_analysis, 48);
+    nit_abort("Uninitialized attribute %s", "_call_sites", LOCATE_global___rta_analysis, 48);
   }
-  fra.me.REG[0] = ATTR_analysis___rta_analysis___RtaBuilder____call_sites(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_global___rta_analysis___RtaBuilder____call_sites(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t analysis___rta_analysis___RtaBuilder___called_methods(val_t p0){
+val_t global___rta_analysis___RtaBuilder___called_methods(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
+  fra.me.file = LOCATE_global___rta_analysis;
   fra.me.line = 49;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___called_methods;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___called_methods;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//rta_analysis.nit:49 */
-  REGB0 = TAG_Bool(ATTR_analysis___rta_analysis___RtaBuilder____called_methods(fra.me.REG[0])!=NIT_NULL);
+  /* global/rta_analysis.nit:49 */
+  REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaBuilder____called_methods(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_called_methods", LOCATE_analysis___rta_analysis, 49);
+    nit_abort("Uninitialized attribute %s", "_called_methods", LOCATE_global___rta_analysis, 49);
   }
-  fra.me.REG[0] = ATTR_analysis___rta_analysis___RtaBuilder____called_methods(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_global___rta_analysis___RtaBuilder____called_methods(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-void analysis___rta_analysis___RtaBuilder___init(val_t p0, val_t p1, int* init_table){
-  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___rta_analysis___RtaBuilder].i;
+void global___rta_analysis___RtaBuilder___init(val_t p0, val_t p1, int* init_table){
+  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___rta_analysis___RtaBuilder].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
   if (init_table[itpos1]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
+  fra.me.file = LOCATE_global___rta_analysis;
   fra.me.line = 51;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___init;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
@@ -287,23 +284,23 @@ void analysis___rta_analysis___RtaBuilder___init(val_t p0, val_t p1, int* init_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//rta_analysis.nit:52 */
-  fra.me.REG[2] = NEW_RtaContext_analysis___rta_analysis___RtaContext___init();
-  ATTR_analysis___rta_analysis___RtaBuilder____context(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./analysis//rta_analysis.nit:53 */
-  ATTR_analysis___rta_analysis___RtaBuilder____program(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/rta_analysis.nit:52 */
+  fra.me.REG[2] = NEW_RtaContext_global___rta_analysis___RtaContext___init();
+  ATTR_global___rta_analysis___RtaBuilder____context(fra.me.REG[0]) = fra.me.REG[2];
+  /* global/rta_analysis.nit:53 */
+  ATTR_global___rta_analysis___RtaBuilder____program(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
   return;
 }
-val_t analysis___rta_analysis___RtaBuilder___check_method(val_t p0, val_t p1){
+val_t global___rta_analysis___RtaBuilder___check_method(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
+  fra.me.file = LOCATE_global___rta_analysis;
   fra.me.line = 56;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___check_method;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___check_method;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -313,28 +310,28 @@ val_t analysis___rta_analysis___RtaBuilder___check_method(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//rta_analysis.nit:60 */
+  /* global/rta_analysis.nit:60 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[3] = CALL_analysis___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[3] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_program___Program___main_module(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./analysis//rta_analysis.nit:62 */
-  fra.me.REG[2] = CALL_analysis___rta_analysis___RtaBuilder___context(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = CALL_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  /* global/rta_analysis.nit:62 */
+  fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___context(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = CALL_global___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(true);
     fra.me.REG[2] = REGB0;
     goto label1;
   }
-  /* ./analysis//rta_analysis.nit:64 */
+  /* global/rta_analysis.nit:64 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___smallers(fra.me.REG[3])(fra.me.REG[3]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_analysis___rta_analysis___RtaBuilder___check_method_2));
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_global___rta_analysis___RtaBuilder___check_method_2));
   switch ((&(fra.me))->has_broke) {
     case 0: break;
     case 1: (&(fra.me))->has_broke = 0; goto label1;
   }
-  /* ./analysis//rta_analysis.nit:68 */
+  /* global/rta_analysis.nit:68 */
   REGB0 = TAG_Bool(false);
   fra.me.REG[2] = REGB0;
   goto label1;
@@ -342,16 +339,16 @@ val_t analysis___rta_analysis___RtaBuilder___check_method(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-  void OC_analysis___rta_analysis___RtaBuilder___check_method_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+  void OC_global___rta_analysis___RtaBuilder___check_method_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
     struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
     val_t REGB0;
     val_t REGB1;
     fun_t CREG[1];
     val_t tmp;
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_analysis___rta_analysis;
+    fra.me.file = LOCATE_global___rta_analysis;
     fra.me.line = 0;
-    fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___check_method;
+    fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___check_method;
     fra.me.has_broke = 0;
     fra.me.REG_size = 2;
     fra.me.nitni_local_ref_head = NULL;
@@ -361,7 +358,7 @@ val_t analysis___rta_analysis___RtaBuilder___check_method(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./analysis//rta_analysis.nit:65 */
+    /* global/rta_analysis.nit:65 */
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(closctx->REG[1])(closctx->REG[1]);
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
     REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],closctx->REG[1]));
@@ -374,9 +371,9 @@ val_t analysis___rta_analysis___RtaBuilder___check_method(val_t p0, val_t p1){
     if (UNTAG_Bool(REGB0)) {
       goto label3;
     }
-    /* ./analysis//rta_analysis.nit:66 */
-    fra.me.REG[1] = CALL_analysis___rta_analysis___RtaBuilder___context(closctx->REG[0])(closctx->REG[0]);
-    REGB0 = CALL_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+    /* global/rta_analysis.nit:66 */
+    fra.me.REG[1] = CALL_global___rta_analysis___RtaBuilder___context(closctx->REG[0])(closctx->REG[0]);
+    REGB0 = CALL_global___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
       REGB0 = TAG_Bool(true);
       closctx->REG[2] = REGB0;
@@ -387,13 +384,13 @@ val_t analysis___rta_analysis___RtaBuilder___check_method(val_t p0, val_t p1){
     stack_frame_head = fra.me.prev;
     return;
   }
-void analysis___rta_analysis___RtaBuilder___check_call_sites(val_t p0){
+void global___rta_analysis___RtaBuilder___check_call_sites(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
+  fra.me.file = LOCATE_global___rta_analysis;
   fra.me.line = 71;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___check_call_sites;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___check_call_sites;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
@@ -401,24 +398,24 @@ void analysis___rta_analysis___RtaBuilder___check_call_sites(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//rta_analysis.nit:74 */
+  /* global/rta_analysis.nit:74 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  /* ./analysis//rta_analysis.nit:75 */
-  fra.me.REG[2] = CALL_analysis___rta_analysis___RtaBuilder___call_sites(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_analysis___rta_analysis___RtaBuilder___check_call_sites_1));
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_analysis___rta_analysis___RtaBuilder___check_call_sites_4));
+  /* global/rta_analysis.nit:75 */
+  fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___call_sites(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_global___rta_analysis___RtaBuilder___check_call_sites_1));
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_global___rta_analysis___RtaBuilder___check_call_sites_4));
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_analysis___rta_analysis___RtaBuilder___check_call_sites_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+  void OC_global___rta_analysis___RtaBuilder___check_call_sites_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
     struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_analysis___rta_analysis;
+    fra.me.file = LOCATE_global___rta_analysis;
     fra.me.line = 0;
-    fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___check_call_sites;
+    fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___check_call_sites;
     fra.me.has_broke = 0;
     fra.me.REG_size = 3;
     fra.me.nitni_local_ref_head = NULL;
@@ -429,42 +426,42 @@ void analysis___rta_analysis___RtaBuilder___check_call_sites(val_t p0){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./analysis//rta_analysis.nit:76 */
+    /* global/rta_analysis.nit:76 */
     fra.me.REG[1] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
-    /* ./analysis//rta_analysis.nit:77 */
+    /* global/rta_analysis.nit:77 */
     REGB0 = TAG_Bool(true);
     closctx->REG[2] = REGB0;
-    /* ./analysis//rta_analysis.nit:80 */
-    REGB0 = CALL_analysis___rta_analysis___RtaBuilder___check_method(closctx->REG[0])(closctx->REG[0], fra.me.REG[1]);
+    /* global/rta_analysis.nit:80 */
+    REGB0 = CALL_global___rta_analysis___RtaBuilder___check_method(closctx->REG[0])(closctx->REG[0], fra.me.REG[1]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./analysis//rta_analysis.nit:81 */
+      /* global/rta_analysis.nit:81 */
       fra.me.REG[2] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[1])(fra.me.REG[1]);
-      CALL_analysis___rta_analysis___RtaBuilder___add_reachable_iroutine(closctx->REG[0])(closctx->REG[0], fra.me.REG[2]);
+      CALL_global___rta_analysis___RtaBuilder___add_reachable_iroutine(closctx->REG[0])(closctx->REG[0], fra.me.REG[2]);
     } else {
-      /* ./analysis//rta_analysis.nit:83 */
+      /* global/rta_analysis.nit:83 */
       REGB0 = TAG_Bool(false);
       closctx->REG[2] = REGB0;
     }
-    /* ./analysis//rta_analysis.nit:87 */
+    /* global/rta_analysis.nit:87 */
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[1] = CALL_metamodel___partial_order___PartialOrderElement___smallers(fra.me.REG[1])(fra.me.REG[1]);
-    CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], closctx, ((fun_t)OC_analysis___rta_analysis___RtaBuilder___check_call_sites_2));
-    /* ./analysis//rta_analysis.nit:96 */
+    CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], closctx, ((fun_t)OC_global___rta_analysis___RtaBuilder___check_call_sites_2));
+    /* global/rta_analysis.nit:96 */
     if (UNTAG_Bool(closctx->REG[2])) {
       CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     }
     stack_frame_head = fra.me.prev;
     return;
   }
-    void OC_analysis___rta_analysis___RtaBuilder___check_call_sites_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+    void OC_global___rta_analysis___RtaBuilder___check_call_sites_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
       struct {struct stack_frame_t me;} fra;
       val_t REGB0;
       fun_t CREG[1];
       val_t tmp;
       fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-      fra.me.file = LOCATE_analysis___rta_analysis;
+      fra.me.file = LOCATE_global___rta_analysis;
       fra.me.line = 0;
-      fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___check_call_sites;
+      fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___check_call_sites;
       fra.me.has_broke = 0;
       fra.me.REG_size = 1;
       fra.me.nitni_local_ref_head = NULL;
@@ -473,20 +470,20 @@ void analysis___rta_analysis___RtaBuilder___check_call_sites(val_t p0){
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./analysis//rta_analysis.nit:88 */
+      /* global/rta_analysis.nit:88 */
       REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
         goto label3;
       }
-      /* ./analysis//rta_analysis.nit:89 */
-      REGB0 = CALL_analysis___rta_analysis___RtaBuilder___check_method(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
+      /* global/rta_analysis.nit:89 */
+      REGB0 = CALL_global___rta_analysis___RtaBuilder___check_method(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
       if (UNTAG_Bool(REGB0)) {
-        /* ./analysis//rta_analysis.nit:90 */
+        /* global/rta_analysis.nit:90 */
         fra.me.REG[0] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
-        CALL_analysis___rta_analysis___RtaBuilder___add_reachable_iroutine(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
+        CALL_global___rta_analysis___RtaBuilder___add_reachable_iroutine(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
       } else {
-        /* ./analysis//rta_analysis.nit:92 */
+        /* global/rta_analysis.nit:92 */
         REGB0 = TAG_Bool(false);
         closctx->REG[2] = REGB0;
       }
@@ -494,15 +491,15 @@ void analysis___rta_analysis___RtaBuilder___check_call_sites(val_t p0){
       stack_frame_head = fra.me.prev;
       return;
     }
-  void OC_analysis___rta_analysis___RtaBuilder___check_call_sites_4(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+  void OC_global___rta_analysis___RtaBuilder___check_call_sites_4(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
     struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
     fun_t CREG[1];
     val_t tmp;
-    /* ./analysis//rta_analysis.nit:100 */
+    /* global/rta_analysis.nit:100 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_analysis___rta_analysis;
+    fra.me.file = LOCATE_global___rta_analysis;
     fra.me.line = 0;
-    fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___check_call_sites;
+    fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___check_call_sites;
     fra.me.has_broke = 0;
     fra.me.REG_size = 2;
     fra.me.nitni_local_ref_head = NULL;
@@ -512,20 +509,20 @@ void analysis___rta_analysis___RtaBuilder___check_call_sites(val_t p0){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./analysis//rta_analysis.nit:101 */
-    fra.me.REG[1] = CALL_analysis___rta_analysis___RtaBuilder___call_sites(closctx->REG[0])(closctx->REG[0]);
+    /* global/rta_analysis.nit:101 */
+    fra.me.REG[1] = CALL_global___rta_analysis___RtaBuilder___call_sites(closctx->REG[0])(closctx->REG[0]);
     CALL_standard___collection___abstract_collection___RemovableCollection___remove(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
   }
-void analysis___rta_analysis___RtaBuilder___add_instantiated_class(val_t p0, val_t p1){
+void global___rta_analysis___RtaBuilder___add_instantiated_class(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
+  fra.me.file = LOCATE_global___rta_analysis;
   fra.me.line = 105;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___add_instantiated_class;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___add_instantiated_class;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
@@ -534,30 +531,30 @@ void analysis___rta_analysis___RtaBuilder___add_instantiated_class(val_t p0, val
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//rta_analysis.nit:106 */
-  fra.me.REG[2] = CALL_analysis___rta_analysis___RtaBuilder___context(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = CALL_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  /* global/rta_analysis.nit:106 */
+  fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___context(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = CALL_global___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./analysis//rta_analysis.nit:107 */
-  fra.me.REG[2] = CALL_analysis___rta_analysis___RtaBuilder___context(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[2] = CALL_analysis___rta_analysis___RtaContext___instanciated_classes(fra.me.REG[2])(fra.me.REG[2]);
+  /* global/rta_analysis.nit:107 */
+  fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___context(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[2] = CALL_global___rta_analysis___RtaContext___instanciated_classes(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./analysis//rta_analysis.nit:109 */
-  CALL_analysis___rta_analysis___RtaBuilder___check_call_sites(fra.me.REG[0])(fra.me.REG[0]);
+  /* global/rta_analysis.nit:109 */
+  CALL_global___rta_analysis___RtaBuilder___check_call_sites(fra.me.REG[0])(fra.me.REG[0]);
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return;
 }
-void analysis___rta_analysis___RtaBuilder___add_reachable_call(val_t p0, val_t p1){
+void global___rta_analysis___RtaBuilder___add_reachable_call(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
+  fra.me.file = LOCATE_global___rta_analysis;
   fra.me.line = 112;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___add_reachable_call;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___add_reachable_call;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -567,53 +564,41 @@ void analysis___rta_analysis___RtaBuilder___add_reachable_call(val_t p0, val_t p
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//rta_analysis.nit:113 */
+  /* global/rta_analysis.nit:113 */
   fra.me.REG[2] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./analysis//rta_analysis.nit:114 */
-  fra.me.REG[3] = CALL_analysis___rta_analysis___RtaBuilder___called_methods(fra.me.REG[0])(fra.me.REG[0]);
+  /* global/rta_analysis.nit:114 */
+  fra.me.REG[3] = CALL_global___rta_analysis___RtaBuilder___called_methods(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./analysis//rta_analysis.nit:115 */
-  fra.me.REG[3] = CALL_analysis___rta_analysis___RtaBuilder___call_sites(fra.me.REG[0])(fra.me.REG[0]);
+  /* global/rta_analysis.nit:115 */
+  fra.me.REG[3] = CALL_global___rta_analysis___RtaBuilder___call_sites(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./analysis//rta_analysis.nit:117 */
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
-  if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//rta_analysis.nit:118 */
-    fra.me.REG[3] = CALL_analysis___rta_analysis___RtaBuilder___called_methods(fra.me.REG[0])(fra.me.REG[0]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-    /* ./analysis//rta_analysis.nit:119 */
-    fra.me.REG[3] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[2])(fra.me.REG[2]);
-    CALL_analysis___rta_analysis___RtaBuilder___add_reachable_iroutine(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-  } else {
-    /* ./analysis//rta_analysis.nit:125 */
-    fra.me.REG[3] = CALL_analysis___rta_analysis___RtaBuilder___call_sites(fra.me.REG[0])(fra.me.REG[0]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-    /* ./analysis//rta_analysis.nit:126 */
-    fra.me.REG[1] = CALL_analysis___rta_analysis___RtaBuilder___called_methods(fra.me.REG[0])(fra.me.REG[0]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-    /* ./analysis//rta_analysis.nit:127 */
-    CALL_analysis___rta_analysis___RtaBuilder___check_call_sites(fra.me.REG[0])(fra.me.REG[0]);
-  }
+  /* global/rta_analysis.nit:117 */
+  fra.me.REG[3] = CALL_global___rta_analysis___RtaBuilder___call_sites(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  /* global/rta_analysis.nit:118 */
+  fra.me.REG[1] = CALL_global___rta_analysis___RtaBuilder___called_methods(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* global/rta_analysis.nit:119 */
+  CALL_global___rta_analysis___RtaBuilder___check_call_sites(fra.me.REG[0])(fra.me.REG[0]);
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return;
 }
-void analysis___rta_analysis___RtaBuilder___add_reachable_iroutine(val_t p0, val_t p1){
+void global___rta_analysis___RtaBuilder___add_reachable_iroutine(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
-  fra.me.line = 131;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___add_reachable_iroutine;
+  fra.me.file = LOCATE_global___rta_analysis;
+  fra.me.line = 122;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___add_reachable_iroutine;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
@@ -622,7 +607,7 @@ void analysis___rta_analysis___RtaBuilder___add_reachable_iroutine(val_t p0, val
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//rta_analysis.nit:132 */
+  /* global/rta_analysis.nit:123 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -638,25 +623,25 @@ void analysis___rta_analysis___RtaBuilder___add_reachable_iroutine(val_t p0, val
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(true);
   } else {
-    fra.me.REG[2] = CALL_analysis___rta_analysis___RtaBuilder___context(fra.me.REG[0])(fra.me.REG[0]);
-    REGB1 = CALL_analysis___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+    fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___context(fra.me.REG[0])(fra.me.REG[0]);
+    REGB1 = CALL_global___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./analysis//rta_analysis.nit:133 */
-  fra.me.REG[2] = CALL_analysis___rta_analysis___RtaBuilder___context(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[2] = CALL_analysis___rta_analysis___RtaContext___reachable_iroutines(fra.me.REG[2])(fra.me.REG[2]);
+  /* global/rta_analysis.nit:124 */
+  fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___context(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[2] = CALL_global___rta_analysis___RtaContext___reachable_iroutines(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./analysis//rta_analysis.nit:134 */
-  fra.me.REG[0] = CALL_analysis___rta_analysis___RtaBuilder___iroutine_to_search(fra.me.REG[0])(fra.me.REG[0]);
+  /* global/rta_analysis.nit:125 */
+  fra.me.REG[0] = CALL_global___rta_analysis___RtaBuilder___iroutine_to_search(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return;
 }
-void analysis___rta_analysis___RtaBuilder___force_some_type_analysis(val_t p0){
+void global___rta_analysis___RtaBuilder___force_some_type_analysis(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
@@ -677,9 +662,9 @@ void analysis___rta_analysis___RtaBuilder___force_some_type_analysis(val_t p0){
   static val_t once_value_16; /* Once value */
     static val_t once_value_17; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
-  fra.me.line = 137;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___force_some_type_analysis;
+  fra.me.file = LOCATE_global___rta_analysis;
+  fra.me.line = 128;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___force_some_type_analysis;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -690,7 +675,7 @@ void analysis___rta_analysis___RtaBuilder___force_some_type_analysis(val_t p0){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//rta_analysis.nit:139 */
+  /* global/rta_analysis.nit:130 */
   REGB0 = TAG_Int(10);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -783,20 +768,20 @@ void analysis___rta_analysis___RtaBuilder___force_some_type_analysis(val_t p0){
   } else fra.me.REG[2] = once_value_10;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -808,19 +793,19 @@ void analysis___rta_analysis___RtaBuilder___force_some_type_analysis(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./analysis//rta_analysis.nit:142 */
-      fra.me.REG[4] = CALL_analysis___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
+      /* global/rta_analysis.nit:133 */
+      fra.me.REG[4] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[4] = CALL_program___Program___main_module(fra.me.REG[4])(fra.me.REG[4]);
       fra.me.REG[5] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
       REGB1 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
@@ -828,28 +813,28 @@ void analysis___rta_analysis___RtaBuilder___force_some_type_analysis(val_t p0){
       if (UNTAG_Bool(REGB1)) {
         goto label11;
       }
-      /* ./analysis//rta_analysis.nit:143 */
-      fra.me.REG[5] = CALL_analysis___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
+      /* global/rta_analysis.nit:134 */
+      fra.me.REG[5] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[5] = CALL_program___Program___main_module(fra.me.REG[5])(fra.me.REG[5]);
       fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
       fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
-      /* ./analysis//rta_analysis.nit:144 */
-      CALL_analysis___rta_analysis___RtaBuilder___add_instantiated_class(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
+      /* global/rta_analysis.nit:135 */
+      CALL_global___rta_analysis___RtaBuilder___add_instantiated_class(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
       label11: while(0);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label12;
     }
   }
   label12: while(0);
-  /* ./analysis//rta_analysis.nit:147 */
-  fra.me.REG[2] = CALL_analysis___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
+  /* global/rta_analysis.nit:138 */
+  fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_program___Program___main_module(fra.me.REG[2])(fra.me.REG[2]);
   if (!once_value_13) {
     fra.me.REG[1] = BOX_NativeString("Inline__");
@@ -862,8 +847,8 @@ void analysis___rta_analysis___RtaBuilder___force_some_type_analysis(val_t p0){
   fra.me.REG[1] = CALL_standard___symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//rta_analysis.nit:148 */
-    fra.me.REG[1] = CALL_analysis___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
+    /* global/rta_analysis.nit:139 */
+    fra.me.REG[1] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = CALL_program___Program___main_module(fra.me.REG[1])(fra.me.REG[1]);
     if (!once_value_14) {
       fra.me.REG[2] = BOX_NativeString("Inline__");
@@ -875,13 +860,13 @@ void analysis___rta_analysis___RtaBuilder___force_some_type_analysis(val_t p0){
     fra.me.REG[2] = fra.me.REG[2];
     fra.me.REG[2] = CALL_standard___symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-    /* ./analysis//rta_analysis.nit:152 */
+    /* global/rta_analysis.nit:143 */
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrderElement___smallers(fra.me.REG[2])(fra.me.REG[2]);
-    CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_analysis___rta_analysis___RtaBuilder___force_some_type_analysis_15));
+    CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_15));
   }
-  /* ./analysis//rta_analysis.nit:157 */
-  fra.me.REG[2] = CALL_analysis___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
+  /* global/rta_analysis.nit:148 */
+  fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_program___Program___main_module(fra.me.REG[2])(fra.me.REG[2]);
   if (!once_value_16) {
     fra.me.REG[1] = BOX_NativeString("Pointer");
@@ -894,8 +879,8 @@ void analysis___rta_analysis___RtaBuilder___force_some_type_analysis(val_t p0){
   fra.me.REG[1] = CALL_standard___symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//rta_analysis.nit:158 */
-    fra.me.REG[1] = CALL_analysis___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
+    /* global/rta_analysis.nit:149 */
+    fra.me.REG[1] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = CALL_program___Program___main_module(fra.me.REG[1])(fra.me.REG[1]);
     if (!once_value_17) {
       fra.me.REG[2] = BOX_NativeString("Pointer");
@@ -907,30 +892,30 @@ void analysis___rta_analysis___RtaBuilder___force_some_type_analysis(val_t p0){
     fra.me.REG[2] = fra.me.REG[2];
     fra.me.REG[2] = CALL_standard___symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-    /* ./analysis//rta_analysis.nit:162 */
+    /* global/rta_analysis.nit:153 */
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrderElement___smallers(fra.me.REG[2])(fra.me.REG[2]);
-    CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_analysis___rta_analysis___RtaBuilder___force_some_type_analysis_18));
+    CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_18));
   }
-  /* ./analysis//rta_analysis.nit:167 */
-  fra.me.REG[2] = CALL_analysis___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
+  /* global/rta_analysis.nit:158 */
+  fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_program___Program___main_module(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___global_classes(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_analysis___rta_analysis___RtaBuilder___force_some_type_analysis_19));
-  /* ./analysis//rta_analysis.nit:174 */
-  fra.me.REG[2] = CALL_analysis___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_program___Program___with_each_methods(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_analysis___rta_analysis___RtaBuilder___force_some_type_analysis_21));
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_19));
+  /* global/rta_analysis.nit:165 */
+  fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_program___Program___with_each_methods(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_21));
   stack_frame_head = fra.me.prev;
   return;
 }
-    void OC_analysis___rta_analysis___RtaBuilder___force_some_type_analysis_15(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+    void OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_15(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
       struct {struct stack_frame_t me;} fra;
       fun_t CREG[1];
       val_t tmp;
       fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-      fra.me.file = LOCATE_analysis___rta_analysis;
+      fra.me.file = LOCATE_global___rta_analysis;
       fra.me.line = 0;
-      fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___force_some_type_analysis;
+      fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___force_some_type_analysis;
       fra.me.has_broke = 0;
       fra.me.REG_size = 1;
       fra.me.nitni_local_ref_head = NULL;
@@ -939,19 +924,19 @@ void analysis___rta_analysis___RtaBuilder___force_some_type_analysis(val_t p0){
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./analysis//rta_analysis.nit:153 */
-      CALL_analysis___rta_analysis___RtaBuilder___add_instantiated_class(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
+      /* global/rta_analysis.nit:144 */
+      CALL_global___rta_analysis___RtaBuilder___add_instantiated_class(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
       stack_frame_head = fra.me.prev;
       return;
     }
-    void OC_analysis___rta_analysis___RtaBuilder___force_some_type_analysis_18(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+    void OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_18(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
       struct {struct stack_frame_t me;} fra;
       fun_t CREG[1];
       val_t tmp;
       fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-      fra.me.file = LOCATE_analysis___rta_analysis;
+      fra.me.file = LOCATE_global___rta_analysis;
       fra.me.line = 0;
-      fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___force_some_type_analysis;
+      fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___force_some_type_analysis;
       fra.me.has_broke = 0;
       fra.me.REG_size = 1;
       fra.me.nitni_local_ref_head = NULL;
@@ -960,21 +945,21 @@ void analysis___rta_analysis___RtaBuilder___force_some_type_analysis(val_t p0){
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./analysis//rta_analysis.nit:163 */
-      CALL_analysis___rta_analysis___RtaBuilder___add_instantiated_class(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
+      /* global/rta_analysis.nit:154 */
+      CALL_global___rta_analysis___RtaBuilder___add_instantiated_class(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
       stack_frame_head = fra.me.prev;
       return;
     }
-  void OC_analysis___rta_analysis___RtaBuilder___force_some_type_analysis_19(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+  void OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_19(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
     struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
     val_t REGB0;
     val_t REGB1;
     fun_t CREG[1];
     val_t tmp;
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_analysis___rta_analysis;
+    fra.me.file = LOCATE_global___rta_analysis;
     fra.me.line = 0;
-    fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___force_some_type_analysis;
+    fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___force_some_type_analysis;
     fra.me.has_broke = 0;
     fra.me.REG_size = 2;
     fra.me.nitni_local_ref_head = NULL;
@@ -984,7 +969,7 @@ void analysis___rta_analysis___RtaBuilder___force_some_type_analysis(val_t p0){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./analysis//rta_analysis.nit:168 */
+    /* global/rta_analysis.nit:159 */
     REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
@@ -997,39 +982,39 @@ void analysis___rta_analysis___RtaBuilder___force_some_type_analysis(val_t p0){
     if (UNTAG_Bool(REGB0)) {
       goto label20;
     }
-    /* ./analysis//rta_analysis.nit:169 */
-    fra.me.REG[1] = CALL_analysis___rta_analysis___RtaBuilder___program(closctx->REG[0])(closctx->REG[0]);
+    /* global/rta_analysis.nit:160 */
+    fra.me.REG[1] = CALL_global___rta_analysis___RtaBuilder___program(closctx->REG[0])(closctx->REG[0]);
     fra.me.REG[1] = CALL_program___Program___main_module(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    CALL_analysis___rta_analysis___RtaBuilder___add_instantiated_class(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
+    CALL_global___rta_analysis___RtaBuilder___add_instantiated_class(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
     label20: while(0);
     stack_frame_head = fra.me.prev;
     return;
   }
-  void OC_analysis___rta_analysis___RtaBuilder___force_some_type_analysis_21(struct stack_frame_t *closctx, val_t p0){
+  void OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_21(struct stack_frame_t *closctx, val_t p0){
     struct {struct stack_frame_t me;} fra;
     val_t REGB0;
     val_t tmp;
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_analysis___rta_analysis;
-    fra.me.line = 174;
-    fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___force_some_type_analysis;
+    fra.me.file = LOCATE_global___rta_analysis;
+    fra.me.line = 165;
+    fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___force_some_type_analysis;
     fra.me.has_broke = 0;
     fra.me.REG_size = 1;
     fra.me.nitni_local_ref_head = NULL;
     fra.me.REG[0] = NIT_NULL;
     fra.me.REG[0] = p0;
-    /* ./analysis//rta_analysis.nit:175 */
+    /* global/rta_analysis.nit:166 */
     REGB0 = CALL_metamodel___abstractmetamodel___MMMethod___is_extern(fra.me.REG[0])(fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./analysis//rta_analysis.nit:176 */
+      /* global/rta_analysis.nit:167 */
       fra.me.REG[0] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
-      CALL_analysis___rta_analysis___RtaBuilder___add_reachable_iroutine(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
+      CALL_global___rta_analysis___RtaBuilder___add_reachable_iroutine(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
     }
     stack_frame_head = fra.me.prev;
     return;
   }
-void analysis___rta_analysis___RtaBuilder___work(val_t p0){
+void global___rta_analysis___RtaBuilder___work(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t REGB1;
@@ -1039,9 +1024,9 @@ void analysis___rta_analysis___RtaBuilder___work(val_t p0){
     static val_t once_value_2; /* Once value */
     static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
-  fra.me.line = 181;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaBuilder___work;
+  fra.me.file = LOCATE_global___rta_analysis;
+  fra.me.line = 172;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___work;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -1053,10 +1038,10 @@ void analysis___rta_analysis___RtaBuilder___work(val_t p0){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//rta_analysis.nit:181 */
+  /* global/rta_analysis.nit:172 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./analysis//rta_analysis.nit:183 */
-  fra.me.REG[2] = CALL_analysis___rta_analysis___RtaBuilder___program(fra.me.REG[1])(fra.me.REG[1]);
+  /* global/rta_analysis.nit:174 */
+  fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_program___Program___main_method(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1071,7 +1056,7 @@ void analysis___rta_analysis___RtaBuilder___work(val_t p0){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//rta_analysis.nit:185 */
+    /* global/rta_analysis.nit:176 */
     REGB0 = TAG_Int(3);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -1101,20 +1086,20 @@ void analysis___rta_analysis___RtaBuilder___work(val_t p0){
     } else fra.me.REG[3] = once_value_3;
     fra.me.REG[3] = fra.me.REG[3];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-    /* ./../lib/standard//collection//array.nit:269 */
+    /* ../lib/standard/collection/array.nit:269 */
     REGB0 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:270 */
+    /* ../lib/standard/collection/array.nit:270 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-    /* ./../lib/standard//collection//array.nit:271 */
+    /* ../lib/standard/collection/array.nit:271 */
     fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     while(1) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -1126,86 +1111,86 @@ void analysis___rta_analysis___RtaBuilder___work(val_t p0){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       if (UNTAG_Bool(REGB1)) {
-        /* ./../lib/standard//collection//array.nit:273 */
+        /* ../lib/standard/collection/array.nit:273 */
         REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
-        /* ./analysis//rta_analysis.nit:186 */
-        fra.me.REG[5] = CALL_analysis___rta_analysis___RtaBuilder___program(fra.me.REG[1])(fra.me.REG[1]);
+        /* global/rta_analysis.nit:177 */
+        fra.me.REG[5] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[5] = CALL_program___Program___main_module(fra.me.REG[5])(fra.me.REG[5]);
         fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
         REGB1 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
         if (UNTAG_Bool(REGB1)) {
-          /* ./analysis//rta_analysis.nit:187 */
-          fra.me.REG[6] = CALL_analysis___rta_analysis___RtaBuilder___program(fra.me.REG[1])(fra.me.REG[1]);
+          /* global/rta_analysis.nit:178 */
+          fra.me.REG[6] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[1])(fra.me.REG[1]);
           fra.me.REG[6] = CALL_program___Program___main_module(fra.me.REG[6])(fra.me.REG[6]);
           fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
           fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
-          CALL_analysis___rta_analysis___RtaBuilder___add_instantiated_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
+          CALL_global___rta_analysis___RtaBuilder___add_instantiated_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
         }
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB1 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB0 = REGB1;
       } else {
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         goto label4;
       }
     }
     label4: while(0);
-    /* ./analysis//rta_analysis.nit:190 */
+    /* global/rta_analysis.nit:181 */
     goto label5;
   }
-  /* ./analysis//rta_analysis.nit:193 */
-  fra.me.REG[3] = CALL_analysis___rta_analysis___RtaBuilder___program(fra.me.REG[1])(fra.me.REG[1]);
+  /* global/rta_analysis.nit:184 */
+  fra.me.REG[3] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = CALL_program___Program___main_class(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_metamodel___abstractmetamodel___MMLocalClass, ID_metamodel___abstractmetamodel___MMLocalClass)) /*cast MMLocalClass*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_analysis___rta_analysis, 193);
+    nit_abort("Cast failed", NULL, LOCATE_global___rta_analysis, 184);
   }
-  CALL_analysis___rta_analysis___RtaBuilder___add_instantiated_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./analysis//rta_analysis.nit:194 */
-  fra.me.REG[3] = CALL_analysis___rta_analysis___RtaBuilder___program(fra.me.REG[1])(fra.me.REG[1]);
+  CALL_global___rta_analysis___RtaBuilder___add_instantiated_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+  /* global/rta_analysis.nit:185 */
+  fra.me.REG[3] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = CALL_program___Program___main_method(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_analysis___rta_analysis, 194);
+    nit_abort("Cast failed", NULL, LOCATE_global___rta_analysis, 185);
   }
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_analysis___rta_analysis, 194);
+    nit_abort("Reciever is null", NULL, LOCATE_global___rta_analysis, 185);
   }
   fra.me.REG[3] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[3])(fra.me.REG[3]);
-  CALL_analysis___rta_analysis___RtaBuilder___add_reachable_iroutine(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./analysis//rta_analysis.nit:195 */
-  CALL_analysis___rta_analysis___RtaBuilder___force_some_type_analysis(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./analysis//rta_analysis.nit:197 */
+  CALL_global___rta_analysis___RtaBuilder___add_reachable_iroutine(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+  /* global/rta_analysis.nit:186 */
+  CALL_global___rta_analysis___RtaBuilder___force_some_type_analysis(fra.me.REG[1])(fra.me.REG[1]);
+  /* global/rta_analysis.nit:188 */
   while(1) {
-    fra.me.REG[3] = CALL_analysis___rta_analysis___RtaBuilder___iroutine_to_search(fra.me.REG[1])(fra.me.REG[1]);
+    fra.me.REG[3] = CALL_global___rta_analysis___RtaBuilder___iroutine_to_search(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./analysis//rta_analysis.nit:198 */
-      fra.me.REG[3] = NEW_RtaVisitor_analysis___rta_analysis___RtaVisitor___init(fra.me.REG[1]);
-      /* ./analysis//rta_analysis.nit:199 */
-      fra.me.REG[0] = CALL_analysis___rta_analysis___RtaBuilder___iroutine_to_search(fra.me.REG[1])(fra.me.REG[1]);
+      /* global/rta_analysis.nit:189 */
+      fra.me.REG[3] = NEW_RtaVisitor_global___rta_analysis___RtaVisitor___init(fra.me.REG[1]);
+      /* global/rta_analysis.nit:190 */
+      fra.me.REG[0] = CALL_global___rta_analysis___RtaBuilder___iroutine_to_search(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[0] = CALL_standard___collection___abstract_collection___Sequence___pop(fra.me.REG[0])(fra.me.REG[0]);
-      /* ./analysis//rta_analysis.nit:200 */
+      /* global/rta_analysis.nit:191 */
       fra.me.REG[0] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]);
       CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
     } else {
-      /* ./analysis//rta_analysis.nit:197 */
+      /* global/rta_analysis.nit:188 */
       goto label6;
     }
   }
@@ -1214,37 +1199,37 @@ void analysis___rta_analysis___RtaBuilder___work(val_t p0){
   stack_frame_head = fra.me.prev;
   return;
 }
-val_t analysis___rta_analysis___RtaVisitor___builder(val_t p0){
+val_t global___rta_analysis___RtaVisitor___builder(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
-  fra.me.line = 207;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaVisitor___builder;
+  fra.me.file = LOCATE_global___rta_analysis;
+  fra.me.line = 198;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaVisitor___builder;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//rta_analysis.nit:207 */
-  REGB0 = TAG_Bool(ATTR_analysis___rta_analysis___RtaVisitor____builder(fra.me.REG[0])!=NIT_NULL);
+  /* global/rta_analysis.nit:198 */
+  REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaVisitor____builder(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_builder", LOCATE_analysis___rta_analysis, 207);
+    nit_abort("Uninitialized attribute %s", "_builder", LOCATE_global___rta_analysis, 198);
   }
-  fra.me.REG[0] = ATTR_analysis___rta_analysis___RtaVisitor____builder(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_global___rta_analysis___RtaVisitor____builder(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-void analysis___rta_analysis___RtaVisitor___visit_icode(val_t p0, val_t p1){
+void global___rta_analysis___RtaVisitor___visit_icode(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
-  fra.me.line = 209;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaVisitor___visit_icode;
+  fra.me.file = LOCATE_global___rta_analysis;
+  fra.me.line = 200;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaVisitor___visit_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -1257,46 +1242,46 @@ void analysis___rta_analysis___RtaVisitor___visit_icode(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//rta_analysis.nit:209 */
+  /* global/rta_analysis.nit:200 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./analysis//rta_analysis.nit:211 */
+  /* global/rta_analysis.nit:202 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___IStaticCall, ID_icode___icode_base___IStaticCall)) /*cast IStaticCall*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./analysis//rta_analysis.nit:213 */
-    fra.me.REG[4] = CALL_analysis___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+    /* global/rta_analysis.nit:204 */
+    fra.me.REG[4] = CALL_global___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_analysis___rta_analysis, 213);
+      nit_abort("Reciever is null", NULL, LOCATE_global___rta_analysis, 204);
     }
     fra.me.REG[5] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
     fra.me.REG[5] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[5])(fra.me.REG[5]);
-    CALL_analysis___rta_analysis___RtaBuilder___add_reachable_iroutine(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
+    CALL_global___rta_analysis___RtaBuilder___add_reachable_iroutine(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   } else {
-    /* ./analysis//rta_analysis.nit:214 */
+    /* global/rta_analysis.nit:205 */
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___INew, ID_icode___icode_base___INew)) /*cast INew*/;
     if (UNTAG_Bool(REGB0)) {
-      /* ./analysis//rta_analysis.nit:216 */
+      /* global/rta_analysis.nit:207 */
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_analysis___rta_analysis, 216);
+        nit_abort("Reciever is null", NULL, LOCATE_global___rta_analysis, 207);
       }
       fra.me.REG[5] = CALL_icode___icode_base___INew___stype(fra.me.REG[3])(fra.me.REG[3]);
-      /* ./analysis//rta_analysis.nit:217 */
-      fra.me.REG[4] = CALL_analysis___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
-      fra.me.REG[4] = CALL_analysis___rta_analysis___RtaBuilder___program(fra.me.REG[4])(fra.me.REG[4]);
+      /* global/rta_analysis.nit:208 */
+      fra.me.REG[4] = CALL_global___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+      fra.me.REG[4] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[4])(fra.me.REG[4]);
       fra.me.REG[4] = CALL_program___Program___main_module(fra.me.REG[4])(fra.me.REG[4]);
       fra.me.REG[4] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
       fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[4])(fra.me.REG[4]);
-      /* ./analysis//rta_analysis.nit:218 */
+      /* global/rta_analysis.nit:209 */
       fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
       REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[5])(fra.me.REG[5]);
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
-        /* ./analysis//rta_analysis.nit:219 */
+        /* global/rta_analysis.nit:210 */
         REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
-          nit_abort("Reciever is null", NULL, LOCATE_analysis___rta_analysis, 219);
+          nit_abort("Reciever is null", NULL, LOCATE_global___rta_analysis, 210);
         }
         fra.me.REG[5] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
         fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[5])(fra.me.REG[5]);
@@ -1304,100 +1289,100 @@ void analysis___rta_analysis___RtaVisitor___visit_icode(val_t p0, val_t p1){
         REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[5], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
         if (UNTAG_Bool(REGB0)) {
         } else {
-          nit_abort("Cast failed", NULL, LOCATE_analysis___rta_analysis, 219);
+          nit_abort("Cast failed", NULL, LOCATE_global___rta_analysis, 210);
         }
-        /* ./analysis//rta_analysis.nit:220 */
+        /* global/rta_analysis.nit:211 */
         fra.me.REG[6] = CALL_program___MMLocalClass___new_instance_iroutine(fra.me.REG[4])(fra.me.REG[4]);
         fra.me.REG[5] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
-        /* ./analysis//rta_analysis.nit:221 */
-        fra.me.REG[6] = CALL_analysis___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
-        CALL_analysis___rta_analysis___RtaBuilder___add_reachable_iroutine(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
+        /* global/rta_analysis.nit:212 */
+        fra.me.REG[6] = CALL_global___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+        CALL_global___rta_analysis___RtaBuilder___add_reachable_iroutine(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
       }
-      /* ./analysis//rta_analysis.nit:223 */
-      fra.me.REG[5] = CALL_analysis___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
-      CALL_analysis___rta_analysis___RtaBuilder___add_instantiated_class(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
+      /* global/rta_analysis.nit:214 */
+      fra.me.REG[5] = CALL_global___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+      CALL_global___rta_analysis___RtaBuilder___add_instantiated_class(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
     } else {
-      /* ./analysis//rta_analysis.nit:224 */
+      /* global/rta_analysis.nit:215 */
       REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___ISuper, ID_icode___icode_base___ISuper)) /*cast ISuper*/;
       if (UNTAG_Bool(REGB0)) {
-        /* ./analysis//rta_analysis.nit:226 */
+        /* global/rta_analysis.nit:217 */
         REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
-          nit_abort("Reciever is null", NULL, LOCATE_analysis___rta_analysis, 226);
+          nit_abort("Reciever is null", NULL, LOCATE_global___rta_analysis, 217);
         }
         fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
         fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[4])(fra.me.REG[4]);
         fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[4])(fra.me.REG[4]);
-        CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_analysis___rta_analysis___RtaVisitor___visit_icode_1));
+        CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_global___rta_analysis___RtaVisitor___visit_icode_1));
       } else {
-        /* ./analysis//rta_analysis.nit:231 */
+        /* global/rta_analysis.nit:222 */
         REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___ICall, ID_icode___icode_base___ICall)) /*cast ICall*/;
         if (UNTAG_Bool(REGB0)) {
-          /* ./analysis//rta_analysis.nit:232 */
-          fra.me.REG[4] = CALL_analysis___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
-          CALL_analysis___rta_analysis___RtaBuilder___add_reachable_call(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
+          /* global/rta_analysis.nit:223 */
+          fra.me.REG[4] = CALL_global___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+          CALL_global___rta_analysis___RtaBuilder___add_reachable_call(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
         } else {
-          /* ./analysis//rta_analysis.nit:233 */
+          /* global/rta_analysis.nit:224 */
           REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___ICheckInstance, ID_icode___icode_base___ICheckInstance)) /*cast ICheckInstance*/;
           if (UNTAG_Bool(REGB0)) {
-            /* ./analysis//rta_analysis.nit:234 */
+            /* global/rta_analysis.nit:225 */
             REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
             if (UNTAG_Bool(REGB0)) {
-              nit_abort("Reciever is null", NULL, LOCATE_analysis___rta_analysis, 234);
+              nit_abort("Reciever is null", NULL, LOCATE_global___rta_analysis, 225);
             }
             fra.me.REG[4] = CALL_icode___icode_base___ICheckInstance___stype(fra.me.REG[3])(fra.me.REG[3]);
-            /* ./analysis//rta_analysis.nit:235 */
-            fra.me.REG[5] = CALL_analysis___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
-            fra.me.REG[5] = CALL_analysis___rta_analysis___RtaBuilder___program(fra.me.REG[5])(fra.me.REG[5]);
+            /* global/rta_analysis.nit:226 */
+            fra.me.REG[5] = CALL_global___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+            fra.me.REG[5] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[5])(fra.me.REG[5]);
             fra.me.REG[5] = CALL_program___Program___main_module(fra.me.REG[5])(fra.me.REG[5]);
             fra.me.REG[5] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
             fra.me.REG[5] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[5])(fra.me.REG[5]);
-            /* ./analysis//rta_analysis.nit:236 */
+            /* global/rta_analysis.nit:227 */
             fra.me.REG[5] = CALL_program___MMLocalClass___checknew_iroutine(fra.me.REG[5])(fra.me.REG[5]);
-            /* ./analysis//rta_analysis.nit:237 */
-            fra.me.REG[4] = CALL_analysis___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
-            CALL_analysis___rta_analysis___RtaBuilder___add_reachable_iroutine(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
+            /* global/rta_analysis.nit:228 */
+            fra.me.REG[4] = CALL_global___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+            CALL_global___rta_analysis___RtaBuilder___add_reachable_iroutine(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
           } else {
-            /* ./analysis//rta_analysis.nit:238 */
+            /* global/rta_analysis.nit:229 */
             REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___IInitAttributes, ID_icode___icode_base___IInitAttributes)) /*cast IInitAttributes*/;
             if (UNTAG_Bool(REGB0)) {
-              /* ./analysis//rta_analysis.nit:239 */
+              /* global/rta_analysis.nit:230 */
               REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
               if (UNTAG_Bool(REGB0)) {
-               nit_abort("Reciever is null", NULL, LOCATE_analysis___rta_analysis, 239);
+               nit_abort("Reciever is null", NULL, LOCATE_global___rta_analysis, 230);
               }
               fra.me.REG[3] = CALL_icode___icode_base___IInitAttributes___stype(fra.me.REG[3])(fra.me.REG[3]);
-              /* ./analysis//rta_analysis.nit:240 */
-              fra.me.REG[5] = CALL_analysis___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
-              fra.me.REG[5] = CALL_analysis___rta_analysis___RtaBuilder___program(fra.me.REG[5])(fra.me.REG[5]);
+              /* global/rta_analysis.nit:231 */
+              fra.me.REG[5] = CALL_global___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+              fra.me.REG[5] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[5])(fra.me.REG[5]);
               fra.me.REG[5] = CALL_program___Program___main_module(fra.me.REG[5])(fra.me.REG[5]);
               fra.me.REG[5] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
               fra.me.REG[5] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[5])(fra.me.REG[5]);
-              /* ./analysis//rta_analysis.nit:241 */
+              /* global/rta_analysis.nit:232 */
               fra.me.REG[5] = CALL_program___MMLocalClass___init_var_iroutine(fra.me.REG[5])(fra.me.REG[5]);
-              /* ./analysis//rta_analysis.nit:242 */
-              fra.me.REG[2] = CALL_analysis___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
-              CALL_analysis___rta_analysis___RtaBuilder___add_reachable_iroutine(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
+              /* global/rta_analysis.nit:233 */
+              fra.me.REG[2] = CALL_global___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
+              CALL_global___rta_analysis___RtaBuilder___add_reachable_iroutine(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
             }
           }
         }
       }
     }
   }
-  /* ./analysis//rta_analysis.nit:244 */
-  CALL_SUPER_analysis___rta_analysis___RtaVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  /* global/rta_analysis.nit:235 */
+  CALL_SUPER_global___rta_analysis___RtaVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
 }
-        void OC_analysis___rta_analysis___RtaVisitor___visit_icode_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+        void OC_global___rta_analysis___RtaVisitor___visit_icode_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
           struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
           val_t REGB0;
           fun_t CREG[1];
           val_t tmp;
           fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-          fra.me.file = LOCATE_analysis___rta_analysis;
+          fra.me.file = LOCATE_global___rta_analysis;
           fra.me.line = 0;
-          fra.me.meth = LOCATE_analysis___rta_analysis___RtaVisitor___visit_icode;
+          fra.me.meth = LOCATE_global___rta_analysis___RtaVisitor___visit_icode;
           fra.me.has_broke = 0;
           fra.me.REG_size = 2;
           fra.me.nitni_local_ref_head = NULL;
@@ -1407,26 +1392,26 @@ void analysis___rta_analysis___RtaVisitor___visit_icode(val_t p0, val_t p1){
           fra.me.closure_funs = CREG;
           fra.me.REG[0] = p0;
           CREG[0] = clos_fun0;
-          /* ./analysis//rta_analysis.nit:227 */
+          /* global/rta_analysis.nit:218 */
           REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
           if (UNTAG_Bool(REGB0)) {
-            /* ./analysis//rta_analysis.nit:228 */
-            fra.me.REG[1] = CALL_analysis___rta_analysis___RtaVisitor___builder(closctx->REG[2])(closctx->REG[2]);
+            /* global/rta_analysis.nit:219 */
+            fra.me.REG[1] = CALL_global___rta_analysis___RtaVisitor___builder(closctx->REG[2])(closctx->REG[2]);
             fra.me.REG[0] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
-            CALL_analysis___rta_analysis___RtaBuilder___add_reachable_iroutine(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+            CALL_global___rta_analysis___RtaBuilder___add_reachable_iroutine(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
           }
           stack_frame_head = fra.me.prev;
           return;
         }
-void analysis___rta_analysis___RtaVisitor___init(val_t p0, val_t p1, int* init_table){
-  int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___rta_analysis___RtaVisitor].i;
+void global___rta_analysis___RtaVisitor___init(val_t p0, val_t p1, int* init_table){
+  int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___rta_analysis___RtaVisitor].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
   if (init_table[itpos2]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_analysis___rta_analysis;
-  fra.me.line = 247;
-  fra.me.meth = LOCATE_analysis___rta_analysis___RtaVisitor___init;
+  fra.me.file = LOCATE_global___rta_analysis;
+  fra.me.line = 238;
+  fra.me.meth = LOCATE_global___rta_analysis___RtaVisitor___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
@@ -1435,11 +1420,11 @@ void analysis___rta_analysis___RtaVisitor___init(val_t p0, val_t p1, int* init_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./analysis//rta_analysis.nit:247 */
+  /* global/rta_analysis.nit:238 */
   fra.me.REG[2] = fra.me.REG[0];
   CALL_icode___icode_tools___ICodeVisitor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./analysis//rta_analysis.nit:249 */
-  ATTR_analysis___rta_analysis___RtaVisitor____builder(fra.me.REG[2]) = fra.me.REG[1];
+  /* global/rta_analysis.nit:240 */
+  ATTR_global___rta_analysis___RtaVisitor____builder(fra.me.REG[2]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos2] = 1;
   return;
diff --git a/c_src/global___rta_analysis._sep.h b/c_src/global___rta_analysis._sep.h
new file mode 100644 (file)
index 0000000..23c420b
--- /dev/null
@@ -0,0 +1,146 @@
+/* This C header file is generated by NIT to compile modules and programs that requires ./global/rta_analysis. */
+#ifndef global___rta_analysis_sep
+#define global___rta_analysis_sep
+#include "global___instantiated_type_analysis._sep.h"
+#include "global___reachable_method_analysis._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_global___rta_analysis___RtaContext[];
+
+extern const classtable_elt_t VFT_global___rta_analysis___RtaBuilder[];
+
+extern const classtable_elt_t VFT_global___rta_analysis___RtaVisitor[];
+extern const char *LOCATE_global___rta_analysis;
+extern const int SFT_global___rta_analysis[];
+#define ID_global___rta_analysis___RtaContext (SFT_global___rta_analysis[0])
+#define COLOR_global___rta_analysis___RtaContext (SFT_global___rta_analysis[1])
+#define ATTR_global___rta_analysis___RtaContext____instanciated_classes(recv) ATTR(recv, (SFT_global___rta_analysis[2] + 0))
+#define ATTR_global___rta_analysis___RtaContext____reachable_iroutines(recv) ATTR(recv, (SFT_global___rta_analysis[2] + 1))
+#define INIT_TABLE_POS_global___rta_analysis___RtaContext (SFT_global___rta_analysis[3] + 0)
+#define CALL_global___rta_analysis___RtaContext___init(recv) ((global___rta_analysis___RtaContext___init_t)CALL((recv), (SFT_global___rta_analysis[3] + 1)))
+#define CALL_global___rta_analysis___RtaContext___instanciated_classes(recv) ((global___rta_analysis___RtaContext___instanciated_classes_t)CALL((recv), (SFT_global___rta_analysis[3] + 2)))
+#define CALL_global___rta_analysis___RtaContext___reachable_iroutines(recv) ((global___rta_analysis___RtaContext___reachable_iroutines_t)CALL((recv), (SFT_global___rta_analysis[3] + 3)))
+#define ID_global___rta_analysis___RtaBuilder (SFT_global___rta_analysis[4])
+#define COLOR_global___rta_analysis___RtaBuilder (SFT_global___rta_analysis[5])
+#define ATTR_global___rta_analysis___RtaBuilder____context(recv) ATTR(recv, (SFT_global___rta_analysis[6] + 0))
+#define ATTR_global___rta_analysis___RtaBuilder____program(recv) ATTR(recv, (SFT_global___rta_analysis[6] + 1))
+#define ATTR_global___rta_analysis___RtaBuilder____iroutine_to_search(recv) ATTR(recv, (SFT_global___rta_analysis[6] + 2))
+#define ATTR_global___rta_analysis___RtaBuilder____call_sites(recv) ATTR(recv, (SFT_global___rta_analysis[6] + 3))
+#define ATTR_global___rta_analysis___RtaBuilder____called_methods(recv) ATTR(recv, (SFT_global___rta_analysis[6] + 4))
+#define INIT_TABLE_POS_global___rta_analysis___RtaBuilder (SFT_global___rta_analysis[7] + 0)
+#define CALL_global___rta_analysis___RtaBuilder___context(recv) ((global___rta_analysis___RtaBuilder___context_t)CALL((recv), (SFT_global___rta_analysis[7] + 1)))
+#define CALL_global___rta_analysis___RtaBuilder___program(recv) ((global___rta_analysis___RtaBuilder___program_t)CALL((recv), (SFT_global___rta_analysis[7] + 2)))
+#define CALL_global___rta_analysis___RtaBuilder___iroutine_to_search(recv) ((global___rta_analysis___RtaBuilder___iroutine_to_search_t)CALL((recv), (SFT_global___rta_analysis[7] + 3)))
+#define CALL_global___rta_analysis___RtaBuilder___call_sites(recv) ((global___rta_analysis___RtaBuilder___call_sites_t)CALL((recv), (SFT_global___rta_analysis[7] + 4)))
+#define CALL_global___rta_analysis___RtaBuilder___called_methods(recv) ((global___rta_analysis___RtaBuilder___called_methods_t)CALL((recv), (SFT_global___rta_analysis[7] + 5)))
+#define CALL_global___rta_analysis___RtaBuilder___init(recv) ((global___rta_analysis___RtaBuilder___init_t)CALL((recv), (SFT_global___rta_analysis[7] + 6)))
+#define CALL_global___rta_analysis___RtaBuilder___check_method(recv) ((global___rta_analysis___RtaBuilder___check_method_t)CALL((recv), (SFT_global___rta_analysis[7] + 7)))
+#define CALL_global___rta_analysis___RtaBuilder___check_call_sites(recv) ((global___rta_analysis___RtaBuilder___check_call_sites_t)CALL((recv), (SFT_global___rta_analysis[7] + 8)))
+#define CALL_global___rta_analysis___RtaBuilder___add_instantiated_class(recv) ((global___rta_analysis___RtaBuilder___add_instantiated_class_t)CALL((recv), (SFT_global___rta_analysis[7] + 9)))
+#define CALL_global___rta_analysis___RtaBuilder___add_reachable_call(recv) ((global___rta_analysis___RtaBuilder___add_reachable_call_t)CALL((recv), (SFT_global___rta_analysis[7] + 10)))
+#define CALL_global___rta_analysis___RtaBuilder___add_reachable_iroutine(recv) ((global___rta_analysis___RtaBuilder___add_reachable_iroutine_t)CALL((recv), (SFT_global___rta_analysis[7] + 11)))
+#define CALL_global___rta_analysis___RtaBuilder___force_some_type_analysis(recv) ((global___rta_analysis___RtaBuilder___force_some_type_analysis_t)CALL((recv), (SFT_global___rta_analysis[7] + 12)))
+#define CALL_global___rta_analysis___RtaBuilder___work(recv) ((global___rta_analysis___RtaBuilder___work_t)CALL((recv), (SFT_global___rta_analysis[7] + 13)))
+#define ID_global___rta_analysis___RtaVisitor (SFT_global___rta_analysis[8])
+#define COLOR_global___rta_analysis___RtaVisitor (SFT_global___rta_analysis[9])
+#define ATTR_global___rta_analysis___RtaVisitor____builder(recv) ATTR(recv, (SFT_global___rta_analysis[10] + 0))
+#define INIT_TABLE_POS_global___rta_analysis___RtaVisitor (SFT_global___rta_analysis[11] + 0)
+#define CALL_global___rta_analysis___RtaVisitor___builder(recv) ((global___rta_analysis___RtaVisitor___builder_t)CALL((recv), (SFT_global___rta_analysis[11] + 1)))
+#define CALL_SUPER_global___rta_analysis___RtaVisitor___visit_icode(recv) ((global___rta_analysis___RtaVisitor___visit_icode_t)CALL((recv), (SFT_global___rta_analysis[11] + 2)))
+#define CALL_global___rta_analysis___RtaVisitor___init(recv) ((global___rta_analysis___RtaVisitor___init_t)CALL((recv), (SFT_global___rta_analysis[11] + 3)))
+static const char * const LOCATE_global___rta_analysis___RtaContext___init = "rta_analysis::RtaContext::init";
+void global___rta_analysis___RtaContext___init(val_t p0, int* init_table);
+typedef void (*global___rta_analysis___RtaContext___init_t)(val_t p0, int* init_table);
+val_t NEW_RtaContext_global___rta_analysis___RtaContext___init();
+static const char * const LOCATE_global___rta_analysis___RtaContext___instanciated_classes = "rta_analysis::RtaContext::instanciated_classes";
+val_t global___rta_analysis___RtaContext___instanciated_classes(val_t p0);
+typedef val_t (*global___rta_analysis___RtaContext___instanciated_classes_t)(val_t p0);
+static const char * const LOCATE_global___rta_analysis___RtaContext___is_class_instantiated = "rta_analysis::RtaContext::(instantiated_type_analysis::InstantiatedTypeAnalysis::is_class_instantiated)";
+val_t global___rta_analysis___RtaContext___is_class_instantiated(val_t p0, val_t p1);
+typedef val_t (*global___rta_analysis___RtaContext___is_class_instantiated_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___rta_analysis___RtaContext___reachable_iroutines = "rta_analysis::RtaContext::reachable_iroutines";
+val_t global___rta_analysis___RtaContext___reachable_iroutines(val_t p0);
+typedef val_t (*global___rta_analysis___RtaContext___reachable_iroutines_t)(val_t p0);
+static const char * const LOCATE_global___rta_analysis___RtaContext___is_iroutine_reachable = "rta_analysis::RtaContext::(reachable_method_analysis::ReachableMethodAnalysis::is_iroutine_reachable)";
+val_t global___rta_analysis___RtaContext___is_iroutine_reachable(val_t p0, val_t p1);
+typedef val_t (*global___rta_analysis___RtaContext___is_iroutine_reachable_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___rta_analysis___RtaContext___is_method_reachable = "rta_analysis::RtaContext::(reachable_method_analysis::ReachableMethodAnalysis::is_method_reachable)";
+val_t global___rta_analysis___RtaContext___is_method_reachable(val_t p0, val_t p1);
+typedef val_t (*global___rta_analysis___RtaContext___is_method_reachable_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___rta_analysis___RtaBuilder___context = "rta_analysis::RtaBuilder::context";
+val_t global___rta_analysis___RtaBuilder___context(val_t p0);
+typedef val_t (*global___rta_analysis___RtaBuilder___context_t)(val_t p0);
+static const char * const LOCATE_global___rta_analysis___RtaBuilder___program = "rta_analysis::RtaBuilder::program";
+val_t global___rta_analysis___RtaBuilder___program(val_t p0);
+typedef val_t (*global___rta_analysis___RtaBuilder___program_t)(val_t p0);
+static const char * const LOCATE_global___rta_analysis___RtaBuilder___iroutine_to_search = "rta_analysis::RtaBuilder::iroutine_to_search";
+val_t global___rta_analysis___RtaBuilder___iroutine_to_search(val_t p0);
+typedef val_t (*global___rta_analysis___RtaBuilder___iroutine_to_search_t)(val_t p0);
+static const char * const LOCATE_global___rta_analysis___RtaBuilder___call_sites = "rta_analysis::RtaBuilder::call_sites";
+val_t global___rta_analysis___RtaBuilder___call_sites(val_t p0);
+typedef val_t (*global___rta_analysis___RtaBuilder___call_sites_t)(val_t p0);
+static const char * const LOCATE_global___rta_analysis___RtaBuilder___called_methods = "rta_analysis::RtaBuilder::called_methods";
+val_t global___rta_analysis___RtaBuilder___called_methods(val_t p0);
+typedef val_t (*global___rta_analysis___RtaBuilder___called_methods_t)(val_t p0);
+static const char * const LOCATE_global___rta_analysis___RtaBuilder___init = "rta_analysis::RtaBuilder::init";
+void global___rta_analysis___RtaBuilder___init(val_t p0, val_t p1, int* init_table);
+typedef void (*global___rta_analysis___RtaBuilder___init_t)(val_t p0, val_t p1, int* init_table);
+val_t NEW_RtaBuilder_global___rta_analysis___RtaBuilder___init(val_t p0);
+static const char * const LOCATE_global___rta_analysis___RtaBuilder___check_method = "rta_analysis::RtaBuilder::check_method";
+val_t global___rta_analysis___RtaBuilder___check_method(val_t p0, val_t p1);
+typedef val_t (*global___rta_analysis___RtaBuilder___check_method_t)(val_t p0, val_t p1);
+  typedef void (*CLOS_OC_global___rta_analysis___RtaBuilder___check_method_2_0)(struct stack_frame_t *);
+  void OC_global___rta_analysis___RtaBuilder___check_method_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+  typedef void (*OC_global___rta_analysis___RtaBuilder___check_method_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+static const char * const LOCATE_global___rta_analysis___RtaBuilder___check_call_sites = "rta_analysis::RtaBuilder::check_call_sites";
+void global___rta_analysis___RtaBuilder___check_call_sites(val_t p0);
+typedef void (*global___rta_analysis___RtaBuilder___check_call_sites_t)(val_t p0);
+  typedef void (*CLOS_OC_global___rta_analysis___RtaBuilder___check_call_sites_1_0)(struct stack_frame_t *);
+  void OC_global___rta_analysis___RtaBuilder___check_call_sites_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+  typedef void (*OC_global___rta_analysis___RtaBuilder___check_call_sites_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+    typedef void (*CLOS_OC_global___rta_analysis___RtaBuilder___check_call_sites_2_0)(struct stack_frame_t *);
+    void OC_global___rta_analysis___RtaBuilder___check_call_sites_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+    typedef void (*OC_global___rta_analysis___RtaBuilder___check_call_sites_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+  typedef void (*CLOS_OC_global___rta_analysis___RtaBuilder___check_call_sites_4_0)(struct stack_frame_t *);
+  void OC_global___rta_analysis___RtaBuilder___check_call_sites_4(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+  typedef void (*OC_global___rta_analysis___RtaBuilder___check_call_sites_4_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+static const char * const LOCATE_global___rta_analysis___RtaBuilder___add_instantiated_class = "rta_analysis::RtaBuilder::add_instantiated_class";
+void global___rta_analysis___RtaBuilder___add_instantiated_class(val_t p0, val_t p1);
+typedef void (*global___rta_analysis___RtaBuilder___add_instantiated_class_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___rta_analysis___RtaBuilder___add_reachable_call = "rta_analysis::RtaBuilder::add_reachable_call";
+void global___rta_analysis___RtaBuilder___add_reachable_call(val_t p0, val_t p1);
+typedef void (*global___rta_analysis___RtaBuilder___add_reachable_call_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___rta_analysis___RtaBuilder___add_reachable_iroutine = "rta_analysis::RtaBuilder::add_reachable_iroutine";
+void global___rta_analysis___RtaBuilder___add_reachable_iroutine(val_t p0, val_t p1);
+typedef void (*global___rta_analysis___RtaBuilder___add_reachable_iroutine_t)(val_t p0, val_t p1);
+static const char * const LOCATE_global___rta_analysis___RtaBuilder___force_some_type_analysis = "rta_analysis::RtaBuilder::force_some_type_analysis";
+void global___rta_analysis___RtaBuilder___force_some_type_analysis(val_t p0);
+typedef void (*global___rta_analysis___RtaBuilder___force_some_type_analysis_t)(val_t p0);
+    typedef void (*CLOS_OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_15_0)(struct stack_frame_t *);
+    void OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_15(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+    typedef void (*OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_15_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+    typedef void (*CLOS_OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_18_0)(struct stack_frame_t *);
+    void OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_18(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+    typedef void (*OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_18_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+  typedef void (*CLOS_OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_19_0)(struct stack_frame_t *);
+  void OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_19(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+  typedef void (*OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_19_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+  void OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_21(struct stack_frame_t *closctx, val_t p0);
+  typedef void (*OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_21_t)(struct stack_frame_t *closctx, val_t p0);
+static const char * const LOCATE_global___rta_analysis___RtaBuilder___work = "rta_analysis::RtaBuilder::work";
+void global___rta_analysis___RtaBuilder___work(val_t p0);
+typedef void (*global___rta_analysis___RtaBuilder___work_t)(val_t p0);
+static const char * const LOCATE_global___rta_analysis___RtaVisitor___builder = "rta_analysis::RtaVisitor::builder";
+val_t global___rta_analysis___RtaVisitor___builder(val_t p0);
+typedef val_t (*global___rta_analysis___RtaVisitor___builder_t)(val_t p0);
+static const char * const LOCATE_global___rta_analysis___RtaVisitor___visit_icode = "rta_analysis::RtaVisitor::(icode_tools::ICodeVisitor::visit_icode)";
+void global___rta_analysis___RtaVisitor___visit_icode(val_t p0, val_t p1);
+typedef void (*global___rta_analysis___RtaVisitor___visit_icode_t)(val_t p0, val_t p1);
+        typedef void (*CLOS_OC_global___rta_analysis___RtaVisitor___visit_icode_1_0)(struct stack_frame_t *);
+        void OC_global___rta_analysis___RtaVisitor___visit_icode_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+        typedef void (*OC_global___rta_analysis___RtaVisitor___visit_icode_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+static const char * const LOCATE_global___rta_analysis___RtaVisitor___init = "rta_analysis::RtaVisitor::init";
+void global___rta_analysis___RtaVisitor___init(val_t p0, val_t p1, int* init_table);
+typedef void (*global___rta_analysis___RtaVisitor___init_t)(val_t p0, val_t p1, int* init_table);
+val_t NEW_RtaVisitor_global___rta_analysis___RtaVisitor___init(val_t p0);
+#endif
index d6475c3..9c96a9c 100644 (file)
@@ -13,7 +13,7 @@ val_t icode___icode_base___IRegister___stype(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:26 */
+  /* icode/icode_base.nit:26 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IRegister____stype(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -39,7 +39,7 @@ void icode___icode_base___IRegister___init(val_t p0, val_t p1, int* init_table){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:30 */
+  /* icode/icode_base.nit:30 */
   ATTR_icode___icode_base___IRegister____stype(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -74,7 +74,7 @@ val_t icode___icode_base___IClosureDecl___closure(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:40 */
+  /* icode/icode_base.nit:40 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IClosureDecl____closure(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -96,7 +96,7 @@ val_t icode___icode_base___IClosureDecl___default(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:43 */
+  /* icode/icode_base.nit:43 */
   fra.me.REG[0] = ATTR_icode___icode_base___IClosureDecl____default(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -115,7 +115,7 @@ void icode___icode_base___IClosureDecl___default__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:43 */
+  /* icode/icode_base.nit:43 */
   ATTR_icode___icode_base___IClosureDecl____default(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -136,7 +136,7 @@ void icode___icode_base___IClosureDecl___init(val_t p0, val_t p1, int* init_tabl
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:46 */
+  /* icode/icode_base.nit:46 */
   ATTR_icode___icode_base___IClosureDecl____closure(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos2] = 1;
@@ -155,7 +155,7 @@ val_t icode___icode_base___IRoutine___params(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:51 */
+  /* icode/icode_base.nit:51 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IRoutine____params(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -177,7 +177,7 @@ val_t icode___icode_base___IRoutine___closure_decls(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:54 */
+  /* icode/icode_base.nit:54 */
   fra.me.REG[0] = ATTR_icode___icode_base___IRoutine____closure_decls(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -196,7 +196,7 @@ void icode___icode_base___IRoutine___closure_decls__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:54 */
+  /* icode/icode_base.nit:54 */
   ATTR_icode___icode_base___IRoutine____closure_decls(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -214,7 +214,7 @@ val_t icode___icode_base___IRoutine___registers(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:57 */
+  /* icode/icode_base.nit:57 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IRoutine____registers(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -236,7 +236,7 @@ val_t icode___icode_base___IRoutine___result(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:60 */
+  /* icode/icode_base.nit:60 */
   fra.me.REG[0] = ATTR_icode___icode_base___IRoutine____result(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -254,7 +254,7 @@ val_t icode___icode_base___IRoutine___escape_marks(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:63 */
+  /* icode/icode_base.nit:63 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IRoutine____escape_marks(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -277,7 +277,7 @@ val_t icode___icode_base___IRoutine___body(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:66 */
+  /* icode/icode_base.nit:66 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IRoutine____body(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -299,7 +299,7 @@ val_t icode___icode_base___IRoutine___location(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:69 */
+  /* icode/icode_base.nit:69 */
   fra.me.REG[0] = ATTR_icode___icode_base___IRoutine____location(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -318,7 +318,7 @@ void icode___icode_base___IRoutine___location__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:69 */
+  /* icode/icode_base.nit:69 */
   ATTR_icode___icode_base___IRoutine____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -341,10 +341,10 @@ void icode___icode_base___IRoutine___init(val_t p0, val_t p1, val_t p2, int* ini
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_base.nit:74 */
+  /* icode/icode_base.nit:74 */
   fra.me.REG[1] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[1])(fra.me.REG[1]);
   ATTR_icode___icode_base___IRoutine____params(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:75 */
+  /* icode/icode_base.nit:75 */
   ATTR_icode___icode_base___IRoutine____result(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos3] = 1;
@@ -368,7 +368,7 @@ void icode___icode_base___IClosureDef___init(val_t p0, val_t p1, val_t p2, int*
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_base.nit:84 */
+  /* icode/icode_base.nit:84 */
   CALL_icode___icode_base___IRoutine___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos4] = 1;
@@ -384,7 +384,7 @@ val_t icode___icode_base___ICode___arity(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./icode//icode_base.nit:92 */
+  /* icode/icode_base.nit:92 */
   nit_abort("Deferred method called", NULL, LOCATE_icode___icode_base, 92);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -401,7 +401,7 @@ val_t icode___icode_base___ICode___result(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[0] = ATTR_icode___icode_base___ICode____result(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -420,7 +420,7 @@ void icode___icode_base___ICode___result__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -437,7 +437,7 @@ val_t icode___icode_base___ICode___location(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[0] = ATTR_icode___icode_base___ICode____location(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -456,7 +456,7 @@ void icode___icode_base___ICode___location__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -474,7 +474,7 @@ val_t icode___icode_base___ICode___is_pure(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:102 */
+  /* icode/icode_base.nit:102 */
   REGB0 = TAG_Bool(false);
   goto label1;
   label1: while(0);
@@ -510,7 +510,7 @@ val_t icode___icode_base___ICode0___arity(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:108 */
+  /* icode/icode_base.nit:108 */
   REGB0 = TAG_Int(0);
   goto label1;
   label1: while(0);
@@ -530,7 +530,7 @@ val_t icode___icode_base___ICode1___arity(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:114 */
+  /* icode/icode_base.nit:114 */
   REGB0 = TAG_Int(1);
   goto label1;
   label1: while(0);
@@ -550,7 +550,7 @@ val_t icode___icode_base___ICode1___expr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:116 */
+  /* icode/icode_base.nit:116 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___ICode1____expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -577,7 +577,7 @@ void icode___icode_base___ICode1___init(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:119 */
+  /* icode/icode_base.nit:119 */
   fra.me.REG[2] = fra.me.REG[0];
   CALL_icode___icode_base___ICode___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   ATTR_icode___icode_base___ICode1____expr(fra.me.REG[2]) = fra.me.REG[1];
@@ -598,7 +598,7 @@ val_t icode___icode_base___ICode2___arity(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:125 */
+  /* icode/icode_base.nit:125 */
   REGB0 = TAG_Int(2);
   goto label1;
   label1: while(0);
@@ -618,7 +618,7 @@ val_t icode___icode_base___ICode2___expr1(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:127 */
+  /* icode/icode_base.nit:127 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___ICode2____expr1(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -641,7 +641,7 @@ val_t icode___icode_base___ICode2___expr2(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:130 */
+  /* icode/icode_base.nit:130 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___ICode2____expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -670,12 +670,12 @@ void icode___icode_base___ICode2___init(val_t p0, val_t p1, val_t p2, int* init_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_base.nit:133 */
+  /* icode/icode_base.nit:133 */
   fra.me.REG[3] = fra.me.REG[0];
   CALL_icode___icode_base___ICode___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./icode//icode_base.nit:135 */
+  /* icode/icode_base.nit:135 */
   ATTR_icode___icode_base___ICode2____expr1(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:136 */
+  /* icode/icode_base.nit:136 */
   ATTR_icode___icode_base___ICode2____expr2(fra.me.REG[3]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos7] = 1;
@@ -694,7 +694,7 @@ val_t icode___icode_base___ICodeN___arity(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:143 */
+  /* icode/icode_base.nit:143 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___ICodeN____exprs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -720,7 +720,7 @@ val_t icode___icode_base___ICodeN___exprs(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:145 */
+  /* icode/icode_base.nit:145 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___ICodeN____exprs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -742,7 +742,7 @@ val_t icode___icode_base___ICodeN___closure_defs(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:148 */
+  /* icode/icode_base.nit:148 */
   fra.me.REG[0] = ATTR_icode___icode_base___ICodeN____closure_defs(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -761,7 +761,7 @@ void icode___icode_base___ICodeN___closure_defs__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:148 */
+  /* icode/icode_base.nit:148 */
   ATTR_icode___icode_base___ICodeN____closure_defs(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -785,10 +785,10 @@ void icode___icode_base___ICodeN___init(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:151 */
+  /* icode/icode_base.nit:151 */
   fra.me.REG[2] = fra.me.REG[0];
   CALL_icode___icode_base___ICode___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./icode//icode_base.nit:153 */
+  /* icode/icode_base.nit:153 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -802,11 +802,11 @@ void icode___icode_base___ICodeN___init(val_t p0, val_t p1, int* init_table){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./icode//icode_base.nit:154 */
+    /* icode/icode_base.nit:154 */
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
     ATTR_icode___icode_base___ICodeN____exprs(fra.me.REG[2]) = fra.me.REG[0];
   } else {
-    /* ./icode//icode_base.nit:156 */
+    /* icode/icode_base.nit:156 */
     ATTR_icode___icode_base___ICodeN____exprs(fra.me.REG[2]) = fra.me.REG[1];
   }
   stack_frame_head = fra.me.prev;
@@ -826,7 +826,7 @@ val_t icode___icode_base___ISeq___icodes(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:166 */
+  /* icode/icode_base.nit:166 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___ISeq____icodes(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -848,7 +848,7 @@ val_t icode___icode_base___ISeq___iescape_mark(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:169 */
+  /* icode/icode_base.nit:169 */
   fra.me.REG[0] = ATTR_icode___icode_base___ISeq____iescape_mark(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -867,7 +867,7 @@ void icode___icode_base___ISeq___iescape_mark__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:169 */
+  /* icode/icode_base.nit:169 */
   ATTR_icode___icode_base___ISeq____iescape_mark(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -904,7 +904,7 @@ void icode___icode_base___ILoop___init(val_t p0, int* init_table){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:179 */
+  /* icode/icode_base.nit:179 */
   CALL_icode___icode_base___ISeq___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos10] = 1;
@@ -923,7 +923,7 @@ val_t icode___icode_base___IIf___then_seq(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:186 */
+  /* icode/icode_base.nit:186 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IIf____then_seq(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -946,7 +946,7 @@ val_t icode___icode_base___IIf___else_seq(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:188 */
+  /* icode/icode_base.nit:188 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IIf____else_seq(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -972,7 +972,7 @@ void icode___icode_base___IIf___init(val_t p0, val_t p1, int* init_table){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:190 */
+  /* icode/icode_base.nit:190 */
   CALL_icode___icode_base___ICode1___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos11] = 1;
@@ -991,7 +991,7 @@ val_t icode___icode_base___IEscape___iescape_mark(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:196 */
+  /* icode/icode_base.nit:196 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IEscape____iescape_mark(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1017,7 +1017,7 @@ void icode___icode_base___IEscape___init(val_t p0, val_t p1, int* init_table){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:199 */
+  /* icode/icode_base.nit:199 */
   ATTR_icode___icode_base___IEscape____iescape_mark(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos12] = 1;
@@ -1036,7 +1036,7 @@ val_t icode___icode_base___IAbort___texts(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:205 */
+  /* icode/icode_base.nit:205 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IAbort____texts(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1059,7 +1059,7 @@ val_t icode___icode_base___IAbort___module_location(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:208 */
+  /* icode/icode_base.nit:208 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IAbort____module_location(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1087,9 +1087,9 @@ void icode___icode_base___IAbort___init(val_t p0, val_t p1, val_t p2, int* init_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_base.nit:212 */
+  /* icode/icode_base.nit:212 */
   ATTR_icode___icode_base___IAbort____texts(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:213 */
+  /* icode/icode_base.nit:213 */
   ATTR_icode___icode_base___IAbort____module_location(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos13] = 1;
@@ -1108,7 +1108,7 @@ val_t icode___icode_base___IAbsCall___property(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:222 */
+  /* icode/icode_base.nit:222 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IAbsCall____property(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1131,7 +1131,7 @@ val_t icode___icode_base___IAbsCall___is_explicit_from_extern(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:225 */
+  /* icode/icode_base.nit:225 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IAbsCall_____atis_explicit_from_extern(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1155,7 +1155,7 @@ void icode___icode_base___IAbsCall___is_explicit_from_extern__eq(val_t p0, val_t
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./icode//icode_base.nit:225 */
+  /* icode/icode_base.nit:225 */
   ATTR_icode___icode_base___IAbsCall_____atis_explicit_from_extern(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -1179,11 +1179,11 @@ void icode___icode_base___IAbsCall___init(val_t p0, val_t p1, val_t p2, int* ini
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_base.nit:228 */
+  /* icode/icode_base.nit:228 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./icode//icode_base.nit:230 */
+  /* icode/icode_base.nit:230 */
   CALL_icode___icode_base___ICodeN___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], init_table);
-  /* ./icode//icode_base.nit:231 */
+  /* icode/icode_base.nit:231 */
   ATTR_icode___icode_base___IAbsCall____property(fra.me.REG[3]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos14] = 1;
@@ -1207,7 +1207,7 @@ void icode___icode_base___ICall___init(val_t p0, val_t p1, val_t p2, int* init_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_base.nit:239 */
+  /* icode/icode_base.nit:239 */
   CALL_icode___icode_base___IAbsCall___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos15] = 1;
@@ -1231,7 +1231,7 @@ void icode___icode_base___ISuper___init(val_t p0, val_t p1, val_t p2, int* init_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_base.nit:246 */
+  /* icode/icode_base.nit:246 */
   CALL_icode___icode_base___IAbsCall___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos16] = 1;
@@ -1250,7 +1250,7 @@ val_t icode___icode_base___INew___stype(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:258 */
+  /* icode/icode_base.nit:258 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___INew____stype(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1281,11 +1281,11 @@ void icode___icode_base___INew___init(val_t p0, val_t p1, val_t p2, val_t p3, in
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./icode//icode_base.nit:260 */
+  /* icode/icode_base.nit:260 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./icode//icode_base.nit:262 */
+  /* icode/icode_base.nit:262 */
   CALL_icode___icode_base___IAbsCall___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3], init_table);
-  /* ./icode//icode_base.nit:263 */
+  /* icode/icode_base.nit:263 */
   ATTR_icode___icode_base___INew____stype(fra.me.REG[4]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos17] = 1;
@@ -1304,7 +1304,7 @@ val_t icode___icode_base___IAllocateInstance___stype(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:272 */
+  /* icode/icode_base.nit:272 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IAllocateInstance____stype(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1330,7 +1330,7 @@ void icode___icode_base___IAllocateInstance___init(val_t p0, val_t p1, int* init
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:276 */
+  /* icode/icode_base.nit:276 */
   ATTR_icode___icode_base___IAllocateInstance____stype(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos18] = 1;
@@ -1354,7 +1354,7 @@ void icode___icode_base___IStaticCall___init(val_t p0, val_t p1, val_t p2, int*
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_base.nit:283 */
+  /* icode/icode_base.nit:283 */
   CALL_icode___icode_base___IAbsCall___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos19] = 1;
@@ -1373,7 +1373,7 @@ val_t icode___icode_base___ICheckInstance___stype(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:289 */
+  /* icode/icode_base.nit:289 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___ICheckInstance____stype(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1402,11 +1402,11 @@ void icode___icode_base___ICheckInstance___init(val_t p0, val_t p1, val_t p2, in
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_base.nit:291 */
+  /* icode/icode_base.nit:291 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./icode//icode_base.nit:293 */
+  /* icode/icode_base.nit:293 */
   CALL_icode___icode_base___ICode1___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], init_table);
-  /* ./icode//icode_base.nit:294 */
+  /* icode/icode_base.nit:294 */
   ATTR_icode___icode_base___ICheckInstance____stype(fra.me.REG[3]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos20] = 1;
@@ -1425,7 +1425,7 @@ val_t icode___icode_base___IInitAttributes___stype(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:301 */
+  /* icode/icode_base.nit:301 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IInitAttributes____stype(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1454,11 +1454,11 @@ void icode___icode_base___IInitAttributes___init(val_t p0, val_t p1, val_t p2, i
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_base.nit:303 */
+  /* icode/icode_base.nit:303 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./icode//icode_base.nit:305 */
+  /* icode/icode_base.nit:305 */
   CALL_icode___icode_base___ICode1___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], init_table);
-  /* ./icode//icode_base.nit:306 */
+  /* icode/icode_base.nit:306 */
   ATTR_icode___icode_base___IInitAttributes____stype(fra.me.REG[3]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos21] = 1;
@@ -1477,7 +1477,7 @@ val_t icode___icode_base___IClosCall___closure_decl(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:314 */
+  /* icode/icode_base.nit:314 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IClosCall____closure_decl(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1499,7 +1499,7 @@ val_t icode___icode_base___IClosCall___break_seq(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:317 */
+  /* icode/icode_base.nit:317 */
   fra.me.REG[0] = ATTR_icode___icode_base___IClosCall____break_seq(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1518,7 +1518,7 @@ void icode___icode_base___IClosCall___break_seq__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:317 */
+  /* icode/icode_base.nit:317 */
   ATTR_icode___icode_base___IClosCall____break_seq(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1542,11 +1542,11 @@ void icode___icode_base___IClosCall___init(val_t p0, val_t p1, val_t p2, int* in
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_base.nit:320 */
+  /* icode/icode_base.nit:320 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./icode//icode_base.nit:322 */
+  /* icode/icode_base.nit:322 */
   CALL_icode___icode_base___ICodeN___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], init_table);
-  /* ./icode//icode_base.nit:323 */
+  /* icode/icode_base.nit:323 */
   ATTR_icode___icode_base___IClosCall____closure_decl(fra.me.REG[3]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos22] = 1;
@@ -1565,7 +1565,7 @@ val_t icode___icode_base___INative___method(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:332 */
+  /* icode/icode_base.nit:332 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___INative____method(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1598,9 +1598,9 @@ void icode___icode_base___INative___init(val_t p0, val_t p1, val_t p2, int* init
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_base.nit:335 */
+  /* icode/icode_base.nit:335 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./icode//icode_base.nit:338 */
+  /* icode/icode_base.nit:338 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_icode___icode_base, 338);
@@ -1613,24 +1613,24 @@ void icode___icode_base___INative___init(val_t p0, val_t p1, val_t p2, int* init
   }
   REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
   REGB2 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-  /* ./icode//icode_base.nit:338 */
+  /* icode/icode_base.nit:338 */
   REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
   if (UNTAG_Bool(REGB1)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB2 = TAG_Bool((REGB0)==(REGB2));
-    /* ./icode//icode_base.nit:338 */
+    /* icode/icode_base.nit:338 */
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_icode___icode_base, 338);
   }
-  /* ./icode//icode_base.nit:340 */
+  /* icode/icode_base.nit:340 */
   CALL_icode___icode_base___ICodeN___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], init_table);
-  /* ./icode//icode_base.nit:341 */
+  /* icode/icode_base.nit:341 */
   ATTR_icode___icode_base___INative____method(fra.me.REG[3]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos23] = 1;
@@ -1649,7 +1649,7 @@ val_t icode___icode_base___INative___is_pure(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:344 */
+  /* icode/icode_base.nit:344 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___INative____is_pure(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1673,7 +1673,7 @@ void icode___icode_base___INative___is_pure__eq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./icode//icode_base.nit:344 */
+  /* icode/icode_base.nit:344 */
   ATTR_icode___icode_base___INative____is_pure(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -1691,7 +1691,7 @@ val_t icode___icode_base___IIntValue___value(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:350 */
+  /* icode/icode_base.nit:350 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IIntValue____value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1717,7 +1717,7 @@ void icode___icode_base___IIntValue___init(val_t p0, val_t p1, int* init_table){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:353 */
+  /* icode/icode_base.nit:353 */
   ATTR_icode___icode_base___IIntValue____value(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos24] = 1;
@@ -1736,7 +1736,7 @@ val_t icode___icode_base___IIntValue___is_pure(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:355 */
+  /* icode/icode_base.nit:355 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -1756,7 +1756,7 @@ val_t icode___icode_base___IBoolValue___value(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:361 */
+  /* icode/icode_base.nit:361 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IBoolValue____value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1782,7 +1782,7 @@ void icode___icode_base___IBoolValue___init(val_t p0, val_t p1, int* init_table)
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./icode//icode_base.nit:364 */
+  /* icode/icode_base.nit:364 */
   ATTR_icode___icode_base___IBoolValue____value(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   init_table[itpos25] = 1;
@@ -1801,7 +1801,7 @@ val_t icode___icode_base___IBoolValue___is_pure(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:366 */
+  /* icode/icode_base.nit:366 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -1821,7 +1821,7 @@ val_t icode___icode_base___IStringValue___value(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:372 */
+  /* icode/icode_base.nit:372 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IStringValue____value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1847,7 +1847,7 @@ void icode___icode_base___IStringValue___init(val_t p0, val_t p1, int* init_tabl
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:375 */
+  /* icode/icode_base.nit:375 */
   ATTR_icode___icode_base___IStringValue____value(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos26] = 1;
@@ -1866,7 +1866,7 @@ val_t icode___icode_base___IStringValue___is_pure(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:377 */
+  /* icode/icode_base.nit:377 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -1886,7 +1886,7 @@ val_t icode___icode_base___IFloatValue___value(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:383 */
+  /* icode/icode_base.nit:383 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IFloatValue____value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1912,7 +1912,7 @@ void icode___icode_base___IFloatValue___init(val_t p0, val_t p1, int* init_table
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:386 */
+  /* icode/icode_base.nit:386 */
   ATTR_icode___icode_base___IFloatValue____value(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos27] = 1;
@@ -1931,7 +1931,7 @@ val_t icode___icode_base___IFloatValue___is_pure(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:388 */
+  /* icode/icode_base.nit:388 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -1951,7 +1951,7 @@ val_t icode___icode_base___ICharValue___value(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:394 */
+  /* icode/icode_base.nit:394 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___ICharValue____value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1977,7 +1977,7 @@ void icode___icode_base___ICharValue___init(val_t p0, val_t p1, int* init_table)
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:397 */
+  /* icode/icode_base.nit:397 */
   ATTR_icode___icode_base___ICharValue____value(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos28] = 1;
@@ -1996,7 +1996,7 @@ val_t icode___icode_base___ICharValue___is_pure(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:399 */
+  /* icode/icode_base.nit:399 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -2022,11 +2022,11 @@ void icode___icode_base___IMove___init(val_t p0, val_t p1, val_t p2, int* init_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_base.nit:407 */
+  /* icode/icode_base.nit:407 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./icode//icode_base.nit:409 */
+  /* icode/icode_base.nit:409 */
   CALL_icode___icode_base___ICode1___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], init_table);
-  /* ./icode//icode_base.nit:410 */
+  /* icode/icode_base.nit:410 */
   ATTR_icode___icode_base___ICode____result(fra.me.REG[3]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos29] = 1;
@@ -2045,7 +2045,7 @@ val_t icode___icode_base___IMove___is_pure(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:413 */
+  /* icode/icode_base.nit:413 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -2065,7 +2065,7 @@ val_t icode___icode_base___IAttrRead___property(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:420 */
+  /* icode/icode_base.nit:420 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IAttrRead____property(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2094,11 +2094,11 @@ void icode___icode_base___IAttrRead___init(val_t p0, val_t p1, val_t p2, int* in
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_base.nit:423 */
+  /* icode/icode_base.nit:423 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./icode//icode_base.nit:425 */
+  /* icode/icode_base.nit:425 */
   CALL_icode___icode_base___ICode1___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], init_table);
-  /* ./icode//icode_base.nit:426 */
+  /* icode/icode_base.nit:426 */
   ATTR_icode___icode_base___IAttrRead____property(fra.me.REG[3]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos30] = 1;
@@ -2117,7 +2117,7 @@ val_t icode___icode_base___IAttrRead___is_pure(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:429 */
+  /* icode/icode_base.nit:429 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -2137,7 +2137,7 @@ val_t icode___icode_base___IAttrWrite___property(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:436 */
+  /* icode/icode_base.nit:436 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IAttrWrite____property(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2168,11 +2168,11 @@ void icode___icode_base___IAttrWrite___init(val_t p0, val_t p1, val_t p2, val_t
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./icode//icode_base.nit:439 */
+  /* icode/icode_base.nit:439 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./icode//icode_base.nit:441 */
+  /* icode/icode_base.nit:441 */
   CALL_icode___icode_base___ICode2___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3], init_table);
-  /* ./icode//icode_base.nit:442 */
+  /* icode/icode_base.nit:442 */
   ATTR_icode___icode_base___IAttrWrite____property(fra.me.REG[4]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos31] = 1;
@@ -2191,7 +2191,7 @@ val_t icode___icode_base___IAttrIsset___property(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:451 */
+  /* icode/icode_base.nit:451 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IAttrIsset____property(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2220,11 +2220,11 @@ void icode___icode_base___IAttrIsset___init(val_t p0, val_t p1, val_t p2, int* i
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_base.nit:454 */
+  /* icode/icode_base.nit:454 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./icode//icode_base.nit:456 */
+  /* icode/icode_base.nit:456 */
   CALL_icode___icode_base___ICode1___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], init_table);
-  /* ./icode//icode_base.nit:457 */
+  /* icode/icode_base.nit:457 */
   ATTR_icode___icode_base___IAttrIsset____property(fra.me.REG[3]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos32] = 1;
@@ -2243,7 +2243,7 @@ val_t icode___icode_base___IAttrIsset___is_pure(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:460 */
+  /* icode/icode_base.nit:460 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -2263,7 +2263,7 @@ val_t icode___icode_base___ITypeCheck___stype(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:468 */
+  /* icode/icode_base.nit:468 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___ITypeCheck____stype(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2294,11 +2294,11 @@ void icode___icode_base___ITypeCheck___init(val_t p0, val_t p1, val_t p2, val_t
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./icode//icode_base.nit:471 */
+  /* icode/icode_base.nit:471 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./icode//icode_base.nit:473 */
+  /* icode/icode_base.nit:473 */
   CALL_icode___icode_base___ICode2___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  /* ./icode//icode_base.nit:474 */
+  /* icode/icode_base.nit:474 */
   ATTR_icode___icode_base___ITypeCheck____stype(fra.me.REG[4]) = fra.me.REG[3];
   stack_frame_head = fra.me.prev;
   init_table[itpos33] = 1;
@@ -2317,7 +2317,7 @@ val_t icode___icode_base___ITypeCheck___is_pure(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:477 */
+  /* icode/icode_base.nit:477 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -2342,7 +2342,7 @@ void icode___icode_base___IIs___init(val_t p0, val_t p1, val_t p2, int* init_tab
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_base.nit:486 */
+  /* icode/icode_base.nit:486 */
   CALL_icode___icode_base___ICode2___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos34] = 1;
@@ -2361,7 +2361,7 @@ val_t icode___icode_base___IIs___is_pure(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:489 */
+  /* icode/icode_base.nit:489 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -2384,7 +2384,7 @@ void icode___icode_base___INot___init(val_t p0, val_t p1, int* init_table){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:498 */
+  /* icode/icode_base.nit:498 */
   CALL_icode___icode_base___ICode1___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos35] = 1;
@@ -2403,7 +2403,7 @@ val_t icode___icode_base___INot___is_pure(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:501 */
+  /* icode/icode_base.nit:501 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -2423,7 +2423,7 @@ val_t icode___icode_base___IOnce___body(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:508 */
+  /* icode/icode_base.nit:508 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IOnce____body(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2464,7 +2464,7 @@ val_t icode___icode_base___IHasClos___closure_decl(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:515 */
+  /* icode/icode_base.nit:515 */
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IHasClos____closure_decl(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2490,7 +2490,7 @@ void icode___icode_base___IHasClos___init(val_t p0, val_t p1, int* init_table){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:520 */
+  /* icode/icode_base.nit:520 */
   ATTR_icode___icode_base___IHasClos____closure_decl(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos37] = 1;
@@ -2509,7 +2509,7 @@ val_t icode___icode_base___IHasClos___is_pure(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:523 */
+  /* icode/icode_base.nit:523 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -2526,7 +2526,7 @@ val_t icode___icode_base___MMAttribute___iroutine(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./icode//icode_base.nit:529 */
+  /* icode/icode_base.nit:529 */
   nit_abort("Deferred method called", NULL, LOCATE_icode___icode_base, 529);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -2541,7 +2541,7 @@ val_t icode___icode_base___MMMethod___iroutine(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./icode//icode_base.nit:535 */
+  /* icode/icode_base.nit:535 */
   nit_abort("Deferred method called", NULL, LOCATE_icode___icode_base, 535);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
index f7faf09..2258a5e 100644 (file)
@@ -16,10 +16,10 @@ void icode___icode_builder___ICodeBuilder___stmt(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_builder.nit:28 */
+  /* icode/icode_builder.nit:28 */
   fra.me.REG[2] = ATTR_icode___icode_builder___ICodeBuilder____current_location(fra.me.REG[0]);
   CALL_icode___icode_base___ICode___location__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./icode//icode_builder.nit:29 */
+  /* icode/icode_builder.nit:29 */
   REGB0 = TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____seq(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -50,9 +50,9 @@ val_t icode___icode_builder___ICodeBuilder___expr(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_builder.nit:35 */
+  /* icode/icode_builder.nit:35 */
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./icode//icode_builder.nit:36 */
+  /* icode/icode_builder.nit:36 */
   fra.me.REG[3] = CALL_icode___icode_base___ICode___result(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -70,11 +70,11 @@ val_t icode___icode_builder___ICodeBuilder___expr(val_t p0, val_t p1, val_t p2){
   } else {
     nit_abort("Assert failed", NULL, LOCATE_icode___icode_builder, 36);
   }
-  /* ./icode//icode_builder.nit:37 */
+  /* icode/icode_builder.nit:37 */
   fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./icode//icode_builder.nit:38 */
+  /* icode/icode_builder.nit:38 */
   CALL_icode___icode_base___ICode___result__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./icode//icode_builder.nit:39 */
+  /* icode/icode_builder.nit:39 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -96,7 +96,7 @@ void icode___icode_builder___ICodeBuilder___add_assignment(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_builder.nit:45 */
+  /* icode/icode_builder.nit:45 */
   fra.me.REG[2] = NEW_IMove_icode___icode_base___IMove___init(fra.me.REG[1], fra.me.REG[2]);
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -120,23 +120,23 @@ void icode___icode_builder___ICodeBuilder___add_null_reciever_check(val_t p0, va
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_builder.nit:51 */
+  /* icode/icode_builder.nit:51 */
   fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./icode//icode_builder.nit:52 */
+  /* icode/icode_builder.nit:52 */
   fra.me.REG[2] = NEW_IIs_icode___icode_base___IIs___init(fra.me.REG[1], fra.me.REG[2]);
   fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[1]);
-  /* ./icode//icode_builder.nit:53 */
+  /* icode/icode_builder.nit:53 */
   fra.me.REG[1] = NEW_IIf_icode___icode_base___IIf___init(fra.me.REG[1]);
-  /* ./icode//icode_builder.nit:54 */
+  /* icode/icode_builder.nit:54 */
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./icode//icode_builder.nit:55 */
+  /* icode/icode_builder.nit:55 */
   fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./icode//icode_builder.nit:56 */
+  /* icode/icode_builder.nit:56 */
   fra.me.REG[1] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[1])(fra.me.REG[1]);
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./icode//icode_builder.nit:57 */
+  /* icode/icode_builder.nit:57 */
   REGB0 = TAG_Int(0);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -149,7 +149,7 @@ void icode___icode_builder___ICodeBuilder___add_null_reciever_check(val_t p0, va
   fra.me.REG[3] = fra.me.REG[3];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   CALL_icode___icode_builder___ICodeBuilder___add_abort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./icode//icode_builder.nit:58 */
+  /* icode/icode_builder.nit:58 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
@@ -173,7 +173,7 @@ void icode___icode_builder___ICodeBuilder___add_type_cast(val_t p0, val_t p1, va
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_builder.nit:64 */
+  /* icode/icode_builder.nit:64 */
   fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[3])(fra.me.REG[3]);
@@ -181,16 +181,16 @@ void icode___icode_builder___ICodeBuilder___add_type_cast(val_t p0, val_t p1, va
   fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[1]);
-  /* ./icode//icode_builder.nit:65 */
+  /* icode/icode_builder.nit:65 */
   fra.me.REG[1] = NEW_IIf_icode___icode_base___IIf___init(fra.me.REG[1]);
-  /* ./icode//icode_builder.nit:66 */
+  /* icode/icode_builder.nit:66 */
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./icode//icode_builder.nit:67 */
+  /* icode/icode_builder.nit:67 */
   fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./icode//icode_builder.nit:68 */
+  /* icode/icode_builder.nit:68 */
   fra.me.REG[1] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[1])(fra.me.REG[1]);
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./icode//icode_builder.nit:69 */
+  /* icode/icode_builder.nit:69 */
   REGB0 = TAG_Int(0);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -203,7 +203,7 @@ void icode___icode_builder___ICodeBuilder___add_type_cast(val_t p0, val_t p1, va
   fra.me.REG[3] = fra.me.REG[3];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   CALL_icode___icode_builder___ICodeBuilder___add_abort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./icode//icode_builder.nit:70 */
+  /* icode/icode_builder.nit:70 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
@@ -228,7 +228,7 @@ void icode___icode_builder___ICodeBuilder___add_attr_check(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_builder.nit:76 */
+  /* icode/icode_builder.nit:76 */
   fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -242,21 +242,21 @@ void icode___icode_builder___ICodeBuilder___add_attr_check(val_t p0, val_t p1, v
   REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./icode//icode_builder.nit:77 */
+    /* icode/icode_builder.nit:77 */
     fra.me.REG[2] = NEW_IAttrIsset_icode___icode_base___IAttrIsset___init(fra.me.REG[1], fra.me.REG[2]);
     fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[3] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[3])(fra.me.REG[3]);
     fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]);
-    /* ./icode//icode_builder.nit:78 */
+    /* icode/icode_builder.nit:78 */
     fra.me.REG[3] = NEW_IIf_icode___icode_base___IIf___init(fra.me.REG[3]);
-    /* ./icode//icode_builder.nit:79 */
+    /* icode/icode_builder.nit:79 */
     CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-    /* ./icode//icode_builder.nit:80 */
+    /* icode/icode_builder.nit:80 */
     fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[0])(fra.me.REG[0]);
-    /* ./icode//icode_builder.nit:81 */
+    /* icode/icode_builder.nit:81 */
     fra.me.REG[3] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[3])(fra.me.REG[3]);
     CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-    /* ./icode//icode_builder.nit:82 */
+    /* icode/icode_builder.nit:82 */
     REGB0 = TAG_Int(1);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -272,7 +272,7 @@ void icode___icode_builder___ICodeBuilder___add_attr_check(val_t p0, val_t p1, v
     fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
     CALL_icode___icode_builder___ICodeBuilder___add_abort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-    /* ./icode//icode_builder.nit:83 */
+    /* icode/icode_builder.nit:83 */
     CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
   }
   stack_frame_head = fra.me.prev;
@@ -296,11 +296,11 @@ val_t icode___icode_builder___ICodeBuilder___add_attr_read(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_builder.nit:87 */
+  /* icode/icode_builder.nit:87 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./icode//icode_builder.nit:90 */
+  /* icode/icode_builder.nit:90 */
   CALL_icode___icode_builder___ICodeBuilder___add_attr_check(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2]);
-  /* ./icode//icode_builder.nit:91 */
+  /* icode/icode_builder.nit:91 */
   fra.me.REG[2] = NEW_IAttrRead_icode___icode_base___IAttrRead___init(fra.me.REG[1], fra.me.REG[2]);
   fra.me.REG[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
@@ -335,14 +335,14 @@ void icode___icode_builder___ICodeBuilder___add_abort(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_builder.nit:94 */
+  /* icode/icode_builder.nit:94 */
   fra.me.REG[2] = fra.me.REG[0];
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[String]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_icode___icode_builder, 94);
   }
-  /* ./icode//icode_builder.nit:97 */
+  /* icode/icode_builder.nit:97 */
   fra.me.REG[0] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[0] = NEW_IAbort_icode___icode_base___IAbort___init(fra.me.REG[1], fra.me.REG[0]);
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
@@ -366,9 +366,9 @@ void icode___icode_builder___ICodeBuilder___add_return_value(val_t p0, val_t p1)
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_builder.nit:100 */
+  /* icode/icode_builder.nit:100 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./icode//icode_builder.nit:104 */
+  /* icode/icode_builder.nit:104 */
   fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_icode___icode_base___IRoutine___result(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___IRegister, ID_icode___icode_base___IRegister)) /*cast IRegister*/;
@@ -412,9 +412,9 @@ val_t icode___icode_builder___ICodeBuilder___add_call(val_t p0, val_t p1, val_t
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./icode//icode_builder.nit:107 */
+  /* icode/icode_builder.nit:107 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./icode//icode_builder.nit:110 */
+  /* icode/icode_builder.nit:110 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[5] = BOX_NativeString("==");
@@ -429,7 +429,7 @@ val_t icode___icode_builder___ICodeBuilder___add_call(val_t p0, val_t p1, val_t
     register_static_object(&once_value_1);
   } else fra.me.REG[5] = once_value_1;
   fra.me.REG[5] = fra.me.REG[5];
-  /* ./icode//icode_builder.nit:113 */
+  /* icode/icode_builder.nit:113 */
   if (!once_value_3) {
     if (!once_value_4) {
       fra.me.REG[6] = BOX_NativeString("!=");
@@ -444,7 +444,7 @@ val_t icode___icode_builder___ICodeBuilder___add_call(val_t p0, val_t p1, val_t
     register_static_object(&once_value_3);
   } else fra.me.REG[6] = once_value_3;
   fra.me.REG[6] = fra.me.REG[6];
-  /* ./icode//icode_builder.nit:114 */
+  /* icode/icode_builder.nit:114 */
   fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[7],fra.me.REG[6]));
   if (UNTAG_Bool(REGB0)) {
@@ -453,7 +453,7 @@ val_t icode___icode_builder___ICodeBuilder___add_call(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./icode//icode_builder.nit:115 */
+    /* icode/icode_builder.nit:115 */
     fra.me.REG[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -462,25 +462,25 @@ val_t icode___icode_builder___ICodeBuilder___add_call(val_t p0, val_t p1, val_t
     fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___recv(fra.me.REG[6])(fra.me.REG[6]);
     fra.me.REG[6] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[6])(fra.me.REG[6]);
     fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
-    /* ./icode//icode_builder.nit:116 */
+    /* icode/icode_builder.nit:116 */
     fra.me.REG[6] = CALL_icode___icode_builder___ICodeBuilder___add_call(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6], fra.me.REG[2], fra.me.REG[3]);
     REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_icode___icode_builder, 116);
     }
-    /* ./icode//icode_builder.nit:117 */
+    /* icode/icode_builder.nit:117 */
     fra.me.REG[6] = NEW_INot_icode___icode_base___INot___init(fra.me.REG[6]);
     fra.me.REG[0] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[4])(fra.me.REG[4]);
     fra.me.REG[0] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6], fra.me.REG[0]);
     goto label5;
   }
-  /* ./icode//icode_builder.nit:122 */
+  /* icode/icode_builder.nit:122 */
   fra.me.REG[6] = NEW_ICall_icode___icode_base___ICall___init(fra.me.REG[1], fra.me.REG[2]);
-  /* ./icode//icode_builder.nit:123 */
+  /* icode/icode_builder.nit:123 */
   CALL_icode___icode_base___ICodeN___closure_defs__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
-  /* ./icode//icode_builder.nit:124 */
+  /* icode/icode_builder.nit:124 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[5]));
   if (UNTAG_Bool(REGB0)) {
@@ -489,24 +489,24 @@ val_t icode___icode_builder___ICodeBuilder___add_call(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./icode//icode_builder.nit:126 */
+    /* icode/icode_builder.nit:126 */
     fra.me.REG[5] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[4])(fra.me.REG[4]);
     fra.me.REG[5] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[5])(fra.me.REG[5]);
     fra.me.REG[5] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    /* ./icode//icode_builder.nit:128 */
+    /* icode/icode_builder.nit:128 */
     REGB0 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:278 */
+    /* ../lib/standard/collection/array.nit:278 */
     fra.me.REG[3] = fra.me.REG[2];
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB1 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     if (UNTAG_Bool(REGB1)) {
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
@@ -519,42 +519,42 @@ val_t icode___icode_builder___ICodeBuilder___add_call(val_t p0, val_t p1, val_t
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
     } else {
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB2 = TAG_Bool(false);
       REGB1 = REGB2;
     }
     if (UNTAG_Bool(REGB1)) {
     } else {
-      nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+      nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
     }
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
     REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
     }
-    /* ./../lib/standard//collection//array.nit:718 */
+    /* ../lib/standard/collection/array.nit:718 */
     fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     goto label6;
     label6: while(0);
-    /* ./icode//icode_builder.nit:128 */
+    /* icode/icode_builder.nit:128 */
     REGB0 = TAG_Int(1);
-    /* ./../lib/standard//collection//array.nit:278 */
+    /* ../lib/standard/collection/array.nit:278 */
     fra.me.REG[7] = fra.me.REG[2];
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB1 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     if (UNTAG_Bool(REGB1)) {
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
@@ -567,61 +567,61 @@ val_t icode___icode_builder___ICodeBuilder___add_call(val_t p0, val_t p1, val_t
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
     } else {
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB2 = TAG_Bool(false);
       REGB1 = REGB2;
     }
     if (UNTAG_Bool(REGB1)) {
     } else {
-      nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+      nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
     }
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
     REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
     }
-    /* ./../lib/standard//collection//array.nit:718 */
+    /* ../lib/standard/collection/array.nit:718 */
     fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB0)];
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     goto label7;
     label7: while(0);
-    /* ./icode//icode_builder.nit:128 */
+    /* icode/icode_builder.nit:128 */
     fra.me.REG[7] = NEW_IIs_icode___icode_base___IIs___init(fra.me.REG[3], fra.me.REG[7]);
     fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[4])(fra.me.REG[4]);
     fra.me.REG[3] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[3])(fra.me.REG[3]);
     fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7], fra.me.REG[3]);
-    /* ./icode//icode_builder.nit:129 */
+    /* icode/icode_builder.nit:129 */
     fra.me.REG[7] = NEW_IIf_icode___icode_base___IIf___init(fra.me.REG[3]);
-    /* ./icode//icode_builder.nit:130 */
+    /* icode/icode_builder.nit:130 */
     CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
-    /* ./icode//icode_builder.nit:131 */
+    /* icode/icode_builder.nit:131 */
     fra.me.REG[8] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[4])(fra.me.REG[4]);
-    /* ./icode//icode_builder.nit:132 */
+    /* icode/icode_builder.nit:132 */
     fra.me.REG[9] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[7])(fra.me.REG[7]);
     CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
-    /* ./icode//icode_builder.nit:133 */
+    /* icode/icode_builder.nit:133 */
     CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5], fra.me.REG[3]);
-    /* ./icode//icode_builder.nit:135 */
+    /* icode/icode_builder.nit:135 */
     fra.me.REG[9] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[7])(fra.me.REG[7]);
     CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
-    /* ./icode//icode_builder.nit:137 */
+    /* icode/icode_builder.nit:137 */
     REGB0 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:278 */
+    /* ../lib/standard/collection/array.nit:278 */
     fra.me.REG[9] = fra.me.REG[2];
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB1 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     if (UNTAG_Bool(REGB1)) {
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[9])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
@@ -634,29 +634,29 @@ val_t icode___icode_builder___ICodeBuilder___add_call(val_t p0, val_t p1, val_t
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
     } else {
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB2 = TAG_Bool(false);
       REGB1 = REGB2;
     }
     if (UNTAG_Bool(REGB1)) {
     } else {
-      nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+      nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
     }
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     fra.me.REG[9] = ATTR_standard___collection___array___Array____items(fra.me.REG[9]);
     REGB1 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
     }
-    /* ./../lib/standard//collection//array.nit:718 */
+    /* ../lib/standard/collection/array.nit:718 */
     fra.me.REG[9] = ((Nit_NativeArray)fra.me.REG[9])->val[UNTAG_Int(REGB0)];
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     goto label8;
     label8: while(0);
-    /* ./icode//icode_builder.nit:137 */
+    /* icode/icode_builder.nit:137 */
     REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_icode___icode_builder, 137);
@@ -664,22 +664,22 @@ val_t icode___icode_builder___ICodeBuilder___add_call(val_t p0, val_t p1, val_t
     fra.me.REG[9] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[9])(fra.me.REG[9]);
     REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[9])(fra.me.REG[9]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./icode//icode_builder.nit:138 */
+      /* icode/icode_builder.nit:138 */
       fra.me.REG[9] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra.me.REG[4])(fra.me.REG[4]);
-      /* ./icode//icode_builder.nit:139 */
+      /* icode/icode_builder.nit:139 */
       REGB0 = TAG_Int(0);
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       fra.me.REG[10] = fra.me.REG[2];
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB1 = TAG_Int(0);
       REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB1)) {
         REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10])!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
@@ -692,61 +692,61 @@ val_t icode___icode_builder___ICodeBuilder___add_call(val_t p0, val_t p1, val_t
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB2 = TAG_Bool(false);
         REGB1 = REGB2;
       }
       if (UNTAG_Bool(REGB1)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[10] = ATTR_standard___collection___array___Array____items(fra.me.REG[10]);
       REGB1 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[10] = ((Nit_NativeArray)fra.me.REG[10])->val[UNTAG_Int(REGB0)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label9;
       label9: while(0);
-      /* ./icode//icode_builder.nit:139 */
+      /* icode/icode_builder.nit:139 */
       fra.me.REG[9] = NEW_IIs_icode___icode_base___IIs___init(fra.me.REG[10], fra.me.REG[9]);
       fra.me.REG[10] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[4])(fra.me.REG[4]);
       fra.me.REG[10] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[10])(fra.me.REG[10]);
       fra.me.REG[10] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9], fra.me.REG[10]);
       fra.me.REG[3] = fra.me.REG[10];
-      /* ./icode//icode_builder.nit:140 */
+      /* icode/icode_builder.nit:140 */
       fra.me.REG[3] = NEW_IIf_icode___icode_base___IIf___init(fra.me.REG[3]);
       fra.me.REG[7] = fra.me.REG[3];
-      /* ./icode//icode_builder.nit:141 */
+      /* icode/icode_builder.nit:141 */
       CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
-      /* ./icode//icode_builder.nit:142 */
+      /* icode/icode_builder.nit:142 */
       fra.me.REG[3] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[7])(fra.me.REG[7]);
       CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-      /* ./icode//icode_builder.nit:143 */
+      /* icode/icode_builder.nit:143 */
       fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra.me.REG[4])(fra.me.REG[4]);
       CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5], fra.me.REG[3]);
-      /* ./icode//icode_builder.nit:144 */
+      /* icode/icode_builder.nit:144 */
       fra.me.REG[7] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[7])(fra.me.REG[7]);
       CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
     }
-    /* ./icode//icode_builder.nit:147 */
+    /* icode/icode_builder.nit:147 */
     fra.me.REG[7] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[4])(fra.me.REG[4]);
     fra.me.REG[7] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[7])(fra.me.REG[7]);
     fra.me.REG[7] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6], fra.me.REG[7]);
     CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5], fra.me.REG[7]);
-    /* ./icode//icode_builder.nit:148 */
+    /* icode/icode_builder.nit:148 */
     CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
-    /* ./icode//icode_builder.nit:149 */
+    /* icode/icode_builder.nit:149 */
     fra.me.REG[0] = fra.me.REG[5];
     goto label5;
   }
-  /* ./icode//icode_builder.nit:152 */
+  /* icode/icode_builder.nit:152 */
   fra.me.REG[5] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -758,14 +758,14 @@ val_t icode___icode_builder___ICodeBuilder___add_call(val_t p0, val_t p1, val_t
     fra.me.REG[2] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
     CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
   }
-  /* ./icode//icode_builder.nit:153 */
+  /* icode/icode_builder.nit:153 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_icode___icode_builder, 153);
   }
   fra.me.REG[1] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./icode//icode_builder.nit:154 */
+  /* icode/icode_builder.nit:154 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -780,14 +780,14 @@ val_t icode___icode_builder___ICodeBuilder___add_call(val_t p0, val_t p1, val_t
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./icode//icode_builder.nit:155 */
+    /* icode/icode_builder.nit:155 */
     fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6], fra.me.REG[1]);
     fra.me.REG[0] = fra.me.REG[1];
     goto label5;
   } else {
-    /* ./icode//icode_builder.nit:157 */
+    /* icode/icode_builder.nit:157 */
     CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-    /* ./icode//icode_builder.nit:158 */
+    /* icode/icode_builder.nit:158 */
     fra.me.REG[0] = NIT_NULL;
     goto label5;
   }
@@ -813,9 +813,9 @@ void icode___icode_builder___ICodeBuilder___add_escape(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_builder.nit:166 */
+  /* icode/icode_builder.nit:166 */
   fra.me.REG[2] = CALL_icode___icode_base___ISeq___iescape_mark(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./icode//icode_builder.nit:167 */
+  /* icode/icode_builder.nit:167 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -829,17 +829,17 @@ void icode___icode_builder___ICodeBuilder___add_escape(val_t p0, val_t p1){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./icode//icode_builder.nit:168 */
+    /* icode/icode_builder.nit:168 */
     fra.me.REG[3] = NEW_IEscapeMark_icode___icode_base___IEscapeMark___init();
     fra.me.REG[2] = fra.me.REG[3];
-    /* ./icode//icode_builder.nit:169 */
+    /* icode/icode_builder.nit:169 */
     fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[3] = CALL_icode___icode_base___IRoutine___escape_marks(fra.me.REG[3])(fra.me.REG[3]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-    /* ./icode//icode_builder.nit:170 */
+    /* icode/icode_builder.nit:170 */
     CALL_icode___icode_base___ISeq___iescape_mark__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
-  /* ./icode//icode_builder.nit:172 */
+  /* icode/icode_builder.nit:172 */
   fra.me.REG[2] = NEW_IEscape_icode___icode_base___IEscape___init(fra.me.REG[2]);
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -858,7 +858,7 @@ val_t icode___icode_builder___ICodeBuilder___lit_null_reg(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_builder.nit:178 */
+  /* icode/icode_builder.nit:178 */
   fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_metamodel___static_type___MMModule___type_none(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
@@ -882,10 +882,10 @@ val_t icode___icode_builder___ICodeBuilder___lit_true_reg(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_builder.nit:184 */
+  /* icode/icode_builder.nit:184 */
   REGB0 = TAG_Bool(true);
   fra.me.REG[1] = NEW_IBoolValue_icode___icode_base___IBoolValue___init(REGB0);
-  /* ./icode//icode_builder.nit:185 */
+  /* icode/icode_builder.nit:185 */
   fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
@@ -909,10 +909,10 @@ val_t icode___icode_builder___ICodeBuilder___lit_false_reg(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_builder.nit:191 */
+  /* icode/icode_builder.nit:191 */
   REGB0 = TAG_Bool(false);
   fra.me.REG[1] = NEW_IBoolValue_icode___icode_base___IBoolValue___init(REGB0);
-  /* ./icode//icode_builder.nit:192 */
+  /* icode/icode_builder.nit:192 */
   fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
@@ -935,13 +935,13 @@ val_t icode___icode_builder___ICodeBuilder___new_register(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_builder.nit:198 */
+  /* icode/icode_builder.nit:198 */
   fra.me.REG[1] = NEW_IRegister_icode___icode_base___IRegister___init(fra.me.REG[1]);
-  /* ./icode//icode_builder.nit:199 */
+  /* icode/icode_builder.nit:199 */
   fra.me.REG[0] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_base___IRoutine___registers(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./icode//icode_builder.nit:200 */
+  /* icode/icode_builder.nit:200 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -960,7 +960,7 @@ val_t icode___icode_builder___ICodeBuilder___mmmodule(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_builder.nit:203 */
+  /* icode/icode_builder.nit:203 */
   REGB0 = TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____mmmodule(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -983,7 +983,7 @@ val_t icode___icode_builder___ICodeBuilder___iroutine(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_builder.nit:206 */
+  /* icode/icode_builder.nit:206 */
   REGB0 = TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____iroutine(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1006,7 +1006,7 @@ val_t icode___icode_builder___ICodeBuilder___seq(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_builder.nit:209 */
+  /* icode/icode_builder.nit:209 */
   REGB0 = TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____seq(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1030,7 +1030,7 @@ void icode___icode_builder___ICodeBuilder___seq__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_builder.nit:209 */
+  /* icode/icode_builder.nit:209 */
   ATTR_icode___icode_builder___ICodeBuilder____seq(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1053,14 +1053,14 @@ void icode___icode_builder___ICodeBuilder___init(val_t p0, val_t p1, val_t p2, i
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_builder.nit:214 */
+  /* icode/icode_builder.nit:214 */
   ATTR_icode___icode_builder___ICodeBuilder____mmmodule(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_builder.nit:215 */
+  /* icode/icode_builder.nit:215 */
   fra.me.REG[1] = CALL_icode___icode_base___IRoutine___location(fra.me.REG[2])(fra.me.REG[2]);
   ATTR_icode___icode_builder___ICodeBuilder____current_location(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_builder.nit:216 */
+  /* icode/icode_builder.nit:216 */
   ATTR_icode___icode_builder___ICodeBuilder____iroutine(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./icode//icode_builder.nit:217 */
+  /* icode/icode_builder.nit:217 */
   fra.me.REG[2] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[2])(fra.me.REG[2]);
   ATTR_icode___icode_builder___ICodeBuilder____seq(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
@@ -1079,7 +1079,7 @@ val_t icode___icode_builder___ICodeBuilder___current_location(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_builder.nit:220 */
+  /* icode/icode_builder.nit:220 */
   fra.me.REG[0] = ATTR_icode___icode_builder___ICodeBuilder____current_location(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1098,7 +1098,7 @@ void icode___icode_builder___ICodeBuilder___current_location__eq(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_builder.nit:220 */
+  /* icode/icode_builder.nit:220 */
   ATTR_icode___icode_builder___ICodeBuilder____current_location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1126,49 +1126,49 @@ val_t icode___icode_builder___MMSignature___generate_empty_iroutine(val_t p0){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_builder.nit:228 */
+  /* icode/icode_builder.nit:228 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  /* ./icode//icode_builder.nit:229 */
+  /* icode/icode_builder.nit:229 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMSignature___recv(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = NEW_IRegister_icode___icode_base___IRegister___init(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./icode//icode_builder.nit:230 */
+  /* icode/icode_builder.nit:230 */
   REGB0 = TAG_Int(0);
   REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./icode//icode_builder.nit:230 */
+      /* icode/icode_builder.nit:230 */
       REGB2 = REGB0;
-      /* ./icode//icode_builder.nit:231 */
+      /* icode/icode_builder.nit:231 */
       fra.me.REG[2] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[0])(fra.me.REG[0], REGB2);
       fra.me.REG[2] = NEW_IRegister_icode___icode_base___IRegister___init(fra.me.REG[2]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./icode//icode_builder.nit:233 */
+  /* icode/icode_builder.nit:233 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./icode//icode_builder.nit:234 */
+  /* icode/icode_builder.nit:234 */
   fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./icode//icode_builder.nit:235 */
+  /* icode/icode_builder.nit:235 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1183,38 +1183,38 @@ val_t icode___icode_builder___MMSignature___generate_empty_iroutine(val_t p0){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./icode//icode_builder.nit:236 */
+    /* icode/icode_builder.nit:236 */
     fra.me.REG[3] = NEW_IRegister_icode___icode_base___IRegister___init(fra.me.REG[3]);
     fra.me.REG[2] = fra.me.REG[3];
   }
-  /* ./icode//icode_builder.nit:238 */
+  /* icode/icode_builder.nit:238 */
   fra.me.REG[2] = NEW_IRoutine_icode___icode_base___IRoutine___init(fra.me.REG[1], fra.me.REG[2]);
-  /* ./icode//icode_builder.nit:239 */
+  /* icode/icode_builder.nit:239 */
   fra.me.REG[3] = NIT_NULL;
-  /* ./icode//icode_builder.nit:240 */
+  /* icode/icode_builder.nit:240 */
   fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./icode//icode_builder.nit:241 */
+    /* icode/icode_builder.nit:241 */
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
     fra.me.REG[3] = fra.me.REG[4];
-    /* ./icode//icode_builder.nit:242 */
+    /* icode/icode_builder.nit:242 */
     fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[0])(fra.me.REG[0]);
-    /* ./../lib/standard//collection//array.nit:269 */
+    /* ../lib/standard/collection/array.nit:269 */
     REGB0 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:270 */
+    /* ../lib/standard/collection/array.nit:270 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-    /* ./../lib/standard//collection//array.nit:271 */
+    /* ../lib/standard/collection/array.nit:271 */
     fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     while(1) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -1226,80 +1226,80 @@ val_t icode___icode_builder___MMSignature___generate_empty_iroutine(val_t p0){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       if (UNTAG_Bool(REGB1)) {
-        /* ./../lib/standard//collection//array.nit:273 */
+        /* ../lib/standard/collection/array.nit:273 */
         REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-        /* ./icode//icode_builder.nit:243 */
+        /* icode/icode_builder.nit:243 */
         fra.me.REG[6] = NEW_IClosureDecl_icode___icode_base___IClosureDecl___init(fra.me.REG[6]);
         REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_icode___icode_builder, 243);
         }
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB1 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB0 = REGB1;
       } else {
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         goto label2;
       }
     }
     label2: while(0);
-    /* ./icode//icode_builder.nit:245 */
+    /* icode/icode_builder.nit:245 */
     CALL_icode___icode_base___IRoutine___closure_decls__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   }
-  /* ./icode//icode_builder.nit:248 */
+  /* icode/icode_builder.nit:248 */
   fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___recv(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init(fra.me.REG[3], fra.me.REG[2]);
-  /* ./icode//icode_builder.nit:249 */
+  /* icode/icode_builder.nit:249 */
   REGB0 = TAG_Int(0);
   REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./icode//icode_builder.nit:249 */
+      /* icode/icode_builder.nit:249 */
       REGB2 = REGB0;
-      /* ./icode//icode_builder.nit:250 */
+      /* icode/icode_builder.nit:250 */
       fra.me.REG[5] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[0])(fra.me.REG[0], REGB2);
-      /* ./icode//icode_builder.nit:251 */
+      /* icode/icode_builder.nit:251 */
       REGB3 = TAG_Bool(VAL_ISA(fra.me.REG[5], COLOR_metamodel___virtualtype___MMVirtualType, ID_metamodel___virtualtype___MMVirtualType)) /*cast MMVirtualType*/;
       if (UNTAG_Bool(REGB3)) {
-        /* ./icode//icode_builder.nit:252 */
+        /* icode/icode_builder.nit:252 */
         REGB3 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-        /* ./../lib/standard//collection//array.nit:278 */
+        /* ../lib/standard/collection/array.nit:278 */
         fra.me.REG[4] = fra.me.REG[1];
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB2 = TAG_Int(0);
         REGB4 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB4)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB2 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB2));
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB2)) {
           REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
@@ -1312,44 +1312,44 @@ val_t icode___icode_builder___MMSignature___generate_empty_iroutine(val_t p0){
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
         } else {
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB4 = TAG_Bool(false);
           REGB2 = REGB4;
         }
         if (UNTAG_Bool(REGB2)) {
         } else {
-          nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+          nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
         }
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
         REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB3)];
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         goto label3;
         label3: while(0);
-        /* ./icode//icode_builder.nit:252 */
+        /* icode/icode_builder.nit:252 */
         CALL_icode___icode_builder___ICodeBuilder___add_type_cast(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB3;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label4;
     }
   }
   label4: while(0);
-  /* ./icode//icode_builder.nit:255 */
+  /* icode/icode_builder.nit:255 */
   goto label5;
   label5: while(0);
   stack_frame_head = fra.me.prev;
@@ -1375,45 +1375,45 @@ val_t icode___icode_builder___MMSignature___generate_empty_iclosuredef(val_t p0,
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_builder.nit:261 */
+  /* icode/icode_builder.nit:261 */
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-  /* ./icode//icode_builder.nit:262 */
+  /* icode/icode_builder.nit:262 */
   REGB0 = TAG_Int(0);
   REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./icode//icode_builder.nit:262 */
+      /* icode/icode_builder.nit:262 */
       REGB2 = REGB0;
-      /* ./icode//icode_builder.nit:263 */
+      /* icode/icode_builder.nit:263 */
       fra.me.REG[3] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[0])(fra.me.REG[0], REGB2);
       fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./icode//icode_builder.nit:265 */
+  /* icode/icode_builder.nit:265 */
   fra.me.REG[3] = NIT_NULL;
-  /* ./icode//icode_builder.nit:266 */
+  /* icode/icode_builder.nit:266 */
   fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./icode//icode_builder.nit:267 */
+  /* icode/icode_builder.nit:267 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1428,38 +1428,38 @@ val_t icode___icode_builder___MMSignature___generate_empty_iclosuredef(val_t p0,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./icode//icode_builder.nit:268 */
+    /* icode/icode_builder.nit:268 */
     fra.me.REG[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
     fra.me.REG[3] = fra.me.REG[4];
   }
-  /* ./icode//icode_builder.nit:270 */
+  /* icode/icode_builder.nit:270 */
   fra.me.REG[3] = NEW_IClosureDef_icode___icode_base___IClosureDef___init(fra.me.REG[2], fra.me.REG[3]);
-  /* ./icode//icode_builder.nit:271 */
+  /* icode/icode_builder.nit:271 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./icode//icode_builder.nit:272 */
+  /* icode/icode_builder.nit:272 */
   fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./icode//icode_builder.nit:273 */
+    /* icode/icode_builder.nit:273 */
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
     fra.me.REG[2] = fra.me.REG[4];
-    /* ./icode//icode_builder.nit:274 */
+    /* icode/icode_builder.nit:274 */
     fra.me.REG[0] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[0])(fra.me.REG[0]);
-    /* ./../lib/standard//collection//array.nit:269 */
+    /* ../lib/standard/collection/array.nit:269 */
     REGB0 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:270 */
+    /* ../lib/standard/collection/array.nit:270 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-    /* ./../lib/standard//collection//array.nit:271 */
+    /* ../lib/standard/collection/array.nit:271 */
     fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     while(1) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -1471,40 +1471,40 @@ val_t icode___icode_builder___MMSignature___generate_empty_iclosuredef(val_t p0,
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       if (UNTAG_Bool(REGB1)) {
-        /* ./../lib/standard//collection//array.nit:273 */
+        /* ../lib/standard/collection/array.nit:273 */
         REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-        /* ./icode//icode_builder.nit:275 */
+        /* icode/icode_builder.nit:275 */
         fra.me.REG[1] = NEW_IClosureDecl_icode___icode_base___IClosureDecl___init(fra.me.REG[1]);
         REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_icode___icode_builder, 275);
         }
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB1 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB0 = REGB1;
       } else {
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         goto label2;
       }
     }
     label2: while(0);
-    /* ./icode//icode_builder.nit:277 */
+    /* icode/icode_builder.nit:277 */
     CALL_icode___icode_base___IRoutine___closure_decls__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
   }
-  /* ./icode//icode_builder.nit:280 */
+  /* icode/icode_builder.nit:280 */
   goto label3;
   label3: while(0);
   stack_frame_head = fra.me.prev;
index 3bbfef6..8d2dd5c 100644 (file)
@@ -50,7 +50,7 @@ val_t icode___icode_tools___ICodeVisitor___current_icode(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_tools.nit:29 */
+  /* icode/icode_tools.nit:29 */
   fra.me.REG[0] = ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -74,7 +74,7 @@ void icode___icode_tools___ICodeVisitor___visit_icode(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:37 */
+  /* icode/icode_tools.nit:37 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -90,57 +90,57 @@ void icode___icode_tools___ICodeVisitor___visit_icode(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./icode//icode_tools.nit:38 */
+  /* icode/icode_tools.nit:38 */
   REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_icode___icode_base___ISeq, ID_icode___icode_base___ISeq)) /*cast ISeq*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./icode//icode_tools.nit:39 */
+    /* icode/icode_tools.nit:39 */
     fra.me.REG[2] = ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]);
-    /* ./icode//icode_tools.nit:40 */
+    /* icode/icode_tools.nit:40 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_icode___icode_tools, 40);
     }
     fra.me.REG[3] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[3] = CALL_standard___collection___abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]);
-    /* ./icode//icode_tools.nit:41 */
+    /* icode/icode_tools.nit:41 */
     while(1) {
       REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]);
       if (UNTAG_Bool(REGB0)) {
-        /* ./icode//icode_tools.nit:42 */
+        /* icode/icode_tools.nit:42 */
         ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]) = fra.me.REG[3];
-        /* ./icode//icode_tools.nit:43 */
+        /* icode/icode_tools.nit:43 */
         fra.me.REG[4] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]);
-        /* ./icode//icode_tools.nit:44 */
+        /* icode/icode_tools.nit:44 */
         CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-        /* ./icode//icode_tools.nit:45 */
+        /* icode/icode_tools.nit:45 */
         CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
       } else {
-        /* ./icode//icode_tools.nit:41 */
+        /* icode/icode_tools.nit:41 */
         goto label2;
       }
     }
     label2: while(0);
-    /* ./icode//icode_tools.nit:47 */
+    /* icode/icode_tools.nit:47 */
     ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]) = fra.me.REG[2];
   } else {
-    /* ./icode//icode_tools.nit:48 */
+    /* icode/icode_tools.nit:48 */
     REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_icode___icode_base___IIf, ID_icode___icode_base___IIf)) /*cast IIf*/;
     if (UNTAG_Bool(REGB0)) {
-      /* ./icode//icode_tools.nit:49 */
+      /* icode/icode_tools.nit:49 */
       REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_icode___icode_tools, 49);
       }
       fra.me.REG[2] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[1])(fra.me.REG[1]);
       CALL_icode___icode_tools___ICodeVisitor___visit_iregister_read(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
-      /* ./icode//icode_tools.nit:50 */
+      /* icode/icode_tools.nit:50 */
       REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_icode___icode_tools, 50);
       }
       fra.me.REG[2] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[1])(fra.me.REG[1]);
       CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-      /* ./icode//icode_tools.nit:51 */
+      /* icode/icode_tools.nit:51 */
       REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_icode___icode_tools, 51);
@@ -148,10 +148,10 @@ void icode___icode_tools___ICodeVisitor___visit_icode(val_t p0, val_t p1){
       fra.me.REG[2] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[1])(fra.me.REG[1]);
       CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
     } else {
-      /* ./icode//icode_tools.nit:52 */
+      /* icode/icode_tools.nit:52 */
       REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_icode___icode_base___IOnce, ID_icode___icode_base___IOnce)) /*cast IOnce*/;
       if (UNTAG_Bool(REGB0)) {
-        /* ./icode//icode_tools.nit:53 */
+        /* icode/icode_tools.nit:53 */
         REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
           nit_abort("Reciever is null", NULL, LOCATE_icode___icode_tools, 53);
@@ -159,10 +159,10 @@ void icode___icode_tools___ICodeVisitor___visit_icode(val_t p0, val_t p1){
         fra.me.REG[2] = CALL_icode___icode_base___IOnce___body(fra.me.REG[1])(fra.me.REG[1]);
         CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
       } else {
-        /* ./icode//icode_tools.nit:54 */
+        /* icode/icode_tools.nit:54 */
         REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_icode___icode_base___ICode1, ID_icode___icode_base___ICode1)) /*cast ICode1*/;
         if (UNTAG_Bool(REGB0)) {
-          /* ./icode//icode_tools.nit:55 */
+          /* icode/icode_tools.nit:55 */
           REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
           if (UNTAG_Bool(REGB0)) {
             nit_abort("Reciever is null", NULL, LOCATE_icode___icode_tools, 55);
@@ -170,17 +170,17 @@ void icode___icode_tools___ICodeVisitor___visit_icode(val_t p0, val_t p1){
           fra.me.REG[2] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[1])(fra.me.REG[1]);
           CALL_icode___icode_tools___ICodeVisitor___visit_iregister_read(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
         } else {
-          /* ./icode//icode_tools.nit:56 */
+          /* icode/icode_tools.nit:56 */
           REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_icode___icode_base___ICode2, ID_icode___icode_base___ICode2)) /*cast ICode2*/;
           if (UNTAG_Bool(REGB0)) {
-            /* ./icode//icode_tools.nit:57 */
+            /* icode/icode_tools.nit:57 */
             REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
             if (UNTAG_Bool(REGB0)) {
               nit_abort("Reciever is null", NULL, LOCATE_icode___icode_tools, 57);
             }
             fra.me.REG[2] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[1])(fra.me.REG[1]);
             CALL_icode___icode_tools___ICodeVisitor___visit_iregister_read(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
-            /* ./icode//icode_tools.nit:58 */
+            /* icode/icode_tools.nit:58 */
             REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
             if (UNTAG_Bool(REGB0)) {
               nit_abort("Reciever is null", NULL, LOCATE_icode___icode_tools, 58);
@@ -188,26 +188,26 @@ void icode___icode_tools___ICodeVisitor___visit_icode(val_t p0, val_t p1){
             fra.me.REG[2] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[1])(fra.me.REG[1]);
             CALL_icode___icode_tools___ICodeVisitor___visit_iregister_read(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
           } else {
-            /* ./icode//icode_tools.nit:59 */
+            /* icode/icode_tools.nit:59 */
             REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_icode___icode_base___ICodeN, ID_icode___icode_base___ICodeN)) /*cast ICodeN*/;
             if (UNTAG_Bool(REGB0)) {
-              /* ./icode//icode_tools.nit:60 */
+              /* icode/icode_tools.nit:60 */
               REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
               if (UNTAG_Bool(REGB0)) {
                nit_abort("Reciever is null", NULL, LOCATE_icode___icode_tools, 60);
               }
               fra.me.REG[2] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[1])(fra.me.REG[1]);
               CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_icode___icode_tools___ICodeVisitor___visit_icode_3));
-              /* ./icode//icode_tools.nit:63 */
+              /* icode/icode_tools.nit:63 */
               REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
               if (UNTAG_Bool(REGB0)) {
                nit_abort("Reciever is null", NULL, LOCATE_icode___icode_tools, 63);
               }
               fra.me.REG[2] = CALL_icode___icode_base___ICodeN___closure_defs(fra.me.REG[1])(fra.me.REG[1]);
-              /* ./icode//icode_tools.nit:64 */
+              /* icode/icode_tools.nit:64 */
               REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_icode___icode_base___IClosCall, ID_icode___icode_base___IClosCall)) /*cast IClosCall*/;
               if (UNTAG_Bool(REGB0)) {
-               /* ./icode//icode_tools.nit:65 */
+               /* icode/icode_tools.nit:65 */
                REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
                if (UNTAG_Bool(REGB0)) {
                nit_abort("Reciever is null", NULL, LOCATE_icode___icode_tools, 65);
@@ -215,7 +215,7 @@ void icode___icode_tools___ICodeVisitor___visit_icode(val_t p0, val_t p1){
                fra.me.REG[3] = CALL_icode___icode_base___IClosCall___break_seq(fra.me.REG[1])(fra.me.REG[1]);
                CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
               }
-              /* ./icode//icode_tools.nit:67 */
+              /* icode/icode_tools.nit:67 */
               REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
               if (UNTAG_Bool(REGB0)) {
               } else {
@@ -230,7 +230,7 @@ void icode___icode_tools___ICodeVisitor___visit_icode(val_t p0, val_t p1){
               }
               REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
               if (UNTAG_Bool(REGB0)) {
-               /* ./icode//icode_tools.nit:68 */
+               /* icode/icode_tools.nit:68 */
                CALL_icode___icode_tools___ICodeVisitor___visit_closure_defs(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
               }
             }
@@ -239,13 +239,13 @@ void icode___icode_tools___ICodeVisitor___visit_icode(val_t p0, val_t p1){
       }
     }
   }
-  /* ./icode//icode_tools.nit:71 */
+  /* icode/icode_tools.nit:71 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_icode___icode_tools, 71);
   }
   fra.me.REG[2] = CALL_icode___icode_base___ICode___result(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./icode//icode_tools.nit:72 */
+  /* icode/icode_tools.nit:72 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -282,7 +282,7 @@ void icode___icode_tools___ICodeVisitor___visit_icode(val_t p0, val_t p1){
                fra.me.closure_funs = CREG;
                fra.me.REG[0] = p0;
                CREG[0] = clos_fun0;
-               /* ./icode//icode_tools.nit:61 */
+               /* icode/icode_tools.nit:61 */
                CALL_icode___icode_tools___ICodeVisitor___visit_iregister_read(closctx->REG[0])(closctx->REG[0], closctx->REG[1], fra.me.REG[0]);
                stack_frame_head = fra.me.prev;
                return;
@@ -311,7 +311,7 @@ void icode___icode_tools___ICodeVisitor___visit_closure_defs(val_t p0, val_t p1)
     val_t REGB1;
     fun_t CREG[1];
     val_t tmp;
-    /* ./icode//icode_tools.nit:79 */
+    /* icode/icode_tools.nit:79 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_icode___icode_tools;
     fra.me.line = 0;
@@ -324,7 +324,7 @@ void icode___icode_tools___ICodeVisitor___visit_closure_defs(val_t p0, val_t p1)
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./icode//icode_tools.nit:80 */
+    /* icode/icode_tools.nit:80 */
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -339,7 +339,7 @@ void icode___icode_tools___ICodeVisitor___visit_closure_defs(val_t p0, val_t p1)
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./icode//icode_tools.nit:81 */
+      /* icode/icode_tools.nit:81 */
       CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
     }
     stack_frame_head = fra.me.prev;
@@ -359,7 +359,7 @@ void icode___icode_tools___ICodeVisitor___visit_iroutine(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:91 */
+  /* icode/icode_tools.nit:91 */
   fra.me.REG[1] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[1])(fra.me.REG[1]);
   CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
@@ -411,7 +411,7 @@ val_t icode___icode_tools___ICodeBuilder___inline_routine(val_t p0, val_t p1, va
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./icode//icode_tools.nit:100 */
+  /* icode/icode_tools.nit:100 */
   fra.me.REG[4] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[4]));
   if (UNTAG_Bool(REGB0)) {
@@ -424,27 +424,27 @@ val_t icode___icode_tools___ICodeBuilder___inline_routine(val_t p0, val_t p1, va
   } else {
     nit_abort("Assert failed", NULL, LOCATE_icode___icode_tools, 100);
   }
-  /* ./icode//icode_tools.nit:101 */
+  /* icode/icode_tools.nit:101 */
   fra.me.REG[4] = NEW_ICodeDupContext_icode___icode_tools___ICodeDupContext___init(fra.me.REG[0]);
-  /* ./icode//icode_tools.nit:102 */
+  /* icode/icode_tools.nit:102 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[5] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[1])(fra.me.REG[1]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[5])(fra.me.REG[5]);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./icode//icode_tools.nit:102 */
+    /* icode/icode_tools.nit:102 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_icode___icode_tools, 102);
   }
-  /* ./icode//icode_tools.nit:103 */
+  /* icode/icode_tools.nit:103 */
   fra.me.REG[5] = CALL_icode___icode_base___IRoutine___closure_decls(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./icode//icode_tools.nit:104 */
+  /* icode/icode_tools.nit:104 */
   REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -468,7 +468,7 @@ val_t icode___icode_tools___ICodeBuilder___inline_routine(val_t p0, val_t p1, va
     REGB1 = TAG_Int(0);
     REGB2 = REGB1;
   }
-  /* ./icode//icode_tools.nit:105 */
+  /* icode/icode_tools.nit:105 */
   REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -497,23 +497,23 @@ val_t icode___icode_tools___ICodeBuilder___inline_routine(val_t p0, val_t p1, va
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:231 */
+  /* ../lib/standard/kernel.nit:231 */
   REGB0 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB1));
-  /* ./icode//icode_tools.nit:106 */
+  /* icode/icode_tools.nit:106 */
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_icode___icode_tools, 106);
   }
-  /* ./icode//icode_tools.nit:109 */
+  /* icode/icode_tools.nit:109 */
   REGB0 = TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____registers(fra.me.REG[4])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_registers", LOCATE_icode___icode_tools, 109);
   }
   fra.me.REG[6] = ATTR_icode___icode_tools___ICodeDupContext____registers(fra.me.REG[4]);
-  /* ./icode//icode_tools.nit:110 */
+  /* icode/icode_tools.nit:110 */
   fra.me.REG[7] = CALL_icode___icode_base___IRoutine___result(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./icode//icode_tools.nit:111 */
+  /* icode/icode_tools.nit:111 */
   REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -528,58 +528,58 @@ val_t icode___icode_tools___ICodeBuilder___inline_routine(val_t p0, val_t p1, va
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./icode//icode_tools.nit:112 */
+    /* icode/icode_tools.nit:112 */
     REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_icode___icode_tools, 112);
     }
     fra.me.REG[8] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[7])(fra.me.REG[7]);
     fra.me.REG[8] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8]);
-    /* ./icode//icode_tools.nit:113 */
+    /* icode/icode_tools.nit:113 */
     CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7], fra.me.REG[8]);
-    /* ./icode//icode_tools.nit:114 */
+    /* icode/icode_tools.nit:114 */
     fra.me.REG[7] = fra.me.REG[8];
   }
-  /* ./icode//icode_tools.nit:116 */
+  /* icode/icode_tools.nit:116 */
   fra.me.REG[8] = CALL_icode___icode_base___IRoutine___registers(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[8])(fra.me.REG[8], (&(fra.me)), ((fun_t)OC_icode___icode_tools___ICodeBuilder___inline_routine_1));
-  /* ./icode//icode_tools.nit:120 */
+  /* icode/icode_tools.nit:120 */
   REGB0 = TAG_Int(0);
   REGB3 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB4)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB4 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB4)) {
-      /* ./icode//icode_tools.nit:120 */
+      /* icode/icode_tools.nit:120 */
       REGB4 = REGB0;
-      /* ./icode//icode_tools.nit:123 */
+      /* icode/icode_tools.nit:123 */
       fra.me.REG[8] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[8] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[8])(fra.me.REG[8], REGB4);
       fra.me.REG[9] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[2])(fra.me.REG[2], REGB4);
       CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8], fra.me.REG[9]);
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB4 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB4 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB4));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB4;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./icode//icode_tools.nit:128 */
+  /* icode/icode_tools.nit:128 */
   fra.me.REG[6] = CALL_icode___icode_base___IRoutine___escape_marks(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[6])(fra.me.REG[6], (&(fra.me)), ((fun_t)OC_icode___icode_tools___ICodeBuilder___inline_routine_3));
-  /* ./icode//icode_tools.nit:135 */
+  /* icode/icode_tools.nit:135 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -594,31 +594,31 @@ val_t icode___icode_tools___ICodeBuilder___inline_routine(val_t p0, val_t p1, va
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./icode//icode_tools.nit:136 */
+    /* icode/icode_tools.nit:136 */
     REGB0 = TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____closures(fra.me.REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_closures", LOCATE_icode___icode_tools, 136);
     }
     fra.me.REG[0] = ATTR_icode___icode_tools___ICodeDupContext____closures(fra.me.REG[4]);
-    /* ./icode//icode_tools.nit:137 */
+    /* icode/icode_tools.nit:137 */
     REGB0 = TAG_Int(0);
-    /* ./../lib/standard//kernel.nit:347 */
+    /* ../lib/standard/kernel.nit:347 */
     REGB3 = REGB2;
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     while(1) {
       REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB4)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB4 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       if (UNTAG_Bool(REGB4)) {
-        /* ./icode//icode_tools.nit:137 */
+        /* icode/icode_tools.nit:137 */
         REGB4 = REGB0;
-        /* ./icode//icode_tools.nit:138 */
+        /* icode/icode_tools.nit:138 */
         REGB5 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
         if (UNTAG_Bool(REGB5)) {
           nit_abort("Reciever is null", NULL, LOCATE_icode___icode_tools, 138);
@@ -630,55 +630,55 @@ val_t icode___icode_tools___ICodeBuilder___inline_routine(val_t p0, val_t p1, va
         }
         fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB4);
         CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[2]);
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB4 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB4 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB4));
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB0 = REGB4;
       } else {
-        /* ./../lib/standard//kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:352 */
         goto label4;
       }
     }
     label4: while(0);
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     while(1) {
       REGB0 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       if (UNTAG_Bool(REGB0)) {
-        /* ./icode//icode_tools.nit:140 */
+        /* icode/icode_tools.nit:140 */
         REGB0 = REGB2;
-        /* ./icode//icode_tools.nit:141 */
+        /* icode/icode_tools.nit:141 */
         REGB3 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
           nit_abort("Reciever is null", NULL, LOCATE_icode___icode_tools, 141);
         }
         fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[5])(fra.me.REG[5], REGB0);
         CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], NIT_NULL);
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB0 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB2 = REGB0;
       } else {
-        /* ./../lib/standard//kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:352 */
         goto label5;
       }
     }
     label5: while(0);
   }
-  /* ./icode//icode_tools.nit:146 */
+  /* icode/icode_tools.nit:146 */
   fra.me.REG[1] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[1])(fra.me.REG[1]);
   CALL_icode___icode_tools___ICode___dup_with(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./icode//icode_tools.nit:147 */
+  /* icode/icode_tools.nit:147 */
   goto label6;
   label6: while(0);
   stack_frame_head = fra.me.prev;
@@ -702,14 +702,14 @@ val_t icode___icode_tools___ICodeBuilder___inline_routine(val_t p0, val_t p1, va
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./icode//icode_tools.nit:117 */
+    /* icode/icode_tools.nit:117 */
     REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(closctx->REG[6])(closctx->REG[6], fra.me.REG[0]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Assert failed", NULL, LOCATE_icode___icode_tools, 117);
     }
-    /* ./icode//icode_tools.nit:118 */
+    /* icode/icode_tools.nit:118 */
     fra.me.REG[1] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___new_register(closctx->REG[0])(closctx->REG[0], fra.me.REG[1]);
     CALL_standard___collection___abstract_collection___Map_____braeq(closctx->REG[6])(closctx->REG[6], fra.me.REG[0], fra.me.REG[1]);
@@ -735,13 +735,13 @@ val_t icode___icode_tools___ICodeBuilder___inline_routine(val_t p0, val_t p1, va
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./icode//icode_tools.nit:129 */
+    /* icode/icode_tools.nit:129 */
     fra.me.REG[1] = NEW_IEscapeMark_icode___icode_base___IEscapeMark___init();
-    /* ./icode//icode_tools.nit:130 */
+    /* icode/icode_tools.nit:130 */
     fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(closctx->REG[0])(closctx->REG[0]);
     fra.me.REG[2] = CALL_icode___icode_base___IRoutine___escape_marks(fra.me.REG[2])(fra.me.REG[2]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-    /* ./icode//icode_tools.nit:131 */
+    /* icode/icode_tools.nit:131 */
     REGB0 = TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____marks(closctx->REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -767,21 +767,21 @@ val_t icode___icode_tools___ICodeDupContext___dup_ireg(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:158 */
+  /* icode/icode_tools.nit:158 */
   REGB0 = TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____registers(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_registers", LOCATE_icode___icode_tools, 158);
   }
   fra.me.REG[0] = ATTR_icode___icode_tools___ICodeDupContext____registers(fra.me.REG[0]);
-  /* ./icode//icode_tools.nit:159 */
+  /* icode/icode_tools.nit:159 */
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./icode//icode_tools.nit:160 */
+    /* icode/icode_tools.nit:160 */
     fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
     goto label1;
   } else {
-    /* ./icode//icode_tools.nit:162 */
+    /* icode/icode_tools.nit:162 */
     fra.me.REG[0] = fra.me.REG[1];
     goto label1;
   }
@@ -805,11 +805,11 @@ val_t icode___icode_tools___ICodeDupContext___dup_iregs(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:169 */
+  /* icode/icode_tools.nit:169 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_icode___icode_tools___ICodeDupContext___dup_iregs_1));
-  /* ./icode//icode_tools.nit:173 */
+  /* icode/icode_tools.nit:173 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -819,7 +819,7 @@ val_t icode___icode_tools___ICodeDupContext___dup_iregs(val_t p0, val_t p1){
     struct {struct stack_frame_t me;} fra;
     fun_t CREG[1];
     val_t tmp;
-    /* ./icode//icode_tools.nit:170 */
+    /* icode/icode_tools.nit:170 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_icode___icode_tools;
     fra.me.line = 0;
@@ -832,7 +832,7 @@ val_t icode___icode_tools___ICodeDupContext___dup_iregs(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./icode//icode_tools.nit:171 */
+    /* icode/icode_tools.nit:171 */
     fra.me.REG[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
@@ -853,21 +853,21 @@ val_t icode___icode_tools___ICodeDupContext___dup_mark(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:185 */
+  /* icode/icode_tools.nit:185 */
   REGB0 = TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____marks(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_marks", LOCATE_icode___icode_tools, 185);
   }
   fra.me.REG[0] = ATTR_icode___icode_tools___ICodeDupContext____marks(fra.me.REG[0]);
-  /* ./icode//icode_tools.nit:186 */
+  /* icode/icode_tools.nit:186 */
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./icode//icode_tools.nit:187 */
+    /* icode/icode_tools.nit:187 */
     fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
     goto label1;
   } else {
-    /* ./icode//icode_tools.nit:189 */
+    /* icode/icode_tools.nit:189 */
     fra.me.REG[0] = fra.me.REG[1];
     goto label1;
   }
@@ -891,7 +891,7 @@ void icode___icode_tools___ICodeDupContext___init(val_t p0, val_t p1, int* init_
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:205 */
+  /* icode/icode_tools.nit:205 */
   ATTR_icode___icode_tools___ICodeDupContext____icb(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
@@ -916,20 +916,20 @@ void icode___icode_tools___ICode___dup_with(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:213 */
+  /* icode/icode_tools.nit:213 */
   fra.me.REG[2] = CALL_icode___icode_tools___ICode___inner_dup_with(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./icode//icode_tools.nit:214 */
+  /* icode/icode_tools.nit:214 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_icode___icode_base___ICodeN, ID_icode___icode_base___ICodeN)) /*cast ICodeN*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./icode//icode_tools.nit:215 */
+    /* icode/icode_tools.nit:215 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_icode___icode_base___ICodeN, ID_icode___icode_base___ICodeN)) /*cast ICodeN*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Assert failed", NULL, LOCATE_icode___icode_tools, 215);
     }
-    /* ./icode//icode_tools.nit:216 */
+    /* icode/icode_tools.nit:216 */
     fra.me.REG[3] = CALL_icode___icode_base___ICodeN___closure_defs(fra.me.REG[0])(fra.me.REG[0]);
-    /* ./icode//icode_tools.nit:217 */
+    /* icode/icode_tools.nit:217 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -944,26 +944,26 @@ void icode___icode_tools___ICode___dup_with(val_t p0, val_t p1){
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./icode//icode_tools.nit:219 */
+      /* icode/icode_tools.nit:219 */
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_icode___icode_tools, 219);
       }
       REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-      /* ./icode//icode_tools.nit:220 */
+      /* icode/icode_tools.nit:220 */
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_icode___icode_tools, 220);
       }
       CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_icode___icode_tools___ICode___dup_with_1));
-      /* ./icode//icode_tools.nit:231 */
+      /* icode/icode_tools.nit:231 */
       CALL_icode___icode_base___ICodeN___closure_defs__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
     }
   }
-  /* ./icode//icode_tools.nit:234 */
+  /* icode/icode_tools.nit:234 */
   fra.me.REG[4] = CALL_icode___icode_base___ICode___result(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./icode//icode_tools.nit:235 */
+  /* icode/icode_tools.nit:235 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -981,10 +981,10 @@ void icode___icode_tools___ICode___dup_with(val_t p0, val_t p1){
     fra.me.REG[4] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
     CALL_icode___icode_base___ICode___result__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   }
-  /* ./icode//icode_tools.nit:236 */
+  /* icode/icode_tools.nit:236 */
   fra.me.REG[0] = CALL_icode___icode_base___ICode___location(fra.me.REG[0])(fra.me.REG[0]);
   CALL_icode___icode_base___ICode___location__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* ./icode//icode_tools.nit:237 */
+  /* icode/icode_tools.nit:237 */
   REGB0 = TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1017,7 +1017,7 @@ void icode___icode_tools___ICode___dup_with(val_t p0, val_t p1){
         fra.me.closure_funs = CREG;
         fra.me.REG[0] = p0;
         CREG[0] = clos_fun0;
-        /* ./icode//icode_tools.nit:221 */
+        /* icode/icode_tools.nit:221 */
         REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
         } else {
@@ -1031,16 +1031,16 @@ void icode___icode_tools___ICode___dup_with(val_t p0, val_t p1){
           }
         }
         if (UNTAG_Bool(REGB0)) {
-          /* ./icode//icode_tools.nit:222 */
+          /* icode/icode_tools.nit:222 */
           CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[4])(closctx->REG[4], NIT_NULL);
         } else {
-          /* ./icode//icode_tools.nit:224 */
+          /* icode/icode_tools.nit:224 */
           REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
           if (UNTAG_Bool(REGB0)) {
             nit_abort("Reciever is null", NULL, LOCATE_icode___icode_tools, 224);
           }
           fra.me.REG[1] = CALL_icode___icode_base___IRoutine___result(fra.me.REG[0])(fra.me.REG[0]);
-          /* ./icode//icode_tools.nit:225 */
+          /* icode/icode_tools.nit:225 */
           REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
           if (UNTAG_Bool(REGB0)) {
           } else {
@@ -1058,7 +1058,7 @@ void icode___icode_tools___ICode___dup_with(val_t p0, val_t p1){
             fra.me.REG[2] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(closctx->REG[1])(closctx->REG[1], fra.me.REG[1]);
             fra.me.REG[1] = fra.me.REG[2];
           }
-          /* ./icode//icode_tools.nit:226 */
+          /* icode/icode_tools.nit:226 */
           REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
           if (UNTAG_Bool(REGB0)) {
             nit_abort("Reciever is null", NULL, LOCATE_icode___icode_tools, 226);
@@ -1066,9 +1066,9 @@ void icode___icode_tools___ICode___dup_with(val_t p0, val_t p1){
           fra.me.REG[2] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]);
           fra.me.REG[2] = CALL_icode___icode_tools___ICodeDupContext___dup_iregs(closctx->REG[1])(closctx->REG[1], fra.me.REG[2]);
           fra.me.REG[1] = NEW_IClosureDef_icode___icode_base___IClosureDef___init(fra.me.REG[2], fra.me.REG[1]);
-          /* ./icode//icode_tools.nit:227 */
+          /* icode/icode_tools.nit:227 */
           CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[4])(closctx->REG[4], fra.me.REG[1]);
-          /* ./icode//icode_tools.nit:228 */
+          /* icode/icode_tools.nit:228 */
           REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
           if (UNTAG_Bool(REGB0)) {
             nit_abort("Reciever is null", NULL, LOCATE_icode___icode_tools, 228);
@@ -1090,7 +1090,7 @@ val_t icode___icode_tools___ICode___inner_dup_with(val_t p0, val_t p1){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./icode//icode_tools.nit:240 */
+  /* icode/icode_tools.nit:240 */
   nit_abort("Deferred method called", NULL, LOCATE_icode___icode_tools, 240);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1110,11 +1110,11 @@ val_t icode___icode_tools___ISeq___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:247 */
+  /* icode/icode_tools.nit:247 */
   fra.me.REG[2] = NEW_ISeq_icode___icode_base___ISeq___init();
-  /* ./icode//icode_tools.nit:248 */
+  /* icode/icode_tools.nit:248 */
   CALL_icode___icode_tools___ISeq___dup_seq_to(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
-  /* ./icode//icode_tools.nit:249 */
+  /* icode/icode_tools.nit:249 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -1140,7 +1140,7 @@ void icode___icode_tools___ISeq___dup_seq_to(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_tools.nit:256 */
+  /* icode/icode_tools.nit:256 */
   REGB0 = TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1148,7 +1148,7 @@ void icode___icode_tools___ISeq___dup_seq_to(val_t p0, val_t p1, val_t p2){
   }
   fra.me.REG[3] = ATTR_icode___icode_tools___ICodeDupContext____icb(fra.me.REG[1]);
   fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./icode//icode_tools.nit:257 */
+  /* icode/icode_tools.nit:257 */
   REGB0 = TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1156,10 +1156,10 @@ void icode___icode_tools___ISeq___dup_seq_to(val_t p0, val_t p1, val_t p2){
   }
   fra.me.REG[4] = ATTR_icode___icode_tools___ICodeDupContext____icb(fra.me.REG[1]);
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-  /* ./icode//icode_tools.nit:258 */
+  /* icode/icode_tools.nit:258 */
   fra.me.REG[4] = CALL_icode___icode_base___ISeq___icodes(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_icode___icode_tools___ISeq___dup_seq_to_1));
-  /* ./icode//icode_tools.nit:261 */
+  /* icode/icode_tools.nit:261 */
   REGB0 = TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1167,7 +1167,7 @@ void icode___icode_tools___ISeq___dup_seq_to(val_t p0, val_t p1, val_t p2){
   }
   fra.me.REG[4] = ATTR_icode___icode_tools___ICodeDupContext____icb(fra.me.REG[1]);
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-  /* ./icode//icode_tools.nit:262 */
+  /* icode/icode_tools.nit:262 */
   fra.me.REG[3] = CALL_icode___icode_base___ISeq___iescape_mark(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1185,9 +1185,9 @@ void icode___icode_tools___ISeq___dup_seq_to(val_t p0, val_t p1, val_t p2){
   } else {
     nit_abort("Assert failed", NULL, LOCATE_icode___icode_tools, 262);
   }
-  /* ./icode//icode_tools.nit:263 */
+  /* icode/icode_tools.nit:263 */
   fra.me.REG[0] = CALL_icode___icode_base___ISeq___iescape_mark(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./icode//icode_tools.nit:264 */
+  /* icode/icode_tools.nit:264 */
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1202,7 +1202,7 @@ void icode___icode_tools___ISeq___dup_seq_to(val_t p0, val_t p1, val_t p2){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./icode//icode_tools.nit:265 */
+    /* icode/icode_tools.nit:265 */
     fra.me.REG[0] = CALL_icode___icode_tools___ICodeDupContext___dup_mark(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
     CALL_icode___icode_base___ISeq___iescape_mark__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
   }
@@ -1225,7 +1225,7 @@ void icode___icode_tools___ISeq___dup_seq_to(val_t p0, val_t p1, val_t p2){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./icode//icode_tools.nit:259 */
+    /* icode/icode_tools.nit:259 */
     CALL_icode___icode_tools___ICode___dup_with(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
     stack_frame_head = fra.me.prev;
     return;
@@ -1245,11 +1245,11 @@ val_t icode___icode_tools___ILoop___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:273 */
+  /* icode/icode_tools.nit:273 */
   fra.me.REG[2] = NEW_ILoop_icode___icode_base___ILoop___init();
-  /* ./icode//icode_tools.nit:274 */
+  /* icode/icode_tools.nit:274 */
   CALL_icode___icode_tools___ISeq___dup_seq_to(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
-  /* ./icode//icode_tools.nit:275 */
+  /* icode/icode_tools.nit:275 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -1272,19 +1272,19 @@ val_t icode___icode_tools___IIf___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:282 */
+  /* icode/icode_tools.nit:282 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   fra.me.REG[2] = NEW_IIf_icode___icode_base___IIf___init(fra.me.REG[2]);
-  /* ./icode//icode_tools.nit:283 */
+  /* icode/icode_tools.nit:283 */
   fra.me.REG[3] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[2])(fra.me.REG[2]);
   CALL_icode___icode_tools___ISeq___dup_seq_to(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[4]);
-  /* ./icode//icode_tools.nit:284 */
+  /* icode/icode_tools.nit:284 */
   fra.me.REG[0] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[2])(fra.me.REG[2]);
   CALL_icode___icode_tools___ISeq___dup_seq_to(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[4]);
-  /* ./icode//icode_tools.nit:285 */
+  /* icode/icode_tools.nit:285 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -1304,10 +1304,10 @@ val_t icode___icode_tools___IEscape___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:293 */
+  /* icode/icode_tools.nit:293 */
   fra.me.REG[0] = CALL_icode___icode_base___IEscape___iescape_mark(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_tools___ICodeDupContext___dup_mark(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./icode//icode_tools.nit:295 */
+  /* icode/icode_tools.nit:295 */
   fra.me.REG[0] = NEW_IEscape_icode___icode_base___IEscape___init(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -1328,7 +1328,7 @@ val_t icode___icode_tools___IAbort___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:302 */
+  /* icode/icode_tools.nit:302 */
   fra.me.REG[1] = CALL_icode___icode_base___IAbort___texts(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_base___IAbort___module_location(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = NEW_IAbort_icode___icode_base___IAbort___init(fra.me.REG[1], fra.me.REG[0]);
@@ -1352,7 +1352,7 @@ val_t icode___icode_tools___ICall___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:309 */
+  /* icode/icode_tools.nit:309 */
   fra.me.REG[2] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_tools___ICodeDupContext___dup_iregs(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -1377,7 +1377,7 @@ val_t icode___icode_tools___ISuper___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:316 */
+  /* icode/icode_tools.nit:316 */
   fra.me.REG[2] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_tools___ICodeDupContext___dup_iregs(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -1403,7 +1403,7 @@ val_t icode___icode_tools___INew___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:323 */
+  /* icode/icode_tools.nit:323 */
   fra.me.REG[2] = CALL_icode___icode_base___INew___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
@@ -1428,7 +1428,7 @@ val_t icode___icode_tools___IAllocateInstance___inner_dup_with(val_t p0, val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:330 */
+  /* icode/icode_tools.nit:330 */
   fra.me.REG[0] = CALL_icode___icode_base___IAllocateInstance___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = NEW_IAllocateInstance_icode___icode_base___IAllocateInstance___init(fra.me.REG[0]);
   goto label1;
@@ -1451,7 +1451,7 @@ val_t icode___icode_tools___IStaticCall___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:337 */
+  /* icode/icode_tools.nit:337 */
   fra.me.REG[2] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_tools___ICodeDupContext___dup_iregs(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -1476,7 +1476,7 @@ val_t icode___icode_tools___ICheckInstance___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:344 */
+  /* icode/icode_tools.nit:344 */
   fra.me.REG[2] = CALL_icode___icode_base___ICheckInstance___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -1501,7 +1501,7 @@ val_t icode___icode_tools___IInitAttributes___inner_dup_with(val_t p0, val_t p1)
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:351 */
+  /* icode/icode_tools.nit:351 */
   fra.me.REG[2] = CALL_icode___icode_base___IInitAttributes___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -1532,10 +1532,10 @@ void icode___icode_tools___IClosCall___dup_with(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:356 */
+  /* icode/icode_tools.nit:356 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./icode//icode_tools.nit:358 */
+  /* icode/icode_tools.nit:358 */
   REGB0 = TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____closures(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1545,7 +1545,7 @@ void icode___icode_tools___IClosCall___dup_with(val_t p0, val_t p1){
   fra.me.REG[5] = CALL_icode___icode_base___IClosCall___closure_decl(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./icode//icode_tools.nit:360 */
+    /* icode/icode_tools.nit:360 */
     REGB0 = TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____closures(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1554,7 +1554,7 @@ void icode___icode_tools___IClosCall___dup_with(val_t p0, val_t p1){
     fra.me.REG[5] = ATTR_icode___icode_tools___ICodeDupContext____closures(fra.me.REG[3]);
     fra.me.REG[4] = CALL_icode___icode_base___IClosCall___closure_decl(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-    /* ./icode//icode_tools.nit:361 */
+    /* icode/icode_tools.nit:361 */
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1568,10 +1568,10 @@ void icode___icode_tools___IClosCall___dup_with(val_t p0, val_t p1){
       }
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./icode//icode_tools.nit:363 */
+      /* icode/icode_tools.nit:363 */
       goto label1;
     }
-    /* ./icode//icode_tools.nit:366 */
+    /* icode/icode_tools.nit:366 */
     fra.me.REG[5] = CALL_icode___icode_base___IClosCall___break_seq(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -1589,7 +1589,7 @@ void icode___icode_tools___IClosCall___dup_with(val_t p0, val_t p1){
     } else {
       nit_abort("Assert failed", NULL, LOCATE_icode___icode_tools, 366);
     }
-    /* ./icode//icode_tools.nit:368 */
+    /* icode/icode_tools.nit:368 */
     REGB0 = TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1599,7 +1599,7 @@ void icode___icode_tools___IClosCall___dup_with(val_t p0, val_t p1){
     fra.me.REG[6] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[6] = CALL_icode___icode_tools___ICodeDupContext___dup_iregs(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
     fra.me.REG[6] = CALL_icode___icode_tools___ICodeBuilder___inline_routine(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6], NIT_NULL);
-    /* ./icode//icode_tools.nit:369 */
+    /* icode/icode_tools.nit:369 */
     fra.me.REG[4] = CALL_icode___icode_base___ICode___result(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -1615,7 +1615,7 @@ void icode___icode_tools___IClosCall___dup_with(val_t p0, val_t p1){
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./icode//icode_tools.nit:370 */
+      /* icode/icode_tools.nit:370 */
       REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -1633,7 +1633,7 @@ void icode___icode_tools___IClosCall___dup_with(val_t p0, val_t p1){
       } else {
         nit_abort("Assert failed", NULL, LOCATE_icode___icode_tools, 370);
       }
-      /* ./icode//icode_tools.nit:371 */
+      /* icode/icode_tools.nit:371 */
       REGB0 = TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra.me.REG[3])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -1651,7 +1651,7 @@ void icode___icode_tools___IClosCall___dup_with(val_t p0, val_t p1){
       CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
     }
   } else {
-    /* ./icode//icode_tools.nit:375 */
+    /* icode/icode_tools.nit:375 */
     CALL_SUPER_icode___icode_tools___IClosCall___dup_with(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   }
   label1: while(0);
@@ -1672,7 +1672,7 @@ val_t icode___icode_tools___IClosCall___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:381 */
+  /* icode/icode_tools.nit:381 */
   fra.me.REG[1] = CALL_icode___icode_base___IClosCall___closure_decl(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = NEW_IClosCall_icode___icode_base___IClosCall___init(fra.me.REG[1], fra.me.REG[0]);
@@ -1698,15 +1698,15 @@ val_t icode___icode_tools___INative___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:388 */
+  /* icode/icode_tools.nit:388 */
   fra.me.REG[2] = CALL_icode___icode_base___INative___method(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_icode___icode_tools___ICodeDupContext___dup_iregs(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   fra.me.REG[3] = NEW_INative_icode___icode_base___INative___init(fra.me.REG[2], fra.me.REG[3]);
-  /* ./icode//icode_tools.nit:389 */
+  /* icode/icode_tools.nit:389 */
   REGB0 = CALL_icode___icode_base___ICode___is_pure(fra.me.REG[0])(fra.me.REG[0]);
   CALL_icode___icode_base___INative___is_pure__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
-  /* ./icode//icode_tools.nit:390 */
+  /* icode/icode_tools.nit:390 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -1726,7 +1726,7 @@ val_t icode___icode_tools___IIntValue___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:397 */
+  /* icode/icode_tools.nit:397 */
   fra.me.REG[0] = CALL_icode___icode_base___IIntValue___value(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra.me.REG[0]);
   goto label1;
@@ -1749,7 +1749,7 @@ val_t icode___icode_tools___IBoolValue___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:404 */
+  /* icode/icode_tools.nit:404 */
   REGB0 = CALL_icode___icode_base___IBoolValue___value(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = NEW_IBoolValue_icode___icode_base___IBoolValue___init(REGB0);
   goto label1;
@@ -1771,7 +1771,7 @@ val_t icode___icode_tools___IStringValue___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:411 */
+  /* icode/icode_tools.nit:411 */
   fra.me.REG[0] = CALL_icode___icode_base___IStringValue___value(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = NEW_IStringValue_icode___icode_base___IStringValue___init(fra.me.REG[0]);
   goto label1;
@@ -1793,7 +1793,7 @@ val_t icode___icode_tools___IFloatValue___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:418 */
+  /* icode/icode_tools.nit:418 */
   fra.me.REG[0] = CALL_icode___icode_base___IFloatValue___value(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = NEW_IFloatValue_icode___icode_base___IFloatValue___init(fra.me.REG[0]);
   goto label1;
@@ -1815,7 +1815,7 @@ val_t icode___icode_tools___ICharValue___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:425 */
+  /* icode/icode_tools.nit:425 */
   fra.me.REG[0] = CALL_icode___icode_base___ICharValue___value(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = NEW_ICharValue_icode___icode_base___ICharValue___init(fra.me.REG[0]);
   goto label1;
@@ -1840,9 +1840,9 @@ val_t icode___icode_tools___IMove___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:430 */
+  /* icode/icode_tools.nit:430 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./icode//icode_tools.nit:432 */
+  /* icode/icode_tools.nit:432 */
   fra.me.REG[3] = CALL_icode___icode_base___ICode___result(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___IRegister, ID_icode___icode_base___IRegister)) /*cast IRegister*/;
   if (UNTAG_Bool(REGB0)) {
@@ -1873,7 +1873,7 @@ val_t icode___icode_tools___IAttrRead___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:439 */
+  /* icode/icode_tools.nit:439 */
   fra.me.REG[2] = CALL_icode___icode_base___IAttrRead___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -1899,7 +1899,7 @@ val_t icode___icode_tools___IAttrWrite___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:446 */
+  /* icode/icode_tools.nit:446 */
   fra.me.REG[2] = CALL_icode___icode_base___IAttrWrite___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
@@ -1926,7 +1926,7 @@ val_t icode___icode_tools___IAttrIsset___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:453 */
+  /* icode/icode_tools.nit:453 */
   fra.me.REG[2] = CALL_icode___icode_base___IAttrIsset___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -1952,7 +1952,7 @@ val_t icode___icode_tools___ITypeCheck___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:460 */
+  /* icode/icode_tools.nit:460 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   fra.me.REG[3] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
@@ -1979,7 +1979,7 @@ val_t icode___icode_tools___IIs___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:467 */
+  /* icode/icode_tools.nit:467 */
   fra.me.REG[2] = CALL_icode___icode_base___ICode2___expr1(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   fra.me.REG[0] = CALL_icode___icode_base___ICode2___expr2(fra.me.REG[0])(fra.me.REG[0]);
@@ -2004,7 +2004,7 @@ val_t icode___icode_tools___INot___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:474 */
+  /* icode/icode_tools.nit:474 */
   fra.me.REG[0] = CALL_icode___icode_base___ICode1___expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   fra.me.REG[0] = NEW_INot_icode___icode_base___INot___init(fra.me.REG[0]);
@@ -2029,13 +2029,13 @@ val_t icode___icode_tools___IOnce___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:481 */
+  /* icode/icode_tools.nit:481 */
   fra.me.REG[2] = NEW_IOnce_icode___icode_base___IOnce___init();
-  /* ./icode//icode_tools.nit:482 */
+  /* icode/icode_tools.nit:482 */
   fra.me.REG[0] = CALL_icode___icode_base___IOnce___body(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_icode___icode_base___IOnce___body(fra.me.REG[2])(fra.me.REG[2]);
   CALL_icode___icode_tools___ISeq___dup_seq_to(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
-  /* ./icode//icode_tools.nit:483 */
+  /* icode/icode_tools.nit:483 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -2060,9 +2060,9 @@ val_t icode___icode_tools___IHasClos___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_tools.nit:488 */
+  /* icode/icode_tools.nit:488 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./icode//icode_tools.nit:490 */
+  /* icode/icode_tools.nit:490 */
   REGB0 = TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____closures(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2072,7 +2072,7 @@ val_t icode___icode_tools___IHasClos___inner_dup_with(val_t p0, val_t p1){
   fra.me.REG[4] = CALL_icode___icode_base___IHasClos___closure_decl(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./icode//icode_tools.nit:492 */
+    /* icode/icode_tools.nit:492 */
     REGB0 = TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____closures(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -2081,7 +2081,7 @@ val_t icode___icode_tools___IHasClos___inner_dup_with(val_t p0, val_t p1){
     fra.me.REG[4] = ATTR_icode___icode_tools___ICodeDupContext____closures(fra.me.REG[1]);
     fra.me.REG[3] = CALL_icode___icode_base___IHasClos___closure_decl(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-    /* ./icode//icode_tools.nit:494 */
+    /* icode/icode_tools.nit:494 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -2096,7 +2096,7 @@ val_t icode___icode_tools___IHasClos___inner_dup_with(val_t p0, val_t p1){
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./icode//icode_tools.nit:495 */
+      /* icode/icode_tools.nit:495 */
       REGB0 = TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra.me.REG[1])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -2105,7 +2105,7 @@ val_t icode___icode_tools___IHasClos___inner_dup_with(val_t p0, val_t p1){
       fra.me.REG[3] = ATTR_icode___icode_tools___ICodeDupContext____icb(fra.me.REG[1]);
       fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___lit_true_reg(fra.me.REG[3])(fra.me.REG[3]);
     } else {
-      /* ./icode//icode_tools.nit:497 */
+      /* icode/icode_tools.nit:497 */
       REGB0 = TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra.me.REG[1])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -2115,7 +2115,7 @@ val_t icode___icode_tools___IHasClos___inner_dup_with(val_t p0, val_t p1){
       fra.me.REG[4] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra.me.REG[4])(fra.me.REG[4]);
       fra.me.REG[3] = fra.me.REG[4];
     }
-    /* ./icode//icode_tools.nit:499 */
+    /* icode/icode_tools.nit:499 */
     fra.me.REG[4] = CALL_icode___icode_base___ICode___result(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_icode___icode_base___IRegister, ID_icode___icode_base___IRegister)) /*cast IRegister*/;
     if (UNTAG_Bool(REGB0)) {
@@ -2126,7 +2126,7 @@ val_t icode___icode_tools___IHasClos___inner_dup_with(val_t p0, val_t p1){
     fra.me.REG[3] = NEW_IMove_icode___icode_base___IMove___init(fra.me.REG[4], fra.me.REG[3]);
     goto label1;
   } else {
-    /* ./icode//icode_tools.nit:501 */
+    /* icode/icode_tools.nit:501 */
     fra.me.REG[2] = CALL_icode___icode_base___IHasClos___closure_decl(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[2] = NEW_IHasClos_icode___icode_base___IHasClos___init(fra.me.REG[2]);
     fra.me.REG[3] = fra.me.REG[2];
index 1657125..b783701 100644 (file)
@@ -13,7 +13,7 @@ val_t location___SourceFile___filename(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./location.nit:22 */
+  /* location.nit:22 */
   REGB0 = TAG_Bool(ATTR_location___SourceFile_____atfilename(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -37,7 +37,7 @@ void location___SourceFile___filename__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./location.nit:22 */
+  /* location.nit:22 */
   ATTR_location___SourceFile_____atfilename(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -55,7 +55,7 @@ val_t location___SourceFile___string(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./location.nit:25 */
+  /* location.nit:25 */
   REGB0 = TAG_Bool(ATTR_location___SourceFile_____atstring(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -79,7 +79,7 @@ void location___SourceFile___string__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./location.nit:25 */
+  /* location.nit:25 */
   ATTR_location___SourceFile_____atstring(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -104,12 +104,12 @@ void location___SourceFile___init(val_t p0, val_t p1, val_t p2, int* init_table)
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./location.nit:31 */
+  /* location.nit:31 */
   CALL_location___SourceFile___filename__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./location.nit:32 */
+  /* location.nit:32 */
   fra.me.REG[2] = CALL_standard___stream___IStream___read_all(fra.me.REG[2])(fra.me.REG[2]);
   CALL_location___SourceFile___string__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./location.nit:33 */
+  /* location.nit:33 */
   fra.me.REG[0] = CALL_location___SourceFile___line_starts(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Int(0);
@@ -131,7 +131,7 @@ val_t location___SourceFile___line_starts(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./location.nit:36 */
+  /* location.nit:36 */
   REGB0 = TAG_Bool(ATTR_location___SourceFile_____atline_starts(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -155,7 +155,7 @@ void location___SourceFile___line_starts__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./location.nit:36 */
+  /* location.nit:36 */
   ATTR_location___SourceFile_____atline_starts(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -172,7 +172,7 @@ val_t location___Location___file(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./location.nit:45 */
+  /* location.nit:45 */
   fra.me.REG[0] = ATTR_location___Location____file(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -190,7 +190,7 @@ val_t location___Location___line_start(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./location.nit:46 */
+  /* location.nit:46 */
   REGB0 = TAG_Bool(ATTR_location___Location____line_start(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -213,7 +213,7 @@ val_t location___Location___line_end(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./location.nit:47 */
+  /* location.nit:47 */
   REGB0 = TAG_Bool(ATTR_location___Location____line_end(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -236,7 +236,7 @@ val_t location___Location___column_start(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./location.nit:48 */
+  /* location.nit:48 */
   REGB0 = TAG_Bool(ATTR_location___Location____column_start(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -259,7 +259,7 @@ val_t location___Location___column_end(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./location.nit:49 */
+  /* location.nit:49 */
   REGB0 = TAG_Bool(ATTR_location___Location____column_end(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -293,15 +293,15 @@ void location___Location___init(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4
   REGB1 = p3;
   REGB2 = p4;
   REGB3 = p5;
-  /* ./location.nit:52 */
+  /* location.nit:52 */
   ATTR_location___Location____file(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./location.nit:53 */
+  /* location.nit:53 */
   ATTR_location___Location____line_start(fra.me.REG[0]) = REGB0;
-  /* ./location.nit:54 */
+  /* location.nit:54 */
   ATTR_location___Location____line_end(fra.me.REG[0]) = REGB1;
-  /* ./location.nit:55 */
+  /* location.nit:55 */
   ATTR_location___Location____column_start(fra.me.REG[0]) = REGB2;
-  /* ./location.nit:56 */
+  /* location.nit:56 */
   ATTR_location___Location____column_end(fra.me.REG[0]) = REGB3;
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
@@ -327,7 +327,7 @@ void location___Location___with_file(val_t p0, val_t p1, int* init_table){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./location.nit:59 */
+  /* location.nit:59 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Int(0);
@@ -357,7 +357,7 @@ val_t location___Location_____eqeq(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./location.nit:62 */
+  /* location.nit:62 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -374,7 +374,7 @@ val_t location___Location_____eqeq(val_t p0, val_t p1){
     REGB0 = TAG_Bool(false);
     goto label1;
   }
-  /* ./location.nit:63 */
+  /* location.nit:63 */
   REGB1 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_location___Location, ID_location___Location)) /*cast Location*/;
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
   if (UNTAG_Bool(REGB1)) {
@@ -382,7 +382,7 @@ val_t location___Location_____eqeq(val_t p0, val_t p1){
     REGB0 = REGB1;
     goto label1;
   }
-  /* ./location.nit:65 */
+  /* location.nit:65 */
   REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_location, 65);
@@ -407,7 +407,7 @@ val_t location___Location_____eqeq(val_t p0, val_t p1){
     REGB0 = REGB1;
     goto label1;
   }
-  /* ./location.nit:66 */
+  /* location.nit:66 */
   REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_location, 66);
@@ -417,9 +417,9 @@ val_t location___Location_____eqeq(val_t p0, val_t p1){
   REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
   if (UNTAG_Bool(REGB3)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB2 = TAG_Bool((REGB1)==(REGB2));
-    /* ./location.nit:66 */
+    /* location.nit:66 */
     REGB3 = REGB2;
   }
   REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
@@ -428,7 +428,7 @@ val_t location___Location_____eqeq(val_t p0, val_t p1){
     REGB0 = REGB3;
     goto label1;
   }
-  /* ./location.nit:67 */
+  /* location.nit:67 */
   REGB3 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB3)) {
     nit_abort("Reciever is null", NULL, LOCATE_location, 67);
@@ -438,9 +438,9 @@ val_t location___Location_____eqeq(val_t p0, val_t p1){
   REGB1 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB2));
   if (UNTAG_Bool(REGB1)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB2 = TAG_Bool((REGB3)==(REGB2));
-    /* ./location.nit:67 */
+    /* location.nit:67 */
     REGB1 = REGB2;
   }
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
@@ -449,7 +449,7 @@ val_t location___Location_____eqeq(val_t p0, val_t p1){
     REGB0 = REGB1;
     goto label1;
   }
-  /* ./location.nit:68 */
+  /* location.nit:68 */
   REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_location, 68);
@@ -459,9 +459,9 @@ val_t location___Location_____eqeq(val_t p0, val_t p1){
   REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
   if (UNTAG_Bool(REGB3)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB2 = TAG_Bool((REGB1)==(REGB2));
-    /* ./location.nit:68 */
+    /* location.nit:68 */
     REGB3 = REGB2;
   }
   REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
@@ -470,7 +470,7 @@ val_t location___Location_____eqeq(val_t p0, val_t p1){
     REGB0 = REGB3;
     goto label1;
   }
-  /* ./location.nit:69 */
+  /* location.nit:69 */
   REGB3 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB3)) {
     nit_abort("Reciever is null", NULL, LOCATE_location, 69);
@@ -480,9 +480,9 @@ val_t location___Location_____eqeq(val_t p0, val_t p1){
   REGB1 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB2));
   if (UNTAG_Bool(REGB1)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB2 = TAG_Bool((REGB3)==(REGB2));
-    /* ./location.nit:69 */
+    /* location.nit:69 */
     REGB1 = REGB2;
   }
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
@@ -491,7 +491,7 @@ val_t location___Location_____eqeq(val_t p0, val_t p1){
     REGB0 = REGB1;
     goto label1;
   }
-  /* ./location.nit:71 */
+  /* location.nit:71 */
   REGB1 = TAG_Bool(true);
   REGB0 = REGB1;
   goto label1;
@@ -517,7 +517,7 @@ val_t location___Location___located_in(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./location.nit:75 */
+  /* location.nit:75 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -534,7 +534,7 @@ val_t location___Location___located_in(val_t p0, val_t p1){
     REGB0 = TAG_Bool(false);
     goto label1;
   }
-  /* ./location.nit:77 */
+  /* location.nit:77 */
   REGB1 = CALL_location___Location___line_start(fra.me.REG[0])(fra.me.REG[0]);
   REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
@@ -546,15 +546,15 @@ val_t location___Location___located_in(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-  /* ./location.nit:77 */
+  /* location.nit:77 */
   if (UNTAG_Bool(REGB2)) {
     REGB2 = TAG_Bool(false);
     REGB0 = REGB2;
     goto label1;
   }
-  /* ./location.nit:78 */
+  /* location.nit:78 */
   REGB2 = CALL_location___Location___line_start(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -566,15 +566,15 @@ val_t location___Location___located_in(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB2)>UNTAG_Int(REGB1));
-  /* ./location.nit:78 */
+  /* location.nit:78 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(false);
     REGB0 = REGB1;
     goto label1;
   }
-  /* ./location.nit:80 */
+  /* location.nit:80 */
   REGB1 = CALL_location___Location___line_end(fra.me.REG[0])(fra.me.REG[0]);
   REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
@@ -586,15 +586,15 @@ val_t location___Location___located_in(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
-  /* ./location.nit:80 */
+  /* location.nit:80 */
   if (UNTAG_Bool(REGB2)) {
     REGB2 = TAG_Bool(false);
     REGB0 = REGB2;
     goto label1;
   }
-  /* ./location.nit:82 */
+  /* location.nit:82 */
   REGB2 = CALL_location___Location___line_start(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -604,13 +604,13 @@ val_t location___Location___located_in(val_t p0, val_t p1){
   REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
   if (UNTAG_Bool(REGB3)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB2)==(REGB1));
-    /* ./location.nit:82 */
+    /* location.nit:82 */
     REGB3 = REGB1;
   }
   if (UNTAG_Bool(REGB3)) {
-    /* ./location.nit:83 */
+    /* location.nit:83 */
     REGB3 = CALL_location___Location___column_start(fra.me.REG[0])(fra.me.REG[0]);
     REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -622,15 +622,15 @@ val_t location___Location___located_in(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB1));
-    /* ./location.nit:83 */
+    /* location.nit:83 */
     if (UNTAG_Bool(REGB1)) {
       REGB1 = TAG_Bool(false);
       REGB0 = REGB1;
       goto label1;
     }
-    /* ./location.nit:84 */
+    /* location.nit:84 */
     REGB1 = CALL_location___Location___column_start(fra.me.REG[0])(fra.me.REG[0]);
     REGB3 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB3)) {
@@ -642,16 +642,16 @@ val_t location___Location___located_in(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB3));
-    /* ./location.nit:84 */
+    /* location.nit:84 */
     if (UNTAG_Bool(REGB3)) {
       REGB3 = TAG_Bool(false);
       REGB0 = REGB3;
       goto label1;
     }
   }
-  /* ./location.nit:87 */
+  /* location.nit:87 */
   REGB3 = CALL_location___Location___line_end(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -661,9 +661,9 @@ val_t location___Location___located_in(val_t p0, val_t p1){
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB3)==(REGB1));
-    /* ./location.nit:87 */
+    /* location.nit:87 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
@@ -678,10 +678,10 @@ val_t location___Location___located_in(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB2)>UNTAG_Int(REGB1));
   } else {
-    /* ./location.nit:87 */
+    /* location.nit:87 */
     REGB2 = TAG_Bool(false);
     REGB1 = REGB2;
   }
@@ -690,7 +690,7 @@ val_t location___Location___located_in(val_t p0, val_t p1){
     REGB0 = REGB1;
     goto label1;
   }
-  /* ./location.nit:89 */
+  /* location.nit:89 */
   REGB1 = TAG_Bool(true);
   REGB0 = REGB1;
   goto label1;
@@ -734,7 +734,7 @@ val_t location___Location___to_s(val_t p0){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./location.nit:93 */
+  /* location.nit:93 */
   if (!once_value_1) {
     fra.me.REG[1] = BOX_NativeString("");
     REGB0 = TAG_Int(0);
@@ -743,7 +743,7 @@ val_t location___Location___to_s(val_t p0){
     register_static_object(&once_value_1);
   } else fra.me.REG[1] = once_value_1;
   fra.me.REG[1] = fra.me.REG[1];
-  /* ./location.nit:94 */
+  /* location.nit:94 */
   fra.me.REG[2] = CALL_location___Location___file(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -759,7 +759,7 @@ val_t location___Location___to_s(val_t p0){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./location.nit:95 */
+    /* location.nit:95 */
     fra.me.REG[2] = CALL_location___Location___file(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -767,30 +767,30 @@ val_t location___Location___to_s(val_t p0){
     }
     fra.me.REG[2] = CALL_location___SourceFile___filename(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[1] = fra.me.REG[2];
-    /* ./location.nit:96 */
+    /* location.nit:96 */
     fra.me.REG[2] = CALL_location___Location___file(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_location, 96);
     }
     fra.me.REG[2] = CALL_location___SourceFile___filename(fra.me.REG[2])(fra.me.REG[2]);
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-    /* ./location.nit:96 */
+    /* location.nit:96 */
     REGB1 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-    /* ./location.nit:96 */
+    /* location.nit:96 */
     if (UNTAG_Bool(REGB1)) {
       if (!once_value_2) {
         fra.me.REG[2] = BOX_NativeString(":");
@@ -804,31 +804,31 @@ val_t location___Location___to_s(val_t p0){
       fra.me.REG[1] = fra.me.REG[2];
     }
   }
-  /* ./location.nit:99 */
+  /* location.nit:99 */
   REGB1 = CALL_location___Location___line_start(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_location___Location___line_end(fra.me.REG[0])(fra.me.REG[0]);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB0 = TAG_Bool((REGB1)==(REGB0));
-    /* ./location.nit:99 */
+    /* location.nit:99 */
     REGB2 = REGB0;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./location.nit:100 */
+    /* location.nit:100 */
     REGB2 = CALL_location___Location___column_start(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = CALL_location___Location___column_end(fra.me.REG[0])(fra.me.REG[0]);
     REGB1 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB0));
     if (UNTAG_Bool(REGB1)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB0 = TAG_Bool((REGB2)==(REGB0));
-      /* ./location.nit:100 */
+      /* location.nit:100 */
       REGB1 = REGB0;
     }
     if (UNTAG_Bool(REGB1)) {
-      /* ./location.nit:101 */
+      /* location.nit:101 */
       REGB1 = TAG_Int(7);
       fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_3) {
@@ -877,7 +877,7 @@ val_t location___Location___to_s(val_t p0){
       fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
       goto label7;
     } else {
-      /* ./location.nit:103 */
+      /* location.nit:103 */
       REGB1 = TAG_Int(9);
       fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_8) {
@@ -940,7 +940,7 @@ val_t location___Location___to_s(val_t p0){
       goto label7;
     }
   } else {
-    /* ./location.nit:106 */
+    /* location.nit:106 */
     REGB1 = TAG_Int(11);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
     if (!once_value_13) {
@@ -1037,7 +1037,7 @@ val_t location___Location___relative_to(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./location.nit:112 */
+  /* location.nit:112 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1075,14 +1075,14 @@ val_t location___Location___relative_to(val_t p0, val_t p1){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./location.nit:113 */
+    /* location.nit:113 */
     REGB0 = CALL_location___Location___line_start(fra.me.REG[0])(fra.me.REG[0]);
     REGB1 = CALL_location___Location___line_end(fra.me.REG[0])(fra.me.REG[0]);
     REGB2 = CALL_location___Location___column_start(fra.me.REG[0])(fra.me.REG[0]);
     REGB3 = CALL_location___Location___column_end(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[2] = NEW_Location_location___Location___init(NIT_NULL, REGB0, REGB1, REGB2, REGB3);
   } else {
-    /* ./location.nit:115 */
+    /* location.nit:115 */
     fra.me.REG[1] = CALL_location___Location___file(fra.me.REG[0])(fra.me.REG[0]);
     REGB3 = CALL_location___Location___line_start(fra.me.REG[0])(fra.me.REG[0]);
     REGB2 = CALL_location___Location___line_end(fra.me.REG[0])(fra.me.REG[0]);
@@ -1091,7 +1091,7 @@ val_t location___Location___relative_to(val_t p0, val_t p1){
     fra.me.REG[1] = NEW_Location_location___Location___init(fra.me.REG[1], REGB3, REGB2, REGB1, REGB0);
     fra.me.REG[2] = fra.me.REG[1];
   }
-  /* ./location.nit:117 */
+  /* location.nit:117 */
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   goto label1;
   label1: while(0);
@@ -1121,7 +1121,7 @@ val_t location___Location_____l(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_location, 0);
   }
-  /* ./location.nit:121 */
+  /* location.nit:121 */
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[1]));
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1132,29 +1132,29 @@ val_t location___Location_____l(val_t p0, val_t p1){
     REGB0 = TAG_Bool(false);
     goto label1;
   }
-  /* ./location.nit:122 */
+  /* location.nit:122 */
   REGB1 = CALL_location___Location___located_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(true);
     REGB0 = REGB1;
     goto label1;
   }
-  /* ./location.nit:123 */
+  /* location.nit:123 */
   REGB1 = CALL_location___Location___located_in(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(false);
     REGB0 = REGB1;
     goto label1;
   }
-  /* ./location.nit:125 */
+  /* location.nit:125 */
   REGB1 = CALL_location___Location___line_start(fra.me.REG[0])(fra.me.REG[0]);
   REGB2 = CALL_location___Location___line_start(fra.me.REG[1])(fra.me.REG[1]);
   REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
   if (UNTAG_Bool(REGB3)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB2 = TAG_Bool((REGB1)==(REGB2));
-    /* ./location.nit:125 */
+    /* location.nit:125 */
     REGB3 = REGB2;
   }
   REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
@@ -1166,21 +1166,21 @@ val_t location___Location_____l(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
-    /* ./location.nit:125 */
+    /* location.nit:125 */
     REGB0 = REGB2;
     goto label1;
   }
-  /* ./location.nit:126 */
+  /* location.nit:126 */
   REGB2 = CALL_location___Location___column_start(fra.me.REG[0])(fra.me.REG[0]);
   REGB3 = CALL_location___Location___column_start(fra.me.REG[1])(fra.me.REG[1]);
   REGB1 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB3));
   if (UNTAG_Bool(REGB1)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB3 = TAG_Bool((REGB2)==(REGB3));
-    /* ./location.nit:126 */
+    /* location.nit:126 */
     REGB1 = REGB3;
   }
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
@@ -1192,21 +1192,21 @@ val_t location___Location_____l(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB3));
-    /* ./location.nit:126 */
+    /* location.nit:126 */
     REGB0 = REGB3;
     goto label1;
   }
-  /* ./location.nit:127 */
+  /* location.nit:127 */
   REGB3 = CALL_location___Location___line_end(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = CALL_location___Location___line_end(fra.me.REG[1])(fra.me.REG[1]);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB3)==(REGB1));
-    /* ./location.nit:127 */
+    /* location.nit:127 */
     REGB2 = REGB1;
   }
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
@@ -1218,13 +1218,13 @@ val_t location___Location_____l(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
-    /* ./location.nit:127 */
+    /* location.nit:127 */
     REGB0 = REGB1;
     goto label1;
   }
-  /* ./location.nit:129 */
+  /* location.nit:129 */
   REGB1 = CALL_location___Location___column_end(fra.me.REG[0])(fra.me.REG[0]);
   REGB2 = CALL_location___Location___column_end(fra.me.REG[1])(fra.me.REG[1]);
   REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
@@ -1232,12 +1232,493 @@ val_t location___Location_____l(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-  /* ./location.nit:129 */
+  /* location.nit:129 */
   REGB0 = REGB2;
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+val_t location___Location___colored_line(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t REGB2;
+  val_t REGB3;
+  val_t REGB4;
+  val_t REGB5;
+  val_t tmp;
+  static val_t once_value_1; /* Once value */
+  static val_t once_value_2; /* Once value */
+  static val_t once_value_3; /* Once value */
+  static val_t once_value_4; /* Once value */
+  static val_t once_value_5; /* Once value */
+    static val_t once_value_8; /* Once value */
+    static val_t once_value_9; /* Once value */
+  static val_t once_value_11; /* Once value */
+  static val_t once_value_12; /* Once value */
+  static val_t once_value_13; /* Once value */
+  static val_t once_value_14; /* Once value */
+  static val_t once_value_15; /* Once value */
+  static val_t once_value_16; /* Once value */
+  static val_t once_value_17; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_location;
+  fra.me.line = 132;
+  fra.me.meth = LOCATE_location___Location___colored_line;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 8;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[7] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* location.nit:139 */
+  REGB0 = TAG_Int(27);
+  /* ../lib/standard/kernel.nit:297 */
+  REGB0 = TAG_Char(UNTAG_Int(REGB0));
+  /* location.nit:140 */
+  REGB1 = TAG_Int(3);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
+  if (!once_value_1) {
+    fra.me.REG[3] = BOX_NativeString("");
+    REGB1 = TAG_Int(0);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
+    once_value_1 = fra.me.REG[3];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[3] = once_value_1;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[3] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  if (!once_value_2) {
+    fra.me.REG[3] = BOX_NativeString("[0m");
+    REGB1 = TAG_Int(3);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
+    once_value_2 = fra.me.REG[3];
+    register_static_object(&once_value_2);
+  } else fra.me.REG[3] = once_value_2;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
+  /* location.nit:141 */
+  REGB1 = TAG_Int(5);
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
+  if (!once_value_3) {
+    fra.me.REG[4] = BOX_NativeString("");
+    REGB1 = TAG_Int(0);
+    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
+    once_value_3 = fra.me.REG[4];
+    register_static_object(&once_value_3);
+  } else fra.me.REG[4] = once_value_3;
+  fra.me.REG[4] = fra.me.REG[4];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
+  fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
+  if (!once_value_4) {
+    fra.me.REG[4] = BOX_NativeString("[");
+    REGB0 = TAG_Int(1);
+    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+    once_value_4 = fra.me.REG[4];
+    register_static_object(&once_value_4);
+  } else fra.me.REG[4] = once_value_4;
+  fra.me.REG[4] = fra.me.REG[4];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  if (!once_value_5) {
+    fra.me.REG[1] = BOX_NativeString("m");
+    REGB0 = TAG_Int(1);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_5 = fra.me.REG[1];
+    register_static_object(&once_value_5);
+  } else fra.me.REG[1] = once_value_5;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
+  /* location.nit:144 */
+  REGB0 = CALL_location___Location___line_start(fra.me.REG[0])(fra.me.REG[0]);
+  /* location.nit:145 */
+  fra.me.REG[1] = CALL_location___Location___file(fra.me.REG[0])(fra.me.REG[0]);
+  REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+  if (UNTAG_Bool(REGB1)) {
+    nit_abort("Reciever is null", NULL, LOCATE_location, 145);
+  }
+  fra.me.REG[1] = CALL_location___SourceFile___line_starts(fra.me.REG[1])(fra.me.REG[1]);
+  REGB1 = TAG_Int(1);
+  /* ../lib/standard/kernel.nit:237 */
+  REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
+  /* ../lib/standard/collection/array.nit:280 */
+  REGB2 = TAG_Int(0);
+  REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
+  if (UNTAG_Bool(REGB3)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+  }
+  /* ../lib/standard/kernel.nit:233 */
+  REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
+  /* ../lib/standard/collection/array.nit:280 */
+  if (UNTAG_Bool(REGB2)) {
+    REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
+    if (UNTAG_Bool(REGB2)) {
+    } else {
+      nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
+    }
+    REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
+    REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
+    if (UNTAG_Bool(REGB3)) {
+    } else {
+      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+    }
+    /* ../lib/standard/kernel.nit:232 */
+    REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
+  } else {
+    /* ../lib/standard/collection/array.nit:280 */
+    REGB3 = TAG_Bool(false);
+    REGB2 = REGB3;
+  }
+  if (UNTAG_Bool(REGB2)) {
+  } else {
+    nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
+  }
+  /* ../lib/standard/collection/array.nit:281 */
+  fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
+  REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+  if (UNTAG_Bool(REGB2)) {
+    nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
+  }
+  /* ../lib/standard/collection/array.nit:718 */
+  fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB1)];
+  /* ../lib/standard/collection/array.nit:281 */
+  goto label6;
+  label6: while(0);
+  /* location.nit:145 */
+  REGB1 = fra.me.REG[1];
+  /* location.nit:146 */
+  REGB2 = REGB1;
+  /* location.nit:147 */
+  fra.me.REG[1] = CALL_location___Location___file(fra.me.REG[0])(fra.me.REG[0]);
+  REGB3 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+  if (UNTAG_Bool(REGB3)) {
+    nit_abort("Reciever is null", NULL, LOCATE_location, 147);
+  }
+  fra.me.REG[1] = CALL_location___SourceFile___string(fra.me.REG[1])(fra.me.REG[1]);
+  /* location.nit:148 */
+  while(1) {
+    REGB3 = TAG_Int(1);
+    /* ../lib/standard/kernel.nit:235 */
+    REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
+    /* ../lib/standard/collection/array.nit:24 */
+    REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
+    if (UNTAG_Bool(REGB4)) {
+    } else {
+      nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
+    }
+    REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
+    REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
+    if (UNTAG_Bool(REGB5)) {
+    } else {
+      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+    }
+    /* ../lib/standard/kernel.nit:232 */
+    REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
+    /* location.nit:148 */
+    if (UNTAG_Bool(REGB4)) {
+      REGB4 = TAG_Int(1);
+      /* ../lib/standard/kernel.nit:235 */
+      REGB4 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
+      /* location.nit:148 */
+      REGB4 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB4);
+      REGB3 = TAG_Char('\n');
+      REGB5 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB3));
+      if (UNTAG_Bool(REGB5)) {
+      } else {
+        /* ../lib/standard/kernel.nit:378 */
+        REGB3 = TAG_Bool((REGB4)==(REGB3));
+        /* location.nit:148 */
+        REGB5 = REGB3;
+      }
+      REGB5 = TAG_Bool(!UNTAG_Bool(REGB5));
+    } else {
+      REGB3 = TAG_Bool(false);
+      REGB5 = REGB3;
+    }
+    if (UNTAG_Bool(REGB5)) {
+      REGB5 = TAG_Int(1);
+      /* ../lib/standard/kernel.nit:235 */
+      REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
+      /* location.nit:148 */
+      REGB5 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB5);
+      REGB3 = TAG_Char('\r');
+      REGB4 = TAG_Bool(IS_EQUAL_OO(REGB5,REGB3));
+      if (UNTAG_Bool(REGB4)) {
+      } else {
+        /* ../lib/standard/kernel.nit:378 */
+        REGB3 = TAG_Bool((REGB5)==(REGB3));
+        /* location.nit:148 */
+        REGB4 = REGB3;
+      }
+      REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
+    } else {
+      REGB3 = TAG_Bool(false);
+      REGB4 = REGB3;
+    }
+    if (UNTAG_Bool(REGB4)) {
+      /* location.nit:149 */
+      REGB4 = TAG_Int(1);
+      /* ../lib/standard/kernel.nit:235 */
+      REGB4 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
+      /* location.nit:149 */
+      REGB2 = REGB4;
+    } else {
+      /* location.nit:148 */
+      goto label7;
+    }
+  }
+  label7: while(0);
+  /* location.nit:151 */
+  REGB4 = CALL_location___Location___column_start(fra.me.REG[0])(fra.me.REG[0]);
+  REGB3 = TAG_Int(1);
+  /* ../lib/standard/kernel.nit:237 */
+  REGB3 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB3));
+  /* location.nit:151 */
+  fra.me.REG[4] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB1, REGB3);
+  /* location.nit:153 */
+  REGB3 = CALL_location___Location___line_end(fra.me.REG[0])(fra.me.REG[0]);
+  REGB4 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB3));
+  if (UNTAG_Bool(REGB4)) {
+  } else {
+    /* ../lib/standard/kernel.nit:227 */
+    REGB3 = TAG_Bool((REGB0)==(REGB3));
+    /* location.nit:153 */
+    REGB4 = REGB3;
+  }
+  REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
+  if (UNTAG_Bool(REGB4)) {
+    /* ../lib/standard/kernel.nit:237 */
+    REGB4 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB1));
+    /* location.nit:154 */
+    REGB3 = TAG_Int(1);
+    /* ../lib/standard/kernel.nit:235 */
+    REGB3 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB3));
+    /* location.nit:154 */
+    fra.me.REG[5] = REGB3;
+  } else {
+    /* location.nit:156 */
+    REGB3 = CALL_location___Location___column_end(fra.me.REG[0])(fra.me.REG[0]);
+    fra.me.REG[5] = REGB3;
+  }
+  /* ../lib/standard/kernel.nit:235 */
+  REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(fra.me.REG[5]));
+  /* ../lib/standard/collection/array.nit:24 */
+  REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
+  if (UNTAG_Bool(REGB4)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
+  }
+  REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
+  REGB0 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+  }
+  /* ../lib/standard/kernel.nit:231 */
+  REGB4 = TAG_Bool(UNTAG_Int(REGB3)<=UNTAG_Int(REGB4));
+  /* location.nit:160 */
+  if (UNTAG_Bool(REGB4)) {
+    /* location.nit:161 */
+    REGB4 = CALL_location___Location___column_start(fra.me.REG[0])(fra.me.REG[0]);
+    /* ../lib/standard/kernel.nit:235 */
+    REGB4 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB4));
+    /* location.nit:161 */
+    REGB3 = TAG_Int(1);
+    /* ../lib/standard/kernel.nit:237 */
+    REGB3 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB3));
+    /* location.nit:161 */
+    REGB4 = CALL_location___Location___column_start(fra.me.REG[0])(fra.me.REG[0]);
+    REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+      nit_abort("Reciever is null", NULL, LOCATE_location, 161);
+    }
+    /* ../lib/standard/kernel.nit:237 */
+    REGB4 = TAG_Int(UNTAG_Int(fra.me.REG[5])-UNTAG_Int(REGB4));
+    /* location.nit:161 */
+    REGB0 = TAG_Int(1);
+    /* ../lib/standard/kernel.nit:235 */
+    REGB0 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB0));
+    /* location.nit:161 */
+    fra.me.REG[6] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB3, REGB0);
+    /* ../lib/standard/kernel.nit:235 */
+    REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(fra.me.REG[5]));
+    /* ../lib/standard/kernel.nit:237 */
+    REGB2 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB1));
+    REGB2 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(fra.me.REG[5]));
+    /* location.nit:162 */
+    REGB3 = TAG_Int(1);
+    /* ../lib/standard/kernel.nit:235 */
+    REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
+    /* location.nit:162 */
+    fra.me.REG[5] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB0, REGB3);
+  } else {
+    /* location.nit:164 */
+    if (!once_value_8) {
+      fra.me.REG[7] = BOX_NativeString("");
+      REGB3 = TAG_Int(0);
+      fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB3);
+      once_value_8 = fra.me.REG[7];
+      register_static_object(&once_value_8);
+    } else fra.me.REG[7] = once_value_8;
+    fra.me.REG[7] = fra.me.REG[7];
+    fra.me.REG[6] = fra.me.REG[7];
+    /* location.nit:165 */
+    if (!once_value_9) {
+      fra.me.REG[7] = BOX_NativeString("");
+      REGB3 = TAG_Int(0);
+      fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB3);
+      once_value_9 = fra.me.REG[7];
+      register_static_object(&once_value_9);
+    } else fra.me.REG[7] = once_value_9;
+    fra.me.REG[7] = fra.me.REG[7];
+    fra.me.REG[5] = fra.me.REG[7];
+  }
+  /* location.nit:167 */
+  fra.me.REG[7] = NEW_Buffer_standard___string___Buffer___init();
+  /* location.nit:168 */
+  REGB3 = CALL_location___Location___column_start(fra.me.REG[0])(fra.me.REG[0]);
+  /* ../lib/standard/kernel.nit:235 */
+  REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
+  /* location.nit:168 */
+  REGB0 = TAG_Int(1);
+  /* ../lib/standard/kernel.nit:237 */
+  REGB0 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB0));
+  /* ../lib/standard/kernel.nit:352 */
+  while(1) {
+    REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
+    if (UNTAG_Bool(REGB3)) {
+    } else {
+      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+    }
+    /* ../lib/standard/kernel.nit:232 */
+    REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
+    /* ../lib/standard/kernel.nit:352 */
+    if (UNTAG_Bool(REGB3)) {
+      /* location.nit:168 */
+      REGB3 = REGB1;
+      /* location.nit:169 */
+      REGB3 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB3);
+      REGB2 = TAG_Char('\t');
+      REGB4 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB2));
+      if (UNTAG_Bool(REGB4)) {
+      } else {
+        /* ../lib/standard/kernel.nit:378 */
+        REGB2 = TAG_Bool((REGB3)==(REGB2));
+        /* location.nit:169 */
+        REGB4 = REGB2;
+      }
+      if (UNTAG_Bool(REGB4)) {
+        /* location.nit:170 */
+        REGB4 = TAG_Char('\t');
+        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], REGB4);
+      } else {
+        /* location.nit:172 */
+        REGB4 = TAG_Char(' ');
+        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], REGB4);
+      }
+      /* ../lib/standard/kernel.nit:354 */
+      REGB4 = TAG_Int(1);
+      /* ../lib/standard/kernel.nit:235 */
+      REGB4 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB4));
+      /* ../lib/standard/kernel.nit:354 */
+      REGB1 = REGB4;
+    } else {
+      /* ../lib/standard/kernel.nit:352 */
+      goto label10;
+    }
+  }
+  label10: while(0);
+  /* location.nit:175 */
+  REGB1 = TAG_Int(13);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
+  if (!once_value_11) {
+    fra.me.REG[0] = BOX_NativeString("\t");
+    REGB1 = TAG_Int(1);
+    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
+    once_value_11 = fra.me.REG[0];
+    register_static_object(&once_value_11);
+  } else fra.me.REG[0] = once_value_11;
+  fra.me.REG[0] = fra.me.REG[0];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
+  if (!once_value_12) {
+    fra.me.REG[4] = BOX_NativeString("");
+    REGB1 = TAG_Int(0);
+    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
+    once_value_12 = fra.me.REG[4];
+    register_static_object(&once_value_12);
+  } else fra.me.REG[4] = once_value_12;
+  fra.me.REG[4] = fra.me.REG[4];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+  if (!once_value_13) {
+    fra.me.REG[3] = BOX_NativeString("");
+    REGB1 = TAG_Int(0);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
+    once_value_13 = fra.me.REG[3];
+    register_static_object(&once_value_13);
+  } else fra.me.REG[3] = once_value_13;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
+  if (!once_value_14) {
+    fra.me.REG[6] = BOX_NativeString("");
+    REGB1 = TAG_Int(0);
+    fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
+    once_value_14 = fra.me.REG[6];
+    register_static_object(&once_value_14);
+  } else fra.me.REG[6] = once_value_14;
+  fra.me.REG[6] = fra.me.REG[6];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  if (!once_value_15) {
+    fra.me.REG[2] = BOX_NativeString("");
+    REGB1 = TAG_Int(0);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
+    once_value_15 = fra.me.REG[2];
+    register_static_object(&once_value_15);
+  } else fra.me.REG[2] = once_value_15;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+  if (!once_value_16) {
+    fra.me.REG[5] = BOX_NativeString("\n\t");
+    REGB1 = TAG_Int(2);
+    fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
+    once_value_16 = fra.me.REG[5];
+    register_static_object(&once_value_16);
+  } else fra.me.REG[5] = once_value_16;
+  fra.me.REG[5] = fra.me.REG[5];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+  fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
+  if (!once_value_17) {
+    fra.me.REG[7] = BOX_NativeString("^");
+    REGB1 = TAG_Int(1);
+    fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
+    once_value_17 = fra.me.REG[7];
+    register_static_object(&once_value_17);
+  } else fra.me.REG[7] = once_value_17;
+  fra.me.REG[7] = fra.me.REG[7];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
+  fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+  goto label18;
+  label18: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
index f8cd6c9..fd0e092 100644 (file)
@@ -39,6 +39,7 @@ extern const int SFT_location[];
 #define CALL_location___Location___with_file(recv) ((location___Location___with_file_t)CALL((recv), (SFT_location[7] + 7)))
 #define CALL_location___Location___located_in(recv) ((location___Location___located_in_t)CALL((recv), (SFT_location[7] + 8)))
 #define CALL_location___Location___relative_to(recv) ((location___Location___relative_to_t)CALL((recv), (SFT_location[7] + 9)))
+#define CALL_location___Location___colored_line(recv) ((location___Location___colored_line_t)CALL((recv), (SFT_location[7] + 10)))
 static const char * const LOCATE_location___SourceFile___filename = "location::SourceFile::filename";
 val_t location___SourceFile___filename(val_t p0);
 typedef val_t (*location___SourceFile___filename_t)(val_t p0);
@@ -99,4 +100,7 @@ typedef val_t (*location___Location___relative_to_t)(val_t p0, val_t p1);
 static const char * const LOCATE_location___Location_____l = "location::Location::(kernel::Comparable::<)";
 val_t location___Location_____l(val_t p0, val_t p1);
 typedef val_t (*location___Location_____l_t)(val_t p0, val_t p1);
+static const char * const LOCATE_location___Location___colored_line = "location::Location::colored_line";
+val_t location___Location___colored_line(val_t p0, val_t p1);
+typedef val_t (*location___Location___colored_line_t)(val_t p0, val_t p1);
 #endif
index 87ed114..c4b807d 100644 (file)
@@ -31,7 +31,7 @@ val_t metamodel___abstractmetamodel___MMContext___module_hierarchy(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:29 */
+  /* metamodel/abstractmetamodel.nit:29 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -54,7 +54,7 @@ val_t metamodel___abstractmetamodel___MMContext___class_hierarchy(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:32 */
+  /* metamodel/abstractmetamodel.nit:32 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -77,7 +77,7 @@ val_t metamodel___abstractmetamodel___MMContext___modules(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:39 */
+  /* metamodel/abstractmetamodel.nit:39 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____modules(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -106,7 +106,7 @@ void metamodel___abstractmetamodel___MMContext___add_module(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./metamodel//abstractmetamodel.nit:45 */
+  /* metamodel/abstractmetamodel.nit:45 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -121,7 +121,7 @@ void metamodel___abstractmetamodel___MMContext___add_module(val_t p0, val_t p1,
   fra.me.REG[4] = ATTR_metamodel___abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0]);
   fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrder___select_smallests(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
   CALL_metamodel___partial_order___PartialOrder___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2]);
-  /* ./metamodel//abstractmetamodel.nit:46 */
+  /* metamodel/abstractmetamodel.nit:46 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____modules(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -129,7 +129,7 @@ void metamodel___abstractmetamodel___MMContext___add_module(val_t p0, val_t p1,
   }
   fra.me.REG[2] = ATTR_metamodel___abstractmetamodel___MMContext____modules(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./metamodel//abstractmetamodel.nit:47 */
+  /* metamodel/abstractmetamodel.nit:47 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -156,7 +156,7 @@ void metamodel___abstractmetamodel___MMContext___add_global_class(val_t p0, val_
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:51 */
+  /* metamodel/abstractmetamodel.nit:51 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____global_classes(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -192,22 +192,22 @@ void metamodel___abstractmetamodel___MMContext___add_local_class(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./metamodel//abstractmetamodel.nit:56 */
+  /* metamodel/abstractmetamodel.nit:56 */
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -219,40 +219,40 @@ void metamodel___abstractmetamodel___MMContext___add_local_class(val_t p0, val_t
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-      /* ./metamodel//abstractmetamodel.nit:58 */
+      /* metamodel/abstractmetamodel.nit:58 */
       REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[5], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
       if (UNTAG_Bool(REGB1)) {
-        /* ./metamodel//abstractmetamodel.nit:59 */
+        /* metamodel/abstractmetamodel.nit:59 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
       } else {
-        /* ./metamodel//abstractmetamodel.nit:61 */
+        /* metamodel/abstractmetamodel.nit:61 */
         fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[5])(fra.me.REG[5]);
         fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[5])(fra.me.REG[5]);
-        /* ./../lib/standard//collection//array.nit:269 */
+        /* ../lib/standard/collection/array.nit:269 */
         REGB1 = TAG_Int(0);
-        /* ./../lib/standard//collection//array.nit:270 */
+        /* ../lib/standard/collection/array.nit:270 */
         REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
         }
         REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-        /* ./../lib/standard//collection//array.nit:271 */
+        /* ../lib/standard/collection/array.nit:271 */
         fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         while(1) {
-          /* ./../lib/standard//collection//array.nit:24 */
+          /* ../lib/standard/collection/array.nit:24 */
           REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
           } else {
@@ -264,51 +264,51 @@ void metamodel___abstractmetamodel___MMContext___add_local_class(val_t p0, val_t
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           if (UNTAG_Bool(REGB2)) {
-            /* ./../lib/standard//collection//array.nit:273 */
+            /* ../lib/standard/collection/array.nit:273 */
             REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
             if (UNTAG_Bool(REGB2)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB1)];
-            /* ./metamodel//abstractmetamodel.nit:62 */
+            /* metamodel/abstractmetamodel.nit:62 */
             REGB2 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
             if (UNTAG_Bool(REGB2)) {
               goto label1;
             }
-            /* ./metamodel//abstractmetamodel.nit:63 */
+            /* metamodel/abstractmetamodel.nit:63 */
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
             label1: while(0);
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB2 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB1 = REGB2;
           } else {
-            /* ./../lib/standard//collection//array.nit:272 */
+            /* ../lib/standard/collection/array.nit:272 */
             goto label2;
           }
         }
         label2: while(0);
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label3;
     }
   }
   label3: while(0);
-  /* ./metamodel//abstractmetamodel.nit:67 */
+  /* metamodel/abstractmetamodel.nit:67 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -316,7 +316,7 @@ void metamodel___abstractmetamodel___MMContext___add_local_class(val_t p0, val_t
   }
   fra.me.REG[0] = ATTR_metamodel___abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrder___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
-  /* ./metamodel//abstractmetamodel.nit:68 */
+  /* metamodel/abstractmetamodel.nit:68 */
   ATTR_metamodel___abstractmetamodel___MMLocalClass____che(fra.me.REG[1]) = fra.me.REG[3];
   stack_frame_head = fra.me.prev;
   return;
@@ -334,7 +334,7 @@ val_t metamodel___abstractmetamodel___MMDirectory___name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:74 */
+  /* metamodel/abstractmetamodel.nit:74 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMDirectory____name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -357,7 +357,7 @@ val_t metamodel___abstractmetamodel___MMDirectory___path(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:77 */
+  /* metamodel/abstractmetamodel.nit:77 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMDirectory____path(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -379,7 +379,7 @@ val_t metamodel___abstractmetamodel___MMDirectory___parent(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:80 */
+  /* metamodel/abstractmetamodel.nit:80 */
   fra.me.REG[0] = ATTR_metamodel___abstractmetamodel___MMDirectory____parent(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -396,7 +396,7 @@ val_t metamodel___abstractmetamodel___MMDirectory___owner(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:84 */
+  /* metamodel/abstractmetamodel.nit:84 */
   fra.me.REG[0] = ATTR_metamodel___abstractmetamodel___MMDirectory____owner(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -415,7 +415,7 @@ void metamodel___abstractmetamodel___MMDirectory___owner__eq(val_t p0, val_t p1)
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:84 */
+  /* metamodel/abstractmetamodel.nit:84 */
   ATTR_metamodel___abstractmetamodel___MMDirectory____owner(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -433,7 +433,7 @@ val_t metamodel___abstractmetamodel___MMDirectory___modules(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:87 */
+  /* metamodel/abstractmetamodel.nit:87 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMDirectory____modules(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -460,7 +460,7 @@ void metamodel___abstractmetamodel___MMDirectory___add_module(val_t p0, val_t p1
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:93 */
+  /* metamodel/abstractmetamodel.nit:93 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMDirectory____modules(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -474,7 +474,7 @@ void metamodel___abstractmetamodel___MMDirectory___add_module(val_t p0, val_t p1
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___abstractmetamodel, 93);
   }
-  /* ./metamodel//abstractmetamodel.nit:94 */
+  /* metamodel/abstractmetamodel.nit:94 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMDirectory____modules(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -506,11 +506,11 @@ void metamodel___abstractmetamodel___MMDirectory___init(val_t p0, val_t p1, val_
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./metamodel//abstractmetamodel.nit:98 */
+  /* metamodel/abstractmetamodel.nit:98 */
   ATTR_metamodel___abstractmetamodel___MMDirectory____name(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:99 */
+  /* metamodel/abstractmetamodel.nit:99 */
   ATTR_metamodel___abstractmetamodel___MMDirectory____path(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./metamodel//abstractmetamodel.nit:100 */
+  /* metamodel/abstractmetamodel.nit:100 */
   ATTR_metamodel___abstractmetamodel___MMDirectory____parent(fra.me.REG[0]) = fra.me.REG[3];
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
@@ -536,7 +536,7 @@ val_t metamodel___abstractmetamodel___MMDirectory___full_name_for(val_t p0, val_
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:105 */
+  /* metamodel/abstractmetamodel.nit:105 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -591,7 +591,7 @@ val_t metamodel___abstractmetamodel___MMModule___context(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:111 */
+  /* metamodel/abstractmetamodel.nit:111 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____context(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -614,7 +614,7 @@ val_t metamodel___abstractmetamodel___MMModule___name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:114 */
+  /* metamodel/abstractmetamodel.nit:114 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -637,7 +637,7 @@ val_t metamodel___abstractmetamodel___MMModule___full_name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:117 */
+  /* metamodel/abstractmetamodel.nit:117 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____full_name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -660,7 +660,7 @@ val_t metamodel___abstractmetamodel___MMModule___directory(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:120 */
+  /* metamodel/abstractmetamodel.nit:120 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____directory(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -683,7 +683,7 @@ val_t metamodel___abstractmetamodel___MMModule___location(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:123 */
+  /* metamodel/abstractmetamodel.nit:123 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____location(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -705,7 +705,7 @@ val_t metamodel___abstractmetamodel___MMModule___mhe(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:126 */
+  /* metamodel/abstractmetamodel.nit:126 */
   fra.me.REG[0] = ATTR_metamodel___abstractmetamodel___MMModule____mhe(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -723,7 +723,7 @@ val_t metamodel___abstractmetamodel___MMModule___global_classes(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:129 */
+  /* metamodel/abstractmetamodel.nit:129 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____global_classes(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -746,7 +746,7 @@ val_t metamodel___abstractmetamodel___MMModule___local_classes(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:132 */
+  /* metamodel/abstractmetamodel.nit:132 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____local_classes(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -769,7 +769,7 @@ val_t metamodel___abstractmetamodel___MMModule___class_specialization_hierarchy(
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:135 */
+  /* metamodel/abstractmetamodel.nit:135 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____class_specialization_hierarchy(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -792,7 +792,7 @@ val_t metamodel___abstractmetamodel___MMModule___explicit_imported_modules(val_t
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:147 */
+  /* metamodel/abstractmetamodel.nit:147 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____explicit_imported_modules(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -815,7 +815,7 @@ val_t metamodel___abstractmetamodel___MMModule___is_extern_hybrid(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:156 */
+  /* metamodel/abstractmetamodel.nit:156 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule_____atis_extern_hybrid(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -839,7 +839,7 @@ void metamodel___abstractmetamodel___MMModule___is_extern_hybrid__eq(val_t p0, v
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./metamodel//abstractmetamodel.nit:156 */
+  /* metamodel/abstractmetamodel.nit:156 */
   ATTR_metamodel___abstractmetamodel___MMModule_____atis_extern_hybrid(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -866,16 +866,16 @@ void metamodel___abstractmetamodel___MMModule___init(val_t p0, val_t p1, val_t p
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./metamodel//abstractmetamodel.nit:163 */
+  /* metamodel/abstractmetamodel.nit:163 */
   ATTR_metamodel___abstractmetamodel___MMModule____name(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:164 */
+  /* metamodel/abstractmetamodel.nit:164 */
   ATTR_metamodel___abstractmetamodel___MMModule____directory(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./metamodel//abstractmetamodel.nit:165 */
+  /* metamodel/abstractmetamodel.nit:165 */
   ATTR_metamodel___abstractmetamodel___MMModule____context(fra.me.REG[0]) = fra.me.REG[3];
-  /* ./metamodel//abstractmetamodel.nit:166 */
+  /* metamodel/abstractmetamodel.nit:166 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMDirectory___full_name_for(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   ATTR_metamodel___abstractmetamodel___MMModule____full_name(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:167 */
+  /* metamodel/abstractmetamodel.nit:167 */
   ATTR_metamodel___abstractmetamodel___MMModule____location(fra.me.REG[0]) = fra.me.REG[4];
   stack_frame_head = fra.me.prev;
   init_table[itpos2] = 1;
@@ -901,7 +901,7 @@ void metamodel___abstractmetamodel___MMModule___add_super_module(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   REGB0 = p2;
-  /* ./metamodel//abstractmetamodel.nit:176 */
+  /* metamodel/abstractmetamodel.nit:176 */
   REGB1 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____explicit_imported_modules(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -909,18 +909,18 @@ void metamodel___abstractmetamodel___MMModule___add_super_module(val_t p0, val_t
   }
   fra.me.REG[2] = ATTR_metamodel___abstractmetamodel___MMModule____explicit_imported_modules(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./metamodel//abstractmetamodel.nit:177 */
+  /* metamodel/abstractmetamodel.nit:177 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./metamodel//abstractmetamodel.nit:177 */
+    /* metamodel/abstractmetamodel.nit:177 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./metamodel//abstractmetamodel.nit:178 */
+    /* metamodel/abstractmetamodel.nit:178 */
     REGB2 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____intrude_modules(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -928,7 +928,7 @@ void metamodel___abstractmetamodel___MMModule___add_super_module(val_t p0, val_t
     }
     fra.me.REG[2] = ATTR_metamodel___abstractmetamodel___MMModule____intrude_modules(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-    /* ./metamodel//abstractmetamodel.nit:179 */
+    /* metamodel/abstractmetamodel.nit:179 */
     REGB2 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____intrude_modules(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -942,7 +942,7 @@ void metamodel___abstractmetamodel___MMModule___add_super_module(val_t p0, val_t
     }
     fra.me.REG[3] = ATTR_metamodel___abstractmetamodel___MMModule____intrude_modules(fra.me.REG[1]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-    /* ./metamodel//abstractmetamodel.nit:180 */
+    /* metamodel/abstractmetamodel.nit:180 */
     REGB2 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____public_modules(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -956,7 +956,7 @@ void metamodel___abstractmetamodel___MMModule___add_super_module(val_t p0, val_t
     }
     fra.me.REG[2] = ATTR_metamodel___abstractmetamodel___MMModule____public_modules(fra.me.REG[1]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-    /* ./metamodel//abstractmetamodel.nit:181 */
+    /* metamodel/abstractmetamodel.nit:181 */
     REGB2 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____private_modules(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -971,18 +971,18 @@ void metamodel___abstractmetamodel___MMModule___add_super_module(val_t p0, val_t
     fra.me.REG[3] = ATTR_metamodel___abstractmetamodel___MMModule____private_modules(fra.me.REG[1]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   } else {
-    /* ./metamodel//abstractmetamodel.nit:182 */
+    /* metamodel/abstractmetamodel.nit:182 */
     REGB2 = TAG_Int(1);
     REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
     if (UNTAG_Bool(REGB1)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB2 = TAG_Bool((REGB0)==(REGB2));
-      /* ./metamodel//abstractmetamodel.nit:182 */
+      /* metamodel/abstractmetamodel.nit:182 */
       REGB1 = REGB2;
     }
     if (UNTAG_Bool(REGB1)) {
-      /* ./metamodel//abstractmetamodel.nit:183 */
+      /* metamodel/abstractmetamodel.nit:183 */
       REGB1 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____public_modules(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -990,7 +990,7 @@ void metamodel___abstractmetamodel___MMModule___add_super_module(val_t p0, val_t
       }
       fra.me.REG[3] = ATTR_metamodel___abstractmetamodel___MMModule____public_modules(fra.me.REG[0]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-      /* ./metamodel//abstractmetamodel.nit:184 */
+      /* metamodel/abstractmetamodel.nit:184 */
       REGB1 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____public_modules(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -1004,7 +1004,7 @@ void metamodel___abstractmetamodel___MMModule___add_super_module(val_t p0, val_t
       }
       fra.me.REG[2] = ATTR_metamodel___abstractmetamodel___MMModule____intrude_modules(fra.me.REG[1]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-      /* ./metamodel//abstractmetamodel.nit:185 */
+      /* metamodel/abstractmetamodel.nit:185 */
       REGB1 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____public_modules(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -1019,7 +1019,7 @@ void metamodel___abstractmetamodel___MMModule___add_super_module(val_t p0, val_t
       fra.me.REG[3] = ATTR_metamodel___abstractmetamodel___MMModule____public_modules(fra.me.REG[1]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
     } else {
-      /* ./metamodel//abstractmetamodel.nit:187 */
+      /* metamodel/abstractmetamodel.nit:187 */
       REGB1 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____private_modules(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -1027,7 +1027,7 @@ void metamodel___abstractmetamodel___MMModule___add_super_module(val_t p0, val_t
       }
       fra.me.REG[3] = ATTR_metamodel___abstractmetamodel___MMModule____private_modules(fra.me.REG[0]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-      /* ./metamodel//abstractmetamodel.nit:188 */
+      /* metamodel/abstractmetamodel.nit:188 */
       REGB1 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____private_modules(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -1041,7 +1041,7 @@ void metamodel___abstractmetamodel___MMModule___add_super_module(val_t p0, val_t
       }
       fra.me.REG[2] = ATTR_metamodel___abstractmetamodel___MMModule____intrude_modules(fra.me.REG[1]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-      /* ./metamodel//abstractmetamodel.nit:189 */
+      /* metamodel/abstractmetamodel.nit:189 */
       REGB1 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____private_modules(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -1077,7 +1077,7 @@ val_t metamodel___abstractmetamodel___MMModule___visibility_for(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:201 */
+  /* metamodel/abstractmetamodel.nit:201 */
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1097,11 +1097,11 @@ val_t metamodel___abstractmetamodel___MMModule___visibility_for(val_t p0, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//abstractmetamodel.nit:202 */
+    /* metamodel/abstractmetamodel.nit:202 */
     REGB0 = TAG_Int(3);
     goto label1;
   } else {
-    /* ./metamodel//abstractmetamodel.nit:203 */
+    /* metamodel/abstractmetamodel.nit:203 */
     REGB1 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____public_modules(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1110,12 +1110,12 @@ val_t metamodel___abstractmetamodel___MMModule___visibility_for(val_t p0, val_t
     fra.me.REG[2] = ATTR_metamodel___abstractmetamodel___MMModule____public_modules(fra.me.REG[0]);
     REGB1 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
     if (UNTAG_Bool(REGB1)) {
-      /* ./metamodel//abstractmetamodel.nit:204 */
+      /* metamodel/abstractmetamodel.nit:204 */
       REGB1 = TAG_Int(2);
       REGB0 = REGB1;
       goto label1;
     } else {
-      /* ./metamodel//abstractmetamodel.nit:205 */
+      /* metamodel/abstractmetamodel.nit:205 */
       REGB1 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____private_modules(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -1124,12 +1124,12 @@ val_t metamodel___abstractmetamodel___MMModule___visibility_for(val_t p0, val_t
       fra.me.REG[0] = ATTR_metamodel___abstractmetamodel___MMModule____private_modules(fra.me.REG[0]);
       REGB1 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
       if (UNTAG_Bool(REGB1)) {
-        /* ./metamodel//abstractmetamodel.nit:206 */
+        /* metamodel/abstractmetamodel.nit:206 */
         REGB1 = TAG_Int(1);
         REGB0 = REGB1;
         goto label1;
       } else {
-        /* ./metamodel//abstractmetamodel.nit:208 */
+        /* metamodel/abstractmetamodel.nit:208 */
         REGB1 = TAG_Int(0);
         REGB0 = REGB1;
         goto label1;
@@ -1155,7 +1155,7 @@ val_t metamodel___abstractmetamodel___MMModule_____bra(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:216 */
+  /* metamodel/abstractmetamodel.nit:216 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____local_class_by_global(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1184,7 +1184,7 @@ val_t metamodel___abstractmetamodel___MMModule___class_by_name(val_t p0, val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:222 */
+  /* metamodel/abstractmetamodel.nit:222 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1213,7 +1213,7 @@ val_t metamodel___abstractmetamodel___MMModule___has_global_class_named(val_t p0
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:228 */
+  /* metamodel/abstractmetamodel.nit:228 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1241,7 +1241,7 @@ val_t metamodel___abstractmetamodel___MMModule___global_class_named(val_t p0, va
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:235 */
+  /* metamodel/abstractmetamodel.nit:235 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1266,7 +1266,7 @@ val_t metamodel___abstractmetamodel___MMModule___to_s(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:238 */
+  /* metamodel/abstractmetamodel.nit:238 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -1292,7 +1292,7 @@ void metamodel___abstractmetamodel___MMModule___set_supers_class(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./metamodel//abstractmetamodel.nit:243 */
+  /* metamodel/abstractmetamodel.nit:243 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____class_specialization_hierarchy(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1300,7 +1300,7 @@ void metamodel___abstractmetamodel___MMModule___set_supers_class(val_t p0, val_t
   }
   fra.me.REG[3] = ATTR_metamodel___abstractmetamodel___MMModule____class_specialization_hierarchy(fra.me.REG[0]);
   fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrder___select_smallests(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./metamodel//abstractmetamodel.nit:244 */
+  /* metamodel/abstractmetamodel.nit:244 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____class_specialization_hierarchy(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1309,13 +1309,13 @@ void metamodel___abstractmetamodel___MMModule___set_supers_class(val_t p0, val_t
   fra.me.REG[3] = ATTR_metamodel___abstractmetamodel___MMModule____class_specialization_hierarchy(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrder___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2]);
   ATTR_metamodel___abstractmetamodel___MMLocalClass____cshe(fra.me.REG[1]) = fra.me.REG[3];
-  /* ./metamodel//abstractmetamodel.nit:245 */
+  /* metamodel/abstractmetamodel.nit:245 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___crhe(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./metamodel//abstractmetamodel.nit:246 */
+  /* metamodel/abstractmetamodel.nit:246 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./metamodel//abstractmetamodel.nit:247 */
+  /* metamodel/abstractmetamodel.nit:247 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMModule___context(fra.me.REG[0])(fra.me.REG[0]);
   CALL_metamodel___abstractmetamodel___MMContext___add_local_class(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -1337,7 +1337,7 @@ void metamodel___abstractmetamodel___MMModule___register_global_class(val_t p0,
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:253 */
+  /* metamodel/abstractmetamodel.nit:253 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____local_class_by_global(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1362,7 +1362,7 @@ val_t metamodel___abstractmetamodel___MMGlobalClass___intro(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:258 */
+  /* metamodel/abstractmetamodel.nit:258 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____intro(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1385,7 +1385,7 @@ val_t metamodel___abstractmetamodel___MMGlobalClass___class_refinement_hierarchy
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:261 */
+  /* metamodel/abstractmetamodel.nit:261 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____class_refinement_hierarchy(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1411,9 +1411,9 @@ void metamodel___abstractmetamodel___MMGlobalClass___init(val_t p0, val_t p1, in
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:268 */
+  /* metamodel/abstractmetamodel.nit:268 */
   ATTR_metamodel___abstractmetamodel___MMGlobalClass____intro(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:269 */
+  /* metamodel/abstractmetamodel.nit:269 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___context(fra.me.REG[1])(fra.me.REG[1]);
   CALL_metamodel___abstractmetamodel___MMContext___add_global_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1432,7 +1432,7 @@ val_t metamodel___abstractmetamodel___MMGlobalClass___name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:275 */
+  /* metamodel/abstractmetamodel.nit:275 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -1452,7 +1452,7 @@ val_t metamodel___abstractmetamodel___MMGlobalClass___mmmodule(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:281 */
+  /* metamodel/abstractmetamodel.nit:281 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -1472,7 +1472,7 @@ val_t metamodel___abstractmetamodel___MMGlobalClass___to_s(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:286 */
+  /* metamodel/abstractmetamodel.nit:286 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -1497,12 +1497,12 @@ void metamodel___abstractmetamodel___MMGlobalClass___register_local_class(val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:292 */
+  /* metamodel/abstractmetamodel.nit:292 */
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-  /* ./metamodel//abstractmetamodel.nit:293 */
+  /* metamodel/abstractmetamodel.nit:293 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMGlobalClass___class_refinement_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_metamodel___abstractmetamodel___MMGlobalClass___register_local_class_1));
-  /* ./metamodel//abstractmetamodel.nit:298 */
+  /* metamodel/abstractmetamodel.nit:298 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____class_refinement_hierarchy(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1534,7 +1534,7 @@ void metamodel___abstractmetamodel___MMGlobalClass___register_local_class(val_t
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./metamodel//abstractmetamodel.nit:294 */
+    /* metamodel/abstractmetamodel.nit:294 */
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(closctx->REG[1])(closctx->REG[1]);
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
@@ -1550,7 +1550,7 @@ void metamodel___abstractmetamodel___MMGlobalClass___register_local_class(val_t
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./metamodel//abstractmetamodel.nit:295 */
+      /* metamodel/abstractmetamodel.nit:295 */
       CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
     }
     stack_frame_head = fra.me.prev;
@@ -1569,7 +1569,7 @@ val_t metamodel___abstractmetamodel___MMGlobalClass___is_interface(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:301 */
+  /* metamodel/abstractmetamodel.nit:301 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_interface(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1593,7 +1593,7 @@ void metamodel___abstractmetamodel___MMGlobalClass___is_interface__eq(val_t p0,
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./metamodel//abstractmetamodel.nit:301 */
+  /* metamodel/abstractmetamodel.nit:301 */
   ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_interface(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -1611,7 +1611,7 @@ val_t metamodel___abstractmetamodel___MMGlobalClass___is_abstract(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:304 */
+  /* metamodel/abstractmetamodel.nit:304 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_abstract(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1635,7 +1635,7 @@ void metamodel___abstractmetamodel___MMGlobalClass___is_abstract__eq(val_t p0, v
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./metamodel//abstractmetamodel.nit:304 */
+  /* metamodel/abstractmetamodel.nit:304 */
   ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_abstract(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -1653,7 +1653,7 @@ val_t metamodel___abstractmetamodel___MMGlobalClass___is_enum(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:307 */
+  /* metamodel/abstractmetamodel.nit:307 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_enum(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1677,7 +1677,7 @@ void metamodel___abstractmetamodel___MMGlobalClass___is_enum__eq(val_t p0, val_t
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./metamodel//abstractmetamodel.nit:307 */
+  /* metamodel/abstractmetamodel.nit:307 */
   ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_enum(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -1695,7 +1695,7 @@ val_t metamodel___abstractmetamodel___MMGlobalClass___is_extern(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:310 */
+  /* metamodel/abstractmetamodel.nit:310 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_extern(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1719,7 +1719,7 @@ void metamodel___abstractmetamodel___MMGlobalClass___is_extern__eq(val_t p0, val
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./metamodel//abstractmetamodel.nit:310 */
+  /* metamodel/abstractmetamodel.nit:310 */
   ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_extern(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -1737,7 +1737,7 @@ val_t metamodel___abstractmetamodel___MMGlobalClass___visibility_level(val_t p0)
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:313 */
+  /* metamodel/abstractmetamodel.nit:313 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____visibility_level(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1761,7 +1761,7 @@ void metamodel___abstractmetamodel___MMGlobalClass___visibility_level__eq(val_t
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./metamodel//abstractmetamodel.nit:313 */
+  /* metamodel/abstractmetamodel.nit:313 */
   ATTR_metamodel___abstractmetamodel___MMGlobalClass____visibility_level(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -1781,7 +1781,7 @@ val_t metamodel___abstractmetamodel___MMGlobalClass___is_mixin(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:322 */
+  /* metamodel/abstractmetamodel.nit:322 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____mixin_of(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1813,7 +1813,7 @@ val_t metamodel___abstractmetamodel___MMGlobalClass___mixin_of(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:325 */
+  /* metamodel/abstractmetamodel.nit:325 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____mixin_of(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1837,7 +1837,7 @@ void metamodel___abstractmetamodel___MMGlobalClass___mixin_of__eq(val_t p0, val_
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:325 */
+  /* metamodel/abstractmetamodel.nit:325 */
   ATTR_metamodel___abstractmetamodel___MMGlobalClass____mixin_of(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1855,7 +1855,7 @@ val_t metamodel___abstractmetamodel___MMLocalClass___name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:334 */
+  /* metamodel/abstractmetamodel.nit:334 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1878,7 +1878,7 @@ val_t metamodel___abstractmetamodel___MMLocalClass___arity(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:337 */
+  /* metamodel/abstractmetamodel.nit:337 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____arity(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1901,7 +1901,7 @@ val_t metamodel___abstractmetamodel___MMLocalClass___mmmodule(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:341 */
+  /* metamodel/abstractmetamodel.nit:341 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1925,9 +1925,9 @@ val_t metamodel___abstractmetamodel___MMLocalClass___global(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:344 */
+  /* metamodel/abstractmetamodel.nit:344 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./metamodel//abstractmetamodel.nit:345 */
+  /* metamodel/abstractmetamodel.nit:345 */
   fra.me.REG[1] = ATTR_metamodel___abstractmetamodel___MMLocalClass____global(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1953,9 +1953,9 @@ val_t metamodel___abstractmetamodel___MMLocalClass___crhe(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:348 */
+  /* metamodel/abstractmetamodel.nit:348 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./metamodel//abstractmetamodel.nit:349 */
+  /* metamodel/abstractmetamodel.nit:349 */
   fra.me.REG[1] = ATTR_metamodel___abstractmetamodel___MMLocalClass____crhe(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1981,9 +1981,9 @@ val_t metamodel___abstractmetamodel___MMLocalClass___cshe(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:352 */
+  /* metamodel/abstractmetamodel.nit:352 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./metamodel//abstractmetamodel.nit:353 */
+  /* metamodel/abstractmetamodel.nit:353 */
   fra.me.REG[1] = ATTR_metamodel___abstractmetamodel___MMLocalClass____cshe(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2009,9 +2009,9 @@ val_t metamodel___abstractmetamodel___MMLocalClass___che(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:356 */
+  /* metamodel/abstractmetamodel.nit:356 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./metamodel//abstractmetamodel.nit:357 */
+  /* metamodel/abstractmetamodel.nit:357 */
   fra.me.REG[1] = ATTR_metamodel___abstractmetamodel___MMLocalClass____che(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2036,7 +2036,7 @@ val_t metamodel___abstractmetamodel___MMLocalClass___global_properties(val_t p0)
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:363 */
+  /* metamodel/abstractmetamodel.nit:363 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2059,7 +2059,7 @@ val_t metamodel___abstractmetamodel___MMLocalClass___local_local_properties(val_
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:366 */
+  /* metamodel/abstractmetamodel.nit:366 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2089,13 +2089,13 @@ void metamodel___abstractmetamodel___MMLocalClass___init(val_t p0, val_t p1, val
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   REGB0 = p3;
-  /* ./metamodel//abstractmetamodel.nit:375 */
+  /* metamodel/abstractmetamodel.nit:375 */
   ATTR_metamodel___abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:376 */
+  /* metamodel/abstractmetamodel.nit:376 */
   ATTR_metamodel___abstractmetamodel___MMLocalClass____name(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./metamodel//abstractmetamodel.nit:377 */
+  /* metamodel/abstractmetamodel.nit:377 */
   ATTR_metamodel___abstractmetamodel___MMLocalClass____arity(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//abstractmetamodel.nit:378 */
+  /* metamodel/abstractmetamodel.nit:378 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____local_classes(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2121,7 +2121,7 @@ val_t metamodel___abstractmetamodel___MMLocalClass___for_module(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:384 */
+  /* metamodel/abstractmetamodel.nit:384 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   goto label1;
@@ -2145,9 +2145,9 @@ void metamodel___abstractmetamodel___MMLocalClass___new_global(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:390 */
+  /* metamodel/abstractmetamodel.nit:390 */
   fra.me.REG[1] = NEW_MMGlobalClass_metamodel___abstractmetamodel___MMGlobalClass___init(fra.me.REG[0]);
-  /* ./metamodel//abstractmetamodel.nit:391 */
+  /* metamodel/abstractmetamodel.nit:391 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2161,7 +2161,7 @@ void metamodel___abstractmetamodel___MMLocalClass___new_global(val_t p0){
   }
   fra.me.REG[2] = ATTR_metamodel___abstractmetamodel___MMModule____global_classes(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./metamodel//abstractmetamodel.nit:392 */
+  /* metamodel/abstractmetamodel.nit:392 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2176,7 +2176,7 @@ void metamodel___abstractmetamodel___MMLocalClass___new_global(val_t p0){
   fra.me.REG[2] = ATTR_metamodel___abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[2]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[1]);
-  /* ./metamodel//abstractmetamodel.nit:393 */
+  /* metamodel/abstractmetamodel.nit:393 */
   CALL_metamodel___abstractmetamodel___MMLocalClass___set_global(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -2196,16 +2196,16 @@ void metamodel___abstractmetamodel___MMLocalClass___set_global(val_t p0, val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:401 */
+  /* metamodel/abstractmetamodel.nit:401 */
   ATTR_metamodel___abstractmetamodel___MMLocalClass____global(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:402 */
+  /* metamodel/abstractmetamodel.nit:402 */
   fra.me.REG[1] = ATTR_metamodel___abstractmetamodel___MMLocalClass____global(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_metamodel___abstractmetamodel, 402);
   }
   CALL_metamodel___abstractmetamodel___MMGlobalClass___register_local_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./metamodel//abstractmetamodel.nit:403 */
+  /* metamodel/abstractmetamodel.nit:403 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2234,7 +2234,7 @@ val_t metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:410 */
+  /* metamodel/abstractmetamodel.nit:410 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2254,21 +2254,21 @@ val_t metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_metamodel___abstractmetamodel, 410);
     }
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-    /* ./metamodel//abstractmetamodel.nit:410 */
+    /* metamodel/abstractmetamodel.nit:410 */
     REGB1 = TAG_Int(1);
     REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
     if (UNTAG_Bool(REGB2)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB1 = TAG_Bool((REGB0)==(REGB1));
-      /* ./metamodel//abstractmetamodel.nit:410 */
+      /* metamodel/abstractmetamodel.nit:410 */
       REGB2 = REGB1;
     }
   } else {
@@ -2295,13 +2295,13 @@ val_t metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:417 */
+  /* metamodel/abstractmetamodel.nit:417 */
   REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Aborted", NULL, LOCATE_metamodel___abstractmetamodel, 417);
   }
-  /* ./metamodel//abstractmetamodel.nit:418 */
+  /* metamodel/abstractmetamodel.nit:418 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2309,7 +2309,7 @@ val_t metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(val_t
   }
   fra.me.REG[0] = ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
   fra.me.REG[1] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./metamodel//abstractmetamodel.nit:419 */
+  /* metamodel/abstractmetamodel.nit:419 */
   fra.me.REG[1] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
   goto label1;
   label1: while(0);
@@ -2330,7 +2330,7 @@ val_t metamodel___abstractmetamodel___MMLocalClass___attribute(val_t p0, val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:426 */
+  /* metamodel/abstractmetamodel.nit:426 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   goto label1;
   label1: while(0);
@@ -2352,7 +2352,7 @@ val_t metamodel___abstractmetamodel___MMLocalClass___method(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:433 */
+  /* metamodel/abstractmetamodel.nit:433 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2385,17 +2385,17 @@ val_t metamodel___abstractmetamodel___MMLocalClass___select_method(val_t p0, val
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:440 */
+  /* metamodel/abstractmetamodel.nit:440 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___method(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./metamodel//abstractmetamodel.nit:441 */
+  /* metamodel/abstractmetamodel.nit:441 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./metamodel//abstractmetamodel.nit:442 */
+  /* metamodel/abstractmetamodel.nit:442 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___abstractmetamodel, 442);
   }
-  /* ./metamodel//abstractmetamodel.nit:443 */
+  /* metamodel/abstractmetamodel.nit:443 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -2416,17 +2416,17 @@ val_t metamodel___abstractmetamodel___MMLocalClass___select_attribute(val_t p0,
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:450 */
+  /* metamodel/abstractmetamodel.nit:450 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___attribute(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./metamodel//abstractmetamodel.nit:451 */
+  /* metamodel/abstractmetamodel.nit:451 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./metamodel//abstractmetamodel.nit:452 */
+  /* metamodel/abstractmetamodel.nit:452 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___abstractmetamodel___MMAttribute, ID_metamodel___abstractmetamodel___MMAttribute)) /*cast MMAttribute*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___abstractmetamodel, 452);
   }
-  /* ./metamodel//abstractmetamodel.nit:453 */
+  /* metamodel/abstractmetamodel.nit:453 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -2453,33 +2453,33 @@ val_t metamodel___abstractmetamodel___MMLocalClass___super_methods_named(val_t p
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:460 */
+  /* metamodel/abstractmetamodel.nit:460 */
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-  /* ./metamodel//abstractmetamodel.nit:461 */
+  /* metamodel/abstractmetamodel.nit:461 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___greaters(fra.me.REG[3])(fra.me.REG[3]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_metamodel___abstractmetamodel___MMLocalClass___super_methods_named_1));
-  /* ./metamodel//abstractmetamodel.nit:464 */
+  /* metamodel/abstractmetamodel.nit:464 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___partial_order___PartialOrderElement___order(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___partial_order___PartialOrder___select_smallests(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./metamodel//abstractmetamodel.nit:465 */
+  /* metamodel/abstractmetamodel.nit:465 */
   fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -2491,35 +2491,35 @@ val_t metamodel___abstractmetamodel___MMLocalClass___super_methods_named(val_t p
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
-      /* ./metamodel//abstractmetamodel.nit:467 */
+      /* metamodel/abstractmetamodel.nit:467 */
       fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___method(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
-      /* ./metamodel//abstractmetamodel.nit:469 */
+      /* metamodel/abstractmetamodel.nit:469 */
       fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./metamodel//abstractmetamodel.nit:471 */
+  /* metamodel/abstractmetamodel.nit:471 */
   goto label3;
   label3: while(0);
   stack_frame_head = fra.me.prev;
@@ -2542,7 +2542,7 @@ val_t metamodel___abstractmetamodel___MMLocalClass___super_methods_named(val_t p
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./metamodel//abstractmetamodel.nit:462 */
+    /* metamodel/abstractmetamodel.nit:462 */
     REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
     if (UNTAG_Bool(REGB0)) {
       CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
@@ -2568,7 +2568,7 @@ void metamodel___abstractmetamodel___MMLocalClass___register_local_property(val_
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:477 */
+  /* metamodel/abstractmetamodel.nit:477 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2577,7 +2577,7 @@ void metamodel___abstractmetamodel___MMLocalClass___register_local_property(val_
   fra.me.REG[2] = ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[1]);
-  /* ./metamodel//abstractmetamodel.nit:478 */
+  /* metamodel/abstractmetamodel.nit:478 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[0]));
   if (UNTAG_Bool(REGB0)) {
@@ -2586,7 +2586,7 @@ void metamodel___abstractmetamodel___MMLocalClass___register_local_property(val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//abstractmetamodel.nit:479 */
+    /* metamodel/abstractmetamodel.nit:479 */
     REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -2617,11 +2617,11 @@ void metamodel___abstractmetamodel___MMLocalClass___register_global_property(val
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:486 */
+  /* metamodel/abstractmetamodel.nit:486 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./metamodel//abstractmetamodel.nit:487 */
+  /* metamodel/abstractmetamodel.nit:487 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./metamodel//abstractmetamodel.nit:488 */
+  /* metamodel/abstractmetamodel.nit:488 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2630,7 +2630,7 @@ void metamodel___abstractmetamodel___MMLocalClass___register_global_property(val
   fra.me.REG[4] = ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//abstractmetamodel.nit:489 */
+    /* metamodel/abstractmetamodel.nit:489 */
     REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -2644,7 +2644,7 @@ void metamodel___abstractmetamodel___MMLocalClass___register_global_property(val
     }
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
   } else {
-    /* ./metamodel//abstractmetamodel.nit:491 */
+    /* metamodel/abstractmetamodel.nit:491 */
     REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -2656,7 +2656,7 @@ void metamodel___abstractmetamodel___MMLocalClass___register_global_property(val
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
     CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3], fra.me.REG[5]);
   }
-  /* ./metamodel//abstractmetamodel.nit:493 */
+  /* metamodel/abstractmetamodel.nit:493 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2664,7 +2664,7 @@ void metamodel___abstractmetamodel___MMLocalClass___register_global_property(val
   }
   fra.me.REG[5] = ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
-  /* ./metamodel//abstractmetamodel.nit:494 */
+  /* metamodel/abstractmetamodel.nit:494 */
   CALL_metamodel___abstractmetamodel___MMLocalClass___register_local_property(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
@@ -2684,7 +2684,7 @@ val_t metamodel___abstractmetamodel___MMLocalClass___has_global_property(val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:500 */
+  /* metamodel/abstractmetamodel.nit:500 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2712,7 +2712,7 @@ val_t metamodel___abstractmetamodel___MMLocalClass_____bra(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:506 */
+  /* metamodel/abstractmetamodel.nit:506 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2737,7 +2737,7 @@ val_t metamodel___abstractmetamodel___MMLocalClass___context(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:510 */
+  /* metamodel/abstractmetamodel.nit:510 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMModule___context(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -2758,7 +2758,7 @@ val_t metamodel___abstractmetamodel___MMLocalClass___to_s(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:514 */
+  /* metamodel/abstractmetamodel.nit:514 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2791,7 +2791,7 @@ val_t metamodel___abstractmetamodel___MMLocalClass___total_order_compare(val_t p
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:521 */
+  /* metamodel/abstractmetamodel.nit:521 */
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[1]));
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2799,11 +2799,11 @@ val_t metamodel___abstractmetamodel___MMLocalClass___total_order_compare(val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//abstractmetamodel.nit:522 */
+    /* metamodel/abstractmetamodel.nit:522 */
     REGB0 = TAG_Int(0);
     goto label1;
   } else {
-    /* ./metamodel//abstractmetamodel.nit:523 */
+    /* metamodel/abstractmetamodel.nit:523 */
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
@@ -2813,12 +2813,12 @@ val_t metamodel___abstractmetamodel___MMLocalClass___total_order_compare(val_t p
     }
     REGB1 = CALL_metamodel___partial_order___PartialOrderElement_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
     if (UNTAG_Bool(REGB1)) {
-      /* ./metamodel//abstractmetamodel.nit:524 */
+      /* metamodel/abstractmetamodel.nit:524 */
       REGB1 = TAG_Int(1);
       REGB0 = REGB1;
       goto label1;
     } else {
-      /* ./metamodel//abstractmetamodel.nit:525 */
+      /* metamodel/abstractmetamodel.nit:525 */
       fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[3])(fra.me.REG[3]);
       fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
@@ -2828,20 +2828,20 @@ val_t metamodel___abstractmetamodel___MMLocalClass___total_order_compare(val_t p
       }
       REGB1 = CALL_metamodel___partial_order___PartialOrderElement_____l(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
       if (UNTAG_Bool(REGB1)) {
-        /* ./metamodel//abstractmetamodel.nit:526 */
+        /* metamodel/abstractmetamodel.nit:526 */
         REGB1 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:236 */
+        /* ../lib/standard/kernel.nit:236 */
         REGB1 = TAG_Int(-UNTAG_Int(REGB1));
-        /* ./metamodel//abstractmetamodel.nit:526 */
+        /* metamodel/abstractmetamodel.nit:526 */
         REGB0 = REGB1;
         goto label1;
       }
     }
   }
-  /* ./metamodel//abstractmetamodel.nit:528 */
+  /* metamodel/abstractmetamodel.nit:528 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = CALL_metamodel___partial_order___PartialOrderElement___rank(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./metamodel//abstractmetamodel.nit:529 */
+  /* metamodel/abstractmetamodel.nit:529 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
   REGB2 = CALL_metamodel___partial_order___PartialOrderElement___rank(fra.me.REG[2])(fra.me.REG[2]);
   REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
@@ -2849,11 +2849,11 @@ val_t metamodel___abstractmetamodel___MMLocalClass___total_order_compare(val_t p
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB3 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
-  /* ./metamodel//abstractmetamodel.nit:530 */
+  /* metamodel/abstractmetamodel.nit:530 */
   if (UNTAG_Bool(REGB3)) {
-    /* ./metamodel//abstractmetamodel.nit:531 */
+    /* metamodel/abstractmetamodel.nit:531 */
     REGB3 = TAG_Int(1);
     REGB0 = REGB3;
     goto label1;
@@ -2863,19 +2863,19 @@ val_t metamodel___abstractmetamodel___MMLocalClass___total_order_compare(val_t p
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB2)>UNTAG_Int(REGB1));
-    /* ./metamodel//abstractmetamodel.nit:532 */
+    /* metamodel/abstractmetamodel.nit:532 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./metamodel//abstractmetamodel.nit:533 */
+      /* metamodel/abstractmetamodel.nit:533 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:236 */
+      /* ../lib/standard/kernel.nit:236 */
       REGB1 = TAG_Int(-UNTAG_Int(REGB1));
-      /* ./metamodel//abstractmetamodel.nit:533 */
+      /* metamodel/abstractmetamodel.nit:533 */
       REGB0 = REGB1;
       goto label1;
     } else {
-      /* ./metamodel//abstractmetamodel.nit:535 */
+      /* metamodel/abstractmetamodel.nit:535 */
       fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
@@ -2902,7 +2902,7 @@ val_t metamodel___abstractmetamodel___MMGlobalProperty___intro(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:544 */
+  /* metamodel/abstractmetamodel.nit:544 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalProperty____intro(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2924,7 +2924,7 @@ val_t metamodel___abstractmetamodel___MMGlobalProperty___local_class(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:550 */
+  /* metamodel/abstractmetamodel.nit:550 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -2945,7 +2945,7 @@ val_t metamodel___abstractmetamodel___MMGlobalProperty___property_hierarchy(val_
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:553 */
+  /* metamodel/abstractmetamodel.nit:553 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalProperty____property_hierarchy(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2972,9 +2972,9 @@ void metamodel___abstractmetamodel___MMGlobalProperty___init(val_t p0, val_t p1,
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:559 */
+  /* metamodel/abstractmetamodel.nit:559 */
   ATTR_metamodel___abstractmetamodel___MMGlobalProperty____intro(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:560 */
+  /* metamodel/abstractmetamodel.nit:560 */
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
   CALL_metamodel___abstractmetamodel___MMGlobalProperty___add_local_property(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -2993,7 +2993,7 @@ val_t metamodel___abstractmetamodel___MMGlobalProperty___to_s(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:563 */
+  /* metamodel/abstractmetamodel.nit:563 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -3018,7 +3018,7 @@ void metamodel___abstractmetamodel___MMGlobalProperty___add_local_property(val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./metamodel//abstractmetamodel.nit:568 */
+  /* metamodel/abstractmetamodel.nit:568 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalProperty____property_hierarchy(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3044,7 +3044,7 @@ val_t metamodel___abstractmetamodel___MMGlobalProperty___is_attribute(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:572 */
+  /* metamodel/abstractmetamodel.nit:572 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___abstractmetamodel___MMAttribute, ID_metamodel___abstractmetamodel___MMAttribute)) /*cast MMAttribute*/;
   goto label1;
@@ -3066,7 +3066,7 @@ val_t metamodel___abstractmetamodel___MMGlobalProperty___is_method(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:575 */
+  /* metamodel/abstractmetamodel.nit:575 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
   goto label1;
@@ -3087,7 +3087,7 @@ val_t metamodel___abstractmetamodel___MMGlobalProperty___is_init(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:577 */
+  /* metamodel/abstractmetamodel.nit:577 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalProperty____is_init(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3111,7 +3111,7 @@ void metamodel___abstractmetamodel___MMGlobalProperty___is_init__eq(val_t p0, va
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./metamodel//abstractmetamodel.nit:577 */
+  /* metamodel/abstractmetamodel.nit:577 */
   ATTR_metamodel___abstractmetamodel___MMGlobalProperty____is_init(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -3134,17 +3134,17 @@ val_t metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(val_t p0, v
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:583 */
+  /* metamodel/abstractmetamodel.nit:583 */
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(false);
     goto label1;
   }
-  /* ./metamodel//abstractmetamodel.nit:584 */
+  /* metamodel/abstractmetamodel.nit:584 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./metamodel//abstractmetamodel.nit:585 */
+  /* metamodel/abstractmetamodel.nit:585 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[1])(fra.me.REG[1]);
   REGB1 = CALL_metamodel___partial_order___PartialOrderElement_____leq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
   if (UNTAG_Bool(REGB1)) {
@@ -3162,7 +3162,7 @@ val_t metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(val_t p0, v
     REGB2 = TAG_Bool(false);
     REGB1 = REGB2;
   }
-  /* ./metamodel//abstractmetamodel.nit:586 */
+  /* metamodel/abstractmetamodel.nit:586 */
   REGB0 = REGB1;
   goto label1;
   label1: while(0);
@@ -3182,7 +3182,7 @@ val_t metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(val_t
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:589 */
+  /* metamodel/abstractmetamodel.nit:589 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalProperty____visibility_level(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3206,7 +3206,7 @@ void metamodel___abstractmetamodel___MMGlobalProperty___visibility_level__eq(val
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./metamodel//abstractmetamodel.nit:589 */
+  /* metamodel/abstractmetamodel.nit:589 */
   ATTR_metamodel___abstractmetamodel___MMGlobalProperty____visibility_level(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -3224,7 +3224,7 @@ val_t metamodel___abstractmetamodel___MMLocalProperty___name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:598 */
+  /* metamodel/abstractmetamodel.nit:598 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3247,7 +3247,7 @@ val_t metamodel___abstractmetamodel___MMLocalProperty___local_class(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:601 */
+  /* metamodel/abstractmetamodel.nit:601 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3271,7 +3271,7 @@ val_t metamodel___abstractmetamodel___MMLocalProperty___global(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:607 */
+  /* metamodel/abstractmetamodel.nit:607 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_metamodel___abstractmetamodel___MMLocalProperty____global(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
@@ -3298,7 +3298,7 @@ val_t metamodel___abstractmetamodel___MMLocalProperty___is_global_set(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:608 */
+  /* metamodel/abstractmetamodel.nit:608 */
   fra.me.REG[0] = ATTR_metamodel___abstractmetamodel___MMLocalProperty____global(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -3332,7 +3332,7 @@ val_t metamodel___abstractmetamodel___MMLocalProperty___prhe(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:613 */
+  /* metamodel/abstractmetamodel.nit:613 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_metamodel___abstractmetamodel___MMLocalProperty____prhe(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
@@ -3358,7 +3358,7 @@ val_t metamodel___abstractmetamodel___MMLocalProperty___mmmodule(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:616 */
+  /* metamodel/abstractmetamodel.nit:616 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3400,7 +3400,7 @@ val_t metamodel___abstractmetamodel___MMLocalProperty___full_name(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:621 */
+  /* metamodel/abstractmetamodel.nit:621 */
   fra.me.REG[1] = ATTR_metamodel___abstractmetamodel___MMLocalProperty____global(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -3415,7 +3415,7 @@ val_t metamodel___abstractmetamodel___MMLocalProperty___full_name(val_t p0){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//abstractmetamodel.nit:622 */
+    /* metamodel/abstractmetamodel.nit:622 */
     REGB0 = TAG_Int(7);
     fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -3467,7 +3467,7 @@ val_t metamodel___abstractmetamodel___MMLocalProperty___full_name(val_t p0){
     fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
     goto label5;
   } else {
-    /* ./metamodel//abstractmetamodel.nit:623 */
+    /* metamodel/abstractmetamodel.nit:623 */
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[0]));
@@ -3477,7 +3477,7 @@ val_t metamodel___abstractmetamodel___MMLocalProperty___full_name(val_t p0){
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./metamodel//abstractmetamodel.nit:624 */
+      /* metamodel/abstractmetamodel.nit:624 */
       REGB0 = TAG_Int(7);
       fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_6) {
@@ -3530,7 +3530,7 @@ val_t metamodel___abstractmetamodel___MMLocalProperty___full_name(val_t p0){
       fra.me.REG[1] = fra.me.REG[2];
       goto label5;
     } else {
-      /* ./metamodel//abstractmetamodel.nit:626 */
+      /* metamodel/abstractmetamodel.nit:626 */
       REGB0 = TAG_Int(7);
       fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_10) {
@@ -3604,9 +3604,9 @@ void metamodel___abstractmetamodel___MMLocalProperty___set_global(val_t p0, val_
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:633 */
+  /* metamodel/abstractmetamodel.nit:633 */
   ATTR_metamodel___abstractmetamodel___MMLocalProperty____global(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:634 */
+  /* metamodel/abstractmetamodel.nit:634 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3632,7 +3632,7 @@ void metamodel___abstractmetamodel___MMLocalProperty___new_global(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:640 */
+  /* metamodel/abstractmetamodel.nit:640 */
   fra.me.REG[1] = ATTR_metamodel___abstractmetamodel___MMLocalProperty____global(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -3650,11 +3650,11 @@ void metamodel___abstractmetamodel___MMLocalProperty___new_global(val_t p0){
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___abstractmetamodel, 640);
   }
-  /* ./metamodel//abstractmetamodel.nit:641 */
+  /* metamodel/abstractmetamodel.nit:641 */
   fra.me.REG[1] = NEW_MMGlobalProperty_metamodel___abstractmetamodel___MMGlobalProperty___init(fra.me.REG[0]);
-  /* ./metamodel//abstractmetamodel.nit:642 */
+  /* metamodel/abstractmetamodel.nit:642 */
   ATTR_metamodel___abstractmetamodel___MMLocalProperty____global(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:643 */
+  /* metamodel/abstractmetamodel.nit:643 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3677,7 +3677,7 @@ val_t metamodel___abstractmetamodel___MMLocalProperty___to_s(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:646 */
+  /* metamodel/abstractmetamodel.nit:646 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -3698,7 +3698,7 @@ val_t metamodel___abstractmetamodel___MMLocalProperty___need_super(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:648 */
+  /* metamodel/abstractmetamodel.nit:648 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3722,7 +3722,7 @@ void metamodel___abstractmetamodel___MMLocalProperty___need_super__eq(val_t p0,
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./metamodel//abstractmetamodel.nit:648 */
+  /* metamodel/abstractmetamodel.nit:648 */
   ATTR_metamodel___abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -3745,9 +3745,9 @@ void metamodel___abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./metamodel//abstractmetamodel.nit:653 */
+  /* metamodel/abstractmetamodel.nit:653 */
   ATTR_metamodel___abstractmetamodel___MMLocalProperty____name(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:654 */
+  /* metamodel/abstractmetamodel.nit:654 */
   ATTR_metamodel___abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos6] = 1;
@@ -3766,7 +3766,7 @@ val_t metamodel___abstractmetamodel___MMExplicitImport___local_class(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:664 */
+  /* metamodel/abstractmetamodel.nit:664 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMExplicitImport_____atlocal_class(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3790,7 +3790,7 @@ void metamodel___abstractmetamodel___MMExplicitImport___local_class__eq(val_t p0
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:664 */
+  /* metamodel/abstractmetamodel.nit:664 */
   ATTR_metamodel___abstractmetamodel___MMExplicitImport_____atlocal_class(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -3808,7 +3808,7 @@ val_t metamodel___abstractmetamodel___MMExplicitImport___method(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:665 */
+  /* metamodel/abstractmetamodel.nit:665 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMExplicitImport_____atmethod(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3832,7 +3832,7 @@ void metamodel___abstractmetamodel___MMExplicitImport___method__eq(val_t p0, val
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:665 */
+  /* metamodel/abstractmetamodel.nit:665 */
   ATTR_metamodel___abstractmetamodel___MMExplicitImport_____atmethod(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -3871,7 +3871,7 @@ val_t metamodel___abstractmetamodel___MMMethod___is_intern(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./metamodel//abstractmetamodel.nit:671 */
+  /* metamodel/abstractmetamodel.nit:671 */
   nit_abort("Deferred method called", NULL, LOCATE_metamodel___abstractmetamodel, 671);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3886,7 +3886,7 @@ val_t metamodel___abstractmetamodel___MMMethod___is_abstract(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./metamodel//abstractmetamodel.nit:674 */
+  /* metamodel/abstractmetamodel.nit:674 */
   nit_abort("Deferred method called", NULL, LOCATE_metamodel___abstractmetamodel, 674);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3901,7 +3901,7 @@ val_t metamodel___abstractmetamodel___MMMethod___is_extern(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./metamodel//abstractmetamodel.nit:677 */
+  /* metamodel/abstractmetamodel.nit:677 */
   nit_abort("Deferred method called", NULL, LOCATE_metamodel___abstractmetamodel, 677);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3916,7 +3916,7 @@ val_t metamodel___abstractmetamodel___MMMethod___extern_name(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./metamodel//abstractmetamodel.nit:680 */
+  /* metamodel/abstractmetamodel.nit:680 */
   nit_abort("Deferred method called", NULL, LOCATE_metamodel___abstractmetamodel, 680);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3931,7 +3931,7 @@ val_t metamodel___abstractmetamodel___MMMethod___explicit_imports(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./metamodel//abstractmetamodel.nit:683 */
+  /* metamodel/abstractmetamodel.nit:683 */
   nit_abort("Deferred method called", NULL, LOCATE_metamodel___abstractmetamodel, 683);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
index edc27af..be1c940 100644 (file)
@@ -16,18 +16,18 @@ val_t metamodel___genericity___MMLocalClass___get_formal(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./metamodel//genericity.nit:28 */
+  /* metamodel/genericity.nit:28 */
   fra.me.REG[0] = CALL_metamodel___genericity___MMLocalClass___formals_types(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -40,29 +40,29 @@ val_t metamodel___genericity___MMLocalClass___get_formal(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
   } else {
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB2 = TAG_Bool(false);
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+    nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
   }
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
   REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
   }
-  /* ./../lib/standard//collection//array.nit:718 */
+  /* ../lib/standard/collection/array.nit:718 */
   fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   goto label1;
   label1: while(0);
-  /* ./metamodel//genericity.nit:28 */
+  /* metamodel/genericity.nit:28 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -86,7 +86,7 @@ void metamodel___genericity___MMLocalClass___register_formal(val_t p0, val_t p1)
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//genericity.nit:35 */
+  /* metamodel/genericity.nit:35 */
   fra.me.REG[2] = CALL_metamodel___genericity___MMTypeFormalParameter___def_class(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[0]));
   if (UNTAG_Bool(REGB0)) {
@@ -98,7 +98,7 @@ void metamodel___genericity___MMLocalClass___register_formal(val_t p0, val_t p1)
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___genericity, 35);
   }
-  /* ./metamodel//genericity.nit:36 */
+  /* metamodel/genericity.nit:36 */
   REGB0 = CALL_metamodel___genericity___MMTypeFormalParameter___position(fra.me.REG[1])(fra.me.REG[1]);
   REGB1 = TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____formals_types(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -106,27 +106,27 @@ void metamodel___genericity___MMLocalClass___register_formal(val_t p0, val_t p1)
     nit_abort("Uninitialized attribute %s", "_formals_types", LOCATE_metamodel___genericity, 36);
   }
   fra.me.REG[2] = ATTR_metamodel___genericity___MMLocalClass____formals_types(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./metamodel//genericity.nit:36 */
+  /* metamodel/genericity.nit:36 */
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./metamodel//genericity.nit:36 */
+    /* metamodel/genericity.nit:36 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___genericity, 36);
   }
-  /* ./metamodel//genericity.nit:37 */
+  /* metamodel/genericity.nit:37 */
   REGB2 = TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____formals_types(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -157,27 +157,27 @@ val_t metamodel___genericity___MMLocalClass___get_instantiate_type(val_t p0, val
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//genericity.nit:46 */
+  /* metamodel/genericity.nit:46 */
   REGB0 = TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____types(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_types", LOCATE_metamodel___genericity, 46);
   }
   fra.me.REG[2] = ATTR_metamodel___genericity___MMLocalClass____types(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -189,37 +189,37 @@ val_t metamodel___genericity___MMLocalClass___get_instantiate_type(val_t p0, val
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
-      /* ./metamodel//genericity.nit:47 */
+      /* metamodel/genericity.nit:47 */
       REGB1 = CALL_metamodel___genericity___MMTypeGeneric___params_equals(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
       if (UNTAG_Bool(REGB1)) {
         goto label1;
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./metamodel//genericity.nit:49 */
+  /* metamodel/genericity.nit:49 */
   fra.me.REG[1] = NEW_MMTypeGeneric_metamodel___genericity___MMTypeGeneric___init(fra.me.REG[0], fra.me.REG[1]);
-  /* ./metamodel//genericity.nit:50 */
+  /* metamodel/genericity.nit:50 */
   REGB0 = TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____types(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -227,7 +227,7 @@ val_t metamodel___genericity___MMLocalClass___get_instantiate_type(val_t p0, val
   }
   fra.me.REG[0] = ATTR_metamodel___genericity___MMLocalClass____types(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./metamodel//genericity.nit:51 */
+  /* metamodel/genericity.nit:51 */
   fra.me.REG[4] = fra.me.REG[1];
   goto label1;
   label1: while(0);
@@ -254,7 +254,7 @@ val_t metamodel___genericity___MMLocalClass___formals_types(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//genericity.nit:61 */
+  /* metamodel/genericity.nit:61 */
   REGB0 = TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____formals_types(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -263,87 +263,87 @@ val_t metamodel___genericity___MMLocalClass___formals_types(val_t p0){
   fra.me.REG[1] = ATTR_metamodel___genericity___MMLocalClass____formals_types(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//genericity.nit:62 */
+    /* metamodel/genericity.nit:62 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Assert failed", NULL, LOCATE_metamodel___genericity, 62);
     }
-    /* ./metamodel//genericity.nit:65 */
+    /* metamodel/genericity.nit:65 */
     REGB0 = TAG_Int(0);
     REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     while(1) {
       REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       if (UNTAG_Bool(REGB2)) {
-        /* ./metamodel//genericity.nit:65 */
+        /* metamodel/genericity.nit:65 */
         REGB2 = REGB0;
-        /* ./metamodel//genericity.nit:66 */
+        /* metamodel/genericity.nit:66 */
         fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
         fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[1] = CALL_metamodel___genericity___MMLocalClass___get_formal(fra.me.REG[1])(fra.me.REG[1], REGB2);
-        /* ./metamodel//genericity.nit:67 */
+        /* metamodel/genericity.nit:67 */
         fra.me.REG[1] = CALL_metamodel___type_formal___MMTypeFormal___name(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[1] = NEW_MMTypeFormalParameter_metamodel___genericity___MMTypeFormalParameter___init(fra.me.REG[1], REGB2, fra.me.REG[0]);
-        /* ./metamodel//genericity.nit:68 */
+        /* metamodel/genericity.nit:68 */
         CALL_metamodel___genericity___MMLocalClass___register_formal(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB0 = REGB2;
       } else {
-        /* ./../lib/standard//kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:352 */
         goto label1;
       }
     }
     label1: while(0);
-    /* ./metamodel//genericity.nit:71 */
+    /* metamodel/genericity.nit:71 */
     REGB0 = TAG_Int(0);
     REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     while(1) {
       REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       if (UNTAG_Bool(REGB2)) {
-        /* ./metamodel//genericity.nit:71 */
+        /* metamodel/genericity.nit:71 */
         REGB2 = REGB0;
-        /* ./metamodel//genericity.nit:72 */
+        /* metamodel/genericity.nit:72 */
         fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
         fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[1] = CALL_metamodel___genericity___MMLocalClass___get_formal(fra.me.REG[1])(fra.me.REG[1], REGB2);
-        /* ./metamodel//genericity.nit:73 */
+        /* metamodel/genericity.nit:73 */
         REGB3 = TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____formals_types(fra.me.REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_formals_types", LOCATE_metamodel___genericity, 73);
         }
         fra.me.REG[2] = ATTR_metamodel___genericity___MMLocalClass____formals_types(fra.me.REG[0]);
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB3 = TAG_Int(0);
         REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB4)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB3)) {
           REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
@@ -356,47 +356,47 @@ val_t metamodel___genericity___MMLocalClass___formals_types(val_t p0){
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
         } else {
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB4 = TAG_Bool(false);
           REGB3 = REGB4;
         }
         if (UNTAG_Bool(REGB3)) {
         } else {
-          nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+          nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
         }
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB2)];
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         goto label2;
         label2: while(0);
-        /* ./metamodel//genericity.nit:74 */
+        /* metamodel/genericity.nit:74 */
         fra.me.REG[1] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
         fra.me.REG[3] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
         CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB0 = REGB2;
       } else {
-        /* ./../lib/standard//kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:352 */
         goto label3;
       }
     }
     label3: while(0);
   }
-  /* ./metamodel//genericity.nit:77 */
+  /* metamodel/genericity.nit:77 */
   REGB0 = TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____formals_types(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -424,9 +424,9 @@ val_t metamodel___genericity___MMLocalClass___get_type(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//genericity.nit:80 */
+  /* metamodel/genericity.nit:80 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./metamodel//genericity.nit:82 */
+  /* metamodel/genericity.nit:82 */
   fra.me.REG[2] = ATTR_metamodel___static_type___MMLocalClass____base_type_cache(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -447,11 +447,11 @@ val_t metamodel___genericity___MMLocalClass___get_type(val_t p0){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//genericity.nit:83 */
+    /* metamodel/genericity.nit:83 */
     fra.me.REG[2] = CALL_metamodel___genericity___MMLocalClass___formals_types(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[2] = CALL_metamodel___genericity___MMLocalClass___get_instantiate_type(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
     ATTR_metamodel___static_type___MMLocalClass____base_type_cache(fra.me.REG[1]) = fra.me.REG[2];
-    /* ./metamodel//genericity.nit:84 */
+    /* metamodel/genericity.nit:84 */
     fra.me.REG[1] = ATTR_metamodel___static_type___MMLocalClass____base_type_cache(fra.me.REG[1]);
     REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMType, ID_metamodel___static_type___MMType)) /*cast MMType*/;
     if (UNTAG_Bool(REGB0)) {
@@ -460,7 +460,7 @@ val_t metamodel___genericity___MMLocalClass___get_type(val_t p0){
     }
     goto label1;
   } else {
-    /* ./metamodel//genericity.nit:86 */
+    /* metamodel/genericity.nit:86 */
     fra.me.REG[0] = CALL_SUPER_metamodel___genericity___MMLocalClass___get_type(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = fra.me.REG[0];
     goto label1;
@@ -484,7 +484,7 @@ val_t metamodel___genericity___MMLocalClass___is_generic(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//genericity.nit:91 */
+  /* metamodel/genericity.nit:91 */
   REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -492,9 +492,9 @@ val_t metamodel___genericity___MMLocalClass___is_generic(val_t p0){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-  /* ./metamodel//genericity.nit:91 */
+  /* metamodel/genericity.nit:91 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -510,7 +510,7 @@ val_t metamodel___genericity___MMType___is_generic(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./metamodel//genericity.nit:95 */
+  /* metamodel/genericity.nit:95 */
   nit_abort("Deferred method called", NULL, LOCATE_metamodel___genericity, 95);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -528,7 +528,7 @@ val_t metamodel___genericity___MMTypeFormal___is_generic(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//genericity.nit:100 */
+  /* metamodel/genericity.nit:100 */
   fra.me.REG[0] = ATTR_metamodel___type_formal___MMTypeFormal____bound(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -553,7 +553,7 @@ val_t metamodel___genericity___MMTypeSimpleClass___is_generic(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//genericity.nit:104 */
+  /* metamodel/genericity.nit:104 */
   REGB0 = TAG_Bool(false);
   goto label1;
   label1: while(0);
@@ -573,7 +573,7 @@ val_t metamodel___genericity___MMTypeGeneric___params(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//genericity.nit:109 */
+  /* metamodel/genericity.nit:109 */
   REGB0 = TAG_Bool(ATTR_metamodel___genericity___MMTypeGeneric____params(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -596,7 +596,7 @@ val_t metamodel___genericity___MMTypeGeneric___is_generic(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//genericity.nit:112 */
+  /* metamodel/genericity.nit:112 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -621,7 +621,7 @@ val_t metamodel___genericity___MMTypeGeneric___is_supertype(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//genericity.nit:116 */
+  /* metamodel/genericity.nit:116 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
@@ -632,7 +632,7 @@ val_t metamodel___genericity___MMTypeGeneric___is_supertype(val_t p0, val_t p1){
   fra.me.REG[3] = ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0]);
   REGB0 = CALL_metamodel___partial_order___PartialOrderElement_____leq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//genericity.nit:117 */
+    /* metamodel/genericity.nit:117 */
     REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -640,15 +640,15 @@ val_t metamodel___genericity___MMTypeGeneric___is_supertype(val_t p0, val_t p1){
     }
     fra.me.REG[3] = ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0]);
     fra.me.REG[3] = CALL_metamodel___static_type___MMType___upcast_for(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-    /* ./metamodel//genericity.nit:118 */
+    /* metamodel/genericity.nit:118 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_metamodel___genericity___MMTypeGeneric, ID_metamodel___genericity___MMTypeGeneric)) /*cast MMTypeGeneric*/;
     if (UNTAG_Bool(REGB0)) {
-      /* ./metamodel//genericity.nit:119 */
+      /* metamodel/genericity.nit:119 */
       REGB0 = CALL_metamodel___genericity___MMTypeGeneric___is_subtype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
       goto label1;
     }
   }
-  /* ./metamodel//genericity.nit:122 */
+  /* metamodel/genericity.nit:122 */
   REGB1 = TAG_Bool(false);
   REGB0 = REGB1;
   goto label1;
@@ -673,11 +673,11 @@ val_t metamodel___genericity___MMTypeGeneric___upcast_for(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//genericity.nit:125 */
+  /* metamodel/genericity.nit:125 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./metamodel//genericity.nit:127 */
+  /* metamodel/genericity.nit:127 */
   fra.me.REG[1] = CALL_SUPER_metamodel___genericity___MMTypeGeneric___upcast_for(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./metamodel//genericity.nit:128 */
+  /* metamodel/genericity.nit:128 */
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[2]));
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -686,11 +686,11 @@ val_t metamodel___genericity___MMTypeGeneric___upcast_for(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//genericity.nit:129 */
+    /* metamodel/genericity.nit:129 */
     fra.me.REG[2] = CALL_metamodel___static_type___MMType___adapt_to(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
     fra.me.REG[1] = fra.me.REG[2];
   }
-  /* ./metamodel//genericity.nit:131 */
+  /* metamodel/genericity.nit:131 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -718,9 +718,9 @@ val_t metamodel___genericity___MMTypeGeneric___for_module(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//genericity.nit:136 */
+  /* metamodel/genericity.nit:136 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./metamodel//genericity.nit:137 */
+  /* metamodel/genericity.nit:137 */
   fra.me.REG[3] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
   if (UNTAG_Bool(REGB0)) {
@@ -730,29 +730,29 @@ val_t metamodel___genericity___MMTypeGeneric___for_module(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//genericity.nit:138 */
+    /* metamodel/genericity.nit:138 */
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-    /* ./metamodel//genericity.nit:139 */
+    /* metamodel/genericity.nit:139 */
     REGB0 = TAG_Bool(ATTR_metamodel___genericity___MMTypeGeneric____params(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___genericity, 139);
     }
     fra.me.REG[4] = ATTR_metamodel___genericity___MMTypeGeneric____params(fra.me.REG[0]);
-    /* ./../lib/standard//collection//array.nit:269 */
+    /* ../lib/standard/collection/array.nit:269 */
     REGB0 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:270 */
+    /* ../lib/standard/collection/array.nit:270 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-    /* ./../lib/standard//collection//array.nit:271 */
+    /* ../lib/standard/collection/array.nit:271 */
     fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     while(1) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -764,33 +764,33 @@ val_t metamodel___genericity___MMTypeGeneric___for_module(val_t p0, val_t p1){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       if (UNTAG_Bool(REGB1)) {
-        /* ./../lib/standard//collection//array.nit:273 */
+        /* ../lib/standard/collection/array.nit:273 */
         REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-        /* ./metamodel//genericity.nit:140 */
+        /* metamodel/genericity.nit:140 */
         fra.me.REG[6] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1]);
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB1 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB0 = REGB1;
       } else {
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         goto label1;
       }
     }
     label1: while(0);
-    /* ./metamodel//genericity.nit:142 */
+    /* metamodel/genericity.nit:142 */
     REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -798,11 +798,11 @@ val_t metamodel___genericity___MMTypeGeneric___for_module(val_t p0, val_t p1){
     }
     fra.me.REG[0] = ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0]);
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    /* ./metamodel//genericity.nit:143 */
+    /* metamodel/genericity.nit:143 */
     fra.me.REG[3] = CALL_metamodel___genericity___MMLocalClass___get_instantiate_type(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
     fra.me.REG[2] = fra.me.REG[3];
   }
-  /* ./metamodel//genericity.nit:145 */
+  /* metamodel/genericity.nit:145 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -829,29 +829,29 @@ val_t metamodel___genericity___MMTypeGeneric___adapt_to(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//genericity.nit:150 */
+  /* metamodel/genericity.nit:150 */
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-  /* ./metamodel//genericity.nit:151 */
+  /* metamodel/genericity.nit:151 */
   REGB0 = TAG_Bool(ATTR_metamodel___genericity___MMTypeGeneric____params(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___genericity, 151);
   }
   fra.me.REG[3] = ATTR_metamodel___genericity___MMTypeGeneric____params(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -863,33 +863,33 @@ val_t metamodel___genericity___MMTypeGeneric___adapt_to(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-      /* ./metamodel//genericity.nit:152 */
+      /* metamodel/genericity.nit:152 */
       fra.me.REG[5] = CALL_metamodel___static_type___MMType___adapt_to(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./metamodel//genericity.nit:154 */
+  /* metamodel/genericity.nit:154 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -897,7 +897,7 @@ val_t metamodel___genericity___MMTypeGeneric___adapt_to(val_t p0, val_t p1){
   }
   fra.me.REG[0] = ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0]);
   fra.me.REG[2] = CALL_metamodel___genericity___MMLocalClass___get_instantiate_type(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./metamodel//genericity.nit:155 */
+  /* metamodel/genericity.nit:155 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -926,83 +926,83 @@ val_t metamodel___genericity___MMTypeGeneric___params_equals(val_t p0, val_t p1)
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./metamodel//genericity.nit:160 */
+  /* metamodel/genericity.nit:160 */
   REGB1 = TAG_Bool(ATTR_metamodel___genericity___MMTypeGeneric____params(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___genericity, 160);
   }
   fra.me.REG[2] = ATTR_metamodel___genericity___MMTypeGeneric____params(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./metamodel//genericity.nit:160 */
+  /* metamodel/genericity.nit:160 */
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./metamodel//genericity.nit:160 */
+    /* metamodel/genericity.nit:160 */
     REGB2 = REGB1;
   }
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   if (UNTAG_Bool(REGB2)) {
-    /* ./metamodel//genericity.nit:161 */
+    /* metamodel/genericity.nit:161 */
     REGB2 = TAG_Bool(false);
     goto label1;
   }
-  /* ./metamodel//genericity.nit:163 */
+  /* metamodel/genericity.nit:163 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB3)) {
-      /* ./metamodel//genericity.nit:163 */
+      /* metamodel/genericity.nit:163 */
       REGB3 = REGB1;
-      /* ./metamodel//genericity.nit:164 */
+      /* metamodel/genericity.nit:164 */
       REGB4 = TAG_Bool(ATTR_metamodel___genericity___MMTypeGeneric____params(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB4)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___genericity, 164);
       }
       fra.me.REG[2] = ATTR_metamodel___genericity___MMTypeGeneric____params(fra.me.REG[0]);
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       REGB4 = REGB3;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB5 = TAG_Int(0);
       REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB6)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB5)) {
         REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
         if (UNTAG_Bool(REGB5)) {
@@ -1015,40 +1015,40 @@ val_t metamodel___genericity___MMTypeGeneric___params_equals(val_t p0, val_t p1)
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB6 = TAG_Bool(false);
         REGB5 = REGB6;
       }
       if (UNTAG_Bool(REGB5)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
       REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB5)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB4)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label2;
       label2: while(0);
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       fra.me.REG[3] = fra.me.REG[1];
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB4 = TAG_Int(0);
       REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB5)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB4)) {
         REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
         if (UNTAG_Bool(REGB4)) {
@@ -1061,29 +1061,29 @@ val_t metamodel___genericity___MMTypeGeneric___params_equals(val_t p0, val_t p1)
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB5 = TAG_Bool(false);
         REGB4 = REGB5;
       }
       if (UNTAG_Bool(REGB4)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
       REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB4)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB3)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label3;
       label3: while(0);
-      /* ./metamodel//genericity.nit:164 */
+      /* metamodel/genericity.nit:164 */
       REGB3 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[3]));
       if (UNTAG_Bool(REGB3)) {
       } else {
@@ -1098,24 +1098,24 @@ val_t metamodel___genericity___MMTypeGeneric___params_equals(val_t p0, val_t p1)
       }
       REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
       if (UNTAG_Bool(REGB3)) {
-        /* ./metamodel//genericity.nit:165 */
+        /* metamodel/genericity.nit:165 */
         REGB3 = TAG_Bool(false);
         REGB2 = REGB3;
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB1 = REGB3;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label4;
     }
   }
   label4: while(0);
-  /* ./metamodel//genericity.nit:168 */
+  /* metamodel/genericity.nit:168 */
   REGB1 = TAG_Bool(true);
   REGB2 = REGB1;
   goto label1;
@@ -1143,9 +1143,9 @@ val_t metamodel___genericity___MMTypeGeneric___to_s(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//genericity.nit:171 */
+  /* metamodel/genericity.nit:171 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./metamodel//genericity.nit:173 */
+  /* metamodel/genericity.nit:173 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -1221,7 +1221,7 @@ val_t metamodel___genericity___MMTypeGeneric___is_subtype(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//genericity.nit:180 */
+  /* metamodel/genericity.nit:180 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(ATTR_metamodel___genericity___MMTypeGeneric____params(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -1229,40 +1229,40 @@ val_t metamodel___genericity___MMTypeGeneric___is_subtype(val_t p0, val_t p1){
     nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___genericity, 180);
   }
   fra.me.REG[2] = ATTR_metamodel___genericity___MMTypeGeneric____params(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./metamodel//genericity.nit:180 */
+      /* metamodel/genericity.nit:180 */
       REGB2 = REGB0;
-      /* ./metamodel//genericity.nit:182 */
+      /* metamodel/genericity.nit:182 */
       fra.me.REG[2] = CALL_metamodel___genericity___MMTypeGeneric___params(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       REGB3 = REGB2;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB4 = TAG_Int(0);
       REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB5)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB4)) {
         REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
         if (UNTAG_Bool(REGB4)) {
@@ -1275,45 +1275,45 @@ val_t metamodel___genericity___MMTypeGeneric___is_subtype(val_t p0, val_t p1){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB5 = TAG_Bool(false);
         REGB4 = REGB5;
       }
       if (UNTAG_Bool(REGB4)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
       REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB4)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB3)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label1;
       label1: while(0);
-      /* ./metamodel//genericity.nit:182 */
+      /* metamodel/genericity.nit:182 */
       REGB3 = TAG_Bool(ATTR_metamodel___genericity___MMTypeGeneric____params(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___genericity, 182);
       }
       fra.me.REG[3] = ATTR_metamodel___genericity___MMTypeGeneric____params(fra.me.REG[0]);
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB3 = TAG_Int(0);
       REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB4)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB3)) {
         REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
@@ -1326,29 +1326,29 @@ val_t metamodel___genericity___MMTypeGeneric___is_subtype(val_t p0, val_t p1){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB4 = TAG_Bool(false);
         REGB3 = REGB4;
       }
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
       REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB2)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label2;
       label2: while(0);
-      /* ./metamodel//genericity.nit:182 */
+      /* metamodel/genericity.nit:182 */
       REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_metamodel___genericity, 182);
@@ -1356,23 +1356,23 @@ val_t metamodel___genericity___MMTypeGeneric___is_subtype(val_t p0, val_t p1){
       REGB2 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
       REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
       if (UNTAG_Bool(REGB2)) {
-        /* ./metamodel//genericity.nit:183 */
+        /* metamodel/genericity.nit:183 */
         REGB2 = TAG_Bool(false);
         goto label3;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB3;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label4;
     }
   }
   label4: while(0);
-  /* ./metamodel//genericity.nit:186 */
+  /* metamodel/genericity.nit:186 */
   REGB0 = TAG_Bool(true);
   REGB2 = REGB0;
   goto label3;
@@ -1399,11 +1399,11 @@ void metamodel___genericity___MMTypeGeneric___init(val_t p0, val_t p1, val_t p2,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./metamodel//genericity.nit:189 */
+  /* metamodel/genericity.nit:189 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./metamodel//genericity.nit:191 */
+  /* metamodel/genericity.nit:191 */
   CALL_metamodel___static_type___MMTypeClass___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
-  /* ./metamodel//genericity.nit:192 */
+  /* metamodel/genericity.nit:192 */
   ATTR_metamodel___genericity___MMTypeGeneric____params(fra.me.REG[3]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -1422,7 +1422,7 @@ val_t metamodel___genericity___MMTypeFormalParameter___def_class(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//genericity.nit:198 */
+  /* metamodel/genericity.nit:198 */
   REGB0 = TAG_Bool(ATTR_metamodel___genericity___MMTypeFormalParameter____def_class(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1445,7 +1445,7 @@ val_t metamodel___genericity___MMTypeFormalParameter___position(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//genericity.nit:201 */
+  /* metamodel/genericity.nit:201 */
   REGB0 = TAG_Bool(ATTR_metamodel___genericity___MMTypeFormalParameter____position(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1468,7 +1468,7 @@ val_t metamodel___genericity___MMTypeFormalParameter___mmmodule(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//genericity.nit:204 */
+  /* metamodel/genericity.nit:204 */
   REGB0 = TAG_Bool(ATTR_metamodel___genericity___MMTypeFormalParameter____def_class(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1499,9 +1499,9 @@ val_t metamodel___genericity___MMTypeFormalParameter___for_module(val_t p0, val_
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//genericity.nit:208 */
+  /* metamodel/genericity.nit:208 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./metamodel//genericity.nit:209 */
+  /* metamodel/genericity.nit:209 */
   fra.me.REG[3] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
   if (UNTAG_Bool(REGB0)) {
@@ -1511,7 +1511,7 @@ val_t metamodel___genericity___MMTypeFormalParameter___for_module(val_t p0, val_
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//genericity.nit:210 */
+    /* metamodel/genericity.nit:210 */
     REGB0 = TAG_Bool(ATTR_metamodel___genericity___MMTypeFormalParameter____def_class(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1524,7 +1524,7 @@ val_t metamodel___genericity___MMTypeFormalParameter___for_module(val_t p0, val_
     fra.me.REG[3] = CALL_metamodel___genericity___MMLocalClass___get_formal(fra.me.REG[3])(fra.me.REG[3], REGB0);
     fra.me.REG[2] = fra.me.REG[3];
   }
-  /* ./metamodel//genericity.nit:212 */
+  /* metamodel/genericity.nit:212 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -1545,7 +1545,7 @@ val_t metamodel___genericity___MMTypeFormalParameter___upcast_for(val_t p0, val_
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//genericity.nit:215 */
+  /* metamodel/genericity.nit:215 */
   fra.me.REG[0] = ATTR_metamodel___type_formal___MMTypeFormal____bound(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1574,7 +1574,7 @@ void metamodel___genericity___MMTypeFormalParameter___bound__eq(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//genericity.nit:219 */
+  /* metamodel/genericity.nit:219 */
   fra.me.REG[2] = ATTR_metamodel___type_formal___MMTypeFormal____bound(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1592,7 +1592,7 @@ void metamodel___genericity___MMTypeFormalParameter___bound__eq(val_t p0, val_t
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___genericity, 219);
   }
-  /* ./metamodel//genericity.nit:220 */
+  /* metamodel/genericity.nit:220 */
   ATTR_metamodel___type_formal___MMTypeFormal____bound(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1615,31 +1615,31 @@ val_t metamodel___genericity___MMTypeFormalParameter___adapt_to(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//genericity.nit:225 */
+  /* metamodel/genericity.nit:225 */
   fra.me.REG[2] = CALL_metamodel___type_formal___MMType___direct_type(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = fra.me.REG[2];
-  /* ./metamodel//genericity.nit:226 */
+  /* metamodel/genericity.nit:226 */
   fra.me.REG[2] = CALL_metamodel___genericity___MMTypeFormalParameter___def_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_metamodel___static_type___MMType___upcast_for(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./metamodel//genericity.nit:231 */
+  /* metamodel/genericity.nit:231 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_metamodel___genericity___MMTypeGeneric, ID_metamodel___genericity___MMTypeGeneric)) /*cast MMTypeGeneric*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___genericity, 231);
   }
-  /* ./metamodel//genericity.nit:232 */
+  /* metamodel/genericity.nit:232 */
   fra.me.REG[2] = CALL_metamodel___genericity___MMTypeGeneric___params(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_metamodel___genericity___MMTypeFormalParameter___position(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -1652,29 +1652,29 @@ val_t metamodel___genericity___MMTypeFormalParameter___adapt_to(val_t p0, val_t
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
   } else {
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB2 = TAG_Bool(false);
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+    nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
   }
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
   REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
   }
-  /* ./../lib/standard//collection//array.nit:718 */
+  /* ../lib/standard/collection/array.nit:718 */
   fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   goto label1;
   label1: while(0);
-  /* ./metamodel//genericity.nit:233 */
+  /* metamodel/genericity.nit:233 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -1702,9 +1702,9 @@ void metamodel___genericity___MMTypeFormalParameter___with_bound(val_t p0, val_t
   REGB0 = p2;
   fra.me.REG[2] = p3;
   fra.me.REG[3] = p4;
-  /* ./metamodel//genericity.nit:238 */
+  /* metamodel/genericity.nit:238 */
   CALL_metamodel___genericity___MMTypeFormalParameter___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, fra.me.REG[2], init_table);
-  /* ./metamodel//genericity.nit:239 */
+  /* metamodel/genericity.nit:239 */
   ATTR_metamodel___type_formal___MMTypeFormal____bound(fra.me.REG[0]) = fra.me.REG[3];
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
@@ -1731,13 +1731,13 @@ void metamodel___genericity___MMTypeFormalParameter___init(val_t p0, val_t p1, v
   fra.me.REG[1] = p1;
   REGB0 = p2;
   fra.me.REG[2] = p3;
-  /* ./metamodel//genericity.nit:242 */
+  /* metamodel/genericity.nit:242 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./metamodel//genericity.nit:244 */
+  /* metamodel/genericity.nit:244 */
   CALL_metamodel___type_formal___MMTypeFormal___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], NIT_NULL, init_table);
-  /* ./metamodel//genericity.nit:245 */
+  /* metamodel/genericity.nit:245 */
   ATTR_metamodel___genericity___MMTypeFormalParameter____position(fra.me.REG[3]) = REGB0;
-  /* ./metamodel//genericity.nit:246 */
+  /* metamodel/genericity.nit:246 */
   ATTR_metamodel___genericity___MMTypeFormalParameter____def_class(fra.me.REG[3]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos2] = 1;
@@ -1756,7 +1756,7 @@ val_t metamodel___genericity___MMTypeNone___is_generic(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//genericity.nit:251 */
+  /* metamodel/genericity.nit:251 */
   REGB0 = TAG_Bool(false);
   goto label1;
   label1: while(0);
@@ -1777,7 +1777,7 @@ val_t metamodel___genericity___MMTypeNone___for_module(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//genericity.nit:252 */
+  /* metamodel/genericity.nit:252 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -1797,7 +1797,7 @@ val_t metamodel___genericity___MMTypeNone___adapt_to(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//genericity.nit:253 */
+  /* metamodel/genericity.nit:253 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
index bd335b9..f8d7125 100644 (file)
@@ -34,14 +34,14 @@ void metamodel___inheritance___MMContext___handle_property_conflict(val_t p0, va
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./metamodel//inheritance.nit:28 */
+  /* metamodel/inheritance.nit:28 */
   fra.me.REG[3] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_metamodel___inheritance, 28);
   }
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./metamodel//inheritance.nit:29 */
+  /* metamodel/inheritance.nit:29 */
   fra.me.REG[4] = CALL_standard___file___Object___stderr(fra.me.REG[0])(fra.me.REG[0]);
   if (!once_value_1) {
     fra.me.REG[5] = BOX_NativeString("Fatal error: inherit_local_property error\n");
@@ -52,7 +52,7 @@ void metamodel___inheritance___MMContext___handle_property_conflict(val_t p0, va
   } else fra.me.REG[5] = once_value_1;
   fra.me.REG[5] = fra.me.REG[5];
   CALL_standard___stream___OStream___write(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-  /* ./metamodel//inheritance.nit:30 */
+  /* metamodel/inheritance.nit:30 */
   REGB0 = TAG_Int(7);
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_2) {
@@ -101,20 +101,20 @@ void metamodel___inheritance___MMContext___handle_property_conflict(val_t p0, va
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
   fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
   CALL_standard___file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -126,18 +126,18 @@ void metamodel___inheritance___MMContext___handle_property_conflict(val_t p0, va
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-      /* ./metamodel//inheritance.nit:32 */
+      /* metamodel/inheritance.nit:32 */
       REGB1 = TAG_Int(3);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_6) {
@@ -162,19 +162,19 @@ void metamodel___inheritance___MMContext___handle_property_conflict(val_t p0, va
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
       fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
       CALL_standard___file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label8;
     }
   }
   label8: while(0);
-  /* ./metamodel//inheritance.nit:34 */
+  /* metamodel/inheritance.nit:34 */
   REGB0 = TAG_Int(3);
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_9) {
@@ -201,7 +201,7 @@ void metamodel___inheritance___MMContext___handle_property_conflict(val_t p0, va
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
   fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
   CALL_standard___file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
-  /* ./metamodel//inheritance.nit:35 */
+  /* metamodel/inheritance.nit:35 */
   REGB0 = TAG_Int(3);
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_11) {
@@ -227,7 +227,7 @@ void metamodel___inheritance___MMContext___handle_property_conflict(val_t p0, va
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
   CALL_standard___file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
-  /* ./metamodel//inheritance.nit:36 */
+  /* metamodel/inheritance.nit:36 */
   REGB0 = TAG_Int(1);
   CALL_standard___kernel___Object___exit(fra.me.REG[0])(fra.me.REG[0], REGB0);
   stack_frame_head = fra.me.prev;
@@ -249,7 +249,7 @@ val_t metamodel___inheritance___MMModule___type_any(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//inheritance.nit:44 */
+  /* metamodel/inheritance.nit:44 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[1] = BOX_NativeString("Object");
@@ -265,7 +265,7 @@ val_t metamodel___inheritance___MMModule___type_any(val_t p0){
   } else fra.me.REG[1] = once_value_1;
   fra.me.REG[1] = fra.me.REG[1];
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./metamodel//inheritance.nit:45 */
+  /* metamodel/inheritance.nit:45 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
   goto label3;
   label3: while(0);
@@ -288,7 +288,7 @@ val_t metamodel___inheritance___MMModule___type_any_extern(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//inheritance.nit:51 */
+  /* metamodel/inheritance.nit:51 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[1] = BOX_NativeString("Pointer");
@@ -304,7 +304,7 @@ val_t metamodel___inheritance___MMModule___type_any_extern(val_t p0){
   } else fra.me.REG[1] = once_value_1;
   fra.me.REG[1] = fra.me.REG[1];
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./metamodel//inheritance.nit:52 */
+  /* metamodel/inheritance.nit:52 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
   goto label3;
   label3: while(0);
@@ -329,9 +329,9 @@ void metamodel___inheritance___MMModule___import_global_classes(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//inheritance.nit:58 */
+  /* metamodel/inheritance.nit:58 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  /* ./metamodel//inheritance.nit:59 */
+  /* metamodel/inheritance.nit:59 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -350,27 +350,27 @@ void metamodel___inheritance___MMModule___import_global_classes(val_t p0){
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___inheritance, 59);
   }
-  /* ./metamodel//inheritance.nit:60 */
+  /* metamodel/inheritance.nit:60 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_metamodel___inheritance, 60);
   }
   fra.me.REG[1] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -382,28 +382,28 @@ void metamodel___inheritance___MMModule___import_global_classes(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./metamodel//inheritance.nit:61 */
+      /* metamodel/inheritance.nit:61 */
       fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___global_classes(fra.me.REG[3])(fra.me.REG[3]);
       CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_metamodel___inheritance___MMModule___import_global_classes_1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label3;
     }
   }
@@ -426,13 +426,13 @@ void metamodel___inheritance___MMModule___import_global_classes(val_t p0){
         fra.me.REG[1] = NIT_NULL;
         fra.me.REG[2] = NIT_NULL;
         fra.me.REG[0] = p0;
-        /* ./metamodel//inheritance.nit:62 */
+        /* metamodel/inheritance.nit:62 */
         fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMModule___global_classes(closctx->REG[0])(closctx->REG[0]);
         REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
         if (UNTAG_Bool(REGB0)) {
           goto label2;
         }
-        /* ./metamodel//inheritance.nit:63 */
+        /* metamodel/inheritance.nit:63 */
         REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____global_classes(closctx->REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
         } else {
@@ -440,7 +440,7 @@ void metamodel___inheritance___MMModule___import_global_classes(val_t p0){
         }
         fra.me.REG[1] = ATTR_metamodel___abstractmetamodel___MMModule____global_classes(closctx->REG[0]);
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-        /* ./metamodel//inheritance.nit:64 */
+        /* metamodel/inheritance.nit:64 */
         REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____global_class_by_name(closctx->REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
         } else {
@@ -467,7 +467,7 @@ void metamodel___inheritance___MMModule___import_local_classes(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//inheritance.nit:73 */
+  /* metamodel/inheritance.nit:73 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____global_classes(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -496,7 +496,7 @@ void metamodel___inheritance___MMModule___import_local_classes(val_t p0){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./metamodel//inheritance.nit:74 */
+    /* metamodel/inheritance.nit:74 */
     REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____local_class_by_global(closctx->REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -507,7 +507,7 @@ void metamodel___inheritance___MMModule___import_local_classes(val_t p0){
     if (UNTAG_Bool(REGB0)) {
       goto label2;
     }
-    /* ./metamodel//inheritance.nit:75 */
+    /* metamodel/inheritance.nit:75 */
     fra.me.REG[0] = NEW_MMImplicitLocalClass_metamodel___inheritance___MMImplicitLocalClass___init(closctx->REG[0], fra.me.REG[0]);
     label2: while(0);
     stack_frame_head = fra.me.prev;
@@ -532,13 +532,13 @@ void metamodel___inheritance___MMLocalClass___compute_super_classes(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//inheritance.nit:91 */
+  /* metamodel/inheritance.nit:91 */
   REGB0 = CALL_metamodel___inheritance___MMLocalClass___computed_super_classes(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//inheritance.nit:93 */
+    /* metamodel/inheritance.nit:93 */
     goto label1;
   } else {
-    /* ./metamodel//inheritance.nit:94 */
+    /* metamodel/inheritance.nit:94 */
     REGB0 = TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____computing_super(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -546,7 +546,7 @@ void metamodel___inheritance___MMLocalClass___compute_super_classes(val_t p0){
     }
     REGB0 = ATTR_metamodel___inheritance___MMLocalClass____computing_super(fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./metamodel//inheritance.nit:95 */
+      /* metamodel/inheritance.nit:95 */
       fra.me.REG[1] = CALL_standard___file___Object___stderr(fra.me.REG[0])(fra.me.REG[0]);
       REGB0 = TAG_Int(3);
       fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -572,34 +572,34 @@ void metamodel___inheritance___MMLocalClass___compute_super_classes(val_t p0){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
       fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
       CALL_standard___stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-      /* ./metamodel//inheritance.nit:96 */
+      /* metamodel/inheritance.nit:96 */
       REGB0 = TAG_Int(1);
       CALL_standard___kernel___Object___exit(fra.me.REG[0])(fra.me.REG[0], REGB0);
     }
   }
-  /* ./metamodel//inheritance.nit:98 */
+  /* metamodel/inheritance.nit:98 */
   REGB0 = TAG_Bool(true);
   ATTR_metamodel___inheritance___MMLocalClass____computing_super(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//inheritance.nit:100 */
+  /* metamodel/inheritance.nit:100 */
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-  /* ./metamodel//inheritance.nit:101 */
+  /* metamodel/inheritance.nit:101 */
   CALL_metamodel___inheritance___MMLocalClass___add_explicit_classes(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./metamodel//inheritance.nit:102 */
+  /* metamodel/inheritance.nit:102 */
   CALL_metamodel___inheritance___MMLocalClass___add_super_classes(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./metamodel//inheritance.nit:103 */
+  /* metamodel/inheritance.nit:103 */
   CALL_metamodel___inheritance___MMLocalClass___add_default_any_class(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./metamodel//inheritance.nit:104 */
+  /* metamodel/inheritance.nit:104 */
   CALL_metamodel___inheritance___MMLocalClass___compute_super_parents(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./metamodel//inheritance.nit:105 */
+  /* metamodel/inheritance.nit:105 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  /* ./metamodel//inheritance.nit:106 */
+  /* metamodel/inheritance.nit:106 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./metamodel//inheritance.nit:107 */
+  /* metamodel/inheritance.nit:107 */
   fra.me.REG[1] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./metamodel//inheritance.nit:108 */
+  /* metamodel/inheritance.nit:108 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
   CALL_metamodel___abstractmetamodel___MMModule___set_supers_class(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1]);
-  /* ./metamodel//inheritance.nit:109 */
+  /* metamodel/inheritance.nit:109 */
   fra.me.REG[1] = ATTR_metamodel___abstractmetamodel___MMLocalClass____crhe(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -618,7 +618,7 @@ void metamodel___inheritance___MMLocalClass___compute_super_classes(val_t p0){
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___inheritance, 109);
   }
-  /* ./metamodel//inheritance.nit:110 */
+  /* metamodel/inheritance.nit:110 */
   fra.me.REG[1] = ATTR_metamodel___abstractmetamodel___MMLocalClass____cshe(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -637,7 +637,7 @@ void metamodel___inheritance___MMLocalClass___compute_super_classes(val_t p0){
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___inheritance, 110);
   }
-  /* ./metamodel//inheritance.nit:111 */
+  /* metamodel/inheritance.nit:111 */
   REGB0 = TAG_Bool(false);
   ATTR_metamodel___inheritance___MMLocalClass____computing_super(fra.me.REG[0]) = REGB0;
   label1: while(0);
@@ -659,24 +659,24 @@ void metamodel___inheritance___MMLocalClass___compute_ancestors(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//inheritance.nit:117 */
+  /* metamodel/inheritance.nit:117 */
   REGB0 = CALL_metamodel___inheritance___MMLocalClass___computed_super_classes(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___inheritance, 117);
   }
-  /* ./metamodel//inheritance.nit:118 */
+  /* metamodel/inheritance.nit:118 */
   REGB0 = CALL_metamodel___inheritance___MMLocalClass___computed_ancestors(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./metamodel//inheritance.nit:120 */
+  /* metamodel/inheritance.nit:120 */
   fra.me.REG[1] = CALL_metamodel___inheritance___MMLocalClass___build_ancestors(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_metamodel___inheritance___MMLocalClass___group_ancestors(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./metamodel//inheritance.nit:121 */
+  /* metamodel/inheritance.nit:121 */
   fra.me.REG[2] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_metamodel___static_type___MMLocalClass____ancestors(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./metamodel//inheritance.nit:123 */
+  /* metamodel/inheritance.nit:123 */
   fra.me.REG[1] = CALL_standard___collection___abstract_collection___MapRead___values(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_metamodel___inheritance___MMLocalClass___compute_ancestors_2));
   label1: while(0);
@@ -703,25 +703,25 @@ void metamodel___inheritance___MMLocalClass___compute_ancestors(val_t p0){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./metamodel//inheritance.nit:124 */
+    /* metamodel/inheritance.nit:124 */
     REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
     REGB1 = TAG_Int(1);
     REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
     if (UNTAG_Bool(REGB2)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB1 = TAG_Bool((REGB0)==(REGB1));
-      /* ./metamodel//inheritance.nit:124 */
+      /* metamodel/inheritance.nit:124 */
       REGB2 = REGB1;
     }
     if (UNTAG_Bool(REGB2)) {
-      /* ./metamodel//inheritance.nit:125 */
+      /* metamodel/inheritance.nit:125 */
       fra.me.REG[1] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
       CALL_metamodel___static_type___MMLocalClass___add_ancestor(closctx->REG[0])(closctx->REG[0], fra.me.REG[1]);
     } else {
-      /* ./metamodel//inheritance.nit:127 */
+      /* metamodel/inheritance.nit:127 */
       fra.me.REG[1] = CALL_metamodel___inheritance___MMLocalClass___merge_ancestors(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
-      /* ./metamodel//inheritance.nit:128 */
+      /* metamodel/inheritance.nit:128 */
       fra.me.REG[0] = CALL_metamodel___inheritance___MMLocalClass___merge_ancestors(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
       CALL_metamodel___static_type___MMLocalClass___add_ancestor(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
     }
@@ -747,7 +747,7 @@ void metamodel___inheritance___MMLocalClass___inherit_global_properties(val_t p0
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//inheritance.nit:138 */
+  /* metamodel/inheritance.nit:138 */
   REGB0 = TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____are_global_properties_inherited(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -757,40 +757,40 @@ void metamodel___inheritance___MMLocalClass___inherit_global_properties(val_t p0
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./metamodel//inheritance.nit:139 */
+  /* metamodel/inheritance.nit:139 */
   REGB0 = TAG_Bool(true);
   ATTR_metamodel___inheritance___MMLocalClass____are_global_properties_inherited(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//inheritance.nit:141 */
+  /* metamodel/inheritance.nit:141 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_metamodel___inheritance, 141);
   }
   fra.me.REG[1] = ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
-  /* ./metamodel//inheritance.nit:142 */
+  /* metamodel/inheritance.nit:142 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_global_properties", LOCATE_metamodel___inheritance, 142);
   }
   fra.me.REG[1] = ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0]);
-  /* ./metamodel//inheritance.nit:143 */
+  /* metamodel/inheritance.nit:143 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -802,28 +802,28 @@ void metamodel___inheritance___MMLocalClass___inherit_global_properties(val_t p0
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
-      /* ./metamodel//inheritance.nit:144 */
+      /* metamodel/inheritance.nit:144 */
       fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[4])(fra.me.REG[4]);
       CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_metamodel___inheritance___MMLocalClass___inherit_global_properties_2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label4;
     }
   }
@@ -849,14 +849,14 @@ void metamodel___inheritance___MMLocalClass___inherit_global_properties(val_t p0
         fra.me.REG[1] = NIT_NULL;
         fra.me.REG[2] = NIT_NULL;
         fra.me.REG[0] = p0;
-        /* ./metamodel//inheritance.nit:145 */
+        /* metamodel/inheritance.nit:145 */
         REGB0 = CALL_standard___collection___abstract_collection___Collection___has(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
         if (UNTAG_Bool(REGB0)) {
           goto label3;
         }
-        /* ./metamodel//inheritance.nit:147 */
+        /* metamodel/inheritance.nit:147 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
-        /* ./metamodel//inheritance.nit:151 */
+        /* metamodel/inheritance.nit:151 */
         REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
         if (UNTAG_Bool(REGB0)) {
           fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
@@ -875,10 +875,10 @@ void metamodel___inheritance___MMLocalClass___inherit_global_properties(val_t p0
           REGB0 = REGB1;
         }
         if (UNTAG_Bool(REGB0)) {
-          /* ./metamodel//inheritance.nit:153 */
+          /* metamodel/inheritance.nit:153 */
           goto label3;
         }
-        /* ./metamodel//inheritance.nit:157 */
+        /* metamodel/inheritance.nit:157 */
         fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
         fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
         fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
@@ -888,15 +888,15 @@ void metamodel___inheritance___MMLocalClass___inherit_global_properties(val_t p0
         REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
         if (UNTAG_Bool(REGB2)) {
         } else {
-          /* ./../lib/standard//kernel.nit:378 */
+          /* ../lib/standard/kernel.nit:378 */
           REGB1 = TAG_Bool((REGB0)==(REGB1));
-          /* ./metamodel//inheritance.nit:157 */
+          /* metamodel/inheritance.nit:157 */
           REGB2 = REGB1;
         }
         if (UNTAG_Bool(REGB2)) {
           goto label3;
         }
-        /* ./metamodel//inheritance.nit:159 */
+        /* metamodel/inheritance.nit:159 */
         CALL_metamodel___inheritance___MMLocalClass___make_visible_an_inherited_global_property(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
         label3: while(0);
         stack_frame_head = fra.me.prev;
@@ -916,7 +916,7 @@ val_t metamodel___inheritance___MMLocalClass___global_properties(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//inheritance.nit:166 */
+  /* metamodel/inheritance.nit:166 */
   REGB0 = TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____are_global_properties_inherited(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -932,15 +932,15 @@ val_t metamodel___inheritance___MMLocalClass___global_properties(val_t p0){
     fra.me.REG[1] = ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0]);
     goto label1;
   }
-  /* ./metamodel//inheritance.nit:167 */
+  /* metamodel/inheritance.nit:167 */
   REGB0 = CALL_metamodel___inheritance___MMLocalClass___computed_super_classes(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___inheritance, 167);
   }
-  /* ./metamodel//inheritance.nit:168 */
+  /* metamodel/inheritance.nit:168 */
   CALL_metamodel___inheritance___MMLocalClass___inherit_global_properties(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./metamodel//inheritance.nit:169 */
+  /* metamodel/inheritance.nit:169 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -974,44 +974,44 @@ val_t metamodel___inheritance___MMLocalClass___has_global_property(val_t p0, val
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//inheritance.nit:176 */
+  /* metamodel/inheritance.nit:176 */
   REGB0 = CALL_metamodel___inheritance___MMLocalClass___computed_super_classes(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(false);
     goto label1;
   }
-  /* ./metamodel//inheritance.nit:178 */
+  /* metamodel/inheritance.nit:178 */
   REGB1 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_global_properties", LOCATE_metamodel___inheritance, 178);
   }
   fra.me.REG[2] = ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0]);
-  /* ./metamodel//inheritance.nit:179 */
+  /* metamodel/inheritance.nit:179 */
   REGB1 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(true);
     REGB0 = REGB1;
     goto label1;
   }
-  /* ./metamodel//inheritance.nit:180 */
+  /* metamodel/inheritance.nit:180 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -1023,40 +1023,40 @@ val_t metamodel___inheritance___MMLocalClass___has_global_property(val_t p0, val
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB1)];
-      /* ./metamodel//inheritance.nit:181 */
+      /* metamodel/inheritance.nit:181 */
       REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
       if (UNTAG_Bool(REGB2)) {
-        /* ./metamodel//inheritance.nit:182 */
+        /* metamodel/inheritance.nit:182 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-        /* ./metamodel//inheritance.nit:183 */
+        /* metamodel/inheritance.nit:183 */
         REGB2 = TAG_Bool(true);
         REGB0 = REGB2;
         goto label1;
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./metamodel//inheritance.nit:186 */
+  /* metamodel/inheritance.nit:186 */
   REGB1 = TAG_Bool(false);
   REGB0 = REGB1;
   goto label1;
@@ -1090,16 +1090,16 @@ val_t metamodel___inheritance___MMLocalClass___has_global_property_by_name(val_t
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//inheritance.nit:193 */
+  /* metamodel/inheritance.nit:193 */
   REGB0 = CALL_metamodel___inheritance___MMLocalClass___computed_super_classes(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(false);
     goto label1;
   }
-  /* ./metamodel//inheritance.nit:196 */
+  /* metamodel/inheritance.nit:196 */
   CALL_metamodel___inheritance___MMLocalClass___compute_super_classes(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./metamodel//inheritance.nit:198 */
+  /* metamodel/inheritance.nit:198 */
   REGB1 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -1108,7 +1108,7 @@ val_t metamodel___inheritance___MMLocalClass___has_global_property_by_name(val_t
   fra.me.REG[2] = ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   if (UNTAG_Bool(REGB1)) {
-    /* ./metamodel//inheritance.nit:199 */
+    /* metamodel/inheritance.nit:199 */
     REGB1 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1120,34 +1120,34 @@ val_t metamodel___inheritance___MMLocalClass___has_global_property_by_name(val_t
     if (UNTAG_Bool(REGB1)) {
       nit_abort("Reciever is null", NULL, LOCATE_metamodel___inheritance, 199);
     }
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-    /* ./metamodel//inheritance.nit:199 */
+    /* metamodel/inheritance.nit:199 */
     REGB2 = TAG_Int(1);
     REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
     if (UNTAG_Bool(REGB3)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB2 = TAG_Bool((REGB1)==(REGB2));
-      /* ./metamodel//inheritance.nit:199 */
+      /* metamodel/inheritance.nit:199 */
       REGB3 = REGB2;
     }
     REGB0 = REGB3;
     goto label1;
   }
-  /* ./metamodel//inheritance.nit:201 */
+  /* metamodel/inheritance.nit:201 */
   REGB3 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB3)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_global_properties", LOCATE_metamodel___inheritance, 201);
   }
   fra.me.REG[2] = ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0]);
-  /* ./metamodel//inheritance.nit:203 */
+  /* metamodel/inheritance.nit:203 */
   REGB3 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB3)) {
   } else {
@@ -1156,7 +1156,7 @@ val_t metamodel___inheritance___MMLocalClass___has_global_property_by_name(val_t
   fra.me.REG[3] = ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
   REGB3 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
   if (UNTAG_Bool(REGB3)) {
-    /* ./metamodel//inheritance.nit:204 */
+    /* metamodel/inheritance.nit:204 */
     REGB3 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB3)) {
     } else {
@@ -1165,10 +1165,10 @@ val_t metamodel___inheritance___MMLocalClass___has_global_property_by_name(val_t
     fra.me.REG[3] = ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
     fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
   } else {
-    /* ./metamodel//inheritance.nit:206 */
+    /* metamodel/inheritance.nit:206 */
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
     fra.me.REG[3] = fra.me.REG[4];
-    /* ./metamodel//inheritance.nit:207 */
+    /* metamodel/inheritance.nit:207 */
     REGB3 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB3)) {
     } else {
@@ -1177,23 +1177,23 @@ val_t metamodel___inheritance___MMLocalClass___has_global_property_by_name(val_t
     fra.me.REG[4] = ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./metamodel//inheritance.nit:209 */
+  /* metamodel/inheritance.nit:209 */
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB3 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -1205,29 +1205,29 @@ val_t metamodel___inheritance___MMLocalClass___has_global_property_by_name(val_t
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB3)];
-      /* ./metamodel//inheritance.nit:210 */
+      /* metamodel/inheritance.nit:210 */
       REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1]);
       if (UNTAG_Bool(REGB2)) {
-        /* ./metamodel//inheritance.nit:211 */
+        /* metamodel/inheritance.nit:211 */
         fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1]);
-        /* ./metamodel//inheritance.nit:212 */
+        /* metamodel/inheritance.nit:212 */
         REGB2 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
         REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
         if (UNTAG_Bool(REGB2)) {
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
         }
-        /* ./metamodel//inheritance.nit:213 */
+        /* metamodel/inheritance.nit:213 */
         REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[6])(fra.me.REG[6]);
         if (UNTAG_Bool(REGB2)) {
           fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[6])(fra.me.REG[6]);
@@ -1248,7 +1248,7 @@ val_t metamodel___inheritance___MMLocalClass___has_global_property_by_name(val_t
         if (UNTAG_Bool(REGB2)) {
           goto label2;
         }
-        /* ./metamodel//inheritance.nit:214 */
+        /* metamodel/inheritance.nit:214 */
         fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[6])(fra.me.REG[6]);
         fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[8])(fra.me.REG[8]);
         fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
@@ -1262,16 +1262,16 @@ val_t metamodel___inheritance___MMLocalClass___has_global_property_by_name(val_t
             REGB4 = TAG_Bool(false);
             REGB1 = REGB4;
           } else {
-            /* ./../lib/standard//kernel.nit:378 */
+            /* ../lib/standard/kernel.nit:378 */
             REGB2 = TAG_Bool((fra.me.REG[8])==(REGB2));
-            /* ./metamodel//inheritance.nit:214 */
+            /* metamodel/inheritance.nit:214 */
             REGB1 = REGB2;
           }
         }
         if (UNTAG_Bool(REGB1)) {
           goto label2;
         }
-        /* ./metamodel//inheritance.nit:215 */
+        /* metamodel/inheritance.nit:215 */
         REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_metamodel___inheritance, 215);
@@ -1280,7 +1280,7 @@ val_t metamodel___inheritance___MMLocalClass___has_global_property_by_name(val_t
         if (UNTAG_Bool(REGB1)) {
           goto label2;
         }
-        /* ./metamodel//inheritance.nit:216 */
+        /* metamodel/inheritance.nit:216 */
         REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_metamodel___inheritance, 216);
@@ -1288,38 +1288,38 @@ val_t metamodel___inheritance___MMLocalClass___has_global_property_by_name(val_t
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
       }
       label2: while(0);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB3 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label3;
     }
   }
   label3: while(0);
-  /* ./metamodel//inheritance.nit:219 */
+  /* metamodel/inheritance.nit:219 */
   REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB3)) {
     nit_abort("Reciever is null", NULL, LOCATE_metamodel___inheritance, 219);
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB3)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./metamodel//inheritance.nit:219 */
+  /* metamodel/inheritance.nit:219 */
   REGB1 = TAG_Int(1);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB3)==(REGB1));
-    /* ./metamodel//inheritance.nit:219 */
+    /* metamodel/inheritance.nit:219 */
     REGB2 = REGB1;
   }
   REGB0 = REGB2;
@@ -1346,29 +1346,29 @@ void metamodel___inheritance___MMLocalClass___make_visible_an_inherited_global_p
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//inheritance.nit:225 */
+  /* metamodel/inheritance.nit:225 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_metamodel___inheritance, 225);
   }
   fra.me.REG[0] = ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
-  /* ./metamodel//inheritance.nit:226 */
+  /* metamodel/inheritance.nit:226 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./metamodel//inheritance.nit:228 */
+  /* metamodel/inheritance.nit:228 */
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//inheritance.nit:229 */
+    /* metamodel/inheritance.nit:229 */
     fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
   } else {
-    /* ./metamodel//inheritance.nit:231 */
+    /* metamodel/inheritance.nit:231 */
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
     fra.me.REG[3] = fra.me.REG[4];
-    /* ./metamodel//inheritance.nit:232 */
+    /* metamodel/inheritance.nit:232 */
     CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]);
   }
-  /* ./metamodel//inheritance.nit:234 */
+  /* metamodel/inheritance.nit:234 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -1388,7 +1388,7 @@ void metamodel___inheritance___MMLocalClass___add_direct_parent(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//inheritance.nit:240 */
+  /* metamodel/inheritance.nit:240 */
   REGB0 = TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____direct_parents(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1414,7 +1414,7 @@ val_t metamodel___inheritance___MMLocalClass___computed_super_classes(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//inheritance.nit:246 */
+  /* metamodel/inheritance.nit:246 */
   fra.me.REG[1] = ATTR_metamodel___abstractmetamodel___MMLocalClass____crhe(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1467,7 +1467,7 @@ val_t metamodel___inheritance___MMLocalClass___computed_ancestors(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//inheritance.nit:252 */
+  /* metamodel/inheritance.nit:252 */
   fra.me.REG[0] = ATTR_metamodel___static_type___MMLocalClass____ancestors(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1507,7 +1507,7 @@ val_t metamodel___inheritance___MMLocalClass___ancestor_for(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//inheritance.nit:259 */
+  /* metamodel/inheritance.nit:259 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMLocalClass___ancestors(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1526,7 +1526,7 @@ val_t metamodel___inheritance___MMLocalClass___ancestor_for(val_t p0, val_t p1){
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___inheritance, 259);
   }
-  /* ./metamodel//inheritance.nit:261 */
+  /* metamodel/inheritance.nit:261 */
   fra.me.REG[2] = ATTR_metamodel___static_type___MMLocalClass____ancestors(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1534,7 +1534,7 @@ val_t metamodel___inheritance___MMLocalClass___ancestor_for(val_t p0, val_t p1){
   }
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//inheritance.nit:262 */
+    /* metamodel/inheritance.nit:262 */
     fra.me.REG[2] = ATTR_metamodel___static_type___MMLocalClass____ancestors(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -1543,17 +1543,17 @@ val_t metamodel___inheritance___MMLocalClass___ancestor_for(val_t p0, val_t p1){
     fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
     goto label1;
   }
-  /* ./metamodel//inheritance.nit:264 */
+  /* metamodel/inheritance.nit:264 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./metamodel//inheritance.nit:265 */
+  /* metamodel/inheritance.nit:265 */
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_metamodel___partial_order___PartialOrderElement_____leq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___inheritance, 265);
   }
-  /* ./metamodel//inheritance.nit:267 */
+  /* metamodel/inheritance.nit:267 */
   fra.me.REG[4] = ATTR_metamodel___static_type___MMLocalClass____ancestors(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1561,7 +1561,7 @@ val_t metamodel___inheritance___MMLocalClass___ancestor_for(val_t p0, val_t p1){
   }
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//inheritance.nit:268 */
+    /* metamodel/inheritance.nit:268 */
     fra.me.REG[4] = ATTR_metamodel___static_type___MMLocalClass____ancestors(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -1569,7 +1569,7 @@ val_t metamodel___inheritance___MMLocalClass___ancestor_for(val_t p0, val_t p1){
     }
     fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   } else {
-    /* ./metamodel//inheritance.nit:269 */
+    /* metamodel/inheritance.nit:269 */
     fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[5] = ATTR_metamodel___abstractmetamodel___MMLocalClass____global(fra.me.REG[0]);
     REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[4],fra.me.REG[5]));
@@ -1579,25 +1579,25 @@ val_t metamodel___inheritance___MMLocalClass___ancestor_for(val_t p0, val_t p1){
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./metamodel//inheritance.nit:270 */
+      /* metamodel/inheritance.nit:270 */
       fra.me.REG[5] = NEW_MMRefineAncestor_metamodel___inheritance___MMRefineAncestor___init(fra.me.REG[0], fra.me.REG[1]);
       fra.me.REG[3] = fra.me.REG[5];
     } else {
-      /* ./metamodel//inheritance.nit:272 */
+      /* metamodel/inheritance.nit:272 */
       fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[4] = NEW_MMSpecAncestor_metamodel___inheritance___MMSpecAncestor___init(fra.me.REG[5], fra.me.REG[4]);
       fra.me.REG[3] = fra.me.REG[4];
     }
   }
-  /* ./metamodel//inheritance.nit:274 */
+  /* metamodel/inheritance.nit:274 */
   fra.me.REG[0] = ATTR_metamodel___static_type___MMLocalClass____ancestors(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_metamodel___inheritance, 274);
   }
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
-  /* ./metamodel//inheritance.nit:275 */
+  /* metamodel/inheritance.nit:275 */
   fra.me.REG[2] = fra.me.REG[3];
   goto label1;
   label1: while(0);
@@ -1621,7 +1621,7 @@ val_t metamodel___inheritance___MMLocalClass_____bra(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//inheritance.nit:280 */
+  /* metamodel/inheritance.nit:280 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1630,7 +1630,7 @@ val_t metamodel___inheritance___MMLocalClass_____bra(val_t p0, val_t p1){
   fra.me.REG[2] = ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//inheritance.nit:281 */
+    /* metamodel/inheritance.nit:281 */
     REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1640,36 +1640,36 @@ val_t metamodel___inheritance___MMLocalClass_____bra(val_t p0, val_t p1){
     fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
     goto label1;
   } else {
-    /* ./metamodel//inheritance.nit:282 */
+    /* metamodel/inheritance.nit:282 */
     REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./metamodel//inheritance.nit:283 */
+      /* metamodel/inheritance.nit:283 */
       fra.me.REG[3] = CALL_metamodel___inheritance___MMLocalClass___inherit_local_property(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
       fra.me.REG[2] = fra.me.REG[3];
       goto label1;
     } else {
-      /* ./metamodel//inheritance.nit:284 */
+      /* metamodel/inheritance.nit:284 */
       REGB0 = CALL_metamodel___inheritance___MMLocalClass___computed_super_classes(fra.me.REG[0])(fra.me.REG[0]);
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
-        /* ./metamodel//inheritance.nit:285 */
+        /* metamodel/inheritance.nit:285 */
         CALL_metamodel___inheritance___MMLocalClass___compute_super_classes(fra.me.REG[0])(fra.me.REG[0]);
-        /* ./metamodel//inheritance.nit:286 */
+        /* metamodel/inheritance.nit:286 */
         CALL_metamodel___inheritance___MMLocalClass___computed_ancestors(fra.me.REG[0])(fra.me.REG[0]);
-        /* ./metamodel//inheritance.nit:287 */
+        /* metamodel/inheritance.nit:287 */
         CALL_metamodel___inheritance___MMLocalClass___inherit_global_properties(fra.me.REG[0])(fra.me.REG[0]);
-        /* ./metamodel//inheritance.nit:288 */
+        /* metamodel/inheritance.nit:288 */
         REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
         if (UNTAG_Bool(REGB0)) {
         } else {
           nit_abort("Assert failed", NULL, LOCATE_metamodel___inheritance, 288);
         }
-        /* ./metamodel//inheritance.nit:289 */
+        /* metamodel/inheritance.nit:289 */
         fra.me.REG[1] = CALL_metamodel___inheritance___MMLocalClass___inherit_local_property(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
         fra.me.REG[2] = fra.me.REG[1];
         goto label1;
       } else {
-        /* ./metamodel//inheritance.nit:291 */
+        /* metamodel/inheritance.nit:291 */
         nit_abort("Aborted", NULL, LOCATE_metamodel___inheritance, 291);
       }
     }
@@ -1703,7 +1703,7 @@ void metamodel___inheritance___MMLocalClass___add_default_any_class(val_t p0, va
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//inheritance.nit:299 */
+  /* metamodel/inheritance.nit:299 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
   if (!once_value_1) {
     if (!once_value_2) {
@@ -1727,38 +1727,38 @@ void metamodel___inheritance___MMLocalClass___add_default_any_class(val_t p0, va
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//inheritance.nit:300 */
+    /* metamodel/inheritance.nit:300 */
     REGB0 = TAG_Bool(false);
-    /* ./metamodel//inheritance.nit:301 */
+    /* metamodel/inheritance.nit:301 */
     REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
     if (UNTAG_Bool(REGB1)) {
-      /* ./metamodel//inheritance.nit:302 */
+      /* metamodel/inheritance.nit:302 */
       REGB1 = TAG_Bool(true);
       REGB0 = REGB1;
     } else {
-      /* ./metamodel//inheritance.nit:303 */
+      /* metamodel/inheritance.nit:303 */
       fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
       REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[3])(fra.me.REG[3]);
       if (UNTAG_Bool(REGB1)) {
-        /* ./metamodel//inheritance.nit:304 */
+        /* metamodel/inheritance.nit:304 */
         REGB1 = TAG_Bool(true);
         REGB0 = REGB1;
-        /* ./../lib/standard//collection//array.nit:266 */
+        /* ../lib/standard/collection/array.nit:266 */
         fra.me.REG[3] = fra.me.REG[1];
-        /* ./../lib/standard//collection//array.nit:269 */
+        /* ../lib/standard/collection/array.nit:269 */
         REGB1 = TAG_Int(0);
-        /* ./../lib/standard//collection//array.nit:270 */
+        /* ../lib/standard/collection/array.nit:270 */
         REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
         }
         REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-        /* ./../lib/standard//collection//array.nit:271 */
+        /* ../lib/standard/collection/array.nit:271 */
         fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         while(1) {
-          /* ./../lib/standard//collection//array.nit:24 */
+          /* ../lib/standard/collection/array.nit:24 */
           REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
           } else {
@@ -1770,35 +1770,35 @@ void metamodel___inheritance___MMLocalClass___add_default_any_class(val_t p0, va
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           if (UNTAG_Bool(REGB2)) {
-            /* ./../lib/standard//collection//array.nit:273 */
+            /* ../lib/standard/collection/array.nit:273 */
             REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
             if (UNTAG_Bool(REGB2)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
-            /* ./metamodel//inheritance.nit:306 */
+            /* metamodel/inheritance.nit:306 */
             fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
             REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[4])(fra.me.REG[4]);
             if (UNTAG_Bool(REGB2)) {
-              /* ./metamodel//inheritance.nit:307 */
+              /* metamodel/inheritance.nit:307 */
               REGB2 = TAG_Bool(false);
               REGB0 = REGB2;
-              /* ./metamodel//inheritance.nit:308 */
+              /* metamodel/inheritance.nit:308 */
               goto label3;
             }
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB2 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB1 = REGB2;
           } else {
-            /* ./../lib/standard//collection//array.nit:272 */
+            /* ../lib/standard/collection/array.nit:272 */
             goto label4;
           }
         }
@@ -1806,9 +1806,9 @@ void metamodel___inheritance___MMLocalClass___add_default_any_class(val_t p0, va
         label3: while(0);
       }
     }
-    /* ./metamodel//inheritance.nit:313 */
+    /* metamodel/inheritance.nit:313 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./metamodel//inheritance.nit:315 */
+      /* metamodel/inheritance.nit:315 */
       fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
       if (!once_value_5) {
         if (!once_value_6) {
@@ -1839,25 +1839,25 @@ void metamodel___inheritance___MMLocalClass___add_default_any_class(val_t p0, va
         REGB0 = REGB1;
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./metamodel//inheritance.nit:316 */
+        /* metamodel/inheritance.nit:316 */
         fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
         fra.me.REG[3] = CALL_metamodel___inheritance___MMModule___type_any_extern(fra.me.REG[3])(fra.me.REG[3]);
       } else {
-        /* ./metamodel//inheritance.nit:318 */
+        /* metamodel/inheritance.nit:318 */
         fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
         fra.me.REG[2] = CALL_metamodel___inheritance___MMModule___type_any(fra.me.REG[2])(fra.me.REG[2]);
         fra.me.REG[3] = fra.me.REG[2];
       }
-      /* ./metamodel//inheritance.nit:320 */
+      /* metamodel/inheritance.nit:320 */
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_metamodel___inheritance, 320);
       }
       fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-      /* ./metamodel//inheritance.nit:321 */
+      /* metamodel/inheritance.nit:321 */
       fra.me.REG[3] = NEW_MMDefaultAncestor_metamodel___inheritance___MMDefaultAncestor___init(fra.me.REG[0], fra.me.REG[3]);
-      /* ./metamodel//inheritance.nit:322 */
+      /* metamodel/inheritance.nit:322 */
       CALL_metamodel___inheritance___MMLocalClass___add_direct_parent(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
     }
   }
@@ -1888,7 +1888,7 @@ void metamodel___inheritance___MMLocalClass___add_super_classes(val_t p0, val_t
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//inheritance.nit:330 */
+  /* metamodel/inheritance.nit:330 */
   fra.me.REG[2] = ATTR_metamodel___abstractmetamodel___MMLocalClass____crhe(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1907,27 +1907,27 @@ void metamodel___inheritance___MMLocalClass___add_super_classes(val_t p0, val_t
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___inheritance, 330);
   }
-  /* ./metamodel//inheritance.nit:331 */
+  /* metamodel/inheritance.nit:331 */
   fra.me.REG[2] = ATTR_metamodel___abstractmetamodel___MMLocalClass____crhe(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_metamodel___inheritance, 331);
   }
   fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1939,34 +1939,34 @@ void metamodel___inheritance___MMLocalClass___add_super_classes(val_t p0, val_t
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
-      /* ./metamodel//inheritance.nit:332 */
+      /* metamodel/inheritance.nit:332 */
       fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[4])(fra.me.REG[4]);
       fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[4])(fra.me.REG[4]);
-      /* ./../lib/standard//collection//array.nit:269 */
+      /* ../lib/standard/collection/array.nit:269 */
       REGB1 = TAG_Int(0);
-      /* ./../lib/standard//collection//array.nit:270 */
+      /* ../lib/standard/collection/array.nit:270 */
       REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
       }
       REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-      /* ./../lib/standard//collection//array.nit:271 */
+      /* ../lib/standard/collection/array.nit:271 */
       fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       while(1) {
-        /* ./../lib/standard//collection//array.nit:24 */
+        /* ../lib/standard/collection/array.nit:24 */
         REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
         } else {
@@ -1978,18 +1978,18 @@ void metamodel___inheritance___MMLocalClass___add_super_classes(val_t p0, val_t
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         if (UNTAG_Bool(REGB2)) {
-          /* ./../lib/standard//collection//array.nit:273 */
+          /* ../lib/standard/collection/array.nit:273 */
           REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
             nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
           }
-          /* ./../lib/standard//collection//array.nit:718 */
+          /* ../lib/standard/collection/array.nit:718 */
           fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
-          /* ./metamodel//inheritance.nit:333 */
+          /* metamodel/inheritance.nit:333 */
           REGB2 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
           } else {
@@ -1997,28 +1997,28 @@ void metamodel___inheritance___MMLocalClass___add_super_classes(val_t p0, val_t
           }
           fra.me.REG[7] = ATTR_metamodel___abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0]);
           fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-          /* ./metamodel//inheritance.nit:334 */
+          /* metamodel/inheritance.nit:334 */
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
-          /* ./../lib/standard//collection//array.nit:274 */
+          /* ../lib/standard/collection/array.nit:274 */
           REGB2 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-          /* ./../lib/standard//collection//array.nit:274 */
+          /* ../lib/standard/collection/array.nit:274 */
           REGB1 = REGB2;
         } else {
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           goto label1;
         }
       }
       label1: while(0);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label2;
     }
   }
@@ -2045,27 +2045,27 @@ void metamodel___inheritance___MMLocalClass___add_explicit_classes(val_t p0, val
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//inheritance.nit:342 */
+  /* metamodel/inheritance.nit:342 */
   REGB0 = TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____direct_parents(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_direct_parents", LOCATE_metamodel___inheritance, 342);
   }
   fra.me.REG[0] = ATTR_metamodel___inheritance___MMLocalClass____direct_parents(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -2077,28 +2077,28 @@ void metamodel___inheritance___MMLocalClass___add_explicit_classes(val_t p0, val
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./metamodel//inheritance.nit:343 */
+      /* metamodel/inheritance.nit:343 */
       fra.me.REG[3] = CALL_metamodel___static_type___MMAncestor___local_class(fra.me.REG[3])(fra.me.REG[3]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label1;
     }
   }
@@ -2124,20 +2124,20 @@ void metamodel___inheritance___MMLocalClass___compute_super_parents(val_t p0, va
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -2149,27 +2149,27 @@ void metamodel___inheritance___MMLocalClass___compute_super_parents(val_t p0, va
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
-      /* ./metamodel//inheritance.nit:351 */
+      /* metamodel/inheritance.nit:351 */
       CALL_metamodel___inheritance___MMLocalClass___compute_super_classes(fra.me.REG[2])(fra.me.REG[2]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label1;
     }
   }
@@ -2197,9 +2197,9 @@ val_t metamodel___inheritance___MMLocalClass___build_ancestors(val_t p0){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//inheritance.nit:358 */
+  /* metamodel/inheritance.nit:358 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  /* ./metamodel//inheritance.nit:360 */
+  /* metamodel/inheritance.nit:360 */
   fra.me.REG[2] = ATTR_metamodel___abstractmetamodel___MMLocalClass____crhe(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2218,27 +2218,27 @@ val_t metamodel___inheritance___MMLocalClass___build_ancestors(val_t p0){
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___inheritance, 360);
   }
-  /* ./metamodel//inheritance.nit:361 */
+  /* metamodel/inheritance.nit:361 */
   fra.me.REG[2] = ATTR_metamodel___abstractmetamodel___MMLocalClass____crhe(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_metamodel___inheritance, 361);
   }
   fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -2250,18 +2250,18 @@ val_t metamodel___inheritance___MMLocalClass___build_ancestors(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
-      /* ./metamodel//inheritance.nit:362 */
+      /* metamodel/inheritance.nit:362 */
       REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[0]));
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -2273,43 +2273,43 @@ val_t metamodel___inheritance___MMLocalClass___build_ancestors(val_t p0){
       } else {
         nit_abort("Assert failed", NULL, LOCATE_metamodel___inheritance, 362);
       }
-      /* ./metamodel//inheritance.nit:363 */
+      /* metamodel/inheritance.nit:363 */
       fra.me.REG[4] = NEW_MMRefineAncestor_metamodel___inheritance___MMRefineAncestor___init(fra.me.REG[0], fra.me.REG[4]);
-      /* ./metamodel//inheritance.nit:364 */
+      /* metamodel/inheritance.nit:364 */
       CALL_metamodel___inheritance___MMAncestor___add_in(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./metamodel//inheritance.nit:366 */
+  /* metamodel/inheritance.nit:366 */
   REGB0 = TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____direct_parents(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_direct_parents", LOCATE_metamodel___inheritance, 366);
   }
   fra.me.REG[3] = ATTR_metamodel___inheritance___MMLocalClass____direct_parents(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -2321,18 +2321,18 @@ val_t metamodel___inheritance___MMLocalClass___build_ancestors(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./metamodel//inheritance.nit:367 */
+      /* metamodel/inheritance.nit:367 */
       fra.me.REG[5] = CALL_metamodel___static_type___MMAncestor___local_class(fra.me.REG[4])(fra.me.REG[4]);
       REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[5],fra.me.REG[0]));
       if (UNTAG_Bool(REGB1)) {
@@ -2345,21 +2345,21 @@ val_t metamodel___inheritance___MMLocalClass___build_ancestors(val_t p0){
       } else {
         nit_abort("Assert failed", NULL, LOCATE_metamodel___inheritance, 367);
       }
-      /* ./metamodel//inheritance.nit:368 */
+      /* metamodel/inheritance.nit:368 */
       CALL_metamodel___inheritance___MMAncestor___add_in(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./metamodel//inheritance.nit:370 */
+  /* metamodel/inheritance.nit:370 */
   goto label3;
   label3: while(0);
   stack_frame_head = fra.me.prev;
@@ -2387,22 +2387,22 @@ val_t metamodel___inheritance___MMLocalClass___group_ancestors(val_t p0, val_t p
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//inheritance.nit:377 */
+  /* metamodel/inheritance.nit:377 */
   fra.me.REG[0] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -2414,48 +2414,48 @@ val_t metamodel___inheritance___MMLocalClass___group_ancestors(val_t p0, val_t p
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./metamodel//inheritance.nit:379 */
+      /* metamodel/inheritance.nit:379 */
       fra.me.REG[4] = CALL_metamodel___static_type___MMAncestor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-      /* ./metamodel//inheritance.nit:383 */
+      /* metamodel/inheritance.nit:383 */
       CALL_metamodel___inheritance___MMLocalClass___compute_ancestors(fra.me.REG[4])(fra.me.REG[4]);
-      /* ./metamodel//inheritance.nit:384 */
+      /* metamodel/inheritance.nit:384 */
       REGB1 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
       if (UNTAG_Bool(REGB1)) {
-        /* ./metamodel//inheritance.nit:385 */
+        /* metamodel/inheritance.nit:385 */
         fra.me.REG[5] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
       } else {
-        /* ./metamodel//inheritance.nit:387 */
+        /* metamodel/inheritance.nit:387 */
         fra.me.REG[6] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
         fra.me.REG[5] = fra.me.REG[6];
-        /* ./metamodel//inheritance.nit:388 */
+        /* metamodel/inheritance.nit:388 */
         CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[5]);
       }
-      /* ./metamodel//inheritance.nit:390 */
+      /* metamodel/inheritance.nit:390 */
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./metamodel//inheritance.nit:392 */
+  /* metamodel/inheritance.nit:392 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -2485,30 +2485,30 @@ val_t metamodel___inheritance___MMLocalClass___merge_ancestors(val_t p0, val_t p
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//inheritance.nit:398 */
+  /* metamodel/inheritance.nit:398 */
   fra.me.REG[2] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  /* ./metamodel//inheritance.nit:399 */
+  /* metamodel/inheritance.nit:399 */
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_metamodel___inheritance___MMLocalClass___merge_ancestors_1));
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./metamodel//inheritance.nit:421 */
+  /* metamodel/inheritance.nit:421 */
   REGB1 = TAG_Int(1);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-  /* ./metamodel//inheritance.nit:421 */
+  /* metamodel/inheritance.nit:421 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./metamodel//inheritance.nit:422 */
+    /* metamodel/inheritance.nit:422 */
     fra.me.REG[2] = CALL_standard___file___Object___stderr(fra.me.REG[0])(fra.me.REG[0]);
     REGB1 = TAG_Int(5);
     fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
@@ -2554,11 +2554,11 @@ val_t metamodel___inheritance___MMLocalClass___merge_ancestors(val_t p0, val_t p
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
     fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
     CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-    /* ./metamodel//inheritance.nit:423 */
+    /* metamodel/inheritance.nit:423 */
     REGB1 = TAG_Int(1);
     CALL_standard___kernel___Object___exit(fra.me.REG[0])(fra.me.REG[0], REGB1);
   }
-  /* ./metamodel//inheritance.nit:425 */
+  /* metamodel/inheritance.nit:425 */
   fra.me.REG[3] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[3])(fra.me.REG[3]);
   goto label7;
   label7: while(0);
@@ -2572,7 +2572,7 @@ val_t metamodel___inheritance___MMLocalClass___merge_ancestors(val_t p0, val_t p
     val_t REGB2;
     fun_t CREG[1];
     val_t tmp;
-    /* ./metamodel//inheritance.nit:400 */
+    /* metamodel/inheritance.nit:400 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_metamodel___inheritance;
     fra.me.line = 0;
@@ -2588,11 +2588,11 @@ val_t metamodel___inheritance___MMLocalClass___merge_ancestors(val_t p0, val_t p
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./metamodel//inheritance.nit:401 */
+    /* metamodel/inheritance.nit:401 */
     fra.me.REG[1] = CALL_standard___collection___abstract_collection___Collection___iterator(closctx->REG[1])(closctx->REG[1]);
-    /* ./metamodel//inheritance.nit:402 */
+    /* metamodel/inheritance.nit:402 */
     REGB0 = TAG_Bool(true);
-    /* ./metamodel//inheritance.nit:403 */
+    /* metamodel/inheritance.nit:403 */
     while(1) {
       REGB1 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
       if (UNTAG_Bool(REGB1)) {
@@ -2602,7 +2602,7 @@ val_t metamodel___inheritance___MMLocalClass___merge_ancestors(val_t p0, val_t p
         REGB1 = REGB2;
       }
       if (UNTAG_Bool(REGB1)) {
-        /* ./metamodel//inheritance.nit:405 */
+        /* metamodel/inheritance.nit:405 */
         fra.me.REG[2] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
         REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[2]));
         if (UNTAG_Bool(REGB1)) {
@@ -2610,10 +2610,10 @@ val_t metamodel___inheritance___MMLocalClass___merge_ancestors(val_t p0, val_t p
           REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
           REGB1 = REGB2;
         }
-        /* ./metamodel//inheritance.nit:406 */
+        /* metamodel/inheritance.nit:406 */
         fra.me.REG[2] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
         REGB1 = CALL_standard___collection___abstract_collection___Collection___has(closctx->REG[2])(closctx->REG[2], fra.me.REG[2]);
-        /* ./metamodel//inheritance.nit:407 */
+        /* metamodel/inheritance.nit:407 */
         fra.me.REG[2] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
         REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
@@ -2622,7 +2622,7 @@ val_t metamodel___inheritance___MMLocalClass___merge_ancestors(val_t p0, val_t p
         fra.me.REG[2] = CALL_metamodel___static_type___MMAncestor___stype(fra.me.REG[2])(fra.me.REG[2]);
         fra.me.REG[3] = CALL_metamodel___static_type___MMAncestor___stype(fra.me.REG[0])(fra.me.REG[0]);
         REGB1 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-        /* ./metamodel//inheritance.nit:409 */
+        /* metamodel/inheritance.nit:409 */
         fra.me.REG[3] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
         REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[3]));
         if (UNTAG_Bool(REGB1)) {
@@ -2639,7 +2639,7 @@ val_t metamodel___inheritance___MMLocalClass___merge_ancestors(val_t p0, val_t p
         }
         REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
         if (UNTAG_Bool(REGB1)) {
-          /* ./metamodel//inheritance.nit:410 */
+          /* metamodel/inheritance.nit:410 */
           fra.me.REG[3] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
           REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
@@ -2649,30 +2649,30 @@ val_t metamodel___inheritance___MMLocalClass___merge_ancestors(val_t p0, val_t p
           fra.me.REG[2] = CALL_metamodel___static_type___MMAncestor___stype(fra.me.REG[0])(fra.me.REG[0]);
           REGB1 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
         } else {
-          /* ./metamodel//inheritance.nit:409 */
+          /* metamodel/inheritance.nit:409 */
           REGB2 = TAG_Bool(false);
           REGB1 = REGB2;
         }
         if (UNTAG_Bool(REGB1)) {
-          /* ./metamodel//inheritance.nit:411 */
+          /* metamodel/inheritance.nit:411 */
           CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
-          /* ./metamodel//inheritance.nit:412 */
+          /* metamodel/inheritance.nit:412 */
           REGB1 = TAG_Bool(false);
           REGB0 = REGB1;
         }
-        /* ./metamodel//inheritance.nit:414 */
+        /* metamodel/inheritance.nit:414 */
         CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
       } else {
-        /* ./metamodel//inheritance.nit:403 */
+        /* metamodel/inheritance.nit:403 */
         goto label2;
       }
     }
     label2: while(0);
-    /* ./metamodel//inheritance.nit:416 */
+    /* metamodel/inheritance.nit:416 */
     REGB0 = CALL_standard___collection___abstract_collection___Collection___has(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./metamodel//inheritance.nit:417 */
+      /* metamodel/inheritance.nit:417 */
       CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[0]);
     }
     stack_frame_head = fra.me.prev;
@@ -2701,7 +2701,7 @@ val_t metamodel___inheritance___MMLocalClass___inherit_local_property(val_t p0,
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//inheritance.nit:433 */
+  /* metamodel/inheritance.nit:433 */
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2714,45 +2714,45 @@ val_t metamodel___inheritance___MMLocalClass___inherit_local_property(val_t p0,
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___inheritance, 433);
   }
-  /* ./metamodel//inheritance.nit:437 */
+  /* metamodel/inheritance.nit:437 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___property_hierarchy(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./metamodel//inheritance.nit:438 */
+  /* metamodel/inheritance.nit:438 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./metamodel//inheritance.nit:439 */
+  /* metamodel/inheritance.nit:439 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[2])(fra.me.REG[2]);
   REGB1 = TAG_Int(1);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./metamodel//inheritance.nit:439 */
+    /* metamodel/inheritance.nit:439 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./metamodel//inheritance.nit:441 */
+    /* metamodel/inheritance.nit:441 */
     fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[1])(fra.me.REG[1]);
   } else {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-    /* ./metamodel//inheritance.nit:442 */
+    /* metamodel/inheritance.nit:442 */
     REGB1 = TAG_Int(1);
     REGB0 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
     if (UNTAG_Bool(REGB0)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB1 = TAG_Bool((REGB2)==(REGB1));
-      /* ./metamodel//inheritance.nit:442 */
+      /* metamodel/inheritance.nit:442 */
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./metamodel//inheritance.nit:444 */
+      /* metamodel/inheritance.nit:444 */
       fra.me.REG[5] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[3])(fra.me.REG[3]);
       REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
@@ -2761,22 +2761,22 @@ val_t metamodel___inheritance___MMLocalClass___inherit_local_property(val_t p0,
       fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
       fra.me.REG[4] = fra.me.REG[5];
     } else {
-      /* ./metamodel//inheritance.nit:448 */
+      /* metamodel/inheritance.nit:448 */
       fra.me.REG[5] = NEW_ArraySet_standard___collection___array___ArraySet___init();
-      /* ./../lib/standard//collection//array.nit:269 */
+      /* ../lib/standard/collection/array.nit:269 */
       REGB0 = TAG_Int(0);
-      /* ./../lib/standard//collection//array.nit:270 */
+      /* ../lib/standard/collection/array.nit:270 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
       }
       REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-      /* ./../lib/standard//collection//array.nit:271 */
+      /* ../lib/standard/collection/array.nit:271 */
       fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       while(1) {
-        /* ./../lib/standard//collection//array.nit:24 */
+        /* ../lib/standard/collection/array.nit:24 */
         REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
@@ -2788,67 +2788,67 @@ val_t metamodel___inheritance___MMLocalClass___inherit_local_property(val_t p0,
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         if (UNTAG_Bool(REGB1)) {
-          /* ./../lib/standard//collection//array.nit:273 */
+          /* ../lib/standard/collection/array.nit:273 */
           REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
             nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
           }
-          /* ./../lib/standard//collection//array.nit:718 */
+          /* ../lib/standard/collection/array.nit:718 */
           fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
-          /* ./metamodel//inheritance.nit:450 */
+          /* metamodel/inheritance.nit:450 */
           REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[1]);
           if (UNTAG_Bool(REGB1)) {
             fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[1]);
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
           }
-          /* ./../lib/standard//collection//array.nit:274 */
+          /* ../lib/standard/collection/array.nit:274 */
           REGB1 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-          /* ./../lib/standard//collection//array.nit:274 */
+          /* ../lib/standard/collection/array.nit:274 */
           REGB0 = REGB1;
         } else {
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           goto label1;
         }
       }
       label1: while(0);
-      /* ./metamodel//inheritance.nit:453 */
+      /* metamodel/inheritance.nit:453 */
       fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrder___select_smallests(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
       }
       REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-      /* ./metamodel//inheritance.nit:455 */
+      /* metamodel/inheritance.nit:455 */
       REGB1 = TAG_Int(1);
       REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
       if (UNTAG_Bool(REGB2)) {
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB1 = TAG_Bool((REGB0)==(REGB1));
-        /* ./metamodel//inheritance.nit:455 */
+        /* metamodel/inheritance.nit:455 */
         REGB2 = REGB1;
       }
       REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
       if (UNTAG_Bool(REGB2)) {
-        /* ./metamodel//inheritance.nit:456 */
+        /* metamodel/inheritance.nit:456 */
         fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
         fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___context(fra.me.REG[2])(fra.me.REG[2]);
         CALL_metamodel___inheritance___MMContext___handle_property_conflict(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[5]);
       }
-      /* ./metamodel//inheritance.nit:458 */
+      /* metamodel/inheritance.nit:458 */
       fra.me.REG[5] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[5])(fra.me.REG[5]);
       fra.me.REG[4] = fra.me.REG[5];
     }
   }
-  /* ./metamodel//inheritance.nit:468 */
+  /* metamodel/inheritance.nit:468 */
   REGB2 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -2856,7 +2856,7 @@ val_t metamodel___inheritance___MMLocalClass___inherit_local_property(val_t p0,
   }
   fra.me.REG[0] = ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[4]);
-  /* ./metamodel//inheritance.nit:470 */
+  /* metamodel/inheritance.nit:470 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -2883,28 +2883,28 @@ void metamodel___inheritance___MMLocalProperty___inherit_global(val_t p0, val_t
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//inheritance.nit:478 */
+  /* metamodel/inheritance.nit:478 */
   CALL_metamodel___abstractmetamodel___MMLocalProperty___set_global(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./metamodel//inheritance.nit:479 */
+  /* metamodel/inheritance.nit:479 */
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-  /* ./metamodel//inheritance.nit:480 */
+  /* metamodel/inheritance.nit:480 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -2916,40 +2916,40 @@ void metamodel___inheritance___MMLocalProperty___inherit_global(val_t p0, val_t
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-      /* ./metamodel//inheritance.nit:481 */
+      /* metamodel/inheritance.nit:481 */
       REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
       REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
       if (UNTAG_Bool(REGB1)) {
         goto label1;
       }
-      /* ./metamodel//inheritance.nit:482 */
+      /* metamodel/inheritance.nit:482 */
       fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
       label1: while(0);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./metamodel//inheritance.nit:484 */
+  /* metamodel/inheritance.nit:484 */
   CALL_metamodel___abstractmetamodel___MMGlobalProperty___add_local_property(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
@@ -2970,13 +2970,13 @@ void metamodel___inheritance___MMAncestor___add_in(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//inheritance.nit:492 */
+  /* metamodel/inheritance.nit:492 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./metamodel//inheritance.nit:493 */
+  /* metamodel/inheritance.nit:493 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMAncestor___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]);
   CALL_metamodel___inheritance___MMLocalClass___compute_ancestors(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./metamodel//inheritance.nit:494 */
+  /* metamodel/inheritance.nit:494 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMAncestor___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = CALL_metamodel___static_type___MMLocalClass___ancestors(fra.me.REG[2])(fra.me.REG[2]);
@@ -3011,18 +3011,18 @@ void metamodel___inheritance___MMAncestor___add_in(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./metamodel//inheritance.nit:495 */
+    /* metamodel/inheritance.nit:495 */
     fra.me.REG[0] = CALL_metamodel___static_type___MMAncestor___stype(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = CALL_metamodel___static_type___MMAncestor___stype(closctx->REG[0])(closctx->REG[0]);
     fra.me.REG[1] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[1] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    /* ./metamodel//inheritance.nit:496 */
+    /* metamodel/inheritance.nit:496 */
     fra.me.REG[0] = CALL_metamodel___static_type___MMAncestor___stype(closctx->REG[0])(closctx->REG[0]);
     fra.me.REG[0] = CALL_metamodel___static_type___MMType___adapt_to(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
     fra.me.REG[1] = CALL_metamodel___static_type___MMAncestor___inheriter(closctx->REG[0])(closctx->REG[0]);
     fra.me.REG[1] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[1] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    /* ./metamodel//inheritance.nit:497 */
+    /* metamodel/inheritance.nit:497 */
     fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[2] = CALL_metamodel___static_type___MMAncestor___inheriter(closctx->REG[0])(closctx->REG[0]);
     fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]);
@@ -3034,11 +3034,11 @@ void metamodel___inheritance___MMAncestor___add_in(val_t p0, val_t p1){
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./metamodel//inheritance.nit:498 */
+      /* metamodel/inheritance.nit:498 */
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___Collection___iterator(closctx->REG[1])(closctx->REG[1]);
-      /* ./metamodel//inheritance.nit:499 */
+      /* metamodel/inheritance.nit:499 */
       REGB0 = TAG_Bool(true);
-      /* ./metamodel//inheritance.nit:500 */
+      /* metamodel/inheritance.nit:500 */
       while(1) {
         REGB1 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
         if (UNTAG_Bool(REGB1)) {
@@ -3048,7 +3048,7 @@ void metamodel___inheritance___MMAncestor___add_in(val_t p0, val_t p1){
           REGB1 = REGB2;
         }
         if (UNTAG_Bool(REGB1)) {
-          /* ./metamodel//inheritance.nit:501 */
+          /* metamodel/inheritance.nit:501 */
           fra.me.REG[0] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]);
           REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
@@ -3081,17 +3081,17 @@ void metamodel___inheritance___MMAncestor___add_in(val_t p0, val_t p1){
           }
           REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
           REGB0 = REGB1;
-          /* ./metamodel//inheritance.nit:502 */
+          /* metamodel/inheritance.nit:502 */
           CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]);
         } else {
-          /* ./metamodel//inheritance.nit:500 */
+          /* metamodel/inheritance.nit:500 */
           goto label2;
         }
       }
       label2: while(0);
-      /* ./metamodel//inheritance.nit:504 */
+      /* metamodel/inheritance.nit:504 */
       if (UNTAG_Bool(REGB0)) {
-        /* ./metamodel//inheritance.nit:505 */
+        /* metamodel/inheritance.nit:505 */
         fra.me.REG[2] = CALL_metamodel___static_type___MMAncestor___inheriter(closctx->REG[0])(closctx->REG[0]);
         fra.me.REG[1] = NEW_MMSpecAncestor_metamodel___inheritance___MMSpecAncestor___init(fra.me.REG[2], fra.me.REG[1]);
         CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[1])(closctx->REG[1], fra.me.REG[1]);
@@ -3122,15 +3122,15 @@ void metamodel___inheritance___MMImplicitLocalClass___init(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./metamodel//inheritance.nit:517 */
+  /* metamodel/inheritance.nit:517 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./metamodel//inheritance.nit:519 */
+  /* metamodel/inheritance.nit:519 */
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./metamodel//inheritance.nit:520 */
+  /* metamodel/inheritance.nit:520 */
   fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
   CALL_metamodel___abstractmetamodel___MMLocalClass___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[5], REGB0, init_table);
-  /* ./metamodel//inheritance.nit:521 */
+  /* metamodel/inheritance.nit:521 */
   CALL_metamodel___abstractmetamodel___MMLocalClass___set_global(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -3149,7 +3149,7 @@ val_t metamodel___inheritance___MMRefineAncestor___local_class(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//inheritance.nit:527 */
+  /* metamodel/inheritance.nit:527 */
   REGB0 = TAG_Bool(ATTR_metamodel___inheritance___MMRefineAncestor____local_class(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3179,15 +3179,15 @@ void metamodel___inheritance___MMRefineAncestor___init(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./metamodel//inheritance.nit:529 */
+  /* metamodel/inheritance.nit:529 */
   fra.me.REG[3] = fra.me.REG[0];
   CALL_metamodel___static_type___MMAncestor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./metamodel//inheritance.nit:531 */
+  /* metamodel/inheritance.nit:531 */
   ATTR_metamodel___inheritance___MMRefineAncestor____local_class(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./metamodel//inheritance.nit:532 */
+  /* metamodel/inheritance.nit:532 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
   CALL_metamodel___static_type___MMAncestor___inheriter__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-  /* ./metamodel//inheritance.nit:533 */
+  /* metamodel/inheritance.nit:533 */
   REGB0 = TAG_Bool(ATTR_metamodel___inheritance___MMRefineAncestor____local_class(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3212,7 +3212,7 @@ val_t metamodel___inheritance___MMSpecAncestor___local_class(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//inheritance.nit:540 */
+  /* metamodel/inheritance.nit:540 */
   fra.me.REG[0] = CALL_metamodel___static_type___MMAncestor___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -3239,12 +3239,12 @@ void metamodel___inheritance___MMSpecAncestor___init(val_t p0, val_t p1, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./metamodel//inheritance.nit:542 */
+  /* metamodel/inheritance.nit:542 */
   fra.me.REG[3] = fra.me.REG[0];
   CALL_metamodel___static_type___MMAncestor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./metamodel//inheritance.nit:544 */
+  /* metamodel/inheritance.nit:544 */
   ATTR_metamodel___static_type___MMAncestor____inheriter(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./metamodel//inheritance.nit:545 */
+  /* metamodel/inheritance.nit:545 */
   ATTR_metamodel___static_type___MMAncestor____stype(fra.me.REG[3]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos2] = 1;
@@ -3262,7 +3262,7 @@ val_t metamodel___inheritance___MMDefaultAncestor___local_class(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//inheritance.nit:551 */
+  /* metamodel/inheritance.nit:551 */
   fra.me.REG[0] = CALL_metamodel___static_type___MMAncestor___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -3289,13 +3289,13 @@ void metamodel___inheritance___MMDefaultAncestor___init(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./metamodel//inheritance.nit:553 */
+  /* metamodel/inheritance.nit:553 */
   fra.me.REG[3] = fra.me.REG[0];
   CALL_metamodel___static_type___MMAncestor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./metamodel//inheritance.nit:555 */
+  /* metamodel/inheritance.nit:555 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
   CALL_metamodel___static_type___MMAncestor___inheriter__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-  /* ./metamodel//inheritance.nit:556 */
+  /* metamodel/inheritance.nit:556 */
   CALL_metamodel___static_type___MMAncestor___stype__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   init_table[itpos3] = 1;
index a857a66..2f49e83 100644 (file)
@@ -13,7 +13,7 @@ val_t metamodel___partial_order___PartialOrder___roots(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//partial_order.nit:30 */
+  /* metamodel/partial_order.nit:30 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____roots(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -36,7 +36,7 @@ val_t metamodel___partial_order___PartialOrder___is_empty(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//partial_order.nit:35 */
+  /* metamodel/partial_order.nit:35 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -62,7 +62,7 @@ val_t metamodel___partial_order___PartialOrder___length(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//partial_order.nit:37 */
+  /* metamodel/partial_order.nit:37 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -88,7 +88,7 @@ val_t metamodel___partial_order___PartialOrder___first(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//partial_order.nit:39 */
+  /* metamodel/partial_order.nit:39 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements_list(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -116,7 +116,7 @@ val_t metamodel___partial_order___PartialOrder___has(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//partial_order.nit:41 */
+  /* metamodel/partial_order.nit:41 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -147,7 +147,7 @@ val_t metamodel___partial_order___PartialOrder___has_only(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//partial_order.nit:43 */
+  /* metamodel/partial_order.nit:43 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -159,9 +159,9 @@ val_t metamodel___partial_order___PartialOrder___has_only(val_t p0, val_t p1){
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./metamodel//partial_order.nit:43 */
+    /* metamodel/partial_order.nit:43 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
@@ -210,14 +210,14 @@ val_t metamodel___partial_order___PartialOrder___count(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//partial_order.nit:47 */
+  /* metamodel/partial_order.nit:47 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//partial_order.nit:48 */
+    /* metamodel/partial_order.nit:48 */
     REGB0 = TAG_Int(1);
     goto label1;
   } else {
-    /* ./metamodel//partial_order.nit:50 */
+    /* metamodel/partial_order.nit:50 */
     REGB1 = TAG_Int(0);
     REGB0 = REGB1;
     goto label1;
@@ -239,7 +239,7 @@ val_t metamodel___partial_order___PartialOrder___iterator(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//partial_order.nit:54 */
+  /* metamodel/partial_order.nit:54 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements_list(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -267,7 +267,7 @@ val_t metamodel___partial_order___PartialOrder_____bra(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//partial_order.nit:61 */
+  /* metamodel/partial_order.nit:61 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -296,12 +296,12 @@ val_t metamodel___partial_order___PartialOrder___to_dot(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//partial_order.nit:67 */
+  /* metamodel/partial_order.nit:67 */
   fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___init();
-  /* ./metamodel//partial_order.nit:68 */
+  /* metamodel/partial_order.nit:68 */
   fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrder___to_dot_header(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./metamodel//partial_order.nit:69 */
+  /* metamodel/partial_order.nit:69 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -310,7 +310,7 @@ val_t metamodel___partial_order___PartialOrder___to_dot(val_t p0){
   fra.me.REG[2] = ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0]);
   fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead___values(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_metamodel___partial_order___PartialOrder___to_dot_1));
-  /* ./metamodel//partial_order.nit:75 */
+  /* metamodel/partial_order.nit:75 */
   if (!once_value_3) {
     fra.me.REG[0] = BOX_NativeString("}\n");
     REGB0 = TAG_Int(2);
@@ -320,7 +320,7 @@ val_t metamodel___partial_order___PartialOrder___to_dot(val_t p0){
   } else fra.me.REG[0] = once_value_3;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./metamodel//partial_order.nit:76 */
+  /* metamodel/partial_order.nit:76 */
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   goto label4;
   label4: while(0);
@@ -350,26 +350,26 @@ val_t metamodel___partial_order___PartialOrder___to_dot(val_t p0){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./metamodel//partial_order.nit:70 */
+    /* metamodel/partial_order.nit:70 */
     fra.me.REG[1] = CALL_metamodel___partial_order___PartialOrderElement___value(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = CALL_metamodel___partial_order___PartialOrder___to_dot_node(closctx->REG[0])(closctx->REG[0], fra.me.REG[1]);
     CALL_standard___collection___abstract_collection___Sequence___append(closctx->REG[1])(closctx->REG[1], fra.me.REG[1]);
-    /* ./metamodel//partial_order.nit:71 */
+    /* metamodel/partial_order.nit:71 */
     fra.me.REG[1] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[0])(fra.me.REG[0]);
-    /* ./../lib/standard//collection//array.nit:269 */
+    /* ../lib/standard/collection/array.nit:269 */
     REGB0 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:270 */
+    /* ../lib/standard/collection/array.nit:270 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-    /* ./../lib/standard//collection//array.nit:271 */
+    /* ../lib/standard/collection/array.nit:271 */
     fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     while(1) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -381,29 +381,29 @@ val_t metamodel___partial_order___PartialOrder___to_dot(val_t p0){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       if (UNTAG_Bool(REGB1)) {
-        /* ./../lib/standard//collection//array.nit:273 */
+        /* ../lib/standard/collection/array.nit:273 */
         REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-        /* ./metamodel//partial_order.nit:72 */
+        /* metamodel/partial_order.nit:72 */
         fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___value(fra.me.REG[0])(fra.me.REG[0]);
         fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrder___to_dot_edge(closctx->REG[0])(closctx->REG[0], fra.me.REG[4], fra.me.REG[3]);
         CALL_standard___collection___abstract_collection___Sequence___append(closctx->REG[1])(closctx->REG[1], fra.me.REG[3]);
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB1 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB0 = REGB1;
       } else {
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         goto label2;
       }
     }
@@ -425,7 +425,7 @@ val_t metamodel___partial_order___PartialOrder___to_dot_header(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//partial_order.nit:82 */
+  /* metamodel/partial_order.nit:82 */
   if (!once_value_1) {
     fra.me.REG[0] = BOX_NativeString("digraph G {\ngraph [rankdir=BT];\n");
     REGB0 = TAG_Int(32);
@@ -457,7 +457,7 @@ val_t metamodel___partial_order___PartialOrder___to_dot_node(val_t p0, val_t p1)
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//partial_order.nit:88 */
+  /* metamodel/partial_order.nit:88 */
   REGB0 = TAG_Int(3);
   fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -507,7 +507,7 @@ val_t metamodel___partial_order___PartialOrder___to_dot_edge(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./metamodel//partial_order.nit:94 */
+  /* metamodel/partial_order.nit:94 */
   REGB0 = TAG_Int(5);
   fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -566,7 +566,7 @@ val_t metamodel___partial_order___PartialOrder___select_smallests(val_t p0, val_
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//partial_order.nit:100 */
+  /* metamodel/partial_order.nit:100 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -583,33 +583,33 @@ val_t metamodel___partial_order___PartialOrder___select_smallests(val_t p0, val_
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
     goto label1;
   }
-  /* ./metamodel//partial_order.nit:101 */
+  /* metamodel/partial_order.nit:101 */
   REGB0 = CALL_metamodel___partial_order___PartialOrder___has_all(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___partial_order, 101);
   }
-  /* ./metamodel//partial_order.nit:102 */
+  /* metamodel/partial_order.nit:102 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_metamodel___partial_order, 102);
   }
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  /* ./metamodel//partial_order.nit:103 */
+  /* metamodel/partial_order.nit:103 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_metamodel___partial_order, 103);
   }
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  /* ./metamodel//partial_order.nit:104 */
+  /* metamodel/partial_order.nit:104 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_metamodel___partial_order, 104);
   }
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_metamodel___partial_order___PartialOrder___select_smallests_2));
-  /* ./metamodel//partial_order.nit:115 */
+  /* metamodel/partial_order.nit:115 */
   fra.me.REG[2] = fra.me.REG[3];
   goto label1;
   label1: while(0);
@@ -633,15 +633,15 @@ val_t metamodel___partial_order___PartialOrder___select_smallests(val_t p0, val_
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./metamodel//partial_order.nit:106 */
+    /* metamodel/partial_order.nit:106 */
     REGB0 = CALL_metamodel___partial_order___PartialOrder___add_to_smallests(closctx->REG[0])(closctx->REG[0], fra.me.REG[0], closctx->REG[3], closctx->REG[4]);
-    /* ./metamodel//partial_order.nit:107 */
+    /* metamodel/partial_order.nit:107 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./metamodel//partial_order.nit:110 */
+      /* metamodel/partial_order.nit:110 */
       fra.me.REG[0] = closctx->REG[4];
-      /* ./metamodel//partial_order.nit:111 */
+      /* metamodel/partial_order.nit:111 */
       closctx->REG[4] = closctx->REG[3];
-      /* ./metamodel//partial_order.nit:112 */
+      /* metamodel/partial_order.nit:112 */
       closctx->REG[3] = fra.me.REG[0];
     }
     stack_frame_head = fra.me.prev;
@@ -667,14 +667,14 @@ val_t metamodel___partial_order___PartialOrder___add(val_t p0, val_t p1, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./metamodel//partial_order.nit:121 */
+  /* metamodel/partial_order.nit:121 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___partial_order, 121);
   }
-  /* ./metamodel//partial_order.nit:122 */
+  /* metamodel/partial_order.nit:122 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -697,11 +697,11 @@ val_t metamodel___partial_order___PartialOrder___add(val_t p0, val_t p1, val_t p
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___partial_order, 122);
   }
-  /* ./metamodel//partial_order.nit:123 */
+  /* metamodel/partial_order.nit:123 */
   fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrder___select_smallests(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./metamodel//partial_order.nit:124 */
+  /* metamodel/partial_order.nit:124 */
   fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrder___new_poe(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
-  /* ./metamodel//partial_order.nit:125 */
+  /* metamodel/partial_order.nit:125 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -709,7 +709,7 @@ val_t metamodel___partial_order___PartialOrder___add(val_t p0, val_t p1, val_t p
   }
   fra.me.REG[4] = ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[3]);
-  /* ./metamodel//partial_order.nit:126 */
+  /* metamodel/partial_order.nit:126 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements_list(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -717,7 +717,7 @@ val_t metamodel___partial_order___PartialOrder___add(val_t p0, val_t p1, val_t p
   }
   fra.me.REG[4] = ATTR_metamodel___partial_order___PartialOrder____elements_list(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
-  /* ./metamodel//partial_order.nit:127 */
+  /* metamodel/partial_order.nit:127 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -741,7 +741,7 @@ val_t metamodel___partial_order___PartialOrder___add(val_t p0, val_t p1, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//partial_order.nit:128 */
+    /* metamodel/partial_order.nit:128 */
     REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____roots(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -750,7 +750,7 @@ val_t metamodel___partial_order___PartialOrder___add(val_t p0, val_t p1, val_t p
     fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrder____roots(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   }
-  /* ./metamodel//partial_order.nit:130 */
+  /* metamodel/partial_order.nit:130 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -776,7 +776,7 @@ val_t metamodel___partial_order___PartialOrder___has_all(val_t p0, val_t p1){
     case 0: break;
     case 1: (&(fra.me))->has_broke = 0; goto label3;
   }
-  /* ./metamodel//partial_order.nit:141 */
+  /* metamodel/partial_order.nit:141 */
   REGB0 = TAG_Bool(true);
   fra.me.REG[1] = REGB0;
   goto label3;
@@ -789,7 +789,7 @@ val_t metamodel___partial_order___PartialOrder___has_all(val_t p0, val_t p1){
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./metamodel//partial_order.nit:136 */
+    /* metamodel/partial_order.nit:136 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_metamodel___partial_order;
     fra.me.line = 0;
@@ -802,11 +802,11 @@ val_t metamodel___partial_order___PartialOrder___has_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./metamodel//partial_order.nit:137 */
+    /* metamodel/partial_order.nit:137 */
     REGB0 = CALL_standard___collection___abstract_collection___Collection___has(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./metamodel//partial_order.nit:138 */
+      /* metamodel/partial_order.nit:138 */
       REGB0 = TAG_Bool(false);
       closctx->REG[1] = REGB0;
       closctx->has_broke = 1;
@@ -832,7 +832,7 @@ val_t metamodel___partial_order___PartialOrder___new_poe(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./metamodel//partial_order.nit:147 */
+  /* metamodel/partial_order.nit:147 */
   fra.me.REG[2] = NEW_PartialOrderElement_metamodel___partial_order___PartialOrderElement___init(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
   goto label1;
   label1: while(0);
@@ -862,24 +862,24 @@ val_t metamodel___partial_order___PartialOrder___add_to_smallests(val_t p0, val_
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./metamodel//partial_order.nit:157 */
+  /* metamodel/partial_order.nit:157 */
   CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./metamodel//partial_order.nit:158 */
+  /* metamodel/partial_order.nit:158 */
   fra.me.REG[0] = CALL_metamodel___partial_order___PartialOrder_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -891,46 +891,46 @@ val_t metamodel___partial_order___PartialOrder___add_to_smallests(val_t p0, val_
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-      /* ./metamodel//partial_order.nit:160 */
+      /* metamodel/partial_order.nit:160 */
       REGB1 = CALL_metamodel___partial_order___PartialOrderElement_____g(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
       if (UNTAG_Bool(REGB1)) {
-        /* ./metamodel//partial_order.nit:161 */
+        /* metamodel/partial_order.nit:161 */
         REGB1 = TAG_Bool(false);
         goto label1;
       }
-      /* ./metamodel//partial_order.nit:163 */
+      /* metamodel/partial_order.nit:163 */
       REGB2 = CALL_metamodel___partial_order___PartialOrderElement_____l(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
       REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
       if (UNTAG_Bool(REGB2)) {
-        /* ./metamodel//partial_order.nit:164 */
+        /* metamodel/partial_order.nit:164 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./metamodel//partial_order.nit:167 */
+  /* metamodel/partial_order.nit:167 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-  /* ./metamodel//partial_order.nit:168 */
+  /* metamodel/partial_order.nit:168 */
   REGB0 = TAG_Bool(true);
   REGB1 = REGB0;
   goto label1;
@@ -955,9 +955,9 @@ void metamodel___partial_order___PartialOrder___compute_smallers_for(val_t p0, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./metamodel//partial_order.nit:173 */
+  /* metamodel/partial_order.nit:173 */
   fra.me.REG[1] = CALL_metamodel___partial_order___PartialOrderElement___value(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./metamodel//partial_order.nit:174 */
+  /* metamodel/partial_order.nit:174 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -986,10 +986,10 @@ void metamodel___partial_order___PartialOrder___compute_smallers_for(val_t p0, v
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./metamodel//partial_order.nit:175 */
+    /* metamodel/partial_order.nit:175 */
     REGB0 = CALL_metamodel___partial_order___PartialOrderElement_____l(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./metamodel//partial_order.nit:176 */
+      /* metamodel/partial_order.nit:176 */
       fra.me.REG[0] = CALL_metamodel___partial_order___PartialOrderElement___value(fra.me.REG[0])(fra.me.REG[0]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
     }
@@ -1011,13 +1011,13 @@ void metamodel___partial_order___PartialOrder___init(val_t p0, int* init_table){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//partial_order.nit:183 */
+  /* metamodel/partial_order.nit:183 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//partial_order.nit:184 */
+  /* metamodel/partial_order.nit:184 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_metamodel___partial_order___PartialOrder____elements_list(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//partial_order.nit:185 */
+  /* metamodel/partial_order.nit:185 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_metamodel___partial_order___PartialOrder____roots(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -1037,7 +1037,7 @@ val_t metamodel___partial_order___PartialOrderElement___order(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//partial_order.nit:190 */
+  /* metamodel/partial_order.nit:190 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1060,7 +1060,7 @@ val_t metamodel___partial_order___PartialOrderElement___value(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//partial_order.nit:193 */
+  /* metamodel/partial_order.nit:193 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1083,7 +1083,7 @@ val_t metamodel___partial_order___PartialOrderElement___rank(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//partial_order.nit:196 */
+  /* metamodel/partial_order.nit:196 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____rank(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1106,7 +1106,7 @@ val_t metamodel___partial_order___PartialOrderElement___direct_greaters(val_t p0
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//partial_order.nit:202 */
+  /* metamodel/partial_order.nit:202 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____direct_greaters(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1129,7 +1129,7 @@ val_t metamodel___partial_order___PartialOrderElement___direct_smallers(val_t p0
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//partial_order.nit:205 */
+  /* metamodel/partial_order.nit:205 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____direct_smallers(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1152,7 +1152,7 @@ val_t metamodel___partial_order___PartialOrderElement___greaters(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//partial_order.nit:208 */
+  /* metamodel/partial_order.nit:208 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____greaters(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1179,9 +1179,9 @@ val_t metamodel___partial_order___PartialOrderElement___greaters_and_self(val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//partial_order.nit:214 */
+  /* metamodel/partial_order.nit:214 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./metamodel//partial_order.nit:217 */
+  /* metamodel/partial_order.nit:217 */
   fra.me.REG[2] = ATTR_metamodel___partial_order___PartialOrderElement____greaters_and_self_cache(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1196,7 +1196,7 @@ val_t metamodel___partial_order___PartialOrderElement___greaters_and_self(val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//partial_order.nit:218 */
+    /* metamodel/partial_order.nit:218 */
     REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____greaters(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1205,7 +1205,7 @@ val_t metamodel___partial_order___PartialOrderElement___greaters_and_self(val_t
     fra.me.REG[2] = ATTR_metamodel___partial_order___PartialOrderElement____greaters(fra.me.REG[1]);
     fra.me.REG[2] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[2])(fra.me.REG[2]);
     ATTR_metamodel___partial_order___PartialOrderElement____greaters_and_self_cache(fra.me.REG[1]) = fra.me.REG[2];
-    /* ./metamodel//partial_order.nit:219 */
+    /* metamodel/partial_order.nit:219 */
     fra.me.REG[2] = ATTR_metamodel___partial_order___PartialOrderElement____greaters_and_self_cache(fra.me.REG[1]);
     REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____value(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -1219,7 +1219,7 @@ val_t metamodel___partial_order___PartialOrderElement___greaters_and_self(val_t
     }
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   }
-  /* ./metamodel//partial_order.nit:221 */
+  /* metamodel/partial_order.nit:221 */
   fra.me.REG[1] = ATTR_metamodel___partial_order___PartialOrderElement____greaters_and_self_cache(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1248,7 +1248,7 @@ val_t metamodel___partial_order___PartialOrderElement___smallers(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//partial_order.nit:233 */
+  /* metamodel/partial_order.nit:233 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____smallers_last_length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1267,11 +1267,11 @@ val_t metamodel___partial_order___PartialOrderElement___smallers(val_t p0){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-  /* ./metamodel//partial_order.nit:233 */
+  /* metamodel/partial_order.nit:233 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./metamodel//partial_order.nit:234 */
+    /* metamodel/partial_order.nit:234 */
     REGB1 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1285,7 +1285,7 @@ val_t metamodel___partial_order___PartialOrderElement___smallers(val_t p0){
     }
     fra.me.REG[2] = ATTR_metamodel___partial_order___PartialOrderElement____smallers_cache(fra.me.REG[0]);
     CALL_metamodel___partial_order___PartialOrder___compute_smallers_for(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
-    /* ./metamodel//partial_order.nit:235 */
+    /* metamodel/partial_order.nit:235 */
     REGB1 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1295,7 +1295,7 @@ val_t metamodel___partial_order___PartialOrderElement___smallers(val_t p0){
     REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[2])(fra.me.REG[2]);
     ATTR_metamodel___partial_order___PartialOrderElement____smallers_last_length(fra.me.REG[0]) = REGB1;
   }
-  /* ./metamodel//partial_order.nit:237 */
+  /* metamodel/partial_order.nit:237 */
   REGB1 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____smallers_cache(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -1332,9 +1332,9 @@ val_t metamodel___partial_order___PartialOrderElement___linear_extension(val_t p
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//partial_order.nit:243 */
+  /* metamodel/partial_order.nit:243 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./metamodel//partial_order.nit:247 */
+  /* metamodel/partial_order.nit:247 */
   fra.me.REG[2] = ATTR_metamodel___partial_order___PartialOrderElement____linear_extension_cache(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1349,29 +1349,29 @@ val_t metamodel___partial_order___PartialOrderElement___linear_extension(val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//partial_order.nit:248 */
+    /* metamodel/partial_order.nit:248 */
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-    /* ./metamodel//partial_order.nit:249 */
+    /* metamodel/partial_order.nit:249 */
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-    /* ./metamodel//partial_order.nit:250 */
+    /* metamodel/partial_order.nit:250 */
     fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___value(fra.me.REG[1])(fra.me.REG[1]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-    /* ./metamodel//partial_order.nit:251 */
+    /* metamodel/partial_order.nit:251 */
     fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./../lib/standard//collection//array.nit:269 */
+    /* ../lib/standard/collection/array.nit:269 */
     REGB0 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:270 */
+    /* ../lib/standard/collection/array.nit:270 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-    /* ./../lib/standard//collection//array.nit:271 */
+    /* ../lib/standard/collection/array.nit:271 */
     fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     while(1) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -1383,39 +1383,39 @@ val_t metamodel___partial_order___PartialOrderElement___linear_extension(val_t p
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       if (UNTAG_Bool(REGB1)) {
-        /* ./../lib/standard//collection//array.nit:273 */
+        /* ../lib/standard/collection/array.nit:273 */
         REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-        /* ./metamodel//partial_order.nit:252 */
+        /* metamodel/partial_order.nit:252 */
         fra.me.REG[7] = CALL_metamodel___partial_order___PartialOrderElement___order(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[6] = CALL_metamodel___partial_order___PartialOrder_____bra(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
         fra.me.REG[6] = CALL_metamodel___partial_order___PartialOrderElement___linear_extension(fra.me.REG[6])(fra.me.REG[6]);
-        /* ./metamodel//partial_order.nit:253 */
+        /* metamodel/partial_order.nit:253 */
         CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[3])(fra.me.REG[3]);
-        /* ./../lib/standard//collection//array.nit:266 */
+        /* ../lib/standard/collection/array.nit:266 */
         fra.me.REG[7] = fra.me.REG[2];
-        /* ./../lib/standard//collection//array.nit:269 */
+        /* ../lib/standard/collection/array.nit:269 */
         REGB1 = TAG_Int(0);
-        /* ./../lib/standard//collection//array.nit:270 */
+        /* ../lib/standard/collection/array.nit:270 */
         REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
         }
         REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
-        /* ./../lib/standard//collection//array.nit:271 */
+        /* ../lib/standard/collection/array.nit:271 */
         fra.me.REG[8] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         while(1) {
-          /* ./../lib/standard//collection//array.nit:24 */
+          /* ../lib/standard/collection/array.nit:24 */
           REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
           } else {
@@ -1427,59 +1427,59 @@ val_t metamodel___partial_order___PartialOrderElement___linear_extension(val_t p
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           if (UNTAG_Bool(REGB2)) {
-            /* ./../lib/standard//collection//array.nit:273 */
+            /* ../lib/standard/collection/array.nit:273 */
             REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
             if (UNTAG_Bool(REGB2)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[9] = ((Nit_NativeArray)fra.me.REG[8])->val[UNTAG_Int(REGB1)];
-            /* ./metamodel//partial_order.nit:255 */
+            /* metamodel/partial_order.nit:255 */
             REGB2 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
             REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
             if (UNTAG_Bool(REGB2)) {
               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]);
             }
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB2 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB1 = REGB2;
           } else {
-            /* ./../lib/standard//collection//array.nit:272 */
+            /* ../lib/standard/collection/array.nit:272 */
             goto label1;
           }
         }
         label1: while(0);
-        /* ./metamodel//partial_order.nit:257 */
+        /* metamodel/partial_order.nit:257 */
         CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
-        /* ./metamodel//partial_order.nit:259 */
+        /* metamodel/partial_order.nit:259 */
         fra.me.REG[6] = fra.me.REG[2];
-        /* ./metamodel//partial_order.nit:260 */
+        /* metamodel/partial_order.nit:260 */
         fra.me.REG[2] = fra.me.REG[3];
-        /* ./metamodel//partial_order.nit:261 */
+        /* metamodel/partial_order.nit:261 */
         fra.me.REG[3] = fra.me.REG[6];
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB1 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB0 = REGB1;
       } else {
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         goto label2;
       }
     }
     label2: while(0);
-    /* ./metamodel//partial_order.nit:263 */
+    /* metamodel/partial_order.nit:263 */
     ATTR_metamodel___partial_order___PartialOrderElement____linear_extension_cache(fra.me.REG[1]) = fra.me.REG[2];
   }
-  /* ./metamodel//partial_order.nit:265 */
+  /* metamodel/partial_order.nit:265 */
   fra.me.REG[1] = ATTR_metamodel___partial_order___PartialOrderElement____linear_extension_cache(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1512,9 +1512,9 @@ val_t metamodel___partial_order___PartialOrderElement___reverse_linear_extension
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//partial_order.nit:271 */
+  /* metamodel/partial_order.nit:271 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./metamodel//partial_order.nit:275 */
+  /* metamodel/partial_order.nit:275 */
   fra.me.REG[2] = ATTR_metamodel___partial_order___PartialOrderElement____reverse_linear_extension_cache(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1529,24 +1529,24 @@ val_t metamodel___partial_order___PartialOrderElement___reverse_linear_extension
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//partial_order.nit:276 */
+    /* metamodel/partial_order.nit:276 */
     fra.me.REG[2] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-    /* ./metamodel//partial_order.nit:277 */
+    /* metamodel/partial_order.nit:277 */
     fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./../lib/standard//collection//array.nit:269 */
+    /* ../lib/standard/collection/array.nit:269 */
     REGB0 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:270 */
+    /* ../lib/standard/collection/array.nit:270 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-    /* ./../lib/standard//collection//array.nit:271 */
+    /* ../lib/standard/collection/array.nit:271 */
     fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     while(1) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -1558,43 +1558,43 @@ val_t metamodel___partial_order___PartialOrderElement___reverse_linear_extension
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       if (UNTAG_Bool(REGB1)) {
-        /* ./../lib/standard//collection//array.nit:273 */
+        /* ../lib/standard/collection/array.nit:273 */
         REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-        /* ./metamodel//partial_order.nit:278 */
+        /* metamodel/partial_order.nit:278 */
         fra.me.REG[6] = CALL_metamodel___partial_order___PartialOrderElement___order(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrder_____bra(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
         fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrderElement___linear_extension(fra.me.REG[5])(fra.me.REG[5]);
-        /* ./metamodel//partial_order.nit:279 */
+        /* metamodel/partial_order.nit:279 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB1 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB0 = REGB1;
       } else {
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         goto label1;
       }
     }
     label1: while(0);
-    /* ./metamodel//partial_order.nit:281 */
+    /* metamodel/partial_order.nit:281 */
     fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___value(fra.me.REG[1])(fra.me.REG[1]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-    /* ./metamodel//partial_order.nit:282 */
+    /* metamodel/partial_order.nit:282 */
     fra.me.REG[2] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[2])(fra.me.REG[2]);
     ATTR_metamodel___partial_order___PartialOrderElement____linear_extension_cache(fra.me.REG[1]) = fra.me.REG[2];
   }
-  /* ./metamodel//partial_order.nit:284 */
+  /* metamodel/partial_order.nit:284 */
   fra.me.REG[1] = ATTR_metamodel___partial_order___PartialOrderElement____linear_extension_cache(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1621,7 +1621,7 @@ val_t metamodel___partial_order___PartialOrderElement_____l(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//partial_order.nit:290 */
+  /* metamodel/partial_order.nit:290 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____greaters(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1651,7 +1651,7 @@ val_t metamodel___partial_order___PartialOrderElement_____leq(val_t p0, val_t p1
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//partial_order.nit:296 */
+  /* metamodel/partial_order.nit:296 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1697,7 +1697,7 @@ val_t metamodel___partial_order___PartialOrderElement_____g(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//partial_order.nit:302 */
+  /* metamodel/partial_order.nit:302 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1734,7 +1734,7 @@ val_t metamodel___partial_order___PartialOrderElement_____geq(val_t p0, val_t p1
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//partial_order.nit:308 */
+  /* metamodel/partial_order.nit:308 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1786,7 +1786,7 @@ void metamodel___partial_order___PartialOrderElement___register_direct_smallers(
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//partial_order.nit:313 */
+  /* metamodel/partial_order.nit:313 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____direct_smallers(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1824,44 +1824,44 @@ void metamodel___partial_order___PartialOrderElement___init(val_t p0, val_t p1,
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./metamodel//partial_order.nit:318 */
+  /* metamodel/partial_order.nit:318 */
   ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//partial_order.nit:319 */
+  /* metamodel/partial_order.nit:319 */
   ATTR_metamodel___partial_order___PartialOrderElement____value(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./metamodel//partial_order.nit:320 */
+  /* metamodel/partial_order.nit:320 */
   ATTR_metamodel___partial_order___PartialOrderElement____direct_greaters(fra.me.REG[0]) = fra.me.REG[3];
-  /* ./metamodel//partial_order.nit:321 */
+  /* metamodel/partial_order.nit:321 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_metamodel___partial_order___PartialOrderElement____direct_smallers(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//partial_order.nit:323 */
+  /* metamodel/partial_order.nit:323 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_metamodel___partial_order___PartialOrderElement____greaters(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//partial_order.nit:324 */
+  /* metamodel/partial_order.nit:324 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_metamodel___partial_order___PartialOrderElement____smallers_cache(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//partial_order.nit:326 */
+  /* metamodel/partial_order.nit:326 */
   REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____greaters(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_greaters", LOCATE_metamodel___partial_order, 326);
   }
   fra.me.REG[1] = ATTR_metamodel___partial_order___PartialOrderElement____greaters(fra.me.REG[0]);
-  /* ./metamodel//partial_order.nit:327 */
+  /* metamodel/partial_order.nit:327 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -1873,20 +1873,20 @@ void metamodel___partial_order___PartialOrderElement___init(val_t p0, val_t p1,
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
-      /* ./metamodel//partial_order.nit:329 */
+      /* metamodel/partial_order.nit:329 */
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-      /* ./metamodel//partial_order.nit:330 */
+      /* metamodel/partial_order.nit:330 */
       REGB2 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -1894,43 +1894,43 @@ void metamodel___partial_order___PartialOrderElement___init(val_t p0, val_t p1,
       }
       fra.me.REG[6] = ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0]);
       fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrder_____bra(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
-      /* ./metamodel//partial_order.nit:331 */
+      /* metamodel/partial_order.nit:331 */
       REGB2 = CALL_metamodel___partial_order___PartialOrderElement___rank(fra.me.REG[5])(fra.me.REG[5]);
       REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB3)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB0));
-      /* ./metamodel//partial_order.nit:331 */
+      /* metamodel/partial_order.nit:331 */
       if (UNTAG_Bool(REGB2)) {
-        /* ./metamodel//partial_order.nit:332 */
+        /* metamodel/partial_order.nit:332 */
         REGB2 = CALL_metamodel___partial_order___PartialOrderElement___rank(fra.me.REG[5])(fra.me.REG[5]);
         REGB3 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-        /* ./metamodel//partial_order.nit:332 */
+        /* metamodel/partial_order.nit:332 */
         REGB0 = REGB3;
       }
-      /* ./metamodel//partial_order.nit:334 */
+      /* metamodel/partial_order.nit:334 */
       CALL_metamodel___partial_order___PartialOrderElement___register_direct_smallers(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
-      /* ./metamodel//partial_order.nit:335 */
+      /* metamodel/partial_order.nit:335 */
       fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrderElement___greaters(fra.me.REG[5])(fra.me.REG[5]);
       CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_metamodel___partial_order___PartialOrderElement___init_1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = REGB3;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./metamodel//partial_order.nit:339 */
+  /* metamodel/partial_order.nit:339 */
   ATTR_metamodel___partial_order___PartialOrderElement____rank(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
@@ -1948,7 +1948,7 @@ void metamodel___partial_order___PartialOrderElement___init(val_t p0, val_t p1,
         fra.me.nitni_local_ref_head = NULL;
         fra.me.REG[0] = NIT_NULL;
         fra.me.REG[0] = p0;
-        /* ./metamodel//partial_order.nit:336 */
+        /* metamodel/partial_order.nit:336 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
         stack_frame_head = fra.me.prev;
         return;
index f7c24f3..6972134 100644 (file)
@@ -16,9 +16,9 @@ val_t metamodel___static_type___MMLocalClass___get_type(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:27 */
+  /* metamodel/static_type.nit:27 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./metamodel//static_type.nit:30 */
+  /* metamodel/static_type.nit:30 */
   fra.me.REG[2] = ATTR_metamodel___static_type___MMLocalClass____base_type_cache(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -36,7 +36,7 @@ val_t metamodel___static_type___MMLocalClass___get_type(val_t p0){
     fra.me.REG[2] = NEW_MMTypeSimpleClass_metamodel___static_type___MMTypeSimpleClass___init(fra.me.REG[1]);
     ATTR_metamodel___static_type___MMLocalClass____base_type_cache(fra.me.REG[1]) = fra.me.REG[2];
   }
-  /* ./metamodel//static_type.nit:31 */
+  /* metamodel/static_type.nit:31 */
   fra.me.REG[1] = ATTR_metamodel___static_type___MMLocalClass____base_type_cache(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -66,7 +66,7 @@ void metamodel___static_type___MMLocalClass___add_ancestor(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:37 */
+  /* metamodel/static_type.nit:37 */
   fra.me.REG[2] = ATTR_metamodel___static_type___MMLocalClass____ancestors(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___static_type___MMAncestor___local_class(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -79,7 +79,7 @@ void metamodel___static_type___MMLocalClass___add_ancestor(val_t p0, val_t p1){
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___static_type, 37);
   }
-  /* ./metamodel//static_type.nit:38 */
+  /* metamodel/static_type.nit:38 */
   fra.me.REG[3] = CALL_metamodel___static_type___MMAncestor___local_class(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[0]));
   if (UNTAG_Bool(REGB0)) {
@@ -92,7 +92,7 @@ void metamodel___static_type___MMLocalClass___add_ancestor(val_t p0, val_t p1){
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___static_type, 38);
   }
-  /* ./metamodel//static_type.nit:39 */
+  /* metamodel/static_type.nit:39 */
   fra.me.REG[0] = ATTR_metamodel___static_type___MMLocalClass____ancestors(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___static_type___MMAncestor___local_class(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
@@ -115,7 +115,7 @@ val_t metamodel___static_type___MMLocalClass___ancestors(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:42 */
+  /* metamodel/static_type.nit:42 */
   fra.me.REG[0] = ATTR_metamodel___static_type___MMLocalClass____ancestors(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -135,7 +135,7 @@ val_t metamodel___static_type___MMLocalClass___ancestor(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:48 */
+  /* metamodel/static_type.nit:48 */
   fra.me.REG[0] = ATTR_metamodel___static_type___MMLocalClass____ancestors(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -164,7 +164,7 @@ val_t metamodel___static_type___MMLocalProperty___signature(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:53 */
+  /* metamodel/static_type.nit:53 */
   fra.me.REG[0] = ATTR_metamodel___static_type___MMLocalProperty____signature(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -183,7 +183,7 @@ void metamodel___static_type___MMLocalProperty___signature__eq(val_t p0, val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:53 */
+  /* metamodel/static_type.nit:53 */
   ATTR_metamodel___static_type___MMLocalProperty____signature(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -206,9 +206,9 @@ val_t metamodel___static_type___MMLocalProperty___signature_for(val_t p0, val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:58 */
+  /* metamodel/static_type.nit:58 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./metamodel//static_type.nit:60 */
+  /* metamodel/static_type.nit:60 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[3]));
@@ -226,7 +226,7 @@ val_t metamodel___static_type___MMLocalProperty___signature_for(val_t p0, val_t
     }
     goto label1;
   }
-  /* ./metamodel//static_type.nit:62 */
+  /* metamodel/static_type.nit:62 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -245,14 +245,14 @@ val_t metamodel___static_type___MMLocalProperty___signature_for(val_t p0, val_t
     fra.me.REG[3] = fra.me.REG[0];
     goto label1;
   }
-  /* ./metamodel//static_type.nit:64 */
+  /* metamodel/static_type.nit:64 */
   fra.me.REG[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_metamodel___static_type, 64);
   }
   fra.me.REG[0] = CALL_metamodel___static_type___MMSignature___adaptation_to(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./metamodel//static_type.nit:65 */
+  /* metamodel/static_type.nit:65 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -260,7 +260,7 @@ val_t metamodel___static_type___MMLocalProperty___signature_for(val_t p0, val_t
   }
   fra.me.REG[2] = ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[0]);
-  /* ./metamodel//static_type.nit:66 */
+  /* metamodel/static_type.nit:66 */
   fra.me.REG[3] = fra.me.REG[0];
   goto label1;
   label1: while(0);
@@ -280,7 +280,7 @@ val_t metamodel___static_type___MMParam___mmtype(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:71 */
+  /* metamodel/static_type.nit:71 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMParam_____atmmtype(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -304,7 +304,7 @@ void metamodel___static_type___MMParam___mmtype__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:71 */
+  /* metamodel/static_type.nit:71 */
   ATTR_metamodel___static_type___MMParam_____atmmtype(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -322,7 +322,7 @@ val_t metamodel___static_type___MMParam___name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:72 */
+  /* metamodel/static_type.nit:72 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMParam_____atname(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -346,7 +346,7 @@ void metamodel___static_type___MMParam___name__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:72 */
+  /* metamodel/static_type.nit:72 */
   ATTR_metamodel___static_type___MMParam_____atname(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -369,9 +369,9 @@ void metamodel___static_type___MMParam___init(val_t p0, val_t p1, val_t p2, int*
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./metamodel//static_type.nit:76 */
+  /* metamodel/static_type.nit:76 */
   CALL_metamodel___static_type___MMParam___mmtype__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./metamodel//static_type.nit:77 */
+  /* metamodel/static_type.nit:77 */
   CALL_metamodel___static_type___MMParam___name__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -395,7 +395,7 @@ val_t metamodel___static_type___MMParam___to_s(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:80 */
+  /* metamodel/static_type.nit:80 */
   REGB0 = TAG_Int(5);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -450,7 +450,7 @@ val_t metamodel___static_type___MMSignature___recv(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:85 */
+  /* metamodel/static_type.nit:85 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____recv(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -473,7 +473,7 @@ val_t metamodel___static_type___MMSignature___params(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:88 */
+  /* metamodel/static_type.nit:88 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -495,7 +495,7 @@ val_t metamodel___static_type___MMSignature___return_type(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:91 */
+  /* metamodel/static_type.nit:91 */
   fra.me.REG[0] = ATTR_metamodel___static_type___MMSignature____return_type(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -513,7 +513,7 @@ val_t metamodel___static_type___MMSignature___closures(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:94 */
+  /* metamodel/static_type.nit:94 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____closures(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -543,27 +543,27 @@ val_t metamodel___static_type___MMSignature___closure_named(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:100 */
+  /* metamodel/static_type.nit:100 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____closures(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_closures", LOCATE_metamodel___static_type, 100);
   }
   fra.me.REG[0] = ATTR_metamodel___static_type___MMSignature____closures(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -575,18 +575,18 @@ val_t metamodel___static_type___MMSignature___closure_named(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./metamodel//static_type.nit:101 */
+      /* metamodel/static_type.nit:101 */
       fra.me.REG[4] = CALL_metamodel___static_type___MMClosure___name(fra.me.REG[3])(fra.me.REG[3]);
       REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[1]));
       if (UNTAG_Bool(REGB1)) {
@@ -597,19 +597,19 @@ val_t metamodel___static_type___MMSignature___closure_named(val_t p0, val_t p1){
       if (UNTAG_Bool(REGB1)) {
         goto label1;
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./metamodel//static_type.nit:103 */
+  /* metamodel/static_type.nit:103 */
   fra.me.REG[3] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -629,21 +629,21 @@ val_t metamodel___static_type___MMSignature___arity(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:109 */
+  /* metamodel/static_type.nit:109 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___static_type, 109);
   }
   fra.me.REG[0] = ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./metamodel//static_type.nit:109 */
+  /* metamodel/static_type.nit:109 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -673,9 +673,9 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:112 */
+  /* metamodel/static_type.nit:112 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./metamodel//static_type.nit:115 */
+  /* metamodel/static_type.nit:115 */
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[1]));
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -683,11 +683,11 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//static_type.nit:116 */
+    /* metamodel/static_type.nit:116 */
     REGB0 = TAG_Bool(true);
     goto label1;
   }
-  /* ./metamodel//static_type.nit:118 */
+  /* metamodel/static_type.nit:118 */
   REGB1 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____recv(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -707,19 +707,19 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___static_type, 118);
   }
-  /* ./metamodel//static_type.nit:119 */
+  /* metamodel/static_type.nit:119 */
   fra.me.REG[4] = ATTR_metamodel___static_type___MMSignature____return_type(fra.me.REG[2]);
-  /* ./metamodel//static_type.nit:120 */
+  /* metamodel/static_type.nit:120 */
   fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./metamodel//static_type.nit:121 */
+  /* metamodel/static_type.nit:121 */
   REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
   REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[1])(fra.me.REG[1]);
   REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
   if (UNTAG_Bool(REGB3)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB2 = TAG_Bool((REGB1)==(REGB2));
-    /* ./metamodel//static_type.nit:121 */
+    /* metamodel/static_type.nit:121 */
     REGB3 = REGB2;
   }
   REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
@@ -753,9 +753,9 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
     REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
     if (UNTAG_Bool(REGB4)) {
     } else {
-      /* ./../lib/standard//kernel.nit:195 */
+      /* ../lib/standard/kernel.nit:195 */
       REGB1 = TAG_Bool((REGB2)==(REGB1));
-      /* ./metamodel//static_type.nit:121 */
+      /* metamodel/static_type.nit:121 */
       REGB4 = REGB1;
     }
     REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
@@ -766,7 +766,7 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
     REGB0 = REGB3;
     goto label1;
   }
-  /* ./metamodel//static_type.nit:122 */
+  /* metamodel/static_type.nit:122 */
   REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB3)) {
   } else {
@@ -797,75 +797,75 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
     REGB3 = REGB4;
   }
   if (UNTAG_Bool(REGB3)) {
-    /* ./metamodel//static_type.nit:123 */
+    /* metamodel/static_type.nit:123 */
     REGB3 = TAG_Bool(false);
     REGB0 = REGB3;
     goto label1;
   }
-  /* ./metamodel//static_type.nit:126 */
+  /* metamodel/static_type.nit:126 */
   REGB3 = TAG_Int(0);
   REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB1 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./metamodel//static_type.nit:126 */
+      /* metamodel/static_type.nit:126 */
       REGB1 = REGB3;
-      /* ./metamodel//static_type.nit:127 */
+      /* metamodel/static_type.nit:127 */
       fra.me.REG[3] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[1])(fra.me.REG[1], REGB1);
       fra.me.REG[4] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[2])(fra.me.REG[2], REGB1);
       REGB1 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
       REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
       if (UNTAG_Bool(REGB1)) {
-        /* ./metamodel//static_type.nit:128 */
+        /* metamodel/static_type.nit:128 */
         REGB1 = TAG_Bool(false);
         REGB0 = REGB1;
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB3 = REGB1;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./metamodel//static_type.nit:132 */
+  /* metamodel/static_type.nit:132 */
   fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
   if (UNTAG_Bool(REGB3)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-  /* ./metamodel//static_type.nit:132 */
+  /* metamodel/static_type.nit:132 */
   fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
   if (UNTAG_Bool(REGB4)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-  /* ./metamodel//static_type.nit:132 */
+  /* metamodel/static_type.nit:132 */
   REGB1 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4));
   if (UNTAG_Bool(REGB1)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB4 = TAG_Bool((REGB3)==(REGB4));
-    /* ./metamodel//static_type.nit:132 */
+    /* metamodel/static_type.nit:132 */
     REGB1 = REGB4;
   }
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
@@ -874,43 +874,43 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
     REGB0 = REGB1;
     goto label1;
   }
-  /* ./metamodel//static_type.nit:133 */
+  /* metamodel/static_type.nit:133 */
   REGB1 = TAG_Int(0);
   fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
   if (UNTAG_Bool(REGB4)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB3 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB4));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB3)) {
-      /* ./metamodel//static_type.nit:133 */
+      /* metamodel/static_type.nit:133 */
       REGB3 = REGB1;
-      /* ./metamodel//static_type.nit:134 */
+      /* metamodel/static_type.nit:134 */
       fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       REGB2 = REGB3;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB5 = TAG_Int(0);
       REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB6)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB5 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB5));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB5)) {
         REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
         if (UNTAG_Bool(REGB5)) {
@@ -923,40 +923,40 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB5 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB5));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB6 = TAG_Bool(false);
         REGB5 = REGB6;
       }
       if (UNTAG_Bool(REGB5)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
       REGB5 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB5)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB2)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label3;
       label3: while(0);
-      /* ./metamodel//static_type.nit:134 */
+      /* metamodel/static_type.nit:134 */
       fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[2])(fra.me.REG[2]);
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB2 = TAG_Int(0);
       REGB5 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB5)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB2)) {
         REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
@@ -969,29 +969,29 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB5 = TAG_Bool(false);
         REGB2 = REGB5;
       }
       if (UNTAG_Bool(REGB2)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
       REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB3)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label4;
       label4: while(0);
-      /* ./metamodel//static_type.nit:134 */
+      /* metamodel/static_type.nit:134 */
       REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
         nit_abort("Reciever is null", NULL, LOCATE_metamodel___static_type, 134);
@@ -1003,19 +1003,19 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
         REGB0 = REGB3;
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB1 = REGB3;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label5;
     }
   }
   label5: while(0);
-  /* ./metamodel//static_type.nit:136 */
+  /* metamodel/static_type.nit:136 */
   REGB1 = TAG_Bool(true);
   REGB0 = REGB1;
   goto label1;
@@ -1040,14 +1040,14 @@ val_t metamodel___static_type___MMSignature_____bra(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./metamodel//static_type.nit:142 */
+  /* metamodel/static_type.nit:142 */
   REGB1 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___static_type, 142);
   }
   fra.me.REG[1] = ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -1059,30 +1059,30 @@ val_t metamodel___static_type___MMSignature_____bra(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
-  /* ./metamodel//static_type.nit:142 */
+  /* metamodel/static_type.nit:142 */
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___static_type, 142);
   }
-  /* ./metamodel//static_type.nit:143 */
+  /* metamodel/static_type.nit:143 */
   REGB1 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___static_type, 143);
   }
   fra.me.REG[0] = ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -1095,29 +1095,29 @@ val_t metamodel___static_type___MMSignature_____bra(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
   } else {
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB2 = TAG_Bool(false);
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+    nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
   }
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
   REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
   }
-  /* ./../lib/standard//collection//array.nit:718 */
+  /* ../lib/standard/collection/array.nit:718 */
   fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   goto label1;
   label1: while(0);
-  /* ./metamodel//static_type.nit:143 */
+  /* metamodel/static_type.nit:143 */
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_metamodel___static_type, 143);
@@ -1154,50 +1154,50 @@ val_t metamodel___static_type___MMSignature___to_s(val_t p0){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:148 */
+  /* metamodel/static_type.nit:148 */
   fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___init();
-  /* ./metamodel//static_type.nit:149 */
+  /* metamodel/static_type.nit:149 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___static_type, 149);
   }
   fra.me.REG[2] = ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./metamodel//static_type.nit:149 */
+  /* metamodel/static_type.nit:149 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-  /* ./metamodel//static_type.nit:149 */
+  /* metamodel/static_type.nit:149 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./metamodel//static_type.nit:151 */
+    /* metamodel/static_type.nit:151 */
     REGB1 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___static_type, 151);
     }
     fra.me.REG[2] = ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0]);
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-    /* ./metamodel//static_type.nit:151 */
+    /* metamodel/static_type.nit:151 */
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-    /* ./metamodel//static_type.nit:152 */
+    /* metamodel/static_type.nit:152 */
     REGB1 = TAG_Int(0);
     REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -1205,43 +1205,43 @@ val_t metamodel___static_type___MMSignature___to_s(val_t p0){
       nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___static_type, 152);
     }
     fra.me.REG[3] = ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0]);
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     while(1) {
       REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       if (UNTAG_Bool(REGB2)) {
-        /* ./metamodel//static_type.nit:152 */
+        /* metamodel/static_type.nit:152 */
         REGB2 = REGB1;
-        /* ./metamodel//static_type.nit:153 */
+        /* metamodel/static_type.nit:153 */
         REGB3 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___static_type, 153);
         }
         fra.me.REG[3] = ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0]);
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB3 = TAG_Int(0);
         REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB4)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB3)) {
           REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
@@ -1254,44 +1254,44 @@ val_t metamodel___static_type___MMSignature___to_s(val_t p0){
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
         } else {
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB4 = TAG_Bool(false);
           REGB3 = REGB4;
         }
         if (UNTAG_Bool(REGB3)) {
         } else {
-          nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+          nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
         }
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
         REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB2)];
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         goto label1;
         label1: while(0);
-        /* ./metamodel//static_type.nit:154 */
+        /* metamodel/static_type.nit:154 */
         fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB1 = REGB2;
       } else {
-        /* ./../lib/standard//kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:352 */
         goto label2;
       }
     }
     label2: while(0);
-    /* ./metamodel//static_type.nit:156 */
+    /* metamodel/static_type.nit:156 */
     REGB1 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
     if (!once_value_3) {
@@ -1325,9 +1325,9 @@ val_t metamodel___static_type___MMSignature___to_s(val_t p0){
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./metamodel//static_type.nit:158 */
+  /* metamodel/static_type.nit:158 */
   fra.me.REG[0] = ATTR_metamodel___static_type___MMSignature____return_type(fra.me.REG[0]);
-  /* ./metamodel//static_type.nit:159 */
+  /* metamodel/static_type.nit:159 */
   REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -1367,7 +1367,7 @@ val_t metamodel___static_type___MMSignature___to_s(val_t p0){
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./metamodel//static_type.nit:160 */
+  /* metamodel/static_type.nit:160 */
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   goto label8;
   label8: while(0);
@@ -1399,7 +1399,7 @@ val_t metamodel___static_type___MMSignature___adaptation_to(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:166 */
+  /* metamodel/static_type.nit:166 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____recv(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1413,35 +1413,35 @@ val_t metamodel___static_type___MMSignature___adaptation_to(val_t p0, val_t p1){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//static_type.nit:167 */
+    /* metamodel/static_type.nit:167 */
     fra.me.REG[2] = fra.me.REG[0];
     goto label1;
   }
-  /* ./metamodel//static_type.nit:169 */
+  /* metamodel/static_type.nit:169 */
   fra.me.REG[3] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./metamodel//static_type.nit:170 */
+  /* metamodel/static_type.nit:170 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./metamodel//static_type.nit:171 */
+  /* metamodel/static_type.nit:171 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___static_type, 171);
   }
   fra.me.REG[5] = ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1453,22 +1453,22 @@ val_t metamodel___static_type___MMSignature___adaptation_to(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
-      /* ./metamodel//static_type.nit:172 */
+      /* metamodel/static_type.nit:172 */
       fra.me.REG[8] = CALL_metamodel___static_type___MMParam___mmtype(fra.me.REG[7])(fra.me.REG[7]);
       fra.me.REG[8] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
       fra.me.REG[8] = CALL_metamodel___static_type___MMType___adapt_to(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[1]);
-      /* ./metamodel//static_type.nit:174 */
+      /* metamodel/static_type.nit:174 */
       fra.me.REG[9] = CALL_metamodel___static_type___MMParam___mmtype(fra.me.REG[7])(fra.me.REG[7]);
       REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[8],fra.me.REG[9]));
       if (UNTAG_Bool(REGB1)) {
@@ -1477,31 +1477,31 @@ val_t metamodel___static_type___MMSignature___adaptation_to(val_t p0, val_t p1){
         REGB1 = REGB2;
       }
       if (UNTAG_Bool(REGB1)) {
-        /* ./metamodel//static_type.nit:175 */
+        /* metamodel/static_type.nit:175 */
         fra.me.REG[9] = fra.me.REG[7];
       } else {
-        /* ./metamodel//static_type.nit:177 */
+        /* metamodel/static_type.nit:177 */
         fra.me.REG[7] = CALL_metamodel___static_type___MMParam___name(fra.me.REG[7])(fra.me.REG[7]);
         fra.me.REG[7] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[8], fra.me.REG[7]);
         fra.me.REG[9] = fra.me.REG[7];
       }
-      /* ./metamodel//static_type.nit:180 */
+      /* metamodel/static_type.nit:180 */
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./metamodel//static_type.nit:182 */
+  /* metamodel/static_type.nit:182 */
   fra.me.REG[6] = ATTR_metamodel___static_type___MMSignature____return_type(fra.me.REG[0]);
-  /* ./metamodel//static_type.nit:183 */
+  /* metamodel/static_type.nit:183 */
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1516,7 +1516,7 @@ val_t metamodel___static_type___MMSignature___adaptation_to(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//static_type.nit:184 */
+    /* metamodel/static_type.nit:184 */
     REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_metamodel___static_type, 184);
@@ -1525,29 +1525,29 @@ val_t metamodel___static_type___MMSignature___adaptation_to(val_t p0, val_t p1){
     fra.me.REG[3] = CALL_metamodel___static_type___MMType___adapt_to(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
     fra.me.REG[6] = fra.me.REG[3];
   }
-  /* ./metamodel//static_type.nit:186 */
+  /* metamodel/static_type.nit:186 */
   fra.me.REG[6] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[4], fra.me.REG[6], fra.me.REG[1]);
-  /* ./metamodel//static_type.nit:187 */
+  /* metamodel/static_type.nit:187 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____closures(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_closures", LOCATE_metamodel___static_type, 187);
   }
   fra.me.REG[0] = ATTR_metamodel___static_type___MMSignature____closures(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1559,34 +1559,34 @@ val_t metamodel___static_type___MMSignature___adaptation_to(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-      /* ./metamodel//static_type.nit:188 */
+      /* metamodel/static_type.nit:188 */
       fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[6])(fra.me.REG[6]);
       fra.me.REG[3] = CALL_metamodel___static_type___MMClosure___adaptation_to(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label3;
     }
   }
   label3: while(0);
-  /* ./metamodel//static_type.nit:190 */
+  /* metamodel/static_type.nit:190 */
   fra.me.REG[2] = fra.me.REG[6];
   goto label1;
   label1: while(0);
@@ -1617,9 +1617,9 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:195 */
+  /* metamodel/static_type.nit:195 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./metamodel//static_type.nit:199 */
+  /* metamodel/static_type.nit:199 */
   fra.me.REG[2] = ATTR_metamodel___static_type___MMSignature____not_for_self_cache(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1643,31 +1643,31 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
     }
     goto label1;
   }
-  /* ./metamodel//static_type.nit:201 */
+  /* metamodel/static_type.nit:201 */
   REGB0 = TAG_Bool(false);
-  /* ./metamodel//static_type.nit:202 */
+  /* metamodel/static_type.nit:202 */
   fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
-  /* ./metamodel//static_type.nit:203 */
+  /* metamodel/static_type.nit:203 */
   REGB1 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___static_type, 203);
   }
   fra.me.REG[3] = ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -1679,21 +1679,21 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
-      /* ./metamodel//static_type.nit:204 */
+      /* metamodel/static_type.nit:204 */
       fra.me.REG[6] = CALL_metamodel___static_type___MMParam___mmtype(fra.me.REG[5])(fra.me.REG[5]);
       fra.me.REG[6] = CALL_metamodel___static_type___MMType___not_for_self(fra.me.REG[6])(fra.me.REG[6]);
-      /* ./metamodel//static_type.nit:206 */
+      /* metamodel/static_type.nit:206 */
       fra.me.REG[7] = CALL_metamodel___static_type___MMParam___mmtype(fra.me.REG[5])(fra.me.REG[5]);
       REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[7],fra.me.REG[6]));
       if (UNTAG_Bool(REGB2)) {
@@ -1702,34 +1702,34 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
         REGB2 = REGB3;
       }
       if (UNTAG_Bool(REGB2)) {
-        /* ./metamodel//static_type.nit:207 */
+        /* metamodel/static_type.nit:207 */
         fra.me.REG[7] = fra.me.REG[5];
       } else {
-        /* ./metamodel//static_type.nit:209 */
+        /* metamodel/static_type.nit:209 */
         REGB2 = TAG_Bool(true);
         REGB0 = REGB2;
-        /* ./metamodel//static_type.nit:210 */
+        /* metamodel/static_type.nit:210 */
         fra.me.REG[5] = CALL_metamodel___static_type___MMParam___name(fra.me.REG[5])(fra.me.REG[5]);
         fra.me.REG[5] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[6], fra.me.REG[5]);
         fra.me.REG[7] = fra.me.REG[5];
       }
-      /* ./metamodel//static_type.nit:213 */
+      /* metamodel/static_type.nit:213 */
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./metamodel//static_type.nit:216 */
+  /* metamodel/static_type.nit:216 */
   fra.me.REG[4] = ATTR_metamodel___static_type___MMSignature____return_type(fra.me.REG[1]);
-  /* ./metamodel//static_type.nit:217 */
+  /* metamodel/static_type.nit:217 */
   REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -1744,14 +1744,14 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
   }
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
   if (UNTAG_Bool(REGB1)) {
-    /* ./metamodel//static_type.nit:218 */
+    /* metamodel/static_type.nit:218 */
     REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       nit_abort("Reciever is null", NULL, LOCATE_metamodel___static_type, 218);
     }
     fra.me.REG[3] = CALL_metamodel___static_type___MMType___not_for_self(fra.me.REG[4])(fra.me.REG[4]);
     fra.me.REG[4] = fra.me.REG[3];
-    /* ./metamodel//static_type.nit:219 */
+    /* metamodel/static_type.nit:219 */
     fra.me.REG[3] = ATTR_metamodel___static_type___MMSignature____return_type(fra.me.REG[1]);
     REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[4],fra.me.REG[3]));
     if (UNTAG_Bool(REGB1)) {
@@ -1771,29 +1771,29 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
       REGB0 = REGB1;
     }
   }
-  /* ./metamodel//static_type.nit:222 */
+  /* metamodel/static_type.nit:222 */
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-  /* ./metamodel//static_type.nit:223 */
+  /* metamodel/static_type.nit:223 */
   REGB1 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____closures(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_closures", LOCATE_metamodel___static_type, 223);
   }
   fra.me.REG[7] = ATTR_metamodel___static_type___MMSignature____closures(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -1805,20 +1805,20 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
-      /* ./metamodel//static_type.nit:224 */
+      /* metamodel/static_type.nit:224 */
       fra.me.REG[8] = CALL_metamodel___static_type___MMClosure___not_for_self(fra.me.REG[6])(fra.me.REG[6]);
-      /* ./metamodel//static_type.nit:225 */
+      /* metamodel/static_type.nit:225 */
       REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[8],fra.me.REG[6]));
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -1830,23 +1830,23 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
         REGB2 = TAG_Bool(true);
         REGB0 = REGB2;
       }
-      /* ./metamodel//static_type.nit:226 */
+      /* metamodel/static_type.nit:226 */
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label3;
     }
   }
   label3: while(0);
-  /* ./metamodel//static_type.nit:230 */
+  /* metamodel/static_type.nit:230 */
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//static_type.nit:231 */
+    /* metamodel/static_type.nit:231 */
     REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____recv(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1854,16 +1854,16 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
     }
     fra.me.REG[5] = ATTR_metamodel___static_type___MMSignature____recv(fra.me.REG[1]);
     fra.me.REG[5] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], fra.me.REG[4], fra.me.REG[5]);
-    /* ./metamodel//static_type.nit:232 */
+    /* metamodel/static_type.nit:232 */
     fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[5])(fra.me.REG[5]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   } else {
-    /* ./metamodel//static_type.nit:234 */
+    /* metamodel/static_type.nit:234 */
     fra.me.REG[5] = fra.me.REG[1];
   }
-  /* ./metamodel//static_type.nit:237 */
+  /* metamodel/static_type.nit:237 */
   ATTR_metamodel___static_type___MMSignature____not_for_self_cache(fra.me.REG[1]) = fra.me.REG[5];
-  /* ./metamodel//static_type.nit:238 */
+  /* metamodel/static_type.nit:238 */
   fra.me.REG[2] = fra.me.REG[5];
   goto label1;
   label1: while(0);
@@ -1890,11 +1890,11 @@ void metamodel___static_type___MMSignature___init(val_t p0, val_t p1, val_t p2,
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./metamodel//static_type.nit:243 */
+  /* metamodel/static_type.nit:243 */
   ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//static_type.nit:244 */
+  /* metamodel/static_type.nit:244 */
   ATTR_metamodel___static_type___MMSignature____return_type(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./metamodel//static_type.nit:245 */
+  /* metamodel/static_type.nit:245 */
   ATTR_metamodel___static_type___MMSignature____recv(fra.me.REG[0]) = fra.me.REG[3];
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
@@ -1913,7 +1913,7 @@ val_t metamodel___static_type___MMExplicitImport___signature(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:251 */
+  /* metamodel/static_type.nit:251 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMExplicitImport_____atsignature(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1937,7 +1937,7 @@ void metamodel___static_type___MMExplicitImport___signature__eq(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:251 */
+  /* metamodel/static_type.nit:251 */
   ATTR_metamodel___static_type___MMExplicitImport_____atsignature(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1964,13 +1964,13 @@ void metamodel___static_type___MMExplicitImport___init(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./metamodel//static_type.nit:253 */
+  /* metamodel/static_type.nit:253 */
   fra.me.REG[3] = fra.me.REG[0];
   fra.me.REG[4] = fra.me.REG[1];
   fra.me.REG[5] = fra.me.REG[2];
-  /* ./metamodel//static_type.nit:255 */
+  /* metamodel/static_type.nit:255 */
   CALL_SUPER_metamodel___static_type___MMExplicitImport___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  /* ./metamodel//static_type.nit:256 */
+  /* metamodel/static_type.nit:256 */
   fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[5])(fra.me.REG[5]);
   fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
@@ -1996,7 +1996,7 @@ val_t metamodel___static_type___MMClosure___name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:262 */
+  /* metamodel/static_type.nit:262 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2019,7 +2019,7 @@ val_t metamodel___static_type___MMClosure___signature(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:265 */
+  /* metamodel/static_type.nit:265 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____signature(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2042,7 +2042,7 @@ val_t metamodel___static_type___MMClosure___is_break(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:268 */
+  /* metamodel/static_type.nit:268 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____is_break(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2065,7 +2065,7 @@ val_t metamodel___static_type___MMClosure___is_optional(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:272 */
+  /* metamodel/static_type.nit:272 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____is_optional(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2093,7 +2093,7 @@ val_t metamodel___static_type___MMClosure___adaptation_to(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:279 */
+  /* metamodel/static_type.nit:279 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2147,13 +2147,13 @@ void metamodel___static_type___MMClosure___init(val_t p0, val_t p1, val_t p2, va
   fra.me.REG[2] = p2;
   REGB0 = p3;
   REGB1 = p4;
-  /* ./metamodel//static_type.nit:284 */
+  /* metamodel/static_type.nit:284 */
   ATTR_metamodel___static_type___MMClosure____name(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//static_type.nit:285 */
+  /* metamodel/static_type.nit:285 */
   ATTR_metamodel___static_type___MMClosure____signature(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./metamodel//static_type.nit:286 */
+  /* metamodel/static_type.nit:286 */
   ATTR_metamodel___static_type___MMClosure____is_break(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//static_type.nit:287 */
+  /* metamodel/static_type.nit:287 */
   ATTR_metamodel___static_type___MMClosure____is_optional(fra.me.REG[0]) = REGB1;
   stack_frame_head = fra.me.prev;
   init_table[itpos3] = 1;
@@ -2175,7 +2175,7 @@ val_t metamodel___static_type___MMClosure___not_for_self(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:292 */
+  /* metamodel/static_type.nit:292 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____signature(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2183,7 +2183,7 @@ val_t metamodel___static_type___MMClosure___not_for_self(val_t p0){
   }
   fra.me.REG[1] = ATTR_metamodel___static_type___MMClosure____signature(fra.me.REG[0]);
   fra.me.REG[1] = CALL_metamodel___static_type___MMSignature___not_for_self(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./metamodel//static_type.nit:293 */
+  /* metamodel/static_type.nit:293 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____signature(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2198,7 +2198,7 @@ val_t metamodel___static_type___MMClosure___not_for_self(val_t p0){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//static_type.nit:294 */
+    /* metamodel/static_type.nit:294 */
     REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____name(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -2220,7 +2220,7 @@ val_t metamodel___static_type___MMClosure___not_for_self(val_t p0){
     fra.me.REG[1] = NEW_MMClosure_metamodel___static_type___MMClosure___init(fra.me.REG[2], fra.me.REG[1], REGB0, REGB1);
     goto label1;
   } else {
-    /* ./metamodel//static_type.nit:296 */
+    /* metamodel/static_type.nit:296 */
     fra.me.REG[1] = fra.me.REG[0];
     goto label1;
   }
@@ -2245,7 +2245,7 @@ val_t metamodel___static_type___MMClosure_____l(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:302 */
+  /* metamodel/static_type.nit:302 */
   REGB0 = CALL_metamodel___static_type___MMClosure___is_optional(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
     REGB0 = CALL_metamodel___static_type___MMClosure___is_optional(fra.me.REG[0])(fra.me.REG[0]);
@@ -2258,7 +2258,7 @@ val_t metamodel___static_type___MMClosure_____l(val_t p0, val_t p1){
     REGB0 = TAG_Bool(false);
     goto label1;
   }
-  /* ./metamodel//static_type.nit:303 */
+  /* metamodel/static_type.nit:303 */
   REGB1 = CALL_metamodel___static_type___MMClosure___is_break(fra.me.REG[1])(fra.me.REG[1]);
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
   if (UNTAG_Bool(REGB1)) {
@@ -2272,7 +2272,7 @@ val_t metamodel___static_type___MMClosure_____l(val_t p0, val_t p1){
     REGB0 = REGB1;
     goto label1;
   }
-  /* ./metamodel//static_type.nit:304 */
+  /* metamodel/static_type.nit:304 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = CALL_metamodel___static_type___MMSignature_____l(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -2296,7 +2296,7 @@ void metamodel___static_type___MMAncestor___stype__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:310 */
+  /* metamodel/static_type.nit:310 */
   ATTR_metamodel___static_type___MMAncestor____stype(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2315,9 +2315,9 @@ val_t metamodel___static_type___MMAncestor___stype(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:313 */
+  /* metamodel/static_type.nit:313 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./metamodel//static_type.nit:314 */
+  /* metamodel/static_type.nit:314 */
   fra.me.REG[1] = ATTR_metamodel___static_type___MMAncestor____stype(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2343,7 +2343,7 @@ void metamodel___static_type___MMAncestor___inheriter__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:316 */
+  /* metamodel/static_type.nit:316 */
   ATTR_metamodel___static_type___MMAncestor____inheriter(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2362,9 +2362,9 @@ val_t metamodel___static_type___MMAncestor___inheriter(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:319 */
+  /* metamodel/static_type.nit:319 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./metamodel//static_type.nit:320 */
+  /* metamodel/static_type.nit:320 */
   fra.me.REG[1] = ATTR_metamodel___static_type___MMAncestor____inheriter(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2391,7 +2391,7 @@ val_t metamodel___static_type___MMAncestor___is_reffinement(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:323 */
+  /* metamodel/static_type.nit:323 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMAncestor___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_metamodel___static_type___MMAncestor___stype(fra.me.REG[0])(fra.me.REG[0]);
@@ -2423,7 +2423,7 @@ val_t metamodel___static_type___MMAncestor___is_specialisation(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:327 */
+  /* metamodel/static_type.nit:327 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMAncestor___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
@@ -2452,7 +2452,7 @@ val_t metamodel___static_type___MMAncestor___local_class(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./metamodel//static_type.nit:330 */
+  /* metamodel/static_type.nit:330 */
   nit_abort("Deferred method called", NULL, LOCATE_metamodel___static_type, 330);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -2472,7 +2472,7 @@ val_t metamodel___static_type___MMAncestor___to_s(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:335 */
+  /* metamodel/static_type.nit:335 */
   fra.me.REG[1] = ATTR_metamodel___static_type___MMAncestor____stype(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2487,12 +2487,12 @@ val_t metamodel___static_type___MMAncestor___to_s(val_t p0){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//static_type.nit:336 */
+    /* metamodel/static_type.nit:336 */
     fra.me.REG[1] = CALL_metamodel___static_type___MMAncestor___local_class(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
     goto label1;
   } else {
-    /* ./metamodel//static_type.nit:338 */
+    /* metamodel/static_type.nit:338 */
     fra.me.REG[0] = CALL_metamodel___static_type___MMAncestor___stype(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = fra.me.REG[0];
@@ -2528,7 +2528,7 @@ val_t metamodel___static_type___MMType___mmmodule(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./metamodel//static_type.nit:346 */
+  /* metamodel/static_type.nit:346 */
   nit_abort("Deferred method called", NULL, LOCATE_metamodel___static_type, 346);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -2543,7 +2543,7 @@ val_t metamodel___static_type___MMType___local_class(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./metamodel//static_type.nit:349 */
+  /* metamodel/static_type.nit:349 */
   nit_abort("Deferred method called", NULL, LOCATE_metamodel___static_type, 349);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -2561,7 +2561,7 @@ val_t metamodel___static_type___MMType___is_valid(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:354 */
+  /* metamodel/static_type.nit:354 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -2578,7 +2578,7 @@ val_t metamodel___static_type___MMType_____l(val_t p0, val_t p1){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./metamodel//static_type.nit:356 */
+  /* metamodel/static_type.nit:356 */
   nit_abort("Deferred method called", NULL, LOCATE_metamodel___static_type, 356);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -2593,7 +2593,7 @@ val_t metamodel___static_type___MMType___is_supertype(val_t p0, val_t p1){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./metamodel//static_type.nit:359 */
+  /* metamodel/static_type.nit:359 */
   nit_abort("Deferred method called", NULL, LOCATE_metamodel___static_type, 359);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -2608,7 +2608,7 @@ val_t metamodel___static_type___MMType___for_module(val_t p0, val_t p1){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./metamodel//static_type.nit:364 */
+  /* metamodel/static_type.nit:364 */
   nit_abort("Deferred method called", NULL, LOCATE_metamodel___static_type, 364);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -2623,7 +2623,7 @@ val_t metamodel___static_type___MMType___adapt_to(val_t p0, val_t p1){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./metamodel//static_type.nit:367 */
+  /* metamodel/static_type.nit:367 */
   nit_abort("Deferred method called", NULL, LOCATE_metamodel___static_type, 367);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -2638,7 +2638,7 @@ val_t metamodel___static_type___MMType___upcast_for(val_t p0, val_t p1){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./metamodel//static_type.nit:371 */
+  /* metamodel/static_type.nit:371 */
   nit_abort("Deferred method called", NULL, LOCATE_metamodel___static_type, 371);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -2655,7 +2655,7 @@ val_t metamodel___static_type___MMType___not_for_self(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:395 */
+  /* metamodel/static_type.nit:395 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -2674,7 +2674,7 @@ val_t metamodel___static_type___MMType___is_nullable(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:401 */
+  /* metamodel/static_type.nit:401 */
   REGB0 = TAG_Bool(false);
   goto label1;
   label1: while(0);
@@ -2697,9 +2697,9 @@ val_t metamodel___static_type___MMType___as_nullable(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:406 */
+  /* metamodel/static_type.nit:406 */
   fra.me.REG[1] = ATTR_metamodel___static_type___MMType____as_nullable_cache(fra.me.REG[0]);
-  /* ./metamodel//static_type.nit:407 */
+  /* metamodel/static_type.nit:407 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2716,11 +2716,11 @@ val_t metamodel___static_type___MMType___as_nullable(val_t p0){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./metamodel//static_type.nit:408 */
+  /* metamodel/static_type.nit:408 */
   fra.me.REG[2] = NEW_MMNullableType_metamodel___static_type___MMNullableType___init(fra.me.REG[0]);
-  /* ./metamodel//static_type.nit:409 */
+  /* metamodel/static_type.nit:409 */
   ATTR_metamodel___static_type___MMType____as_nullable_cache(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./metamodel//static_type.nit:410 */
+  /* metamodel/static_type.nit:410 */
   fra.me.REG[1] = fra.me.REG[2];
   goto label1;
   label1: while(0);
@@ -2739,7 +2739,7 @@ val_t metamodel___static_type___MMType___as_notnull(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:415 */
+  /* metamodel/static_type.nit:415 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -2774,7 +2774,7 @@ val_t metamodel___static_type___MMNullableType___is_valid(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:421 */
+  /* metamodel/static_type.nit:421 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2800,7 +2800,7 @@ val_t metamodel___static_type___MMNullableType___is_nullable(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:422 */
+  /* metamodel/static_type.nit:422 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -2820,7 +2820,7 @@ val_t metamodel___static_type___MMNullableType___as_notnull(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:423 */
+  /* metamodel/static_type.nit:423 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2844,7 +2844,7 @@ val_t metamodel___static_type___MMNullableType___as_nullable(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:424 */
+  /* metamodel/static_type.nit:424 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -2867,7 +2867,7 @@ void metamodel___static_type___MMNullableType___init(val_t p0, val_t p1, int* in
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:425 */
+  /* metamodel/static_type.nit:425 */
   fra.me.REG[2] = fra.me.REG[0];
   CALL_metamodel___static_type___MMType___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[2]) = fra.me.REG[1];
@@ -2888,7 +2888,7 @@ val_t metamodel___static_type___MMNullableType___mmmodule(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:427 */
+  /* metamodel/static_type.nit:427 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2914,7 +2914,7 @@ val_t metamodel___static_type___MMNullableType___local_class(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:429 */
+  /* metamodel/static_type.nit:429 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2943,7 +2943,7 @@ val_t metamodel___static_type___MMNullableType_____l(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:433 */
+  /* metamodel/static_type.nit:433 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMNullableType, ID_metamodel___static_type___MMNullableType)) /*cast MMNullableType*/;
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
@@ -2980,7 +2980,7 @@ val_t metamodel___static_type___MMNullableType___to_s(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:438 */
+  /* metamodel/static_type.nit:438 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -3030,7 +3030,7 @@ val_t metamodel___static_type___MMNullableType___is_supertype(val_t p0, val_t p1
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:443 */
+  /* metamodel/static_type.nit:443 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3058,7 +3058,7 @@ val_t metamodel___static_type___MMNullableType___for_module(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:448 */
+  /* metamodel/static_type.nit:448 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3087,7 +3087,7 @@ val_t metamodel___static_type___MMNullableType___adapt_to(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:453 */
+  /* metamodel/static_type.nit:453 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3116,7 +3116,7 @@ val_t metamodel___static_type___MMNullableType___upcast_for(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:458 */
+  /* metamodel/static_type.nit:458 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3142,7 +3142,7 @@ val_t metamodel___static_type___MMNullableType___not_for_self(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:463 */
+  /* metamodel/static_type.nit:463 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3169,7 +3169,7 @@ val_t metamodel___static_type___MMTypeClass___local_class(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:469 */
+  /* metamodel/static_type.nit:469 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3192,7 +3192,7 @@ val_t metamodel___static_type___MMTypeClass___mmmodule(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:470 */
+  /* metamodel/static_type.nit:470 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3220,7 +3220,7 @@ val_t metamodel___static_type___MMTypeClass_____l(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:471 */
+  /* metamodel/static_type.nit:471 */
   REGB0 = CALL_metamodel___static_type___MMType___is_supertype(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -3240,7 +3240,7 @@ val_t metamodel___static_type___MMTypeClass___to_s(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:475 */
+  /* metamodel/static_type.nit:475 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3271,9 +3271,9 @@ val_t metamodel___static_type___MMTypeClass___upcast_for(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:480 */
+  /* metamodel/static_type.nit:480 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./metamodel//static_type.nit:481 */
+  /* metamodel/static_type.nit:481 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3288,7 +3288,7 @@ val_t metamodel___static_type___MMTypeClass___upcast_for(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//static_type.nit:482 */
+    /* metamodel/static_type.nit:482 */
     REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -3298,7 +3298,7 @@ val_t metamodel___static_type___MMTypeClass___upcast_for(val_t p0, val_t p1){
     fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___ancestor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
     fra.me.REG[2] = fra.me.REG[1];
   }
-  /* ./metamodel//static_type.nit:484 */
+  /* metamodel/static_type.nit:484 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -3321,10 +3321,10 @@ void metamodel___static_type___MMTypeClass___init(val_t p0, val_t p1, int* init_
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:487 */
+  /* metamodel/static_type.nit:487 */
   fra.me.REG[2] = fra.me.REG[0];
   CALL_metamodel___static_type___MMType___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./metamodel//static_type.nit:489 */
+  /* metamodel/static_type.nit:489 */
   ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[2]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos7] = 1;
@@ -3345,7 +3345,7 @@ val_t metamodel___static_type___MMTypeSimpleClass___is_supertype(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:497 */
+  /* metamodel/static_type.nit:497 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
@@ -3378,9 +3378,9 @@ val_t metamodel___static_type___MMTypeSimpleClass___for_module(val_t p0, val_t p
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:502 */
+  /* metamodel/static_type.nit:502 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./metamodel//static_type.nit:503 */
+  /* metamodel/static_type.nit:503 */
   fra.me.REG[3] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
   if (UNTAG_Bool(REGB0)) {
@@ -3390,7 +3390,7 @@ val_t metamodel___static_type___MMTypeSimpleClass___for_module(val_t p0, val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//static_type.nit:504 */
+    /* metamodel/static_type.nit:504 */
     REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -3401,7 +3401,7 @@ val_t metamodel___static_type___MMTypeSimpleClass___for_module(val_t p0, val_t p
     fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[2] = fra.me.REG[1];
   }
-  /* ./metamodel//static_type.nit:506 */
+  /* metamodel/static_type.nit:506 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -3421,7 +3421,7 @@ val_t metamodel___static_type___MMTypeSimpleClass___adapt_to(val_t p0, val_t p1)
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:509 */
+  /* metamodel/static_type.nit:509 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -3443,7 +3443,7 @@ void metamodel___static_type___MMTypeSimpleClass___init(val_t p0, val_t p1, int*
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:513 */
+  /* metamodel/static_type.nit:513 */
   CALL_metamodel___static_type___MMTypeClass___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos8] = 1;
@@ -3462,7 +3462,7 @@ val_t metamodel___static_type___MMTypeNone___mmmodule(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:520 */
+  /* metamodel/static_type.nit:520 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeNone____mmmodule(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3485,7 +3485,7 @@ val_t metamodel___static_type___MMTypeNone___is_nullable(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:521 */
+  /* metamodel/static_type.nit:521 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -3508,7 +3508,7 @@ val_t metamodel___static_type___MMTypeNone_____l(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:522 */
+  /* metamodel/static_type.nit:522 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(true);
@@ -3535,7 +3535,7 @@ val_t metamodel___static_type___MMTypeNone___to_s(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:523 */
+  /* metamodel/static_type.nit:523 */
   if (!once_value_1) {
     fra.me.REG[0] = BOX_NativeString("null");
     REGB0 = TAG_Int(4);
@@ -3564,7 +3564,7 @@ val_t metamodel___static_type___MMTypeNone___is_supertype(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:524 */
+  /* metamodel/static_type.nit:524 */
   REGB0 = TAG_Bool(false);
   goto label1;
   label1: while(0);
@@ -3583,7 +3583,7 @@ val_t metamodel___static_type___MMTypeNone___local_class(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:525 */
+  /* metamodel/static_type.nit:525 */
   nit_abort("Aborted", NULL, LOCATE_metamodel___static_type, 525);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3602,7 +3602,7 @@ val_t metamodel___static_type___MMTypeNone___upcast_for(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:526 */
+  /* metamodel/static_type.nit:526 */
   nit_abort("Aborted", NULL, LOCATE_metamodel___static_type, 526);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3619,7 +3619,7 @@ val_t metamodel___static_type___MMTypeNone___as_nullable(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:527 */
+  /* metamodel/static_type.nit:527 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -3637,7 +3637,7 @@ val_t metamodel___static_type___MMTypeNone___as_notnull(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:528 */
+  /* metamodel/static_type.nit:528 */
   nit_abort("Aborted", NULL, LOCATE_metamodel___static_type, 528);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3659,7 +3659,7 @@ void metamodel___static_type___MMTypeNone___init(val_t p0, val_t p1, int* init_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:530 */
+  /* metamodel/static_type.nit:530 */
   fra.me.REG[2] = fra.me.REG[0];
   CALL_metamodel___static_type___MMType___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   ATTR_metamodel___static_type___MMTypeNone____mmmodule(fra.me.REG[2]) = fra.me.REG[1];
@@ -3680,7 +3680,7 @@ val_t metamodel___static_type___MMModule___type_none(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:534 */
+  /* metamodel/static_type.nit:534 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMModule____type_none(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3706,7 +3706,7 @@ val_t metamodel___static_type___MMModule___type_bool(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:540 */
+  /* metamodel/static_type.nit:540 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[1] = BOX_NativeString("Bool");
@@ -3741,7 +3741,7 @@ val_t metamodel___static_type___MMImportedCast___from(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:546 */
+  /* metamodel/static_type.nit:546 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMImportedCast____from(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3764,7 +3764,7 @@ val_t metamodel___static_type___MMImportedCast___to(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:547 */
+  /* metamodel/static_type.nit:547 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMImportedCast____to(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3791,7 +3791,7 @@ val_t metamodel___static_type___MMImportedCast___is_about_nullable_only(val_t p0
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:551 */
+  /* metamodel/static_type.nit:551 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMImportedCast____from(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3826,7 +3826,7 @@ val_t metamodel___static_type___MMImportedCast___is_about_nullable_only(val_t p0
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(true);
   } else {
-    /* ./metamodel//static_type.nit:552 */
+    /* metamodel/static_type.nit:552 */
     REGB1 = TAG_Bool(ATTR_metamodel___static_type___MMImportedCast____to(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -3858,7 +3858,7 @@ val_t metamodel___static_type___MMImportedCast___is_about_nullable_only(val_t p0
       REGB2 = TAG_Bool(false);
       REGB1 = REGB2;
     }
-    /* ./metamodel//static_type.nit:551 */
+    /* metamodel/static_type.nit:551 */
     REGB0 = REGB1;
   }
   goto label1;
@@ -3881,7 +3881,7 @@ val_t metamodel___static_type___MMImportedCast___is_not_null_to_nullable(val_t p
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:557 */
+  /* metamodel/static_type.nit:557 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMImportedCast____from(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3922,7 +3922,7 @@ val_t metamodel___static_type___MMImportedCast___is_nullable_to_not_null(val_t p
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:562 */
+  /* metamodel/static_type.nit:562 */
   REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMImportedCast____from(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3966,10 +3966,10 @@ val_t metamodel___static_type___MMImportedCast_____eqeq(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:567 */
+  /* metamodel/static_type.nit:567 */
   REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMImportedCast, ID_metamodel___static_type___MMImportedCast)) /*cast MMImportedCast*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//static_type.nit:568 */
+    /* metamodel/static_type.nit:568 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_metamodel___static_type, 568);
@@ -3983,12 +3983,12 @@ val_t metamodel___static_type___MMImportedCast_____eqeq(val_t p0, val_t p1){
       REGB0 = REGB1;
     }
   } else {
-    /* ./metamodel//static_type.nit:567 */
+    /* metamodel/static_type.nit:567 */
     REGB1 = TAG_Bool(false);
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//static_type.nit:568 */
+    /* metamodel/static_type.nit:568 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_metamodel___static_type, 568);
@@ -4002,7 +4002,7 @@ val_t metamodel___static_type___MMImportedCast_____eqeq(val_t p0, val_t p1){
       REGB0 = REGB1;
     }
   } else {
-    /* ./metamodel//static_type.nit:567 */
+    /* metamodel/static_type.nit:567 */
     REGB1 = TAG_Bool(false);
     REGB0 = REGB1;
   }
@@ -4045,7 +4045,7 @@ val_t metamodel___static_type___MMMethod___explicit_casts(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./metamodel//static_type.nit:574 */
+  /* metamodel/static_type.nit:574 */
   nit_abort("Deferred method called", NULL, LOCATE_metamodel___static_type, 574);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
index 5d270b9..316676e 100644 (file)
@@ -12,7 +12,7 @@ val_t metamodel___type_formal___MMType___direct_type(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//type_formal.nit:25 */
+  /* metamodel/type_formal.nit:25 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -33,7 +33,7 @@ val_t metamodel___type_formal___MMTypeFormal___is_valid(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//type_formal.nit:31 */
+  /* metamodel/type_formal.nit:31 */
   fra.me.REG[1] = ATTR_metamodel___type_formal___MMTypeFormal____bound(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -77,7 +77,7 @@ val_t metamodel___type_formal___MMTypeFormal___name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//type_formal.nit:33 */
+  /* metamodel/type_formal.nit:33 */
   REGB0 = TAG_Bool(ATTR_metamodel___type_formal___MMTypeFormal____name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -101,9 +101,9 @@ val_t metamodel___type_formal___MMTypeFormal___bound(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//type_formal.nit:36 */
+  /* metamodel/type_formal.nit:36 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./metamodel//type_formal.nit:37 */
+  /* metamodel/type_formal.nit:37 */
   fra.me.REG[1] = ATTR_metamodel___type_formal___MMTypeFormal____bound(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -131,7 +131,7 @@ val_t metamodel___type_formal___MMTypeFormal_____l(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//type_formal.nit:40 */
+  /* metamodel/type_formal.nit:40 */
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -165,7 +165,7 @@ val_t metamodel___type_formal___MMTypeFormal___is_supertype(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//type_formal.nit:41 */
+  /* metamodel/type_formal.nit:41 */
   fra.me.REG[0] = ATTR_metamodel___type_formal___MMTypeFormal____bound(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -190,7 +190,7 @@ val_t metamodel___type_formal___MMTypeFormal___is_nullable(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//type_formal.nit:42 */
+  /* metamodel/type_formal.nit:42 */
   fra.me.REG[0] = ATTR_metamodel___type_formal___MMTypeFormal____bound(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -215,7 +215,7 @@ val_t metamodel___type_formal___MMTypeFormal___direct_type(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//type_formal.nit:43 */
+  /* metamodel/type_formal.nit:43 */
   fra.me.REG[0] = ATTR_metamodel___type_formal___MMTypeFormal____bound(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -240,7 +240,7 @@ val_t metamodel___type_formal___MMTypeFormal___local_class(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//type_formal.nit:44 */
+  /* metamodel/type_formal.nit:44 */
   fra.me.REG[0] = ATTR_metamodel___type_formal___MMTypeFormal____bound(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -265,7 +265,7 @@ val_t metamodel___type_formal___MMTypeFormal___to_s(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//type_formal.nit:46 */
+  /* metamodel/type_formal.nit:46 */
   REGB0 = TAG_Bool(ATTR_metamodel___type_formal___MMTypeFormal____name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -297,12 +297,12 @@ void metamodel___type_formal___MMTypeFormal___init(val_t p0, val_t p1, val_t p2,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./metamodel//type_formal.nit:48 */
+  /* metamodel/type_formal.nit:48 */
   fra.me.REG[3] = fra.me.REG[0];
   CALL_metamodel___static_type___MMType___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./metamodel//type_formal.nit:50 */
+  /* metamodel/type_formal.nit:50 */
   ATTR_metamodel___type_formal___MMTypeFormal____name(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./metamodel//type_formal.nit:51 */
+  /* metamodel/type_formal.nit:51 */
   ATTR_metamodel___type_formal___MMTypeFormal____bound(fra.me.REG[3]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
index 9c96e21..ef66a9a 100644 (file)
@@ -13,7 +13,7 @@ val_t metamodel___vararg___MMSignature___vararg_rank(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//vararg.nit:24 */
+  /* metamodel/vararg.nit:24 */
   REGB0 = TAG_Bool(ATTR_metamodel___vararg___MMSignature____vararg_rank(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -37,7 +37,7 @@ void metamodel___vararg___MMSignature___vararg_rank__eq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./metamodel//vararg.nit:24 */
+  /* metamodel/vararg.nit:24 */
   ATTR_metamodel___vararg___MMSignature____vararg_rank(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -57,7 +57,7 @@ val_t metamodel___vararg___MMSignature___has_vararg(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//vararg.nit:30 */
+  /* metamodel/vararg.nit:30 */
   REGB0 = TAG_Bool(ATTR_metamodel___vararg___MMSignature____vararg_rank(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -70,9 +70,9 @@ val_t metamodel___vararg___MMSignature___has_vararg(val_t p0){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./metamodel//vararg.nit:30 */
+  /* metamodel/vararg.nit:30 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -94,11 +94,11 @@ val_t metamodel___vararg___MMSignature___adaptation_to(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//vararg.nit:33 */
+  /* metamodel/vararg.nit:33 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./metamodel//vararg.nit:35 */
+  /* metamodel/vararg.nit:35 */
   fra.me.REG[1] = CALL_SUPER_metamodel___vararg___MMSignature___adaptation_to(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./metamodel//vararg.nit:36 */
+  /* metamodel/vararg.nit:36 */
   REGB0 = TAG_Bool(ATTR_metamodel___vararg___MMSignature____vararg_rank(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -106,7 +106,7 @@ val_t metamodel___vararg___MMSignature___adaptation_to(val_t p0, val_t p1){
   }
   REGB0 = ATTR_metamodel___vararg___MMSignature____vararg_rank(fra.me.REG[2]);
   CALL_metamodel___vararg___MMSignature___vararg_rank__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
-  /* ./metamodel//vararg.nit:37 */
+  /* metamodel/vararg.nit:37 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -126,11 +126,11 @@ val_t metamodel___vararg___MMSignature___not_for_self(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//vararg.nit:40 */
+  /* metamodel/vararg.nit:40 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./metamodel//vararg.nit:42 */
+  /* metamodel/vararg.nit:42 */
   fra.me.REG[0] = CALL_SUPER_metamodel___vararg___MMSignature___not_for_self(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./metamodel//vararg.nit:43 */
+  /* metamodel/vararg.nit:43 */
   REGB0 = TAG_Bool(ATTR_metamodel___vararg___MMSignature____vararg_rank(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -138,7 +138,7 @@ val_t metamodel___vararg___MMSignature___not_for_self(val_t p0){
   }
   REGB0 = ATTR_metamodel___vararg___MMSignature____vararg_rank(fra.me.REG[1]);
   CALL_metamodel___vararg___MMSignature___vararg_rank__eq(fra.me.REG[0])(fra.me.REG[0], REGB0);
-  /* ./metamodel//vararg.nit:44 */
+  /* metamodel/vararg.nit:44 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -166,15 +166,15 @@ void metamodel___vararg___MMSignature___init(val_t p0, val_t p1, val_t p2, val_t
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./metamodel//vararg.nit:47 */
+  /* metamodel/vararg.nit:47 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./metamodel//vararg.nit:49 */
+  /* metamodel/vararg.nit:49 */
   CALL_SUPER_metamodel___vararg___MMSignature___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
-  /* ./metamodel//vararg.nit:50 */
+  /* metamodel/vararg.nit:50 */
   REGB0 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:236 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB0 = TAG_Int(-UNTAG_Int(REGB0));
-  /* ./metamodel//vararg.nit:50 */
+  /* metamodel/vararg.nit:50 */
   ATTR_metamodel___vararg___MMSignature____vararg_rank(fra.me.REG[4]) = REGB0;
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
index 14fec6e..c9228f7 100644 (file)
@@ -14,7 +14,7 @@ val_t metamodel___virtualtype___MMGlobalProperty___is_virtual_type(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//virtualtype.nit:25 */
+  /* metamodel/virtualtype.nit:25 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___virtualtype___MMTypeProperty, ID_metamodel___virtualtype___MMTypeProperty)) /*cast MMTypeProperty*/;
   goto label1;
@@ -39,17 +39,17 @@ val_t metamodel___virtualtype___MMTypeProperty___stype_for(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//virtualtype.nit:34 */
+  /* metamodel/virtualtype.nit:34 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./metamodel//virtualtype.nit:35 */
+  /* metamodel/virtualtype.nit:35 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_metamodel___virtualtype___MMTypeProperty, ID_metamodel___virtualtype___MMTypeProperty)) /*cast MMTypeProperty*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___virtualtype, 35);
   }
-  /* ./metamodel//virtualtype.nit:36 */
+  /* metamodel/virtualtype.nit:36 */
   fra.me.REG[1] = CALL_metamodel___virtualtype___MMTypeProperty___real_stype_for(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
   goto label1;
   label1: while(0);
@@ -74,7 +74,7 @@ val_t metamodel___virtualtype___MMTypeProperty___real_stype_for(val_t p0, val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//virtualtype.nit:45 */
+  /* metamodel/virtualtype.nit:45 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -92,7 +92,7 @@ val_t metamodel___virtualtype___MMTypeProperty___real_stype_for(val_t p0, val_t
     fra.me.REG[2] = NIT_NULL;
     goto label1;
   }
-  /* ./metamodel//virtualtype.nit:47 */
+  /* metamodel/virtualtype.nit:47 */
   REGB0 = TAG_Bool(ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -111,9 +111,9 @@ val_t metamodel___virtualtype___MMTypeProperty___real_stype_for(val_t p0, val_t
     fra.me.REG[2] = fra.me.REG[3];
     goto label1;
   }
-  /* ./metamodel//virtualtype.nit:49 */
+  /* metamodel/virtualtype.nit:49 */
   fra.me.REG[3] = NEW_MMVirtualType_metamodel___virtualtype___MMVirtualType___init(fra.me.REG[0], fra.me.REG[1]);
-  /* ./metamodel//virtualtype.nit:50 */
+  /* metamodel/virtualtype.nit:50 */
   REGB0 = TAG_Bool(ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -121,7 +121,7 @@ val_t metamodel___virtualtype___MMTypeProperty___real_stype_for(val_t p0, val_t
   }
   fra.me.REG[0] = ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
-  /* ./metamodel//virtualtype.nit:52 */
+  /* metamodel/virtualtype.nit:52 */
   fra.me.REG[2] = fra.me.REG[3];
   goto label1;
   label1: while(0);
@@ -141,7 +141,7 @@ val_t metamodel___virtualtype___MMVirtualType___property(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//virtualtype.nit:58 */
+  /* metamodel/virtualtype.nit:58 */
   REGB0 = TAG_Bool(ATTR_metamodel___virtualtype___MMVirtualType____property(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -164,7 +164,7 @@ val_t metamodel___virtualtype___MMVirtualType___recv(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//virtualtype.nit:61 */
+  /* metamodel/virtualtype.nit:61 */
   REGB0 = TAG_Bool(ATTR_metamodel___virtualtype___MMVirtualType____recv(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -195,16 +195,16 @@ void metamodel___virtualtype___MMVirtualType___init(val_t p0, val_t p1, val_t p2
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./metamodel//virtualtype.nit:64 */
+  /* metamodel/virtualtype.nit:64 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./metamodel//virtualtype.nit:66 */
+  /* metamodel/virtualtype.nit:66 */
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[5])(fra.me.REG[5]);
   CALL_metamodel___type_formal___MMTypeFormal___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[5], init_table);
-  /* ./metamodel//virtualtype.nit:67 */
+  /* metamodel/virtualtype.nit:67 */
   ATTR_metamodel___virtualtype___MMVirtualType____property(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./metamodel//virtualtype.nit:68 */
+  /* metamodel/virtualtype.nit:68 */
   ATTR_metamodel___virtualtype___MMVirtualType____recv(fra.me.REG[3]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -223,7 +223,7 @@ val_t metamodel___virtualtype___MMVirtualType___mmmodule(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//virtualtype.nit:71 */
+  /* metamodel/virtualtype.nit:71 */
   REGB0 = TAG_Bool(ATTR_metamodel___virtualtype___MMVirtualType____recv(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -254,7 +254,7 @@ val_t metamodel___virtualtype___MMVirtualType___for_module(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//virtualtype.nit:75 */
+  /* metamodel/virtualtype.nit:75 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[2]));
   if (UNTAG_Bool(REGB0)) {
@@ -266,7 +266,7 @@ val_t metamodel___virtualtype___MMVirtualType___for_module(val_t p0, val_t p1){
     fra.me.REG[2] = fra.me.REG[0];
     goto label1;
   }
-  /* ./metamodel//virtualtype.nit:76 */
+  /* metamodel/virtualtype.nit:76 */
   fra.me.REG[3] = CALL_metamodel___virtualtype___MMVirtualType___recv(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
   fra.me.REG[1] = CALL_metamodel___static_type___MMType___adapt_to(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
@@ -288,7 +288,7 @@ val_t metamodel___virtualtype___MMVirtualType___not_for_self(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//virtualtype.nit:81 */
+  /* metamodel/virtualtype.nit:81 */
   fra.me.REG[0] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___static_type___MMType___not_for_self(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -312,9 +312,9 @@ val_t metamodel___virtualtype___MMVirtualType___adapt_to(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//virtualtype.nit:84 */
+  /* metamodel/virtualtype.nit:84 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./metamodel//virtualtype.nit:86 */
+  /* metamodel/virtualtype.nit:86 */
   fra.me.REG[2] = CALL_metamodel___virtualtype___MMVirtualType___property(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[1] = CALL_metamodel___virtualtype___MMTypeProperty___stype_for(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
@@ -342,15 +342,15 @@ val_t metamodel___virtualtype___MMLocalClass___virtual_type(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//virtualtype.nit:93 */
+  /* metamodel/virtualtype.nit:93 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./metamodel//virtualtype.nit:94 */
+  /* metamodel/virtualtype.nit:94 */
   REGB0 = CALL_metamodel___virtualtype___MMGlobalProperty___is_virtual_type(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./metamodel//virtualtype.nit:95 */
+    /* metamodel/virtualtype.nit:95 */
     goto label1;
   }
-  /* ./metamodel//virtualtype.nit:97 */
+  /* metamodel/virtualtype.nit:97 */
   nit_abort("Aborted", NULL, LOCATE_metamodel___virtualtype, 97);
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -371,17 +371,17 @@ val_t metamodel___virtualtype___MMLocalClass___select_virtual_type(val_t p0, val
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//virtualtype.nit:103 */
+  /* metamodel/virtualtype.nit:103 */
   fra.me.REG[1] = CALL_metamodel___virtualtype___MMLocalClass___virtual_type(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./metamodel//virtualtype.nit:104 */
+  /* metamodel/virtualtype.nit:104 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./metamodel//virtualtype.nit:105 */
+  /* metamodel/virtualtype.nit:105 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___virtualtype___MMTypeProperty, ID_metamodel___virtualtype___MMTypeProperty)) /*cast MMTypeProperty*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_metamodel___virtualtype, 105);
   }
-  /* ./metamodel//virtualtype.nit:106 */
+  /* metamodel/virtualtype.nit:106 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
index 33d5adf..d2bbfb2 100644 (file)
 /* This C file is generated by NIT to compile module mmloader. */
 #include "mmloader._sep.h"
-val_t mmloader___Message___location(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 30;
-  fra.me.meth = LOCATE_mmloader___Message___location;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./mmloader.nit:30 */
-  fra.me.REG[0] = ATTR_mmloader___Message____location(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t mmloader___Message___text(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 31;
-  fra.me.meth = LOCATE_mmloader___Message___text;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./mmloader.nit:31 */
-  REGB0 = TAG_Bool(ATTR_mmloader___Message____text(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_text", LOCATE_mmloader, 31);
-  }
-  fra.me.REG[0] = ATTR_mmloader___Message____text(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t mmloader___Message_____l(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 33;
-  fra.me.meth = LOCATE_mmloader___Message_____l;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], VTCOLOR_standard___kernel___Comparable___OTHER(fra.me.REG[0]), VTID_standard___kernel___Comparable___OTHER(fra.me.REG[0]))) /*cast OTHER*/;
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Cast failed", NULL, LOCATE_mmloader, 0);
-  }
-  /* ./mmloader.nit:33 */
-  fra.me.REG[2] = fra.me.REG[0];
-  /* ./mmloader.nit:34 */
-  fra.me.REG[3] = CALL_mmloader___Message___location(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(false);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Bool(true);
-    goto label1;
-  }
-  /* ./mmloader.nit:35 */
-  fra.me.REG[3] = CALL_mmloader___Message___location(fra.me.REG[1])(fra.me.REG[1]);
-  REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-      REGB2 = TAG_Bool(false);
-      REGB1 = REGB2;
-    } else {
-      REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
-      REGB1 = REGB2;
-    }
-  }
-  if (UNTAG_Bool(REGB1)) {
-    REGB1 = TAG_Bool(false);
-    REGB0 = REGB1;
-    goto label1;
-  }
-  /* ./mmloader.nit:37 */
-  fra.me.REG[2] = CALL_mmloader___Message___location(fra.me.REG[2])(fra.me.REG[2]);
-  REGB1 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    nit_abort("Cast failed", NULL, LOCATE_mmloader, 37);
-  }
-  fra.me.REG[1] = CALL_mmloader___Message___location(fra.me.REG[1])(fra.me.REG[1]);
-  REGB1 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    nit_abort("Cast failed", NULL, LOCATE_mmloader, 37);
-  }
-  REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-    nit_abort("Reciever is null", NULL, LOCATE_mmloader, 37);
-  }
-  REGB1 = CALL_standard___kernel___Comparable_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  REGB0 = REGB1;
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-val_t mmloader___Message___to_s(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t tmp;
-    static val_t once_value_2; /* Once value */
-    static val_t once_value_3; /* Once value */
-    static val_t once_value_4; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 40;
-  fra.me.meth = LOCATE_mmloader___Message___to_s;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./mmloader.nit:42 */
-  fra.me.REG[1] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./mmloader.nit:43 */
-  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(false);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* ./mmloader.nit:44 */
-    fra.me.REG[2] = CALL_mmloader___Message___text(fra.me.REG[0])(fra.me.REG[0]);
-    goto label1;
-  } else {
-    /* ./mmloader.nit:46 */
-    REGB0 = TAG_Int(5);
-    fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_2) {
-      fra.me.REG[4] = BOX_NativeString("");
-      REGB0 = TAG_Int(0);
-      fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
-      once_value_2 = fra.me.REG[4];
-      register_static_object(&once_value_2);
-    } else fra.me.REG[4] = once_value_2;
-    fra.me.REG[4] = fra.me.REG[4];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-    fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-    if (!once_value_3) {
-      fra.me.REG[1] = BOX_NativeString(": ");
-      REGB0 = TAG_Int(2);
-      fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-      once_value_3 = fra.me.REG[1];
-      register_static_object(&once_value_3);
-    } else fra.me.REG[1] = once_value_3;
-    fra.me.REG[1] = fra.me.REG[1];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-    fra.me.REG[0] = CALL_mmloader___Message___text(fra.me.REG[0])(fra.me.REG[0]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-    if (!once_value_4) {
-      fra.me.REG[0] = BOX_NativeString("");
-      REGB0 = TAG_Int(0);
-      fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
-      once_value_4 = fra.me.REG[0];
-      register_static_object(&once_value_4);
-    } else fra.me.REG[0] = once_value_4;
-    fra.me.REG[0] = fra.me.REG[0];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-    fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-    fra.me.REG[2] = fra.me.REG[3];
-    goto label1;
-  }
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
-}
-val_t mmloader___Message___to_color_string(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t REGB4;
-  val_t REGB5;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-  static val_t once_value_4; /* Once value */
-  static val_t once_value_5; /* Once value */
-  static val_t once_value_6; /* Once value */
-  static val_t once_value_7; /* Once value */
-  static val_t once_value_8; /* Once value */
-  static val_t once_value_9; /* Once value */
-  static val_t once_value_10; /* Once value */
-      static val_t once_value_12; /* Once value */
-      static val_t once_value_13; /* Once value */
-      static val_t once_value_14; /* Once value */
-      static val_t once_value_15; /* Once value */
-      static val_t once_value_16; /* Once value */
-      static val_t once_value_20; /* Once value */
-      static val_t once_value_21; /* Once value */
-      static val_t once_value_22; /* Once value */
-      static val_t once_value_23; /* Once value */
-      static val_t once_value_24; /* Once value */
-      static val_t once_value_25; /* Once value */
-      static val_t once_value_26; /* Once value */
-      static val_t once_value_27; /* Once value */
-      static val_t once_value_28; /* Once value */
-      static val_t once_value_29; /* Once value */
-      static val_t once_value_30; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 50;
-  fra.me.meth = LOCATE_mmloader___Message___to_color_string;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 12;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[6] = NIT_NULL;
-  fra.me.REG[7] = NIT_NULL;
-  fra.me.REG[8] = NIT_NULL;
-  fra.me.REG[9] = NIT_NULL;
-  fra.me.REG[10] = NIT_NULL;
-  fra.me.REG[11] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./mmloader.nit:52 */
-  REGB0 = TAG_Int(27);
-  /* ./../lib/standard//kernel.nit:297 */
-  REGB0 = TAG_Char(UNTAG_Int(REGB0));
-  /* ./mmloader.nit:53 */
-  REGB1 = TAG_Int(3);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-  if (!once_value_1) {
-    fra.me.REG[2] = BOX_NativeString("");
-    REGB1 = TAG_Int(0);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
-    once_value_1 = fra.me.REG[2];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[2] = once_value_1;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  if (!once_value_2) {
-    fra.me.REG[2] = BOX_NativeString("[0;31m");
-    REGB1 = TAG_Int(6);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
-    once_value_2 = fra.me.REG[2];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[2] = once_value_2;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./mmloader.nit:54 */
-  REGB1 = TAG_Int(3);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-  if (!once_value_3) {
-    fra.me.REG[2] = BOX_NativeString("");
-    REGB1 = TAG_Int(0);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
-    once_value_3 = fra.me.REG[2];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[2] = once_value_3;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  if (!once_value_4) {
-    fra.me.REG[2] = BOX_NativeString("[1;31m");
-    REGB1 = TAG_Int(6);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
-    once_value_4 = fra.me.REG[2];
-    register_static_object(&once_value_4);
-  } else fra.me.REG[2] = once_value_4;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./mmloader.nit:55 */
-  REGB1 = TAG_Int(3);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-  if (!once_value_5) {
-    fra.me.REG[3] = BOX_NativeString("");
-    REGB1 = TAG_Int(0);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
-    once_value_5 = fra.me.REG[3];
-    register_static_object(&once_value_5);
-  } else fra.me.REG[3] = once_value_5;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  if (!once_value_6) {
-    fra.me.REG[3] = BOX_NativeString("[0;32m");
-    REGB1 = TAG_Int(6);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
-    once_value_6 = fra.me.REG[3];
-    register_static_object(&once_value_6);
-  } else fra.me.REG[3] = once_value_6;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./mmloader.nit:56 */
-  REGB1 = TAG_Int(3);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-  if (!once_value_7) {
-    fra.me.REG[3] = BOX_NativeString("");
-    REGB1 = TAG_Int(0);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
-    once_value_7 = fra.me.REG[3];
-    register_static_object(&once_value_7);
-  } else fra.me.REG[3] = once_value_7;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  if (!once_value_8) {
-    fra.me.REG[3] = BOX_NativeString("[0;33m");
-    REGB1 = TAG_Int(6);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
-    once_value_8 = fra.me.REG[3];
-    register_static_object(&once_value_8);
-  } else fra.me.REG[3] = once_value_8;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./mmloader.nit:57 */
-  REGB1 = TAG_Int(3);
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-  if (!once_value_9) {
-    fra.me.REG[4] = BOX_NativeString("");
-    REGB1 = TAG_Int(0);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
-    once_value_9 = fra.me.REG[4];
-    register_static_object(&once_value_9);
-  } else fra.me.REG[4] = once_value_9;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  if (!once_value_10) {
-    fra.me.REG[4] = BOX_NativeString("[0m");
-    REGB0 = TAG_Int(3);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
-    once_value_10 = fra.me.REG[4];
-    register_static_object(&once_value_10);
-  } else fra.me.REG[4] = once_value_10;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./mmloader.nit:59 */
-  fra.me.REG[4] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./mmloader.nit:60 */
-  REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(false);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* ./mmloader.nit:61 */
-    fra.me.REG[5] = CALL_mmloader___Message___text(fra.me.REG[0])(fra.me.REG[0]);
-    goto label11;
-  } else {
-    /* ./mmloader.nit:62 */
-    REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_mmloader, 62);
-    }
-    fra.me.REG[6] = CALL_location___Location___file(fra.me.REG[4])(fra.me.REG[4]);
-    REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        REGB1 = TAG_Bool(false);
-        REGB0 = REGB1;
-      } else {
-        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
-        REGB0 = REGB1;
-      }
-    }
-    if (UNTAG_Bool(REGB0)) {
-      /* ./mmloader.nit:63 */
-      REGB0 = TAG_Int(9);
-      fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-      if (!once_value_12) {
-        fra.me.REG[7] = BOX_NativeString("");
-        REGB0 = TAG_Int(0);
-        fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
-        once_value_12 = fra.me.REG[7];
-        register_static_object(&once_value_12);
-      } else fra.me.REG[7] = once_value_12;
-      fra.me.REG[7] = fra.me.REG[7];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
-      if (!once_value_13) {
-        fra.me.REG[7] = BOX_NativeString("");
-        REGB0 = TAG_Int(0);
-        fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
-        once_value_13 = fra.me.REG[7];
-        register_static_object(&once_value_13);
-      } else fra.me.REG[7] = once_value_13;
-      fra.me.REG[7] = fra.me.REG[7];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-      fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-      if (!once_value_14) {
-        fra.me.REG[7] = BOX_NativeString("");
-        REGB0 = TAG_Int(0);
-        fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
-        once_value_14 = fra.me.REG[7];
-        register_static_object(&once_value_14);
-      } else fra.me.REG[7] = once_value_14;
-      fra.me.REG[7] = fra.me.REG[7];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
-      if (!once_value_15) {
-        fra.me.REG[7] = BOX_NativeString(": ");
-        REGB0 = TAG_Int(2);
-        fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
-        once_value_15 = fra.me.REG[7];
-        register_static_object(&once_value_15);
-      } else fra.me.REG[7] = once_value_15;
-      fra.me.REG[7] = fra.me.REG[7];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-      fra.me.REG[7] = CALL_mmloader___Message___text(fra.me.REG[0])(fra.me.REG[0]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-      if (!once_value_16) {
-        fra.me.REG[7] = BOX_NativeString("");
-        REGB0 = TAG_Int(0);
-        fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
-        once_value_16 = fra.me.REG[7];
-        register_static_object(&once_value_16);
-      } else fra.me.REG[7] = once_value_16;
-      fra.me.REG[7] = fra.me.REG[7];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-      fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-      fra.me.REG[5] = fra.me.REG[6];
-      goto label11;
-    } else {
-      /* ./mmloader.nit:65 */
-      fra.me.REG[6] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
-      REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_mmloader, 65);
-      }
-      REGB0 = CALL_location___Location___line_start(fra.me.REG[6])(fra.me.REG[6]);
-      /* ./mmloader.nit:66 */
-      REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        nit_abort("Reciever is null", NULL, LOCATE_mmloader, 66);
-      }
-      fra.me.REG[6] = CALL_location___Location___file(fra.me.REG[4])(fra.me.REG[4]);
-      REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        nit_abort("Reciever is null", NULL, LOCATE_mmloader, 66);
-      }
-      fra.me.REG[6] = CALL_location___SourceFile___line_starts(fra.me.REG[6])(fra.me.REG[6]);
-      REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
-      REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:280 */
-      REGB2 = TAG_Int(0);
-      REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
-      if (UNTAG_Bool(REGB3)) {
-      } else {
-        nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-      }
-      /* ./../lib/standard//kernel.nit:233 */
-      REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:280 */
-      if (UNTAG_Bool(REGB2)) {
-        REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
-        if (UNTAG_Bool(REGB2)) {
-        } else {
-          nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
-        }
-        REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
-        REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
-        if (UNTAG_Bool(REGB3)) {
-        } else {
-          nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-        }
-        /* ./../lib/standard//kernel.nit:232 */
-        REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-      } else {
-        /* ./../lib/standard//collection//array.nit:280 */
-        REGB3 = TAG_Bool(false);
-        REGB2 = REGB3;
-      }
-      if (UNTAG_Bool(REGB2)) {
-      } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
-      }
-      /* ./../lib/standard//collection//array.nit:281 */
-      fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
-      REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
-      }
-      /* ./../lib/standard//collection//array.nit:718 */
-      fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB1)];
-      /* ./../lib/standard//collection//array.nit:281 */
-      goto label17;
-      label17: while(0);
-      /* ./mmloader.nit:66 */
-      REGB1 = fra.me.REG[6];
-      /* ./mmloader.nit:67 */
-      REGB2 = REGB1;
-      /* ./mmloader.nit:68 */
-      REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-      if (UNTAG_Bool(REGB3)) {
-        nit_abort("Reciever is null", NULL, LOCATE_mmloader, 68);
-      }
-      fra.me.REG[6] = CALL_location___Location___file(fra.me.REG[4])(fra.me.REG[4]);
-      REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-      if (UNTAG_Bool(REGB3)) {
-        nit_abort("Reciever is null", NULL, LOCATE_mmloader, 68);
-      }
-      fra.me.REG[6] = CALL_location___SourceFile___string(fra.me.REG[6])(fra.me.REG[6]);
-      /* ./mmloader.nit:69 */
-      while(1) {
-        REGB3 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
-        REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-        /* ./../lib/standard//collection//array.nit:24 */
-        REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
-        if (UNTAG_Bool(REGB4)) {
-        } else {
-          nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-        }
-        REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
-        REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
-        if (UNTAG_Bool(REGB5)) {
-        } else {
-          nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-        }
-        /* ./../lib/standard//kernel.nit:232 */
-        REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
-        /* ./mmloader.nit:69 */
-        if (UNTAG_Bool(REGB4)) {
-          REGB4 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
-          REGB4 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
-          /* ./mmloader.nit:69 */
-          REGB4 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[6])(fra.me.REG[6], REGB4);
-          REGB3 = TAG_Char('\n');
-          REGB5 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB3));
-          if (UNTAG_Bool(REGB5)) {
-          } else {
-            /* ./../lib/standard//kernel.nit:378 */
-            REGB3 = TAG_Bool((REGB4)==(REGB3));
-            /* ./mmloader.nit:69 */
-            REGB5 = REGB3;
-          }
-          REGB5 = TAG_Bool(!UNTAG_Bool(REGB5));
-        } else {
-          REGB3 = TAG_Bool(false);
-          REGB5 = REGB3;
-        }
-        if (UNTAG_Bool(REGB5)) {
-          REGB5 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
-          REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
-          /* ./mmloader.nit:69 */
-          REGB5 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[6])(fra.me.REG[6], REGB5);
-          REGB3 = TAG_Char('\r');
-          REGB4 = TAG_Bool(IS_EQUAL_OO(REGB5,REGB3));
-          if (UNTAG_Bool(REGB4)) {
-          } else {
-            /* ./../lib/standard//kernel.nit:378 */
-            REGB3 = TAG_Bool((REGB5)==(REGB3));
-            /* ./mmloader.nit:69 */
-            REGB4 = REGB3;
-          }
-          REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
-        } else {
-          REGB3 = TAG_Bool(false);
-          REGB4 = REGB3;
-        }
-        if (UNTAG_Bool(REGB4)) {
-          /* ./mmloader.nit:70 */
-          REGB4 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
-          REGB4 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
-          /* ./mmloader.nit:70 */
-          REGB2 = REGB4;
-        } else {
-          /* ./mmloader.nit:69 */
-          goto label18;
-        }
-      }
-      label18: while(0);
-      /* ./mmloader.nit:72 */
-      fra.me.REG[7] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
-      REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-      if (UNTAG_Bool(REGB4)) {
-        nit_abort("Reciever is null", NULL, LOCATE_mmloader, 72);
-      }
-      REGB4 = CALL_location___Location___column_start(fra.me.REG[7])(fra.me.REG[7]);
-      REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
-      REGB3 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB3));
-      /* ./mmloader.nit:72 */
-      fra.me.REG[7] = CALL_standard___string___AbstractString___substring(fra.me.REG[6])(fra.me.REG[6], REGB1, REGB3);
-      /* ./mmloader.nit:74 */
-      fra.me.REG[8] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
-      REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
-      if (UNTAG_Bool(REGB3)) {
-        nit_abort("Reciever is null", NULL, LOCATE_mmloader, 74);
-      }
-      REGB3 = CALL_location___Location___line_end(fra.me.REG[8])(fra.me.REG[8]);
-      REGB4 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB3));
-      if (UNTAG_Bool(REGB4)) {
-      } else {
-        /* ./../lib/standard//kernel.nit:227 */
-        REGB3 = TAG_Bool((REGB0)==(REGB3));
-        /* ./mmloader.nit:74 */
-        REGB4 = REGB3;
-      }
-      REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
-      if (UNTAG_Bool(REGB4)) {
-        /* ./../lib/standard//kernel.nit:237 */
-        REGB4 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB1));
-        /* ./mmloader.nit:75 */
-        REGB3 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
-        REGB3 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB3));
-        /* ./mmloader.nit:75 */
-        fra.me.REG[8] = REGB3;
-      } else {
-        /* ./mmloader.nit:77 */
-        fra.me.REG[9] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
-        REGB3 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-          nit_abort("Reciever is null", NULL, LOCATE_mmloader, 77);
-        }
-        REGB3 = CALL_location___Location___column_end(fra.me.REG[9])(fra.me.REG[9]);
-        fra.me.REG[8] = REGB3;
-      }
-      /* ./mmloader.nit:79 */
-      fra.me.REG[9] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
-      REGB3 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
-      if (UNTAG_Bool(REGB3)) {
-        nit_abort("Reciever is null", NULL, LOCATE_mmloader, 79);
-      }
-      REGB3 = CALL_location___Location___column_start(fra.me.REG[9])(fra.me.REG[9]);
-      /* ./../lib/standard//kernel.nit:235 */
-      REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
-      /* ./mmloader.nit:79 */
-      REGB4 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
-      REGB4 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB4));
-      /* ./mmloader.nit:79 */
-      fra.me.REG[9] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
-      REGB3 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
-      if (UNTAG_Bool(REGB3)) {
-        nit_abort("Reciever is null", NULL, LOCATE_mmloader, 79);
-      }
-      REGB3 = CALL_location___Location___column_start(fra.me.REG[9])(fra.me.REG[9]);
-      REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_mmloader, 79);
-      }
-      /* ./../lib/standard//kernel.nit:237 */
-      REGB3 = TAG_Int(UNTAG_Int(fra.me.REG[8])-UNTAG_Int(REGB3));
-      /* ./mmloader.nit:79 */
-      REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
-      REGB0 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
-      /* ./mmloader.nit:79 */
-      fra.me.REG[9] = CALL_standard___string___AbstractString___substring(fra.me.REG[6])(fra.me.REG[6], REGB4, REGB0);
-      /* ./../lib/standard//kernel.nit:235 */
-      REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(fra.me.REG[8]));
-      /* ./../lib/standard//kernel.nit:237 */
-      REGB2 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB1));
-      REGB2 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(fra.me.REG[8]));
-      /* ./mmloader.nit:80 */
-      REGB4 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
-      REGB4 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
-      /* ./mmloader.nit:80 */
-      fra.me.REG[8] = CALL_standard___string___AbstractString___substring(fra.me.REG[6])(fra.me.REG[6], REGB0, REGB4);
-      /* ./mmloader.nit:81 */
-      fra.me.REG[10] = NEW_Buffer_standard___string___Buffer___init();
-      /* ./mmloader.nit:82 */
-      fra.me.REG[11] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
-      REGB4 = TAG_Bool(fra.me.REG[11]==NIT_NULL);
-      if (UNTAG_Bool(REGB4)) {
-        nit_abort("Reciever is null", NULL, LOCATE_mmloader, 82);
-      }
-      REGB4 = CALL_location___Location___column_start(fra.me.REG[11])(fra.me.REG[11]);
-      /* ./../lib/standard//kernel.nit:235 */
-      REGB4 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB4));
-      /* ./mmloader.nit:82 */
-      REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
-      REGB0 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB0));
-      /* ./../lib/standard//kernel.nit:352 */
-      while(1) {
-        REGB4 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
-        if (UNTAG_Bool(REGB4)) {
-        } else {
-          nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-        }
-        /* ./../lib/standard//kernel.nit:232 */
-        REGB4 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-        /* ./../lib/standard//kernel.nit:352 */
-        if (UNTAG_Bool(REGB4)) {
-          /* ./mmloader.nit:82 */
-          REGB4 = REGB1;
-          /* ./mmloader.nit:83 */
-          REGB4 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[6])(fra.me.REG[6], REGB4);
-          REGB2 = TAG_Char('\t');
-          REGB3 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB2));
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            /* ./../lib/standard//kernel.nit:378 */
-            REGB2 = TAG_Bool((REGB4)==(REGB2));
-            /* ./mmloader.nit:83 */
-            REGB3 = REGB2;
-          }
-          if (UNTAG_Bool(REGB3)) {
-            /* ./mmloader.nit:84 */
-            REGB3 = TAG_Char('\t');
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], REGB3);
-          } else {
-            /* ./mmloader.nit:86 */
-            REGB3 = TAG_Char(' ');
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], REGB3);
-          }
-          /* ./../lib/standard//kernel.nit:354 */
-          REGB3 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
-          REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
-          /* ./../lib/standard//kernel.nit:354 */
-          REGB1 = REGB3;
-        } else {
-          /* ./../lib/standard//kernel.nit:352 */
-          goto label19;
-        }
-      }
-      label19: while(0);
-      /* ./mmloader.nit:89 */
-      REGB1 = TAG_Int(21);
-      fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-      if (!once_value_20) {
-        fra.me.REG[11] = BOX_NativeString("");
-        REGB1 = TAG_Int(0);
-        fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB1);
-        once_value_20 = fra.me.REG[11];
-        register_static_object(&once_value_20);
-      } else fra.me.REG[11] = once_value_20;
-      fra.me.REG[11] = fra.me.REG[11];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[11]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
-      if (!once_value_21) {
-        fra.me.REG[2] = BOX_NativeString("");
-        REGB1 = TAG_Int(0);
-        fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
-        once_value_21 = fra.me.REG[2];
-        register_static_object(&once_value_21);
-      } else fra.me.REG[2] = once_value_21;
-      fra.me.REG[2] = fra.me.REG[2];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
-      fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
-      if (!once_value_22) {
-        fra.me.REG[4] = BOX_NativeString("");
-        REGB1 = TAG_Int(0);
-        fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
-        once_value_22 = fra.me.REG[4];
-        register_static_object(&once_value_22);
-      } else fra.me.REG[4] = once_value_22;
-      fra.me.REG[4] = fra.me.REG[4];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
-      if (!once_value_23) {
-        fra.me.REG[4] = BOX_NativeString(": ");
-        REGB1 = TAG_Int(2);
-        fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
-        once_value_23 = fra.me.REG[4];
-        register_static_object(&once_value_23);
-      } else fra.me.REG[4] = once_value_23;
-      fra.me.REG[4] = fra.me.REG[4];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
-      fra.me.REG[0] = CALL_mmloader___Message___text(fra.me.REG[0])(fra.me.REG[0]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
-      if (!once_value_24) {
-        fra.me.REG[0] = BOX_NativeString("\n\t");
-        REGB1 = TAG_Int(2);
-        fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
-        once_value_24 = fra.me.REG[0];
-        register_static_object(&once_value_24);
-      } else fra.me.REG[0] = once_value_24;
-      fra.me.REG[0] = fra.me.REG[0];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-      if (!once_value_25) {
-        fra.me.REG[7] = BOX_NativeString("");
-        REGB1 = TAG_Int(0);
-        fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
-        once_value_25 = fra.me.REG[7];
-        register_static_object(&once_value_25);
-      } else fra.me.REG[7] = once_value_25;
-      fra.me.REG[7] = fra.me.REG[7];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1]);
-      if (!once_value_26) {
-        fra.me.REG[1] = BOX_NativeString("");
-        REGB1 = TAG_Int(0);
-        fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB1);
-        once_value_26 = fra.me.REG[1];
-        register_static_object(&once_value_26);
-      } else fra.me.REG[1] = once_value_26;
-      fra.me.REG[1] = fra.me.REG[1];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
-      if (!once_value_27) {
-        fra.me.REG[9] = BOX_NativeString("");
-        REGB1 = TAG_Int(0);
-        fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB1);
-        once_value_27 = fra.me.REG[9];
-        register_static_object(&once_value_27);
-      } else fra.me.REG[9] = once_value_27;
-      fra.me.REG[9] = fra.me.REG[9];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
-      if (!once_value_28) {
-        fra.me.REG[3] = BOX_NativeString("");
-        REGB1 = TAG_Int(0);
-        fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
-        once_value_28 = fra.me.REG[3];
-        register_static_object(&once_value_28);
-      } else fra.me.REG[3] = once_value_28;
-      fra.me.REG[3] = fra.me.REG[3];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
-      if (!once_value_29) {
-        fra.me.REG[8] = BOX_NativeString("\n\t");
-        REGB1 = TAG_Int(2);
-        fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
-        once_value_29 = fra.me.REG[8];
-        register_static_object(&once_value_29);
-      } else fra.me.REG[8] = once_value_29;
-      fra.me.REG[8] = fra.me.REG[8];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
-      fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[10]);
-      if (!once_value_30) {
-        fra.me.REG[10] = BOX_NativeString("^");
-        REGB1 = TAG_Int(1);
-        fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
-        once_value_30 = fra.me.REG[10];
-        register_static_object(&once_value_30);
-      } else fra.me.REG[10] = once_value_30;
-      fra.me.REG[10] = fra.me.REG[10];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[10]);
-      fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-      fra.me.REG[5] = fra.me.REG[6];
-      goto label11;
-    }
-  }
-  label11: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[5];
-}
-void mmloader___Message___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_mmloader___Message].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  if (init_table[itpos0]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_mmloader___Message___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  ATTR_mmloader___Message____location(fra.me.REG[0]) = fra.me.REG[1];
-  ATTR_mmloader___Message____text(fra.me.REG[0]) = fra.me.REG[2];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos0] = 1;
-  return;
-}
-val_t mmloader___ToolContext___error_count(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 97;
-  fra.me.meth = LOCATE_mmloader___ToolContext___error_count;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./mmloader.nit:97 */
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_error_count", LOCATE_mmloader, 97);
-  }
-  REGB0 = ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-val_t mmloader___ToolContext___warning_count(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 100;
-  fra.me.meth = LOCATE_mmloader___ToolContext___warning_count;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./mmloader.nit:100 */
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_warning_count", LOCATE_mmloader, 100);
-  }
-  REGB0 = ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-val_t mmloader___ToolContext___log_directory(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 103;
-  fra.me.meth = LOCATE_mmloader___ToolContext___log_directory;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./mmloader.nit:103 */
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____log_directory(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_log_directory", LOCATE_mmloader, 103);
-  }
-  fra.me.REG[0] = ATTR_mmloader___ToolContext____log_directory(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-void mmloader___ToolContext___check_errors(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t tmp;
-          static val_t once_value_1; /* Once value */
-          static val_t once_value_2; /* Once value */
-          static val_t once_value_3; /* Once value */
-          static val_t once_value_4; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 110;
-  fra.me.meth = LOCATE_mmloader___ToolContext___check_errors;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 7;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[6] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./mmloader.nit:112 */
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_messages", LOCATE_mmloader, 112);
-  }
-  fra.me.REG[1] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
-  REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-  }
-  REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./mmloader.nit:112 */
-  REGB1 = TAG_Int(0);
-  REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-  if (UNTAG_Bool(REGB2)) {
-  } else {
-    nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-  }
-  /* ./../lib/standard//kernel.nit:234 */
-  REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-  /* ./mmloader.nit:112 */
-  if (UNTAG_Bool(REGB1)) {
-    /* ./mmloader.nit:113 */
-    REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____message_sorter(fra.me.REG[0])!=NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_message_sorter", LOCATE_mmloader, 113);
-    }
-    fra.me.REG[1] = ATTR_mmloader___ToolContext____message_sorter(fra.me.REG[0]);
-    REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_messages", LOCATE_mmloader, 113);
-    }
-    fra.me.REG[2] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]);
-    CALL_standard___collection___sorter___AbstractSorter___sort(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-    /* ./mmloader.nit:115 */
-    REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_messages", LOCATE_mmloader, 115);
-    }
-    fra.me.REG[2] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]);
-    /* ./../lib/standard//collection//array.nit:269 */
-    REGB1 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:270 */
-    REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
-    }
-    REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-    /* ./../lib/standard//collection//array.nit:271 */
-    fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-    /* ./../lib/standard//collection//array.nit:272 */
-    while(1) {
-      /* ./../lib/standard//collection//array.nit:24 */
-      REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-      } else {
-        nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-      }
-      REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-      REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
-      if (UNTAG_Bool(REGB2)) {
-      } else {
-        nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-      }
-      /* ./../lib/standard//kernel.nit:232 */
-      REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-      /* ./../lib/standard//collection//array.nit:272 */
-      if (UNTAG_Bool(REGB0)) {
-        /* ./../lib/standard//collection//array.nit:273 */
-        REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-        if (UNTAG_Bool(REGB0)) {
-          nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
-        }
-        /* ./../lib/standard//collection//array.nit:718 */
-        fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB1)];
-        /* ./mmloader.nit:116 */
-        fra.me.REG[4] = CALL_mmloader___ToolContext___opt_no_color(fra.me.REG[0])(fra.me.REG[0]);
-        fra.me.REG[4] = CALL_opts___Option___value(fra.me.REG[4])(fra.me.REG[4]);
-        if (UNTAG_Bool(fra.me.REG[4])) {
-          /* ./mmloader.nit:117 */
-          fra.me.REG[4] = CALL_standard___file___Object___stderr(fra.me.REG[0])(fra.me.REG[0]);
-          REGB0 = TAG_Int(3);
-          fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-          if (!once_value_1) {
-            fra.me.REG[6] = BOX_NativeString("");
-            REGB0 = TAG_Int(0);
-            fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
-            once_value_1 = fra.me.REG[6];
-            register_static_object(&once_value_1);
-          } else fra.me.REG[6] = once_value_1;
-          fra.me.REG[6] = fra.me.REG[6];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-          fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-          if (!once_value_2) {
-            fra.me.REG[6] = BOX_NativeString("\n");
-            REGB0 = TAG_Int(1);
-            fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
-            once_value_2 = fra.me.REG[6];
-            register_static_object(&once_value_2);
-          } else fra.me.REG[6] = once_value_2;
-          fra.me.REG[6] = fra.me.REG[6];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-          fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-          CALL_standard___stream___OStream___write(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-        } else {
-          /* ./mmloader.nit:119 */
-          fra.me.REG[5] = CALL_standard___file___Object___stderr(fra.me.REG[0])(fra.me.REG[0]);
-          REGB0 = TAG_Int(3);
-          fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-          if (!once_value_3) {
-            fra.me.REG[6] = BOX_NativeString("");
-            REGB0 = TAG_Int(0);
-            fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
-            once_value_3 = fra.me.REG[6];
-            register_static_object(&once_value_3);
-          } else fra.me.REG[6] = once_value_3;
-          fra.me.REG[6] = fra.me.REG[6];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-          fra.me.REG[3] = CALL_mmloader___Message___to_color_string(fra.me.REG[3])(fra.me.REG[3]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-          if (!once_value_4) {
-            fra.me.REG[3] = BOX_NativeString("\n");
-            REGB0 = TAG_Int(1);
-            fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-            once_value_4 = fra.me.REG[3];
-            register_static_object(&once_value_4);
-          } else fra.me.REG[3] = once_value_4;
-          fra.me.REG[3] = fra.me.REG[3];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-          fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-          CALL_standard___stream___OStream___write(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-        }
-        /* ./../lib/standard//collection//array.nit:274 */
-        REGB0 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
-        REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
-        /* ./../lib/standard//collection//array.nit:274 */
-        REGB1 = REGB0;
-      } else {
-        /* ./../lib/standard//collection//array.nit:272 */
-        goto label5;
-      }
-    }
-    label5: while(0);
-    /* ./mmloader.nit:123 */
-    REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_messages", LOCATE_mmloader, 123);
-    }
-    fra.me.REG[1] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]);
-    CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[1])(fra.me.REG[1]);
-  }
-  /* ./mmloader.nit:126 */
-  REGB1 = CALL_mmloader___ToolContext___error_count(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = TAG_Int(0);
-  REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
-  if (UNTAG_Bool(REGB2)) {
-  } else {
-    nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-  }
-  /* ./../lib/standard//kernel.nit:234 */
-  REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
-  /* ./mmloader.nit:126 */
-  if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Int(1);
-    CALL_standard___kernel___Object___exit(fra.me.REG[0])(fra.me.REG[0], REGB0);
-  }
-  stack_frame_head = fra.me.prev;
-  return;
-}
-void mmloader___ToolContext___error(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 129;
-  fra.me.meth = LOCATE_mmloader___ToolContext___error;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* ./mmloader.nit:132 */
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_messages", LOCATE_mmloader, 132);
-  }
-  fra.me.REG[3] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]);
-  fra.me.REG[2] = NEW_Message_mmloader___Message___init(fra.me.REG[1], fra.me.REG[2]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./mmloader.nit:133 */
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_error_count", LOCATE_mmloader, 133);
-  }
-  REGB0 = ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]);
-  REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
-  REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./mmloader.nit:133 */
-  ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]) = REGB1;
-  /* ./mmloader.nit:134 */
-  fra.me.REG[2] = CALL_mmloader___ToolContext___opt_stop_on_first_error(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
-  if (UNTAG_Bool(fra.me.REG[2])) {
-    CALL_mmloader___ToolContext___check_errors(fra.me.REG[0])(fra.me.REG[0]);
-  }
-  stack_frame_head = fra.me.prev;
-  return;
-}
-void mmloader___ToolContext___fatal_error(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 137;
-  fra.me.meth = LOCATE_mmloader___ToolContext___fatal_error;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* ./mmloader.nit:140 */
-  CALL_mmloader___ToolContext___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
-  /* ./mmloader.nit:141 */
-  CALL_mmloader___ToolContext___check_errors(fra.me.REG[0])(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-void mmloader___ToolContext___warning(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 144;
-  fra.me.meth = LOCATE_mmloader___ToolContext___warning;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* ./mmloader.nit:147 */
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_warn", LOCATE_mmloader, 147);
-  }
-  fra.me.REG[3] = ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0]);
-  fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]);
-  REGB0 = TAG_Int(0);
-  REGB1 = TAG_Bool(IS_EQUAL_ON(REGB0,fra.me.REG[3]));
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-      REGB2 = TAG_Bool(false);
-      REGB1 = REGB2;
-    } else {
-      /* ./../lib/standard//kernel.nit:227 */
-      REGB0 = TAG_Bool((fra.me.REG[3])==(REGB0));
-      /* ./mmloader.nit:147 */
-      REGB1 = REGB0;
-    }
-  }
-  if (UNTAG_Bool(REGB1)) {
-    goto label1;
-  }
-  /* ./mmloader.nit:148 */
-  REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_messages", LOCATE_mmloader, 148);
-  }
-  fra.me.REG[3] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]);
-  fra.me.REG[2] = NEW_Message_mmloader___Message___init(fra.me.REG[1], fra.me.REG[2]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./mmloader.nit:149 */
-  REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_warn", LOCATE_mmloader, 149);
-  }
-  fra.me.REG[2] = ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0]);
-  fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
-  REGB1 = TAG_Int(1);
-  REGB0 = TAG_Bool(IS_EQUAL_ON(REGB1,fra.me.REG[2]));
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-      REGB2 = TAG_Bool(false);
-      REGB0 = REGB2;
-    } else {
-      /* ./../lib/standard//kernel.nit:227 */
-      REGB1 = TAG_Bool((fra.me.REG[2])==(REGB1));
-      /* ./mmloader.nit:149 */
-      REGB0 = REGB1;
-    }
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* ./mmloader.nit:150 */
-    REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_warning_count", LOCATE_mmloader, 150);
-    }
-    REGB0 = ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0]);
-    REGB1 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
-    REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-    /* ./mmloader.nit:150 */
-    ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0]) = REGB1;
-  } else {
-    /* ./mmloader.nit:152 */
-    REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_error_count", LOCATE_mmloader, 152);
-    }
-    REGB1 = ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]);
-    REGB0 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
-    REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
-    /* ./mmloader.nit:152 */
-    ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]) = REGB0;
-  }
-  /* ./mmloader.nit:154 */
-  fra.me.REG[2] = CALL_mmloader___ToolContext___opt_stop_on_first_error(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
-  if (UNTAG_Bool(fra.me.REG[2])) {
-    CALL_mmloader___ToolContext___check_errors(fra.me.REG[0])(fra.me.REG[0]);
-  }
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-void mmloader___ToolContext___info(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t tmp;
-    static val_t once_value_1; /* Once value */
-    static val_t once_value_2; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 157;
-  fra.me.meth = LOCATE_mmloader___ToolContext___info;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  REGB0 = p2;
-  /* ./mmloader.nit:160 */
-  REGB1 = CALL_mmloader___ToolContext___verbose_level(fra.me.REG[0])(fra.me.REG[0]);
-  REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-  if (UNTAG_Bool(REGB2)) {
-  } else {
-    nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-  }
-  /* ./../lib/standard//kernel.nit:231 */
-  REGB1 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1));
-  /* ./mmloader.nit:160 */
-  if (UNTAG_Bool(REGB1)) {
-    /* ./mmloader.nit:161 */
-    REGB1 = TAG_Int(3);
-    fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-    if (!once_value_1) {
-      fra.me.REG[3] = BOX_NativeString("");
-      REGB1 = TAG_Int(0);
-      fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
-      once_value_1 = fra.me.REG[3];
-      register_static_object(&once_value_1);
-    } else fra.me.REG[3] = once_value_1;
-    fra.me.REG[3] = fra.me.REG[3];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-    if (!once_value_2) {
-      fra.me.REG[1] = BOX_NativeString("");
-      REGB1 = TAG_Int(0);
-      fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB1);
-      once_value_2 = fra.me.REG[1];
-      register_static_object(&once_value_2);
-    } else fra.me.REG[1] = once_value_2;
-    fra.me.REG[1] = fra.me.REG[1];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-    fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-    CALL_standard___file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  }
-  stack_frame_head = fra.me.prev;
-  return;
-}
 val_t mmloader___ToolContext___paths(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_mmloader;
-  fra.me.line = 165;
+  fra.me.line = 29;
   fra.me.meth = LOCATE_mmloader___ToolContext___paths;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./mmloader.nit:165 */
+  /* mmloader.nit:29 */
   REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____paths(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_paths", LOCATE_mmloader, 165);
+    nit_abort("Uninitialized attribute %s", "_paths", LOCATE_mmloader, 29);
   }
   fra.me.REG[0] = ATTR_mmloader___ToolContext____paths(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t mmloader___ToolContext___option_context(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 171;
-  fra.me.meth = LOCATE_mmloader___ToolContext___option_context;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./mmloader.nit:171 */
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____option_context(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_option_context", LOCATE_mmloader, 171);
-  }
-  fra.me.REG[0] = ATTR_mmloader___ToolContext____option_context(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t mmloader___ToolContext___opt_warn(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 174;
-  fra.me.meth = LOCATE_mmloader___ToolContext___opt_warn;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./mmloader.nit:174 */
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_warn", LOCATE_mmloader, 174);
-  }
-  fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
 val_t mmloader___ToolContext___opt_path(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_mmloader;
-  fra.me.line = 177;
+  fra.me.line = 35;
   fra.me.meth = LOCATE_mmloader___ToolContext___opt_path;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./mmloader.nit:177 */
+  /* mmloader.nit:35 */
   REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_opt_path", LOCATE_mmloader, 177);
+    nit_abort("Uninitialized attribute %s", "_opt_path", LOCATE_mmloader, 35);
   }
   fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t mmloader___ToolContext___opt_log(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 180;
-  fra.me.meth = LOCATE_mmloader___ToolContext___opt_log;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./mmloader.nit:180 */
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_log", LOCATE_mmloader, 180);
-  }
-  fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t mmloader___ToolContext___opt_log_dir(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 183;
-  fra.me.meth = LOCATE_mmloader___ToolContext___opt_log_dir;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./mmloader.nit:183 */
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_log_dir(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_log_dir", LOCATE_mmloader, 183);
-  }
-  fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_log_dir(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
 val_t mmloader___ToolContext___opt_only_metamodel(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_mmloader;
-  fra.me.line = 186;
+  fra.me.line = 38;
   fra.me.meth = LOCATE_mmloader___ToolContext___opt_only_metamodel;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./mmloader.nit:186 */
+  /* mmloader.nit:38 */
   REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_opt_only_metamodel", LOCATE_mmloader, 186);
+    nit_abort("Uninitialized attribute %s", "_opt_only_metamodel", LOCATE_mmloader, 38);
   }
   fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1625,170 +75,32 @@ val_t mmloader___ToolContext___opt_only_parse(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_mmloader;
-  fra.me.line = 189;
+  fra.me.line = 41;
   fra.me.meth = LOCATE_mmloader___ToolContext___opt_only_parse;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./mmloader.nit:189 */
+  /* mmloader.nit:41 */
   REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_opt_only_parse", LOCATE_mmloader, 189);
+    nit_abort("Uninitialized attribute %s", "_opt_only_parse", LOCATE_mmloader, 41);
   }
   fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t mmloader___ToolContext___opt_help(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 192;
-  fra.me.meth = LOCATE_mmloader___ToolContext___opt_help;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./mmloader.nit:192 */
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_help(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_help", LOCATE_mmloader, 192);
-  }
-  fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_help(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t mmloader___ToolContext___opt_version(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 195;
-  fra.me.meth = LOCATE_mmloader___ToolContext___opt_version;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./mmloader.nit:195 */
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_version(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_version", LOCATE_mmloader, 195);
-  }
-  fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_version(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t mmloader___ToolContext___opt_verbose(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 198;
-  fra.me.meth = LOCATE_mmloader___ToolContext___opt_verbose;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./mmloader.nit:198 */
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_verbose(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_verbose", LOCATE_mmloader, 198);
-  }
-  fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_verbose(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t mmloader___ToolContext___opt_stop_on_first_error(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 201;
-  fra.me.meth = LOCATE_mmloader___ToolContext___opt_stop_on_first_error;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./mmloader.nit:201 */
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_stop_on_first_error(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_stop_on_first_error", LOCATE_mmloader, 201);
-  }
-  fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_stop_on_first_error(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t mmloader___ToolContext___opt_no_color(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 204;
-  fra.me.meth = LOCATE_mmloader___ToolContext___opt_no_color;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./mmloader.nit:204 */
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_no_color(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_no_color", LOCATE_mmloader, 204);
-  }
-  fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_no_color(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t mmloader___ToolContext___verbose_level(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 207;
-  fra.me.meth = LOCATE_mmloader___ToolContext___verbose_level;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./mmloader.nit:207 */
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_verbose_level", LOCATE_mmloader, 207);
-  }
-  REGB0 = ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
 void mmloader___ToolContext___init(val_t p0, int* init_table){
-  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_mmloader___ToolContext].i;
+  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_toolcontext___ToolContext].i;
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
-  if (init_table[itpos1]) return;
+  if (init_table[itpos0]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_mmloader;
-  fra.me.line = 210;
+  fra.me.line = 44;
   fra.me.meth = LOCATE_mmloader___ToolContext___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -1798,45 +110,28 @@ void mmloader___ToolContext___init(val_t p0, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./mmloader.nit:210 */
+  /* mmloader.nit:44 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./mmloader.nit:212 */
-  CALL_metamodel___abstractmetamodel___MMContext___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./mmloader.nit:213 */
-  fra.me.REG[0] = CALL_mmloader___ToolContext___option_context(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = TAG_Int(10);
+  /* mmloader.nit:46 */
+  CALL_SUPER_mmloader___ToolContext___init(fra.me.REG[0])(fra.me.REG[0], init_table);
+  /* mmloader.nit:47 */
+  fra.me.REG[0] = CALL_toolcontext___ToolContext___option_context(fra.me.REG[1])(fra.me.REG[1]);
+  REGB0 = TAG_Int(2);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  fra.me.REG[3] = CALL_mmloader___ToolContext___opt_warn(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_mmloader___ToolContext___opt_stop_on_first_error(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_mmloader___ToolContext___opt_no_color(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[3] = CALL_mmloader___ToolContext___opt_path(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_mmloader___ToolContext___opt_log(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_mmloader___ToolContext___opt_log_dir(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[3] = CALL_mmloader___ToolContext___opt_only_parse(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_mmloader___ToolContext___opt_only_metamodel(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_mmloader___ToolContext___opt_help(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_mmloader___ToolContext___opt_version(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[1] = CALL_mmloader___ToolContext___opt_verbose(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[1] = CALL_mmloader___ToolContext___opt_only_metamodel(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   CALL_opts___OptionContext___add_option(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  init_table[itpos1] = 1;
+  init_table[itpos0] = 1;
   return;
 }
 void mmloader___ToolContext___process_options(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
-  val_t REGB1;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
@@ -1848,33 +143,26 @@ void mmloader___ToolContext___process_options(val_t p0){
   static val_t once_value_8; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_mmloader;
-  fra.me.line = 216;
+  fra.me.line = 50;
   fra.me.meth = LOCATE_mmloader___ToolContext___process_options;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
+  fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./mmloader.nit:216 */
+  /* mmloader.nit:50 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./mmloader.nit:220 */
-  fra.me.REG[2] = CALL_mmloader___ToolContext___option_context(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[3] = CALL_standard___string___Object___args(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_opts___OptionContext___parse(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./mmloader.nit:223 */
-  fra.me.REG[3] = CALL_mmloader___ToolContext___opt_verbose(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]);
-  ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[1]) = fra.me.REG[3];
-  /* ./mmloader.nit:226 */
-  fra.me.REG[3] = CALL_mmloader___ToolContext___paths(fra.me.REG[1])(fra.me.REG[1]);
+  /* mmloader.nit:53 */
+  CALL_SUPER_mmloader___ToolContext___process_options(fra.me.REG[0])(fra.me.REG[0]);
+  /* mmloader.nit:56 */
+  fra.me.REG[0] = CALL_mmloader___ToolContext___paths(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_mmloader___ToolContext___opt_path(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./mmloader.nit:228 */
+  CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
+  /* mmloader.nit:58 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("NIT_PATH");
@@ -1890,50 +178,50 @@ void mmloader___ToolContext___process_options(val_t p0){
     register_static_object(&once_value_1);
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
-  /* ./mmloader.nit:229 */
+  /* mmloader.nit:59 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./mmloader.nit:230 */
-    fra.me.REG[3] = CALL_mmloader___ToolContext___paths(fra.me.REG[1])(fra.me.REG[1]);
+    /* mmloader.nit:60 */
+    fra.me.REG[0] = CALL_mmloader___ToolContext___paths(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Char(':');
-    fra.me.REG[4] = CALL_standard___string_search___String___split_with(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
+    fra.me.REG[3] = CALL_standard___string_search___String___split_with(fra.me.REG[2])(fra.me.REG[2], REGB0);
+    CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
   }
-  /* ./mmloader.nit:233 */
+  /* mmloader.nit:63 */
   if (!once_value_3) {
     if (!once_value_4) {
-      fra.me.REG[4] = BOX_NativeString("NIT_DIR");
+      fra.me.REG[3] = BOX_NativeString("NIT_DIR");
       REGB0 = TAG_Int(7);
-      fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
-      once_value_4 = fra.me.REG[4];
+      fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+      once_value_4 = fra.me.REG[3];
       register_static_object(&once_value_4);
-    } else fra.me.REG[4] = once_value_4;
-    fra.me.REG[4] = fra.me.REG[4];
-    fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
-    fra.me.REG[4] = CALL_standard___environ___Symbol___environ(fra.me.REG[4])(fra.me.REG[4]);
-    once_value_3 = fra.me.REG[4];
+    } else fra.me.REG[3] = once_value_4;
+    fra.me.REG[3] = fra.me.REG[3];
+    fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
+    fra.me.REG[3] = CALL_standard___environ___Symbol___environ(fra.me.REG[3])(fra.me.REG[3]);
+    once_value_3 = fra.me.REG[3];
     register_static_object(&once_value_3);
-  } else fra.me.REG[4] = once_value_3;
-  fra.me.REG[4] = fra.me.REG[4];
-  fra.me.REG[2] = fra.me.REG[4];
-  /* ./mmloader.nit:234 */
+  } else fra.me.REG[3] = once_value_3;
+  fra.me.REG[3] = fra.me.REG[3];
+  fra.me.REG[2] = fra.me.REG[3];
+  /* mmloader.nit:64 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./mmloader.nit:235 */
+    /* mmloader.nit:65 */
     REGB0 = TAG_Int(3);
-    fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+    fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_5) {
-      fra.me.REG[3] = BOX_NativeString("");
+      fra.me.REG[0] = BOX_NativeString("");
       REGB0 = TAG_Int(0);
-      fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-      once_value_5 = fra.me.REG[3];
+      fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+      once_value_5 = fra.me.REG[0];
       register_static_object(&once_value_5);
-    } else fra.me.REG[3] = once_value_5;
-    fra.me.REG[3] = fra.me.REG[3];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
+    } else fra.me.REG[0] = once_value_5;
+    fra.me.REG[0] = fra.me.REG[0];
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
     if (!once_value_6) {
       fra.me.REG[2] = BOX_NativeString("/lib");
       REGB0 = TAG_Int(4);
@@ -1942,18 +230,18 @@ void mmloader___ToolContext___process_options(val_t p0){
       register_static_object(&once_value_6);
     } else fra.me.REG[2] = once_value_6;
     fra.me.REG[2] = fra.me.REG[2];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-    fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-    /* ./mmloader.nit:236 */
-    REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[4])(fra.me.REG[4]);
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
+    fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
+    /* mmloader.nit:66 */
+    REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[3])(fra.me.REG[3]);
     if (UNTAG_Bool(REGB0)) {
       fra.me.REG[2] = CALL_mmloader___ToolContext___paths(fra.me.REG[1])(fra.me.REG[1]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
     }
   }
-  /* ./mmloader.nit:239 */
+  /* mmloader.nit:69 */
   REGB0 = TAG_Int(3);
-  fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_7) {
     fra.me.REG[2] = BOX_NativeString("");
     REGB0 = TAG_Int(0);
@@ -1962,11 +250,11 @@ void mmloader___ToolContext___process_options(val_t p0){
     register_static_object(&once_value_7);
   } else fra.me.REG[2] = once_value_7;
   fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
   fra.me.REG[2] = CALL_standard___kernel___Object___sys(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_standard___string___Sys___program_name(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = CALL_standard___file___String___dirname(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
   if (!once_value_8) {
     fra.me.REG[2] = BOX_NativeString("/../lib");
     REGB0 = TAG_Int(7);
@@ -1975,52 +263,14 @@ void mmloader___ToolContext___process_options(val_t p0){
     register_static_object(&once_value_8);
   } else fra.me.REG[2] = once_value_8;
   fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-  fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./mmloader.nit:240 */
-  REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[4])(fra.me.REG[4]);
-  if (UNTAG_Bool(REGB0)) {
-    fra.me.REG[2] = CALL_mmloader___ToolContext___paths(fra.me.REG[1])(fra.me.REG[1]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  }
-  /* ./mmloader.nit:242 */
-  fra.me.REG[4] = CALL_mmloader___ToolContext___opt_log_dir(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[4] = CALL_opts___Option___value(fra.me.REG[4])(fra.me.REG[4]);
-  REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(false);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    fra.me.REG[4] = CALL_mmloader___ToolContext___opt_log_dir(fra.me.REG[1])(fra.me.REG[1]);
-    fra.me.REG[4] = CALL_opts___Option___value(fra.me.REG[4])(fra.me.REG[4]);
-    REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___string___String, ID_standard___string___String)) /*cast String*/;
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Cast failed", NULL, LOCATE_mmloader, 242);
-    }
-    ATTR_mmloader___ToolContext____log_directory(fra.me.REG[1]) = fra.me.REG[4];
-  }
-  /* ./mmloader.nit:243 */
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_log(fra.me.REG[1])!=NIT_NULL);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
+  fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
+  /* mmloader.nit:70 */
+  REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[3])(fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_log", LOCATE_mmloader, 243);
-  }
-  fra.me.REG[4] = ATTR_mmloader___ToolContext____opt_log(fra.me.REG[1]);
-  fra.me.REG[4] = CALL_opts___Option___value(fra.me.REG[4])(fra.me.REG[4]);
-  if (UNTAG_Bool(fra.me.REG[4])) {
-    /* ./mmloader.nit:245 */
-    fra.me.REG[1] = CALL_mmloader___ToolContext___log_directory(fra.me.REG[1])(fra.me.REG[1]);
-    CALL_standard___file___String___mkdir(fra.me.REG[1])(fra.me.REG[1]);
+    fra.me.REG[1] = CALL_mmloader___ToolContext___paths(fra.me.REG[1])(fra.me.REG[1]);
+    fra.me.REG[3] = CALL_standard___file___String___simplify_path(fra.me.REG[3])(fra.me.REG[3]);
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
   stack_frame_head = fra.me.prev;
   return;
@@ -2035,7 +285,7 @@ val_t mmloader___ToolContext___try_to_load(val_t p0, val_t p1, val_t p2){
           static val_t once_value_5; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_mmloader;
-  fra.me.line = 249;
+  fra.me.line = 73;
   fra.me.meth = LOCATE_mmloader___ToolContext___try_to_load;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -2053,7 +303,7 @@ val_t mmloader___ToolContext___try_to_load(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./mmloader.nit:255 */
+  /* mmloader.nit:79 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMDirectory___modules(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapRead___values(fra.me.REG[3])(fra.me.REG[3]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_mmloader___ToolContext___try_to_load_1));
@@ -2061,27 +311,27 @@ val_t mmloader___ToolContext___try_to_load(val_t p0, val_t p1, val_t p2){
     case 0: break;
     case 1: (&(fra.me))->has_broke = 0; goto label3;
   }
-  /* ./mmloader.nit:261 */
+  /* mmloader.nit:85 */
   REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____loaders(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_loaders", LOCATE_mmloader, 261);
+    nit_abort("Uninitialized attribute %s", "_loaders", LOCATE_mmloader, 85);
   }
   fra.me.REG[4] = ATTR_mmloader___ToolContext____loaders(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -2093,20 +343,20 @@ val_t mmloader___ToolContext___try_to_load(val_t p0, val_t p1, val_t p2){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-      /* ./mmloader.nit:262 */
+      /* mmloader.nit:86 */
       fra.me.REG[7] = CALL_mmloader___ModuleLoader___try_to_load_dir(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1], fra.me.REG[2]);
-      /* ./mmloader.nit:263 */
+      /* mmloader.nit:87 */
       REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -2121,9 +371,9 @@ val_t mmloader___ToolContext___try_to_load(val_t p0, val_t p1, val_t p2){
       }
       REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
       if (UNTAG_Bool(REGB1)) {
-        /* ./mmloader.nit:264 */
+        /* mmloader.nit:88 */
         fra.me.REG[8] = CALL_mmloader___ToolContext___try_to_load(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[7]);
-        /* ./mmloader.nit:265 */
+        /* mmloader.nit:89 */
         REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
@@ -2138,34 +388,34 @@ val_t mmloader___ToolContext___try_to_load(val_t p0, val_t p1, val_t p2){
         }
         REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
         if (UNTAG_Bool(REGB1)) {
-          /* ./mmloader.nit:266 */
+          /* mmloader.nit:90 */
           REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
-            nit_abort("Reciever is null", NULL, LOCATE_mmloader, 266);
+            nit_abort("Reciever is null", NULL, LOCATE_mmloader, 90);
           }
           CALL_metamodel___abstractmetamodel___MMDirectory___owner__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-          /* ./mmloader.nit:267 */
+          /* mmloader.nit:91 */
           CALL_metamodel___abstractmetamodel___MMDirectory___add_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
-          /* ./mmloader.nit:268 */
+          /* mmloader.nit:92 */
           fra.me.REG[3] = fra.me.REG[8];
           goto label3;
         }
       }
-      /* ./mmloader.nit:272 */
+      /* mmloader.nit:96 */
       REGB1 = CALL_mmloader___ModuleLoader___can_handle(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1], fra.me.REG[2]);
       if (UNTAG_Bool(REGB1)) {
-        /* ./mmloader.nit:273 */
+        /* mmloader.nit:97 */
         fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMDirectory___full_name_for(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-        /* ./mmloader.nit:274 */
+        /* mmloader.nit:98 */
         REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
-          nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_mmloader, 274);
+          nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_mmloader, 98);
         }
         fra.me.REG[7] = ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0]);
         REGB1 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
         if (UNTAG_Bool(REGB1)) {
-          /* ./mmloader.nit:276 */
+          /* mmloader.nit:100 */
           REGB1 = TAG_Int(3);
           fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
           if (!once_value_4) {
@@ -2189,45 +439,45 @@ val_t mmloader___ToolContext___try_to_load(val_t p0, val_t p1, val_t p2){
           fra.me.REG[9] = fra.me.REG[9];
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]);
           fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
-          CALL_mmloader___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[7]);
+          CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[7]);
         }
-        /* ./mmloader.nit:278 */
+        /* mmloader.nit:102 */
         REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
-          nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_mmloader, 278);
+          nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_mmloader, 102);
         }
         fra.me.REG[7] = ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0]);
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-        /* ./mmloader.nit:279 */
+        /* mmloader.nit:103 */
         fra.me.REG[6] = CALL_mmloader___ModuleLoader___load_and_process_module(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
-        /* ./mmloader.nit:280 */
+        /* mmloader.nit:104 */
         REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
-          nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_mmloader, 280);
+          nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_mmloader, 104);
         }
         fra.me.REG[7] = ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0]);
         CALL_standard___collection___abstract_collection___RemovableCollection___remove(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-        /* ./mmloader.nit:282 */
+        /* mmloader.nit:106 */
         CALL_metamodel___abstractmetamodel___MMDirectory___add_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
-        /* ./mmloader.nit:283 */
+        /* mmloader.nit:107 */
         fra.me.REG[3] = fra.me.REG[6];
         goto label3;
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label6;
     }
   }
   label6: while(0);
-  /* ./mmloader.nit:286 */
+  /* mmloader.nit:110 */
   fra.me.REG[3] = NIT_NULL;
   goto label3;
   label3: while(0);
@@ -2253,7 +503,7 @@ val_t mmloader___ToolContext___try_to_load(val_t p0, val_t p1, val_t p2){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./mmloader.nit:256 */
+    /* mmloader.nit:80 */
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],closctx->REG[1]));
     if (UNTAG_Bool(REGB0)) {
@@ -2282,7 +532,7 @@ val_t mmloader___ToolContext___get_module_from_filename(val_t p0, val_t p1){
   static val_t once_value_6; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_mmloader;
-  fra.me.line = 293;
+  fra.me.line = 117;
   fra.me.meth = LOCATE_mmloader___ToolContext___get_module_from_filename;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -2296,9 +546,9 @@ val_t mmloader___ToolContext___get_module_from_filename(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./mmloader.nit:298 */
+  /* mmloader.nit:122 */
   fra.me.REG[2] = CALL_standard___file___String___dirname(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./mmloader.nit:299 */
+  /* mmloader.nit:123 */
   if (!once_value_1) {
     fra.me.REG[3] = BOX_NativeString(".nit");
     REGB0 = TAG_Int(4);
@@ -2309,9 +559,9 @@ val_t mmloader___ToolContext___get_module_from_filename(val_t p0, val_t p1){
   fra.me.REG[3] = fra.me.REG[3];
   fra.me.REG[3] = CALL_standard___file___String___basename(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./mmloader.nit:301 */
+  /* mmloader.nit:125 */
   fra.me.REG[2] = CALL_mmloader___ToolContext___directory_for(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./mmloader.nit:303 */
+  /* mmloader.nit:127 */
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[1]));
   if (UNTAG_Bool(REGB0)) {
@@ -2320,9 +570,9 @@ val_t mmloader___ToolContext___get_module_from_filename(val_t p0, val_t p1){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./mmloader.nit:306 */
+    /* mmloader.nit:130 */
     fra.me.REG[4] = CALL_mmloader___ToolContext___try_to_load(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
-    /* ./mmloader.nit:307 */
+    /* mmloader.nit:131 */
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -2339,16 +589,16 @@ val_t mmloader___ToolContext___get_module_from_filename(val_t p0, val_t p1){
     if (UNTAG_Bool(REGB0)) {
       goto label2;
     }
-    /* ./mmloader.nit:310 */
+    /* mmloader.nit:134 */
     fra.me.REG[5] = CALL_mmloader___ToolContext___get_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], NIT_NULL);
     fra.me.REG[4] = fra.me.REG[5];
     goto label2;
   }
-  /* ./mmloader.nit:313 */
+  /* mmloader.nit:137 */
   REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./mmloader.nit:314 */
+    /* mmloader.nit:138 */
     REGB0 = TAG_Int(3);
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_3) {
@@ -2371,13 +621,13 @@ val_t mmloader___ToolContext___get_module_from_filename(val_t p0, val_t p1){
     fra.me.REG[6] = fra.me.REG[6];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-    CALL_mmloader___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[5]);
-    /* ./mmloader.nit:315 */
-    nit_abort("Aborted", NULL, LOCATE_mmloader, 315);
+    CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[5]);
+    /* mmloader.nit:139 */
+    nit_abort("Aborted", NULL, LOCATE_mmloader, 139);
   }
-  /* ./mmloader.nit:319 */
+  /* mmloader.nit:143 */
   fra.me.REG[2] = CALL_mmloader___ToolContext___try_to_load(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
-  /* ./mmloader.nit:320 */
+  /* mmloader.nit:144 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2395,7 +645,7 @@ val_t mmloader___ToolContext___get_module_from_filename(val_t p0, val_t p1){
     fra.me.REG[4] = fra.me.REG[2];
     goto label2;
   }
-  /* ./mmloader.nit:322 */
+  /* mmloader.nit:146 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_5) {
@@ -2418,9 +668,9 @@ val_t mmloader___ToolContext___get_module_from_filename(val_t p0, val_t p1){
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_mmloader___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[2]);
-  /* ./mmloader.nit:323 */
-  nit_abort("Aborted", NULL, LOCATE_mmloader, 323);
+  CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[2]);
+  /* mmloader.nit:147 */
+  nit_abort("Aborted", NULL, LOCATE_mmloader, 147);
   label2: while(0);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[4];
@@ -2435,7 +685,7 @@ val_t mmloader___ToolContext___get_module(val_t p0, val_t p1, val_t p2){
   static val_t once_value_5; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_mmloader;
-  fra.me.line = 326;
+  fra.me.line = 150;
   fra.me.meth = LOCATE_mmloader___ToolContext___get_module;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -2449,7 +699,7 @@ val_t mmloader___ToolContext___get_module(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./mmloader.nit:330 */
+  /* mmloader.nit:154 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2464,13 +714,13 @@ val_t mmloader___ToolContext___get_module(val_t p0, val_t p1, val_t p2){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./mmloader.nit:331 */
+    /* mmloader.nit:155 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_mmloader, 331);
+      nit_abort("Reciever is null", NULL, LOCATE_mmloader, 155);
     }
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___directory(fra.me.REG[2])(fra.me.REG[2]);
-    /* ./mmloader.nit:332 */
+    /* mmloader.nit:156 */
     while(1) {
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
@@ -2486,9 +736,9 @@ val_t mmloader___ToolContext___get_module(val_t p0, val_t p1, val_t p2){
       }
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
-        /* ./mmloader.nit:333 */
+        /* mmloader.nit:157 */
         fra.me.REG[3] = CALL_mmloader___ToolContext___try_to_load(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
-        /* ./mmloader.nit:334 */
+        /* mmloader.nit:158 */
         REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
         } else {
@@ -2505,36 +755,36 @@ val_t mmloader___ToolContext___get_module(val_t p0, val_t p1, val_t p2){
         if (UNTAG_Bool(REGB0)) {
           goto label1;
         }
-        /* ./mmloader.nit:335 */
+        /* mmloader.nit:159 */
         REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
-          nit_abort("Reciever is null", NULL, LOCATE_mmloader, 335);
+          nit_abort("Reciever is null", NULL, LOCATE_mmloader, 159);
         }
         fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMDirectory___parent(fra.me.REG[2])(fra.me.REG[2]);
         fra.me.REG[2] = fra.me.REG[4];
       } else {
-        /* ./mmloader.nit:332 */
+        /* mmloader.nit:156 */
         goto label2;
       }
     }
     label2: while(0);
   }
-  /* ./mmloader.nit:339 */
+  /* mmloader.nit:163 */
   fra.me.REG[2] = CALL_mmloader___ToolContext___paths(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -2546,21 +796,21 @@ val_t mmloader___ToolContext___get_module(val_t p0, val_t p1, val_t p2){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-      /* ./mmloader.nit:340 */
+      /* mmloader.nit:164 */
       fra.me.REG[5] = CALL_mmloader___ToolContext___directory_for(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
       fra.me.REG[5] = CALL_mmloader___ToolContext___try_to_load(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[5]);
-      /* ./mmloader.nit:341 */
+      /* mmloader.nit:165 */
       REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -2578,19 +828,19 @@ val_t mmloader___ToolContext___get_module(val_t p0, val_t p1, val_t p2){
         fra.me.REG[3] = fra.me.REG[5];
         goto label1;
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label3;
     }
   }
   label3: while(0);
-  /* ./mmloader.nit:344 */
+  /* mmloader.nit:168 */
   REGB0 = TAG_Int(3);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_4) {
@@ -2614,9 +864,9 @@ val_t mmloader___ToolContext___get_module(val_t p0, val_t p1, val_t p2){
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-  CALL_mmloader___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[4]);
-  /* ./mmloader.nit:345 */
-  nit_abort("Aborted", NULL, LOCATE_mmloader, 345);
+  CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[4]);
+  /* mmloader.nit:169 */
+  nit_abort("Aborted", NULL, LOCATE_mmloader, 169);
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
@@ -2627,7 +877,7 @@ val_t mmloader___ToolContext___directory_for(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_mmloader;
-  fra.me.line = 348;
+  fra.me.line = 172;
   fra.me.meth = LOCATE_mmloader___ToolContext___directory_for;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -2638,11 +888,11 @@ val_t mmloader___ToolContext___directory_for(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./mmloader.nit:351 */
+  /* mmloader.nit:175 */
   REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_mmloader, 351);
+    nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_mmloader, 175);
   }
   fra.me.REG[2] = ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
@@ -2650,24 +900,24 @@ val_t mmloader___ToolContext___directory_for(val_t p0, val_t p1){
     REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_mmloader, 351);
+      nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_mmloader, 175);
     }
     fra.me.REG[2] = ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0]);
     fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
     goto label1;
   }
-  /* ./mmloader.nit:352 */
+  /* mmloader.nit:176 */
   fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = NEW_MMDirectory_metamodel___abstractmetamodel___MMDirectory___init(fra.me.REG[3], fra.me.REG[1], NIT_NULL);
-  /* ./mmloader.nit:353 */
+  /* mmloader.nit:177 */
   REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_mmloader, 353);
+    nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_mmloader, 177);
   }
   fra.me.REG[0] = ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
-  /* ./mmloader.nit:354 */
+  /* mmloader.nit:178 */
   fra.me.REG[2] = fra.me.REG[3];
   goto label1;
   label1: while(0);
@@ -2680,7 +930,7 @@ void mmloader___ToolContext___register_loader(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_mmloader;
-  fra.me.line = 360;
+  fra.me.line = 184;
   fra.me.meth = LOCATE_mmloader___ToolContext___register_loader;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2689,11 +939,11 @@ void mmloader___ToolContext___register_loader(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./mmloader.nit:361 */
+  /* mmloader.nit:185 */
   REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____loaders(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_loaders", LOCATE_mmloader, 361);
+    nit_abort("Uninitialized attribute %s", "_loaders", LOCATE_mmloader, 185);
   }
   fra.me.REG[0] = ATTR_mmloader___ToolContext____loaders(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
@@ -2705,13 +955,13 @@ val_t mmloader___ModuleLoader___file_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_mmloader;
-  fra.me.line = 369;
+  fra.me.line = 193;
   fra.me.meth = LOCATE_mmloader___ModuleLoader___file_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./mmloader.nit:369 */
-  nit_abort("Deferred method called", NULL, LOCATE_mmloader, 369);
+  /* mmloader.nit:193 */
+  nit_abort("Deferred method called", NULL, LOCATE_mmloader, 193);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
@@ -2724,7 +974,7 @@ val_t mmloader___ModuleLoader___try_to_load_dir(val_t p0, val_t p1, val_t p2){
   static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_mmloader;
-  fra.me.line = 372;
+  fra.me.line = 196;
   fra.me.meth = LOCATE_mmloader___ModuleLoader___try_to_load_dir;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -2736,7 +986,7 @@ val_t mmloader___ModuleLoader___try_to_load_dir(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./mmloader.nit:375 */
+  /* mmloader.nit:199 */
   REGB0 = TAG_Int(5);
   fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2762,8 +1012,8 @@ val_t mmloader___ModuleLoader___try_to_load_dir(val_t p0, val_t p1, val_t p2){
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
   if (!once_value_3) {
-    fra.me.REG[3] = BOX_NativeString("/");
-    REGB0 = TAG_Int(1);
+    fra.me.REG[3] = BOX_NativeString("");
+    REGB0 = TAG_Int(0);
     fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
     once_value_3 = fra.me.REG[3];
     register_static_object(&once_value_3);
@@ -2771,17 +1021,17 @@ val_t mmloader___ModuleLoader___try_to_load_dir(val_t p0, val_t p1, val_t p2){
   fra.me.REG[3] = fra.me.REG[3];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
   fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./mmloader.nit:376 */
+  /* mmloader.nit:200 */
   REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     fra.me.REG[3] = NIT_NULL;
     goto label4;
   }
-  /* ./mmloader.nit:378 */
+  /* mmloader.nit:202 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMDirectory___full_name_for(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   fra.me.REG[2] = NEW_MMDirectory_metamodel___abstractmetamodel___MMDirectory___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
-  /* ./mmloader.nit:379 */
+  /* mmloader.nit:203 */
   fra.me.REG[3] = fra.me.REG[2];
   goto label4;
   label4: while(0);
@@ -2799,7 +1049,7 @@ val_t mmloader___ModuleLoader___can_handle(val_t p0, val_t p1, val_t p2){
   static val_t once_value_4; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_mmloader;
-  fra.me.line = 382;
+  fra.me.line = 206;
   fra.me.meth = LOCATE_mmloader___ModuleLoader___can_handle;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -2812,7 +1062,7 @@ val_t mmloader___ModuleLoader___can_handle(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./mmloader.nit:386 */
+  /* mmloader.nit:210 */
   REGB0 = TAG_Int(7);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2858,13 +1108,13 @@ val_t mmloader___ModuleLoader___can_handle(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = fra.me.REG[0];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./mmloader.nit:387 */
+  /* mmloader.nit:211 */
   REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[3])(fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(true);
     goto label5;
   }
-  /* ./mmloader.nit:388 */
+  /* mmloader.nit:212 */
   REGB1 = TAG_Bool(false);
   REGB0 = REGB1;
   goto label5;
@@ -2882,7 +1132,7 @@ val_t mmloader___ModuleLoader___load_and_process_module(val_t p0, val_t p1, val_
   static val_t once_value_4; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_mmloader;
-  fra.me.line = 391;
+  fra.me.line = 215;
   fra.me.meth = LOCATE_mmloader___ModuleLoader___load_and_process_module;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -2897,7 +1147,7 @@ val_t mmloader___ModuleLoader___load_and_process_module(val_t p0, val_t p1, val_
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./mmloader.nit:395 */
+  /* mmloader.nit:219 */
   REGB0 = TAG_Int(7);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2943,16 +1193,17 @@ val_t mmloader___ModuleLoader___load_and_process_module(val_t p0, val_t p1, val_
   fra.me.REG[5] = fra.me.REG[5];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./mmloader.nit:396 */
+  fra.me.REG[4] = CALL_standard___file___String___simplify_path(fra.me.REG[4])(fra.me.REG[4]);
+  /* mmloader.nit:220 */
   fra.me.REG[4] = CALL_mmloader___ModuleLoader___load_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
-  /* ./mmloader.nit:397 */
+  /* mmloader.nit:221 */
   fra.me.REG[3] = CALL_mmloader___ToolContext___opt_only_parse(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(!UNTAG_Bool(fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
     CALL_mmloader___ModuleLoader___process_metamodel(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[4]);
   }
-  /* ./mmloader.nit:398 */
+  /* mmloader.nit:222 */
   goto label5;
   label5: while(0);
   stack_frame_head = fra.me.prev;
@@ -2968,7 +1219,7 @@ val_t mmloader___ModuleLoader___load_module(val_t p0, val_t p1, val_t p2, val_t
     static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_mmloader;
-  fra.me.line = 401;
+  fra.me.line = 225;
   fra.me.meth = LOCATE_mmloader___ModuleLoader___load_module;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -2986,7 +1237,7 @@ val_t mmloader___ModuleLoader___load_module(val_t p0, val_t p1, val_t p2, val_t
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./mmloader.nit:405 */
+  /* mmloader.nit:229 */
   if (!once_value_1) {
     fra.me.REG[5] = BOX_NativeString("-");
     REGB0 = TAG_Int(1);
@@ -3002,18 +1253,18 @@ val_t mmloader___ModuleLoader___load_module(val_t p0, val_t p1, val_t p2, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./mmloader.nit:406 */
+    /* mmloader.nit:230 */
     fra.me.REG[5] = CALL_standard___file___Object___stdin(fra.me.REG[0])(fra.me.REG[0]);
   } else {
-    /* ./mmloader.nit:408 */
+    /* mmloader.nit:232 */
     fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     fra.me.REG[6] = NEW_IFStream_standard___file___IFStream___open(fra.me.REG[6]);
     fra.me.REG[5] = fra.me.REG[6];
   }
-  /* ./mmloader.nit:411 */
+  /* mmloader.nit:235 */
   REGB0 = CALL_standard___stream___IStream___eof(fra.me.REG[5])(fra.me.REG[5]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./mmloader.nit:412 */
+    /* mmloader.nit:236 */
     REGB0 = TAG_Int(3);
     fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_2) {
@@ -3036,11 +1287,11 @@ val_t mmloader___ModuleLoader___load_module(val_t p0, val_t p1, val_t p2, val_t
     fra.me.REG[7] = fra.me.REG[7];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
     fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-    CALL_mmloader___ToolContext___fatal_error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[6]);
+    CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[6]);
   }
-  /* ./mmloader.nit:414 */
+  /* mmloader.nit:238 */
   fra.me.REG[3] = CALL_mmloader___ModuleLoader___parse_file(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[5], fra.me.REG[4], fra.me.REG[2], fra.me.REG[3]);
-  /* ./mmloader.nit:415 */
+  /* mmloader.nit:239 */
   fra.me.REG[0] = CALL_standard___file___Object___stdin(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[5],fra.me.REG[0]));
   if (UNTAG_Bool(REGB0)) {
@@ -3052,7 +1303,7 @@ val_t mmloader___ModuleLoader___load_module(val_t p0, val_t p1, val_t p2, val_t
   if (UNTAG_Bool(REGB0)) {
     CALL_standard___stream___IOS___close(fra.me.REG[5])(fra.me.REG[5]);
   }
-  /* ./mmloader.nit:416 */
+  /* mmloader.nit:240 */
   goto label4;
   label4: while(0);
   stack_frame_head = fra.me.prev;
@@ -3063,13 +1314,13 @@ val_t mmloader___ModuleLoader___parse_file(val_t p0, val_t p1, val_t p2, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_mmloader;
-  fra.me.line = 419;
+  fra.me.line = 243;
   fra.me.meth = LOCATE_mmloader___ModuleLoader___parse_file;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./mmloader.nit:419 */
-  nit_abort("Deferred method called", NULL, LOCATE_mmloader, 419);
+  /* mmloader.nit:243 */
+  nit_abort("Deferred method called", NULL, LOCATE_mmloader, 243);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
@@ -3079,7 +1330,7 @@ void mmloader___ModuleLoader___process_metamodel(val_t p0, val_t p1, val_t p2){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_mmloader;
-  fra.me.line = 422;
+  fra.me.line = 246;
   fra.me.meth = LOCATE_mmloader___ModuleLoader___process_metamodel;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -3093,24 +1344,8 @@ void mmloader___ModuleLoader___process_metamodel(val_t p0, val_t p1, val_t p2){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_mmloader, 0);
   }
-  /* ./mmloader.nit:422 */
-  nit_abort("Deferred method called", NULL, LOCATE_mmloader, 422);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-void mmloader___ModuleLoader___init(val_t p0, int* init_table){
-  int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_mmloader___ModuleLoader].i;
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  if (init_table[itpos2]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_mmloader;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_mmloader___ModuleLoader___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
+  /* mmloader.nit:246 */
+  nit_abort("Deferred method called", NULL, LOCATE_mmloader, 246);
   stack_frame_head = fra.me.prev;
-  init_table[itpos2] = 1;
   return;
 }
index 1f92af7..9b43c80 100644 (file)
 #ifndef mmloader_sep
 #define mmloader_sep
 #include "metamodel._sep.h"
-#include "opts._sep.h"
+#include "toolcontext._sep.h"
 #include <nit_common.h>
 
-extern const classtable_elt_t VFT_mmloader___Message[];
-
-extern const classtable_elt_t VFT_mmloader___ToolContext[];
-
 extern const classtable_elt_t VFT_mmloader___ModuleLoader[];
 extern const char *LOCATE_mmloader;
 extern const int SFT_mmloader[];
-#define ID_mmloader___Message (SFT_mmloader[0])
-#define COLOR_mmloader___Message (SFT_mmloader[1])
-#define ATTR_mmloader___Message____location(recv) ATTR(recv, (SFT_mmloader[2] + 0))
-#define ATTR_mmloader___Message____text(recv) ATTR(recv, (SFT_mmloader[2] + 1))
-#define INIT_TABLE_POS_mmloader___Message (SFT_mmloader[3] + 0)
-#define CALL_mmloader___Message___location(recv) ((mmloader___Message___location_t)CALL((recv), (SFT_mmloader[3] + 1)))
-#define CALL_mmloader___Message___text(recv) ((mmloader___Message___text_t)CALL((recv), (SFT_mmloader[3] + 2)))
-#define CALL_mmloader___Message___to_color_string(recv) ((mmloader___Message___to_color_string_t)CALL((recv), (SFT_mmloader[3] + 3)))
-#define CALL_mmloader___Message___init(recv) ((mmloader___Message___init_t)CALL((recv), (SFT_mmloader[3] + 4)))
-#define ID_mmloader___ToolContext (SFT_mmloader[4])
-#define COLOR_mmloader___ToolContext (SFT_mmloader[5])
-#define ATTR_mmloader___ToolContext____error_count(recv) ATTR(recv, (SFT_mmloader[6] + 0))
-#define ATTR_mmloader___ToolContext____warning_count(recv) ATTR(recv, (SFT_mmloader[6] + 1))
-#define ATTR_mmloader___ToolContext____log_directory(recv) ATTR(recv, (SFT_mmloader[6] + 2))
-#define ATTR_mmloader___ToolContext____messages(recv) ATTR(recv, (SFT_mmloader[6] + 3))
-#define ATTR_mmloader___ToolContext____message_sorter(recv) ATTR(recv, (SFT_mmloader[6] + 4))
-#define ATTR_mmloader___ToolContext____paths(recv) ATTR(recv, (SFT_mmloader[6] + 5))
-#define ATTR_mmloader___ToolContext____loaders(recv) ATTR(recv, (SFT_mmloader[6] + 6))
-#define ATTR_mmloader___ToolContext____option_context(recv) ATTR(recv, (SFT_mmloader[6] + 7))
-#define ATTR_mmloader___ToolContext____opt_warn(recv) ATTR(recv, (SFT_mmloader[6] + 8))
-#define ATTR_mmloader___ToolContext____opt_path(recv) ATTR(recv, (SFT_mmloader[6] + 9))
-#define ATTR_mmloader___ToolContext____opt_log(recv) ATTR(recv, (SFT_mmloader[6] + 10))
-#define ATTR_mmloader___ToolContext____opt_log_dir(recv) ATTR(recv, (SFT_mmloader[6] + 11))
-#define ATTR_mmloader___ToolContext____opt_only_metamodel(recv) ATTR(recv, (SFT_mmloader[6] + 12))
-#define ATTR_mmloader___ToolContext____opt_only_parse(recv) ATTR(recv, (SFT_mmloader[6] + 13))
-#define ATTR_mmloader___ToolContext____opt_help(recv) ATTR(recv, (SFT_mmloader[6] + 14))
-#define ATTR_mmloader___ToolContext____opt_version(recv) ATTR(recv, (SFT_mmloader[6] + 15))
-#define ATTR_mmloader___ToolContext____opt_verbose(recv) ATTR(recv, (SFT_mmloader[6] + 16))
-#define ATTR_mmloader___ToolContext____opt_stop_on_first_error(recv) ATTR(recv, (SFT_mmloader[6] + 17))
-#define ATTR_mmloader___ToolContext____opt_no_color(recv) ATTR(recv, (SFT_mmloader[6] + 18))
-#define ATTR_mmloader___ToolContext____verbose_level(recv) ATTR(recv, (SFT_mmloader[6] + 19))
-#define ATTR_mmloader___ToolContext____processing_modules(recv) ATTR(recv, (SFT_mmloader[6] + 20))
-#define ATTR_mmloader___ToolContext____path_dirs(recv) ATTR(recv, (SFT_mmloader[6] + 21))
-#define INIT_TABLE_POS_mmloader___ToolContext (SFT_mmloader[7] + 0)
-#define CALL_mmloader___ToolContext___error_count(recv) ((mmloader___ToolContext___error_count_t)CALL((recv), (SFT_mmloader[7] + 1)))
-#define CALL_mmloader___ToolContext___warning_count(recv) ((mmloader___ToolContext___warning_count_t)CALL((recv), (SFT_mmloader[7] + 2)))
-#define CALL_mmloader___ToolContext___log_directory(recv) ((mmloader___ToolContext___log_directory_t)CALL((recv), (SFT_mmloader[7] + 3)))
-#define CALL_mmloader___ToolContext___check_errors(recv) ((mmloader___ToolContext___check_errors_t)CALL((recv), (SFT_mmloader[7] + 4)))
-#define CALL_mmloader___ToolContext___error(recv) ((mmloader___ToolContext___error_t)CALL((recv), (SFT_mmloader[7] + 5)))
-#define CALL_mmloader___ToolContext___fatal_error(recv) ((mmloader___ToolContext___fatal_error_t)CALL((recv), (SFT_mmloader[7] + 6)))
-#define CALL_mmloader___ToolContext___warning(recv) ((mmloader___ToolContext___warning_t)CALL((recv), (SFT_mmloader[7] + 7)))
-#define CALL_mmloader___ToolContext___info(recv) ((mmloader___ToolContext___info_t)CALL((recv), (SFT_mmloader[7] + 8)))
-#define CALL_mmloader___ToolContext___paths(recv) ((mmloader___ToolContext___paths_t)CALL((recv), (SFT_mmloader[7] + 9)))
-#define CALL_mmloader___ToolContext___option_context(recv) ((mmloader___ToolContext___option_context_t)CALL((recv), (SFT_mmloader[7] + 10)))
-#define CALL_mmloader___ToolContext___opt_warn(recv) ((mmloader___ToolContext___opt_warn_t)CALL((recv), (SFT_mmloader[7] + 11)))
-#define CALL_mmloader___ToolContext___opt_path(recv) ((mmloader___ToolContext___opt_path_t)CALL((recv), (SFT_mmloader[7] + 12)))
-#define CALL_mmloader___ToolContext___opt_log(recv) ((mmloader___ToolContext___opt_log_t)CALL((recv), (SFT_mmloader[7] + 13)))
-#define CALL_mmloader___ToolContext___opt_log_dir(recv) ((mmloader___ToolContext___opt_log_dir_t)CALL((recv), (SFT_mmloader[7] + 14)))
-#define CALL_mmloader___ToolContext___opt_only_metamodel(recv) ((mmloader___ToolContext___opt_only_metamodel_t)CALL((recv), (SFT_mmloader[7] + 15)))
-#define CALL_mmloader___ToolContext___opt_only_parse(recv) ((mmloader___ToolContext___opt_only_parse_t)CALL((recv), (SFT_mmloader[7] + 16)))
-#define CALL_mmloader___ToolContext___opt_help(recv) ((mmloader___ToolContext___opt_help_t)CALL((recv), (SFT_mmloader[7] + 17)))
-#define CALL_mmloader___ToolContext___opt_version(recv) ((mmloader___ToolContext___opt_version_t)CALL((recv), (SFT_mmloader[7] + 18)))
-#define CALL_mmloader___ToolContext___opt_verbose(recv) ((mmloader___ToolContext___opt_verbose_t)CALL((recv), (SFT_mmloader[7] + 19)))
-#define CALL_mmloader___ToolContext___opt_stop_on_first_error(recv) ((mmloader___ToolContext___opt_stop_on_first_error_t)CALL((recv), (SFT_mmloader[7] + 20)))
-#define CALL_mmloader___ToolContext___opt_no_color(recv) ((mmloader___ToolContext___opt_no_color_t)CALL((recv), (SFT_mmloader[7] + 21)))
-#define CALL_mmloader___ToolContext___verbose_level(recv) ((mmloader___ToolContext___verbose_level_t)CALL((recv), (SFT_mmloader[7] + 22)))
-#define CALL_mmloader___ToolContext___init(recv) ((mmloader___ToolContext___init_t)CALL((recv), (SFT_mmloader[7] + 23)))
-#define CALL_mmloader___ToolContext___process_options(recv) ((mmloader___ToolContext___process_options_t)CALL((recv), (SFT_mmloader[7] + 24)))
-#define CALL_mmloader___ToolContext___try_to_load(recv) ((mmloader___ToolContext___try_to_load_t)CALL((recv), (SFT_mmloader[7] + 25)))
-#define CALL_mmloader___ToolContext___get_module_from_filename(recv) ((mmloader___ToolContext___get_module_from_filename_t)CALL((recv), (SFT_mmloader[7] + 26)))
-#define CALL_mmloader___ToolContext___get_module(recv) ((mmloader___ToolContext___get_module_t)CALL((recv), (SFT_mmloader[7] + 27)))
-#define CALL_mmloader___ToolContext___directory_for(recv) ((mmloader___ToolContext___directory_for_t)CALL((recv), (SFT_mmloader[7] + 28)))
-#define CALL_mmloader___ToolContext___register_loader(recv) ((mmloader___ToolContext___register_loader_t)CALL((recv), (SFT_mmloader[7] + 29)))
-#define ID_mmloader___ModuleLoader (SFT_mmloader[8])
-#define COLOR_mmloader___ModuleLoader (SFT_mmloader[9])
-#define INIT_TABLE_POS_mmloader___ModuleLoader (SFT_mmloader[10] + 0)
-#define VTID_mmloader___ModuleLoader___MODULE(recv) (VAL2VFT(recv)[SFT_mmloader[10] + 1].i)
-#define VTCOLOR_mmloader___ModuleLoader___MODULE(recv) (VAL2VFT(recv)[SFT_mmloader[10] + 2].i)
-#define CALL_mmloader___ModuleLoader___file_type(recv) ((mmloader___ModuleLoader___file_type_t)CALL((recv), (SFT_mmloader[10] + 3)))
-#define CALL_mmloader___ModuleLoader___try_to_load_dir(recv) ((mmloader___ModuleLoader___try_to_load_dir_t)CALL((recv), (SFT_mmloader[10] + 4)))
-#define CALL_mmloader___ModuleLoader___can_handle(recv) ((mmloader___ModuleLoader___can_handle_t)CALL((recv), (SFT_mmloader[10] + 5)))
-#define CALL_mmloader___ModuleLoader___load_and_process_module(recv) ((mmloader___ModuleLoader___load_and_process_module_t)CALL((recv), (SFT_mmloader[10] + 6)))
-#define CALL_mmloader___ModuleLoader___load_module(recv) ((mmloader___ModuleLoader___load_module_t)CALL((recv), (SFT_mmloader[10] + 7)))
-#define CALL_mmloader___ModuleLoader___parse_file(recv) ((mmloader___ModuleLoader___parse_file_t)CALL((recv), (SFT_mmloader[10] + 8)))
-#define CALL_mmloader___ModuleLoader___process_metamodel(recv) ((mmloader___ModuleLoader___process_metamodel_t)CALL((recv), (SFT_mmloader[10] + 9)))
-#define CALL_mmloader___ModuleLoader___init(recv) ((mmloader___ModuleLoader___init_t)CALL((recv), (SFT_mmloader[10] + 10)))
-static const char * const LOCATE_mmloader___Message___location = "mmloader::Message::location";
-val_t mmloader___Message___location(val_t p0);
-typedef val_t (*mmloader___Message___location_t)(val_t p0);
-static const char * const LOCATE_mmloader___Message___text = "mmloader::Message::text";
-val_t mmloader___Message___text(val_t p0);
-typedef val_t (*mmloader___Message___text_t)(val_t p0);
-static const char * const LOCATE_mmloader___Message_____l = "mmloader::Message::(kernel::Comparable::<)";
-val_t mmloader___Message_____l(val_t p0, val_t p1);
-typedef val_t (*mmloader___Message_____l_t)(val_t p0, val_t p1);
-static const char * const LOCATE_mmloader___Message___to_s = "mmloader::Message::(string::Object::to_s)";
-val_t mmloader___Message___to_s(val_t p0);
-typedef val_t (*mmloader___Message___to_s_t)(val_t p0);
-static const char * const LOCATE_mmloader___Message___to_color_string = "mmloader::Message::to_color_string";
-val_t mmloader___Message___to_color_string(val_t p0);
-typedef val_t (*mmloader___Message___to_color_string_t)(val_t p0);
-static const char * const LOCATE_mmloader___Message___init = "mmloader::Message::init";
-void mmloader___Message___init(val_t p0, val_t p1, val_t p2, int* init_table);
-typedef void (*mmloader___Message___init_t)(val_t p0, val_t p1, val_t p2, int* init_table);
-val_t NEW_Message_mmloader___Message___init(val_t p0, val_t p1);
-static const char * const LOCATE_mmloader___ToolContext___error_count = "mmloader::ToolContext::error_count";
-val_t mmloader___ToolContext___error_count(val_t p0);
-typedef val_t (*mmloader___ToolContext___error_count_t)(val_t p0);
-static const char * const LOCATE_mmloader___ToolContext___warning_count = "mmloader::ToolContext::warning_count";
-val_t mmloader___ToolContext___warning_count(val_t p0);
-typedef val_t (*mmloader___ToolContext___warning_count_t)(val_t p0);
-static const char * const LOCATE_mmloader___ToolContext___log_directory = "mmloader::ToolContext::log_directory";
-val_t mmloader___ToolContext___log_directory(val_t p0);
-typedef val_t (*mmloader___ToolContext___log_directory_t)(val_t p0);
-static const char * const LOCATE_mmloader___ToolContext___check_errors = "mmloader::ToolContext::check_errors";
-void mmloader___ToolContext___check_errors(val_t p0);
-typedef void (*mmloader___ToolContext___check_errors_t)(val_t p0);
-static const char * const LOCATE_mmloader___ToolContext___error = "mmloader::ToolContext::error";
-void mmloader___ToolContext___error(val_t p0, val_t p1, val_t p2);
-typedef void (*mmloader___ToolContext___error_t)(val_t p0, val_t p1, val_t p2);
-static const char * const LOCATE_mmloader___ToolContext___fatal_error = "mmloader::ToolContext::fatal_error";
-void mmloader___ToolContext___fatal_error(val_t p0, val_t p1, val_t p2);
-typedef void (*mmloader___ToolContext___fatal_error_t)(val_t p0, val_t p1, val_t p2);
-static const char * const LOCATE_mmloader___ToolContext___warning = "mmloader::ToolContext::warning";
-void mmloader___ToolContext___warning(val_t p0, val_t p1, val_t p2);
-typedef void (*mmloader___ToolContext___warning_t)(val_t p0, val_t p1, val_t p2);
-static const char * const LOCATE_mmloader___ToolContext___info = "mmloader::ToolContext::info";
-void mmloader___ToolContext___info(val_t p0, val_t p1, val_t p2);
-typedef void (*mmloader___ToolContext___info_t)(val_t p0, val_t p1, val_t p2);
+#define ATTR_mmloader___ToolContext____paths(recv) ATTR(recv, (SFT_mmloader[0] + 0))
+#define ATTR_mmloader___ToolContext____loaders(recv) ATTR(recv, (SFT_mmloader[0] + 1))
+#define ATTR_mmloader___ToolContext____opt_path(recv) ATTR(recv, (SFT_mmloader[0] + 2))
+#define ATTR_mmloader___ToolContext____opt_only_metamodel(recv) ATTR(recv, (SFT_mmloader[0] + 3))
+#define ATTR_mmloader___ToolContext____opt_only_parse(recv) ATTR(recv, (SFT_mmloader[0] + 4))
+#define ATTR_mmloader___ToolContext____processing_modules(recv) ATTR(recv, (SFT_mmloader[0] + 5))
+#define ATTR_mmloader___ToolContext____path_dirs(recv) ATTR(recv, (SFT_mmloader[0] + 6))
+#define CALL_mmloader___ToolContext___paths(recv) ((mmloader___ToolContext___paths_t)CALL((recv), (SFT_mmloader[1] + 0)))
+#define CALL_mmloader___ToolContext___opt_path(recv) ((mmloader___ToolContext___opt_path_t)CALL((recv), (SFT_mmloader[1] + 1)))
+#define CALL_mmloader___ToolContext___opt_only_metamodel(recv) ((mmloader___ToolContext___opt_only_metamodel_t)CALL((recv), (SFT_mmloader[1] + 2)))
+#define CALL_mmloader___ToolContext___opt_only_parse(recv) ((mmloader___ToolContext___opt_only_parse_t)CALL((recv), (SFT_mmloader[1] + 3)))
+#define CALL_SUPER_mmloader___ToolContext___init(recv) ((mmloader___ToolContext___init_t)CALL((recv), (SFT_mmloader[1] + 4)))
+#define CALL_SUPER_mmloader___ToolContext___process_options(recv) ((mmloader___ToolContext___process_options_t)CALL((recv), (SFT_mmloader[1] + 5)))
+#define CALL_mmloader___ToolContext___try_to_load(recv) ((mmloader___ToolContext___try_to_load_t)CALL((recv), (SFT_mmloader[1] + 6)))
+#define CALL_mmloader___ToolContext___get_module_from_filename(recv) ((mmloader___ToolContext___get_module_from_filename_t)CALL((recv), (SFT_mmloader[1] + 7)))
+#define CALL_mmloader___ToolContext___get_module(recv) ((mmloader___ToolContext___get_module_t)CALL((recv), (SFT_mmloader[1] + 8)))
+#define CALL_mmloader___ToolContext___directory_for(recv) ((mmloader___ToolContext___directory_for_t)CALL((recv), (SFT_mmloader[1] + 9)))
+#define CALL_mmloader___ToolContext___register_loader(recv) ((mmloader___ToolContext___register_loader_t)CALL((recv), (SFT_mmloader[1] + 10)))
+#define ID_mmloader___ModuleLoader (SFT_mmloader[2])
+#define COLOR_mmloader___ModuleLoader (SFT_mmloader[3])
+#define INIT_TABLE_POS_mmloader___ModuleLoader (SFT_mmloader[4] + 0)
+#define VTID_mmloader___ModuleLoader___MODULE(recv) (VAL2VFT(recv)[SFT_mmloader[4] + 1].i)
+#define VTCOLOR_mmloader___ModuleLoader___MODULE(recv) (VAL2VFT(recv)[SFT_mmloader[4] + 2].i)
+#define CALL_mmloader___ModuleLoader___file_type(recv) ((mmloader___ModuleLoader___file_type_t)CALL((recv), (SFT_mmloader[4] + 3)))
+#define CALL_mmloader___ModuleLoader___try_to_load_dir(recv) ((mmloader___ModuleLoader___try_to_load_dir_t)CALL((recv), (SFT_mmloader[4] + 4)))
+#define CALL_mmloader___ModuleLoader___can_handle(recv) ((mmloader___ModuleLoader___can_handle_t)CALL((recv), (SFT_mmloader[4] + 5)))
+#define CALL_mmloader___ModuleLoader___load_and_process_module(recv) ((mmloader___ModuleLoader___load_and_process_module_t)CALL((recv), (SFT_mmloader[4] + 6)))
+#define CALL_mmloader___ModuleLoader___load_module(recv) ((mmloader___ModuleLoader___load_module_t)CALL((recv), (SFT_mmloader[4] + 7)))
+#define CALL_mmloader___ModuleLoader___parse_file(recv) ((mmloader___ModuleLoader___parse_file_t)CALL((recv), (SFT_mmloader[4] + 8)))
+#define CALL_mmloader___ModuleLoader___process_metamodel(recv) ((mmloader___ModuleLoader___process_metamodel_t)CALL((recv), (SFT_mmloader[4] + 9)))
 static const char * const LOCATE_mmloader___ToolContext___paths = "mmloader::ToolContext::paths";
 val_t mmloader___ToolContext___paths(val_t p0);
 typedef val_t (*mmloader___ToolContext___paths_t)(val_t p0);
-static const char * const LOCATE_mmloader___ToolContext___option_context = "mmloader::ToolContext::option_context";
-val_t mmloader___ToolContext___option_context(val_t p0);
-typedef val_t (*mmloader___ToolContext___option_context_t)(val_t p0);
-static const char * const LOCATE_mmloader___ToolContext___opt_warn = "mmloader::ToolContext::opt_warn";
-val_t mmloader___ToolContext___opt_warn(val_t p0);
-typedef val_t (*mmloader___ToolContext___opt_warn_t)(val_t p0);
 static const char * const LOCATE_mmloader___ToolContext___opt_path = "mmloader::ToolContext::opt_path";
 val_t mmloader___ToolContext___opt_path(val_t p0);
 typedef val_t (*mmloader___ToolContext___opt_path_t)(val_t p0);
-static const char * const LOCATE_mmloader___ToolContext___opt_log = "mmloader::ToolContext::opt_log";
-val_t mmloader___ToolContext___opt_log(val_t p0);
-typedef val_t (*mmloader___ToolContext___opt_log_t)(val_t p0);
-static const char * const LOCATE_mmloader___ToolContext___opt_log_dir = "mmloader::ToolContext::opt_log_dir";
-val_t mmloader___ToolContext___opt_log_dir(val_t p0);
-typedef val_t (*mmloader___ToolContext___opt_log_dir_t)(val_t p0);
 static const char * const LOCATE_mmloader___ToolContext___opt_only_metamodel = "mmloader::ToolContext::opt_only_metamodel";
 val_t mmloader___ToolContext___opt_only_metamodel(val_t p0);
 typedef val_t (*mmloader___ToolContext___opt_only_metamodel_t)(val_t p0);
 static const char * const LOCATE_mmloader___ToolContext___opt_only_parse = "mmloader::ToolContext::opt_only_parse";
 val_t mmloader___ToolContext___opt_only_parse(val_t p0);
 typedef val_t (*mmloader___ToolContext___opt_only_parse_t)(val_t p0);
-static const char * const LOCATE_mmloader___ToolContext___opt_help = "mmloader::ToolContext::opt_help";
-val_t mmloader___ToolContext___opt_help(val_t p0);
-typedef val_t (*mmloader___ToolContext___opt_help_t)(val_t p0);
-static const char * const LOCATE_mmloader___ToolContext___opt_version = "mmloader::ToolContext::opt_version";
-val_t mmloader___ToolContext___opt_version(val_t p0);
-typedef val_t (*mmloader___ToolContext___opt_version_t)(val_t p0);
-static const char * const LOCATE_mmloader___ToolContext___opt_verbose = "mmloader::ToolContext::opt_verbose";
-val_t mmloader___ToolContext___opt_verbose(val_t p0);
-typedef val_t (*mmloader___ToolContext___opt_verbose_t)(val_t p0);
-static const char * const LOCATE_mmloader___ToolContext___opt_stop_on_first_error = "mmloader::ToolContext::opt_stop_on_first_error";
-val_t mmloader___ToolContext___opt_stop_on_first_error(val_t p0);
-typedef val_t (*mmloader___ToolContext___opt_stop_on_first_error_t)(val_t p0);
-static const char * const LOCATE_mmloader___ToolContext___opt_no_color = "mmloader::ToolContext::opt_no_color";
-val_t mmloader___ToolContext___opt_no_color(val_t p0);
-typedef val_t (*mmloader___ToolContext___opt_no_color_t)(val_t p0);
-static const char * const LOCATE_mmloader___ToolContext___verbose_level = "mmloader::ToolContext::verbose_level";
-val_t mmloader___ToolContext___verbose_level(val_t p0);
-typedef val_t (*mmloader___ToolContext___verbose_level_t)(val_t p0);
-static const char * const LOCATE_mmloader___ToolContext___init = "mmloader::ToolContext::init";
+static const char * const LOCATE_mmloader___ToolContext___init = "mmloader::ToolContext::(toolcontext::ToolContext::init)";
 void mmloader___ToolContext___init(val_t p0, int* init_table);
 typedef void (*mmloader___ToolContext___init_t)(val_t p0, int* init_table);
-val_t NEW_ToolContext_mmloader___ToolContext___init();
-static const char * const LOCATE_mmloader___ToolContext___process_options = "mmloader::ToolContext::process_options";
+val_t NEW_ToolContext_toolcontext___ToolContext___init();
+static const char * const LOCATE_mmloader___ToolContext___process_options = "mmloader::ToolContext::(toolcontext::ToolContext::process_options)";
 void mmloader___ToolContext___process_options(val_t p0);
 typedef void (*mmloader___ToolContext___process_options_t)(val_t p0);
 static const char * const LOCATE_mmloader___ToolContext___try_to_load = "mmloader::ToolContext::try_to_load";
@@ -219,8 +96,4 @@ typedef val_t (*mmloader___ModuleLoader___parse_file_t)(val_t p0, val_t p1, val_
 static const char * const LOCATE_mmloader___ModuleLoader___process_metamodel = "mmloader::ModuleLoader::process_metamodel";
 void mmloader___ModuleLoader___process_metamodel(val_t p0, val_t p1, val_t p2);
 typedef void (*mmloader___ModuleLoader___process_metamodel_t)(val_t p0, val_t p1, val_t p2);
-static const char * const LOCATE_mmloader___ModuleLoader___init = "mmloader::ModuleLoader::init";
-void mmloader___ModuleLoader___init(val_t p0, int* init_table);
-typedef void (*mmloader___ModuleLoader___init_t)(val_t p0, int* init_table);
-val_t NEW_ModuleLoader_mmloader___ModuleLoader___init();
 #endif
index c8a8e69..7ec085e 100644 (file)
@@ -23,19 +23,19 @@ void native_interface___MMSrcModule___compile_separate_module(val_t p0, val_t p1
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//native_interface.nit:24 */
+  /* native_interface/native_interface.nit:24 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./native_interface//native_interface.nit:26 */
+  /* native_interface/native_interface.nit:26 */
   REGB0 = CALL_metamodel___abstractmetamodel___MMModule___is_extern_hybrid(fra.me.REG[2])(fra.me.REG[2]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//native_interface.nit:27 */
+    /* native_interface/native_interface.nit:27 */
     fra.me.REG[4] = NEW_FrontierVisitor_native_interface___frontier___FrontierVisitor___init(fra.me.REG[2], fra.me.REG[3]);
-    /* ./native_interface//native_interface.nit:28 */
+    /* native_interface/native_interface.nit:28 */
     CALL_native_interface___frontier___MMSrcModule___compile_frontier(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-    /* ./native_interface//native_interface.nit:30 */
+    /* native_interface/native_interface.nit:30 */
     CALL_native_interface___frontier___FrontierVisitor___compile_cached(fra.me.REG[4])(fra.me.REG[4]);
-    /* ./native_interface//native_interface.nit:32 */
+    /* native_interface/native_interface.nit:32 */
     REGB0 = TAG_Int(5);
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -71,10 +71,10 @@ void native_interface___MMSrcModule___compile_separate_module(val_t p0, val_t p1
     fra.me.REG[2] = fra.me.REG[2];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-    /* ./native_interface//native_interface.nit:33 */
+    /* native_interface/native_interface.nit:33 */
     CALL_native_interface___frontier___FrontierVisitor___write_to_files(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   }
-  /* ./native_interface//native_interface.nit:36 */
+  /* native_interface/native_interface.nit:36 */
   CALL_SUPER_native_interface___MMSrcModule___compile_separate_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
index 11cbb1e..e400486 100644 (file)
@@ -25,7 +25,8 @@ void native_interface___frontier___MMSrcModule___compile_frontier(val_t p0, val_
     static val_t once_value_19; /* Once value */
     static val_t once_value_20; /* Once value */
     static val_t once_value_21; /* Once value */
-  static val_t once_value_24; /* Once value */
+    static val_t once_value_22; /* Once value */
+  static val_t once_value_25; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
   fra.me.line = 28;
@@ -41,7 +42,7 @@ void native_interface___frontier___MMSrcModule___compile_frontier(val_t p0, val_
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:32 */
+  /* native_interface/frontier.nit:32 */
   fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___body(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -68,7 +69,7 @@ void native_interface___frontier___MMSrcModule___compile_frontier(val_t p0, val_
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:35 */
+  /* native_interface/frontier.nit:35 */
   fra.me.REG[3] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra.me.REG[1])(fra.me.REG[1]);
   if (!once_value_3) {
     fra.me.REG[2] = BOX_NativeString("#include <nit_common.h>\n");
@@ -79,7 +80,7 @@ void native_interface___frontier___MMSrcModule___compile_frontier(val_t p0, val_
   } else fra.me.REG[2] = once_value_3;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./native_interface//frontier.nit:36 */
+  /* native_interface/frontier.nit:36 */
   fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -106,7 +107,7 @@ void native_interface___frontier___MMSrcModule___compile_frontier(val_t p0, val_
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:38 */
+  /* native_interface/frontier.nit:38 */
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_6) {
@@ -132,7 +133,7 @@ void native_interface___frontier___MMSrcModule___compile_frontier(val_t p0, val_
   fra.me.REG[2] = fra.me.REG[2];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:39 */
+  /* native_interface/frontier.nit:39 */
   fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -157,7 +158,7 @@ void native_interface___frontier___MMSrcModule___compile_frontier(val_t p0, val_
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* ./native_interface//frontier.nit:40 */
+  /* native_interface/frontier.nit:40 */
   fra.me.REG[4] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -182,7 +183,7 @@ void native_interface___frontier___MMSrcModule___compile_frontier(val_t p0, val_
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-  /* ./native_interface//frontier.nit:43 */
+  /* native_interface/frontier.nit:43 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_12) {
@@ -219,11 +220,11 @@ void native_interface___frontier___MMSrcModule___compile_frontier(val_t p0, val_
   fra.me.REG[4] = fra.me.REG[4];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./native_interface//frontier.nit:44 */
+  /* native_interface/frontier.nit:44 */
   REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:45 */
+    /* native_interface/frontier.nit:45 */
     REGB0 = TAG_Int(5);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_15) {
@@ -262,80 +263,89 @@ void native_interface___frontier___MMSrcModule___compile_frontier(val_t p0, val_
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     fra.me.REG[2] = fra.me.REG[4];
   }
-  /* ./native_interface//frontier.nit:47 */
+  /* native_interface/frontier.nit:47 */
   REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[2])(fra.me.REG[2]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:48 */
+    /* native_interface/frontier.nit:48 */
+    if (!once_value_18) {
+      fra.me.REG[4] = BOX_NativeString("..");
+      REGB0 = TAG_Int(2);
+      fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+      once_value_18 = fra.me.REG[4];
+      register_static_object(&once_value_18);
+    } else fra.me.REG[4] = once_value_18;
+    fra.me.REG[4] = fra.me.REG[4];
+    fra.me.REG[2] = CALL_standard___file___String___join_path(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
+    fra.me.REG[2] = CALL_standard___file___String___simplify_path(fra.me.REG[2])(fra.me.REG[2]);
+    /* native_interface/frontier.nit:49 */
     fra.me.REG[4] = CALL_native_interface___frontier___FrontierVisitor___body(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_18) {
+    if (!once_value_19) {
       fra.me.REG[5] = BOX_NativeString("#include \"");
       REGB0 = TAG_Int(10);
       fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
-      once_value_18 = fra.me.REG[5];
-      register_static_object(&once_value_18);
-    } else fra.me.REG[5] = once_value_18;
+      once_value_19 = fra.me.REG[5];
+      register_static_object(&once_value_19);
+    } else fra.me.REG[5] = once_value_19;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-    fra.me.REG[5] = CALL_native_interface___frontier___String___path_from_parent(fra.me.REG[2])(fra.me.REG[2]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-    if (!once_value_19) {
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
+    if (!once_value_20) {
       fra.me.REG[5] = BOX_NativeString("\"\n");
       REGB0 = TAG_Int(2);
       fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
-      once_value_19 = fra.me.REG[5];
-      register_static_object(&once_value_19);
-    } else fra.me.REG[5] = once_value_19;
+      once_value_20 = fra.me.REG[5];
+      register_static_object(&once_value_20);
+    } else fra.me.REG[5] = once_value_20;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-    /* ./native_interface//frontier.nit:49 */
+    /* native_interface/frontier.nit:50 */
     fra.me.REG[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Int(3);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_20) {
+    if (!once_value_21) {
       fra.me.REG[5] = BOX_NativeString("#include \"");
       REGB0 = TAG_Int(10);
       fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
-      once_value_20 = fra.me.REG[5];
-      register_static_object(&once_value_20);
-    } else fra.me.REG[5] = once_value_20;
+      once_value_21 = fra.me.REG[5];
+      register_static_object(&once_value_21);
+    } else fra.me.REG[5] = once_value_21;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    fra.me.REG[2] = CALL_native_interface___frontier___String___path_from_parent(fra.me.REG[2])(fra.me.REG[2]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-    if (!once_value_21) {
+    if (!once_value_22) {
       fra.me.REG[2] = BOX_NativeString("\"\n");
       REGB0 = TAG_Int(2);
       fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-      once_value_21 = fra.me.REG[2];
-      register_static_object(&once_value_21);
-    } else fra.me.REG[2] = once_value_21;
+      once_value_22 = fra.me.REG[2];
+      register_static_object(&once_value_22);
+    } else fra.me.REG[2] = once_value_22;
     fra.me.REG[2] = fra.me.REG[2];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   }
-  /* ./native_interface//frontier.nit:52 */
+  /* native_interface/frontier.nit:53 */
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_native_interface___frontier___MMSrcModule___compile_frontier_22));
-  /* ./native_interface//frontier.nit:71 */
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_native_interface___frontier___MMSrcModule___compile_frontier_23));
+  /* native_interface/frontier.nit:72 */
   fra.me.REG[1] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
-  if (!once_value_24) {
+  if (!once_value_25) {
     fra.me.REG[0] = BOX_NativeString("#endif\n");
     REGB0 = TAG_Int(7);
     fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
-    once_value_24 = fra.me.REG[0];
-    register_static_object(&once_value_24);
-  } else fra.me.REG[0] = once_value_24;
+    once_value_25 = fra.me.REG[0];
+    register_static_object(&once_value_25);
+  } else fra.me.REG[0] = once_value_25;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_native_interface___frontier___MMSrcModule___compile_frontier_22(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+  void OC_native_interface___frontier___MMSrcModule___compile_frontier_23(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
     struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
     val_t REGB0;
     val_t REGB1;
@@ -354,10 +364,10 @@ void native_interface___frontier___MMSrcModule___compile_frontier(val_t p0, val_
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./native_interface//frontier.nit:54 */
+    /* native_interface/frontier.nit:55 */
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___local_local_properties(fra.me.REG[0])(fra.me.REG[0]);
-    CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], closctx, ((fun_t)OC_native_interface___frontier___MMSrcModule___compile_frontier_23));
-    /* ./native_interface//frontier.nit:65 */
+    CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], closctx, ((fun_t)OC_native_interface___frontier___MMSrcModule___compile_frontier_24));
+    /* native_interface/frontier.nit:66 */
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
@@ -367,22 +377,22 @@ void native_interface___frontier___MMSrcModule___compile_frontier(val_t p0, val_
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./native_interface//frontier.nit:66 */
+      /* native_interface/frontier.nit:67 */
       fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
       REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
     } else {
-      /* ./native_interface//frontier.nit:65 */
+      /* native_interface/frontier.nit:66 */
       REGB1 = TAG_Bool(false);
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./native_interface//frontier.nit:67 */
+      /* native_interface/frontier.nit:68 */
       CALL_native_interface___frontier___MMLocalClass___compile_defaut_extern_type(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
     }
     stack_frame_head = fra.me.prev;
     return;
   }
-    void OC_native_interface___frontier___MMSrcModule___compile_frontier_23(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+    void OC_native_interface___frontier___MMSrcModule___compile_frontier_24(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
       struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
       val_t REGB0;
       val_t REGB1;
@@ -401,7 +411,7 @@ void native_interface___frontier___MMSrcModule___compile_frontier(val_t p0, val_
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./native_interface//frontier.nit:57 */
+      /* native_interface/frontier.nit:58 */
       fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
       REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],closctx->REG[0]));
       if (UNTAG_Bool(REGB0)) {
@@ -410,23 +420,23 @@ void native_interface___frontier___MMSrcModule___compile_frontier(val_t p0, val_
         REGB0 = REGB1;
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./native_interface//frontier.nit:58 */
+        /* native_interface/frontier.nit:59 */
         REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_syntax___syntax_base___MMSrcMethod, ID_syntax___syntax_base___MMSrcMethod)) /*cast MMSrcMethod*/;
       } else {
-        /* ./native_interface//frontier.nit:57 */
+        /* native_interface/frontier.nit:58 */
         REGB1 = TAG_Bool(false);
         REGB0 = REGB1;
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./native_interface//frontier.nit:58 */
+        /* native_interface/frontier.nit:59 */
         REGB0 = CALL_metamodel___abstractmetamodel___MMMethod___is_extern(fra.me.REG[0])(fra.me.REG[0]);
       } else {
-        /* ./native_interface//frontier.nit:57 */
+        /* native_interface/frontier.nit:58 */
         REGB1 = TAG_Bool(false);
         REGB0 = REGB1;
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./native_interface//frontier.nit:59 */
+        /* native_interface/frontier.nit:60 */
         CALL_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
       }
       stack_frame_head = fra.me.prev;
@@ -439,7 +449,7 @@ void native_interface___frontier___MMSrcMethod___compile_extern_to_frontier(val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 76;
+  fra.me.line = 77;
   fra.me.meth = LOCATE_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -449,7 +459,7 @@ void native_interface___frontier___MMSrcMethod___compile_extern_to_frontier(val_
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:79 */
+  /* native_interface/frontier.nit:80 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -465,27 +475,27 @@ void native_interface___frontier___MMSrcMethod___compile_extern_to_frontier(val_
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:80 */
+    /* native_interface/frontier.nit:81 */
     fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 80);
+      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 81);
     }
     CALL_native_interface___frontier___MMSignature___compile_frontier(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   }
-  /* ./native_interface//frontier.nit:83 */
+  /* native_interface/frontier.nit:84 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMMethod___explicit_imports(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier_1));
-  /* ./native_interface//frontier.nit:92 */
+  /* native_interface/frontier.nit:93 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMMethod___explicit_casts(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier_2));
-  /* ./native_interface//frontier.nit:100 */
+  /* native_interface/frontier.nit:101 */
   REGB0 = CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:101 */
+    /* native_interface/frontier.nit:102 */
     CALL_native_interface___frontier___MMSrcMethod___compile_super_to_frontier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   }
-  /* ./native_interface//frontier.nit:105 */
+  /* native_interface/frontier.nit:106 */
   CALL_native_interface___frontier___MMSrcMethod___compile_out_to_frontier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -507,10 +517,10 @@ void native_interface___frontier___MMSrcMethod___compile_extern_to_frontier(val_
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./native_interface//frontier.nit:85 */
+    /* native_interface/frontier.nit:86 */
     fra.me.REG[1] = CALL_native_interface___frontier___FrontierVisitor___friendlys(closctx->REG[1])(closctx->REG[1]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./native_interface//frontier.nit:88 */
+    /* native_interface/frontier.nit:89 */
     fra.me.REG[0] = CALL_metamodel___static_type___MMExplicitImport___signature(fra.me.REG[0])(fra.me.REG[0]);
     CALL_native_interface___frontier___MMSignature___compile_frontier(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
     stack_frame_head = fra.me.prev;
@@ -534,15 +544,15 @@ void native_interface___frontier___MMSrcMethod___compile_extern_to_frontier(val_
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./native_interface//frontier.nit:93 */
+    /* native_interface/frontier.nit:94 */
     fra.me.REG[1] = CALL_native_interface___frontier___FrontierVisitor___casts(closctx->REG[1])(closctx->REG[1]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./native_interface//frontier.nit:95 */
+    /* native_interface/frontier.nit:96 */
     fra.me.REG[1] = CALL_native_interface___frontier___FrontierVisitor___types(closctx->REG[1])(closctx->REG[1]);
     fra.me.REG[2] = CALL_metamodel___static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[2] = CALL_metamodel___type_formal___MMType___direct_type(fra.me.REG[2])(fra.me.REG[2]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-    /* ./native_interface//frontier.nit:96 */
+    /* native_interface/frontier.nit:97 */
     fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___types(closctx->REG[1])(closctx->REG[1]);
     fra.me.REG[0] = CALL_metamodel___static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[0] = CALL_metamodel___type_formal___MMType___direct_type(fra.me.REG[0])(fra.me.REG[0]);
@@ -595,7 +605,7 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
     static val_t once_value_38; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 108;
+  fra.me.line = 109;
   fra.me.meth = LOCATE_native_interface___frontier___MMSrcMethod___compile_super_to_frontier;
   fra.me.has_broke = 0;
   fra.me.REG_size = 11;
@@ -613,7 +623,7 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:115 */
+  /* native_interface/frontier.nit:116 */
   fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -639,7 +649,7 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:116 */
+  /* native_interface/frontier.nit:117 */
   fra.me.REG[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -666,7 +676,7 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./native_interface//frontier.nit:119 */
+  /* native_interface/frontier.nit:120 */
   fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -692,7 +702,7 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:120 */
+  /* native_interface/frontier.nit:121 */
   fra.me.REG[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -730,7 +740,7 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./native_interface//frontier.nit:121 */
+  /* native_interface/frontier.nit:122 */
   fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
   if (!once_value_10) {
     fra.me.REG[3] = BOX_NativeString("#endif\n");
@@ -741,7 +751,7 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
   } else fra.me.REG[3] = once_value_10;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:124 */
+  /* native_interface/frontier.nit:125 */
   fra.me.REG[3] = CALL_native_interface___frontier___FrontierVisitor___body(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -767,12 +777,12 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./native_interface//frontier.nit:125 */
+  /* native_interface/frontier.nit:126 */
   fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMMethod___friendly_super_csignature(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra.me.REG[2]);
-  /* ./native_interface//frontier.nit:128 */
+  /* native_interface/frontier.nit:129 */
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-  /* ./native_interface//frontier.nit:131 */
+  /* native_interface/frontier.nit:132 */
   if (!once_value_13) {
     fra.me.REG[4] = BOX_NativeString("recv___nit");
     REGB0 = TAG_Int(10);
@@ -781,7 +791,7 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
     register_static_object(&once_value_13);
   } else fra.me.REG[4] = once_value_13;
   fra.me.REG[4] = fra.me.REG[4];
-  /* ./native_interface//frontier.nit:132 */
+  /* native_interface/frontier.nit:133 */
   fra.me.REG[5] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Int(3);
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -806,7 +816,7 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
   fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-  /* ./native_interface//frontier.nit:133 */
+  /* native_interface/frontier.nit:134 */
   fra.me.REG[6] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Int(3);
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -822,7 +832,7 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
   fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 133);
+    nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 134);
   }
   fra.me.REG[7] = CALL_metamodel___static_type___MMSignature___recv(fra.me.REG[7])(fra.me.REG[7]);
   if (!once_value_17) {
@@ -846,29 +856,29 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
   fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
-  /* ./native_interface//frontier.nit:134 */
+  /* native_interface/frontier.nit:135 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./native_interface//frontier.nit:137 */
+  /* native_interface/frontier.nit:138 */
   fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 137);
+    nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 138);
   }
   fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[5])(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -880,18 +890,18 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
-      /* ./native_interface//frontier.nit:138 */
+      /* native_interface/frontier.nit:139 */
       REGB1 = TAG_Int(3);
       fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_19) {
@@ -917,7 +927,7 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]);
       fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
       fra.me.REG[4] = fra.me.REG[7];
-      /* ./native_interface//frontier.nit:139 */
+      /* native_interface/frontier.nit:140 */
       fra.me.REG[7] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra.me.REG[2])(fra.me.REG[2]);
       REGB1 = TAG_Int(3);
       fra.me.REG[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
@@ -942,7 +952,7 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
       fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
       CALL_compiling___compiling_writer___Writer___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]);
-      /* ./native_interface//frontier.nit:140 */
+      /* native_interface/frontier.nit:141 */
       fra.me.REG[9] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[2])(fra.me.REG[2]);
       REGB1 = TAG_Int(3);
       fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
@@ -971,27 +981,27 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
       fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
       CALL_compiling___compiling_writer___Writer___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[7]);
-      /* ./native_interface//frontier.nit:141 */
+      /* native_interface/frontier.nit:142 */
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label25;
     }
   }
   label25: while(0);
-  /* ./native_interface//frontier.nit:145 */
+  /* native_interface/frontier.nit:146 */
   fra.me.REG[4] = NIT_NULL;
-  /* ./native_interface//frontier.nit:147 */
+  /* native_interface/frontier.nit:148 */
   fra.me.REG[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 147);
+    nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 148);
   }
   fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[6])(fra.me.REG[6]);
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
@@ -1008,18 +1018,18 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:148 */
+    /* native_interface/frontier.nit:149 */
     fra.me.REG[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 148);
+      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 149);
     }
     fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[6])(fra.me.REG[6]);
     fra.me.REG[4] = fra.me.REG[6];
   }
-  /* ./native_interface//frontier.nit:151 */
+  /* native_interface/frontier.nit:152 */
   fra.me.REG[6] = NEW_Buffer_standard___string___Buffer___init();
-  /* ./native_interface//frontier.nit:152 */
+  /* native_interface/frontier.nit:153 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1034,7 +1044,7 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:153 */
+    /* native_interface/frontier.nit:154 */
     if (!once_value_26) {
       fra.me.REG[5] = BOX_NativeString("return___nitni");
       REGB0 = TAG_Int(14);
@@ -1046,10 +1056,10 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
     REGB0 = TAG_Bool(true);
     REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
-      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 153);
+      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 154);
     }
     CALL_native_interface___frontier___MMType___compile_new_local_ref(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5], fra.me.REG[2], REGB0);
-    /* ./native_interface//frontier.nit:154 */
+    /* native_interface/frontier.nit:155 */
     fra.me.REG[5] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra.me.REG[2])(fra.me.REG[2]);
     if (!once_value_27) {
       fra.me.REG[7] = BOX_NativeString("val_t return___nit;\n");
@@ -1060,7 +1070,7 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
     } else fra.me.REG[7] = once_value_27;
     fra.me.REG[7] = fra.me.REG[7];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
-    /* ./native_interface//frontier.nit:155 */
+    /* native_interface/frontier.nit:156 */
     if (!once_value_28) {
       fra.me.REG[7] = BOX_NativeString("return___nit = ");
       REGB0 = TAG_Int(15);
@@ -1071,7 +1081,7 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
     fra.me.REG[7] = fra.me.REG[7];
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
   }
-  /* ./native_interface//frontier.nit:158 */
+  /* native_interface/frontier.nit:159 */
   REGB0 = TAG_Int(3);
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_29) {
@@ -1096,7 +1106,7 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[0]);
   fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-  /* ./native_interface//frontier.nit:160 */
+  /* native_interface/frontier.nit:161 */
   REGB0 = TAG_Int(3);
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_31) {
@@ -1129,11 +1139,11 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[0]);
   fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-  /* ./native_interface//frontier.nit:162 */
+  /* native_interface/frontier.nit:163 */
   fra.me.REG[7] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
-  /* ./native_interface//frontier.nit:165 */
+  /* native_interface/frontier.nit:166 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1148,7 +1158,7 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:167 */
+    /* native_interface/frontier.nit:168 */
     fra.me.REG[6] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Int(3);
     fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -1179,7 +1189,7 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
     fra.me.REG[3] = fra.me.REG[3];
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 167);
+      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 168);
     }
     fra.me.REG[3] = CALL_native_interface___ni_metamodel___MMType___assign_to_friendly(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0], fra.me.REG[3]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
@@ -1194,7 +1204,7 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
     fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-    /* ./native_interface//frontier.nit:168 */
+    /* native_interface/frontier.nit:169 */
     fra.me.REG[7] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[2])(fra.me.REG[2]);
     if (!once_value_38) {
       fra.me.REG[6] = BOX_NativeString("return return___nitni;\n");
@@ -1206,7 +1216,7 @@ void native_interface___frontier___MMSrcMethod___compile_super_to_frontier(val_t
     fra.me.REG[6] = fra.me.REG[6];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
   }
-  /* ./native_interface//frontier.nit:171 */
+  /* native_interface/frontier.nit:172 */
   fra.me.REG[1] = CALL_native_interface___frontier___FrontierVisitor___body(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_writer___Writer___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
@@ -1248,7 +1258,7 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
     static val_t once_value_28; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 174;
+  fra.me.line = 175;
   fra.me.meth = LOCATE_native_interface___frontier___MMSrcMethod___compile_out_to_frontier;
   fra.me.has_broke = 0;
   fra.me.REG_size = 12;
@@ -1267,9 +1277,9 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
   fra.me.REG[11] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:174 */
+  /* native_interface/frontier.nit:175 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./native_interface//frontier.nit:180 */
+  /* native_interface/frontier.nit:181 */
   fra.me.REG[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -1295,7 +1305,7 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./native_interface//frontier.nit:181 */
+  /* native_interface/frontier.nit:182 */
   fra.me.REG[4] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -1321,7 +1331,7 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:184 */
+  /* native_interface/frontier.nit:185 */
   fra.me.REG[3] = CALL_native_interface___frontier___FrontierVisitor___body(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -1347,16 +1357,16 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./native_interface//frontier.nit:185 */
+  /* native_interface/frontier.nit:186 */
   fra.me.REG[4] = CALL_native_interface___ni_metamodel___MMMethod___out_csignature(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[4] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra.me.REG[4]);
-  /* ./native_interface//frontier.nit:188 */
+  /* native_interface/frontier.nit:189 */
   fra.me.REG[3] = NEW_List_standard___collection___list___List___init();
-  /* ./native_interface//frontier.nit:190 */
+  /* native_interface/frontier.nit:191 */
   REGB0 = CALL_syntax___syntax_base___MMLocalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:191 */
+    /* native_interface/frontier.nit:192 */
     if (!once_value_7) {
       fra.me.REG[5] = BOX_NativeString("recv___nitni");
       REGB0 = TAG_Int(12);
@@ -1365,16 +1375,16 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
       register_static_object(&once_value_7);
     } else fra.me.REG[5] = once_value_7;
     fra.me.REG[5] = fra.me.REG[5];
-    /* ./native_interface//frontier.nit:192 */
+    /* native_interface/frontier.nit:193 */
     fra.me.REG[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 192);
+      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 193);
     }
     fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___recv(fra.me.REG[6])(fra.me.REG[6]);
     REGB0 = TAG_Bool(true);
     CALL_native_interface___frontier___MMType___compile_new_local_ref(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], REGB0);
-    /* ./native_interface//frontier.nit:193 */
+    /* native_interface/frontier.nit:194 */
     fra.me.REG[6] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[4])(fra.me.REG[4]);
     REGB0 = TAG_Int(3);
     fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -1390,7 +1400,7 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
     fra.me.REG[8] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 193);
+      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 194);
     }
     fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___recv(fra.me.REG[8])(fra.me.REG[8]);
     if (!once_value_9) {
@@ -1414,30 +1424,30 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]);
     fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-    /* ./native_interface//frontier.nit:194 */
+    /* native_interface/frontier.nit:195 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
   }
-  /* ./native_interface//frontier.nit:197 */
+  /* native_interface/frontier.nit:198 */
   fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 197);
+    nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 198);
   }
   fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[5])(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1449,18 +1459,18 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB0)];
-      /* ./native_interface//frontier.nit:198 */
+      /* native_interface/frontier.nit:199 */
       REGB1 = TAG_Int(3);
       fra.me.REG[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_11) {
@@ -1485,11 +1495,11 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
       fra.me.REG[8] = fra.me.REG[8];
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[8]);
       fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
-      /* ./native_interface//frontier.nit:199 */
+      /* native_interface/frontier.nit:200 */
       fra.me.REG[8] = CALL_metamodel___static_type___MMParam___mmtype(fra.me.REG[6])(fra.me.REG[6]);
       REGB1 = TAG_Bool(true);
       CALL_native_interface___frontier___MMType___compile_new_local_ref(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9], fra.me.REG[4], REGB1);
-      /* ./native_interface//frontier.nit:200 */
+      /* native_interface/frontier.nit:201 */
       fra.me.REG[8] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[4])(fra.me.REG[4]);
       REGB1 = TAG_Int(3);
       fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
@@ -1518,27 +1528,27 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[6]);
       fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
       CALL_compiling___compiling_writer___Writer___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-      /* ./native_interface//frontier.nit:201 */
+      /* native_interface/frontier.nit:202 */
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label15;
     }
   }
   label15: while(0);
-  /* ./native_interface//frontier.nit:205 */
+  /* native_interface/frontier.nit:206 */
   fra.me.REG[7] = NIT_NULL;
-  /* ./native_interface//frontier.nit:207 */
+  /* native_interface/frontier.nit:208 */
   fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 207);
+    nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 208);
   }
   fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[5])(fra.me.REG[5]);
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
@@ -1555,27 +1565,27 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:208 */
+    /* native_interface/frontier.nit:209 */
     fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 208);
+      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 209);
     }
     fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[5])(fra.me.REG[5]);
     fra.me.REG[7] = fra.me.REG[5];
   } else {
-    /* ./native_interface//frontier.nit:209 */
+    /* native_interface/frontier.nit:210 */
     REGB0 = CALL_syntax___syntax_base___MMLocalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./native_interface//frontier.nit:210 */
+      /* native_interface/frontier.nit:211 */
       fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
       fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
       fra.me.REG[7] = fra.me.REG[5];
     }
   }
-  /* ./native_interface//frontier.nit:213 */
+  /* native_interface/frontier.nit:214 */
   fra.me.REG[5] = NEW_Buffer_standard___string___Buffer___init();
-  /* ./native_interface//frontier.nit:214 */
+  /* native_interface/frontier.nit:215 */
   REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1590,7 +1600,7 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:216 */
+    /* native_interface/frontier.nit:217 */
     if (!once_value_16) {
       fra.me.REG[9] = BOX_NativeString("return___nitni");
       REGB0 = TAG_Int(14);
@@ -1602,10 +1612,10 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
     REGB0 = TAG_Bool(false);
     REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
-      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 216);
+      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 217);
     }
     CALL_native_interface___frontier___MMType___compile_new_local_ref(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9], fra.me.REG[4], REGB0);
-    /* ./native_interface//frontier.nit:217 */
+    /* native_interface/frontier.nit:218 */
     fra.me.REG[9] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra.me.REG[4])(fra.me.REG[4]);
     if (!once_value_17) {
       fra.me.REG[10] = BOX_NativeString("val_t return___nit;\n");
@@ -1616,7 +1626,7 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
     } else fra.me.REG[10] = once_value_17;
     fra.me.REG[10] = fra.me.REG[10];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
-    /* ./native_interface//frontier.nit:218 */
+    /* native_interface/frontier.nit:219 */
     if (!once_value_18) {
       fra.me.REG[10] = BOX_NativeString("return___nitni = ");
       REGB0 = TAG_Int(17);
@@ -1627,7 +1637,7 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
     fra.me.REG[10] = fra.me.REG[10];
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[10]);
   }
-  /* ./native_interface//frontier.nit:221 */
+  /* native_interface/frontier.nit:222 */
   REGB0 = TAG_Int(5);
   fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_19) {
@@ -1643,7 +1653,7 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
   REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_standard___string___String, ID_standard___string___String)) /*cast String*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_native_interface___frontier, 221);
+    nit_abort("Cast failed", NULL, LOCATE_native_interface___frontier, 222);
   }
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[2]);
   if (!once_value_20) {
@@ -1676,11 +1686,11 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[2]);
   fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[10]);
-  /* ./native_interface//frontier.nit:223 */
+  /* native_interface/frontier.nit:224 */
   fra.me.REG[10] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[5]);
-  /* ./native_interface//frontier.nit:225 */
+  /* native_interface/frontier.nit:226 */
   REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1695,7 +1705,7 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:226 */
+    /* native_interface/frontier.nit:227 */
     fra.me.REG[5] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[4])(fra.me.REG[4]);
     REGB0 = TAG_Int(3);
     fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -1726,7 +1736,7 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
     fra.me.REG[3] = fra.me.REG[3];
     REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 226);
+      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 227);
     }
     fra.me.REG[3] = CALL_native_interface___ni_metamodel___MMType___assign_from_friendly(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2], fra.me.REG[3]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[3]);
@@ -1742,7 +1752,7 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
     fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[10]);
   }
-  /* ./native_interface//frontier.nit:229 */
+  /* native_interface/frontier.nit:230 */
   fra.me.REG[10] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[4])(fra.me.REG[4]);
   if (!once_value_27) {
     fra.me.REG[5] = BOX_NativeString("nitni_local_ref_clean(  );\n");
@@ -1753,7 +1763,7 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
   } else fra.me.REG[5] = once_value_27;
   fra.me.REG[5] = fra.me.REG[5];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[5]);
-  /* ./native_interface//frontier.nit:232 */
+  /* native_interface/frontier.nit:233 */
   REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1768,7 +1778,7 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:233 */
+    /* native_interface/frontier.nit:234 */
     fra.me.REG[7] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[4])(fra.me.REG[4]);
     if (!once_value_28) {
       fra.me.REG[5] = BOX_NativeString("return return___nit;\n");
@@ -1780,7 +1790,7 @@ void native_interface___frontier___MMSrcMethod___compile_out_to_frontier(val_t p
     fra.me.REG[5] = fra.me.REG[5];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
   }
-  /* ./native_interface//frontier.nit:236 */
+  /* native_interface/frontier.nit:237 */
   fra.me.REG[1] = CALL_native_interface___frontier___FrontierVisitor___body(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[4] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra.me.REG[4])(fra.me.REG[4]);
   CALL_compiling___compiling_writer___Writer___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
@@ -1798,7 +1808,7 @@ void native_interface___frontier___MMLocalClass___compile_defaut_extern_type(val
   static val_t once_value_5; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 242;
+  fra.me.line = 243;
   fra.me.meth = LOCATE_native_interface___frontier___MMLocalClass___compile_defaut_extern_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -1810,7 +1820,7 @@ void native_interface___frontier___MMLocalClass___compile_defaut_extern_type(val
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:246 */
+  /* native_interface/frontier.nit:247 */
   fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -1837,7 +1847,7 @@ void native_interface___frontier___MMLocalClass___compile_defaut_extern_type(val
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:247 */
+  /* native_interface/frontier.nit:248 */
   fra.me.REG[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -1864,7 +1874,7 @@ void native_interface___frontier___MMLocalClass___compile_defaut_extern_type(val
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./native_interface//frontier.nit:248 */
+  /* native_interface/frontier.nit:249 */
   fra.me.REG[1] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
   if (!once_value_5) {
     fra.me.REG[2] = BOX_NativeString("#endif\n\n");
@@ -1886,7 +1896,7 @@ void native_interface___frontier___MMSignature___compile_frontier(val_t p0, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 253;
+  fra.me.line = 254;
   fra.me.meth = LOCATE_native_interface___frontier___MMSignature___compile_frontier;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -1899,27 +1909,27 @@ void native_interface___frontier___MMSignature___compile_frontier(val_t p0, val_
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:256 */
+  /* native_interface/frontier.nit:257 */
   fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___types(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___recv(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___type_formal___MMType___direct_type(fra.me.REG[3])(fra.me.REG[3]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:259 */
+  /* native_interface/frontier.nit:260 */
   fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1931,37 +1941,37 @@ void native_interface___frontier___MMSignature___compile_frontier(val_t p0, val_
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./native_interface//frontier.nit:259 */
+      /* native_interface/frontier.nit:260 */
       fra.me.REG[5] = CALL_native_interface___frontier___FrontierVisitor___types(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[4] = CALL_metamodel___static_type___MMParam___mmtype(fra.me.REG[4])(fra.me.REG[4]);
       fra.me.REG[4] = CALL_metamodel___type_formal___MMType___direct_type(fra.me.REG[4])(fra.me.REG[4]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./native_interface//frontier.nit:262 */
+  /* native_interface/frontier.nit:263 */
   fra.me.REG[0] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./native_interface//frontier.nit:263 */
+  /* native_interface/frontier.nit:264 */
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1976,11 +1986,11 @@ void native_interface___frontier___MMSignature___compile_frontier(val_t p0, val_
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:264 */
+    /* native_interface/frontier.nit:265 */
     fra.me.REG[1] = CALL_native_interface___frontier___FrontierVisitor___types(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 264);
+      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 265);
     }
     fra.me.REG[0] = CALL_metamodel___type_formal___MMType___direct_type(fra.me.REG[0])(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -1994,18 +2004,18 @@ val_t native_interface___frontier___FrontierVisitor___header_top(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 272;
+  fra.me.line = 273;
   fra.me.meth = LOCATE_native_interface___frontier___FrontierVisitor___header_top;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//frontier.nit:272 */
+  /* native_interface/frontier.nit:273 */
   REGB0 = TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atheader_top(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "@header_top", LOCATE_native_interface___frontier, 272);
+    nit_abort("Uninitialized attribute %s", "@header_top", LOCATE_native_interface___frontier, 273);
   }
   fra.me.REG[0] = ATTR_native_interface___frontier___FrontierVisitor_____atheader_top(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2016,7 +2026,7 @@ void native_interface___frontier___FrontierVisitor___header_top__eq(val_t p0, va
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 272;
+  fra.me.line = 273;
   fra.me.meth = LOCATE_native_interface___frontier___FrontierVisitor___header_top__eq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2025,7 +2035,7 @@ void native_interface___frontier___FrontierVisitor___header_top__eq(val_t p0, va
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:272 */
+  /* native_interface/frontier.nit:273 */
   ATTR_native_interface___frontier___FrontierVisitor_____atheader_top(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2036,18 +2046,18 @@ val_t native_interface___frontier___FrontierVisitor___header(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 275;
+  fra.me.line = 276;
   fra.me.meth = LOCATE_native_interface___frontier___FrontierVisitor___header;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//frontier.nit:275 */
+  /* native_interface/frontier.nit:276 */
   REGB0 = TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atheader(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "@header", LOCATE_native_interface___frontier, 275);
+    nit_abort("Uninitialized attribute %s", "@header", LOCATE_native_interface___frontier, 276);
   }
   fra.me.REG[0] = ATTR_native_interface___frontier___FrontierVisitor_____atheader(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2058,7 +2068,7 @@ void native_interface___frontier___FrontierVisitor___header__eq(val_t p0, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 275;
+  fra.me.line = 276;
   fra.me.meth = LOCATE_native_interface___frontier___FrontierVisitor___header__eq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2067,7 +2077,7 @@ void native_interface___frontier___FrontierVisitor___header__eq(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:275 */
+  /* native_interface/frontier.nit:276 */
   ATTR_native_interface___frontier___FrontierVisitor_____atheader(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2078,18 +2088,18 @@ val_t native_interface___frontier___FrontierVisitor___body(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 278;
+  fra.me.line = 279;
   fra.me.meth = LOCATE_native_interface___frontier___FrontierVisitor___body;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//frontier.nit:278 */
+  /* native_interface/frontier.nit:279 */
   REGB0 = TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atbody(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "@body", LOCATE_native_interface___frontier, 278);
+    nit_abort("Uninitialized attribute %s", "@body", LOCATE_native_interface___frontier, 279);
   }
   fra.me.REG[0] = ATTR_native_interface___frontier___FrontierVisitor_____atbody(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2100,7 +2110,7 @@ void native_interface___frontier___FrontierVisitor___body__eq(val_t p0, val_t p1
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 278;
+  fra.me.line = 279;
   fra.me.meth = LOCATE_native_interface___frontier___FrontierVisitor___body__eq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2109,7 +2119,7 @@ void native_interface___frontier___FrontierVisitor___body__eq(val_t p0, val_t p1
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:278 */
+  /* native_interface/frontier.nit:279 */
   ATTR_native_interface___frontier___FrontierVisitor_____atbody(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2120,18 +2130,18 @@ val_t native_interface___frontier___FrontierVisitor___friendlys(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 281;
+  fra.me.line = 282;
   fra.me.meth = LOCATE_native_interface___frontier___FrontierVisitor___friendlys;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//frontier.nit:281 */
+  /* native_interface/frontier.nit:282 */
   REGB0 = TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atfriendlys(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "@friendlys", LOCATE_native_interface___frontier, 281);
+    nit_abort("Uninitialized attribute %s", "@friendlys", LOCATE_native_interface___frontier, 282);
   }
   fra.me.REG[0] = ATTR_native_interface___frontier___FrontierVisitor_____atfriendlys(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2142,7 +2152,7 @@ void native_interface___frontier___FrontierVisitor___friendlys__eq(val_t p0, val
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 281;
+  fra.me.line = 282;
   fra.me.meth = LOCATE_native_interface___frontier___FrontierVisitor___friendlys__eq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2151,7 +2161,7 @@ void native_interface___frontier___FrontierVisitor___friendlys__eq(val_t p0, val
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:281 */
+  /* native_interface/frontier.nit:282 */
   ATTR_native_interface___frontier___FrontierVisitor_____atfriendlys(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2162,18 +2172,18 @@ val_t native_interface___frontier___FrontierVisitor___types(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 284;
+  fra.me.line = 285;
   fra.me.meth = LOCATE_native_interface___frontier___FrontierVisitor___types;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//frontier.nit:284 */
+  /* native_interface/frontier.nit:285 */
   REGB0 = TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____attypes(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "@types", LOCATE_native_interface___frontier, 284);
+    nit_abort("Uninitialized attribute %s", "@types", LOCATE_native_interface___frontier, 285);
   }
   fra.me.REG[0] = ATTR_native_interface___frontier___FrontierVisitor_____attypes(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2184,7 +2194,7 @@ void native_interface___frontier___FrontierVisitor___types__eq(val_t p0, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 284;
+  fra.me.line = 285;
   fra.me.meth = LOCATE_native_interface___frontier___FrontierVisitor___types__eq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2193,7 +2203,7 @@ void native_interface___frontier___FrontierVisitor___types__eq(val_t p0, val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:284 */
+  /* native_interface/frontier.nit:285 */
   ATTR_native_interface___frontier___FrontierVisitor_____attypes(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2204,18 +2214,18 @@ val_t native_interface___frontier___FrontierVisitor___casts(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 287;
+  fra.me.line = 288;
   fra.me.meth = LOCATE_native_interface___frontier___FrontierVisitor___casts;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//frontier.nit:287 */
+  /* native_interface/frontier.nit:288 */
   REGB0 = TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atcasts(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "@casts", LOCATE_native_interface___frontier, 287);
+    nit_abort("Uninitialized attribute %s", "@casts", LOCATE_native_interface___frontier, 288);
   }
   fra.me.REG[0] = ATTR_native_interface___frontier___FrontierVisitor_____atcasts(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2226,7 +2236,7 @@ void native_interface___frontier___FrontierVisitor___casts__eq(val_t p0, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 287;
+  fra.me.line = 288;
   fra.me.meth = LOCATE_native_interface___frontier___FrontierVisitor___casts__eq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2235,7 +2245,7 @@ void native_interface___frontier___FrontierVisitor___casts__eq(val_t p0, val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:287 */
+  /* native_interface/frontier.nit:288 */
   ATTR_native_interface___frontier___FrontierVisitor_____atcasts(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2246,18 +2256,18 @@ val_t native_interface___frontier___FrontierVisitor___mmmodule(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 290;
+  fra.me.line = 291;
   fra.me.meth = LOCATE_native_interface___frontier___FrontierVisitor___mmmodule;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//frontier.nit:290 */
+  /* native_interface/frontier.nit:291 */
   REGB0 = TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atmmmodule(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "@mmmodule", LOCATE_native_interface___frontier, 290);
+    nit_abort("Uninitialized attribute %s", "@mmmodule", LOCATE_native_interface___frontier, 291);
   }
   fra.me.REG[0] = ATTR_native_interface___frontier___FrontierVisitor_____atmmmodule(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2268,7 +2278,7 @@ void native_interface___frontier___FrontierVisitor___mmmodule__eq(val_t p0, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 290;
+  fra.me.line = 291;
   fra.me.meth = LOCATE_native_interface___frontier___FrontierVisitor___mmmodule__eq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2277,7 +2287,7 @@ void native_interface___frontier___FrontierVisitor___mmmodule__eq(val_t p0, val_
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:290 */
+  /* native_interface/frontier.nit:291 */
   ATTR_native_interface___frontier___FrontierVisitor_____atmmmodule(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2288,18 +2298,18 @@ val_t native_interface___frontier___FrontierVisitor___cprogram(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 292;
+  fra.me.line = 293;
   fra.me.meth = LOCATE_native_interface___frontier___FrontierVisitor___cprogram;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//frontier.nit:292 */
+  /* native_interface/frontier.nit:293 */
   REGB0 = TAG_Bool(ATTR_native_interface___frontier___FrontierVisitor_____atcprogram(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "@cprogram", LOCATE_native_interface___frontier, 292);
+    nit_abort("Uninitialized attribute %s", "@cprogram", LOCATE_native_interface___frontier, 293);
   }
   fra.me.REG[0] = ATTR_native_interface___frontier___FrontierVisitor_____atcprogram(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2310,7 +2320,7 @@ void native_interface___frontier___FrontierVisitor___cprogram__eq(val_t p0, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 292;
+  fra.me.line = 293;
   fra.me.meth = LOCATE_native_interface___frontier___FrontierVisitor___cprogram__eq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2319,7 +2329,7 @@ void native_interface___frontier___FrontierVisitor___cprogram__eq(val_t p0, val_
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:292 */
+  /* native_interface/frontier.nit:293 */
   ATTR_native_interface___frontier___FrontierVisitor_____atcprogram(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2329,7 +2339,7 @@ void native_interface___frontier___FrontierVisitor___compile_cached(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 294;
+  fra.me.line = 295;
   fra.me.meth = LOCATE_native_interface___frontier___FrontierVisitor___compile_cached;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2337,13 +2347,13 @@ void native_interface___frontier___FrontierVisitor___compile_cached(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//frontier.nit:297 */
+  /* native_interface/frontier.nit:298 */
   fra.me.REG[1] = CALL_native_interface___frontier___FrontierVisitor___types(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_native_interface___frontier___FrontierVisitor___compile_cached_1));
-  /* ./native_interface//frontier.nit:300 */
+  /* native_interface/frontier.nit:301 */
   fra.me.REG[1] = CALL_native_interface___frontier___FrontierVisitor___friendlys(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_native_interface___frontier___FrontierVisitor___compile_cached_2));
-  /* ./native_interface//frontier.nit:303 */
+  /* native_interface/frontier.nit:304 */
   fra.me.REG[1] = CALL_native_interface___frontier___FrontierVisitor___casts(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_native_interface___frontier___FrontierVisitor___compile_cached_3));
   stack_frame_head = fra.me.prev;
@@ -2419,7 +2429,7 @@ void native_interface___frontier___FrontierVisitor___write_to_files(val_t p0, va
   static val_t once_value_4; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 306;
+  fra.me.line = 307;
   fra.me.meth = LOCATE_native_interface___frontier___FrontierVisitor___write_to_files;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -2432,7 +2442,7 @@ void native_interface___frontier___FrontierVisitor___write_to_files(val_t p0, va
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:308 */
+  /* native_interface/frontier.nit:309 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2455,17 +2465,17 @@ void native_interface___frontier___FrontierVisitor___write_to_files(val_t p0, va
   fra.me.REG[3] = fra.me.REG[3];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./native_interface//frontier.nit:309 */
+  /* native_interface/frontier.nit:310 */
   fra.me.REG[3] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[2]);
-  /* ./native_interface//frontier.nit:310 */
+  /* native_interface/frontier.nit:311 */
   fra.me.REG[4] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_writer___Writer___write_to_stream(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:311 */
+  /* native_interface/frontier.nit:312 */
   fra.me.REG[4] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_writer___Writer___write_to_stream(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:312 */
+  /* native_interface/frontier.nit:313 */
   CALL_standard___stream___IOS___close(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:314 */
+  /* native_interface/frontier.nit:315 */
   REGB0 = TAG_Int(3);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_3) {
@@ -2489,13 +2499,13 @@ void native_interface___frontier___FrontierVisitor___write_to_files(val_t p0, va
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./native_interface//frontier.nit:315 */
+  /* native_interface/frontier.nit:316 */
   fra.me.REG[2] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[2]);
   fra.me.REG[3] = fra.me.REG[2];
-  /* ./native_interface//frontier.nit:316 */
+  /* native_interface/frontier.nit:317 */
   fra.me.REG[0] = CALL_native_interface___frontier___FrontierVisitor___body(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_writer___Writer___write_to_stream(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:317 */
+  /* native_interface/frontier.nit:318 */
   CALL_standard___stream___IOS___close(fra.me.REG[3])(fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
   return;
@@ -2524,73 +2534,6 @@ void native_interface___frontier___FrontierVisitor___init(val_t p0, val_t p1, va
   init_table[itpos0] = 1;
   return;
 }
-val_t native_interface___frontier___String___path_from_parent(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t tmp;
-    static val_t once_value_2; /* Once value */
-    static val_t once_value_3; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 322;
-  fra.me.meth = LOCATE_native_interface___frontier___String___path_from_parent;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./native_interface//frontier.nit:326 */
-  REGB0 = TAG_Int(0);
-  REGB0 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
-  REGB1 = TAG_Char('/');
-  REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
-  if (UNTAG_Bool(REGB2)) {
-  } else {
-    /* ./../lib/standard//kernel.nit:378 */
-    REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./native_interface//frontier.nit:326 */
-    REGB2 = REGB1;
-  }
-  if (UNTAG_Bool(REGB2)) {
-    /* ./native_interface//frontier.nit:328 */
-    fra.me.REG[1] = fra.me.REG[0];
-    goto label1;
-  } else {
-    /* ./native_interface//frontier.nit:330 */
-    REGB2 = TAG_Int(3);
-    fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-    if (!once_value_2) {
-      fra.me.REG[3] = BOX_NativeString("../");
-      REGB2 = TAG_Int(3);
-      fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
-      once_value_2 = fra.me.REG[3];
-      register_static_object(&once_value_2);
-    } else fra.me.REG[3] = once_value_2;
-    fra.me.REG[3] = fra.me.REG[3];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-    if (!once_value_3) {
-      fra.me.REG[0] = BOX_NativeString("");
-      REGB2 = TAG_Int(0);
-      fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB2);
-      once_value_3 = fra.me.REG[0];
-      register_static_object(&once_value_3);
-    } else fra.me.REG[0] = once_value_3;
-    fra.me.REG[0] = fra.me.REG[0];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-    fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-    fra.me.REG[1] = fra.me.REG[2];
-    goto label1;
-  }
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
 void native_interface___frontier___MMImportedCast___compile_to_frontier(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -2620,7 +2563,7 @@ void native_interface___frontier___MMImportedCast___compile_to_frontier(val_t p0
   static val_t once_value_22; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 337;
+  fra.me.line = 323;
   fra.me.meth = LOCATE_native_interface___frontier___MMImportedCast___compile_to_frontier;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -2632,7 +2575,7 @@ void native_interface___frontier___MMImportedCast___compile_to_frontier(val_t p0
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:341 */
+  /* native_interface/frontier.nit:327 */
   REGB0 = CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
     REGB0 = CALL_metamodel___static_type___MMImportedCast___is_not_null_to_nullable(fra.me.REG[0])(fra.me.REG[0]);
@@ -2642,7 +2585,7 @@ void native_interface___frontier___MMImportedCast___compile_to_frontier(val_t p0
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:342 */
+    /* native_interface/frontier.nit:328 */
     fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Int(5);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -2681,7 +2624,7 @@ void native_interface___frontier___MMImportedCast___compile_to_frontier(val_t p0
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-    /* ./native_interface//frontier.nit:343 */
+    /* native_interface/frontier.nit:329 */
     fra.me.REG[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Int(3);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -2708,7 +2651,7 @@ void native_interface___frontier___MMImportedCast___compile_to_frontier(val_t p0
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
     fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-    /* ./native_interface//frontier.nit:345 */
+    /* native_interface/frontier.nit:331 */
     fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -2734,7 +2677,7 @@ void native_interface___frontier___MMImportedCast___compile_to_frontier(val_t p0
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-    /* ./native_interface//frontier.nit:346 */
+    /* native_interface/frontier.nit:332 */
     fra.me.REG[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Int(5);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -2772,7 +2715,7 @@ void native_interface___frontier___MMImportedCast___compile_to_frontier(val_t p0
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
     fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-    /* ./native_interface//frontier.nit:347 */
+    /* native_interface/frontier.nit:333 */
     fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
     if (!once_value_11) {
       fra.me.REG[3] = BOX_NativeString("#endif\n");
@@ -2783,15 +2726,15 @@ void native_interface___frontier___MMImportedCast___compile_to_frontier(val_t p0
     } else fra.me.REG[3] = once_value_11;
     fra.me.REG[3] = fra.me.REG[3];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-    /* ./native_interface//frontier.nit:349 */
+    /* native_interface/frontier.nit:335 */
     fra.me.REG[3] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[3] = CALL_native_interface___frontier___MMImportedCast___compile_is(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-    /* ./native_interface//frontier.nit:350 */
+    /* native_interface/frontier.nit:336 */
     fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___body(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[3] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra.me.REG[3])(fra.me.REG[3]);
     CALL_compiling___compiling_writer___Writer___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   }
-  /* ./native_interface//frontier.nit:354 */
+  /* native_interface/frontier.nit:340 */
   fra.me.REG[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -2830,7 +2773,7 @@ void native_interface___frontier___MMImportedCast___compile_to_frontier(val_t p0
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./native_interface//frontier.nit:355 */
+  /* native_interface/frontier.nit:341 */
   fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -2857,7 +2800,7 @@ void native_interface___frontier___MMImportedCast___compile_to_frontier(val_t p0
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:357 */
+  /* native_interface/frontier.nit:343 */
   fra.me.REG[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -2883,7 +2826,7 @@ void native_interface___frontier___MMImportedCast___compile_to_frontier(val_t p0
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./native_interface//frontier.nit:358 */
+  /* native_interface/frontier.nit:344 */
   fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -2921,7 +2864,7 @@ void native_interface___frontier___MMImportedCast___compile_to_frontier(val_t p0
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:359 */
+  /* native_interface/frontier.nit:345 */
   fra.me.REG[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
   if (!once_value_22) {
     fra.me.REG[2] = BOX_NativeString("#endif\n");
@@ -2932,10 +2875,10 @@ void native_interface___frontier___MMImportedCast___compile_to_frontier(val_t p0
   } else fra.me.REG[2] = once_value_22;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./native_interface//frontier.nit:361 */
+  /* native_interface/frontier.nit:347 */
   fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_native_interface___frontier___MMImportedCast___compile_as(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./native_interface//frontier.nit:362 */
+  /* native_interface/frontier.nit:348 */
   fra.me.REG[1] = CALL_native_interface___frontier___FrontierVisitor___body(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_writer___Writer___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
@@ -2958,7 +2901,7 @@ val_t native_interface___frontier___MMImportedCast___compile_as(val_t p0, val_t
   static val_t once_value_10; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 365;
+  fra.me.line = 351;
   fra.me.meth = LOCATE_native_interface___frontier___MMImportedCast___compile_as;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -2973,10 +2916,10 @@ val_t native_interface___frontier___MMImportedCast___compile_as(val_t p0, val_t
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:369 */
+  /* native_interface/frontier.nit:355 */
   fra.me.REG[1] = CALL_native_interface___ni_metamodel___MMImportedCast___as_local_csignature(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   fra.me.REG[1] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra.me.REG[1]);
-  /* ./native_interface//frontier.nit:371 */
+  /* native_interface/frontier.nit:357 */
   if (!once_value_1) {
     fra.me.REG[2] = BOX_NativeString("out");
     REGB0 = TAG_Int(3);
@@ -2985,7 +2928,7 @@ val_t native_interface___frontier___MMImportedCast___compile_as(val_t p0, val_t
     register_static_object(&once_value_1);
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
-  /* ./native_interface//frontier.nit:372 */
+  /* native_interface/frontier.nit:358 */
   if (!once_value_2) {
     fra.me.REG[3] = BOX_NativeString("temp");
     REGB0 = TAG_Int(4);
@@ -2994,7 +2937,7 @@ val_t native_interface___frontier___MMImportedCast___compile_as(val_t p0, val_t
     register_static_object(&once_value_2);
   } else fra.me.REG[3] = once_value_2;
   fra.me.REG[3] = fra.me.REG[3];
-  /* ./native_interface//frontier.nit:374 */
+  /* native_interface/frontier.nit:360 */
   fra.me.REG[4] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -3019,11 +2962,11 @@ val_t native_interface___frontier___MMImportedCast___compile_as(val_t p0, val_t
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
   fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-  /* ./native_interface//frontier.nit:375 */
+  /* native_interface/frontier.nit:361 */
   fra.me.REG[5] = CALL_metamodel___static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(true);
   CALL_native_interface___frontier___MMType___compile_new_local_ref(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2], fra.me.REG[1], REGB0);
-  /* ./native_interface//frontier.nit:377 */
+  /* native_interface/frontier.nit:363 */
   fra.me.REG[5] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -3051,23 +2994,23 @@ val_t native_interface___frontier___MMImportedCast___compile_as(val_t p0, val_t
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-  /* ./native_interface//frontier.nit:380 */
+  /* native_interface/frontier.nit:366 */
   fra.me.REG[4] = CALL_metamodel___static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:381 */
+    /* native_interface/frontier.nit:367 */
     CALL_native_interface___frontier___MMImportedCast___compile_check_is_not_null(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./native_interface//frontier.nit:385 */
+  /* native_interface/frontier.nit:371 */
   REGB0 = CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:386 */
+    /* native_interface/frontier.nit:372 */
     fra.me.REG[4] = CALL_metamodel___static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
     CALL_native_interface___frontier___MMType___compile_check_isa(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./native_interface//frontier.nit:389 */
+  /* native_interface/frontier.nit:375 */
   fra.me.REG[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -3094,7 +3037,7 @@ val_t native_interface___frontier___MMImportedCast___compile_as(val_t p0, val_t
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-  /* ./native_interface//frontier.nit:391 */
+  /* native_interface/frontier.nit:377 */
   fra.me.REG[5] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -3119,7 +3062,7 @@ val_t native_interface___frontier___MMImportedCast___compile_as(val_t p0, val_t
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-  /* ./native_interface//frontier.nit:393 */
+  /* native_interface/frontier.nit:379 */
   goto label11;
   label11: while(0);
   stack_frame_head = fra.me.prev;
@@ -3143,7 +3086,7 @@ val_t native_interface___frontier___MMImportedCast___compile_is(val_t p0, val_t
   static val_t once_value_12; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 396;
+  fra.me.line = 382;
   fra.me.meth = LOCATE_native_interface___frontier___MMImportedCast___compile_is;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -3157,10 +3100,10 @@ val_t native_interface___frontier___MMImportedCast___compile_is(val_t p0, val_t
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:400 */
+  /* native_interface/frontier.nit:386 */
   fra.me.REG[1] = CALL_native_interface___ni_metamodel___MMImportedCast___is_a_local_csignature(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   fra.me.REG[1] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra.me.REG[1]);
-  /* ./native_interface//frontier.nit:402 */
+  /* native_interface/frontier.nit:388 */
   if (!once_value_1) {
     fra.me.REG[2] = BOX_NativeString("temp");
     REGB0 = TAG_Int(4);
@@ -3169,7 +3112,7 @@ val_t native_interface___frontier___MMImportedCast___compile_is(val_t p0, val_t
     register_static_object(&once_value_1);
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
-  /* ./native_interface//frontier.nit:403 */
+  /* native_interface/frontier.nit:389 */
   fra.me.REG[3] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -3194,7 +3137,7 @@ val_t native_interface___frontier___MMImportedCast___compile_is(val_t p0, val_t
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./native_interface//frontier.nit:405 */
+  /* native_interface/frontier.nit:391 */
   fra.me.REG[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -3222,13 +3165,13 @@ val_t native_interface___frontier___MMImportedCast___compile_is(val_t p0, val_t
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:407 */
+  /* native_interface/frontier.nit:393 */
   REGB0 = CALL_metamodel___static_type___MMImportedCast___is_nullable_to_not_null(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:408 */
+    /* native_interface/frontier.nit:394 */
     REGB0 = CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra.me.REG[0])(fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./native_interface//frontier.nit:409 */
+      /* native_interface/frontier.nit:395 */
       fra.me.REG[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[1])(fra.me.REG[1]);
       REGB0 = TAG_Int(3);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -3254,7 +3197,7 @@ val_t native_interface___frontier___MMImportedCast___compile_is(val_t p0, val_t
       fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
       CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     } else {
-      /* ./native_interface//frontier.nit:411 */
+      /* native_interface/frontier.nit:397 */
       fra.me.REG[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[1])(fra.me.REG[1]);
       REGB0 = TAG_Int(3);
       fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -3281,11 +3224,11 @@ val_t native_interface___frontier___MMImportedCast___compile_is(val_t p0, val_t
       CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
     }
   }
-  /* ./native_interface//frontier.nit:415 */
+  /* native_interface/frontier.nit:401 */
   REGB0 = CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:416 */
+    /* native_interface/frontier.nit:402 */
     fra.me.REG[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Int(3);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -3313,7 +3256,7 @@ val_t native_interface___frontier___MMImportedCast___compile_is(val_t p0, val_t
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   }
-  /* ./native_interface//frontier.nit:419 */
+  /* native_interface/frontier.nit:405 */
   fra.me.REG[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[1])(fra.me.REG[1]);
   if (!once_value_12) {
     fra.me.REG[3] = BOX_NativeString("return 1;\n");
@@ -3324,7 +3267,7 @@ val_t native_interface___frontier___MMImportedCast___compile_is(val_t p0, val_t
   } else fra.me.REG[3] = once_value_12;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:421 */
+  /* native_interface/frontier.nit:407 */
   goto label13;
   label13: while(0);
   stack_frame_head = fra.me.prev;
@@ -3343,7 +3286,7 @@ void native_interface___frontier___MMImportedCast___compile_check_is_not_null(va
   static val_t once_value_7; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 424;
+  fra.me.line = 410;
   fra.me.meth = LOCATE_native_interface___frontier___MMImportedCast___compile_check_is_not_null;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -3357,7 +3300,7 @@ void native_interface___frontier___MMImportedCast___compile_check_is_not_null(va
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./native_interface//frontier.nit:428 */
+  /* native_interface/frontier.nit:414 */
   fra.me.REG[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -3382,7 +3325,7 @@ void native_interface___frontier___MMImportedCast___compile_check_is_not_null(va
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./native_interface//frontier.nit:429 */
+  /* native_interface/frontier.nit:415 */
   fra.me.REG[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -3421,7 +3364,7 @@ void native_interface___frontier___MMImportedCast___compile_check_is_not_null(va
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:430 */
+  /* native_interface/frontier.nit:416 */
   fra.me.REG[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[1])(fra.me.REG[1]);
   if (!once_value_6) {
     fra.me.REG[4] = BOX_NativeString("\tabort();\n");
@@ -3432,7 +3375,7 @@ void native_interface___frontier___MMImportedCast___compile_check_is_not_null(va
   } else fra.me.REG[4] = once_value_6;
   fra.me.REG[4] = fra.me.REG[4];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./native_interface//frontier.nit:431 */
+  /* native_interface/frontier.nit:417 */
   fra.me.REG[1] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[1])(fra.me.REG[1]);
   if (!once_value_7) {
     fra.me.REG[4] = BOX_NativeString("}");
@@ -3453,7 +3396,7 @@ val_t native_interface___frontier___MMImportedCast_____eqeq(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 434;
+  fra.me.line = 420;
   fra.me.meth = LOCATE_native_interface___frontier___MMImportedCast_____eqeq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -3464,13 +3407,13 @@ val_t native_interface___frontier___MMImportedCast_____eqeq(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:436 */
+  /* native_interface/frontier.nit:422 */
   REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMImportedCast, ID_metamodel___static_type___MMImportedCast)) /*cast MMImportedCast*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:437 */
+    /* native_interface/frontier.nit:423 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 437);
+      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 423);
     }
     fra.me.REG[2] = CALL_metamodel___static_type___MMImportedCast___from(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[3] = CALL_metamodel___static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
@@ -3481,15 +3424,15 @@ val_t native_interface___frontier___MMImportedCast_____eqeq(val_t p0, val_t p1){
       REGB0 = REGB1;
     }
   } else {
-    /* ./native_interface//frontier.nit:436 */
+    /* native_interface/frontier.nit:422 */
     REGB1 = TAG_Bool(false);
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:437 */
+    /* native_interface/frontier.nit:423 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 437);
+      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 423);
     }
     fra.me.REG[1] = CALL_metamodel___static_type___MMImportedCast___to(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[0] = CALL_metamodel___static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
@@ -3500,7 +3443,7 @@ val_t native_interface___frontier___MMImportedCast_____eqeq(val_t p0, val_t p1){
       REGB0 = REGB1;
     }
   } else {
-    /* ./native_interface//frontier.nit:436 */
+    /* native_interface/frontier.nit:422 */
     REGB1 = TAG_Bool(false);
     REGB0 = REGB1;
   }
@@ -3516,7 +3459,7 @@ val_t native_interface___frontier___MMImportedCast___hash(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 439;
+  fra.me.line = 425;
   fra.me.meth = LOCATE_native_interface___frontier___MMImportedCast___hash;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -3524,14 +3467,14 @@ val_t native_interface___frontier___MMImportedCast___hash(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//frontier.nit:441 */
+  /* native_interface/frontier.nit:427 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___hash___Object___hash(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_metamodel___static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = CALL_standard___hash___Object___hash(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./native_interface//frontier.nit:441 */
+  /* native_interface/frontier.nit:427 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -3550,7 +3493,7 @@ void native_interface___frontier___MMType___compile_check_isa(val_t p0, val_t p1
   static val_t once_value_7; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 446;
+  fra.me.line = 432;
   fra.me.meth = LOCATE_native_interface___frontier___MMType___compile_check_isa;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -3564,7 +3507,7 @@ void native_interface___frontier___MMType___compile_check_isa(val_t p0, val_t p1
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./native_interface//frontier.nit:452 */
+  /* native_interface/frontier.nit:438 */
   fra.me.REG[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -3590,7 +3533,7 @@ void native_interface___frontier___MMType___compile_check_isa(val_t p0, val_t p1
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./native_interface//frontier.nit:453 */
+  /* native_interface/frontier.nit:439 */
   fra.me.REG[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -3627,7 +3570,7 @@ void native_interface___frontier___MMType___compile_check_isa(val_t p0, val_t p1
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:454 */
+  /* native_interface/frontier.nit:440 */
   fra.me.REG[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[1])(fra.me.REG[1]);
   if (!once_value_6) {
     fra.me.REG[4] = BOX_NativeString("\tabort();\n");
@@ -3638,7 +3581,7 @@ void native_interface___frontier___MMType___compile_check_isa(val_t p0, val_t p1
   } else fra.me.REG[4] = once_value_6;
   fra.me.REG[4] = fra.me.REG[4];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./native_interface//frontier.nit:455 */
+  /* native_interface/frontier.nit:441 */
   fra.me.REG[1] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[1])(fra.me.REG[1]);
   if (!once_value_7) {
     fra.me.REG[4] = BOX_NativeString("}\n");
@@ -3664,7 +3607,7 @@ val_t native_interface___frontier___MMType___compile_condition_isa(val_t p0, val
   static val_t once_value_6; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 458;
+  fra.me.line = 444;
   fra.me.meth = LOCATE_native_interface___frontier___MMType___compile_condition_isa;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -3675,7 +3618,7 @@ val_t native_interface___frontier___MMType___compile_condition_isa(val_t p0, val
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:462 */
+  /* native_interface/frontier.nit:448 */
   REGB0 = TAG_Int(11);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -3790,7 +3733,7 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
     static val_t once_value_36; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 465;
+  fra.me.line = 451;
   fra.me.meth = LOCATE_native_interface___frontier___MMType___compile_to_frontier;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -3804,10 +3747,10 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:469 */
+  /* native_interface/frontier.nit:455 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./native_interface//frontier.nit:470 */
+  /* native_interface/frontier.nit:456 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3827,9 +3770,9 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:471 */
+    /* native_interface/frontier.nit:457 */
     fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra.me.REG[0])(fra.me.REG[0]);
-    /* ./native_interface//frontier.nit:472 */
+    /* native_interface/frontier.nit:458 */
     REGB0 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -3854,7 +3797,7 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
     fra.me.REG[4] = fra.me.REG[4];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-    /* ./native_interface//frontier.nit:475 */
+    /* native_interface/frontier.nit:461 */
     fra.me.REG[4] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Int(3);
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -3879,7 +3822,7 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    /* ./native_interface//frontier.nit:476 */
+    /* native_interface/frontier.nit:462 */
     fra.me.REG[5] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Int(3);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -3904,7 +3847,7 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-    /* ./native_interface//frontier.nit:477 */
+    /* native_interface/frontier.nit:463 */
     fra.me.REG[4] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Int(3);
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -3929,7 +3872,7 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    /* ./native_interface//frontier.nit:478 */
+    /* native_interface/frontier.nit:464 */
     fra.me.REG[5] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra.me.REG[1])(fra.me.REG[1]);
     if (!once_value_9) {
       fra.me.REG[4] = BOX_NativeString("\t\tstruct nitni_ref ref; /* real ref struct, must be first */\n");
@@ -3940,7 +3883,7 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
     } else fra.me.REG[4] = once_value_9;
     fra.me.REG[4] = fra.me.REG[4];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-    /* ./native_interface//frontier.nit:479 */
+    /* native_interface/frontier.nit:465 */
     fra.me.REG[4] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra.me.REG[1])(fra.me.REG[1]);
     if (!once_value_10) {
       fra.me.REG[5] = BOX_NativeString("};\n");
@@ -3951,7 +3894,7 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
     } else fra.me.REG[5] = once_value_10;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    /* ./native_interface//frontier.nit:480 */
+    /* native_interface/frontier.nit:466 */
     fra.me.REG[5] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Int(5);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -3986,13 +3929,13 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-    /* ./native_interface//frontier.nit:483 */
+    /* native_interface/frontier.nit:469 */
     REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./native_interface//frontier.nit:484 */
+      /* native_interface/frontier.nit:470 */
       fra.me.REG[4] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[4] = CALL_native_interface___ni_metamodel___MMType___local_friendly_null_getter_from(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-      /* ./native_interface//frontier.nit:486 */
+      /* native_interface/frontier.nit:472 */
       fra.me.REG[5] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra.me.REG[1])(fra.me.REG[1]);
       REGB0 = TAG_Int(3);
       fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -4018,7 +3961,7 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
       fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
       CALL_compiling___compiling_writer___Writer___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
-      /* ./native_interface//frontier.nit:487 */
+      /* native_interface/frontier.nit:473 */
       fra.me.REG[3] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra.me.REG[1])(fra.me.REG[1]);
       REGB0 = TAG_Int(5);
       fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -4054,7 +3997,7 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
       fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
       CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-      /* ./native_interface//frontier.nit:488 */
+      /* native_interface/frontier.nit:474 */
       fra.me.REG[5] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra.me.REG[1])(fra.me.REG[1]);
       if (!once_value_19) {
         fra.me.REG[3] = BOX_NativeString("#endif\n");
@@ -4065,7 +4008,7 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
       } else fra.me.REG[3] = once_value_19;
       fra.me.REG[3] = fra.me.REG[3];
       CALL_compiling___compiling_writer___Writer___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
-      /* ./native_interface//frontier.nit:490 */
+      /* native_interface/frontier.nit:476 */
       fra.me.REG[3] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra.me.REG[1])(fra.me.REG[1]);
       REGB0 = TAG_Int(5);
       fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -4100,7 +4043,7 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
       fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
       CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-      /* ./native_interface//frontier.nit:492 */
+      /* native_interface/frontier.nit:478 */
       REGB0 = TAG_Int(5);
       fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_23) {
@@ -4134,7 +4077,7 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
       fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
       fra.me.REG[5] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra.me.REG[5]);
-      /* ./native_interface//frontier.nit:493 */
+      /* native_interface/frontier.nit:479 */
       if (!once_value_26) {
         fra.me.REG[4] = BOX_NativeString("n");
         REGB0 = TAG_Int(1);
@@ -4145,7 +4088,7 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
       fra.me.REG[4] = fra.me.REG[4];
       REGB0 = TAG_Bool(true);
       CALL_native_interface___frontier___MMType___compile_new_local_ref(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[5], REGB0);
-      /* ./native_interface//frontier.nit:494 */
+      /* native_interface/frontier.nit:480 */
       fra.me.REG[4] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[5])(fra.me.REG[5]);
       if (!once_value_27) {
         fra.me.REG[2] = BOX_NativeString("return n;\n");
@@ -4156,12 +4099,12 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
       } else fra.me.REG[2] = once_value_27;
       fra.me.REG[2] = fra.me.REG[2];
       CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-      /* ./native_interface//frontier.nit:495 */
+      /* native_interface/frontier.nit:481 */
       fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___body(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[5] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra.me.REG[5])(fra.me.REG[5]);
       CALL_compiling___compiling_writer___Writer___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
     }
-    /* ./native_interface//frontier.nit:499 */
+    /* native_interface/frontier.nit:485 */
     REGB0 = TAG_Int(3);
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_28) {
@@ -4186,7 +4129,7 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
     fra.me.REG[2] = fra.me.REG[2];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-    /* ./native_interface//frontier.nit:500 */
+    /* native_interface/frontier.nit:486 */
     fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Int(3);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -4211,7 +4154,7 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-    /* ./native_interface//frontier.nit:503 */
+    /* native_interface/frontier.nit:489 */
     REGB0 = TAG_Int(3);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_32) {
@@ -4236,7 +4179,7 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
     fra.me.REG[0] = fra.me.REG[0];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-    /* ./native_interface//frontier.nit:504 */
+    /* native_interface/frontier.nit:490 */
     fra.me.REG[0] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Int(3);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -4261,7 +4204,7 @@ void native_interface___frontier___MMType___compile_to_frontier(val_t p0, val_t
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
     fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-    /* ./native_interface//frontier.nit:506 */
+    /* native_interface/frontier.nit:492 */
     fra.me.REG[1] = CALL_native_interface___frontier___FrontierVisitor___header_top(fra.me.REG[1])(fra.me.REG[1]);
     if (!once_value_36) {
       fra.me.REG[2] = BOX_NativeString("#endif\n");
@@ -4295,7 +4238,7 @@ void native_interface___frontier___MMType___compile_new_local_ref(val_t p0, val_
       static val_t once_value_12; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 510;
+  fra.me.line = 496;
   fra.me.meth = LOCATE_native_interface___frontier___MMType___compile_new_local_ref;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -4311,9 +4254,9 @@ void native_interface___frontier___MMType___compile_new_local_ref(val_t p0, val_
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   REGB0 = p3;
-  /* ./native_interface//frontier.nit:512 */
+  /* native_interface/frontier.nit:498 */
   fra.me.REG[3] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./native_interface//frontier.nit:514 */
+  /* native_interface/frontier.nit:500 */
   fra.me.REG[4] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra.me.REG[2])(fra.me.REG[2]);
   REGB1 = TAG_Int(5);
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
@@ -4348,10 +4291,10 @@ void native_interface___frontier___MMType___compile_new_local_ref(val_t p0, val_
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
   fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-  /* ./native_interface//frontier.nit:515 */
+  /* native_interface/frontier.nit:501 */
   REGB1 = CALL_native_interface___ni_metamodel___MMType___uses_nitni_ref(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB1)) {
-    /* ./native_interface//frontier.nit:516 */
+    /* native_interface/frontier.nit:502 */
     fra.me.REG[0] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[2])(fra.me.REG[2]);
     REGB1 = TAG_Int(5);
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
@@ -4386,7 +4329,7 @@ void native_interface___frontier___MMType___compile_new_local_ref(val_t p0, val_
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
-    /* ./native_interface//frontier.nit:517 */
+    /* native_interface/frontier.nit:503 */
     fra.me.REG[5] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[2])(fra.me.REG[2]);
     REGB1 = TAG_Int(3);
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
@@ -4411,7 +4354,7 @@ void native_interface___frontier___MMType___compile_new_local_ref(val_t p0, val_
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
-    /* ./native_interface//frontier.nit:518 */
+    /* native_interface/frontier.nit:504 */
     fra.me.REG[0] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[2])(fra.me.REG[2]);
     REGB1 = TAG_Int(3);
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
@@ -4436,9 +4379,9 @@ void native_interface___frontier___MMType___compile_new_local_ref(val_t p0, val_
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
-    /* ./native_interface//frontier.nit:519 */
+    /* native_interface/frontier.nit:505 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./native_interface//frontier.nit:520 */
+      /* native_interface/frontier.nit:506 */
       fra.me.REG[2] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[2])(fra.me.REG[2]);
       REGB0 = TAG_Int(3);
       fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -4517,7 +4460,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
     static val_t once_value_42; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 527;
+  fra.me.line = 513;
   fra.me.meth = LOCATE_native_interface___frontier___MMExplicitImport___compile_friendly_to_frontier;
   fra.me.has_broke = 0;
   fra.me.REG_size = 11;
@@ -4535,7 +4478,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:530 */
+  /* native_interface/frontier.nit:516 */
   fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -4562,7 +4505,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:531 */
+  /* native_interface/frontier.nit:517 */
   fra.me.REG[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -4591,7 +4534,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./native_interface//frontier.nit:535 */
+  /* native_interface/frontier.nit:521 */
   fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -4619,7 +4562,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:536 */
+  /* native_interface/frontier.nit:522 */
   fra.me.REG[3] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -4661,7 +4604,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./native_interface//frontier.nit:537 */
+  /* native_interface/frontier.nit:523 */
   fra.me.REG[2] = CALL_native_interface___frontier___FrontierVisitor___header(fra.me.REG[1])(fra.me.REG[1]);
   if (!once_value_10) {
     fra.me.REG[3] = BOX_NativeString("#endif\n");
@@ -4672,7 +4615,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
   } else fra.me.REG[3] = once_value_10;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./native_interface//frontier.nit:540 */
+  /* native_interface/frontier.nit:526 */
   fra.me.REG[3] = CALL_native_interface___frontier___FrontierVisitor___body(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -4699,20 +4642,20 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./native_interface//frontier.nit:542 */
+  /* native_interface/frontier.nit:528 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_native_interface___frontier___FrontierVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_native_interface___ni_metamodel___MMMethod___frontier_csignature_from(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[4] = NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init(fra.me.REG[4]);
-  /* ./native_interface//frontier.nit:545 */
+  /* native_interface/frontier.nit:531 */
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-  /* ./native_interface//frontier.nit:548 */
+  /* native_interface/frontier.nit:534 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___syntax_base___MMLocalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:549 */
+    /* native_interface/frontier.nit:535 */
     if (!once_value_13) {
       fra.me.REG[2] = BOX_NativeString("recv___nit");
       REGB0 = TAG_Int(10);
@@ -4721,7 +4664,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
       register_static_object(&once_value_13);
     } else fra.me.REG[2] = once_value_13;
     fra.me.REG[2] = fra.me.REG[2];
-    /* ./native_interface//frontier.nit:550 */
+    /* native_interface/frontier.nit:536 */
     fra.me.REG[5] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra.me.REG[4])(fra.me.REG[4]);
     REGB0 = TAG_Int(3);
     fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -4746,7 +4689,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
     fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-    /* ./native_interface//frontier.nit:551 */
+    /* native_interface/frontier.nit:537 */
     fra.me.REG[6] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[4])(fra.me.REG[4]);
     REGB0 = TAG_Int(3);
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -4782,26 +4725,26 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
-    /* ./native_interface//frontier.nit:552 */
+    /* native_interface/frontier.nit:538 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
   }
-  /* ./native_interface//frontier.nit:555 */
+  /* native_interface/frontier.nit:541 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMExplicitImport___signature(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -4813,18 +4756,18 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-      /* ./native_interface//frontier.nit:556 */
+      /* native_interface/frontier.nit:542 */
       REGB1 = TAG_Int(3);
       fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_19) {
@@ -4849,7 +4792,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
       fra.me.REG[7] = fra.me.REG[7];
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
       fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-      /* ./native_interface//frontier.nit:557 */
+      /* native_interface/frontier.nit:543 */
       fra.me.REG[7] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra.me.REG[4])(fra.me.REG[4]);
       REGB1 = TAG_Int(3);
       fra.me.REG[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
@@ -4874,7 +4817,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
       fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
       CALL_compiling___compiling_writer___Writer___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]);
-      /* ./native_interface//frontier.nit:558 */
+      /* native_interface/frontier.nit:544 */
       fra.me.REG[9] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[4])(fra.me.REG[4]);
       REGB1 = TAG_Int(3);
       fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
@@ -4903,28 +4846,28 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
       fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
       CALL_compiling___compiling_writer___Writer___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[7]);
-      /* ./native_interface//frontier.nit:559 */
+      /* native_interface/frontier.nit:545 */
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label25;
     }
   }
   label25: while(0);
-  /* ./native_interface//frontier.nit:563 */
+  /* native_interface/frontier.nit:549 */
   fra.me.REG[5] = NIT_NULL;
-  /* ./native_interface//frontier.nit:566 */
+  /* native_interface/frontier.nit:552 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 566);
+    nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 552);
   }
   fra.me.REG[2] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -4941,30 +4884,30 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:567 */
+    /* native_interface/frontier.nit:553 */
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 567);
+      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 553);
     }
     fra.me.REG[2] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[5] = fra.me.REG[2];
   } else {
-    /* ./native_interface//frontier.nit:568 */
+    /* native_interface/frontier.nit:554 */
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = CALL_syntax___syntax_base___MMLocalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./native_interface//frontier.nit:569 */
+      /* native_interface/frontier.nit:555 */
       fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
       fra.me.REG[2] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[2])(fra.me.REG[2]);
       fra.me.REG[5] = fra.me.REG[2];
     }
   }
-  /* ./native_interface//frontier.nit:572 */
+  /* native_interface/frontier.nit:558 */
   fra.me.REG[2] = NEW_Buffer_standard___string___Buffer___init();
-  /* ./native_interface//frontier.nit:573 */
+  /* native_interface/frontier.nit:559 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -4979,7 +4922,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:574 */
+    /* native_interface/frontier.nit:560 */
     if (!once_value_26) {
       fra.me.REG[8] = BOX_NativeString("result___nitni");
       REGB0 = TAG_Int(14);
@@ -4991,10 +4934,10 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
     REGB0 = TAG_Bool(true);
     REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
-      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 574);
+      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 560);
     }
     CALL_native_interface___frontier___MMType___compile_new_local_ref(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8], fra.me.REG[4], REGB0);
-    /* ./native_interface//frontier.nit:575 */
+    /* native_interface/frontier.nit:561 */
     fra.me.REG[8] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra.me.REG[4])(fra.me.REG[4]);
     if (!once_value_27) {
       fra.me.REG[7] = BOX_NativeString("val_t result___nit;\n");
@@ -5005,7 +4948,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
     } else fra.me.REG[7] = once_value_27;
     fra.me.REG[7] = fra.me.REG[7];
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
-    /* ./native_interface//frontier.nit:576 */
+    /* native_interface/frontier.nit:562 */
     if (!once_value_28) {
       fra.me.REG[7] = BOX_NativeString("result___nit = ");
       REGB0 = TAG_Int(15);
@@ -5016,11 +4959,11 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
     fra.me.REG[7] = fra.me.REG[7];
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
   }
-  /* ./native_interface//frontier.nit:580 */
+  /* native_interface/frontier.nit:566 */
   fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___syntax_base___MMLocalProperty___is_init(fra.me.REG[7])(fra.me.REG[7]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:581 */
+    /* native_interface/frontier.nit:567 */
     REGB0 = TAG_Int(5);
     fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_29) {
@@ -5061,7 +5004,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
     fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
   } else {
-    /* ./native_interface//frontier.nit:583 */
+    /* native_interface/frontier.nit:569 */
     REGB0 = TAG_Int(3);
     fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_32) {
@@ -5089,7 +5032,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
     fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
   }
-  /* ./native_interface//frontier.nit:586 */
+  /* native_interface/frontier.nit:572 */
   REGB0 = TAG_Int(3);
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_34) {
@@ -5122,11 +5065,11 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[0]);
   fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
-  /* ./native_interface//frontier.nit:588 */
+  /* native_interface/frontier.nit:574 */
   fra.me.REG[7] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
-  /* ./native_interface//frontier.nit:591 */
+  /* native_interface/frontier.nit:577 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -5141,7 +5084,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:592 */
+    /* native_interface/frontier.nit:578 */
     if (!once_value_37) {
       fra.me.REG[2] = BOX_NativeString("result___nitni");
       REGB0 = TAG_Int(14);
@@ -5150,7 +5093,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
       register_static_object(&once_value_37);
     } else fra.me.REG[2] = once_value_37;
     fra.me.REG[2] = fra.me.REG[2];
-    /* ./native_interface//frontier.nit:593 */
+    /* native_interface/frontier.nit:579 */
     if (!once_value_38) {
       fra.me.REG[7] = BOX_NativeString("result___nit");
       REGB0 = TAG_Int(12);
@@ -5159,7 +5102,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
       register_static_object(&once_value_38);
     } else fra.me.REG[7] = once_value_38;
     fra.me.REG[7] = fra.me.REG[7];
-    /* ./native_interface//frontier.nit:595 */
+    /* native_interface/frontier.nit:581 */
     fra.me.REG[0] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[4])(fra.me.REG[4]);
     REGB0 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -5174,7 +5117,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 595);
+      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 581);
     }
     fra.me.REG[7] = CALL_native_interface___ni_metamodel___MMType___assign_to_friendly(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2], fra.me.REG[7]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
@@ -5189,7 +5132,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-    /* ./native_interface//frontier.nit:596 */
+    /* native_interface/frontier.nit:582 */
     fra.me.REG[3] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[4])(fra.me.REG[4]);
     REGB0 = TAG_Int(3);
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -5215,7 +5158,7 @@ void native_interface___frontier___MMExplicitImport___compile_friendly_to_fronti
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
     CALL_compiling___compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
   }
-  /* ./native_interface//frontier.nit:599 */
+  /* native_interface/frontier.nit:585 */
   fra.me.REG[1] = CALL_native_interface___frontier___FrontierVisitor___body(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[4] = CALL_native_interface___ni_tools___FunctionCompiler___to_writer(fra.me.REG[4])(fra.me.REG[4]);
   CALL_compiling___compiling_writer___Writer___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
@@ -5229,7 +5172,7 @@ val_t native_interface___frontier___MMExplicitImport___hash(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 602;
+  fra.me.line = 588;
   fra.me.meth = LOCATE_native_interface___frontier___MMExplicitImport___hash;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -5237,7 +5180,7 @@ val_t native_interface___frontier___MMExplicitImport___hash(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//frontier.nit:604 */
+  /* native_interface/frontier.nit:590 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
@@ -5245,9 +5188,9 @@ val_t native_interface___frontier___MMExplicitImport___hash(val_t p0){
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = CALL_standard___hash___Object___hash(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./native_interface//frontier.nit:604 */
+  /* native_interface/frontier.nit:590 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -5260,7 +5203,7 @@ val_t native_interface___frontier___MMExplicitImport_____eqeq(val_t p0, val_t p1
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___frontier;
-  fra.me.line = 606;
+  fra.me.line = 592;
   fra.me.meth = LOCATE_native_interface___frontier___MMExplicitImport_____eqeq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -5271,14 +5214,14 @@ val_t native_interface___frontier___MMExplicitImport_____eqeq(val_t p0, val_t p1
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//frontier.nit:608 */
+  /* native_interface/frontier.nit:594 */
   REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_metamodel___abstractmetamodel___MMExplicitImport, ID_metamodel___abstractmetamodel___MMExplicitImport)) /*cast MMExplicitImport*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:609 */
+    /* native_interface/frontier.nit:595 */
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 609);
+      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 595);
     }
     fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
@@ -5288,16 +5231,16 @@ val_t native_interface___frontier___MMExplicitImport_____eqeq(val_t p0, val_t p1
       REGB0 = REGB1;
     }
   } else {
-    /* ./native_interface//frontier.nit:608 */
+    /* native_interface/frontier.nit:594 */
     REGB1 = TAG_Bool(false);
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//frontier.nit:609 */
+    /* native_interface/frontier.nit:595 */
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 609);
+      nit_abort("Reciever is null", NULL, LOCATE_native_interface___frontier, 595);
     }
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMExplicitImport___local_class(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[1]));
@@ -5307,7 +5250,7 @@ val_t native_interface___frontier___MMExplicitImport_____eqeq(val_t p0, val_t p1
       REGB0 = REGB1;
     }
   } else {
-    /* ./native_interface//frontier.nit:608 */
+    /* native_interface/frontier.nit:594 */
     REGB1 = TAG_Bool(false);
     REGB0 = REGB1;
   }
index 74729b2..b763fd1 100644 (file)
@@ -3,6 +3,7 @@
 #define native_interface___frontier_sep
 #include "native_interface___ni_tools._sep.h"
 #include "native_interface___ni_metamodel._sep.h"
+#include "syntax._sep.h"
 #include <nit_common.h>
 
 extern const classtable_elt_t VFT_native_interface___frontier___FrontierVisitor[];
@@ -44,25 +45,24 @@ extern const int SFT_native_interface___frontier[];
 #define CALL_native_interface___frontier___FrontierVisitor___compile_cached(recv) ((native_interface___frontier___FrontierVisitor___compile_cached_t)CALL((recv), (SFT_native_interface___frontier[7] + 17)))
 #define CALL_native_interface___frontier___FrontierVisitor___write_to_files(recv) ((native_interface___frontier___FrontierVisitor___write_to_files_t)CALL((recv), (SFT_native_interface___frontier[7] + 18)))
 #define CALL_native_interface___frontier___FrontierVisitor___init(recv) ((native_interface___frontier___FrontierVisitor___init_t)CALL((recv), (SFT_native_interface___frontier[7] + 19)))
-#define CALL_native_interface___frontier___String___path_from_parent(recv) ((native_interface___frontier___String___path_from_parent_t)CALL((recv), (SFT_native_interface___frontier[8] + 0)))
-#define CALL_native_interface___frontier___MMImportedCast___compile_to_frontier(recv) ((native_interface___frontier___MMImportedCast___compile_to_frontier_t)CALL((recv), (SFT_native_interface___frontier[9] + 0)))
-#define CALL_native_interface___frontier___MMImportedCast___compile_as(recv) ((native_interface___frontier___MMImportedCast___compile_as_t)CALL((recv), (SFT_native_interface___frontier[9] + 1)))
-#define CALL_native_interface___frontier___MMImportedCast___compile_is(recv) ((native_interface___frontier___MMImportedCast___compile_is_t)CALL((recv), (SFT_native_interface___frontier[9] + 2)))
-#define CALL_native_interface___frontier___MMImportedCast___compile_check_is_not_null(recv) ((native_interface___frontier___MMImportedCast___compile_check_is_not_null_t)CALL((recv), (SFT_native_interface___frontier[9] + 3)))
-#define CALL_native_interface___frontier___MMType___compile_check_isa(recv) ((native_interface___frontier___MMType___compile_check_isa_t)CALL((recv), (SFT_native_interface___frontier[10] + 0)))
-#define CALL_native_interface___frontier___MMType___compile_condition_isa(recv) ((native_interface___frontier___MMType___compile_condition_isa_t)CALL((recv), (SFT_native_interface___frontier[10] + 1)))
-#define CALL_native_interface___frontier___MMType___compile_to_frontier(recv) ((native_interface___frontier___MMType___compile_to_frontier_t)CALL((recv), (SFT_native_interface___frontier[10] + 2)))
-#define CALL_native_interface___frontier___MMType___compile_new_local_ref(recv) ((native_interface___frontier___MMType___compile_new_local_ref_t)CALL((recv), (SFT_native_interface___frontier[10] + 3)))
-#define CALL_native_interface___frontier___MMExplicitImport___compile_friendly_to_frontier(recv) ((native_interface___frontier___MMExplicitImport___compile_friendly_to_frontier_t)CALL((recv), (SFT_native_interface___frontier[11] + 0)))
+#define CALL_native_interface___frontier___MMImportedCast___compile_to_frontier(recv) ((native_interface___frontier___MMImportedCast___compile_to_frontier_t)CALL((recv), (SFT_native_interface___frontier[8] + 0)))
+#define CALL_native_interface___frontier___MMImportedCast___compile_as(recv) ((native_interface___frontier___MMImportedCast___compile_as_t)CALL((recv), (SFT_native_interface___frontier[8] + 1)))
+#define CALL_native_interface___frontier___MMImportedCast___compile_is(recv) ((native_interface___frontier___MMImportedCast___compile_is_t)CALL((recv), (SFT_native_interface___frontier[8] + 2)))
+#define CALL_native_interface___frontier___MMImportedCast___compile_check_is_not_null(recv) ((native_interface___frontier___MMImportedCast___compile_check_is_not_null_t)CALL((recv), (SFT_native_interface___frontier[8] + 3)))
+#define CALL_native_interface___frontier___MMType___compile_check_isa(recv) ((native_interface___frontier___MMType___compile_check_isa_t)CALL((recv), (SFT_native_interface___frontier[9] + 0)))
+#define CALL_native_interface___frontier___MMType___compile_condition_isa(recv) ((native_interface___frontier___MMType___compile_condition_isa_t)CALL((recv), (SFT_native_interface___frontier[9] + 1)))
+#define CALL_native_interface___frontier___MMType___compile_to_frontier(recv) ((native_interface___frontier___MMType___compile_to_frontier_t)CALL((recv), (SFT_native_interface___frontier[9] + 2)))
+#define CALL_native_interface___frontier___MMType___compile_new_local_ref(recv) ((native_interface___frontier___MMType___compile_new_local_ref_t)CALL((recv), (SFT_native_interface___frontier[9] + 3)))
+#define CALL_native_interface___frontier___MMExplicitImport___compile_friendly_to_frontier(recv) ((native_interface___frontier___MMExplicitImport___compile_friendly_to_frontier_t)CALL((recv), (SFT_native_interface___frontier[10] + 0)))
 static const char * const LOCATE_native_interface___frontier___MMSrcModule___compile_frontier = "frontier::MMSrcModule::compile_frontier";
 void native_interface___frontier___MMSrcModule___compile_frontier(val_t p0, val_t p1);
 typedef void (*native_interface___frontier___MMSrcModule___compile_frontier_t)(val_t p0, val_t p1);
-  typedef void (*CLOS_OC_native_interface___frontier___MMSrcModule___compile_frontier_22_0)(struct stack_frame_t *);
-  void OC_native_interface___frontier___MMSrcModule___compile_frontier_22(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_native_interface___frontier___MMSrcModule___compile_frontier_22_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-    typedef void (*CLOS_OC_native_interface___frontier___MMSrcModule___compile_frontier_23_0)(struct stack_frame_t *);
-    void OC_native_interface___frontier___MMSrcModule___compile_frontier_23(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-    typedef void (*OC_native_interface___frontier___MMSrcModule___compile_frontier_23_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+  typedef void (*CLOS_OC_native_interface___frontier___MMSrcModule___compile_frontier_23_0)(struct stack_frame_t *);
+  void OC_native_interface___frontier___MMSrcModule___compile_frontier_23(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+  typedef void (*OC_native_interface___frontier___MMSrcModule___compile_frontier_23_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+    typedef void (*CLOS_OC_native_interface___frontier___MMSrcModule___compile_frontier_24_0)(struct stack_frame_t *);
+    void OC_native_interface___frontier___MMSrcModule___compile_frontier_24(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+    typedef void (*OC_native_interface___frontier___MMSrcModule___compile_frontier_24_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_MMSrcModule_syntax___syntax_base___MMSrcModule___init(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_native_interface___frontier___MMSrcMethod___compile_extern_to_frontier = "frontier::MMSrcMethod::compile_extern_to_frontier";
 void native_interface___frontier___MMSrcMethod___compile_extern_to_frontier(val_t p0, val_t p1);
@@ -155,11 +155,6 @@ static const char * const LOCATE_native_interface___frontier___FrontierVisitor__
 void native_interface___frontier___FrontierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table);
 typedef void (*native_interface___frontier___FrontierVisitor___init_t)(val_t p0, val_t p1, val_t p2, int* init_table);
 val_t NEW_FrontierVisitor_native_interface___frontier___FrontierVisitor___init(val_t p0, val_t p1);
-static const char * const LOCATE_native_interface___frontier___String___path_from_parent = "frontier::String::path_from_parent";
-val_t native_interface___frontier___String___path_from_parent(val_t p0);
-typedef val_t (*native_interface___frontier___String___path_from_parent_t)(val_t p0);
-val_t NEW_String_standard___string___String___with_native(val_t p0, val_t p1);
-val_t NEW_String_standard___string___String___from_cstring(val_t p0);
 static const char * const LOCATE_native_interface___frontier___MMImportedCast___compile_to_frontier = "frontier::MMImportedCast::compile_to_frontier";
 void native_interface___frontier___MMImportedCast___compile_to_frontier(val_t p0, val_t p1);
 typedef void (*native_interface___frontier___MMImportedCast___compile_to_frontier_t)(val_t p0, val_t p1);
index 4d8df24..684b49e 100644 (file)
@@ -19,13 +19,13 @@ val_t native_interface___ni_metamodel___MMType___friendly_extern_name(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_metamodel.nit:30 */
+  /* native_interface/ni_metamodel.nit:30 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./native_interface//ni_metamodel.nit:31 */
+  /* native_interface/ni_metamodel.nit:31 */
   REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//ni_metamodel.nit:32 */
+    /* native_interface/ni_metamodel.nit:32 */
     REGB0 = TAG_Int(3);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -53,7 +53,7 @@ val_t native_interface___ni_metamodel___MMType___friendly_extern_name(val_t p0){
     fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
     goto label3;
   } else {
-    /* ./native_interface//ni_metamodel.nit:33 */
+    /* native_interface/ni_metamodel.nit:33 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -67,26 +67,26 @@ val_t native_interface___ni_metamodel___MMType___friendly_extern_name(val_t p0){
       }
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./native_interface//ni_metamodel.nit:34 */
+      /* native_interface/ni_metamodel.nit:34 */
       fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[3])(fra.me.REG[3]);
       fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
       fra.me.REG[2] = fra.me.REG[3];
       goto label3;
     } else {
-      /* ./native_interface//ni_metamodel.nit:35 */
+      /* native_interface/ni_metamodel.nit:35 */
       fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
       REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[3])(fra.me.REG[3]);
       if (UNTAG_Bool(REGB0)) {
-        /* ./native_interface//ni_metamodel.nit:36 */
+        /* native_interface/ni_metamodel.nit:36 */
         fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
         fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
         fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
         fra.me.REG[2] = fra.me.REG[0];
         goto label3;
       } else {
-        /* ./native_interface//ni_metamodel.nit:38 */
+        /* native_interface/ni_metamodel.nit:38 */
         REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
           nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 38);
@@ -118,13 +118,13 @@ val_t native_interface___ni_metamodel___MMType___mangled_name(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_metamodel.nit:44 */
+  /* native_interface/ni_metamodel.nit:44 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./native_interface//ni_metamodel.nit:45 */
+  /* native_interface/ni_metamodel.nit:45 */
   REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//ni_metamodel.nit:46 */
+    /* native_interface/ni_metamodel.nit:46 */
     REGB0 = TAG_Int(3);
     fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -152,7 +152,7 @@ val_t native_interface___ni_metamodel___MMType___mangled_name(val_t p0){
     fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
     goto label3;
   } else {
-    /* ./native_interface//ni_metamodel.nit:48 */
+    /* native_interface/ni_metamodel.nit:48 */
     fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
@@ -184,7 +184,7 @@ val_t native_interface___ni_metamodel___MMType___from_native(val_t p0, val_t p1)
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//ni_metamodel.nit:55 */
+  /* native_interface/ni_metamodel.nit:55 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -209,20 +209,20 @@ val_t native_interface___ni_metamodel___MMType___from_native(val_t p0, val_t p1)
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//ni_metamodel.nit:56 */
+    /* native_interface/ni_metamodel.nit:56 */
     REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   } else {
-    /* ./native_interface//ni_metamodel.nit:55 */
+    /* native_interface/ni_metamodel.nit:55 */
     REGB1 = TAG_Bool(false);
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//ni_metamodel.nit:57 */
+    /* native_interface/ni_metamodel.nit:57 */
     fra.me.REG[2] = CALL_primitive_info___MMType___boxtype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
     goto label1;
   } else {
-    /* ./native_interface//ni_metamodel.nit:59 */
+    /* native_interface/ni_metamodel.nit:59 */
     REGB0 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_2) {
@@ -245,7 +245,7 @@ val_t native_interface___ni_metamodel___MMType___from_native(val_t p0, val_t p1)
     fra.me.REG[1] = fra.me.REG[1];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-    /* ./native_interface//ni_metamodel.nit:61 */
+    /* native_interface/ni_metamodel.nit:61 */
     fra.me.REG[3] = CALL_primitive_info___MMType___boxtype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
     fra.me.REG[2] = fra.me.REG[3];
     goto label1;
@@ -281,7 +281,7 @@ val_t native_interface___ni_metamodel___MMType___assign_to_friendly(val_t p0, va
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./native_interface//ni_metamodel.nit:69 */
+  /* native_interface/ni_metamodel.nit:69 */
   fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
@@ -306,16 +306,16 @@ val_t native_interface___ni_metamodel___MMType___assign_to_friendly(val_t p0, va
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//ni_metamodel.nit:70 */
+    /* native_interface/ni_metamodel.nit:70 */
     REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   } else {
-    /* ./native_interface//ni_metamodel.nit:69 */
+    /* native_interface/ni_metamodel.nit:69 */
     REGB1 = TAG_Bool(false);
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//ni_metamodel.nit:71 */
+    /* native_interface/ni_metamodel.nit:71 */
     REGB0 = TAG_Int(5);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -351,7 +351,7 @@ val_t native_interface___ni_metamodel___MMType___assign_to_friendly(val_t p0, va
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     goto label4;
   } else {
-    /* ./native_interface//ni_metamodel.nit:73 */
+    /* native_interface/ni_metamodel.nit:73 */
     REGB0 = TAG_Int(5);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_5) {
@@ -418,7 +418,7 @@ val_t native_interface___ni_metamodel___MMType___assign_from_friendly(val_t p0,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./native_interface//ni_metamodel.nit:81 */
+  /* native_interface/ni_metamodel.nit:81 */
   fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
@@ -443,16 +443,16 @@ val_t native_interface___ni_metamodel___MMType___assign_from_friendly(val_t p0,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//ni_metamodel.nit:82 */
+    /* native_interface/ni_metamodel.nit:82 */
     REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   } else {
-    /* ./native_interface//ni_metamodel.nit:81 */
+    /* native_interface/ni_metamodel.nit:81 */
     REGB1 = TAG_Bool(false);
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//ni_metamodel.nit:83 */
+    /* native_interface/ni_metamodel.nit:83 */
     REGB0 = TAG_Int(5);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -488,7 +488,7 @@ val_t native_interface___ni_metamodel___MMType___assign_from_friendly(val_t p0,
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     goto label4;
   } else {
-    /* ./native_interface//ni_metamodel.nit:85 */
+    /* native_interface/ni_metamodel.nit:85 */
     REGB0 = TAG_Int(5);
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_5) {
@@ -543,7 +543,7 @@ val_t native_interface___ni_metamodel___MMType___uses_nitni_ref(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_metamodel.nit:89 */
+  /* native_interface/ni_metamodel.nit:89 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
@@ -586,7 +586,7 @@ val_t native_interface___ni_metamodel___MMType___friendly_null_getter(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_metamodel.nit:93 */
+  /* native_interface/ni_metamodel.nit:93 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -636,7 +636,7 @@ val_t native_interface___ni_metamodel___MMType___local_friendly_null_getter_from
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//ni_metamodel.nit:98 */
+  /* native_interface/ni_metamodel.nit:98 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -698,7 +698,7 @@ val_t native_interface___ni_metamodel___MMMethod___local_friendly_name_from(val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./native_interface//ni_metamodel.nit:107 */
+  /* native_interface/ni_metamodel.nit:107 */
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -755,7 +755,7 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_super_cname(val_t p0
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_metamodel.nit:112 */
+  /* native_interface/ni_metamodel.nit:112 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -805,7 +805,7 @@ val_t native_interface___ni_metamodel___MMMethod___local_friendly_super_name_fro
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//ni_metamodel.nit:117 */
+  /* native_interface/ni_metamodel.nit:117 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -871,14 +871,14 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_cparams(val_t p0, va
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//ni_metamodel.nit:122 */
+  /* native_interface/ni_metamodel.nit:122 */
   fra.me.REG[2] = NEW_List_standard___collection___list___List___init();
-  /* ./native_interface//ni_metamodel.nit:124 */
+  /* native_interface/ni_metamodel.nit:124 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//ni_metamodel.nit:125 */
+    /* native_interface/ni_metamodel.nit:125 */
     REGB0 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -905,27 +905,27 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_cparams(val_t p0, va
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   }
-  /* ./native_interface//ni_metamodel.nit:128 */
+  /* native_interface/ni_metamodel.nit:128 */
   fra.me.REG[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 128);
   }
   fra.me.REG[0] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -937,18 +937,18 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_cparams(val_t p0, va
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
-      /* ./native_interface//ni_metamodel.nit:129 */
+      /* native_interface/ni_metamodel.nit:129 */
       REGB1 = TAG_Int(5);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_3) {
@@ -986,19 +986,19 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_cparams(val_t p0, va
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
       fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label6;
     }
   }
   label6: while(0);
-  /* ./native_interface//ni_metamodel.nit:132 */
+  /* native_interface/ni_metamodel.nit:132 */
   goto label7;
   label7: while(0);
   stack_frame_head = fra.me.prev;
@@ -1026,7 +1026,7 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_suffix(val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./native_interface//ni_metamodel.nit:137 */
+  /* native_interface/ni_metamodel.nit:137 */
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -1060,7 +1060,7 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_suffix(val_t
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./native_interface//ni_metamodel.nit:139 */
+  /* native_interface/ni_metamodel.nit:139 */
   fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMMethod___csignature_with_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
   goto label4;
   label4: while(0);
@@ -1096,9 +1096,9 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_name(val_t p0
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./native_interface//ni_metamodel.nit:144 */
+  /* native_interface/ni_metamodel.nit:144 */
   fra.me.REG[3] = NEW_Buffer_standard___string___Buffer___init();
-  /* ./native_interface//ni_metamodel.nit:147 */
+  /* native_interface/ni_metamodel.nit:147 */
   fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1119,7 +1119,7 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_name(val_t p0
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//ni_metamodel.nit:148 */
+    /* native_interface/ni_metamodel.nit:148 */
     REGB0 = TAG_Int(3);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -1155,11 +1155,11 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_name(val_t p0
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   } else {
-    /* ./native_interface//ni_metamodel.nit:149 */
+    /* native_interface/ni_metamodel.nit:149 */
     fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./native_interface//ni_metamodel.nit:150 */
+      /* native_interface/ni_metamodel.nit:150 */
       REGB0 = TAG_Int(3);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_3) {
@@ -1186,7 +1186,7 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_name(val_t p0
       fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
       CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     } else {
-      /* ./native_interface//ni_metamodel.nit:152 */
+      /* native_interface/ni_metamodel.nit:152 */
       if (!once_value_5) {
         fra.me.REG[4] = BOX_NativeString("void ");
         REGB0 = TAG_Int(5);
@@ -1198,7 +1198,7 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_name(val_t p0
       CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     }
   }
-  /* ./native_interface//ni_metamodel.nit:156 */
+  /* native_interface/ni_metamodel.nit:156 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1212,16 +1212,16 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_name(val_t p0
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//ni_metamodel.nit:157 */
+    /* native_interface/ni_metamodel.nit:157 */
     fra.me.REG[4] = CALL_primitive_info___MMMethod___friendly_extern_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   } else {
-    /* ./native_interface//ni_metamodel.nit:159 */
+    /* native_interface/ni_metamodel.nit:159 */
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
   }
-  /* ./native_interface//ni_metamodel.nit:163 */
+  /* native_interface/ni_metamodel.nit:163 */
   fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMMethod___friendly_cparams(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./native_interface//ni_metamodel.nit:165 */
+  /* native_interface/ni_metamodel.nit:165 */
   REGB0 = TAG_Int(3);
   fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_6) {
@@ -1254,7 +1254,7 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_name(val_t p0
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  /* ./native_interface//ni_metamodel.nit:167 */
+  /* native_interface/ni_metamodel.nit:167 */
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   goto label9;
   label9: while(0);
@@ -1275,7 +1275,7 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_csignature(val_t p0,
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//ni_metamodel.nit:172 */
+  /* native_interface/ni_metamodel.nit:172 */
   fra.me.REG[1] = CALL_native_interface___ni_metamodel___MMMethod___csignature_with_name(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[1]);
   goto label1;
   label1: while(0);
@@ -1298,7 +1298,7 @@ val_t native_interface___ni_metamodel___MMMethod___frontier_csignature_from(val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./native_interface//ni_metamodel.nit:177 */
+  /* native_interface/ni_metamodel.nit:177 */
   fra.me.REG[1] = CALL_native_interface___ni_metamodel___MMMethod___local_friendly_name_from(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
   fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMMethod___csignature_with_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
   goto label1;
@@ -1322,7 +1322,7 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_super_csignature(val
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_metamodel.nit:182 */
+  /* native_interface/ni_metamodel.nit:182 */
   if (!once_value_1) {
     fra.me.REG[1] = BOX_NativeString("___super");
     REGB0 = TAG_Int(8);
@@ -1353,7 +1353,7 @@ val_t native_interface___ni_metamodel___MMMethod___frontier_super_csignature_fro
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//ni_metamodel.nit:187 */
+  /* native_interface/ni_metamodel.nit:187 */
   fra.me.REG[1] = CALL_native_interface___ni_metamodel___MMMethod___local_friendly_super_name_from(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMMethod___csignature_with_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
@@ -1378,7 +1378,7 @@ val_t native_interface___ni_metamodel___MMMethod___impl_csignature(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_metamodel.nit:192 */
+  /* native_interface/ni_metamodel.nit:192 */
   if (!once_value_1) {
     fra.me.REG[1] = BOX_NativeString("___impl");
     REGB0 = TAG_Int(7);
@@ -1417,14 +1417,14 @@ val_t native_interface___ni_metamodel___MMMethod___cparams(val_t p0){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_metamodel.nit:198 */
+  /* native_interface/ni_metamodel.nit:198 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  /* ./native_interface//ni_metamodel.nit:200 */
+  /* native_interface/ni_metamodel.nit:200 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//ni_metamodel.nit:201 */
+    /* native_interface/ni_metamodel.nit:201 */
     if (!once_value_1) {
       fra.me.REG[2] = BOX_NativeString("val_t recv");
       REGB0 = TAG_Int(10);
@@ -1435,27 +1435,27 @@ val_t native_interface___ni_metamodel___MMMethod___cparams(val_t p0){
     fra.me.REG[2] = fra.me.REG[2];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
-  /* ./native_interface//ni_metamodel.nit:204 */
+  /* native_interface/ni_metamodel.nit:204 */
   fra.me.REG[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 204);
   }
   fra.me.REG[0] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1467,18 +1467,18 @@ val_t native_interface___ni_metamodel___MMMethod___cparams(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./native_interface//ni_metamodel.nit:205 */
+      /* native_interface/ni_metamodel.nit:205 */
       REGB1 = TAG_Int(3);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_2) {
@@ -1504,19 +1504,19 @@ val_t native_interface___ni_metamodel___MMMethod___cparams(val_t p0){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
       fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label4;
     }
   }
   label4: while(0);
-  /* ./native_interface//ni_metamodel.nit:208 */
+  /* native_interface/ni_metamodel.nit:208 */
   goto label5;
   label5: while(0);
   stack_frame_head = fra.me.prev;
@@ -1549,9 +1549,9 @@ val_t native_interface___ni_metamodel___MMMethod___out_csignature(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_metamodel.nit:213 */
+  /* native_interface/ni_metamodel.nit:213 */
   fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___init();
-  /* ./native_interface//ni_metamodel.nit:216 */
+  /* native_interface/ni_metamodel.nit:216 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1579,7 +1579,7 @@ val_t native_interface___ni_metamodel___MMMethod___out_csignature(val_t p0){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//ni_metamodel.nit:217 */
+    /* native_interface/ni_metamodel.nit:217 */
     if (!once_value_1) {
       fra.me.REG[2] = BOX_NativeString("val_t ");
       REGB0 = TAG_Int(6);
@@ -1590,7 +1590,7 @@ val_t native_interface___ni_metamodel___MMMethod___out_csignature(val_t p0){
     fra.me.REG[2] = fra.me.REG[2];
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   } else {
-    /* ./native_interface//ni_metamodel.nit:219 */
+    /* native_interface/ni_metamodel.nit:219 */
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("void ");
       REGB0 = TAG_Int(5);
@@ -1601,11 +1601,11 @@ val_t native_interface___ni_metamodel___MMMethod___out_csignature(val_t p0){
     fra.me.REG[2] = fra.me.REG[2];
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
-  /* ./native_interface//ni_metamodel.nit:223 */
+  /* native_interface/ni_metamodel.nit:223 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//ni_metamodel.nit:224 */
+    /* native_interface/ni_metamodel.nit:224 */
     REGB0 = TAG_Int(5);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_3) {
@@ -1643,7 +1643,7 @@ val_t native_interface___ni_metamodel___MMMethod___out_csignature(val_t p0){
     fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   } else {
-    /* ./native_interface//ni_metamodel.nit:226 */
+    /* native_interface/ni_metamodel.nit:226 */
     REGB0 = TAG_Int(3);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_6) {
@@ -1670,7 +1670,7 @@ val_t native_interface___ni_metamodel___MMMethod___out_csignature(val_t p0){
     fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
-  /* ./native_interface//ni_metamodel.nit:230 */
+  /* native_interface/ni_metamodel.nit:230 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_8) {
@@ -1704,7 +1704,7 @@ val_t native_interface___ni_metamodel___MMMethod___out_csignature(val_t p0){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./native_interface//ni_metamodel.nit:232 */
+  /* native_interface/ni_metamodel.nit:232 */
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   goto label11;
   label11: while(0);
@@ -1724,7 +1724,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___in_name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_metamodel.nit:238 */
+  /* native_interface/ni_metamodel.nit:238 */
   REGB0 = TAG_Bool(ATTR_native_interface___ni_metamodel___MMImportedCast_____atin_name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1748,7 +1748,7 @@ void native_interface___ni_metamodel___MMImportedCast___in_name__eq(val_t p0, va
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//ni_metamodel.nit:238 */
+  /* native_interface/ni_metamodel.nit:238 */
   ATTR_native_interface___ni_metamodel___MMImportedCast_____atin_name(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1776,13 +1776,13 @@ val_t native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_metamodel.nit:241 */
+  /* native_interface/ni_metamodel.nit:241 */
   REGB0 = CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//ni_metamodel.nit:242 */
+    /* native_interface/ni_metamodel.nit:242 */
     REGB0 = CALL_metamodel___static_type___MMImportedCast___is_not_null_to_nullable(fra.me.REG[0])(fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./native_interface//ni_metamodel.nit:244 */
+      /* native_interface/ni_metamodel.nit:244 */
       REGB0 = TAG_Int(3);
       fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_1) {
@@ -1809,10 +1809,10 @@ val_t native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name
       fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
       goto label3;
     } else {
-      /* ./native_interface//ni_metamodel.nit:245 */
+      /* native_interface/ni_metamodel.nit:245 */
       REGB0 = CALL_metamodel___static_type___MMImportedCast___is_nullable_to_not_null(fra.me.REG[0])(fra.me.REG[0]);
       if (UNTAG_Bool(REGB0)) {
-        /* ./native_interface//ni_metamodel.nit:247 */
+        /* native_interface/ni_metamodel.nit:247 */
         REGB0 = TAG_Int(3);
         fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_4) {
@@ -1840,12 +1840,12 @@ val_t native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name
         fra.me.REG[1] = fra.me.REG[2];
         goto label3;
       } else {
-        /* ./native_interface//ni_metamodel.nit:249 */
+        /* native_interface/ni_metamodel.nit:249 */
         nit_abort("Aborted", NULL, LOCATE_native_interface___ni_metamodel, 249);
       }
     }
   } else {
-    /* ./native_interface//ni_metamodel.nit:253 */
+    /* native_interface/ni_metamodel.nit:253 */
     REGB0 = TAG_Int(5);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_6) {
@@ -1909,7 +1909,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___as_local_cname(val_t p0
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//ni_metamodel.nit:258 */
+  /* native_interface/ni_metamodel.nit:258 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -1971,7 +1971,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___as_local_csignature(val
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//ni_metamodel.nit:263 */
+  /* native_interface/ni_metamodel.nit:263 */
   REGB0 = TAG_Int(9);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2055,7 +2055,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___as_friendly_csignature(
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_metamodel.nit:268 */
+  /* native_interface/ni_metamodel.nit:268 */
   REGB0 = TAG_Int(9);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2140,19 +2140,19 @@ val_t native_interface___ni_metamodel___MMImportedCast___is_a_friendly_extern_na
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_metamodel.nit:272 */
+  /* native_interface/ni_metamodel.nit:272 */
   REGB0 = CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./native_interface//ni_metamodel.nit:273 */
+    /* native_interface/ni_metamodel.nit:273 */
     REGB0 = CALL_metamodel___static_type___MMImportedCast___is_not_null_to_nullable(fra.me.REG[0])(fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./native_interface//ni_metamodel.nit:274 */
+      /* native_interface/ni_metamodel.nit:274 */
       nit_abort("Aborted", NULL, LOCATE_native_interface___ni_metamodel, 274);
     } else {
-      /* ./native_interface//ni_metamodel.nit:275 */
+      /* native_interface/ni_metamodel.nit:275 */
       REGB0 = CALL_metamodel___static_type___MMImportedCast___is_nullable_to_not_null(fra.me.REG[0])(fra.me.REG[0]);
       if (UNTAG_Bool(REGB0)) {
-        /* ./native_interface//ni_metamodel.nit:278 */
+        /* native_interface/ni_metamodel.nit:278 */
         REGB0 = TAG_Int(3);
         fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_1) {
@@ -2179,12 +2179,12 @@ val_t native_interface___ni_metamodel___MMImportedCast___is_a_friendly_extern_na
         fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
         goto label3;
       } else {
-        /* ./native_interface//ni_metamodel.nit:280 */
+        /* native_interface/ni_metamodel.nit:280 */
         nit_abort("Aborted", NULL, LOCATE_native_interface___ni_metamodel, 280);
       }
     }
   } else {
-    /* ./native_interface//ni_metamodel.nit:284 */
+    /* native_interface/ni_metamodel.nit:284 */
     REGB0 = TAG_Int(5);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_4) {
@@ -2248,7 +2248,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___is_a_local_cname(val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//ni_metamodel.nit:289 */
+  /* native_interface/ni_metamodel.nit:289 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2309,7 +2309,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___is_a_local_csignature(v
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//ni_metamodel.nit:296 */
+  /* native_interface/ni_metamodel.nit:296 */
   REGB0 = TAG_Int(7);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2380,7 +2380,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___is_a_friendly_csignatur
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_metamodel.nit:301 */
+  /* native_interface/ni_metamodel.nit:301 */
   REGB0 = TAG_Int(7);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2447,14 +2447,14 @@ val_t native_interface___ni_metamodel___MMImportedCast___hash(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_metamodel.nit:306 */
+  /* native_interface/ni_metamodel.nit:306 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___hash___Object___hash(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_metamodel___static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = CALL_standard___hash___Object___hash(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./native_interface//ni_metamodel.nit:306 */
+  /* native_interface/ni_metamodel.nit:306 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
index d7853c1..6801d60 100644 (file)
@@ -13,7 +13,7 @@ val_t native_interface___ni_tools___FunctionCompiler___signature(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_tools.nit:23 */
+  /* native_interface/ni_tools.nit:23 */
   REGB0 = TAG_Bool(ATTR_native_interface___ni_tools___FunctionCompiler_____atsignature(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -37,7 +37,7 @@ void native_interface___ni_tools___FunctionCompiler___signature__eq(val_t p0, va
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//ni_tools.nit:23 */
+  /* native_interface/ni_tools.nit:23 */
   ATTR_native_interface___ni_tools___FunctionCompiler_____atsignature(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -55,7 +55,7 @@ val_t native_interface___ni_tools___FunctionCompiler___decls(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_tools.nit:25 */
+  /* native_interface/ni_tools.nit:25 */
   REGB0 = TAG_Bool(ATTR_native_interface___ni_tools___FunctionCompiler_____atdecls(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -79,7 +79,7 @@ void native_interface___ni_tools___FunctionCompiler___decls__eq(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//ni_tools.nit:25 */
+  /* native_interface/ni_tools.nit:25 */
   ATTR_native_interface___ni_tools___FunctionCompiler_____atdecls(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -97,7 +97,7 @@ val_t native_interface___ni_tools___FunctionCompiler___exprs(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_tools.nit:26 */
+  /* native_interface/ni_tools.nit:26 */
   REGB0 = TAG_Bool(ATTR_native_interface___ni_tools___FunctionCompiler_____atexprs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -121,7 +121,7 @@ void native_interface___ni_tools___FunctionCompiler___exprs__eq(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./native_interface//ni_tools.nit:26 */
+  /* native_interface/ni_tools.nit:26 */
   ATTR_native_interface___ni_tools___FunctionCompiler_____atexprs(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -145,9 +145,9 @@ val_t native_interface___ni_tools___FunctionCompiler___to_writer(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_tools.nit:30 */
+  /* native_interface/ni_tools.nit:30 */
   fra.me.REG[1] = NEW_Writer_compiling___compiling_writer___Writer___init();
-  /* ./native_interface//ni_tools.nit:32 */
+  /* native_interface/ni_tools.nit:32 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -172,13 +172,13 @@ val_t native_interface___ni_tools___FunctionCompiler___to_writer(val_t p0){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./native_interface//ni_tools.nit:34 */
+  /* native_interface/ni_tools.nit:34 */
   fra.me.REG[2] = CALL_native_interface___ni_tools___FunctionCompiler___decls(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_writer___Writer___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./native_interface//ni_tools.nit:35 */
+  /* native_interface/ni_tools.nit:35 */
   fra.me.REG[0] = CALL_native_interface___ni_tools___FunctionCompiler___exprs(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_writer___Writer___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./native_interface//ni_tools.nit:37 */
+  /* native_interface/ni_tools.nit:37 */
   if (!once_value_3) {
     fra.me.REG[0] = BOX_NativeString("}\n");
     REGB0 = TAG_Int(2);
@@ -188,7 +188,7 @@ val_t native_interface___ni_tools___FunctionCompiler___to_writer(val_t p0){
   } else fra.me.REG[0] = once_value_3;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./native_interface//ni_tools.nit:39 */
+  /* native_interface/ni_tools.nit:39 */
   goto label4;
   label4: while(0);
   stack_frame_head = fra.me.prev;
index d59655e..a2e1801 100644 (file)
@@ -14,10 +14,10 @@ val_t nit_version___Object___nit_version(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./nit_version.nit:3 */
+  /* nit_version.nit:3 */
   if (!once_value_1) {
-    fra.me.REG[0] = BOX_NativeString("v0.4-168-ga231494");
-    REGB0 = TAG_Int(17);
+    fra.me.REG[0] = BOX_NativeString("v0.4-240-ge296f83_nc3");
+    REGB0 = TAG_Int(21);
     fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
     once_value_1 = fra.me.REG[0];
     register_static_object(&once_value_1);
index dbb0d7c..f9228ec 100755 (executable)
 #!/bin/sh
 # This shell script is generated by NIT to compile the program ./nitc.
 CLIBDIR="clib"
-./../bin/gccx -v -d . -I $CLIBDIR -I . -o nitc -O "$@" \
+../bin/gccx -v -d . -I $CLIBDIR -I . -o nitc "$@" \
   $CLIBDIR/nit_main.c\
   $CLIBDIR/gc.c\
   $CLIBDIR/gc_static_objects_list.c\
-  ./abstracttool._sep.c\
-  ./syntax._sep.c\
-  ./syntax___mmbuilder._sep.c\
-  ./syntax___syntax_base._sep.c\
-  ./parser._sep.c\
-  ./parser___parser_prod._sep.c\
-  ./parser___lexer._sep.c\
-  ./parser___parser_nodes._sep.c\
-  ./location._sep.c\
-  ./standard._sep.c\
-  ./environ._nitni.c\
-  ./standard___environ._sep.c\
-  ./standard___symbol._sep.c\
-  ./string._nitni.c\
-  ./standard___string._sep.c\
-  ./standard___collection._sep.c\
-  ./standard___collection___range._sep.c\
-  ./standard___collection___abstract_collection._sep.c\
-  ./kernel._nitni.c\
-  ./standard___kernel._sep.c\
-  ./standard___collection___list._sep.c\
-  ./standard___collection___sorter._sep.c\
-  ./standard___collection___array._sep.c\
-  ./standard___collection___hash_collection._sep.c\
-  ./standard___hash._sep.c\
-  ./time._nitni.c\
-  ./standard___time._sep.c\
-  ./file._nitni.c\
-  ./file_nit.c\
-  ./standard___file._sep.c\
-  ./stream._nitni.c\
-  ./stream_nit.c\
-  ./standard___stream._sep.c\
-  ./standard___string_search._sep.c\
-  ./exec._nitni.c\
-  ./exec_nit.c\
-  ./standard___exec._sep.c\
-  ./math._nitni.c\
-  ./standard___math._sep.c\
-  ./standard___gc._sep.c\
-  ./tables._nitni.c\
-  ./tables_nit.c\
-  ./parser___tables._sep.c\
-  ./mmloader._sep.c\
-  ./metamodel._sep.c\
-  ./metamodel___vararg._sep.c\
-  ./metamodel___genericity._sep.c\
-  ./metamodel___type_formal._sep.c\
-  ./metamodel___inheritance._sep.c\
-  ./metamodel___static_type._sep.c\
-  ./metamodel___abstractmetamodel._sep.c\
-  ./metamodel___partial_order._sep.c\
-  ./metamodel___virtualtype._sep.c\
-  ./opts._sep.c\
-  ./primitive_info._sep.c\
-  ./syntax___icode_generation._sep.c\
-  ./icode._sep.c\
-  ./icode___icode_tools._sep.c\
-  ./icode___icode_builder._sep.c\
-  ./icode___icode_base._sep.c\
-  ./syntax___typing._sep.c\
-  ./syntax___scope._sep.c\
-  ./syntax___flow._sep.c\
-  ./nit_version._sep.c\
-  ./separate_options._sep.c\
-  ./native_interface._sep.c\
-  ./native_interface___frontier._sep.c\
-  ./native_interface___ni_tools._sep.c\
-  ./compiling._sep.c\
-  ./compiling___icode_generator._sep.c\
-  ./compiling___compiling_base._sep.c\
-  ./utils._sep.c\
-  ./program._sep.c\
-  ./compiling___compiling_writer._sep.c\
-  ./analysis._sep.c\
-  ./analysis___icode_dump._sep.c\
-  ./analysis___allocate_iregister_slots._sep.c\
-  ./analysis___inline_methods._sep.c\
-  ./analysis___cha_analysis._sep.c\
-  ./analysis___reachable_method_analysis._sep.c\
-  ./analysis___rta_analysis._sep.c\
-  ./analysis___instantiated_type_analysis._sep.c\
-  ./analysis___reachable_as_init_impl._sep.c\
-  ./analysis___reachable_as_init._sep.c\
-  ./analysis___reachable_from_init_method_analysis_impl._sep.c\
-  ./analysis___reachable_from_init_method_analysis._sep.c\
-  ./analysis___dead_method_removal._sep.c\
-  ./analysis___inline_get_and_set._sep.c\
-  ./analysis___remove_out_of_init_get_test._sep.c\
-  ./compiling___compiling_global._sep.c\
-  ./compiling___table_computation._sep.c\
-  ./compiling___compiling_icode._sep.c\
-  ./native_interface___ni_metamodel._sep.c\
-  ./nitc._sep.c\
-  ./nitc._tables.c
+  global._sep.c\
+  abstracttool._sep.c\
+  syntax._sep.c\
+  syntax___mmbuilder._sep.c\
+  syntax___syntax_base._sep.c\
+  parser._sep.c\
+  parser___parser_prod._sep.c\
+  parser___lexer._sep.c\
+  parser___parser_nodes._sep.c\
+  location._sep.c\
+  standard._sep.c\
+  environ._nitni.c\
+  standard___environ._sep.c\
+  standard___symbol._sep.c\
+  string._nitni.c\
+  string_nit.c\
+  standard___string._sep.c\
+  standard___collection._sep.c\
+  standard___collection___range._sep.c\
+  standard___collection___abstract_collection._sep.c\
+  kernel._nitni.c\
+  standard___kernel._sep.c\
+  standard___collection___list._sep.c\
+  standard___collection___sorter._sep.c\
+  standard___collection___array._sep.c\
+  standard___collection___hash_collection._sep.c\
+  standard___hash._sep.c\
+  time._nitni.c\
+  standard___time._sep.c\
+  file._nitni.c\
+  file_nit.c\
+  standard___file._sep.c\
+  stream._nitni.c\
+  stream_nit.c\
+  standard___stream._sep.c\
+  standard___string_search._sep.c\
+  exec._nitni.c\
+  exec_nit.c\
+  standard___exec._sep.c\
+  math._nitni.c\
+  standard___math._sep.c\
+  standard___gc._sep.c\
+  tables._nitni.c\
+  tables_nit.c\
+  parser___tables._sep.c\
+  mmloader._sep.c\
+  metamodel._sep.c\
+  metamodel___vararg._sep.c\
+  metamodel___genericity._sep.c\
+  metamodel___type_formal._sep.c\
+  metamodel___inheritance._sep.c\
+  metamodel___static_type._sep.c\
+  metamodel___abstractmetamodel._sep.c\
+  metamodel___partial_order._sep.c\
+  metamodel___virtualtype._sep.c\
+  toolcontext._sep.c\
+  opts._sep.c\
+  primitive_info._sep.c\
+  syntax___icode_generation._sep.c\
+  icode._sep.c\
+  icode___icode_tools._sep.c\
+  icode___icode_builder._sep.c\
+  icode___icode_base._sep.c\
+  syntax___typing._sep.c\
+  syntax___scope._sep.c\
+  syntax___flow._sep.c\
+  nit_version._sep.c\
+  global___cha_analysis._sep.c\
+  global___reachable_method_analysis._sep.c\
+  program._sep.c\
+  global___rta_analysis._sep.c\
+  global___instantiated_type_analysis._sep.c\
+  global___reachable_as_init_impl._sep.c\
+  global___reachable_as_init._sep.c\
+  global___reachable_from_init_method_analysis_impl._sep.c\
+  global___reachable_from_init_method_analysis._sep.c\
+  global___dead_method_removal._sep.c\
+  global___inline_get_and_set._sep.c\
+  global___remove_out_of_init_get_test._sep.c\
+  separate_options._sep.c\
+  native_interface._sep.c\
+  native_interface___frontier._sep.c\
+  native_interface___ni_tools._sep.c\
+  compiling._sep.c\
+  compiling___icode_generator._sep.c\
+  compiling___compiling_base._sep.c\
+  utils._sep.c\
+  compiling___compiling_writer._sep.c\
+  analysis._sep.c\
+  analysis___icode_dump._sep.c\
+  analysis___allocate_iregister_slots._sep.c\
+  analysis___inline_methods._sep.c\
+  compiling___compiling_global._sep.c\
+  compiling___table_computation._sep.c\
+  compiling___compiling_icode._sep.c\
+  native_interface___ni_metamodel._sep.c\
+  nitc._sep.c\
+  nitc._tables.c
index 24e7bfc..d76c3d2 100644 (file)
@@ -6,18 +6,18 @@ val_t nitc___NitCompiler___opt_output(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 31;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_nitc___NitCompiler___opt_output;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./nitc.nit:31 */
+  /* nitc.nit:32 */
   REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_output(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_opt_output", LOCATE_nitc, 31);
+    nit_abort("Uninitialized attribute %s", "_opt_output", LOCATE_nitc, 32);
   }
   fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_output(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -29,18 +29,18 @@ val_t nitc___NitCompiler___opt_boost(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 32;
+  fra.me.line = 33;
   fra.me.meth = LOCATE_nitc___NitCompiler___opt_boost;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./nitc.nit:32 */
+  /* nitc.nit:33 */
   REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_boost(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_opt_boost", LOCATE_nitc, 32);
+    nit_abort("Uninitialized attribute %s", "_opt_boost", LOCATE_nitc, 33);
   }
   fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_boost(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -52,18 +52,18 @@ val_t nitc___NitCompiler___opt_no_cc(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 33;
+  fra.me.line = 34;
   fra.me.meth = LOCATE_nitc___NitCompiler___opt_no_cc;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./nitc.nit:33 */
+  /* nitc.nit:34 */
   REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_no_cc(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_opt_no_cc", LOCATE_nitc, 33);
+    nit_abort("Uninitialized attribute %s", "_opt_no_cc", LOCATE_nitc, 34);
   }
   fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_no_cc(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -75,202 +75,41 @@ val_t nitc___NitCompiler___opt_cc_no_link(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 34;
+  fra.me.line = 35;
   fra.me.meth = LOCATE_nitc___NitCompiler___opt_cc_no_link;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./nitc.nit:34 */
+  /* nitc.nit:35 */
   REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_cc_no_link(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_opt_cc_no_link", LOCATE_nitc, 34);
+    nit_abort("Uninitialized attribute %s", "_opt_cc_no_link", LOCATE_nitc, 35);
   }
   fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_cc_no_link(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t nitc___NitCompiler___opt_global(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 35;
-  fra.me.meth = LOCATE_nitc___NitCompiler___opt_global;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./nitc.nit:35 */
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_global(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_global", LOCATE_nitc, 35);
-  }
-  fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_global(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t nitc___NitCompiler___opt_global_no_STF_opt(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 36;
-  fra.me.meth = LOCATE_nitc___NitCompiler___opt_global_no_STF_opt;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./nitc.nit:36 */
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_global_no_STF_opt(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_global_no_STF_opt", LOCATE_nitc, 36);
-  }
-  fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_global_no_STF_opt(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t nitc___NitCompiler___opt_global_no_DMR_opt(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 37;
-  fra.me.meth = LOCATE_nitc___NitCompiler___opt_global_no_DMR_opt;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./nitc.nit:37 */
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_global_no_DMR_opt(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_global_no_DMR_opt", LOCATE_nitc, 37);
-  }
-  fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_global_no_DMR_opt(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t nitc___NitCompiler___opt_global_no_inline_get_set(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 38;
-  fra.me.meth = LOCATE_nitc___NitCompiler___opt_global_no_inline_get_set;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./nitc.nit:38 */
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_global_no_inline_get_set(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_global_no_inline_get_set", LOCATE_nitc, 38);
-  }
-  fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_global_no_inline_get_set(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t nitc___NitCompiler___opt_global_no_out_of_init_get_test_opt(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 39;
-  fra.me.meth = LOCATE_nitc___NitCompiler___opt_global_no_out_of_init_get_test_opt;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./nitc.nit:39 */
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_global_no_out_of_init_get_test_opt(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_global_no_out_of_init_get_test_opt", LOCATE_nitc, 39);
-  }
-  fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_global_no_out_of_init_get_test_opt(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t nitc___NitCompiler___opt_global_no_RFIMA(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 40;
-  fra.me.meth = LOCATE_nitc___NitCompiler___opt_global_no_RFIMA;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./nitc.nit:40 */
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_global_no_RFIMA(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_global_no_RFIMA", LOCATE_nitc, 40);
-  }
-  fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_global_no_RFIMA(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t nitc___NitCompiler___opt_global_callgraph(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 41;
-  fra.me.meth = LOCATE_nitc___NitCompiler___opt_global_callgraph;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./nitc.nit:41 */
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_global_callgraph(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_global_callgraph", LOCATE_nitc, 41);
-  }
-  fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_global_callgraph(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
 val_t nitc___NitCompiler___opt_clibdir(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 42;
+  fra.me.line = 36;
   fra.me.meth = LOCATE_nitc___NitCompiler___opt_clibdir;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./nitc.nit:42 */
+  /* nitc.nit:36 */
   REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_clibdir(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_opt_clibdir", LOCATE_nitc, 42);
+    nit_abort("Uninitialized attribute %s", "_opt_clibdir", LOCATE_nitc, 36);
   }
   fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_clibdir(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -282,18 +121,18 @@ val_t nitc___NitCompiler___opt_bindir(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 43;
+  fra.me.line = 37;
   fra.me.meth = LOCATE_nitc___NitCompiler___opt_bindir;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./nitc.nit:43 */
+  /* nitc.nit:37 */
   REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_bindir(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_opt_bindir", LOCATE_nitc, 43);
+    nit_abort("Uninitialized attribute %s", "_opt_bindir", LOCATE_nitc, 37);
   }
   fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_bindir(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -305,18 +144,18 @@ val_t nitc___NitCompiler___opt_compdir(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 44;
+  fra.me.line = 38;
   fra.me.meth = LOCATE_nitc___NitCompiler___opt_compdir;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./nitc.nit:44 */
+  /* nitc.nit:38 */
   REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_compdir(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_opt_compdir", LOCATE_nitc, 44);
+    nit_abort("Uninitialized attribute %s", "_opt_compdir", LOCATE_nitc, 38);
   }
   fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_compdir(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -328,18 +167,18 @@ val_t nitc___NitCompiler___opt_extension_prefix(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 45;
+  fra.me.line = 39;
   fra.me.meth = LOCATE_nitc___NitCompiler___opt_extension_prefix;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./nitc.nit:45 */
+  /* nitc.nit:39 */
   REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_extension_prefix(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_opt_extension_prefix", LOCATE_nitc, 45);
+    nit_abort("Uninitialized attribute %s", "_opt_extension_prefix", LOCATE_nitc, 39);
   }
   fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_extension_prefix(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -351,18 +190,18 @@ val_t nitc___NitCompiler___opt_output_format(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 46;
+  fra.me.line = 40;
   fra.me.meth = LOCATE_nitc___NitCompiler___opt_output_format;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./nitc.nit:46 */
+  /* nitc.nit:40 */
   REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_output_format(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_opt_output_format", LOCATE_nitc, 46);
+    nit_abort("Uninitialized attribute %s", "_opt_output_format", LOCATE_nitc, 40);
   }
   fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_output_format(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -377,7 +216,7 @@ void nitc___NitCompiler___init(val_t p0, int* init_table){
   if (init_table[itpos0]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 48;
+  fra.me.line = 42;
   fra.me.meth = LOCATE_nitc___NitCompiler___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -387,9 +226,9 @@ void nitc___NitCompiler___init(val_t p0, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./nitc.nit:48 */
+  /* nitc.nit:42 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./nitc.nit:50 */
+  /* nitc.nit:44 */
   if (!once_value_1) {
     fra.me.REG[2] = BOX_NativeString("nitc");
     REGB0 = TAG_Int(4);
@@ -399,9 +238,9 @@ void nitc___NitCompiler___init(val_t p0, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_abstracttool___AbstractCompiler___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], init_table);
-  /* ./nitc.nit:51 */
-  fra.me.REG[2] = CALL_mmloader___ToolContext___option_context(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = TAG_Int(18);
+  /* nitc.nit:45 */
+  fra.me.REG[2] = CALL_toolcontext___ToolContext___option_context(fra.me.REG[1])(fra.me.REG[1]);
+  REGB0 = TAG_Int(11);
   fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   fra.me.REG[3] = CALL_nitc___NitCompiler___opt_output(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
@@ -417,8 +256,6 @@ void nitc___NitCompiler___init(val_t p0, int* init_table){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
   fra.me.REG[3] = CALL_separate_options___ToolContext___opt_cc_include_paths(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_nitc___NitCompiler___opt_global(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
   fra.me.REG[3] = CALL_nitc___NitCompiler___opt_clibdir(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
   fra.me.REG[3] = CALL_nitc___NitCompiler___opt_bindir(fra.me.REG[1])(fra.me.REG[1]);
@@ -427,18 +264,6 @@ void nitc___NitCompiler___init(val_t p0, int* init_table){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
   fra.me.REG[3] = CALL_nitc___NitCompiler___opt_extension_prefix(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_nitc___NitCompiler___opt_global_no_STF_opt(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_nitc___NitCompiler___opt_global_no_DMR_opt(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_nitc___NitCompiler___opt_global_callgraph(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_nitc___NitCompiler___opt_global_no_inline_get_set(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_nitc___NitCompiler___opt_global_no_RFIMA(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-  fra.me.REG[3] = CALL_nitc___NitCompiler___opt_global_no_out_of_init_get_test_opt(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
   fra.me.REG[1] = CALL_nitc___NitCompiler___opt_output_format(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   CALL_opts___OptionContext___add_option(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
@@ -471,7 +296,7 @@ void nitc___NitCompiler___process_options(val_t p0){
       static val_t once_value_18; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 54;
+  fra.me.line = 48;
   fra.me.meth = LOCATE_nitc___NitCompiler___process_options;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -481,46 +306,46 @@ void nitc___NitCompiler___process_options(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./nitc.nit:54 */
+  /* nitc.nit:48 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./nitc.nit:56 */
+  /* nitc.nit:50 */
   CALL_SUPER_nitc___NitCompiler___process_options(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./nitc.nit:57 */
+  /* nitc.nit:51 */
   fra.me.REG[0] = CALL_nitc___NitCompiler___opt_output(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_base___ToolContext___output_file__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./nitc.nit:58 */
+  /* nitc.nit:52 */
   fra.me.REG[0] = CALL_nitc___NitCompiler___opt_boost(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_base___ToolContext___boost__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./nitc.nit:59 */
+  /* nitc.nit:53 */
   fra.me.REG[0] = CALL_nitc___NitCompiler___opt_no_cc(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_base___ToolContext___no_cc__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./nitc.nit:60 */
+  /* nitc.nit:54 */
   fra.me.REG[0] = CALL_nitc___NitCompiler___opt_cc_no_link(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(fra.me.REG[0]));
   CALL_compiling___compiling_base___ToolContext___cc_link__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
-  /* ./nitc.nit:61 */
+  /* nitc.nit:55 */
   fra.me.REG[0] = CALL_compiling___compiling_base___ToolContext___cc_lib_paths(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_separate_options___ToolContext___opt_cc_lib_paths(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./nitc.nit:62 */
+  /* nitc.nit:56 */
   fra.me.REG[2] = CALL_compiling___compiling_base___ToolContext___cc_libs(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_separate_options___ToolContext___opt_cc_libs(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* ./nitc.nit:63 */
+  /* nitc.nit:57 */
   fra.me.REG[0] = CALL_compiling___compiling_base___ToolContext___cc_include_paths(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_separate_options___ToolContext___opt_cc_include_paths(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./nitc.nit:64 */
+  /* nitc.nit:58 */
   fra.me.REG[2] = CALL_nitc___NitCompiler___opt_extension_prefix(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./nitc.nit:65 */
+  /* nitc.nit:59 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -547,40 +372,11 @@ void nitc___NitCompiler___process_options(val_t p0){
     fra.me.REG[2] = fra.me.REG[2];
     CALL_compiling___compiling_base___ToolContext___ext_prefix__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
-  /* ./nitc.nit:66 */
-  fra.me.REG[2] = CALL_nitc___NitCompiler___opt_global(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_program___ToolContext___global__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./nitc.nit:67 */
-  fra.me.REG[2] = CALL_nitc___NitCompiler___opt_global_no_STF_opt(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = TAG_Bool(!UNTAG_Bool(fra.me.REG[2]));
-  CALL_program___ToolContext___use_SFT_optimization__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
-  /* ./nitc.nit:68 */
-  fra.me.REG[2] = CALL_nitc___NitCompiler___opt_global_no_DMR_opt(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_analysis___ToolContext___no_dead_method_removal__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./nitc.nit:69 */
-  fra.me.REG[2] = CALL_nitc___NitCompiler___opt_global_no_inline_get_set(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_analysis___ToolContext___no_inline_get_set__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./nitc.nit:70 */
-  fra.me.REG[2] = CALL_nitc___NitCompiler___opt_global_no_RFIMA(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_analysis___ToolContext___no_callgraph_from_init__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./nitc.nit:71 */
-  fra.me.REG[2] = CALL_nitc___NitCompiler___opt_global_no_out_of_init_get_test_opt(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_analysis___ToolContext___no_out_of_init_get_test_removal__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./nitc.nit:72 */
-  fra.me.REG[2] = CALL_nitc___NitCompiler___opt_global_callgraph(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[2] = CALL_opts___OptionEnum___value_name(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_analysis___ToolContext___global_callgraph__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./nitc.nit:73 */
+  /* nitc.nit:60 */
   fra.me.REG[2] = CALL_nitc___NitCompiler___opt_compdir(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_base___ToolContext___compdir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./nitc.nit:74 */
+  /* nitc.nit:61 */
   fra.me.REG[2] = CALL_compiling___compiling_base___ToolContext___compdir(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -595,7 +391,7 @@ void nitc___NitCompiler___process_options(val_t p0){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./nitc.nit:75 */
+    /* nitc.nit:62 */
     if (!once_value_2) {
       if (!once_value_3) {
         fra.me.REG[2] = BOX_NativeString("NIT_COMPDIR");
@@ -611,14 +407,14 @@ void nitc___NitCompiler___process_options(val_t p0){
       register_static_object(&once_value_2);
     } else fra.me.REG[2] = once_value_2;
     fra.me.REG[2] = fra.me.REG[2];
-    /* ./nitc.nit:76 */
+    /* nitc.nit:63 */
     REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./nitc.nit:77 */
+      /* nitc.nit:64 */
       CALL_compiling___compiling_base___ToolContext___compdir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
     }
-    /* ./nitc.nit:79 */
+    /* nitc.nit:66 */
     fra.me.REG[2] = CALL_compiling___compiling_base___ToolContext___compdir(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -633,7 +429,7 @@ void nitc___NitCompiler___process_options(val_t p0){
       }
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./nitc.nit:80 */
+      /* nitc.nit:67 */
       if (!once_value_4) {
         fra.me.REG[2] = BOX_NativeString(".nit_compile");
         REGB0 = TAG_Int(12);
@@ -645,16 +441,24 @@ void nitc___NitCompiler___process_options(val_t p0){
       CALL_compiling___compiling_base___ToolContext___compdir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
     }
   }
-  /* ./nitc.nit:83 */
+  /* nitc.nit:70 */
   fra.me.REG[2] = CALL_compiling___compiling_base___ToolContext___compdir(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_compiling___compiling_base___ToolContext___ext_prefix(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_standard___string___String_____plus(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
   CALL_compiling___compiling_base___ToolContext___compdir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./nitc.nit:85 */
+  /* nitc.nit:71 */
+  fra.me.REG[0] = CALL_compiling___compiling_base___ToolContext___compdir(fra.me.REG[1])(fra.me.REG[1]);
+  REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_nitc, 71);
+  }
+  fra.me.REG[0] = CALL_standard___file___String___simplify_path(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_compiling___compiling_base___ToolContext___compdir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  /* nitc.nit:73 */
   fra.me.REG[0] = CALL_nitc___NitCompiler___opt_clibdir(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_base___ToolContext___clibdir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./nitc.nit:86 */
+  /* nitc.nit:74 */
   fra.me.REG[0] = CALL_compiling___compiling_base___ToolContext___clibdir(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -669,7 +473,7 @@ void nitc___NitCompiler___process_options(val_t p0){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./nitc.nit:87 */
+    /* nitc.nit:75 */
     if (!once_value_5) {
       if (!once_value_6) {
         fra.me.REG[0] = BOX_NativeString("NIT_DIR");
@@ -685,10 +489,10 @@ void nitc___NitCompiler___process_options(val_t p0){
       register_static_object(&once_value_5);
     } else fra.me.REG[0] = once_value_5;
     fra.me.REG[0] = fra.me.REG[0];
-    /* ./nitc.nit:88 */
+    /* nitc.nit:76 */
     REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./nitc.nit:89 */
+      /* nitc.nit:77 */
       REGB0 = TAG_Int(3);
       fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_7) {
@@ -715,13 +519,13 @@ void nitc___NitCompiler___process_options(val_t p0){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
       fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
       fra.me.REG[0] = fra.me.REG[2];
-      /* ./nitc.nit:90 */
+      /* nitc.nit:78 */
       REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[0])(fra.me.REG[0]);
       if (UNTAG_Bool(REGB0)) {
         CALL_compiling___compiling_base___ToolContext___clibdir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
       }
     } else {
-      /* ./nitc.nit:92 */
+      /* nitc.nit:80 */
       REGB0 = TAG_Int(3);
       fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_9) {
@@ -745,13 +549,13 @@ void nitc___NitCompiler___process_options(val_t p0){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
       fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
       fra.me.REG[0] = fra.me.REG[2];
-      /* ./nitc.nit:93 */
+      /* nitc.nit:81 */
       REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[0])(fra.me.REG[0]);
       if (UNTAG_Bool(REGB0)) {
         CALL_compiling___compiling_base___ToolContext___clibdir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
       }
     }
-    /* ./nitc.nit:95 */
+    /* nitc.nit:83 */
     fra.me.REG[0] = CALL_compiling___compiling_base___ToolContext___clibdir(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -766,7 +570,7 @@ void nitc___NitCompiler___process_options(val_t p0){
       }
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./nitc.nit:96 */
+      /* nitc.nit:84 */
       if (!once_value_11) {
         fra.me.REG[0] = BOX_NativeString("Error: Cannot locate NIT C library directory. Uses --clibdir or envvar NIT_DIR.");
         REGB0 = TAG_Int(79);
@@ -775,14 +579,22 @@ void nitc___NitCompiler___process_options(val_t p0){
         register_static_object(&once_value_11);
       } else fra.me.REG[0] = once_value_11;
       fra.me.REG[0] = fra.me.REG[0];
-      CALL_mmloader___ToolContext___fatal_error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[0]);
+      CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[0]);
     }
   }
-  /* ./nitc.nit:99 */
+  /* nitc.nit:87 */
+  fra.me.REG[0] = CALL_compiling___compiling_base___ToolContext___clibdir(fra.me.REG[1])(fra.me.REG[1]);
+  REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_nitc, 87);
+  }
+  fra.me.REG[0] = CALL_standard___file___String___simplify_path(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_compiling___compiling_base___ToolContext___clibdir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  /* nitc.nit:89 */
   fra.me.REG[0] = CALL_nitc___NitCompiler___opt_bindir(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
   CALL_compiling___compiling_base___ToolContext___bindir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./nitc.nit:101 */
+  /* nitc.nit:90 */
   fra.me.REG[0] = CALL_compiling___compiling_base___ToolContext___bindir(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -797,7 +609,7 @@ void nitc___NitCompiler___process_options(val_t p0){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./nitc.nit:102 */
+    /* nitc.nit:91 */
     if (!once_value_12) {
       if (!once_value_13) {
         fra.me.REG[0] = BOX_NativeString("NIT_DIR");
@@ -813,10 +625,10 @@ void nitc___NitCompiler___process_options(val_t p0){
       register_static_object(&once_value_12);
     } else fra.me.REG[0] = once_value_12;
     fra.me.REG[0] = fra.me.REG[0];
-    /* ./nitc.nit:103 */
+    /* nitc.nit:92 */
     REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./nitc.nit:104 */
+      /* nitc.nit:93 */
       REGB0 = TAG_Int(3);
       fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_14) {
@@ -843,13 +655,13 @@ void nitc___NitCompiler___process_options(val_t p0){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
       fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
       fra.me.REG[0] = fra.me.REG[2];
-      /* ./nitc.nit:105 */
+      /* nitc.nit:94 */
       REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[0])(fra.me.REG[0]);
       if (UNTAG_Bool(REGB0)) {
         CALL_compiling___compiling_base___ToolContext___bindir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
       }
     } else {
-      /* ./nitc.nit:107 */
+      /* nitc.nit:96 */
       REGB0 = TAG_Int(3);
       fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_16) {
@@ -873,13 +685,13 @@ void nitc___NitCompiler___process_options(val_t p0){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
       fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
       fra.me.REG[0] = fra.me.REG[2];
-      /* ./nitc.nit:108 */
+      /* nitc.nit:97 */
       REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[0])(fra.me.REG[0]);
       if (UNTAG_Bool(REGB0)) {
         CALL_compiling___compiling_base___ToolContext___bindir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
       }
     }
-    /* ./nitc.nit:110 */
+    /* nitc.nit:99 */
     fra.me.REG[0] = CALL_compiling___compiling_base___ToolContext___bindir(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -894,7 +706,7 @@ void nitc___NitCompiler___process_options(val_t p0){
       }
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./nitc.nit:111 */
+      /* nitc.nit:100 */
       if (!once_value_18) {
         fra.me.REG[0] = BOX_NativeString("Error: Cannot locate NIT tools directory. Uses --bindir or envvar NIT_DIR.");
         REGB0 = TAG_Int(74);
@@ -903,9 +715,17 @@ void nitc___NitCompiler___process_options(val_t p0){
         register_static_object(&once_value_18);
       } else fra.me.REG[0] = once_value_18;
       fra.me.REG[0] = fra.me.REG[0];
-      CALL_mmloader___ToolContext___fatal_error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[0]);
+      CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[0]);
     }
   }
+  /* nitc.nit:103 */
+  fra.me.REG[0] = CALL_compiling___compiling_base___ToolContext___bindir(fra.me.REG[1])(fra.me.REG[1]);
+  REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_nitc, 103);
+  }
+  fra.me.REG[0] = CALL_standard___file___String___simplify_path(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_compiling___compiling_base___ToolContext___bindir__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
 }
@@ -917,7 +737,7 @@ void nitc___NitCompiler___perform_work(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 116;
+  fra.me.line = 106;
   fra.me.meth = LOCATE_nitc___NitCompiler___perform_work;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -929,20 +749,20 @@ void nitc___NitCompiler___perform_work(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -954,60 +774,44 @@ void nitc___NitCompiler___perform_work(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./nitc.nit:119 */
+      /* nitc.nit:109 */
       fra.me.REG[3] = NEW_Program_program___Program___init(fra.me.REG[3], fra.me.REG[0]);
-      /* ./nitc.nit:120 */
+      /* nitc.nit:110 */
       fra.me.REG[4] = CALL_nitc___NitCompiler___opt_output_format(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[4] = CALL_opts___OptionEnum___value_name(fra.me.REG[4])(fra.me.REG[4]);
       CALL_compiling___Program___output_format__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-      /* ./nitc.nit:121 */
+      /* nitc.nit:111 */
       CALL_program___Program___compute_main_method(fra.me.REG[3])(fra.me.REG[3]);
-      /* ./nitc.nit:122 */
+      /* nitc.nit:112 */
       CALL_program___Program___generate_allocation_iroutines(fra.me.REG[3])(fra.me.REG[3]);
-      /* ./nitc.nit:123 */
+      /* nitc.nit:113 */
       REGB1 = CALL_program___ToolContext___global(fra.me.REG[0])(fra.me.REG[0]);
       if (UNTAG_Bool(REGB1)) {
-        /* ./nitc.nit:124 */
-        CALL_analysis___Program___do_global_pre_analysis_optimizations(fra.me.REG[3])(fra.me.REG[3]);
-        /* ./nitc.nit:125 */
-        CALL_analysis___Program___do_global_analysis(fra.me.REG[3])(fra.me.REG[3]);
-        /* ./nitc.nit:126 */
-        CALL_analysis___Program___do_global_post_analysis_optimizations(fra.me.REG[3])(fra.me.REG[3]);
-        /* ./nitc.nit:127 */
-        fra.me.REG[4] = CALL_mmloader___ToolContext___opt_log(fra.me.REG[0])(fra.me.REG[0]);
-        fra.me.REG[4] = CALL_opts___Option___value(fra.me.REG[4])(fra.me.REG[4]);
-        if (UNTAG_Bool(fra.me.REG[4])) {
-          /* ./nitc.nit:128 */
-          fra.me.REG[4] = CALL_mmloader___ToolContext___log_directory(fra.me.REG[0])(fra.me.REG[0]);
-          CALL_analysis___Program___dump_global_optimizations_information(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-          /* ./nitc.nit:129 */
-          fra.me.REG[4] = CALL_mmloader___ToolContext___log_directory(fra.me.REG[0])(fra.me.REG[0]);
-          CALL_analysis___Program___dump_global_analysis_information(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-        }
+        CALL_global___Program___do_global_analysis(fra.me.REG[3])(fra.me.REG[3]);
       }
-      /* ./nitc.nit:132 */
+      /* nitc.nit:114 */
       CALL_compiling___table_computation___Program___do_table_computation(fra.me.REG[3])(fra.me.REG[3]);
-      /* ./nitc.nit:133 */
+      /* nitc.nit:115 */
       CALL_compiling___Program___compile_prog(fra.me.REG[3])(fra.me.REG[3]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label1;
     }
   }
@@ -1015,21 +819,41 @@ void nitc___NitCompiler___perform_work(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
+void nitc___ToolContext___init(val_t p0, int* init_table){
+  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_toolcontext___ToolContext].i;
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  if (init_table[itpos1]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 121;
+  fra.me.meth = LOCATE_nitc___ToolContext___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* nitc.nit:121 */
+  CALL_SUPER_nitc___ToolContext___init(fra.me.REG[0])(fra.me.REG[0], init_table);
+  stack_frame_head = fra.me.prev;
+  init_table[itpos1] = 1;
+  return;
+}
 void nitc___Sys___main(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 138;
+  fra.me.line = 125;
   fra.me.meth = LOCATE_nitc___Sys___main;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./nitc.nit:138 */
+  /* nitc.nit:125 */
   fra.me.REG[0] = NEW_NitCompiler_nitc___NitCompiler___init();
-  /* ./nitc.nit:139 */
+  /* nitc.nit:126 */
   CALL_abstracttool___AbstractCompiler___exec_cmd_line(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
index 4eeabf0..215192a 100644 (file)
@@ -1,7 +1,7 @@
 /* This C header file is generated by NIT to compile modules and programs that requires ./nitc. */
 #ifndef nitc_sep
 #define nitc_sep
-#include "abstracttool._sep.h"
+#include "global._sep.h"
 #include "separate_options._sep.h"
 #include <nit_common.h>
 
@@ -14,37 +14,24 @@ extern const int SFT_nitc[];
 #define ATTR_nitc___NitCompiler____opt_boost(recv) ATTR(recv, (SFT_nitc[2] + 1))
 #define ATTR_nitc___NitCompiler____opt_no_cc(recv) ATTR(recv, (SFT_nitc[2] + 2))
 #define ATTR_nitc___NitCompiler____opt_cc_no_link(recv) ATTR(recv, (SFT_nitc[2] + 3))
-#define ATTR_nitc___NitCompiler____opt_global(recv) ATTR(recv, (SFT_nitc[2] + 4))
-#define ATTR_nitc___NitCompiler____opt_global_no_STF_opt(recv) ATTR(recv, (SFT_nitc[2] + 5))
-#define ATTR_nitc___NitCompiler____opt_global_no_DMR_opt(recv) ATTR(recv, (SFT_nitc[2] + 6))
-#define ATTR_nitc___NitCompiler____opt_global_no_inline_get_set(recv) ATTR(recv, (SFT_nitc[2] + 7))
-#define ATTR_nitc___NitCompiler____opt_global_no_out_of_init_get_test_opt(recv) ATTR(recv, (SFT_nitc[2] + 8))
-#define ATTR_nitc___NitCompiler____opt_global_no_RFIMA(recv) ATTR(recv, (SFT_nitc[2] + 9))
-#define ATTR_nitc___NitCompiler____opt_global_callgraph(recv) ATTR(recv, (SFT_nitc[2] + 10))
-#define ATTR_nitc___NitCompiler____opt_clibdir(recv) ATTR(recv, (SFT_nitc[2] + 11))
-#define ATTR_nitc___NitCompiler____opt_bindir(recv) ATTR(recv, (SFT_nitc[2] + 12))
-#define ATTR_nitc___NitCompiler____opt_compdir(recv) ATTR(recv, (SFT_nitc[2] + 13))
-#define ATTR_nitc___NitCompiler____opt_extension_prefix(recv) ATTR(recv, (SFT_nitc[2] + 14))
-#define ATTR_nitc___NitCompiler____opt_output_format(recv) ATTR(recv, (SFT_nitc[2] + 15))
+#define ATTR_nitc___NitCompiler____opt_clibdir(recv) ATTR(recv, (SFT_nitc[2] + 4))
+#define ATTR_nitc___NitCompiler____opt_bindir(recv) ATTR(recv, (SFT_nitc[2] + 5))
+#define ATTR_nitc___NitCompiler____opt_compdir(recv) ATTR(recv, (SFT_nitc[2] + 6))
+#define ATTR_nitc___NitCompiler____opt_extension_prefix(recv) ATTR(recv, (SFT_nitc[2] + 7))
+#define ATTR_nitc___NitCompiler____opt_output_format(recv) ATTR(recv, (SFT_nitc[2] + 8))
 #define INIT_TABLE_POS_nitc___NitCompiler (SFT_nitc[3] + 0)
 #define CALL_nitc___NitCompiler___opt_output(recv) ((nitc___NitCompiler___opt_output_t)CALL((recv), (SFT_nitc[3] + 1)))
 #define CALL_nitc___NitCompiler___opt_boost(recv) ((nitc___NitCompiler___opt_boost_t)CALL((recv), (SFT_nitc[3] + 2)))
 #define CALL_nitc___NitCompiler___opt_no_cc(recv) ((nitc___NitCompiler___opt_no_cc_t)CALL((recv), (SFT_nitc[3] + 3)))
 #define CALL_nitc___NitCompiler___opt_cc_no_link(recv) ((nitc___NitCompiler___opt_cc_no_link_t)CALL((recv), (SFT_nitc[3] + 4)))
-#define CALL_nitc___NitCompiler___opt_global(recv) ((nitc___NitCompiler___opt_global_t)CALL((recv), (SFT_nitc[3] + 5)))
-#define CALL_nitc___NitCompiler___opt_global_no_STF_opt(recv) ((nitc___NitCompiler___opt_global_no_STF_opt_t)CALL((recv), (SFT_nitc[3] + 6)))
-#define CALL_nitc___NitCompiler___opt_global_no_DMR_opt(recv) ((nitc___NitCompiler___opt_global_no_DMR_opt_t)CALL((recv), (SFT_nitc[3] + 7)))
-#define CALL_nitc___NitCompiler___opt_global_no_inline_get_set(recv) ((nitc___NitCompiler___opt_global_no_inline_get_set_t)CALL((recv), (SFT_nitc[3] + 8)))
-#define CALL_nitc___NitCompiler___opt_global_no_out_of_init_get_test_opt(recv) ((nitc___NitCompiler___opt_global_no_out_of_init_get_test_opt_t)CALL((recv), (SFT_nitc[3] + 9)))
-#define CALL_nitc___NitCompiler___opt_global_no_RFIMA(recv) ((nitc___NitCompiler___opt_global_no_RFIMA_t)CALL((recv), (SFT_nitc[3] + 10)))
-#define CALL_nitc___NitCompiler___opt_global_callgraph(recv) ((nitc___NitCompiler___opt_global_callgraph_t)CALL((recv), (SFT_nitc[3] + 11)))
-#define CALL_nitc___NitCompiler___opt_clibdir(recv) ((nitc___NitCompiler___opt_clibdir_t)CALL((recv), (SFT_nitc[3] + 12)))
-#define CALL_nitc___NitCompiler___opt_bindir(recv) ((nitc___NitCompiler___opt_bindir_t)CALL((recv), (SFT_nitc[3] + 13)))
-#define CALL_nitc___NitCompiler___opt_compdir(recv) ((nitc___NitCompiler___opt_compdir_t)CALL((recv), (SFT_nitc[3] + 14)))
-#define CALL_nitc___NitCompiler___opt_extension_prefix(recv) ((nitc___NitCompiler___opt_extension_prefix_t)CALL((recv), (SFT_nitc[3] + 15)))
-#define CALL_nitc___NitCompiler___opt_output_format(recv) ((nitc___NitCompiler___opt_output_format_t)CALL((recv), (SFT_nitc[3] + 16)))
-#define CALL_nitc___NitCompiler___init(recv) ((nitc___NitCompiler___init_t)CALL((recv), (SFT_nitc[3] + 17)))
-#define CALL_SUPER_nitc___NitCompiler___process_options(recv) ((nitc___NitCompiler___process_options_t)CALL((recv), (SFT_nitc[3] + 18)))
+#define CALL_nitc___NitCompiler___opt_clibdir(recv) ((nitc___NitCompiler___opt_clibdir_t)CALL((recv), (SFT_nitc[3] + 5)))
+#define CALL_nitc___NitCompiler___opt_bindir(recv) ((nitc___NitCompiler___opt_bindir_t)CALL((recv), (SFT_nitc[3] + 6)))
+#define CALL_nitc___NitCompiler___opt_compdir(recv) ((nitc___NitCompiler___opt_compdir_t)CALL((recv), (SFT_nitc[3] + 7)))
+#define CALL_nitc___NitCompiler___opt_extension_prefix(recv) ((nitc___NitCompiler___opt_extension_prefix_t)CALL((recv), (SFT_nitc[3] + 8)))
+#define CALL_nitc___NitCompiler___opt_output_format(recv) ((nitc___NitCompiler___opt_output_format_t)CALL((recv), (SFT_nitc[3] + 9)))
+#define CALL_nitc___NitCompiler___init(recv) ((nitc___NitCompiler___init_t)CALL((recv), (SFT_nitc[3] + 10)))
+#define CALL_SUPER_nitc___NitCompiler___process_options(recv) ((nitc___NitCompiler___process_options_t)CALL((recv), (SFT_nitc[3] + 11)))
+#define CALL_SUPER_nitc___ToolContext___init(recv) ((nitc___ToolContext___init_t)CALL((recv), (SFT_nitc[4] + 0)))
 static const char * const LOCATE_nitc___NitCompiler___opt_output = "nitc::NitCompiler::opt_output";
 val_t nitc___NitCompiler___opt_output(val_t p0);
 typedef val_t (*nitc___NitCompiler___opt_output_t)(val_t p0);
@@ -57,27 +44,6 @@ typedef val_t (*nitc___NitCompiler___opt_no_cc_t)(val_t p0);
 static const char * const LOCATE_nitc___NitCompiler___opt_cc_no_link = "nitc::NitCompiler::opt_cc_no_link";
 val_t nitc___NitCompiler___opt_cc_no_link(val_t p0);
 typedef val_t (*nitc___NitCompiler___opt_cc_no_link_t)(val_t p0);
-static const char * const LOCATE_nitc___NitCompiler___opt_global = "nitc::NitCompiler::opt_global";
-val_t nitc___NitCompiler___opt_global(val_t p0);
-typedef val_t (*nitc___NitCompiler___opt_global_t)(val_t p0);
-static const char * const LOCATE_nitc___NitCompiler___opt_global_no_STF_opt = "nitc::NitCompiler::opt_global_no_STF_opt";
-val_t nitc___NitCompiler___opt_global_no_STF_opt(val_t p0);
-typedef val_t (*nitc___NitCompiler___opt_global_no_STF_opt_t)(val_t p0);
-static const char * const LOCATE_nitc___NitCompiler___opt_global_no_DMR_opt = "nitc::NitCompiler::opt_global_no_DMR_opt";
-val_t nitc___NitCompiler___opt_global_no_DMR_opt(val_t p0);
-typedef val_t (*nitc___NitCompiler___opt_global_no_DMR_opt_t)(val_t p0);
-static const char * const LOCATE_nitc___NitCompiler___opt_global_no_inline_get_set = "nitc::NitCompiler::opt_global_no_inline_get_set";
-val_t nitc___NitCompiler___opt_global_no_inline_get_set(val_t p0);
-typedef val_t (*nitc___NitCompiler___opt_global_no_inline_get_set_t)(val_t p0);
-static const char * const LOCATE_nitc___NitCompiler___opt_global_no_out_of_init_get_test_opt = "nitc::NitCompiler::opt_global_no_out_of_init_get_test_opt";
-val_t nitc___NitCompiler___opt_global_no_out_of_init_get_test_opt(val_t p0);
-typedef val_t (*nitc___NitCompiler___opt_global_no_out_of_init_get_test_opt_t)(val_t p0);
-static const char * const LOCATE_nitc___NitCompiler___opt_global_no_RFIMA = "nitc::NitCompiler::opt_global_no_RFIMA";
-val_t nitc___NitCompiler___opt_global_no_RFIMA(val_t p0);
-typedef val_t (*nitc___NitCompiler___opt_global_no_RFIMA_t)(val_t p0);
-static const char * const LOCATE_nitc___NitCompiler___opt_global_callgraph = "nitc::NitCompiler::opt_global_callgraph";
-val_t nitc___NitCompiler___opt_global_callgraph(val_t p0);
-typedef val_t (*nitc___NitCompiler___opt_global_callgraph_t)(val_t p0);
 static const char * const LOCATE_nitc___NitCompiler___opt_clibdir = "nitc::NitCompiler::opt_clibdir";
 val_t nitc___NitCompiler___opt_clibdir(val_t p0);
 typedef val_t (*nitc___NitCompiler___opt_clibdir_t)(val_t p0);
@@ -97,12 +63,16 @@ static const char * const LOCATE_nitc___NitCompiler___init = "nitc::NitCompiler:
 void nitc___NitCompiler___init(val_t p0, int* init_table);
 typedef void (*nitc___NitCompiler___init_t)(val_t p0, int* init_table);
 val_t NEW_NitCompiler_nitc___NitCompiler___init();
-static const char * const LOCATE_nitc___NitCompiler___process_options = "nitc::NitCompiler::(mmloader::ToolContext::process_options)";
+static const char * const LOCATE_nitc___NitCompiler___process_options = "nitc::NitCompiler::(toolcontext::ToolContext::process_options)";
 void nitc___NitCompiler___process_options(val_t p0);
 typedef void (*nitc___NitCompiler___process_options_t)(val_t p0);
 static const char * const LOCATE_nitc___NitCompiler___perform_work = "nitc::NitCompiler::(abstracttool::AbstractCompiler::perform_work)";
 void nitc___NitCompiler___perform_work(val_t p0, val_t p1);
 typedef void (*nitc___NitCompiler___perform_work_t)(val_t p0, val_t p1);
+static const char * const LOCATE_nitc___ToolContext___init = "nitc::ToolContext::(toolcontext::ToolContext::init)";
+void nitc___ToolContext___init(val_t p0, int* init_table);
+typedef void (*nitc___ToolContext___init_t)(val_t p0, int* init_table);
+val_t NEW_ToolContext_toolcontext___ToolContext___init();
 static const char * const LOCATE_nitc___Sys___main = "nitc::Sys::(kernel::Sys::main)";
 void nitc___Sys___main(val_t p0);
 typedef void (*nitc___Sys___main_t)(val_t p0);
index a6ae625..7106f8d 100644 (file)
@@ -1,4 +1,5 @@
 /* This C file is generated by NIT to compile program nitc. */
+#include "global._sep.h"
 #include "abstracttool._sep.h"
 #include "syntax._sep.h"
 #include "syntax___mmbuilder._sep.h"
@@ -39,6 +40,7 @@
 #include "metamodel___abstractmetamodel._sep.h"
 #include "metamodel___partial_order._sep.h"
 #include "metamodel___virtualtype._sep.h"
+#include "toolcontext._sep.h"
 #include "opts._sep.h"
 #include "primitive_info._sep.h"
 #include "syntax___icode_generation._sep.h"
 #include "syntax___scope._sep.h"
 #include "syntax___flow._sep.h"
 #include "nit_version._sep.h"
+#include "global___cha_analysis._sep.h"
+#include "global___reachable_method_analysis._sep.h"
+#include "program._sep.h"
+#include "global___rta_analysis._sep.h"
+#include "global___instantiated_type_analysis._sep.h"
+#include "global___reachable_as_init_impl._sep.h"
+#include "global___reachable_as_init._sep.h"
+#include "global___reachable_from_init_method_analysis_impl._sep.h"
+#include "global___reachable_from_init_method_analysis._sep.h"
+#include "global___dead_method_removal._sep.h"
+#include "global___inline_get_and_set._sep.h"
+#include "global___remove_out_of_init_get_test._sep.h"
 #include "separate_options._sep.h"
 #include "native_interface._sep.h"
 #include "native_interface___frontier._sep.h"
 #include "compiling___icode_generator._sep.h"
 #include "compiling___compiling_base._sep.h"
 #include "utils._sep.h"
-#include "program._sep.h"
 #include "compiling___compiling_writer._sep.h"
 #include "analysis._sep.h"
 #include "analysis___icode_dump._sep.h"
 #include "analysis___allocate_iregister_slots._sep.h"
 #include "analysis___inline_methods._sep.h"
-#include "analysis___cha_analysis._sep.h"
-#include "analysis___reachable_method_analysis._sep.h"
-#include "analysis___rta_analysis._sep.h"
-#include "analysis___instantiated_type_analysis._sep.h"
-#include "analysis___reachable_as_init_impl._sep.h"
-#include "analysis___reachable_as_init._sep.h"
-#include "analysis___reachable_from_init_method_analysis_impl._sep.h"
-#include "analysis___reachable_from_init_method_analysis._sep.h"
-#include "analysis___dead_method_removal._sep.h"
-#include "analysis___inline_get_and_set._sep.h"
-#include "analysis___remove_out_of_init_get_test._sep.h"
 #include "compiling___compiling_global._sep.h"
 #include "compiling___table_computation._sep.h"
 #include "compiling___compiling_icode._sep.h"
@@ -91,6 +93,16 @@ typedef void (*CHECKNEW_nitc___NitCompiler_t)(val_t p0);
 static const char * const LOCATE_NEW_NitCompiler_nitc___NitCompiler___init = "new NitCompiler nitc::NitCompiler::init";
 val_t NEW_NitCompiler_nitc___NitCompiler___init(void);
 typedef val_t (*NEW_NitCompiler_nitc___NitCompiler___init_t)(void);
+static const char * const LOCATE_INIT_ATTRIBUTES__toolcontext___ToolContext = "init var of ToolContext";
+void INIT_ATTRIBUTES__toolcontext___ToolContext(val_t p0);
+typedef void (*INIT_ATTRIBUTES__toolcontext___ToolContext_t)(val_t p0);
+val_t NEW_toolcontext___ToolContext(void);
+static const char * const LOCATE_CHECKNEW_toolcontext___ToolContext = "check new ToolContext";
+void CHECKNEW_toolcontext___ToolContext(val_t p0);
+typedef void (*CHECKNEW_toolcontext___ToolContext_t)(val_t p0);
+static const char * const LOCATE_NEW_ToolContext_toolcontext___ToolContext___init = "new ToolContext nitc::ToolContext::(toolcontext::ToolContext::init)";
+val_t NEW_ToolContext_toolcontext___ToolContext___init(void);
+typedef val_t (*NEW_ToolContext_toolcontext___ToolContext___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__standard___kernel___Sys = "init var of Sys";
 void INIT_ATTRIBUTES__standard___kernel___Sys(val_t p0);
 typedef void (*INIT_ATTRIBUTES__standard___kernel___Sys_t)(val_t p0);
@@ -217,26 +229,6 @@ typedef void (*CHECKNEW_standard___collection___list___ListNode_t)(val_t p0);
 static const char * const LOCATE_NEW_ListNode_standard___collection___list___ListNode___init = "new ListNode list::ListNode::init";
 val_t NEW_ListNode_standard___collection___list___ListNode___init(val_t p0);
 typedef val_t (*NEW_ListNode_standard___collection___list___ListNode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__standard___collection___array___AbstractArrayRead = "init var of AbstractArrayRead";
-void INIT_ATTRIBUTES__standard___collection___array___AbstractArrayRead(val_t p0);
-typedef void (*INIT_ATTRIBUTES__standard___collection___array___AbstractArrayRead_t)(val_t p0);
-val_t NEW_standard___collection___array___AbstractArrayRead(void);
-static const char * const LOCATE_CHECKNEW_standard___collection___array___AbstractArrayRead = "check new AbstractArrayRead";
-void CHECKNEW_standard___collection___array___AbstractArrayRead(val_t p0);
-typedef void (*CHECKNEW_standard___collection___array___AbstractArrayRead_t)(val_t p0);
-static const char * const LOCATE_NEW_AbstractArrayRead_standard___collection___array___AbstractArrayRead___init = "new AbstractArrayRead array::AbstractArrayRead::init";
-val_t NEW_AbstractArrayRead_standard___collection___array___AbstractArrayRead___init(void);
-typedef val_t (*NEW_AbstractArrayRead_standard___collection___array___AbstractArrayRead___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__standard___collection___array___AbstractArray = "init var of AbstractArray";
-void INIT_ATTRIBUTES__standard___collection___array___AbstractArray(val_t p0);
-typedef void (*INIT_ATTRIBUTES__standard___collection___array___AbstractArray_t)(val_t p0);
-val_t NEW_standard___collection___array___AbstractArray(void);
-static const char * const LOCATE_CHECKNEW_standard___collection___array___AbstractArray = "check new AbstractArray";
-void CHECKNEW_standard___collection___array___AbstractArray(val_t p0);
-typedef void (*CHECKNEW_standard___collection___array___AbstractArray_t)(val_t p0);
-static const char * const LOCATE_NEW_AbstractArray_standard___collection___array___AbstractArrayRead___init = "new AbstractArray array::AbstractArrayRead::init";
-val_t NEW_AbstractArray_standard___collection___array___AbstractArrayRead___init(void);
-typedef val_t (*NEW_AbstractArray_standard___collection___array___AbstractArrayRead___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__standard___collection___array___Array = "init var of Array";
 void INIT_ATTRIBUTES__standard___collection___array___Array(val_t p0);
 typedef void (*INIT_ATTRIBUTES__standard___collection___array___Array_t)(val_t p0);
@@ -322,16 +314,6 @@ typedef void (*CHECKNEW_standard___collection___array___ArrayMapValues_t)(val_t
 static const char * const LOCATE_NEW_ArrayMapValues_standard___collection___array___ArrayMapValues___init = "new ArrayMapValues array::ArrayMapValues::init";
 val_t NEW_ArrayMapValues_standard___collection___array___ArrayMapValues___init(val_t p0);
 typedef val_t (*NEW_ArrayMapValues_standard___collection___array___ArrayMapValues___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__standard___collection___sorter___AbstractSorter = "init var of AbstractSorter";
-void INIT_ATTRIBUTES__standard___collection___sorter___AbstractSorter(val_t p0);
-typedef void (*INIT_ATTRIBUTES__standard___collection___sorter___AbstractSorter_t)(val_t p0);
-val_t NEW_standard___collection___sorter___AbstractSorter(void);
-static const char * const LOCATE_CHECKNEW_standard___collection___sorter___AbstractSorter = "check new AbstractSorter";
-void CHECKNEW_standard___collection___sorter___AbstractSorter(val_t p0);
-typedef void (*CHECKNEW_standard___collection___sorter___AbstractSorter_t)(val_t p0);
-static const char * const LOCATE_NEW_AbstractSorter_standard___collection___sorter___AbstractSorter___init = "new AbstractSorter sorter::AbstractSorter::init";
-val_t NEW_AbstractSorter_standard___collection___sorter___AbstractSorter___init(void);
-typedef val_t (*NEW_AbstractSorter_standard___collection___sorter___AbstractSorter___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__standard___collection___sorter___ComparableSorter = "init var of ComparableSorter";
 void INIT_ATTRIBUTES__standard___collection___sorter___ComparableSorter(val_t p0);
 typedef void (*INIT_ATTRIBUTES__standard___collection___sorter___ComparableSorter_t)(val_t p0);
@@ -342,26 +324,6 @@ typedef void (*CHECKNEW_standard___collection___sorter___ComparableSorter_t)(val
 static const char * const LOCATE_NEW_ComparableSorter_standard___collection___sorter___ComparableSorter___init = "new ComparableSorter sorter::ComparableSorter::init";
 val_t NEW_ComparableSorter_standard___collection___sorter___ComparableSorter___init(void);
 typedef val_t (*NEW_ComparableSorter_standard___collection___sorter___ComparableSorter___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__standard___collection___hash_collection___HashCollection = "init var of HashCollection";
-void INIT_ATTRIBUTES__standard___collection___hash_collection___HashCollection(val_t p0);
-typedef void (*INIT_ATTRIBUTES__standard___collection___hash_collection___HashCollection_t)(val_t p0);
-val_t NEW_standard___collection___hash_collection___HashCollection(void);
-static const char * const LOCATE_CHECKNEW_standard___collection___hash_collection___HashCollection = "check new HashCollection";
-void CHECKNEW_standard___collection___hash_collection___HashCollection(val_t p0);
-typedef void (*CHECKNEW_standard___collection___hash_collection___HashCollection_t)(val_t p0);
-static const char * const LOCATE_NEW_HashCollection_standard___collection___hash_collection___HashCollection___init = "new HashCollection hash_collection::HashCollection::init";
-val_t NEW_HashCollection_standard___collection___hash_collection___HashCollection___init(void);
-typedef val_t (*NEW_HashCollection_standard___collection___hash_collection___HashCollection___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__standard___collection___hash_collection___HashNode = "init var of HashNode";
-void INIT_ATTRIBUTES__standard___collection___hash_collection___HashNode(val_t p0);
-typedef void (*INIT_ATTRIBUTES__standard___collection___hash_collection___HashNode_t)(val_t p0);
-val_t NEW_standard___collection___hash_collection___HashNode(void);
-static const char * const LOCATE_CHECKNEW_standard___collection___hash_collection___HashNode = "check new HashNode";
-void CHECKNEW_standard___collection___hash_collection___HashNode(val_t p0);
-typedef void (*CHECKNEW_standard___collection___hash_collection___HashNode_t)(val_t p0);
-static const char * const LOCATE_NEW_HashNode_standard___collection___hash_collection___HashNode___init = "new HashNode hash_collection::HashNode::init";
-val_t NEW_HashNode_standard___collection___hash_collection___HashNode___init(val_t p0);
-typedef val_t (*NEW_HashNode_standard___collection___hash_collection___HashNode___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__standard___collection___hash_collection___HashMap = "init var of HashMap";
 void INIT_ATTRIBUTES__standard___collection___hash_collection___HashMap(val_t p0);
 typedef void (*INIT_ATTRIBUTES__standard___collection___hash_collection___HashMap_t)(val_t p0);
@@ -471,16 +433,6 @@ typedef val_t (*NEW_Buffer_standard___string___Buffer___from_t)(val_t p0);
 static const char * const LOCATE_NEW_Buffer_standard___string___Buffer___with_capacity = "new Buffer string::Buffer::with_capacity";
 val_t NEW_Buffer_standard___string___Buffer___with_capacity(val_t p0);
 typedef val_t (*NEW_Buffer_standard___string___Buffer___with_capacity_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__standard___string___StringCapable = "init var of StringCapable";
-void INIT_ATTRIBUTES__standard___string___StringCapable(val_t p0);
-typedef void (*INIT_ATTRIBUTES__standard___string___StringCapable_t)(val_t p0);
-val_t NEW_standard___string___StringCapable(void);
-static const char * const LOCATE_CHECKNEW_standard___string___StringCapable = "check new StringCapable";
-void CHECKNEW_standard___string___StringCapable(val_t p0);
-typedef void (*CHECKNEW_standard___string___StringCapable_t)(val_t p0);
-static const char * const LOCATE_NEW_StringCapable_standard___string___StringCapable___init = "new StringCapable string::StringCapable::init";
-val_t NEW_StringCapable_standard___string___StringCapable___init(void);
-typedef val_t (*NEW_StringCapable_standard___string___StringCapable___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__standard___symbol___Symbol = "init var of Symbol";
 void INIT_ATTRIBUTES__standard___symbol___Symbol(val_t p0);
 typedef void (*INIT_ATTRIBUTES__standard___symbol___Symbol_t)(val_t p0);
@@ -491,66 +443,6 @@ typedef void (*CHECKNEW_standard___symbol___Symbol_t)(val_t p0);
 static const char * const LOCATE_NEW_Symbol_standard___symbol___Symbol___init = "new Symbol symbol::Symbol::init";
 val_t NEW_Symbol_standard___symbol___Symbol___init(val_t p0);
 typedef val_t (*NEW_Symbol_standard___symbol___Symbol___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__standard___stream___IOS = "init var of IOS";
-void INIT_ATTRIBUTES__standard___stream___IOS(val_t p0);
-typedef void (*INIT_ATTRIBUTES__standard___stream___IOS_t)(val_t p0);
-val_t NEW_standard___stream___IOS(void);
-static const char * const LOCATE_CHECKNEW_standard___stream___IOS = "check new IOS";
-void CHECKNEW_standard___stream___IOS(val_t p0);
-typedef void (*CHECKNEW_standard___stream___IOS_t)(val_t p0);
-static const char * const LOCATE_NEW_IOS_standard___stream___IOS___init = "new IOS stream::IOS::init";
-val_t NEW_IOS_standard___stream___IOS___init(void);
-typedef val_t (*NEW_IOS_standard___stream___IOS___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__standard___stream___IStream = "init var of IStream";
-void INIT_ATTRIBUTES__standard___stream___IStream(val_t p0);
-typedef void (*INIT_ATTRIBUTES__standard___stream___IStream_t)(val_t p0);
-val_t NEW_standard___stream___IStream(void);
-static const char * const LOCATE_CHECKNEW_standard___stream___IStream = "check new IStream";
-void CHECKNEW_standard___stream___IStream(val_t p0);
-typedef void (*CHECKNEW_standard___stream___IStream_t)(val_t p0);
-static const char * const LOCATE_NEW_IStream_standard___stream___IOS___init = "new IStream stream::IOS::init";
-val_t NEW_IStream_standard___stream___IOS___init(void);
-typedef val_t (*NEW_IStream_standard___stream___IOS___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__standard___stream___OStream = "init var of OStream";
-void INIT_ATTRIBUTES__standard___stream___OStream(val_t p0);
-typedef void (*INIT_ATTRIBUTES__standard___stream___OStream_t)(val_t p0);
-val_t NEW_standard___stream___OStream(void);
-static const char * const LOCATE_CHECKNEW_standard___stream___OStream = "check new OStream";
-void CHECKNEW_standard___stream___OStream(val_t p0);
-typedef void (*CHECKNEW_standard___stream___OStream_t)(val_t p0);
-static const char * const LOCATE_NEW_OStream_standard___stream___IOS___init = "new OStream stream::IOS::init";
-val_t NEW_OStream_standard___stream___IOS___init(void);
-typedef val_t (*NEW_OStream_standard___stream___IOS___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__standard___stream___BufferedIStream = "init var of BufferedIStream";
-void INIT_ATTRIBUTES__standard___stream___BufferedIStream(val_t p0);
-typedef void (*INIT_ATTRIBUTES__standard___stream___BufferedIStream_t)(val_t p0);
-val_t NEW_standard___stream___BufferedIStream(void);
-static const char * const LOCATE_CHECKNEW_standard___stream___BufferedIStream = "check new BufferedIStream";
-void CHECKNEW_standard___stream___BufferedIStream(val_t p0);
-typedef void (*CHECKNEW_standard___stream___BufferedIStream_t)(val_t p0);
-static const char * const LOCATE_NEW_BufferedIStream_standard___stream___IOS___init = "new BufferedIStream stream::IOS::init";
-val_t NEW_BufferedIStream_standard___stream___IOS___init(void);
-typedef val_t (*NEW_BufferedIStream_standard___stream___IOS___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__standard___stream___IOStream = "init var of IOStream";
-void INIT_ATTRIBUTES__standard___stream___IOStream(val_t p0);
-typedef void (*INIT_ATTRIBUTES__standard___stream___IOStream_t)(val_t p0);
-val_t NEW_standard___stream___IOStream(void);
-static const char * const LOCATE_CHECKNEW_standard___stream___IOStream = "check new IOStream";
-void CHECKNEW_standard___stream___IOStream(val_t p0);
-typedef void (*CHECKNEW_standard___stream___IOStream_t)(val_t p0);
-static const char * const LOCATE_NEW_IOStream_standard___stream___IOS___init = "new IOStream stream::IOS::init";
-val_t NEW_IOStream_standard___stream___IOS___init(void);
-typedef val_t (*NEW_IOStream_standard___stream___IOS___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__standard___stream___FDStream = "init var of FDStream";
-void INIT_ATTRIBUTES__standard___stream___FDStream(val_t p0);
-typedef void (*INIT_ATTRIBUTES__standard___stream___FDStream_t)(val_t p0);
-val_t NEW_standard___stream___FDStream(void);
-static const char * const LOCATE_CHECKNEW_standard___stream___FDStream = "check new FDStream";
-void CHECKNEW_standard___stream___FDStream(val_t p0);
-typedef void (*CHECKNEW_standard___stream___FDStream_t)(val_t p0);
-static const char * const LOCATE_NEW_FDStream_standard___stream___FDStream___init = "new FDStream stream::FDStream::init";
-val_t NEW_FDStream_standard___stream___FDStream___init(val_t p0);
-typedef val_t (*NEW_FDStream_standard___stream___FDStream___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__standard___stream___FDIStream = "init var of FDIStream";
 void INIT_ATTRIBUTES__standard___stream___FDIStream(val_t p0);
 typedef void (*INIT_ATTRIBUTES__standard___stream___FDIStream_t)(val_t p0);
@@ -601,16 +493,6 @@ typedef void (*CHECKNEW_standard___string_search___Match_t)(val_t p0);
 static const char * const LOCATE_NEW_Match_standard___string_search___Match___init = "new Match string_search::Match::init";
 val_t NEW_Match_standard___string_search___Match___init(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_Match_standard___string_search___Match___init_t)(val_t p0, val_t p1, val_t p2);
-static const char * const LOCATE_INIT_ATTRIBUTES__standard___file___FStream = "init var of FStream";
-void INIT_ATTRIBUTES__standard___file___FStream(val_t p0);
-typedef void (*INIT_ATTRIBUTES__standard___file___FStream_t)(val_t p0);
-val_t NEW_standard___file___FStream(void);
-static const char * const LOCATE_CHECKNEW_standard___file___FStream = "check new FStream";
-void CHECKNEW_standard___file___FStream(val_t p0);
-typedef void (*CHECKNEW_standard___file___FStream_t)(val_t p0);
-static const char * const LOCATE_NEW_FStream_standard___stream___IOS___init = "new FStream stream::IOS::init";
-val_t NEW_FStream_standard___stream___IOS___init(void);
-typedef val_t (*NEW_FStream_standard___stream___IOS___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__standard___file___IFStream = "init var of IFStream";
 void INIT_ATTRIBUTES__standard___file___IFStream(val_t p0);
 typedef void (*INIT_ATTRIBUTES__standard___file___IFStream_t)(val_t p0);
@@ -762,8 +644,8 @@ static const char * const LOCATE_NEW_TEol_parser___lexer___TEol___init_tk = "new
 val_t NEW_TEol_parser___lexer___TEol___init_tk(val_t p0, val_t p1);
 typedef val_t (*NEW_TEol_parser___lexer___TEol___init_tk_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_TEol_parser___parser_nodes___ANode___init = "new TEol parser_nodes::ANode::init";
-val_t NEW_TEol_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TEol_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TEol_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TEol_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TComment = "init var of TComment";
 void INIT_ATTRIBUTES__parser___parser_nodes___TComment(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TComment_t)(val_t p0);
@@ -775,8 +657,8 @@ static const char * const LOCATE_NEW_TComment_parser___lexer___TComment___init_t
 val_t NEW_TComment_parser___lexer___TComment___init_tk(val_t p0, val_t p1);
 typedef val_t (*NEW_TComment_parser___lexer___TComment___init_tk_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_TComment_parser___parser_nodes___ANode___init = "new TComment parser_nodes::ANode::init";
-val_t NEW_TComment_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TComment_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TComment_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TComment_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwmodule = "init var of TKwmodule";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwmodule(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwmodule_t)(val_t p0);
@@ -788,8 +670,8 @@ static const char * const LOCATE_NEW_TKwmodule_parser___lexer___TKwmodule___init
 val_t NEW_TKwmodule_parser___lexer___TKwmodule___init_tk(val_t p0, val_t p1);
 typedef val_t (*NEW_TKwmodule_parser___lexer___TKwmodule___init_tk_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_TKwmodule_parser___parser_nodes___ANode___init = "new TKwmodule parser_nodes::ANode::init";
-val_t NEW_TKwmodule_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwmodule_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwmodule_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwmodule_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwimport = "init var of TKwimport";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwimport(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwimport_t)(val_t p0);
@@ -801,8 +683,8 @@ static const char * const LOCATE_NEW_TKwimport_parser___lexer___TKwimport___init
 val_t NEW_TKwimport_parser___lexer___TKwimport___init_tk(val_t p0);
 typedef val_t (*NEW_TKwimport_parser___lexer___TKwimport___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwimport_parser___parser_nodes___ANode___init = "new TKwimport parser_nodes::ANode::init";
-val_t NEW_TKwimport_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwimport_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwimport_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwimport_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwclass = "init var of TKwclass";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwclass(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwclass_t)(val_t p0);
@@ -814,8 +696,8 @@ static const char * const LOCATE_NEW_TKwclass_parser___lexer___TKwclass___init_t
 val_t NEW_TKwclass_parser___lexer___TKwclass___init_tk(val_t p0);
 typedef val_t (*NEW_TKwclass_parser___lexer___TKwclass___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwclass_parser___parser_nodes___ANode___init = "new TKwclass parser_nodes::ANode::init";
-val_t NEW_TKwclass_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwclass_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwclass_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwclass_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwabstract = "init var of TKwabstract";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwabstract(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwabstract_t)(val_t p0);
@@ -827,8 +709,8 @@ static const char * const LOCATE_NEW_TKwabstract_parser___lexer___TKwabstract___
 val_t NEW_TKwabstract_parser___lexer___TKwabstract___init_tk(val_t p0);
 typedef val_t (*NEW_TKwabstract_parser___lexer___TKwabstract___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwabstract_parser___parser_nodes___ANode___init = "new TKwabstract parser_nodes::ANode::init";
-val_t NEW_TKwabstract_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwabstract_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwabstract_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwabstract_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwinterface = "init var of TKwinterface";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwinterface(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwinterface_t)(val_t p0);
@@ -840,8 +722,8 @@ static const char * const LOCATE_NEW_TKwinterface_parser___lexer___TKwinterface_
 val_t NEW_TKwinterface_parser___lexer___TKwinterface___init_tk(val_t p0);
 typedef val_t (*NEW_TKwinterface_parser___lexer___TKwinterface___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwinterface_parser___parser_nodes___ANode___init = "new TKwinterface parser_nodes::ANode::init";
-val_t NEW_TKwinterface_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwinterface_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwinterface_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwinterface_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwenum = "init var of TKwenum";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwenum(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwenum_t)(val_t p0);
@@ -853,8 +735,8 @@ static const char * const LOCATE_NEW_TKwenum_parser___lexer___TKwenum___init_tk
 val_t NEW_TKwenum_parser___lexer___TKwenum___init_tk(val_t p0, val_t p1);
 typedef val_t (*NEW_TKwenum_parser___lexer___TKwenum___init_tk_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_TKwenum_parser___parser_nodes___ANode___init = "new TKwenum parser_nodes::ANode::init";
-val_t NEW_TKwenum_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwenum_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwenum_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwenum_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwspecial = "init var of TKwspecial";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwspecial(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwspecial_t)(val_t p0);
@@ -866,8 +748,8 @@ static const char * const LOCATE_NEW_TKwspecial_parser___lexer___TKwspecial___in
 val_t NEW_TKwspecial_parser___lexer___TKwspecial___init_tk(val_t p0);
 typedef val_t (*NEW_TKwspecial_parser___lexer___TKwspecial___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwspecial_parser___parser_nodes___ANode___init = "new TKwspecial parser_nodes::ANode::init";
-val_t NEW_TKwspecial_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwspecial_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwspecial_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwspecial_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwend = "init var of TKwend";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwend(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwend_t)(val_t p0);
@@ -879,8 +761,8 @@ static const char * const LOCATE_NEW_TKwend_parser___lexer___TKwend___init_tk =
 val_t NEW_TKwend_parser___lexer___TKwend___init_tk(val_t p0);
 typedef val_t (*NEW_TKwend_parser___lexer___TKwend___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwend_parser___parser_nodes___ANode___init = "new TKwend parser_nodes::ANode::init";
-val_t NEW_TKwend_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwend_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwend_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwend_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwmeth = "init var of TKwmeth";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwmeth(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwmeth_t)(val_t p0);
@@ -892,8 +774,8 @@ static const char * const LOCATE_NEW_TKwmeth_parser___lexer___TKwmeth___init_tk
 val_t NEW_TKwmeth_parser___lexer___TKwmeth___init_tk(val_t p0);
 typedef val_t (*NEW_TKwmeth_parser___lexer___TKwmeth___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwmeth_parser___parser_nodes___ANode___init = "new TKwmeth parser_nodes::ANode::init";
-val_t NEW_TKwmeth_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwmeth_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwmeth_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwmeth_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwtype = "init var of TKwtype";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwtype(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwtype_t)(val_t p0);
@@ -905,8 +787,8 @@ static const char * const LOCATE_NEW_TKwtype_parser___lexer___TKwtype___init_tk
 val_t NEW_TKwtype_parser___lexer___TKwtype___init_tk(val_t p0);
 typedef val_t (*NEW_TKwtype_parser___lexer___TKwtype___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwtype_parser___parser_nodes___ANode___init = "new TKwtype parser_nodes::ANode::init";
-val_t NEW_TKwtype_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwtype_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwtype_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwtype_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwinit = "init var of TKwinit";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwinit(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwinit_t)(val_t p0);
@@ -918,8 +800,8 @@ static const char * const LOCATE_NEW_TKwinit_parser___lexer___TKwinit___init_tk
 val_t NEW_TKwinit_parser___lexer___TKwinit___init_tk(val_t p0);
 typedef val_t (*NEW_TKwinit_parser___lexer___TKwinit___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwinit_parser___parser_nodes___ANode___init = "new TKwinit parser_nodes::ANode::init";
-val_t NEW_TKwinit_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwinit_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwinit_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwinit_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwredef = "init var of TKwredef";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwredef(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwredef_t)(val_t p0);
@@ -931,8 +813,8 @@ static const char * const LOCATE_NEW_TKwredef_parser___lexer___TKwredef___init_t
 val_t NEW_TKwredef_parser___lexer___TKwredef___init_tk(val_t p0);
 typedef val_t (*NEW_TKwredef_parser___lexer___TKwredef___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwredef_parser___parser_nodes___ANode___init = "new TKwredef parser_nodes::ANode::init";
-val_t NEW_TKwredef_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwredef_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwredef_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwredef_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwis = "init var of TKwis";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwis(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwis_t)(val_t p0);
@@ -944,8 +826,8 @@ static const char * const LOCATE_NEW_TKwis_parser___lexer___TKwis___init_tk = "n
 val_t NEW_TKwis_parser___lexer___TKwis___init_tk(val_t p0);
 typedef val_t (*NEW_TKwis_parser___lexer___TKwis___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwis_parser___parser_nodes___ANode___init = "new TKwis parser_nodes::ANode::init";
-val_t NEW_TKwis_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwis_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwis_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwis_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwdo = "init var of TKwdo";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwdo(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwdo_t)(val_t p0);
@@ -957,8 +839,8 @@ static const char * const LOCATE_NEW_TKwdo_parser___lexer___TKwdo___init_tk = "n
 val_t NEW_TKwdo_parser___lexer___TKwdo___init_tk(val_t p0);
 typedef val_t (*NEW_TKwdo_parser___lexer___TKwdo___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwdo_parser___parser_nodes___ANode___init = "new TKwdo parser_nodes::ANode::init";
-val_t NEW_TKwdo_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwdo_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwdo_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwdo_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwreadable = "init var of TKwreadable";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwreadable(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwreadable_t)(val_t p0);
@@ -970,8 +852,8 @@ static const char * const LOCATE_NEW_TKwreadable_parser___lexer___TKwreadable___
 val_t NEW_TKwreadable_parser___lexer___TKwreadable___init_tk(val_t p0);
 typedef val_t (*NEW_TKwreadable_parser___lexer___TKwreadable___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwreadable_parser___parser_nodes___ANode___init = "new TKwreadable parser_nodes::ANode::init";
-val_t NEW_TKwreadable_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwreadable_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwreadable_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwreadable_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwwritable = "init var of TKwwritable";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwwritable(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwwritable_t)(val_t p0);
@@ -983,8 +865,8 @@ static const char * const LOCATE_NEW_TKwwritable_parser___lexer___TKwwritable___
 val_t NEW_TKwwritable_parser___lexer___TKwwritable___init_tk(val_t p0);
 typedef val_t (*NEW_TKwwritable_parser___lexer___TKwwritable___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwwritable_parser___parser_nodes___ANode___init = "new TKwwritable parser_nodes::ANode::init";
-val_t NEW_TKwwritable_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwwritable_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwwritable_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwwritable_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwvar = "init var of TKwvar";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwvar(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwvar_t)(val_t p0);
@@ -996,8 +878,8 @@ static const char * const LOCATE_NEW_TKwvar_parser___lexer___TKwvar___init_tk =
 val_t NEW_TKwvar_parser___lexer___TKwvar___init_tk(val_t p0);
 typedef val_t (*NEW_TKwvar_parser___lexer___TKwvar___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwvar_parser___parser_nodes___ANode___init = "new TKwvar parser_nodes::ANode::init";
-val_t NEW_TKwvar_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwvar_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwvar_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwvar_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwintern = "init var of TKwintern";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwintern(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwintern_t)(val_t p0);
@@ -1009,8 +891,8 @@ static const char * const LOCATE_NEW_TKwintern_parser___lexer___TKwintern___init
 val_t NEW_TKwintern_parser___lexer___TKwintern___init_tk(val_t p0);
 typedef val_t (*NEW_TKwintern_parser___lexer___TKwintern___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwintern_parser___parser_nodes___ANode___init = "new TKwintern parser_nodes::ANode::init";
-val_t NEW_TKwintern_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwintern_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwintern_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwintern_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwextern = "init var of TKwextern";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwextern(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwextern_t)(val_t p0);
@@ -1022,8 +904,8 @@ static const char * const LOCATE_NEW_TKwextern_parser___lexer___TKwextern___init
 val_t NEW_TKwextern_parser___lexer___TKwextern___init_tk(val_t p0);
 typedef val_t (*NEW_TKwextern_parser___lexer___TKwextern___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwextern_parser___parser_nodes___ANode___init = "new TKwextern parser_nodes::ANode::init";
-val_t NEW_TKwextern_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwextern_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwextern_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwextern_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwprotected = "init var of TKwprotected";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwprotected(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwprotected_t)(val_t p0);
@@ -1035,8 +917,8 @@ static const char * const LOCATE_NEW_TKwprotected_parser___lexer___TKwprotected_
 val_t NEW_TKwprotected_parser___lexer___TKwprotected___init_tk(val_t p0);
 typedef val_t (*NEW_TKwprotected_parser___lexer___TKwprotected___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwprotected_parser___parser_nodes___ANode___init = "new TKwprotected parser_nodes::ANode::init";
-val_t NEW_TKwprotected_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwprotected_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwprotected_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwprotected_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwprivate = "init var of TKwprivate";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwprivate(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwprivate_t)(val_t p0);
@@ -1048,8 +930,8 @@ static const char * const LOCATE_NEW_TKwprivate_parser___lexer___TKwprivate___in
 val_t NEW_TKwprivate_parser___lexer___TKwprivate___init_tk(val_t p0);
 typedef val_t (*NEW_TKwprivate_parser___lexer___TKwprivate___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwprivate_parser___parser_nodes___ANode___init = "new TKwprivate parser_nodes::ANode::init";
-val_t NEW_TKwprivate_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwprivate_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwprivate_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwprivate_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwintrude = "init var of TKwintrude";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwintrude(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwintrude_t)(val_t p0);
@@ -1061,8 +943,8 @@ static const char * const LOCATE_NEW_TKwintrude_parser___lexer___TKwintrude___in
 val_t NEW_TKwintrude_parser___lexer___TKwintrude___init_tk(val_t p0);
 typedef val_t (*NEW_TKwintrude_parser___lexer___TKwintrude___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwintrude_parser___parser_nodes___ANode___init = "new TKwintrude parser_nodes::ANode::init";
-val_t NEW_TKwintrude_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwintrude_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwintrude_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwintrude_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwif = "init var of TKwif";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwif(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwif_t)(val_t p0);
@@ -1074,8 +956,8 @@ static const char * const LOCATE_NEW_TKwif_parser___lexer___TKwif___init_tk = "n
 val_t NEW_TKwif_parser___lexer___TKwif___init_tk(val_t p0);
 typedef val_t (*NEW_TKwif_parser___lexer___TKwif___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwif_parser___parser_nodes___ANode___init = "new TKwif parser_nodes::ANode::init";
-val_t NEW_TKwif_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwif_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwif_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwif_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwthen = "init var of TKwthen";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwthen(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwthen_t)(val_t p0);
@@ -1087,8 +969,8 @@ static const char * const LOCATE_NEW_TKwthen_parser___lexer___TKwthen___init_tk
 val_t NEW_TKwthen_parser___lexer___TKwthen___init_tk(val_t p0);
 typedef val_t (*NEW_TKwthen_parser___lexer___TKwthen___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwthen_parser___parser_nodes___ANode___init = "new TKwthen parser_nodes::ANode::init";
-val_t NEW_TKwthen_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwthen_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwthen_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwthen_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwelse = "init var of TKwelse";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwelse(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwelse_t)(val_t p0);
@@ -1100,8 +982,8 @@ static const char * const LOCATE_NEW_TKwelse_parser___lexer___TKwelse___init_tk
 val_t NEW_TKwelse_parser___lexer___TKwelse___init_tk(val_t p0);
 typedef val_t (*NEW_TKwelse_parser___lexer___TKwelse___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwelse_parser___parser_nodes___ANode___init = "new TKwelse parser_nodes::ANode::init";
-val_t NEW_TKwelse_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwelse_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwelse_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwelse_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwwhile = "init var of TKwwhile";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwwhile(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwwhile_t)(val_t p0);
@@ -1113,8 +995,8 @@ static const char * const LOCATE_NEW_TKwwhile_parser___lexer___TKwwhile___init_t
 val_t NEW_TKwwhile_parser___lexer___TKwwhile___init_tk(val_t p0);
 typedef val_t (*NEW_TKwwhile_parser___lexer___TKwwhile___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwwhile_parser___parser_nodes___ANode___init = "new TKwwhile parser_nodes::ANode::init";
-val_t NEW_TKwwhile_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwwhile_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwwhile_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwwhile_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwloop = "init var of TKwloop";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwloop(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwloop_t)(val_t p0);
@@ -1126,8 +1008,8 @@ static const char * const LOCATE_NEW_TKwloop_parser___lexer___TKwloop___init_tk
 val_t NEW_TKwloop_parser___lexer___TKwloop___init_tk(val_t p0);
 typedef val_t (*NEW_TKwloop_parser___lexer___TKwloop___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwloop_parser___parser_nodes___ANode___init = "new TKwloop parser_nodes::ANode::init";
-val_t NEW_TKwloop_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwloop_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwloop_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwloop_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwfor = "init var of TKwfor";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwfor(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwfor_t)(val_t p0);
@@ -1139,8 +1021,8 @@ static const char * const LOCATE_NEW_TKwfor_parser___lexer___TKwfor___init_tk =
 val_t NEW_TKwfor_parser___lexer___TKwfor___init_tk(val_t p0);
 typedef val_t (*NEW_TKwfor_parser___lexer___TKwfor___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwfor_parser___parser_nodes___ANode___init = "new TKwfor parser_nodes::ANode::init";
-val_t NEW_TKwfor_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwfor_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwfor_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwfor_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwin = "init var of TKwin";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwin(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwin_t)(val_t p0);
@@ -1152,8 +1034,8 @@ static const char * const LOCATE_NEW_TKwin_parser___lexer___TKwin___init_tk = "n
 val_t NEW_TKwin_parser___lexer___TKwin___init_tk(val_t p0);
 typedef val_t (*NEW_TKwin_parser___lexer___TKwin___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwin_parser___parser_nodes___ANode___init = "new TKwin parser_nodes::ANode::init";
-val_t NEW_TKwin_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwin_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwin_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwin_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwand = "init var of TKwand";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwand(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwand_t)(val_t p0);
@@ -1165,8 +1047,8 @@ static const char * const LOCATE_NEW_TKwand_parser___lexer___TKwand___init_tk =
 val_t NEW_TKwand_parser___lexer___TKwand___init_tk(val_t p0);
 typedef val_t (*NEW_TKwand_parser___lexer___TKwand___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwand_parser___parser_nodes___ANode___init = "new TKwand parser_nodes::ANode::init";
-val_t NEW_TKwand_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwand_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwand_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwand_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwor = "init var of TKwor";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwor(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwor_t)(val_t p0);
@@ -1178,8 +1060,8 @@ static const char * const LOCATE_NEW_TKwor_parser___lexer___TKwor___init_tk = "n
 val_t NEW_TKwor_parser___lexer___TKwor___init_tk(val_t p0);
 typedef val_t (*NEW_TKwor_parser___lexer___TKwor___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwor_parser___parser_nodes___ANode___init = "new TKwor parser_nodes::ANode::init";
-val_t NEW_TKwor_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwor_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwor_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwor_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwnot = "init var of TKwnot";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwnot(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwnot_t)(val_t p0);
@@ -1191,8 +1073,8 @@ static const char * const LOCATE_NEW_TKwnot_parser___lexer___TKwnot___init_tk =
 val_t NEW_TKwnot_parser___lexer___TKwnot___init_tk(val_t p0);
 typedef val_t (*NEW_TKwnot_parser___lexer___TKwnot___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwnot_parser___parser_nodes___ANode___init = "new TKwnot parser_nodes::ANode::init";
-val_t NEW_TKwnot_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwnot_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwnot_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwnot_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwreturn = "init var of TKwreturn";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwreturn(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwreturn_t)(val_t p0);
@@ -1204,8 +1086,8 @@ static const char * const LOCATE_NEW_TKwreturn_parser___lexer___TKwreturn___init
 val_t NEW_TKwreturn_parser___lexer___TKwreturn___init_tk(val_t p0);
 typedef val_t (*NEW_TKwreturn_parser___lexer___TKwreturn___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwreturn_parser___parser_nodes___ANode___init = "new TKwreturn parser_nodes::ANode::init";
-val_t NEW_TKwreturn_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwreturn_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwreturn_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwreturn_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwcontinue = "init var of TKwcontinue";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwcontinue(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwcontinue_t)(val_t p0);
@@ -1217,8 +1099,8 @@ static const char * const LOCATE_NEW_TKwcontinue_parser___lexer___TKwcontinue___
 val_t NEW_TKwcontinue_parser___lexer___TKwcontinue___init_tk(val_t p0);
 typedef val_t (*NEW_TKwcontinue_parser___lexer___TKwcontinue___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwcontinue_parser___parser_nodes___ANode___init = "new TKwcontinue parser_nodes::ANode::init";
-val_t NEW_TKwcontinue_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwcontinue_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwcontinue_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwcontinue_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwbreak = "init var of TKwbreak";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwbreak(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwbreak_t)(val_t p0);
@@ -1230,8 +1112,8 @@ static const char * const LOCATE_NEW_TKwbreak_parser___lexer___TKwbreak___init_t
 val_t NEW_TKwbreak_parser___lexer___TKwbreak___init_tk(val_t p0);
 typedef val_t (*NEW_TKwbreak_parser___lexer___TKwbreak___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwbreak_parser___parser_nodes___ANode___init = "new TKwbreak parser_nodes::ANode::init";
-val_t NEW_TKwbreak_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwbreak_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwbreak_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwbreak_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwabort = "init var of TKwabort";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwabort(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwabort_t)(val_t p0);
@@ -1243,8 +1125,8 @@ static const char * const LOCATE_NEW_TKwabort_parser___lexer___TKwabort___init_t
 val_t NEW_TKwabort_parser___lexer___TKwabort___init_tk(val_t p0);
 typedef val_t (*NEW_TKwabort_parser___lexer___TKwabort___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwabort_parser___parser_nodes___ANode___init = "new TKwabort parser_nodes::ANode::init";
-val_t NEW_TKwabort_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwabort_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwabort_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwabort_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwassert = "init var of TKwassert";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwassert(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwassert_t)(val_t p0);
@@ -1256,8 +1138,8 @@ static const char * const LOCATE_NEW_TKwassert_parser___lexer___TKwassert___init
 val_t NEW_TKwassert_parser___lexer___TKwassert___init_tk(val_t p0);
 typedef val_t (*NEW_TKwassert_parser___lexer___TKwassert___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwassert_parser___parser_nodes___ANode___init = "new TKwassert parser_nodes::ANode::init";
-val_t NEW_TKwassert_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwassert_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwassert_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwassert_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwnew = "init var of TKwnew";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwnew(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwnew_t)(val_t p0);
@@ -1269,8 +1151,8 @@ static const char * const LOCATE_NEW_TKwnew_parser___lexer___TKwnew___init_tk =
 val_t NEW_TKwnew_parser___lexer___TKwnew___init_tk(val_t p0);
 typedef val_t (*NEW_TKwnew_parser___lexer___TKwnew___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwnew_parser___parser_nodes___ANode___init = "new TKwnew parser_nodes::ANode::init";
-val_t NEW_TKwnew_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwnew_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwnew_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwnew_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwisa = "init var of TKwisa";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwisa(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwisa_t)(val_t p0);
@@ -1282,8 +1164,8 @@ static const char * const LOCATE_NEW_TKwisa_parser___lexer___TKwisa___init_tk =
 val_t NEW_TKwisa_parser___lexer___TKwisa___init_tk(val_t p0);
 typedef val_t (*NEW_TKwisa_parser___lexer___TKwisa___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwisa_parser___parser_nodes___ANode___init = "new TKwisa parser_nodes::ANode::init";
-val_t NEW_TKwisa_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwisa_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwisa_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwisa_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwonce = "init var of TKwonce";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwonce(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwonce_t)(val_t p0);
@@ -1295,8 +1177,8 @@ static const char * const LOCATE_NEW_TKwonce_parser___lexer___TKwonce___init_tk
 val_t NEW_TKwonce_parser___lexer___TKwonce___init_tk(val_t p0);
 typedef val_t (*NEW_TKwonce_parser___lexer___TKwonce___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwonce_parser___parser_nodes___ANode___init = "new TKwonce parser_nodes::ANode::init";
-val_t NEW_TKwonce_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwonce_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwonce_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwonce_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwsuper = "init var of TKwsuper";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwsuper(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwsuper_t)(val_t p0);
@@ -1308,8 +1190,8 @@ static const char * const LOCATE_NEW_TKwsuper_parser___lexer___TKwsuper___init_t
 val_t NEW_TKwsuper_parser___lexer___TKwsuper___init_tk(val_t p0);
 typedef val_t (*NEW_TKwsuper_parser___lexer___TKwsuper___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwsuper_parser___parser_nodes___ANode___init = "new TKwsuper parser_nodes::ANode::init";
-val_t NEW_TKwsuper_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwsuper_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwsuper_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwsuper_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwself = "init var of TKwself";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwself(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwself_t)(val_t p0);
@@ -1321,8 +1203,8 @@ static const char * const LOCATE_NEW_TKwself_parser___lexer___TKwself___init_tk
 val_t NEW_TKwself_parser___lexer___TKwself___init_tk(val_t p0);
 typedef val_t (*NEW_TKwself_parser___lexer___TKwself___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwself_parser___parser_nodes___ANode___init = "new TKwself parser_nodes::ANode::init";
-val_t NEW_TKwself_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwself_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwself_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwself_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwtrue = "init var of TKwtrue";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwtrue(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwtrue_t)(val_t p0);
@@ -1334,8 +1216,8 @@ static const char * const LOCATE_NEW_TKwtrue_parser___lexer___TKwtrue___init_tk
 val_t NEW_TKwtrue_parser___lexer___TKwtrue___init_tk(val_t p0);
 typedef val_t (*NEW_TKwtrue_parser___lexer___TKwtrue___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwtrue_parser___parser_nodes___ANode___init = "new TKwtrue parser_nodes::ANode::init";
-val_t NEW_TKwtrue_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwtrue_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwtrue_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwtrue_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwfalse = "init var of TKwfalse";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwfalse(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwfalse_t)(val_t p0);
@@ -1347,8 +1229,8 @@ static const char * const LOCATE_NEW_TKwfalse_parser___lexer___TKwfalse___init_t
 val_t NEW_TKwfalse_parser___lexer___TKwfalse___init_tk(val_t p0);
 typedef val_t (*NEW_TKwfalse_parser___lexer___TKwfalse___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwfalse_parser___parser_nodes___ANode___init = "new TKwfalse parser_nodes::ANode::init";
-val_t NEW_TKwfalse_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwfalse_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwfalse_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwfalse_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwnull = "init var of TKwnull";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwnull(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwnull_t)(val_t p0);
@@ -1360,8 +1242,8 @@ static const char * const LOCATE_NEW_TKwnull_parser___lexer___TKwnull___init_tk
 val_t NEW_TKwnull_parser___lexer___TKwnull___init_tk(val_t p0);
 typedef val_t (*NEW_TKwnull_parser___lexer___TKwnull___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwnull_parser___parser_nodes___ANode___init = "new TKwnull parser_nodes::ANode::init";
-val_t NEW_TKwnull_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwnull_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwnull_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwnull_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwas = "init var of TKwas";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwas(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwas_t)(val_t p0);
@@ -1373,8 +1255,8 @@ static const char * const LOCATE_NEW_TKwas_parser___lexer___TKwas___init_tk = "n
 val_t NEW_TKwas_parser___lexer___TKwas___init_tk(val_t p0);
 typedef val_t (*NEW_TKwas_parser___lexer___TKwas___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwas_parser___parser_nodes___ANode___init = "new TKwas parser_nodes::ANode::init";
-val_t NEW_TKwas_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwas_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwas_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwas_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwnullable = "init var of TKwnullable";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwnullable(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwnullable_t)(val_t p0);
@@ -1386,8 +1268,8 @@ static const char * const LOCATE_NEW_TKwnullable_parser___lexer___TKwnullable___
 val_t NEW_TKwnullable_parser___lexer___TKwnullable___init_tk(val_t p0);
 typedef val_t (*NEW_TKwnullable_parser___lexer___TKwnullable___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwnullable_parser___parser_nodes___ANode___init = "new TKwnullable parser_nodes::ANode::init";
-val_t NEW_TKwnullable_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwnullable_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwnullable_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwnullable_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwisset = "init var of TKwisset";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwisset(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwisset_t)(val_t p0);
@@ -1399,8 +1281,8 @@ static const char * const LOCATE_NEW_TKwisset_parser___lexer___TKwisset___init_t
 val_t NEW_TKwisset_parser___lexer___TKwisset___init_tk(val_t p0);
 typedef val_t (*NEW_TKwisset_parser___lexer___TKwisset___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwisset_parser___parser_nodes___ANode___init = "new TKwisset parser_nodes::ANode::init";
-val_t NEW_TKwisset_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwisset_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwisset_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwisset_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwlabel = "init var of TKwlabel";
 void INIT_ATTRIBUTES__parser___parser_nodes___TKwlabel(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwlabel_t)(val_t p0);
@@ -1412,8 +1294,21 @@ static const char * const LOCATE_NEW_TKwlabel_parser___lexer___TKwlabel___init_t
 val_t NEW_TKwlabel_parser___lexer___TKwlabel___init_tk(val_t p0);
 typedef val_t (*NEW_TKwlabel_parser___lexer___TKwlabel___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TKwlabel_parser___parser_nodes___ANode___init = "new TKwlabel parser_nodes::ANode::init";
-val_t NEW_TKwlabel_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TKwlabel_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TKwlabel_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwlabel_parser___parser_nodes___ANode___init_t)(void);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwdebug = "init var of TKwdebug";
+void INIT_ATTRIBUTES__parser___parser_nodes___TKwdebug(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TKwdebug_t)(val_t p0);
+val_t NEW_parser___parser_nodes___TKwdebug(void);
+static const char * const LOCATE_CHECKNEW_parser___parser_nodes___TKwdebug = "check new TKwdebug";
+void CHECKNEW_parser___parser_nodes___TKwdebug(val_t p0);
+typedef void (*CHECKNEW_parser___parser_nodes___TKwdebug_t)(val_t p0);
+static const char * const LOCATE_NEW_TKwdebug_parser___lexer___TKwdebug___init_tk = "new TKwdebug lexer::TKwdebug::init_tk";
+val_t NEW_TKwdebug_parser___lexer___TKwdebug___init_tk(val_t p0);
+typedef val_t (*NEW_TKwdebug_parser___lexer___TKwdebug___init_tk_t)(val_t p0);
+static const char * const LOCATE_NEW_TKwdebug_parser___parser_nodes___ANode___init = "new TKwdebug parser_nodes::ANode::init";
+val_t NEW_TKwdebug_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TKwdebug_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TOpar = "init var of TOpar";
 void INIT_ATTRIBUTES__parser___parser_nodes___TOpar(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TOpar_t)(val_t p0);
@@ -1425,8 +1320,8 @@ static const char * const LOCATE_NEW_TOpar_parser___lexer___TOpar___init_tk = "n
 val_t NEW_TOpar_parser___lexer___TOpar___init_tk(val_t p0);
 typedef val_t (*NEW_TOpar_parser___lexer___TOpar___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TOpar_parser___parser_nodes___ANode___init = "new TOpar parser_nodes::ANode::init";
-val_t NEW_TOpar_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TOpar_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TOpar_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TOpar_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TCpar = "init var of TCpar";
 void INIT_ATTRIBUTES__parser___parser_nodes___TCpar(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TCpar_t)(val_t p0);
@@ -1438,8 +1333,8 @@ static const char * const LOCATE_NEW_TCpar_parser___lexer___TCpar___init_tk = "n
 val_t NEW_TCpar_parser___lexer___TCpar___init_tk(val_t p0);
 typedef val_t (*NEW_TCpar_parser___lexer___TCpar___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TCpar_parser___parser_nodes___ANode___init = "new TCpar parser_nodes::ANode::init";
-val_t NEW_TCpar_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TCpar_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TCpar_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TCpar_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TObra = "init var of TObra";
 void INIT_ATTRIBUTES__parser___parser_nodes___TObra(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TObra_t)(val_t p0);
@@ -1451,8 +1346,8 @@ static const char * const LOCATE_NEW_TObra_parser___lexer___TObra___init_tk = "n
 val_t NEW_TObra_parser___lexer___TObra___init_tk(val_t p0);
 typedef val_t (*NEW_TObra_parser___lexer___TObra___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TObra_parser___parser_nodes___ANode___init = "new TObra parser_nodes::ANode::init";
-val_t NEW_TObra_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TObra_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TObra_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TObra_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TCbra = "init var of TCbra";
 void INIT_ATTRIBUTES__parser___parser_nodes___TCbra(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TCbra_t)(val_t p0);
@@ -1464,8 +1359,8 @@ static const char * const LOCATE_NEW_TCbra_parser___lexer___TCbra___init_tk = "n
 val_t NEW_TCbra_parser___lexer___TCbra___init_tk(val_t p0);
 typedef val_t (*NEW_TCbra_parser___lexer___TCbra___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TCbra_parser___parser_nodes___ANode___init = "new TCbra parser_nodes::ANode::init";
-val_t NEW_TCbra_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TCbra_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TCbra_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TCbra_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TComma = "init var of TComma";
 void INIT_ATTRIBUTES__parser___parser_nodes___TComma(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TComma_t)(val_t p0);
@@ -1477,8 +1372,8 @@ static const char * const LOCATE_NEW_TComma_parser___lexer___TComma___init_tk =
 val_t NEW_TComma_parser___lexer___TComma___init_tk(val_t p0);
 typedef val_t (*NEW_TComma_parser___lexer___TComma___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TComma_parser___parser_nodes___ANode___init = "new TComma parser_nodes::ANode::init";
-val_t NEW_TComma_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TComma_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TComma_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TComma_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TColumn = "init var of TColumn";
 void INIT_ATTRIBUTES__parser___parser_nodes___TColumn(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TColumn_t)(val_t p0);
@@ -1490,8 +1385,8 @@ static const char * const LOCATE_NEW_TColumn_parser___lexer___TColumn___init_tk
 val_t NEW_TColumn_parser___lexer___TColumn___init_tk(val_t p0);
 typedef val_t (*NEW_TColumn_parser___lexer___TColumn___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TColumn_parser___parser_nodes___ANode___init = "new TColumn parser_nodes::ANode::init";
-val_t NEW_TColumn_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TColumn_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TColumn_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TColumn_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TQuad = "init var of TQuad";
 void INIT_ATTRIBUTES__parser___parser_nodes___TQuad(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TQuad_t)(val_t p0);
@@ -1503,8 +1398,8 @@ static const char * const LOCATE_NEW_TQuad_parser___lexer___TQuad___init_tk = "n
 val_t NEW_TQuad_parser___lexer___TQuad___init_tk(val_t p0);
 typedef val_t (*NEW_TQuad_parser___lexer___TQuad___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TQuad_parser___parser_nodes___ANode___init = "new TQuad parser_nodes::ANode::init";
-val_t NEW_TQuad_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TQuad_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TQuad_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TQuad_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TAssign = "init var of TAssign";
 void INIT_ATTRIBUTES__parser___parser_nodes___TAssign(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TAssign_t)(val_t p0);
@@ -1516,8 +1411,8 @@ static const char * const LOCATE_NEW_TAssign_parser___lexer___TAssign___init_tk
 val_t NEW_TAssign_parser___lexer___TAssign___init_tk(val_t p0);
 typedef val_t (*NEW_TAssign_parser___lexer___TAssign___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TAssign_parser___parser_nodes___ANode___init = "new TAssign parser_nodes::ANode::init";
-val_t NEW_TAssign_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TAssign_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TAssign_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TAssign_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TPluseq = "init var of TPluseq";
 void INIT_ATTRIBUTES__parser___parser_nodes___TPluseq(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TPluseq_t)(val_t p0);
@@ -1529,8 +1424,8 @@ static const char * const LOCATE_NEW_TPluseq_parser___lexer___TPluseq___init_tk
 val_t NEW_TPluseq_parser___lexer___TPluseq___init_tk(val_t p0);
 typedef val_t (*NEW_TPluseq_parser___lexer___TPluseq___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TPluseq_parser___parser_nodes___ANode___init = "new TPluseq parser_nodes::ANode::init";
-val_t NEW_TPluseq_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TPluseq_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TPluseq_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TPluseq_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TMinuseq = "init var of TMinuseq";
 void INIT_ATTRIBUTES__parser___parser_nodes___TMinuseq(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TMinuseq_t)(val_t p0);
@@ -1542,8 +1437,8 @@ static const char * const LOCATE_NEW_TMinuseq_parser___lexer___TMinuseq___init_t
 val_t NEW_TMinuseq_parser___lexer___TMinuseq___init_tk(val_t p0);
 typedef val_t (*NEW_TMinuseq_parser___lexer___TMinuseq___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TMinuseq_parser___parser_nodes___ANode___init = "new TMinuseq parser_nodes::ANode::init";
-val_t NEW_TMinuseq_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TMinuseq_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TMinuseq_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TMinuseq_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TDotdotdot = "init var of TDotdotdot";
 void INIT_ATTRIBUTES__parser___parser_nodes___TDotdotdot(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TDotdotdot_t)(val_t p0);
@@ -1555,8 +1450,8 @@ static const char * const LOCATE_NEW_TDotdotdot_parser___lexer___TDotdotdot___in
 val_t NEW_TDotdotdot_parser___lexer___TDotdotdot___init_tk(val_t p0);
 typedef val_t (*NEW_TDotdotdot_parser___lexer___TDotdotdot___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TDotdotdot_parser___parser_nodes___ANode___init = "new TDotdotdot parser_nodes::ANode::init";
-val_t NEW_TDotdotdot_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TDotdotdot_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TDotdotdot_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TDotdotdot_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TDotdot = "init var of TDotdot";
 void INIT_ATTRIBUTES__parser___parser_nodes___TDotdot(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TDotdot_t)(val_t p0);
@@ -1568,8 +1463,8 @@ static const char * const LOCATE_NEW_TDotdot_parser___lexer___TDotdot___init_tk
 val_t NEW_TDotdot_parser___lexer___TDotdot___init_tk(val_t p0);
 typedef val_t (*NEW_TDotdot_parser___lexer___TDotdot___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TDotdot_parser___parser_nodes___ANode___init = "new TDotdot parser_nodes::ANode::init";
-val_t NEW_TDotdot_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TDotdot_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TDotdot_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TDotdot_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TDot = "init var of TDot";
 void INIT_ATTRIBUTES__parser___parser_nodes___TDot(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TDot_t)(val_t p0);
@@ -1581,8 +1476,8 @@ static const char * const LOCATE_NEW_TDot_parser___lexer___TDot___init_tk = "new
 val_t NEW_TDot_parser___lexer___TDot___init_tk(val_t p0);
 typedef val_t (*NEW_TDot_parser___lexer___TDot___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TDot_parser___parser_nodes___ANode___init = "new TDot parser_nodes::ANode::init";
-val_t NEW_TDot_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TDot_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TDot_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TDot_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TPlus = "init var of TPlus";
 void INIT_ATTRIBUTES__parser___parser_nodes___TPlus(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TPlus_t)(val_t p0);
@@ -1594,8 +1489,8 @@ static const char * const LOCATE_NEW_TPlus_parser___lexer___TPlus___init_tk = "n
 val_t NEW_TPlus_parser___lexer___TPlus___init_tk(val_t p0);
 typedef val_t (*NEW_TPlus_parser___lexer___TPlus___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TPlus_parser___parser_nodes___ANode___init = "new TPlus parser_nodes::ANode::init";
-val_t NEW_TPlus_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TPlus_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TPlus_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TPlus_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TMinus = "init var of TMinus";
 void INIT_ATTRIBUTES__parser___parser_nodes___TMinus(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TMinus_t)(val_t p0);
@@ -1607,8 +1502,8 @@ static const char * const LOCATE_NEW_TMinus_parser___lexer___TMinus___init_tk =
 val_t NEW_TMinus_parser___lexer___TMinus___init_tk(val_t p0);
 typedef val_t (*NEW_TMinus_parser___lexer___TMinus___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TMinus_parser___parser_nodes___ANode___init = "new TMinus parser_nodes::ANode::init";
-val_t NEW_TMinus_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TMinus_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TMinus_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TMinus_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TStar = "init var of TStar";
 void INIT_ATTRIBUTES__parser___parser_nodes___TStar(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TStar_t)(val_t p0);
@@ -1620,8 +1515,8 @@ static const char * const LOCATE_NEW_TStar_parser___lexer___TStar___init_tk = "n
 val_t NEW_TStar_parser___lexer___TStar___init_tk(val_t p0);
 typedef val_t (*NEW_TStar_parser___lexer___TStar___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TStar_parser___parser_nodes___ANode___init = "new TStar parser_nodes::ANode::init";
-val_t NEW_TStar_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TStar_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TStar_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TStar_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TSlash = "init var of TSlash";
 void INIT_ATTRIBUTES__parser___parser_nodes___TSlash(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TSlash_t)(val_t p0);
@@ -1633,8 +1528,8 @@ static const char * const LOCATE_NEW_TSlash_parser___lexer___TSlash___init_tk =
 val_t NEW_TSlash_parser___lexer___TSlash___init_tk(val_t p0);
 typedef val_t (*NEW_TSlash_parser___lexer___TSlash___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TSlash_parser___parser_nodes___ANode___init = "new TSlash parser_nodes::ANode::init";
-val_t NEW_TSlash_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TSlash_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TSlash_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TSlash_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TPercent = "init var of TPercent";
 void INIT_ATTRIBUTES__parser___parser_nodes___TPercent(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TPercent_t)(val_t p0);
@@ -1646,8 +1541,8 @@ static const char * const LOCATE_NEW_TPercent_parser___lexer___TPercent___init_t
 val_t NEW_TPercent_parser___lexer___TPercent___init_tk(val_t p0);
 typedef val_t (*NEW_TPercent_parser___lexer___TPercent___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TPercent_parser___parser_nodes___ANode___init = "new TPercent parser_nodes::ANode::init";
-val_t NEW_TPercent_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TPercent_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TPercent_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TPercent_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TEq = "init var of TEq";
 void INIT_ATTRIBUTES__parser___parser_nodes___TEq(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TEq_t)(val_t p0);
@@ -1659,8 +1554,8 @@ static const char * const LOCATE_NEW_TEq_parser___lexer___TEq___init_tk = "new T
 val_t NEW_TEq_parser___lexer___TEq___init_tk(val_t p0);
 typedef val_t (*NEW_TEq_parser___lexer___TEq___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TEq_parser___parser_nodes___ANode___init = "new TEq parser_nodes::ANode::init";
-val_t NEW_TEq_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TEq_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TEq_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TEq_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TNe = "init var of TNe";
 void INIT_ATTRIBUTES__parser___parser_nodes___TNe(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TNe_t)(val_t p0);
@@ -1672,8 +1567,8 @@ static const char * const LOCATE_NEW_TNe_parser___lexer___TNe___init_tk = "new T
 val_t NEW_TNe_parser___lexer___TNe___init_tk(val_t p0);
 typedef val_t (*NEW_TNe_parser___lexer___TNe___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TNe_parser___parser_nodes___ANode___init = "new TNe parser_nodes::ANode::init";
-val_t NEW_TNe_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TNe_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TNe_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TNe_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TLt = "init var of TLt";
 void INIT_ATTRIBUTES__parser___parser_nodes___TLt(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TLt_t)(val_t p0);
@@ -1685,8 +1580,8 @@ static const char * const LOCATE_NEW_TLt_parser___lexer___TLt___init_tk = "new T
 val_t NEW_TLt_parser___lexer___TLt___init_tk(val_t p0);
 typedef val_t (*NEW_TLt_parser___lexer___TLt___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TLt_parser___parser_nodes___ANode___init = "new TLt parser_nodes::ANode::init";
-val_t NEW_TLt_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TLt_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TLt_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TLt_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TLe = "init var of TLe";
 void INIT_ATTRIBUTES__parser___parser_nodes___TLe(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TLe_t)(val_t p0);
@@ -1698,8 +1593,8 @@ static const char * const LOCATE_NEW_TLe_parser___lexer___TLe___init_tk = "new T
 val_t NEW_TLe_parser___lexer___TLe___init_tk(val_t p0);
 typedef val_t (*NEW_TLe_parser___lexer___TLe___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TLe_parser___parser_nodes___ANode___init = "new TLe parser_nodes::ANode::init";
-val_t NEW_TLe_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TLe_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TLe_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TLe_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TLl = "init var of TLl";
 void INIT_ATTRIBUTES__parser___parser_nodes___TLl(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TLl_t)(val_t p0);
@@ -1711,8 +1606,8 @@ static const char * const LOCATE_NEW_TLl_parser___lexer___TLl___init_tk = "new T
 val_t NEW_TLl_parser___lexer___TLl___init_tk(val_t p0);
 typedef val_t (*NEW_TLl_parser___lexer___TLl___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TLl_parser___parser_nodes___ANode___init = "new TLl parser_nodes::ANode::init";
-val_t NEW_TLl_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TLl_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TLl_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TLl_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TGt = "init var of TGt";
 void INIT_ATTRIBUTES__parser___parser_nodes___TGt(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TGt_t)(val_t p0);
@@ -1724,8 +1619,8 @@ static const char * const LOCATE_NEW_TGt_parser___lexer___TGt___init_tk = "new T
 val_t NEW_TGt_parser___lexer___TGt___init_tk(val_t p0);
 typedef val_t (*NEW_TGt_parser___lexer___TGt___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TGt_parser___parser_nodes___ANode___init = "new TGt parser_nodes::ANode::init";
-val_t NEW_TGt_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TGt_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TGt_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TGt_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TGe = "init var of TGe";
 void INIT_ATTRIBUTES__parser___parser_nodes___TGe(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TGe_t)(val_t p0);
@@ -1737,8 +1632,8 @@ static const char * const LOCATE_NEW_TGe_parser___lexer___TGe___init_tk = "new T
 val_t NEW_TGe_parser___lexer___TGe___init_tk(val_t p0);
 typedef val_t (*NEW_TGe_parser___lexer___TGe___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TGe_parser___parser_nodes___ANode___init = "new TGe parser_nodes::ANode::init";
-val_t NEW_TGe_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TGe_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TGe_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TGe_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TGg = "init var of TGg";
 void INIT_ATTRIBUTES__parser___parser_nodes___TGg(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TGg_t)(val_t p0);
@@ -1750,8 +1645,8 @@ static const char * const LOCATE_NEW_TGg_parser___lexer___TGg___init_tk = "new T
 val_t NEW_TGg_parser___lexer___TGg___init_tk(val_t p0);
 typedef val_t (*NEW_TGg_parser___lexer___TGg___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TGg_parser___parser_nodes___ANode___init = "new TGg parser_nodes::ANode::init";
-val_t NEW_TGg_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TGg_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TGg_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TGg_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TStarship = "init var of TStarship";
 void INIT_ATTRIBUTES__parser___parser_nodes___TStarship(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TStarship_t)(val_t p0);
@@ -1763,8 +1658,8 @@ static const char * const LOCATE_NEW_TStarship_parser___lexer___TStarship___init
 val_t NEW_TStarship_parser___lexer___TStarship___init_tk(val_t p0);
 typedef val_t (*NEW_TStarship_parser___lexer___TStarship___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TStarship_parser___parser_nodes___ANode___init = "new TStarship parser_nodes::ANode::init";
-val_t NEW_TStarship_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TStarship_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TStarship_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TStarship_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TBang = "init var of TBang";
 void INIT_ATTRIBUTES__parser___parser_nodes___TBang(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TBang_t)(val_t p0);
@@ -1776,8 +1671,8 @@ static const char * const LOCATE_NEW_TBang_parser___lexer___TBang___init_tk = "n
 val_t NEW_TBang_parser___lexer___TBang___init_tk(val_t p0);
 typedef val_t (*NEW_TBang_parser___lexer___TBang___init_tk_t)(val_t p0);
 static const char * const LOCATE_NEW_TBang_parser___parser_nodes___ANode___init = "new TBang parser_nodes::ANode::init";
-val_t NEW_TBang_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TBang_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TBang_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TBang_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TClassid = "init var of TClassid";
 void INIT_ATTRIBUTES__parser___parser_nodes___TClassid(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TClassid_t)(val_t p0);
@@ -1789,8 +1684,8 @@ static const char * const LOCATE_NEW_TClassid_parser___lexer___TClassid___init_t
 val_t NEW_TClassid_parser___lexer___TClassid___init_tk(val_t p0, val_t p1);
 typedef val_t (*NEW_TClassid_parser___lexer___TClassid___init_tk_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_TClassid_parser___parser_nodes___ANode___init = "new TClassid parser_nodes::ANode::init";
-val_t NEW_TClassid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TClassid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TClassid_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TClassid_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TId = "init var of TId";
 void INIT_ATTRIBUTES__parser___parser_nodes___TId(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TId_t)(val_t p0);
@@ -1802,8 +1697,8 @@ static const char * const LOCATE_NEW_TId_parser___lexer___TId___init_tk = "new T
 val_t NEW_TId_parser___lexer___TId___init_tk(val_t p0, val_t p1);
 typedef val_t (*NEW_TId_parser___lexer___TId___init_tk_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_TId_parser___parser_nodes___ANode___init = "new TId parser_nodes::ANode::init";
-val_t NEW_TId_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TId_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TId_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TId_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TAttrid = "init var of TAttrid";
 void INIT_ATTRIBUTES__parser___parser_nodes___TAttrid(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TAttrid_t)(val_t p0);
@@ -1815,8 +1710,8 @@ static const char * const LOCATE_NEW_TAttrid_parser___lexer___TAttrid___init_tk
 val_t NEW_TAttrid_parser___lexer___TAttrid___init_tk(val_t p0, val_t p1);
 typedef val_t (*NEW_TAttrid_parser___lexer___TAttrid___init_tk_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_TAttrid_parser___parser_nodes___ANode___init = "new TAttrid parser_nodes::ANode::init";
-val_t NEW_TAttrid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TAttrid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TAttrid_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TAttrid_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TNumber = "init var of TNumber";
 void INIT_ATTRIBUTES__parser___parser_nodes___TNumber(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TNumber_t)(val_t p0);
@@ -1828,8 +1723,8 @@ static const char * const LOCATE_NEW_TNumber_parser___lexer___TNumber___init_tk
 val_t NEW_TNumber_parser___lexer___TNumber___init_tk(val_t p0, val_t p1);
 typedef val_t (*NEW_TNumber_parser___lexer___TNumber___init_tk_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_TNumber_parser___parser_nodes___ANode___init = "new TNumber parser_nodes::ANode::init";
-val_t NEW_TNumber_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TNumber_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TNumber_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TNumber_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TFloat = "init var of TFloat";
 void INIT_ATTRIBUTES__parser___parser_nodes___TFloat(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TFloat_t)(val_t p0);
@@ -1841,8 +1736,8 @@ static const char * const LOCATE_NEW_TFloat_parser___lexer___TFloat___init_tk =
 val_t NEW_TFloat_parser___lexer___TFloat___init_tk(val_t p0, val_t p1);
 typedef val_t (*NEW_TFloat_parser___lexer___TFloat___init_tk_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_TFloat_parser___parser_nodes___ANode___init = "new TFloat parser_nodes::ANode::init";
-val_t NEW_TFloat_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TFloat_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TFloat_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TFloat_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TChar = "init var of TChar";
 void INIT_ATTRIBUTES__parser___parser_nodes___TChar(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TChar_t)(val_t p0);
@@ -1854,8 +1749,8 @@ static const char * const LOCATE_NEW_TChar_parser___lexer___TChar___init_tk = "n
 val_t NEW_TChar_parser___lexer___TChar___init_tk(val_t p0, val_t p1);
 typedef val_t (*NEW_TChar_parser___lexer___TChar___init_tk_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_TChar_parser___parser_nodes___ANode___init = "new TChar parser_nodes::ANode::init";
-val_t NEW_TChar_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TChar_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TChar_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TChar_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TString = "init var of TString";
 void INIT_ATTRIBUTES__parser___parser_nodes___TString(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TString_t)(val_t p0);
@@ -1867,8 +1762,8 @@ static const char * const LOCATE_NEW_TString_parser___lexer___TString___init_tk
 val_t NEW_TString_parser___lexer___TString___init_tk(val_t p0, val_t p1);
 typedef val_t (*NEW_TString_parser___lexer___TString___init_tk_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_TString_parser___parser_nodes___ANode___init = "new TString parser_nodes::ANode::init";
-val_t NEW_TString_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TString_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TString_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TString_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TStartString = "init var of TStartString";
 void INIT_ATTRIBUTES__parser___parser_nodes___TStartString(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TStartString_t)(val_t p0);
@@ -1880,8 +1775,8 @@ static const char * const LOCATE_NEW_TStartString_parser___lexer___TStartString_
 val_t NEW_TStartString_parser___lexer___TStartString___init_tk(val_t p0, val_t p1);
 typedef val_t (*NEW_TStartString_parser___lexer___TStartString___init_tk_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_TStartString_parser___parser_nodes___ANode___init = "new TStartString parser_nodes::ANode::init";
-val_t NEW_TStartString_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TStartString_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TStartString_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TStartString_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TMidString = "init var of TMidString";
 void INIT_ATTRIBUTES__parser___parser_nodes___TMidString(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TMidString_t)(val_t p0);
@@ -1893,8 +1788,8 @@ static const char * const LOCATE_NEW_TMidString_parser___lexer___TMidString___in
 val_t NEW_TMidString_parser___lexer___TMidString___init_tk(val_t p0, val_t p1);
 typedef val_t (*NEW_TMidString_parser___lexer___TMidString___init_tk_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_TMidString_parser___parser_nodes___ANode___init = "new TMidString parser_nodes::ANode::init";
-val_t NEW_TMidString_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TMidString_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TMidString_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TMidString_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TEndString = "init var of TEndString";
 void INIT_ATTRIBUTES__parser___parser_nodes___TEndString(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TEndString_t)(val_t p0);
@@ -1906,8 +1801,34 @@ static const char * const LOCATE_NEW_TEndString_parser___lexer___TEndString___in
 val_t NEW_TEndString_parser___lexer___TEndString___init_tk(val_t p0, val_t p1);
 typedef val_t (*NEW_TEndString_parser___lexer___TEndString___init_tk_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_TEndString_parser___parser_nodes___ANode___init = "new TEndString parser_nodes::ANode::init";
-val_t NEW_TEndString_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_TEndString_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_TEndString_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TEndString_parser___parser_nodes___ANode___init_t)(void);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TBadString = "init var of TBadString";
+void INIT_ATTRIBUTES__parser___parser_nodes___TBadString(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TBadString_t)(val_t p0);
+val_t NEW_parser___parser_nodes___TBadString(void);
+static const char * const LOCATE_CHECKNEW_parser___parser_nodes___TBadString = "check new TBadString";
+void CHECKNEW_parser___parser_nodes___TBadString(val_t p0);
+typedef void (*CHECKNEW_parser___parser_nodes___TBadString_t)(val_t p0);
+static const char * const LOCATE_NEW_TBadString_parser___lexer___TBadString___init_tk = "new TBadString lexer::TBadString::init_tk";
+val_t NEW_TBadString_parser___lexer___TBadString___init_tk(val_t p0, val_t p1);
+typedef val_t (*NEW_TBadString_parser___lexer___TBadString___init_tk_t)(val_t p0, val_t p1);
+static const char * const LOCATE_NEW_TBadString_parser___parser_nodes___ANode___init = "new TBadString parser_nodes::ANode::init";
+val_t NEW_TBadString_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TBadString_parser___parser_nodes___ANode___init_t)(void);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TBadChar = "init var of TBadChar";
+void INIT_ATTRIBUTES__parser___parser_nodes___TBadChar(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___TBadChar_t)(val_t p0);
+val_t NEW_parser___parser_nodes___TBadChar(void);
+static const char * const LOCATE_CHECKNEW_parser___parser_nodes___TBadChar = "check new TBadChar";
+void CHECKNEW_parser___parser_nodes___TBadChar(val_t p0);
+typedef void (*CHECKNEW_parser___parser_nodes___TBadChar_t)(val_t p0);
+static const char * const LOCATE_NEW_TBadChar_parser___lexer___TBadChar___init_tk = "new TBadChar lexer::TBadChar::init_tk";
+val_t NEW_TBadChar_parser___lexer___TBadChar___init_tk(val_t p0, val_t p1);
+typedef val_t (*NEW_TBadChar_parser___lexer___TBadChar___init_tk_t)(val_t p0, val_t p1);
+static const char * const LOCATE_NEW_TBadChar_parser___parser_nodes___ANode___init = "new TBadChar parser_nodes::ANode::init";
+val_t NEW_TBadChar_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_TBadChar_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___EOF = "init var of EOF";
 void INIT_ATTRIBUTES__parser___parser_nodes___EOF(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___EOF_t)(val_t p0);
@@ -1948,8 +1869,8 @@ static const char * const LOCATE_NEW_AModule_parser___parser_prod___AModule___in
 val_t NEW_AModule_parser___parser_prod___AModule___init_amodule(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_AModule_parser___parser_prod___AModule___init_amodule_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_AModule_parser___parser_nodes___ANode___init = "new AModule parser_nodes::ANode::init";
-val_t NEW_AModule_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AModule_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AModule_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AModule_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AModuledecl = "init var of AModuledecl";
 void INIT_ATTRIBUTES__parser___parser_nodes___AModuledecl(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AModuledecl_t)(val_t p0);
@@ -1964,18 +1885,8 @@ static const char * const LOCATE_NEW_AModuledecl_parser___parser_prod___AModuled
 val_t NEW_AModuledecl_parser___parser_prod___AModuledecl___init_amoduledecl(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_AModuledecl_parser___parser_prod___AModuledecl___init_amoduledecl_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_AModuledecl_parser___parser_nodes___ANode___init = "new AModuledecl parser_nodes::ANode::init";
-val_t NEW_AModuledecl_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AModuledecl_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AImport = "init var of AImport";
-void INIT_ATTRIBUTES__parser___parser_nodes___AImport(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AImport_t)(val_t p0);
-val_t NEW_parser___parser_nodes___AImport(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AImport = "check new AImport";
-void CHECKNEW_parser___parser_nodes___AImport(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___AImport_t)(val_t p0);
-static const char * const LOCATE_NEW_AImport_parser___parser_nodes___ANode___init = "new AImport parser_nodes::ANode::init";
-val_t NEW_AImport_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AImport_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AModuledecl_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AModuledecl_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AStdImport = "init var of AStdImport";
 void INIT_ATTRIBUTES__parser___parser_nodes___AStdImport(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AStdImport_t)(val_t p0);
@@ -1990,8 +1901,8 @@ static const char * const LOCATE_NEW_AStdImport_parser___parser_prod___AStdImpor
 val_t NEW_AStdImport_parser___parser_prod___AStdImport___init_astdimport(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_AStdImport_parser___parser_prod___AStdImport___init_astdimport_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_AStdImport_parser___parser_nodes___ANode___init = "new AStdImport parser_nodes::ANode::init";
-val_t NEW_AStdImport_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AStdImport_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AStdImport_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AStdImport_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ANoImport = "init var of ANoImport";
 void INIT_ATTRIBUTES__parser___parser_nodes___ANoImport(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ANoImport_t)(val_t p0);
@@ -2006,18 +1917,8 @@ static const char * const LOCATE_NEW_ANoImport_parser___parser_prod___ANoImport_
 val_t NEW_ANoImport_parser___parser_prod___ANoImport___init_anoimport(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_ANoImport_parser___parser_prod___ANoImport___init_anoimport_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_ANoImport_parser___parser_nodes___ANode___init = "new ANoImport parser_nodes::ANode::init";
-val_t NEW_ANoImport_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ANoImport_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AVisibility = "init var of AVisibility";
-void INIT_ATTRIBUTES__parser___parser_nodes___AVisibility(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AVisibility_t)(val_t p0);
-val_t NEW_parser___parser_nodes___AVisibility(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AVisibility = "check new AVisibility";
-void CHECKNEW_parser___parser_nodes___AVisibility(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___AVisibility_t)(val_t p0);
-static const char * const LOCATE_NEW_AVisibility_parser___parser_nodes___ANode___init = "new AVisibility parser_nodes::ANode::init";
-val_t NEW_AVisibility_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AVisibility_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ANoImport_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ANoImport_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___APublicVisibility = "init var of APublicVisibility";
 void INIT_ATTRIBUTES__parser___parser_nodes___APublicVisibility(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___APublicVisibility_t)(val_t p0);
@@ -2032,8 +1933,8 @@ static const char * const LOCATE_NEW_APublicVisibility_parser___parser_prod___AP
 val_t NEW_APublicVisibility_parser___parser_prod___APublicVisibility___init_apublicvisibility(void);
 typedef val_t (*NEW_APublicVisibility_parser___parser_prod___APublicVisibility___init_apublicvisibility_t)(void);
 static const char * const LOCATE_NEW_APublicVisibility_parser___parser_nodes___ANode___init = "new APublicVisibility parser_nodes::ANode::init";
-val_t NEW_APublicVisibility_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_APublicVisibility_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_APublicVisibility_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_APublicVisibility_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___APrivateVisibility = "init var of APrivateVisibility";
 void INIT_ATTRIBUTES__parser___parser_nodes___APrivateVisibility(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___APrivateVisibility_t)(val_t p0);
@@ -2048,8 +1949,8 @@ static const char * const LOCATE_NEW_APrivateVisibility_parser___parser_prod___A
 val_t NEW_APrivateVisibility_parser___parser_prod___APrivateVisibility___init_aprivatevisibility(val_t p0);
 typedef val_t (*NEW_APrivateVisibility_parser___parser_prod___APrivateVisibility___init_aprivatevisibility_t)(val_t p0);
 static const char * const LOCATE_NEW_APrivateVisibility_parser___parser_nodes___ANode___init = "new APrivateVisibility parser_nodes::ANode::init";
-val_t NEW_APrivateVisibility_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_APrivateVisibility_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_APrivateVisibility_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_APrivateVisibility_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AProtectedVisibility = "init var of AProtectedVisibility";
 void INIT_ATTRIBUTES__parser___parser_nodes___AProtectedVisibility(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AProtectedVisibility_t)(val_t p0);
@@ -2064,8 +1965,8 @@ static const char * const LOCATE_NEW_AProtectedVisibility_parser___parser_prod__
 val_t NEW_AProtectedVisibility_parser___parser_prod___AProtectedVisibility___init_aprotectedvisibility(val_t p0);
 typedef val_t (*NEW_AProtectedVisibility_parser___parser_prod___AProtectedVisibility___init_aprotectedvisibility_t)(val_t p0);
 static const char * const LOCATE_NEW_AProtectedVisibility_parser___parser_nodes___ANode___init = "new AProtectedVisibility parser_nodes::ANode::init";
-val_t NEW_AProtectedVisibility_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AProtectedVisibility_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AProtectedVisibility_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AProtectedVisibility_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AIntrudeVisibility = "init var of AIntrudeVisibility";
 void INIT_ATTRIBUTES__parser___parser_nodes___AIntrudeVisibility(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AIntrudeVisibility_t)(val_t p0);
@@ -2080,18 +1981,8 @@ static const char * const LOCATE_NEW_AIntrudeVisibility_parser___parser_prod___A
 val_t NEW_AIntrudeVisibility_parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t p0);
 typedef val_t (*NEW_AIntrudeVisibility_parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility_t)(val_t p0);
 static const char * const LOCATE_NEW_AIntrudeVisibility_parser___parser_nodes___ANode___init = "new AIntrudeVisibility parser_nodes::ANode::init";
-val_t NEW_AIntrudeVisibility_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AIntrudeVisibility_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AClassdef = "init var of AClassdef";
-void INIT_ATTRIBUTES__parser___parser_nodes___AClassdef(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AClassdef_t)(val_t p0);
-val_t NEW_parser___parser_nodes___AClassdef(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AClassdef = "check new AClassdef";
-void CHECKNEW_parser___parser_nodes___AClassdef(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___AClassdef_t)(val_t p0);
-static const char * const LOCATE_NEW_AClassdef_parser___parser_nodes___ANode___init = "new AClassdef parser_nodes::ANode::init";
-val_t NEW_AClassdef_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AClassdef_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AIntrudeVisibility_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AIntrudeVisibility_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AStdClassdef = "init var of AStdClassdef";
 void INIT_ATTRIBUTES__parser___parser_nodes___AStdClassdef(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AStdClassdef_t)(val_t p0);
@@ -2103,11 +1994,11 @@ static const char * const LOCATE_NEW_AStdClassdef_parser___parser_prod___AStdCla
 val_t NEW_AStdClassdef_parser___parser_prod___AStdClassdef___empty_init(void);
 typedef val_t (*NEW_AStdClassdef_parser___parser_prod___AStdClassdef___empty_init_t)(void);
 static const char * const LOCATE_NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef = "new AStdClassdef parser_prod::AStdClassdef::init_astdclassdef";
-val_t NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7);
-typedef val_t (*NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7);
+val_t NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8);
+typedef val_t (*NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8);
 static const char * const LOCATE_NEW_AStdClassdef_parser___parser_nodes___ANode___init = "new AStdClassdef parser_nodes::ANode::init";
-val_t NEW_AStdClassdef_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AStdClassdef_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AStdClassdef_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AStdClassdef_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ATopClassdef = "init var of ATopClassdef";
 void INIT_ATTRIBUTES__parser___parser_nodes___ATopClassdef(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ATopClassdef_t)(val_t p0);
@@ -2122,8 +2013,8 @@ static const char * const LOCATE_NEW_ATopClassdef_parser___parser_prod___ATopCla
 val_t NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(val_t p0);
 typedef val_t (*NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef_t)(val_t p0);
 static const char * const LOCATE_NEW_ATopClassdef_parser___parser_nodes___ANode___init = "new ATopClassdef parser_nodes::ANode::init";
-val_t NEW_ATopClassdef_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ATopClassdef_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ATopClassdef_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ATopClassdef_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AMainClassdef = "init var of AMainClassdef";
 void INIT_ATTRIBUTES__parser___parser_nodes___AMainClassdef(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AMainClassdef_t)(val_t p0);
@@ -2138,18 +2029,8 @@ static const char * const LOCATE_NEW_AMainClassdef_parser___parser_prod___AMainC
 val_t NEW_AMainClassdef_parser___parser_prod___AMainClassdef___init_amainclassdef(val_t p0);
 typedef val_t (*NEW_AMainClassdef_parser___parser_prod___AMainClassdef___init_amainclassdef_t)(val_t p0);
 static const char * const LOCATE_NEW_AMainClassdef_parser___parser_nodes___ANode___init = "new AMainClassdef parser_nodes::ANode::init";
-val_t NEW_AMainClassdef_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AMainClassdef_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AClasskind = "init var of AClasskind";
-void INIT_ATTRIBUTES__parser___parser_nodes___AClasskind(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AClasskind_t)(val_t p0);
-val_t NEW_parser___parser_nodes___AClasskind(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AClasskind = "check new AClasskind";
-void CHECKNEW_parser___parser_nodes___AClasskind(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___AClasskind_t)(val_t p0);
-static const char * const LOCATE_NEW_AClasskind_parser___parser_nodes___ANode___init = "new AClasskind parser_nodes::ANode::init";
-val_t NEW_AClasskind_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AClasskind_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AMainClassdef_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AMainClassdef_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AConcreteClasskind = "init var of AConcreteClasskind";
 void INIT_ATTRIBUTES__parser___parser_nodes___AConcreteClasskind(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AConcreteClasskind_t)(val_t p0);
@@ -2164,8 +2045,8 @@ static const char * const LOCATE_NEW_AConcreteClasskind_parser___parser_prod___A
 val_t NEW_AConcreteClasskind_parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind(val_t p0);
 typedef val_t (*NEW_AConcreteClasskind_parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind_t)(val_t p0);
 static const char * const LOCATE_NEW_AConcreteClasskind_parser___parser_nodes___ANode___init = "new AConcreteClasskind parser_nodes::ANode::init";
-val_t NEW_AConcreteClasskind_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AConcreteClasskind_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AConcreteClasskind_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AConcreteClasskind_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAbstractClasskind = "init var of AAbstractClasskind";
 void INIT_ATTRIBUTES__parser___parser_nodes___AAbstractClasskind(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AAbstractClasskind_t)(val_t p0);
@@ -2180,8 +2061,8 @@ static const char * const LOCATE_NEW_AAbstractClasskind_parser___parser_prod___A
 val_t NEW_AAbstractClasskind_parser___parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t p0, val_t p1);
 typedef val_t (*NEW_AAbstractClasskind_parser___parser_prod___AAbstractClasskind___init_aabstractclasskind_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AAbstractClasskind_parser___parser_nodes___ANode___init = "new AAbstractClasskind parser_nodes::ANode::init";
-val_t NEW_AAbstractClasskind_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AAbstractClasskind_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AAbstractClasskind_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AAbstractClasskind_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AInterfaceClasskind = "init var of AInterfaceClasskind";
 void INIT_ATTRIBUTES__parser___parser_nodes___AInterfaceClasskind(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AInterfaceClasskind_t)(val_t p0);
@@ -2196,8 +2077,8 @@ static const char * const LOCATE_NEW_AInterfaceClasskind_parser___parser_prod___
 val_t NEW_AInterfaceClasskind_parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t p0);
 typedef val_t (*NEW_AInterfaceClasskind_parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind_t)(val_t p0);
 static const char * const LOCATE_NEW_AInterfaceClasskind_parser___parser_nodes___ANode___init = "new AInterfaceClasskind parser_nodes::ANode::init";
-val_t NEW_AInterfaceClasskind_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AInterfaceClasskind_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AInterfaceClasskind_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AInterfaceClasskind_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AEnumClasskind = "init var of AEnumClasskind";
 void INIT_ATTRIBUTES__parser___parser_nodes___AEnumClasskind(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AEnumClasskind_t)(val_t p0);
@@ -2212,8 +2093,8 @@ static const char * const LOCATE_NEW_AEnumClasskind_parser___parser_prod___AEnum
 val_t NEW_AEnumClasskind_parser___parser_prod___AEnumClasskind___init_aenumclasskind(val_t p0);
 typedef val_t (*NEW_AEnumClasskind_parser___parser_prod___AEnumClasskind___init_aenumclasskind_t)(val_t p0);
 static const char * const LOCATE_NEW_AEnumClasskind_parser___parser_nodes___ANode___init = "new AEnumClasskind parser_nodes::ANode::init";
-val_t NEW_AEnumClasskind_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AEnumClasskind_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AEnumClasskind_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AEnumClasskind_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AExternClasskind = "init var of AExternClasskind";
 void INIT_ATTRIBUTES__parser___parser_nodes___AExternClasskind(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AExternClasskind_t)(val_t p0);
@@ -2228,8 +2109,8 @@ static const char * const LOCATE_NEW_AExternClasskind_parser___parser_prod___AEx
 val_t NEW_AExternClasskind_parser___parser_prod___AExternClasskind___init_aexternclasskind(val_t p0);
 typedef val_t (*NEW_AExternClasskind_parser___parser_prod___AExternClasskind___init_aexternclasskind_t)(val_t p0);
 static const char * const LOCATE_NEW_AExternClasskind_parser___parser_nodes___ANode___init = "new AExternClasskind parser_nodes::ANode::init";
-val_t NEW_AExternClasskind_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AExternClasskind_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AExternClasskind_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AExternClasskind_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AFormaldef = "init var of AFormaldef";
 void INIT_ATTRIBUTES__parser___parser_nodes___AFormaldef(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AFormaldef_t)(val_t p0);
@@ -2244,8 +2125,8 @@ static const char * const LOCATE_NEW_AFormaldef_parser___parser_prod___AFormalde
 val_t NEW_AFormaldef_parser___parser_prod___AFormaldef___init_aformaldef(val_t p0, val_t p1);
 typedef val_t (*NEW_AFormaldef_parser___parser_prod___AFormaldef___init_aformaldef_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AFormaldef_parser___parser_nodes___ANode___init = "new AFormaldef parser_nodes::ANode::init";
-val_t NEW_AFormaldef_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AFormaldef_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AFormaldef_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AFormaldef_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ASuperclass = "init var of ASuperclass";
 void INIT_ATTRIBUTES__parser___parser_nodes___ASuperclass(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ASuperclass_t)(val_t p0);
@@ -2260,18 +2141,8 @@ static const char * const LOCATE_NEW_ASuperclass_parser___parser_prod___ASupercl
 val_t NEW_ASuperclass_parser___parser_prod___ASuperclass___init_asuperclass(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_ASuperclass_parser___parser_prod___ASuperclass___init_asuperclass_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_ASuperclass_parser___parser_nodes___ANode___init = "new ASuperclass parser_nodes::ANode::init";
-val_t NEW_ASuperclass_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ASuperclass_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___APropdef = "init var of APropdef";
-void INIT_ATTRIBUTES__parser___parser_nodes___APropdef(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___APropdef_t)(val_t p0);
-val_t NEW_parser___parser_nodes___APropdef(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___APropdef = "check new APropdef";
-void CHECKNEW_parser___parser_nodes___APropdef(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___APropdef_t)(val_t p0);
-static const char * const LOCATE_NEW_APropdef_parser___parser_nodes___ANode___init = "new APropdef parser_nodes::ANode::init";
-val_t NEW_APropdef_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_APropdef_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ASuperclass_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ASuperclass_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAttrPropdef = "init var of AAttrPropdef";
 void INIT_ATTRIBUTES__parser___parser_nodes___AAttrPropdef(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AAttrPropdef_t)(val_t p0);
@@ -2286,24 +2157,8 @@ static const char * const LOCATE_NEW_AAttrPropdef_parser___parser_prod___AAttrPr
 val_t NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, val_t p9);
 typedef val_t (*NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, val_t p9);
 static const char * const LOCATE_NEW_AAttrPropdef_parser___parser_nodes___ANode___init = "new AAttrPropdef parser_nodes::ANode::init";
-val_t NEW_AAttrPropdef_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AAttrPropdef_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AMethPropdef = "init var of AMethPropdef";
-void INIT_ATTRIBUTES__parser___parser_nodes___AMethPropdef(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AMethPropdef_t)(val_t p0);
-val_t NEW_parser___parser_nodes___AMethPropdef(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AMethPropdef = "check new AMethPropdef";
-void CHECKNEW_parser___parser_nodes___AMethPropdef(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___AMethPropdef_t)(val_t p0);
-static const char * const LOCATE_NEW_AMethPropdef_parser___parser_prod___AMethPropdef___empty_init = "new AMethPropdef parser_prod::AMethPropdef::empty_init";
-val_t NEW_AMethPropdef_parser___parser_prod___AMethPropdef___empty_init(void);
-typedef val_t (*NEW_AMethPropdef_parser___parser_prod___AMethPropdef___empty_init_t)(void);
-static const char * const LOCATE_NEW_AMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef = "new AMethPropdef parser_prod::AMethPropdef::init_amethpropdef";
-val_t NEW_AMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-typedef val_t (*NEW_AMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-static const char * const LOCATE_NEW_AMethPropdef_parser___parser_nodes___ANode___init = "new AMethPropdef parser_nodes::ANode::init";
-val_t NEW_AMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AMethPropdef_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AAttrPropdef_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AAttrPropdef_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ADeferredMethPropdef = "init var of ADeferredMethPropdef";
 void INIT_ATTRIBUTES__parser___parser_nodes___ADeferredMethPropdef(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ADeferredMethPropdef_t)(val_t p0);
@@ -2321,8 +2176,8 @@ static const char * const LOCATE_NEW_ADeferredMethPropdef_parser___parser_prod__
 val_t NEW_ADeferredMethPropdef_parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
 typedef val_t (*NEW_ADeferredMethPropdef_parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
 static const char * const LOCATE_NEW_ADeferredMethPropdef_parser___parser_nodes___ANode___init = "new ADeferredMethPropdef parser_nodes::ANode::init";
-val_t NEW_ADeferredMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ADeferredMethPropdef_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ADeferredMethPropdef_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ADeferredMethPropdef_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_ADeferredMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef = "new ADeferredMethPropdef parser_prod::AMethPropdef::init_amethpropdef";
 val_t NEW_ADeferredMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 typedef val_t (*NEW_ADeferredMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
@@ -2343,27 +2198,11 @@ static const char * const LOCATE_NEW_AInternMethPropdef_parser___parser_prod___A
 val_t NEW_AInternMethPropdef_parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
 typedef val_t (*NEW_AInternMethPropdef_parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
 static const char * const LOCATE_NEW_AInternMethPropdef_parser___parser_nodes___ANode___init = "new AInternMethPropdef parser_nodes::ANode::init";
-val_t NEW_AInternMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AInternMethPropdef_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AInternMethPropdef_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AInternMethPropdef_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_AInternMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef = "new AInternMethPropdef parser_prod::AMethPropdef::init_amethpropdef";
 val_t NEW_AInternMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 typedef val_t (*NEW_AInternMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AExternPropdef = "init var of AExternPropdef";
-void INIT_ATTRIBUTES__parser___parser_nodes___AExternPropdef(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AExternPropdef_t)(val_t p0);
-val_t NEW_parser___parser_nodes___AExternPropdef(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AExternPropdef = "check new AExternPropdef";
-void CHECKNEW_parser___parser_nodes___AExternPropdef(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___AExternPropdef_t)(val_t p0);
-static const char * const LOCATE_NEW_AExternPropdef_parser___parser_nodes___ANode___init = "new AExternPropdef parser_nodes::ANode::init";
-val_t NEW_AExternPropdef_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AExternPropdef_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_NEW_AExternPropdef_parser___parser_prod___AMethPropdef___empty_init = "new AExternPropdef parser_prod::AMethPropdef::empty_init";
-val_t NEW_AExternPropdef_parser___parser_prod___AMethPropdef___empty_init(void);
-typedef val_t (*NEW_AExternPropdef_parser___parser_prod___AMethPropdef___empty_init_t)(void);
-static const char * const LOCATE_NEW_AExternPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef = "new AExternPropdef parser_prod::AMethPropdef::init_amethpropdef";
-val_t NEW_AExternPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-typedef val_t (*NEW_AExternPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AExternMethPropdef = "init var of AExternMethPropdef";
 void INIT_ATTRIBUTES__parser___parser_nodes___AExternMethPropdef(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AExternMethPropdef_t)(val_t p0);
@@ -2381,8 +2220,8 @@ static const char * const LOCATE_NEW_AExternMethPropdef_parser___parser_prod___A
 val_t NEW_AExternMethPropdef_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7);
 typedef val_t (*NEW_AExternMethPropdef_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7);
 static const char * const LOCATE_NEW_AExternMethPropdef_parser___parser_nodes___ANode___init = "new AExternMethPropdef parser_nodes::ANode::init";
-val_t NEW_AExternMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AExternMethPropdef_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AExternMethPropdef_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AExternMethPropdef_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_AExternMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef = "new AExternMethPropdef parser_prod::AMethPropdef::init_amethpropdef";
 val_t NEW_AExternMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 typedef val_t (*NEW_AExternMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
@@ -2403,21 +2242,11 @@ static const char * const LOCATE_NEW_AConcreteMethPropdef_parser___parser_prod__
 val_t NEW_AConcreteMethPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
 typedef val_t (*NEW_AConcreteMethPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
 static const char * const LOCATE_NEW_AConcreteMethPropdef_parser___parser_nodes___ANode___init = "new AConcreteMethPropdef parser_nodes::ANode::init";
-val_t NEW_AConcreteMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AConcreteMethPropdef_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AConcreteMethPropdef_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AConcreteMethPropdef_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_AConcreteMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef = "new AConcreteMethPropdef parser_prod::AMethPropdef::init_amethpropdef";
 val_t NEW_AConcreteMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 typedef val_t (*NEW_AConcreteMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AInitPropdef = "init var of AInitPropdef";
-void INIT_ATTRIBUTES__parser___parser_nodes___AInitPropdef(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AInitPropdef_t)(val_t p0);
-val_t NEW_parser___parser_nodes___AInitPropdef(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AInitPropdef = "check new AInitPropdef";
-void CHECKNEW_parser___parser_nodes___AInitPropdef(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___AInitPropdef_t)(val_t p0);
-static const char * const LOCATE_NEW_AInitPropdef_parser___parser_nodes___AInitPropdef___init = "new AInitPropdef parser_nodes::AInitPropdef::init";
-val_t NEW_AInitPropdef_parser___parser_nodes___AInitPropdef___init(void);
-typedef val_t (*NEW_AInitPropdef_parser___parser_nodes___AInitPropdef___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AConcreteInitPropdef = "init var of AConcreteInitPropdef";
 void INIT_ATTRIBUTES__parser___parser_nodes___AConcreteInitPropdef(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AConcreteInitPropdef_t)(val_t p0);
@@ -2425,15 +2254,27 @@ val_t NEW_parser___parser_nodes___AConcreteInitPropdef(void);
 static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AConcreteInitPropdef = "check new AConcreteInitPropdef";
 void CHECKNEW_parser___parser_nodes___AConcreteInitPropdef(val_t p0);
 typedef void (*CHECKNEW_parser___parser_nodes___AConcreteInitPropdef_t)(val_t p0);
+static const char * const LOCATE_NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteMethPropdef___empty_init = "new AConcreteInitPropdef parser_prod::AConcreteMethPropdef::empty_init";
+val_t NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteMethPropdef___empty_init(void);
+typedef val_t (*NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteMethPropdef___empty_init_t)(void);
 static const char * const LOCATE_NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___empty_init = "new AConcreteInitPropdef parser_prod::AConcreteInitPropdef::empty_init";
 val_t NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___empty_init(void);
 typedef val_t (*NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___empty_init_t)(void);
 static const char * const LOCATE_NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef = "new AConcreteInitPropdef parser_prod::AConcreteInitPropdef::init_aconcreteinitpropdef";
 val_t NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
 typedef val_t (*NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
-static const char * const LOCATE_NEW_AConcreteInitPropdef_parser___parser_nodes___AConcreteInitPropdef___init = "new AConcreteInitPropdef parser_nodes::AConcreteInitPropdef::init";
-val_t NEW_AConcreteInitPropdef_parser___parser_nodes___AConcreteInitPropdef___init(void);
-typedef val_t (*NEW_AConcreteInitPropdef_parser___parser_nodes___AConcreteInitPropdef___init_t)(void);
+static const char * const LOCATE_NEW_AConcreteInitPropdef_parser___parser_nodes___ANode___init = "new AConcreteInitPropdef parser_nodes::ANode::init";
+val_t NEW_AConcreteInitPropdef_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AConcreteInitPropdef_parser___parser_nodes___ANode___init_t)(void);
+static const char * const LOCATE_NEW_AConcreteInitPropdef_parser___parser_prod___AMethPropdef___empty_init = "new AConcreteInitPropdef parser_prod::AMethPropdef::empty_init";
+val_t NEW_AConcreteInitPropdef_parser___parser_prod___AMethPropdef___empty_init(void);
+typedef val_t (*NEW_AConcreteInitPropdef_parser___parser_prod___AMethPropdef___empty_init_t)(void);
+static const char * const LOCATE_NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef = "new AConcreteInitPropdef parser_prod::AConcreteMethPropdef::init_aconcretemethpropdef";
+val_t NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
+typedef val_t (*NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
+static const char * const LOCATE_NEW_AConcreteInitPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef = "new AConcreteInitPropdef parser_prod::AMethPropdef::init_amethpropdef";
+val_t NEW_AConcreteInitPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+typedef val_t (*NEW_AConcreteInitPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AExternInitPropdef = "init var of AExternInitPropdef";
 void INIT_ATTRIBUTES__parser___parser_nodes___AExternInitPropdef(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AExternInitPropdef_t)(val_t p0);
@@ -2441,15 +2282,21 @@ val_t NEW_parser___parser_nodes___AExternInitPropdef(void);
 static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AExternInitPropdef = "check new AExternInitPropdef";
 void CHECKNEW_parser___parser_nodes___AExternInitPropdef(val_t p0);
 typedef void (*CHECKNEW_parser___parser_nodes___AExternInitPropdef_t)(val_t p0);
+static const char * const LOCATE_NEW_AExternInitPropdef_parser___parser_prod___AMethPropdef___empty_init = "new AExternInitPropdef parser_prod::AMethPropdef::empty_init";
+val_t NEW_AExternInitPropdef_parser___parser_prod___AMethPropdef___empty_init(void);
+typedef val_t (*NEW_AExternInitPropdef_parser___parser_prod___AMethPropdef___empty_init_t)(void);
 static const char * const LOCATE_NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___empty_init = "new AExternInitPropdef parser_prod::AExternInitPropdef::empty_init";
 val_t NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___empty_init(void);
 typedef val_t (*NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___empty_init_t)(void);
 static const char * const LOCATE_NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef = "new AExternInitPropdef parser_prod::AExternInitPropdef::init_aexterninitpropdef";
 val_t NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7);
 typedef val_t (*NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7);
-static const char * const LOCATE_NEW_AExternInitPropdef_parser___parser_nodes___AExternInitPropdef___init = "new AExternInitPropdef parser_nodes::AExternInitPropdef::init";
-val_t NEW_AExternInitPropdef_parser___parser_nodes___AExternInitPropdef___init(void);
-typedef val_t (*NEW_AExternInitPropdef_parser___parser_nodes___AExternInitPropdef___init_t)(void);
+static const char * const LOCATE_NEW_AExternInitPropdef_parser___parser_nodes___ANode___init = "new AExternInitPropdef parser_nodes::ANode::init";
+val_t NEW_AExternInitPropdef_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AExternInitPropdef_parser___parser_nodes___ANode___init_t)(void);
+static const char * const LOCATE_NEW_AExternInitPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef = "new AExternInitPropdef parser_prod::AMethPropdef::init_amethpropdef";
+val_t NEW_AExternInitPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+typedef val_t (*NEW_AExternInitPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AMainMethPropdef = "init var of AMainMethPropdef";
 void INIT_ATTRIBUTES__parser___parser_nodes___AMainMethPropdef(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AMainMethPropdef_t)(val_t p0);
@@ -2467,8 +2314,8 @@ static const char * const LOCATE_NEW_AMainMethPropdef_parser___parser_prod___AMa
 val_t NEW_AMainMethPropdef_parser___parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t p0, val_t p1);
 typedef val_t (*NEW_AMainMethPropdef_parser___parser_prod___AMainMethPropdef___init_amainmethpropdef_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AMainMethPropdef_parser___parser_nodes___ANode___init = "new AMainMethPropdef parser_nodes::ANode::init";
-val_t NEW_AMainMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AMainMethPropdef_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AMainMethPropdef_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AMainMethPropdef_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_AMainMethPropdef_parser___parser_prod___AMethPropdef___empty_init = "new AMainMethPropdef parser_prod::AMethPropdef::empty_init";
 val_t NEW_AMainMethPropdef_parser___parser_prod___AMethPropdef___empty_init(void);
 typedef val_t (*NEW_AMainMethPropdef_parser___parser_prod___AMethPropdef___empty_init_t)(void);
@@ -2492,40 +2339,8 @@ static const char * const LOCATE_NEW_AExternCalls_parser___parser_prod___AExtern
 val_t NEW_AExternCalls_parser___parser_prod___AExternCalls___init_aexterncalls(val_t p0, val_t p1);
 typedef val_t (*NEW_AExternCalls_parser___parser_prod___AExternCalls___init_aexterncalls_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AExternCalls_parser___parser_nodes___ANode___init = "new AExternCalls parser_nodes::ANode::init";
-val_t NEW_AExternCalls_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AExternCalls_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AExternCall = "init var of AExternCall";
-void INIT_ATTRIBUTES__parser___parser_nodes___AExternCall(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AExternCall_t)(val_t p0);
-val_t NEW_parser___parser_nodes___AExternCall(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AExternCall = "check new AExternCall";
-void CHECKNEW_parser___parser_nodes___AExternCall(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___AExternCall_t)(val_t p0);
-static const char * const LOCATE_NEW_AExternCall_parser___parser_prod___AExternCall___empty_init = "new AExternCall parser_prod::AExternCall::empty_init";
-val_t NEW_AExternCall_parser___parser_prod___AExternCall___empty_init(void);
-typedef val_t (*NEW_AExternCall_parser___parser_prod___AExternCall___empty_init_t)(void);
-static const char * const LOCATE_NEW_AExternCall_parser___parser_prod___AExternCall___init_aexterncall = "new AExternCall parser_prod::AExternCall::init_aexterncall";
-val_t NEW_AExternCall_parser___parser_prod___AExternCall___init_aexterncall(void);
-typedef val_t (*NEW_AExternCall_parser___parser_prod___AExternCall___init_aexterncall_t)(void);
-static const char * const LOCATE_NEW_AExternCall_parser___parser_nodes___ANode___init = "new AExternCall parser_nodes::ANode::init";
-val_t NEW_AExternCall_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AExternCall_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___APropExternCall = "init var of APropExternCall";
-void INIT_ATTRIBUTES__parser___parser_nodes___APropExternCall(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___APropExternCall_t)(val_t p0);
-val_t NEW_parser___parser_nodes___APropExternCall(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___APropExternCall = "check new APropExternCall";
-void CHECKNEW_parser___parser_nodes___APropExternCall(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___APropExternCall_t)(val_t p0);
-static const char * const LOCATE_NEW_APropExternCall_parser___parser_nodes___ANode___init = "new APropExternCall parser_nodes::ANode::init";
-val_t NEW_APropExternCall_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_APropExternCall_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_NEW_APropExternCall_parser___parser_prod___AExternCall___empty_init = "new APropExternCall parser_prod::AExternCall::empty_init";
-val_t NEW_APropExternCall_parser___parser_prod___AExternCall___empty_init(void);
-typedef val_t (*NEW_APropExternCall_parser___parser_prod___AExternCall___empty_init_t)(void);
-static const char * const LOCATE_NEW_APropExternCall_parser___parser_prod___AExternCall___init_aexterncall = "new APropExternCall parser_prod::AExternCall::init_aexterncall";
-val_t NEW_APropExternCall_parser___parser_prod___AExternCall___init_aexterncall(void);
-typedef val_t (*NEW_APropExternCall_parser___parser_prod___AExternCall___init_aexterncall_t)(void);
+val_t NEW_AExternCalls_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AExternCalls_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ALocalPropExternCall = "init var of ALocalPropExternCall";
 void INIT_ATTRIBUTES__parser___parser_nodes___ALocalPropExternCall(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ALocalPropExternCall_t)(val_t p0);
@@ -2543,8 +2358,8 @@ static const char * const LOCATE_NEW_ALocalPropExternCall_parser___parser_prod__
 val_t NEW_ALocalPropExternCall_parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall(val_t p0);
 typedef val_t (*NEW_ALocalPropExternCall_parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall_t)(val_t p0);
 static const char * const LOCATE_NEW_ALocalPropExternCall_parser___parser_nodes___ANode___init = "new ALocalPropExternCall parser_nodes::ANode::init";
-val_t NEW_ALocalPropExternCall_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ALocalPropExternCall_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ALocalPropExternCall_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ALocalPropExternCall_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_ALocalPropExternCall_parser___parser_prod___AExternCall___init_aexterncall = "new ALocalPropExternCall parser_prod::AExternCall::init_aexterncall";
 val_t NEW_ALocalPropExternCall_parser___parser_prod___AExternCall___init_aexterncall(void);
 typedef val_t (*NEW_ALocalPropExternCall_parser___parser_prod___AExternCall___init_aexterncall_t)(void);
@@ -2565,8 +2380,8 @@ static const char * const LOCATE_NEW_AFullPropExternCall_parser___parser_prod___
 val_t NEW_AFullPropExternCall_parser___parser_prod___AFullPropExternCall___init_afullpropexterncall(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_AFullPropExternCall_parser___parser_prod___AFullPropExternCall___init_afullpropexterncall_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_AFullPropExternCall_parser___parser_nodes___ANode___init = "new AFullPropExternCall parser_nodes::ANode::init";
-val_t NEW_AFullPropExternCall_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AFullPropExternCall_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AFullPropExternCall_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AFullPropExternCall_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_AFullPropExternCall_parser___parser_prod___AExternCall___init_aexterncall = "new AFullPropExternCall parser_prod::AExternCall::init_aexterncall";
 val_t NEW_AFullPropExternCall_parser___parser_prod___AExternCall___init_aexterncall(void);
 typedef val_t (*NEW_AFullPropExternCall_parser___parser_prod___AExternCall___init_aexterncall_t)(void);
@@ -2587,8 +2402,8 @@ static const char * const LOCATE_NEW_AInitPropExternCall_parser___parser_prod___
 val_t NEW_AInitPropExternCall_parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall(val_t p0);
 typedef val_t (*NEW_AInitPropExternCall_parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall_t)(val_t p0);
 static const char * const LOCATE_NEW_AInitPropExternCall_parser___parser_nodes___ANode___init = "new AInitPropExternCall parser_nodes::ANode::init";
-val_t NEW_AInitPropExternCall_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AInitPropExternCall_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AInitPropExternCall_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AInitPropExternCall_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_AInitPropExternCall_parser___parser_prod___AExternCall___init_aexterncall = "new AInitPropExternCall parser_prod::AExternCall::init_aexterncall";
 val_t NEW_AInitPropExternCall_parser___parser_prod___AExternCall___init_aexterncall(void);
 typedef val_t (*NEW_AInitPropExternCall_parser___parser_prod___AExternCall___init_aexterncall_t)(void);
@@ -2609,27 +2424,11 @@ static const char * const LOCATE_NEW_ASuperExternCall_parser___parser_prod___ASu
 val_t NEW_ASuperExternCall_parser___parser_prod___ASuperExternCall___init_asuperexterncall(val_t p0);
 typedef val_t (*NEW_ASuperExternCall_parser___parser_prod___ASuperExternCall___init_asuperexterncall_t)(val_t p0);
 static const char * const LOCATE_NEW_ASuperExternCall_parser___parser_nodes___ANode___init = "new ASuperExternCall parser_nodes::ANode::init";
-val_t NEW_ASuperExternCall_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ASuperExternCall_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ASuperExternCall_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ASuperExternCall_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_ASuperExternCall_parser___parser_prod___AExternCall___init_aexterncall = "new ASuperExternCall parser_prod::AExternCall::init_aexterncall";
 val_t NEW_ASuperExternCall_parser___parser_prod___AExternCall___init_aexterncall(void);
 typedef val_t (*NEW_ASuperExternCall_parser___parser_prod___AExternCall___init_aexterncall_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ACastExternCall = "init var of ACastExternCall";
-void INIT_ATTRIBUTES__parser___parser_nodes___ACastExternCall(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ACastExternCall_t)(val_t p0);
-val_t NEW_parser___parser_nodes___ACastExternCall(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___ACastExternCall = "check new ACastExternCall";
-void CHECKNEW_parser___parser_nodes___ACastExternCall(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___ACastExternCall_t)(val_t p0);
-static const char * const LOCATE_NEW_ACastExternCall_parser___parser_nodes___ANode___init = "new ACastExternCall parser_nodes::ANode::init";
-val_t NEW_ACastExternCall_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ACastExternCall_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_NEW_ACastExternCall_parser___parser_prod___AExternCall___empty_init = "new ACastExternCall parser_prod::AExternCall::empty_init";
-val_t NEW_ACastExternCall_parser___parser_prod___AExternCall___empty_init(void);
-typedef val_t (*NEW_ACastExternCall_parser___parser_prod___AExternCall___empty_init_t)(void);
-static const char * const LOCATE_NEW_ACastExternCall_parser___parser_prod___AExternCall___init_aexterncall = "new ACastExternCall parser_prod::AExternCall::init_aexterncall";
-val_t NEW_ACastExternCall_parser___parser_prod___AExternCall___init_aexterncall(void);
-typedef val_t (*NEW_ACastExternCall_parser___parser_prod___AExternCall___init_aexterncall_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ACastAsExternCall = "init var of ACastAsExternCall";
 void INIT_ATTRIBUTES__parser___parser_nodes___ACastAsExternCall(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ACastAsExternCall_t)(val_t p0);
@@ -2647,8 +2446,8 @@ static const char * const LOCATE_NEW_ACastAsExternCall_parser___parser_prod___AC
 val_t NEW_ACastAsExternCall_parser___parser_prod___ACastAsExternCall___init_acastasexterncall(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_ACastAsExternCall_parser___parser_prod___ACastAsExternCall___init_acastasexterncall_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_ACastAsExternCall_parser___parser_nodes___ANode___init = "new ACastAsExternCall parser_nodes::ANode::init";
-val_t NEW_ACastAsExternCall_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ACastAsExternCall_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ACastAsExternCall_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ACastAsExternCall_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_ACastAsExternCall_parser___parser_prod___AExternCall___init_aexterncall = "new ACastAsExternCall parser_prod::AExternCall::init_aexterncall";
 val_t NEW_ACastAsExternCall_parser___parser_prod___AExternCall___init_aexterncall(void);
 typedef val_t (*NEW_ACastAsExternCall_parser___parser_prod___AExternCall___init_aexterncall_t)(void);
@@ -2669,8 +2468,8 @@ static const char * const LOCATE_NEW_AAsNullableExternCall_parser___parser_prod_
 val_t NEW_AAsNullableExternCall_parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_AAsNullableExternCall_parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_AAsNullableExternCall_parser___parser_nodes___ANode___init = "new AAsNullableExternCall parser_nodes::ANode::init";
-val_t NEW_AAsNullableExternCall_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AAsNullableExternCall_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AAsNullableExternCall_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AAsNullableExternCall_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_AAsNullableExternCall_parser___parser_prod___AExternCall___init_aexterncall = "new AAsNullableExternCall parser_prod::AExternCall::init_aexterncall";
 val_t NEW_AAsNullableExternCall_parser___parser_prod___AExternCall___init_aexterncall(void);
 typedef val_t (*NEW_AAsNullableExternCall_parser___parser_prod___AExternCall___init_aexterncall_t)(void);
@@ -2691,8 +2490,8 @@ static const char * const LOCATE_NEW_AAsNotNullableExternCall_parser___parser_pr
 val_t NEW_AAsNotNullableExternCall_parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall(val_t p0, val_t p1, val_t p2, val_t p3);
 typedef val_t (*NEW_AAsNotNullableExternCall_parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall_t)(val_t p0, val_t p1, val_t p2, val_t p3);
 static const char * const LOCATE_NEW_AAsNotNullableExternCall_parser___parser_nodes___ANode___init = "new AAsNotNullableExternCall parser_nodes::ANode::init";
-val_t NEW_AAsNotNullableExternCall_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AAsNotNullableExternCall_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AAsNotNullableExternCall_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AAsNotNullableExternCall_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_AAsNotNullableExternCall_parser___parser_prod___AExternCall___init_aexterncall = "new AAsNotNullableExternCall parser_prod::AExternCall::init_aexterncall";
 val_t NEW_AAsNotNullableExternCall_parser___parser_prod___AExternCall___init_aexterncall(void);
 typedef val_t (*NEW_AAsNotNullableExternCall_parser___parser_prod___AExternCall___init_aexterncall_t)(void);
@@ -2710,18 +2509,8 @@ static const char * const LOCATE_NEW_ATypePropdef_parser___parser_prod___ATypePr
 val_t NEW_ATypePropdef_parser___parser_prod___ATypePropdef___init_atypepropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
 typedef val_t (*NEW_ATypePropdef_parser___parser_prod___ATypePropdef___init_atypepropdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
 static const char * const LOCATE_NEW_ATypePropdef_parser___parser_nodes___ANode___init = "new ATypePropdef parser_nodes::ANode::init";
-val_t NEW_ATypePropdef_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ATypePropdef_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAble = "init var of AAble";
-void INIT_ATTRIBUTES__parser___parser_nodes___AAble(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AAble_t)(val_t p0);
-val_t NEW_parser___parser_nodes___AAble(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AAble = "check new AAble";
-void CHECKNEW_parser___parser_nodes___AAble(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___AAble_t)(val_t p0);
-static const char * const LOCATE_NEW_AAble_parser___parser_nodes___ANode___init = "new AAble parser_nodes::ANode::init";
-val_t NEW_AAble_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AAble_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ATypePropdef_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ATypePropdef_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AReadAble = "init var of AReadAble";
 void INIT_ATTRIBUTES__parser___parser_nodes___AReadAble(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AReadAble_t)(val_t p0);
@@ -2736,8 +2525,8 @@ static const char * const LOCATE_NEW_AReadAble_parser___parser_prod___AReadAble_
 val_t NEW_AReadAble_parser___parser_prod___AReadAble___init_areadable(val_t p0, val_t p1);
 typedef val_t (*NEW_AReadAble_parser___parser_prod___AReadAble___init_areadable_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AReadAble_parser___parser_nodes___ANode___init = "new AReadAble parser_nodes::ANode::init";
-val_t NEW_AReadAble_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AReadAble_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AReadAble_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AReadAble_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AWriteAble = "init var of AWriteAble";
 void INIT_ATTRIBUTES__parser___parser_nodes___AWriteAble(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AWriteAble_t)(val_t p0);
@@ -2752,18 +2541,8 @@ static const char * const LOCATE_NEW_AWriteAble_parser___parser_prod___AWriteAbl
 val_t NEW_AWriteAble_parser___parser_prod___AWriteAble___init_awriteable(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_AWriteAble_parser___parser_prod___AWriteAble___init_awriteable_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_AWriteAble_parser___parser_nodes___ANode___init = "new AWriteAble parser_nodes::ANode::init";
-val_t NEW_AWriteAble_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AWriteAble_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AMethid = "init var of AMethid";
-void INIT_ATTRIBUTES__parser___parser_nodes___AMethid(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AMethid_t)(val_t p0);
-val_t NEW_parser___parser_nodes___AMethid(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AMethid = "check new AMethid";
-void CHECKNEW_parser___parser_nodes___AMethid(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___AMethid_t)(val_t p0);
-static const char * const LOCATE_NEW_AMethid_parser___parser_nodes___ANode___init = "new AMethid parser_nodes::ANode::init";
-val_t NEW_AMethid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AMethid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AWriteAble_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AWriteAble_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AIdMethid = "init var of AIdMethid";
 void INIT_ATTRIBUTES__parser___parser_nodes___AIdMethid(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AIdMethid_t)(val_t p0);
@@ -2778,8 +2557,8 @@ static const char * const LOCATE_NEW_AIdMethid_parser___parser_prod___AIdMethid_
 val_t NEW_AIdMethid_parser___parser_prod___AIdMethid___init_aidmethid(val_t p0);
 typedef val_t (*NEW_AIdMethid_parser___parser_prod___AIdMethid___init_aidmethid_t)(val_t p0);
 static const char * const LOCATE_NEW_AIdMethid_parser___parser_nodes___ANode___init = "new AIdMethid parser_nodes::ANode::init";
-val_t NEW_AIdMethid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AIdMethid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AIdMethid_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AIdMethid_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___APlusMethid = "init var of APlusMethid";
 void INIT_ATTRIBUTES__parser___parser_nodes___APlusMethid(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___APlusMethid_t)(val_t p0);
@@ -2794,8 +2573,8 @@ static const char * const LOCATE_NEW_APlusMethid_parser___parser_prod___APlusMet
 val_t NEW_APlusMethid_parser___parser_prod___APlusMethid___init_aplusmethid(val_t p0);
 typedef val_t (*NEW_APlusMethid_parser___parser_prod___APlusMethid___init_aplusmethid_t)(val_t p0);
 static const char * const LOCATE_NEW_APlusMethid_parser___parser_nodes___ANode___init = "new APlusMethid parser_nodes::ANode::init";
-val_t NEW_APlusMethid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_APlusMethid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_APlusMethid_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_APlusMethid_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AMinusMethid = "init var of AMinusMethid";
 void INIT_ATTRIBUTES__parser___parser_nodes___AMinusMethid(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AMinusMethid_t)(val_t p0);
@@ -2810,8 +2589,8 @@ static const char * const LOCATE_NEW_AMinusMethid_parser___parser_prod___AMinusM
 val_t NEW_AMinusMethid_parser___parser_prod___AMinusMethid___init_aminusmethid(val_t p0);
 typedef val_t (*NEW_AMinusMethid_parser___parser_prod___AMinusMethid___init_aminusmethid_t)(val_t p0);
 static const char * const LOCATE_NEW_AMinusMethid_parser___parser_nodes___ANode___init = "new AMinusMethid parser_nodes::ANode::init";
-val_t NEW_AMinusMethid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AMinusMethid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AMinusMethid_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AMinusMethid_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AStarMethid = "init var of AStarMethid";
 void INIT_ATTRIBUTES__parser___parser_nodes___AStarMethid(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AStarMethid_t)(val_t p0);
@@ -2826,8 +2605,8 @@ static const char * const LOCATE_NEW_AStarMethid_parser___parser_prod___AStarMet
 val_t NEW_AStarMethid_parser___parser_prod___AStarMethid___init_astarmethid(val_t p0);
 typedef val_t (*NEW_AStarMethid_parser___parser_prod___AStarMethid___init_astarmethid_t)(val_t p0);
 static const char * const LOCATE_NEW_AStarMethid_parser___parser_nodes___ANode___init = "new AStarMethid parser_nodes::ANode::init";
-val_t NEW_AStarMethid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AStarMethid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AStarMethid_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AStarMethid_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ASlashMethid = "init var of ASlashMethid";
 void INIT_ATTRIBUTES__parser___parser_nodes___ASlashMethid(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ASlashMethid_t)(val_t p0);
@@ -2842,8 +2621,8 @@ static const char * const LOCATE_NEW_ASlashMethid_parser___parser_prod___ASlashM
 val_t NEW_ASlashMethid_parser___parser_prod___ASlashMethid___init_aslashmethid(val_t p0);
 typedef val_t (*NEW_ASlashMethid_parser___parser_prod___ASlashMethid___init_aslashmethid_t)(val_t p0);
 static const char * const LOCATE_NEW_ASlashMethid_parser___parser_nodes___ANode___init = "new ASlashMethid parser_nodes::ANode::init";
-val_t NEW_ASlashMethid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ASlashMethid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ASlashMethid_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ASlashMethid_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___APercentMethid = "init var of APercentMethid";
 void INIT_ATTRIBUTES__parser___parser_nodes___APercentMethid(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___APercentMethid_t)(val_t p0);
@@ -2858,8 +2637,8 @@ static const char * const LOCATE_NEW_APercentMethid_parser___parser_prod___APerc
 val_t NEW_APercentMethid_parser___parser_prod___APercentMethid___init_apercentmethid(val_t p0);
 typedef val_t (*NEW_APercentMethid_parser___parser_prod___APercentMethid___init_apercentmethid_t)(val_t p0);
 static const char * const LOCATE_NEW_APercentMethid_parser___parser_nodes___ANode___init = "new APercentMethid parser_nodes::ANode::init";
-val_t NEW_APercentMethid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_APercentMethid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_APercentMethid_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_APercentMethid_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AEqMethid = "init var of AEqMethid";
 void INIT_ATTRIBUTES__parser___parser_nodes___AEqMethid(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AEqMethid_t)(val_t p0);
@@ -2874,8 +2653,8 @@ static const char * const LOCATE_NEW_AEqMethid_parser___parser_prod___AEqMethid_
 val_t NEW_AEqMethid_parser___parser_prod___AEqMethid___init_aeqmethid(val_t p0);
 typedef val_t (*NEW_AEqMethid_parser___parser_prod___AEqMethid___init_aeqmethid_t)(val_t p0);
 static const char * const LOCATE_NEW_AEqMethid_parser___parser_nodes___ANode___init = "new AEqMethid parser_nodes::ANode::init";
-val_t NEW_AEqMethid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AEqMethid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AEqMethid_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AEqMethid_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ANeMethid = "init var of ANeMethid";
 void INIT_ATTRIBUTES__parser___parser_nodes___ANeMethid(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ANeMethid_t)(val_t p0);
@@ -2890,8 +2669,8 @@ static const char * const LOCATE_NEW_ANeMethid_parser___parser_prod___ANeMethid_
 val_t NEW_ANeMethid_parser___parser_prod___ANeMethid___init_anemethid(val_t p0);
 typedef val_t (*NEW_ANeMethid_parser___parser_prod___ANeMethid___init_anemethid_t)(val_t p0);
 static const char * const LOCATE_NEW_ANeMethid_parser___parser_nodes___ANode___init = "new ANeMethid parser_nodes::ANode::init";
-val_t NEW_ANeMethid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ANeMethid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ANeMethid_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ANeMethid_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ALeMethid = "init var of ALeMethid";
 void INIT_ATTRIBUTES__parser___parser_nodes___ALeMethid(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ALeMethid_t)(val_t p0);
@@ -2906,8 +2685,8 @@ static const char * const LOCATE_NEW_ALeMethid_parser___parser_prod___ALeMethid_
 val_t NEW_ALeMethid_parser___parser_prod___ALeMethid___init_alemethid(val_t p0);
 typedef val_t (*NEW_ALeMethid_parser___parser_prod___ALeMethid___init_alemethid_t)(val_t p0);
 static const char * const LOCATE_NEW_ALeMethid_parser___parser_nodes___ANode___init = "new ALeMethid parser_nodes::ANode::init";
-val_t NEW_ALeMethid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ALeMethid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ALeMethid_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ALeMethid_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AGeMethid = "init var of AGeMethid";
 void INIT_ATTRIBUTES__parser___parser_nodes___AGeMethid(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AGeMethid_t)(val_t p0);
@@ -2922,8 +2701,8 @@ static const char * const LOCATE_NEW_AGeMethid_parser___parser_prod___AGeMethid_
 val_t NEW_AGeMethid_parser___parser_prod___AGeMethid___init_agemethid(val_t p0);
 typedef val_t (*NEW_AGeMethid_parser___parser_prod___AGeMethid___init_agemethid_t)(val_t p0);
 static const char * const LOCATE_NEW_AGeMethid_parser___parser_nodes___ANode___init = "new AGeMethid parser_nodes::ANode::init";
-val_t NEW_AGeMethid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AGeMethid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AGeMethid_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AGeMethid_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ALtMethid = "init var of ALtMethid";
 void INIT_ATTRIBUTES__parser___parser_nodes___ALtMethid(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ALtMethid_t)(val_t p0);
@@ -2938,8 +2717,8 @@ static const char * const LOCATE_NEW_ALtMethid_parser___parser_prod___ALtMethid_
 val_t NEW_ALtMethid_parser___parser_prod___ALtMethid___init_altmethid(val_t p0);
 typedef val_t (*NEW_ALtMethid_parser___parser_prod___ALtMethid___init_altmethid_t)(val_t p0);
 static const char * const LOCATE_NEW_ALtMethid_parser___parser_nodes___ANode___init = "new ALtMethid parser_nodes::ANode::init";
-val_t NEW_ALtMethid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ALtMethid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ALtMethid_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ALtMethid_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AGtMethid = "init var of AGtMethid";
 void INIT_ATTRIBUTES__parser___parser_nodes___AGtMethid(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AGtMethid_t)(val_t p0);
@@ -2954,8 +2733,8 @@ static const char * const LOCATE_NEW_AGtMethid_parser___parser_prod___AGtMethid_
 val_t NEW_AGtMethid_parser___parser_prod___AGtMethid___init_agtmethid(val_t p0);
 typedef val_t (*NEW_AGtMethid_parser___parser_prod___AGtMethid___init_agtmethid_t)(val_t p0);
 static const char * const LOCATE_NEW_AGtMethid_parser___parser_nodes___ANode___init = "new AGtMethid parser_nodes::ANode::init";
-val_t NEW_AGtMethid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AGtMethid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AGtMethid_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AGtMethid_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ALlMethid = "init var of ALlMethid";
 void INIT_ATTRIBUTES__parser___parser_nodes___ALlMethid(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ALlMethid_t)(val_t p0);
@@ -2970,8 +2749,8 @@ static const char * const LOCATE_NEW_ALlMethid_parser___parser_prod___ALlMethid_
 val_t NEW_ALlMethid_parser___parser_prod___ALlMethid___init_allmethid(val_t p0);
 typedef val_t (*NEW_ALlMethid_parser___parser_prod___ALlMethid___init_allmethid_t)(val_t p0);
 static const char * const LOCATE_NEW_ALlMethid_parser___parser_nodes___ANode___init = "new ALlMethid parser_nodes::ANode::init";
-val_t NEW_ALlMethid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ALlMethid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ALlMethid_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ALlMethid_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AGgMethid = "init var of AGgMethid";
 void INIT_ATTRIBUTES__parser___parser_nodes___AGgMethid(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AGgMethid_t)(val_t p0);
@@ -2986,8 +2765,8 @@ static const char * const LOCATE_NEW_AGgMethid_parser___parser_prod___AGgMethid_
 val_t NEW_AGgMethid_parser___parser_prod___AGgMethid___init_aggmethid(val_t p0);
 typedef val_t (*NEW_AGgMethid_parser___parser_prod___AGgMethid___init_aggmethid_t)(val_t p0);
 static const char * const LOCATE_NEW_AGgMethid_parser___parser_nodes___ANode___init = "new AGgMethid parser_nodes::ANode::init";
-val_t NEW_AGgMethid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AGgMethid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AGgMethid_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AGgMethid_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ABraMethid = "init var of ABraMethid";
 void INIT_ATTRIBUTES__parser___parser_nodes___ABraMethid(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ABraMethid_t)(val_t p0);
@@ -3002,8 +2781,8 @@ static const char * const LOCATE_NEW_ABraMethid_parser___parser_prod___ABraMethi
 val_t NEW_ABraMethid_parser___parser_prod___ABraMethid___init_abramethid(val_t p0, val_t p1);
 typedef val_t (*NEW_ABraMethid_parser___parser_prod___ABraMethid___init_abramethid_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_ABraMethid_parser___parser_nodes___ANode___init = "new ABraMethid parser_nodes::ANode::init";
-val_t NEW_ABraMethid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ABraMethid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ABraMethid_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ABraMethid_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AStarshipMethid = "init var of AStarshipMethid";
 void INIT_ATTRIBUTES__parser___parser_nodes___AStarshipMethid(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AStarshipMethid_t)(val_t p0);
@@ -3018,8 +2797,8 @@ static const char * const LOCATE_NEW_AStarshipMethid_parser___parser_prod___ASta
 val_t NEW_AStarshipMethid_parser___parser_prod___AStarshipMethid___init_astarshipmethid(val_t p0);
 typedef val_t (*NEW_AStarshipMethid_parser___parser_prod___AStarshipMethid___init_astarshipmethid_t)(val_t p0);
 static const char * const LOCATE_NEW_AStarshipMethid_parser___parser_nodes___ANode___init = "new AStarshipMethid parser_nodes::ANode::init";
-val_t NEW_AStarshipMethid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AStarshipMethid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AStarshipMethid_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AStarshipMethid_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAssignMethid = "init var of AAssignMethid";
 void INIT_ATTRIBUTES__parser___parser_nodes___AAssignMethid(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AAssignMethid_t)(val_t p0);
@@ -3034,8 +2813,8 @@ static const char * const LOCATE_NEW_AAssignMethid_parser___parser_prod___AAssig
 val_t NEW_AAssignMethid_parser___parser_prod___AAssignMethid___init_aassignmethid(val_t p0, val_t p1);
 typedef val_t (*NEW_AAssignMethid_parser___parser_prod___AAssignMethid___init_aassignmethid_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AAssignMethid_parser___parser_nodes___ANode___init = "new AAssignMethid parser_nodes::ANode::init";
-val_t NEW_AAssignMethid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AAssignMethid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AAssignMethid_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AAssignMethid_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ABraassignMethid = "init var of ABraassignMethid";
 void INIT_ATTRIBUTES__parser___parser_nodes___ABraassignMethid(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ABraassignMethid_t)(val_t p0);
@@ -3050,8 +2829,8 @@ static const char * const LOCATE_NEW_ABraassignMethid_parser___parser_prod___ABr
 val_t NEW_ABraassignMethid_parser___parser_prod___ABraassignMethid___init_abraassignmethid(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_ABraassignMethid_parser___parser_prod___ABraassignMethid___init_abraassignmethid_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_ABraassignMethid_parser___parser_nodes___ANode___init = "new ABraassignMethid parser_nodes::ANode::init";
-val_t NEW_ABraassignMethid_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ABraassignMethid_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ABraassignMethid_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ABraassignMethid_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ASignature = "init var of ASignature";
 void INIT_ATTRIBUTES__parser___parser_nodes___ASignature(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ASignature_t)(val_t p0);
@@ -3063,11 +2842,11 @@ static const char * const LOCATE_NEW_ASignature_parser___parser_prod___ASignatur
 val_t NEW_ASignature_parser___parser_prod___ASignature___empty_init(void);
 typedef val_t (*NEW_ASignature_parser___parser_prod___ASignature___empty_init_t)(void);
 static const char * const LOCATE_NEW_ASignature_parser___parser_prod___ASignature___init_asignature = "new ASignature parser_prod::ASignature::init_asignature";
-val_t NEW_ASignature_parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2);
-typedef val_t (*NEW_ASignature_parser___parser_prod___ASignature___init_asignature_t)(val_t p0, val_t p1, val_t p2);
+val_t NEW_ASignature_parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+typedef val_t (*NEW_ASignature_parser___parser_prod___ASignature___init_asignature_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_NEW_ASignature_parser___parser_nodes___ANode___init = "new ASignature parser_nodes::ANode::init";
-val_t NEW_ASignature_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ASignature_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ASignature_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ASignature_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AParam = "init var of AParam";
 void INIT_ATTRIBUTES__parser___parser_nodes___AParam(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AParam_t)(val_t p0);
@@ -3082,8 +2861,8 @@ static const char * const LOCATE_NEW_AParam_parser___parser_prod___AParam___init
 val_t NEW_AParam_parser___parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_AParam_parser___parser_prod___AParam___init_aparam_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_AParam_parser___parser_nodes___ANode___init = "new AParam parser_nodes::ANode::init";
-val_t NEW_AParam_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AParam_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AParam_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AParam_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AClosureDecl = "init var of AClosureDecl";
 void INIT_ATTRIBUTES__parser___parser_nodes___AClosureDecl(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AClosureDecl_t)(val_t p0);
@@ -3098,8 +2877,8 @@ static const char * const LOCATE_NEW_AClosureDecl_parser___parser_prod___AClosur
 val_t NEW_AClosureDecl_parser___parser_prod___AClosureDecl___init_aclosuredecl(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 typedef val_t (*NEW_AClosureDecl_parser___parser_prod___AClosureDecl___init_aclosuredecl_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_NEW_AClosureDecl_parser___parser_nodes___ANode___init = "new AClosureDecl parser_nodes::ANode::init";
-val_t NEW_AClosureDecl_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AClosureDecl_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AClosureDecl_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AClosureDecl_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AType = "init var of AType";
 void INIT_ATTRIBUTES__parser___parser_nodes___AType(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AType_t)(val_t p0);
@@ -3114,8 +2893,8 @@ static const char * const LOCATE_NEW_AType_parser___parser_prod___AType___init_a
 val_t NEW_AType_parser___parser_prod___AType___init_atype(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_AType_parser___parser_prod___AType___init_atype_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_AType_parser___parser_nodes___ANode___init = "new AType parser_nodes::ANode::init";
-val_t NEW_AType_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AType_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AType_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AType_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ALabel = "init var of ALabel";
 void INIT_ATTRIBUTES__parser___parser_nodes___ALabel(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ALabel_t)(val_t p0);
@@ -3130,18 +2909,8 @@ static const char * const LOCATE_NEW_ALabel_parser___parser_prod___ALabel___init
 val_t NEW_ALabel_parser___parser_prod___ALabel___init_alabel(val_t p0, val_t p1);
 typedef val_t (*NEW_ALabel_parser___parser_prod___ALabel___init_alabel_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_ALabel_parser___parser_nodes___ANode___init = "new ALabel parser_nodes::ANode::init";
-val_t NEW_ALabel_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ALabel_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AExpr = "init var of AExpr";
-void INIT_ATTRIBUTES__parser___parser_nodes___AExpr(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AExpr_t)(val_t p0);
-val_t NEW_parser___parser_nodes___AExpr(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AExpr = "check new AExpr";
-void CHECKNEW_parser___parser_nodes___AExpr(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___AExpr_t)(val_t p0);
-static const char * const LOCATE_NEW_AExpr_parser___parser_nodes___ANode___init = "new AExpr parser_nodes::ANode::init";
-val_t NEW_AExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ALabel_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ALabel_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ABlockExpr = "init var of ABlockExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___ABlockExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ABlockExpr_t)(val_t p0);
@@ -3153,11 +2922,11 @@ static const char * const LOCATE_NEW_ABlockExpr_parser___parser_prod___ABlockExp
 val_t NEW_ABlockExpr_parser___parser_prod___ABlockExpr___empty_init(void);
 typedef val_t (*NEW_ABlockExpr_parser___parser_prod___ABlockExpr___empty_init_t)(void);
 static const char * const LOCATE_NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr = "new ABlockExpr parser_prod::ABlockExpr::init_ablockexpr";
-val_t NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0);
-typedef val_t (*NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr_t)(val_t p0);
+val_t NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0, val_t p1);
+typedef val_t (*NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_ABlockExpr_parser___parser_nodes___ANode___init = "new ABlockExpr parser_nodes::ANode::init";
-val_t NEW_ABlockExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ABlockExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ABlockExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ABlockExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AVardeclExpr = "init var of AVardeclExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AVardeclExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AVardeclExpr_t)(val_t p0);
@@ -3172,8 +2941,8 @@ static const char * const LOCATE_NEW_AVardeclExpr_parser___parser_prod___AVardec
 val_t NEW_AVardeclExpr_parser___parser_prod___AVardeclExpr___init_avardeclexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 typedef val_t (*NEW_AVardeclExpr_parser___parser_prod___AVardeclExpr___init_avardeclexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_NEW_AVardeclExpr_parser___parser_nodes___ANode___init = "new AVardeclExpr parser_nodes::ANode::init";
-val_t NEW_AVardeclExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AVardeclExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AVardeclExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AVardeclExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AReturnExpr = "init var of AReturnExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AReturnExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AReturnExpr_t)(val_t p0);
@@ -3188,18 +2957,8 @@ static const char * const LOCATE_NEW_AReturnExpr_parser___parser_prod___AReturnE
 val_t NEW_AReturnExpr_parser___parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_AReturnExpr_parser___parser_prod___AReturnExpr___init_areturnexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AReturnExpr_parser___parser_nodes___ANode___init = "new AReturnExpr parser_nodes::ANode::init";
-val_t NEW_AReturnExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AReturnExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ALabelable = "init var of ALabelable";
-void INIT_ATTRIBUTES__parser___parser_nodes___ALabelable(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ALabelable_t)(val_t p0);
-val_t NEW_parser___parser_nodes___ALabelable(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___ALabelable = "check new ALabelable";
-void CHECKNEW_parser___parser_nodes___ALabelable(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___ALabelable_t)(val_t p0);
-static const char * const LOCATE_NEW_ALabelable_parser___parser_nodes___ANode___init = "new ALabelable parser_nodes::ANode::init";
-val_t NEW_ALabelable_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ALabelable_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AReturnExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AReturnExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ABreakExpr = "init var of ABreakExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___ABreakExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ABreakExpr_t)(val_t p0);
@@ -3214,8 +2973,8 @@ static const char * const LOCATE_NEW_ABreakExpr_parser___parser_prod___ABreakExp
 val_t NEW_ABreakExpr_parser___parser_prod___ABreakExpr___init_abreakexpr(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_ABreakExpr_parser___parser_prod___ABreakExpr___init_abreakexpr_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_ABreakExpr_parser___parser_nodes___ANode___init = "new ABreakExpr parser_nodes::ANode::init";
-val_t NEW_ABreakExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ABreakExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ABreakExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ABreakExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAbortExpr = "init var of AAbortExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AAbortExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AAbortExpr_t)(val_t p0);
@@ -3230,8 +2989,8 @@ static const char * const LOCATE_NEW_AAbortExpr_parser___parser_prod___AAbortExp
 val_t NEW_AAbortExpr_parser___parser_prod___AAbortExpr___init_aabortexpr(val_t p0);
 typedef val_t (*NEW_AAbortExpr_parser___parser_prod___AAbortExpr___init_aabortexpr_t)(val_t p0);
 static const char * const LOCATE_NEW_AAbortExpr_parser___parser_nodes___ANode___init = "new AAbortExpr parser_nodes::ANode::init";
-val_t NEW_AAbortExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AAbortExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AAbortExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AAbortExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AContinueExpr = "init var of AContinueExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AContinueExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AContinueExpr_t)(val_t p0);
@@ -3246,8 +3005,8 @@ static const char * const LOCATE_NEW_AContinueExpr_parser___parser_prod___AConti
 val_t NEW_AContinueExpr_parser___parser_prod___AContinueExpr___init_acontinueexpr(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_AContinueExpr_parser___parser_prod___AContinueExpr___init_acontinueexpr_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_AContinueExpr_parser___parser_nodes___ANode___init = "new AContinueExpr parser_nodes::ANode::init";
-val_t NEW_AContinueExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AContinueExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AContinueExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AContinueExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ADoExpr = "init var of ADoExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___ADoExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ADoExpr_t)(val_t p0);
@@ -3262,8 +3021,8 @@ static const char * const LOCATE_NEW_ADoExpr_parser___parser_prod___ADoExpr___in
 val_t NEW_ADoExpr_parser___parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_ADoExpr_parser___parser_prod___ADoExpr___init_adoexpr_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_ADoExpr_parser___parser_nodes___ANode___init = "new ADoExpr parser_nodes::ANode::init";
-val_t NEW_ADoExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ADoExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ADoExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ADoExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AIfExpr = "init var of AIfExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AIfExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AIfExpr_t)(val_t p0);
@@ -3278,8 +3037,8 @@ static const char * const LOCATE_NEW_AIfExpr_parser___parser_prod___AIfExpr___in
 val_t NEW_AIfExpr_parser___parser_prod___AIfExpr___init_aifexpr(val_t p0, val_t p1, val_t p2, val_t p3);
 typedef val_t (*NEW_AIfExpr_parser___parser_prod___AIfExpr___init_aifexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
 static const char * const LOCATE_NEW_AIfExpr_parser___parser_nodes___ANode___init = "new AIfExpr parser_nodes::ANode::init";
-val_t NEW_AIfExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AIfExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AIfExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AIfExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AIfexprExpr = "init var of AIfexprExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AIfexprExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AIfexprExpr_t)(val_t p0);
@@ -3294,8 +3053,8 @@ static const char * const LOCATE_NEW_AIfexprExpr_parser___parser_prod___AIfexprE
 val_t NEW_AIfexprExpr_parser___parser_prod___AIfexprExpr___init_aifexprexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
 typedef val_t (*NEW_AIfexprExpr_parser___parser_prod___AIfexprExpr___init_aifexprexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
 static const char * const LOCATE_NEW_AIfexprExpr_parser___parser_nodes___ANode___init = "new AIfexprExpr parser_nodes::ANode::init";
-val_t NEW_AIfexprExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AIfexprExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AIfexprExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AIfexprExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AWhileExpr = "init var of AWhileExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AWhileExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AWhileExpr_t)(val_t p0);
@@ -3310,8 +3069,8 @@ static const char * const LOCATE_NEW_AWhileExpr_parser___parser_prod___AWhileExp
 val_t NEW_AWhileExpr_parser___parser_prod___AWhileExpr___init_awhileexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 typedef val_t (*NEW_AWhileExpr_parser___parser_prod___AWhileExpr___init_awhileexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_NEW_AWhileExpr_parser___parser_nodes___ANode___init = "new AWhileExpr parser_nodes::ANode::init";
-val_t NEW_AWhileExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AWhileExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AWhileExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AWhileExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ALoopExpr = "init var of ALoopExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___ALoopExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ALoopExpr_t)(val_t p0);
@@ -3326,8 +3085,8 @@ static const char * const LOCATE_NEW_ALoopExpr_parser___parser_prod___ALoopExpr_
 val_t NEW_ALoopExpr_parser___parser_prod___ALoopExpr___init_aloopexpr(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_ALoopExpr_parser___parser_prod___ALoopExpr___init_aloopexpr_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_ALoopExpr_parser___parser_nodes___ANode___init = "new ALoopExpr parser_nodes::ANode::init";
-val_t NEW_ALoopExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ALoopExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ALoopExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ALoopExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AForExpr = "init var of AForExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AForExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AForExpr_t)(val_t p0);
@@ -3342,8 +3101,8 @@ static const char * const LOCATE_NEW_AForExpr_parser___parser_prod___AForExpr___
 val_t NEW_AForExpr_parser___parser_prod___AForExpr___init_aforexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
 typedef val_t (*NEW_AForExpr_parser___parser_prod___AForExpr___init_aforexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
 static const char * const LOCATE_NEW_AForExpr_parser___parser_nodes___ANode___init = "new AForExpr parser_nodes::ANode::init";
-val_t NEW_AForExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AForExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AForExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AForExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAssertExpr = "init var of AAssertExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AAssertExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AAssertExpr_t)(val_t p0);
@@ -3358,28 +3117,8 @@ static const char * const LOCATE_NEW_AAssertExpr_parser___parser_prod___AAssertE
 val_t NEW_AAssertExpr_parser___parser_prod___AAssertExpr___init_aassertexpr(val_t p0, val_t p1, val_t p2, val_t p3);
 typedef val_t (*NEW_AAssertExpr_parser___parser_prod___AAssertExpr___init_aassertexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
 static const char * const LOCATE_NEW_AAssertExpr_parser___parser_nodes___ANode___init = "new AAssertExpr parser_nodes::ANode::init";
-val_t NEW_AAssertExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AAssertExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAssignFormExpr = "init var of AAssignFormExpr";
-void INIT_ATTRIBUTES__parser___parser_nodes___AAssignFormExpr(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AAssignFormExpr_t)(val_t p0);
-val_t NEW_parser___parser_nodes___AAssignFormExpr(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AAssignFormExpr = "check new AAssignFormExpr";
-void CHECKNEW_parser___parser_nodes___AAssignFormExpr(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___AAssignFormExpr_t)(val_t p0);
-static const char * const LOCATE_NEW_AAssignFormExpr_parser___parser_nodes___ANode___init = "new AAssignFormExpr parser_nodes::ANode::init";
-val_t NEW_AAssignFormExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AAssignFormExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AReassignFormExpr = "init var of AReassignFormExpr";
-void INIT_ATTRIBUTES__parser___parser_nodes___AReassignFormExpr(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AReassignFormExpr_t)(val_t p0);
-val_t NEW_parser___parser_nodes___AReassignFormExpr(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AReassignFormExpr = "check new AReassignFormExpr";
-void CHECKNEW_parser___parser_nodes___AReassignFormExpr(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___AReassignFormExpr_t)(val_t p0);
-static const char * const LOCATE_NEW_AReassignFormExpr_parser___parser_nodes___ANode___init = "new AReassignFormExpr parser_nodes::ANode::init";
-val_t NEW_AReassignFormExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AReassignFormExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AAssertExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AAssertExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AOnceExpr = "init var of AOnceExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AOnceExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AOnceExpr_t)(val_t p0);
@@ -3394,56 +3133,8 @@ static const char * const LOCATE_NEW_AOnceExpr_parser___parser_prod___AOnceExpr_
 val_t NEW_AOnceExpr_parser___parser_prod___AOnceExpr___init_aonceexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_AOnceExpr_parser___parser_prod___AOnceExpr___init_aonceexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AOnceExpr_parser___parser_nodes___ANode___init = "new AOnceExpr parser_nodes::ANode::init";
-val_t NEW_AOnceExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AOnceExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ASendExpr = "init var of ASendExpr";
-void INIT_ATTRIBUTES__parser___parser_nodes___ASendExpr(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ASendExpr_t)(val_t p0);
-val_t NEW_parser___parser_nodes___ASendExpr(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___ASendExpr = "check new ASendExpr";
-void CHECKNEW_parser___parser_nodes___ASendExpr(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___ASendExpr_t)(val_t p0);
-static const char * const LOCATE_NEW_ASendExpr_parser___parser_prod___ASendExpr___empty_init = "new ASendExpr parser_prod::ASendExpr::empty_init";
-val_t NEW_ASendExpr_parser___parser_prod___ASendExpr___empty_init(void);
-typedef val_t (*NEW_ASendExpr_parser___parser_prod___ASendExpr___empty_init_t)(void);
-static const char * const LOCATE_NEW_ASendExpr_parser___parser_prod___ASendExpr___init_asendexpr = "new ASendExpr parser_prod::ASendExpr::init_asendexpr";
-val_t NEW_ASendExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
-typedef val_t (*NEW_ASendExpr_parser___parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
-static const char * const LOCATE_NEW_ASendExpr_parser___parser_nodes___ANode___init = "new ASendExpr parser_nodes::ANode::init";
-val_t NEW_ASendExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ASendExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ABinopExpr = "init var of ABinopExpr";
-void INIT_ATTRIBUTES__parser___parser_nodes___ABinopExpr(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ABinopExpr_t)(val_t p0);
-val_t NEW_parser___parser_nodes___ABinopExpr(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___ABinopExpr = "check new ABinopExpr";
-void CHECKNEW_parser___parser_nodes___ABinopExpr(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___ABinopExpr_t)(val_t p0);
-static const char * const LOCATE_NEW_ABinopExpr_parser___parser_prod___ASendExpr___empty_init = "new ABinopExpr parser_prod::ASendExpr::empty_init";
-val_t NEW_ABinopExpr_parser___parser_prod___ASendExpr___empty_init(void);
-typedef val_t (*NEW_ABinopExpr_parser___parser_prod___ASendExpr___empty_init_t)(void);
-static const char * const LOCATE_NEW_ABinopExpr_parser___parser_prod___ABinopExpr___empty_init = "new ABinopExpr parser_prod::ABinopExpr::empty_init";
-val_t NEW_ABinopExpr_parser___parser_prod___ABinopExpr___empty_init(void);
-typedef val_t (*NEW_ABinopExpr_parser___parser_prod___ABinopExpr___empty_init_t)(void);
-static const char * const LOCATE_NEW_ABinopExpr_parser___parser_prod___ABinopExpr___init_abinopexpr = "new ABinopExpr parser_prod::ABinopExpr::init_abinopexpr";
-val_t NEW_ABinopExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
-typedef val_t (*NEW_ABinopExpr_parser___parser_prod___ABinopExpr___init_abinopexpr_t)(val_t p0, val_t p1);
-static const char * const LOCATE_NEW_ABinopExpr_parser___parser_nodes___ANode___init = "new ABinopExpr parser_nodes::ANode::init";
-val_t NEW_ABinopExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ABinopExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_NEW_ABinopExpr_parser___parser_prod___ASendExpr___init_asendexpr = "new ABinopExpr parser_prod::ASendExpr::init_asendexpr";
-val_t NEW_ABinopExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
-typedef val_t (*NEW_ABinopExpr_parser___parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ABoolExpr = "init var of ABoolExpr";
-void INIT_ATTRIBUTES__parser___parser_nodes___ABoolExpr(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ABoolExpr_t)(val_t p0);
-val_t NEW_parser___parser_nodes___ABoolExpr(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___ABoolExpr = "check new ABoolExpr";
-void CHECKNEW_parser___parser_nodes___ABoolExpr(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___ABoolExpr_t)(val_t p0);
-static const char * const LOCATE_NEW_ABoolExpr_parser___parser_nodes___ANode___init = "new ABoolExpr parser_nodes::ANode::init";
-val_t NEW_ABoolExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ABoolExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AOnceExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AOnceExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AOrExpr = "init var of AOrExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AOrExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AOrExpr_t)(val_t p0);
@@ -3458,8 +3149,8 @@ static const char * const LOCATE_NEW_AOrExpr_parser___parser_prod___AOrExpr___in
 val_t NEW_AOrExpr_parser___parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_AOrExpr_parser___parser_prod___AOrExpr___init_aorexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AOrExpr_parser___parser_nodes___ANode___init = "new AOrExpr parser_nodes::ANode::init";
-val_t NEW_AOrExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AOrExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AOrExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AOrExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAndExpr = "init var of AAndExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AAndExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AAndExpr_t)(val_t p0);
@@ -3474,8 +3165,8 @@ static const char * const LOCATE_NEW_AAndExpr_parser___parser_prod___AAndExpr___
 val_t NEW_AAndExpr_parser___parser_prod___AAndExpr___init_aandexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_AAndExpr_parser___parser_prod___AAndExpr___init_aandexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AAndExpr_parser___parser_nodes___ANode___init = "new AAndExpr parser_nodes::ANode::init";
-val_t NEW_AAndExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AAndExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AAndExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AAndExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AOrElseExpr = "init var of AOrElseExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AOrElseExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AOrElseExpr_t)(val_t p0);
@@ -3490,8 +3181,8 @@ static const char * const LOCATE_NEW_AOrElseExpr_parser___parser_prod___AOrElseE
 val_t NEW_AOrElseExpr_parser___parser_prod___AOrElseExpr___init_aorelseexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_AOrElseExpr_parser___parser_prod___AOrElseExpr___init_aorelseexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AOrElseExpr_parser___parser_nodes___ANode___init = "new AOrElseExpr parser_nodes::ANode::init";
-val_t NEW_AOrElseExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AOrElseExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AOrElseExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AOrElseExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ANotExpr = "init var of ANotExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___ANotExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ANotExpr_t)(val_t p0);
@@ -3506,8 +3197,8 @@ static const char * const LOCATE_NEW_ANotExpr_parser___parser_prod___ANotExpr___
 val_t NEW_ANotExpr_parser___parser_prod___ANotExpr___init_anotexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_ANotExpr_parser___parser_prod___ANotExpr___init_anotexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_ANotExpr_parser___parser_nodes___ANode___init = "new ANotExpr parser_nodes::ANode::init";
-val_t NEW_ANotExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ANotExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ANotExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ANotExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AEqExpr = "init var of AEqExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AEqExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AEqExpr_t)(val_t p0);
@@ -3525,8 +3216,8 @@ static const char * const LOCATE_NEW_AEqExpr_parser___parser_prod___AEqExpr___in
 val_t NEW_AEqExpr_parser___parser_prod___AEqExpr___init_aeqexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_AEqExpr_parser___parser_prod___AEqExpr___init_aeqexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AEqExpr_parser___parser_nodes___ANode___init = "new AEqExpr parser_nodes::ANode::init";
-val_t NEW_AEqExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AEqExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AEqExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AEqExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_AEqExpr_parser___parser_prod___ASendExpr___empty_init = "new AEqExpr parser_prod::ASendExpr::empty_init";
 val_t NEW_AEqExpr_parser___parser_prod___ASendExpr___empty_init(void);
 typedef val_t (*NEW_AEqExpr_parser___parser_prod___ASendExpr___empty_init_t)(void);
@@ -3550,8 +3241,8 @@ static const char * const LOCATE_NEW_AEeExpr_parser___parser_prod___AEeExpr___in
 val_t NEW_AEeExpr_parser___parser_prod___AEeExpr___init_aeeexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_AEeExpr_parser___parser_prod___AEeExpr___init_aeeexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AEeExpr_parser___parser_nodes___ANode___init = "new AEeExpr parser_nodes::ANode::init";
-val_t NEW_AEeExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AEeExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AEeExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AEeExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ANeExpr = "init var of ANeExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___ANeExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ANeExpr_t)(val_t p0);
@@ -3569,8 +3260,8 @@ static const char * const LOCATE_NEW_ANeExpr_parser___parser_prod___ANeExpr___in
 val_t NEW_ANeExpr_parser___parser_prod___ANeExpr___init_aneexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_ANeExpr_parser___parser_prod___ANeExpr___init_aneexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_ANeExpr_parser___parser_nodes___ANode___init = "new ANeExpr parser_nodes::ANode::init";
-val_t NEW_ANeExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ANeExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ANeExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ANeExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_ANeExpr_parser___parser_prod___ASendExpr___empty_init = "new ANeExpr parser_prod::ASendExpr::empty_init";
 val_t NEW_ANeExpr_parser___parser_prod___ASendExpr___empty_init(void);
 typedef val_t (*NEW_ANeExpr_parser___parser_prod___ASendExpr___empty_init_t)(void);
@@ -3597,8 +3288,8 @@ static const char * const LOCATE_NEW_ALtExpr_parser___parser_prod___ALtExpr___in
 val_t NEW_ALtExpr_parser___parser_prod___ALtExpr___init_altexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_ALtExpr_parser___parser_prod___ALtExpr___init_altexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_ALtExpr_parser___parser_nodes___ANode___init = "new ALtExpr parser_nodes::ANode::init";
-val_t NEW_ALtExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ALtExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ALtExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ALtExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_ALtExpr_parser___parser_prod___ASendExpr___empty_init = "new ALtExpr parser_prod::ASendExpr::empty_init";
 val_t NEW_ALtExpr_parser___parser_prod___ASendExpr___empty_init(void);
 typedef val_t (*NEW_ALtExpr_parser___parser_prod___ASendExpr___empty_init_t)(void);
@@ -3625,8 +3316,8 @@ static const char * const LOCATE_NEW_ALeExpr_parser___parser_prod___ALeExpr___in
 val_t NEW_ALeExpr_parser___parser_prod___ALeExpr___init_aleexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_ALeExpr_parser___parser_prod___ALeExpr___init_aleexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_ALeExpr_parser___parser_nodes___ANode___init = "new ALeExpr parser_nodes::ANode::init";
-val_t NEW_ALeExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ALeExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ALeExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ALeExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_ALeExpr_parser___parser_prod___ASendExpr___empty_init = "new ALeExpr parser_prod::ASendExpr::empty_init";
 val_t NEW_ALeExpr_parser___parser_prod___ASendExpr___empty_init(void);
 typedef val_t (*NEW_ALeExpr_parser___parser_prod___ASendExpr___empty_init_t)(void);
@@ -3653,8 +3344,8 @@ static const char * const LOCATE_NEW_ALlExpr_parser___parser_prod___ALlExpr___in
 val_t NEW_ALlExpr_parser___parser_prod___ALlExpr___init_allexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_ALlExpr_parser___parser_prod___ALlExpr___init_allexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_ALlExpr_parser___parser_nodes___ANode___init = "new ALlExpr parser_nodes::ANode::init";
-val_t NEW_ALlExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ALlExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ALlExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ALlExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_ALlExpr_parser___parser_prod___ASendExpr___empty_init = "new ALlExpr parser_prod::ASendExpr::empty_init";
 val_t NEW_ALlExpr_parser___parser_prod___ASendExpr___empty_init(void);
 typedef val_t (*NEW_ALlExpr_parser___parser_prod___ASendExpr___empty_init_t)(void);
@@ -3681,8 +3372,8 @@ static const char * const LOCATE_NEW_AGtExpr_parser___parser_prod___AGtExpr___in
 val_t NEW_AGtExpr_parser___parser_prod___AGtExpr___init_agtexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_AGtExpr_parser___parser_prod___AGtExpr___init_agtexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AGtExpr_parser___parser_nodes___ANode___init = "new AGtExpr parser_nodes::ANode::init";
-val_t NEW_AGtExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AGtExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AGtExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AGtExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_AGtExpr_parser___parser_prod___ASendExpr___empty_init = "new AGtExpr parser_prod::ASendExpr::empty_init";
 val_t NEW_AGtExpr_parser___parser_prod___ASendExpr___empty_init(void);
 typedef val_t (*NEW_AGtExpr_parser___parser_prod___ASendExpr___empty_init_t)(void);
@@ -3709,8 +3400,8 @@ static const char * const LOCATE_NEW_AGeExpr_parser___parser_prod___AGeExpr___in
 val_t NEW_AGeExpr_parser___parser_prod___AGeExpr___init_ageexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_AGeExpr_parser___parser_prod___AGeExpr___init_ageexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AGeExpr_parser___parser_nodes___ANode___init = "new AGeExpr parser_nodes::ANode::init";
-val_t NEW_AGeExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AGeExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AGeExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AGeExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_AGeExpr_parser___parser_prod___ASendExpr___empty_init = "new AGeExpr parser_prod::ASendExpr::empty_init";
 val_t NEW_AGeExpr_parser___parser_prod___ASendExpr___empty_init(void);
 typedef val_t (*NEW_AGeExpr_parser___parser_prod___ASendExpr___empty_init_t)(void);
@@ -3737,8 +3428,8 @@ static const char * const LOCATE_NEW_AGgExpr_parser___parser_prod___AGgExpr___in
 val_t NEW_AGgExpr_parser___parser_prod___AGgExpr___init_aggexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_AGgExpr_parser___parser_prod___AGgExpr___init_aggexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AGgExpr_parser___parser_nodes___ANode___init = "new AGgExpr parser_nodes::ANode::init";
-val_t NEW_AGgExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AGgExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AGgExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AGgExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_AGgExpr_parser___parser_prod___ASendExpr___empty_init = "new AGgExpr parser_prod::ASendExpr::empty_init";
 val_t NEW_AGgExpr_parser___parser_prod___ASendExpr___empty_init(void);
 typedef val_t (*NEW_AGgExpr_parser___parser_prod___ASendExpr___empty_init_t)(void);
@@ -3762,8 +3453,8 @@ static const char * const LOCATE_NEW_AIsaExpr_parser___parser_prod___AIsaExpr___
 val_t NEW_AIsaExpr_parser___parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_AIsaExpr_parser___parser_prod___AIsaExpr___init_aisaexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AIsaExpr_parser___parser_nodes___ANode___init = "new AIsaExpr parser_nodes::ANode::init";
-val_t NEW_AIsaExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AIsaExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AIsaExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AIsaExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___APlusExpr = "init var of APlusExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___APlusExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___APlusExpr_t)(val_t p0);
@@ -3781,8 +3472,8 @@ static const char * const LOCATE_NEW_APlusExpr_parser___parser_prod___APlusExpr_
 val_t NEW_APlusExpr_parser___parser_prod___APlusExpr___init_aplusexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_APlusExpr_parser___parser_prod___APlusExpr___init_aplusexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_APlusExpr_parser___parser_nodes___ANode___init = "new APlusExpr parser_nodes::ANode::init";
-val_t NEW_APlusExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_APlusExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_APlusExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_APlusExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_APlusExpr_parser___parser_prod___ASendExpr___empty_init = "new APlusExpr parser_prod::ASendExpr::empty_init";
 val_t NEW_APlusExpr_parser___parser_prod___ASendExpr___empty_init(void);
 typedef val_t (*NEW_APlusExpr_parser___parser_prod___ASendExpr___empty_init_t)(void);
@@ -3809,8 +3500,8 @@ static const char * const LOCATE_NEW_AMinusExpr_parser___parser_prod___AMinusExp
 val_t NEW_AMinusExpr_parser___parser_prod___AMinusExpr___init_aminusexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_AMinusExpr_parser___parser_prod___AMinusExpr___init_aminusexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AMinusExpr_parser___parser_nodes___ANode___init = "new AMinusExpr parser_nodes::ANode::init";
-val_t NEW_AMinusExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AMinusExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AMinusExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AMinusExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_AMinusExpr_parser___parser_prod___ASendExpr___empty_init = "new AMinusExpr parser_prod::ASendExpr::empty_init";
 val_t NEW_AMinusExpr_parser___parser_prod___ASendExpr___empty_init(void);
 typedef val_t (*NEW_AMinusExpr_parser___parser_prod___ASendExpr___empty_init_t)(void);
@@ -3837,8 +3528,8 @@ static const char * const LOCATE_NEW_AStarshipExpr_parser___parser_prod___AStars
 val_t NEW_AStarshipExpr_parser___parser_prod___AStarshipExpr___init_astarshipexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_AStarshipExpr_parser___parser_prod___AStarshipExpr___init_astarshipexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AStarshipExpr_parser___parser_nodes___ANode___init = "new AStarshipExpr parser_nodes::ANode::init";
-val_t NEW_AStarshipExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AStarshipExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AStarshipExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AStarshipExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_AStarshipExpr_parser___parser_prod___ASendExpr___empty_init = "new AStarshipExpr parser_prod::ASendExpr::empty_init";
 val_t NEW_AStarshipExpr_parser___parser_prod___ASendExpr___empty_init(void);
 typedef val_t (*NEW_AStarshipExpr_parser___parser_prod___ASendExpr___empty_init_t)(void);
@@ -3865,8 +3556,8 @@ static const char * const LOCATE_NEW_AStarExpr_parser___parser_prod___AStarExpr_
 val_t NEW_AStarExpr_parser___parser_prod___AStarExpr___init_astarexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_AStarExpr_parser___parser_prod___AStarExpr___init_astarexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AStarExpr_parser___parser_nodes___ANode___init = "new AStarExpr parser_nodes::ANode::init";
-val_t NEW_AStarExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AStarExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AStarExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AStarExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_AStarExpr_parser___parser_prod___ASendExpr___empty_init = "new AStarExpr parser_prod::ASendExpr::empty_init";
 val_t NEW_AStarExpr_parser___parser_prod___ASendExpr___empty_init(void);
 typedef val_t (*NEW_AStarExpr_parser___parser_prod___ASendExpr___empty_init_t)(void);
@@ -3893,8 +3584,8 @@ static const char * const LOCATE_NEW_ASlashExpr_parser___parser_prod___ASlashExp
 val_t NEW_ASlashExpr_parser___parser_prod___ASlashExpr___init_aslashexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_ASlashExpr_parser___parser_prod___ASlashExpr___init_aslashexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_ASlashExpr_parser___parser_nodes___ANode___init = "new ASlashExpr parser_nodes::ANode::init";
-val_t NEW_ASlashExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ASlashExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ASlashExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ASlashExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_ASlashExpr_parser___parser_prod___ASendExpr___empty_init = "new ASlashExpr parser_prod::ASendExpr::empty_init";
 val_t NEW_ASlashExpr_parser___parser_prod___ASendExpr___empty_init(void);
 typedef val_t (*NEW_ASlashExpr_parser___parser_prod___ASendExpr___empty_init_t)(void);
@@ -3921,8 +3612,8 @@ static const char * const LOCATE_NEW_APercentExpr_parser___parser_prod___APercen
 val_t NEW_APercentExpr_parser___parser_prod___APercentExpr___init_apercentexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_APercentExpr_parser___parser_prod___APercentExpr___init_apercentexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_APercentExpr_parser___parser_nodes___ANode___init = "new APercentExpr parser_nodes::ANode::init";
-val_t NEW_APercentExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_APercentExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_APercentExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_APercentExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_APercentExpr_parser___parser_prod___ASendExpr___empty_init = "new APercentExpr parser_prod::ASendExpr::empty_init";
 val_t NEW_APercentExpr_parser___parser_prod___ASendExpr___empty_init(void);
 typedef val_t (*NEW_APercentExpr_parser___parser_prod___ASendExpr___empty_init_t)(void);
@@ -3949,8 +3640,8 @@ static const char * const LOCATE_NEW_AUminusExpr_parser___parser_prod___AUminusE
 val_t NEW_AUminusExpr_parser___parser_prod___AUminusExpr___init_auminusexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_AUminusExpr_parser___parser_prod___AUminusExpr___init_auminusexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AUminusExpr_parser___parser_nodes___ANode___init = "new AUminusExpr parser_nodes::ANode::init";
-val_t NEW_AUminusExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AUminusExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AUminusExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AUminusExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_AUminusExpr_parser___parser_prod___ASendExpr___init_asendexpr = "new AUminusExpr parser_prod::ASendExpr::init_asendexpr";
 val_t NEW_AUminusExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 typedef val_t (*NEW_AUminusExpr_parser___parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
@@ -3968,18 +3659,8 @@ static const char * const LOCATE_NEW_ANewExpr_parser___parser_prod___ANewExpr___
 val_t NEW_ANewExpr_parser___parser_prod___ANewExpr___init_anewexpr(val_t p0, val_t p1, val_t p2, val_t p3);
 typedef val_t (*NEW_ANewExpr_parser___parser_prod___ANewExpr___init_anewexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
 static const char * const LOCATE_NEW_ANewExpr_parser___parser_nodes___ANode___init = "new ANewExpr parser_nodes::ANode::init";
-val_t NEW_ANewExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ANewExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAttrFormExpr = "init var of AAttrFormExpr";
-void INIT_ATTRIBUTES__parser___parser_nodes___AAttrFormExpr(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AAttrFormExpr_t)(val_t p0);
-val_t NEW_parser___parser_nodes___AAttrFormExpr(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AAttrFormExpr = "check new AAttrFormExpr";
-void CHECKNEW_parser___parser_nodes___AAttrFormExpr(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___AAttrFormExpr_t)(val_t p0);
-static const char * const LOCATE_NEW_AAttrFormExpr_parser___parser_nodes___ANode___init = "new AAttrFormExpr parser_nodes::ANode::init";
-val_t NEW_AAttrFormExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AAttrFormExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ANewExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ANewExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAttrExpr = "init var of AAttrExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AAttrExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AAttrExpr_t)(val_t p0);
@@ -3994,8 +3675,8 @@ static const char * const LOCATE_NEW_AAttrExpr_parser___parser_prod___AAttrExpr_
 val_t NEW_AAttrExpr_parser___parser_prod___AAttrExpr___init_aattrexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_AAttrExpr_parser___parser_prod___AAttrExpr___init_aattrexpr_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AAttrExpr_parser___parser_nodes___ANode___init = "new AAttrExpr parser_nodes::ANode::init";
-val_t NEW_AAttrExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AAttrExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AAttrExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AAttrExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAttrAssignExpr = "init var of AAttrAssignExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AAttrAssignExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AAttrAssignExpr_t)(val_t p0);
@@ -4010,24 +3691,8 @@ static const char * const LOCATE_NEW_AAttrAssignExpr_parser___parser_prod___AAtt
 val_t NEW_AAttrAssignExpr_parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr(val_t p0, val_t p1, val_t p2, val_t p3);
 typedef val_t (*NEW_AAttrAssignExpr_parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
 static const char * const LOCATE_NEW_AAttrAssignExpr_parser___parser_nodes___ANode___init = "new AAttrAssignExpr parser_nodes::ANode::init";
-val_t NEW_AAttrAssignExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AAttrAssignExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ACallFormExpr = "init var of ACallFormExpr";
-void INIT_ATTRIBUTES__parser___parser_nodes___ACallFormExpr(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ACallFormExpr_t)(val_t p0);
-val_t NEW_parser___parser_nodes___ACallFormExpr(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___ACallFormExpr = "check new ACallFormExpr";
-void CHECKNEW_parser___parser_nodes___ACallFormExpr(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___ACallFormExpr_t)(val_t p0);
-static const char * const LOCATE_NEW_ACallFormExpr_parser___parser_nodes___ANode___init = "new ACallFormExpr parser_nodes::ANode::init";
-val_t NEW_ACallFormExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ACallFormExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_NEW_ACallFormExpr_parser___parser_prod___ASendExpr___empty_init = "new ACallFormExpr parser_prod::ASendExpr::empty_init";
-val_t NEW_ACallFormExpr_parser___parser_prod___ASendExpr___empty_init(void);
-typedef val_t (*NEW_ACallFormExpr_parser___parser_prod___ASendExpr___empty_init_t)(void);
-static const char * const LOCATE_NEW_ACallFormExpr_parser___parser_prod___ASendExpr___init_asendexpr = "new ACallFormExpr parser_prod::ASendExpr::init_asendexpr";
-val_t NEW_ACallFormExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
-typedef val_t (*NEW_ACallFormExpr_parser___parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
+val_t NEW_AAttrAssignExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AAttrAssignExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAttrReassignExpr = "init var of AAttrReassignExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AAttrReassignExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AAttrReassignExpr_t)(val_t p0);
@@ -4042,8 +3707,8 @@ static const char * const LOCATE_NEW_AAttrReassignExpr_parser___parser_prod___AA
 val_t NEW_AAttrReassignExpr_parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3);
 typedef val_t (*NEW_AAttrReassignExpr_parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
 static const char * const LOCATE_NEW_AAttrReassignExpr_parser___parser_nodes___ANode___init = "new AAttrReassignExpr parser_nodes::ANode::init";
-val_t NEW_AAttrReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AAttrReassignExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AAttrReassignExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AAttrReassignExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ACallExpr = "init var of ACallExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___ACallExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ACallExpr_t)(val_t p0);
@@ -4061,8 +3726,8 @@ static const char * const LOCATE_NEW_ACallExpr_parser___parser_prod___ACallExpr_
 val_t NEW_ACallExpr_parser___parser_prod___ACallExpr___init_acallexpr(val_t p0, val_t p1, val_t p2, val_t p3);
 typedef val_t (*NEW_ACallExpr_parser___parser_prod___ACallExpr___init_acallexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
 static const char * const LOCATE_NEW_ACallExpr_parser___parser_nodes___ANode___init = "new ACallExpr parser_nodes::ANode::init";
-val_t NEW_ACallExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ACallExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ACallExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ACallExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_ACallExpr_parser___parser_prod___ASendExpr___init_asendexpr = "new ACallExpr parser_prod::ASendExpr::init_asendexpr";
 val_t NEW_ACallExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 typedef val_t (*NEW_ACallExpr_parser___parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
@@ -4083,8 +3748,8 @@ static const char * const LOCATE_NEW_ACallAssignExpr_parser___parser_prod___ACal
 val_t NEW_ACallAssignExpr_parser___parser_prod___ACallAssignExpr___init_acallassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 typedef val_t (*NEW_ACallAssignExpr_parser___parser_prod___ACallAssignExpr___init_acallassignexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_NEW_ACallAssignExpr_parser___parser_nodes___ANode___init = "new ACallAssignExpr parser_nodes::ANode::init";
-val_t NEW_ACallAssignExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ACallAssignExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ACallAssignExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ACallAssignExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_ACallAssignExpr_parser___parser_prod___ASendExpr___init_asendexpr = "new ACallAssignExpr parser_prod::ASendExpr::init_asendexpr";
 val_t NEW_ACallAssignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 typedef val_t (*NEW_ACallAssignExpr_parser___parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
@@ -4105,8 +3770,8 @@ static const char * const LOCATE_NEW_ACallReassignExpr_parser___parser_prod___AC
 val_t NEW_ACallReassignExpr_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 typedef val_t (*NEW_ACallReassignExpr_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_NEW_ACallReassignExpr_parser___parser_nodes___ANode___init = "new ACallReassignExpr parser_nodes::ANode::init";
-val_t NEW_ACallReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ACallReassignExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ACallReassignExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ACallReassignExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_ACallReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr = "new ACallReassignExpr parser_prod::ASendExpr::init_asendexpr";
 val_t NEW_ACallReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 typedef val_t (*NEW_ACallReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
@@ -4124,8 +3789,8 @@ static const char * const LOCATE_NEW_ASuperExpr_parser___parser_prod___ASuperExp
 val_t NEW_ASuperExpr_parser___parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_ASuperExpr_parser___parser_prod___ASuperExpr___init_asuperexpr_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_ASuperExpr_parser___parser_nodes___ANode___init = "new ASuperExpr parser_nodes::ANode::init";
-val_t NEW_ASuperExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ASuperExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ASuperExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ASuperExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AInitExpr = "init var of AInitExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AInitExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AInitExpr_t)(val_t p0);
@@ -4143,27 +3808,11 @@ static const char * const LOCATE_NEW_AInitExpr_parser___parser_prod___AInitExpr_
 val_t NEW_AInitExpr_parser___parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_AInitExpr_parser___parser_prod___AInitExpr___init_ainitexpr_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_AInitExpr_parser___parser_nodes___ANode___init = "new AInitExpr parser_nodes::ANode::init";
-val_t NEW_AInitExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AInitExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AInitExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AInitExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_AInitExpr_parser___parser_prod___ASendExpr___init_asendexpr = "new AInitExpr parser_prod::ASendExpr::init_asendexpr";
 val_t NEW_AInitExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 typedef val_t (*NEW_AInitExpr_parser___parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ABraFormExpr = "init var of ABraFormExpr";
-void INIT_ATTRIBUTES__parser___parser_nodes___ABraFormExpr(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ABraFormExpr_t)(val_t p0);
-val_t NEW_parser___parser_nodes___ABraFormExpr(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___ABraFormExpr = "check new ABraFormExpr";
-void CHECKNEW_parser___parser_nodes___ABraFormExpr(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___ABraFormExpr_t)(val_t p0);
-static const char * const LOCATE_NEW_ABraFormExpr_parser___parser_nodes___ANode___init = "new ABraFormExpr parser_nodes::ANode::init";
-val_t NEW_ABraFormExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ABraFormExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_NEW_ABraFormExpr_parser___parser_prod___ASendExpr___empty_init = "new ABraFormExpr parser_prod::ASendExpr::empty_init";
-val_t NEW_ABraFormExpr_parser___parser_prod___ASendExpr___empty_init(void);
-typedef val_t (*NEW_ABraFormExpr_parser___parser_prod___ASendExpr___empty_init_t)(void);
-static const char * const LOCATE_NEW_ABraFormExpr_parser___parser_prod___ASendExpr___init_asendexpr = "new ABraFormExpr parser_prod::ASendExpr::init_asendexpr";
-val_t NEW_ABraFormExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
-typedef val_t (*NEW_ABraFormExpr_parser___parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ABraExpr = "init var of ABraExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___ABraExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ABraExpr_t)(val_t p0);
@@ -4181,8 +3830,8 @@ static const char * const LOCATE_NEW_ABraExpr_parser___parser_prod___ABraExpr___
 val_t NEW_ABraExpr_parser___parser_prod___ABraExpr___init_abraexpr(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_ABraExpr_parser___parser_prod___ABraExpr___init_abraexpr_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_ABraExpr_parser___parser_nodes___ANode___init = "new ABraExpr parser_nodes::ANode::init";
-val_t NEW_ABraExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ABraExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ABraExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ABraExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_ABraExpr_parser___parser_prod___ASendExpr___init_asendexpr = "new ABraExpr parser_prod::ASendExpr::init_asendexpr";
 val_t NEW_ABraExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 typedef val_t (*NEW_ABraExpr_parser___parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
@@ -4203,21 +3852,11 @@ static const char * const LOCATE_NEW_ABraAssignExpr_parser___parser_prod___ABraA
 val_t NEW_ABraAssignExpr_parser___parser_prod___ABraAssignExpr___init_abraassignexpr(val_t p0, val_t p1, val_t p2, val_t p3);
 typedef val_t (*NEW_ABraAssignExpr_parser___parser_prod___ABraAssignExpr___init_abraassignexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
 static const char * const LOCATE_NEW_ABraAssignExpr_parser___parser_nodes___ANode___init = "new ABraAssignExpr parser_nodes::ANode::init";
-val_t NEW_ABraAssignExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ABraAssignExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ABraAssignExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ABraAssignExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_ABraAssignExpr_parser___parser_prod___ASendExpr___init_asendexpr = "new ABraAssignExpr parser_prod::ASendExpr::init_asendexpr";
 val_t NEW_ABraAssignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 typedef val_t (*NEW_ABraAssignExpr_parser___parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AVarFormExpr = "init var of AVarFormExpr";
-void INIT_ATTRIBUTES__parser___parser_nodes___AVarFormExpr(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AVarFormExpr_t)(val_t p0);
-val_t NEW_parser___parser_nodes___AVarFormExpr(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AVarFormExpr = "check new AVarFormExpr";
-void CHECKNEW_parser___parser_nodes___AVarFormExpr(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___AVarFormExpr_t)(val_t p0);
-static const char * const LOCATE_NEW_AVarFormExpr_parser___parser_nodes___ANode___init = "new AVarFormExpr parser_nodes::ANode::init";
-val_t NEW_AVarFormExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AVarFormExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ABraReassignExpr = "init var of ABraReassignExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___ABraReassignExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ABraReassignExpr_t)(val_t p0);
@@ -4235,8 +3874,8 @@ static const char * const LOCATE_NEW_ABraReassignExpr_parser___parser_prod___ABr
 val_t NEW_ABraReassignExpr_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t p0, val_t p1, val_t p2, val_t p3);
 typedef val_t (*NEW_ABraReassignExpr_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
 static const char * const LOCATE_NEW_ABraReassignExpr_parser___parser_nodes___ANode___init = "new ABraReassignExpr parser_nodes::ANode::init";
-val_t NEW_ABraReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ABraReassignExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ABraReassignExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ABraReassignExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_ABraReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr = "new ABraReassignExpr parser_prod::ASendExpr::init_asendexpr";
 val_t NEW_ABraReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 typedef val_t (*NEW_ABraReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
@@ -4254,8 +3893,8 @@ static const char * const LOCATE_NEW_AClosureCallExpr_parser___parser_prod___ACl
 val_t NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___empty_init(void);
 typedef val_t (*NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___empty_init_t)(void);
 static const char * const LOCATE_NEW_AClosureCallExpr_parser___parser_nodes___ANode___init = "new AClosureCallExpr parser_nodes::ANode::init";
-val_t NEW_AClosureCallExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AClosureCallExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AClosureCallExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AClosureCallExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AVarExpr = "init var of AVarExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AVarExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AVarExpr_t)(val_t p0);
@@ -4270,8 +3909,8 @@ static const char * const LOCATE_NEW_AVarExpr_parser___parser_prod___AVarExpr___
 val_t NEW_AVarExpr_parser___parser_prod___AVarExpr___empty_init(void);
 typedef val_t (*NEW_AVarExpr_parser___parser_prod___AVarExpr___empty_init_t)(void);
 static const char * const LOCATE_NEW_AVarExpr_parser___parser_nodes___ANode___init = "new AVarExpr parser_nodes::ANode::init";
-val_t NEW_AVarExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AVarExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AVarExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AVarExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AVarAssignExpr = "init var of AVarAssignExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AVarAssignExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AVarAssignExpr_t)(val_t p0);
@@ -4286,8 +3925,8 @@ static const char * const LOCATE_NEW_AVarAssignExpr_parser___parser_prod___AVarA
 val_t NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___empty_init(void);
 typedef val_t (*NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___empty_init_t)(void);
 static const char * const LOCATE_NEW_AVarAssignExpr_parser___parser_nodes___ANode___init = "new AVarAssignExpr parser_nodes::ANode::init";
-val_t NEW_AVarAssignExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AVarAssignExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AVarAssignExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AVarAssignExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AVarReassignExpr = "init var of AVarReassignExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AVarReassignExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AVarReassignExpr_t)(val_t p0);
@@ -4302,24 +3941,8 @@ static const char * const LOCATE_NEW_AVarReassignExpr_parser___parser_prod___AVa
 val_t NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___empty_init(void);
 typedef val_t (*NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___empty_init_t)(void);
 static const char * const LOCATE_NEW_AVarReassignExpr_parser___parser_nodes___ANode___init = "new AVarReassignExpr parser_nodes::ANode::init";
-val_t NEW_AVarReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AVarReassignExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ARangeExpr = "init var of ARangeExpr";
-void INIT_ATTRIBUTES__parser___parser_nodes___ARangeExpr(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ARangeExpr_t)(val_t p0);
-val_t NEW_parser___parser_nodes___ARangeExpr(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___ARangeExpr = "check new ARangeExpr";
-void CHECKNEW_parser___parser_nodes___ARangeExpr(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___ARangeExpr_t)(val_t p0);
-static const char * const LOCATE_NEW_ARangeExpr_parser___parser_prod___ARangeExpr___empty_init = "new ARangeExpr parser_prod::ARangeExpr::empty_init";
-val_t NEW_ARangeExpr_parser___parser_prod___ARangeExpr___empty_init(void);
-typedef val_t (*NEW_ARangeExpr_parser___parser_prod___ARangeExpr___empty_init_t)(void);
-static const char * const LOCATE_NEW_ARangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr = "new ARangeExpr parser_prod::ARangeExpr::init_arangeexpr";
-val_t NEW_ARangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1);
-typedef val_t (*NEW_ARangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr_t)(val_t p0, val_t p1);
-static const char * const LOCATE_NEW_ARangeExpr_parser___parser_nodes___ANode___init = "new ARangeExpr parser_nodes::ANode::init";
-val_t NEW_ARangeExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ARangeExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AVarReassignExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AVarReassignExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ACrangeExpr = "init var of ACrangeExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___ACrangeExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ACrangeExpr_t)(val_t p0);
@@ -4334,11 +3957,11 @@ static const char * const LOCATE_NEW_ACrangeExpr_parser___parser_prod___ACrangeE
 val_t NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___empty_init(void);
 typedef val_t (*NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___empty_init_t)(void);
 static const char * const LOCATE_NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___init_acrangeexpr = "new ACrangeExpr parser_prod::ACrangeExpr::init_acrangeexpr";
-val_t NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1);
-typedef val_t (*NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___init_acrangeexpr_t)(val_t p0, val_t p1);
+val_t NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1, val_t p2, val_t p3);
+typedef val_t (*NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___init_acrangeexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
 static const char * const LOCATE_NEW_ACrangeExpr_parser___parser_nodes___ANode___init = "new ACrangeExpr parser_nodes::ANode::init";
-val_t NEW_ACrangeExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ACrangeExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ACrangeExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ACrangeExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_ACrangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr = "new ACrangeExpr parser_prod::ARangeExpr::init_arangeexpr";
 val_t NEW_ACrangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_ACrangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr_t)(val_t p0, val_t p1);
@@ -4356,11 +3979,11 @@ static const char * const LOCATE_NEW_AOrangeExpr_parser___parser_prod___AOrangeE
 val_t NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___empty_init(void);
 typedef val_t (*NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___empty_init_t)(void);
 static const char * const LOCATE_NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___init_aorangeexpr = "new AOrangeExpr parser_prod::AOrangeExpr::init_aorangeexpr";
-val_t NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1);
-typedef val_t (*NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___init_aorangeexpr_t)(val_t p0, val_t p1);
+val_t NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1, val_t p2, val_t p3);
+typedef val_t (*NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___init_aorangeexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
 static const char * const LOCATE_NEW_AOrangeExpr_parser___parser_nodes___ANode___init = "new AOrangeExpr parser_nodes::ANode::init";
-val_t NEW_AOrangeExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AOrangeExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AOrangeExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AOrangeExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_AOrangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr = "new AOrangeExpr parser_prod::ARangeExpr::init_arangeexpr";
 val_t NEW_AOrangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1);
 typedef val_t (*NEW_AOrangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr_t)(val_t p0, val_t p1);
@@ -4378,8 +4001,8 @@ static const char * const LOCATE_NEW_AArrayExpr_parser___parser_prod___AArrayExp
 val_t NEW_AArrayExpr_parser___parser_prod___AArrayExpr___init_aarrayexpr(val_t p0);
 typedef val_t (*NEW_AArrayExpr_parser___parser_prod___AArrayExpr___init_aarrayexpr_t)(val_t p0);
 static const char * const LOCATE_NEW_AArrayExpr_parser___parser_nodes___ANode___init = "new AArrayExpr parser_nodes::ANode::init";
-val_t NEW_AArrayExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AArrayExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AArrayExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AArrayExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ASelfExpr = "init var of ASelfExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___ASelfExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ASelfExpr_t)(val_t p0);
@@ -4394,8 +4017,8 @@ static const char * const LOCATE_NEW_ASelfExpr_parser___parser_prod___ASelfExpr_
 val_t NEW_ASelfExpr_parser___parser_prod___ASelfExpr___init_aselfexpr(val_t p0);
 typedef val_t (*NEW_ASelfExpr_parser___parser_prod___ASelfExpr___init_aselfexpr_t)(val_t p0);
 static const char * const LOCATE_NEW_ASelfExpr_parser___parser_nodes___ANode___init = "new ASelfExpr parser_nodes::ANode::init";
-val_t NEW_ASelfExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ASelfExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ASelfExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ASelfExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AImplicitSelfExpr = "init var of AImplicitSelfExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AImplicitSelfExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AImplicitSelfExpr_t)(val_t p0);
@@ -4413,8 +4036,8 @@ static const char * const LOCATE_NEW_AImplicitSelfExpr_parser___parser_prod___AI
 val_t NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(void);
 typedef val_t (*NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr_t)(void);
 static const char * const LOCATE_NEW_AImplicitSelfExpr_parser___parser_nodes___ANode___init = "new AImplicitSelfExpr parser_nodes::ANode::init";
-val_t NEW_AImplicitSelfExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AImplicitSelfExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AImplicitSelfExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AImplicitSelfExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_NEW_AImplicitSelfExpr_parser___parser_prod___ASelfExpr___init_aselfexpr = "new AImplicitSelfExpr parser_prod::ASelfExpr::init_aselfexpr";
 val_t NEW_AImplicitSelfExpr_parser___parser_prod___ASelfExpr___init_aselfexpr(val_t p0);
 typedef val_t (*NEW_AImplicitSelfExpr_parser___parser_prod___ASelfExpr___init_aselfexpr_t)(val_t p0);
@@ -4432,8 +4055,8 @@ static const char * const LOCATE_NEW_ATrueExpr_parser___parser_prod___ATrueExpr_
 val_t NEW_ATrueExpr_parser___parser_prod___ATrueExpr___init_atrueexpr(val_t p0);
 typedef val_t (*NEW_ATrueExpr_parser___parser_prod___ATrueExpr___init_atrueexpr_t)(val_t p0);
 static const char * const LOCATE_NEW_ATrueExpr_parser___parser_nodes___ANode___init = "new ATrueExpr parser_nodes::ANode::init";
-val_t NEW_ATrueExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ATrueExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ATrueExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ATrueExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AFalseExpr = "init var of AFalseExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AFalseExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AFalseExpr_t)(val_t p0);
@@ -4448,8 +4071,8 @@ static const char * const LOCATE_NEW_AFalseExpr_parser___parser_prod___AFalseExp
 val_t NEW_AFalseExpr_parser___parser_prod___AFalseExpr___init_afalseexpr(val_t p0);
 typedef val_t (*NEW_AFalseExpr_parser___parser_prod___AFalseExpr___init_afalseexpr_t)(val_t p0);
 static const char * const LOCATE_NEW_AFalseExpr_parser___parser_nodes___ANode___init = "new AFalseExpr parser_nodes::ANode::init";
-val_t NEW_AFalseExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AFalseExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AFalseExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AFalseExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ANullExpr = "init var of ANullExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___ANullExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ANullExpr_t)(val_t p0);
@@ -4464,8 +4087,8 @@ static const char * const LOCATE_NEW_ANullExpr_parser___parser_prod___ANullExpr_
 val_t NEW_ANullExpr_parser___parser_prod___ANullExpr___init_anullexpr(val_t p0);
 typedef val_t (*NEW_ANullExpr_parser___parser_prod___ANullExpr___init_anullexpr_t)(val_t p0);
 static const char * const LOCATE_NEW_ANullExpr_parser___parser_nodes___ANode___init = "new ANullExpr parser_nodes::ANode::init";
-val_t NEW_ANullExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ANullExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ANullExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ANullExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AIntExpr = "init var of AIntExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AIntExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AIntExpr_t)(val_t p0);
@@ -4480,8 +4103,8 @@ static const char * const LOCATE_NEW_AIntExpr_parser___parser_prod___AIntExpr___
 val_t NEW_AIntExpr_parser___parser_prod___AIntExpr___init_aintexpr(val_t p0);
 typedef val_t (*NEW_AIntExpr_parser___parser_prod___AIntExpr___init_aintexpr_t)(val_t p0);
 static const char * const LOCATE_NEW_AIntExpr_parser___parser_nodes___ANode___init = "new AIntExpr parser_nodes::ANode::init";
-val_t NEW_AIntExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AIntExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AIntExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AIntExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AFloatExpr = "init var of AFloatExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AFloatExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AFloatExpr_t)(val_t p0);
@@ -4496,8 +4119,8 @@ static const char * const LOCATE_NEW_AFloatExpr_parser___parser_prod___AFloatExp
 val_t NEW_AFloatExpr_parser___parser_prod___AFloatExpr___init_afloatexpr(val_t p0);
 typedef val_t (*NEW_AFloatExpr_parser___parser_prod___AFloatExpr___init_afloatexpr_t)(val_t p0);
 static const char * const LOCATE_NEW_AFloatExpr_parser___parser_nodes___ANode___init = "new AFloatExpr parser_nodes::ANode::init";
-val_t NEW_AFloatExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AFloatExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AFloatExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AFloatExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ACharExpr = "init var of ACharExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___ACharExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ACharExpr_t)(val_t p0);
@@ -4512,18 +4135,8 @@ static const char * const LOCATE_NEW_ACharExpr_parser___parser_prod___ACharExpr_
 val_t NEW_ACharExpr_parser___parser_prod___ACharExpr___init_acharexpr(val_t p0);
 typedef val_t (*NEW_ACharExpr_parser___parser_prod___ACharExpr___init_acharexpr_t)(val_t p0);
 static const char * const LOCATE_NEW_ACharExpr_parser___parser_nodes___ANode___init = "new ACharExpr parser_nodes::ANode::init";
-val_t NEW_ACharExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ACharExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AStringFormExpr = "init var of AStringFormExpr";
-void INIT_ATTRIBUTES__parser___parser_nodes___AStringFormExpr(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AStringFormExpr_t)(val_t p0);
-val_t NEW_parser___parser_nodes___AStringFormExpr(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AStringFormExpr = "check new AStringFormExpr";
-void CHECKNEW_parser___parser_nodes___AStringFormExpr(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___AStringFormExpr_t)(val_t p0);
-static const char * const LOCATE_NEW_AStringFormExpr_parser___parser_nodes___ANode___init = "new AStringFormExpr parser_nodes::ANode::init";
-val_t NEW_AStringFormExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AStringFormExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ACharExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ACharExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AStringExpr = "init var of AStringExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AStringExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AStringExpr_t)(val_t p0);
@@ -4538,8 +4151,8 @@ static const char * const LOCATE_NEW_AStringExpr_parser___parser_prod___AStringE
 val_t NEW_AStringExpr_parser___parser_prod___AStringExpr___init_astringexpr(val_t p0);
 typedef val_t (*NEW_AStringExpr_parser___parser_prod___AStringExpr___init_astringexpr_t)(val_t p0);
 static const char * const LOCATE_NEW_AStringExpr_parser___parser_nodes___ANode___init = "new AStringExpr parser_nodes::ANode::init";
-val_t NEW_AStringExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AStringExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AStringExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AStringExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AStartStringExpr = "init var of AStartStringExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AStartStringExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AStartStringExpr_t)(val_t p0);
@@ -4554,8 +4167,8 @@ static const char * const LOCATE_NEW_AStartStringExpr_parser___parser_prod___ASt
 val_t NEW_AStartStringExpr_parser___parser_prod___AStartStringExpr___init_astartstringexpr(val_t p0);
 typedef val_t (*NEW_AStartStringExpr_parser___parser_prod___AStartStringExpr___init_astartstringexpr_t)(val_t p0);
 static const char * const LOCATE_NEW_AStartStringExpr_parser___parser_nodes___ANode___init = "new AStartStringExpr parser_nodes::ANode::init";
-val_t NEW_AStartStringExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AStartStringExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AStartStringExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AStartStringExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AMidStringExpr = "init var of AMidStringExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AMidStringExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AMidStringExpr_t)(val_t p0);
@@ -4570,8 +4183,8 @@ static const char * const LOCATE_NEW_AMidStringExpr_parser___parser_prod___AMidS
 val_t NEW_AMidStringExpr_parser___parser_prod___AMidStringExpr___init_amidstringexpr(val_t p0);
 typedef val_t (*NEW_AMidStringExpr_parser___parser_prod___AMidStringExpr___init_amidstringexpr_t)(val_t p0);
 static const char * const LOCATE_NEW_AMidStringExpr_parser___parser_nodes___ANode___init = "new AMidStringExpr parser_nodes::ANode::init";
-val_t NEW_AMidStringExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AMidStringExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AMidStringExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AMidStringExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AEndStringExpr = "init var of AEndStringExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AEndStringExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AEndStringExpr_t)(val_t p0);
@@ -4586,8 +4199,8 @@ static const char * const LOCATE_NEW_AEndStringExpr_parser___parser_prod___AEndS
 val_t NEW_AEndStringExpr_parser___parser_prod___AEndStringExpr___init_aendstringexpr(val_t p0);
 typedef val_t (*NEW_AEndStringExpr_parser___parser_prod___AEndStringExpr___init_aendstringexpr_t)(val_t p0);
 static const char * const LOCATE_NEW_AEndStringExpr_parser___parser_nodes___ANode___init = "new AEndStringExpr parser_nodes::ANode::init";
-val_t NEW_AEndStringExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AEndStringExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AEndStringExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AEndStringExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ASuperstringExpr = "init var of ASuperstringExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___ASuperstringExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ASuperstringExpr_t)(val_t p0);
@@ -4602,8 +4215,8 @@ static const char * const LOCATE_NEW_ASuperstringExpr_parser___parser_prod___ASu
 val_t NEW_ASuperstringExpr_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0);
 typedef val_t (*NEW_ASuperstringExpr_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr_t)(val_t p0);
 static const char * const LOCATE_NEW_ASuperstringExpr_parser___parser_nodes___ANode___init = "new ASuperstringExpr parser_nodes::ANode::init";
-val_t NEW_ASuperstringExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ASuperstringExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ASuperstringExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ASuperstringExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AParExpr = "init var of AParExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AParExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AParExpr_t)(val_t p0);
@@ -4615,21 +4228,11 @@ static const char * const LOCATE_NEW_AParExpr_parser___parser_prod___AParExpr___
 val_t NEW_AParExpr_parser___parser_prod___AParExpr___empty_init(void);
 typedef val_t (*NEW_AParExpr_parser___parser_prod___AParExpr___empty_init_t)(void);
 static const char * const LOCATE_NEW_AParExpr_parser___parser_prod___AParExpr___init_aparexpr = "new AParExpr parser_prod::AParExpr::init_aparexpr";
-val_t NEW_AParExpr_parser___parser_prod___AParExpr___init_aparexpr(val_t p0);
-typedef val_t (*NEW_AParExpr_parser___parser_prod___AParExpr___init_aparexpr_t)(val_t p0);
+val_t NEW_AParExpr_parser___parser_prod___AParExpr___init_aparexpr(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_AParExpr_parser___parser_prod___AParExpr___init_aparexpr_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_AParExpr_parser___parser_nodes___ANode___init = "new AParExpr parser_nodes::ANode::init";
-val_t NEW_AParExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AParExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AProxyExpr = "init var of AProxyExpr";
-void INIT_ATTRIBUTES__parser___parser_nodes___AProxyExpr(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AProxyExpr_t)(val_t p0);
-val_t NEW_parser___parser_nodes___AProxyExpr(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AProxyExpr = "check new AProxyExpr";
-void CHECKNEW_parser___parser_nodes___AProxyExpr(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___AProxyExpr_t)(val_t p0);
-static const char * const LOCATE_NEW_AProxyExpr_parser___parser_nodes___ANode___init = "new AProxyExpr parser_nodes::ANode::init";
-val_t NEW_AProxyExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AProxyExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AParExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AParExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAsCastExpr = "init var of AAsCastExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AAsCastExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AAsCastExpr_t)(val_t p0);
@@ -4641,11 +4244,11 @@ static const char * const LOCATE_NEW_AAsCastExpr_parser___parser_prod___AAsCastE
 val_t NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___empty_init(void);
 typedef val_t (*NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___empty_init_t)(void);
 static const char * const LOCATE_NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___init_aascastexpr = "new AAsCastExpr parser_prod::AAsCastExpr::init_aascastexpr";
-val_t NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2);
-typedef val_t (*NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___init_aascastexpr_t)(val_t p0, val_t p1, val_t p2);
+val_t NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+typedef val_t (*NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___init_aascastexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_NEW_AAsCastExpr_parser___parser_nodes___ANode___init = "new AAsCastExpr parser_nodes::ANode::init";
-val_t NEW_AAsCastExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AAsCastExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AAsCastExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AAsCastExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAsNotnullExpr = "init var of AAsNotnullExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AAsNotnullExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AAsNotnullExpr_t)(val_t p0);
@@ -4657,11 +4260,11 @@ static const char * const LOCATE_NEW_AAsNotnullExpr_parser___parser_prod___AAsNo
 val_t NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___empty_init(void);
 typedef val_t (*NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___empty_init_t)(void);
 static const char * const LOCATE_NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr = "new AAsNotnullExpr parser_prod::AAsNotnullExpr::init_aasnotnullexpr";
-val_t NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3);
-typedef val_t (*NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
+val_t NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
+typedef val_t (*NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
 static const char * const LOCATE_NEW_AAsNotnullExpr_parser___parser_nodes___ANode___init = "new AAsNotnullExpr parser_nodes::ANode::init";
-val_t NEW_AAsNotnullExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AAsNotnullExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AAsNotnullExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AAsNotnullExpr_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AIssetAttrExpr = "init var of AIssetAttrExpr";
 void INIT_ATTRIBUTES__parser___parser_nodes___AIssetAttrExpr(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AIssetAttrExpr_t)(val_t p0);
@@ -4676,18 +4279,72 @@ static const char * const LOCATE_NEW_AIssetAttrExpr_parser___parser_prod___AIsse
 val_t NEW_AIssetAttrExpr_parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_AIssetAttrExpr_parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_AIssetAttrExpr_parser___parser_nodes___ANode___init = "new AIssetAttrExpr parser_nodes::ANode::init";
-val_t NEW_AIssetAttrExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AIssetAttrExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAssignOp = "init var of AAssignOp";
-void INIT_ATTRIBUTES__parser___parser_nodes___AAssignOp(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AAssignOp_t)(val_t p0);
-val_t NEW_parser___parser_nodes___AAssignOp(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AAssignOp = "check new AAssignOp";
-void CHECKNEW_parser___parser_nodes___AAssignOp(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___AAssignOp_t)(val_t p0);
-static const char * const LOCATE_NEW_AAssignOp_parser___parser_nodes___ANode___init = "new AAssignOp parser_nodes::ANode::init";
-val_t NEW_AAssignOp_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AAssignOp_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AIssetAttrExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AIssetAttrExpr_parser___parser_nodes___ANode___init_t)(void);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ADebugTypeExpr = "init var of ADebugTypeExpr";
+void INIT_ATTRIBUTES__parser___parser_nodes___ADebugTypeExpr(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ADebugTypeExpr_t)(val_t p0);
+val_t NEW_parser___parser_nodes___ADebugTypeExpr(void);
+static const char * const LOCATE_CHECKNEW_parser___parser_nodes___ADebugTypeExpr = "check new ADebugTypeExpr";
+void CHECKNEW_parser___parser_nodes___ADebugTypeExpr(val_t p0);
+typedef void (*CHECKNEW_parser___parser_nodes___ADebugTypeExpr_t)(val_t p0);
+static const char * const LOCATE_NEW_ADebugTypeExpr_parser___parser_prod___ADebugTypeExpr___empty_init = "new ADebugTypeExpr parser_prod::ADebugTypeExpr::empty_init";
+val_t NEW_ADebugTypeExpr_parser___parser_prod___ADebugTypeExpr___empty_init(void);
+typedef val_t (*NEW_ADebugTypeExpr_parser___parser_prod___ADebugTypeExpr___empty_init_t)(void);
+static const char * const LOCATE_NEW_ADebugTypeExpr_parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr = "new ADebugTypeExpr parser_prod::ADebugTypeExpr::init_adebugtypeexpr";
+val_t NEW_ADebugTypeExpr_parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr(val_t p0, val_t p1, val_t p2, val_t p3);
+typedef val_t (*NEW_ADebugTypeExpr_parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3);
+static const char * const LOCATE_NEW_ADebugTypeExpr_parser___parser_nodes___ANode___init = "new ADebugTypeExpr parser_nodes::ANode::init";
+val_t NEW_ADebugTypeExpr_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ADebugTypeExpr_parser___parser_nodes___ANode___init_t)(void);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AListExprs = "init var of AListExprs";
+void INIT_ATTRIBUTES__parser___parser_nodes___AListExprs(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AListExprs_t)(val_t p0);
+val_t NEW_parser___parser_nodes___AListExprs(void);
+static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AListExprs = "check new AListExprs";
+void CHECKNEW_parser___parser_nodes___AListExprs(val_t p0);
+typedef void (*CHECKNEW_parser___parser_nodes___AListExprs_t)(val_t p0);
+static const char * const LOCATE_NEW_AListExprs_parser___parser_prod___AListExprs___empty_init = "new AListExprs parser_prod::AListExprs::empty_init";
+val_t NEW_AListExprs_parser___parser_prod___AListExprs___empty_init(void);
+typedef val_t (*NEW_AListExprs_parser___parser_prod___AListExprs___empty_init_t)(void);
+static const char * const LOCATE_NEW_AListExprs_parser___parser_prod___AListExprs___init_alistexprs = "new AListExprs parser_prod::AListExprs::init_alistexprs";
+val_t NEW_AListExprs_parser___parser_prod___AListExprs___init_alistexprs(val_t p0);
+typedef val_t (*NEW_AListExprs_parser___parser_prod___AListExprs___init_alistexprs_t)(val_t p0);
+static const char * const LOCATE_NEW_AListExprs_parser___parser_nodes___ANode___init = "new AListExprs parser_nodes::ANode::init";
+val_t NEW_AListExprs_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AListExprs_parser___parser_nodes___ANode___init_t)(void);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AParExprs = "init var of AParExprs";
+void INIT_ATTRIBUTES__parser___parser_nodes___AParExprs(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AParExprs_t)(val_t p0);
+val_t NEW_parser___parser_nodes___AParExprs(void);
+static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AParExprs = "check new AParExprs";
+void CHECKNEW_parser___parser_nodes___AParExprs(val_t p0);
+typedef void (*CHECKNEW_parser___parser_nodes___AParExprs_t)(val_t p0);
+static const char * const LOCATE_NEW_AParExprs_parser___parser_prod___AParExprs___empty_init = "new AParExprs parser_prod::AParExprs::empty_init";
+val_t NEW_AParExprs_parser___parser_prod___AParExprs___empty_init(void);
+typedef val_t (*NEW_AParExprs_parser___parser_prod___AParExprs___empty_init_t)(void);
+static const char * const LOCATE_NEW_AParExprs_parser___parser_prod___AParExprs___init_aparexprs = "new AParExprs parser_prod::AParExprs::init_aparexprs";
+val_t NEW_AParExprs_parser___parser_prod___AParExprs___init_aparexprs(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_AParExprs_parser___parser_prod___AParExprs___init_aparexprs_t)(val_t p0, val_t p1, val_t p2);
+static const char * const LOCATE_NEW_AParExprs_parser___parser_nodes___ANode___init = "new AParExprs parser_nodes::ANode::init";
+val_t NEW_AParExprs_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AParExprs_parser___parser_nodes___ANode___init_t)(void);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ABraExprs = "init var of ABraExprs";
+void INIT_ATTRIBUTES__parser___parser_nodes___ABraExprs(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ABraExprs_t)(val_t p0);
+val_t NEW_parser___parser_nodes___ABraExprs(void);
+static const char * const LOCATE_CHECKNEW_parser___parser_nodes___ABraExprs = "check new ABraExprs";
+void CHECKNEW_parser___parser_nodes___ABraExprs(val_t p0);
+typedef void (*CHECKNEW_parser___parser_nodes___ABraExprs_t)(val_t p0);
+static const char * const LOCATE_NEW_ABraExprs_parser___parser_prod___ABraExprs___empty_init = "new ABraExprs parser_prod::ABraExprs::empty_init";
+val_t NEW_ABraExprs_parser___parser_prod___ABraExprs___empty_init(void);
+typedef val_t (*NEW_ABraExprs_parser___parser_prod___ABraExprs___empty_init_t)(void);
+static const char * const LOCATE_NEW_ABraExprs_parser___parser_prod___ABraExprs___init_abraexprs = "new ABraExprs parser_prod::ABraExprs::init_abraexprs";
+val_t NEW_ABraExprs_parser___parser_prod___ABraExprs___init_abraexprs(val_t p0, val_t p1, val_t p2);
+typedef val_t (*NEW_ABraExprs_parser___parser_prod___ABraExprs___init_abraexprs_t)(val_t p0, val_t p1, val_t p2);
+static const char * const LOCATE_NEW_ABraExprs_parser___parser_nodes___ANode___init = "new ABraExprs parser_nodes::ANode::init";
+val_t NEW_ABraExprs_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ABraExprs_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___APlusAssignOp = "init var of APlusAssignOp";
 void INIT_ATTRIBUTES__parser___parser_nodes___APlusAssignOp(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___APlusAssignOp_t)(val_t p0);
@@ -4702,8 +4359,8 @@ static const char * const LOCATE_NEW_APlusAssignOp_parser___parser_prod___APlusA
 val_t NEW_APlusAssignOp_parser___parser_prod___APlusAssignOp___init_aplusassignop(val_t p0);
 typedef val_t (*NEW_APlusAssignOp_parser___parser_prod___APlusAssignOp___init_aplusassignop_t)(val_t p0);
 static const char * const LOCATE_NEW_APlusAssignOp_parser___parser_nodes___ANode___init = "new APlusAssignOp parser_nodes::ANode::init";
-val_t NEW_APlusAssignOp_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_APlusAssignOp_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_APlusAssignOp_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_APlusAssignOp_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AMinusAssignOp = "init var of AMinusAssignOp";
 void INIT_ATTRIBUTES__parser___parser_nodes___AMinusAssignOp(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AMinusAssignOp_t)(val_t p0);
@@ -4718,8 +4375,8 @@ static const char * const LOCATE_NEW_AMinusAssignOp_parser___parser_prod___AMinu
 val_t NEW_AMinusAssignOp_parser___parser_prod___AMinusAssignOp___init_aminusassignop(val_t p0);
 typedef val_t (*NEW_AMinusAssignOp_parser___parser_prod___AMinusAssignOp___init_aminusassignop_t)(val_t p0);
 static const char * const LOCATE_NEW_AMinusAssignOp_parser___parser_nodes___ANode___init = "new AMinusAssignOp parser_nodes::ANode::init";
-val_t NEW_AMinusAssignOp_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AMinusAssignOp_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AMinusAssignOp_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AMinusAssignOp_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AClosureDef = "init var of AClosureDef";
 void INIT_ATTRIBUTES__parser___parser_nodes___AClosureDef(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AClosureDef_t)(val_t p0);
@@ -4734,18 +4391,8 @@ static const char * const LOCATE_NEW_AClosureDef_parser___parser_prod___AClosure
 val_t NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
 typedef val_t (*NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
 static const char * const LOCATE_NEW_AClosureDef_parser___parser_nodes___ANode___init = "new AClosureDef parser_nodes::ANode::init";
-val_t NEW_AClosureDef_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AClosureDef_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AClosureId = "init var of AClosureId";
-void INIT_ATTRIBUTES__parser___parser_nodes___AClosureId(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AClosureId_t)(val_t p0);
-val_t NEW_parser___parser_nodes___AClosureId(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_nodes___AClosureId = "check new AClosureId";
-void CHECKNEW_parser___parser_nodes___AClosureId(val_t p0);
-typedef void (*CHECKNEW_parser___parser_nodes___AClosureId_t)(val_t p0);
-static const char * const LOCATE_NEW_AClosureId_parser___parser_nodes___ANode___init = "new AClosureId parser_nodes::ANode::init";
-val_t NEW_AClosureId_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AClosureId_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AClosureDef_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AClosureDef_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ASimpleClosureId = "init var of ASimpleClosureId";
 void INIT_ATTRIBUTES__parser___parser_nodes___ASimpleClosureId(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ASimpleClosureId_t)(val_t p0);
@@ -4760,8 +4407,8 @@ static const char * const LOCATE_NEW_ASimpleClosureId_parser___parser_prod___ASi
 val_t NEW_ASimpleClosureId_parser___parser_prod___ASimpleClosureId___init_asimpleclosureid(val_t p0);
 typedef val_t (*NEW_ASimpleClosureId_parser___parser_prod___ASimpleClosureId___init_asimpleclosureid_t)(val_t p0);
 static const char * const LOCATE_NEW_ASimpleClosureId_parser___parser_nodes___ANode___init = "new ASimpleClosureId parser_nodes::ANode::init";
-val_t NEW_ASimpleClosureId_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ASimpleClosureId_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ASimpleClosureId_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ASimpleClosureId_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ABreakClosureId = "init var of ABreakClosureId";
 void INIT_ATTRIBUTES__parser___parser_nodes___ABreakClosureId(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ABreakClosureId_t)(val_t p0);
@@ -4776,8 +4423,8 @@ static const char * const LOCATE_NEW_ABreakClosureId_parser___parser_prod___ABre
 val_t NEW_ABreakClosureId_parser___parser_prod___ABreakClosureId___init_abreakclosureid(val_t p0);
 typedef val_t (*NEW_ABreakClosureId_parser___parser_prod___ABreakClosureId___init_abreakclosureid_t)(val_t p0);
 static const char * const LOCATE_NEW_ABreakClosureId_parser___parser_nodes___ANode___init = "new ABreakClosureId parser_nodes::ANode::init";
-val_t NEW_ABreakClosureId_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ABreakClosureId_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ABreakClosureId_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ABreakClosureId_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AModuleName = "init var of AModuleName";
 void INIT_ATTRIBUTES__parser___parser_nodes___AModuleName(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AModuleName_t)(val_t p0);
@@ -4792,8 +4439,8 @@ static const char * const LOCATE_NEW_AModuleName_parser___parser_prod___AModuleN
 val_t NEW_AModuleName_parser___parser_prod___AModuleName___init_amodulename(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_AModuleName_parser___parser_prod___AModuleName___init_amodulename_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_NEW_AModuleName_parser___parser_nodes___ANode___init = "new AModuleName parser_nodes::ANode::init";
-val_t NEW_AModuleName_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AModuleName_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AModuleName_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AModuleName_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AQualified = "init var of AQualified";
 void INIT_ATTRIBUTES__parser___parser_nodes___AQualified(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___AQualified_t)(val_t p0);
@@ -4808,8 +4455,8 @@ static const char * const LOCATE_NEW_AQualified_parser___parser_prod___AQualifie
 val_t NEW_AQualified_parser___parser_prod___AQualified___init_aqualified(val_t p0, val_t p1);
 typedef val_t (*NEW_AQualified_parser___parser_prod___AQualified___init_aqualified_t)(val_t p0, val_t p1);
 static const char * const LOCATE_NEW_AQualified_parser___parser_nodes___ANode___init = "new AQualified parser_nodes::ANode::init";
-val_t NEW_AQualified_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AQualified_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_AQualified_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_AQualified_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ADoc = "init var of ADoc";
 void INIT_ATTRIBUTES__parser___parser_nodes___ADoc(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___ADoc_t)(val_t p0);
@@ -4824,8 +4471,8 @@ static const char * const LOCATE_NEW_ADoc_parser___parser_prod___ADoc___init_ado
 val_t NEW_ADoc_parser___parser_prod___ADoc___init_adoc(val_t p0);
 typedef val_t (*NEW_ADoc_parser___parser_prod___ADoc___init_adoc_t)(val_t p0);
 static const char * const LOCATE_NEW_ADoc_parser___parser_nodes___ANode___init = "new ADoc parser_nodes::ANode::init";
-val_t NEW_ADoc_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ADoc_parser___parser_nodes___ANode___init_t)(val_t p0);
+val_t NEW_ADoc_parser___parser_nodes___ANode___init(void);
+typedef val_t (*NEW_ADoc_parser___parser_nodes___ANode___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___Start = "init var of Start";
 void INIT_ATTRIBUTES__parser___parser_nodes___Start(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___parser_nodes___Start_t)(val_t p0);
@@ -4833,12 +4480,9 @@ val_t NEW_parser___parser_nodes___Start(void);
 static const char * const LOCATE_CHECKNEW_parser___parser_nodes___Start = "check new Start";
 void CHECKNEW_parser___parser_nodes___Start(val_t p0);
 typedef void (*CHECKNEW_parser___parser_nodes___Start_t)(val_t p0);
-static const char * const LOCATE_NEW_Start_parser___parser_nodes___ANode___init = "new Start parser_nodes::ANode::init";
-val_t NEW_Start_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_Start_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_NEW_Start_parser___parser_prod___Start___init = "new Start parser_prod::Start::init";
-val_t NEW_Start_parser___parser_prod___Start___init(val_t p0, val_t p1);
-typedef val_t (*NEW_Start_parser___parser_prod___Start___init_t)(val_t p0, val_t p1);
+static const char * const LOCATE_NEW_Start_parser___parser_nodes___Start___init = "new Start parser_nodes::Start::init";
+val_t NEW_Start_parser___parser_nodes___Start___init(val_t p0, val_t p1);
+typedef val_t (*NEW_Start_parser___parser_nodes___Start___init_t)(val_t p0, val_t p1);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___lexer___Lexer = "init var of Lexer";
 void INIT_ATTRIBUTES__parser___lexer___Lexer(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___lexer___Lexer_t)(val_t p0);
@@ -4849,16 +4493,6 @@ typedef void (*CHECKNEW_parser___lexer___Lexer_t)(val_t p0);
 static const char * const LOCATE_NEW_Lexer_parser___lexer___Lexer___init = "new Lexer lexer::Lexer::init";
 val_t NEW_Lexer_parser___lexer___Lexer___init(val_t p0);
 typedef val_t (*NEW_Lexer_parser___lexer___Lexer___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___parser_prod___Visitor = "init var of Visitor";
-void INIT_ATTRIBUTES__parser___parser_prod___Visitor(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___parser_prod___Visitor_t)(val_t p0);
-val_t NEW_parser___parser_prod___Visitor(void);
-static const char * const LOCATE_CHECKNEW_parser___parser_prod___Visitor = "check new Visitor";
-void CHECKNEW_parser___parser_prod___Visitor(val_t p0);
-typedef void (*CHECKNEW_parser___parser_prod___Visitor_t)(val_t p0);
-static const char * const LOCATE_NEW_Visitor_parser___parser_prod___Visitor___init = "new Visitor parser_prod::Visitor::init";
-val_t NEW_Visitor_parser___parser_prod___Visitor___init(void);
-typedef val_t (*NEW_Visitor_parser___parser_prod___Visitor___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___State = "init var of State";
 void INIT_ATTRIBUTES__parser___State(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___State_t)(val_t p0);
@@ -7069,6 +6703,16 @@ typedef void (*CHECKNEW_parser___ReduceAction218_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction218_parser___ReduceAction___init = "new ReduceAction218 parser::ReduceAction::init";
 val_t NEW_ReduceAction218_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction218_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction219 = "init var of ReduceAction219";
+void INIT_ATTRIBUTES__parser___ReduceAction219(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction219_t)(val_t p0);
+val_t NEW_parser___ReduceAction219(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction219 = "check new ReduceAction219";
+void CHECKNEW_parser___ReduceAction219(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction219_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction219_parser___ReduceAction___init = "new ReduceAction219 parser::ReduceAction::init";
+val_t NEW_ReduceAction219_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction219_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction220 = "init var of ReduceAction220";
 void INIT_ATTRIBUTES__parser___ReduceAction220(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction220_t)(val_t p0);
@@ -7109,16 +6753,6 @@ typedef void (*CHECKNEW_parser___ReduceAction223_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction223_parser___ReduceAction___init = "new ReduceAction223 parser::ReduceAction::init";
 val_t NEW_ReduceAction223_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction223_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction224 = "init var of ReduceAction224";
-void INIT_ATTRIBUTES__parser___ReduceAction224(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction224_t)(val_t p0);
-val_t NEW_parser___ReduceAction224(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction224 = "check new ReduceAction224";
-void CHECKNEW_parser___ReduceAction224(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction224_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction224_parser___ReduceAction___init = "new ReduceAction224 parser::ReduceAction::init";
-val_t NEW_ReduceAction224_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction224_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction225 = "init var of ReduceAction225";
 void INIT_ATTRIBUTES__parser___ReduceAction225(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction225_t)(val_t p0);
@@ -7209,6 +6843,16 @@ typedef void (*CHECKNEW_parser___ReduceAction233_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction233_parser___ReduceAction___init = "new ReduceAction233 parser::ReduceAction::init";
 val_t NEW_ReduceAction233_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction233_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction234 = "init var of ReduceAction234";
+void INIT_ATTRIBUTES__parser___ReduceAction234(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction234_t)(val_t p0);
+val_t NEW_parser___ReduceAction234(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction234 = "check new ReduceAction234";
+void CHECKNEW_parser___ReduceAction234(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction234_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction234_parser___ReduceAction___init = "new ReduceAction234 parser::ReduceAction::init";
+val_t NEW_ReduceAction234_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction234_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction235 = "init var of ReduceAction235";
 void INIT_ATTRIBUTES__parser___ReduceAction235(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction235_t)(val_t p0);
@@ -7249,16 +6893,6 @@ typedef void (*CHECKNEW_parser___ReduceAction238_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction238_parser___ReduceAction___init = "new ReduceAction238 parser::ReduceAction::init";
 val_t NEW_ReduceAction238_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction238_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction239 = "init var of ReduceAction239";
-void INIT_ATTRIBUTES__parser___ReduceAction239(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction239_t)(val_t p0);
-val_t NEW_parser___ReduceAction239(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction239 = "check new ReduceAction239";
-void CHECKNEW_parser___ReduceAction239(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction239_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction239_parser___ReduceAction___init = "new ReduceAction239 parser::ReduceAction::init";
-val_t NEW_ReduceAction239_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction239_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction240 = "init var of ReduceAction240";
 void INIT_ATTRIBUTES__parser___ReduceAction240(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction240_t)(val_t p0);
@@ -7299,6 +6933,26 @@ typedef void (*CHECKNEW_parser___ReduceAction243_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction243_parser___ReduceAction___init = "new ReduceAction243 parser::ReduceAction::init";
 val_t NEW_ReduceAction243_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction243_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction244 = "init var of ReduceAction244";
+void INIT_ATTRIBUTES__parser___ReduceAction244(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction244_t)(val_t p0);
+val_t NEW_parser___ReduceAction244(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction244 = "check new ReduceAction244";
+void CHECKNEW_parser___ReduceAction244(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction244_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction244_parser___ReduceAction___init = "new ReduceAction244 parser::ReduceAction::init";
+val_t NEW_ReduceAction244_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction244_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction245 = "init var of ReduceAction245";
+void INIT_ATTRIBUTES__parser___ReduceAction245(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction245_t)(val_t p0);
+val_t NEW_parser___ReduceAction245(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction245 = "check new ReduceAction245";
+void CHECKNEW_parser___ReduceAction245(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction245_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction245_parser___ReduceAction___init = "new ReduceAction245 parser::ReduceAction::init";
+val_t NEW_ReduceAction245_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction245_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction246 = "init var of ReduceAction246";
 void INIT_ATTRIBUTES__parser___ReduceAction246(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction246_t)(val_t p0);
@@ -7339,36 +6993,6 @@ typedef void (*CHECKNEW_parser___ReduceAction249_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction249_parser___ReduceAction___init = "new ReduceAction249 parser::ReduceAction::init";
 val_t NEW_ReduceAction249_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction249_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction250 = "init var of ReduceAction250";
-void INIT_ATTRIBUTES__parser___ReduceAction250(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction250_t)(val_t p0);
-val_t NEW_parser___ReduceAction250(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction250 = "check new ReduceAction250";
-void CHECKNEW_parser___ReduceAction250(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction250_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction250_parser___ReduceAction___init = "new ReduceAction250 parser::ReduceAction::init";
-val_t NEW_ReduceAction250_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction250_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction251 = "init var of ReduceAction251";
-void INIT_ATTRIBUTES__parser___ReduceAction251(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction251_t)(val_t p0);
-val_t NEW_parser___ReduceAction251(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction251 = "check new ReduceAction251";
-void CHECKNEW_parser___ReduceAction251(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction251_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction251_parser___ReduceAction___init = "new ReduceAction251 parser::ReduceAction::init";
-val_t NEW_ReduceAction251_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction251_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction252 = "init var of ReduceAction252";
-void INIT_ATTRIBUTES__parser___ReduceAction252(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction252_t)(val_t p0);
-val_t NEW_parser___ReduceAction252(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction252 = "check new ReduceAction252";
-void CHECKNEW_parser___ReduceAction252(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction252_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction252_parser___ReduceAction___init = "new ReduceAction252 parser::ReduceAction::init";
-val_t NEW_ReduceAction252_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction252_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction253 = "init var of ReduceAction253";
 void INIT_ATTRIBUTES__parser___ReduceAction253(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction253_t)(val_t p0);
@@ -7409,6 +7033,66 @@ typedef void (*CHECKNEW_parser___ReduceAction256_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction256_parser___ReduceAction___init = "new ReduceAction256 parser::ReduceAction::init";
 val_t NEW_ReduceAction256_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction256_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction257 = "init var of ReduceAction257";
+void INIT_ATTRIBUTES__parser___ReduceAction257(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction257_t)(val_t p0);
+val_t NEW_parser___ReduceAction257(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction257 = "check new ReduceAction257";
+void CHECKNEW_parser___ReduceAction257(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction257_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction257_parser___ReduceAction___init = "new ReduceAction257 parser::ReduceAction::init";
+val_t NEW_ReduceAction257_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction257_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction258 = "init var of ReduceAction258";
+void INIT_ATTRIBUTES__parser___ReduceAction258(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction258_t)(val_t p0);
+val_t NEW_parser___ReduceAction258(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction258 = "check new ReduceAction258";
+void CHECKNEW_parser___ReduceAction258(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction258_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction258_parser___ReduceAction___init = "new ReduceAction258 parser::ReduceAction::init";
+val_t NEW_ReduceAction258_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction258_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction259 = "init var of ReduceAction259";
+void INIT_ATTRIBUTES__parser___ReduceAction259(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction259_t)(val_t p0);
+val_t NEW_parser___ReduceAction259(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction259 = "check new ReduceAction259";
+void CHECKNEW_parser___ReduceAction259(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction259_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction259_parser___ReduceAction___init = "new ReduceAction259 parser::ReduceAction::init";
+val_t NEW_ReduceAction259_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction259_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction260 = "init var of ReduceAction260";
+void INIT_ATTRIBUTES__parser___ReduceAction260(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction260_t)(val_t p0);
+val_t NEW_parser___ReduceAction260(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction260 = "check new ReduceAction260";
+void CHECKNEW_parser___ReduceAction260(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction260_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction260_parser___ReduceAction___init = "new ReduceAction260 parser::ReduceAction::init";
+val_t NEW_ReduceAction260_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction260_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction261 = "init var of ReduceAction261";
+void INIT_ATTRIBUTES__parser___ReduceAction261(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction261_t)(val_t p0);
+val_t NEW_parser___ReduceAction261(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction261 = "check new ReduceAction261";
+void CHECKNEW_parser___ReduceAction261(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction261_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction261_parser___ReduceAction___init = "new ReduceAction261 parser::ReduceAction::init";
+val_t NEW_ReduceAction261_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction261_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction262 = "init var of ReduceAction262";
+void INIT_ATTRIBUTES__parser___ReduceAction262(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction262_t)(val_t p0);
+val_t NEW_parser___ReduceAction262(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction262 = "check new ReduceAction262";
+void CHECKNEW_parser___ReduceAction262(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction262_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction262_parser___ReduceAction___init = "new ReduceAction262 parser::ReduceAction::init";
+val_t NEW_ReduceAction262_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction262_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction263 = "init var of ReduceAction263";
 void INIT_ATTRIBUTES__parser___ReduceAction263(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction263_t)(val_t p0);
@@ -7419,66 +7103,6 @@ typedef void (*CHECKNEW_parser___ReduceAction263_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction263_parser___ReduceAction___init = "new ReduceAction263 parser::ReduceAction::init";
 val_t NEW_ReduceAction263_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction263_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction264 = "init var of ReduceAction264";
-void INIT_ATTRIBUTES__parser___ReduceAction264(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction264_t)(val_t p0);
-val_t NEW_parser___ReduceAction264(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction264 = "check new ReduceAction264";
-void CHECKNEW_parser___ReduceAction264(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction264_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction264_parser___ReduceAction___init = "new ReduceAction264 parser::ReduceAction::init";
-val_t NEW_ReduceAction264_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction264_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction265 = "init var of ReduceAction265";
-void INIT_ATTRIBUTES__parser___ReduceAction265(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction265_t)(val_t p0);
-val_t NEW_parser___ReduceAction265(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction265 = "check new ReduceAction265";
-void CHECKNEW_parser___ReduceAction265(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction265_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction265_parser___ReduceAction___init = "new ReduceAction265 parser::ReduceAction::init";
-val_t NEW_ReduceAction265_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction265_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction266 = "init var of ReduceAction266";
-void INIT_ATTRIBUTES__parser___ReduceAction266(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction266_t)(val_t p0);
-val_t NEW_parser___ReduceAction266(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction266 = "check new ReduceAction266";
-void CHECKNEW_parser___ReduceAction266(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction266_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction266_parser___ReduceAction___init = "new ReduceAction266 parser::ReduceAction::init";
-val_t NEW_ReduceAction266_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction266_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction267 = "init var of ReduceAction267";
-void INIT_ATTRIBUTES__parser___ReduceAction267(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction267_t)(val_t p0);
-val_t NEW_parser___ReduceAction267(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction267 = "check new ReduceAction267";
-void CHECKNEW_parser___ReduceAction267(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction267_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction267_parser___ReduceAction___init = "new ReduceAction267 parser::ReduceAction::init";
-val_t NEW_ReduceAction267_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction267_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction268 = "init var of ReduceAction268";
-void INIT_ATTRIBUTES__parser___ReduceAction268(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction268_t)(val_t p0);
-val_t NEW_parser___ReduceAction268(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction268 = "check new ReduceAction268";
-void CHECKNEW_parser___ReduceAction268(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction268_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction268_parser___ReduceAction___init = "new ReduceAction268 parser::ReduceAction::init";
-val_t NEW_ReduceAction268_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction268_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction269 = "init var of ReduceAction269";
-void INIT_ATTRIBUTES__parser___ReduceAction269(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction269_t)(val_t p0);
-val_t NEW_parser___ReduceAction269(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction269 = "check new ReduceAction269";
-void CHECKNEW_parser___ReduceAction269(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction269_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction269_parser___ReduceAction___init = "new ReduceAction269 parser::ReduceAction::init";
-val_t NEW_ReduceAction269_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction269_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction270 = "init var of ReduceAction270";
 void INIT_ATTRIBUTES__parser___ReduceAction270(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction270_t)(val_t p0);
@@ -7929,6 +7553,26 @@ typedef void (*CHECKNEW_parser___ReduceAction314_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction314_parser___ReduceAction___init = "new ReduceAction314 parser::ReduceAction::init";
 val_t NEW_ReduceAction314_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction314_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction315 = "init var of ReduceAction315";
+void INIT_ATTRIBUTES__parser___ReduceAction315(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction315_t)(val_t p0);
+val_t NEW_parser___ReduceAction315(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction315 = "check new ReduceAction315";
+void CHECKNEW_parser___ReduceAction315(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction315_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction315_parser___ReduceAction___init = "new ReduceAction315 parser::ReduceAction::init";
+val_t NEW_ReduceAction315_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction315_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction316 = "init var of ReduceAction316";
+void INIT_ATTRIBUTES__parser___ReduceAction316(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction316_t)(val_t p0);
+val_t NEW_parser___ReduceAction316(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction316 = "check new ReduceAction316";
+void CHECKNEW_parser___ReduceAction316(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction316_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction316_parser___ReduceAction___init = "new ReduceAction316 parser::ReduceAction::init";
+val_t NEW_ReduceAction316_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction316_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction317 = "init var of ReduceAction317";
 void INIT_ATTRIBUTES__parser___ReduceAction317(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction317_t)(val_t p0);
@@ -7989,26 +7633,6 @@ typedef void (*CHECKNEW_parser___ReduceAction322_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction322_parser___ReduceAction___init = "new ReduceAction322 parser::ReduceAction::init";
 val_t NEW_ReduceAction322_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction322_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction323 = "init var of ReduceAction323";
-void INIT_ATTRIBUTES__parser___ReduceAction323(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction323_t)(val_t p0);
-val_t NEW_parser___ReduceAction323(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction323 = "check new ReduceAction323";
-void CHECKNEW_parser___ReduceAction323(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction323_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction323_parser___ReduceAction___init = "new ReduceAction323 parser::ReduceAction::init";
-val_t NEW_ReduceAction323_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction323_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction324 = "init var of ReduceAction324";
-void INIT_ATTRIBUTES__parser___ReduceAction324(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction324_t)(val_t p0);
-val_t NEW_parser___ReduceAction324(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction324 = "check new ReduceAction324";
-void CHECKNEW_parser___ReduceAction324(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction324_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction324_parser___ReduceAction___init = "new ReduceAction324 parser::ReduceAction::init";
-val_t NEW_ReduceAction324_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction324_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction325 = "init var of ReduceAction325";
 void INIT_ATTRIBUTES__parser___ReduceAction325(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction325_t)(val_t p0);
@@ -8059,6 +7683,36 @@ typedef void (*CHECKNEW_parser___ReduceAction329_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction329_parser___ReduceAction___init = "new ReduceAction329 parser::ReduceAction::init";
 val_t NEW_ReduceAction329_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction329_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction330 = "init var of ReduceAction330";
+void INIT_ATTRIBUTES__parser___ReduceAction330(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction330_t)(val_t p0);
+val_t NEW_parser___ReduceAction330(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction330 = "check new ReduceAction330";
+void CHECKNEW_parser___ReduceAction330(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction330_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction330_parser___ReduceAction___init = "new ReduceAction330 parser::ReduceAction::init";
+val_t NEW_ReduceAction330_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction330_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction331 = "init var of ReduceAction331";
+void INIT_ATTRIBUTES__parser___ReduceAction331(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction331_t)(val_t p0);
+val_t NEW_parser___ReduceAction331(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction331 = "check new ReduceAction331";
+void CHECKNEW_parser___ReduceAction331(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction331_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction331_parser___ReduceAction___init = "new ReduceAction331 parser::ReduceAction::init";
+val_t NEW_ReduceAction331_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction331_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction332 = "init var of ReduceAction332";
+void INIT_ATTRIBUTES__parser___ReduceAction332(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction332_t)(val_t p0);
+val_t NEW_parser___ReduceAction332(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction332 = "check new ReduceAction332";
+void CHECKNEW_parser___ReduceAction332(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction332_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction332_parser___ReduceAction___init = "new ReduceAction332 parser::ReduceAction::init";
+val_t NEW_ReduceAction332_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction332_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction333 = "init var of ReduceAction333";
 void INIT_ATTRIBUTES__parser___ReduceAction333(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction333_t)(val_t p0);
@@ -8069,6 +7723,16 @@ typedef void (*CHECKNEW_parser___ReduceAction333_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction333_parser___ReduceAction___init = "new ReduceAction333 parser::ReduceAction::init";
 val_t NEW_ReduceAction333_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction333_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction334 = "init var of ReduceAction334";
+void INIT_ATTRIBUTES__parser___ReduceAction334(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction334_t)(val_t p0);
+val_t NEW_parser___ReduceAction334(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction334 = "check new ReduceAction334";
+void CHECKNEW_parser___ReduceAction334(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction334_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction334_parser___ReduceAction___init = "new ReduceAction334 parser::ReduceAction::init";
+val_t NEW_ReduceAction334_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction334_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction335 = "init var of ReduceAction335";
 void INIT_ATTRIBUTES__parser___ReduceAction335(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction335_t)(val_t p0);
@@ -8079,6 +7743,16 @@ typedef void (*CHECKNEW_parser___ReduceAction335_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction335_parser___ReduceAction___init = "new ReduceAction335 parser::ReduceAction::init";
 val_t NEW_ReduceAction335_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction335_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction336 = "init var of ReduceAction336";
+void INIT_ATTRIBUTES__parser___ReduceAction336(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction336_t)(val_t p0);
+val_t NEW_parser___ReduceAction336(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction336 = "check new ReduceAction336";
+void CHECKNEW_parser___ReduceAction336(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction336_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction336_parser___ReduceAction___init = "new ReduceAction336 parser::ReduceAction::init";
+val_t NEW_ReduceAction336_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction336_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction337 = "init var of ReduceAction337";
 void INIT_ATTRIBUTES__parser___ReduceAction337(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction337_t)(val_t p0);
@@ -8089,26 +7763,6 @@ typedef void (*CHECKNEW_parser___ReduceAction337_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction337_parser___ReduceAction___init = "new ReduceAction337 parser::ReduceAction::init";
 val_t NEW_ReduceAction337_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction337_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction338 = "init var of ReduceAction338";
-void INIT_ATTRIBUTES__parser___ReduceAction338(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction338_t)(val_t p0);
-val_t NEW_parser___ReduceAction338(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction338 = "check new ReduceAction338";
-void CHECKNEW_parser___ReduceAction338(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction338_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction338_parser___ReduceAction___init = "new ReduceAction338 parser::ReduceAction::init";
-val_t NEW_ReduceAction338_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction338_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction339 = "init var of ReduceAction339";
-void INIT_ATTRIBUTES__parser___ReduceAction339(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction339_t)(val_t p0);
-val_t NEW_parser___ReduceAction339(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction339 = "check new ReduceAction339";
-void CHECKNEW_parser___ReduceAction339(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction339_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction339_parser___ReduceAction___init = "new ReduceAction339 parser::ReduceAction::init";
-val_t NEW_ReduceAction339_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction339_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction341 = "init var of ReduceAction341";
 void INIT_ATTRIBUTES__parser___ReduceAction341(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction341_t)(val_t p0);
@@ -8129,16 +7783,6 @@ typedef void (*CHECKNEW_parser___ReduceAction343_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction343_parser___ReduceAction___init = "new ReduceAction343 parser::ReduceAction::init";
 val_t NEW_ReduceAction343_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction343_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction344 = "init var of ReduceAction344";
-void INIT_ATTRIBUTES__parser___ReduceAction344(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction344_t)(val_t p0);
-val_t NEW_parser___ReduceAction344(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction344 = "check new ReduceAction344";
-void CHECKNEW_parser___ReduceAction344(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction344_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction344_parser___ReduceAction___init = "new ReduceAction344 parser::ReduceAction::init";
-val_t NEW_ReduceAction344_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction344_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction345 = "init var of ReduceAction345";
 void INIT_ATTRIBUTES__parser___ReduceAction345(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction345_t)(val_t p0);
@@ -8169,16 +7813,6 @@ typedef void (*CHECKNEW_parser___ReduceAction347_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction347_parser___ReduceAction___init = "new ReduceAction347 parser::ReduceAction::init";
 val_t NEW_ReduceAction347_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction347_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction348 = "init var of ReduceAction348";
-void INIT_ATTRIBUTES__parser___ReduceAction348(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction348_t)(val_t p0);
-val_t NEW_parser___ReduceAction348(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction348 = "check new ReduceAction348";
-void CHECKNEW_parser___ReduceAction348(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction348_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction348_parser___ReduceAction___init = "new ReduceAction348 parser::ReduceAction::init";
-val_t NEW_ReduceAction348_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction348_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction349 = "init var of ReduceAction349";
 void INIT_ATTRIBUTES__parser___ReduceAction349(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction349_t)(val_t p0);
@@ -8189,16 +7823,6 @@ typedef void (*CHECKNEW_parser___ReduceAction349_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction349_parser___ReduceAction___init = "new ReduceAction349 parser::ReduceAction::init";
 val_t NEW_ReduceAction349_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction349_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction350 = "init var of ReduceAction350";
-void INIT_ATTRIBUTES__parser___ReduceAction350(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction350_t)(val_t p0);
-val_t NEW_parser___ReduceAction350(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction350 = "check new ReduceAction350";
-void CHECKNEW_parser___ReduceAction350(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction350_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction350_parser___ReduceAction___init = "new ReduceAction350 parser::ReduceAction::init";
-val_t NEW_ReduceAction350_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction350_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction351 = "init var of ReduceAction351";
 void INIT_ATTRIBUTES__parser___ReduceAction351(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction351_t)(val_t p0);
@@ -8229,6 +7853,16 @@ typedef void (*CHECKNEW_parser___ReduceAction353_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction353_parser___ReduceAction___init = "new ReduceAction353 parser::ReduceAction::init";
 val_t NEW_ReduceAction353_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction353_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction354 = "init var of ReduceAction354";
+void INIT_ATTRIBUTES__parser___ReduceAction354(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction354_t)(val_t p0);
+val_t NEW_parser___ReduceAction354(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction354 = "check new ReduceAction354";
+void CHECKNEW_parser___ReduceAction354(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction354_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction354_parser___ReduceAction___init = "new ReduceAction354 parser::ReduceAction::init";
+val_t NEW_ReduceAction354_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction354_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction355 = "init var of ReduceAction355";
 void INIT_ATTRIBUTES__parser___ReduceAction355(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction355_t)(val_t p0);
@@ -8249,6 +7883,16 @@ typedef void (*CHECKNEW_parser___ReduceAction356_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction356_parser___ReduceAction___init = "new ReduceAction356 parser::ReduceAction::init";
 val_t NEW_ReduceAction356_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction356_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction357 = "init var of ReduceAction357";
+void INIT_ATTRIBUTES__parser___ReduceAction357(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction357_t)(val_t p0);
+val_t NEW_parser___ReduceAction357(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction357 = "check new ReduceAction357";
+void CHECKNEW_parser___ReduceAction357(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction357_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction357_parser___ReduceAction___init = "new ReduceAction357 parser::ReduceAction::init";
+val_t NEW_ReduceAction357_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction357_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction358 = "init var of ReduceAction358";
 void INIT_ATTRIBUTES__parser___ReduceAction358(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction358_t)(val_t p0);
@@ -8279,16 +7923,16 @@ typedef void (*CHECKNEW_parser___ReduceAction360_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction360_parser___ReduceAction___init = "new ReduceAction360 parser::ReduceAction::init";
 val_t NEW_ReduceAction360_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction360_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction362 = "init var of ReduceAction362";
-void INIT_ATTRIBUTES__parser___ReduceAction362(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction362_t)(val_t p0);
-val_t NEW_parser___ReduceAction362(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction362 = "check new ReduceAction362";
-void CHECKNEW_parser___ReduceAction362(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction362_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction362_parser___ReduceAction___init = "new ReduceAction362 parser::ReduceAction::init";
-val_t NEW_ReduceAction362_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction362_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction361 = "init var of ReduceAction361";
+void INIT_ATTRIBUTES__parser___ReduceAction361(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction361_t)(val_t p0);
+val_t NEW_parser___ReduceAction361(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction361 = "check new ReduceAction361";
+void CHECKNEW_parser___ReduceAction361(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction361_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction361_parser___ReduceAction___init = "new ReduceAction361 parser::ReduceAction::init";
+val_t NEW_ReduceAction361_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction361_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction363 = "init var of ReduceAction363";
 void INIT_ATTRIBUTES__parser___ReduceAction363(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction363_t)(val_t p0);
@@ -8299,16 +7943,16 @@ typedef void (*CHECKNEW_parser___ReduceAction363_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction363_parser___ReduceAction___init = "new ReduceAction363 parser::ReduceAction::init";
 val_t NEW_ReduceAction363_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction363_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction365 = "init var of ReduceAction365";
-void INIT_ATTRIBUTES__parser___ReduceAction365(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction365_t)(val_t p0);
-val_t NEW_parser___ReduceAction365(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction365 = "check new ReduceAction365";
-void CHECKNEW_parser___ReduceAction365(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction365_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction365_parser___ReduceAction___init = "new ReduceAction365 parser::ReduceAction::init";
-val_t NEW_ReduceAction365_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction365_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction364 = "init var of ReduceAction364";
+void INIT_ATTRIBUTES__parser___ReduceAction364(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction364_t)(val_t p0);
+val_t NEW_parser___ReduceAction364(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction364 = "check new ReduceAction364";
+void CHECKNEW_parser___ReduceAction364(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction364_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction364_parser___ReduceAction___init = "new ReduceAction364 parser::ReduceAction::init";
+val_t NEW_ReduceAction364_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction364_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction366 = "init var of ReduceAction366";
 void INIT_ATTRIBUTES__parser___ReduceAction366(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction366_t)(val_t p0);
@@ -8339,16 +7983,56 @@ typedef void (*CHECKNEW_parser___ReduceAction368_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction368_parser___ReduceAction___init = "new ReduceAction368 parser::ReduceAction::init";
 val_t NEW_ReduceAction368_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction368_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction369 = "init var of ReduceAction369";
-void INIT_ATTRIBUTES__parser___ReduceAction369(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction369_t)(val_t p0);
-val_t NEW_parser___ReduceAction369(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction369 = "check new ReduceAction369";
-void CHECKNEW_parser___ReduceAction369(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction369_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction369_parser___ReduceAction___init = "new ReduceAction369 parser::ReduceAction::init";
-val_t NEW_ReduceAction369_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction369_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction370 = "init var of ReduceAction370";
+void INIT_ATTRIBUTES__parser___ReduceAction370(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction370_t)(val_t p0);
+val_t NEW_parser___ReduceAction370(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction370 = "check new ReduceAction370";
+void CHECKNEW_parser___ReduceAction370(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction370_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction370_parser___ReduceAction___init = "new ReduceAction370 parser::ReduceAction::init";
+val_t NEW_ReduceAction370_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction370_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction371 = "init var of ReduceAction371";
+void INIT_ATTRIBUTES__parser___ReduceAction371(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction371_t)(val_t p0);
+val_t NEW_parser___ReduceAction371(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction371 = "check new ReduceAction371";
+void CHECKNEW_parser___ReduceAction371(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction371_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction371_parser___ReduceAction___init = "new ReduceAction371 parser::ReduceAction::init";
+val_t NEW_ReduceAction371_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction371_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction373 = "init var of ReduceAction373";
+void INIT_ATTRIBUTES__parser___ReduceAction373(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction373_t)(val_t p0);
+val_t NEW_parser___ReduceAction373(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction373 = "check new ReduceAction373";
+void CHECKNEW_parser___ReduceAction373(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction373_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction373_parser___ReduceAction___init = "new ReduceAction373 parser::ReduceAction::init";
+val_t NEW_ReduceAction373_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction373_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction374 = "init var of ReduceAction374";
+void INIT_ATTRIBUTES__parser___ReduceAction374(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction374_t)(val_t p0);
+val_t NEW_parser___ReduceAction374(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction374 = "check new ReduceAction374";
+void CHECKNEW_parser___ReduceAction374(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction374_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction374_parser___ReduceAction___init = "new ReduceAction374 parser::ReduceAction::init";
+val_t NEW_ReduceAction374_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction374_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction375 = "init var of ReduceAction375";
+void INIT_ATTRIBUTES__parser___ReduceAction375(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction375_t)(val_t p0);
+val_t NEW_parser___ReduceAction375(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction375 = "check new ReduceAction375";
+void CHECKNEW_parser___ReduceAction375(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction375_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction375_parser___ReduceAction___init = "new ReduceAction375 parser::ReduceAction::init";
+val_t NEW_ReduceAction375_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction375_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction376 = "init var of ReduceAction376";
 void INIT_ATTRIBUTES__parser___ReduceAction376(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction376_t)(val_t p0);
@@ -8369,66 +8053,6 @@ typedef void (*CHECKNEW_parser___ReduceAction377_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction377_parser___ReduceAction___init = "new ReduceAction377 parser::ReduceAction::init";
 val_t NEW_ReduceAction377_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction377_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction378 = "init var of ReduceAction378";
-void INIT_ATTRIBUTES__parser___ReduceAction378(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction378_t)(val_t p0);
-val_t NEW_parser___ReduceAction378(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction378 = "check new ReduceAction378";
-void CHECKNEW_parser___ReduceAction378(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction378_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction378_parser___ReduceAction___init = "new ReduceAction378 parser::ReduceAction::init";
-val_t NEW_ReduceAction378_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction378_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction379 = "init var of ReduceAction379";
-void INIT_ATTRIBUTES__parser___ReduceAction379(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction379_t)(val_t p0);
-val_t NEW_parser___ReduceAction379(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction379 = "check new ReduceAction379";
-void CHECKNEW_parser___ReduceAction379(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction379_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction379_parser___ReduceAction___init = "new ReduceAction379 parser::ReduceAction::init";
-val_t NEW_ReduceAction379_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction379_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction380 = "init var of ReduceAction380";
-void INIT_ATTRIBUTES__parser___ReduceAction380(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction380_t)(val_t p0);
-val_t NEW_parser___ReduceAction380(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction380 = "check new ReduceAction380";
-void CHECKNEW_parser___ReduceAction380(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction380_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction380_parser___ReduceAction___init = "new ReduceAction380 parser::ReduceAction::init";
-val_t NEW_ReduceAction380_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction380_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction381 = "init var of ReduceAction381";
-void INIT_ATTRIBUTES__parser___ReduceAction381(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction381_t)(val_t p0);
-val_t NEW_parser___ReduceAction381(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction381 = "check new ReduceAction381";
-void CHECKNEW_parser___ReduceAction381(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction381_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction381_parser___ReduceAction___init = "new ReduceAction381 parser::ReduceAction::init";
-val_t NEW_ReduceAction381_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction381_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction382 = "init var of ReduceAction382";
-void INIT_ATTRIBUTES__parser___ReduceAction382(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction382_t)(val_t p0);
-val_t NEW_parser___ReduceAction382(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction382 = "check new ReduceAction382";
-void CHECKNEW_parser___ReduceAction382(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction382_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction382_parser___ReduceAction___init = "new ReduceAction382 parser::ReduceAction::init";
-val_t NEW_ReduceAction382_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction382_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction383 = "init var of ReduceAction383";
-void INIT_ATTRIBUTES__parser___ReduceAction383(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction383_t)(val_t p0);
-val_t NEW_parser___ReduceAction383(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction383 = "check new ReduceAction383";
-void CHECKNEW_parser___ReduceAction383(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction383_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction383_parser___ReduceAction___init = "new ReduceAction383 parser::ReduceAction::init";
-val_t NEW_ReduceAction383_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction383_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction384 = "init var of ReduceAction384";
 void INIT_ATTRIBUTES__parser___ReduceAction384(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction384_t)(val_t p0);
@@ -8479,6 +8103,26 @@ typedef void (*CHECKNEW_parser___ReduceAction388_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction388_parser___ReduceAction___init = "new ReduceAction388 parser::ReduceAction::init";
 val_t NEW_ReduceAction388_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction388_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction389 = "init var of ReduceAction389";
+void INIT_ATTRIBUTES__parser___ReduceAction389(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction389_t)(val_t p0);
+val_t NEW_parser___ReduceAction389(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction389 = "check new ReduceAction389";
+void CHECKNEW_parser___ReduceAction389(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction389_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction389_parser___ReduceAction___init = "new ReduceAction389 parser::ReduceAction::init";
+val_t NEW_ReduceAction389_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction389_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction390 = "init var of ReduceAction390";
+void INIT_ATTRIBUTES__parser___ReduceAction390(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction390_t)(val_t p0);
+val_t NEW_parser___ReduceAction390(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction390 = "check new ReduceAction390";
+void CHECKNEW_parser___ReduceAction390(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction390_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction390_parser___ReduceAction___init = "new ReduceAction390 parser::ReduceAction::init";
+val_t NEW_ReduceAction390_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction390_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction391 = "init var of ReduceAction391";
 void INIT_ATTRIBUTES__parser___ReduceAction391(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction391_t)(val_t p0);
@@ -8579,6 +8223,16 @@ typedef void (*CHECKNEW_parser___ReduceAction401_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction401_parser___ReduceAction___init = "new ReduceAction401 parser::ReduceAction::init";
 val_t NEW_ReduceAction401_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction401_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction402 = "init var of ReduceAction402";
+void INIT_ATTRIBUTES__parser___ReduceAction402(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction402_t)(val_t p0);
+val_t NEW_parser___ReduceAction402(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction402 = "check new ReduceAction402";
+void CHECKNEW_parser___ReduceAction402(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction402_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction402_parser___ReduceAction___init = "new ReduceAction402 parser::ReduceAction::init";
+val_t NEW_ReduceAction402_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction402_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction403 = "init var of ReduceAction403";
 void INIT_ATTRIBUTES__parser___ReduceAction403(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction403_t)(val_t p0);
@@ -8589,6 +8243,16 @@ typedef void (*CHECKNEW_parser___ReduceAction403_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction403_parser___ReduceAction___init = "new ReduceAction403 parser::ReduceAction::init";
 val_t NEW_ReduceAction403_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction403_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction404 = "init var of ReduceAction404";
+void INIT_ATTRIBUTES__parser___ReduceAction404(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction404_t)(val_t p0);
+val_t NEW_parser___ReduceAction404(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction404 = "check new ReduceAction404";
+void CHECKNEW_parser___ReduceAction404(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction404_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction404_parser___ReduceAction___init = "new ReduceAction404 parser::ReduceAction::init";
+val_t NEW_ReduceAction404_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction404_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction406 = "init var of ReduceAction406";
 void INIT_ATTRIBUTES__parser___ReduceAction406(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction406_t)(val_t p0);
@@ -8599,16 +8263,46 @@ typedef void (*CHECKNEW_parser___ReduceAction406_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction406_parser___ReduceAction___init = "new ReduceAction406 parser::ReduceAction::init";
 val_t NEW_ReduceAction406_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction406_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction411 = "init var of ReduceAction411";
-void INIT_ATTRIBUTES__parser___ReduceAction411(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction411_t)(val_t p0);
-val_t NEW_parser___ReduceAction411(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction411 = "check new ReduceAction411";
-void CHECKNEW_parser___ReduceAction411(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction411_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction411_parser___ReduceAction___init = "new ReduceAction411 parser::ReduceAction::init";
-val_t NEW_ReduceAction411_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction411_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction407 = "init var of ReduceAction407";
+void INIT_ATTRIBUTES__parser___ReduceAction407(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction407_t)(val_t p0);
+val_t NEW_parser___ReduceAction407(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction407 = "check new ReduceAction407";
+void CHECKNEW_parser___ReduceAction407(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction407_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction407_parser___ReduceAction___init = "new ReduceAction407 parser::ReduceAction::init";
+val_t NEW_ReduceAction407_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction407_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction408 = "init var of ReduceAction408";
+void INIT_ATTRIBUTES__parser___ReduceAction408(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction408_t)(val_t p0);
+val_t NEW_parser___ReduceAction408(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction408 = "check new ReduceAction408";
+void CHECKNEW_parser___ReduceAction408(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction408_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction408_parser___ReduceAction___init = "new ReduceAction408 parser::ReduceAction::init";
+val_t NEW_ReduceAction408_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction408_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction409 = "init var of ReduceAction409";
+void INIT_ATTRIBUTES__parser___ReduceAction409(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction409_t)(val_t p0);
+val_t NEW_parser___ReduceAction409(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction409 = "check new ReduceAction409";
+void CHECKNEW_parser___ReduceAction409(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction409_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction409_parser___ReduceAction___init = "new ReduceAction409 parser::ReduceAction::init";
+val_t NEW_ReduceAction409_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction409_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction410 = "init var of ReduceAction410";
+void INIT_ATTRIBUTES__parser___ReduceAction410(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction410_t)(val_t p0);
+val_t NEW_parser___ReduceAction410(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction410 = "check new ReduceAction410";
+void CHECKNEW_parser___ReduceAction410(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction410_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction410_parser___ReduceAction___init = "new ReduceAction410 parser::ReduceAction::init";
+val_t NEW_ReduceAction410_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction410_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction412 = "init var of ReduceAction412";
 void INIT_ATTRIBUTES__parser___ReduceAction412(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction412_t)(val_t p0);
@@ -8619,26 +8313,6 @@ typedef void (*CHECKNEW_parser___ReduceAction412_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction412_parser___ReduceAction___init = "new ReduceAction412 parser::ReduceAction::init";
 val_t NEW_ReduceAction412_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction412_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction413 = "init var of ReduceAction413";
-void INIT_ATTRIBUTES__parser___ReduceAction413(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction413_t)(val_t p0);
-val_t NEW_parser___ReduceAction413(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction413 = "check new ReduceAction413";
-void CHECKNEW_parser___ReduceAction413(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction413_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction413_parser___ReduceAction___init = "new ReduceAction413 parser::ReduceAction::init";
-val_t NEW_ReduceAction413_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction413_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction414 = "init var of ReduceAction414";
-void INIT_ATTRIBUTES__parser___ReduceAction414(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction414_t)(val_t p0);
-val_t NEW_parser___ReduceAction414(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction414 = "check new ReduceAction414";
-void CHECKNEW_parser___ReduceAction414(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction414_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction414_parser___ReduceAction___init = "new ReduceAction414 parser::ReduceAction::init";
-val_t NEW_ReduceAction414_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction414_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction415 = "init var of ReduceAction415";
 void INIT_ATTRIBUTES__parser___ReduceAction415(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction415_t)(val_t p0);
@@ -8729,6 +8403,16 @@ typedef void (*CHECKNEW_parser___ReduceAction423_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction423_parser___ReduceAction___init = "new ReduceAction423 parser::ReduceAction::init";
 val_t NEW_ReduceAction423_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction423_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction424 = "init var of ReduceAction424";
+void INIT_ATTRIBUTES__parser___ReduceAction424(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction424_t)(val_t p0);
+val_t NEW_parser___ReduceAction424(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction424 = "check new ReduceAction424";
+void CHECKNEW_parser___ReduceAction424(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction424_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction424_parser___ReduceAction___init = "new ReduceAction424 parser::ReduceAction::init";
+val_t NEW_ReduceAction424_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction424_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction425 = "init var of ReduceAction425";
 void INIT_ATTRIBUTES__parser___ReduceAction425(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction425_t)(val_t p0);
@@ -8749,6 +8433,16 @@ typedef void (*CHECKNEW_parser___ReduceAction426_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction426_parser___ReduceAction___init = "new ReduceAction426 parser::ReduceAction::init";
 val_t NEW_ReduceAction426_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction426_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction427 = "init var of ReduceAction427";
+void INIT_ATTRIBUTES__parser___ReduceAction427(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction427_t)(val_t p0);
+val_t NEW_parser___ReduceAction427(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction427 = "check new ReduceAction427";
+void CHECKNEW_parser___ReduceAction427(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction427_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction427_parser___ReduceAction___init = "new ReduceAction427 parser::ReduceAction::init";
+val_t NEW_ReduceAction427_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction427_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction428 = "init var of ReduceAction428";
 void INIT_ATTRIBUTES__parser___ReduceAction428(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction428_t)(val_t p0);
@@ -8779,96 +8473,106 @@ typedef void (*CHECKNEW_parser___ReduceAction430_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction430_parser___ReduceAction___init = "new ReduceAction430 parser::ReduceAction::init";
 val_t NEW_ReduceAction430_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction430_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction431 = "init var of ReduceAction431";
-void INIT_ATTRIBUTES__parser___ReduceAction431(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction431_t)(val_t p0);
-val_t NEW_parser___ReduceAction431(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction431 = "check new ReduceAction431";
-void CHECKNEW_parser___ReduceAction431(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction431_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction431_parser___ReduceAction___init = "new ReduceAction431 parser::ReduceAction::init";
-val_t NEW_ReduceAction431_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction431_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction688 = "init var of ReduceAction688";
-void INIT_ATTRIBUTES__parser___ReduceAction688(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction688_t)(val_t p0);
-val_t NEW_parser___ReduceAction688(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction688 = "check new ReduceAction688";
-void CHECKNEW_parser___ReduceAction688(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction688_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction688_parser___ReduceAction___init = "new ReduceAction688 parser::ReduceAction::init";
-val_t NEW_ReduceAction688_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction688_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction689 = "init var of ReduceAction689";
-void INIT_ATTRIBUTES__parser___ReduceAction689(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction689_t)(val_t p0);
-val_t NEW_parser___ReduceAction689(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction689 = "check new ReduceAction689";
-void CHECKNEW_parser___ReduceAction689(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction689_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction689_parser___ReduceAction___init = "new ReduceAction689 parser::ReduceAction::init";
-val_t NEW_ReduceAction689_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction689_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction690 = "init var of ReduceAction690";
-void INIT_ATTRIBUTES__parser___ReduceAction690(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction690_t)(val_t p0);
-val_t NEW_parser___ReduceAction690(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction690 = "check new ReduceAction690";
-void CHECKNEW_parser___ReduceAction690(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction690_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction690_parser___ReduceAction___init = "new ReduceAction690 parser::ReduceAction::init";
-val_t NEW_ReduceAction690_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction690_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction693 = "init var of ReduceAction693";
-void INIT_ATTRIBUTES__parser___ReduceAction693(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction693_t)(val_t p0);
-val_t NEW_parser___ReduceAction693(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction693 = "check new ReduceAction693";
-void CHECKNEW_parser___ReduceAction693(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction693_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction693_parser___ReduceAction___init = "new ReduceAction693 parser::ReduceAction::init";
-val_t NEW_ReduceAction693_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction693_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction706 = "init var of ReduceAction706";
-void INIT_ATTRIBUTES__parser___ReduceAction706(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction706_t)(val_t p0);
-val_t NEW_parser___ReduceAction706(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction706 = "check new ReduceAction706";
-void CHECKNEW_parser___ReduceAction706(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction706_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction706_parser___ReduceAction___init = "new ReduceAction706 parser::ReduceAction::init";
-val_t NEW_ReduceAction706_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction706_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction707 = "init var of ReduceAction707";
-void INIT_ATTRIBUTES__parser___ReduceAction707(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction707_t)(val_t p0);
-val_t NEW_parser___ReduceAction707(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction707 = "check new ReduceAction707";
-void CHECKNEW_parser___ReduceAction707(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction707_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction707_parser___ReduceAction___init = "new ReduceAction707 parser::ReduceAction::init";
-val_t NEW_ReduceAction707_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction707_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction714 = "init var of ReduceAction714";
-void INIT_ATTRIBUTES__parser___ReduceAction714(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction714_t)(val_t p0);
-val_t NEW_parser___ReduceAction714(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction714 = "check new ReduceAction714";
-void CHECKNEW_parser___ReduceAction714(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction714_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction714_parser___ReduceAction___init = "new ReduceAction714 parser::ReduceAction::init";
-val_t NEW_ReduceAction714_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction714_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction715 = "init var of ReduceAction715";
-void INIT_ATTRIBUTES__parser___ReduceAction715(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction715_t)(val_t p0);
-val_t NEW_parser___ReduceAction715(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction715 = "check new ReduceAction715";
-void CHECKNEW_parser___ReduceAction715(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction715_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction715_parser___ReduceAction___init = "new ReduceAction715 parser::ReduceAction::init";
-val_t NEW_ReduceAction715_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction715_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction432 = "init var of ReduceAction432";
+void INIT_ATTRIBUTES__parser___ReduceAction432(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction432_t)(val_t p0);
+val_t NEW_parser___ReduceAction432(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction432 = "check new ReduceAction432";
+void CHECKNEW_parser___ReduceAction432(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction432_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction432_parser___ReduceAction___init = "new ReduceAction432 parser::ReduceAction::init";
+val_t NEW_ReduceAction432_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction432_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction433 = "init var of ReduceAction433";
+void INIT_ATTRIBUTES__parser___ReduceAction433(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction433_t)(val_t p0);
+val_t NEW_parser___ReduceAction433(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction433 = "check new ReduceAction433";
+void CHECKNEW_parser___ReduceAction433(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction433_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction433_parser___ReduceAction___init = "new ReduceAction433 parser::ReduceAction::init";
+val_t NEW_ReduceAction433_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction433_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction435 = "init var of ReduceAction435";
+void INIT_ATTRIBUTES__parser___ReduceAction435(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction435_t)(val_t p0);
+val_t NEW_parser___ReduceAction435(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction435 = "check new ReduceAction435";
+void CHECKNEW_parser___ReduceAction435(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction435_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction435_parser___ReduceAction___init = "new ReduceAction435 parser::ReduceAction::init";
+val_t NEW_ReduceAction435_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction435_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction436 = "init var of ReduceAction436";
+void INIT_ATTRIBUTES__parser___ReduceAction436(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction436_t)(val_t p0);
+val_t NEW_parser___ReduceAction436(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction436 = "check new ReduceAction436";
+void CHECKNEW_parser___ReduceAction436(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction436_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction436_parser___ReduceAction___init = "new ReduceAction436 parser::ReduceAction::init";
+val_t NEW_ReduceAction436_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction436_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction437 = "init var of ReduceAction437";
+void INIT_ATTRIBUTES__parser___ReduceAction437(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction437_t)(val_t p0);
+val_t NEW_parser___ReduceAction437(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction437 = "check new ReduceAction437";
+void CHECKNEW_parser___ReduceAction437(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction437_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction437_parser___ReduceAction___init = "new ReduceAction437 parser::ReduceAction::init";
+val_t NEW_ReduceAction437_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction437_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction438 = "init var of ReduceAction438";
+void INIT_ATTRIBUTES__parser___ReduceAction438(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction438_t)(val_t p0);
+val_t NEW_parser___ReduceAction438(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction438 = "check new ReduceAction438";
+void CHECKNEW_parser___ReduceAction438(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction438_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction438_parser___ReduceAction___init = "new ReduceAction438 parser::ReduceAction::init";
+val_t NEW_ReduceAction438_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction438_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction698 = "init var of ReduceAction698";
+void INIT_ATTRIBUTES__parser___ReduceAction698(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction698_t)(val_t p0);
+val_t NEW_parser___ReduceAction698(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction698 = "check new ReduceAction698";
+void CHECKNEW_parser___ReduceAction698(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction698_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction698_parser___ReduceAction___init = "new ReduceAction698 parser::ReduceAction::init";
+val_t NEW_ReduceAction698_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction698_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction699 = "init var of ReduceAction699";
+void INIT_ATTRIBUTES__parser___ReduceAction699(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction699_t)(val_t p0);
+val_t NEW_parser___ReduceAction699(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction699 = "check new ReduceAction699";
+void CHECKNEW_parser___ReduceAction699(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction699_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction699_parser___ReduceAction___init = "new ReduceAction699 parser::ReduceAction::init";
+val_t NEW_ReduceAction699_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction699_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction700 = "init var of ReduceAction700";
+void INIT_ATTRIBUTES__parser___ReduceAction700(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction700_t)(val_t p0);
+val_t NEW_parser___ReduceAction700(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction700 = "check new ReduceAction700";
+void CHECKNEW_parser___ReduceAction700(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction700_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction700_parser___ReduceAction___init = "new ReduceAction700 parser::ReduceAction::init";
+val_t NEW_ReduceAction700_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction700_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction703 = "init var of ReduceAction703";
+void INIT_ATTRIBUTES__parser___ReduceAction703(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction703_t)(val_t p0);
+val_t NEW_parser___ReduceAction703(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction703 = "check new ReduceAction703";
+void CHECKNEW_parser___ReduceAction703(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction703_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction703_parser___ReduceAction___init = "new ReduceAction703 parser::ReduceAction::init";
+val_t NEW_ReduceAction703_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction703_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction716 = "init var of ReduceAction716";
 void INIT_ATTRIBUTES__parser___ReduceAction716(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction716_t)(val_t p0);
@@ -8889,46 +8593,6 @@ typedef void (*CHECKNEW_parser___ReduceAction717_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction717_parser___ReduceAction___init = "new ReduceAction717 parser::ReduceAction::init";
 val_t NEW_ReduceAction717_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction717_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction718 = "init var of ReduceAction718";
-void INIT_ATTRIBUTES__parser___ReduceAction718(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction718_t)(val_t p0);
-val_t NEW_parser___ReduceAction718(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction718 = "check new ReduceAction718";
-void CHECKNEW_parser___ReduceAction718(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction718_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction718_parser___ReduceAction___init = "new ReduceAction718 parser::ReduceAction::init";
-val_t NEW_ReduceAction718_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction718_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction719 = "init var of ReduceAction719";
-void INIT_ATTRIBUTES__parser___ReduceAction719(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction719_t)(val_t p0);
-val_t NEW_parser___ReduceAction719(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction719 = "check new ReduceAction719";
-void CHECKNEW_parser___ReduceAction719(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction719_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction719_parser___ReduceAction___init = "new ReduceAction719 parser::ReduceAction::init";
-val_t NEW_ReduceAction719_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction719_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction720 = "init var of ReduceAction720";
-void INIT_ATTRIBUTES__parser___ReduceAction720(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction720_t)(val_t p0);
-val_t NEW_parser___ReduceAction720(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction720 = "check new ReduceAction720";
-void CHECKNEW_parser___ReduceAction720(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction720_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction720_parser___ReduceAction___init = "new ReduceAction720 parser::ReduceAction::init";
-val_t NEW_ReduceAction720_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction720_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction721 = "init var of ReduceAction721";
-void INIT_ATTRIBUTES__parser___ReduceAction721(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction721_t)(val_t p0);
-val_t NEW_parser___ReduceAction721(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction721 = "check new ReduceAction721";
-void CHECKNEW_parser___ReduceAction721(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction721_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction721_parser___ReduceAction___init = "new ReduceAction721 parser::ReduceAction::init";
-val_t NEW_ReduceAction721_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction721_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction724 = "init var of ReduceAction724";
 void INIT_ATTRIBUTES__parser___ReduceAction724(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction724_t)(val_t p0);
@@ -9009,16 +8673,16 @@ typedef void (*CHECKNEW_parser___ReduceAction731_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction731_parser___ReduceAction___init = "new ReduceAction731 parser::ReduceAction::init";
 val_t NEW_ReduceAction731_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction731_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction733 = "init var of ReduceAction733";
-void INIT_ATTRIBUTES__parser___ReduceAction733(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction733_t)(val_t p0);
-val_t NEW_parser___ReduceAction733(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction733 = "check new ReduceAction733";
-void CHECKNEW_parser___ReduceAction733(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction733_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction733_parser___ReduceAction___init = "new ReduceAction733 parser::ReduceAction::init";
-val_t NEW_ReduceAction733_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction733_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction734 = "init var of ReduceAction734";
+void INIT_ATTRIBUTES__parser___ReduceAction734(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction734_t)(val_t p0);
+val_t NEW_parser___ReduceAction734(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction734 = "check new ReduceAction734";
+void CHECKNEW_parser___ReduceAction734(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction734_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction734_parser___ReduceAction___init = "new ReduceAction734 parser::ReduceAction::init";
+val_t NEW_ReduceAction734_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction734_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction735 = "init var of ReduceAction735";
 void INIT_ATTRIBUTES__parser___ReduceAction735(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction735_t)(val_t p0);
@@ -9049,6 +8713,36 @@ typedef void (*CHECKNEW_parser___ReduceAction737_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction737_parser___ReduceAction___init = "new ReduceAction737 parser::ReduceAction::init";
 val_t NEW_ReduceAction737_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction737_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction738 = "init var of ReduceAction738";
+void INIT_ATTRIBUTES__parser___ReduceAction738(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction738_t)(val_t p0);
+val_t NEW_parser___ReduceAction738(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction738 = "check new ReduceAction738";
+void CHECKNEW_parser___ReduceAction738(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction738_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction738_parser___ReduceAction___init = "new ReduceAction738 parser::ReduceAction::init";
+val_t NEW_ReduceAction738_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction738_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction739 = "init var of ReduceAction739";
+void INIT_ATTRIBUTES__parser___ReduceAction739(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction739_t)(val_t p0);
+val_t NEW_parser___ReduceAction739(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction739 = "check new ReduceAction739";
+void CHECKNEW_parser___ReduceAction739(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction739_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction739_parser___ReduceAction___init = "new ReduceAction739 parser::ReduceAction::init";
+val_t NEW_ReduceAction739_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction739_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction740 = "init var of ReduceAction740";
+void INIT_ATTRIBUTES__parser___ReduceAction740(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction740_t)(val_t p0);
+val_t NEW_parser___ReduceAction740(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction740 = "check new ReduceAction740";
+void CHECKNEW_parser___ReduceAction740(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction740_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction740_parser___ReduceAction___init = "new ReduceAction740 parser::ReduceAction::init";
+val_t NEW_ReduceAction740_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction740_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction741 = "init var of ReduceAction741";
 void INIT_ATTRIBUTES__parser___ReduceAction741(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction741_t)(val_t p0);
@@ -9059,16 +8753,6 @@ typedef void (*CHECKNEW_parser___ReduceAction741_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction741_parser___ReduceAction___init = "new ReduceAction741 parser::ReduceAction::init";
 val_t NEW_ReduceAction741_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction741_parser___ReduceAction___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction742 = "init var of ReduceAction742";
-void INIT_ATTRIBUTES__parser___ReduceAction742(val_t p0);
-typedef void (*INIT_ATTRIBUTES__parser___ReduceAction742_t)(val_t p0);
-val_t NEW_parser___ReduceAction742(void);
-static const char * const LOCATE_CHECKNEW_parser___ReduceAction742 = "check new ReduceAction742";
-void CHECKNEW_parser___ReduceAction742(val_t p0);
-typedef void (*CHECKNEW_parser___ReduceAction742_t)(val_t p0);
-static const char * const LOCATE_NEW_ReduceAction742_parser___ReduceAction___init = "new ReduceAction742 parser::ReduceAction::init";
-val_t NEW_ReduceAction742_parser___ReduceAction___init(val_t p0);
-typedef val_t (*NEW_ReduceAction742_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction743 = "init var of ReduceAction743";
 void INIT_ATTRIBUTES__parser___ReduceAction743(val_t p0);
 typedef void (*INIT_ATTRIBUTES__parser___ReduceAction743_t)(val_t p0);
@@ -9099,6 +8783,66 @@ typedef void (*CHECKNEW_parser___ReduceAction745_t)(val_t p0);
 static const char * const LOCATE_NEW_ReduceAction745_parser___ReduceAction___init = "new ReduceAction745 parser::ReduceAction::init";
 val_t NEW_ReduceAction745_parser___ReduceAction___init(val_t p0);
 typedef val_t (*NEW_ReduceAction745_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction747 = "init var of ReduceAction747";
+void INIT_ATTRIBUTES__parser___ReduceAction747(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction747_t)(val_t p0);
+val_t NEW_parser___ReduceAction747(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction747 = "check new ReduceAction747";
+void CHECKNEW_parser___ReduceAction747(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction747_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction747_parser___ReduceAction___init = "new ReduceAction747 parser::ReduceAction::init";
+val_t NEW_ReduceAction747_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction747_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction751 = "init var of ReduceAction751";
+void INIT_ATTRIBUTES__parser___ReduceAction751(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction751_t)(val_t p0);
+val_t NEW_parser___ReduceAction751(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction751 = "check new ReduceAction751";
+void CHECKNEW_parser___ReduceAction751(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction751_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction751_parser___ReduceAction___init = "new ReduceAction751 parser::ReduceAction::init";
+val_t NEW_ReduceAction751_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction751_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction752 = "init var of ReduceAction752";
+void INIT_ATTRIBUTES__parser___ReduceAction752(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction752_t)(val_t p0);
+val_t NEW_parser___ReduceAction752(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction752 = "check new ReduceAction752";
+void CHECKNEW_parser___ReduceAction752(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction752_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction752_parser___ReduceAction___init = "new ReduceAction752 parser::ReduceAction::init";
+val_t NEW_ReduceAction752_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction752_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction753 = "init var of ReduceAction753";
+void INIT_ATTRIBUTES__parser___ReduceAction753(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction753_t)(val_t p0);
+val_t NEW_parser___ReduceAction753(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction753 = "check new ReduceAction753";
+void CHECKNEW_parser___ReduceAction753(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction753_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction753_parser___ReduceAction___init = "new ReduceAction753 parser::ReduceAction::init";
+val_t NEW_ReduceAction753_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction753_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction754 = "init var of ReduceAction754";
+void INIT_ATTRIBUTES__parser___ReduceAction754(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction754_t)(val_t p0);
+val_t NEW_parser___ReduceAction754(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction754 = "check new ReduceAction754";
+void CHECKNEW_parser___ReduceAction754(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction754_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction754_parser___ReduceAction___init = "new ReduceAction754 parser::ReduceAction::init";
+val_t NEW_ReduceAction754_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction754_parser___ReduceAction___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__parser___ReduceAction755 = "init var of ReduceAction755";
+void INIT_ATTRIBUTES__parser___ReduceAction755(val_t p0);
+typedef void (*INIT_ATTRIBUTES__parser___ReduceAction755_t)(val_t p0);
+val_t NEW_parser___ReduceAction755(void);
+static const char * const LOCATE_CHECKNEW_parser___ReduceAction755 = "check new ReduceAction755";
+void CHECKNEW_parser___ReduceAction755(val_t p0);
+typedef void (*CHECKNEW_parser___ReduceAction755_t)(val_t p0);
+static const char * const LOCATE_NEW_ReduceAction755_parser___ReduceAction___init = "new ReduceAction755 parser::ReduceAction::init";
+val_t NEW_ReduceAction755_parser___ReduceAction___init(val_t p0);
+typedef val_t (*NEW_ReduceAction755_parser___ReduceAction___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__metamodel___partial_order___PartialOrder = "init var of PartialOrder";
 void INIT_ATTRIBUTES__metamodel___partial_order___PartialOrder(val_t p0);
 typedef void (*INIT_ATTRIBUTES__metamodel___partial_order___PartialOrder_t)(val_t p0);
@@ -9119,16 +8863,6 @@ typedef void (*CHECKNEW_metamodel___partial_order___PartialOrderElement_t)(val_t
 static const char * const LOCATE_NEW_PartialOrderElement_metamodel___partial_order___PartialOrderElement___init = "new PartialOrderElement partial_order::PartialOrderElement::init";
 val_t NEW_PartialOrderElement_metamodel___partial_order___PartialOrderElement___init(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_PartialOrderElement_metamodel___partial_order___PartialOrderElement___init_t)(val_t p0, val_t p1, val_t p2);
-static const char * const LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMContext = "init var of MMContext";
-void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMContext(val_t p0);
-typedef void (*INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMContext_t)(val_t p0);
-val_t NEW_metamodel___abstractmetamodel___MMContext(void);
-static const char * const LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMContext = "check new MMContext";
-void CHECKNEW_metamodel___abstractmetamodel___MMContext(val_t p0);
-typedef void (*CHECKNEW_metamodel___abstractmetamodel___MMContext_t)(val_t p0);
-static const char * const LOCATE_NEW_MMContext_metamodel___abstractmetamodel___MMContext___init = "new MMContext abstractmetamodel::MMContext::init";
-val_t NEW_MMContext_metamodel___abstractmetamodel___MMContext___init(void);
-typedef val_t (*NEW_MMContext_metamodel___abstractmetamodel___MMContext___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMDirectory = "init var of MMDirectory";
 void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMDirectory(val_t p0);
 typedef void (*INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMDirectory_t)(val_t p0);
@@ -9139,16 +8873,6 @@ typedef void (*CHECKNEW_metamodel___abstractmetamodel___MMDirectory_t)(val_t p0)
 static const char * const LOCATE_NEW_MMDirectory_metamodel___abstractmetamodel___MMDirectory___init = "new MMDirectory abstractmetamodel::MMDirectory::init";
 val_t NEW_MMDirectory_metamodel___abstractmetamodel___MMDirectory___init(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_MMDirectory_metamodel___abstractmetamodel___MMDirectory___init_t)(val_t p0, val_t p1, val_t p2);
-static const char * const LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMModule = "init var of MMModule";
-void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMModule(val_t p0);
-typedef void (*INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMModule_t)(val_t p0);
-val_t NEW_metamodel___abstractmetamodel___MMModule(void);
-static const char * const LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMModule = "check new MMModule";
-void CHECKNEW_metamodel___abstractmetamodel___MMModule(val_t p0);
-typedef void (*CHECKNEW_metamodel___abstractmetamodel___MMModule_t)(val_t p0);
-static const char * const LOCATE_NEW_MMModule_metamodel___abstractmetamodel___MMModule___init = "new MMModule abstractmetamodel::MMModule::init";
-val_t NEW_MMModule_metamodel___abstractmetamodel___MMModule___init(val_t p0, val_t p1, val_t p2, val_t p3);
-typedef val_t (*NEW_MMModule_metamodel___abstractmetamodel___MMModule___init_t)(val_t p0, val_t p1, val_t p2, val_t p3);
 static const char * const LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMGlobalClass = "init var of MMGlobalClass";
 void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMGlobalClass(val_t p0);
 typedef void (*INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMGlobalClass_t)(val_t p0);
@@ -9159,16 +8883,6 @@ typedef void (*CHECKNEW_metamodel___abstractmetamodel___MMGlobalClass_t)(val_t p
 static const char * const LOCATE_NEW_MMGlobalClass_metamodel___abstractmetamodel___MMGlobalClass___init = "new MMGlobalClass abstractmetamodel::MMGlobalClass::init";
 val_t NEW_MMGlobalClass_metamodel___abstractmetamodel___MMGlobalClass___init(val_t p0);
 typedef val_t (*NEW_MMGlobalClass_metamodel___abstractmetamodel___MMGlobalClass___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMLocalClass = "init var of MMLocalClass";
-void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMLocalClass(val_t p0);
-typedef void (*INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMLocalClass_t)(val_t p0);
-val_t NEW_metamodel___abstractmetamodel___MMLocalClass(void);
-static const char * const LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMLocalClass = "check new MMLocalClass";
-void CHECKNEW_metamodel___abstractmetamodel___MMLocalClass(val_t p0);
-typedef void (*CHECKNEW_metamodel___abstractmetamodel___MMLocalClass_t)(val_t p0);
-static const char * const LOCATE_NEW_MMLocalClass_metamodel___abstractmetamodel___MMLocalClass___init = "new MMLocalClass abstractmetamodel::MMLocalClass::init";
-val_t NEW_MMLocalClass_metamodel___abstractmetamodel___MMLocalClass___init(val_t p0, val_t p1, val_t p2);
-typedef val_t (*NEW_MMLocalClass_metamodel___abstractmetamodel___MMLocalClass___init_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMGlobalProperty = "init var of MMGlobalProperty";
 void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMGlobalProperty(val_t p0);
 typedef void (*INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMGlobalProperty_t)(val_t p0);
@@ -9179,26 +8893,6 @@ typedef void (*CHECKNEW_metamodel___abstractmetamodel___MMGlobalProperty_t)(val_
 static const char * const LOCATE_NEW_MMGlobalProperty_metamodel___abstractmetamodel___MMGlobalProperty___init = "new MMGlobalProperty abstractmetamodel::MMGlobalProperty::init";
 val_t NEW_MMGlobalProperty_metamodel___abstractmetamodel___MMGlobalProperty___init(val_t p0);
 typedef val_t (*NEW_MMGlobalProperty_metamodel___abstractmetamodel___MMGlobalProperty___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMLocalProperty = "init var of MMLocalProperty";
-void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMLocalProperty(val_t p0);
-typedef void (*INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMLocalProperty_t)(val_t p0);
-val_t NEW_metamodel___abstractmetamodel___MMLocalProperty(void);
-static const char * const LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMLocalProperty = "check new MMLocalProperty";
-void CHECKNEW_metamodel___abstractmetamodel___MMLocalProperty(val_t p0);
-typedef void (*CHECKNEW_metamodel___abstractmetamodel___MMLocalProperty_t)(val_t p0);
-static const char * const LOCATE_NEW_MMLocalProperty_metamodel___abstractmetamodel___MMLocalProperty___init = "new MMLocalProperty abstractmetamodel::MMLocalProperty::init";
-val_t NEW_MMLocalProperty_metamodel___abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1);
-typedef val_t (*NEW_MMLocalProperty_metamodel___abstractmetamodel___MMLocalProperty___init_t)(val_t p0, val_t p1);
-static const char * const LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMAttribute = "init var of MMAttribute";
-void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMAttribute(val_t p0);
-typedef void (*INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMAttribute_t)(val_t p0);
-val_t NEW_metamodel___abstractmetamodel___MMAttribute(void);
-static const char * const LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMAttribute = "check new MMAttribute";
-void CHECKNEW_metamodel___abstractmetamodel___MMAttribute(val_t p0);
-typedef void (*CHECKNEW_metamodel___abstractmetamodel___MMAttribute_t)(val_t p0);
-static const char * const LOCATE_NEW_MMAttribute_metamodel___abstractmetamodel___MMLocalProperty___init = "new MMAttribute abstractmetamodel::MMLocalProperty::init";
-val_t NEW_MMAttribute_metamodel___abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1);
-typedef val_t (*NEW_MMAttribute_metamodel___abstractmetamodel___MMLocalProperty___init_t)(val_t p0, val_t p1);
 static const char * const LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMExplicitImport = "init var of MMExplicitImport";
 void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMExplicitImport(val_t p0);
 typedef void (*INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMExplicitImport_t)(val_t p0);
@@ -9209,26 +8903,6 @@ typedef void (*CHECKNEW_metamodel___abstractmetamodel___MMExplicitImport_t)(val_
 static const char * const LOCATE_NEW_MMExplicitImport_metamodel___abstractmetamodel___MMExplicitImport___init = "new MMExplicitImport static_type::MMExplicitImport::(abstractmetamodel::MMExplicitImport::init)";
 val_t NEW_MMExplicitImport_metamodel___abstractmetamodel___MMExplicitImport___init(val_t p0, val_t p1);
 typedef val_t (*NEW_MMExplicitImport_metamodel___abstractmetamodel___MMExplicitImport___init_t)(val_t p0, val_t p1);
-static const char * const LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMMethod = "init var of MMMethod";
-void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMMethod(val_t p0);
-typedef void (*INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMMethod_t)(val_t p0);
-val_t NEW_metamodel___abstractmetamodel___MMMethod(void);
-static const char * const LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMMethod = "check new MMMethod";
-void CHECKNEW_metamodel___abstractmetamodel___MMMethod(val_t p0);
-typedef void (*CHECKNEW_metamodel___abstractmetamodel___MMMethod_t)(val_t p0);
-static const char * const LOCATE_NEW_MMMethod_metamodel___abstractmetamodel___MMLocalProperty___init = "new MMMethod abstractmetamodel::MMLocalProperty::init";
-val_t NEW_MMMethod_metamodel___abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1);
-typedef val_t (*NEW_MMMethod_metamodel___abstractmetamodel___MMLocalProperty___init_t)(val_t p0, val_t p1);
-static const char * const LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMConcreteClass = "init var of MMConcreteClass";
-void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMConcreteClass(val_t p0);
-typedef void (*INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMConcreteClass_t)(val_t p0);
-val_t NEW_metamodel___abstractmetamodel___MMConcreteClass(void);
-static const char * const LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMConcreteClass = "check new MMConcreteClass";
-void CHECKNEW_metamodel___abstractmetamodel___MMConcreteClass(val_t p0);
-typedef void (*CHECKNEW_metamodel___abstractmetamodel___MMConcreteClass_t)(val_t p0);
-static const char * const LOCATE_NEW_MMConcreteClass_metamodel___abstractmetamodel___MMLocalClass___init = "new MMConcreteClass abstractmetamodel::MMLocalClass::init";
-val_t NEW_MMConcreteClass_metamodel___abstractmetamodel___MMLocalClass___init(val_t p0, val_t p1, val_t p2);
-typedef val_t (*NEW_MMConcreteClass_metamodel___abstractmetamodel___MMLocalClass___init_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_INIT_ATTRIBUTES__metamodel___static_type___MMParam = "init var of MMParam";
 void INIT_ATTRIBUTES__metamodel___static_type___MMParam(val_t p0);
 typedef void (*INIT_ATTRIBUTES__metamodel___static_type___MMParam_t)(val_t p0);
@@ -9269,16 +8943,6 @@ typedef void (*CHECKNEW_metamodel___static_type___MMNullableType_t)(val_t p0);
 static const char * const LOCATE_NEW_MMNullableType_metamodel___static_type___MMNullableType___init = "new MMNullableType static_type::MMNullableType::init";
 val_t NEW_MMNullableType_metamodel___static_type___MMNullableType___init(val_t p0);
 typedef val_t (*NEW_MMNullableType_metamodel___static_type___MMNullableType___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__metamodel___static_type___MMTypeClass = "init var of MMTypeClass";
-void INIT_ATTRIBUTES__metamodel___static_type___MMTypeClass(val_t p0);
-typedef void (*INIT_ATTRIBUTES__metamodel___static_type___MMTypeClass_t)(val_t p0);
-val_t NEW_metamodel___static_type___MMTypeClass(void);
-static const char * const LOCATE_CHECKNEW_metamodel___static_type___MMTypeClass = "check new MMTypeClass";
-void CHECKNEW_metamodel___static_type___MMTypeClass(val_t p0);
-typedef void (*CHECKNEW_metamodel___static_type___MMTypeClass_t)(val_t p0);
-static const char * const LOCATE_NEW_MMTypeClass_metamodel___static_type___MMTypeClass___init = "new MMTypeClass static_type::MMTypeClass::init";
-val_t NEW_MMTypeClass_metamodel___static_type___MMTypeClass___init(val_t p0);
-typedef val_t (*NEW_MMTypeClass_metamodel___static_type___MMTypeClass___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__metamodel___static_type___MMTypeSimpleClass = "init var of MMTypeSimpleClass";
 void INIT_ATTRIBUTES__metamodel___static_type___MMTypeSimpleClass(val_t p0);
 typedef void (*INIT_ATTRIBUTES__metamodel___static_type___MMTypeSimpleClass_t)(val_t p0);
@@ -9349,16 +9013,6 @@ typedef void (*CHECKNEW_metamodel___inheritance___MMDefaultAncestor_t)(val_t p0)
 static const char * const LOCATE_NEW_MMDefaultAncestor_metamodel___inheritance___MMDefaultAncestor___init = "new MMDefaultAncestor inheritance::MMDefaultAncestor::init";
 val_t NEW_MMDefaultAncestor_metamodel___inheritance___MMDefaultAncestor___init(val_t p0, val_t p1);
 typedef val_t (*NEW_MMDefaultAncestor_metamodel___inheritance___MMDefaultAncestor___init_t)(val_t p0, val_t p1);
-static const char * const LOCATE_INIT_ATTRIBUTES__metamodel___type_formal___MMTypeFormal = "init var of MMTypeFormal";
-void INIT_ATTRIBUTES__metamodel___type_formal___MMTypeFormal(val_t p0);
-typedef void (*INIT_ATTRIBUTES__metamodel___type_formal___MMTypeFormal_t)(val_t p0);
-val_t NEW_metamodel___type_formal___MMTypeFormal(void);
-static const char * const LOCATE_CHECKNEW_metamodel___type_formal___MMTypeFormal = "check new MMTypeFormal";
-void CHECKNEW_metamodel___type_formal___MMTypeFormal(val_t p0);
-typedef void (*CHECKNEW_metamodel___type_formal___MMTypeFormal_t)(val_t p0);
-static const char * const LOCATE_NEW_MMTypeFormal_metamodel___type_formal___MMTypeFormal___init = "new MMTypeFormal type_formal::MMTypeFormal::init";
-val_t NEW_MMTypeFormal_metamodel___type_formal___MMTypeFormal___init(val_t p0, val_t p1);
-typedef val_t (*NEW_MMTypeFormal_metamodel___type_formal___MMTypeFormal___init_t)(val_t p0, val_t p1);
 static const char * const LOCATE_INIT_ATTRIBUTES__metamodel___genericity___MMTypeGeneric = "init var of MMTypeGeneric";
 void INIT_ATTRIBUTES__metamodel___genericity___MMTypeGeneric(val_t p0);
 typedef void (*INIT_ATTRIBUTES__metamodel___genericity___MMTypeGeneric_t)(val_t p0);
@@ -9382,16 +9036,6 @@ typedef val_t (*NEW_MMTypeFormalParameter_metamodel___genericity___MMTypeFormalP
 static const char * const LOCATE_NEW_MMTypeFormalParameter_metamodel___genericity___MMTypeFormalParameter___init = "new MMTypeFormalParameter genericity::MMTypeFormalParameter::init";
 val_t NEW_MMTypeFormalParameter_metamodel___genericity___MMTypeFormalParameter___init(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_MMTypeFormalParameter_metamodel___genericity___MMTypeFormalParameter___init_t)(val_t p0, val_t p1, val_t p2);
-static const char * const LOCATE_INIT_ATTRIBUTES__metamodel___virtualtype___MMTypeProperty = "init var of MMTypeProperty";
-void INIT_ATTRIBUTES__metamodel___virtualtype___MMTypeProperty(val_t p0);
-typedef void (*INIT_ATTRIBUTES__metamodel___virtualtype___MMTypeProperty_t)(val_t p0);
-val_t NEW_metamodel___virtualtype___MMTypeProperty(void);
-static const char * const LOCATE_CHECKNEW_metamodel___virtualtype___MMTypeProperty = "check new MMTypeProperty";
-void CHECKNEW_metamodel___virtualtype___MMTypeProperty(val_t p0);
-typedef void (*CHECKNEW_metamodel___virtualtype___MMTypeProperty_t)(val_t p0);
-static const char * const LOCATE_NEW_MMTypeProperty_metamodel___abstractmetamodel___MMLocalProperty___init = "new MMTypeProperty abstractmetamodel::MMLocalProperty::init";
-val_t NEW_MMTypeProperty_metamodel___abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1);
-typedef val_t (*NEW_MMTypeProperty_metamodel___abstractmetamodel___MMLocalProperty___init_t)(val_t p0, val_t p1);
 static const char * const LOCATE_INIT_ATTRIBUTES__metamodel___virtualtype___MMVirtualType = "init var of MMVirtualType";
 void INIT_ATTRIBUTES__metamodel___virtualtype___MMVirtualType(val_t p0);
 typedef void (*INIT_ATTRIBUTES__metamodel___virtualtype___MMVirtualType_t)(val_t p0);
@@ -9402,16 +9046,6 @@ typedef void (*CHECKNEW_metamodel___virtualtype___MMVirtualType_t)(val_t p0);
 static const char * const LOCATE_NEW_MMVirtualType_metamodel___virtualtype___MMVirtualType___init = "new MMVirtualType virtualtype::MMVirtualType::init";
 val_t NEW_MMVirtualType_metamodel___virtualtype___MMVirtualType___init(val_t p0, val_t p1);
 typedef val_t (*NEW_MMVirtualType_metamodel___virtualtype___MMVirtualType___init_t)(val_t p0, val_t p1);
-static const char * const LOCATE_INIT_ATTRIBUTES__opts___Option = "init var of Option";
-void INIT_ATTRIBUTES__opts___Option(val_t p0);
-typedef void (*INIT_ATTRIBUTES__opts___Option_t)(val_t p0);
-val_t NEW_opts___Option(void);
-static const char * const LOCATE_CHECKNEW_opts___Option = "check new Option";
-void CHECKNEW_opts___Option(val_t p0);
-typedef void (*CHECKNEW_opts___Option_t)(val_t p0);
-static const char * const LOCATE_NEW_Option_opts___Option___init_opt = "new Option opts::Option::init_opt";
-val_t NEW_Option_opts___Option___init_opt(val_t p0, val_t p1, val_t p2);
-typedef val_t (*NEW_Option_opts___Option___init_opt_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_INIT_ATTRIBUTES__opts___OptionText = "init var of OptionText";
 void INIT_ATTRIBUTES__opts___OptionText(val_t p0);
 typedef void (*INIT_ATTRIBUTES__opts___OptionText_t)(val_t p0);
@@ -9442,16 +9076,6 @@ typedef void (*CHECKNEW_opts___OptionCount_t)(val_t p0);
 static const char * const LOCATE_NEW_OptionCount_opts___OptionCount___init = "new OptionCount opts::OptionCount::init";
 val_t NEW_OptionCount_opts___OptionCount___init(val_t p0, val_t p1);
 typedef val_t (*NEW_OptionCount_opts___OptionCount___init_t)(val_t p0, val_t p1);
-static const char * const LOCATE_INIT_ATTRIBUTES__opts___OptionParameter = "init var of OptionParameter";
-void INIT_ATTRIBUTES__opts___OptionParameter(val_t p0);
-typedef void (*INIT_ATTRIBUTES__opts___OptionParameter_t)(val_t p0);
-val_t NEW_opts___OptionParameter(void);
-static const char * const LOCATE_CHECKNEW_opts___OptionParameter = "check new OptionParameter";
-void CHECKNEW_opts___OptionParameter(val_t p0);
-typedef void (*CHECKNEW_opts___OptionParameter_t)(val_t p0);
-static const char * const LOCATE_NEW_OptionParameter_opts___OptionParameter___init_opt = "new OptionParameter opts::OptionParameter::init_opt";
-val_t NEW_OptionParameter_opts___OptionParameter___init_opt(val_t p0, val_t p1, val_t p2);
-typedef val_t (*NEW_OptionParameter_opts___OptionParameter___init_opt_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_INIT_ATTRIBUTES__opts___OptionString = "init var of OptionString";
 void INIT_ATTRIBUTES__opts___OptionString(val_t p0);
 typedef void (*INIT_ATTRIBUTES__opts___OptionString_t)(val_t p0);
@@ -9502,36 +9126,16 @@ typedef void (*CHECKNEW_opts___OptionContext_t)(val_t p0);
 static const char * const LOCATE_NEW_OptionContext_opts___OptionContext___init = "new OptionContext opts::OptionContext::init";
 val_t NEW_OptionContext_opts___OptionContext___init(void);
 typedef val_t (*NEW_OptionContext_opts___OptionContext___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__mmloader___Message = "init var of Message";
-void INIT_ATTRIBUTES__mmloader___Message(val_t p0);
-typedef void (*INIT_ATTRIBUTES__mmloader___Message_t)(val_t p0);
-val_t NEW_mmloader___Message(void);
-static const char * const LOCATE_CHECKNEW_mmloader___Message = "check new Message";
-void CHECKNEW_mmloader___Message(val_t p0);
-typedef void (*CHECKNEW_mmloader___Message_t)(val_t p0);
-static const char * const LOCATE_NEW_Message_mmloader___Message___init = "new Message mmloader::Message::init";
-val_t NEW_Message_mmloader___Message___init(val_t p0, val_t p1);
-typedef val_t (*NEW_Message_mmloader___Message___init_t)(val_t p0, val_t p1);
-static const char * const LOCATE_INIT_ATTRIBUTES__mmloader___ToolContext = "init var of ToolContext";
-void INIT_ATTRIBUTES__mmloader___ToolContext(val_t p0);
-typedef void (*INIT_ATTRIBUTES__mmloader___ToolContext_t)(val_t p0);
-val_t NEW_mmloader___ToolContext(void);
-static const char * const LOCATE_CHECKNEW_mmloader___ToolContext = "check new ToolContext";
-void CHECKNEW_mmloader___ToolContext(val_t p0);
-typedef void (*CHECKNEW_mmloader___ToolContext_t)(val_t p0);
-static const char * const LOCATE_NEW_ToolContext_mmloader___ToolContext___init = "new ToolContext separate_options::ToolContext::(mmloader::ToolContext::init)";
-val_t NEW_ToolContext_mmloader___ToolContext___init(void);
-typedef val_t (*NEW_ToolContext_mmloader___ToolContext___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__mmloader___ModuleLoader = "init var of ModuleLoader";
-void INIT_ATTRIBUTES__mmloader___ModuleLoader(val_t p0);
-typedef void (*INIT_ATTRIBUTES__mmloader___ModuleLoader_t)(val_t p0);
-val_t NEW_mmloader___ModuleLoader(void);
-static const char * const LOCATE_CHECKNEW_mmloader___ModuleLoader = "check new ModuleLoader";
-void CHECKNEW_mmloader___ModuleLoader(val_t p0);
-typedef void (*CHECKNEW_mmloader___ModuleLoader_t)(val_t p0);
-static const char * const LOCATE_NEW_ModuleLoader_mmloader___ModuleLoader___init = "new ModuleLoader mmloader::ModuleLoader::init";
-val_t NEW_ModuleLoader_mmloader___ModuleLoader___init(void);
-typedef val_t (*NEW_ModuleLoader_mmloader___ModuleLoader___init_t)(void);
+static const char * const LOCATE_INIT_ATTRIBUTES__toolcontext___Message = "init var of Message";
+void INIT_ATTRIBUTES__toolcontext___Message(val_t p0);
+typedef void (*INIT_ATTRIBUTES__toolcontext___Message_t)(val_t p0);
+val_t NEW_toolcontext___Message(void);
+static const char * const LOCATE_CHECKNEW_toolcontext___Message = "check new Message";
+void CHECKNEW_toolcontext___Message(val_t p0);
+typedef void (*CHECKNEW_toolcontext___Message_t)(val_t p0);
+static const char * const LOCATE_NEW_Message_toolcontext___Message___init = "new Message toolcontext::Message::init";
+val_t NEW_Message_toolcontext___Message___init(val_t p0, val_t p1);
+typedef val_t (*NEW_Message_toolcontext___Message___init_t)(val_t p0, val_t p1);
 static const char * const LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___MMSrcModule = "init var of MMSrcModule";
 void INIT_ATTRIBUTES__syntax___syntax_base___MMSrcModule(val_t p0);
 typedef void (*INIT_ATTRIBUTES__syntax___syntax_base___MMSrcModule_t)(val_t p0);
@@ -9562,26 +9166,6 @@ typedef void (*CHECKNEW_syntax___syntax_base___MMSrcAttribute_t)(val_t p0);
 static const char * const LOCATE_NEW_MMSrcAttribute_syntax___syntax_base___MMSrcAttribute___init = "new MMSrcAttribute syntax_base::MMSrcAttribute::init";
 val_t NEW_MMSrcAttribute_syntax___syntax_base___MMSrcAttribute___init(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_MMSrcAttribute_syntax___syntax_base___MMSrcAttribute___init_t)(val_t p0, val_t p1, val_t p2);
-static const char * const LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___MMSrcMethod = "init var of MMSrcMethod";
-void INIT_ATTRIBUTES__syntax___syntax_base___MMSrcMethod(val_t p0);
-typedef void (*INIT_ATTRIBUTES__syntax___syntax_base___MMSrcMethod_t)(val_t p0);
-val_t NEW_syntax___syntax_base___MMSrcMethod(void);
-static const char * const LOCATE_CHECKNEW_syntax___syntax_base___MMSrcMethod = "check new MMSrcMethod";
-void CHECKNEW_syntax___syntax_base___MMSrcMethod(val_t p0);
-typedef void (*CHECKNEW_syntax___syntax_base___MMSrcMethod_t)(val_t p0);
-static const char * const LOCATE_NEW_MMSrcMethod_metamodel___abstractmetamodel___MMLocalProperty___init = "new MMSrcMethod abstractmetamodel::MMLocalProperty::init";
-val_t NEW_MMSrcMethod_metamodel___abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1);
-typedef val_t (*NEW_MMSrcMethod_metamodel___abstractmetamodel___MMLocalProperty___init_t)(val_t p0, val_t p1);
-static const char * const LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___MMAttrImplementationMethod = "init var of MMAttrImplementationMethod";
-void INIT_ATTRIBUTES__syntax___syntax_base___MMAttrImplementationMethod(val_t p0);
-typedef void (*INIT_ATTRIBUTES__syntax___syntax_base___MMAttrImplementationMethod_t)(val_t p0);
-val_t NEW_syntax___syntax_base___MMAttrImplementationMethod(void);
-static const char * const LOCATE_CHECKNEW_syntax___syntax_base___MMAttrImplementationMethod = "check new MMAttrImplementationMethod";
-void CHECKNEW_syntax___syntax_base___MMAttrImplementationMethod(val_t p0);
-typedef void (*CHECKNEW_syntax___syntax_base___MMAttrImplementationMethod_t)(val_t p0);
-static const char * const LOCATE_NEW_MMAttrImplementationMethod_syntax___syntax_base___MMAttrImplementationMethod___init = "new MMAttrImplementationMethod syntax_base::MMAttrImplementationMethod::init";
-val_t NEW_MMAttrImplementationMethod_syntax___syntax_base___MMAttrImplementationMethod___init(val_t p0, val_t p1, val_t p2);
-typedef val_t (*NEW_MMAttrImplementationMethod_syntax___syntax_base___MMAttrImplementationMethod___init_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___MMReadImplementationMethod = "init var of MMReadImplementationMethod";
 void INIT_ATTRIBUTES__syntax___syntax_base___MMReadImplementationMethod(val_t p0);
 typedef void (*INIT_ATTRIBUTES__syntax___syntax_base___MMReadImplementationMethod_t)(val_t p0);
@@ -9672,62 +9256,6 @@ typedef void (*CHECKNEW_syntax___syntax_base___ClosureVariable_t)(val_t p0);
 static const char * const LOCATE_NEW_ClosureVariable_syntax___syntax_base___ClosureVariable___init = "new ClosureVariable syntax_base::ClosureVariable::init";
 val_t NEW_ClosureVariable_syntax___syntax_base___ClosureVariable___init(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_ClosureVariable_syntax___syntax_base___ClosureVariable___init_t)(val_t p0, val_t p1, val_t p2);
-static const char * const LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___AbsSyntaxVisitor = "init var of AbsSyntaxVisitor";
-void INIT_ATTRIBUTES__syntax___syntax_base___AbsSyntaxVisitor(val_t p0);
-typedef void (*INIT_ATTRIBUTES__syntax___syntax_base___AbsSyntaxVisitor_t)(val_t p0);
-val_t NEW_syntax___syntax_base___AbsSyntaxVisitor(void);
-static const char * const LOCATE_CHECKNEW_syntax___syntax_base___AbsSyntaxVisitor = "check new AbsSyntaxVisitor";
-void CHECKNEW_syntax___syntax_base___AbsSyntaxVisitor(val_t p0);
-typedef void (*CHECKNEW_syntax___syntax_base___AbsSyntaxVisitor_t)(val_t p0);
-static const char * const LOCATE_NEW_AbsSyntaxVisitor_syntax___syntax_base___AbsSyntaxVisitor___init = "new AbsSyntaxVisitor syntax_base::AbsSyntaxVisitor::init";
-val_t NEW_AbsSyntaxVisitor_syntax___syntax_base___AbsSyntaxVisitor___init(val_t p0, val_t p1);
-typedef val_t (*NEW_AbsSyntaxVisitor_syntax___syntax_base___AbsSyntaxVisitor___init_t)(val_t p0, val_t p1);
-static const char * const LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___AAbsAbsSendExpr = "init var of AAbsAbsSendExpr";
-void INIT_ATTRIBUTES__syntax___syntax_base___AAbsAbsSendExpr(val_t p0);
-typedef void (*INIT_ATTRIBUTES__syntax___syntax_base___AAbsAbsSendExpr_t)(val_t p0);
-val_t NEW_syntax___syntax_base___AAbsAbsSendExpr(void);
-static const char * const LOCATE_CHECKNEW_syntax___syntax_base___AAbsAbsSendExpr = "check new AAbsAbsSendExpr";
-void CHECKNEW_syntax___syntax_base___AAbsAbsSendExpr(val_t p0);
-typedef void (*CHECKNEW_syntax___syntax_base___AAbsAbsSendExpr_t)(val_t p0);
-static const char * const LOCATE_NEW_AAbsAbsSendExpr_parser___parser_nodes___ANode___init = "new AAbsAbsSendExpr parser_nodes::ANode::init";
-val_t NEW_AAbsAbsSendExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AAbsAbsSendExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___AAbsSendExpr = "init var of AAbsSendExpr";
-void INIT_ATTRIBUTES__syntax___syntax_base___AAbsSendExpr(val_t p0);
-typedef void (*INIT_ATTRIBUTES__syntax___syntax_base___AAbsSendExpr_t)(val_t p0);
-val_t NEW_syntax___syntax_base___AAbsSendExpr(void);
-static const char * const LOCATE_CHECKNEW_syntax___syntax_base___AAbsSendExpr = "check new AAbsSendExpr";
-void CHECKNEW_syntax___syntax_base___AAbsSendExpr(val_t p0);
-typedef void (*CHECKNEW_syntax___syntax_base___AAbsSendExpr_t)(val_t p0);
-static const char * const LOCATE_NEW_AAbsSendExpr_parser___parser_nodes___ANode___init = "new AAbsSendExpr parser_nodes::ANode::init";
-val_t NEW_AAbsSendExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AAbsSendExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___ASuperInitCall = "init var of ASuperInitCall";
-void INIT_ATTRIBUTES__syntax___syntax_base___ASuperInitCall(val_t p0);
-typedef void (*INIT_ATTRIBUTES__syntax___syntax_base___ASuperInitCall_t)(val_t p0);
-val_t NEW_syntax___syntax_base___ASuperInitCall(void);
-static const char * const LOCATE_CHECKNEW_syntax___syntax_base___ASuperInitCall = "check new ASuperInitCall";
-void CHECKNEW_syntax___syntax_base___ASuperInitCall(val_t p0);
-typedef void (*CHECKNEW_syntax___syntax_base___ASuperInitCall_t)(val_t p0);
-static const char * const LOCATE_NEW_ASuperInitCall_parser___parser_nodes___ANode___init = "new ASuperInitCall parser_nodes::ANode::init";
-val_t NEW_ASuperInitCall_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ASuperInitCall_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___ASendReassignExpr = "init var of ASendReassignExpr";
-void INIT_ATTRIBUTES__syntax___syntax_base___ASendReassignExpr(val_t p0);
-typedef void (*INIT_ATTRIBUTES__syntax___syntax_base___ASendReassignExpr_t)(val_t p0);
-val_t NEW_syntax___syntax_base___ASendReassignExpr(void);
-static const char * const LOCATE_CHECKNEW_syntax___syntax_base___ASendReassignExpr = "check new ASendReassignExpr";
-void CHECKNEW_syntax___syntax_base___ASendReassignExpr(val_t p0);
-typedef void (*CHECKNEW_syntax___syntax_base___ASendReassignExpr_t)(val_t p0);
-static const char * const LOCATE_NEW_ASendReassignExpr_parser___parser_prod___ASendExpr___empty_init = "new ASendReassignExpr parser_prod::ASendExpr::empty_init";
-val_t NEW_ASendReassignExpr_parser___parser_prod___ASendExpr___empty_init(void);
-typedef val_t (*NEW_ASendReassignExpr_parser___parser_prod___ASendExpr___empty_init_t)(void);
-static const char * const LOCATE_NEW_ASendReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr = "new ASendReassignExpr parser_prod::ASendExpr::init_asendexpr";
-val_t NEW_ASendReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
-typedef val_t (*NEW_ASendReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr_t)(val_t p0);
-static const char * const LOCATE_NEW_ASendReassignExpr_parser___parser_nodes___ANode___init = "new ASendReassignExpr parser_nodes::ANode::init";
-val_t NEW_ASendReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ASendReassignExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__primitive_info___PrimitiveInfo = "init var of PrimitiveInfo";
 void INIT_ATTRIBUTES__primitive_info___PrimitiveInfo(val_t p0);
 typedef void (*INIT_ATTRIBUTES__primitive_info___PrimitiveInfo_t)(val_t p0);
@@ -10178,16 +9706,6 @@ typedef void (*CHECKNEW_icode___icode_builder___ICodeBuilder_t)(val_t p0);
 static const char * const LOCATE_NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init = "new ICodeBuilder icode_builder::ICodeBuilder::init";
 val_t NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init(val_t p0, val_t p1);
 typedef val_t (*NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init_t)(val_t p0, val_t p1);
-static const char * const LOCATE_INIT_ATTRIBUTES__icode___icode_tools___ICodeVisitor = "init var of ICodeVisitor";
-void INIT_ATTRIBUTES__icode___icode_tools___ICodeVisitor(val_t p0);
-typedef void (*INIT_ATTRIBUTES__icode___icode_tools___ICodeVisitor_t)(val_t p0);
-val_t NEW_icode___icode_tools___ICodeVisitor(void);
-static const char * const LOCATE_CHECKNEW_icode___icode_tools___ICodeVisitor = "check new ICodeVisitor";
-void CHECKNEW_icode___icode_tools___ICodeVisitor(val_t p0);
-typedef void (*CHECKNEW_icode___icode_tools___ICodeVisitor_t)(val_t p0);
-static const char * const LOCATE_NEW_ICodeVisitor_icode___icode_tools___ICodeVisitor___init = "new ICodeVisitor icode_tools::ICodeVisitor::init";
-val_t NEW_ICodeVisitor_icode___icode_tools___ICodeVisitor___init(void);
-typedef val_t (*NEW_ICodeVisitor_icode___icode_tools___ICodeVisitor___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__icode___icode_tools___ICodeDupContext = "init var of ICodeDupContext";
 void INIT_ATTRIBUTES__icode___icode_tools___ICodeDupContext(val_t p0);
 typedef void (*INIT_ATTRIBUTES__icode___icode_tools___ICodeDupContext_t)(val_t p0);
@@ -10288,16 +9806,6 @@ typedef void (*CHECKNEW_syntax___scope___EscapableClosure_t)(val_t p0);
 static const char * const LOCATE_NEW_EscapableClosure_syntax___scope___EscapableClosure___init = "new EscapableClosure scope::EscapableClosure::init";
 val_t NEW_EscapableClosure_syntax___scope___EscapableClosure___init(val_t p0, val_t p1, val_t p2);
 typedef val_t (*NEW_EscapableClosure_syntax___scope___EscapableClosure___init_t)(val_t p0, val_t p1, val_t p2);
-static const char * const LOCATE_INIT_ATTRIBUTES__syntax___scope___AEscapeExpr = "init var of AEscapeExpr";
-void INIT_ATTRIBUTES__syntax___scope___AEscapeExpr(val_t p0);
-typedef void (*INIT_ATTRIBUTES__syntax___scope___AEscapeExpr_t)(val_t p0);
-val_t NEW_syntax___scope___AEscapeExpr(void);
-static const char * const LOCATE_CHECKNEW_syntax___scope___AEscapeExpr = "check new AEscapeExpr";
-void CHECKNEW_syntax___scope___AEscapeExpr(val_t p0);
-typedef void (*CHECKNEW_syntax___scope___AEscapeExpr_t)(val_t p0);
-static const char * const LOCATE_NEW_AEscapeExpr_parser___parser_nodes___ANode___init = "new AEscapeExpr parser_nodes::ANode::init";
-val_t NEW_AEscapeExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AEscapeExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__syntax___typing___TypingVisitor = "init var of TypingVisitor";
 void INIT_ATTRIBUTES__syntax___typing___TypingVisitor(val_t p0);
 typedef void (*INIT_ATTRIBUTES__syntax___typing___TypingVisitor_t)(val_t p0);
@@ -10308,26 +9816,6 @@ typedef void (*CHECKNEW_syntax___typing___TypingVisitor_t)(val_t p0);
 static const char * const LOCATE_NEW_TypingVisitor_syntax___typing___TypingVisitor___init = "new TypingVisitor typing::TypingVisitor::init";
 val_t NEW_TypingVisitor_syntax___typing___TypingVisitor___init(val_t p0, val_t p1);
 typedef val_t (*NEW_TypingVisitor_syntax___typing___TypingVisitor___init_t)(val_t p0, val_t p1);
-static const char * const LOCATE_INIT_ATTRIBUTES__syntax___typing___AAbsControl = "init var of AAbsControl";
-void INIT_ATTRIBUTES__syntax___typing___AAbsControl(val_t p0);
-typedef void (*INIT_ATTRIBUTES__syntax___typing___AAbsControl_t)(val_t p0);
-val_t NEW_syntax___typing___AAbsControl(void);
-static const char * const LOCATE_CHECKNEW_syntax___typing___AAbsControl = "check new AAbsControl";
-void CHECKNEW_syntax___typing___AAbsControl(val_t p0);
-typedef void (*CHECKNEW_syntax___typing___AAbsControl_t)(val_t p0);
-static const char * const LOCATE_NEW_AAbsControl_parser___parser_nodes___ANode___init = "new AAbsControl parser_nodes::ANode::init";
-val_t NEW_AAbsControl_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_AAbsControl_parser___parser_nodes___ANode___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__syntax___typing___ATypeCheckExpr = "init var of ATypeCheckExpr";
-void INIT_ATTRIBUTES__syntax___typing___ATypeCheckExpr(val_t p0);
-typedef void (*INIT_ATTRIBUTES__syntax___typing___ATypeCheckExpr_t)(val_t p0);
-val_t NEW_syntax___typing___ATypeCheckExpr(void);
-static const char * const LOCATE_CHECKNEW_syntax___typing___ATypeCheckExpr = "check new ATypeCheckExpr";
-void CHECKNEW_syntax___typing___ATypeCheckExpr(val_t p0);
-typedef void (*CHECKNEW_syntax___typing___ATypeCheckExpr_t)(val_t p0);
-static const char * const LOCATE_NEW_ATypeCheckExpr_parser___parser_nodes___ANode___init = "new ATypeCheckExpr parser_nodes::ANode::init";
-val_t NEW_ATypeCheckExpr_parser___parser_nodes___ANode___init(val_t p0);
-typedef val_t (*NEW_ATypeCheckExpr_parser___parser_nodes___ANode___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__syntax___icode_generation___A2IContext = "init var of A2IContext";
 void INIT_ATTRIBUTES__syntax___icode_generation___A2IContext(val_t p0);
 typedef void (*INIT_ATTRIBUTES__syntax___icode_generation___A2IContext_t)(val_t p0);
@@ -10358,16 +9846,6 @@ typedef void (*CHECKNEW_syntax___SrcModuleLoader_t)(val_t p0);
 static const char * const LOCATE_NEW_SrcModuleLoader_syntax___SrcModuleLoader___init = "new SrcModuleLoader syntax::SrcModuleLoader::init";
 val_t NEW_SrcModuleLoader_syntax___SrcModuleLoader___init(void);
 typedef val_t (*NEW_SrcModuleLoader_syntax___SrcModuleLoader___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__abstracttool___AbstractCompiler = "init var of AbstractCompiler";
-void INIT_ATTRIBUTES__abstracttool___AbstractCompiler(val_t p0);
-typedef void (*INIT_ATTRIBUTES__abstracttool___AbstractCompiler_t)(val_t p0);
-val_t NEW_abstracttool___AbstractCompiler(void);
-static const char * const LOCATE_CHECKNEW_abstracttool___AbstractCompiler = "check new AbstractCompiler";
-void CHECKNEW_abstracttool___AbstractCompiler(val_t p0);
-typedef void (*CHECKNEW_abstracttool___AbstractCompiler_t)(val_t p0);
-static const char * const LOCATE_NEW_AbstractCompiler_abstracttool___AbstractCompiler___init = "new AbstractCompiler abstracttool::AbstractCompiler::init";
-val_t NEW_AbstractCompiler_abstracttool___AbstractCompiler___init(val_t p0);
-typedef val_t (*NEW_AbstractCompiler_abstracttool___AbstractCompiler___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__program___Program = "init var of Program";
 void INIT_ATTRIBUTES__program___Program(val_t p0);
 typedef void (*INIT_ATTRIBUTES__program___Program_t)(val_t p0);
@@ -10378,6 +9856,196 @@ typedef void (*CHECKNEW_program___Program_t)(val_t p0);
 static const char * const LOCATE_NEW_Program_program___Program___init = "new Program program::Program::init";
 val_t NEW_Program_program___Program___init(val_t p0, val_t p1);
 typedef val_t (*NEW_Program_program___Program___init_t)(val_t p0, val_t p1);
+static const char * const LOCATE_INIT_ATTRIBUTES__global___reachable_method_analysis___DefaultReachableMethodAnalysis = "init var of DefaultReachableMethodAnalysis";
+void INIT_ATTRIBUTES__global___reachable_method_analysis___DefaultReachableMethodAnalysis(val_t p0);
+typedef void (*INIT_ATTRIBUTES__global___reachable_method_analysis___DefaultReachableMethodAnalysis_t)(val_t p0);
+val_t NEW_global___reachable_method_analysis___DefaultReachableMethodAnalysis(void);
+static const char * const LOCATE_CHECKNEW_global___reachable_method_analysis___DefaultReachableMethodAnalysis = "check new DefaultReachableMethodAnalysis";
+void CHECKNEW_global___reachable_method_analysis___DefaultReachableMethodAnalysis(val_t p0);
+typedef void (*CHECKNEW_global___reachable_method_analysis___DefaultReachableMethodAnalysis_t)(val_t p0);
+static const char * const LOCATE_NEW_DefaultReachableMethodAnalysis_global___reachable_method_analysis___DefaultReachableMethodAnalysis___init = "new DefaultReachableMethodAnalysis reachable_method_analysis::DefaultReachableMethodAnalysis::init";
+val_t NEW_DefaultReachableMethodAnalysis_global___reachable_method_analysis___DefaultReachableMethodAnalysis___init(void);
+typedef val_t (*NEW_DefaultReachableMethodAnalysis_global___reachable_method_analysis___DefaultReachableMethodAnalysis___init_t)(void);
+static const char * const LOCATE_INIT_ATTRIBUTES__global___cha_analysis___ChaContext = "init var of ChaContext";
+void INIT_ATTRIBUTES__global___cha_analysis___ChaContext(val_t p0);
+typedef void (*INIT_ATTRIBUTES__global___cha_analysis___ChaContext_t)(val_t p0);
+val_t NEW_global___cha_analysis___ChaContext(void);
+static const char * const LOCATE_CHECKNEW_global___cha_analysis___ChaContext = "check new ChaContext";
+void CHECKNEW_global___cha_analysis___ChaContext(val_t p0);
+typedef void (*CHECKNEW_global___cha_analysis___ChaContext_t)(val_t p0);
+static const char * const LOCATE_NEW_ChaContext_global___cha_analysis___ChaContext___init = "new ChaContext cha_analysis::ChaContext::init";
+val_t NEW_ChaContext_global___cha_analysis___ChaContext___init(void);
+typedef val_t (*NEW_ChaContext_global___cha_analysis___ChaContext___init_t)(void);
+static const char * const LOCATE_INIT_ATTRIBUTES__global___cha_analysis___ChaBuilder = "init var of ChaBuilder";
+void INIT_ATTRIBUTES__global___cha_analysis___ChaBuilder(val_t p0);
+typedef void (*INIT_ATTRIBUTES__global___cha_analysis___ChaBuilder_t)(val_t p0);
+val_t NEW_global___cha_analysis___ChaBuilder(void);
+static const char * const LOCATE_CHECKNEW_global___cha_analysis___ChaBuilder = "check new ChaBuilder";
+void CHECKNEW_global___cha_analysis___ChaBuilder(val_t p0);
+typedef void (*CHECKNEW_global___cha_analysis___ChaBuilder_t)(val_t p0);
+static const char * const LOCATE_NEW_ChaBuilder_global___cha_analysis___ChaBuilder___init = "new ChaBuilder cha_analysis::ChaBuilder::init";
+val_t NEW_ChaBuilder_global___cha_analysis___ChaBuilder___init(val_t p0);
+typedef val_t (*NEW_ChaBuilder_global___cha_analysis___ChaBuilder___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__global___cha_analysis___ChaVisitor = "init var of ChaVisitor";
+void INIT_ATTRIBUTES__global___cha_analysis___ChaVisitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__global___cha_analysis___ChaVisitor_t)(val_t p0);
+val_t NEW_global___cha_analysis___ChaVisitor(void);
+static const char * const LOCATE_CHECKNEW_global___cha_analysis___ChaVisitor = "check new ChaVisitor";
+void CHECKNEW_global___cha_analysis___ChaVisitor(val_t p0);
+typedef void (*CHECKNEW_global___cha_analysis___ChaVisitor_t)(val_t p0);
+static const char * const LOCATE_NEW_ChaVisitor_global___cha_analysis___ChaVisitor___init = "new ChaVisitor cha_analysis::ChaVisitor::init";
+val_t NEW_ChaVisitor_global___cha_analysis___ChaVisitor___init(val_t p0);
+typedef val_t (*NEW_ChaVisitor_global___cha_analysis___ChaVisitor___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis = "init var of DefaultInstantiatedTypeAnalysis";
+void INIT_ATTRIBUTES__global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis(val_t p0);
+typedef void (*INIT_ATTRIBUTES__global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis_t)(val_t p0);
+val_t NEW_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis(void);
+static const char * const LOCATE_CHECKNEW_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis = "check new DefaultInstantiatedTypeAnalysis";
+void CHECKNEW_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis(val_t p0);
+typedef void (*CHECKNEW_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis_t)(val_t p0);
+static const char * const LOCATE_NEW_DefaultInstantiatedTypeAnalysis_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init = "new DefaultInstantiatedTypeAnalysis instantiated_type_analysis::DefaultInstantiatedTypeAnalysis::init";
+val_t NEW_DefaultInstantiatedTypeAnalysis_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init(void);
+typedef val_t (*NEW_DefaultInstantiatedTypeAnalysis_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init_t)(void);
+static const char * const LOCATE_INIT_ATTRIBUTES__global___rta_analysis___RtaContext = "init var of RtaContext";
+void INIT_ATTRIBUTES__global___rta_analysis___RtaContext(val_t p0);
+typedef void (*INIT_ATTRIBUTES__global___rta_analysis___RtaContext_t)(val_t p0);
+val_t NEW_global___rta_analysis___RtaContext(void);
+static const char * const LOCATE_CHECKNEW_global___rta_analysis___RtaContext = "check new RtaContext";
+void CHECKNEW_global___rta_analysis___RtaContext(val_t p0);
+typedef void (*CHECKNEW_global___rta_analysis___RtaContext_t)(val_t p0);
+static const char * const LOCATE_NEW_RtaContext_global___rta_analysis___RtaContext___init = "new RtaContext rta_analysis::RtaContext::init";
+val_t NEW_RtaContext_global___rta_analysis___RtaContext___init(void);
+typedef val_t (*NEW_RtaContext_global___rta_analysis___RtaContext___init_t)(void);
+static const char * const LOCATE_INIT_ATTRIBUTES__global___rta_analysis___RtaBuilder = "init var of RtaBuilder";
+void INIT_ATTRIBUTES__global___rta_analysis___RtaBuilder(val_t p0);
+typedef void (*INIT_ATTRIBUTES__global___rta_analysis___RtaBuilder_t)(val_t p0);
+val_t NEW_global___rta_analysis___RtaBuilder(void);
+static const char * const LOCATE_CHECKNEW_global___rta_analysis___RtaBuilder = "check new RtaBuilder";
+void CHECKNEW_global___rta_analysis___RtaBuilder(val_t p0);
+typedef void (*CHECKNEW_global___rta_analysis___RtaBuilder_t)(val_t p0);
+static const char * const LOCATE_NEW_RtaBuilder_global___rta_analysis___RtaBuilder___init = "new RtaBuilder rta_analysis::RtaBuilder::init";
+val_t NEW_RtaBuilder_global___rta_analysis___RtaBuilder___init(val_t p0);
+typedef val_t (*NEW_RtaBuilder_global___rta_analysis___RtaBuilder___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__global___rta_analysis___RtaVisitor = "init var of RtaVisitor";
+void INIT_ATTRIBUTES__global___rta_analysis___RtaVisitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__global___rta_analysis___RtaVisitor_t)(val_t p0);
+val_t NEW_global___rta_analysis___RtaVisitor(void);
+static const char * const LOCATE_CHECKNEW_global___rta_analysis___RtaVisitor = "check new RtaVisitor";
+void CHECKNEW_global___rta_analysis___RtaVisitor(val_t p0);
+typedef void (*CHECKNEW_global___rta_analysis___RtaVisitor_t)(val_t p0);
+static const char * const LOCATE_NEW_RtaVisitor_global___rta_analysis___RtaVisitor___init = "new RtaVisitor rta_analysis::RtaVisitor::init";
+val_t NEW_RtaVisitor_global___rta_analysis___RtaVisitor___init(val_t p0);
+typedef val_t (*NEW_RtaVisitor_global___rta_analysis___RtaVisitor___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__global___reachable_as_init___DefaultReachableAsInitAnalysis = "init var of DefaultReachableAsInitAnalysis";
+void INIT_ATTRIBUTES__global___reachable_as_init___DefaultReachableAsInitAnalysis(val_t p0);
+typedef void (*INIT_ATTRIBUTES__global___reachable_as_init___DefaultReachableAsInitAnalysis_t)(val_t p0);
+val_t NEW_global___reachable_as_init___DefaultReachableAsInitAnalysis(void);
+static const char * const LOCATE_CHECKNEW_global___reachable_as_init___DefaultReachableAsInitAnalysis = "check new DefaultReachableAsInitAnalysis";
+void CHECKNEW_global___reachable_as_init___DefaultReachableAsInitAnalysis(val_t p0);
+typedef void (*CHECKNEW_global___reachable_as_init___DefaultReachableAsInitAnalysis_t)(val_t p0);
+static const char * const LOCATE_NEW_DefaultReachableAsInitAnalysis_global___reachable_as_init___DefaultReachableAsInitAnalysis___init = "new DefaultReachableAsInitAnalysis reachable_as_init::DefaultReachableAsInitAnalysis::init";
+val_t NEW_DefaultReachableAsInitAnalysis_global___reachable_as_init___DefaultReachableAsInitAnalysis___init(void);
+typedef val_t (*NEW_DefaultReachableAsInitAnalysis_global___reachable_as_init___DefaultReachableAsInitAnalysis___init_t)(void);
+static const char * const LOCATE_INIT_ATTRIBUTES__global___reachable_as_init_impl___ReachableAsInitBuilder = "init var of ReachableAsInitBuilder";
+void INIT_ATTRIBUTES__global___reachable_as_init_impl___ReachableAsInitBuilder(val_t p0);
+typedef void (*INIT_ATTRIBUTES__global___reachable_as_init_impl___ReachableAsInitBuilder_t)(val_t p0);
+val_t NEW_global___reachable_as_init_impl___ReachableAsInitBuilder(void);
+static const char * const LOCATE_CHECKNEW_global___reachable_as_init_impl___ReachableAsInitBuilder = "check new ReachableAsInitBuilder";
+void CHECKNEW_global___reachable_as_init_impl___ReachableAsInitBuilder(val_t p0);
+typedef void (*CHECKNEW_global___reachable_as_init_impl___ReachableAsInitBuilder_t)(val_t p0);
+static const char * const LOCATE_NEW_ReachableAsInitBuilder_global___reachable_as_init_impl___ReachableAsInitBuilder___init = "new ReachableAsInitBuilder reachable_as_init_impl::ReachableAsInitBuilder::init";
+val_t NEW_ReachableAsInitBuilder_global___reachable_as_init_impl___ReachableAsInitBuilder___init(val_t p0);
+typedef val_t (*NEW_ReachableAsInitBuilder_global___reachable_as_init_impl___ReachableAsInitBuilder___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__global___reachable_as_init_impl___ReachableAsInitAnalysisImpl = "init var of ReachableAsInitAnalysisImpl";
+void INIT_ATTRIBUTES__global___reachable_as_init_impl___ReachableAsInitAnalysisImpl(val_t p0);
+typedef void (*INIT_ATTRIBUTES__global___reachable_as_init_impl___ReachableAsInitAnalysisImpl_t)(val_t p0);
+val_t NEW_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl(void);
+static const char * const LOCATE_CHECKNEW_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl = "check new ReachableAsInitAnalysisImpl";
+void CHECKNEW_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl(val_t p0);
+typedef void (*CHECKNEW_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl_t)(val_t p0);
+static const char * const LOCATE_NEW_ReachableAsInitAnalysisImpl_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init = "new ReachableAsInitAnalysisImpl reachable_as_init_impl::ReachableAsInitAnalysisImpl::init";
+val_t NEW_ReachableAsInitAnalysisImpl_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init(void);
+typedef val_t (*NEW_ReachableAsInitAnalysisImpl_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init_t)(void);
+static const char * const LOCATE_INIT_ATTRIBUTES__global___reachable_as_init_impl___RAIVisitor = "init var of RAIVisitor";
+void INIT_ATTRIBUTES__global___reachable_as_init_impl___RAIVisitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__global___reachable_as_init_impl___RAIVisitor_t)(val_t p0);
+val_t NEW_global___reachable_as_init_impl___RAIVisitor(void);
+static const char * const LOCATE_CHECKNEW_global___reachable_as_init_impl___RAIVisitor = "check new RAIVisitor";
+void CHECKNEW_global___reachable_as_init_impl___RAIVisitor(val_t p0);
+typedef void (*CHECKNEW_global___reachable_as_init_impl___RAIVisitor_t)(val_t p0);
+static const char * const LOCATE_NEW_RAIVisitor_global___reachable_as_init_impl___RAIVisitor___init = "new RAIVisitor reachable_as_init_impl::RAIVisitor::init";
+val_t NEW_RAIVisitor_global___reachable_as_init_impl___RAIVisitor___init(val_t p0);
+typedef val_t (*NEW_RAIVisitor_global___reachable_as_init_impl___RAIVisitor___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis = "init var of DefaultReachableFromInitMethodAnalysis";
+void INIT_ATTRIBUTES__global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis(val_t p0);
+typedef void (*INIT_ATTRIBUTES__global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis_t)(val_t p0);
+val_t NEW_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis(void);
+static const char * const LOCATE_CHECKNEW_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis = "check new DefaultReachableFromInitMethodAnalysis";
+void CHECKNEW_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis(val_t p0);
+typedef void (*CHECKNEW_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis_t)(val_t p0);
+static const char * const LOCATE_NEW_DefaultReachableFromInitMethodAnalysis_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init = "new DefaultReachableFromInitMethodAnalysis reachable_from_init_method_analysis::DefaultReachableFromInitMethodAnalysis::init";
+val_t NEW_DefaultReachableFromInitMethodAnalysis_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init(void);
+typedef val_t (*NEW_DefaultReachableFromInitMethodAnalysis_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init_t)(void);
+static const char * const LOCATE_INIT_ATTRIBUTES__global___reachable_from_init_method_analysis_impl___RFIMABuilder = "init var of RFIMABuilder";
+void INIT_ATTRIBUTES__global___reachable_from_init_method_analysis_impl___RFIMABuilder(val_t p0);
+typedef void (*INIT_ATTRIBUTES__global___reachable_from_init_method_analysis_impl___RFIMABuilder_t)(val_t p0);
+val_t NEW_global___reachable_from_init_method_analysis_impl___RFIMABuilder(void);
+static const char * const LOCATE_CHECKNEW_global___reachable_from_init_method_analysis_impl___RFIMABuilder = "check new RFIMABuilder";
+void CHECKNEW_global___reachable_from_init_method_analysis_impl___RFIMABuilder(val_t p0);
+typedef void (*CHECKNEW_global___reachable_from_init_method_analysis_impl___RFIMABuilder_t)(val_t p0);
+static const char * const LOCATE_NEW_RFIMABuilder_global___reachable_from_init_method_analysis_impl___RFIMABuilder___init = "new RFIMABuilder reachable_from_init_method_analysis_impl::RFIMABuilder::init";
+val_t NEW_RFIMABuilder_global___reachable_from_init_method_analysis_impl___RFIMABuilder___init(val_t p0);
+typedef val_t (*NEW_RFIMABuilder_global___reachable_from_init_method_analysis_impl___RFIMABuilder___init_t)(val_t p0);
+static const char * const LOCATE_INIT_ATTRIBUTES__global___reachable_from_init_method_analysis_impl___RFIMAContext = "init var of RFIMAContext";
+void INIT_ATTRIBUTES__global___reachable_from_init_method_analysis_impl___RFIMAContext(val_t p0);
+typedef void (*INIT_ATTRIBUTES__global___reachable_from_init_method_analysis_impl___RFIMAContext_t)(val_t p0);
+val_t NEW_global___reachable_from_init_method_analysis_impl___RFIMAContext(void);
+static const char * const LOCATE_CHECKNEW_global___reachable_from_init_method_analysis_impl___RFIMAContext = "check new RFIMAContext";
+void CHECKNEW_global___reachable_from_init_method_analysis_impl___RFIMAContext(val_t p0);
+typedef void (*CHECKNEW_global___reachable_from_init_method_analysis_impl___RFIMAContext_t)(val_t p0);
+static const char * const LOCATE_NEW_RFIMAContext_global___reachable_from_init_method_analysis_impl___RFIMAContext___init = "new RFIMAContext reachable_from_init_method_analysis_impl::RFIMAContext::init";
+val_t NEW_RFIMAContext_global___reachable_from_init_method_analysis_impl___RFIMAContext___init(void);
+typedef val_t (*NEW_RFIMAContext_global___reachable_from_init_method_analysis_impl___RFIMAContext___init_t)(void);
+static const char * const LOCATE_INIT_ATTRIBUTES__global___reachable_from_init_method_analysis_impl___RFIMAVisitor = "init var of RFIMAVisitor";
+void INIT_ATTRIBUTES__global___reachable_from_init_method_analysis_impl___RFIMAVisitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__global___reachable_from_init_method_analysis_impl___RFIMAVisitor_t)(val_t p0);
+val_t NEW_global___reachable_from_init_method_analysis_impl___RFIMAVisitor(void);
+static const char * const LOCATE_CHECKNEW_global___reachable_from_init_method_analysis_impl___RFIMAVisitor = "check new RFIMAVisitor";
+void CHECKNEW_global___reachable_from_init_method_analysis_impl___RFIMAVisitor(val_t p0);
+typedef void (*CHECKNEW_global___reachable_from_init_method_analysis_impl___RFIMAVisitor_t)(val_t p0);
+static const char * const LOCATE_NEW_RFIMAVisitor_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init = "new RFIMAVisitor reachable_from_init_method_analysis_impl::RFIMAVisitor::init";
+val_t NEW_RFIMAVisitor_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(val_t p0, val_t p1);
+typedef val_t (*NEW_RFIMAVisitor_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init_t)(val_t p0, val_t p1);
+static const char * const LOCATE_INIT_ATTRIBUTES__global___inline_get_and_set___InlineGetSetVisitor = "init var of InlineGetSetVisitor";
+void INIT_ATTRIBUTES__global___inline_get_and_set___InlineGetSetVisitor(val_t p0);
+typedef void (*INIT_ATTRIBUTES__global___inline_get_and_set___InlineGetSetVisitor_t)(val_t p0);
+val_t NEW_global___inline_get_and_set___InlineGetSetVisitor(void);
+static const char * const LOCATE_CHECKNEW_global___inline_get_and_set___InlineGetSetVisitor = "check new InlineGetSetVisitor";
+void CHECKNEW_global___inline_get_and_set___InlineGetSetVisitor(val_t p0);
+typedef void (*CHECKNEW_global___inline_get_and_set___InlineGetSetVisitor_t)(val_t p0);
+static const char * const LOCATE_NEW_InlineGetSetVisitor_global___inline_get_and_set___InlineGetSetVisitor___init = "new InlineGetSetVisitor inline_get_and_set::InlineGetSetVisitor::init";
+val_t NEW_InlineGetSetVisitor_global___inline_get_and_set___InlineGetSetVisitor___init(val_t p0, val_t p1);
+typedef val_t (*NEW_InlineGetSetVisitor_global___inline_get_and_set___InlineGetSetVisitor___init_t)(val_t p0, val_t p1);
+static const char * const LOCATE_INIT_ATTRIBUTES__global___remove_out_of_init_get_test___IssetCounter = "init var of IssetCounter";
+void INIT_ATTRIBUTES__global___remove_out_of_init_get_test___IssetCounter(val_t p0);
+typedef void (*INIT_ATTRIBUTES__global___remove_out_of_init_get_test___IssetCounter_t)(val_t p0);
+val_t NEW_global___remove_out_of_init_get_test___IssetCounter(void);
+static const char * const LOCATE_CHECKNEW_global___remove_out_of_init_get_test___IssetCounter = "check new IssetCounter";
+void CHECKNEW_global___remove_out_of_init_get_test___IssetCounter(val_t p0);
+typedef void (*CHECKNEW_global___remove_out_of_init_get_test___IssetCounter_t)(val_t p0);
+static const char * const LOCATE_NEW_IssetCounter_icode___icode_tools___ICodeVisitor___init = "new IssetCounter icode_tools::ICodeVisitor::init";
+val_t NEW_IssetCounter_icode___icode_tools___ICodeVisitor___init(void);
+typedef val_t (*NEW_IssetCounter_icode___icode_tools___ICodeVisitor___init_t)(void);
+static const char * const LOCATE_INIT_ATTRIBUTES__global___remove_out_of_init_get_test___GetterTestRemover = "init var of GetterTestRemover";
+void INIT_ATTRIBUTES__global___remove_out_of_init_get_test___GetterTestRemover(val_t p0);
+typedef void (*INIT_ATTRIBUTES__global___remove_out_of_init_get_test___GetterTestRemover_t)(val_t p0);
+val_t NEW_global___remove_out_of_init_get_test___GetterTestRemover(void);
+static const char * const LOCATE_CHECKNEW_global___remove_out_of_init_get_test___GetterTestRemover = "check new GetterTestRemover";
+void CHECKNEW_global___remove_out_of_init_get_test___GetterTestRemover(val_t p0);
+typedef void (*CHECKNEW_global___remove_out_of_init_get_test___GetterTestRemover_t)(val_t p0);
+static const char * const LOCATE_NEW_GetterTestRemover_icode___icode_tools___ICodeVisitor___init = "new GetterTestRemover icode_tools::ICodeVisitor::init";
+val_t NEW_GetterTestRemover_icode___icode_tools___ICodeVisitor___init(void);
+typedef val_t (*NEW_GetterTestRemover_icode___icode_tools___ICodeVisitor___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__compiling___compiling_writer___Writer = "init var of Writer";
 void INIT_ATTRIBUTES__compiling___compiling_writer___Writer(val_t p0);
 typedef void (*INIT_ATTRIBUTES__compiling___compiling_writer___Writer_t)(val_t p0);
@@ -10468,236 +10136,6 @@ typedef void (*CHECKNEW_analysis___inline_methods___InlineMethodVisitor_t)(val_t
 static const char * const LOCATE_NEW_InlineMethodVisitor_analysis___inline_methods___InlineMethodVisitor___init = "new InlineMethodVisitor inline_methods::InlineMethodVisitor::init";
 val_t NEW_InlineMethodVisitor_analysis___inline_methods___InlineMethodVisitor___init(val_t p0, val_t p1);
 typedef val_t (*NEW_InlineMethodVisitor_analysis___inline_methods___InlineMethodVisitor___init_t)(val_t p0, val_t p1);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___reachable_method_analysis___ReachableMethodAnalysis = "init var of ReachableMethodAnalysis";
-void INIT_ATTRIBUTES__analysis___reachable_method_analysis___ReachableMethodAnalysis(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___reachable_method_analysis___ReachableMethodAnalysis_t)(val_t p0);
-val_t NEW_analysis___reachable_method_analysis___ReachableMethodAnalysis(void);
-static const char * const LOCATE_CHECKNEW_analysis___reachable_method_analysis___ReachableMethodAnalysis = "check new ReachableMethodAnalysis";
-void CHECKNEW_analysis___reachable_method_analysis___ReachableMethodAnalysis(val_t p0);
-typedef void (*CHECKNEW_analysis___reachable_method_analysis___ReachableMethodAnalysis_t)(val_t p0);
-static const char * const LOCATE_NEW_ReachableMethodAnalysis_analysis___reachable_method_analysis___ReachableMethodAnalysis___init = "new ReachableMethodAnalysis reachable_method_analysis::ReachableMethodAnalysis::init";
-val_t NEW_ReachableMethodAnalysis_analysis___reachable_method_analysis___ReachableMethodAnalysis___init(void);
-typedef val_t (*NEW_ReachableMethodAnalysis_analysis___reachable_method_analysis___ReachableMethodAnalysis___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___reachable_method_analysis___DefaultReachableMethodAnalysis = "init var of DefaultReachableMethodAnalysis";
-void INIT_ATTRIBUTES__analysis___reachable_method_analysis___DefaultReachableMethodAnalysis(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___reachable_method_analysis___DefaultReachableMethodAnalysis_t)(val_t p0);
-val_t NEW_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis(void);
-static const char * const LOCATE_CHECKNEW_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis = "check new DefaultReachableMethodAnalysis";
-void CHECKNEW_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis(val_t p0);
-typedef void (*CHECKNEW_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis_t)(val_t p0);
-static const char * const LOCATE_NEW_DefaultReachableMethodAnalysis_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___init = "new DefaultReachableMethodAnalysis reachable_method_analysis::DefaultReachableMethodAnalysis::init";
-val_t NEW_DefaultReachableMethodAnalysis_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___init(void);
-typedef val_t (*NEW_DefaultReachableMethodAnalysis_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___cha_analysis___ChaContext = "init var of ChaContext";
-void INIT_ATTRIBUTES__analysis___cha_analysis___ChaContext(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___cha_analysis___ChaContext_t)(val_t p0);
-val_t NEW_analysis___cha_analysis___ChaContext(void);
-static const char * const LOCATE_CHECKNEW_analysis___cha_analysis___ChaContext = "check new ChaContext";
-void CHECKNEW_analysis___cha_analysis___ChaContext(val_t p0);
-typedef void (*CHECKNEW_analysis___cha_analysis___ChaContext_t)(val_t p0);
-static const char * const LOCATE_NEW_ChaContext_analysis___reachable_method_analysis___ReachableMethodAnalysis___init = "new ChaContext reachable_method_analysis::ReachableMethodAnalysis::init";
-val_t NEW_ChaContext_analysis___reachable_method_analysis___ReachableMethodAnalysis___init(void);
-typedef val_t (*NEW_ChaContext_analysis___reachable_method_analysis___ReachableMethodAnalysis___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___cha_analysis___ChaBuilder = "init var of ChaBuilder";
-void INIT_ATTRIBUTES__analysis___cha_analysis___ChaBuilder(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___cha_analysis___ChaBuilder_t)(val_t p0);
-val_t NEW_analysis___cha_analysis___ChaBuilder(void);
-static const char * const LOCATE_CHECKNEW_analysis___cha_analysis___ChaBuilder = "check new ChaBuilder";
-void CHECKNEW_analysis___cha_analysis___ChaBuilder(val_t p0);
-typedef void (*CHECKNEW_analysis___cha_analysis___ChaBuilder_t)(val_t p0);
-static const char * const LOCATE_NEW_ChaBuilder_analysis___cha_analysis___ChaBuilder___init = "new ChaBuilder cha_analysis::ChaBuilder::init";
-val_t NEW_ChaBuilder_analysis___cha_analysis___ChaBuilder___init(val_t p0);
-typedef val_t (*NEW_ChaBuilder_analysis___cha_analysis___ChaBuilder___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___cha_analysis___ChaVisitor = "init var of ChaVisitor";
-void INIT_ATTRIBUTES__analysis___cha_analysis___ChaVisitor(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___cha_analysis___ChaVisitor_t)(val_t p0);
-val_t NEW_analysis___cha_analysis___ChaVisitor(void);
-static const char * const LOCATE_CHECKNEW_analysis___cha_analysis___ChaVisitor = "check new ChaVisitor";
-void CHECKNEW_analysis___cha_analysis___ChaVisitor(val_t p0);
-typedef void (*CHECKNEW_analysis___cha_analysis___ChaVisitor_t)(val_t p0);
-static const char * const LOCATE_NEW_ChaVisitor_analysis___cha_analysis___ChaVisitor___init = "new ChaVisitor cha_analysis::ChaVisitor::init";
-val_t NEW_ChaVisitor_analysis___cha_analysis___ChaVisitor___init(val_t p0);
-typedef val_t (*NEW_ChaVisitor_analysis___cha_analysis___ChaVisitor___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___instantiated_type_analysis___InstantiatedTypeAnalysis = "init var of InstantiatedTypeAnalysis";
-void INIT_ATTRIBUTES__analysis___instantiated_type_analysis___InstantiatedTypeAnalysis(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___instantiated_type_analysis___InstantiatedTypeAnalysis_t)(val_t p0);
-val_t NEW_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis(void);
-static const char * const LOCATE_CHECKNEW_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis = "check new InstantiatedTypeAnalysis";
-void CHECKNEW_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis(val_t p0);
-typedef void (*CHECKNEW_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis_t)(val_t p0);
-static const char * const LOCATE_NEW_InstantiatedTypeAnalysis_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___init = "new InstantiatedTypeAnalysis instantiated_type_analysis::InstantiatedTypeAnalysis::init";
-val_t NEW_InstantiatedTypeAnalysis_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___init(void);
-typedef val_t (*NEW_InstantiatedTypeAnalysis_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis = "init var of DefaultInstantiatedTypeAnalysis";
-void INIT_ATTRIBUTES__analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis_t)(val_t p0);
-val_t NEW_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis(void);
-static const char * const LOCATE_CHECKNEW_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis = "check new DefaultInstantiatedTypeAnalysis";
-void CHECKNEW_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis(val_t p0);
-typedef void (*CHECKNEW_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis_t)(val_t p0);
-static const char * const LOCATE_NEW_DefaultInstantiatedTypeAnalysis_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init = "new DefaultInstantiatedTypeAnalysis instantiated_type_analysis::DefaultInstantiatedTypeAnalysis::init";
-val_t NEW_DefaultInstantiatedTypeAnalysis_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init(void);
-typedef val_t (*NEW_DefaultInstantiatedTypeAnalysis_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___rta_analysis___RtaContext = "init var of RtaContext";
-void INIT_ATTRIBUTES__analysis___rta_analysis___RtaContext(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___rta_analysis___RtaContext_t)(val_t p0);
-val_t NEW_analysis___rta_analysis___RtaContext(void);
-static const char * const LOCATE_CHECKNEW_analysis___rta_analysis___RtaContext = "check new RtaContext";
-void CHECKNEW_analysis___rta_analysis___RtaContext(val_t p0);
-typedef void (*CHECKNEW_analysis___rta_analysis___RtaContext_t)(val_t p0);
-static const char * const LOCATE_NEW_RtaContext_analysis___rta_analysis___RtaContext___init = "new RtaContext rta_analysis::RtaContext::init";
-val_t NEW_RtaContext_analysis___rta_analysis___RtaContext___init(void);
-typedef val_t (*NEW_RtaContext_analysis___rta_analysis___RtaContext___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___rta_analysis___RtaBuilder = "init var of RtaBuilder";
-void INIT_ATTRIBUTES__analysis___rta_analysis___RtaBuilder(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___rta_analysis___RtaBuilder_t)(val_t p0);
-val_t NEW_analysis___rta_analysis___RtaBuilder(void);
-static const char * const LOCATE_CHECKNEW_analysis___rta_analysis___RtaBuilder = "check new RtaBuilder";
-void CHECKNEW_analysis___rta_analysis___RtaBuilder(val_t p0);
-typedef void (*CHECKNEW_analysis___rta_analysis___RtaBuilder_t)(val_t p0);
-static const char * const LOCATE_NEW_RtaBuilder_analysis___rta_analysis___RtaBuilder___init = "new RtaBuilder rta_analysis::RtaBuilder::init";
-val_t NEW_RtaBuilder_analysis___rta_analysis___RtaBuilder___init(val_t p0);
-typedef val_t (*NEW_RtaBuilder_analysis___rta_analysis___RtaBuilder___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___rta_analysis___RtaVisitor = "init var of RtaVisitor";
-void INIT_ATTRIBUTES__analysis___rta_analysis___RtaVisitor(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___rta_analysis___RtaVisitor_t)(val_t p0);
-val_t NEW_analysis___rta_analysis___RtaVisitor(void);
-static const char * const LOCATE_CHECKNEW_analysis___rta_analysis___RtaVisitor = "check new RtaVisitor";
-void CHECKNEW_analysis___rta_analysis___RtaVisitor(val_t p0);
-typedef void (*CHECKNEW_analysis___rta_analysis___RtaVisitor_t)(val_t p0);
-static const char * const LOCATE_NEW_RtaVisitor_analysis___rta_analysis___RtaVisitor___init = "new RtaVisitor rta_analysis::RtaVisitor::init";
-val_t NEW_RtaVisitor_analysis___rta_analysis___RtaVisitor___init(val_t p0);
-typedef val_t (*NEW_RtaVisitor_analysis___rta_analysis___RtaVisitor___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___reachable_as_init___ReachableAsInitAnalysis = "init var of ReachableAsInitAnalysis";
-void INIT_ATTRIBUTES__analysis___reachable_as_init___ReachableAsInitAnalysis(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___reachable_as_init___ReachableAsInitAnalysis_t)(val_t p0);
-val_t NEW_analysis___reachable_as_init___ReachableAsInitAnalysis(void);
-static const char * const LOCATE_CHECKNEW_analysis___reachable_as_init___ReachableAsInitAnalysis = "check new ReachableAsInitAnalysis";
-void CHECKNEW_analysis___reachable_as_init___ReachableAsInitAnalysis(val_t p0);
-typedef void (*CHECKNEW_analysis___reachable_as_init___ReachableAsInitAnalysis_t)(val_t p0);
-static const char * const LOCATE_NEW_ReachableAsInitAnalysis_analysis___reachable_as_init___ReachableAsInitAnalysis___init = "new ReachableAsInitAnalysis reachable_as_init::ReachableAsInitAnalysis::init";
-val_t NEW_ReachableAsInitAnalysis_analysis___reachable_as_init___ReachableAsInitAnalysis___init(void);
-typedef val_t (*NEW_ReachableAsInitAnalysis_analysis___reachable_as_init___ReachableAsInitAnalysis___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___reachable_as_init___DefaultReachableAsInitAnalysis = "init var of DefaultReachableAsInitAnalysis";
-void INIT_ATTRIBUTES__analysis___reachable_as_init___DefaultReachableAsInitAnalysis(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___reachable_as_init___DefaultReachableAsInitAnalysis_t)(val_t p0);
-val_t NEW_analysis___reachable_as_init___DefaultReachableAsInitAnalysis(void);
-static const char * const LOCATE_CHECKNEW_analysis___reachable_as_init___DefaultReachableAsInitAnalysis = "check new DefaultReachableAsInitAnalysis";
-void CHECKNEW_analysis___reachable_as_init___DefaultReachableAsInitAnalysis(val_t p0);
-typedef void (*CHECKNEW_analysis___reachable_as_init___DefaultReachableAsInitAnalysis_t)(val_t p0);
-static const char * const LOCATE_NEW_DefaultReachableAsInitAnalysis_analysis___reachable_as_init___DefaultReachableAsInitAnalysis___init = "new DefaultReachableAsInitAnalysis reachable_as_init::DefaultReachableAsInitAnalysis::init";
-val_t NEW_DefaultReachableAsInitAnalysis_analysis___reachable_as_init___DefaultReachableAsInitAnalysis___init(void);
-typedef val_t (*NEW_DefaultReachableAsInitAnalysis_analysis___reachable_as_init___DefaultReachableAsInitAnalysis___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___reachable_as_init_impl___ReachableAsInitBuilder = "init var of ReachableAsInitBuilder";
-void INIT_ATTRIBUTES__analysis___reachable_as_init_impl___ReachableAsInitBuilder(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___reachable_as_init_impl___ReachableAsInitBuilder_t)(val_t p0);
-val_t NEW_analysis___reachable_as_init_impl___ReachableAsInitBuilder(void);
-static const char * const LOCATE_CHECKNEW_analysis___reachable_as_init_impl___ReachableAsInitBuilder = "check new ReachableAsInitBuilder";
-void CHECKNEW_analysis___reachable_as_init_impl___ReachableAsInitBuilder(val_t p0);
-typedef void (*CHECKNEW_analysis___reachable_as_init_impl___ReachableAsInitBuilder_t)(val_t p0);
-static const char * const LOCATE_NEW_ReachableAsInitBuilder_analysis___reachable_as_init_impl___ReachableAsInitBuilder___init = "new ReachableAsInitBuilder reachable_as_init_impl::ReachableAsInitBuilder::init";
-val_t NEW_ReachableAsInitBuilder_analysis___reachable_as_init_impl___ReachableAsInitBuilder___init(val_t p0);
-typedef val_t (*NEW_ReachableAsInitBuilder_analysis___reachable_as_init_impl___ReachableAsInitBuilder___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl = "init var of ReachableAsInitAnalysisImpl";
-void INIT_ATTRIBUTES__analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl_t)(val_t p0);
-val_t NEW_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl(void);
-static const char * const LOCATE_CHECKNEW_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl = "check new ReachableAsInitAnalysisImpl";
-void CHECKNEW_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl(val_t p0);
-typedef void (*CHECKNEW_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl_t)(val_t p0);
-static const char * const LOCATE_NEW_ReachableAsInitAnalysisImpl_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init = "new ReachableAsInitAnalysisImpl reachable_as_init_impl::ReachableAsInitAnalysisImpl::init";
-val_t NEW_ReachableAsInitAnalysisImpl_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init(void);
-typedef val_t (*NEW_ReachableAsInitAnalysisImpl_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___reachable_as_init_impl___RAIVisitor = "init var of RAIVisitor";
-void INIT_ATTRIBUTES__analysis___reachable_as_init_impl___RAIVisitor(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___reachable_as_init_impl___RAIVisitor_t)(val_t p0);
-val_t NEW_analysis___reachable_as_init_impl___RAIVisitor(void);
-static const char * const LOCATE_CHECKNEW_analysis___reachable_as_init_impl___RAIVisitor = "check new RAIVisitor";
-void CHECKNEW_analysis___reachable_as_init_impl___RAIVisitor(val_t p0);
-typedef void (*CHECKNEW_analysis___reachable_as_init_impl___RAIVisitor_t)(val_t p0);
-static const char * const LOCATE_NEW_RAIVisitor_analysis___reachable_as_init_impl___RAIVisitor___init = "new RAIVisitor reachable_as_init_impl::RAIVisitor::init";
-val_t NEW_RAIVisitor_analysis___reachable_as_init_impl___RAIVisitor___init(val_t p0);
-typedef val_t (*NEW_RAIVisitor_analysis___reachable_as_init_impl___RAIVisitor___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis = "init var of ReachableFromInitMethodAnalysis";
-void INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis_t)(val_t p0);
-val_t NEW_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis(void);
-static const char * const LOCATE_CHECKNEW_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis = "check new ReachableFromInitMethodAnalysis";
-void CHECKNEW_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis(val_t p0);
-typedef void (*CHECKNEW_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis_t)(val_t p0);
-static const char * const LOCATE_NEW_ReachableFromInitMethodAnalysis_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init = "new ReachableFromInitMethodAnalysis reachable_from_init_method_analysis::ReachableFromInitMethodAnalysis::init";
-val_t NEW_ReachableFromInitMethodAnalysis_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init(void);
-typedef val_t (*NEW_ReachableFromInitMethodAnalysis_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis = "init var of DefaultReachableFromInitMethodAnalysis";
-void INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis_t)(val_t p0);
-val_t NEW_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis(void);
-static const char * const LOCATE_CHECKNEW_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis = "check new DefaultReachableFromInitMethodAnalysis";
-void CHECKNEW_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis(val_t p0);
-typedef void (*CHECKNEW_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis_t)(val_t p0);
-static const char * const LOCATE_NEW_DefaultReachableFromInitMethodAnalysis_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init = "new DefaultReachableFromInitMethodAnalysis reachable_from_init_method_analysis::DefaultReachableFromInitMethodAnalysis::init";
-val_t NEW_DefaultReachableFromInitMethodAnalysis_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init(void);
-typedef val_t (*NEW_DefaultReachableFromInitMethodAnalysis_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis_impl___RFIMABuilder = "init var of RFIMABuilder";
-void INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis_impl___RFIMABuilder(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis_impl___RFIMABuilder_t)(val_t p0);
-val_t NEW_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder(void);
-static const char * const LOCATE_CHECKNEW_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder = "check new RFIMABuilder";
-void CHECKNEW_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder(val_t p0);
-typedef void (*CHECKNEW_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder_t)(val_t p0);
-static const char * const LOCATE_NEW_RFIMABuilder_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___init = "new RFIMABuilder reachable_from_init_method_analysis_impl::RFIMABuilder::init";
-val_t NEW_RFIMABuilder_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___init(val_t p0);
-typedef val_t (*NEW_RFIMABuilder_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis_impl___RFIMAContext = "init var of RFIMAContext";
-void INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis_impl___RFIMAContext(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis_impl___RFIMAContext_t)(val_t p0);
-val_t NEW_analysis___reachable_from_init_method_analysis_impl___RFIMAContext(void);
-static const char * const LOCATE_CHECKNEW_analysis___reachable_from_init_method_analysis_impl___RFIMAContext = "check new RFIMAContext";
-void CHECKNEW_analysis___reachable_from_init_method_analysis_impl___RFIMAContext(val_t p0);
-typedef void (*CHECKNEW_analysis___reachable_from_init_method_analysis_impl___RFIMAContext_t)(val_t p0);
-static const char * const LOCATE_NEW_RFIMAContext_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init = "new RFIMAContext reachable_from_init_method_analysis::ReachableFromInitMethodAnalysis::init";
-val_t NEW_RFIMAContext_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init(void);
-typedef val_t (*NEW_RFIMAContext_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor = "init var of RFIMAVisitor";
-void INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor_t)(val_t p0);
-val_t NEW_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor(void);
-static const char * const LOCATE_CHECKNEW_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor = "check new RFIMAVisitor";
-void CHECKNEW_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor(val_t p0);
-typedef void (*CHECKNEW_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor_t)(val_t p0);
-static const char * const LOCATE_NEW_RFIMAVisitor_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init = "new RFIMAVisitor reachable_from_init_method_analysis_impl::RFIMAVisitor::init";
-val_t NEW_RFIMAVisitor_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(val_t p0, val_t p1);
-typedef val_t (*NEW_RFIMAVisitor_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init_t)(val_t p0, val_t p1);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___inline_get_and_set___InlineGetSetVisitor = "init var of InlineGetSetVisitor";
-void INIT_ATTRIBUTES__analysis___inline_get_and_set___InlineGetSetVisitor(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___inline_get_and_set___InlineGetSetVisitor_t)(val_t p0);
-val_t NEW_analysis___inline_get_and_set___InlineGetSetVisitor(void);
-static const char * const LOCATE_CHECKNEW_analysis___inline_get_and_set___InlineGetSetVisitor = "check new InlineGetSetVisitor";
-void CHECKNEW_analysis___inline_get_and_set___InlineGetSetVisitor(val_t p0);
-typedef void (*CHECKNEW_analysis___inline_get_and_set___InlineGetSetVisitor_t)(val_t p0);
-static const char * const LOCATE_NEW_InlineGetSetVisitor_analysis___inline_get_and_set___InlineGetSetVisitor___init = "new InlineGetSetVisitor inline_get_and_set::InlineGetSetVisitor::init";
-val_t NEW_InlineGetSetVisitor_analysis___inline_get_and_set___InlineGetSetVisitor___init(val_t p0, val_t p1);
-typedef val_t (*NEW_InlineGetSetVisitor_analysis___inline_get_and_set___InlineGetSetVisitor___init_t)(val_t p0, val_t p1);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___remove_out_of_init_get_test___IssetCounter = "init var of IssetCounter";
-void INIT_ATTRIBUTES__analysis___remove_out_of_init_get_test___IssetCounter(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___remove_out_of_init_get_test___IssetCounter_t)(val_t p0);
-val_t NEW_analysis___remove_out_of_init_get_test___IssetCounter(void);
-static const char * const LOCATE_CHECKNEW_analysis___remove_out_of_init_get_test___IssetCounter = "check new IssetCounter";
-void CHECKNEW_analysis___remove_out_of_init_get_test___IssetCounter(val_t p0);
-typedef void (*CHECKNEW_analysis___remove_out_of_init_get_test___IssetCounter_t)(val_t p0);
-static const char * const LOCATE_NEW_IssetCounter_icode___icode_tools___ICodeVisitor___init = "new IssetCounter icode_tools::ICodeVisitor::init";
-val_t NEW_IssetCounter_icode___icode_tools___ICodeVisitor___init(void);
-typedef val_t (*NEW_IssetCounter_icode___icode_tools___ICodeVisitor___init_t)(void);
-static const char * const LOCATE_INIT_ATTRIBUTES__analysis___remove_out_of_init_get_test___GetterTestRemover = "init var of GetterTestRemover";
-void INIT_ATTRIBUTES__analysis___remove_out_of_init_get_test___GetterTestRemover(val_t p0);
-typedef void (*INIT_ATTRIBUTES__analysis___remove_out_of_init_get_test___GetterTestRemover_t)(val_t p0);
-val_t NEW_analysis___remove_out_of_init_get_test___GetterTestRemover(void);
-static const char * const LOCATE_CHECKNEW_analysis___remove_out_of_init_get_test___GetterTestRemover = "check new GetterTestRemover";
-void CHECKNEW_analysis___remove_out_of_init_get_test___GetterTestRemover(val_t p0);
-typedef void (*CHECKNEW_analysis___remove_out_of_init_get_test___GetterTestRemover_t)(val_t p0);
-static const char * const LOCATE_NEW_GetterTestRemover_icode___icode_tools___ICodeVisitor___init = "new GetterTestRemover icode_tools::ICodeVisitor::init";
-val_t NEW_GetterTestRemover_icode___icode_tools___ICodeVisitor___init(void);
-typedef val_t (*NEW_GetterTestRemover_icode___icode_tools___ICodeVisitor___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__compiling___icode_generator___FileICodeDumper = "init var of FileICodeDumper";
 void INIT_ATTRIBUTES__compiling___icode_generator___FileICodeDumper(val_t p0);
 typedef void (*INIT_ATTRIBUTES__compiling___icode_generator___FileICodeDumper_t)(val_t p0);
@@ -10708,16 +10146,6 @@ typedef void (*CHECKNEW_compiling___icode_generator___FileICodeDumper_t)(val_t p
 static const char * const LOCATE_NEW_FileICodeDumper_compiling___icode_generator___FileICodeDumper___init = "new FileICodeDumper icode_generator::FileICodeDumper::init";
 val_t NEW_FileICodeDumper_compiling___icode_generator___FileICodeDumper___init(val_t p0);
 typedef val_t (*NEW_FileICodeDumper_compiling___icode_generator___FileICodeDumper___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__compiling___table_computation___ColorContext = "init var of ColorContext";
-void INIT_ATTRIBUTES__compiling___table_computation___ColorContext(val_t p0);
-typedef void (*INIT_ATTRIBUTES__compiling___table_computation___ColorContext_t)(val_t p0);
-val_t NEW_compiling___table_computation___ColorContext(void);
-static const char * const LOCATE_CHECKNEW_compiling___table_computation___ColorContext = "check new ColorContext";
-void CHECKNEW_compiling___table_computation___ColorContext(val_t p0);
-typedef void (*CHECKNEW_compiling___table_computation___ColorContext_t)(val_t p0);
-static const char * const LOCATE_NEW_ColorContext_compiling___table_computation___ColorContext___init = "new ColorContext table_computation::ColorContext::init";
-val_t NEW_ColorContext_compiling___table_computation___ColorContext___init(void);
-typedef val_t (*NEW_ColorContext_compiling___table_computation___ColorContext___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__compiling___table_computation___TableInformation = "init var of TableInformation";
 void INIT_ATTRIBUTES__compiling___table_computation___TableInformation(val_t p0);
 typedef void (*INIT_ATTRIBUTES__compiling___table_computation___TableInformation_t)(val_t p0);
@@ -10745,9 +10173,9 @@ val_t NEW_compiling___table_computation___ModuleTableEltGroup(void);
 static const char * const LOCATE_CHECKNEW_compiling___table_computation___ModuleTableEltGroup = "check new ModuleTableEltGroup";
 void CHECKNEW_compiling___table_computation___ModuleTableEltGroup(val_t p0);
 typedef void (*CHECKNEW_compiling___table_computation___ModuleTableEltGroup_t)(val_t p0);
-static const char * const LOCATE_NEW_ModuleTableEltGroup_compiling___table_computation___AbsTableElt___init = "new ModuleTableEltGroup table_computation::AbsTableElt::init";
-val_t NEW_ModuleTableEltGroup_compiling___table_computation___AbsTableElt___init(void);
-typedef val_t (*NEW_ModuleTableEltGroup_compiling___table_computation___AbsTableElt___init_t)(void);
+static const char * const LOCATE_NEW_ModuleTableEltGroup_compiling___table_computation___ModuleTableEltGroup___init = "new ModuleTableEltGroup table_computation::ModuleTableEltGroup::init";
+val_t NEW_ModuleTableEltGroup_compiling___table_computation___ModuleTableEltGroup___init(void);
+typedef val_t (*NEW_ModuleTableEltGroup_compiling___table_computation___ModuleTableEltGroup___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__compiling___table_computation___TableEltMeth = "init var of TableEltMeth";
 void INIT_ATTRIBUTES__compiling___table_computation___TableEltMeth(val_t p0);
 typedef void (*INIT_ATTRIBUTES__compiling___table_computation___TableEltMeth_t)(val_t p0);
@@ -10798,26 +10226,6 @@ typedef void (*CHECKNEW_compiling___table_computation___TableEltAttr_t)(val_t p0
 static const char * const LOCATE_NEW_TableEltAttr_compiling___table_computation___TableEltProp___init = "new TableEltAttr table_computation::TableEltProp::init";
 val_t NEW_TableEltAttr_compiling___table_computation___TableEltProp___init(val_t p0);
 typedef val_t (*NEW_TableEltAttr_compiling___table_computation___TableEltProp___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__compiling___table_computation___AbsTableEltClass = "init var of AbsTableEltClass";
-void INIT_ATTRIBUTES__compiling___table_computation___AbsTableEltClass(val_t p0);
-typedef void (*INIT_ATTRIBUTES__compiling___table_computation___AbsTableEltClass_t)(val_t p0);
-val_t NEW_compiling___table_computation___AbsTableEltClass(void);
-static const char * const LOCATE_CHECKNEW_compiling___table_computation___AbsTableEltClass = "check new AbsTableEltClass";
-void CHECKNEW_compiling___table_computation___AbsTableEltClass(val_t p0);
-typedef void (*CHECKNEW_compiling___table_computation___AbsTableEltClass_t)(val_t p0);
-static const char * const LOCATE_NEW_AbsTableEltClass_compiling___table_computation___AbsTableEltClass___init = "new AbsTableEltClass table_computation::AbsTableEltClass::init";
-val_t NEW_AbsTableEltClass_compiling___table_computation___AbsTableEltClass___init(val_t p0);
-typedef val_t (*NEW_AbsTableEltClass_compiling___table_computation___AbsTableEltClass___init_t)(val_t p0);
-static const char * const LOCATE_INIT_ATTRIBUTES__compiling___table_computation___TableEltClass = "init var of TableEltClass";
-void INIT_ATTRIBUTES__compiling___table_computation___TableEltClass(val_t p0);
-typedef void (*INIT_ATTRIBUTES__compiling___table_computation___TableEltClass_t)(val_t p0);
-val_t NEW_compiling___table_computation___TableEltClass(void);
-static const char * const LOCATE_CHECKNEW_compiling___table_computation___TableEltClass = "check new TableEltClass";
-void CHECKNEW_compiling___table_computation___TableEltClass(val_t p0);
-typedef void (*CHECKNEW_compiling___table_computation___TableEltClass_t)(val_t p0);
-static const char * const LOCATE_NEW_TableEltClass_compiling___table_computation___AbsTableEltClass___init = "new TableEltClass table_computation::AbsTableEltClass::init";
-val_t NEW_TableEltClass_compiling___table_computation___AbsTableEltClass___init(val_t p0);
-typedef val_t (*NEW_TableEltClass_compiling___table_computation___AbsTableEltClass___init_t)(val_t p0);
 static const char * const LOCATE_INIT_ATTRIBUTES__compiling___table_computation___TableEltClassId = "init var of TableEltClassId";
 void INIT_ATTRIBUTES__compiling___table_computation___TableEltClassId(val_t p0);
 typedef void (*INIT_ATTRIBUTES__compiling___table_computation___TableEltClassId_t)(val_t p0);
@@ -10865,9 +10273,9 @@ val_t NEW_compiling___table_computation___TableEltClassSelfId(void);
 static const char * const LOCATE_CHECKNEW_compiling___table_computation___TableEltClassSelfId = "check new TableEltClassSelfId";
 void CHECKNEW_compiling___table_computation___TableEltClassSelfId(val_t p0);
 typedef void (*CHECKNEW_compiling___table_computation___TableEltClassSelfId_t)(val_t p0);
-static const char * const LOCATE_NEW_TableEltClassSelfId_compiling___table_computation___AbsTableElt___init = "new TableEltClassSelfId table_computation::AbsTableElt::init";
-val_t NEW_TableEltClassSelfId_compiling___table_computation___AbsTableElt___init(void);
-typedef val_t (*NEW_TableEltClassSelfId_compiling___table_computation___AbsTableElt___init_t)(void);
+static const char * const LOCATE_NEW_TableEltClassSelfId_compiling___table_computation___TableEltClassSelfId___init = "new TableEltClassSelfId table_computation::TableEltClassSelfId::init";
+val_t NEW_TableEltClassSelfId_compiling___table_computation___TableEltClassSelfId___init(void);
+typedef val_t (*NEW_TableEltClassSelfId_compiling___table_computation___TableEltClassSelfId___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__compiling___table_computation___TableEltClassSelfName = "init var of TableEltClassSelfName";
 void INIT_ATTRIBUTES__compiling___table_computation___TableEltClassSelfName(val_t p0);
 typedef void (*INIT_ATTRIBUTES__compiling___table_computation___TableEltClassSelfName_t)(val_t p0);
@@ -10875,9 +10283,9 @@ val_t NEW_compiling___table_computation___TableEltClassSelfName(void);
 static const char * const LOCATE_CHECKNEW_compiling___table_computation___TableEltClassSelfName = "check new TableEltClassSelfName";
 void CHECKNEW_compiling___table_computation___TableEltClassSelfName(val_t p0);
 typedef void (*CHECKNEW_compiling___table_computation___TableEltClassSelfName_t)(val_t p0);
-static const char * const LOCATE_NEW_TableEltClassSelfName_compiling___table_computation___AbsTableElt___init = "new TableEltClassSelfName table_computation::AbsTableElt::init";
-val_t NEW_TableEltClassSelfName_compiling___table_computation___AbsTableElt___init(void);
-typedef val_t (*NEW_TableEltClassSelfName_compiling___table_computation___AbsTableElt___init_t)(void);
+static const char * const LOCATE_NEW_TableEltClassSelfName_compiling___table_computation___TableEltClassSelfName___init = "new TableEltClassSelfName table_computation::TableEltClassSelfName::init";
+val_t NEW_TableEltClassSelfName_compiling___table_computation___TableEltClassSelfName___init(void);
+typedef val_t (*NEW_TableEltClassSelfName_compiling___table_computation___TableEltClassSelfName___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__compiling___table_computation___TableEltClassObjectSize = "init var of TableEltClassObjectSize";
 void INIT_ATTRIBUTES__compiling___table_computation___TableEltClassObjectSize(val_t p0);
 typedef void (*INIT_ATTRIBUTES__compiling___table_computation___TableEltClassObjectSize_t)(val_t p0);
@@ -10885,9 +10293,9 @@ val_t NEW_compiling___table_computation___TableEltClassObjectSize(void);
 static const char * const LOCATE_CHECKNEW_compiling___table_computation___TableEltClassObjectSize = "check new TableEltClassObjectSize";
 void CHECKNEW_compiling___table_computation___TableEltClassObjectSize(val_t p0);
 typedef void (*CHECKNEW_compiling___table_computation___TableEltClassObjectSize_t)(val_t p0);
-static const char * const LOCATE_NEW_TableEltClassObjectSize_compiling___table_computation___AbsTableElt___init = "new TableEltClassObjectSize table_computation::AbsTableElt::init";
-val_t NEW_TableEltClassObjectSize_compiling___table_computation___AbsTableElt___init(void);
-typedef val_t (*NEW_TableEltClassObjectSize_compiling___table_computation___AbsTableElt___init_t)(void);
+static const char * const LOCATE_NEW_TableEltClassObjectSize_compiling___table_computation___TableEltClassObjectSize___init = "new TableEltClassObjectSize table_computation::TableEltClassObjectSize::init";
+val_t NEW_TableEltClassObjectSize_compiling___table_computation___TableEltClassObjectSize___init(void);
+typedef val_t (*NEW_TableEltClassObjectSize_compiling___table_computation___TableEltClassObjectSize___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__compiling___table_computation___TableEltObjectId = "init var of TableEltObjectId";
 void INIT_ATTRIBUTES__compiling___table_computation___TableEltObjectId(val_t p0);
 typedef void (*INIT_ATTRIBUTES__compiling___table_computation___TableEltObjectId_t)(val_t p0);
@@ -10895,9 +10303,9 @@ val_t NEW_compiling___table_computation___TableEltObjectId(void);
 static const char * const LOCATE_CHECKNEW_compiling___table_computation___TableEltObjectId = "check new TableEltObjectId";
 void CHECKNEW_compiling___table_computation___TableEltObjectId(val_t p0);
 typedef void (*CHECKNEW_compiling___table_computation___TableEltObjectId_t)(val_t p0);
-static const char * const LOCATE_NEW_TableEltObjectId_compiling___table_computation___AbsTableElt___init = "new TableEltObjectId table_computation::AbsTableElt::init";
-val_t NEW_TableEltObjectId_compiling___table_computation___AbsTableElt___init(void);
-typedef val_t (*NEW_TableEltObjectId_compiling___table_computation___AbsTableElt___init_t)(void);
+static const char * const LOCATE_NEW_TableEltObjectId_compiling___table_computation___TableEltObjectId___init = "new TableEltObjectId table_computation::TableEltObjectId::init";
+val_t NEW_TableEltObjectId_compiling___table_computation___TableEltObjectId___init(void);
+typedef val_t (*NEW_TableEltObjectId_compiling___table_computation___TableEltObjectId___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__compiling___table_computation___TableEltVftPointer = "init var of TableEltVftPointer";
 void INIT_ATTRIBUTES__compiling___table_computation___TableEltVftPointer(val_t p0);
 typedef void (*INIT_ATTRIBUTES__compiling___table_computation___TableEltVftPointer_t)(val_t p0);
@@ -10905,9 +10313,9 @@ val_t NEW_compiling___table_computation___TableEltVftPointer(void);
 static const char * const LOCATE_CHECKNEW_compiling___table_computation___TableEltVftPointer = "check new TableEltVftPointer";
 void CHECKNEW_compiling___table_computation___TableEltVftPointer(val_t p0);
 typedef void (*CHECKNEW_compiling___table_computation___TableEltVftPointer_t)(val_t p0);
-static const char * const LOCATE_NEW_TableEltVftPointer_compiling___table_computation___AbsTableElt___init = "new TableEltVftPointer table_computation::AbsTableElt::init";
-val_t NEW_TableEltVftPointer_compiling___table_computation___AbsTableElt___init(void);
-typedef val_t (*NEW_TableEltVftPointer_compiling___table_computation___AbsTableElt___init_t)(void);
+static const char * const LOCATE_NEW_TableEltVftPointer_compiling___table_computation___TableEltVftPointer___init = "new TableEltVftPointer table_computation::TableEltVftPointer::init";
+val_t NEW_TableEltVftPointer_compiling___table_computation___TableEltVftPointer___init(void);
+typedef val_t (*NEW_TableEltVftPointer_compiling___table_computation___TableEltVftPointer___init_t)(void);
 static const char * const LOCATE_INIT_ATTRIBUTES__compiling___compiling_icode___I2CCompilerVisitor = "init var of I2CCompilerVisitor";
 void INIT_ATTRIBUTES__compiling___compiling_icode___I2CCompilerVisitor(val_t p0);
 typedef void (*INIT_ATTRIBUTES__compiling___compiling_icode___I2CCompilerVisitor_t)(val_t p0);
@@ -10938,1520 +10346,1736 @@ typedef void (*CHECKNEW_native_interface___frontier___FrontierVisitor_t)(val_t p
 static const char * const LOCATE_NEW_FrontierVisitor_native_interface___frontier___FrontierVisitor___init = "new FrontierVisitor frontier::FrontierVisitor::init";
 val_t NEW_FrontierVisitor_native_interface___frontier___FrontierVisitor___init(val_t p0, val_t p1);
 typedef val_t (*NEW_FrontierVisitor_native_interface___frontier___FrontierVisitor___init_t)(val_t p0, val_t p1);
-const char *LOCATE_abstracttool = "src/abstracttool.nit";
+const char *LOCATE_global = "global/global.nit";
+const int SFT_global[4] = {
+  6 /* Group of ? */,
+  59 /* Group of ? */,
+  141 /* Group of ? */,
+  50 /* Group of ? */,
+};
+const char *LOCATE_abstracttool = "abstracttool.nit";
 const int SFT_abstracttool[6] = {
-  3035 /* Id of AbstractCompiler */,
+  2795 /* Id of AbstractCompiler */,
   6 /* Color of AbstractCompiler */,
-  51 /* Group of ? */,
-  134 /* Group of ? */,
-  47 /* Group of ? */,
-  47 /* Group of ? */,
+  55 /* Group of ? */,
+  142 /* Group of ? */,
+  50 /* Group of ? */,
+  50 /* Group of ? */,
 };
-const char *LOCATE_syntax = "src/syntax//syntax.nit";
+const char *LOCATE_syntax = "syntax/syntax.nit";
 const int SFT_syntax[6] = {
-  347 /* Id of SrcModuleLoader */,
+  339 /* Id of SrcModuleLoader */,
   5 /* Color of SrcModuleLoader */,
-  58 /* Group of ? */,
-  88 /* Group of ? */,
-  15 /* Group of ? */,
-  76 /* Group of ? */,
+  60 /* Group of ? */,
+  91 /* Group of ? */,
+  14 /* Group of ? */,
+  69 /* Group of ? */,
 };
-const char *LOCATE_syntax___mmbuilder = "src/syntax//mmbuilder.nit";
-const int SFT_syntax___mmbuilder[68] = {
-  2351 /* Id of CSHSorter */,
+const char *LOCATE_syntax___mmbuilder = "syntax/mmbuilder.nit";
+const int SFT_syntax___mmbuilder[69] = {
+  2387 /* Id of CSHSorter */,
   5 /* Color of CSHSorter */,
-  54 /* Group of ? */,
-  90 /* Group of ? */,
-  48 /* Group of ? */,
-  122 /* Group of ? */,
-  47 /* Group of ? */,
+  56 /* Group of ? */,
+  93 /* Group of ? */,
+  51 /* Group of ? */,
+  125 /* Group of ? */,
+  50 /* Group of ? */,
   18 /* Group of ? */,
-  2163 /* Id of MMSrcAncestor */,
+  2199 /* Id of MMSrcAncestor */,
   5 /* Color of MMSrcAncestor */,
   4 /* Group of ? */,
-  57 /* Group of ? */,
-  3003 /* Id of ClassBuilderVisitor */,
+  60 /* Group of ? */,
+  2763 /* Id of ClassBuilderVisitor */,
   6 /* Color of ClassBuilderVisitor */,
   7 /* Group of ? */,
-  81 /* Group of ? */,
-  2999 /* Id of ClassSpecializationBuilderVisitor */,
+  84 /* Group of ? */,
+  2759 /* Id of ClassSpecializationBuilderVisitor */,
   6 /* Color of ClassSpecializationBuilderVisitor */,
-  81 /* Group of ? */,
-  3007 /* Id of ClassAncestorBuilder */,
+  84 /* Group of ? */,
+  2767 /* Id of ClassAncestorBuilder */,
   6 /* Color of ClassAncestorBuilder */,
-  81 /* Group of ? */,
-  2995 /* Id of ClassVerifierVisitor */,
+  84 /* Group of ? */,
+  2755 /* Id of ClassVerifierVisitor */,
   6 /* Color of ClassVerifierVisitor */,
-  81 /* Group of ? */,
-  2787 /* Id of PropertyBuilderVisitor */,
+  84 /* Group of ? */,
+  2547 /* Id of PropertyBuilderVisitor */,
   6 /* Color of PropertyBuilderVisitor */,
-  81 /* Group of ? */,
-  2783 /* Id of PropertyVerifierVisitor */,
+  84 /* Group of ? */,
+  2543 /* Id of PropertyVerifierVisitor */,
   6 /* Color of PropertyVerifierVisitor */,
   7 /* Group of ? */,
-  81 /* Group of ? */,
+  84 /* Group of ? */,
   51 /* Id of SignatureBuilder */,
   4 /* Color of SignatureBuilder */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  47 /* Group of ? */,
-  72 /* Group of ? */,
-  72 /* Group of ? */,
-  72 /* Group of ? */,
+  50 /* Group of ? */,
+  50 /* Group of ? */,
+  74 /* Group of ? */,
+  74 /* Group of ? */,
+  74 /* Group of ? */,
   6 /* Group of ? */,
-  72 /* Group of ? */,
-  72 /* Group of ? */,
-  85 /* Group of ? */,
+  74 /* Group of ? */,
+  74 /* Group of ? */,
+  88 /* Group of ? */,
   6 /* Group of ? */,
-  72 /* Group of ? */,
+  74 /* Group of ? */,
   6 /* Group of ? */,
-  72 /* Group of ? */,
-  72 /* Group of ? */,
+  74 /* Group of ? */,
+  74 /* Group of ? */,
   8 /* Group of ? */,
-  79 /* Group of ? */,
+  81 /* Group of ? */,
   8 /* Group of ? */,
-  79 /* Group of ? */,
-  94 /* Group of ? */,
+  81 /* Group of ? */,
+  97 /* Group of ? */,
   8 /* Group of ? */,
-  79 /* Group of ? */,
-  2119 /* Id of MethidAccumulator */,
+  81 /* Group of ? */,
+  2155 /* Id of MethidAccumulator */,
   5 /* Color of MethidAccumulator */,
   3 /* Group of ? */,
-  52 /* Group of ? */,
+  55 /* Group of ? */,
   6 /* Group of ? */,
-  72 /* Group of ? */,
-  72 /* Group of ? */,
+  74 /* Group of ? */,
+  74 /* Group of ? */,
   6 /* Group of ? */,
-  72 /* Group of ? */,
+  74 /* Group of ? */,
   6 /* Group of ? */,
-  72 /* Group of ? */,
-  72 /* Group of ? */,
+  74 /* Group of ? */,
+  74 /* Group of ? */,
+  76 /* Group of ? */,
 };
-const char *LOCATE_syntax___syntax_base = "src/syntax//syntax_base.nit";
-const int SFT_syntax___syntax_base[100] = {
-  2159 /* Id of MMSrcModule */,
+const char *LOCATE_syntax___syntax_base = "syntax/syntax_base.nit";
+const int SFT_syntax___syntax_base[101] = {
+  2195 /* Id of MMSrcModule */,
   5 /* Color of MMSrcModule */,
   21 /* Group of ? */,
-  92 /* Group of ? */,
-  48 /* Group of ? */,
-  47 /* Group of ? */,
-  2843 /* Id of MMSrcLocalClass */,
+  95 /* Group of ? */,
+  51 /* Group of ? */,
+  50 /* Group of ? */,
+  2603 /* Id of MMSrcLocalClass */,
   6 /* Color of MMSrcLocalClass */,
   28 /* Group of ? */,
-  124 /* Group of ? */,
-  47 /* Group of ? */,
-  48 /* Group of ? */,
-  2847 /* Id of MMSrcAttribute */,
+  127 /* Group of ? */,
+  50 /* Group of ? */,
+  51 /* Group of ? */,
+  2607 /* Id of MMSrcAttribute */,
   6 /* Color of MMSrcAttribute */,
-  73 /* Group of ? */,
-  2839 /* Id of MMSrcMethod */,
+  76 /* Group of ? */,
+  2599 /* Id of MMSrcMethod */,
   6 /* Color of MMSrcMethod */,
-  100 /* Group of ? */,
-  3199 /* Id of MMAttrImplementationMethod */,
+  103 /* Group of ? */,
+  3263 /* Id of MMAttrImplementationMethod */,
   7 /* Color of MMAttrImplementationMethod */,
-  101 /* Group of ? */,
-  3547 /* Id of MMReadImplementationMethod */,
+  104 /* Group of ? */,
+  3627 /* Id of MMReadImplementationMethod */,
   8 /* Color of MMReadImplementationMethod */,
-  103 /* Group of ? */,
-  3543 /* Id of MMWriteImplementationMethod */,
+  106 /* Group of ? */,
+  3623 /* Id of MMWriteImplementationMethod */,
   8 /* Color of MMWriteImplementationMethod */,
-  103 /* Group of ? */,
-  3195 /* Id of MMMethSrcMethod */,
+  106 /* Group of ? */,
+  3259 /* Id of MMMethSrcMethod */,
   7 /* Color of MMMethSrcMethod */,
   11 /* Group of ? */,
-  101 /* Group of ? */,
-  2835 /* Id of MMSrcTypeProperty */,
+  104 /* Group of ? */,
+  2595 /* Id of MMSrcTypeProperty */,
   6 /* Color of MMSrcTypeProperty */,
-  72 /* Group of ? */,
-  3551 /* Id of MMImplicitInit */,
+  75 /* Group of ? */,
+  3631 /* Id of MMImplicitInit */,
   8 /* Color of MMImplicitInit */,
   19 /* Group of ? */,
-  104 /* Group of ? */,
+  107 /* Group of ? */,
   19 /* Id of Variable */,
   4 /* Color of Variable */,
   2 /* Group of ? */,
-  48 /* Group of ? */,
-  323 /* Id of VarVariable */,
+  51 /* Group of ? */,
+  315 /* Id of VarVariable */,
   5 /* Color of VarVariable */,
-  55 /* Group of ? */,
-  2087 /* Id of ParamVariable */,
+  58 /* Group of ? */,
+  2123 /* Id of ParamVariable */,
   5 /* Color of ParamVariable */,
-  55 /* Group of ? */,
-  2359 /* Id of AutoVariable */,
+  58 /* Group of ? */,
+  2395 /* Id of AutoVariable */,
   5 /* Color of AutoVariable */,
-  55 /* Group of ? */,
-  2339 /* Id of ClosureVariable */,
+  58 /* Group of ? */,
+  2375 /* Id of ClosureVariable */,
   5 /* Color of ClosureVariable */,
   5 /* Group of ? */,
-  55 /* Group of ? */,
-  2371 /* Id of AbsSyntaxVisitor */,
+  58 /* Group of ? */,
+  2407 /* Id of AbsSyntaxVisitor */,
   5 /* Color of AbsSyntaxVisitor */,
   3 /* Group of ? */,
-  52 /* Group of ? */,
-  53 /* Group of ? */,
+  55 /* Group of ? */,
+  56 /* Group of ? */,
   4 /* Group of ? */,
-  67 /* Group of ? */,
+  71 /* Group of ? */,
   7 /* Group of ? */,
-  80 /* Group of ? */,
-  76 /* Group of ? */,
   82 /* Group of ? */,
+  78 /* Group of ? */,
+  84 /* Group of ? */,
   16 /* Group of ? */,
-  102 /* Group of ? */,
-  83 /* Group of ? */,
-  82 /* Group of ? */,
-  76 /* Group of ? */,
-  73 /* Group of ? */,
+  105 /* Group of ? */,
+  85 /* Group of ? */,
+  84 /* Group of ? */,
+  78 /* Group of ? */,
+  75 /* Group of ? */,
   6 /* Group of ? */,
-  73 /* Group of ? */,
-  72 /* Group of ? */,
-  3527 /* Id of AAbsAbsSendExpr */,
-  5 /* Color of AAbsAbsSendExpr */,
-  94 /* Group of ? */,
-  3739 /* Id of AAbsSendExpr */,
-  9 /* Color of AAbsSendExpr */,
+  75 /* Group of ? */,
+  77 /* Group of ? */,
+  3607 /* Id of AAbsAbsSendExpr */,
+  6 /* Color of AAbsAbsSendExpr */,
   100 /* Group of ? */,
-  3751 /* Id of ASuperInitCall */,
+  3823 /* Id of AAbsSendExpr */,
+  9 /* Color of AAbsSendExpr */,
+  106 /* Group of ? */,
+  3835 /* Id of ASuperInitCall */,
   10 /* Color of ASuperInitCall */,
-  68 /* Group of ? */,
-  103 /* Group of ? */,
-  105 /* Group of ? */,
-  86 /* Group of ? */,
-  3787 /* Id of ASendReassignExpr */,
-  12 /* Color of ASendReassignExpr */,
-  82 /* Group of ? */,
-  91 /* Group of ? */,
-  82 /* Group of ? */,
-  82 /* Group of ? */,
-  87 /* Group of ? */,
-  82 /* Group of ? */,
-  82 /* Group of ? */,
+  75 /* Group of ? */,
+  109 /* Group of ? */,
+  111 /* Group of ? */,
+  92 /* Group of ? */,
+  3875 /* Id of ASendReassignExpr */,
+  13 /* Color of ASendReassignExpr */,
+  89 /* Group of ? */,
   97 /* Group of ? */,
+  88 /* Group of ? */,
+  88 /* Group of ? */,
+  93 /* Group of ? */,
+  88 /* Group of ? */,
+  88 /* Group of ? */,
+  103 /* Group of ? */,
   11 /* Group of ? */,
-  76 /* Group of ? */,
-  73 /* Group of ? */,
+  80 /* Group of ? */,
+  75 /* Group of ? */,
+  74 /* Group of ? */,
 };
-const char *LOCATE_parser = "src/parser//parser.nit";
-const int SFT_parser[1280] = {
+const char *LOCATE_parser = "parser/parser.nit";
+const int SFT_parser[1313] = {
   39 /* Id of State */,
   4 /* Color of State */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  2083 /* Id of Parser */,
+  50 /* Group of ? */,
+  2119 /* Id of Parser */,
   5 /* Color of Parser */,
   2 /* Group of ? */,
-  52 /* Group of ? */,
+  55 /* Group of ? */,
   4 /* Group of ? */,
-  2327 /* Id of ComputeProdLocationVisitor */,
+  2363 /* Id of ComputeProdLocationVisitor */,
   5 /* Color of ComputeProdLocationVisitor */,
   3 /* Group of ? */,
-  52 /* Group of ? */,
+  55 /* Group of ? */,
   67 /* Id of ReduceAction */,
   4 /* Color of ReduceAction */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  2051 /* Id of ReduceAction0 */,
+  50 /* Group of ? */,
+  2087 /* Id of ReduceAction0 */,
   5 /* Color of ReduceAction0 */,
-  51 /* Group of ? */,
-  2047 /* Id of ReduceAction1 */,
+  54 /* Group of ? */,
+  2083 /* Id of ReduceAction1 */,
   5 /* Color of ReduceAction1 */,
-  51 /* Group of ? */,
-  1603 /* Id of ReduceAction2 */,
+  54 /* Group of ? */,
+  1639 /* Id of ReduceAction2 */,
   5 /* Color of ReduceAction2 */,
-  51 /* Group of ? */,
-  1199 /* Id of ReduceAction3 */,
+  54 /* Group of ? */,
+  1239 /* Id of ReduceAction3 */,
   5 /* Color of ReduceAction3 */,
-  51 /* Group of ? */,
-  847 /* Id of ReduceAction4 */,
+  54 /* Group of ? */,
+  879 /* Id of ReduceAction4 */,
   5 /* Color of ReduceAction4 */,
-  51 /* Group of ? */,
-  711 /* Id of ReduceAction5 */,
+  54 /* Group of ? */,
+  703 /* Id of ReduceAction5 */,
   5 /* Color of ReduceAction5 */,
-  51 /* Group of ? */,
-  667 /* Id of ReduceAction6 */,
+  54 /* Group of ? */,
+  659 /* Id of ReduceAction6 */,
   5 /* Color of ReduceAction6 */,
-  51 /* Group of ? */,
+  54 /* Group of ? */,
   607 /* Id of ReduceAction7 */,
   5 /* Color of ReduceAction7 */,
-  51 /* Group of ? */,
-  455 /* Id of ReduceAction8 */,
+  54 /* Group of ? */,
+  447 /* Id of ReduceAction8 */,
   5 /* Color of ReduceAction8 */,
-  51 /* Group of ? */,
-  411 /* Id of ReduceAction9 */,
+  54 /* Group of ? */,
+  403 /* Id of ReduceAction9 */,
   5 /* Color of ReduceAction9 */,
-  51 /* Group of ? */,
-  2043 /* Id of ReduceAction10 */,
+  54 /* Group of ? */,
+  2079 /* Id of ReduceAction10 */,
   5 /* Color of ReduceAction10 */,
-  51 /* Group of ? */,
-  1999 /* Id of ReduceAction11 */,
+  54 /* Group of ? */,
+  2035 /* Id of ReduceAction11 */,
   5 /* Color of ReduceAction11 */,
-  51 /* Group of ? */,
-  1955 /* Id of ReduceAction12 */,
+  54 /* Group of ? */,
+  1991 /* Id of ReduceAction12 */,
   5 /* Color of ReduceAction12 */,
-  51 /* Group of ? */,
-  1911 /* Id of ReduceAction13 */,
+  54 /* Group of ? */,
+  1947 /* Id of ReduceAction13 */,
   5 /* Color of ReduceAction13 */,
-  51 /* Group of ? */,
-  1867 /* Id of ReduceAction14 */,
+  54 /* Group of ? */,
+  1903 /* Id of ReduceAction14 */,
   5 /* Color of ReduceAction14 */,
-  51 /* Group of ? */,
-  1823 /* Id of ReduceAction15 */,
+  54 /* Group of ? */,
+  1859 /* Id of ReduceAction15 */,
   5 /* Color of ReduceAction15 */,
-  51 /* Group of ? */,
-  1779 /* Id of ReduceAction16 */,
+  54 /* Group of ? */,
+  1815 /* Id of ReduceAction16 */,
   5 /* Color of ReduceAction16 */,
-  51 /* Group of ? */,
-  1735 /* Id of ReduceAction17 */,
+  54 /* Group of ? */,
+  1771 /* Id of ReduceAction17 */,
   5 /* Color of ReduceAction17 */,
-  51 /* Group of ? */,
-  1691 /* Id of ReduceAction18 */,
+  54 /* Group of ? */,
+  1727 /* Id of ReduceAction18 */,
   5 /* Color of ReduceAction18 */,
-  51 /* Group of ? */,
-  1647 /* Id of ReduceAction19 */,
+  54 /* Group of ? */,
+  1683 /* Id of ReduceAction19 */,
   5 /* Color of ReduceAction19 */,
-  51 /* Group of ? */,
-  1599 /* Id of ReduceAction20 */,
+  54 /* Group of ? */,
+  1635 /* Id of ReduceAction20 */,
   5 /* Color of ReduceAction20 */,
-  51 /* Group of ? */,
-  1555 /* Id of ReduceAction21 */,
+  54 /* Group of ? */,
+  1591 /* Id of ReduceAction21 */,
   5 /* Color of ReduceAction21 */,
-  51 /* Group of ? */,
-  1515 /* Id of ReduceAction22 */,
+  54 /* Group of ? */,
+  1547 /* Id of ReduceAction22 */,
   5 /* Color of ReduceAction22 */,
-  51 /* Group of ? */,
-  1471 /* Id of ReduceAction23 */,
+  54 /* Group of ? */,
+  1507 /* Id of ReduceAction23 */,
   5 /* Color of ReduceAction23 */,
-  51 /* Group of ? */,
-  1431 /* Id of ReduceAction24 */,
+  54 /* Group of ? */,
+  1467 /* Id of ReduceAction24 */,
   5 /* Color of ReduceAction24 */,
-  51 /* Group of ? */,
-  1395 /* Id of ReduceAction25 */,
+  54 /* Group of ? */,
+  1423 /* Id of ReduceAction25 */,
   5 /* Color of ReduceAction25 */,
-  51 /* Group of ? */,
-  1363 /* Id of ReduceAction26 */,
+  54 /* Group of ? */,
+  1391 /* Id of ReduceAction26 */,
   5 /* Color of ReduceAction26 */,
-  51 /* Group of ? */,
-  1331 /* Id of ReduceAction27 */,
+  54 /* Group of ? */,
+  1371 /* Id of ReduceAction27 */,
   5 /* Color of ReduceAction27 */,
-  51 /* Group of ? */,
-  1287 /* Id of ReduceAction28 */,
+  54 /* Group of ? */,
+  1327 /* Id of ReduceAction28 */,
   5 /* Color of ReduceAction28 */,
-  51 /* Group of ? */,
-  1243 /* Id of ReduceAction29 */,
+  54 /* Group of ? */,
+  1283 /* Id of ReduceAction29 */,
   5 /* Color of ReduceAction29 */,
-  51 /* Group of ? */,
-  1195 /* Id of ReduceAction30 */,
+  54 /* Group of ? */,
+  1235 /* Id of ReduceAction30 */,
   5 /* Color of ReduceAction30 */,
-  51 /* Group of ? */,
-  1151 /* Id of ReduceAction31 */,
+  54 /* Group of ? */,
+  1191 /* Id of ReduceAction31 */,
   5 /* Color of ReduceAction31 */,
-  51 /* Group of ? */,
-  1115 /* Id of ReduceAction32 */,
+  54 /* Group of ? */,
+  1147 /* Id of ReduceAction32 */,
   5 /* Color of ReduceAction32 */,
-  51 /* Group of ? */,
-  1071 /* Id of ReduceAction33 */,
+  54 /* Group of ? */,
+  1111 /* Id of ReduceAction33 */,
   5 /* Color of ReduceAction33 */,
-  51 /* Group of ? */,
-  1047 /* Id of ReduceAction34 */,
+  54 /* Group of ? */,
+  1075 /* Id of ReduceAction34 */,
   5 /* Color of ReduceAction34 */,
-  51 /* Group of ? */,
-  1011 /* Id of ReduceAction35 */,
+  54 /* Group of ? */,
+  1047 /* Id of ReduceAction35 */,
   5 /* Color of ReduceAction35 */,
-  51 /* Group of ? */,
-  975 /* Id of ReduceAction36 */,
+  54 /* Group of ? */,
+  1007 /* Id of ReduceAction36 */,
   5 /* Color of ReduceAction36 */,
-  51 /* Group of ? */,
-  939 /* Id of ReduceAction37 */,
+  54 /* Group of ? */,
+  975 /* Id of ReduceAction37 */,
   5 /* Color of ReduceAction37 */,
-  51 /* Group of ? */,
-  883 /* Id of ReduceAction39 */,
+  54 /* Group of ? */,
+  919 /* Id of ReduceAction39 */,
   5 /* Color of ReduceAction39 */,
-  51 /* Group of ? */,
-  843 /* Id of ReduceAction40 */,
+  54 /* Group of ? */,
+  875 /* Id of ReduceAction40 */,
   5 /* Color of ReduceAction40 */,
-  51 /* Group of ? */,
-  823 /* Id of ReduceAction41 */,
+  54 /* Group of ? */,
+  835 /* Id of ReduceAction41 */,
   5 /* Color of ReduceAction41 */,
-  51 /* Group of ? */,
-  783 /* Id of ReduceAction42 */,
+  54 /* Group of ? */,
+  803 /* Id of ReduceAction42 */,
   5 /* Color of ReduceAction42 */,
-  51 /* Group of ? */,
-  747 /* Id of ReduceAction43 */,
+  54 /* Group of ? */,
+  759 /* Id of ReduceAction43 */,
   5 /* Color of ReduceAction43 */,
-  51 /* Group of ? */,
-  735 /* Id of ReduceAction44 */,
+  54 /* Group of ? */,
+  727 /* Id of ReduceAction44 */,
   5 /* Color of ReduceAction44 */,
-  51 /* Group of ? */,
-  731 /* Id of ReduceAction45 */,
+  54 /* Group of ? */,
+  723 /* Id of ReduceAction45 */,
   5 /* Color of ReduceAction45 */,
-  51 /* Group of ? */,
-  727 /* Id of ReduceAction46 */,
+  54 /* Group of ? */,
+  719 /* Id of ReduceAction46 */,
   5 /* Color of ReduceAction46 */,
-  51 /* Group of ? */,
-  723 /* Id of ReduceAction47 */,
+  54 /* Group of ? */,
+  715 /* Id of ReduceAction47 */,
   5 /* Color of ReduceAction47 */,
-  51 /* Group of ? */,
-  719 /* Id of ReduceAction48 */,
+  54 /* Group of ? */,
+  711 /* Id of ReduceAction48 */,
   5 /* Color of ReduceAction48 */,
-  51 /* Group of ? */,
-  715 /* Id of ReduceAction49 */,
+  54 /* Group of ? */,
+  707 /* Id of ReduceAction49 */,
   5 /* Color of ReduceAction49 */,
-  51 /* Group of ? */,
-  707 /* Id of ReduceAction50 */,
+  54 /* Group of ? */,
+  699 /* Id of ReduceAction50 */,
   5 /* Color of ReduceAction50 */,
-  51 /* Group of ? */,
-  703 /* Id of ReduceAction51 */,
+  54 /* Group of ? */,
+  695 /* Id of ReduceAction51 */,
   5 /* Color of ReduceAction51 */,
-  51 /* Group of ? */,
-  699 /* Id of ReduceAction52 */,
+  54 /* Group of ? */,
+  691 /* Id of ReduceAction52 */,
   5 /* Color of ReduceAction52 */,
-  51 /* Group of ? */,
-  695 /* Id of ReduceAction53 */,
+  54 /* Group of ? */,
+  687 /* Id of ReduceAction53 */,
   5 /* Color of ReduceAction53 */,
-  51 /* Group of ? */,
-  691 /* Id of ReduceAction54 */,
+  54 /* Group of ? */,
+  683 /* Id of ReduceAction54 */,
   5 /* Color of ReduceAction54 */,
-  51 /* Group of ? */,
-  687 /* Id of ReduceAction55 */,
+  54 /* Group of ? */,
+  679 /* Id of ReduceAction55 */,
   5 /* Color of ReduceAction55 */,
-  51 /* Group of ? */,
-  683 /* Id of ReduceAction56 */,
+  54 /* Group of ? */,
+  675 /* Id of ReduceAction56 */,
   5 /* Color of ReduceAction56 */,
-  51 /* Group of ? */,
-  679 /* Id of ReduceAction57 */,
+  54 /* Group of ? */,
+  671 /* Id of ReduceAction57 */,
   5 /* Color of ReduceAction57 */,
-  51 /* Group of ? */,
-  675 /* Id of ReduceAction58 */,
+  54 /* Group of ? */,
+  667 /* Id of ReduceAction58 */,
   5 /* Color of ReduceAction58 */,
-  51 /* Group of ? */,
-  671 /* Id of ReduceAction59 */,
+  54 /* Group of ? */,
+  663 /* Id of ReduceAction59 */,
   5 /* Color of ReduceAction59 */,
-  51 /* Group of ? */,
-  663 /* Id of ReduceAction60 */,
+  54 /* Group of ? */,
+  655 /* Id of ReduceAction60 */,
   5 /* Color of ReduceAction60 */,
-  51 /* Group of ? */,
-  659 /* Id of ReduceAction61 */,
+  54 /* Group of ? */,
+  651 /* Id of ReduceAction61 */,
   5 /* Color of ReduceAction61 */,
-  51 /* Group of ? */,
-  655 /* Id of ReduceAction62 */,
+  54 /* Group of ? */,
+  647 /* Id of ReduceAction62 */,
   5 /* Color of ReduceAction62 */,
-  51 /* Group of ? */,
-  651 /* Id of ReduceAction63 */,
+  54 /* Group of ? */,
+  643 /* Id of ReduceAction63 */,
   5 /* Color of ReduceAction63 */,
-  51 /* Group of ? */,
-  647 /* Id of ReduceAction64 */,
+  54 /* Group of ? */,
+  639 /* Id of ReduceAction64 */,
   5 /* Color of ReduceAction64 */,
-  51 /* Group of ? */,
-  643 /* Id of ReduceAction65 */,
+  54 /* Group of ? */,
+  635 /* Id of ReduceAction65 */,
   5 /* Color of ReduceAction65 */,
-  51 /* Group of ? */,
-  639 /* Id of ReduceAction66 */,
+  54 /* Group of ? */,
+  631 /* Id of ReduceAction66 */,
   5 /* Color of ReduceAction66 */,
-  51 /* Group of ? */,
-  635 /* Id of ReduceAction67 */,
+  54 /* Group of ? */,
+  627 /* Id of ReduceAction67 */,
   5 /* Color of ReduceAction67 */,
-  51 /* Group of ? */,
-  631 /* Id of ReduceAction68 */,
+  54 /* Group of ? */,
+  623 /* Id of ReduceAction68 */,
   5 /* Color of ReduceAction68 */,
-  51 /* Group of ? */,
+  54 /* Group of ? */,
   619 /* Id of ReduceAction69 */,
   5 /* Color of ReduceAction69 */,
-  51 /* Group of ? */,
+  54 /* Group of ? */,
   603 /* Id of ReduceAction70 */,
   5 /* Color of ReduceAction70 */,
-  51 /* Group of ? */,
+  54 /* Group of ? */,
   591 /* Id of ReduceAction71 */,
   5 /* Color of ReduceAction71 */,
-  51 /* Group of ? */,
-  563 /* Id of ReduceAction72 */,
+  54 /* Group of ? */,
+  579 /* Id of ReduceAction72 */,
   5 /* Color of ReduceAction72 */,
-  51 /* Group of ? */,
-  527 /* Id of ReduceAction73 */,
+  54 /* Group of ? */,
+  551 /* Id of ReduceAction73 */,
   5 /* Color of ReduceAction73 */,
-  51 /* Group of ? */,
-  499 /* Id of ReduceAction74 */,
+  54 /* Group of ? */,
+  515 /* Id of ReduceAction74 */,
   5 /* Color of ReduceAction74 */,
-  51 /* Group of ? */,
-  475 /* Id of ReduceAction75 */,
+  54 /* Group of ? */,
+  487 /* Id of ReduceAction75 */,
   5 /* Color of ReduceAction75 */,
-  51 /* Group of ? */,
-  471 /* Id of ReduceAction76 */,
+  54 /* Group of ? */,
+  463 /* Id of ReduceAction76 */,
   5 /* Color of ReduceAction76 */,
-  51 /* Group of ? */,
-  467 /* Id of ReduceAction77 */,
+  54 /* Group of ? */,
+  459 /* Id of ReduceAction77 */,
   5 /* Color of ReduceAction77 */,
-  51 /* Group of ? */,
-  463 /* Id of ReduceAction78 */,
+  54 /* Group of ? */,
+  455 /* Id of ReduceAction78 */,
   5 /* Color of ReduceAction78 */,
-  51 /* Group of ? */,
-  459 /* Id of ReduceAction79 */,
+  54 /* Group of ? */,
+  451 /* Id of ReduceAction79 */,
   5 /* Color of ReduceAction79 */,
-  51 /* Group of ? */,
-  451 /* Id of ReduceAction80 */,
+  54 /* Group of ? */,
+  443 /* Id of ReduceAction80 */,
   5 /* Color of ReduceAction80 */,
-  51 /* Group of ? */,
-  447 /* Id of ReduceAction81 */,
+  54 /* Group of ? */,
+  439 /* Id of ReduceAction81 */,
   5 /* Color of ReduceAction81 */,
-  51 /* Group of ? */,
-  443 /* Id of ReduceAction82 */,
+  54 /* Group of ? */,
+  435 /* Id of ReduceAction82 */,
   5 /* Color of ReduceAction82 */,
-  51 /* Group of ? */,
-  439 /* Id of ReduceAction83 */,
+  54 /* Group of ? */,
+  431 /* Id of ReduceAction83 */,
   5 /* Color of ReduceAction83 */,
-  51 /* Group of ? */,
-  435 /* Id of ReduceAction84 */,
+  54 /* Group of ? */,
+  427 /* Id of ReduceAction84 */,
   5 /* Color of ReduceAction84 */,
-  51 /* Group of ? */,
-  431 /* Id of ReduceAction85 */,
+  54 /* Group of ? */,
+  423 /* Id of ReduceAction85 */,
   5 /* Color of ReduceAction85 */,
-  51 /* Group of ? */,
-  427 /* Id of ReduceAction86 */,
+  54 /* Group of ? */,
+  419 /* Id of ReduceAction86 */,
   5 /* Color of ReduceAction86 */,
-  51 /* Group of ? */,
-  423 /* Id of ReduceAction87 */,
+  54 /* Group of ? */,
+  415 /* Id of ReduceAction87 */,
   5 /* Color of ReduceAction87 */,
-  51 /* Group of ? */,
-  419 /* Id of ReduceAction88 */,
+  54 /* Group of ? */,
+  411 /* Id of ReduceAction88 */,
   5 /* Color of ReduceAction88 */,
-  51 /* Group of ? */,
-  415 /* Id of ReduceAction89 */,
+  54 /* Group of ? */,
+  407 /* Id of ReduceAction89 */,
   5 /* Color of ReduceAction89 */,
-  51 /* Group of ? */,
-  407 /* Id of ReduceAction90 */,
+  54 /* Group of ? */,
+  399 /* Id of ReduceAction90 */,
   5 /* Color of ReduceAction90 */,
-  51 /* Group of ? */,
-  403 /* Id of ReduceAction91 */,
+  54 /* Group of ? */,
+  395 /* Id of ReduceAction91 */,
   5 /* Color of ReduceAction91 */,
-  51 /* Group of ? */,
-  399 /* Id of ReduceAction92 */,
+  54 /* Group of ? */,
+  391 /* Id of ReduceAction92 */,
   5 /* Color of ReduceAction92 */,
-  51 /* Group of ? */,
-  395 /* Id of ReduceAction93 */,
+  54 /* Group of ? */,
+  387 /* Id of ReduceAction93 */,
   5 /* Color of ReduceAction93 */,
-  51 /* Group of ? */,
-  391 /* Id of ReduceAction94 */,
+  54 /* Group of ? */,
+  383 /* Id of ReduceAction94 */,
   5 /* Color of ReduceAction94 */,
-  51 /* Group of ? */,
-  387 /* Id of ReduceAction95 */,
+  54 /* Group of ? */,
+  379 /* Id of ReduceAction95 */,
   5 /* Color of ReduceAction95 */,
-  51 /* Group of ? */,
-  383 /* Id of ReduceAction96 */,
+  54 /* Group of ? */,
+  375 /* Id of ReduceAction96 */,
   5 /* Color of ReduceAction96 */,
-  51 /* Group of ? */,
-  379 /* Id of ReduceAction97 */,
+  54 /* Group of ? */,
+  371 /* Id of ReduceAction97 */,
   5 /* Color of ReduceAction97 */,
-  51 /* Group of ? */,
-  375 /* Id of ReduceAction98 */,
+  54 /* Group of ? */,
+  367 /* Id of ReduceAction98 */,
   5 /* Color of ReduceAction98 */,
-  51 /* Group of ? */,
-  371 /* Id of ReduceAction99 */,
+  54 /* Group of ? */,
+  363 /* Id of ReduceAction99 */,
   5 /* Color of ReduceAction99 */,
-  51 /* Group of ? */,
-  2039 /* Id of ReduceAction100 */,
+  54 /* Group of ? */,
+  2075 /* Id of ReduceAction100 */,
   5 /* Color of ReduceAction100 */,
-  51 /* Group of ? */,
-  2035 /* Id of ReduceAction101 */,
+  54 /* Group of ? */,
+  2071 /* Id of ReduceAction101 */,
   5 /* Color of ReduceAction101 */,
-  51 /* Group of ? */,
-  2031 /* Id of ReduceAction102 */,
+  54 /* Group of ? */,
+  2067 /* Id of ReduceAction102 */,
   5 /* Color of ReduceAction102 */,
-  51 /* Group of ? */,
-  2027 /* Id of ReduceAction103 */,
+  54 /* Group of ? */,
+  2063 /* Id of ReduceAction103 */,
   5 /* Color of ReduceAction103 */,
-  51 /* Group of ? */,
-  2023 /* Id of ReduceAction104 */,
+  54 /* Group of ? */,
+  2059 /* Id of ReduceAction104 */,
   5 /* Color of ReduceAction104 */,
-  51 /* Group of ? */,
-  2019 /* Id of ReduceAction105 */,
+  54 /* Group of ? */,
+  2055 /* Id of ReduceAction105 */,
   5 /* Color of ReduceAction105 */,
-  51 /* Group of ? */,
-  2015 /* Id of ReduceAction106 */,
+  54 /* Group of ? */,
+  2051 /* Id of ReduceAction106 */,
   5 /* Color of ReduceAction106 */,
-  51 /* Group of ? */,
-  2011 /* Id of ReduceAction107 */,
+  54 /* Group of ? */,
+  2047 /* Id of ReduceAction107 */,
   5 /* Color of ReduceAction107 */,
-  51 /* Group of ? */,
-  2007 /* Id of ReduceAction108 */,
+  54 /* Group of ? */,
+  2043 /* Id of ReduceAction108 */,
   5 /* Color of ReduceAction108 */,
-  51 /* Group of ? */,
-  2003 /* Id of ReduceAction109 */,
+  54 /* Group of ? */,
+  2039 /* Id of ReduceAction109 */,
   5 /* Color of ReduceAction109 */,
-  51 /* Group of ? */,
-  1995 /* Id of ReduceAction110 */,
+  54 /* Group of ? */,
+  2031 /* Id of ReduceAction110 */,
   5 /* Color of ReduceAction110 */,
-  51 /* Group of ? */,
-  1991 /* Id of ReduceAction111 */,
+  54 /* Group of ? */,
+  2027 /* Id of ReduceAction111 */,
   5 /* Color of ReduceAction111 */,
-  51 /* Group of ? */,
-  1987 /* Id of ReduceAction112 */,
+  54 /* Group of ? */,
+  2023 /* Id of ReduceAction112 */,
   5 /* Color of ReduceAction112 */,
-  51 /* Group of ? */,
-  1983 /* Id of ReduceAction113 */,
+  54 /* Group of ? */,
+  2019 /* Id of ReduceAction113 */,
   5 /* Color of ReduceAction113 */,
-  51 /* Group of ? */,
-  1979 /* Id of ReduceAction114 */,
+  54 /* Group of ? */,
+  2015 /* Id of ReduceAction114 */,
   5 /* Color of ReduceAction114 */,
-  51 /* Group of ? */,
-  1975 /* Id of ReduceAction115 */,
+  54 /* Group of ? */,
+  2011 /* Id of ReduceAction115 */,
   5 /* Color of ReduceAction115 */,
-  51 /* Group of ? */,
-  1971 /* Id of ReduceAction116 */,
+  54 /* Group of ? */,
+  2007 /* Id of ReduceAction116 */,
   5 /* Color of ReduceAction116 */,
-  51 /* Group of ? */,
-  1967 /* Id of ReduceAction117 */,
+  54 /* Group of ? */,
+  2003 /* Id of ReduceAction117 */,
   5 /* Color of ReduceAction117 */,
-  51 /* Group of ? */,
-  1963 /* Id of ReduceAction118 */,
+  54 /* Group of ? */,
+  1999 /* Id of ReduceAction118 */,
   5 /* Color of ReduceAction118 */,
-  51 /* Group of ? */,
-  1959 /* Id of ReduceAction119 */,
+  54 /* Group of ? */,
+  1995 /* Id of ReduceAction119 */,
   5 /* Color of ReduceAction119 */,
-  51 /* Group of ? */,
-  1951 /* Id of ReduceAction120 */,
+  54 /* Group of ? */,
+  1987 /* Id of ReduceAction120 */,
   5 /* Color of ReduceAction120 */,
-  51 /* Group of ? */,
-  1947 /* Id of ReduceAction121 */,
+  54 /* Group of ? */,
+  1983 /* Id of ReduceAction121 */,
   5 /* Color of ReduceAction121 */,
-  51 /* Group of ? */,
-  1943 /* Id of ReduceAction122 */,
+  54 /* Group of ? */,
+  1979 /* Id of ReduceAction122 */,
   5 /* Color of ReduceAction122 */,
-  51 /* Group of ? */,
-  1939 /* Id of ReduceAction123 */,
+  54 /* Group of ? */,
+  1975 /* Id of ReduceAction123 */,
   5 /* Color of ReduceAction123 */,
-  51 /* Group of ? */,
-  1935 /* Id of ReduceAction124 */,
+  54 /* Group of ? */,
+  1971 /* Id of ReduceAction124 */,
   5 /* Color of ReduceAction124 */,
-  51 /* Group of ? */,
-  1931 /* Id of ReduceAction125 */,
+  54 /* Group of ? */,
+  1967 /* Id of ReduceAction125 */,
   5 /* Color of ReduceAction125 */,
-  51 /* Group of ? */,
-  1927 /* Id of ReduceAction126 */,
+  54 /* Group of ? */,
+  1963 /* Id of ReduceAction126 */,
   5 /* Color of ReduceAction126 */,
-  51 /* Group of ? */,
-  1923 /* Id of ReduceAction127 */,
+  54 /* Group of ? */,
+  1959 /* Id of ReduceAction127 */,
   5 /* Color of ReduceAction127 */,
-  51 /* Group of ? */,
-  1919 /* Id of ReduceAction128 */,
+  54 /* Group of ? */,
+  1955 /* Id of ReduceAction128 */,
   5 /* Color of ReduceAction128 */,
-  51 /* Group of ? */,
-  1915 /* Id of ReduceAction129 */,
+  54 /* Group of ? */,
+  1951 /* Id of ReduceAction129 */,
   5 /* Color of ReduceAction129 */,
-  51 /* Group of ? */,
-  1907 /* Id of ReduceAction130 */,
+  54 /* Group of ? */,
+  1943 /* Id of ReduceAction130 */,
   5 /* Color of ReduceAction130 */,
-  51 /* Group of ? */,
-  1903 /* Id of ReduceAction131 */,
+  54 /* Group of ? */,
+  1939 /* Id of ReduceAction131 */,
   5 /* Color of ReduceAction131 */,
-  51 /* Group of ? */,
-  1899 /* Id of ReduceAction132 */,
+  54 /* Group of ? */,
+  1935 /* Id of ReduceAction132 */,
   5 /* Color of ReduceAction132 */,
-  51 /* Group of ? */,
-  1895 /* Id of ReduceAction133 */,
+  54 /* Group of ? */,
+  1931 /* Id of ReduceAction133 */,
   5 /* Color of ReduceAction133 */,
-  51 /* Group of ? */,
-  1891 /* Id of ReduceAction134 */,
+  54 /* Group of ? */,
+  1927 /* Id of ReduceAction134 */,
   5 /* Color of ReduceAction134 */,
-  51 /* Group of ? */,
-  1887 /* Id of ReduceAction135 */,
+  54 /* Group of ? */,
+  1923 /* Id of ReduceAction135 */,
   5 /* Color of ReduceAction135 */,
-  51 /* Group of ? */,
-  1883 /* Id of ReduceAction136 */,
+  54 /* Group of ? */,
+  1919 /* Id of ReduceAction136 */,
   5 /* Color of ReduceAction136 */,
-  51 /* Group of ? */,
-  1879 /* Id of ReduceAction137 */,
+  54 /* Group of ? */,
+  1915 /* Id of ReduceAction137 */,
   5 /* Color of ReduceAction137 */,
-  51 /* Group of ? */,
-  1875 /* Id of ReduceAction138 */,
+  54 /* Group of ? */,
+  1911 /* Id of ReduceAction138 */,
   5 /* Color of ReduceAction138 */,
-  51 /* Group of ? */,
-  1871 /* Id of ReduceAction139 */,
+  54 /* Group of ? */,
+  1907 /* Id of ReduceAction139 */,
   5 /* Color of ReduceAction139 */,
-  51 /* Group of ? */,
-  1863 /* Id of ReduceAction140 */,
+  54 /* Group of ? */,
+  1899 /* Id of ReduceAction140 */,
   5 /* Color of ReduceAction140 */,
-  51 /* Group of ? */,
-  1859 /* Id of ReduceAction141 */,
+  54 /* Group of ? */,
+  1895 /* Id of ReduceAction141 */,
   5 /* Color of ReduceAction141 */,
-  51 /* Group of ? */,
-  1855 /* Id of ReduceAction142 */,
+  54 /* Group of ? */,
+  1891 /* Id of ReduceAction142 */,
   5 /* Color of ReduceAction142 */,
-  51 /* Group of ? */,
-  1851 /* Id of ReduceAction143 */,
+  54 /* Group of ? */,
+  1887 /* Id of ReduceAction143 */,
   5 /* Color of ReduceAction143 */,
-  51 /* Group of ? */,
-  1847 /* Id of ReduceAction144 */,
+  54 /* Group of ? */,
+  1883 /* Id of ReduceAction144 */,
   5 /* Color of ReduceAction144 */,
-  51 /* Group of ? */,
-  1843 /* Id of ReduceAction145 */,
+  54 /* Group of ? */,
+  1879 /* Id of ReduceAction145 */,
   5 /* Color of ReduceAction145 */,
-  51 /* Group of ? */,
-  1839 /* Id of ReduceAction146 */,
+  54 /* Group of ? */,
+  1875 /* Id of ReduceAction146 */,
   5 /* Color of ReduceAction146 */,
-  51 /* Group of ? */,
-  1835 /* Id of ReduceAction147 */,
+  54 /* Group of ? */,
+  1871 /* Id of ReduceAction147 */,
   5 /* Color of ReduceAction147 */,
-  51 /* Group of ? */,
-  1831 /* Id of ReduceAction148 */,
+  54 /* Group of ? */,
+  1867 /* Id of ReduceAction148 */,
   5 /* Color of ReduceAction148 */,
-  51 /* Group of ? */,
-  1827 /* Id of ReduceAction149 */,
+  54 /* Group of ? */,
+  1863 /* Id of ReduceAction149 */,
   5 /* Color of ReduceAction149 */,
-  51 /* Group of ? */,
-  1819 /* Id of ReduceAction150 */,
+  54 /* Group of ? */,
+  1855 /* Id of ReduceAction150 */,
   5 /* Color of ReduceAction150 */,
-  51 /* Group of ? */,
-  1815 /* Id of ReduceAction151 */,
+  54 /* Group of ? */,
+  1851 /* Id of ReduceAction151 */,
   5 /* Color of ReduceAction151 */,
-  51 /* Group of ? */,
-  1811 /* Id of ReduceAction152 */,
+  54 /* Group of ? */,
+  1847 /* Id of ReduceAction152 */,
   5 /* Color of ReduceAction152 */,
-  51 /* Group of ? */,
-  1807 /* Id of ReduceAction153 */,
+  54 /* Group of ? */,
+  1843 /* Id of ReduceAction153 */,
   5 /* Color of ReduceAction153 */,
-  51 /* Group of ? */,
-  1803 /* Id of ReduceAction154 */,
+  54 /* Group of ? */,
+  1839 /* Id of ReduceAction154 */,
   5 /* Color of ReduceAction154 */,
-  51 /* Group of ? */,
-  1799 /* Id of ReduceAction155 */,
+  54 /* Group of ? */,
+  1835 /* Id of ReduceAction155 */,
   5 /* Color of ReduceAction155 */,
-  51 /* Group of ? */,
-  1795 /* Id of ReduceAction156 */,
+  54 /* Group of ? */,
+  1831 /* Id of ReduceAction156 */,
   5 /* Color of ReduceAction156 */,
-  51 /* Group of ? */,
-  1791 /* Id of ReduceAction157 */,
+  54 /* Group of ? */,
+  1827 /* Id of ReduceAction157 */,
   5 /* Color of ReduceAction157 */,
-  51 /* Group of ? */,
-  1787 /* Id of ReduceAction158 */,
+  54 /* Group of ? */,
+  1823 /* Id of ReduceAction158 */,
   5 /* Color of ReduceAction158 */,
-  51 /* Group of ? */,
-  1783 /* Id of ReduceAction159 */,
+  54 /* Group of ? */,
+  1819 /* Id of ReduceAction159 */,
   5 /* Color of ReduceAction159 */,
-  51 /* Group of ? */,
-  1775 /* Id of ReduceAction160 */,
+  54 /* Group of ? */,
+  1811 /* Id of ReduceAction160 */,
   5 /* Color of ReduceAction160 */,
-  51 /* Group of ? */,
-  1771 /* Id of ReduceAction161 */,
+  54 /* Group of ? */,
+  1807 /* Id of ReduceAction161 */,
   5 /* Color of ReduceAction161 */,
-  51 /* Group of ? */,
-  1767 /* Id of ReduceAction162 */,
+  54 /* Group of ? */,
+  1803 /* Id of ReduceAction162 */,
   5 /* Color of ReduceAction162 */,
-  51 /* Group of ? */,
-  1763 /* Id of ReduceAction163 */,
+  54 /* Group of ? */,
+  1799 /* Id of ReduceAction163 */,
   5 /* Color of ReduceAction163 */,
-  51 /* Group of ? */,
-  1759 /* Id of ReduceAction164 */,
+  54 /* Group of ? */,
+  1795 /* Id of ReduceAction164 */,
   5 /* Color of ReduceAction164 */,
-  51 /* Group of ? */,
-  1755 /* Id of ReduceAction165 */,
+  54 /* Group of ? */,
+  1791 /* Id of ReduceAction165 */,
   5 /* Color of ReduceAction165 */,
-  51 /* Group of ? */,
-  1751 /* Id of ReduceAction166 */,
+  54 /* Group of ? */,
+  1787 /* Id of ReduceAction166 */,
   5 /* Color of ReduceAction166 */,
-  51 /* Group of ? */,
-  1747 /* Id of ReduceAction167 */,
+  54 /* Group of ? */,
+  1783 /* Id of ReduceAction167 */,
   5 /* Color of ReduceAction167 */,
-  51 /* Group of ? */,
-  1743 /* Id of ReduceAction168 */,
+  54 /* Group of ? */,
+  1779 /* Id of ReduceAction168 */,
   5 /* Color of ReduceAction168 */,
-  51 /* Group of ? */,
-  1739 /* Id of ReduceAction169 */,
+  54 /* Group of ? */,
+  1775 /* Id of ReduceAction169 */,
   5 /* Color of ReduceAction169 */,
-  51 /* Group of ? */,
-  1731 /* Id of ReduceAction170 */,
+  54 /* Group of ? */,
+  1767 /* Id of ReduceAction170 */,
   5 /* Color of ReduceAction170 */,
-  51 /* Group of ? */,
-  1727 /* Id of ReduceAction171 */,
+  54 /* Group of ? */,
+  1763 /* Id of ReduceAction171 */,
   5 /* Color of ReduceAction171 */,
-  51 /* Group of ? */,
-  1723 /* Id of ReduceAction172 */,
+  54 /* Group of ? */,
+  1759 /* Id of ReduceAction172 */,
   5 /* Color of ReduceAction172 */,
-  51 /* Group of ? */,
-  1719 /* Id of ReduceAction173 */,
+  54 /* Group of ? */,
+  1755 /* Id of ReduceAction173 */,
   5 /* Color of ReduceAction173 */,
-  51 /* Group of ? */,
-  1715 /* Id of ReduceAction174 */,
+  54 /* Group of ? */,
+  1751 /* Id of ReduceAction174 */,
   5 /* Color of ReduceAction174 */,
-  51 /* Group of ? */,
-  1711 /* Id of ReduceAction175 */,
+  54 /* Group of ? */,
+  1747 /* Id of ReduceAction175 */,
   5 /* Color of ReduceAction175 */,
-  51 /* Group of ? */,
-  1707 /* Id of ReduceAction176 */,
+  54 /* Group of ? */,
+  1743 /* Id of ReduceAction176 */,
   5 /* Color of ReduceAction176 */,
-  51 /* Group of ? */,
-  1703 /* Id of ReduceAction177 */,
+  54 /* Group of ? */,
+  1739 /* Id of ReduceAction177 */,
   5 /* Color of ReduceAction177 */,
-  51 /* Group of ? */,
-  1699 /* Id of ReduceAction178 */,
+  54 /* Group of ? */,
+  1735 /* Id of ReduceAction178 */,
   5 /* Color of ReduceAction178 */,
-  51 /* Group of ? */,
-  1695 /* Id of ReduceAction179 */,
+  54 /* Group of ? */,
+  1731 /* Id of ReduceAction179 */,
   5 /* Color of ReduceAction179 */,
-  51 /* Group of ? */,
-  1687 /* Id of ReduceAction180 */,
+  54 /* Group of ? */,
+  1723 /* Id of ReduceAction180 */,
   5 /* Color of ReduceAction180 */,
-  51 /* Group of ? */,
-  1683 /* Id of ReduceAction181 */,
+  54 /* Group of ? */,
+  1719 /* Id of ReduceAction181 */,
   5 /* Color of ReduceAction181 */,
-  51 /* Group of ? */,
-  1679 /* Id of ReduceAction182 */,
+  54 /* Group of ? */,
+  1715 /* Id of ReduceAction182 */,
   5 /* Color of ReduceAction182 */,
-  51 /* Group of ? */,
-  1675 /* Id of ReduceAction183 */,
+  54 /* Group of ? */,
+  1711 /* Id of ReduceAction183 */,
   5 /* Color of ReduceAction183 */,
-  51 /* Group of ? */,
-  1671 /* Id of ReduceAction184 */,
+  54 /* Group of ? */,
+  1707 /* Id of ReduceAction184 */,
   5 /* Color of ReduceAction184 */,
-  51 /* Group of ? */,
-  1667 /* Id of ReduceAction185 */,
+  54 /* Group of ? */,
+  1703 /* Id of ReduceAction185 */,
   5 /* Color of ReduceAction185 */,
-  51 /* Group of ? */,
-  1663 /* Id of ReduceAction186 */,
+  54 /* Group of ? */,
+  1699 /* Id of ReduceAction186 */,
   5 /* Color of ReduceAction186 */,
-  51 /* Group of ? */,
-  1659 /* Id of ReduceAction187 */,
+  54 /* Group of ? */,
+  1695 /* Id of ReduceAction187 */,
   5 /* Color of ReduceAction187 */,
-  51 /* Group of ? */,
-  1655 /* Id of ReduceAction188 */,
+  54 /* Group of ? */,
+  1691 /* Id of ReduceAction188 */,
   5 /* Color of ReduceAction188 */,
-  51 /* Group of ? */,
-  1651 /* Id of ReduceAction189 */,
+  54 /* Group of ? */,
+  1687 /* Id of ReduceAction189 */,
   5 /* Color of ReduceAction189 */,
-  51 /* Group of ? */,
-  1643 /* Id of ReduceAction190 */,
+  54 /* Group of ? */,
+  1679 /* Id of ReduceAction190 */,
   5 /* Color of ReduceAction190 */,
-  51 /* Group of ? */,
-  1639 /* Id of ReduceAction191 */,
+  54 /* Group of ? */,
+  1675 /* Id of ReduceAction191 */,
   5 /* Color of ReduceAction191 */,
-  51 /* Group of ? */,
-  1635 /* Id of ReduceAction192 */,
+  54 /* Group of ? */,
+  1671 /* Id of ReduceAction192 */,
   5 /* Color of ReduceAction192 */,
-  51 /* Group of ? */,
-  1631 /* Id of ReduceAction193 */,
+  54 /* Group of ? */,
+  1667 /* Id of ReduceAction193 */,
   5 /* Color of ReduceAction193 */,
-  51 /* Group of ? */,
-  1627 /* Id of ReduceAction194 */,
+  54 /* Group of ? */,
+  1663 /* Id of ReduceAction194 */,
   5 /* Color of ReduceAction194 */,
-  51 /* Group of ? */,
-  1623 /* Id of ReduceAction195 */,
+  54 /* Group of ? */,
+  1659 /* Id of ReduceAction195 */,
   5 /* Color of ReduceAction195 */,
-  51 /* Group of ? */,
-  1619 /* Id of ReduceAction196 */,
+  54 /* Group of ? */,
+  1655 /* Id of ReduceAction196 */,
   5 /* Color of ReduceAction196 */,
-  51 /* Group of ? */,
-  1615 /* Id of ReduceAction197 */,
+  54 /* Group of ? */,
+  1651 /* Id of ReduceAction197 */,
   5 /* Color of ReduceAction197 */,
-  51 /* Group of ? */,
-  1611 /* Id of ReduceAction198 */,
+  54 /* Group of ? */,
+  1647 /* Id of ReduceAction198 */,
   5 /* Color of ReduceAction198 */,
-  51 /* Group of ? */,
-  1607 /* Id of ReduceAction199 */,
+  54 /* Group of ? */,
+  1643 /* Id of ReduceAction199 */,
   5 /* Color of ReduceAction199 */,
-  51 /* Group of ? */,
-  1595 /* Id of ReduceAction200 */,
+  54 /* Group of ? */,
+  1631 /* Id of ReduceAction200 */,
   5 /* Color of ReduceAction200 */,
-  51 /* Group of ? */,
-  1591 /* Id of ReduceAction201 */,
+  54 /* Group of ? */,
+  1627 /* Id of ReduceAction201 */,
   5 /* Color of ReduceAction201 */,
-  51 /* Group of ? */,
-  1587 /* Id of ReduceAction202 */,
+  54 /* Group of ? */,
+  1623 /* Id of ReduceAction202 */,
   5 /* Color of ReduceAction202 */,
-  51 /* Group of ? */,
-  1583 /* Id of ReduceAction203 */,
+  54 /* Group of ? */,
+  1619 /* Id of ReduceAction203 */,
   5 /* Color of ReduceAction203 */,
-  51 /* Group of ? */,
-  1579 /* Id of ReduceAction204 */,
+  54 /* Group of ? */,
+  1615 /* Id of ReduceAction204 */,
   5 /* Color of ReduceAction204 */,
-  51 /* Group of ? */,
-  1575 /* Id of ReduceAction205 */,
+  54 /* Group of ? */,
+  1611 /* Id of ReduceAction205 */,
   5 /* Color of ReduceAction205 */,
-  51 /* Group of ? */,
-  1571 /* Id of ReduceAction206 */,
+  54 /* Group of ? */,
+  1607 /* Id of ReduceAction206 */,
   5 /* Color of ReduceAction206 */,
-  51 /* Group of ? */,
-  1567 /* Id of ReduceAction207 */,
+  54 /* Group of ? */,
+  1603 /* Id of ReduceAction207 */,
   5 /* Color of ReduceAction207 */,
-  51 /* Group of ? */,
-  1563 /* Id of ReduceAction208 */,
+  54 /* Group of ? */,
+  1599 /* Id of ReduceAction208 */,
   5 /* Color of ReduceAction208 */,
-  51 /* Group of ? */,
-  1559 /* Id of ReduceAction209 */,
+  54 /* Group of ? */,
+  1595 /* Id of ReduceAction209 */,
   5 /* Color of ReduceAction209 */,
-  51 /* Group of ? */,
-  1551 /* Id of ReduceAction210 */,
+  54 /* Group of ? */,
+  1587 /* Id of ReduceAction210 */,
   5 /* Color of ReduceAction210 */,
-  51 /* Group of ? */,
-  1547 /* Id of ReduceAction211 */,
+  54 /* Group of ? */,
+  1583 /* Id of ReduceAction211 */,
   5 /* Color of ReduceAction211 */,
-  51 /* Group of ? */,
-  1543 /* Id of ReduceAction212 */,
+  54 /* Group of ? */,
+  1579 /* Id of ReduceAction212 */,
   5 /* Color of ReduceAction212 */,
-  51 /* Group of ? */,
-  1539 /* Id of ReduceAction213 */,
+  54 /* Group of ? */,
+  1575 /* Id of ReduceAction213 */,
   5 /* Color of ReduceAction213 */,
-  51 /* Group of ? */,
-  1535 /* Id of ReduceAction214 */,
+  54 /* Group of ? */,
+  1571 /* Id of ReduceAction214 */,
   5 /* Color of ReduceAction214 */,
-  51 /* Group of ? */,
-  1531 /* Id of ReduceAction215 */,
+  54 /* Group of ? */,
+  1567 /* Id of ReduceAction215 */,
   5 /* Color of ReduceAction215 */,
-  51 /* Group of ? */,
-  1527 /* Id of ReduceAction216 */,
+  54 /* Group of ? */,
+  1563 /* Id of ReduceAction216 */,
   5 /* Color of ReduceAction216 */,
-  51 /* Group of ? */,
-  1523 /* Id of ReduceAction217 */,
+  54 /* Group of ? */,
+  1559 /* Id of ReduceAction217 */,
   5 /* Color of ReduceAction217 */,
-  51 /* Group of ? */,
-  1519 /* Id of ReduceAction218 */,
+  54 /* Group of ? */,
+  1555 /* Id of ReduceAction218 */,
   5 /* Color of ReduceAction218 */,
-  51 /* Group of ? */,
-  1511 /* Id of ReduceAction220 */,
+  54 /* Group of ? */,
+  1551 /* Id of ReduceAction219 */,
+  5 /* Color of ReduceAction219 */,
+  54 /* Group of ? */,
+  1543 /* Id of ReduceAction220 */,
   5 /* Color of ReduceAction220 */,
-  51 /* Group of ? */,
-  1507 /* Id of ReduceAction221 */,
+  54 /* Group of ? */,
+  1539 /* Id of ReduceAction221 */,
   5 /* Color of ReduceAction221 */,
-  51 /* Group of ? */,
-  1503 /* Id of ReduceAction222 */,
+  54 /* Group of ? */,
+  1535 /* Id of ReduceAction222 */,
   5 /* Color of ReduceAction222 */,
-  51 /* Group of ? */,
-  1499 /* Id of ReduceAction223 */,
+  54 /* Group of ? */,
+  1531 /* Id of ReduceAction223 */,
   5 /* Color of ReduceAction223 */,
-  51 /* Group of ? */,
-  1495 /* Id of ReduceAction224 */,
-  5 /* Color of ReduceAction224 */,
-  51 /* Group of ? */,
-  1491 /* Id of ReduceAction225 */,
+  54 /* Group of ? */,
+  1527 /* Id of ReduceAction225 */,
   5 /* Color of ReduceAction225 */,
-  51 /* Group of ? */,
-  1487 /* Id of ReduceAction226 */,
+  54 /* Group of ? */,
+  1523 /* Id of ReduceAction226 */,
   5 /* Color of ReduceAction226 */,
-  51 /* Group of ? */,
-  1483 /* Id of ReduceAction227 */,
+  54 /* Group of ? */,
+  1519 /* Id of ReduceAction227 */,
   5 /* Color of ReduceAction227 */,
-  51 /* Group of ? */,
-  1479 /* Id of ReduceAction228 */,
+  54 /* Group of ? */,
+  1515 /* Id of ReduceAction228 */,
   5 /* Color of ReduceAction228 */,
-  51 /* Group of ? */,
-  1475 /* Id of ReduceAction229 */,
+  54 /* Group of ? */,
+  1511 /* Id of ReduceAction229 */,
   5 /* Color of ReduceAction229 */,
-  51 /* Group of ? */,
-  1467 /* Id of ReduceAction230 */,
+  54 /* Group of ? */,
+  1503 /* Id of ReduceAction230 */,
   5 /* Color of ReduceAction230 */,
-  51 /* Group of ? */,
-  1463 /* Id of ReduceAction231 */,
+  54 /* Group of ? */,
+  1499 /* Id of ReduceAction231 */,
   5 /* Color of ReduceAction231 */,
-  51 /* Group of ? */,
-  1459 /* Id of ReduceAction232 */,
+  54 /* Group of ? */,
+  1495 /* Id of ReduceAction232 */,
   5 /* Color of ReduceAction232 */,
-  51 /* Group of ? */,
-  1455 /* Id of ReduceAction233 */,
+  54 /* Group of ? */,
+  1491 /* Id of ReduceAction233 */,
   5 /* Color of ReduceAction233 */,
-  51 /* Group of ? */,
-  1451 /* Id of ReduceAction235 */,
+  54 /* Group of ? */,
+  1487 /* Id of ReduceAction234 */,
+  5 /* Color of ReduceAction234 */,
+  54 /* Group of ? */,
+  1483 /* Id of ReduceAction235 */,
   5 /* Color of ReduceAction235 */,
-  51 /* Group of ? */,
-  1447 /* Id of ReduceAction236 */,
+  54 /* Group of ? */,
+  1479 /* Id of ReduceAction236 */,
   5 /* Color of ReduceAction236 */,
-  51 /* Group of ? */,
-  1443 /* Id of ReduceAction237 */,
+  54 /* Group of ? */,
+  1475 /* Id of ReduceAction237 */,
   5 /* Color of ReduceAction237 */,
-  51 /* Group of ? */,
-  1439 /* Id of ReduceAction238 */,
+  54 /* Group of ? */,
+  1471 /* Id of ReduceAction238 */,
   5 /* Color of ReduceAction238 */,
-  51 /* Group of ? */,
-  1435 /* Id of ReduceAction239 */,
-  5 /* Color of ReduceAction239 */,
-  51 /* Group of ? */,
-  1427 /* Id of ReduceAction240 */,
+  54 /* Group of ? */,
+  1463 /* Id of ReduceAction240 */,
   5 /* Color of ReduceAction240 */,
-  51 /* Group of ? */,
-  1423 /* Id of ReduceAction241 */,
+  54 /* Group of ? */,
+  1459 /* Id of ReduceAction241 */,
   5 /* Color of ReduceAction241 */,
-  51 /* Group of ? */,
-  1419 /* Id of ReduceAction242 */,
+  54 /* Group of ? */,
+  1455 /* Id of ReduceAction242 */,
   5 /* Color of ReduceAction242 */,
-  51 /* Group of ? */,
-  1415 /* Id of ReduceAction243 */,
+  54 /* Group of ? */,
+  1451 /* Id of ReduceAction243 */,
   5 /* Color of ReduceAction243 */,
-  51 /* Group of ? */,
-  1411 /* Id of ReduceAction246 */,
+  54 /* Group of ? */,
+  1447 /* Id of ReduceAction244 */,
+  5 /* Color of ReduceAction244 */,
+  54 /* Group of ? */,
+  1443 /* Id of ReduceAction245 */,
+  5 /* Color of ReduceAction245 */,
+  54 /* Group of ? */,
+  1439 /* Id of ReduceAction246 */,
   5 /* Color of ReduceAction246 */,
-  51 /* Group of ? */,
-  1407 /* Id of ReduceAction247 */,
+  54 /* Group of ? */,
+  1435 /* Id of ReduceAction247 */,
   5 /* Color of ReduceAction247 */,
-  51 /* Group of ? */,
-  1403 /* Id of ReduceAction248 */,
+  54 /* Group of ? */,
+  1431 /* Id of ReduceAction248 */,
   5 /* Color of ReduceAction248 */,
-  51 /* Group of ? */,
-  1399 /* Id of ReduceAction249 */,
+  54 /* Group of ? */,
+  1427 /* Id of ReduceAction249 */,
   5 /* Color of ReduceAction249 */,
-  51 /* Group of ? */,
-  1391 /* Id of ReduceAction250 */,
-  5 /* Color of ReduceAction250 */,
-  51 /* Group of ? */,
-  1387 /* Id of ReduceAction251 */,
-  5 /* Color of ReduceAction251 */,
-  51 /* Group of ? */,
-  1383 /* Id of ReduceAction252 */,
-  5 /* Color of ReduceAction252 */,
-  51 /* Group of ? */,
-  1379 /* Id of ReduceAction253 */,
+  54 /* Group of ? */,
+  1419 /* Id of ReduceAction253 */,
   5 /* Color of ReduceAction253 */,
-  51 /* Group of ? */,
-  1375 /* Id of ReduceAction254 */,
+  54 /* Group of ? */,
+  1415 /* Id of ReduceAction254 */,
   5 /* Color of ReduceAction254 */,
-  51 /* Group of ? */,
-  1371 /* Id of ReduceAction255 */,
+  54 /* Group of ? */,
+  1411 /* Id of ReduceAction255 */,
   5 /* Color of ReduceAction255 */,
-  51 /* Group of ? */,
-  1367 /* Id of ReduceAction256 */,
+  54 /* Group of ? */,
+  1407 /* Id of ReduceAction256 */,
   5 /* Color of ReduceAction256 */,
-  51 /* Group of ? */,
-  1359 /* Id of ReduceAction263 */,
+  54 /* Group of ? */,
+  1403 /* Id of ReduceAction257 */,
+  5 /* Color of ReduceAction257 */,
+  54 /* Group of ? */,
+  1399 /* Id of ReduceAction258 */,
+  5 /* Color of ReduceAction258 */,
+  54 /* Group of ? */,
+  1395 /* Id of ReduceAction259 */,
+  5 /* Color of ReduceAction259 */,
+  54 /* Group of ? */,
+  1387 /* Id of ReduceAction260 */,
+  5 /* Color of ReduceAction260 */,
+  54 /* Group of ? */,
+  1383 /* Id of ReduceAction261 */,
+  5 /* Color of ReduceAction261 */,
+  54 /* Group of ? */,
+  1379 /* Id of ReduceAction262 */,
+  5 /* Color of ReduceAction262 */,
+  54 /* Group of ? */,
+  1375 /* Id of ReduceAction263 */,
   5 /* Color of ReduceAction263 */,
-  51 /* Group of ? */,
-  1355 /* Id of ReduceAction264 */,
-  5 /* Color of ReduceAction264 */,
-  51 /* Group of ? */,
-  1351 /* Id of ReduceAction265 */,
-  5 /* Color of ReduceAction265 */,
-  51 /* Group of ? */,
-  1347 /* Id of ReduceAction266 */,
-  5 /* Color of ReduceAction266 */,
-  51 /* Group of ? */,
-  1343 /* Id of ReduceAction267 */,
-  5 /* Color of ReduceAction267 */,
-  51 /* Group of ? */,
-  1339 /* Id of ReduceAction268 */,
-  5 /* Color of ReduceAction268 */,
-  51 /* Group of ? */,
-  1335 /* Id of ReduceAction269 */,
-  5 /* Color of ReduceAction269 */,
-  51 /* Group of ? */,
-  1327 /* Id of ReduceAction270 */,
+  54 /* Group of ? */,
+  1367 /* Id of ReduceAction270 */,
   5 /* Color of ReduceAction270 */,
-  51 /* Group of ? */,
-  1323 /* Id of ReduceAction271 */,
+  54 /* Group of ? */,
+  1363 /* Id of ReduceAction271 */,
   5 /* Color of ReduceAction271 */,
-  51 /* Group of ? */,
-  1319 /* Id of ReduceAction272 */,
+  54 /* Group of ? */,
+  1359 /* Id of ReduceAction272 */,
   5 /* Color of ReduceAction272 */,
-  51 /* Group of ? */,
-  1315 /* Id of ReduceAction273 */,
+  54 /* Group of ? */,
+  1355 /* Id of ReduceAction273 */,
   5 /* Color of ReduceAction273 */,
-  51 /* Group of ? */,
-  1311 /* Id of ReduceAction274 */,
+  54 /* Group of ? */,
+  1351 /* Id of ReduceAction274 */,
   5 /* Color of ReduceAction274 */,
-  51 /* Group of ? */,
-  1307 /* Id of ReduceAction275 */,
+  54 /* Group of ? */,
+  1347 /* Id of ReduceAction275 */,
   5 /* Color of ReduceAction275 */,
-  51 /* Group of ? */,
-  1303 /* Id of ReduceAction276 */,
+  54 /* Group of ? */,
+  1343 /* Id of ReduceAction276 */,
   5 /* Color of ReduceAction276 */,
-  51 /* Group of ? */,
-  1299 /* Id of ReduceAction277 */,
+  54 /* Group of ? */,
+  1339 /* Id of ReduceAction277 */,
   5 /* Color of ReduceAction277 */,
-  51 /* Group of ? */,
-  1295 /* Id of ReduceAction278 */,
+  54 /* Group of ? */,
+  1335 /* Id of ReduceAction278 */,
   5 /* Color of ReduceAction278 */,
-  51 /* Group of ? */,
-  1291 /* Id of ReduceAction279 */,
+  54 /* Group of ? */,
+  1331 /* Id of ReduceAction279 */,
   5 /* Color of ReduceAction279 */,
-  51 /* Group of ? */,
-  1283 /* Id of ReduceAction280 */,
+  54 /* Group of ? */,
+  1323 /* Id of ReduceAction280 */,
   5 /* Color of ReduceAction280 */,
-  51 /* Group of ? */,
-  1279 /* Id of ReduceAction281 */,
+  54 /* Group of ? */,
+  1319 /* Id of ReduceAction281 */,
   5 /* Color of ReduceAction281 */,
-  51 /* Group of ? */,
-  1275 /* Id of ReduceAction282 */,
+  54 /* Group of ? */,
+  1315 /* Id of ReduceAction282 */,
   5 /* Color of ReduceAction282 */,
-  51 /* Group of ? */,
-  1271 /* Id of ReduceAction283 */,
+  54 /* Group of ? */,
+  1311 /* Id of ReduceAction283 */,
   5 /* Color of ReduceAction283 */,
-  51 /* Group of ? */,
-  1267 /* Id of ReduceAction284 */,
+  54 /* Group of ? */,
+  1307 /* Id of ReduceAction284 */,
   5 /* Color of ReduceAction284 */,
-  51 /* Group of ? */,
-  1263 /* Id of ReduceAction285 */,
+  54 /* Group of ? */,
+  1303 /* Id of ReduceAction285 */,
   5 /* Color of ReduceAction285 */,
-  51 /* Group of ? */,
-  1259 /* Id of ReduceAction286 */,
+  54 /* Group of ? */,
+  1299 /* Id of ReduceAction286 */,
   5 /* Color of ReduceAction286 */,
-  51 /* Group of ? */,
-  1255 /* Id of ReduceAction287 */,
+  54 /* Group of ? */,
+  1295 /* Id of ReduceAction287 */,
   5 /* Color of ReduceAction287 */,
-  51 /* Group of ? */,
-  1251 /* Id of ReduceAction288 */,
+  54 /* Group of ? */,
+  1291 /* Id of ReduceAction288 */,
   5 /* Color of ReduceAction288 */,
-  51 /* Group of ? */,
-  1247 /* Id of ReduceAction289 */,
+  54 /* Group of ? */,
+  1287 /* Id of ReduceAction289 */,
   5 /* Color of ReduceAction289 */,
-  51 /* Group of ? */,
-  1239 /* Id of ReduceAction290 */,
+  54 /* Group of ? */,
+  1279 /* Id of ReduceAction290 */,
   5 /* Color of ReduceAction290 */,
-  51 /* Group of ? */,
-  1235 /* Id of ReduceAction291 */,
+  54 /* Group of ? */,
+  1275 /* Id of ReduceAction291 */,
   5 /* Color of ReduceAction291 */,
-  51 /* Group of ? */,
-  1231 /* Id of ReduceAction292 */,
+  54 /* Group of ? */,
+  1271 /* Id of ReduceAction292 */,
   5 /* Color of ReduceAction292 */,
-  51 /* Group of ? */,
-  1227 /* Id of ReduceAction293 */,
+  54 /* Group of ? */,
+  1267 /* Id of ReduceAction293 */,
   5 /* Color of ReduceAction293 */,
-  51 /* Group of ? */,
-  1223 /* Id of ReduceAction294 */,
+  54 /* Group of ? */,
+  1263 /* Id of ReduceAction294 */,
   5 /* Color of ReduceAction294 */,
-  51 /* Group of ? */,
-  1219 /* Id of ReduceAction295 */,
+  54 /* Group of ? */,
+  1259 /* Id of ReduceAction295 */,
   5 /* Color of ReduceAction295 */,
-  51 /* Group of ? */,
-  1215 /* Id of ReduceAction296 */,
+  54 /* Group of ? */,
+  1255 /* Id of ReduceAction296 */,
   5 /* Color of ReduceAction296 */,
-  51 /* Group of ? */,
-  1211 /* Id of ReduceAction297 */,
+  54 /* Group of ? */,
+  1251 /* Id of ReduceAction297 */,
   5 /* Color of ReduceAction297 */,
-  51 /* Group of ? */,
-  1207 /* Id of ReduceAction298 */,
+  54 /* Group of ? */,
+  1247 /* Id of ReduceAction298 */,
   5 /* Color of ReduceAction298 */,
-  51 /* Group of ? */,
-  1203 /* Id of ReduceAction299 */,
+  54 /* Group of ? */,
+  1243 /* Id of ReduceAction299 */,
   5 /* Color of ReduceAction299 */,
-  51 /* Group of ? */,
-  1191 /* Id of ReduceAction300 */,
+  54 /* Group of ? */,
+  1231 /* Id of ReduceAction300 */,
   5 /* Color of ReduceAction300 */,
-  51 /* Group of ? */,
-  1187 /* Id of ReduceAction301 */,
+  54 /* Group of ? */,
+  1227 /* Id of ReduceAction301 */,
   5 /* Color of ReduceAction301 */,
-  51 /* Group of ? */,
-  1183 /* Id of ReduceAction302 */,
+  54 /* Group of ? */,
+  1223 /* Id of ReduceAction302 */,
   5 /* Color of ReduceAction302 */,
-  51 /* Group of ? */,
-  1179 /* Id of ReduceAction303 */,
+  54 /* Group of ? */,
+  1219 /* Id of ReduceAction303 */,
   5 /* Color of ReduceAction303 */,
-  51 /* Group of ? */,
-  1175 /* Id of ReduceAction304 */,
+  54 /* Group of ? */,
+  1215 /* Id of ReduceAction304 */,
   5 /* Color of ReduceAction304 */,
-  51 /* Group of ? */,
-  1171 /* Id of ReduceAction305 */,
+  54 /* Group of ? */,
+  1211 /* Id of ReduceAction305 */,
   5 /* Color of ReduceAction305 */,
-  51 /* Group of ? */,
-  1167 /* Id of ReduceAction306 */,
+  54 /* Group of ? */,
+  1207 /* Id of ReduceAction306 */,
   5 /* Color of ReduceAction306 */,
-  51 /* Group of ? */,
-  1163 /* Id of ReduceAction307 */,
+  54 /* Group of ? */,
+  1203 /* Id of ReduceAction307 */,
   5 /* Color of ReduceAction307 */,
-  51 /* Group of ? */,
-  1159 /* Id of ReduceAction308 */,
+  54 /* Group of ? */,
+  1199 /* Id of ReduceAction308 */,
   5 /* Color of ReduceAction308 */,
-  51 /* Group of ? */,
-  1155 /* Id of ReduceAction309 */,
+  54 /* Group of ? */,
+  1195 /* Id of ReduceAction309 */,
   5 /* Color of ReduceAction309 */,
-  51 /* Group of ? */,
-  1147 /* Id of ReduceAction310 */,
+  54 /* Group of ? */,
+  1187 /* Id of ReduceAction310 */,
   5 /* Color of ReduceAction310 */,
-  51 /* Group of ? */,
-  1143 /* Id of ReduceAction311 */,
+  54 /* Group of ? */,
+  1183 /* Id of ReduceAction311 */,
   5 /* Color of ReduceAction311 */,
-  51 /* Group of ? */,
-  1139 /* Id of ReduceAction312 */,
+  54 /* Group of ? */,
+  1179 /* Id of ReduceAction312 */,
   5 /* Color of ReduceAction312 */,
-  51 /* Group of ? */,
-  1135 /* Id of ReduceAction313 */,
+  54 /* Group of ? */,
+  1175 /* Id of ReduceAction313 */,
   5 /* Color of ReduceAction313 */,
-  51 /* Group of ? */,
-  1131 /* Id of ReduceAction314 */,
+  54 /* Group of ? */,
+  1171 /* Id of ReduceAction314 */,
   5 /* Color of ReduceAction314 */,
-  51 /* Group of ? */,
-  1127 /* Id of ReduceAction317 */,
+  54 /* Group of ? */,
+  1167 /* Id of ReduceAction315 */,
+  5 /* Color of ReduceAction315 */,
+  54 /* Group of ? */,
+  1163 /* Id of ReduceAction316 */,
+  5 /* Color of ReduceAction316 */,
+  54 /* Group of ? */,
+  1159 /* Id of ReduceAction317 */,
   5 /* Color of ReduceAction317 */,
-  51 /* Group of ? */,
-  1123 /* Id of ReduceAction318 */,
+  54 /* Group of ? */,
+  1155 /* Id of ReduceAction318 */,
   5 /* Color of ReduceAction318 */,
-  51 /* Group of ? */,
-  1119 /* Id of ReduceAction319 */,
+  54 /* Group of ? */,
+  1151 /* Id of ReduceAction319 */,
   5 /* Color of ReduceAction319 */,
-  51 /* Group of ? */,
-  1111 /* Id of ReduceAction320 */,
+  54 /* Group of ? */,
+  1143 /* Id of ReduceAction320 */,
   5 /* Color of ReduceAction320 */,
-  51 /* Group of ? */,
-  1107 /* Id of ReduceAction321 */,
+  54 /* Group of ? */,
+  1139 /* Id of ReduceAction321 */,
   5 /* Color of ReduceAction321 */,
-  51 /* Group of ? */,
-  1103 /* Id of ReduceAction322 */,
+  54 /* Group of ? */,
+  1135 /* Id of ReduceAction322 */,
   5 /* Color of ReduceAction322 */,
-  51 /* Group of ? */,
-  1099 /* Id of ReduceAction323 */,
-  5 /* Color of ReduceAction323 */,
-  51 /* Group of ? */,
-  1095 /* Id of ReduceAction324 */,
-  5 /* Color of ReduceAction324 */,
-  51 /* Group of ? */,
-  1091 /* Id of ReduceAction325 */,
+  54 /* Group of ? */,
+  1131 /* Id of ReduceAction325 */,
   5 /* Color of ReduceAction325 */,
-  51 /* Group of ? */,
-  1087 /* Id of ReduceAction326 */,
+  54 /* Group of ? */,
+  1127 /* Id of ReduceAction326 */,
   5 /* Color of ReduceAction326 */,
-  51 /* Group of ? */,
-  1083 /* Id of ReduceAction327 */,
+  54 /* Group of ? */,
+  1123 /* Id of ReduceAction327 */,
   5 /* Color of ReduceAction327 */,
-  51 /* Group of ? */,
-  1079 /* Id of ReduceAction328 */,
+  54 /* Group of ? */,
+  1119 /* Id of ReduceAction328 */,
   5 /* Color of ReduceAction328 */,
-  51 /* Group of ? */,
-  1075 /* Id of ReduceAction329 */,
+  54 /* Group of ? */,
+  1115 /* Id of ReduceAction329 */,
   5 /* Color of ReduceAction329 */,
-  51 /* Group of ? */,
-  1067 /* Id of ReduceAction333 */,
+  54 /* Group of ? */,
+  1107 /* Id of ReduceAction330 */,
+  5 /* Color of ReduceAction330 */,
+  54 /* Group of ? */,
+  1103 /* Id of ReduceAction331 */,
+  5 /* Color of ReduceAction331 */,
+  54 /* Group of ? */,
+  1099 /* Id of ReduceAction332 */,
+  5 /* Color of ReduceAction332 */,
+  54 /* Group of ? */,
+  1095 /* Id of ReduceAction333 */,
   5 /* Color of ReduceAction333 */,
-  51 /* Group of ? */,
-  1063 /* Id of ReduceAction335 */,
+  54 /* Group of ? */,
+  1091 /* Id of ReduceAction334 */,
+  5 /* Color of ReduceAction334 */,
+  54 /* Group of ? */,
+  1087 /* Id of ReduceAction335 */,
   5 /* Color of ReduceAction335 */,
-  51 /* Group of ? */,
-  1059 /* Id of ReduceAction337 */,
+  54 /* Group of ? */,
+  1083 /* Id of ReduceAction336 */,
+  5 /* Color of ReduceAction336 */,
+  54 /* Group of ? */,
+  1079 /* Id of ReduceAction337 */,
   5 /* Color of ReduceAction337 */,
-  51 /* Group of ? */,
-  1055 /* Id of ReduceAction338 */,
-  5 /* Color of ReduceAction338 */,
-  51 /* Group of ? */,
-  1051 /* Id of ReduceAction339 */,
-  5 /* Color of ReduceAction339 */,
-  51 /* Group of ? */,
-  1043 /* Id of ReduceAction341 */,
+  54 /* Group of ? */,
+  1071 /* Id of ReduceAction341 */,
   5 /* Color of ReduceAction341 */,
-  51 /* Group of ? */,
-  1039 /* Id of ReduceAction343 */,
+  54 /* Group of ? */,
+  1067 /* Id of ReduceAction343 */,
   5 /* Color of ReduceAction343 */,
-  51 /* Group of ? */,
-  1035 /* Id of ReduceAction344 */,
-  5 /* Color of ReduceAction344 */,
-  51 /* Group of ? */,
-  1031 /* Id of ReduceAction345 */,
+  54 /* Group of ? */,
+  1063 /* Id of ReduceAction345 */,
   5 /* Color of ReduceAction345 */,
-  51 /* Group of ? */,
-  1027 /* Id of ReduceAction346 */,
+  54 /* Group of ? */,
+  1059 /* Id of ReduceAction346 */,
   5 /* Color of ReduceAction346 */,
-  51 /* Group of ? */,
-  1023 /* Id of ReduceAction347 */,
+  54 /* Group of ? */,
+  1055 /* Id of ReduceAction347 */,
   5 /* Color of ReduceAction347 */,
-  51 /* Group of ? */,
-  1019 /* Id of ReduceAction348 */,
-  5 /* Color of ReduceAction348 */,
-  51 /* Group of ? */,
-  1015 /* Id of ReduceAction349 */,
+  54 /* Group of ? */,
+  1051 /* Id of ReduceAction349 */,
   5 /* Color of ReduceAction349 */,
-  51 /* Group of ? */,
-  1007 /* Id of ReduceAction350 */,
-  5 /* Color of ReduceAction350 */,
-  51 /* Group of ? */,
-  1003 /* Id of ReduceAction351 */,
+  54 /* Group of ? */,
+  1043 /* Id of ReduceAction351 */,
   5 /* Color of ReduceAction351 */,
-  51 /* Group of ? */,
-  999 /* Id of ReduceAction352 */,
+  54 /* Group of ? */,
+  1039 /* Id of ReduceAction352 */,
   5 /* Color of ReduceAction352 */,
-  51 /* Group of ? */,
-  995 /* Id of ReduceAction353 */,
+  54 /* Group of ? */,
+  1035 /* Id of ReduceAction353 */,
   5 /* Color of ReduceAction353 */,
-  51 /* Group of ? */,
-  991 /* Id of ReduceAction355 */,
+  54 /* Group of ? */,
+  1031 /* Id of ReduceAction354 */,
+  5 /* Color of ReduceAction354 */,
+  54 /* Group of ? */,
+  1027 /* Id of ReduceAction355 */,
   5 /* Color of ReduceAction355 */,
-  51 /* Group of ? */,
-  987 /* Id of ReduceAction356 */,
+  54 /* Group of ? */,
+  1023 /* Id of ReduceAction356 */,
   5 /* Color of ReduceAction356 */,
-  51 /* Group of ? */,
-  983 /* Id of ReduceAction358 */,
+  54 /* Group of ? */,
+  1019 /* Id of ReduceAction357 */,
+  5 /* Color of ReduceAction357 */,
+  54 /* Group of ? */,
+  1015 /* Id of ReduceAction358 */,
   5 /* Color of ReduceAction358 */,
-  51 /* Group of ? */,
-  979 /* Id of ReduceAction359 */,
+  54 /* Group of ? */,
+  1011 /* Id of ReduceAction359 */,
   5 /* Color of ReduceAction359 */,
-  51 /* Group of ? */,
-  971 /* Id of ReduceAction360 */,
+  54 /* Group of ? */,
+  1003 /* Id of ReduceAction360 */,
   5 /* Color of ReduceAction360 */,
-  51 /* Group of ? */,
-  967 /* Id of ReduceAction362 */,
-  5 /* Color of ReduceAction362 */,
-  51 /* Group of ? */,
-  963 /* Id of ReduceAction363 */,
+  54 /* Group of ? */,
+  999 /* Id of ReduceAction361 */,
+  5 /* Color of ReduceAction361 */,
+  54 /* Group of ? */,
+  995 /* Id of ReduceAction363 */,
   5 /* Color of ReduceAction363 */,
-  51 /* Group of ? */,
-  959 /* Id of ReduceAction365 */,
-  5 /* Color of ReduceAction365 */,
-  51 /* Group of ? */,
-  955 /* Id of ReduceAction366 */,
+  54 /* Group of ? */,
+  991 /* Id of ReduceAction364 */,
+  5 /* Color of ReduceAction364 */,
+  54 /* Group of ? */,
+  987 /* Id of ReduceAction366 */,
   5 /* Color of ReduceAction366 */,
-  51 /* Group of ? */,
-  951 /* Id of ReduceAction367 */,
+  54 /* Group of ? */,
+  983 /* Id of ReduceAction367 */,
   5 /* Color of ReduceAction367 */,
-  51 /* Group of ? */,
-  947 /* Id of ReduceAction368 */,
+  54 /* Group of ? */,
+  979 /* Id of ReduceAction368 */,
   5 /* Color of ReduceAction368 */,
-  51 /* Group of ? */,
-  943 /* Id of ReduceAction369 */,
-  5 /* Color of ReduceAction369 */,
-  51 /* Group of ? */,
-  935 /* Id of ReduceAction376 */,
+  54 /* Group of ? */,
+  971 /* Id of ReduceAction370 */,
+  5 /* Color of ReduceAction370 */,
+  54 /* Group of ? */,
+  967 /* Id of ReduceAction371 */,
+  5 /* Color of ReduceAction371 */,
+  54 /* Group of ? */,
+  963 /* Id of ReduceAction373 */,
+  5 /* Color of ReduceAction373 */,
+  54 /* Group of ? */,
+  959 /* Id of ReduceAction374 */,
+  5 /* Color of ReduceAction374 */,
+  54 /* Group of ? */,
+  955 /* Id of ReduceAction375 */,
+  5 /* Color of ReduceAction375 */,
+  54 /* Group of ? */,
+  951 /* Id of ReduceAction376 */,
   5 /* Color of ReduceAction376 */,
-  51 /* Group of ? */,
-  931 /* Id of ReduceAction377 */,
+  54 /* Group of ? */,
+  947 /* Id of ReduceAction377 */,
   5 /* Color of ReduceAction377 */,
-  51 /* Group of ? */,
-  927 /* Id of ReduceAction378 */,
-  5 /* Color of ReduceAction378 */,
-  51 /* Group of ? */,
-  923 /* Id of ReduceAction379 */,
-  5 /* Color of ReduceAction379 */,
-  51 /* Group of ? */,
-  919 /* Id of ReduceAction380 */,
-  5 /* Color of ReduceAction380 */,
-  51 /* Group of ? */,
-  915 /* Id of ReduceAction381 */,
-  5 /* Color of ReduceAction381 */,
-  51 /* Group of ? */,
-  911 /* Id of ReduceAction382 */,
-  5 /* Color of ReduceAction382 */,
-  51 /* Group of ? */,
-  907 /* Id of ReduceAction383 */,
-  5 /* Color of ReduceAction383 */,
-  51 /* Group of ? */,
-  903 /* Id of ReduceAction384 */,
+  54 /* Group of ? */,
+  943 /* Id of ReduceAction384 */,
   5 /* Color of ReduceAction384 */,
-  51 /* Group of ? */,
-  899 /* Id of ReduceAction385 */,
+  54 /* Group of ? */,
+  939 /* Id of ReduceAction385 */,
   5 /* Color of ReduceAction385 */,
-  51 /* Group of ? */,
-  895 /* Id of ReduceAction386 */,
+  54 /* Group of ? */,
+  935 /* Id of ReduceAction386 */,
   5 /* Color of ReduceAction386 */,
-  51 /* Group of ? */,
-  891 /* Id of ReduceAction387 */,
+  54 /* Group of ? */,
+  931 /* Id of ReduceAction387 */,
   5 /* Color of ReduceAction387 */,
-  51 /* Group of ? */,
-  887 /* Id of ReduceAction388 */,
+  54 /* Group of ? */,
+  927 /* Id of ReduceAction388 */,
   5 /* Color of ReduceAction388 */,
-  51 /* Group of ? */,
-  879 /* Id of ReduceAction391 */,
+  54 /* Group of ? */,
+  923 /* Id of ReduceAction389 */,
+  5 /* Color of ReduceAction389 */,
+  54 /* Group of ? */,
+  915 /* Id of ReduceAction390 */,
+  5 /* Color of ReduceAction390 */,
+  54 /* Group of ? */,
+  911 /* Id of ReduceAction391 */,
   5 /* Color of ReduceAction391 */,
-  51 /* Group of ? */,
-  875 /* Id of ReduceAction392 */,
+  54 /* Group of ? */,
+  907 /* Id of ReduceAction392 */,
   5 /* Color of ReduceAction392 */,
-  51 /* Group of ? */,
-  871 /* Id of ReduceAction393 */,
+  54 /* Group of ? */,
+  903 /* Id of ReduceAction393 */,
   5 /* Color of ReduceAction393 */,
-  51 /* Group of ? */,
-  867 /* Id of ReduceAction394 */,
+  54 /* Group of ? */,
+  899 /* Id of ReduceAction394 */,
   5 /* Color of ReduceAction394 */,
-  51 /* Group of ? */,
-  863 /* Id of ReduceAction395 */,
+  54 /* Group of ? */,
+  895 /* Id of ReduceAction395 */,
   5 /* Color of ReduceAction395 */,
-  51 /* Group of ? */,
-  859 /* Id of ReduceAction396 */,
+  54 /* Group of ? */,
+  891 /* Id of ReduceAction396 */,
   5 /* Color of ReduceAction396 */,
-  51 /* Group of ? */,
-  855 /* Id of ReduceAction398 */,
+  54 /* Group of ? */,
+  887 /* Id of ReduceAction398 */,
   5 /* Color of ReduceAction398 */,
-  51 /* Group of ? */,
-  851 /* Id of ReduceAction399 */,
+  54 /* Group of ? */,
+  883 /* Id of ReduceAction399 */,
   5 /* Color of ReduceAction399 */,
-  51 /* Group of ? */,
-  839 /* Id of ReduceAction400 */,
+  54 /* Group of ? */,
+  871 /* Id of ReduceAction400 */,
   5 /* Color of ReduceAction400 */,
-  51 /* Group of ? */,
-  835 /* Id of ReduceAction401 */,
+  54 /* Group of ? */,
+  867 /* Id of ReduceAction401 */,
   5 /* Color of ReduceAction401 */,
-  51 /* Group of ? */,
-  831 /* Id of ReduceAction403 */,
+  54 /* Group of ? */,
+  863 /* Id of ReduceAction402 */,
+  5 /* Color of ReduceAction402 */,
+  54 /* Group of ? */,
+  859 /* Id of ReduceAction403 */,
   5 /* Color of ReduceAction403 */,
-  51 /* Group of ? */,
-  827 /* Id of ReduceAction406 */,
+  54 /* Group of ? */,
+  855 /* Id of ReduceAction404 */,
+  5 /* Color of ReduceAction404 */,
+  54 /* Group of ? */,
+  851 /* Id of ReduceAction406 */,
   5 /* Color of ReduceAction406 */,
-  51 /* Group of ? */,
-  819 /* Id of ReduceAction411 */,
-  5 /* Color of ReduceAction411 */,
-  51 /* Group of ? */,
-  815 /* Id of ReduceAction412 */,
+  54 /* Group of ? */,
+  847 /* Id of ReduceAction407 */,
+  5 /* Color of ReduceAction407 */,
+  54 /* Group of ? */,
+  843 /* Id of ReduceAction408 */,
+  5 /* Color of ReduceAction408 */,
+  54 /* Group of ? */,
+  839 /* Id of ReduceAction409 */,
+  5 /* Color of ReduceAction409 */,
+  54 /* Group of ? */,
+  831 /* Id of ReduceAction410 */,
+  5 /* Color of ReduceAction410 */,
+  54 /* Group of ? */,
+  827 /* Id of ReduceAction412 */,
   5 /* Color of ReduceAction412 */,
-  51 /* Group of ? */,
-  811 /* Id of ReduceAction413 */,
-  5 /* Color of ReduceAction413 */,
-  51 /* Group of ? */,
-  807 /* Id of ReduceAction414 */,
-  5 /* Color of ReduceAction414 */,
-  51 /* Group of ? */,
-  803 /* Id of ReduceAction415 */,
+  54 /* Group of ? */,
+  823 /* Id of ReduceAction415 */,
   5 /* Color of ReduceAction415 */,
-  51 /* Group of ? */,
-  799 /* Id of ReduceAction416 */,
+  54 /* Group of ? */,
+  819 /* Id of ReduceAction416 */,
   5 /* Color of ReduceAction416 */,
-  51 /* Group of ? */,
-  795 /* Id of ReduceAction417 */,
+  54 /* Group of ? */,
+  815 /* Id of ReduceAction417 */,
   5 /* Color of ReduceAction417 */,
-  51 /* Group of ? */,
-  791 /* Id of ReduceAction418 */,
+  54 /* Group of ? */,
+  811 /* Id of ReduceAction418 */,
   5 /* Color of ReduceAction418 */,
-  51 /* Group of ? */,
-  787 /* Id of ReduceAction419 */,
+  54 /* Group of ? */,
+  807 /* Id of ReduceAction419 */,
   5 /* Color of ReduceAction419 */,
-  51 /* Group of ? */,
-  779 /* Id of ReduceAction420 */,
+  54 /* Group of ? */,
+  799 /* Id of ReduceAction420 */,
   5 /* Color of ReduceAction420 */,
-  51 /* Group of ? */,
-  775 /* Id of ReduceAction421 */,
+  54 /* Group of ? */,
+  795 /* Id of ReduceAction421 */,
   5 /* Color of ReduceAction421 */,
-  51 /* Group of ? */,
-  771 /* Id of ReduceAction422 */,
+  54 /* Group of ? */,
+  791 /* Id of ReduceAction422 */,
   5 /* Color of ReduceAction422 */,
-  51 /* Group of ? */,
-  767 /* Id of ReduceAction423 */,
+  54 /* Group of ? */,
+  787 /* Id of ReduceAction423 */,
   5 /* Color of ReduceAction423 */,
-  51 /* Group of ? */,
-  763 /* Id of ReduceAction425 */,
+  54 /* Group of ? */,
+  783 /* Id of ReduceAction424 */,
+  5 /* Color of ReduceAction424 */,
+  54 /* Group of ? */,
+  779 /* Id of ReduceAction425 */,
   5 /* Color of ReduceAction425 */,
-  51 /* Group of ? */,
-  759 /* Id of ReduceAction426 */,
+  54 /* Group of ? */,
+  775 /* Id of ReduceAction426 */,
   5 /* Color of ReduceAction426 */,
-  51 /* Group of ? */,
-  755 /* Id of ReduceAction428 */,
+  54 /* Group of ? */,
+  771 /* Id of ReduceAction427 */,
+  5 /* Color of ReduceAction427 */,
+  54 /* Group of ? */,
+  767 /* Id of ReduceAction428 */,
   5 /* Color of ReduceAction428 */,
-  51 /* Group of ? */,
-  751 /* Id of ReduceAction429 */,
+  54 /* Group of ? */,
+  763 /* Id of ReduceAction429 */,
   5 /* Color of ReduceAction429 */,
-  51 /* Group of ? */,
-  743 /* Id of ReduceAction430 */,
+  54 /* Group of ? */,
+  755 /* Id of ReduceAction430 */,
   5 /* Color of ReduceAction430 */,
-  51 /* Group of ? */,
-  739 /* Id of ReduceAction431 */,
-  5 /* Color of ReduceAction431 */,
-  51 /* Group of ? */,
-  627 /* Id of ReduceAction688 */,
-  5 /* Color of ReduceAction688 */,
-  51 /* Group of ? */,
-  623 /* Id of ReduceAction689 */,
-  5 /* Color of ReduceAction689 */,
-  51 /* Group of ? */,
-  615 /* Id of ReduceAction690 */,
-  5 /* Color of ReduceAction690 */,
-  51 /* Group of ? */,
-  611 /* Id of ReduceAction693 */,
-  5 /* Color of ReduceAction693 */,
-  51 /* Group of ? */,
-  599 /* Id of ReduceAction706 */,
-  5 /* Color of ReduceAction706 */,
-  51 /* Group of ? */,
-  595 /* Id of ReduceAction707 */,
-  5 /* Color of ReduceAction707 */,
-  51 /* Group of ? */,
-  587 /* Id of ReduceAction714 */,
-  5 /* Color of ReduceAction714 */,
-  51 /* Group of ? */,
-  583 /* Id of ReduceAction715 */,
-  5 /* Color of ReduceAction715 */,
-  51 /* Group of ? */,
-  579 /* Id of ReduceAction716 */,
+  54 /* Group of ? */,
+  751 /* Id of ReduceAction432 */,
+  5 /* Color of ReduceAction432 */,
+  54 /* Group of ? */,
+  747 /* Id of ReduceAction433 */,
+  5 /* Color of ReduceAction433 */,
+  54 /* Group of ? */,
+  743 /* Id of ReduceAction435 */,
+  5 /* Color of ReduceAction435 */,
+  54 /* Group of ? */,
+  739 /* Id of ReduceAction436 */,
+  5 /* Color of ReduceAction436 */,
+  54 /* Group of ? */,
+  735 /* Id of ReduceAction437 */,
+  5 /* Color of ReduceAction437 */,
+  54 /* Group of ? */,
+  731 /* Id of ReduceAction438 */,
+  5 /* Color of ReduceAction438 */,
+  54 /* Group of ? */,
+  615 /* Id of ReduceAction698 */,
+  5 /* Color of ReduceAction698 */,
+  54 /* Group of ? */,
+  611 /* Id of ReduceAction699 */,
+  5 /* Color of ReduceAction699 */,
+  54 /* Group of ? */,
+  599 /* Id of ReduceAction700 */,
+  5 /* Color of ReduceAction700 */,
+  54 /* Group of ? */,
+  595 /* Id of ReduceAction703 */,
+  5 /* Color of ReduceAction703 */,
+  54 /* Group of ? */,
+  587 /* Id of ReduceAction716 */,
   5 /* Color of ReduceAction716 */,
-  51 /* Group of ? */,
-  575 /* Id of ReduceAction717 */,
+  54 /* Group of ? */,
+  583 /* Id of ReduceAction717 */,
   5 /* Color of ReduceAction717 */,
-  51 /* Group of ? */,
-  571 /* Id of ReduceAction718 */,
-  5 /* Color of ReduceAction718 */,
-  51 /* Group of ? */,
-  567 /* Id of ReduceAction719 */,
-  5 /* Color of ReduceAction719 */,
-  51 /* Group of ? */,
-  559 /* Id of ReduceAction720 */,
-  5 /* Color of ReduceAction720 */,
-  51 /* Group of ? */,
-  555 /* Id of ReduceAction721 */,
-  5 /* Color of ReduceAction721 */,
-  51 /* Group of ? */,
-  551 /* Id of ReduceAction724 */,
+  54 /* Group of ? */,
+  575 /* Id of ReduceAction724 */,
   5 /* Color of ReduceAction724 */,
-  51 /* Group of ? */,
-  547 /* Id of ReduceAction725 */,
+  54 /* Group of ? */,
+  571 /* Id of ReduceAction725 */,
   5 /* Color of ReduceAction725 */,
-  51 /* Group of ? */,
-  543 /* Id of ReduceAction726 */,
+  54 /* Group of ? */,
+  567 /* Id of ReduceAction726 */,
   5 /* Color of ReduceAction726 */,
-  51 /* Group of ? */,
-  539 /* Id of ReduceAction727 */,
+  54 /* Group of ? */,
+  563 /* Id of ReduceAction727 */,
   5 /* Color of ReduceAction727 */,
-  51 /* Group of ? */,
-  535 /* Id of ReduceAction728 */,
+  54 /* Group of ? */,
+  559 /* Id of ReduceAction728 */,
   5 /* Color of ReduceAction728 */,
-  51 /* Group of ? */,
-  531 /* Id of ReduceAction729 */,
+  54 /* Group of ? */,
+  555 /* Id of ReduceAction729 */,
   5 /* Color of ReduceAction729 */,
-  51 /* Group of ? */,
-  523 /* Id of ReduceAction730 */,
+  54 /* Group of ? */,
+  547 /* Id of ReduceAction730 */,
   5 /* Color of ReduceAction730 */,
-  51 /* Group of ? */,
-  519 /* Id of ReduceAction731 */,
+  54 /* Group of ? */,
+  543 /* Id of ReduceAction731 */,
   5 /* Color of ReduceAction731 */,
-  51 /* Group of ? */,
-  515 /* Id of ReduceAction733 */,
-  5 /* Color of ReduceAction733 */,
-  51 /* Group of ? */,
-  511 /* Id of ReduceAction735 */,
+  54 /* Group of ? */,
+  539 /* Id of ReduceAction734 */,
+  5 /* Color of ReduceAction734 */,
+  54 /* Group of ? */,
+  535 /* Id of ReduceAction735 */,
   5 /* Color of ReduceAction735 */,
-  51 /* Group of ? */,
-  507 /* Id of ReduceAction736 */,
+  54 /* Group of ? */,
+  531 /* Id of ReduceAction736 */,
   5 /* Color of ReduceAction736 */,
-  51 /* Group of ? */,
-  503 /* Id of ReduceAction737 */,
+  54 /* Group of ? */,
+  527 /* Id of ReduceAction737 */,
   5 /* Color of ReduceAction737 */,
-  51 /* Group of ? */,
-  495 /* Id of ReduceAction741 */,
+  54 /* Group of ? */,
+  523 /* Id of ReduceAction738 */,
+  5 /* Color of ReduceAction738 */,
+  54 /* Group of ? */,
+  519 /* Id of ReduceAction739 */,
+  5 /* Color of ReduceAction739 */,
+  54 /* Group of ? */,
+  511 /* Id of ReduceAction740 */,
+  5 /* Color of ReduceAction740 */,
+  54 /* Group of ? */,
+  507 /* Id of ReduceAction741 */,
   5 /* Color of ReduceAction741 */,
-  51 /* Group of ? */,
-  491 /* Id of ReduceAction742 */,
-  5 /* Color of ReduceAction742 */,
-  51 /* Group of ? */,
-  487 /* Id of ReduceAction743 */,
+  54 /* Group of ? */,
+  503 /* Id of ReduceAction743 */,
   5 /* Color of ReduceAction743 */,
-  51 /* Group of ? */,
-  483 /* Id of ReduceAction744 */,
+  54 /* Group of ? */,
+  499 /* Id of ReduceAction744 */,
   5 /* Color of ReduceAction744 */,
-  51 /* Group of ? */,
-  479 /* Id of ReduceAction745 */,
+  54 /* Group of ? */,
+  495 /* Id of ReduceAction745 */,
   5 /* Color of ReduceAction745 */,
-  51 /* Group of ? */,
+  54 /* Group of ? */,
+  491 /* Id of ReduceAction747 */,
+  5 /* Color of ReduceAction747 */,
+  54 /* Group of ? */,
+  483 /* Id of ReduceAction751 */,
+  5 /* Color of ReduceAction751 */,
+  54 /* Group of ? */,
+  479 /* Id of ReduceAction752 */,
+  5 /* Color of ReduceAction752 */,
+  54 /* Group of ? */,
+  475 /* Id of ReduceAction753 */,
+  5 /* Color of ReduceAction753 */,
+  54 /* Group of ? */,
+  471 /* Id of ReduceAction754 */,
+  5 /* Color of ReduceAction754 */,
+  54 /* Group of ? */,
+  467 /* Id of ReduceAction755 */,
+  5 /* Color of ReduceAction755 */,
+  54 /* Group of ? */,
 };
-const char *LOCATE_parser___parser_prod = "src/parser//parser_prod.nit";
-const int SFT_parser___parser_prod[152] = {
+const char *LOCATE_parser___parser_prod = "parser/parser_prod.nit";
+const int SFT_parser___parser_prod[155] = {
   2 /* Group of ? */,
-  54 /* Group of ? */,
-  69 /* Group of ? */,
+  57 /* Group of ? */,
+  71 /* Group of ? */,
   15 /* Id of Visitor */,
   4 /* Color of Visitor */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  73 /* Group of ? */,
-  72 /* Group of ? */,
-  75 /* Group of ? */,
+  50 /* Group of ? */,
   75 /* Group of ? */,
   74 /* Group of ? */,
-  74 /* Group of ? */,
-  74 /* Group of ? */,
-  74 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  90 /* Group of ? */,
+  88 /* Group of ? */,
+  88 /* Group of ? */,
+  79 /* Group of ? */,
+  79 /* Group of ? */,
+  79 /* Group of ? */,
+  79 /* Group of ? */,
+  79 /* Group of ? */,
+  76 /* Group of ? */,
+  78 /* Group of ? */,
   87 /* Group of ? */,
-  85 /* Group of ? */,
+  86 /* Group of ? */,
+  96 /* Group of ? */,
+  96 /* Group of ? */,
+  102 /* Group of ? */,
+  98 /* Group of ? */,
+  107 /* Group of ? */,
+  104 /* Group of ? */,
+  103 /* Group of ? */,
   85 /* Group of ? */,
   77 /* Group of ? */,
   77 /* Group of ? */,
   77 /* Group of ? */,
   77 /* Group of ? */,
   77 /* Group of ? */,
-  74 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
   76 /* Group of ? */,
-  85 /* Group of ? */,
-  84 /* Group of ? */,
-  94 /* Group of ? */,
+  80 /* Group of ? */,
+  77 /* Group of ? */,
+  81 /* Group of ? */,
+  74 /* Group of ? */,
+  88 /* Group of ? */,
+  89 /* Group of ? */,
+  88 /* Group of ? */,
+  92 /* Group of ? */,
+  88 /* Group of ? */,
+  92 /* Group of ? */,
+  92 /* Group of ? */,
+  88 /* Group of ? */,
+  88 /* Group of ? */,
+  92 /* Group of ? */,
+  92 /* Group of ? */,
   94 /* Group of ? */,
-  99 /* Group of ? */,
-  95 /* Group of ? */,
+  88 /* Group of ? */,
+  91 /* Group of ? */,
+  112 /* Group of ? */,
+  117 /* Group of ? */,
+  89 /* Group of ? */,
+  89 /* Group of ? */,
+  89 /* Group of ? */,
+  89 /* Group of ? */,
+  123 /* Group of ? */,
+  89 /* Group of ? */,
+  123 /* Group of ? */,
+  121 /* Group of ? */,
+  121 /* Group of ? */,
+  121 /* Group of ? */,
+  121 /* Group of ? */,
+  121 /* Group of ? */,
+  121 /* Group of ? */,
+  89 /* Group of ? */,
+  121 /* Group of ? */,
+  121 /* Group of ? */,
+  121 /* Group of ? */,
+  121 /* Group of ? */,
+  121 /* Group of ? */,
+  121 /* Group of ? */,
+  117 /* Group of ? */,
+  109 /* Group of ? */,
+  102 /* Group of ? */,
+  88 /* Group of ? */,
+  88 /* Group of ? */,
+  122 /* Group of ? */,
+  88 /* Group of ? */,
+  122 /* Group of ? */,
+  110 /* Group of ? */,
+  117 /* Group of ? */,
+  119 /* Group of ? */,
+  88 /* Group of ? */,
+  119 /* Group of ? */,
   104 /* Group of ? */,
-  101 /* Group of ? */,
-  100 /* Group of ? */,
+  91 /* Group of ? */,
+  94 /* Group of ? */,
+  96 /* Group of ? */,
+  88 /* Group of ? */,
+  93 /* Group of ? */,
+  93 /* Group of ? */,
+  89 /* Group of ? */,
+  89 /* Group of ? */,
+  93 /* Group of ? */,
+  89 /* Group of ? */,
+  89 /* Group of ? */,
+  88 /* Group of ? */,
+  88 /* Group of ? */,
+  88 /* Group of ? */,
+  88 /* Group of ? */,
+  91 /* Group of ? */,
+  91 /* Group of ? */,
+  91 /* Group of ? */,
+  91 /* Group of ? */,
+  89 /* Group of ? */,
+  90 /* Group of ? */,
+  88 /* Group of ? */,
+  88 /* Group of ? */,
+  102 /* Group of ? */,
+  88 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
   83 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  74 /* Group of ? */,
+  74 /* Group of ? */,
+  76 /* Group of ? */,
+  79 /* Group of ? */,
+  80 /* Group of ? */,
+  80 /* Group of ? */,
+  80 /* Group of ? */,
+  82 /* Group of ? */,
+  82 /* Group of ? */,
+  82 /* Group of ? */,
+  74 /* Group of ? */,
+  74 /* Group of ? */,
+};
+const char *LOCATE_parser___lexer = "parser/lexer.nit";
+const int SFT_parser___lexer[101] = {
+  5 /* Group of ? */,
+  72 /* Group of ? */,
   75 /* Group of ? */,
   75 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
   75 /* Group of ? */,
   75 /* Group of ? */,
   75 /* Group of ? */,
@@ -12461,2492 +12085,3970 @@ const int SFT_parser___parser_prod[152] = {
   75 /* Group of ? */,
   75 /* Group of ? */,
   75 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
   75 /* Group of ? */,
   75 /* Group of ? */,
   75 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
   75 /* Group of ? */,
   75 /* Group of ? */,
   75 /* Group of ? */,
   75 /* Group of ? */,
-  75 /* Group of ? */,
-  75 /* Group of ? */,
-  74 /* Group of ? */,
-  78 /* Group of ? */,
-  75 /* Group of ? */,
-  79 /* Group of ? */,
-  72 /* Group of ? */,
-  82 /* Group of ? */,
-  83 /* Group of ? */,
-  82 /* Group of ? */,
-  86 /* Group of ? */,
-  82 /* Group of ? */,
-  86 /* Group of ? */,
-  86 /* Group of ? */,
-  82 /* Group of ? */,
-  82 /* Group of ? */,
-  86 /* Group of ? */,
-  86 /* Group of ? */,
-  88 /* Group of ? */,
-  82 /* Group of ? */,
-  85 /* Group of ? */,
-  106 /* Group of ? */,
-  111 /* Group of ? */,
-  83 /* Group of ? */,
-  83 /* Group of ? */,
-  83 /* Group of ? */,
-  83 /* Group of ? */,
-  117 /* Group of ? */,
-  83 /* Group of ? */,
-  117 /* Group of ? */,
-  115 /* Group of ? */,
-  115 /* Group of ? */,
-  115 /* Group of ? */,
-  115 /* Group of ? */,
-  115 /* Group of ? */,
-  115 /* Group of ? */,
-  83 /* Group of ? */,
-  115 /* Group of ? */,
-  115 /* Group of ? */,
-  115 /* Group of ? */,
-  115 /* Group of ? */,
-  115 /* Group of ? */,
-  115 /* Group of ? */,
-  111 /* Group of ? */,
-  103 /* Group of ? */,
-  96 /* Group of ? */,
-  82 /* Group of ? */,
-  82 /* Group of ? */,
-  116 /* Group of ? */,
-  82 /* Group of ? */,
-  116 /* Group of ? */,
-  104 /* Group of ? */,
-  111 /* Group of ? */,
-  113 /* Group of ? */,
-  82 /* Group of ? */,
-  113 /* Group of ? */,
-  98 /* Group of ? */,
-  85 /* Group of ? */,
-  88 /* Group of ? */,
-  90 /* Group of ? */,
-  82 /* Group of ? */,
-  87 /* Group of ? */,
-  87 /* Group of ? */,
-  83 /* Group of ? */,
-  83 /* Group of ? */,
-  87 /* Group of ? */,
-  83 /* Group of ? */,
-  83 /* Group of ? */,
-  82 /* Group of ? */,
-  82 /* Group of ? */,
-  82 /* Group of ? */,
-  82 /* Group of ? */,
-  85 /* Group of ? */,
-  85 /* Group of ? */,
-  85 /* Group of ? */,
-  85 /* Group of ? */,
-  83 /* Group of ? */,
-  84 /* Group of ? */,
-  82 /* Group of ? */,
-  82 /* Group of ? */,
-  96 /* Group of ? */,
-  74 /* Group of ? */,
-  74 /* Group of ? */,
-  79 /* Group of ? */,
-  74 /* Group of ? */,
-  74 /* Group of ? */,
-  72 /* Group of ? */,
-  72 /* Group of ? */,
-  74 /* Group of ? */,
-  77 /* Group of ? */,
-  78 /* Group of ? */,
-  78 /* Group of ? */,
-  78 /* Group of ? */,
-  80 /* Group of ? */,
-  80 /* Group of ? */,
-  80 /* Group of ? */,
-  72 /* Group of ? */,
-  72 /* Group of ? */,
-  72 /* Group of ? */,
-};
-const char *LOCATE_parser___lexer = "src/parser//lexer.nit";
-const int SFT_parser___lexer[98] = {
-  5 /* Group of ? */,
-  68 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
-  71 /* Group of ? */,
   6 /* Group of ? */,
-  74 /* Group of ? */,
-  2203 /* Id of Lexer */,
+  78 /* Group of ? */,
+  2239 /* Id of Lexer */,
   5 /* Color of Lexer */,
   2 /* Group of ? */,
-  52 /* Group of ? */,
+  55 /* Group of ? */,
 };
-const char *LOCATE_parser___parser_nodes = "src/parser//parser_nodes.nit";
-const int SFT_parser___parser_nodes[913] = {
-  307 /* Id of ANode */,
+const char *LOCATE_parser___parser_nodes = "parser/parser_nodes.nit";
+const int SFT_parser___parser_nodes[955] = {
+  303 /* Id of ANode */,
   4 /* Color of ANode */,
   3 /* Group of ? */,
-  60 /* Group of ? */,
-  331 /* Id of Token */,
+  63 /* Group of ? */,
+  323 /* Id of Token */,
   5 /* Color of Token */,
-  70 /* Group of ? */,
-  2075 /* Id of Prod */,
-  6 /* Color of Prod */,
-  70 /* Group of ? */,
-  2715 /* Id of TEol */,
-  6 /* Color of TEol */,
+  73 /* Group of ? */,
+  2111 /* Id of Prod */,
+  5 /* Color of Prod */,
   72 /* Group of ? */,
-  2739 /* Id of TComment */,
+  2487 /* Id of TEol */,
+  6 /* Color of TEol */,
+  76 /* Group of ? */,
+  2499 /* Id of TComment */,
   6 /* Color of TComment */,
-  72 /* Group of ? */,
-  2575 /* Id of TKwmodule */,
-  6 /* Color of TKwmodule */,
-  72 /* Group of ? */,
-  2623 /* Id of TKwimport */,
-  6 /* Color of TKwimport */,
-  72 /* Group of ? */,
-  2663 /* Id of TKwclass */,
-  6 /* Color of TKwclass */,
-  72 /* Group of ? */,
-  2683 /* Id of TKwabstract */,
-  6 /* Color of TKwabstract */,
-  72 /* Group of ? */,
-  2611 /* Id of TKwinterface */,
-  6 /* Color of TKwinterface */,
-  72 /* Group of ? */,
-  2643 /* Id of TKwenum */,
-  6 /* Color of TKwenum */,
-  72 /* Group of ? */,
-  2523 /* Id of TKwspecial */,
-  6 /* Color of TKwspecial */,
-  72 /* Group of ? */,
-  2647 /* Id of TKwend */,
-  6 /* Color of TKwend */,
-  72 /* Group of ? */,
-  2579 /* Id of TKwmeth */,
-  6 /* Color of TKwmeth */,
-  72 /* Group of ? */,
-  2507 /* Id of TKwtype */,
-  6 /* Color of TKwtype */,
-  72 /* Group of ? */,
-  2615 /* Id of TKwinit */,
-  6 /* Color of TKwinit */,
-  72 /* Group of ? */,
-  2535 /* Id of TKwredef */,
-  6 /* Color of TKwredef */,
-  72 /* Group of ? */,
-  2599 /* Id of TKwis */,
-  6 /* Color of TKwis */,
-  72 /* Group of ? */,
-  2655 /* Id of TKwdo */,
-  6 /* Color of TKwdo */,
-  72 /* Group of ? */,
-  2539 /* Id of TKwreadable */,
-  6 /* Color of TKwreadable */,
-  72 /* Group of ? */,
-  2495 /* Id of TKwwritable */,
-  6 /* Color of TKwwritable */,
-  72 /* Group of ? */,
-  2503 /* Id of TKwvar */,
-  6 /* Color of TKwvar */,
-  72 /* Group of ? */,
-  2607 /* Id of TKwintern */,
-  6 /* Color of TKwintern */,
-  72 /* Group of ? */,
-  2639 /* Id of TKwextern */,
-  6 /* Color of TKwextern */,
-  72 /* Group of ? */,
-  2543 /* Id of TKwprotected */,
-  6 /* Color of TKwprotected */,
-  72 /* Group of ? */,
-  2547 /* Id of TKwprivate */,
-  6 /* Color of TKwprivate */,
-  72 /* Group of ? */,
-  2603 /* Id of TKwintrude */,
-  6 /* Color of TKwintrude */,
-  72 /* Group of ? */,
-  2627 /* Id of TKwif */,
-  6 /* Color of TKwif */,
-  72 /* Group of ? */,
-  2515 /* Id of TKwthen */,
-  6 /* Color of TKwthen */,
-  72 /* Group of ? */,
-  2651 /* Id of TKwelse */,
-  6 /* Color of TKwelse */,
-  72 /* Group of ? */,
-  2499 /* Id of TKwwhile */,
-  6 /* Color of TKwwhile */,
-  72 /* Group of ? */,
-  2583 /* Id of TKwloop */,
-  6 /* Color of TKwloop */,
-  72 /* Group of ? */,
-  2631 /* Id of TKwfor */,
-  6 /* Color of TKwfor */,
-  72 /* Group of ? */,
-  2619 /* Id of TKwin */,
-  6 /* Color of TKwin */,
-  72 /* Group of ? */,
-  2679 /* Id of TKwand */,
-  6 /* Color of TKwand */,
-  72 /* Group of ? */,
-  2551 /* Id of TKwor */,
-  6 /* Color of TKwor */,
-  72 /* Group of ? */,
-  2567 /* Id of TKwnot */,
-  6 /* Color of TKwnot */,
-  72 /* Group of ? */,
-  2531 /* Id of TKwreturn */,
-  6 /* Color of TKwreturn */,
-  72 /* Group of ? */,
-  2659 /* Id of TKwcontinue */,
-  6 /* Color of TKwcontinue */,
-  72 /* Group of ? */,
-  2667 /* Id of TKwbreak */,
-  6 /* Color of TKwbreak */,
-  72 /* Group of ? */,
-  2687 /* Id of TKwabort */,
-  6 /* Color of TKwabort */,
-  72 /* Group of ? */,
-  2671 /* Id of TKwassert */,
-  6 /* Color of TKwassert */,
-  72 /* Group of ? */,
-  2571 /* Id of TKwnew */,
-  6 /* Color of TKwnew */,
-  72 /* Group of ? */,
-  2595 /* Id of TKwisa */,
-  6 /* Color of TKwisa */,
-  72 /* Group of ? */,
-  2555 /* Id of TKwonce */,
-  6 /* Color of TKwonce */,
-  72 /* Group of ? */,
-  2519 /* Id of TKwsuper */,
-  6 /* Color of TKwsuper */,
-  72 /* Group of ? */,
-  2527 /* Id of TKwself */,
-  6 /* Color of TKwself */,
-  72 /* Group of ? */,
-  2511 /* Id of TKwtrue */,
-  6 /* Color of TKwtrue */,
-  72 /* Group of ? */,
-  2635 /* Id of TKwfalse */,
-  6 /* Color of TKwfalse */,
-  72 /* Group of ? */,
-  2563 /* Id of TKwnull */,
-  6 /* Color of TKwnull */,
-  72 /* Group of ? */,
-  2675 /* Id of TKwas */,
-  6 /* Color of TKwas */,
-  72 /* Group of ? */,
-  2559 /* Id of TKwnullable */,
-  6 /* Color of TKwnullable */,
-  72 /* Group of ? */,
-  2591 /* Id of TKwisset */,
-  6 /* Color of TKwisset */,
-  72 /* Group of ? */,
-  2587 /* Id of TKwlabel */,
-  6 /* Color of TKwlabel */,
-  72 /* Group of ? */,
-  2455 /* Id of TOpar */,
+  76 /* Group of ? */,
+  2427 /* Id of TokenKeyword */,
+  6 /* Color of TokenKeyword */,
+  75 /* Group of ? */,
+  3083 /* Id of TKwmodule */,
+  7 /* Color of TKwmodule */,
+  77 /* Group of ? */,
+  3131 /* Id of TKwimport */,
+  7 /* Color of TKwimport */,
+  77 /* Group of ? */,
+  3171 /* Id of TKwclass */,
+  7 /* Color of TKwclass */,
+  77 /* Group of ? */,
+  3191 /* Id of TKwabstract */,
+  7 /* Color of TKwabstract */,
+  77 /* Group of ? */,
+  3119 /* Id of TKwinterface */,
+  7 /* Color of TKwinterface */,
+  77 /* Group of ? */,
+  3151 /* Id of TKwenum */,
+  7 /* Color of TKwenum */,
+  77 /* Group of ? */,
+  3031 /* Id of TKwspecial */,
+  7 /* Color of TKwspecial */,
+  77 /* Group of ? */,
+  3155 /* Id of TKwend */,
+  7 /* Color of TKwend */,
+  77 /* Group of ? */,
+  3087 /* Id of TKwmeth */,
+  7 /* Color of TKwmeth */,
+  77 /* Group of ? */,
+  3015 /* Id of TKwtype */,
+  7 /* Color of TKwtype */,
+  77 /* Group of ? */,
+  3123 /* Id of TKwinit */,
+  7 /* Color of TKwinit */,
+  77 /* Group of ? */,
+  3043 /* Id of TKwredef */,
+  7 /* Color of TKwredef */,
+  77 /* Group of ? */,
+  3107 /* Id of TKwis */,
+  7 /* Color of TKwis */,
+  77 /* Group of ? */,
+  3163 /* Id of TKwdo */,
+  7 /* Color of TKwdo */,
+  77 /* Group of ? */,
+  3047 /* Id of TKwreadable */,
+  7 /* Color of TKwreadable */,
+  77 /* Group of ? */,
+  3003 /* Id of TKwwritable */,
+  7 /* Color of TKwwritable */,
+  77 /* Group of ? */,
+  3011 /* Id of TKwvar */,
+  7 /* Color of TKwvar */,
+  77 /* Group of ? */,
+  3115 /* Id of TKwintern */,
+  7 /* Color of TKwintern */,
+  77 /* Group of ? */,
+  3147 /* Id of TKwextern */,
+  7 /* Color of TKwextern */,
+  77 /* Group of ? */,
+  3051 /* Id of TKwprotected */,
+  7 /* Color of TKwprotected */,
+  77 /* Group of ? */,
+  3055 /* Id of TKwprivate */,
+  7 /* Color of TKwprivate */,
+  77 /* Group of ? */,
+  3111 /* Id of TKwintrude */,
+  7 /* Color of TKwintrude */,
+  77 /* Group of ? */,
+  3135 /* Id of TKwif */,
+  7 /* Color of TKwif */,
+  77 /* Group of ? */,
+  3023 /* Id of TKwthen */,
+  7 /* Color of TKwthen */,
+  77 /* Group of ? */,
+  3159 /* Id of TKwelse */,
+  7 /* Color of TKwelse */,
+  77 /* Group of ? */,
+  3007 /* Id of TKwwhile */,
+  7 /* Color of TKwwhile */,
+  77 /* Group of ? */,
+  3091 /* Id of TKwloop */,
+  7 /* Color of TKwloop */,
+  77 /* Group of ? */,
+  3139 /* Id of TKwfor */,
+  7 /* Color of TKwfor */,
+  77 /* Group of ? */,
+  3127 /* Id of TKwin */,
+  7 /* Color of TKwin */,
+  77 /* Group of ? */,
+  3187 /* Id of TKwand */,
+  7 /* Color of TKwand */,
+  77 /* Group of ? */,
+  3059 /* Id of TKwor */,
+  7 /* Color of TKwor */,
+  77 /* Group of ? */,
+  3075 /* Id of TKwnot */,
+  7 /* Color of TKwnot */,
+  77 /* Group of ? */,
+  3039 /* Id of TKwreturn */,
+  7 /* Color of TKwreturn */,
+  77 /* Group of ? */,
+  3167 /* Id of TKwcontinue */,
+  7 /* Color of TKwcontinue */,
+  77 /* Group of ? */,
+  3175 /* Id of TKwbreak */,
+  7 /* Color of TKwbreak */,
+  77 /* Group of ? */,
+  3195 /* Id of TKwabort */,
+  7 /* Color of TKwabort */,
+  77 /* Group of ? */,
+  3179 /* Id of TKwassert */,
+  7 /* Color of TKwassert */,
+  77 /* Group of ? */,
+  3079 /* Id of TKwnew */,
+  7 /* Color of TKwnew */,
+  77 /* Group of ? */,
+  3103 /* Id of TKwisa */,
+  7 /* Color of TKwisa */,
+  77 /* Group of ? */,
+  3063 /* Id of TKwonce */,
+  7 /* Color of TKwonce */,
+  77 /* Group of ? */,
+  3027 /* Id of TKwsuper */,
+  7 /* Color of TKwsuper */,
+  77 /* Group of ? */,
+  3035 /* Id of TKwself */,
+  7 /* Color of TKwself */,
+  77 /* Group of ? */,
+  3019 /* Id of TKwtrue */,
+  7 /* Color of TKwtrue */,
+  77 /* Group of ? */,
+  3143 /* Id of TKwfalse */,
+  7 /* Color of TKwfalse */,
+  77 /* Group of ? */,
+  3071 /* Id of TKwnull */,
+  7 /* Color of TKwnull */,
+  77 /* Group of ? */,
+  3183 /* Id of TKwas */,
+  7 /* Color of TKwas */,
+  77 /* Group of ? */,
+  3067 /* Id of TKwnullable */,
+  7 /* Color of TKwnullable */,
+  77 /* Group of ? */,
+  3099 /* Id of TKwisset */,
+  7 /* Color of TKwisset */,
+  77 /* Group of ? */,
+  3095 /* Id of TKwlabel */,
+  7 /* Color of TKwlabel */,
+  77 /* Group of ? */,
+  2479 /* Id of TKwdebug */,
+  6 /* Color of TKwdebug */,
+  76 /* Group of ? */,
+  2471 /* Id of TOpar */,
   6 /* Color of TOpar */,
-  72 /* Group of ? */,
-  2735 /* Id of TCpar */,
+  76 /* Group of ? */,
+  2495 /* Id of TCpar */,
   6 /* Color of TCpar */,
-  72 /* Group of ? */,
-  2459 /* Id of TObra */,
+  76 /* Group of ? */,
+  2475 /* Id of TObra */,
   6 /* Color of TObra */,
-  72 /* Group of ? */,
-  2759 /* Id of TCbra */,
+  76 /* Group of ? */,
+  2515 /* Id of TCbra */,
   6 /* Color of TCbra */,
-  72 /* Group of ? */,
-  2743 /* Id of TComma */,
+  76 /* Group of ? */,
+  2503 /* Id of TComma */,
   6 /* Color of TComma */,
-  72 /* Group of ? */,
-  2747 /* Id of TColumn */,
+  76 /* Group of ? */,
+  2507 /* Id of TColumn */,
   6 /* Color of TColumn */,
-  72 /* Group of ? */,
-  2439 /* Id of TQuad */,
+  76 /* Group of ? */,
+  2467 /* Id of TQuad */,
   6 /* Color of TQuad */,
-  72 /* Group of ? */,
-  2771 /* Id of TAssign */,
+  76 /* Group of ? */,
+  2531 /* Id of TAssign */,
   6 /* Color of TAssign */,
-  72 /* Group of ? */,
-  2443 /* Id of TPluseq */,
-  6 /* Color of TPluseq */,
-  72 /* Group of ? */,
-  2471 /* Id of TMinuseq */,
-  6 /* Color of TMinuseq */,
-  72 /* Group of ? */,
-  2723 /* Id of TDotdotdot */,
-  6 /* Color of TDotdotdot */,
-  72 /* Group of ? */,
-  2727 /* Id of TDotdot */,
-  6 /* Color of TDotdot */,
-  72 /* Group of ? */,
-  2731 /* Id of TDot */,
-  6 /* Color of TDot */,
-  72 /* Group of ? */,
-  2447 /* Id of TPlus */,
-  6 /* Color of TPlus */,
-  72 /* Group of ? */,
-  2475 /* Id of TMinus */,
-  6 /* Color of TMinus */,
-  72 /* Group of ? */,
-  2431 /* Id of TStar */,
-  6 /* Color of TStar */,
-  72 /* Group of ? */,
-  2435 /* Id of TSlash */,
-  6 /* Color of TSlash */,
-  72 /* Group of ? */,
-  2451 /* Id of TPercent */,
-  6 /* Color of TPercent */,
-  72 /* Group of ? */,
-  2711 /* Id of TEq */,
-  6 /* Color of TEq */,
-  72 /* Group of ? */,
-  2467 /* Id of TNe */,
-  6 /* Color of TNe */,
-  72 /* Group of ? */,
-  2483 /* Id of TLt */,
-  6 /* Color of TLt */,
-  72 /* Group of ? */,
-  2491 /* Id of TLe */,
-  6 /* Color of TLe */,
-  72 /* Group of ? */,
-  2487 /* Id of TLl */,
-  6 /* Color of TLl */,
-  72 /* Group of ? */,
-  2695 /* Id of TGt */,
-  6 /* Color of TGt */,
-  72 /* Group of ? */,
-  2703 /* Id of TGe */,
-  6 /* Color of TGe */,
-  72 /* Group of ? */,
-  2699 /* Id of TGg */,
-  6 /* Color of TGg */,
-  72 /* Group of ? */,
-  2427 /* Id of TStarship */,
-  6 /* Color of TStarship */,
-  72 /* Group of ? */,
-  2763 /* Id of TBang */,
-  6 /* Color of TBang */,
-  72 /* Group of ? */,
-  2751 /* Id of TClassid */,
+  76 /* Group of ? */,
+  2419 /* Id of TokenOperator */,
+  6 /* Color of TokenOperator */,
+  75 /* Group of ? */,
+  2959 /* Id of TPluseq */,
+  7 /* Color of TPluseq */,
+  77 /* Group of ? */,
+  2979 /* Id of TMinuseq */,
+  7 /* Color of TMinuseq */,
+  77 /* Group of ? */,
+  3219 /* Id of TDotdotdot */,
+  7 /* Color of TDotdotdot */,
+  77 /* Group of ? */,
+  3223 /* Id of TDotdot */,
+  7 /* Color of TDotdot */,
+  77 /* Group of ? */,
+  3227 /* Id of TDot */,
+  7 /* Color of TDot */,
+  77 /* Group of ? */,
+  2963 /* Id of TPlus */,
+  7 /* Color of TPlus */,
+  77 /* Group of ? */,
+  2983 /* Id of TMinus */,
+  7 /* Color of TMinus */,
+  77 /* Group of ? */,
+  2951 /* Id of TStar */,
+  7 /* Color of TStar */,
+  77 /* Group of ? */,
+  2955 /* Id of TSlash */,
+  7 /* Color of TSlash */,
+  77 /* Group of ? */,
+  2967 /* Id of TPercent */,
+  7 /* Color of TPercent */,
+  77 /* Group of ? */,
+  3215 /* Id of TEq */,
+  7 /* Color of TEq */,
+  77 /* Group of ? */,
+  2975 /* Id of TNe */,
+  7 /* Color of TNe */,
+  77 /* Group of ? */,
+  2991 /* Id of TLt */,
+  7 /* Color of TLt */,
+  77 /* Group of ? */,
+  2999 /* Id of TLe */,
+  7 /* Color of TLe */,
+  77 /* Group of ? */,
+  2995 /* Id of TLl */,
+  7 /* Color of TLl */,
+  77 /* Group of ? */,
+  3199 /* Id of TGt */,
+  7 /* Color of TGt */,
+  77 /* Group of ? */,
+  3207 /* Id of TGe */,
+  7 /* Color of TGe */,
+  77 /* Group of ? */,
+  3203 /* Id of TGg */,
+  7 /* Color of TGg */,
+  77 /* Group of ? */,
+  2947 /* Id of TStarship */,
+  7 /* Color of TStarship */,
+  77 /* Group of ? */,
+  3235 /* Id of TBang */,
+  7 /* Color of TBang */,
+  77 /* Group of ? */,
+  2511 /* Id of TClassid */,
   6 /* Color of TClassid */,
-  72 /* Group of ? */,
-  2691 /* Id of TId */,
+  76 /* Group of ? */,
+  2483 /* Id of TId */,
   6 /* Color of TId */,
-  72 /* Group of ? */,
-  2767 /* Id of TAttrid */,
+  76 /* Group of ? */,
+  2527 /* Id of TAttrid */,
   6 /* Color of TAttrid */,
-  72 /* Group of ? */,
-  2463 /* Id of TNumber */,
-  6 /* Color of TNumber */,
-  72 /* Group of ? */,
-  2707 /* Id of TFloat */,
-  6 /* Color of TFloat */,
-  72 /* Group of ? */,
-  2755 /* Id of TChar */,
-  6 /* Color of TChar */,
-  72 /* Group of ? */,
-  2419 /* Id of TString */,
-  6 /* Color of TString */,
-  72 /* Group of ? */,
-  2423 /* Id of TStartString */,
-  6 /* Color of TStartString */,
-  72 /* Group of ? */,
-  2479 /* Id of TMidString */,
-  6 /* Color of TMidString */,
-  72 /* Group of ? */,
-  2719 /* Id of TEndString */,
-  6 /* Color of TEndString */,
-  72 /* Group of ? */,
-  2987 /* Id of EOF */,
-  6 /* Color of EOF */,
-  72 /* Group of ? */,
-  3443 /* Id of AError */,
-  7 /* Color of AError */,
   76 /* Group of ? */,
-  3079 /* Id of AModule */,
-  7 /* Color of AModule */,
-  6 /* Group of ? */,
+  2423 /* Id of TokenLiteral */,
+  6 /* Color of TokenLiteral */,
   75 /* Group of ? */,
-  3071 /* Id of AModuledecl */,
-  7 /* Color of AModuledecl */,
-  6 /* Group of ? */,
-  74 /* Group of ? */,
-  3095 /* Id of AImport */,
-  7 /* Color of AImport */,
-  74 /* Group of ? */,
-  3279 /* Id of AStdImport */,
-  8 /* Color of AStdImport */,
-  6 /* Group of ? */,
+  2971 /* Id of TNumber */,
+  7 /* Color of TNumber */,
   77 /* Group of ? */,
-  3359 /* Id of ANoImport */,
-  8 /* Color of ANoImport */,
-  6 /* Group of ? */,
+  3211 /* Id of TFloat */,
+  7 /* Color of TFloat */,
   77 /* Group of ? */,
-  3043 /* Id of AVisibility */,
-  7 /* Color of AVisibility */,
-  73 /* Group of ? */,
-  3323 /* Id of APublicVisibility */,
-  8 /* Color of APublicVisibility */,
+  3231 /* Id of TChar */,
+  7 /* Color of TChar */,
+  77 /* Group of ? */,
+  2939 /* Id of TString */,
+  7 /* Color of TString */,
+  77 /* Group of ? */,
+  2943 /* Id of TStartString */,
+  7 /* Color of TStartString */,
+  77 /* Group of ? */,
+  2987 /* Id of TMidString */,
+  7 /* Color of TMidString */,
+  77 /* Group of ? */,
+  2491 /* Id of TEndString */,
+  6 /* Color of TEndString */,
   76 /* Group of ? */,
-  3339 /* Id of APrivateVisibility */,
-  8 /* Color of APrivateVisibility */,
-  6 /* Group of ? */,
+  2519 /* Id of TBadString */,
+  6 /* Color of TBadString */,
   76 /* Group of ? */,
-  3331 /* Id of AProtectedVisibility */,
-  8 /* Color of AProtectedVisibility */,
-  6 /* Group of ? */,
+  2523 /* Id of TBadChar */,
+  6 /* Color of TBadChar */,
+  76 /* Group of ? */,
+  2747 /* Id of EOF */,
+  6 /* Color of EOF */,
   76 /* Group of ? */,
-  3395 /* Id of AIntrudeVisibility */,
-  8 /* Color of AIntrudeVisibility */,
+  3515 /* Id of AError */,
+  7 /* Color of AError */,
+  80 /* Group of ? */,
+  2839 /* Id of AModule */,
+  6 /* Color of AModule */,
+  6 /* Group of ? */,
+  77 /* Group of ? */,
+  2831 /* Id of AModuledecl */,
+  6 /* Color of AModuledecl */,
   6 /* Group of ? */,
   76 /* Group of ? */,
-  3131 /* Id of AClassdef */,
-  7 /* Color of AClassdef */,
-  83 /* Group of ? */,
-  3283 /* Id of AStdClassdef */,
-  8 /* Color of AStdClassdef */,
-  8 /* Group of ? */,
-  89 /* Group of ? */,
-  3263 /* Id of ATopClassdef */,
-  8 /* Color of ATopClassdef */,
-  8 /* Group of ? */,
-  87 /* Group of ? */,
-  3379 /* Id of AMainClassdef */,
-  8 /* Color of AMainClassdef */,
-  8 /* Group of ? */,
-  87 /* Group of ? */,
-  3127 /* Id of AClasskind */,
-  7 /* Color of AClasskind */,
+  2855 /* Id of AImport */,
+  6 /* Color of AImport */,
   76 /* Group of ? */,
-  3455 /* Id of AConcreteClasskind */,
-  8 /* Color of AConcreteClasskind */,
+  3343 /* Id of AStdImport */,
+  7 /* Color of AStdImport */,
   6 /* Group of ? */,
   79 /* Group of ? */,
-  3519 /* Id of AAbstractClasskind */,
-  8 /* Color of AAbstractClasskind */,
+  3427 /* Id of ANoImport */,
+  7 /* Color of ANoImport */,
   6 /* Group of ? */,
   79 /* Group of ? */,
-  3399 /* Id of AInterfaceClasskind */,
-  8 /* Color of AInterfaceClasskind */,
+  2803 /* Id of AVisibility */,
+  6 /* Color of AVisibility */,
+  75 /* Group of ? */,
+  3387 /* Id of APublicVisibility */,
+  7 /* Color of APublicVisibility */,
+  78 /* Group of ? */,
+  3403 /* Id of APrivateVisibility */,
+  7 /* Color of APrivateVisibility */,
   6 /* Group of ? */,
-  79 /* Group of ? */,
-  3451 /* Id of AEnumClasskind */,
-  8 /* Color of AEnumClasskind */,
+  78 /* Group of ? */,
+  3395 /* Id of AProtectedVisibility */,
+  7 /* Color of AProtectedVisibility */,
   6 /* Group of ? */,
-  79 /* Group of ? */,
-  3435 /* Id of AExternClasskind */,
-  8 /* Color of AExternClasskind */,
+  78 /* Group of ? */,
+  3467 /* Id of AIntrudeVisibility */,
+  7 /* Color of AIntrudeVisibility */,
   6 /* Group of ? */,
-  79 /* Group of ? */,
-  3099 /* Id of AFormaldef */,
-  7 /* Color of AFormaldef */,
-  7 /* Group of ? */,
-  76 /* Group of ? */,
-  3051 /* Id of ASuperclass */,
-  7 /* Color of ASuperclass */,
+  78 /* Group of ? */,
+  2895 /* Id of AClassdef */,
+  6 /* Color of AClassdef */,
+  8 /* Group of ? */,
+  85 /* Group of ? */,
+  3347 /* Id of AStdClassdef */,
+  7 /* Color of AStdClassdef */,
+  9 /* Group of ? */,
+  92 /* Group of ? */,
+  3327 /* Id of ATopClassdef */,
+  7 /* Color of ATopClassdef */,
+  90 /* Group of ? */,
+  3447 /* Id of AMainClassdef */,
+  7 /* Color of AMainClassdef */,
+  90 /* Group of ? */,
+  2891 /* Id of AClasskind */,
+  6 /* Color of AClasskind */,
+  78 /* Group of ? */,
+  3531 /* Id of AConcreteClasskind */,
+  7 /* Color of AConcreteClasskind */,
+  6 /* Group of ? */,
+  81 /* Group of ? */,
+  3599 /* Id of AAbstractClasskind */,
+  7 /* Color of AAbstractClasskind */,
+  6 /* Group of ? */,
+  81 /* Group of ? */,
+  3471 /* Id of AInterfaceClasskind */,
+  7 /* Color of AInterfaceClasskind */,
+  6 /* Group of ? */,
+  81 /* Group of ? */,
+  3523 /* Id of AEnumClasskind */,
+  7 /* Color of AEnumClasskind */,
+  6 /* Group of ? */,
+  81 /* Group of ? */,
+  3507 /* Id of AExternClasskind */,
+  7 /* Color of AExternClasskind */,
+  6 /* Group of ? */,
+  81 /* Group of ? */,
+  2859 /* Id of AFormaldef */,
+  6 /* Color of AFormaldef */,
   7 /* Group of ? */,
   78 /* Group of ? */,
-  3063 /* Id of APropdef */,
-  7 /* Color of APropdef */,
+  2811 /* Id of ASuperclass */,
+  6 /* Color of ASuperclass */,
+  7 /* Group of ? */,
+  80 /* Group of ? */,
+  2823 /* Id of APropdef */,
+  6 /* Color of APropdef */,
   6 /* Group of ? */,
-  77 /* Group of ? */,
-  3491 /* Id of AAttrPropdef */,
-  8 /* Color of AAttrPropdef */,
+  79 /* Group of ? */,
+  3571 /* Id of AAttrPropdef */,
+  7 /* Color of AAttrPropdef */,
   11 /* Group of ? */,
-  87 /* Group of ? */,
-  3375 /* Id of AMethPropdef */,
-  8 /* Color of AMethPropdef */,
+  89 /* Group of ? */,
+  3443 /* Id of AMethPropdef */,
+  7 /* Color of AMethPropdef */,
   10 /* Group of ? */,
-  86 /* Group of ? */,
-  3683 /* Id of ADeferredMethPropdef */,
-  9 /* Color of ADeferredMethPropdef */,
+  88 /* Group of ? */,
+  3767 /* Id of ADeferredMethPropdef */,
+  8 /* Color of ADeferredMethPropdef */,
   14 /* Group of ? */,
-  96 /* Group of ? */,
-  3643 /* Id of AInternMethPropdef */,
-  9 /* Color of AInternMethPropdef */,
+  98 /* Group of ? */,
+  3723 /* Id of AInternMethPropdef */,
+  8 /* Color of AInternMethPropdef */,
   14 /* Group of ? */,
-  96 /* Group of ? */,
-  3667 /* Id of AExternPropdef */,
+  98 /* Group of ? */,
+  3751 /* Id of AExternPropdef */,
   9 /* Color of AExternPropdef */,
   14 /* Group of ? */,
-  95 /* Group of ? */,
-  3763 /* Id of AExternMethPropdef */,
+  98 /* Group of ? */,
+  3847 /* Id of AExternMethPropdef */,
   10 /* Color of AExternMethPropdef */,
   16 /* Group of ? */,
-  101 /* Group of ? */,
-  3695 /* Id of AConcreteMethPropdef */,
+  104 /* Group of ? */,
+  3779 /* Id of AConcreteMethPropdef */,
   9 /* Color of AConcreteMethPropdef */,
   14 /* Group of ? */,
-  97 /* Group of ? */,
-  311 /* Id of AInitPropdef */,
-  5 /* Color of AInitPropdef */,
-  67 /* Group of ? */,
-  3771 /* Id of AConcreteInitPropdef */,
+  100 /* Group of ? */,
+  3727 /* Id of AInitPropdef */,
+  8 /* Color of AInitPropdef */,
+  96 /* Group of ? */,
+  3855 /* Id of AConcreteInitPropdef */,
   10 /* Color of AConcreteInitPropdef */,
   18 /* Group of ? */,
-  106 /* Group of ? */,
-  3767 /* Id of AExternInitPropdef */,
+  109 /* Group of ? */,
+  3851 /* Id of AExternInitPropdef */,
   10 /* Color of AExternInitPropdef */,
   16 /* Group of ? */,
-  103 /* Group of ? */,
-  3759 /* Id of AMainMethPropdef */,
+  106 /* Group of ? */,
+  3843 /* Id of AMainMethPropdef */,
   10 /* Color of AMainMethPropdef */,
-  102 /* Group of ? */,
-  3103 /* Id of AExternCalls */,
-  7 /* Color of AExternCalls */,
+  105 /* Group of ? */,
+  2863 /* Id of AExternCalls */,
+  6 /* Color of AExternCalls */,
   6 /* Group of ? */,
-  74 /* Group of ? */,
-  3107 /* Id of AExternCall */,
-  7 /* Color of AExternCall */,
   76 /* Group of ? */,
-  3335 /* Id of APropExternCall */,
-  8 /* Color of APropExternCall */,
-  77 /* Group of ? */,
-  3631 /* Id of ALocalPropExternCall */,
-  9 /* Color of ALocalPropExternCall */,
-  6 /* Group of ? */,
-  80 /* Group of ? */,
-  3655 /* Id of AFullPropExternCall */,
-  9 /* Color of AFullPropExternCall */,
-  6 /* Group of ? */,
-  80 /* Group of ? */,
-  3647 /* Id of AInitPropExternCall */,
-  9 /* Color of AInitPropExternCall */,
-  6 /* Group of ? */,
-  80 /* Group of ? */,
-  3271 /* Id of ASuperExternCall */,
-  8 /* Color of ASuperExternCall */,
-  6 /* Group of ? */,
-  79 /* Group of ? */,
-  3467 /* Id of ACastExternCall */,
-  8 /* Color of ACastExternCall */,
+  2867 /* Id of AExternCall */,
+  6 /* Color of AExternCall */,
+  78 /* Group of ? */,
+  3399 /* Id of APropExternCall */,
+  7 /* Color of APropExternCall */,
   79 /* Group of ? */,
-  3703 /* Id of ACastAsExternCall */,
-  9 /* Color of ACastAsExternCall */,
+  3711 /* Id of ALocalPropExternCall */,
+  8 /* Color of ALocalPropExternCall */,
   6 /* Group of ? */,
   82 /* Group of ? */,
-  3723 /* Id of AAsNullableExternCall */,
-  9 /* Color of AAsNullableExternCall */,
+  3739 /* Id of AFullPropExternCall */,
+  8 /* Color of AFullPropExternCall */,
   6 /* Group of ? */,
   82 /* Group of ? */,
-  3727 /* Id of AAsNotNullableExternCall */,
-  9 /* Color of AAsNotNullableExternCall */,
+  3731 /* Id of AInitPropExternCall */,
+  8 /* Color of AInitPropExternCall */,
   6 /* Group of ? */,
   82 /* Group of ? */,
-  3255 /* Id of ATypePropdef */,
-  8 /* Color of ATypePropdef */,
+  3335 /* Id of ASuperExternCall */,
+  7 /* Color of ASuperExternCall */,
+  6 /* Group of ? */,
+  81 /* Group of ? */,
+  3543 /* Id of ACastExternCall */,
+  7 /* Color of ACastExternCall */,
+  81 /* Group of ? */,
+  3787 /* Id of ACastAsExternCall */,
+  8 /* Color of ACastAsExternCall */,
+  6 /* Group of ? */,
+  84 /* Group of ? */,
+  3807 /* Id of AAsNullableExternCall */,
+  8 /* Color of AAsNullableExternCall */,
+  6 /* Group of ? */,
+  84 /* Group of ? */,
+  3811 /* Id of AAsNotNullableExternCall */,
+  8 /* Color of AAsNotNullableExternCall */,
+  6 /* Group of ? */,
+  84 /* Group of ? */,
+  3319 /* Id of ATypePropdef */,
+  7 /* Color of ATypePropdef */,
   9 /* Group of ? */,
-  85 /* Group of ? */,
-  3139 /* Id of AAble */,
-  7 /* Color of AAble */,
+  87 /* Group of ? */,
+  2903 /* Id of AAble */,
+  6 /* Color of AAble */,
   6 /* Group of ? */,
-  72 /* Group of ? */,
-  3315 /* Id of AReadAble */,
-  8 /* Color of AReadAble */,
+  74 /* Group of ? */,
+  3379 /* Id of AReadAble */,
+  7 /* Color of AReadAble */,
   8 /* Group of ? */,
-  77 /* Group of ? */,
-  3243 /* Id of AWriteAble */,
-  8 /* Color of AWriteAble */,
+  79 /* Group of ? */,
+  3307 /* Id of AWriteAble */,
+  7 /* Color of AWriteAble */,
   8 /* Group of ? */,
-  77 /* Group of ? */,
-  3083 /* Id of AMethid */,
-  7 /* Color of AMethid */,
-  74 /* Group of ? */,
-  3415 /* Id of AIdMethid */,
-  8 /* Color of AIdMethid */,
+  79 /* Group of ? */,
+  2843 /* Id of AMethid */,
+  6 /* Color of AMethid */,
+  76 /* Group of ? */,
+  3487 /* Id of AIdMethid */,
+  7 /* Color of AIdMethid */,
   7 /* Group of ? */,
-  77 /* Group of ? */,
-  3343 /* Id of APlusMethid */,
-  8 /* Color of APlusMethid */,
+  79 /* Group of ? */,
+  3407 /* Id of APlusMethid */,
+  7 /* Color of APlusMethid */,
   7 /* Group of ? */,
-  77 /* Group of ? */,
-  3367 /* Id of AMinusMethid */,
-  8 /* Color of AMinusMethid */,
+  79 /* Group of ? */,
+  3435 /* Id of AMinusMethid */,
+  7 /* Color of AMinusMethid */,
   7 /* Group of ? */,
-  77 /* Group of ? */,
-  3291 /* Id of AStarMethid */,
-  8 /* Color of AStarMethid */,
+  79 /* Group of ? */,
+  3355 /* Id of AStarMethid */,
+  7 /* Color of AStarMethid */,
   7 /* Group of ? */,
-  77 /* Group of ? */,
-  3295 /* Id of ASlashMethid */,
-  8 /* Color of ASlashMethid */,
+  79 /* Group of ? */,
+  3359 /* Id of ASlashMethid */,
+  7 /* Color of ASlashMethid */,
   7 /* Group of ? */,
-  77 /* Group of ? */,
-  3351 /* Id of APercentMethid */,
-  8 /* Color of APercentMethid */,
+  79 /* Group of ? */,
+  3415 /* Id of APercentMethid */,
+  7 /* Color of APercentMethid */,
   7 /* Group of ? */,
-  77 /* Group of ? */,
-  3447 /* Id of AEqMethid */,
-  8 /* Color of AEqMethid */,
+  79 /* Group of ? */,
+  3519 /* Id of AEqMethid */,
+  7 /* Color of AEqMethid */,
   7 /* Group of ? */,
-  77 /* Group of ? */,
-  3363 /* Id of ANeMethid */,
-  8 /* Color of ANeMethid */,
+  79 /* Group of ? */,
+  3431 /* Id of ANeMethid */,
+  7 /* Color of ANeMethid */,
   7 /* Group of ? */,
-  77 /* Group of ? */,
-  3391 /* Id of ALeMethid */,
-  8 /* Color of ALeMethid */,
+  79 /* Group of ? */,
+  3463 /* Id of ALeMethid */,
+  7 /* Color of ALeMethid */,
   7 /* Group of ? */,
-  77 /* Group of ? */,
-  3427 /* Id of AGeMethid */,
-  8 /* Color of AGeMethid */,
+  79 /* Group of ? */,
+  3499 /* Id of AGeMethid */,
+  7 /* Color of AGeMethid */,
   7 /* Group of ? */,
-  77 /* Group of ? */,
-  3383 /* Id of ALtMethid */,
-  8 /* Color of ALtMethid */,
+  79 /* Group of ? */,
+  3451 /* Id of ALtMethid */,
+  7 /* Color of ALtMethid */,
   7 /* Group of ? */,
-  77 /* Group of ? */,
-  3419 /* Id of AGtMethid */,
-  8 /* Color of AGtMethid */,
+  79 /* Group of ? */,
+  3491 /* Id of AGtMethid */,
+  7 /* Color of AGtMethid */,
   7 /* Group of ? */,
-  77 /* Group of ? */,
-  3387 /* Id of ALlMethid */,
-  8 /* Color of ALlMethid */,
+  79 /* Group of ? */,
+  3455 /* Id of ALlMethid */,
+  7 /* Color of ALlMethid */,
   7 /* Group of ? */,
-  77 /* Group of ? */,
-  3423 /* Id of AGgMethid */,
-  8 /* Color of AGgMethid */,
+  79 /* Group of ? */,
+  3495 /* Id of AGgMethid */,
+  7 /* Color of AGgMethid */,
   7 /* Group of ? */,
-  77 /* Group of ? */,
-  3479 /* Id of ABraMethid */,
-  8 /* Color of ABraMethid */,
+  79 /* Group of ? */,
+  3555 /* Id of ABraMethid */,
+  7 /* Color of ABraMethid */,
   7 /* Group of ? */,
-  77 /* Group of ? */,
-  3287 /* Id of AStarshipMethid */,
-  8 /* Color of AStarshipMethid */,
+  79 /* Group of ? */,
+  3351 /* Id of AStarshipMethid */,
+  7 /* Color of AStarshipMethid */,
   7 /* Group of ? */,
-  77 /* Group of ? */,
-  3499 /* Id of AAssignMethid */,
-  8 /* Color of AAssignMethid */,
+  79 /* Group of ? */,
+  3579 /* Id of AAssignMethid */,
+  7 /* Color of AAssignMethid */,
   7 /* Group of ? */,
-  77 /* Group of ? */,
-  3475 /* Id of ABraassignMethid */,
-  8 /* Color of ABraassignMethid */,
+  79 /* Group of ? */,
+  3551 /* Id of ABraassignMethid */,
+  7 /* Color of ABraassignMethid */,
   7 /* Group of ? */,
-  77 /* Group of ? */,
-  3055 /* Id of ASignature */,
-  7 /* Color of ASignature */,
+  79 /* Group of ? */,
+  2815 /* Id of ASignature */,
+  6 /* Color of ASignature */,
   6 /* Group of ? */,
-  76 /* Group of ? */,
-  3067 /* Id of AParam */,
-  7 /* Color of AParam */,
+  78 /* Group of ? */,
+  2827 /* Id of AParam */,
+  6 /* Color of AParam */,
   9 /* Group of ? */,
-  80 /* Group of ? */,
-  3123 /* Id of AClosureDecl */,
-  7 /* Color of AClosureDecl */,
+  82 /* Group of ? */,
+  2887 /* Id of AClosureDecl */,
+  6 /* Color of AClosureDecl */,
   8 /* Group of ? */,
-  77 /* Group of ? */,
-  3047 /* Id of AType */,
-  7 /* Color of AType */,
+  79 /* Group of ? */,
+  2807 /* Id of AType */,
+  6 /* Color of AType */,
   8 /* Group of ? */,
-  81 /* Group of ? */,
-  3091 /* Id of ALabel */,
-  7 /* Color of ALabel */,
+  83 /* Group of ? */,
+  2851 /* Id of ALabel */,
+  6 /* Color of ALabel */,
   6 /* Group of ? */,
-  74 /* Group of ? */,
-  3111 /* Id of AExpr */,
+  76 /* Group of ? */,
+  2875 /* Id of AExpr */,
   7 /* Color of AExpr */,
-  75 /* Group of ? */,
-  3487 /* Id of ABlockExpr */,
+  80 /* Group of ? */,
+  3567 /* Id of ABlockExpr */,
   8 /* Color of ABlockExpr */,
   11 /* Group of ? */,
-  84 /* Group of ? */,
-  3247 /* Id of AVardeclExpr */,
+  90 /* Group of ? */,
+  3311 /* Id of AVardeclExpr */,
   8 /* Color of AVardeclExpr */,
   12 /* Group of ? */,
-  85 /* Group of ? */,
-  3307 /* Id of AReturnExpr */,
+  91 /* Group of ? */,
+  3371 /* Id of AReturnExpr */,
   8 /* Color of AReturnExpr */,
   11 /* Group of ? */,
-  84 /* Group of ? */,
-  3087 /* Id of ALabelable */,
-  5 /* Color of ALabelable */,
+  90 /* Group of ? */,
+  2847 /* Id of ALabelable */,
+  6 /* Color of ALabelable */,
   6 /* Group of ? */,
-  67 /* Group of ? */,
-  3707 /* Id of ABreakExpr */,
+  74 /* Group of ? */,
+  3791 /* Id of ABreakExpr */,
   9 /* Color of ABreakExpr */,
   12 /* Group of ? */,
-  88 /* Group of ? */,
-  3531 /* Id of AAbortExpr */,
+  94 /* Group of ? */,
+  3611 /* Id of AAbortExpr */,
   8 /* Color of AAbortExpr */,
   11 /* Group of ? */,
-  84 /* Group of ? */,
-  3691 /* Id of AContinueExpr */,
+  90 /* Group of ? */,
+  3775 /* Id of AContinueExpr */,
   9 /* Color of AContinueExpr */,
   12 /* Group of ? */,
-  88 /* Group of ? */,
-  3679 /* Id of ADoExpr */,
+  94 /* Group of ? */,
+  3763 /* Id of ADoExpr */,
   9 /* Color of ADoExpr */,
   12 /* Group of ? */,
-  88 /* Group of ? */,
-  3411 /* Id of AIfExpr */,
+  94 /* Group of ? */,
+  3483 /* Id of AIfExpr */,
   8 /* Color of AIfExpr */,
   11 /* Group of ? */,
-  84 /* Group of ? */,
-  3407 /* Id of AIfexprExpr */,
+  90 /* Group of ? */,
+  3479 /* Id of AIfexprExpr */,
   8 /* Color of AIfexprExpr */,
   11 /* Group of ? */,
-  84 /* Group of ? */,
-  3571 /* Id of AWhileExpr */,
+  90 /* Group of ? */,
+  3651 /* Id of AWhileExpr */,
   9 /* Color of AWhileExpr */,
   12 /* Group of ? */,
-  88 /* Group of ? */,
-  3627 /* Id of ALoopExpr */,
+  94 /* Group of ? */,
+  3707 /* Id of ALoopExpr */,
   9 /* Color of ALoopExpr */,
   12 /* Group of ? */,
-  88 /* Group of ? */,
-  3659 /* Id of AForExpr */,
+  94 /* Group of ? */,
+  3743 /* Id of AForExpr */,
   9 /* Color of AForExpr */,
   13 /* Group of ? */,
-  90 /* Group of ? */,
-  3507 /* Id of AAssertExpr */,
+  96 /* Group of ? */,
+  3587 /* Id of AAssertExpr */,
   8 /* Color of AAssertExpr */,
   11 /* Group of ? */,
-  84 /* Group of ? */,
-  3503 /* Id of AAssignFormExpr */,
+  90 /* Group of ? */,
+  3583 /* Id of AAssignFormExpr */,
   8 /* Color of AAssignFormExpr */,
   13 /* Group of ? */,
-  85 /* Group of ? */,
-  3311 /* Id of AReassignFormExpr */,
+  91 /* Group of ? */,
+  3375 /* Id of AReassignFormExpr */,
   8 /* Color of AReassignFormExpr */,
   14 /* Group of ? */,
-  87 /* Group of ? */,
-  3615 /* Id of AOnceExpr */,
+  93 /* Group of ? */,
+  3695 /* Id of AOnceExpr */,
   9 /* Color of AOnceExpr */,
   12 /* Group of ? */,
-  87 /* Group of ? */,
-  3779 /* Id of ASendExpr */,
+  93 /* Group of ? */,
+  3863 /* Id of ASendExpr */,
   11 /* Color of ASendExpr */,
   18 /* Group of ? */,
-  108 /* Group of ? */,
-  3803 /* Id of ABinopExpr */,
+  114 /* Group of ? */,
+  3891 /* Id of ABinopExpr */,
   12 /* Color of ABinopExpr */,
   20 /* Group of ? */,
-  113 /* Group of ? */,
-  3483 /* Id of ABoolExpr */,
+  119 /* Group of ? */,
+  3563 /* Id of ABoolExpr */,
   8 /* Color of ABoolExpr */,
-  82 /* Group of ? */,
-  3607 /* Id of AOrExpr */,
+  88 /* Group of ? */,
+  3687 /* Id of AOrExpr */,
   9 /* Color of AOrExpr */,
   11 /* Group of ? */,
-  85 /* Group of ? */,
-  3735 /* Id of AAndExpr */,
+  91 /* Group of ? */,
+  3819 /* Id of AAndExpr */,
   9 /* Color of AAndExpr */,
   11 /* Group of ? */,
-  85 /* Group of ? */,
-  3611 /* Id of AOrElseExpr */,
+  91 /* Group of ? */,
+  3691 /* Id of AOrElseExpr */,
   9 /* Color of AOrElseExpr */,
   11 /* Group of ? */,
-  85 /* Group of ? */,
-  3619 /* Id of ANotExpr */,
+  91 /* Group of ? */,
+  3699 /* Id of ANotExpr */,
   9 /* Color of ANotExpr */,
   11 /* Group of ? */,
-  85 /* Group of ? */,
-  3859 /* Id of AEqExpr */,
+  91 /* Group of ? */,
+  3947 /* Id of AEqExpr */,
   13 /* Color of AEqExpr */,
-  119 /* Group of ? */,
-  3675 /* Id of AEeExpr */,
+  125 /* Group of ? */,
+  3759 /* Id of AEeExpr */,
   9 /* Color of AEeExpr */,
   11 /* Group of ? */,
-  85 /* Group of ? */,
-  3827 /* Id of ANeExpr */,
+  91 /* Group of ? */,
+  3915 /* Id of ANeExpr */,
   13 /* Color of ANeExpr */,
-  119 /* Group of ? */,
-  3835 /* Id of ALtExpr */,
+  125 /* Group of ? */,
+  3923 /* Id of ALtExpr */,
   13 /* Color of ALtExpr */,
-  117 /* Group of ? */,
-  3843 /* Id of ALeExpr */,
+  123 /* Group of ? */,
+  3931 /* Id of ALeExpr */,
   13 /* Color of ALeExpr */,
-  117 /* Group of ? */,
-  3839 /* Id of ALlExpr */,
+  123 /* Group of ? */,
+  3927 /* Id of ALlExpr */,
   13 /* Color of ALlExpr */,
-  117 /* Group of ? */,
-  3847 /* Id of AGtExpr */,
+  123 /* Group of ? */,
+  3935 /* Id of AGtExpr */,
   13 /* Color of AGtExpr */,
-  117 /* Group of ? */,
-  3855 /* Id of AGeExpr */,
+  123 /* Group of ? */,
+  3943 /* Id of AGeExpr */,
   13 /* Color of AGeExpr */,
-  117 /* Group of ? */,
-  3851 /* Id of AGgExpr */,
+  123 /* Group of ? */,
+  3939 /* Id of AGgExpr */,
   13 /* Color of AGgExpr */,
-  117 /* Group of ? */,
-  3639 /* Id of AIsaExpr */,
+  123 /* Group of ? */,
+  3719 /* Id of AIsaExpr */,
   9 /* Color of AIsaExpr */,
   11 /* Group of ? */,
-  85 /* Group of ? */,
-  3819 /* Id of APlusExpr */,
+  91 /* Group of ? */,
+  3907 /* Id of APlusExpr */,
   13 /* Color of APlusExpr */,
-  117 /* Group of ? */,
-  3831 /* Id of AMinusExpr */,
+  123 /* Group of ? */,
+  3919 /* Id of AMinusExpr */,
   13 /* Color of AMinusExpr */,
-  117 /* Group of ? */,
-  3807 /* Id of AStarshipExpr */,
+  123 /* Group of ? */,
+  3895 /* Id of AStarshipExpr */,
   13 /* Color of AStarshipExpr */,
-  117 /* Group of ? */,
-  3811 /* Id of AStarExpr */,
+  123 /* Group of ? */,
+  3899 /* Id of AStarExpr */,
   13 /* Color of AStarExpr */,
-  117 /* Group of ? */,
-  3815 /* Id of ASlashExpr */,
+  123 /* Group of ? */,
+  3903 /* Id of ASlashExpr */,
   13 /* Color of ASlashExpr */,
-  117 /* Group of ? */,
-  3823 /* Id of APercentExpr */,
+  123 /* Group of ? */,
+  3911 /* Id of APercentExpr */,
   13 /* Color of APercentExpr */,
-  117 /* Group of ? */,
-  3783 /* Id of AUminusExpr */,
+  123 /* Group of ? */,
+  3867 /* Id of AUminusExpr */,
   12 /* Color of AUminusExpr */,
   20 /* Group of ? */,
-  113 /* Group of ? */,
-  3755 /* Id of ANewExpr */,
+  119 /* Group of ? */,
+  3839 /* Id of ANewExpr */,
   10 /* Color of ANewExpr */,
   18 /* Group of ? */,
-  105 /* Group of ? */,
-  3495 /* Id of AAttrFormExpr */,
-  5 /* Color of AAttrFormExpr */,
+  111 /* Group of ? */,
+  3575 /* Id of AAttrFormExpr */,
+  6 /* Color of AAttrFormExpr */,
   18 /* Group of ? */,
-  93 /* Group of ? */,
-  3715 /* Id of AAttrExpr */,
+  99 /* Group of ? */,
+  3799 /* Id of AAttrExpr */,
   8 /* Color of AAttrExpr */,
-  98 /* Group of ? */,
-  3719 /* Id of AAttrAssignExpr */,
+  104 /* Group of ? */,
+  3803 /* Id of AAttrAssignExpr */,
   9 /* Color of AAttrAssignExpr */,
-  84 /* Group of ? */,
-  3795 /* Id of ACallFormExpr */,
-  13 /* Color of ACallFormExpr */,
+  90 /* Group of ? */,
+  3883 /* Id of ACallFormExpr */,
+  14 /* Color of ACallFormExpr */,
   20 /* Group of ? */,
-  113 /* Group of ? */,
-  3711 /* Id of AAttrReassignExpr */,
+  119 /* Group of ? */,
+  3871 /* Id of ASendReassignFormExpr */,
+  12 /* Color of ASendReassignFormExpr */,
+  88 /* Group of ? */,
+  3795 /* Id of AAttrReassignExpr */,
   9 /* Color of AAttrReassignExpr */,
-  84 /* Group of ? */,
-  3867 /* Id of ACallExpr */,
-  14 /* Color of ACallExpr */,
-  118 /* Group of ? */,
-  3871 /* Id of ACallAssignExpr */,
+  90 /* Group of ? */,
+  3955 /* Id of ACallExpr */,
+  15 /* Color of ACallExpr */,
+  124 /* Group of ? */,
+  3959 /* Id of ACallAssignExpr */,
   12 /* Color of ACallAssignExpr */,
-  84 /* Group of ? */,
-  3863 /* Id of ACallReassignExpr */,
-  14 /* Color of ACallReassignExpr */,
-  118 /* Group of ? */,
-  3775 /* Id of ASuperExpr */,
+  90 /* Group of ? */,
+  3951 /* Id of ACallReassignExpr */,
+  15 /* Color of ACallReassignExpr */,
+  124 /* Group of ? */,
+  3859 /* Id of ASuperExpr */,
   11 /* Color of ASuperExpr */,
   19 /* Group of ? */,
-  106 /* Group of ? */,
-  3791 /* Id of AInitExpr */,
+  112 /* Group of ? */,
+  3879 /* Id of AInitExpr */,
   12 /* Color of AInitExpr */,
   20 /* Group of ? */,
-  113 /* Group of ? */,
-  3799 /* Id of ABraFormExpr */,
-  13 /* Color of ABraFormExpr */,
+  119 /* Group of ? */,
+  3887 /* Id of ABraFormExpr */,
+  14 /* Color of ABraFormExpr */,
   20 /* Group of ? */,
-  111 /* Group of ? */,
-  3879 /* Id of ABraExpr */,
-  14 /* Color of ABraExpr */,
-  115 /* Group of ? */,
-  3883 /* Id of ABraAssignExpr */,
+  117 /* Group of ? */,
+  3967 /* Id of ABraExpr */,
+  15 /* Color of ABraExpr */,
+  121 /* Group of ? */,
+  3971 /* Id of ABraAssignExpr */,
   12 /* Color of ABraAssignExpr */,
-  84 /* Group of ? */,
-  3251 /* Id of AVarFormExpr */,
-  5 /* Color of AVarFormExpr */,
+  90 /* Group of ? */,
+  3315 /* Id of AVarFormExpr */,
+  6 /* Color of AVarFormExpr */,
   12 /* Group of ? */,
-  83 /* Group of ? */,
-  3875 /* Id of ABraReassignExpr */,
-  14 /* Color of ABraReassignExpr */,
-  115 /* Group of ? */,
-  3699 /* Id of AClosureCallExpr */,
+  89 /* Group of ? */,
+  3963 /* Id of ABraReassignExpr */,
+  15 /* Color of ABraReassignExpr */,
+  121 /* Group of ? */,
+  3783 /* Id of AClosureCallExpr */,
   8 /* Color of AClosureCallExpr */,
   14 /* Group of ? */,
-  100 /* Group of ? */,
-  3579 /* Id of AVarExpr */,
+  106 /* Group of ? */,
+  3659 /* Id of AVarExpr */,
   8 /* Color of AVarExpr */,
-  87 /* Group of ? */,
-  3583 /* Id of AVarAssignExpr */,
+  93 /* Group of ? */,
+  3663 /* Id of AVarAssignExpr */,
   9 /* Color of AVarAssignExpr */,
-  90 /* Group of ? */,
-  3575 /* Id of AVarReassignExpr */,
+  96 /* Group of ? */,
+  3655 /* Id of AVarReassignExpr */,
   9 /* Color of AVarReassignExpr */,
-  92 /* Group of ? */,
-  3319 /* Id of ARangeExpr */,
+  98 /* Group of ? */,
+  3383 /* Id of ARangeExpr */,
   8 /* Color of ARangeExpr */,
   11 /* Group of ? */,
-  84 /* Group of ? */,
-  3687 /* Id of ACrangeExpr */,
+  90 /* Group of ? */,
+  3771 /* Id of ACrangeExpr */,
   9 /* Color of ACrangeExpr */,
-  89 /* Group of ? */,
-  3603 /* Id of AOrangeExpr */,
+  13 /* Group of ? */,
+  95 /* Group of ? */,
+  3683 /* Id of AOrangeExpr */,
   9 /* Color of AOrangeExpr */,
-  89 /* Group of ? */,
-  3515 /* Id of AArrayExpr */,
+  13 /* Group of ? */,
+  95 /* Group of ? */,
+  3595 /* Id of AArrayExpr */,
   8 /* Color of AArrayExpr */,
   11 /* Group of ? */,
-  85 /* Group of ? */,
-  3303 /* Id of ASelfExpr */,
+  91 /* Group of ? */,
+  3367 /* Id of ASelfExpr */,
   8 /* Color of ASelfExpr */,
   12 /* Group of ? */,
-  85 /* Group of ? */,
-  3651 /* Id of AImplicitSelfExpr */,
+  91 /* Group of ? */,
+  3735 /* Id of AImplicitSelfExpr */,
   9 /* Color of AImplicitSelfExpr */,
-  89 /* Group of ? */,
-  3587 /* Id of ATrueExpr */,
+  95 /* Group of ? */,
+  3667 /* Id of ATrueExpr */,
   9 /* Color of ATrueExpr */,
   11 /* Group of ? */,
-  85 /* Group of ? */,
-  3663 /* Id of AFalseExpr */,
+  91 /* Group of ? */,
+  3747 /* Id of AFalseExpr */,
   9 /* Color of AFalseExpr */,
   11 /* Group of ? */,
-  85 /* Group of ? */,
-  3355 /* Id of ANullExpr */,
+  91 /* Group of ? */,
+  3423 /* Id of ANullExpr */,
   8 /* Color of ANullExpr */,
   11 /* Group of ? */,
-  84 /* Group of ? */,
-  3403 /* Id of AIntExpr */,
+  90 /* Group of ? */,
+  3475 /* Id of AIntExpr */,
   8 /* Color of AIntExpr */,
   11 /* Group of ? */,
-  84 /* Group of ? */,
-  3431 /* Id of AFloatExpr */,
+  90 /* Group of ? */,
+  3503 /* Id of AFloatExpr */,
   8 /* Color of AFloatExpr */,
   11 /* Group of ? */,
-  84 /* Group of ? */,
-  3463 /* Id of ACharExpr */,
+  90 /* Group of ? */,
+  3539 /* Id of ACharExpr */,
   8 /* Color of ACharExpr */,
   11 /* Group of ? */,
-  84 /* Group of ? */,
-  3275 /* Id of AStringFormExpr */,
+  90 /* Group of ? */,
+  3339 /* Id of AStringFormExpr */,
   8 /* Color of AStringFormExpr */,
-  84 /* Group of ? */,
-  3591 /* Id of AStringExpr */,
+  90 /* Group of ? */,
+  3671 /* Id of AStringExpr */,
   9 /* Color of AStringExpr */,
   13 /* Group of ? */,
-  87 /* Group of ? */,
-  3595 /* Id of AStartStringExpr */,
+  93 /* Group of ? */,
+  3675 /* Id of AStartStringExpr */,
   9 /* Color of AStartStringExpr */,
   13 /* Group of ? */,
-  87 /* Group of ? */,
-  3623 /* Id of AMidStringExpr */,
+  93 /* Group of ? */,
+  3703 /* Id of AMidStringExpr */,
   9 /* Color of AMidStringExpr */,
   13 /* Group of ? */,
-  87 /* Group of ? */,
-  3671 /* Id of AEndStringExpr */,
+  93 /* Group of ? */,
+  3755 /* Id of AEndStringExpr */,
   9 /* Color of AEndStringExpr */,
   13 /* Group of ? */,
-  87 /* Group of ? */,
-  3267 /* Id of ASuperstringExpr */,
+  93 /* Group of ? */,
+  3331 /* Id of ASuperstringExpr */,
   8 /* Color of ASuperstringExpr */,
   12 /* Group of ? */,
-  85 /* Group of ? */,
-  3599 /* Id of AParExpr */,
+  91 /* Group of ? */,
+  3679 /* Id of AParExpr */,
   9 /* Color of AParExpr */,
-  86 /* Group of ? */,
-  3327 /* Id of AProxyExpr */,
+  12 /* Group of ? */,
+  92 /* Group of ? */,
+  3391 /* Id of AProxyExpr */,
   8 /* Color of AProxyExpr */,
   11 /* Group of ? */,
-  82 /* Group of ? */,
-  3731 /* Id of AAsCastExpr */,
+  88 /* Group of ? */,
+  3815 /* Id of AAsCastExpr */,
   8 /* Color of AAsCastExpr */,
   11 /* Group of ? */,
-  84 /* Group of ? */,
-  3511 /* Id of AAsNotnullExpr */,
+  90 /* Group of ? */,
+  3591 /* Id of AAsNotnullExpr */,
   8 /* Color of AAsNotnullExpr */,
   11 /* Group of ? */,
-  84 /* Group of ? */,
-  3635 /* Id of AIssetAttrExpr */,
+  90 /* Group of ? */,
+  3715 /* Id of AIssetAttrExpr */,
   8 /* Color of AIssetAttrExpr */,
   20 /* Group of ? */,
-  98 /* Group of ? */,
-  3135 /* Id of AAssignOp */,
-  7 /* Color of AAssignOp */,
-  73 /* Group of ? */,
-  3347 /* Id of APlusAssignOp */,
-  8 /* Color of APlusAssignOp */,
+  104 /* Group of ? */,
+  2871 /* Id of AExprs */,
+  6 /* Color of AExprs */,
   6 /* Group of ? */,
-  76 /* Group of ? */,
-  3371 /* Id of AMinusAssignOp */,
-  8 /* Color of AMinusAssignOp */,
+  75 /* Group of ? */,
+  3527 /* Id of ADebugTypeExpr */,
+  8 /* Color of ADebugTypeExpr */,
+  11 /* Group of ? */,
+  90 /* Group of ? */,
+  3459 /* Id of AListExprs */,
+  7 /* Color of AListExprs */,
+  79 /* Group of ? */,
+  3419 /* Id of AParExprs */,
+  7 /* Color of AParExprs */,
+  7 /* Group of ? */,
+  79 /* Group of ? */,
+  3559 /* Id of ABraExprs */,
+  7 /* Color of ABraExprs */,
+  7 /* Group of ? */,
+  79 /* Group of ? */,
+  2899 /* Id of AAssignOp */,
+  6 /* Color of AAssignOp */,
+  75 /* Group of ? */,
+  3411 /* Id of APlusAssignOp */,
+  7 /* Color of APlusAssignOp */,
   6 /* Group of ? */,
-  76 /* Group of ? */,
-  3459 /* Id of AClosureDef */,
+  78 /* Group of ? */,
+  3439 /* Id of AMinusAssignOp */,
+  7 /* Color of AMinusAssignOp */,
+  6 /* Group of ? */,
+  78 /* Group of ? */,
+  3535 /* Id of AClosureDef */,
   7 /* Color of AClosureDef */,
   12 /* Group of ? */,
-  81 /* Group of ? */,
-  3119 /* Id of AClosureId */,
-  7 /* Color of AClosureId */,
-  73 /* Group of ? */,
-  3299 /* Id of ASimpleClosureId */,
-  8 /* Color of ASimpleClosureId */,
+  85 /* Group of ? */,
+  2883 /* Id of AClosureId */,
+  6 /* Color of AClosureId */,
+  75 /* Group of ? */,
+  3363 /* Id of ASimpleClosureId */,
+  7 /* Color of ASimpleClosureId */,
   6 /* Group of ? */,
-  76 /* Group of ? */,
-  3471 /* Id of ABreakClosureId */,
-  8 /* Color of ABreakClosureId */,
+  78 /* Group of ? */,
+  3547 /* Id of ABreakClosureId */,
+  7 /* Color of ABreakClosureId */,
+  6 /* Group of ? */,
+  78 /* Group of ? */,
+  2835 /* Id of AModuleName */,
+  6 /* Color of AModuleName */,
   6 /* Group of ? */,
   76 /* Group of ? */,
-  3075 /* Id of AModuleName */,
-  7 /* Color of AModuleName */,
+  2819 /* Id of AQualified */,
+  6 /* Color of AQualified */,
   6 /* Group of ? */,
-  74 /* Group of ? */,
-  3059 /* Id of AQualified */,
-  7 /* Color of AQualified */,
+  76 /* Group of ? */,
+  2879 /* Id of ADoc */,
+  6 /* Color of ADoc */,
   6 /* Group of ? */,
-  74 /* Group of ? */,
-  3115 /* Id of ADoc */,
-  7 /* Color of ADoc */,
+  76 /* Group of ? */,
+  2535 /* Id of Start */,
+  6 /* Color of Start */,
   6 /* Group of ? */,
   74 /* Group of ? */,
-  2775 /* Id of Start */,
-  7 /* Color of Start */,
-  6 /* Group of ? */,
-  73 /* Group of ? */,
 };
-const char *LOCATE_location = "src/location.nit";
+const char *LOCATE_location = "location.nit";
 const int SFT_location[8] = {
   43 /* Id of SourceFile */,
   4 /* Color of SourceFile */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  2199 /* Id of Location */,
+  50 /* Group of ? */,
+  2235 /* Id of Location */,
   6 /* Color of Location */,
   2 /* Group of ? */,
-  63 /* Group of ? */,
+  66 /* Group of ? */,
 };
-const char *LOCATE_standard = "./../lib/standard//standard.nit";
-const char *LOCATE_standard___environ = "./../lib/standard//environ.nit";
+const char *LOCATE_standard = "../lib/standard/standard.nit";
+const char *LOCATE_standard___environ = "../lib/standard/environ.nit";
 const int SFT_standard___environ[2] = {
-  47 /* Group of ? */,
-  47 /* Group of ? */,
+  50 /* Group of ? */,
+  50 /* Group of ? */,
 };
-const char *LOCATE_standard___symbol = "./../lib/standard//symbol.nit";
+const char *LOCATE_standard___symbol = "../lib/standard/symbol.nit";
 const int SFT_standard___symbol[5] = {
-  119 /* Group of ? */,
+  115 /* Group of ? */,
   31 /* Id of Symbol */,
   4 /* Color of Symbol */,
   2 /* Group of ? */,
-  48 /* Group of ? */,
+  51 /* Group of ? */,
 };
-const char *LOCATE_standard___string = "./../lib/standard//string.nit";
+const char *LOCATE_standard___string = "../lib/standard/string.nit";
 const int SFT_standard___string[24] = {
-  3239 /* Id of AbstractString */,
+  3303 /* Id of AbstractString */,
   12 /* Color of AbstractString */,
   3 /* Group of ? */,
-  106 /* Group of ? */,
-  3535 /* Id of String */,
+  103 /* Group of ? */,
+  3615 /* Id of String */,
   8 /* Color of String */,
-  120 /* Group of ? */,
-  3743 /* Id of Buffer */,
+  116 /* Group of ? */,
+  3827 /* Id of Buffer */,
   14 /* Color of Buffer */,
   4 /* Group of ? */,
-  122 /* Group of ? */,
-  34 /* Group of ? */,
-  69 /* Group of ? */,
-  47 /* Group of ? */,
-  63 /* Group of ? */,
-  58 /* Group of ? */,
+  119 /* Group of ? */,
+  37 /* Group of ? */,
+  72 /* Group of ? */,
+  50 /* Group of ? */,
+  66 /* Group of ? */,
+  61 /* Group of ? */,
   -5 /* Id of NativeString */,
   4 /* Color of NativeString */,
-  48 /* Group of ? */,
+  51 /* Group of ? */,
   35 /* Id of StringCapable */,
   4 /* Color of StringCapable */,
-  47 /* Group of ? */,
+  50 /* Group of ? */,
   2 /* Group of ? */,
-  48 /* Group of ? */,
+  51 /* Group of ? */,
 };
-const char *LOCATE_standard___collection = "./../lib/standard//collection//collection.nit";
-const char *LOCATE_standard___collection___range = "./../lib/standard//collection//range.nit";
+const char *LOCATE_standard___collection = "../lib/standard/collection/collection.nit";
+const char *LOCATE_standard___collection___range = "../lib/standard/collection/range.nit";
 const int SFT_standard___collection___range[8] = {
-  2059 /* Id of Range */,
+  2095 /* Id of Range */,
   7 /* Color of Range */,
   2 /* Group of ? */,
-  75 /* Group of ? */,
-  2207 /* Id of IteratorRange */,
+  78 /* Group of ? */,
+  2243 /* Id of IteratorRange */,
   5 /* Color of IteratorRange */,
   2 /* Group of ? */,
-  52 /* Group of ? */,
+  55 /* Group of ? */,
 };
-const char *LOCATE_standard___collection___abstract_collection = "./../lib/standard//collection//abstract_collection.nit";
+const char *LOCATE_standard___collection___abstract_collection = "../lib/standard/collection/abstract_collection.nit";
 const int SFT_standard___collection___abstract_collection[63] = {
-  283 /* Id of Collection */,
+  279 /* Id of Collection */,
   6 /* Color of Collection */,
-  65 /* Group of ? */,
-  2111 /* Id of NaiveCollection */,
+  68 /* Group of ? */,
+  2147 /* Id of NaiveCollection */,
   7 /* Color of NaiveCollection */,
-  75 /* Group of ? */,
-  199 /* Id of Iterator */,
+  78 /* Group of ? */,
+  195 /* Id of Iterator */,
   4 /* Color of Iterator */,
-  48 /* Group of ? */,
-  2323 /* Id of Container */,
+  51 /* Group of ? */,
+  2359 /* Id of Container */,
   7 /* Color of Container */,
   2 /* Group of ? */,
-  75 /* Group of ? */,
-  2319 /* Id of ContainerIterator */,
+  78 /* Group of ? */,
+  2355 /* Id of ContainerIterator */,
   5 /* Color of ContainerIterator */,
   2 /* Group of ? */,
-  52 /* Group of ? */,
-  367 /* Id of RemovableCollection */,
+  55 /* Group of ? */,
+  359 /* Id of RemovableCollection */,
   8 /* Color of RemovableCollection */,
-  79 /* Group of ? */,
-  2779 /* Id of SimpleCollection */,
+  82 /* Group of ? */,
+  2539 /* Id of SimpleCollection */,
   9 /* Color of SimpleCollection */,
-  93 /* Group of ? */,
-  3183 /* Id of Set */,
+  52 /* Group of ? */,
+  3247 /* Id of Set */,
   4 /* Color of Set */,
-  47 /* Group of ? */,
-  135 /* Id of MapRead */,
+  50 /* Group of ? */,
+  131 /* Id of MapRead */,
   4 /* Color of MapRead */,
-  47 /* Group of ? */,
-  2139 /* Id of Map */,
+  50 /* Group of ? */,
+  2175 /* Id of Map */,
   6 /* Color of Map */,
-  59 /* Group of ? */,
-  139 /* Id of MapIterator */,
+  62 /* Group of ? */,
+  135 /* Id of MapIterator */,
   4 /* Color of MapIterator */,
-  47 /* Group of ? */,
-  2135 /* Id of MapKeysIterator */,
+  50 /* Group of ? */,
+  2171 /* Id of MapKeysIterator */,
   5 /* Color of MapKeysIterator */,
   2 /* Group of ? */,
-  52 /* Group of ? */,
-  2131 /* Id of MapValuesIterator */,
+  55 /* Group of ? */,
+  2167 /* Id of MapValuesIterator */,
   5 /* Color of MapValuesIterator */,
   2 /* Group of ? */,
-  52 /* Group of ? */,
-  351 /* Id of SequenceRead */,
+  55 /* Group of ? */,
+  343 /* Id of SequenceRead */,
   7 /* Color of SequenceRead */,
-  75 /* Group of ? */,
-  3187 /* Id of Sequence */,
+  78 /* Group of ? */,
+  3251 /* Id of Sequence */,
   11 /* Color of Sequence */,
-  96 /* Group of ? */,
-  2223 /* Id of IndexedIterator */,
+  93 /* Group of ? */,
+  2259 /* Id of IndexedIterator */,
   5 /* Color of IndexedIterator */,
-  52 /* Group of ? */,
-  2991 /* Id of CoupleMap */,
+  55 /* Group of ? */,
+  2751 /* Id of CoupleMap */,
   7 /* Color of CoupleMap */,
-  63 /* Group of ? */,
-  2315 /* Id of CoupleMapIterator */,
+  66 /* Group of ? */,
+  2351 /* Id of CoupleMapIterator */,
   5 /* Color of CoupleMapIterator */,
   2 /* Group of ? */,
-  52 /* Group of ? */,
-  267 /* Id of Couple */,
+  55 /* Group of ? */,
+  263 /* Id of Couple */,
   4 /* Color of Couple */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
+  50 /* Group of ? */,
 };
-const char *LOCATE_standard___kernel = "./../lib/standard//kernel.nit";
+const char *LOCATE_standard___kernel = "../lib/standard/kernel.nit";
 const int SFT_standard___kernel[27] = {
   3 /* Id of Object */,
   3 /* Color of Object */,
-  18 /* Group of ? */,
+  19 /* Group of ? */,
   27 /* Id of Sys */,
   4 /* Color of Sys */,
-  52 /* Group of ? */,
-  275 /* Id of Comparable */,
+  55 /* Group of ? */,
+  271 /* Id of Comparable */,
   5 /* Color of Comparable */,
-  52 /* Group of ? */,
-  2295 /* Id of Discrete */,
+  55 /* Group of ? */,
+  2331 /* Id of Discrete */,
   6 /* Color of Discrete */,
-  63 /* Group of ? */,
+  66 /* Group of ? */,
   -13 /* Id of Bool */,
   4 /* Color of Bool */,
-  47 /* Group of ? */,
+  50 /* Group of ? */,
   -9 /* Id of Float */,
   4 /* Color of Float */,
-  48 /* Group of ? */,
+  51 /* Group of ? */,
   -29 /* Id of Int */,
   7 /* Color of Int */,
-  72 /* Group of ? */,
+  75 /* Group of ? */,
   -33 /* Id of Char */,
   7 /* Color of Char */,
-  69 /* Group of ? */,
+  72 /* Group of ? */,
   -1 /* Id of Pointer */,
   4 /* Color of Pointer */,
-  47 /* Group of ? */,
+  50 /* Group of ? */,
 };
-const char *LOCATE_standard___collection___list = "./../lib/standard//collection//list.nit";
+const char *LOCATE_standard___collection___list = "../lib/standard/collection/list.nit";
 const int SFT_standard___collection___list[12] = {
-  3555 /* Id of List */,
+  3635 /* Id of List */,
   12 /* Color of List */,
   2 /* Group of ? */,
-  106 /* Group of ? */,
-  2855 /* Id of ListIterator */,
+  103 /* Group of ? */,
+  2615 /* Id of ListIterator */,
   6 /* Color of ListIterator */,
   2 /* Group of ? */,
-  54 /* Group of ? */,
-  2851 /* Id of ListNode */,
+  57 /* Group of ? */,
+  2611 /* Id of ListNode */,
   8 /* Color of ListNode */,
   3 /* Group of ? */,
-  79 /* Group of ? */,
+  82 /* Group of ? */,
 };
-const char *LOCATE_standard___collection___sorter = "./../lib/standard//collection//sorter.nit";
+const char *LOCATE_standard___collection___sorter = "../lib/standard/collection/sorter.nit";
 const int SFT_standard___collection___sorter[6] = {
-  299 /* Id of AbstractSorter */,
+  295 /* Id of AbstractSorter */,
   4 /* Color of AbstractSorter */,
-  47 /* Group of ? */,
-  2335 /* Id of ComparableSorter */,
+  50 /* Group of ? */,
+  2371 /* Id of ComparableSorter */,
   5 /* Color of ComparableSorter */,
-  54 /* Group of ? */,
+  56 /* Group of ? */,
 };
-const char *LOCATE_standard___collection___array = "./../lib/standard//collection//array.nit";
+const char *LOCATE_standard___collection___array = "../lib/standard/collection/array.nit";
 const int SFT_standard___collection___array[43] = {
-  3039 /* Id of AbstractArrayRead */,
+  2799 /* Id of AbstractArrayRead */,
   10 /* Color of AbstractArrayRead */,
   2 /* Group of ? */,
-  83 /* Group of ? */,
-  3567 /* Id of AbstractArray */,
+  86 /* Group of ? */,
+  3647 /* Id of AbstractArray */,
   13 /* Color of AbstractArray */,
-  118 /* Group of ? */,
-  3747 /* Id of Array */,
+  115 /* Group of ? */,
+  3831 /* Id of Array */,
   4 /* Color of Array */,
   3 /* Group of ? */,
-  47 /* Group of ? */,
-  3031 /* Id of ArrayIterator */,
+  103 /* Group of ? */,
+  2791 /* Id of ArrayIterator */,
   6 /* Color of ArrayIterator */,
   2 /* Group of ? */,
-  54 /* Group of ? */,
-  3563 /* Id of ArraySet */,
+  57 /* Group of ? */,
+  3643 /* Id of ArraySet */,
   10 /* Color of ArraySet */,
   2 /* Group of ? */,
-  96 /* Group of ? */,
-  2363 /* Id of ArraySetIterator */,
+  86 /* Group of ? */,
+  2399 /* Id of ArraySetIterator */,
   5 /* Color of ArraySetIterator */,
   2 /* Group of ? */,
-  52 /* Group of ? */,
-  3235 /* Id of ArrayMap */,
+  55 /* Group of ? */,
+  3299 /* Id of ArrayMap */,
   8 /* Color of ArrayMap */,
   2 /* Group of ? */,
-  65 /* Group of ? */,
-  3027 /* Id of ArrayMapKeys */,
+  68 /* Group of ? */,
+  2787 /* Id of ArrayMapKeys */,
   9 /* Color of ArrayMapKeys */,
   2 /* Group of ? */,
-  83 /* Group of ? */,
-  3023 /* Id of ArrayMapValues */,
+  86 /* Group of ? */,
+  2783 /* Id of ArrayMapValues */,
   9 /* Color of ArrayMapValues */,
   2 /* Group of ? */,
-  83 /* Group of ? */,
-  47 /* Group of ? */,
-  64 /* Group of ? */,
-  295 /* Id of ArrayCapable */,
+  86 /* Group of ? */,
+  50 /* Group of ? */,
+  67 /* Group of ? */,
+  291 /* Id of ArrayCapable */,
   5 /* Color of ArrayCapable */,
-  56 /* Group of ? */,
-  123 /* Id of NativeArray */,
+  59 /* Group of ? */,
+  119 /* Id of NativeArray */,
   4 /* Color of NativeArray */,
-  47 /* Group of ? */,
+  50 /* Group of ? */,
 };
-const char *LOCATE_standard___collection___hash_collection = "./../lib/standard//collection//hash_collection.nit";
+const char *LOCATE_standard___collection___hash_collection = "../lib/standard/collection/hash_collection.nit";
 const int SFT_standard___collection___hash_collection[38] = {
-  2271 /* Id of HashCollection */,
+  2307 /* Id of HashCollection */,
   7 /* Color of HashCollection */,
   2 /* Group of ? */,
-  83 /* Group of ? */,
-  251 /* Id of HashNode */,
+  86 /* Group of ? */,
+  247 /* Id of HashNode */,
   4 /* Color of HashNode */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  2971 /* Id of HashMap */,
+  50 /* Group of ? */,
+  2731 /* Id of HashMap */,
   8 /* Color of HashMap */,
   9 /* Group of ? */,
-  63 /* Group of ? */,
-  2967 /* Id of HashMapKeys */,
+  66 /* Group of ? */,
+  2727 /* Id of HashMapKeys */,
   9 /* Color of HashMapKeys */,
   2 /* Group of ? */,
-  83 /* Group of ? */,
-  2963 /* Id of HashMapValues */,
+  86 /* Group of ? */,
+  2723 /* Id of HashMapValues */,
   9 /* Color of HashMapValues */,
   2 /* Group of ? */,
-  83 /* Group of ? */,
-  2263 /* Id of HashMapNode */,
+  86 /* Group of ? */,
+  2299 /* Id of HashMapNode */,
   5 /* Color of HashMapNode */,
   7 /* Group of ? */,
-  55 /* Group of ? */,
-  2267 /* Id of HashMapIterator */,
+  58 /* Group of ? */,
+  2303 /* Id of HashMapIterator */,
   5 /* Color of HashMapIterator */,
   2 /* Group of ? */,
-  52 /* Group of ? */,
-  3559 /* Id of HashSet */,
+  55 /* Group of ? */,
+  3639 /* Id of HashSet */,
   10 /* Color of HashSet */,
-  48 /* Group of ? */,
-  2255 /* Id of HashSetNode */,
-  5 /* Color of HashSetNode */,
   55 /* Group of ? */,
-  2259 /* Id of HashSetIterator */,
+  2291 /* Id of HashSetNode */,
+  5 /* Color of HashSetNode */,
+  58 /* Group of ? */,
+  2295 /* Id of HashSetIterator */,
   5 /* Color of HashSetIterator */,
   2 /* Group of ? */,
-  52 /* Group of ? */,
+  55 /* Group of ? */,
 };
-const char *LOCATE_standard___hash = "./../lib/standard//hash.nit";
+const char *LOCATE_standard___hash = "../lib/standard/hash.nit";
 const int SFT_standard___hash[1] = {
-  40 /* Group of ? */,
+  43 /* Group of ? */,
 };
-const char *LOCATE_standard___time = "./../lib/standard//time.nit";
+const char *LOCATE_standard___time = "../lib/standard/time.nit";
 const int SFT_standard___time[1] = {
-  17 /* Group of ? */,
+  18 /* Group of ? */,
 };
-const char *LOCATE_standard___file = "./../lib/standard//file.nit";
-const int SFT_standard___file[33] = {
-  27 /* Group of ? */,
-  2283 /* Id of FStream */,
-  8 /* Color of FStream */,
+const char *LOCATE_standard___file = "../lib/standard/file.nit";
+const int SFT_standard___file[30] = {
+  28 /* Group of ? */,
+  2319 /* Id of FStream */,
+  4 /* Color of FStream */,
   2 /* Group of ? */,
-  53 /* Group of ? */,
-  3223 /* Id of IFStream */,
-  9 /* Color of IFStream */,
+  50 /* Group of ? */,
+  3287 /* Id of IFStream */,
+  8 /* Color of IFStream */,
   6 /* Group of ? */,
   73 /* Group of ? */,
-  2811 /* Id of OFStream */,
+  2571 /* Id of OFStream */,
   7 /* Color of OFStream */,
   4 /* Group of ? */,
-  62 /* Group of ? */,
-  3539 /* Id of Stdin */,
-  10 /* Color of Stdin */,
+  54 /* Group of ? */,
+  3619 /* Id of Stdin */,
+  9 /* Color of Stdin */,
   78 /* Group of ? */,
-  3175 /* Id of Stdout */,
-  9 /* Color of Stdout */,
-  67 /* Group of ? */,
-  3179 /* Id of Stderr */,
-  9 /* Color of Stderr */,
-  67 /* Group of ? */,
-  126 /* Group of ? */,
-  55 /* Group of ? */,
+  3239 /* Id of Stdout */,
+  8 /* Color of Stdout */,
+  66 /* Group of ? */,
+  3243 /* Id of Stderr */,
+  8 /* Color of Stderr */,
+  66 /* Group of ? */,
+  123 /* Group of ? */,
+  58 /* Group of ? */,
   -25 /* Id of FileStat */,
   5 /* Color of FileStat */,
-  48 /* Group of ? */,
+  51 /* Group of ? */,
   -21 /* Id of NativeFile */,
   5 /* Color of NativeFile */,
-  48 /* Group of ? */,
-  119 /* Id of NativeFileCapable */,
-  4 /* Color of NativeFileCapable */,
-  47 /* Group of ? */,
+  51 /* Group of ? */,
 };
-const char *LOCATE_standard___stream = "./../lib/standard//stream.nit";
-const int SFT_standard___stream[31] = {
-  215 /* Id of IOS */,
+const char *LOCATE_standard___stream = "../lib/standard/stream.nit";
+const int SFT_standard___stream[32] = {
+  211 /* Id of IOS */,
   5 /* Color of IOS */,
-  56 /* Group of ? */,
-  2227 /* Id of IStream */,
+  61 /* Group of ? */,
+  2263 /* Id of IStream */,
   7 /* Color of IStream */,
-  62 /* Group of ? */,
-  2107 /* Id of OStream */,
+  66 /* Group of ? */,
+  2143 /* Id of OStream */,
   6 /* Color of OStream */,
-  59 /* Group of ? */,
-  3015 /* Id of BufferedIStream */,
+  63 /* Group of ? */,
+  2775 /* Id of BufferedIStream */,
   6 /* Color of BufferedIStream */,
   4 /* Group of ? */,
-  69 /* Group of ? */,
-  2879 /* Id of IOStream */,
+  54 /* Group of ? */,
+  2639 /* Id of IOStream */,
   10 /* Color of IOStream */,
-  75 /* Group of ? */,
-  2287 /* Id of FDStream */,
+  83 /* Group of ? */,
+  2323 /* Id of FDStream */,
   4 /* Color of FDStream */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  2979 /* Id of FDIStream */,
+  50 /* Group of ? */,
+  2739 /* Id of FDIStream */,
   9 /* Color of FDIStream */,
   4 /* Group of ? */,
-  69 /* Group of ? */,
-  2975 /* Id of FDOStream */,
+  73 /* Group of ? */,
+  2735 /* Id of FDOStream */,
   8 /* Color of FDOStream */,
   3 /* Group of ? */,
-  53 /* Group of ? */,
-  3231 /* Id of FDIOStream */,
+  58 /* Group of ? */,
+  3295 /* Id of FDIOStream */,
   11 /* Color of FDIOStream */,
-  71 /* Group of ? */,
+  76 /* Group of ? */,
+  35 /* Group of ? */,
 };
-const char *LOCATE_standard___string_search = "./../lib/standard//string_search.nit";
+const char *LOCATE_standard___string_search = "../lib/standard/string_search.nit";
 const int SFT_standard___string_search[12] = {
   103 /* Id of Pattern */,
   4 /* Color of Pattern */,
-  47 /* Group of ? */,
-  2355 /* Id of BM_Pattern */,
+  50 /* Group of ? */,
+  2391 /* Id of BM_Pattern */,
   5 /* Color of BM_Pattern */,
   2 /* Group of ? */,
-  52 /* Group of ? */,
-  131 /* Id of Match */,
+  55 /* Group of ? */,
+  127 /* Id of Match */,
   4 /* Color of Match */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  135 /* Group of ? */,
+  50 /* Group of ? */,
+  134 /* Group of ? */,
 };
-const char *LOCATE_standard___exec = "./../lib/standard//exec.nit";
+const char *LOCATE_standard___exec = "../lib/standard/exec.nit";
 const int SFT_standard___exec[20] = {
   95 /* Id of Process */,
   4 /* Color of Process */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  2871 /* Id of IProcess */,
+  50 /* Group of ? */,
+  2631 /* Id of IProcess */,
   9 /* Color of IProcess */,
   4 /* Group of ? */,
-  72 /* Group of ? */,
-  2807 /* Id of OProcess */,
+  78 /* Group of ? */,
+  2567 /* Id of OProcess */,
   8 /* Color of OProcess */,
   3 /* Group of ? */,
-  69 /* Group of ? */,
-  3211 /* Id of IOProcess */,
+  73 /* Group of ? */,
+  3275 /* Id of IOProcess */,
   11 /* Color of IOProcess */,
-  76 /* Group of ? */,
-  47 /* Group of ? */,
-  59 /* Group of ? */,
+  84 /* Group of ? */,
+  50 /* Group of ? */,
+  62 /* Group of ? */,
   -17 /* Id of NativeProcess */,
   5 /* Color of NativeProcess */,
-  48 /* Group of ? */,
+  51 /* Group of ? */,
 };
-const char *LOCATE_standard___math = "./../lib/standard//math.nit";
+const char *LOCATE_standard___math = "../lib/standard/math.nit";
 const int SFT_standard___math[4] = {
-  86 /* Group of ? */,
-  59 /* Group of ? */,
-  74 /* Group of ? */,
-  41 /* Group of ? */,
+  89 /* Group of ? */,
+  62 /* Group of ? */,
+  77 /* Group of ? */,
+  44 /* Group of ? */,
 };
-const char *LOCATE_standard___gc = "./../lib/standard//gc.nit";
+const char *LOCATE_standard___gc = "../lib/standard/gc.nit";
 const int SFT_standard___gc[1] = {
-  55 /* Group of ? */,
+  58 /* Group of ? */,
 };
-const char *LOCATE_parser___tables = "src/parser//tables.nit";
+const char *LOCATE_parser___tables = "parser/tables.nit";
 const int SFT_parser___tables[3] = {
   23 /* Id of TablesCapable */,
   4 /* Color of TablesCapable */,
-  47 /* Group of ? */,
+  50 /* Group of ? */,
 };
-const char *LOCATE_mmloader = "src/mmloader.nit";
-const int SFT_mmloader[11] = {
-  2123 /* Id of Message */,
-  6 /* Color of Message */,
-  2 /* Group of ? */,
-  63 /* Group of ? */,
-  327 /* Id of ToolContext */,
-  5 /* Color of ToolContext */,
-  16 /* Group of ? */,
-  78 /* Group of ? */,
-  127 /* Id of ModuleLoader */,
+const char *LOCATE_mmloader = "mmloader.nit";
+const int SFT_mmloader[5] = {
+  15 /* Group of ? */,
+  71 /* Group of ? */,
+  123 /* Id of ModuleLoader */,
   4 /* Color of ModuleLoader */,
-  47 /* Group of ? */,
+  50 /* Group of ? */,
 };
-const char *LOCATE_metamodel = "src/metamodel//metamodel.nit";
-const char *LOCATE_metamodel___vararg = "src/metamodel//vararg.nit";
+const char *LOCATE_metamodel = "metamodel/metamodel.nit";
+const char *LOCATE_metamodel___vararg = "metamodel/vararg.nit";
 const int SFT_metamodel___vararg[2] = {
   2 /* Group of ? */,
-  50 /* Group of ? */,
+  53 /* Group of ? */,
 };
-const char *LOCATE_metamodel___genericity = "src/metamodel//genericity.nit";
+const char *LOCATE_metamodel___genericity = "metamodel/genericity.nit";
 const int SFT_metamodel___genericity[11] = {
   4 /* Group of ? */,
-  52 /* Group of ? */,
-  64 /* Group of ? */,
-  2827 /* Id of MMTypeGeneric */,
+  55 /* Group of ? */,
+  67 /* Group of ? */,
+  2587 /* Id of MMTypeGeneric */,
   6 /* Color of MMTypeGeneric */,
   4 /* Group of ? */,
-  82 /* Group of ? */,
-  2831 /* Id of MMTypeFormalParameter */,
+  85 /* Group of ? */,
+  2591 /* Id of MMTypeFormalParameter */,
   6 /* Color of MMTypeFormalParameter */,
   5 /* Group of ? */,
-  84 /* Group of ? */,
+  87 /* Group of ? */,
 };
-const char *LOCATE_metamodel___type_formal = "src/metamodel//type_formal.nit";
+const char *LOCATE_metamodel___type_formal = "metamodel/type_formal.nit";
 const int SFT_metamodel___type_formal[5] = {
-  65 /* Group of ? */,
-  2151 /* Id of MMTypeFormal */,
+  68 /* Group of ? */,
+  2187 /* Id of MMTypeFormal */,
   5 /* Color of MMTypeFormal */,
   3 /* Group of ? */,
-  80 /* Group of ? */,
+  83 /* Group of ? */,
 };
-const char *LOCATE_metamodel___inheritance = "src/metamodel//inheritance.nit";
+const char *LOCATE_metamodel___inheritance = "metamodel/inheritance.nit";
 const int SFT_metamodel___inheritance[19] = {
-  47 /* Group of ? */,
   50 /* Group of ? */,
+  53 /* Group of ? */,
   6 /* Group of ? */,
-  58 /* Group of ? */,
+  61 /* Group of ? */,
+  53 /* Group of ? */,
   50 /* Group of ? */,
-  47 /* Group of ? */,
-  2183 /* Id of MMImplicitLocalClass */,
+  2219 /* Id of MMImplicitLocalClass */,
   5 /* Color of MMImplicitLocalClass */,
-  117 /* Group of ? */,
-  2171 /* Id of MMRefineAncestor */,
+  120 /* Group of ? */,
+  2207 /* Id of MMRefineAncestor */,
   5 /* Color of MMRefineAncestor */,
   4 /* Group of ? */,
-  57 /* Group of ? */,
-  2167 /* Id of MMSpecAncestor */,
+  60 /* Group of ? */,
+  2203 /* Id of MMSpecAncestor */,
   5 /* Color of MMSpecAncestor */,
-  57 /* Group of ? */,
-  2187 /* Id of MMDefaultAncestor */,
+  60 /* Group of ? */,
+  2223 /* Id of MMDefaultAncestor */,
   5 /* Color of MMDefaultAncestor */,
-  57 /* Group of ? */,
+  60 /* Group of ? */,
 };
-const char *LOCATE_metamodel___static_type = "src/metamodel//static_type.nit";
+const char *LOCATE_metamodel___static_type = "metamodel/static_type.nit";
 const int SFT_metamodel___static_type[48] = {
   9 /* Group of ? */,
-  74 /* Group of ? */,
+  77 /* Group of ? */,
   2 /* Group of ? */,
-  51 /* Group of ? */,
-  151 /* Id of MMParam */,
+  54 /* Group of ? */,
+  147 /* Id of MMParam */,
   4 /* Color of MMParam */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  147 /* Id of MMSignature */,
+  50 /* Group of ? */,
+  143 /* Id of MMSignature */,
   4 /* Color of MMSignature */,
   3 /* Group of ? */,
-  56 /* Group of ? */,
+  59 /* Group of ? */,
   2 /* Group of ? */,
-  48 /* Group of ? */,
-  191 /* Id of MMClosure */,
+  51 /* Group of ? */,
+  187 /* Id of MMClosure */,
   4 /* Color of MMClosure */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  195 /* Id of MMAncestor */,
+  50 /* Group of ? */,
+  191 /* Id of MMAncestor */,
   4 /* Color of MMAncestor */,
   2 /* Group of ? */,
-  48 /* Group of ? */,
-  143 /* Id of MMType */,
+  51 /* Group of ? */,
+  139 /* Id of MMType */,
   4 /* Color of MMType */,
   2 /* Group of ? */,
-  66 /* Group of ? */,
-  2175 /* Id of MMNullableType */,
+  69 /* Group of ? */,
+  2211 /* Id of MMNullableType */,
   5 /* Color of MMNullableType */,
   3 /* Group of ? */,
-  80 /* Group of ? */,
-  2155 /* Id of MMTypeClass */,
+  83 /* Group of ? */,
+  2191 /* Id of MMTypeClass */,
   5 /* Color of MMTypeClass */,
   3 /* Group of ? */,
-  80 /* Group of ? */,
-  2823 /* Id of MMTypeSimpleClass */,
+  83 /* Group of ? */,
+  2583 /* Id of MMTypeSimpleClass */,
   6 /* Color of MMTypeSimpleClass */,
-  82 /* Group of ? */,
-  2147 /* Id of MMTypeNone */,
+  85 /* Group of ? */,
+  2183 /* Id of MMTypeNone */,
   5 /* Color of MMTypeNone */,
   3 /* Group of ? */,
-  80 /* Group of ? */,
+  83 /* Group of ? */,
   2 /* Group of ? */,
-  54 /* Group of ? */,
-  167 /* Id of MMImportedCast */,
+  57 /* Group of ? */,
+  163 /* Id of MMImportedCast */,
   4 /* Color of MMImportedCast */,
   3 /* Group of ? */,
-  61 /* Group of ? */,
-  85 /* Group of ? */,
+  64 /* Group of ? */,
+  88 /* Group of ? */,
 };
-const char *LOCATE_metamodel___abstractmetamodel = "src/metamodel//abstractmetamodel.nit";
+const char *LOCATE_metamodel___abstractmetamodel = "metamodel/abstractmetamodel.nit";
 const int SFT_metamodel___abstractmetamodel[41] = {
-  187 /* Id of MMContext */,
+  183 /* Id of MMContext */,
   4 /* Color of MMContext */,
   2 /* Group of ? */,
-  48 /* Group of ? */,
-  183 /* Id of MMDirectory */,
+  51 /* Group of ? */,
+  179 /* Id of MMDirectory */,
   4 /* Color of MMDirectory */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  155 /* Id of MMModule */,
+  50 /* Group of ? */,
+  151 /* Id of MMModule */,
   4 /* Color of MMModule */,
   3 /* Group of ? */,
-  56 /* Group of ? */,
-  175 /* Id of MMGlobalClass */,
+  59 /* Group of ? */,
+  171 /* Id of MMGlobalClass */,
   4 /* Color of MMGlobalClass */,
   2 /* Group of ? */,
-  48 /* Group of ? */,
-  163 /* Id of MMLocalClass */,
+  51 /* Group of ? */,
+  159 /* Id of MMLocalClass */,
   4 /* Color of MMLocalClass */,
   11 /* Group of ? */,
-  78 /* Group of ? */,
-  171 /* Id of MMGlobalProperty */,
+  81 /* Group of ? */,
+  167 /* Id of MMGlobalProperty */,
   4 /* Color of MMGlobalProperty */,
   2 /* Group of ? */,
-  49 /* Group of ? */,
-  159 /* Id of MMLocalProperty */,
+  52 /* Group of ? */,
+  155 /* Id of MMLocalProperty */,
   4 /* Color of MMLocalProperty */,
   4 /* Group of ? */,
-  54 /* Group of ? */,
-  2195 /* Id of MMAttribute */,
+  57 /* Group of ? */,
+  2231 /* Id of MMAttribute */,
   5 /* Color of MMAttribute */,
-  70 /* Group of ? */,
-  179 /* Id of MMExplicitImport */,
+  73 /* Group of ? */,
+  175 /* Id of MMExplicitImport */,
   4 /* Color of MMExplicitImport */,
   3 /* Group of ? */,
-  51 /* Group of ? */,
-  2179 /* Id of MMMethod */,
+  54 /* Group of ? */,
+  2215 /* Id of MMMethod */,
   5 /* Color of MMMethod */,
-  86 /* Group of ? */,
-  2191 /* Id of MMConcreteClass */,
+  89 /* Group of ? */,
+  2227 /* Id of MMConcreteClass */,
   5 /* Color of MMConcreteClass */,
-  121 /* Group of ? */,
+  124 /* Group of ? */,
 };
-const char *LOCATE_metamodel___partial_order = "src/metamodel//partial_order.nit";
+const char *LOCATE_metamodel___partial_order = "metamodel/partial_order.nit";
 const int SFT_metamodel___partial_order[8] = {
-  2079 /* Id of PartialOrder */,
+  2115 /* Id of PartialOrder */,
   7 /* Color of PartialOrder */,
   2 /* Group of ? */,
-  75 /* Group of ? */,
+  78 /* Group of ? */,
   107 /* Id of PartialOrderElement */,
   4 /* Color of PartialOrderElement */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
+  50 /* Group of ? */,
 };
-const char *LOCATE_metamodel___virtualtype = "src/metamodel//virtualtype.nit";
+const char *LOCATE_metamodel___virtualtype = "metamodel/virtualtype.nit";
 const int SFT_metamodel___virtualtype[10] = {
-  48 /* Group of ? */,
-  2143 /* Id of MMTypeProperty */,
+  51 /* Group of ? */,
+  2179 /* Id of MMTypeProperty */,
   5 /* Color of MMTypeProperty */,
   10 /* Group of ? */,
-  69 /* Group of ? */,
-  2819 /* Id of MMVirtualType */,
+  72 /* Group of ? */,
+  2579 /* Id of MMVirtualType */,
   6 /* Color of MMVirtualType */,
   5 /* Group of ? */,
-  84 /* Group of ? */,
-  105 /* Group of ? */,
+  87 /* Group of ? */,
+  108 /* Group of ? */,
 };
-const char *LOCATE_opts = "./../lib/opts.nit";
+const char *LOCATE_toolcontext = "toolcontext.nit";
+const int SFT_toolcontext[8] = {
+  2159 /* Id of Message */,
+  6 /* Color of Message */,
+  2 /* Group of ? */,
+  66 /* Group of ? */,
+  319 /* Id of ToolContext */,
+  5 /* Color of ToolContext */,
+  22 /* Group of ? */,
+  82 /* Group of ? */,
+};
+const char *LOCATE_opts = "../lib/opts.nit";
 const int SFT_opts[34] = {
   115 /* Id of Option */,
   4 /* Color of Option */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  2091 /* Id of OptionText */,
+  50 /* Group of ? */,
+  2127 /* Id of OptionText */,
   5 /* Color of OptionText */,
-  63 /* Group of ? */,
-  2103 /* Id of OptionBool */,
+  66 /* Group of ? */,
+  2139 /* Id of OptionBool */,
   5 /* Color of OptionBool */,
-  63 /* Group of ? */,
-  2099 /* Id of OptionCount */,
+  66 /* Group of ? */,
+  2135 /* Id of OptionCount */,
   5 /* Color of OptionCount */,
-  63 /* Group of ? */,
-  2095 /* Id of OptionParameter */,
+  66 /* Group of ? */,
+  2131 /* Id of OptionParameter */,
   5 /* Color of OptionParameter */,
-  63 /* Group of ? */,
-  2791 /* Id of OptionString */,
-  6 /* Color of OptionString */,
   66 /* Group of ? */,
-  2799 /* Id of OptionEnum */,
+  2551 /* Id of OptionString */,
+  6 /* Color of OptionString */,
+  69 /* Group of ? */,
+  2559 /* Id of OptionEnum */,
   6 /* Color of OptionEnum */,
   7 /* Group of ? */,
-  66 /* Group of ? */,
-  2795 /* Id of OptionInt */,
+  69 /* Group of ? */,
+  2555 /* Id of OptionInt */,
   6 /* Color of OptionInt */,
-  66 /* Group of ? */,
-  2803 /* Id of OptionArray */,
+  69 /* Group of ? */,
+  2563 /* Id of OptionArray */,
   6 /* Color of OptionArray */,
   7 /* Group of ? */,
-  66 /* Group of ? */,
+  69 /* Group of ? */,
   111 /* Id of OptionContext */,
   4 /* Color of OptionContext */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
+  50 /* Group of ? */,
 };
-const char *LOCATE_primitive_info = "src/primitive_info.nit";
+const char *LOCATE_primitive_info = "primitive_info.nit";
 const int SFT_primitive_info[8] = {
   2 /* Group of ? */,
-  50 /* Group of ? */,
+  53 /* Group of ? */,
   99 /* Id of PrimitiveInfo */,
   4 /* Color of PrimitiveInfo */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  59 /* Group of ? */,
-  83 /* Group of ? */,
+  50 /* Group of ? */,
+  62 /* Group of ? */,
+  86 /* Group of ? */,
 };
-const char *LOCATE_syntax___icode_generation = "src/syntax//icode_generation.nit";
+const char *LOCATE_syntax___icode_generation = "syntax/icode_generation.nit";
 const int SFT_syntax___icode_generation[27] = {
-  2375 /* Id of A2IContext */,
+  2411 /* Id of A2IContext */,
   5 /* Color of A2IContext */,
   6 /* Group of ? */,
-  71 /* Group of ? */,
+  74 /* Group of ? */,
   4 /* Group of ? */,
-  52 /* Group of ? */,
-  97 /* Group of ? */,
+  55 /* Group of ? */,
+  100 /* Group of ? */,
   10 /* Group of ? */,
-  71 /* Group of ? */,
+  74 /* Group of ? */,
   10 /* Group of ? */,
-  97 /* Group of ? */,
-  3143 /* Id of A2IVisitor */,
+  100 /* Group of ? */,
+  2907 /* Id of A2IVisitor */,
   6 /* Color of A2IVisitor */,
   7 /* Group of ? */,
+  84 /* Group of ? */,
+  68 /* Group of ? */,
+  99 /* Group of ? */,
+  93 /* Group of ? */,
+  84 /* Group of ? */,
+  101 /* Group of ? */,
+  101 /* Group of ? */,
   81 /* Group of ? */,
-  64 /* Group of ? */,
-  97 /* Group of ? */,
-  91 /* Group of ? */,
-  80 /* Group of ? */,
-  98 /* Group of ? */,
-  98 /* Group of ? */,
-  76 /* Group of ? */,
   11 /* Group of ? */,
-  82 /* Group of ? */,
-  90 /* Group of ? */,
+  88 /* Group of ? */,
+  96 /* Group of ? */,
   7 /* Group of ? */,
-  72 /* Group of ? */,
+  76 /* Group of ? */,
 };
-const char *LOCATE_icode = "src/icode//icode.nit";
-const char *LOCATE_icode___icode_tools = "src/icode//icode_tools.nit";
+const char *LOCATE_icode = "icode/icode.nit";
+const char *LOCATE_icode___icode_tools = "icode/icode_tools.nit";
 const int SFT_icode___icode_tools[12] = {
-  223 /* Id of ICodeVisitor */,
+  219 /* Id of ICodeVisitor */,
   4 /* Color of ICodeVisitor */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  47 /* Group of ? */,
-  227 /* Id of ICodeDupContext */,
+  50 /* Group of ? */,
+  50 /* Group of ? */,
+  223 /* Id of ICodeDupContext */,
   4 /* Color of ICodeDupContext */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  53 /* Group of ? */,
-  64 /* Group of ? */,
-  69 /* Group of ? */,
+  50 /* Group of ? */,
+  56 /* Group of ? */,
+  67 /* Group of ? */,
+  72 /* Group of ? */,
 };
-const char *LOCATE_icode___icode_builder = "src/icode//icode_builder.nit";
+const char *LOCATE_icode___icode_builder = "icode/icode_builder.nit";
 const int SFT_icode___icode_builder[5] = {
-  235 /* Id of ICodeBuilder */,
+  231 /* Id of ICodeBuilder */,
   4 /* Color of ICodeBuilder */,
   2 /* Group of ? */,
-  48 /* Group of ? */,
-  48 /* Group of ? */,
+  51 /* Group of ? */,
+  51 /* Group of ? */,
 };
-const char *LOCATE_icode___icode_base = "src/icode//icode_base.nit";
+const char *LOCATE_icode___icode_base = "icode/icode_base.nit";
 const int SFT_icode___icode_base[148] = {
-  211 /* Id of IRegister */,
+  207 /* Id of IRegister */,
   4 /* Color of IRegister */,
   9 /* Group of ? */,
-  55 /* Group of ? */,
-  219 /* Id of IEscapeMark */,
+  58 /* Group of ? */,
+  215 /* Id of IEscapeMark */,
   4 /* Color of IEscapeMark */,
-  47 /* Group of ? */,
-  243 /* Id of IClosureDecl */,
+  50 /* Group of ? */,
+  239 /* Id of IClosureDecl */,
   4 /* Color of IClosureDecl */,
   2 /* Group of ? */,
-  48 /* Group of ? */,
-  207 /* Id of IRoutine */,
+  51 /* Group of ? */,
+  203 /* Id of IRoutine */,
   4 /* Color of IRoutine */,
-  4 /* Group of ? */,
-  55 /* Group of ? */,
-  2251 /* Id of IClosureDef */,
+  2 /* Group of ? */,
+  51 /* Group of ? */,
+  2287 /* Id of IClosureDef */,
   5 /* Color of IClosureDef */,
-  69 /* Group of ? */,
-  239 /* Id of ICode */,
+  72 /* Group of ? */,
+  235 /* Id of ICode */,
   4 /* Color of ICode */,
   2 /* Group of ? */,
-  55 /* Group of ? */,
-  2247 /* Id of ICode0 */,
+  58 /* Group of ? */,
+  2283 /* Id of ICode0 */,
   5 /* Color of ICode0 */,
-  63 /* Group of ? */,
-  2243 /* Id of ICode1 */,
+  66 /* Group of ? */,
+  2279 /* Id of ICode1 */,
   5 /* Color of ICode1 */,
   4 /* Group of ? */,
-  63 /* Group of ? */,
-  2239 /* Id of ICode2 */,
+  66 /* Group of ? */,
+  2275 /* Id of ICode2 */,
   5 /* Color of ICode2 */,
   4 /* Group of ? */,
-  63 /* Group of ? */,
-  2235 /* Id of ICodeN */,
+  66 /* Group of ? */,
+  2271 /* Id of ICodeN */,
   5 /* Color of ICodeN */,
   4 /* Group of ? */,
-  64 /* Group of ? */,
-  2867 /* Id of ISeq */,
+  67 /* Group of ? */,
+  2627 /* Id of ISeq */,
   6 /* Color of ISeq */,
   4 /* Group of ? */,
-  65 /* Group of ? */,
-  3219 /* Id of ILoop */,
+  68 /* Group of ? */,
+  3283 /* Id of ILoop */,
   7 /* Color of ILoop */,
-  70 /* Group of ? */,
-  2907 /* Id of IIf */,
+  73 /* Group of ? */,
+  2667 /* Id of IIf */,
   6 /* Color of IIf */,
   5 /* Group of ? */,
-  66 /* Group of ? */,
-  2919 /* Id of IEscape */,
+  69 /* Group of ? */,
+  2679 /* Id of IEscape */,
   6 /* Color of IEscape */,
   4 /* Group of ? */,
-  64 /* Group of ? */,
-  2959 /* Id of IAbort */,
+  67 /* Group of ? */,
+  2719 /* Id of IAbort */,
   6 /* Color of IAbort */,
   4 /* Group of ? */,
-  64 /* Group of ? */,
-  2955 /* Id of IAbsCall */,
+  67 /* Group of ? */,
+  2715 /* Id of IAbsCall */,
   6 /* Color of IAbsCall */,
   6 /* Group of ? */,
-  70 /* Group of ? */,
-  3227 /* Id of ICall */,
+  73 /* Group of ? */,
+  3291 /* Id of ICall */,
   7 /* Color of ICall */,
-  75 /* Group of ? */,
-  3203 /* Id of ISuper */,
+  78 /* Group of ? */,
+  3267 /* Id of ISuper */,
   7 /* Color of ISuper */,
-  75 /* Group of ? */,
-  3215 /* Id of INew */,
+  78 /* Group of ? */,
+  3279 /* Id of INew */,
   7 /* Color of INew */,
   8 /* Group of ? */,
-  75 /* Group of ? */,
-  2951 /* Id of IAllocateInstance */,
+  78 /* Group of ? */,
+  2711 /* Id of IAllocateInstance */,
   6 /* Color of IAllocateInstance */,
   4 /* Group of ? */,
-  64 /* Group of ? */,
-  3207 /* Id of IStaticCall */,
+  67 /* Group of ? */,
+  3271 /* Id of IStaticCall */,
   7 /* Color of IStaticCall */,
-  75 /* Group of ? */,
-  2927 /* Id of ICheckInstance */,
+  78 /* Group of ? */,
+  2687 /* Id of ICheckInstance */,
   6 /* Color of ICheckInstance */,
   5 /* Group of ? */,
-  66 /* Group of ? */,
-  2903 /* Id of IInitAttributes */,
+  69 /* Group of ? */,
+  2663 /* Id of IInitAttributes */,
   6 /* Color of IInitAttributes */,
   5 /* Group of ? */,
-  66 /* Group of ? */,
-  2923 /* Id of IClosCall */,
+  69 /* Group of ? */,
+  2683 /* Id of IClosCall */,
   6 /* Color of IClosCall */,
   6 /* Group of ? */,
-  70 /* Group of ? */,
-  2887 /* Id of INative */,
+  73 /* Group of ? */,
+  2647 /* Id of INative */,
   6 /* Color of INative */,
   6 /* Group of ? */,
-  71 /* Group of ? */,
-  2899 /* Id of IIntValue */,
+  74 /* Group of ? */,
+  2659 /* Id of IIntValue */,
   6 /* Color of IIntValue */,
   4 /* Group of ? */,
-  64 /* Group of ? */,
-  2935 /* Id of IBoolValue */,
+  67 /* Group of ? */,
+  2695 /* Id of IBoolValue */,
   6 /* Color of IBoolValue */,
   4 /* Group of ? */,
-  64 /* Group of ? */,
-  2863 /* Id of IStringValue */,
+  67 /* Group of ? */,
+  2623 /* Id of IStringValue */,
   6 /* Color of IStringValue */,
   4 /* Group of ? */,
-  64 /* Group of ? */,
-  2915 /* Id of IFloatValue */,
+  67 /* Group of ? */,
+  2675 /* Id of IFloatValue */,
   6 /* Color of IFloatValue */,
   4 /* Group of ? */,
-  64 /* Group of ? */,
-  2931 /* Id of ICharValue */,
+  67 /* Group of ? */,
+  2691 /* Id of ICharValue */,
   6 /* Color of ICharValue */,
   4 /* Group of ? */,
-  64 /* Group of ? */,
-  2891 /* Id of IMove */,
+  67 /* Group of ? */,
+  2651 /* Id of IMove */,
   6 /* Color of IMove */,
-  66 /* Group of ? */,
-  2943 /* Id of IAttrRead */,
+  69 /* Group of ? */,
+  2703 /* Id of IAttrRead */,
   6 /* Color of IAttrRead */,
   5 /* Group of ? */,
-  66 /* Group of ? */,
-  2939 /* Id of IAttrWrite */,
+  69 /* Group of ? */,
+  2699 /* Id of IAttrWrite */,
   6 /* Color of IAttrWrite */,
   6 /* Group of ? */,
-  67 /* Group of ? */,
-  2947 /* Id of IAttrIsset */,
+  70 /* Group of ? */,
+  2707 /* Id of IAttrIsset */,
   6 /* Color of IAttrIsset */,
   5 /* Group of ? */,
-  66 /* Group of ? */,
-  2859 /* Id of ITypeCheck */,
+  69 /* Group of ? */,
+  2619 /* Id of ITypeCheck */,
   6 /* Color of ITypeCheck */,
   6 /* Group of ? */,
-  67 /* Group of ? */,
-  2895 /* Id of IIs */,
+  70 /* Group of ? */,
+  2655 /* Id of IIs */,
   6 /* Color of IIs */,
-  67 /* Group of ? */,
-  2883 /* Id of INot */,
+  70 /* Group of ? */,
+  2643 /* Id of INot */,
   6 /* Color of INot */,
-  66 /* Group of ? */,
-  2875 /* Id of IOnce */,
+  69 /* Group of ? */,
+  2635 /* Id of IOnce */,
   6 /* Color of IOnce */,
   4 /* Group of ? */,
-  64 /* Group of ? */,
-  2911 /* Id of IHasClos */,
+  67 /* Group of ? */,
+  2671 /* Id of IHasClos */,
   6 /* Color of IHasClos */,
   4 /* Group of ? */,
-  64 /* Group of ? */,
-  69 /* Group of ? */,
-  92 /* Group of ? */,
+  67 /* Group of ? */,
+  72 /* Group of ? */,
+  95 /* Group of ? */,
 };
-const char *LOCATE_syntax___typing = "src/syntax//typing.nit";
+const char *LOCATE_syntax___typing = "syntax/typing.nit";
 const int SFT_syntax___typing[55] = {
-  98 /* Group of ? */,
-  2379 /* Id of TypingVisitor */,
+  101 /* Group of ? */,
+  2415 /* Id of TypingVisitor */,
   6 /* Color of TypingVisitor */,
   7 /* Group of ? */,
-  81 /* Group of ? */,
-  65 /* Group of ? */,
   84 /* Group of ? */,
+  69 /* Group of ? */,
+  87 /* Group of ? */,
   7 /* Group of ? */,
-  98 /* Group of ? */,
-  93 /* Group of ? */,
-  94 /* Group of ? */,
   100 /* Group of ? */,
-  99 /* Group of ? */,
+  95 /* Group of ? */,
+  97 /* Group of ? */,
+  103 /* Group of ? */,
+  102 /* Group of ? */,
   13 /* Group of ? */,
-  83 /* Group of ? */,
+  85 /* Group of ? */,
   11 /* Group of ? */,
   7 /* Group of ? */,
-  77 /* Group of ? */,
+  82 /* Group of ? */,
   11 /* Group of ? */,
-  3523 /* Id of AAbsControl */,
+  3603 /* Id of AAbsControl */,
   8 /* Color of AAbsControl */,
   11 /* Group of ? */,
-  82 /* Group of ? */,
+  88 /* Group of ? */,
   12 /* Group of ? */,
-  86 /* Group of ? */,
+  92 /* Group of ? */,
   11 /* Group of ? */,
   13 /* Group of ? */,
-  85 /* Group of ? */,
-  72 /* Group of ? */,
+  91 /* Group of ? */,
+  74 /* Group of ? */,
   11 /* Group of ? */,
   11 /* Group of ? */,
-  82 /* Group of ? */,
+  88 /* Group of ? */,
   18 /* Group of ? */,
-  72 /* Group of ? */,
-  77 /* Group of ? */,
+  74 /* Group of ? */,
+  79 /* Group of ? */,
   16 /* Group of ? */,
-  90 /* Group of ? */,
+  96 /* Group of ? */,
   11 /* Group of ? */,
-  91 /* Group of ? */,
-  16 /* Group of ? */,
   97 /* Group of ? */,
-  67 /* Group of ? */,
+  16 /* Group of ? */,
   103 /* Group of ? */,
+  74 /* Group of ? */,
+  109 /* Group of ? */,
   6 /* Group of ? */,
-  115 /* Group of ? */,
-  115 /* Group of ? */,
-  111 /* Group of ? */,
+  121 /* Group of ? */,
+  121 /* Group of ? */,
+  117 /* Group of ? */,
   13 /* Group of ? */,
-  72 /* Group of ? */,
+  74 /* Group of ? */,
   8 /* Group of ? */,
-  73 /* Group of ? */,
-  3259 /* Id of ATypeCheckExpr */,
-  5 /* Color of ATypeCheckExpr */,
-  67 /* Group of ? */,
-  84 /* Group of ? */,
+  77 /* Group of ? */,
+  3323 /* Id of ATypeCheckExpr */,
+  6 /* Color of ATypeCheckExpr */,
+  74 /* Group of ? */,
+  90 /* Group of ? */,
 };
-const char *LOCATE_syntax___scope = "src/syntax//scope.nit";
+const char *LOCATE_syntax___scope = "syntax/scope.nit";
 const int SFT_syntax___scope[23] = {
   55 /* Id of ScopeContext */,
   4 /* Color of ScopeContext */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
+  50 /* Group of ? */,
   59 /* Id of ScopeBlock */,
   4 /* Color of ScopeBlock */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  2291 /* Id of EscapableBlock */,
+  50 /* Group of ? */,
+  2327 /* Id of EscapableBlock */,
   5 /* Color of EscapableBlock */,
   8 /* Group of ? */,
-  60 /* Group of ? */,
-  3019 /* Id of BreakOnlyEscapableBlock */,
+  63 /* Group of ? */,
+  2779 /* Id of BreakOnlyEscapableBlock */,
   6 /* Color of BreakOnlyEscapableBlock */,
-  67 /* Group of ? */,
-  2983 /* Id of EscapableClosure */,
+  70 /* Group of ? */,
+  2743 /* Id of EscapableClosure */,
   6 /* Color of EscapableClosure */,
   10 /* Group of ? */,
-  67 /* Group of ? */,
-  3439 /* Id of AEscapeExpr */,
+  70 /* Group of ? */,
+  3511 /* Id of AEscapeExpr */,
   8 /* Color of AEscapeExpr */,
   11 /* Group of ? */,
-  82 /* Group of ? */,
+  88 /* Group of ? */,
 };
-const char *LOCATE_syntax___flow = "src/syntax//flow.nit";
+const char *LOCATE_syntax___flow = "syntax/flow.nit";
 const int SFT_syntax___flow[20] = {
-  263 /* Id of FlowContext */,
+  259 /* Id of FlowContext */,
   4 /* Color of FlowContext */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  363 /* Id of RootFlowContext */,
+  50 /* Group of ? */,
+  355 /* Id of RootFlowContext */,
   5 /* Color of RootFlowContext */,
-  62 /* Group of ? */,
-  343 /* Id of SubFlowContext */,
+  65 /* Group of ? */,
+  335 /* Id of SubFlowContext */,
   5 /* Color of SubFlowContext */,
   7 /* Group of ? */,
-  62 /* Group of ? */,
-  3011 /* Id of CastFlowContext */,
+  65 /* Group of ? */,
+  2771 /* Id of CastFlowContext */,
   6 /* Color of CastFlowContext */,
   8 /* Group of ? */,
-  65 /* Group of ? */,
-  2127 /* Id of MergeFlowContext */,
+  68 /* Group of ? */,
+  2163 /* Id of MergeFlowContext */,
   5 /* Color of MergeFlowContext */,
   7 /* Group of ? */,
-  62 /* Group of ? */,
-  47 /* Group of ? */,
+  65 /* Group of ? */,
+  50 /* Group of ? */,
 };
-const char *LOCATE_nit_version = "src/nit_version.nit";
+const char *LOCATE_nit_version = "nit_version.nit";
 const int SFT_nit_version[1] = {
-  16 /* Group of ? */,
+  17 /* Group of ? */,
 };
-const char *LOCATE_separate_options = "src/separate_options.nit";
-const int SFT_separate_options[3] = {
-  6 /* Group of ? */,
-  56 /* Group of ? */,
+const char *LOCATE_global___cha_analysis = "global/cha_analysis.nit";
+const int SFT_global___cha_analysis[12] = {
+  2383 /* Id of ChaContext */,
+  5 /* Color of ChaContext */,
+  2 /* Group of ? */,
+  53 /* Group of ? */,
+  283 /* Id of ChaBuilder */,
+  4 /* Color of ChaBuilder */,
+  2 /* Group of ? */,
+  50 /* Group of ? */,
+  2379 /* Id of ChaVisitor */,
+  5 /* Color of ChaVisitor */,
+  3 /* Group of ? */,
+  58 /* Group of ? */,
+};
+const char *LOCATE_global___reachable_method_analysis = "global/reachable_method_analysis.nit";
+const int SFT_global___reachable_method_analysis[8] = {
+  10 /* Group of ? */,
+  76 /* Group of ? */,
+  71 /* Id of ReachableMethodAnalysis */,
+  4 /* Color of ReachableMethodAnalysis */,
+  50 /* Group of ? */,
+  2335 /* Id of DefaultReachableMethodAnalysis */,
+  5 /* Color of DefaultReachableMethodAnalysis */,
+  53 /* Group of ? */,
+};
+const char *LOCATE_program = "program.nit";
+const int SFT_program[8] = {
+  38 /* Group of ? */,
+  104 /* Group of ? */,
+  91 /* Id of Program */,
+  4 /* Color of Program */,
+  3 /* Group of ? */,
+  57 /* Group of ? */,
+  22 /* Group of ? */,
+  113 /* Group of ? */,
+};
+const char *LOCATE_global___rta_analysis = "global/rta_analysis.nit";
+const int SFT_global___rta_analysis[12] = {
+  351 /* Id of RtaContext */,
+  6 /* Color of RtaContext */,
+  2 /* Group of ? */,
+  55 /* Group of ? */,
+  63 /* Id of RtaBuilder */,
+  4 /* Color of RtaBuilder */,
+  2 /* Group of ? */,
+  50 /* Group of ? */,
+  347 /* Id of RtaVisitor */,
+  5 /* Color of RtaVisitor */,
+  3 /* Group of ? */,
+  58 /* Group of ? */,
+};
+const char *LOCATE_global___instantiated_type_analysis = "global/instantiated_type_analysis.nit";
+const int SFT_global___instantiated_type_analysis[8] = {
+  2 /* Group of ? */,
+  53 /* Group of ? */,
+  199 /* Id of InstantiatedTypeAnalysis */,
+  5 /* Color of InstantiatedTypeAnalysis */,
+  53 /* Group of ? */,
+  2347 /* Id of DefaultInstantiatedTypeAnalysis */,
+  6 /* Color of DefaultInstantiatedTypeAnalysis */,
+  55 /* Group of ? */,
+};
+const char *LOCATE_global___reachable_as_init_impl = "global/reachable_as_init_impl.nit";
+const int SFT_global___reachable_as_init_impl[12] = {
+  79 /* Id of ReachableAsInitBuilder */,
+  4 /* Color of ReachableAsInitBuilder */,
+  2 /* Group of ? */,
+  50 /* Group of ? */,
+  2091 /* Id of ReachableAsInitAnalysisImpl */,
+  5 /* Color of ReachableAsInitAnalysisImpl */,
+  2 /* Group of ? */,
+  52 /* Group of ? */,
+  2107 /* Id of RAIVisitor */,
+  5 /* Color of RAIVisitor */,
+  3 /* Group of ? */,
+  58 /* Group of ? */,
+};
+const char *LOCATE_global___reachable_as_init = "global/reachable_as_init.nit";
+const int SFT_global___reachable_as_init[8] = {
+  7 /* Group of ? */,
+  69 /* Group of ? */,
+  83 /* Id of ReachableAsInitAnalysis */,
+  4 /* Color of ReachableAsInitAnalysis */,
+  50 /* Group of ? */,
+  2343 /* Id of DefaultReachableAsInitAnalysis */,
+  5 /* Color of DefaultReachableAsInitAnalysis */,
+  52 /* Group of ? */,
+};
+const char *LOCATE_global___reachable_from_init_method_analysis_impl = "global/reachable_from_init_method_analysis_impl.nit";
+const int SFT_global___reachable_from_init_method_analysis_impl[12] = {
+  87 /* Id of RFIMABuilder */,
+  4 /* Color of RFIMABuilder */,
+  2 /* Group of ? */,
+  50 /* Group of ? */,
+  2103 /* Id of RFIMAContext */,
+  5 /* Color of RFIMAContext */,
+  2 /* Group of ? */,
+  53 /* Group of ? */,
+  2099 /* Id of RFIMAVisitor */,
+  5 /* Color of RFIMAVisitor */,
+  3 /* Group of ? */,
+  58 /* Group of ? */,
+};
+const char *LOCATE_global___reachable_from_init_method_analysis = "global/reachable_from_init_method_analysis.nit";
+const int SFT_global___reachable_from_init_method_analysis[8] = {
+  13 /* Group of ? */,
   85 /* Group of ? */,
+  75 /* Id of ReachableFromInitMethodAnalysis */,
+  4 /* Color of ReachableFromInitMethodAnalysis */,
+  50 /* Group of ? */,
+  2339 /* Id of DefaultReachableFromInitMethodAnalysis */,
+  5 /* Color of DefaultReachableFromInitMethodAnalysis */,
+  53 /* Group of ? */,
 };
-const char *LOCATE_native_interface = "src/native_interface//native_interface.nit";
+const char *LOCATE_global___dead_method_removal = "global/dead_method_removal.nit";
+const int SFT_global___dead_method_removal[3] = {
+  8 /* Group of ? */,
+  72 /* Group of ? */,
+  50 /* Group of ? */,
+};
+const char *LOCATE_global___inline_get_and_set = "global/inline_get_and_set.nit";
+const int SFT_global___inline_get_and_set[6] = {
+  11 /* Group of ? */,
+  80 /* Group of ? */,
+  2255 /* Id of InlineGetSetVisitor */,
+  5 /* Color of InlineGetSetVisitor */,
+  3 /* Group of ? */,
+  58 /* Group of ? */,
+};
+const char *LOCATE_global___remove_out_of_init_get_test = "global/remove_out_of_init_get_test.nit";
+const int SFT_global___remove_out_of_init_get_test[10] = {
+  12 /* Group of ? */,
+  82 /* Group of ? */,
+  2247 /* Id of IssetCounter */,
+  5 /* Color of IssetCounter */,
+  3 /* Group of ? */,
+  58 /* Group of ? */,
+  2311 /* Id of GetterTestRemover */,
+  5 /* Color of GetterTestRemover */,
+  3 /* Group of ? */,
+  58 /* Group of ? */,
+};
+const char *LOCATE_separate_options = "separate_options.nit";
+const int SFT_separate_options[3] = {
+  40 /* Group of ? */,
+  108 /* Group of ? */,
+  88 /* Group of ? */,
+};
+const char *LOCATE_native_interface = "native_interface/native_interface.nit";
 const int SFT_native_interface[1] = {
-  86 /* Group of ? */,
+  89 /* Group of ? */,
 };
-const char *LOCATE_native_interface___frontier = "src/native_interface//frontier.nit";
-const int SFT_native_interface___frontier[12] = {
-  87 /* Group of ? */,
-  94 /* Group of ? */,
-  107 /* Group of ? */,
-  47 /* Group of ? */,
-  259 /* Id of FrontierVisitor */,
+const char *LOCATE_native_interface___frontier = "native_interface/frontier.nit";
+const int SFT_native_interface___frontier[11] = {
+  90 /* Group of ? */,
+  97 /* Group of ? */,
+  110 /* Group of ? */,
+  50 /* Group of ? */,
+  255 /* Id of FrontierVisitor */,
   4 /* Color of FrontierVisitor */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  118 /* Group of ? */,
-  47 /* Group of ? */,
-  47 /* Group of ? */,
-  47 /* Group of ? */,
+  50 /* Group of ? */,
+  50 /* Group of ? */,
+  50 /* Group of ? */,
+  50 /* Group of ? */,
 };
-const char *LOCATE_native_interface___ni_tools = "src/native_interface//ni_tools.nit";
+const char *LOCATE_native_interface___ni_tools = "native_interface/ni_tools.nit";
 const int SFT_native_interface___ni_tools[4] = {
-  255 /* Id of FunctionCompiler */,
+  251 /* Id of FunctionCompiler */,
   4 /* Color of FunctionCompiler */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
+  50 /* Group of ? */,
 };
-const char *LOCATE_compiling = "src/compiling//compiling.nit";
+const char *LOCATE_compiling = "compiling/compiling.nit";
 const int SFT_compiling[3] = {
-  2 /* Group of ? */,
-  47 /* Group of ? */,
-  78 /* Group of ? */,
+  14 /* Group of ? */,
+  89 /* Group of ? */,
+  81 /* Group of ? */,
 };
-const char *LOCATE_compiling___icode_generator = "src/compiling//icode_generator.nit";
+const char *LOCATE_compiling___icode_generator = "compiling/icode_generator.nit";
 const int SFT_compiling___icode_generator[7] = {
-  52 /* Group of ? */,
-  2279 /* Id of FileICodeDumper */,
+  94 /* Group of ? */,
+  2315 /* Id of FileICodeDumper */,
   5 /* Color of FileICodeDumper */,
   10 /* Group of ? */,
-  61 /* Group of ? */,
-  108 /* Group of ? */,
-  82 /* Group of ? */,
+  64 /* Group of ? */,
+  111 /* Group of ? */,
+  85 /* Group of ? */,
 };
-const char *LOCATE_compiling___compiling_base = "src/compiling//compiling_base.nit";
+const char *LOCATE_compiling___compiling_base = "compiling/compiling_base.nit";
 const int SFT_compiling___compiling_base[18] = {
-  40 /* Group of ? */,
-  112 /* Group of ? */,
-  291 /* Id of CProgram */,
+  44 /* Group of ? */,
+  118 /* Group of ? */,
+  287 /* Id of CProgram */,
   4 /* Color of CProgram */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  271 /* Id of CompilerVisitor */,
+  50 /* Group of ? */,
+  267 /* Id of CompilerVisitor */,
   4 /* Color of CompilerVisitor */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  62 /* Group of ? */,
+  50 /* Group of ? */,
+  65 /* Group of ? */,
   10 /* Group of ? */,
-  68 /* Group of ? */,
+  71 /* Group of ? */,
   20 /* Group of ? */,
-  84 /* Group of ? */,
-  109 /* Group of ? */,
+  87 /* Group of ? */,
+  112 /* Group of ? */,
   9 /* Group of ? */,
-  67 /* Group of ? */,
+  70 /* Group of ? */,
 };
-const char *LOCATE_utils = "src/utils.nit";
+const char *LOCATE_utils = "utils.nit";
 const int SFT_utils[1] = {
-  45 /* Group of ? */,
-};
-const char *LOCATE_program = "src/program.nit";
-const int SFT_program[8] = {
-  38 /* Group of ? */,
-  108 /* Group of ? */,
-  91 /* Id of Program */,
-  4 /* Color of Program */,
-  4 /* Group of ? */,
-  62 /* Group of ? */,
-  22 /* Group of ? */,
-  110 /* Group of ? */,
+  48 /* Group of ? */,
 };
-const char *LOCATE_compiling___compiling_writer = "src/compiling//compiling_writer.nit";
+const char *LOCATE_compiling___compiling_writer = "compiling/compiling_writer.nit";
 const int SFT_compiling___compiling_writer[16] = {
   11 /* Id of Writer */,
   4 /* Color of Writer */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
+  50 /* Group of ? */,
   7 /* Id of WriterNode */,
   4 /* Color of WriterNode */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  319 /* Id of WriterCoreNode */,
+  50 /* Group of ? */,
+  311 /* Id of WriterCoreNode */,
   5 /* Color of WriterCoreNode */,
   3 /* Group of ? */,
-  50 /* Group of ? */,
-  315 /* Id of WriterStrings */,
+  53 /* Group of ? */,
+  307 /* Id of WriterStrings */,
   5 /* Color of WriterStrings */,
   3 /* Group of ? */,
-  50 /* Group of ? */,
-};
-const char *LOCATE_analysis = "src/analysis//analysis.nit";
-const int SFT_analysis[4] = {
-  10 /* Group of ? */,
-  66 /* Group of ? */,
   53 /* Group of ? */,
-  50 /* Group of ? */,
 };
-const char *LOCATE_analysis___icode_dump = "src/analysis//icode_dump.nit";
+const char *LOCATE_analysis = "analysis/analysis.nit";
+const int SFT_analysis[1] = {
+  65 /* Group of ? */,
+};
+const char *LOCATE_analysis___icode_dump = "analysis/icode_dump.nit";
 const int SFT_analysis___icode_dump[8] = {
-  51 /* Group of ? */,
-  47 /* Group of ? */,
-  231 /* Id of ICodeDumper */,
+  66 /* Group of ? */,
+  50 /* Group of ? */,
+  227 /* Id of ICodeDumper */,
   4 /* Color of ICodeDumper */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  51 /* Group of ? */,
-  63 /* Group of ? */,
+  50 /* Group of ? */,
+  54 /* Group of ? */,
+  66 /* Group of ? */,
 };
-const char *LOCATE_analysis___allocate_iregister_slots = "src/analysis//allocate_iregister_slots.nit";
+const char *LOCATE_analysis___allocate_iregister_slots = "analysis/allocate_iregister_slots.nit";
 const int SFT_analysis___allocate_iregister_slots[12] = {
-  2231 /* Id of IRegisterSlotAllocationVisitor */,
+  2267 /* Id of IRegisterSlotAllocationVisitor */,
   5 /* Color of IRegisterSlotAllocationVisitor */,
   3 /* Group of ? */,
-  55 /* Group of ? */,
+  58 /* Group of ? */,
   47 /* Id of SlotGroup */,
   4 /* Color of SlotGroup */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  2 /* Group of ? */,
-  52 /* Group of ? */,
+  50 /* Group of ? */,
+  9 /* Group of ? */,
+  67 /* Group of ? */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
+  50 /* Group of ? */,
 };
-const char *LOCATE_analysis___inline_methods = "src/analysis//inline_methods.nit";
+const char *LOCATE_analysis___inline_methods = "analysis/inline_methods.nit";
 const int SFT_analysis___inline_methods[6] = {
-  2215 /* Id of InlineMethodVisitor */,
+  2251 /* Id of InlineMethodVisitor */,
   5 /* Color of InlineMethodVisitor */,
   3 /* Group of ? */,
-  55 /* Group of ? */,
-  77 /* Group of ? */,
-  66 /* Group of ? */,
-};
-const char *LOCATE_analysis___cha_analysis = "src/analysis//cha_analysis.nit";
-const int SFT_analysis___cha_analysis[12] = {
-  2347 /* Id of ChaContext */,
-  5 /* Color of ChaContext */,
-  2 /* Group of ? */,
-  51 /* Group of ? */,
-  287 /* Id of ChaBuilder */,
-  4 /* Color of ChaBuilder */,
-  2 /* Group of ? */,
-  47 /* Group of ? */,
-  2343 /* Id of ChaVisitor */,
-  5 /* Color of ChaVisitor */,
-  3 /* Group of ? */,
-  55 /* Group of ? */,
-};
-const char *LOCATE_analysis___reachable_method_analysis = "src/analysis//reachable_method_analysis.nit";
-const int SFT_analysis___reachable_method_analysis[8] = {
-  11 /* Group of ? */,
-  81 /* Group of ? */,
-  71 /* Id of ReachableMethodAnalysis */,
-  4 /* Color of ReachableMethodAnalysis */,
-  47 /* Group of ? */,
-  2299 /* Id of DefaultReachableMethodAnalysis */,
-  5 /* Color of DefaultReachableMethodAnalysis */,
-  51 /* Group of ? */,
-};
-const char *LOCATE_analysis___rta_analysis = "src/analysis//rta_analysis.nit";
-const int SFT_analysis___rta_analysis[12] = {
-  359 /* Id of RtaContext */,
-  6 /* Color of RtaContext */,
-  2 /* Group of ? */,
-  54 /* Group of ? */,
-  63 /* Id of RtaBuilder */,
-  4 /* Color of RtaBuilder */,
-  2 /* Group of ? */,
-  47 /* Group of ? */,
-  355 /* Id of RtaVisitor */,
-  5 /* Color of RtaVisitor */,
-  3 /* Group of ? */,
-  55 /* Group of ? */,
-};
-const char *LOCATE_analysis___instantiated_type_analysis = "src/analysis//instantiated_type_analysis.nit";
-const int SFT_analysis___instantiated_type_analysis[8] = {
-  3 /* Group of ? */,
   58 /* Group of ? */,
-  203 /* Id of InstantiatedTypeAnalysis */,
-  5 /* Color of InstantiatedTypeAnalysis */,
-  51 /* Group of ? */,
-  2311 /* Id of DefaultInstantiatedTypeAnalysis */,
-  6 /* Color of DefaultInstantiatedTypeAnalysis */,
-  54 /* Group of ? */,
-};
-const char *LOCATE_analysis___reachable_as_init_impl = "src/analysis//reachable_as_init_impl.nit";
-const int SFT_analysis___reachable_as_init_impl[12] = {
-  79 /* Id of ReachableAsInitBuilder */,
-  4 /* Color of ReachableAsInitBuilder */,
-  2 /* Group of ? */,
-  47 /* Group of ? */,
-  2055 /* Id of ReachableAsInitAnalysisImpl */,
-  5 /* Color of ReachableAsInitAnalysisImpl */,
-  2 /* Group of ? */,
-  50 /* Group of ? */,
-  2071 /* Id of RAIVisitor */,
-  5 /* Color of RAIVisitor */,
-  3 /* Group of ? */,
-  55 /* Group of ? */,
-};
-const char *LOCATE_analysis___reachable_as_init = "src/analysis//reachable_as_init.nit";
-const int SFT_analysis___reachable_as_init[8] = {
-  8 /* Group of ? */,
-  74 /* Group of ? */,
-  83 /* Id of ReachableAsInitAnalysis */,
-  4 /* Color of ReachableAsInitAnalysis */,
-  47 /* Group of ? */,
-  2307 /* Id of DefaultReachableAsInitAnalysis */,
-  5 /* Color of DefaultReachableAsInitAnalysis */,
-  50 /* Group of ? */,
-};
-const char *LOCATE_analysis___reachable_from_init_method_analysis_impl = "src/analysis//reachable_from_init_method_analysis_impl.nit";
-const int SFT_analysis___reachable_from_init_method_analysis_impl[12] = {
-  87 /* Id of RFIMABuilder */,
-  4 /* Color of RFIMABuilder */,
-  2 /* Group of ? */,
-  47 /* Group of ? */,
-  2067 /* Id of RFIMAContext */,
-  5 /* Color of RFIMAContext */,
-  2 /* Group of ? */,
-  51 /* Group of ? */,
-  2063 /* Id of RFIMAVisitor */,
-  5 /* Color of RFIMAVisitor */,
-  3 /* Group of ? */,
-  55 /* Group of ? */,
-};
-const char *LOCATE_analysis___reachable_from_init_method_analysis = "src/analysis//reachable_from_init_method_analysis.nit";
-const int SFT_analysis___reachable_from_init_method_analysis[8] = {
-  14 /* Group of ? */,
-  90 /* Group of ? */,
-  75 /* Id of ReachableFromInitMethodAnalysis */,
-  4 /* Color of ReachableFromInitMethodAnalysis */,
-  47 /* Group of ? */,
-  2303 /* Id of DefaultReachableFromInitMethodAnalysis */,
-  5 /* Color of DefaultReachableFromInitMethodAnalysis */,
-  51 /* Group of ? */,
-};
-const char *LOCATE_analysis___dead_method_removal = "src/analysis//dead_method_removal.nit";
-const int SFT_analysis___dead_method_removal[3] = {
-  9 /* Group of ? */,
-  77 /* Group of ? */,
-  67 /* Group of ? */,
-};
-const char *LOCATE_analysis___inline_get_and_set = "src/analysis//inline_get_and_set.nit";
-const int SFT_analysis___inline_get_and_set[6] = {
-  12 /* Group of ? */,
-  85 /* Group of ? */,
-  2219 /* Id of InlineGetSetVisitor */,
-  5 /* Color of InlineGetSetVisitor */,
-  3 /* Group of ? */,
-  55 /* Group of ? */,
-};
-const char *LOCATE_analysis___remove_out_of_init_get_test = "src/analysis//remove_out_of_init_get_test.nit";
-const int SFT_analysis___remove_out_of_init_get_test[10] = {
-  13 /* Group of ? */,
-  87 /* Group of ? */,
-  2211 /* Id of IssetCounter */,
-  5 /* Color of IssetCounter */,
-  3 /* Group of ? */,
-  55 /* Group of ? */,
-  2275 /* Id of GetterTestRemover */,
-  5 /* Color of GetterTestRemover */,
-  3 /* Group of ? */,
-  55 /* Group of ? */,
+  80 /* Group of ? */,
+  70 /* Group of ? */,
 };
-const char *LOCATE_compiling___compiling_global = "src/compiling//compiling_global.nit";
+const char *LOCATE_compiling___compiling_global = "compiling/compiling_global.nit";
 const int SFT_compiling___compiling_global[8] = {
-  94 /* Group of ? */,
-  79 /* Group of ? */,
-  47 /* Group of ? */,
+  95 /* Group of ? */,
+  82 /* Group of ? */,
   50 /* Group of ? */,
-  55 /* Group of ? */,
+  52 /* Group of ? */,
   57 /* Group of ? */,
-  115 /* Group of ? */,
-  93 /* Group of ? */,
+  59 /* Group of ? */,
+  118 /* Group of ? */,
+  96 /* Group of ? */,
 };
-const char *LOCATE_compiling___table_computation = "src/compiling//table_computation.nit";
+const char *LOCATE_compiling___table_computation = "compiling/table_computation.nit";
 const int SFT_compiling___table_computation[85] = {
-  279 /* Id of ColorContext */,
+  275 /* Id of ColorContext */,
   4 /* Color of ColorContext */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  335 /* Id of TableInformation */,
+  50 /* Group of ? */,
+  327 /* Id of TableInformation */,
   5 /* Color of TableInformation */,
   3 /* Group of ? */,
-  52 /* Group of ? */,
-  2331 /* Id of CompiledClass */,
+  55 /* Group of ? */,
+  2367 /* Id of CompiledClass */,
   5 /* Color of CompiledClass */,
   3 /* Group of ? */,
-  52 /* Group of ? */,
+  55 /* Group of ? */,
   25 /* Group of ? */,
-  117 /* Group of ? */,
+  120 /* Group of ? */,
   15 /* Group of ? */,
-  96 /* Group of ? */,
+  97 /* Group of ? */,
   19 /* Group of ? */,
-  82 /* Group of ? */,
-  303 /* Id of AbsTableElt */,
+  85 /* Group of ? */,
+  299 /* Id of AbsTableElt */,
   4 /* Color of AbsTableElt */,
-  48 /* Group of ? */,
-  339 /* Id of TableElt */,
-  5 /* Color of TableElt */,
   51 /* Group of ? */,
-  2115 /* Id of ModuleTableElt */,
+  331 /* Id of TableElt */,
+  5 /* Color of TableElt */,
+  53 /* Group of ? */,
+  2151 /* Id of ModuleTableElt */,
   6 /* Color of ModuleTableElt */,
-  56 /* Group of ? */,
-  2815 /* Id of ModuleTableEltGroup */,
+  58 /* Group of ? */,
+  2575 /* Id of ModuleTableEltGroup */,
   7 /* Color of ModuleTableEltGroup */,
   2 /* Group of ? */,
-  57 /* Group of ? */,
-  2387 /* Id of TableEltProp */,
+  59 /* Group of ? */,
+  2435 /* Id of TableEltProp */,
   6 /* Color of TableEltProp */,
   2 /* Group of ? */,
-  55 /* Group of ? */,
-  3159 /* Id of TableEltMeth */,
+  57 /* Group of ? */,
+  2923 /* Id of TableEltMeth */,
   7 /* Color of TableEltMeth */,
-  58 /* Group of ? */,
-  3151 /* Id of TableEltVTClassColor */,
+  60 /* Group of ? */,
+  2915 /* Id of TableEltVTClassColor */,
   7 /* Color of TableEltVTClassColor */,
-  58 /* Group of ? */,
-  3147 /* Id of TableEltVTClassId */,
+  60 /* Group of ? */,
+  2911 /* Id of TableEltVTClassId */,
   7 /* Color of TableEltVTClassId */,
-  58 /* Group of ? */,
-  3155 /* Id of TableEltSuper */,
+  60 /* Group of ? */,
+  2919 /* Id of TableEltSuper */,
   7 /* Color of TableEltSuper */,
-  58 /* Group of ? */,
-  3171 /* Id of TableEltAttr */,
+  60 /* Group of ? */,
+  2935 /* Id of TableEltAttr */,
   7 /* Color of TableEltAttr */,
-  58 /* Group of ? */,
-  2367 /* Id of AbsTableEltClass */,
+  60 /* Group of ? */,
+  2403 /* Id of AbsTableEltClass */,
   7 /* Color of AbsTableEltClass */,
   2 /* Group of ? */,
-  58 /* Group of ? */,
-  2415 /* Id of TableEltClass */,
+  60 /* Group of ? */,
+  2463 /* Id of TableEltClass */,
   8 /* Color of TableEltClass */,
-  61 /* Group of ? */,
-  2411 /* Id of TableEltClassId */,
+  63 /* Group of ? */,
+  2459 /* Id of TableEltClassId */,
   5 /* Color of TableEltClassId */,
-  50 /* Group of ? */,
-  3163 /* Id of TableEltClassInitTable */,
+  52 /* Group of ? */,
+  2927 /* Id of TableEltClassInitTable */,
   9 /* Color of TableEltClassInitTable */,
-  62 /* Group of ? */,
-  3167 /* Id of TableEltClassColor */,
+  64 /* Group of ? */,
+  2931 /* Id of TableEltClassColor */,
   9 /* Color of TableEltClassColor */,
-  62 /* Group of ? */,
-  2395 /* Id of TableEltComposite */,
+  64 /* Group of ? */,
+  2443 /* Id of TableEltComposite */,
   6 /* Color of TableEltComposite */,
   2 /* Group of ? */,
-  55 /* Group of ? */,
-  2403 /* Id of TableEltClassSelfId */,
+  57 /* Group of ? */,
+  2451 /* Id of TableEltClassSelfId */,
   6 /* Color of TableEltClassSelfId */,
-  55 /* Group of ? */,
-  2399 /* Id of TableEltClassSelfName */,
+  57 /* Group of ? */,
+  2447 /* Id of TableEltClassSelfName */,
   6 /* Color of TableEltClassSelfName */,
-  55 /* Group of ? */,
-  2407 /* Id of TableEltClassObjectSize */,
+  57 /* Group of ? */,
+  2455 /* Id of TableEltClassObjectSize */,
   6 /* Color of TableEltClassObjectSize */,
-  55 /* Group of ? */,
-  2391 /* Id of TableEltObjectId */,
+  57 /* Group of ? */,
+  2439 /* Id of TableEltObjectId */,
   6 /* Color of TableEltObjectId */,
-  55 /* Group of ? */,
-  2383 /* Id of TableEltVftPointer */,
+  57 /* Group of ? */,
+  2431 /* Id of TableEltVftPointer */,
   6 /* Color of TableEltVftPointer */,
-  55 /* Group of ? */,
+  57 /* Group of ? */,
 };
-const char *LOCATE_compiling___compiling_icode = "src/compiling//compiling_icode.nit";
+const char *LOCATE_compiling___compiling_icode = "compiling/compiling_icode.nit";
 const int SFT_compiling___compiling_icode[9] = {
-  247 /* Id of I2CCompilerVisitor */,
+  243 /* Id of I2CCompilerVisitor */,
   4 /* Color of I2CCompilerVisitor */,
   2 /* Group of ? */,
-  47 /* Group of ? */,
-  47 /* Group of ? */,
-  47 /* Group of ? */,
-  69 /* Group of ? */,
-  69 /* Group of ? */,
-  68 /* Group of ? */,
+  50 /* Group of ? */,
+  62 /* Group of ? */,
+  50 /* Group of ? */,
+  72 /* Group of ? */,
+  72 /* Group of ? */,
+  71 /* Group of ? */,
 };
-const char *LOCATE_native_interface___ni_metamodel = "src/native_interface//ni_metamodel.nit";
+const char *LOCATE_native_interface___ni_metamodel = "native_interface/ni_metamodel.nit";
 const int SFT_native_interface___ni_metamodel[4] = {
-  51 /* Group of ? */,
-  69 /* Group of ? */,
+  54 /* Group of ? */,
+  72 /* Group of ? */,
   2 /* Group of ? */,
-  51 /* Group of ? */,
+  54 /* Group of ? */,
 };
-const char *LOCATE_nitc = "src/nitc.nit";
-const int SFT_nitc[4] = {
-  3191 /* Id of NitCompiler */,
+const char *LOCATE_nitc = "nitc.nit";
+const int SFT_nitc[5] = {
+  3255 /* Id of NitCompiler */,
   7 /* Color of NitCompiler */,
-  52 /* Group of ? */,
+  56 /* Group of ? */,
+  148 /* Group of ? */,
   140 /* Group of ? */,
 };
-const classtable_elt_t VFT_nitc___NitCompiler[159] = {
-  {(bigint) 3191 /* 0: Identity */},
-  {(bigint) 68 /* 1: Object size (-1 if a NativeArray)*/},
+const classtable_elt_t VFT_nitc___NitCompiler[160] = {
+  {(bigint) 3255 /* 0: Identity */},
+  {(bigint) 65 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "NitCompiler" /* 2: Class Name */},
   {(bigint) 3 /* 3: NitCompiler < Object: superclass typecheck marker */},
-  {(bigint) 187 /* 4: NitCompiler < MMContext: superclass typecheck marker */},
-  {(bigint) 327 /* 5: NitCompiler < ToolContext: superclass typecheck marker */},
-  {(bigint) 3035 /* 6: NitCompiler < AbstractCompiler: superclass typecheck marker */},
-  {(bigint) 3191 /* 7: NitCompiler < NitCompiler: superclass typecheck marker */},
+  {(bigint) 183 /* 4: NitCompiler < MMContext: superclass typecheck marker */},
+  {(bigint) 319 /* 5: NitCompiler < ToolContext: superclass typecheck marker */},
+  {(bigint) 2795 /* 6: NitCompiler < AbstractCompiler: superclass typecheck marker */},
+  {(bigint) 3255 /* 7: NitCompiler < NitCompiler: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) standard___time___Object___get_time},
+  {(bigint) 3 /* 19: NitCompiler < Object: superclass init_table position */},
+  {(bigint) standard___kernel___Object___object_id},
+  {(bigint) standard___kernel___Object___is_same_type},
+  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) standard___kernel___Object_____neq},
+  {(bigint) standard___kernel___Object___output},
+  {(bigint) standard___kernel___Object___output_class_name},
+  {(bigint) standard___kernel___Object___exit},
+  {(bigint) standard___kernel___Object___sys},
+  {(bigint) standard___file___Object___printn},
+  {(bigint) standard___file___Object___print},
+  {(bigint) standard___file___Object___getc},
+  {(bigint) standard___file___Object___gets},
+  {(bigint) standard___file___Object___stdin},
+  {(bigint) standard___file___Object___stdout},
+  {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) syntax___mmbuilder___ToolContext___handle_property_conflict},
+  {(bigint) 2 /* 51: NitCompiler < MMContext: superclass init_table position */},
+  {(bigint) metamodel___abstractmetamodel___MMContext___init},
+  {(bigint) metamodel___abstractmetamodel___MMContext___module_hierarchy},
+  {(bigint) metamodel___abstractmetamodel___MMContext___class_hierarchy},
+  {(bigint) metamodel___abstractmetamodel___MMContext___modules},
+  {(bigint) metamodel___abstractmetamodel___MMContext___add_module},
+  {(bigint) metamodel___abstractmetamodel___MMContext___add_global_class},
+  {(bigint) metamodel___abstractmetamodel___MMContext___add_local_class},
+  {(bigint) global___ToolContext___global_callgraph},
+  {(bigint) global___ToolContext___global_callgraph__eq},
+  {(bigint) global___ToolContext___opt_global},
+  {(bigint) global___ToolContext___opt_global_no_STF_opt},
+  {(bigint) global___ToolContext___opt_global_no_DMR_opt},
+  {(bigint) global___ToolContext___opt_global_no_inline_get_set},
+  {(bigint) global___ToolContext___opt_global_no_out_of_init_get_test_opt},
+  {(bigint) global___ToolContext___opt_global_no_RFIMA},
+  {(bigint) global___ToolContext___opt_global_callgraph},
+  {(bigint) separate_options___ToolContext___init},
+  {(bigint) syntax___ToolContext___keep_ast},
+  {(bigint) syntax___ToolContext___keep_ast__eq},
+  {(bigint) mmloader___ToolContext___paths},
+  {(bigint) mmloader___ToolContext___opt_path},
+  {(bigint) mmloader___ToolContext___opt_only_metamodel},
+  {(bigint) mmloader___ToolContext___opt_only_parse},
+  {(bigint) toolcontext___ToolContext___init},
+  {(bigint) toolcontext___ToolContext___process_options},
+  {(bigint) mmloader___ToolContext___try_to_load},
+  {(bigint) mmloader___ToolContext___get_module_from_filename},
+  {(bigint) mmloader___ToolContext___get_module},
+  {(bigint) mmloader___ToolContext___directory_for},
+  {(bigint) mmloader___ToolContext___register_loader},
+  {(bigint) 1 /* 82: NitCompiler < ToolContext: superclass init_table position */},
+  {(bigint) toolcontext___ToolContext___error_count},
+  {(bigint) toolcontext___ToolContext___warning_count},
+  {(bigint) toolcontext___ToolContext___log_directory},
+  {(bigint) toolcontext___ToolContext___check_errors},
+  {(bigint) toolcontext___ToolContext___error},
+  {(bigint) toolcontext___ToolContext___fatal_error},
+  {(bigint) toolcontext___ToolContext___warning},
+  {(bigint) toolcontext___ToolContext___info},
+  {(bigint) toolcontext___ToolContext___option_context},
+  {(bigint) toolcontext___ToolContext___opt_warn},
+  {(bigint) toolcontext___ToolContext___opt_quiet},
+  {(bigint) toolcontext___ToolContext___opt_log},
+  {(bigint) toolcontext___ToolContext___opt_log_dir},
+  {(bigint) toolcontext___ToolContext___opt_help},
+  {(bigint) toolcontext___ToolContext___opt_version},
+  {(bigint) toolcontext___ToolContext___opt_verbose},
+  {(bigint) toolcontext___ToolContext___opt_stop_on_first_error},
+  {(bigint) toolcontext___ToolContext___opt_no_color},
+  {(bigint) toolcontext___ToolContext___verbose_level},
+  {(bigint) nitc___ToolContext___init},
+  {(bigint) nitc___NitCompiler___process_options},
+  {(bigint) program___ToolContext___global},
+  {(bigint) program___ToolContext___global__eq},
+  {(bigint) program___ToolContext___use_SFT_optimization__eq},
+  {(bigint) program___ToolContext___use_SFT_optimization},
+  {(bigint) separate_options___ToolContext___separate_options},
+  {(bigint) separate_options___ToolContext___separate_options__eq},
+  {(bigint) separate_options___ToolContext___opt_cc_lib_paths},
+  {(bigint) separate_options___ToolContext___opt_cc_lib_paths__eq},
+  {(bigint) separate_options___ToolContext___opt_cc_libs},
+  {(bigint) separate_options___ToolContext___opt_cc_libs__eq},
+  {(bigint) separate_options___ToolContext___opt_cc_include_paths},
+  {(bigint) separate_options___ToolContext___opt_cc_include_paths__eq},
+  {(bigint) mmloader___ToolContext___init},
+  {(bigint) separate_options___ToolContext___integrate_separate_options},
+  {(bigint) compiling___compiling_base___ToolContext___compdir},
+  {(bigint) compiling___compiling_base___ToolContext___compdir__eq},
+  {(bigint) compiling___compiling_base___ToolContext___clibdir},
+  {(bigint) compiling___compiling_base___ToolContext___clibdir__eq},
+  {(bigint) compiling___compiling_base___ToolContext___bindir},
+  {(bigint) compiling___compiling_base___ToolContext___bindir__eq},
+  {(bigint) compiling___compiling_base___ToolContext___output_file},
+  {(bigint) compiling___compiling_base___ToolContext___output_file__eq},
+  {(bigint) compiling___compiling_base___ToolContext___boost},
+  {(bigint) compiling___compiling_base___ToolContext___boost__eq},
+  {(bigint) compiling___compiling_base___ToolContext___no_cc},
+  {(bigint) compiling___compiling_base___ToolContext___no_cc__eq},
+  {(bigint) compiling___compiling_base___ToolContext___cc_link},
+  {(bigint) compiling___compiling_base___ToolContext___cc_link__eq},
+  {(bigint) compiling___compiling_base___ToolContext___cc_libs},
+  {(bigint) compiling___compiling_base___ToolContext___cc_libs__eq},
+  {(bigint) compiling___compiling_base___ToolContext___cc_lib_paths},
+  {(bigint) compiling___compiling_base___ToolContext___cc_lib_paths__eq},
+  {(bigint) compiling___compiling_base___ToolContext___cc_include_paths},
+  {(bigint) compiling___compiling_base___ToolContext___cc_include_paths__eq},
+  {(bigint) compiling___compiling_base___ToolContext___ext_prefix},
+  {(bigint) compiling___compiling_base___ToolContext___ext_prefix__eq},
+  {(bigint) global___ToolContext___init},
+  {(bigint) mmloader___ToolContext___process_options},
+  {(bigint) 0 /* 142: NitCompiler < AbstractCompiler: superclass init_table position */},
+  {(bigint) abstracttool___AbstractCompiler___init},
+  {(bigint) abstracttool___AbstractCompiler___tool_name},
+  {(bigint) abstracttool___AbstractCompiler___exec_cmd_line},
+  {(bigint) nitc___NitCompiler___perform_work},
+  {(bigint) abstracttool___AbstractCompiler___dump_context_info},
+  {(bigint) 4 /* 148: NitCompiler < NitCompiler: superclass init_table position */},
+  {(bigint) nitc___NitCompiler___opt_output},
+  {(bigint) nitc___NitCompiler___opt_boost},
+  {(bigint) nitc___NitCompiler___opt_no_cc},
+  {(bigint) nitc___NitCompiler___opt_cc_no_link},
+  {(bigint) nitc___NitCompiler___opt_clibdir},
+  {(bigint) nitc___NitCompiler___opt_bindir},
+  {(bigint) nitc___NitCompiler___opt_compdir},
+  {(bigint) nitc___NitCompiler___opt_extension_prefix},
+  {(bigint) nitc___NitCompiler___opt_output_format},
+  {(bigint) nitc___NitCompiler___init},
+  {(bigint) global___AbstractCompiler___process_options},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute NitCompiler::_module_hierarchy */
+/* 3: Attribute NitCompiler::_class_hierarchy */
+/* 4: Attribute NitCompiler::_global_classes */
+/* 5: Attribute NitCompiler::_modules */
+/* 6: Attribute NitCompiler::_global_callgraph */
+/* 7: Attribute NitCompiler::_opt_global */
+/* 8: Attribute NitCompiler::_opt_global_no_STF_opt */
+/* 9: Attribute NitCompiler::_opt_global_no_DMR_opt */
+/* 10: Attribute NitCompiler::_opt_global_no_inline_get_set */
+/* 11: Attribute NitCompiler::_opt_global_no_out_of_init_get_test_opt */
+/* 12: Attribute NitCompiler::_opt_global_no_RFIMA */
+/* 13: Attribute NitCompiler::_opt_global_callgraph */
+/* 14: Attribute NitCompiler::_keep_ast */
+/* 15: Attribute NitCompiler::_paths */
+/* 16: Attribute NitCompiler::_loaders */
+/* 17: Attribute NitCompiler::_opt_path */
+/* 18: Attribute NitCompiler::_opt_only_metamodel */
+/* 19: Attribute NitCompiler::_opt_only_parse */
+/* 20: Attribute NitCompiler::_processing_modules */
+/* 21: Attribute NitCompiler::_path_dirs */
+/* 22: Attribute NitCompiler::_error_count */
+/* 23: Attribute NitCompiler::_warning_count */
+/* 24: Attribute NitCompiler::_log_directory */
+/* 25: Attribute NitCompiler::_messages */
+/* 26: Attribute NitCompiler::_message_sorter */
+/* 27: Attribute NitCompiler::_option_context */
+/* 28: Attribute NitCompiler::_opt_warn */
+/* 29: Attribute NitCompiler::_opt_quiet */
+/* 30: Attribute NitCompiler::_opt_log */
+/* 31: Attribute NitCompiler::_opt_log_dir */
+/* 32: Attribute NitCompiler::_opt_help */
+/* 33: Attribute NitCompiler::_opt_version */
+/* 34: Attribute NitCompiler::_opt_verbose */
+/* 35: Attribute NitCompiler::_opt_stop_on_first_error */
+/* 36: Attribute NitCompiler::_opt_no_color */
+/* 37: Attribute NitCompiler::_verbose_level */
+/* 38: Attribute NitCompiler::_global */
+/* 39: Attribute NitCompiler::_use_SFT_optimization */
+/* 40: Attribute NitCompiler::@separate_options */
+/* 41: Attribute NitCompiler::@opt_cc_lib_paths */
+/* 42: Attribute NitCompiler::@opt_cc_libs */
+/* 43: Attribute NitCompiler::@opt_cc_include_paths */
+/* 44: Attribute NitCompiler::_compdir */
+/* 45: Attribute NitCompiler::_clibdir */
+/* 46: Attribute NitCompiler::_bindir */
+/* 47: Attribute NitCompiler::_output_file */
+/* 48: Attribute NitCompiler::_boost */
+/* 49: Attribute NitCompiler::_no_cc */
+/* 50: Attribute NitCompiler::_cc_link */
+/* 51: Attribute NitCompiler::_cc_libs */
+/* 52: Attribute NitCompiler::_cc_lib_paths */
+/* 53: Attribute NitCompiler::_cc_include_paths */
+/* 54: Attribute NitCompiler::_ext_prefix */
+/* 55: Attribute NitCompiler::_tool_name */
+/* 56: Attribute NitCompiler::_opt_output */
+/* 57: Attribute NitCompiler::_opt_boost */
+/* 58: Attribute NitCompiler::_opt_no_cc */
+/* 59: Attribute NitCompiler::_opt_cc_no_link */
+/* 60: Attribute NitCompiler::_opt_clibdir */
+/* 61: Attribute NitCompiler::_opt_bindir */
+/* 62: Attribute NitCompiler::_opt_compdir */
+/* 63: Attribute NitCompiler::_opt_extension_prefix */
+/* 64: Attribute NitCompiler::_opt_output_format */
+void INIT_ATTRIBUTES__nitc___NitCompiler(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t tmp;
+  static val_t once_value_1; /* Once value */
+  static val_t once_value_2; /* Once value */
+  static val_t once_value_3; /* Once value */
+  static val_t once_value_4; /* Once value */
+  static val_t once_value_5; /* Once value */
+  static val_t once_value_6; /* Once value */
+  static val_t once_value_7; /* Once value */
+  static val_t once_value_8; /* Once value */
+  static val_t once_value_9; /* Once value */
+  static val_t once_value_10; /* Once value */
+  static val_t once_value_11; /* Once value */
+  static val_t once_value_12; /* Once value */
+  static val_t once_value_13; /* Once value */
+  static val_t once_value_14; /* Once value */
+  static val_t once_value_15; /* Once value */
+  static val_t once_value_16; /* Once value */
+  static val_t once_value_17; /* Once value */
+  static val_t once_value_18; /* Once value */
+  static val_t once_value_19; /* Once value */
+  static val_t once_value_20; /* Once value */
+  static val_t once_value_21; /* Once value */
+  static val_t once_value_22; /* Once value */
+  static val_t once_value_23; /* Once value */
+  static val_t once_value_24; /* Once value */
+  static val_t once_value_25; /* Once value */
+  static val_t once_value_26; /* Once value */
+  static val_t once_value_27; /* Once value */
+  static val_t once_value_28; /* Once value */
+  static val_t once_value_29; /* Once value */
+  static val_t once_value_30; /* Once value */
+  static val_t once_value_31; /* Once value */
+  static val_t once_value_32; /* Once value */
+  static val_t once_value_33; /* Once value */
+  static val_t once_value_34; /* Once value */
+  static val_t once_value_35; /* Once value */
+  static val_t once_value_36; /* Once value */
+  static val_t once_value_37; /* Once value */
+  static val_t once_value_38; /* Once value */
+  static val_t once_value_39; /* Once value */
+  static val_t once_value_40; /* Once value */
+  static val_t once_value_41; /* Once value */
+  static val_t once_value_42; /* Once value */
+  static val_t once_value_43; /* Once value */
+  static val_t once_value_44; /* Once value */
+  static val_t once_value_45; /* Once value */
+  static val_t once_value_46; /* Once value */
+  static val_t once_value_47; /* Once value */
+  static val_t once_value_48; /* Once value */
+  static val_t once_value_49; /* Once value */
+  static val_t once_value_50; /* Once value */
+  static val_t once_value_51; /* Once value */
+  static val_t once_value_52; /* Once value */
+  static val_t once_value_53; /* Once value */
+  static val_t once_value_54; /* Once value */
+  static val_t once_value_55; /* Once value */
+  static val_t once_value_56; /* Once value */
+  static val_t once_value_57; /* Once value */
+  static val_t once_value_58; /* Once value */
+  static val_t once_value_59; /* Once value */
+  static val_t once_value_60; /* Once value */
+  static val_t once_value_61; /* Once value */
+  static val_t once_value_62; /* Once value */
+  static val_t once_value_63; /* Once value */
+  static val_t once_value_64; /* Once value */
+  static val_t once_value_65; /* Once value */
+  static val_t once_value_66; /* Once value */
+  static val_t once_value_67; /* Once value */
+  static val_t once_value_68; /* Once value */
+  static val_t once_value_69; /* Once value */
+  static val_t once_value_70; /* Once value */
+  static val_t once_value_71; /* Once value */
+  static val_t once_value_72; /* Once value */
+  static val_t once_value_73; /* Once value */
+  static val_t once_value_74; /* Once value */
+  static val_t once_value_75; /* Once value */
+  static val_t once_value_76; /* Once value */
+  static val_t once_value_77; /* Once value */
+  static val_t once_value_78; /* Once value */
+  static val_t once_value_79; /* Once value */
+  static val_t once_value_80; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__nitc___NitCompiler;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 5;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* nitc.nit:32 */
+  if (!once_value_1) {
+    fra.me.REG[1] = BOX_NativeString("Output file");
+    REGB0 = TAG_Int(11);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_1 = fra.me.REG[1];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[1] = once_value_1;
+  fra.me.REG[1] = fra.me.REG[1];
+  REGB0 = TAG_Int(1);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_2) {
+    fra.me.REG[3] = BOX_NativeString("-o");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_2 = fra.me.REG[3];
+    register_static_object(&once_value_2);
+  } else fra.me.REG[3] = once_value_2;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  if (!once_value_3) {
+    fra.me.REG[3] = BOX_NativeString("--output");
+    REGB0 = TAG_Int(8);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_3 = fra.me.REG[3];
+    register_static_object(&once_value_3);
+  } else fra.me.REG[3] = once_value_3;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionString_opts___OptionString___init(fra.me.REG[1], fra.me.REG[2]);
+  ATTR_nitc___NitCompiler____opt_output(fra.me.REG[0]) = fra.me.REG[2];
+  /* nitc.nit:33 */
+  if (!once_value_4) {
+    fra.me.REG[2] = BOX_NativeString("Optimize compilation");
+    REGB0 = TAG_Int(20);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_4 = fra.me.REG[2];
+    register_static_object(&once_value_4);
+  } else fra.me.REG[2] = once_value_4;
+  fra.me.REG[2] = fra.me.REG[2];
+  REGB0 = TAG_Int(1);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_5) {
+    fra.me.REG[3] = BOX_NativeString("-O");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_5 = fra.me.REG[3];
+    register_static_object(&once_value_5);
+  } else fra.me.REG[3] = once_value_5;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+  if (!once_value_6) {
+    fra.me.REG[3] = BOX_NativeString("--boost");
+    REGB0 = TAG_Int(7);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_6 = fra.me.REG[3];
+    register_static_object(&once_value_6);
+  } else fra.me.REG[3] = once_value_6;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
+  ATTR_nitc___NitCompiler____opt_boost(fra.me.REG[0]) = fra.me.REG[1];
+  /* nitc.nit:34 */
+  if (!once_value_7) {
+    fra.me.REG[1] = BOX_NativeString("Do not invoke C compiler");
+    REGB0 = TAG_Int(24);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_7 = fra.me.REG[1];
+    register_static_object(&once_value_7);
+  } else fra.me.REG[1] = once_value_7;
+  fra.me.REG[1] = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_8) {
+    fra.me.REG[3] = BOX_NativeString("--no-cc");
+    REGB0 = TAG_Int(7);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_8 = fra.me.REG[3];
+    register_static_object(&once_value_8);
+  } else fra.me.REG[3] = once_value_8;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
+  ATTR_nitc___NitCompiler____opt_no_cc(fra.me.REG[0]) = fra.me.REG[2];
+  /* nitc.nit:35 */
+  if (!once_value_9) {
+    fra.me.REG[2] = BOX_NativeString("Do not invoke C linker");
+    REGB0 = TAG_Int(22);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_9 = fra.me.REG[2];
+    register_static_object(&once_value_9);
+  } else fra.me.REG[2] = once_value_9;
+  fra.me.REG[2] = fra.me.REG[2];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_10) {
+    fra.me.REG[3] = BOX_NativeString("--cc-no-link");
+    REGB0 = TAG_Int(12);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_10 = fra.me.REG[3];
+    register_static_object(&once_value_10);
+  } else fra.me.REG[3] = once_value_10;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
+  ATTR_nitc___NitCompiler____opt_cc_no_link(fra.me.REG[0]) = fra.me.REG[1];
+  /* nitc.nit:36 */
+  if (!once_value_11) {
+    fra.me.REG[1] = BOX_NativeString("NIT C library directory");
+    REGB0 = TAG_Int(23);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_11 = fra.me.REG[1];
+    register_static_object(&once_value_11);
+  } else fra.me.REG[1] = once_value_11;
+  fra.me.REG[1] = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_12) {
+    fra.me.REG[3] = BOX_NativeString("--clibdir");
+    REGB0 = TAG_Int(9);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_12 = fra.me.REG[3];
+    register_static_object(&once_value_12);
+  } else fra.me.REG[3] = once_value_12;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionString_opts___OptionString___init(fra.me.REG[1], fra.me.REG[2]);
+  ATTR_nitc___NitCompiler____opt_clibdir(fra.me.REG[0]) = fra.me.REG[2];
+  /* nitc.nit:37 */
+  if (!once_value_13) {
+    fra.me.REG[2] = BOX_NativeString("NIT tools directory");
+    REGB0 = TAG_Int(19);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_13 = fra.me.REG[2];
+    register_static_object(&once_value_13);
+  } else fra.me.REG[2] = once_value_13;
+  fra.me.REG[2] = fra.me.REG[2];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_14) {
+    fra.me.REG[3] = BOX_NativeString("--bindir");
+    REGB0 = TAG_Int(8);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_14 = fra.me.REG[3];
+    register_static_object(&once_value_14);
+  } else fra.me.REG[3] = once_value_14;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionString_opts___OptionString___init(fra.me.REG[2], fra.me.REG[1]);
+  ATTR_nitc___NitCompiler____opt_bindir(fra.me.REG[0]) = fra.me.REG[1];
+  /* nitc.nit:38 */
+  if (!once_value_15) {
+    fra.me.REG[1] = BOX_NativeString("Intermediate compilation directory");
+    REGB0 = TAG_Int(34);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_15 = fra.me.REG[1];
+    register_static_object(&once_value_15);
+  } else fra.me.REG[1] = once_value_15;
+  fra.me.REG[1] = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_16) {
+    fra.me.REG[3] = BOX_NativeString("--compdir");
+    REGB0 = TAG_Int(9);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_16 = fra.me.REG[3];
+    register_static_object(&once_value_16);
+  } else fra.me.REG[3] = once_value_16;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionString_opts___OptionString___init(fra.me.REG[1], fra.me.REG[2]);
+  ATTR_nitc___NitCompiler____opt_compdir(fra.me.REG[0]) = fra.me.REG[2];
+  /* nitc.nit:39 */
+  if (!once_value_17) {
+    fra.me.REG[2] = BOX_NativeString("Append prefix to file extension");
+    REGB0 = TAG_Int(31);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_17 = fra.me.REG[2];
+    register_static_object(&once_value_17);
+  } else fra.me.REG[2] = once_value_17;
+  fra.me.REG[2] = fra.me.REG[2];
+  REGB0 = TAG_Int(1);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_18) {
+    fra.me.REG[3] = BOX_NativeString("-p");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_18 = fra.me.REG[3];
+    register_static_object(&once_value_18);
+  } else fra.me.REG[3] = once_value_18;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+  if (!once_value_19) {
+    fra.me.REG[3] = BOX_NativeString("--extension-prefix");
+    REGB0 = TAG_Int(18);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_19 = fra.me.REG[3];
+    register_static_object(&once_value_19);
+  } else fra.me.REG[3] = once_value_19;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionString_opts___OptionString___init(fra.me.REG[2], fra.me.REG[1]);
+  ATTR_nitc___NitCompiler____opt_extension_prefix(fra.me.REG[0]) = fra.me.REG[1];
+  /* nitc.nit:40 */
+  REGB0 = TAG_Int(3);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_20) {
+    fra.me.REG[2] = BOX_NativeString("none");
+    REGB0 = TAG_Int(4);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_20 = fra.me.REG[2];
+    register_static_object(&once_value_20);
+  } else fra.me.REG[2] = once_value_20;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  if (!once_value_21) {
+    fra.me.REG[2] = BOX_NativeString("C");
+    REGB0 = TAG_Int(1);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_21 = fra.me.REG[2];
+    register_static_object(&once_value_21);
+  } else fra.me.REG[2] = once_value_21;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  if (!once_value_22) {
+    fra.me.REG[2] = BOX_NativeString("icode");
+    REGB0 = TAG_Int(5);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_22 = fra.me.REG[2];
+    register_static_object(&once_value_22);
+  } else fra.me.REG[2] = once_value_22;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  if (!once_value_23) {
+    fra.me.REG[2] = BOX_NativeString("The type of code we want to be generated");
+    REGB0 = TAG_Int(40);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_23 = fra.me.REG[2];
+    register_static_object(&once_value_23);
+  } else fra.me.REG[2] = once_value_23;
+  fra.me.REG[2] = fra.me.REG[2];
+  REGB0 = TAG_Int(1);
+  REGB1 = TAG_Int(0);
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
+  if (!once_value_24) {
+    fra.me.REG[4] = BOX_NativeString("--output-format");
+    REGB1 = TAG_Int(15);
+    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
+    once_value_24 = fra.me.REG[4];
+    register_static_object(&once_value_24);
+  } else fra.me.REG[4] = once_value_24;
+  fra.me.REG[4] = fra.me.REG[4];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
+  fra.me.REG[3] = NEW_OptionEnum_opts___OptionEnum___init(fra.me.REG[1], fra.me.REG[2], REGB0, fra.me.REG[3]);
+  ATTR_nitc___NitCompiler____opt_output_format(fra.me.REG[0]) = fra.me.REG[3];
+  /* syntax/syntax.nit:98 */
+  REGB0 = TAG_Bool(false);
+  ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0]) = REGB0;
+  /* mmloader.nit:30 */
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_mmloader___ToolContext____paths(fra.me.REG[0]) = fra.me.REG[3];
+  /* mmloader.nit:33 */
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_mmloader___ToolContext____loaders(fra.me.REG[0]) = fra.me.REG[3];
+  /* mmloader.nit:36 */
+  if (!once_value_25) {
+    fra.me.REG[3] = BOX_NativeString("Set include path for loaders (may be used more than once)");
+    REGB0 = TAG_Int(57);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_25 = fra.me.REG[3];
+    register_static_object(&once_value_25);
+  } else fra.me.REG[3] = once_value_25;
+  fra.me.REG[3] = fra.me.REG[3];
+  REGB0 = TAG_Int(1);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_26) {
+    fra.me.REG[1] = BOX_NativeString("-I");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_26 = fra.me.REG[1];
+    register_static_object(&once_value_26);
+  } else fra.me.REG[1] = once_value_26;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  if (!once_value_27) {
+    fra.me.REG[1] = BOX_NativeString("--path");
+    REGB0 = TAG_Int(6);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_27 = fra.me.REG[1];
+    register_static_object(&once_value_27);
+  } else fra.me.REG[1] = once_value_27;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  fra.me.REG[2] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[3], fra.me.REG[2]);
+  ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0]) = fra.me.REG[2];
+  /* mmloader.nit:39 */
+  if (!once_value_28) {
+    fra.me.REG[2] = BOX_NativeString("Stop after meta-model processing");
+    REGB0 = TAG_Int(32);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_28 = fra.me.REG[2];
+    register_static_object(&once_value_28);
+  } else fra.me.REG[2] = once_value_28;
+  fra.me.REG[2] = fra.me.REG[2];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_29) {
+    fra.me.REG[1] = BOX_NativeString("--only-metamodel");
+    REGB0 = TAG_Int(16);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_29 = fra.me.REG[1];
+    register_static_object(&once_value_29);
+  } else fra.me.REG[1] = once_value_29;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  fra.me.REG[3] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[3]);
+  ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0]) = fra.me.REG[3];
+  /* mmloader.nit:42 */
+  if (!once_value_30) {
+    fra.me.REG[3] = BOX_NativeString("Only proceed to parse step of loaders");
+    REGB0 = TAG_Int(37);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_30 = fra.me.REG[3];
+    register_static_object(&once_value_30);
+  } else fra.me.REG[3] = once_value_30;
+  fra.me.REG[3] = fra.me.REG[3];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_31) {
+    fra.me.REG[1] = BOX_NativeString("--only-parse");
+    REGB0 = TAG_Int(12);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_31 = fra.me.REG[1];
+    register_static_object(&once_value_31);
+  } else fra.me.REG[1] = once_value_31;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[3], fra.me.REG[2]);
+  ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0]) = fra.me.REG[2];
+  /* mmloader.nit:115 */
+  fra.me.REG[2] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
+  ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0]) = fra.me.REG[2];
+  /* mmloader.nit:182 */
+  fra.me.REG[2] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
+  ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0]) = fra.me.REG[2];
+  /* toolcontext.nit:72 */
+  REGB0 = TAG_Int(0);
+  ATTR_toolcontext___ToolContext____error_count(fra.me.REG[0]) = REGB0;
+  /* toolcontext.nit:75 */
+  REGB0 = TAG_Int(0);
+  ATTR_toolcontext___ToolContext____warning_count(fra.me.REG[0]) = REGB0;
+  /* toolcontext.nit:78 */
+  if (!once_value_32) {
+    fra.me.REG[2] = BOX_NativeString("logs");
+    REGB0 = TAG_Int(4);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_32 = fra.me.REG[2];
+    register_static_object(&once_value_32);
+  } else fra.me.REG[2] = once_value_32;
+  fra.me.REG[2] = fra.me.REG[2];
+  ATTR_toolcontext___ToolContext____log_directory(fra.me.REG[0]) = fra.me.REG[2];
+  /* toolcontext.nit:81 */
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_toolcontext___ToolContext____messages(fra.me.REG[0]) = fra.me.REG[2];
+  /* toolcontext.nit:82 */
+  fra.me.REG[2] = NEW_ComparableSorter_standard___collection___sorter___ComparableSorter___init();
+  ATTR_toolcontext___ToolContext____message_sorter(fra.me.REG[0]) = fra.me.REG[2];
+  /* toolcontext.nit:136 */
+  fra.me.REG[2] = NEW_OptionContext_opts___OptionContext___init();
+  ATTR_toolcontext___ToolContext____option_context(fra.me.REG[0]) = fra.me.REG[2];
+  /* toolcontext.nit:139 */
+  if (!once_value_33) {
+    fra.me.REG[2] = BOX_NativeString("Show warnings");
+    REGB0 = TAG_Int(13);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_33 = fra.me.REG[2];
+    register_static_object(&once_value_33);
+  } else fra.me.REG[2] = once_value_33;
+  fra.me.REG[2] = fra.me.REG[2];
+  REGB0 = TAG_Int(1);
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_34) {
+    fra.me.REG[1] = BOX_NativeString("-W");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_34 = fra.me.REG[1];
+    register_static_object(&once_value_34);
+  } else fra.me.REG[1] = once_value_34;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  if (!once_value_35) {
+    fra.me.REG[1] = BOX_NativeString("--warn");
+    REGB0 = TAG_Int(6);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_35 = fra.me.REG[1];
+    register_static_object(&once_value_35);
+  } else fra.me.REG[1] = once_value_35;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  fra.me.REG[3] = NEW_OptionCount_opts___OptionCount___init(fra.me.REG[2], fra.me.REG[3]);
+  ATTR_toolcontext___ToolContext____opt_warn(fra.me.REG[0]) = fra.me.REG[3];
+  /* toolcontext.nit:142 */
+  if (!once_value_36) {
+    fra.me.REG[3] = BOX_NativeString("Do not show warnings");
+    REGB0 = TAG_Int(20);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_36 = fra.me.REG[3];
+    register_static_object(&once_value_36);
+  } else fra.me.REG[3] = once_value_36;
+  fra.me.REG[3] = fra.me.REG[3];
+  REGB0 = TAG_Int(1);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_37) {
+    fra.me.REG[1] = BOX_NativeString("-q");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_37 = fra.me.REG[1];
+    register_static_object(&once_value_37);
+  } else fra.me.REG[1] = once_value_37;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  if (!once_value_38) {
+    fra.me.REG[1] = BOX_NativeString("--quiet");
+    REGB0 = TAG_Int(7);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_38 = fra.me.REG[1];
+    register_static_object(&once_value_38);
+  } else fra.me.REG[1] = once_value_38;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[3], fra.me.REG[2]);
+  ATTR_toolcontext___ToolContext____opt_quiet(fra.me.REG[0]) = fra.me.REG[2];
+  /* toolcontext.nit:145 */
+  if (!once_value_39) {
+    fra.me.REG[2] = BOX_NativeString("Generate various log files");
+    REGB0 = TAG_Int(26);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_39 = fra.me.REG[2];
+    register_static_object(&once_value_39);
+  } else fra.me.REG[2] = once_value_39;
+  fra.me.REG[2] = fra.me.REG[2];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_40) {
+    fra.me.REG[1] = BOX_NativeString("--log");
+    REGB0 = TAG_Int(5);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_40 = fra.me.REG[1];
+    register_static_object(&once_value_40);
+  } else fra.me.REG[1] = once_value_40;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  fra.me.REG[3] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[3]);
+  ATTR_toolcontext___ToolContext____opt_log(fra.me.REG[0]) = fra.me.REG[3];
+  /* toolcontext.nit:148 */
+  if (!once_value_41) {
+    fra.me.REG[3] = BOX_NativeString("Directory where to generate log files");
+    REGB0 = TAG_Int(37);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_41 = fra.me.REG[3];
+    register_static_object(&once_value_41);
+  } else fra.me.REG[3] = once_value_41;
+  fra.me.REG[3] = fra.me.REG[3];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_42) {
+    fra.me.REG[1] = BOX_NativeString("--log-dir");
+    REGB0 = TAG_Int(9);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_42 = fra.me.REG[1];
+    register_static_object(&once_value_42);
+  } else fra.me.REG[1] = once_value_42;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  fra.me.REG[2] = NEW_OptionString_opts___OptionString___init(fra.me.REG[3], fra.me.REG[2]);
+  ATTR_toolcontext___ToolContext____opt_log_dir(fra.me.REG[0]) = fra.me.REG[2];
+  /* toolcontext.nit:151 */
+  if (!once_value_43) {
+    fra.me.REG[2] = BOX_NativeString("Show Help (This screen)");
+    REGB0 = TAG_Int(23);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_43 = fra.me.REG[2];
+    register_static_object(&once_value_43);
+  } else fra.me.REG[2] = once_value_43;
+  fra.me.REG[2] = fra.me.REG[2];
+  REGB0 = TAG_Int(2);
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_44) {
+    fra.me.REG[1] = BOX_NativeString("-h");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_44 = fra.me.REG[1];
+    register_static_object(&once_value_44);
+  } else fra.me.REG[1] = once_value_44;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  if (!once_value_45) {
+    fra.me.REG[1] = BOX_NativeString("-?");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_45 = fra.me.REG[1];
+    register_static_object(&once_value_45);
+  } else fra.me.REG[1] = once_value_45;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  if (!once_value_46) {
+    fra.me.REG[1] = BOX_NativeString("--help");
+    REGB0 = TAG_Int(6);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_46 = fra.me.REG[1];
+    register_static_object(&once_value_46);
+  } else fra.me.REG[1] = once_value_46;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  fra.me.REG[3] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[3]);
+  ATTR_toolcontext___ToolContext____opt_help(fra.me.REG[0]) = fra.me.REG[3];
+  /* toolcontext.nit:154 */
+  if (!once_value_47) {
+    fra.me.REG[3] = BOX_NativeString("Show version and exit");
+    REGB0 = TAG_Int(21);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_47 = fra.me.REG[3];
+    register_static_object(&once_value_47);
+  } else fra.me.REG[3] = once_value_47;
+  fra.me.REG[3] = fra.me.REG[3];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_48) {
+    fra.me.REG[1] = BOX_NativeString("--version");
+    REGB0 = TAG_Int(9);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_48 = fra.me.REG[1];
+    register_static_object(&once_value_48);
+  } else fra.me.REG[1] = once_value_48;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[3], fra.me.REG[2]);
+  ATTR_toolcontext___ToolContext____opt_version(fra.me.REG[0]) = fra.me.REG[2];
+  /* toolcontext.nit:157 */
+  if (!once_value_49) {
+    fra.me.REG[2] = BOX_NativeString("Verbose");
+    REGB0 = TAG_Int(7);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_49 = fra.me.REG[2];
+    register_static_object(&once_value_49);
+  } else fra.me.REG[2] = once_value_49;
+  fra.me.REG[2] = fra.me.REG[2];
+  REGB0 = TAG_Int(1);
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_50) {
+    fra.me.REG[1] = BOX_NativeString("-v");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_50 = fra.me.REG[1];
+    register_static_object(&once_value_50);
+  } else fra.me.REG[1] = once_value_50;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  if (!once_value_51) {
+    fra.me.REG[1] = BOX_NativeString("--verbose");
+    REGB0 = TAG_Int(9);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_51 = fra.me.REG[1];
+    register_static_object(&once_value_51);
+  } else fra.me.REG[1] = once_value_51;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  fra.me.REG[3] = NEW_OptionCount_opts___OptionCount___init(fra.me.REG[2], fra.me.REG[3]);
+  ATTR_toolcontext___ToolContext____opt_verbose(fra.me.REG[0]) = fra.me.REG[3];
+  /* toolcontext.nit:160 */
+  if (!once_value_52) {
+    fra.me.REG[3] = BOX_NativeString("Stop on first error");
+    REGB0 = TAG_Int(19);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_52 = fra.me.REG[3];
+    register_static_object(&once_value_52);
+  } else fra.me.REG[3] = once_value_52;
+  fra.me.REG[3] = fra.me.REG[3];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_53) {
+    fra.me.REG[1] = BOX_NativeString("--stop-on-first-error");
+    REGB0 = TAG_Int(21);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_53 = fra.me.REG[1];
+    register_static_object(&once_value_53);
+  } else fra.me.REG[1] = once_value_53;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[3], fra.me.REG[2]);
+  ATTR_toolcontext___ToolContext____opt_stop_on_first_error(fra.me.REG[0]) = fra.me.REG[2];
+  /* toolcontext.nit:163 */
+  if (!once_value_54) {
+    fra.me.REG[2] = BOX_NativeString("Do not use color to display errors and warnings");
+    REGB0 = TAG_Int(47);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_54 = fra.me.REG[2];
+    register_static_object(&once_value_54);
+  } else fra.me.REG[2] = once_value_54;
+  fra.me.REG[2] = fra.me.REG[2];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_55) {
+    fra.me.REG[1] = BOX_NativeString("--no-color");
+    REGB0 = TAG_Int(10);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_55 = fra.me.REG[1];
+    register_static_object(&once_value_55);
+  } else fra.me.REG[1] = once_value_55;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  fra.me.REG[3] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[3]);
+  ATTR_toolcontext___ToolContext____opt_no_color(fra.me.REG[0]) = fra.me.REG[3];
+  /* toolcontext.nit:166 */
+  REGB0 = TAG_Int(0);
+  ATTR_toolcontext___ToolContext____verbose_level(fra.me.REG[0]) = REGB0;
+  /* metamodel/abstractmetamodel.nit:30 */
+  fra.me.REG[3] = NEW_PartialOrder_metamodel___partial_order___PartialOrder___init();
+  ATTR_metamodel___abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0]) = fra.me.REG[3];
+  /* metamodel/abstractmetamodel.nit:34 */
+  fra.me.REG[3] = NEW_PartialOrder_metamodel___partial_order___PartialOrder___init();
+  ATTR_metamodel___abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0]) = fra.me.REG[3];
+  /* metamodel/abstractmetamodel.nit:37 */
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_metamodel___abstractmetamodel___MMContext____global_classes(fra.me.REG[0]) = fra.me.REG[3];
+  /* metamodel/abstractmetamodel.nit:40 */
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_metamodel___abstractmetamodel___MMContext____modules(fra.me.REG[0]) = fra.me.REG[3];
+  /* global/global.nit:44 */
+  if (!once_value_56) {
+    fra.me.REG[3] = BOX_NativeString("rta");
+    REGB0 = TAG_Int(3);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_56 = fra.me.REG[3];
+    register_static_object(&once_value_56);
+  } else fra.me.REG[3] = once_value_56;
+  fra.me.REG[3] = fra.me.REG[3];
+  ATTR_global___ToolContext____global_callgraph(fra.me.REG[0]) = fra.me.REG[3];
+  /* global/global.nit:46 */
+  if (!once_value_57) {
+    fra.me.REG[3] = BOX_NativeString("Use global compilation");
+    REGB0 = TAG_Int(22);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_57 = fra.me.REG[3];
+    register_static_object(&once_value_57);
+  } else fra.me.REG[3] = once_value_57;
+  fra.me.REG[3] = fra.me.REG[3];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_58) {
+    fra.me.REG[1] = BOX_NativeString("--global");
+    REGB0 = TAG_Int(8);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_58 = fra.me.REG[1];
+    register_static_object(&once_value_58);
+  } else fra.me.REG[1] = once_value_58;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[3], fra.me.REG[2]);
+  ATTR_global___ToolContext____opt_global(fra.me.REG[0]) = fra.me.REG[2];
+  /* global/global.nit:47 */
+  if (!once_value_59) {
+    fra.me.REG[2] = BOX_NativeString("Do not use SFT optimization");
+    REGB0 = TAG_Int(27);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_59 = fra.me.REG[2];
+    register_static_object(&once_value_59);
+  } else fra.me.REG[2] = once_value_59;
+  fra.me.REG[2] = fra.me.REG[2];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_60) {
+    fra.me.REG[1] = BOX_NativeString("--no-global-SFT-optimization");
+    REGB0 = TAG_Int(28);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_60 = fra.me.REG[1];
+    register_static_object(&once_value_60);
+  } else fra.me.REG[1] = once_value_60;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  fra.me.REG[3] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[3]);
+  ATTR_global___ToolContext____opt_global_no_STF_opt(fra.me.REG[0]) = fra.me.REG[3];
+  /* global/global.nit:48 */
+  if (!once_value_61) {
+    fra.me.REG[3] = BOX_NativeString("Do not use dead method removal optimization");
+    REGB0 = TAG_Int(43);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_61 = fra.me.REG[3];
+    register_static_object(&once_value_61);
+  } else fra.me.REG[3] = once_value_61;
+  fra.me.REG[3] = fra.me.REG[3];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_62) {
+    fra.me.REG[1] = BOX_NativeString("--no-global-DMR-optimization");
+    REGB0 = TAG_Int(28);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_62 = fra.me.REG[1];
+    register_static_object(&once_value_62);
+  } else fra.me.REG[1] = once_value_62;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[3], fra.me.REG[2]);
+  ATTR_global___ToolContext____opt_global_no_DMR_opt(fra.me.REG[0]) = fra.me.REG[2];
+  /* global/global.nit:49 */
+  if (!once_value_63) {
+    fra.me.REG[2] = BOX_NativeString("Do not automatically inline getters/setters");
+    REGB0 = TAG_Int(43);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_63 = fra.me.REG[2];
+    register_static_object(&once_value_63);
+  } else fra.me.REG[2] = once_value_63;
+  fra.me.REG[2] = fra.me.REG[2];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_64) {
+    fra.me.REG[1] = BOX_NativeString("--no-global-get-set-inlining");
+    REGB0 = TAG_Int(28);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_64 = fra.me.REG[1];
+    register_static_object(&once_value_64);
+  } else fra.me.REG[1] = once_value_64;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  fra.me.REG[3] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[3]);
+  ATTR_global___ToolContext____opt_global_no_inline_get_set(fra.me.REG[0]) = fra.me.REG[3];
+  /* global/global.nit:50 */
+  if (!once_value_65) {
+    fra.me.REG[3] = BOX_NativeString("Do not remove get tests outside object initialization");
+    REGB0 = TAG_Int(53);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_65 = fra.me.REG[3];
+    register_static_object(&once_value_65);
+  } else fra.me.REG[3] = once_value_65;
+  fra.me.REG[3] = fra.me.REG[3];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_66) {
+    fra.me.REG[1] = BOX_NativeString("--no-global-OOIT-optimization");
+    REGB0 = TAG_Int(29);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_66 = fra.me.REG[1];
+    register_static_object(&once_value_66);
+  } else fra.me.REG[1] = once_value_66;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[3], fra.me.REG[2]);
+  ATTR_global___ToolContext____opt_global_no_out_of_init_get_test_opt(fra.me.REG[0]) = fra.me.REG[2];
+  /* global/global.nit:51 */
+  if (!once_value_67) {
+    fra.me.REG[2] = BOX_NativeString("Do not use a specialized algorithm to find reachable methods from initializers");
+    REGB0 = TAG_Int(78);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_67 = fra.me.REG[2];
+    register_static_object(&once_value_67);
+  } else fra.me.REG[2] = once_value_67;
+  fra.me.REG[2] = fra.me.REG[2];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_68) {
+    fra.me.REG[1] = BOX_NativeString("--no-global-RFIM-analysis");
+    REGB0 = TAG_Int(25);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_68 = fra.me.REG[1];
+    register_static_object(&once_value_68);
+  } else fra.me.REG[1] = once_value_68;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  fra.me.REG[3] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[3]);
+  ATTR_global___ToolContext____opt_global_no_RFIMA(fra.me.REG[0]) = fra.me.REG[3];
+  /* global/global.nit:52 */
+  REGB0 = TAG_Int(3);
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_69) {
+    fra.me.REG[2] = BOX_NativeString("none");
+    REGB0 = TAG_Int(4);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_69 = fra.me.REG[2];
+    register_static_object(&once_value_69);
+  } else fra.me.REG[2] = once_value_69;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
+  if (!once_value_70) {
+    fra.me.REG[2] = BOX_NativeString("cha");
+    REGB0 = TAG_Int(3);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_70 = fra.me.REG[2];
+    register_static_object(&once_value_70);
+  } else fra.me.REG[2] = once_value_70;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
+  if (!once_value_71) {
+    fra.me.REG[2] = BOX_NativeString("rta");
+    REGB0 = TAG_Int(3);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_71 = fra.me.REG[2];
+    register_static_object(&once_value_71);
+  } else fra.me.REG[2] = once_value_71;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
+  if (!once_value_72) {
+    fra.me.REG[2] = BOX_NativeString("The algorithm to use to build the callgraph");
+    REGB0 = TAG_Int(43);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_72 = fra.me.REG[2];
+    register_static_object(&once_value_72);
+  } else fra.me.REG[2] = once_value_72;
+  fra.me.REG[2] = fra.me.REG[2];
+  REGB0 = TAG_Int(2);
+  REGB1 = TAG_Int(0);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
+  if (!once_value_73) {
+    fra.me.REG[4] = BOX_NativeString("--global-callgraph");
+    REGB1 = TAG_Int(18);
+    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
+    once_value_73 = fra.me.REG[4];
+    register_static_object(&once_value_73);
+  } else fra.me.REG[4] = once_value_73;
+  fra.me.REG[4] = fra.me.REG[4];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
+  fra.me.REG[1] = NEW_OptionEnum_opts___OptionEnum___init(fra.me.REG[3], fra.me.REG[2], REGB0, fra.me.REG[1]);
+  ATTR_global___ToolContext____opt_global_callgraph(fra.me.REG[0]) = fra.me.REG[1];
+  /* program.nit:26 */
+  REGB0 = TAG_Bool(false);
+  ATTR_program___ToolContext____global(fra.me.REG[0]) = REGB0;
+  /* program.nit:27 */
+  REGB0 = TAG_Bool(true);
+  ATTR_program___ToolContext____use_SFT_optimization(fra.me.REG[0]) = REGB0;
+  /* separate_options.nit:11 */
+  fra.me.REG[1] = NEW_OptionContext_opts___OptionContext___init();
+  ATTR_separate_options___ToolContext_____atseparate_options(fra.me.REG[0]) = fra.me.REG[1];
+  /* separate_options.nit:12 */
+  if (!once_value_74) {
+    fra.me.REG[1] = BOX_NativeString("Path to libraries for C compiler");
+    REGB0 = TAG_Int(32);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_74 = fra.me.REG[1];
+    register_static_object(&once_value_74);
+  } else fra.me.REG[1] = once_value_74;
+  fra.me.REG[1] = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_75) {
+    fra.me.REG[3] = BOX_NativeString("--cc-lib-path");
+    REGB0 = TAG_Int(13);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_75 = fra.me.REG[3];
+    register_static_object(&once_value_75);
+  } else fra.me.REG[3] = once_value_75;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[1], fra.me.REG[2]);
+  ATTR_separate_options___ToolContext_____atopt_cc_lib_paths(fra.me.REG[0]) = fra.me.REG[2];
+  /* separate_options.nit:13 */
+  if (!once_value_76) {
+    fra.me.REG[2] = BOX_NativeString("Name of library to use for C compiler");
+    REGB0 = TAG_Int(37);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_76 = fra.me.REG[2];
+    register_static_object(&once_value_76);
+  } else fra.me.REG[2] = once_value_76;
+  fra.me.REG[2] = fra.me.REG[2];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_77) {
+    fra.me.REG[3] = BOX_NativeString("--cc-lib-name");
+    REGB0 = TAG_Int(13);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_77 = fra.me.REG[3];
+    register_static_object(&once_value_77);
+  } else fra.me.REG[3] = once_value_77;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+  fra.me.REG[1] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[2], fra.me.REG[1]);
+  ATTR_separate_options___ToolContext_____atopt_cc_libs(fra.me.REG[0]) = fra.me.REG[1];
+  /* separate_options.nit:14 */
+  if (!once_value_78) {
+    fra.me.REG[1] = BOX_NativeString("Path to .h files for C compiler");
+    REGB0 = TAG_Int(31);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_78 = fra.me.REG[1];
+    register_static_object(&once_value_78);
+  } else fra.me.REG[1] = once_value_78;
+  fra.me.REG[1] = fra.me.REG[1];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_79) {
+    fra.me.REG[3] = BOX_NativeString("--cc-header-path");
+    REGB0 = TAG_Int(16);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_79 = fra.me.REG[3];
+    register_static_object(&once_value_79);
+  } else fra.me.REG[3] = once_value_79;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[1], fra.me.REG[2]);
+  ATTR_separate_options___ToolContext_____atopt_cc_include_paths(fra.me.REG[0]) = fra.me.REG[2];
+  /* compiling/compiling_base.nit:27 */
+  fra.me.REG[2] = NIT_NULL;
+  ATTR_compiling___compiling_base___ToolContext____compdir(fra.me.REG[0]) = fra.me.REG[2];
+  /* compiling/compiling_base.nit:28 */
+  fra.me.REG[2] = NIT_NULL;
+  ATTR_compiling___compiling_base___ToolContext____clibdir(fra.me.REG[0]) = fra.me.REG[2];
+  /* compiling/compiling_base.nit:29 */
+  fra.me.REG[2] = NIT_NULL;
+  ATTR_compiling___compiling_base___ToolContext____bindir(fra.me.REG[0]) = fra.me.REG[2];
+  /* compiling/compiling_base.nit:30 */
+  fra.me.REG[2] = NIT_NULL;
+  ATTR_compiling___compiling_base___ToolContext____output_file(fra.me.REG[0]) = fra.me.REG[2];
+  /* compiling/compiling_base.nit:31 */
+  REGB0 = TAG_Bool(false);
+  ATTR_compiling___compiling_base___ToolContext____boost(fra.me.REG[0]) = REGB0;
+  /* compiling/compiling_base.nit:32 */
+  REGB0 = TAG_Bool(false);
+  ATTR_compiling___compiling_base___ToolContext____no_cc(fra.me.REG[0]) = REGB0;
+  /* compiling/compiling_base.nit:33 */
+  REGB0 = TAG_Bool(false);
+  ATTR_compiling___compiling_base___ToolContext____cc_link(fra.me.REG[0]) = REGB0;
+  /* compiling/compiling_base.nit:34 */
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_compiling___compiling_base___ToolContext____cc_libs(fra.me.REG[0]) = fra.me.REG[2];
+  /* compiling/compiling_base.nit:35 */
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_compiling___compiling_base___ToolContext____cc_lib_paths(fra.me.REG[0]) = fra.me.REG[2];
+  /* compiling/compiling_base.nit:36 */
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_compiling___compiling_base___ToolContext____cc_include_paths(fra.me.REG[0]) = fra.me.REG[2];
+  /* compiling/compiling_base.nit:37 */
+  if (!once_value_80) {
+    fra.me.REG[2] = BOX_NativeString("");
+    REGB0 = TAG_Int(0);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_80 = fra.me.REG[2];
+    register_static_object(&once_value_80);
+  } else fra.me.REG[2] = once_value_80;
+  fra.me.REG[2] = fra.me.REG[2];
+  ATTR_compiling___compiling_base___ToolContext____ext_prefix(fra.me.REG[0]) = fra.me.REG[2];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_nitc___NitCompiler(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 65);
+  obj->vft = (classtable_elt_t*)VFT_nitc___NitCompiler;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_nitc___NitCompiler(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_nitc___NitCompiler;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_output(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_output", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_boost(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_boost", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_no_cc(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_no_cc", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_cc_no_link(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_cc_no_link", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_clibdir(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_clibdir", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_bindir(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_bindir", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_compdir(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_compdir", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_extension_prefix(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_extension_prefix", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_output_format(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_output_format", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_abstracttool___AbstractCompiler____tool_name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_tool_name", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_keep_ast", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____paths(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_paths", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____loaders(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_loaders", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_path", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_only_metamodel", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_only_parse", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_error_count", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____warning_count(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_warning_count", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____log_directory(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_log_directory", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_messages", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____message_sorter(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_message_sorter", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____option_context(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_option_context", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_warn", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_quiet(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_quiet", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_log(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_log", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_log_dir(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_log_dir", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_help(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_help", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_version(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_version", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_verbose(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_verbose", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_stop_on_first_error(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_stop_on_first_error", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_no_color(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_no_color", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____verbose_level(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_verbose_level", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_module_hierarchy", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_class_hierarchy", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____global_classes(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_global_classes", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____modules(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_modules", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____global_callgraph(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_global_callgraph", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_global", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_no_STF_opt(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_global_no_STF_opt", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_no_DMR_opt(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_global_no_DMR_opt", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_no_inline_get_set(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_global_no_inline_get_set", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_no_out_of_init_get_test_opt(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_global_no_out_of_init_get_test_opt", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_no_RFIMA(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_global_no_RFIMA", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_callgraph(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_global_callgraph", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_program___ToolContext____global(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_global", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_program___ToolContext____use_SFT_optimization(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_use_SFT_optimization", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atseparate_options(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "@separate_options", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atopt_cc_lib_paths(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "@opt_cc_lib_paths", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atopt_cc_libs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "@opt_cc_libs", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atopt_cc_include_paths(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "@opt_cc_include_paths", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____boost(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_boost", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____no_cc(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_no_cc", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____cc_link(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_cc_link", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____cc_libs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_cc_libs", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____cc_lib_paths(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_cc_lib_paths", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____cc_include_paths(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_cc_include_paths", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____ext_prefix(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_ext_prefix", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_NitCompiler_nitc___NitCompiler___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 42;
+  fra.me.meth = LOCATE_NEW_NitCompiler_nitc___NitCompiler___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* nitc.nit:42 */
+  fra.me.REG[0] = NEW_nitc___NitCompiler();
+  INIT_ATTRIBUTES__nitc___NitCompiler(fra.me.REG[0]);
+  nitc___NitCompiler___init(fra.me.REG[0], init_table);
+  CHECKNEW_nitc___NitCompiler(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_toolcontext___ToolContext[141] = {
+  {(bigint) 319 /* 0: Identity */},
+  {(bigint) 55 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ToolContext" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ToolContext < Object: superclass typecheck marker */},
+  {(bigint) 183 /* 4: ToolContext < MMContext: superclass typecheck marker */},
+  {(bigint) 319 /* 5: ToolContext < ToolContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14957,7 +16059,7 @@ const classtable_elt_t VFT_nitc___NitCompiler[159] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: NitCompiler < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ToolContext < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -14973,6 +16075,8 @@ const classtable_elt_t VFT_nitc___NitCompiler[159] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -14987,7 +16091,7 @@ const classtable_elt_t VFT_nitc___NitCompiler[159] = {
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) syntax___mmbuilder___ToolContext___handle_property_conflict},
-  {(bigint) 2 /* 48: NitCompiler < MMContext: superclass init_table position */},
+  {(bigint) 0 /* 51: ToolContext < MMContext: superclass init_table position */},
   {(bigint) metamodel___abstractmetamodel___MMContext___init},
   {(bigint) metamodel___abstractmetamodel___MMContext___module_hierarchy},
   {(bigint) metamodel___abstractmetamodel___MMContext___class_hierarchy},
@@ -14995,62 +16099,65 @@ const classtable_elt_t VFT_nitc___NitCompiler[159] = {
   {(bigint) metamodel___abstractmetamodel___MMContext___add_module},
   {(bigint) metamodel___abstractmetamodel___MMContext___add_global_class},
   {(bigint) metamodel___abstractmetamodel___MMContext___add_local_class},
-  {(bigint) separate_options___ToolContext___separate_options},
-  {(bigint) separate_options___ToolContext___separate_options__eq},
-  {(bigint) separate_options___ToolContext___opt_cc_lib_paths},
-  {(bigint) separate_options___ToolContext___opt_cc_lib_paths__eq},
-  {(bigint) separate_options___ToolContext___opt_cc_libs},
-  {(bigint) separate_options___ToolContext___opt_cc_libs__eq},
-  {(bigint) separate_options___ToolContext___opt_cc_include_paths},
-  {(bigint) separate_options___ToolContext___opt_cc_include_paths__eq},
-  {(bigint) mmloader___ToolContext___init},
-  {(bigint) separate_options___ToolContext___integrate_separate_options},
-  {(bigint) analysis___ToolContext___global_callgraph},
-  {(bigint) analysis___ToolContext___global_callgraph__eq},
-  {(bigint) analysis___ToolContext___no_dead_method_removal},
-  {(bigint) analysis___ToolContext___no_dead_method_removal__eq},
-  {(bigint) analysis___ToolContext___no_inline_get_set},
-  {(bigint) analysis___ToolContext___no_inline_get_set__eq},
-  {(bigint) analysis___ToolContext___no_callgraph_from_init},
-  {(bigint) analysis___ToolContext___no_callgraph_from_init__eq},
-  {(bigint) analysis___ToolContext___no_out_of_init_get_test_removal},
-  {(bigint) analysis___ToolContext___no_out_of_init_get_test_removal__eq},
+  {(bigint) global___ToolContext___global_callgraph},
+  {(bigint) global___ToolContext___global_callgraph__eq},
+  {(bigint) global___ToolContext___opt_global},
+  {(bigint) global___ToolContext___opt_global_no_STF_opt},
+  {(bigint) global___ToolContext___opt_global_no_DMR_opt},
+  {(bigint) global___ToolContext___opt_global_no_inline_get_set},
+  {(bigint) global___ToolContext___opt_global_no_out_of_init_get_test_opt},
+  {(bigint) global___ToolContext___opt_global_no_RFIMA},
+  {(bigint) global___ToolContext___opt_global_callgraph},
+  {(bigint) separate_options___ToolContext___init},
   {(bigint) syntax___ToolContext___keep_ast},
   {(bigint) syntax___ToolContext___keep_ast__eq},
-  {(bigint) 1 /* 78: NitCompiler < ToolContext: superclass init_table position */},
-  {(bigint) mmloader___ToolContext___error_count},
-  {(bigint) mmloader___ToolContext___warning_count},
-  {(bigint) mmloader___ToolContext___log_directory},
-  {(bigint) mmloader___ToolContext___check_errors},
-  {(bigint) mmloader___ToolContext___error},
-  {(bigint) mmloader___ToolContext___fatal_error},
-  {(bigint) mmloader___ToolContext___warning},
-  {(bigint) mmloader___ToolContext___info},
   {(bigint) mmloader___ToolContext___paths},
-  {(bigint) mmloader___ToolContext___option_context},
-  {(bigint) mmloader___ToolContext___opt_warn},
   {(bigint) mmloader___ToolContext___opt_path},
-  {(bigint) mmloader___ToolContext___opt_log},
-  {(bigint) mmloader___ToolContext___opt_log_dir},
   {(bigint) mmloader___ToolContext___opt_only_metamodel},
   {(bigint) mmloader___ToolContext___opt_only_parse},
-  {(bigint) mmloader___ToolContext___opt_help},
-  {(bigint) mmloader___ToolContext___opt_version},
-  {(bigint) mmloader___ToolContext___opt_verbose},
-  {(bigint) mmloader___ToolContext___opt_stop_on_first_error},
-  {(bigint) mmloader___ToolContext___opt_no_color},
-  {(bigint) mmloader___ToolContext___verbose_level},
-  {(bigint) separate_options___ToolContext___init},
-  {(bigint) nitc___NitCompiler___process_options},
+  {(bigint) toolcontext___ToolContext___init},
+  {(bigint) toolcontext___ToolContext___process_options},
   {(bigint) mmloader___ToolContext___try_to_load},
   {(bigint) mmloader___ToolContext___get_module_from_filename},
   {(bigint) mmloader___ToolContext___get_module},
   {(bigint) mmloader___ToolContext___directory_for},
   {(bigint) mmloader___ToolContext___register_loader},
+  {(bigint) 2 /* 82: ToolContext < ToolContext: superclass init_table position */},
+  {(bigint) toolcontext___ToolContext___error_count},
+  {(bigint) toolcontext___ToolContext___warning_count},
+  {(bigint) toolcontext___ToolContext___log_directory},
+  {(bigint) toolcontext___ToolContext___check_errors},
+  {(bigint) toolcontext___ToolContext___error},
+  {(bigint) toolcontext___ToolContext___fatal_error},
+  {(bigint) toolcontext___ToolContext___warning},
+  {(bigint) toolcontext___ToolContext___info},
+  {(bigint) toolcontext___ToolContext___option_context},
+  {(bigint) toolcontext___ToolContext___opt_warn},
+  {(bigint) toolcontext___ToolContext___opt_quiet},
+  {(bigint) toolcontext___ToolContext___opt_log},
+  {(bigint) toolcontext___ToolContext___opt_log_dir},
+  {(bigint) toolcontext___ToolContext___opt_help},
+  {(bigint) toolcontext___ToolContext___opt_version},
+  {(bigint) toolcontext___ToolContext___opt_verbose},
+  {(bigint) toolcontext___ToolContext___opt_stop_on_first_error},
+  {(bigint) toolcontext___ToolContext___opt_no_color},
+  {(bigint) toolcontext___ToolContext___verbose_level},
+  {(bigint) nitc___ToolContext___init},
+  {(bigint) mmloader___ToolContext___process_options},
   {(bigint) program___ToolContext___global},
   {(bigint) program___ToolContext___global__eq},
   {(bigint) program___ToolContext___use_SFT_optimization__eq},
   {(bigint) program___ToolContext___use_SFT_optimization},
+  {(bigint) separate_options___ToolContext___separate_options},
+  {(bigint) separate_options___ToolContext___separate_options__eq},
+  {(bigint) separate_options___ToolContext___opt_cc_lib_paths},
+  {(bigint) separate_options___ToolContext___opt_cc_lib_paths__eq},
+  {(bigint) separate_options___ToolContext___opt_cc_libs},
+  {(bigint) separate_options___ToolContext___opt_cc_libs__eq},
+  {(bigint) separate_options___ToolContext___opt_cc_include_paths},
+  {(bigint) separate_options___ToolContext___opt_cc_include_paths__eq},
+  {(bigint) mmloader___ToolContext___init},
+  {(bigint) separate_options___ToolContext___integrate_separate_options},
   {(bigint) compiling___compiling_base___ToolContext___compdir},
   {(bigint) compiling___compiling_base___ToolContext___compdir__eq},
   {(bigint) compiling___compiling_base___ToolContext___clibdir},
@@ -15073,101 +16180,64 @@ const classtable_elt_t VFT_nitc___NitCompiler[159] = {
   {(bigint) compiling___compiling_base___ToolContext___cc_include_paths__eq},
   {(bigint) compiling___compiling_base___ToolContext___ext_prefix},
   {(bigint) compiling___compiling_base___ToolContext___ext_prefix__eq},
-  {(bigint) 0 /* 134: NitCompiler < AbstractCompiler: superclass init_table position */},
-  {(bigint) abstracttool___AbstractCompiler___init},
-  {(bigint) abstracttool___AbstractCompiler___tool_name},
-  {(bigint) abstracttool___AbstractCompiler___exec_cmd_line},
-  {(bigint) nitc___NitCompiler___perform_work},
-  {(bigint) abstracttool___AbstractCompiler___dump_context_info},
-  {(bigint) 4 /* 140: NitCompiler < NitCompiler: superclass init_table position */},
-  {(bigint) nitc___NitCompiler___opt_output},
-  {(bigint) nitc___NitCompiler___opt_boost},
-  {(bigint) nitc___NitCompiler___opt_no_cc},
-  {(bigint) nitc___NitCompiler___opt_cc_no_link},
-  {(bigint) nitc___NitCompiler___opt_global},
-  {(bigint) nitc___NitCompiler___opt_global_no_STF_opt},
-  {(bigint) nitc___NitCompiler___opt_global_no_DMR_opt},
-  {(bigint) nitc___NitCompiler___opt_global_no_inline_get_set},
-  {(bigint) nitc___NitCompiler___opt_global_no_out_of_init_get_test_opt},
-  {(bigint) nitc___NitCompiler___opt_global_no_RFIMA},
-  {(bigint) nitc___NitCompiler___opt_global_callgraph},
-  {(bigint) nitc___NitCompiler___opt_clibdir},
-  {(bigint) nitc___NitCompiler___opt_bindir},
-  {(bigint) nitc___NitCompiler___opt_compdir},
-  {(bigint) nitc___NitCompiler___opt_extension_prefix},
-  {(bigint) nitc___NitCompiler___opt_output_format},
-  {(bigint) nitc___NitCompiler___init},
-  {(bigint) mmloader___ToolContext___process_options},
+  {(bigint) global___ToolContext___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute NitCompiler::_module_hierarchy */
-/* 3: Attribute NitCompiler::_class_hierarchy */
-/* 4: Attribute NitCompiler::_global_classes */
-/* 5: Attribute NitCompiler::_modules */
-/* 6: Attribute NitCompiler::@separate_options */
-/* 7: Attribute NitCompiler::@opt_cc_lib_paths */
-/* 8: Attribute NitCompiler::@opt_cc_libs */
-/* 9: Attribute NitCompiler::@opt_cc_include_paths */
-/* 10: Attribute NitCompiler::_global_callgraph */
-/* 11: Attribute NitCompiler::_no_dead_method_removal */
-/* 12: Attribute NitCompiler::_no_inline_get_set */
-/* 13: Attribute NitCompiler::_no_callgraph_from_init */
-/* 14: Attribute NitCompiler::_no_out_of_init_get_test_removal */
-/* 15: Attribute NitCompiler::_keep_ast */
-/* 16: Attribute NitCompiler::_error_count */
-/* 17: Attribute NitCompiler::_warning_count */
-/* 18: Attribute NitCompiler::_log_directory */
-/* 19: Attribute NitCompiler::_messages */
-/* 20: Attribute NitCompiler::_message_sorter */
-/* 21: Attribute NitCompiler::_paths */
-/* 22: Attribute NitCompiler::_loaders */
-/* 23: Attribute NitCompiler::_option_context */
-/* 24: Attribute NitCompiler::_opt_warn */
-/* 25: Attribute NitCompiler::_opt_path */
-/* 26: Attribute NitCompiler::_opt_log */
-/* 27: Attribute NitCompiler::_opt_log_dir */
-/* 28: Attribute NitCompiler::_opt_only_metamodel */
-/* 29: Attribute NitCompiler::_opt_only_parse */
-/* 30: Attribute NitCompiler::_opt_help */
-/* 31: Attribute NitCompiler::_opt_version */
-/* 32: Attribute NitCompiler::_opt_verbose */
-/* 33: Attribute NitCompiler::_opt_stop_on_first_error */
-/* 34: Attribute NitCompiler::_opt_no_color */
-/* 35: Attribute NitCompiler::_verbose_level */
-/* 36: Attribute NitCompiler::_processing_modules */
-/* 37: Attribute NitCompiler::_path_dirs */
-/* 38: Attribute NitCompiler::_global */
-/* 39: Attribute NitCompiler::_use_SFT_optimization */
-/* 40: Attribute NitCompiler::_compdir */
-/* 41: Attribute NitCompiler::_clibdir */
-/* 42: Attribute NitCompiler::_bindir */
-/* 43: Attribute NitCompiler::_output_file */
-/* 44: Attribute NitCompiler::_boost */
-/* 45: Attribute NitCompiler::_no_cc */
-/* 46: Attribute NitCompiler::_cc_link */
-/* 47: Attribute NitCompiler::_cc_libs */
-/* 48: Attribute NitCompiler::_cc_lib_paths */
-/* 49: Attribute NitCompiler::_cc_include_paths */
-/* 50: Attribute NitCompiler::_ext_prefix */
-/* 51: Attribute NitCompiler::_tool_name */
-/* 52: Attribute NitCompiler::_opt_output */
-/* 53: Attribute NitCompiler::_opt_boost */
-/* 54: Attribute NitCompiler::_opt_no_cc */
-/* 55: Attribute NitCompiler::_opt_cc_no_link */
-/* 56: Attribute NitCompiler::_opt_global */
-/* 57: Attribute NitCompiler::_opt_global_no_STF_opt */
-/* 58: Attribute NitCompiler::_opt_global_no_DMR_opt */
-/* 59: Attribute NitCompiler::_opt_global_no_inline_get_set */
-/* 60: Attribute NitCompiler::_opt_global_no_out_of_init_get_test_opt */
-/* 61: Attribute NitCompiler::_opt_global_no_RFIMA */
-/* 62: Attribute NitCompiler::_opt_global_callgraph */
-/* 63: Attribute NitCompiler::_opt_clibdir */
-/* 64: Attribute NitCompiler::_opt_bindir */
-/* 65: Attribute NitCompiler::_opt_compdir */
-/* 66: Attribute NitCompiler::_opt_extension_prefix */
-/* 67: Attribute NitCompiler::_opt_output_format */
-void INIT_ATTRIBUTES__nitc___NitCompiler(val_t p0){
+/* 2: Attribute ToolContext::_module_hierarchy */
+/* 3: Attribute ToolContext::_class_hierarchy */
+/* 4: Attribute ToolContext::_global_classes */
+/* 5: Attribute ToolContext::_modules */
+/* 6: Attribute ToolContext::_global_callgraph */
+/* 7: Attribute ToolContext::_opt_global */
+/* 8: Attribute ToolContext::_opt_global_no_STF_opt */
+/* 9: Attribute ToolContext::_opt_global_no_DMR_opt */
+/* 10: Attribute ToolContext::_opt_global_no_inline_get_set */
+/* 11: Attribute ToolContext::_opt_global_no_out_of_init_get_test_opt */
+/* 12: Attribute ToolContext::_opt_global_no_RFIMA */
+/* 13: Attribute ToolContext::_opt_global_callgraph */
+/* 14: Attribute ToolContext::_keep_ast */
+/* 15: Attribute ToolContext::_paths */
+/* 16: Attribute ToolContext::_loaders */
+/* 17: Attribute ToolContext::_opt_path */
+/* 18: Attribute ToolContext::_opt_only_metamodel */
+/* 19: Attribute ToolContext::_opt_only_parse */
+/* 20: Attribute ToolContext::_processing_modules */
+/* 21: Attribute ToolContext::_path_dirs */
+/* 22: Attribute ToolContext::_error_count */
+/* 23: Attribute ToolContext::_warning_count */
+/* 24: Attribute ToolContext::_log_directory */
+/* 25: Attribute ToolContext::_messages */
+/* 26: Attribute ToolContext::_message_sorter */
+/* 27: Attribute ToolContext::_option_context */
+/* 28: Attribute ToolContext::_opt_warn */
+/* 29: Attribute ToolContext::_opt_quiet */
+/* 30: Attribute ToolContext::_opt_log */
+/* 31: Attribute ToolContext::_opt_log_dir */
+/* 32: Attribute ToolContext::_opt_help */
+/* 33: Attribute ToolContext::_opt_version */
+/* 34: Attribute ToolContext::_opt_verbose */
+/* 35: Attribute ToolContext::_opt_stop_on_first_error */
+/* 36: Attribute ToolContext::_opt_no_color */
+/* 37: Attribute ToolContext::_verbose_level */
+/* 38: Attribute ToolContext::_global */
+/* 39: Attribute ToolContext::_use_SFT_optimization */
+/* 40: Attribute ToolContext::@separate_options */
+/* 41: Attribute ToolContext::@opt_cc_lib_paths */
+/* 42: Attribute ToolContext::@opt_cc_libs */
+/* 43: Attribute ToolContext::@opt_cc_include_paths */
+/* 44: Attribute ToolContext::_compdir */
+/* 45: Attribute ToolContext::_clibdir */
+/* 46: Attribute ToolContext::_bindir */
+/* 47: Attribute ToolContext::_output_file */
+/* 48: Attribute ToolContext::_boost */
+/* 49: Attribute ToolContext::_no_cc */
+/* 50: Attribute ToolContext::_cc_link */
+/* 51: Attribute ToolContext::_cc_libs */
+/* 52: Attribute ToolContext::_cc_lib_paths */
+/* 53: Attribute ToolContext::_cc_include_paths */
+/* 54: Attribute ToolContext::_ext_prefix */
+void INIT_ATTRIBUTES__toolcontext___ToolContext(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
@@ -15228,31 +16298,10 @@ void INIT_ATTRIBUTES__nitc___NitCompiler(val_t p0){
   static val_t once_value_54; /* Once value */
   static val_t once_value_55; /* Once value */
   static val_t once_value_56; /* Once value */
-  static val_t once_value_57; /* Once value */
-  static val_t once_value_58; /* Once value */
-  static val_t once_value_59; /* Once value */
-  static val_t once_value_60; /* Once value */
-  static val_t once_value_61; /* Once value */
-  static val_t once_value_62; /* Once value */
-  static val_t once_value_63; /* Once value */
-  static val_t once_value_64; /* Once value */
-  static val_t once_value_65; /* Once value */
-  static val_t once_value_66; /* Once value */
-  static val_t once_value_67; /* Once value */
-  static val_t once_value_68; /* Once value */
-  static val_t once_value_69; /* Once value */
-  static val_t once_value_70; /* Once value */
-  static val_t once_value_71; /* Once value */
-  static val_t once_value_72; /* Once value */
-  static val_t once_value_73; /* Once value */
-  static val_t once_value_74; /* Once value */
-  static val_t once_value_75; /* Once value */
-  static val_t once_value_76; /* Once value */
-  static val_t once_value_77; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__nitc___NitCompiler;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__toolcontext___ToolContext;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -15262,1148 +16311,872 @@ void INIT_ATTRIBUTES__nitc___NitCompiler(val_t p0){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./nitc.nit:31 */
+  /* global/global.nit:44 */
   if (!once_value_1) {
-    fra.me.REG[1] = BOX_NativeString("Output file");
-    REGB0 = TAG_Int(11);
+    fra.me.REG[1] = BOX_NativeString("rta");
+    REGB0 = TAG_Int(3);
     fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
     once_value_1 = fra.me.REG[1];
     register_static_object(&once_value_1);
   } else fra.me.REG[1] = once_value_1;
   fra.me.REG[1] = fra.me.REG[1];
-  REGB0 = TAG_Int(1);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  ATTR_global___ToolContext____global_callgraph(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/global.nit:46 */
   if (!once_value_2) {
-    fra.me.REG[3] = BOX_NativeString("-o");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_2 = fra.me.REG[3];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[3] = once_value_2;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  if (!once_value_3) {
-    fra.me.REG[3] = BOX_NativeString("--output");
-    REGB0 = TAG_Int(8);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_3 = fra.me.REG[3];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[3] = once_value_3;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionString_opts___OptionString___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_nitc___NitCompiler____opt_output(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./nitc.nit:32 */
-  if (!once_value_4) {
-    fra.me.REG[2] = BOX_NativeString("Optimize compilation");
-    REGB0 = TAG_Int(20);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_4 = fra.me.REG[2];
-    register_static_object(&once_value_4);
-  } else fra.me.REG[2] = once_value_4;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(1);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_5) {
-    fra.me.REG[3] = BOX_NativeString("-O");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_5 = fra.me.REG[3];
-    register_static_object(&once_value_5);
-  } else fra.me.REG[3] = once_value_5;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  if (!once_value_6) {
-    fra.me.REG[3] = BOX_NativeString("--boost");
-    REGB0 = TAG_Int(7);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_6 = fra.me.REG[3];
-    register_static_object(&once_value_6);
-  } else fra.me.REG[3] = once_value_6;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_nitc___NitCompiler____opt_boost(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./nitc.nit:33 */
-  if (!once_value_7) {
-    fra.me.REG[1] = BOX_NativeString("Do not invoke C compiler");
-    REGB0 = TAG_Int(24);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_7 = fra.me.REG[1];
-    register_static_object(&once_value_7);
-  } else fra.me.REG[1] = once_value_7;
-  fra.me.REG[1] = fra.me.REG[1];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_8) {
-    fra.me.REG[3] = BOX_NativeString("--no-cc");
-    REGB0 = TAG_Int(7);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_8 = fra.me.REG[3];
-    register_static_object(&once_value_8);
-  } else fra.me.REG[3] = once_value_8;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_nitc___NitCompiler____opt_no_cc(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./nitc.nit:34 */
-  if (!once_value_9) {
-    fra.me.REG[2] = BOX_NativeString("Do not invoke C linker");
-    REGB0 = TAG_Int(22);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_9 = fra.me.REG[2];
-    register_static_object(&once_value_9);
-  } else fra.me.REG[2] = once_value_9;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_10) {
-    fra.me.REG[3] = BOX_NativeString("--cc-no-link");
-    REGB0 = TAG_Int(12);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_10 = fra.me.REG[3];
-    register_static_object(&once_value_10);
-  } else fra.me.REG[3] = once_value_10;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_nitc___NitCompiler____opt_cc_no_link(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./nitc.nit:35 */
-  if (!once_value_11) {
     fra.me.REG[1] = BOX_NativeString("Use global compilation");
     REGB0 = TAG_Int(22);
     fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_11 = fra.me.REG[1];
-    register_static_object(&once_value_11);
-  } else fra.me.REG[1] = once_value_11;
+    once_value_2 = fra.me.REG[1];
+    register_static_object(&once_value_2);
+  } else fra.me.REG[1] = once_value_2;
   fra.me.REG[1] = fra.me.REG[1];
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_12) {
+  if (!once_value_3) {
     fra.me.REG[3] = BOX_NativeString("--global");
     REGB0 = TAG_Int(8);
     fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_12 = fra.me.REG[3];
-    register_static_object(&once_value_12);
-  } else fra.me.REG[3] = once_value_12;
+    once_value_3 = fra.me.REG[3];
+    register_static_object(&once_value_3);
+  } else fra.me.REG[3] = once_value_3;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_nitc___NitCompiler____opt_global(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./nitc.nit:36 */
-  if (!once_value_13) {
+  ATTR_global___ToolContext____opt_global(fra.me.REG[0]) = fra.me.REG[2];
+  /* global/global.nit:47 */
+  if (!once_value_4) {
     fra.me.REG[2] = BOX_NativeString("Do not use SFT optimization");
     REGB0 = TAG_Int(27);
     fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_13 = fra.me.REG[2];
-    register_static_object(&once_value_13);
-  } else fra.me.REG[2] = once_value_13;
+    once_value_4 = fra.me.REG[2];
+    register_static_object(&once_value_4);
+  } else fra.me.REG[2] = once_value_4;
   fra.me.REG[2] = fra.me.REG[2];
   REGB0 = TAG_Int(0);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_14) {
+  if (!once_value_5) {
     fra.me.REG[3] = BOX_NativeString("--no-global-SFT-optimization");
     REGB0 = TAG_Int(28);
     fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_14 = fra.me.REG[3];
-    register_static_object(&once_value_14);
-  } else fra.me.REG[3] = once_value_14;
+    once_value_5 = fra.me.REG[3];
+    register_static_object(&once_value_5);
+  } else fra.me.REG[3] = once_value_5;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_nitc___NitCompiler____opt_global_no_STF_opt(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./nitc.nit:37 */
-  if (!once_value_15) {
+  ATTR_global___ToolContext____opt_global_no_STF_opt(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/global.nit:48 */
+  if (!once_value_6) {
     fra.me.REG[1] = BOX_NativeString("Do not use dead method removal optimization");
     REGB0 = TAG_Int(43);
     fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_15 = fra.me.REG[1];
-    register_static_object(&once_value_15);
-  } else fra.me.REG[1] = once_value_15;
+    once_value_6 = fra.me.REG[1];
+    register_static_object(&once_value_6);
+  } else fra.me.REG[1] = once_value_6;
   fra.me.REG[1] = fra.me.REG[1];
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_16) {
+  if (!once_value_7) {
     fra.me.REG[3] = BOX_NativeString("--no-global-DMR-optimization");
     REGB0 = TAG_Int(28);
     fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_16 = fra.me.REG[3];
-    register_static_object(&once_value_16);
-  } else fra.me.REG[3] = once_value_16;
+    once_value_7 = fra.me.REG[3];
+    register_static_object(&once_value_7);
+  } else fra.me.REG[3] = once_value_7;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_nitc___NitCompiler____opt_global_no_DMR_opt(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./nitc.nit:38 */
-  if (!once_value_17) {
+  ATTR_global___ToolContext____opt_global_no_DMR_opt(fra.me.REG[0]) = fra.me.REG[2];
+  /* global/global.nit:49 */
+  if (!once_value_8) {
     fra.me.REG[2] = BOX_NativeString("Do not automatically inline getters/setters");
     REGB0 = TAG_Int(43);
     fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_17 = fra.me.REG[2];
-    register_static_object(&once_value_17);
-  } else fra.me.REG[2] = once_value_17;
+    once_value_8 = fra.me.REG[2];
+    register_static_object(&once_value_8);
+  } else fra.me.REG[2] = once_value_8;
   fra.me.REG[2] = fra.me.REG[2];
   REGB0 = TAG_Int(0);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_18) {
+  if (!once_value_9) {
     fra.me.REG[3] = BOX_NativeString("--no-global-get-set-inlining");
     REGB0 = TAG_Int(28);
     fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_18 = fra.me.REG[3];
-    register_static_object(&once_value_18);
-  } else fra.me.REG[3] = once_value_18;
+    once_value_9 = fra.me.REG[3];
+    register_static_object(&once_value_9);
+  } else fra.me.REG[3] = once_value_9;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_nitc___NitCompiler____opt_global_no_inline_get_set(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./nitc.nit:39 */
-  if (!once_value_19) {
+  ATTR_global___ToolContext____opt_global_no_inline_get_set(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/global.nit:50 */
+  if (!once_value_10) {
     fra.me.REG[1] = BOX_NativeString("Do not remove get tests outside object initialization");
     REGB0 = TAG_Int(53);
     fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_19 = fra.me.REG[1];
-    register_static_object(&once_value_19);
-  } else fra.me.REG[1] = once_value_19;
+    once_value_10 = fra.me.REG[1];
+    register_static_object(&once_value_10);
+  } else fra.me.REG[1] = once_value_10;
   fra.me.REG[1] = fra.me.REG[1];
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_20) {
+  if (!once_value_11) {
     fra.me.REG[3] = BOX_NativeString("--no-global-OOIT-optimization");
     REGB0 = TAG_Int(29);
     fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_20 = fra.me.REG[3];
-    register_static_object(&once_value_20);
-  } else fra.me.REG[3] = once_value_20;
+    once_value_11 = fra.me.REG[3];
+    register_static_object(&once_value_11);
+  } else fra.me.REG[3] = once_value_11;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_nitc___NitCompiler____opt_global_no_out_of_init_get_test_opt(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./nitc.nit:40 */
-  if (!once_value_21) {
+  ATTR_global___ToolContext____opt_global_no_out_of_init_get_test_opt(fra.me.REG[0]) = fra.me.REG[2];
+  /* global/global.nit:51 */
+  if (!once_value_12) {
     fra.me.REG[2] = BOX_NativeString("Do not use a specialized algorithm to find reachable methods from initializers");
     REGB0 = TAG_Int(78);
     fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_21 = fra.me.REG[2];
-    register_static_object(&once_value_21);
-  } else fra.me.REG[2] = once_value_21;
+    once_value_12 = fra.me.REG[2];
+    register_static_object(&once_value_12);
+  } else fra.me.REG[2] = once_value_12;
   fra.me.REG[2] = fra.me.REG[2];
   REGB0 = TAG_Int(0);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_22) {
+  if (!once_value_13) {
     fra.me.REG[3] = BOX_NativeString("--no-global-RFIM-analysis");
     REGB0 = TAG_Int(25);
     fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_22 = fra.me.REG[3];
-    register_static_object(&once_value_22);
-  } else fra.me.REG[3] = once_value_22;
+    once_value_13 = fra.me.REG[3];
+    register_static_object(&once_value_13);
+  } else fra.me.REG[3] = once_value_13;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_nitc___NitCompiler____opt_global_no_RFIMA(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./nitc.nit:41 */
+  ATTR_global___ToolContext____opt_global_no_RFIMA(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/global.nit:52 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_23) {
+  if (!once_value_14) {
     fra.me.REG[2] = BOX_NativeString("none");
     REGB0 = TAG_Int(4);
     fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_23 = fra.me.REG[2];
-    register_static_object(&once_value_23);
-  } else fra.me.REG[2] = once_value_23;
+    once_value_14 = fra.me.REG[2];
+    register_static_object(&once_value_14);
+  } else fra.me.REG[2] = once_value_14;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  if (!once_value_24) {
+  if (!once_value_15) {
     fra.me.REG[2] = BOX_NativeString("cha");
     REGB0 = TAG_Int(3);
     fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_24 = fra.me.REG[2];
-    register_static_object(&once_value_24);
-  } else fra.me.REG[2] = once_value_24;
+    once_value_15 = fra.me.REG[2];
+    register_static_object(&once_value_15);
+  } else fra.me.REG[2] = once_value_15;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  if (!once_value_25) {
+  if (!once_value_16) {
     fra.me.REG[2] = BOX_NativeString("rta");
     REGB0 = TAG_Int(3);
     fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_25 = fra.me.REG[2];
-    register_static_object(&once_value_25);
-  } else fra.me.REG[2] = once_value_25;
+    once_value_16 = fra.me.REG[2];
+    register_static_object(&once_value_16);
+  } else fra.me.REG[2] = once_value_16;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  if (!once_value_26) {
+  if (!once_value_17) {
     fra.me.REG[2] = BOX_NativeString("The algorithm to use to build the callgraph");
     REGB0 = TAG_Int(43);
     fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_26 = fra.me.REG[2];
-    register_static_object(&once_value_26);
-  } else fra.me.REG[2] = once_value_26;
+    once_value_17 = fra.me.REG[2];
+    register_static_object(&once_value_17);
+  } else fra.me.REG[2] = once_value_17;
   fra.me.REG[2] = fra.me.REG[2];
   REGB0 = TAG_Int(2);
   REGB1 = TAG_Int(0);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-  if (!once_value_27) {
+  if (!once_value_18) {
     fra.me.REG[4] = BOX_NativeString("--global-callgraph");
     REGB1 = TAG_Int(18);
     fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
-    once_value_27 = fra.me.REG[4];
-    register_static_object(&once_value_27);
-  } else fra.me.REG[4] = once_value_27;
+    once_value_18 = fra.me.REG[4];
+    register_static_object(&once_value_18);
+  } else fra.me.REG[4] = once_value_18;
   fra.me.REG[4] = fra.me.REG[4];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = NEW_OptionEnum_opts___OptionEnum___init(fra.me.REG[1], fra.me.REG[2], REGB0, fra.me.REG[3]);
-  ATTR_nitc___NitCompiler____opt_global_callgraph(fra.me.REG[0]) = fra.me.REG[3];
-  /* ./nitc.nit:42 */
-  if (!once_value_28) {
-    fra.me.REG[3] = BOX_NativeString("NIT C library directory");
-    REGB0 = TAG_Int(23);
+  ATTR_global___ToolContext____opt_global_callgraph(fra.me.REG[0]) = fra.me.REG[3];
+  /* syntax/syntax.nit:98 */
+  REGB0 = TAG_Bool(false);
+  ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0]) = REGB0;
+  /* mmloader.nit:30 */
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_mmloader___ToolContext____paths(fra.me.REG[0]) = fra.me.REG[3];
+  /* mmloader.nit:33 */
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_mmloader___ToolContext____loaders(fra.me.REG[0]) = fra.me.REG[3];
+  /* mmloader.nit:36 */
+  if (!once_value_19) {
+    fra.me.REG[3] = BOX_NativeString("Set include path for loaders (may be used more than once)");
+    REGB0 = TAG_Int(57);
     fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_28 = fra.me.REG[3];
-    register_static_object(&once_value_28);
-  } else fra.me.REG[3] = once_value_28;
+    once_value_19 = fra.me.REG[3];
+    register_static_object(&once_value_19);
+  } else fra.me.REG[3] = once_value_19;
   fra.me.REG[3] = fra.me.REG[3];
-  REGB0 = TAG_Int(0);
+  REGB0 = TAG_Int(1);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_29) {
-    fra.me.REG[1] = BOX_NativeString("--clibdir");
-    REGB0 = TAG_Int(9);
+  if (!once_value_20) {
+    fra.me.REG[1] = BOX_NativeString("-I");
+    REGB0 = TAG_Int(2);
     fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_29 = fra.me.REG[1];
-    register_static_object(&once_value_29);
-  } else fra.me.REG[1] = once_value_29;
+    once_value_20 = fra.me.REG[1];
+    register_static_object(&once_value_20);
+  } else fra.me.REG[1] = once_value_20;
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  fra.me.REG[2] = NEW_OptionString_opts___OptionString___init(fra.me.REG[3], fra.me.REG[2]);
-  ATTR_nitc___NitCompiler____opt_clibdir(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./nitc.nit:43 */
-  if (!once_value_30) {
-    fra.me.REG[2] = BOX_NativeString("NIT tools directory");
-    REGB0 = TAG_Int(19);
+  if (!once_value_21) {
+    fra.me.REG[1] = BOX_NativeString("--path");
+    REGB0 = TAG_Int(6);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_21 = fra.me.REG[1];
+    register_static_object(&once_value_21);
+  } else fra.me.REG[1] = once_value_21;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  fra.me.REG[2] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[3], fra.me.REG[2]);
+  ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0]) = fra.me.REG[2];
+  /* mmloader.nit:39 */
+  if (!once_value_22) {
+    fra.me.REG[2] = BOX_NativeString("Stop after meta-model processing");
+    REGB0 = TAG_Int(32);
     fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_30 = fra.me.REG[2];
-    register_static_object(&once_value_30);
-  } else fra.me.REG[2] = once_value_30;
+    once_value_22 = fra.me.REG[2];
+    register_static_object(&once_value_22);
+  } else fra.me.REG[2] = once_value_22;
   fra.me.REG[2] = fra.me.REG[2];
   REGB0 = TAG_Int(0);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_31) {
-    fra.me.REG[1] = BOX_NativeString("--bindir");
-    REGB0 = TAG_Int(8);
+  if (!once_value_23) {
+    fra.me.REG[1] = BOX_NativeString("--only-metamodel");
+    REGB0 = TAG_Int(16);
     fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_31 = fra.me.REG[1];
-    register_static_object(&once_value_31);
-  } else fra.me.REG[1] = once_value_31;
+    once_value_23 = fra.me.REG[1];
+    register_static_object(&once_value_23);
+  } else fra.me.REG[1] = once_value_23;
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-  fra.me.REG[3] = NEW_OptionString_opts___OptionString___init(fra.me.REG[2], fra.me.REG[3]);
-  ATTR_nitc___NitCompiler____opt_bindir(fra.me.REG[0]) = fra.me.REG[3];
-  /* ./nitc.nit:44 */
-  if (!once_value_32) {
-    fra.me.REG[3] = BOX_NativeString("Intermediate compilation directory");
-    REGB0 = TAG_Int(34);
+  fra.me.REG[3] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[3]);
+  ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0]) = fra.me.REG[3];
+  /* mmloader.nit:42 */
+  if (!once_value_24) {
+    fra.me.REG[3] = BOX_NativeString("Only proceed to parse step of loaders");
+    REGB0 = TAG_Int(37);
     fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_32 = fra.me.REG[3];
-    register_static_object(&once_value_32);
-  } else fra.me.REG[3] = once_value_32;
+    once_value_24 = fra.me.REG[3];
+    register_static_object(&once_value_24);
+  } else fra.me.REG[3] = once_value_24;
   fra.me.REG[3] = fra.me.REG[3];
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_33) {
-    fra.me.REG[1] = BOX_NativeString("--compdir");
-    REGB0 = TAG_Int(9);
+  if (!once_value_25) {
+    fra.me.REG[1] = BOX_NativeString("--only-parse");
+    REGB0 = TAG_Int(12);
     fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_33 = fra.me.REG[1];
-    register_static_object(&once_value_33);
-  } else fra.me.REG[1] = once_value_33;
+    once_value_25 = fra.me.REG[1];
+    register_static_object(&once_value_25);
+  } else fra.me.REG[1] = once_value_25;
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  fra.me.REG[2] = NEW_OptionString_opts___OptionString___init(fra.me.REG[3], fra.me.REG[2]);
-  ATTR_nitc___NitCompiler____opt_compdir(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./nitc.nit:45 */
-  if (!once_value_34) {
-    fra.me.REG[2] = BOX_NativeString("Append prefix to file extension");
-    REGB0 = TAG_Int(31);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[3], fra.me.REG[2]);
+  ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0]) = fra.me.REG[2];
+  /* mmloader.nit:115 */
+  fra.me.REG[2] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
+  ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0]) = fra.me.REG[2];
+  /* mmloader.nit:182 */
+  fra.me.REG[2] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
+  ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0]) = fra.me.REG[2];
+  /* toolcontext.nit:72 */
+  REGB0 = TAG_Int(0);
+  ATTR_toolcontext___ToolContext____error_count(fra.me.REG[0]) = REGB0;
+  /* toolcontext.nit:75 */
+  REGB0 = TAG_Int(0);
+  ATTR_toolcontext___ToolContext____warning_count(fra.me.REG[0]) = REGB0;
+  /* toolcontext.nit:78 */
+  if (!once_value_26) {
+    fra.me.REG[2] = BOX_NativeString("logs");
+    REGB0 = TAG_Int(4);
     fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_34 = fra.me.REG[2];
-    register_static_object(&once_value_34);
-  } else fra.me.REG[2] = once_value_34;
+    once_value_26 = fra.me.REG[2];
+    register_static_object(&once_value_26);
+  } else fra.me.REG[2] = once_value_26;
+  fra.me.REG[2] = fra.me.REG[2];
+  ATTR_toolcontext___ToolContext____log_directory(fra.me.REG[0]) = fra.me.REG[2];
+  /* toolcontext.nit:81 */
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_toolcontext___ToolContext____messages(fra.me.REG[0]) = fra.me.REG[2];
+  /* toolcontext.nit:82 */
+  fra.me.REG[2] = NEW_ComparableSorter_standard___collection___sorter___ComparableSorter___init();
+  ATTR_toolcontext___ToolContext____message_sorter(fra.me.REG[0]) = fra.me.REG[2];
+  /* toolcontext.nit:136 */
+  fra.me.REG[2] = NEW_OptionContext_opts___OptionContext___init();
+  ATTR_toolcontext___ToolContext____option_context(fra.me.REG[0]) = fra.me.REG[2];
+  /* toolcontext.nit:139 */
+  if (!once_value_27) {
+    fra.me.REG[2] = BOX_NativeString("Show warnings");
+    REGB0 = TAG_Int(13);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_27 = fra.me.REG[2];
+    register_static_object(&once_value_27);
+  } else fra.me.REG[2] = once_value_27;
   fra.me.REG[2] = fra.me.REG[2];
   REGB0 = TAG_Int(1);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_35) {
-    fra.me.REG[1] = BOX_NativeString("-p");
+  if (!once_value_28) {
+    fra.me.REG[1] = BOX_NativeString("-W");
     REGB0 = TAG_Int(2);
     fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_35 = fra.me.REG[1];
-    register_static_object(&once_value_35);
-  } else fra.me.REG[1] = once_value_35;
+    once_value_28 = fra.me.REG[1];
+    register_static_object(&once_value_28);
+  } else fra.me.REG[1] = once_value_28;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  if (!once_value_29) {
+    fra.me.REG[1] = BOX_NativeString("--warn");
+    REGB0 = TAG_Int(6);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_29 = fra.me.REG[1];
+    register_static_object(&once_value_29);
+  } else fra.me.REG[1] = once_value_29;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  fra.me.REG[3] = NEW_OptionCount_opts___OptionCount___init(fra.me.REG[2], fra.me.REG[3]);
+  ATTR_toolcontext___ToolContext____opt_warn(fra.me.REG[0]) = fra.me.REG[3];
+  /* toolcontext.nit:142 */
+  if (!once_value_30) {
+    fra.me.REG[3] = BOX_NativeString("Do not show warnings");
+    REGB0 = TAG_Int(20);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_30 = fra.me.REG[3];
+    register_static_object(&once_value_30);
+  } else fra.me.REG[3] = once_value_30;
+  fra.me.REG[3] = fra.me.REG[3];
+  REGB0 = TAG_Int(1);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_31) {
+    fra.me.REG[1] = BOX_NativeString("-q");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_31 = fra.me.REG[1];
+    register_static_object(&once_value_31);
+  } else fra.me.REG[1] = once_value_31;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  if (!once_value_32) {
+    fra.me.REG[1] = BOX_NativeString("--quiet");
+    REGB0 = TAG_Int(7);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_32 = fra.me.REG[1];
+    register_static_object(&once_value_32);
+  } else fra.me.REG[1] = once_value_32;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[3], fra.me.REG[2]);
+  ATTR_toolcontext___ToolContext____opt_quiet(fra.me.REG[0]) = fra.me.REG[2];
+  /* toolcontext.nit:145 */
+  if (!once_value_33) {
+    fra.me.REG[2] = BOX_NativeString("Generate various log files");
+    REGB0 = TAG_Int(26);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_33 = fra.me.REG[2];
+    register_static_object(&once_value_33);
+  } else fra.me.REG[2] = once_value_33;
+  fra.me.REG[2] = fra.me.REG[2];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_34) {
+    fra.me.REG[1] = BOX_NativeString("--log");
+    REGB0 = TAG_Int(5);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_34 = fra.me.REG[1];
+    register_static_object(&once_value_34);
+  } else fra.me.REG[1] = once_value_34;
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  fra.me.REG[3] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[3]);
+  ATTR_toolcontext___ToolContext____opt_log(fra.me.REG[0]) = fra.me.REG[3];
+  /* toolcontext.nit:148 */
+  if (!once_value_35) {
+    fra.me.REG[3] = BOX_NativeString("Directory where to generate log files");
+    REGB0 = TAG_Int(37);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_35 = fra.me.REG[3];
+    register_static_object(&once_value_35);
+  } else fra.me.REG[3] = once_value_35;
+  fra.me.REG[3] = fra.me.REG[3];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_36) {
-    fra.me.REG[1] = BOX_NativeString("--extension-prefix");
-    REGB0 = TAG_Int(18);
+    fra.me.REG[1] = BOX_NativeString("--log-dir");
+    REGB0 = TAG_Int(9);
     fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
     once_value_36 = fra.me.REG[1];
     register_static_object(&once_value_36);
   } else fra.me.REG[1] = once_value_36;
   fra.me.REG[1] = fra.me.REG[1];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-  fra.me.REG[3] = NEW_OptionString_opts___OptionString___init(fra.me.REG[2], fra.me.REG[3]);
-  ATTR_nitc___NitCompiler____opt_extension_prefix(fra.me.REG[0]) = fra.me.REG[3];
-  /* ./nitc.nit:46 */
-  REGB0 = TAG_Int(3);
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  fra.me.REG[2] = NEW_OptionString_opts___OptionString___init(fra.me.REG[3], fra.me.REG[2]);
+  ATTR_toolcontext___ToolContext____opt_log_dir(fra.me.REG[0]) = fra.me.REG[2];
+  /* toolcontext.nit:151 */
   if (!once_value_37) {
-    fra.me.REG[2] = BOX_NativeString("none");
-    REGB0 = TAG_Int(4);
+    fra.me.REG[2] = BOX_NativeString("Show Help (This screen)");
+    REGB0 = TAG_Int(23);
     fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
     once_value_37 = fra.me.REG[2];
     register_static_object(&once_value_37);
   } else fra.me.REG[2] = once_value_37;
   fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
+  REGB0 = TAG_Int(2);
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_38) {
-    fra.me.REG[2] = BOX_NativeString("C");
-    REGB0 = TAG_Int(1);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_38 = fra.me.REG[2];
+    fra.me.REG[1] = BOX_NativeString("-h");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_38 = fra.me.REG[1];
     register_static_object(&once_value_38);
-  } else fra.me.REG[2] = once_value_38;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
+  } else fra.me.REG[1] = once_value_38;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
   if (!once_value_39) {
-    fra.me.REG[2] = BOX_NativeString("icode");
-    REGB0 = TAG_Int(5);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_39 = fra.me.REG[2];
+    fra.me.REG[1] = BOX_NativeString("-?");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_39 = fra.me.REG[1];
     register_static_object(&once_value_39);
-  } else fra.me.REG[2] = once_value_39;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
+  } else fra.me.REG[1] = once_value_39;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
   if (!once_value_40) {
-    fra.me.REG[2] = BOX_NativeString("The type of code we want to be generated");
-    REGB0 = TAG_Int(40);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_40 = fra.me.REG[2];
+    fra.me.REG[1] = BOX_NativeString("--help");
+    REGB0 = TAG_Int(6);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_40 = fra.me.REG[1];
     register_static_object(&once_value_40);
-  } else fra.me.REG[2] = once_value_40;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(1);
-  REGB1 = TAG_Int(0);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
+  } else fra.me.REG[1] = once_value_40;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  fra.me.REG[3] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[3]);
+  ATTR_toolcontext___ToolContext____opt_help(fra.me.REG[0]) = fra.me.REG[3];
+  /* toolcontext.nit:154 */
   if (!once_value_41) {
-    fra.me.REG[4] = BOX_NativeString("--output-format");
-    REGB1 = TAG_Int(15);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
-    once_value_41 = fra.me.REG[4];
+    fra.me.REG[3] = BOX_NativeString("Show version and exit");
+    REGB0 = TAG_Int(21);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_41 = fra.me.REG[3];
     register_static_object(&once_value_41);
-  } else fra.me.REG[4] = once_value_41;
-  fra.me.REG[4] = fra.me.REG[4];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  fra.me.REG[1] = NEW_OptionEnum_opts___OptionEnum___init(fra.me.REG[3], fra.me.REG[2], REGB0, fra.me.REG[1]);
-  ATTR_nitc___NitCompiler____opt_output_format(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//syntax.nit:98 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0]) = REGB0;
-  /* ./mmloader.nit:98 */
-  REGB0 = TAG_Int(0);
-  ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]) = REGB0;
-  /* ./mmloader.nit:101 */
+  } else fra.me.REG[3] = once_value_41;
+  fra.me.REG[3] = fra.me.REG[3];
   REGB0 = TAG_Int(0);
-  ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0]) = REGB0;
-  /* ./mmloader.nit:104 */
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_42) {
-    fra.me.REG[1] = BOX_NativeString("logs");
-    REGB0 = TAG_Int(4);
+    fra.me.REG[1] = BOX_NativeString("--version");
+    REGB0 = TAG_Int(9);
     fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
     once_value_42 = fra.me.REG[1];
     register_static_object(&once_value_42);
   } else fra.me.REG[1] = once_value_42;
   fra.me.REG[1] = fra.me.REG[1];
-  ATTR_mmloader___ToolContext____log_directory(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:107 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_mmloader___ToolContext____messages(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:108 */
-  fra.me.REG[1] = NEW_ComparableSorter_standard___collection___sorter___ComparableSorter___init();
-  ATTR_mmloader___ToolContext____message_sorter(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:166 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_mmloader___ToolContext____paths(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:169 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_mmloader___ToolContext____loaders(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:172 */
-  fra.me.REG[1] = NEW_OptionContext_opts___OptionContext___init();
-  ATTR_mmloader___ToolContext____option_context(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:175 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[3], fra.me.REG[2]);
+  ATTR_toolcontext___ToolContext____opt_version(fra.me.REG[0]) = fra.me.REG[2];
+  /* toolcontext.nit:157 */
   if (!once_value_43) {
-    fra.me.REG[1] = BOX_NativeString("Show warnings");
-    REGB0 = TAG_Int(13);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_43 = fra.me.REG[1];
+    fra.me.REG[2] = BOX_NativeString("Verbose");
+    REGB0 = TAG_Int(7);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_43 = fra.me.REG[2];
     register_static_object(&once_value_43);
-  } else fra.me.REG[1] = once_value_43;
-  fra.me.REG[1] = fra.me.REG[1];
+  } else fra.me.REG[2] = once_value_43;
+  fra.me.REG[2] = fra.me.REG[2];
   REGB0 = TAG_Int(1);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_44) {
-    fra.me.REG[3] = BOX_NativeString("-W");
+    fra.me.REG[1] = BOX_NativeString("-v");
     REGB0 = TAG_Int(2);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_44 = fra.me.REG[3];
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_44 = fra.me.REG[1];
     register_static_object(&once_value_44);
-  } else fra.me.REG[3] = once_value_44;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  } else fra.me.REG[1] = once_value_44;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
   if (!once_value_45) {
-    fra.me.REG[3] = BOX_NativeString("--warn");
-    REGB0 = TAG_Int(6);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_45 = fra.me.REG[3];
+    fra.me.REG[1] = BOX_NativeString("--verbose");
+    REGB0 = TAG_Int(9);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_45 = fra.me.REG[1];
     register_static_object(&once_value_45);
-  } else fra.me.REG[3] = once_value_45;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionCount_opts___OptionCount___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:178 */
+  } else fra.me.REG[1] = once_value_45;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  fra.me.REG[3] = NEW_OptionCount_opts___OptionCount___init(fra.me.REG[2], fra.me.REG[3]);
+  ATTR_toolcontext___ToolContext____opt_verbose(fra.me.REG[0]) = fra.me.REG[3];
+  /* toolcontext.nit:160 */
   if (!once_value_46) {
-    fra.me.REG[2] = BOX_NativeString("Set include path for loaders (may be used more than once)");
-    REGB0 = TAG_Int(57);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_46 = fra.me.REG[2];
+    fra.me.REG[3] = BOX_NativeString("Stop on first error");
+    REGB0 = TAG_Int(19);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_46 = fra.me.REG[3];
     register_static_object(&once_value_46);
-  } else fra.me.REG[2] = once_value_46;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(1);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  } else fra.me.REG[3] = once_value_46;
+  fra.me.REG[3] = fra.me.REG[3];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_47) {
-    fra.me.REG[3] = BOX_NativeString("-I");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_47 = fra.me.REG[3];
+    fra.me.REG[1] = BOX_NativeString("--stop-on-first-error");
+    REGB0 = TAG_Int(21);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_47 = fra.me.REG[1];
     register_static_object(&once_value_47);
-  } else fra.me.REG[3] = once_value_47;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+  } else fra.me.REG[1] = once_value_47;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[3], fra.me.REG[2]);
+  ATTR_toolcontext___ToolContext____opt_stop_on_first_error(fra.me.REG[0]) = fra.me.REG[2];
+  /* toolcontext.nit:163 */
   if (!once_value_48) {
-    fra.me.REG[3] = BOX_NativeString("--path");
-    REGB0 = TAG_Int(6);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_48 = fra.me.REG[3];
+    fra.me.REG[2] = BOX_NativeString("Do not use color to display errors and warnings");
+    REGB0 = TAG_Int(47);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_48 = fra.me.REG[2];
     register_static_object(&once_value_48);
-  } else fra.me.REG[3] = once_value_48;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:181 */
+  } else fra.me.REG[2] = once_value_48;
+  fra.me.REG[2] = fra.me.REG[2];
+  REGB0 = TAG_Int(0);
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_49) {
-    fra.me.REG[1] = BOX_NativeString("Generate various log files");
-    REGB0 = TAG_Int(26);
+    fra.me.REG[1] = BOX_NativeString("--no-color");
+    REGB0 = TAG_Int(10);
     fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
     once_value_49 = fra.me.REG[1];
     register_static_object(&once_value_49);
   } else fra.me.REG[1] = once_value_49;
   fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  fra.me.REG[3] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[3]);
+  ATTR_toolcontext___ToolContext____opt_no_color(fra.me.REG[0]) = fra.me.REG[3];
+  /* toolcontext.nit:166 */
   REGB0 = TAG_Int(0);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  ATTR_toolcontext___ToolContext____verbose_level(fra.me.REG[0]) = REGB0;
+  /* metamodel/abstractmetamodel.nit:30 */
+  fra.me.REG[3] = NEW_PartialOrder_metamodel___partial_order___PartialOrder___init();
+  ATTR_metamodel___abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0]) = fra.me.REG[3];
+  /* metamodel/abstractmetamodel.nit:34 */
+  fra.me.REG[3] = NEW_PartialOrder_metamodel___partial_order___PartialOrder___init();
+  ATTR_metamodel___abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0]) = fra.me.REG[3];
+  /* metamodel/abstractmetamodel.nit:37 */
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_metamodel___abstractmetamodel___MMContext____global_classes(fra.me.REG[0]) = fra.me.REG[3];
+  /* metamodel/abstractmetamodel.nit:40 */
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_metamodel___abstractmetamodel___MMContext____modules(fra.me.REG[0]) = fra.me.REG[3];
+  /* program.nit:26 */
+  REGB0 = TAG_Bool(false);
+  ATTR_program___ToolContext____global(fra.me.REG[0]) = REGB0;
+  /* program.nit:27 */
+  REGB0 = TAG_Bool(true);
+  ATTR_program___ToolContext____use_SFT_optimization(fra.me.REG[0]) = REGB0;
+  /* separate_options.nit:11 */
+  fra.me.REG[3] = NEW_OptionContext_opts___OptionContext___init();
+  ATTR_separate_options___ToolContext_____atseparate_options(fra.me.REG[0]) = fra.me.REG[3];
+  /* separate_options.nit:12 */
   if (!once_value_50) {
-    fra.me.REG[3] = BOX_NativeString("--log");
-    REGB0 = TAG_Int(5);
+    fra.me.REG[3] = BOX_NativeString("Path to libraries for C compiler");
+    REGB0 = TAG_Int(32);
     fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
     once_value_50 = fra.me.REG[3];
     register_static_object(&once_value_50);
   } else fra.me.REG[3] = once_value_50;
   fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:184 */
+  REGB0 = TAG_Int(0);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_51) {
-    fra.me.REG[2] = BOX_NativeString("Directory where to generate log files");
+    fra.me.REG[1] = BOX_NativeString("--cc-lib-path");
+    REGB0 = TAG_Int(13);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_51 = fra.me.REG[1];
+    register_static_object(&once_value_51);
+  } else fra.me.REG[1] = once_value_51;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  fra.me.REG[2] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[3], fra.me.REG[2]);
+  ATTR_separate_options___ToolContext_____atopt_cc_lib_paths(fra.me.REG[0]) = fra.me.REG[2];
+  /* separate_options.nit:13 */
+  if (!once_value_52) {
+    fra.me.REG[2] = BOX_NativeString("Name of library to use for C compiler");
     REGB0 = TAG_Int(37);
     fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_51 = fra.me.REG[2];
-    register_static_object(&once_value_51);
-  } else fra.me.REG[2] = once_value_51;
+    once_value_52 = fra.me.REG[2];
+    register_static_object(&once_value_52);
+  } else fra.me.REG[2] = once_value_52;
   fra.me.REG[2] = fra.me.REG[2];
   REGB0 = TAG_Int(0);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_52) {
-    fra.me.REG[3] = BOX_NativeString("--log-dir");
-    REGB0 = TAG_Int(9);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_52 = fra.me.REG[3];
-    register_static_object(&once_value_52);
-  } else fra.me.REG[3] = once_value_52;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionString_opts___OptionString___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_mmloader___ToolContext____opt_log_dir(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:187 */
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_53) {
-    fra.me.REG[1] = BOX_NativeString("Stop after meta-model processing");
-    REGB0 = TAG_Int(32);
+    fra.me.REG[1] = BOX_NativeString("--cc-lib-name");
+    REGB0 = TAG_Int(13);
     fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
     once_value_53 = fra.me.REG[1];
     register_static_object(&once_value_53);
   } else fra.me.REG[1] = once_value_53;
   fra.me.REG[1] = fra.me.REG[1];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  fra.me.REG[3] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[2], fra.me.REG[3]);
+  ATTR_separate_options___ToolContext_____atopt_cc_libs(fra.me.REG[0]) = fra.me.REG[3];
+  /* separate_options.nit:14 */
   if (!once_value_54) {
-    fra.me.REG[3] = BOX_NativeString("--only-metamodel");
-    REGB0 = TAG_Int(16);
+    fra.me.REG[3] = BOX_NativeString("Path to .h files for C compiler");
+    REGB0 = TAG_Int(31);
     fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
     once_value_54 = fra.me.REG[3];
     register_static_object(&once_value_54);
   } else fra.me.REG[3] = once_value_54;
   fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:190 */
-  if (!once_value_55) {
-    fra.me.REG[2] = BOX_NativeString("Only proceed to parse step of loaders");
-    REGB0 = TAG_Int(37);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_55 = fra.me.REG[2];
-    register_static_object(&once_value_55);
-  } else fra.me.REG[2] = once_value_55;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_56) {
-    fra.me.REG[3] = BOX_NativeString("--only-parse");
-    REGB0 = TAG_Int(12);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_56 = fra.me.REG[3];
-    register_static_object(&once_value_56);
-  } else fra.me.REG[3] = once_value_56;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:193 */
-  if (!once_value_57) {
-    fra.me.REG[1] = BOX_NativeString("Show Help (This screen)");
-    REGB0 = TAG_Int(23);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_57 = fra.me.REG[1];
-    register_static_object(&once_value_57);
-  } else fra.me.REG[1] = once_value_57;
-  fra.me.REG[1] = fra.me.REG[1];
-  REGB0 = TAG_Int(2);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_58) {
-    fra.me.REG[3] = BOX_NativeString("-h");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_58 = fra.me.REG[3];
-    register_static_object(&once_value_58);
-  } else fra.me.REG[3] = once_value_58;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  if (!once_value_59) {
-    fra.me.REG[3] = BOX_NativeString("-?");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_59 = fra.me.REG[3];
-    register_static_object(&once_value_59);
-  } else fra.me.REG[3] = once_value_59;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  if (!once_value_60) {
-    fra.me.REG[3] = BOX_NativeString("--help");
-    REGB0 = TAG_Int(6);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_60 = fra.me.REG[3];
-    register_static_object(&once_value_60);
-  } else fra.me.REG[3] = once_value_60;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_mmloader___ToolContext____opt_help(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:196 */
-  if (!once_value_61) {
-    fra.me.REG[2] = BOX_NativeString("Show version and exit");
-    REGB0 = TAG_Int(21);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_61 = fra.me.REG[2];
-    register_static_object(&once_value_61);
-  } else fra.me.REG[2] = once_value_61;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_62) {
-    fra.me.REG[3] = BOX_NativeString("--version");
-    REGB0 = TAG_Int(9);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_62 = fra.me.REG[3];
-    register_static_object(&once_value_62);
-  } else fra.me.REG[3] = once_value_62;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_mmloader___ToolContext____opt_version(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:199 */
-  if (!once_value_63) {
-    fra.me.REG[1] = BOX_NativeString("Verbose");
-    REGB0 = TAG_Int(7);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_63 = fra.me.REG[1];
-    register_static_object(&once_value_63);
-  } else fra.me.REG[1] = once_value_63;
-  fra.me.REG[1] = fra.me.REG[1];
-  REGB0 = TAG_Int(1);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_64) {
-    fra.me.REG[3] = BOX_NativeString("-v");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_64 = fra.me.REG[3];
-    register_static_object(&once_value_64);
-  } else fra.me.REG[3] = once_value_64;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  if (!once_value_65) {
-    fra.me.REG[3] = BOX_NativeString("--verbose");
-    REGB0 = TAG_Int(9);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_65 = fra.me.REG[3];
-    register_static_object(&once_value_65);
-  } else fra.me.REG[3] = once_value_65;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionCount_opts___OptionCount___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_mmloader___ToolContext____opt_verbose(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:202 */
-  if (!once_value_66) {
-    fra.me.REG[2] = BOX_NativeString("Stop on first error");
-    REGB0 = TAG_Int(19);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_66 = fra.me.REG[2];
-    register_static_object(&once_value_66);
-  } else fra.me.REG[2] = once_value_66;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_67) {
-    fra.me.REG[3] = BOX_NativeString("--stop-on-first-error");
-    REGB0 = TAG_Int(21);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_67 = fra.me.REG[3];
-    register_static_object(&once_value_67);
-  } else fra.me.REG[3] = once_value_67;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_mmloader___ToolContext____opt_stop_on_first_error(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:205 */
-  if (!once_value_68) {
-    fra.me.REG[1] = BOX_NativeString("Do not use color to display errors and warnings");
-    REGB0 = TAG_Int(47);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_68 = fra.me.REG[1];
-    register_static_object(&once_value_68);
-  } else fra.me.REG[1] = once_value_68;
-  fra.me.REG[1] = fra.me.REG[1];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_69) {
-    fra.me.REG[3] = BOX_NativeString("--no-color");
-    REGB0 = TAG_Int(10);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_69 = fra.me.REG[3];
-    register_static_object(&once_value_69);
-  } else fra.me.REG[3] = once_value_69;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_mmloader___ToolContext____opt_no_color(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:208 */
-  REGB0 = TAG_Int(0);
-  ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0]) = REGB0;
-  /* ./mmloader.nit:291 */
-  fra.me.REG[2] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:358 */
-  fra.me.REG[2] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./metamodel//abstractmetamodel.nit:30 */
-  fra.me.REG[2] = NEW_PartialOrder_metamodel___partial_order___PartialOrder___init();
-  ATTR_metamodel___abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./metamodel//abstractmetamodel.nit:34 */
-  fra.me.REG[2] = NEW_PartialOrder_metamodel___partial_order___PartialOrder___init();
-  ATTR_metamodel___abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./metamodel//abstractmetamodel.nit:37 */
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_metamodel___abstractmetamodel___MMContext____global_classes(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./metamodel//abstractmetamodel.nit:40 */
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_metamodel___abstractmetamodel___MMContext____modules(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./separate_options.nit:11 */
-  fra.me.REG[2] = NEW_OptionContext_opts___OptionContext___init();
-  ATTR_separate_options___ToolContext_____atseparate_options(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./separate_options.nit:12 */
-  if (!once_value_70) {
-    fra.me.REG[2] = BOX_NativeString("Path to libraries for C compiler");
-    REGB0 = TAG_Int(32);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_70 = fra.me.REG[2];
-    register_static_object(&once_value_70);
-  } else fra.me.REG[2] = once_value_70;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_71) {
-    fra.me.REG[3] = BOX_NativeString("--cc-lib-path");
-    REGB0 = TAG_Int(13);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_71 = fra.me.REG[3];
-    register_static_object(&once_value_71);
-  } else fra.me.REG[3] = once_value_71;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_separate_options___ToolContext_____atopt_cc_lib_paths(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./separate_options.nit:13 */
-  if (!once_value_72) {
-    fra.me.REG[1] = BOX_NativeString("Name of library to use for C compiler");
-    REGB0 = TAG_Int(37);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_72 = fra.me.REG[1];
-    register_static_object(&once_value_72);
-  } else fra.me.REG[1] = once_value_72;
-  fra.me.REG[1] = fra.me.REG[1];
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_73) {
-    fra.me.REG[3] = BOX_NativeString("--cc-lib-name");
-    REGB0 = TAG_Int(13);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_73 = fra.me.REG[3];
-    register_static_object(&once_value_73);
-  } else fra.me.REG[3] = once_value_73;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_separate_options___ToolContext_____atopt_cc_libs(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./separate_options.nit:14 */
-  if (!once_value_74) {
-    fra.me.REG[2] = BOX_NativeString("Path to .h files for C compiler");
-    REGB0 = TAG_Int(31);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_74 = fra.me.REG[2];
-    register_static_object(&once_value_74);
-  } else fra.me.REG[2] = once_value_74;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_75) {
-    fra.me.REG[3] = BOX_NativeString("--cc-header-path");
+  if (!once_value_55) {
+    fra.me.REG[1] = BOX_NativeString("--cc-header-path");
     REGB0 = TAG_Int(16);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_75 = fra.me.REG[3];
-    register_static_object(&once_value_75);
-  } else fra.me.REG[3] = once_value_75;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_separate_options___ToolContext_____atopt_cc_include_paths(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./analysis//analysis.nit:48 */
-  if (!once_value_76) {
-    fra.me.REG[1] = BOX_NativeString("rta");
-    REGB0 = TAG_Int(3);
     fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_76 = fra.me.REG[1];
-    register_static_object(&once_value_76);
-  } else fra.me.REG[1] = once_value_76;
+    once_value_55 = fra.me.REG[1];
+    register_static_object(&once_value_55);
+  } else fra.me.REG[1] = once_value_55;
   fra.me.REG[1] = fra.me.REG[1];
-  ATTR_analysis___ToolContext____global_callgraph(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./analysis//analysis.nit:49 */
-  REGB0 = TAG_Bool(false);
-  ATTR_analysis___ToolContext____no_dead_method_removal(fra.me.REG[0]) = REGB0;
-  /* ./analysis//analysis.nit:50 */
-  REGB0 = TAG_Bool(false);
-  ATTR_analysis___ToolContext____no_inline_get_set(fra.me.REG[0]) = REGB0;
-  /* ./analysis//analysis.nit:51 */
-  REGB0 = TAG_Bool(false);
-  ATTR_analysis___ToolContext____no_callgraph_from_init(fra.me.REG[0]) = REGB0;
-  /* ./analysis//analysis.nit:52 */
-  REGB0 = TAG_Bool(false);
-  ATTR_analysis___ToolContext____no_out_of_init_get_test_removal(fra.me.REG[0]) = REGB0;
-  /* ./program.nit:26 */
-  REGB0 = TAG_Bool(false);
-  ATTR_program___ToolContext____global(fra.me.REG[0]) = REGB0;
-  /* ./program.nit:27 */
-  REGB0 = TAG_Bool(true);
-  ATTR_program___ToolContext____use_SFT_optimization(fra.me.REG[0]) = REGB0;
-  /* ./compiling//compiling_base.nit:27 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_compiling___compiling_base___ToolContext____compdir(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:28 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_compiling___compiling_base___ToolContext____clibdir(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:29 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_compiling___compiling_base___ToolContext____bindir(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:30 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_compiling___compiling_base___ToolContext____output_file(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:31 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  fra.me.REG[2] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[3], fra.me.REG[2]);
+  ATTR_separate_options___ToolContext_____atopt_cc_include_paths(fra.me.REG[0]) = fra.me.REG[2];
+  /* compiling/compiling_base.nit:27 */
+  fra.me.REG[2] = NIT_NULL;
+  ATTR_compiling___compiling_base___ToolContext____compdir(fra.me.REG[0]) = fra.me.REG[2];
+  /* compiling/compiling_base.nit:28 */
+  fra.me.REG[2] = NIT_NULL;
+  ATTR_compiling___compiling_base___ToolContext____clibdir(fra.me.REG[0]) = fra.me.REG[2];
+  /* compiling/compiling_base.nit:29 */
+  fra.me.REG[2] = NIT_NULL;
+  ATTR_compiling___compiling_base___ToolContext____bindir(fra.me.REG[0]) = fra.me.REG[2];
+  /* compiling/compiling_base.nit:30 */
+  fra.me.REG[2] = NIT_NULL;
+  ATTR_compiling___compiling_base___ToolContext____output_file(fra.me.REG[0]) = fra.me.REG[2];
+  /* compiling/compiling_base.nit:31 */
   REGB0 = TAG_Bool(false);
   ATTR_compiling___compiling_base___ToolContext____boost(fra.me.REG[0]) = REGB0;
-  /* ./compiling//compiling_base.nit:32 */
+  /* compiling/compiling_base.nit:32 */
   REGB0 = TAG_Bool(false);
   ATTR_compiling___compiling_base___ToolContext____no_cc(fra.me.REG[0]) = REGB0;
-  /* ./compiling//compiling_base.nit:33 */
+  /* compiling/compiling_base.nit:33 */
   REGB0 = TAG_Bool(false);
   ATTR_compiling___compiling_base___ToolContext____cc_link(fra.me.REG[0]) = REGB0;
-  /* ./compiling//compiling_base.nit:34 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_compiling___compiling_base___ToolContext____cc_libs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:35 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_compiling___compiling_base___ToolContext____cc_lib_paths(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:36 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_compiling___compiling_base___ToolContext____cc_include_paths(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:37 */
-  if (!once_value_77) {
-    fra.me.REG[1] = BOX_NativeString("");
+  /* compiling/compiling_base.nit:34 */
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_compiling___compiling_base___ToolContext____cc_libs(fra.me.REG[0]) = fra.me.REG[2];
+  /* compiling/compiling_base.nit:35 */
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_compiling___compiling_base___ToolContext____cc_lib_paths(fra.me.REG[0]) = fra.me.REG[2];
+  /* compiling/compiling_base.nit:36 */
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_compiling___compiling_base___ToolContext____cc_include_paths(fra.me.REG[0]) = fra.me.REG[2];
+  /* compiling/compiling_base.nit:37 */
+  if (!once_value_56) {
+    fra.me.REG[2] = BOX_NativeString("");
     REGB0 = TAG_Int(0);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_77 = fra.me.REG[1];
-    register_static_object(&once_value_77);
-  } else fra.me.REG[1] = once_value_77;
-  fra.me.REG[1] = fra.me.REG[1];
-  ATTR_compiling___compiling_base___ToolContext____ext_prefix(fra.me.REG[0]) = fra.me.REG[1];
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_56 = fra.me.REG[2];
+    register_static_object(&once_value_56);
+  } else fra.me.REG[2] = once_value_56;
+  fra.me.REG[2] = fra.me.REG[2];
+  ATTR_compiling___compiling_base___ToolContext____ext_prefix(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_nitc___NitCompiler(void)
+val_t NEW_toolcontext___ToolContext(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 68);
-  obj->vft = (classtable_elt_t*)VFT_nitc___NitCompiler;
+  obj = alloc(sizeof(val_t) * 55);
+  obj->vft = (classtable_elt_t*)VFT_toolcontext___ToolContext;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_nitc___NitCompiler(val_t p0){
+void CHECKNEW_toolcontext___ToolContext(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_nitc___NitCompiler;
+  fra.me.meth = LOCATE_CHECKNEW_toolcontext___ToolContext;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_output(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_output", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_boost(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_boost", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_no_cc(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_no_cc", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_cc_no_link(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____global_callgraph(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_opt_cc_no_link", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_global_callgraph", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_global(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_opt_global", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_global_no_STF_opt(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_no_STF_opt(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_opt_global_no_STF_opt", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_global_no_DMR_opt(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_no_DMR_opt(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_opt_global_no_DMR_opt", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_global_no_inline_get_set(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_no_inline_get_set(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_opt_global_no_inline_get_set", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_global_no_out_of_init_get_test_opt(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_no_out_of_init_get_test_opt(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_opt_global_no_out_of_init_get_test_opt", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_global_no_RFIMA(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_no_RFIMA(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_opt_global_no_RFIMA", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_global_callgraph(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_callgraph(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_opt_global_callgraph", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_clibdir(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_opt_clibdir", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_keep_ast", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_bindir(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____paths(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_opt_bindir", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_paths", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_compdir(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____loaders(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_opt_compdir", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_loaders", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_extension_prefix(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_opt_extension_prefix", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_opt_path", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_output_format(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_opt_output_format", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_opt_only_metamodel", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_abstracttool___AbstractCompiler____tool_name(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_tool_name", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_opt_only_parse", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_keep_ast", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_error_count", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____warning_count(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_warning_count", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____log_directory(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____log_directory(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_log_directory", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_messages", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____message_sorter(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____message_sorter(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_message_sorter", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____paths(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_paths", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____loaders(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_loaders", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____option_context(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____option_context(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_option_context", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_opt_warn", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_quiet(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_opt_path", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_opt_quiet", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_log(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_opt_log", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_log_dir(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_log_dir(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_opt_log_dir", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_only_metamodel", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_only_parse", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_help(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_help(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_opt_help", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_version(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_version(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_opt_version", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_verbose(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_verbose(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_opt_verbose", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_stop_on_first_error(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_stop_on_first_error(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_opt_stop_on_first_error", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_no_color(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_no_color(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_opt_no_color", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____verbose_level(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_verbose_level", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_nitc, 0);
-  }
   REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -16424,6 +17197,16 @@ void CHECKNEW_nitc___NitCompiler(val_t p0){
   } else {
     nit_abort("Uninitialized attribute %s", "_modules", LOCATE_nitc, 0);
   }
+  REGB0 = TAG_Bool(ATTR_program___ToolContext____global(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_global", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_program___ToolContext____use_SFT_optimization(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_use_SFT_optimization", LOCATE_nitc, 0);
+  }
   REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atseparate_options(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -16444,41 +17227,6 @@ void CHECKNEW_nitc___NitCompiler(val_t p0){
   } else {
     nit_abort("Uninitialized attribute %s", "@opt_cc_include_paths", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_analysis___ToolContext____global_callgraph(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_global_callgraph", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___ToolContext____no_dead_method_removal(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_no_dead_method_removal", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___ToolContext____no_inline_get_set(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_no_inline_get_set", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___ToolContext____no_callgraph_from_init(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_no_callgraph_from_init", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___ToolContext____no_out_of_init_get_test_removal(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_no_out_of_init_get_test_removal", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_program___ToolContext____global(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_global", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_program___ToolContext____use_SFT_optimization(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_use_SFT_optimization", LOCATE_nitc, 0);
-  }
   REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____boost(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -16516,27 +17264,27 @@ void CHECKNEW_nitc___NitCompiler(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_NitCompiler_nitc___NitCompiler___init(void){
+val_t NEW_ToolContext_toolcontext___ToolContext___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
+  int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 48;
-  fra.me.meth = LOCATE_NEW_NitCompiler_nitc___NitCompiler___init;
+  fra.me.line = 121;
+  fra.me.meth = LOCATE_NEW_ToolContext_toolcontext___ToolContext___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./nitc.nit:48 */
-  fra.me.REG[0] = NEW_nitc___NitCompiler();
-  INIT_ATTRIBUTES__nitc___NitCompiler(fra.me.REG[0]);
-  nitc___NitCompiler___init(fra.me.REG[0], init_table);
-  CHECKNEW_nitc___NitCompiler(fra.me.REG[0]);
+  /* nitc.nit:121 */
+  fra.me.REG[0] = NEW_toolcontext___ToolContext();
+  INIT_ATTRIBUTES__toolcontext___ToolContext(fra.me.REG[0]);
+  nitc___ToolContext___init(fra.me.REG[0], init_table);
+  CHECKNEW_toolcontext___ToolContext(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_standard___kernel___Sys[56] = {
+const classtable_elt_t VFT_standard___kernel___Sys[59] = {
   {(bigint) 27 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "Sys" /* 2: Class Name */},
@@ -16553,9 +17301,10 @@ const classtable_elt_t VFT_standard___kernel___Sys[56] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: Sys < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: Sys < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -16571,6 +17320,8 @@ const classtable_elt_t VFT_standard___kernel___Sys[56] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -16589,7 +17340,7 @@ const classtable_elt_t VFT_standard___kernel___Sys[56] = {
   {(bigint) standard___string___Sys___init_args},
   {(bigint) standard___string___Sys___native_argc},
   {(bigint) standard___string___Sys___native_argv},
-  {(bigint) 1 /* 52: Sys < Sys: superclass init_table position */},
+  {(bigint) 1 /* 55: Sys < Sys: superclass init_table position */},
   {(bigint) nitc___Sys___main},
   {(bigint) standard___kernel___Sys___init},
   {(bigint) standard___gc___Sys___force_garbage_collection},
@@ -16649,7 +17400,7 @@ val_t NEW_Sys_standard___kernel___Sys___init(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_standard___kernel___Bool[48] = {
+const classtable_elt_t VFT_standard___kernel___Bool[51] = {
   {(bigint) -13 /* 0: Identity */},
   {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "Bool" /* 2: Class Name */},
@@ -16666,9 +17417,10 @@ const classtable_elt_t VFT_standard___kernel___Bool[48] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: Bool < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: Bool < Object: superclass init_table position */},
   {(bigint) standard___kernel___Bool___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Bool_____eqeq},
@@ -16684,6 +17436,8 @@ const classtable_elt_t VFT_standard___kernel___Bool[48] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Bool___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -16697,11 +17451,11 @@ const classtable_elt_t VFT_standard___kernel___Bool[48] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: Bool < Bool: superclass init_table position */},
+  {(bigint) 1 /* 50: Bool < Bool: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-const classtable_elt_t VFT_standard___kernel___Float[71] = {
+const classtable_elt_t VFT_standard___kernel___Float[74] = {
   {(bigint) -9 /* 0: Identity */},
   {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "Float" /* 2: Class Name */},
@@ -16718,9 +17472,10 @@ const classtable_elt_t VFT_standard___kernel___Float[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: Float < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: Float < Object: superclass init_table position */},
   {(bigint) standard___kernel___Float___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -16736,6 +17491,8 @@ const classtable_elt_t VFT_standard___kernel___Float[71] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Float___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -16750,7 +17507,7 @@ const classtable_elt_t VFT_standard___kernel___Float[71] = {
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) standard___string___Float___to_precision},
-  {(bigint) 1 /* 48: Float < Float: superclass init_table position */},
+  {(bigint) 1 /* 51: Float < Float: superclass init_table position */},
   {(bigint) standard___kernel___Float_____leq},
   {(bigint) standard___kernel___Float_____l},
   {(bigint) standard___kernel___Float_____geq},
@@ -16784,14 +17541,14 @@ val_t BOX_Float(float val) {
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(box);
 }
-const classtable_elt_t VFT_standard___kernel___Int[87] = {
+const classtable_elt_t VFT_standard___kernel___Int[90] = {
   {(bigint) -29 /* 0: Identity */},
   {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "Int" /* 2: Class Name */},
   {(bigint) 3 /* 3: Int < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 275 /* 5: Int < Comparable: superclass typecheck marker */},
-  {(bigint) 2295 /* 6: Int < Discrete: superclass typecheck marker */},
+  {(bigint) 271 /* 5: Int < Comparable: superclass typecheck marker */},
+  {(bigint) 2331 /* 6: Int < Discrete: superclass typecheck marker */},
   {(bigint) -29 /* 7: Int < Int: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16801,9 +17558,10 @@ const classtable_elt_t VFT_standard___kernel___Int[87] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: Int < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: Int < Object: superclass init_table position */},
   {(bigint) standard___kernel___Int___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Int_____eqeq},
@@ -16819,6 +17577,8 @@ const classtable_elt_t VFT_standard___kernel___Int[87] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Int___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -16837,9 +17597,9 @@ const classtable_elt_t VFT_standard___kernel___Int[87] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 52: Int < Comparable: superclass init_table position */},
-  {(bigint) -29 /* 53: VT Int::OTHER : id of Int */},
-  {(bigint) 7 /* 54: VT Int::OTHER : color of Int */},
+  {(bigint) 1 /* 55: Int < Comparable: superclass init_table position */},
+  {(bigint) -29 /* 56: VT Int::OTHER : id of Int */},
+  {(bigint) 7 /* 57: VT Int::OTHER : color of Int */},
   {(bigint) standard___kernel___Int_____l},
   {(bigint) standard___kernel___Int_____leq},
   {(bigint) standard___kernel___Int_____geq},
@@ -16848,7 +17608,7 @@ const classtable_elt_t VFT_standard___kernel___Int[87] = {
   {(bigint) standard___kernel___Int___is_between},
   {(bigint) standard___kernel___Int___max},
   {(bigint) standard___kernel___Int___min},
-  {(bigint) 0 /* 63: Int < Discrete: superclass init_table position */},
+  {(bigint) 0 /* 66: Int < Discrete: superclass init_table position */},
   {(bigint) standard___kernel___Int___succ},
   {(bigint) standard___kernel___Int___prec},
   {(bigint) standard___kernel___Int_____plus},
@@ -16857,7 +17617,7 @@ const classtable_elt_t VFT_standard___kernel___Int[87] = {
   {(bigint) standard___string___Int___fill_buffer},
   {(bigint) standard___string___Int___to_hex},
   {(bigint) standard___string___Int___to_base},
-  {(bigint) 3 /* 72: Int < Int: superclass init_table position */},
+  {(bigint) 3 /* 75: Int < Int: superclass init_table position */},
   {(bigint) standard___kernel___Int___unary__minus},
   {(bigint) standard___kernel___Int_____star},
   {(bigint) standard___kernel___Int_____slash},
@@ -16875,14 +17635,14 @@ const classtable_elt_t VFT_standard___kernel___Int[87] = {
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-const classtable_elt_t VFT_standard___kernel___Char[78] = {
+const classtable_elt_t VFT_standard___kernel___Char[81] = {
   {(bigint) -33 /* 0: Identity */},
   {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "Char" /* 2: Class Name */},
   {(bigint) 3 /* 3: Char < Object: superclass typecheck marker */},
   {(bigint) 103 /* 4: Char < Pattern: superclass typecheck marker */},
-  {(bigint) 275 /* 5: Char < Comparable: superclass typecheck marker */},
-  {(bigint) 2295 /* 6: Char < Discrete: superclass typecheck marker */},
+  {(bigint) 271 /* 5: Char < Comparable: superclass typecheck marker */},
+  {(bigint) 2331 /* 6: Char < Discrete: superclass typecheck marker */},
   {(bigint) -33 /* 7: Char < Char: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16892,9 +17652,10 @@ const classtable_elt_t VFT_standard___kernel___Char[78] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: Char < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: Char < Object: superclass init_table position */},
   {(bigint) standard___kernel___Char___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Char_____eqeq},
@@ -16910,6 +17671,8 @@ const classtable_elt_t VFT_standard___kernel___Char[78] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Char___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -16923,14 +17686,14 @@ const classtable_elt_t VFT_standard___kernel___Char[78] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: Char < Pattern: superclass init_table position */},
+  {(bigint) 0 /* 50: Char < Pattern: superclass init_table position */},
   {(bigint) standard___string_search___Char___search_index_in},
   {(bigint) standard___string_search___Char___search_in},
   {(bigint) standard___string_search___Pattern___search_all_in},
   {(bigint) standard___string_search___Pattern___split_in},
-  {(bigint) 3 /* 52: Char < Comparable: superclass init_table position */},
-  {(bigint) -33 /* 53: VT Char::OTHER : id of Char */},
-  {(bigint) 7 /* 54: VT Char::OTHER : color of Char */},
+  {(bigint) 3 /* 55: Char < Comparable: superclass init_table position */},
+  {(bigint) -33 /* 56: VT Char::OTHER : id of Char */},
+  {(bigint) 7 /* 57: VT Char::OTHER : color of Char */},
   {(bigint) standard___kernel___Char_____l},
   {(bigint) standard___kernel___Char_____leq},
   {(bigint) standard___kernel___Char_____geq},
@@ -16939,13 +17702,13 @@ const classtable_elt_t VFT_standard___kernel___Char[78] = {
   {(bigint) standard___kernel___Comparable___is_between},
   {(bigint) standard___kernel___Comparable___max},
   {(bigint) standard___kernel___Comparable___min},
-  {(bigint) 2 /* 63: Char < Discrete: superclass init_table position */},
+  {(bigint) 2 /* 66: Char < Discrete: superclass init_table position */},
   {(bigint) standard___kernel___Char___succ},
   {(bigint) standard___kernel___Char___prec},
   {(bigint) standard___kernel___Char_____plus},
   {(bigint) standard___kernel___Char_____minus},
   {(bigint) standard___kernel___Char___distance},
-  {(bigint) 4 /* 69: Char < Char: superclass init_table position */},
+  {(bigint) 4 /* 72: Char < Char: superclass init_table position */},
   {(bigint) standard___kernel___Char___to_i},
   {(bigint) standard___kernel___Char___ascii},
   {(bigint) standard___kernel___Char___to_lower},
@@ -16957,7 +17720,7 @@ const classtable_elt_t VFT_standard___kernel___Char[78] = {
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-const classtable_elt_t VFT_standard___kernel___Pointer[48] = {
+const classtable_elt_t VFT_standard___kernel___Pointer[51] = {
   {(bigint) -1 /* 0: Identity */},
   {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "Pointer" /* 2: Class Name */},
@@ -16974,9 +17737,10 @@ const classtable_elt_t VFT_standard___kernel___Pointer[48] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: Pointer < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: Pointer < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -16992,6 +17756,8 @@ const classtable_elt_t VFT_standard___kernel___Pointer[48] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -17005,7 +17771,7 @@ const classtable_elt_t VFT_standard___kernel___Pointer[48] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: Pointer < Pointer: superclass init_table position */},
+  {(bigint) 1 /* 50: Pointer < Pointer: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -17017,15 +17783,16 @@ val_t BOX_Pointer(void * val) {
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(box);
 }
-const classtable_elt_t VFT_standard___collection___abstract_collection___Container[79] = {
-  {(bigint) 2323 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___abstract_collection___Container[82] = {
+  {(bigint) 2359 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "Container" /* 2: Class Name */},
   {(bigint) 3 /* 3: Container < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 283 /* 6: Container < Collection: superclass typecheck marker */},
-  {(bigint) 2323 /* 7: Container < Container: superclass typecheck marker */},
+  {(bigint) 279 /* 6: Container < Collection: superclass typecheck marker */},
+  {(bigint) 2359 /* 7: Container < Container: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17036,7 +17803,7 @@ const classtable_elt_t VFT_standard___collection___abstract_collection___Contain
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: Container < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: Container < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -17052,6 +17819,8 @@ const classtable_elt_t VFT_standard___collection___abstract_collection___Contain
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Collection___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -17083,7 +17852,7 @@ const classtable_elt_t VFT_standard___collection___abstract_collection___Contain
   {0} /* Class Hole :( */,
   {(bigint) standard___string___Collection___join},
   {(bigint) standard___collection___array___Collection___to_a},
-  {(bigint) 0 /* 65: Container < Collection: superclass init_table position */},
+  {(bigint) 0 /* 68: Container < Collection: superclass init_table position */},
   {(bigint) standard___collection___abstract_collection___Container___iterator},
   {(bigint) standard___collection___abstract_collection___Collection___iterate},
   {(bigint) standard___collection___abstract_collection___Container___is_empty},
@@ -17093,7 +17862,7 @@ const classtable_elt_t VFT_standard___collection___abstract_collection___Contain
   {(bigint) standard___collection___abstract_collection___Container___count},
   {(bigint) standard___collection___abstract_collection___Container___first},
   {(bigint) standard___math___Collection___rand},
-  {(bigint) 2 /* 75: Container < Container: superclass init_table position */},
+  {(bigint) 2 /* 78: Container < Container: superclass init_table position */},
   {(bigint) standard___collection___abstract_collection___Container___init},
   {(bigint) standard___collection___abstract_collection___Container___item},
   {(bigint) standard___collection___abstract_collection___Container___item__eq},
@@ -17148,7 +17917,7 @@ val_t NEW_Container_standard___collection___abstract_collection___Container___in
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:158 */
+  /* ../lib/standard/collection/abstract_collection.nit:158 */
   fra.me.REG[1] = NEW_standard___collection___abstract_collection___Container();
   INIT_ATTRIBUTES__standard___collection___abstract_collection___Container(fra.me.REG[1]);
   standard___collection___abstract_collection___Container___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -17156,13 +17925,14 @@ val_t NEW_Container_standard___collection___abstract_collection___Container___in
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___collection___abstract_collection___ContainerIterator[54] = {
-  {(bigint) 2319 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___abstract_collection___ContainerIterator[57] = {
+  {(bigint) 2355 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ContainerIterator" /* 2: Class Name */},
   {(bigint) 3 /* 3: ContainerIterator < Object: superclass typecheck marker */},
-  {(bigint) 199 /* 4: ContainerIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2319 /* 5: ContainerIterator < ContainerIterator: superclass typecheck marker */},
+  {(bigint) 195 /* 4: ContainerIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 2355 /* 5: ContainerIterator < ContainerIterator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17175,7 +17945,7 @@ const classtable_elt_t VFT_standard___collection___abstract_collection___Contain
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ContainerIterator < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ContainerIterator < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -17191,6 +17961,8 @@ const classtable_elt_t VFT_standard___collection___abstract_collection___Contain
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -17205,11 +17977,11 @@ const classtable_elt_t VFT_standard___collection___abstract_collection___Contain
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) standard___collection___array___Iterator___to_a},
-  {(bigint) 0 /* 48: ContainerIterator < Iterator: superclass init_table position */},
+  {(bigint) 0 /* 51: ContainerIterator < Iterator: superclass init_table position */},
   {(bigint) standard___collection___abstract_collection___ContainerIterator___item},
   {(bigint) standard___collection___abstract_collection___ContainerIterator___next},
   {(bigint) standard___collection___abstract_collection___ContainerIterator___is_ok},
-  {(bigint) 2 /* 52: ContainerIterator < ContainerIterator: superclass init_table position */},
+  {(bigint) 2 /* 55: ContainerIterator < ContainerIterator: superclass init_table position */},
   {(bigint) standard___collection___abstract_collection___ContainerIterator___init},
 };
 /* 0: Pointer to the classtable */
@@ -17229,7 +18001,7 @@ void INIT_ATTRIBUTES__standard___collection___abstract_collection___ContainerIte
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:174 */
+  /* ../lib/standard/collection/abstract_collection.nit:174 */
   REGB0 = TAG_Bool(true);
   ATTR_standard___collection___abstract_collection___ContainerIterator____is_ok(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -17282,7 +18054,7 @@ val_t NEW_ContainerIterator_standard___collection___abstract_collection___Contai
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:172 */
+  /* ../lib/standard/collection/abstract_collection.nit:172 */
   fra.me.REG[1] = NEW_standard___collection___abstract_collection___ContainerIterator();
   INIT_ATTRIBUTES__standard___collection___abstract_collection___ContainerIterator(fra.me.REG[1]);
   standard___collection___abstract_collection___ContainerIterator___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -17290,13 +18062,14 @@ val_t NEW_ContainerIterator_standard___collection___abstract_collection___Contai
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___collection___abstract_collection___MapKeysIterator[56] = {
-  {(bigint) 2135 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___abstract_collection___MapKeysIterator[59] = {
+  {(bigint) 2171 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MapKeysIterator" /* 2: Class Name */},
   {(bigint) 3 /* 3: MapKeysIterator < Object: superclass typecheck marker */},
-  {(bigint) 199 /* 4: MapKeysIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2135 /* 5: MapKeysIterator < MapKeysIterator: superclass typecheck marker */},
+  {(bigint) 195 /* 4: MapKeysIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 2171 /* 5: MapKeysIterator < MapKeysIterator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17309,7 +18082,7 @@ const classtable_elt_t VFT_standard___collection___abstract_collection___MapKeys
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: MapKeysIterator < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: MapKeysIterator < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -17325,6 +18098,8 @@ const classtable_elt_t VFT_standard___collection___abstract_collection___MapKeys
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -17339,11 +18114,11 @@ const classtable_elt_t VFT_standard___collection___abstract_collection___MapKeys
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) standard___collection___array___Iterator___to_a},
-  {(bigint) 0 /* 48: MapKeysIterator < Iterator: superclass init_table position */},
+  {(bigint) 0 /* 51: MapKeysIterator < Iterator: superclass init_table position */},
   {(bigint) standard___collection___abstract_collection___MapKeysIterator___item},
   {(bigint) standard___collection___abstract_collection___MapKeysIterator___next},
   {(bigint) standard___collection___abstract_collection___MapKeysIterator___is_ok},
-  {(bigint) 2 /* 52: MapKeysIterator < MapKeysIterator: superclass init_table position */},
+  {(bigint) 2 /* 55: MapKeysIterator < MapKeysIterator: superclass init_table position */},
   {(bigint) standard___collection___abstract_collection___MapKeysIterator___iterator},
   {(bigint) standard___collection___abstract_collection___MapKeysIterator___iterator__eq},
   {(bigint) standard___collection___abstract_collection___MapKeysIterator___init},
@@ -17413,13 +18188,14 @@ val_t NEW_MapKeysIterator_standard___collection___abstract_collection___MapKeysI
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___collection___abstract_collection___MapValuesIterator[56] = {
-  {(bigint) 2131 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___abstract_collection___MapValuesIterator[59] = {
+  {(bigint) 2167 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MapValuesIterator" /* 2: Class Name */},
   {(bigint) 3 /* 3: MapValuesIterator < Object: superclass typecheck marker */},
-  {(bigint) 199 /* 4: MapValuesIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2131 /* 5: MapValuesIterator < MapValuesIterator: superclass typecheck marker */},
+  {(bigint) 195 /* 4: MapValuesIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 2167 /* 5: MapValuesIterator < MapValuesIterator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17432,7 +18208,7 @@ const classtable_elt_t VFT_standard___collection___abstract_collection___MapValu
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: MapValuesIterator < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: MapValuesIterator < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -17448,6 +18224,8 @@ const classtable_elt_t VFT_standard___collection___abstract_collection___MapValu
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -17462,11 +18240,11 @@ const classtable_elt_t VFT_standard___collection___abstract_collection___MapValu
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) standard___collection___array___Iterator___to_a},
-  {(bigint) 0 /* 48: MapValuesIterator < Iterator: superclass init_table position */},
+  {(bigint) 0 /* 51: MapValuesIterator < Iterator: superclass init_table position */},
   {(bigint) standard___collection___abstract_collection___MapValuesIterator___item},
   {(bigint) standard___collection___abstract_collection___MapValuesIterator___next},
   {(bigint) standard___collection___abstract_collection___MapValuesIterator___is_ok},
-  {(bigint) 2 /* 52: MapValuesIterator < MapValuesIterator: superclass init_table position */},
+  {(bigint) 2 /* 55: MapValuesIterator < MapValuesIterator: superclass init_table position */},
   {(bigint) standard___collection___abstract_collection___MapValuesIterator___iterator},
   {(bigint) standard___collection___abstract_collection___MapValuesIterator___iterator__eq},
   {(bigint) standard___collection___abstract_collection___MapValuesIterator___init},
@@ -17536,13 +18314,14 @@ val_t NEW_MapValuesIterator_standard___collection___abstract_collection___MapVal
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___collection___abstract_collection___CoupleMapIterator[54] = {
-  {(bigint) 2315 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___abstract_collection___CoupleMapIterator[57] = {
+  {(bigint) 2351 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "CoupleMapIterator" /* 2: Class Name */},
   {(bigint) 3 /* 3: CoupleMapIterator < Object: superclass typecheck marker */},
-  {(bigint) 139 /* 4: CoupleMapIterator < MapIterator: superclass typecheck marker */},
-  {(bigint) 2315 /* 5: CoupleMapIterator < CoupleMapIterator: superclass typecheck marker */},
+  {(bigint) 135 /* 4: CoupleMapIterator < MapIterator: superclass typecheck marker */},
+  {(bigint) 2351 /* 5: CoupleMapIterator < CoupleMapIterator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17555,7 +18334,7 @@ const classtable_elt_t VFT_standard___collection___abstract_collection___CoupleM
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: CoupleMapIterator < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: CoupleMapIterator < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -17571,6 +18350,8 @@ const classtable_elt_t VFT_standard___collection___abstract_collection___CoupleM
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -17584,12 +18365,12 @@ const classtable_elt_t VFT_standard___collection___abstract_collection___CoupleM
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: CoupleMapIterator < MapIterator: superclass init_table position */},
+  {(bigint) 0 /* 50: CoupleMapIterator < MapIterator: superclass init_table position */},
   {(bigint) standard___collection___abstract_collection___CoupleMapIterator___item},
   {(bigint) standard___collection___abstract_collection___CoupleMapIterator___key},
   {(bigint) standard___collection___abstract_collection___CoupleMapIterator___next},
   {(bigint) standard___collection___abstract_collection___CoupleMapIterator___is_ok},
-  {(bigint) 2 /* 52: CoupleMapIterator < CoupleMapIterator: superclass init_table position */},
+  {(bigint) 2 /* 55: CoupleMapIterator < CoupleMapIterator: superclass init_table position */},
   {(bigint) standard___collection___abstract_collection___CoupleMapIterator___init},
 };
 /* 0: Pointer to the classtable */
@@ -17650,7 +18431,7 @@ val_t NEW_CoupleMapIterator_standard___collection___abstract_collection___Couple
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:504 */
+  /* ../lib/standard/collection/abstract_collection.nit:504 */
   fra.me.REG[1] = NEW_standard___collection___abstract_collection___CoupleMapIterator();
   INIT_ATTRIBUTES__standard___collection___abstract_collection___CoupleMapIterator(fra.me.REG[1]);
   standard___collection___abstract_collection___CoupleMapIterator___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -17658,12 +18439,13 @@ val_t NEW_CoupleMapIterator_standard___collection___abstract_collection___Couple
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___collection___abstract_collection___Couple[53] = {
-  {(bigint) 267 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___abstract_collection___Couple[56] = {
+  {(bigint) 263 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "Couple" /* 2: Class Name */},
   {(bigint) 3 /* 3: Couple < Object: superclass typecheck marker */},
-  {(bigint) 267 /* 4: Couple < Couple: superclass typecheck marker */},
+  {(bigint) 263 /* 4: Couple < Couple: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17677,7 +18459,7 @@ const classtable_elt_t VFT_standard___collection___abstract_collection___Couple[
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: Couple < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: Couple < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -17693,6 +18475,8 @@ const classtable_elt_t VFT_standard___collection___abstract_collection___Couple[
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -17706,7 +18490,7 @@ const classtable_elt_t VFT_standard___collection___abstract_collection___Couple[
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: Couple < Couple: superclass init_table position */},
+  {(bigint) 1 /* 50: Couple < Couple: superclass init_table position */},
   {(bigint) standard___collection___abstract_collection___Couple___first},
   {(bigint) standard___collection___abstract_collection___Couple___first__eq},
   {(bigint) standard___collection___abstract_collection___Couple___second},
@@ -17766,7 +18550,7 @@ val_t NEW_Couple_standard___collection___abstract_collection___Couple___init(val
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:518 */
+  /* ../lib/standard/collection/abstract_collection.nit:518 */
   fra.me.REG[2] = NEW_standard___collection___abstract_collection___Couple();
   INIT_ATTRIBUTES__standard___collection___abstract_collection___Couple(fra.me.REG[2]);
   standard___collection___abstract_collection___Couple___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -17774,15 +18558,16 @@ val_t NEW_Couple_standard___collection___abstract_collection___Couple___init(val
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_standard___collection___range___Range[80] = {
-  {(bigint) 2059 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___range___Range[83] = {
+  {(bigint) 2095 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "Range" /* 2: Class Name */},
   {(bigint) 3 /* 3: Range < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 283 /* 6: Range < Collection: superclass typecheck marker */},
-  {(bigint) 2059 /* 7: Range < Range: superclass typecheck marker */},
+  {(bigint) 279 /* 6: Range < Collection: superclass typecheck marker */},
+  {(bigint) 2095 /* 7: Range < Range: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17793,7 +18578,7 @@ const classtable_elt_t VFT_standard___collection___range___Range[80] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: Range < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: Range < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -17809,6 +18594,8 @@ const classtable_elt_t VFT_standard___collection___range___Range[80] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Collection___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -17840,7 +18627,7 @@ const classtable_elt_t VFT_standard___collection___range___Range[80] = {
   {0} /* Class Hole :( */,
   {(bigint) standard___string___Collection___join},
   {(bigint) standard___collection___array___Collection___to_a},
-  {(bigint) 0 /* 65: Range < Collection: superclass init_table position */},
+  {(bigint) 0 /* 68: Range < Collection: superclass init_table position */},
   {(bigint) standard___collection___range___Range___iterator},
   {(bigint) standard___collection___range___Range___iterate},
   {(bigint) standard___collection___range___Range___is_empty},
@@ -17850,7 +18637,7 @@ const classtable_elt_t VFT_standard___collection___range___Range[80] = {
   {(bigint) standard___collection___range___Range___count},
   {(bigint) standard___collection___range___Range___first},
   {(bigint) standard___math___Collection___rand},
-  {(bigint) 2 /* 75: Range < Range: superclass init_table position */},
+  {(bigint) 2 /* 78: Range < Range: superclass init_table position */},
   {(bigint) standard___collection___range___Range___last},
   {(bigint) standard___collection___range___Range___after},
   {(bigint) standard___collection___range___Range___init},
@@ -17928,7 +18715,7 @@ val_t NEW_Range_standard___collection___range___Range___init(val_t p0, val_t p1)
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//range.nit:68 */
+  /* ../lib/standard/collection/range.nit:68 */
   fra.me.REG[2] = NEW_standard___collection___range___Range();
   INIT_ATTRIBUTES__standard___collection___range___Range(fra.me.REG[2]);
   standard___collection___range___Range___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -17952,7 +18739,7 @@ val_t NEW_Range_standard___collection___range___Range___without_last(val_t p0, v
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//range.nit:77 */
+  /* ../lib/standard/collection/range.nit:77 */
   fra.me.REG[2] = NEW_standard___collection___range___Range();
   INIT_ATTRIBUTES__standard___collection___range___Range(fra.me.REG[2]);
   standard___collection___range___Range___without_last(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -17960,13 +18747,14 @@ val_t NEW_Range_standard___collection___range___Range___without_last(val_t p0, v
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_standard___collection___range___IteratorRange[54] = {
-  {(bigint) 2207 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___range___IteratorRange[57] = {
+  {(bigint) 2243 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IteratorRange" /* 2: Class Name */},
   {(bigint) 3 /* 3: IteratorRange < Object: superclass typecheck marker */},
-  {(bigint) 199 /* 4: IteratorRange < Iterator: superclass typecheck marker */},
-  {(bigint) 2207 /* 5: IteratorRange < IteratorRange: superclass typecheck marker */},
+  {(bigint) 195 /* 4: IteratorRange < Iterator: superclass typecheck marker */},
+  {(bigint) 2243 /* 5: IteratorRange < IteratorRange: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17979,7 +18767,7 @@ const classtable_elt_t VFT_standard___collection___range___IteratorRange[54] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: IteratorRange < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: IteratorRange < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -17995,6 +18783,8 @@ const classtable_elt_t VFT_standard___collection___range___IteratorRange[54] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -18009,11 +18799,11 @@ const classtable_elt_t VFT_standard___collection___range___IteratorRange[54] = {
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) standard___collection___array___Iterator___to_a},
-  {(bigint) 0 /* 48: IteratorRange < Iterator: superclass init_table position */},
+  {(bigint) 0 /* 51: IteratorRange < Iterator: superclass init_table position */},
   {(bigint) standard___collection___range___IteratorRange___item},
   {(bigint) standard___collection___range___IteratorRange___next},
   {(bigint) standard___collection___range___IteratorRange___is_ok},
-  {(bigint) 2 /* 52: IteratorRange < IteratorRange: superclass init_table position */},
+  {(bigint) 2 /* 55: IteratorRange < IteratorRange: superclass init_table position */},
   {(bigint) standard___collection___range___IteratorRange___init},
 };
 /* 0: Pointer to the classtable */
@@ -18080,7 +18870,7 @@ val_t NEW_IteratorRange_standard___collection___range___IteratorRange___init(val
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//range.nit:97 */
+  /* ../lib/standard/collection/range.nit:97 */
   fra.me.REG[1] = NEW_standard___collection___range___IteratorRange();
   INIT_ATTRIBUTES__standard___collection___range___IteratorRange(fra.me.REG[1]);
   standard___collection___range___IteratorRange___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -18088,26 +18878,27 @@ val_t NEW_IteratorRange_standard___collection___range___IteratorRange___init(val
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___collection___list___List[114] = {
-  {(bigint) 3555 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___list___List[111] = {
+  {(bigint) 3635 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "List" /* 2: Class Name */},
   {(bigint) 3 /* 3: List < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 283 /* 6: List < Collection: superclass typecheck marker */},
-  {(bigint) 351 /* 7: List < SequenceRead: superclass typecheck marker */},
-  {(bigint) 367 /* 8: List < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 2779 /* 9: List < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 279 /* 6: List < Collection: superclass typecheck marker */},
+  {(bigint) 343 /* 7: List < SequenceRead: superclass typecheck marker */},
+  {(bigint) 359 /* 8: List < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 2539 /* 9: List < SimpleCollection: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3251 /* 11: List < Sequence: superclass typecheck marker */},
+  {(bigint) 3635 /* 12: List < List: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3187 /* 11: List < Sequence: superclass typecheck marker */},
-  {(bigint) 3555 /* 12: List < List: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: List < Object: superclass init_table position */},
+  {(bigint) 5 /* 19: List < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -18123,6 +18914,8 @@ const classtable_elt_t VFT_standard___collection___list___List[114] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Collection___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -18138,9 +18931,9 @@ const classtable_elt_t VFT_standard___collection___list___List[114] = {
   {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) 2 /* 52: List < SimpleCollection: superclass init_table position */},
+  {(bigint) standard___collection___abstract_collection___Sequence___add},
+  {(bigint) standard___collection___abstract_collection___SimpleCollection___add_all},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18154,7 +18947,7 @@ const classtable_elt_t VFT_standard___collection___list___List[114] = {
   {0} /* Class Hole :( */,
   {(bigint) standard___string___Collection___join},
   {(bigint) standard___collection___array___Collection___to_a},
-  {(bigint) 4 /* 65: List < Collection: superclass init_table position */},
+  {(bigint) 4 /* 68: List < Collection: superclass init_table position */},
   {(bigint) standard___collection___list___List___iterator},
   {(bigint) standard___collection___abstract_collection___Collection___iterate},
   {(bigint) standard___collection___list___List___is_empty},
@@ -18164,11 +18957,11 @@ const classtable_elt_t VFT_standard___collection___list___List[114] = {
   {(bigint) standard___collection___list___List___count},
   {(bigint) standard___collection___list___List___first},
   {(bigint) standard___math___Collection___rand},
-  {(bigint) 1 /* 75: List < SequenceRead: superclass init_table position */},
+  {(bigint) 1 /* 78: List < SequenceRead: superclass init_table position */},
   {(bigint) standard___collection___list___List_____bra},
   {(bigint) standard___collection___list___List___last},
   {(bigint) standard___collection___abstract_collection___SequenceRead___index_of},
-  {(bigint) 3 /* 79: List < RemovableCollection: superclass init_table position */},
+  {(bigint) 3 /* 82: List < RemovableCollection: superclass init_table position */},
   {(bigint) standard___collection___list___List___clear},
   {(bigint) standard___collection___list___List___remove},
   {(bigint) standard___collection___abstract_collection___RemovableCollection___remove_all},
@@ -18179,13 +18972,7 @@ const classtable_elt_t VFT_standard___collection___list___List[114] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 2 /* 93: List < SimpleCollection: superclass init_table position */},
-  {(bigint) standard___collection___abstract_collection___Sequence___add},
-  {(bigint) standard___collection___abstract_collection___SimpleCollection___add_all},
-  {(bigint) 0 /* 96: List < Sequence: superclass init_table position */},
+  {(bigint) 0 /* 93: List < Sequence: superclass init_table position */},
   {(bigint) standard___collection___list___List___first__eq},
   {(bigint) standard___collection___list___List___last__eq},
   {(bigint) standard___collection___list___List___push},
@@ -18195,7 +18982,7 @@ const classtable_elt_t VFT_standard___collection___list___List[114] = {
   {(bigint) standard___collection___list___List___shift},
   {(bigint) standard___collection___list___List_____braeq},
   {(bigint) standard___collection___list___List___remove_at},
-  {(bigint) 6 /* 106: List < List: superclass init_table position */},
+  {(bigint) 6 /* 103: List < List: superclass init_table position */},
   {(bigint) standard___collection___list___List___link},
   {(bigint) standard___collection___list___List___init},
   {(bigint) standard___collection___list___List___from},
@@ -18253,7 +19040,7 @@ val_t NEW_List_standard___collection___list___List___init(void){
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./../lib/standard//collection//list.nit:173 */
+  /* ../lib/standard/collection/list.nit:173 */
   fra.me.REG[0] = NEW_standard___collection___list___List();
   INIT_ATTRIBUTES__standard___collection___list___List(fra.me.REG[0]);
   standard___collection___list___List___init(fra.me.REG[0], init_table);
@@ -18275,7 +19062,7 @@ val_t NEW_List_standard___collection___list___List___from(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//list.nit:176 */
+  /* ../lib/standard/collection/list.nit:176 */
   fra.me.REG[1] = NEW_standard___collection___list___List();
   INIT_ATTRIBUTES__standard___collection___list___List(fra.me.REG[1]);
   standard___collection___list___List___from(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -18283,14 +19070,15 @@ val_t NEW_List_standard___collection___list___List___from(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___collection___list___ListIterator[59] = {
-  {(bigint) 2855 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___list___ListIterator[62] = {
+  {(bigint) 2615 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ListIterator" /* 2: Class Name */},
   {(bigint) 3 /* 3: ListIterator < Object: superclass typecheck marker */},
-  {(bigint) 199 /* 4: ListIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2223 /* 5: ListIterator < IndexedIterator: superclass typecheck marker */},
-  {(bigint) 2855 /* 6: ListIterator < ListIterator: superclass typecheck marker */},
+  {(bigint) 195 /* 4: ListIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 2259 /* 5: ListIterator < IndexedIterator: superclass typecheck marker */},
+  {(bigint) 2615 /* 6: ListIterator < ListIterator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18302,7 +19090,7 @@ const classtable_elt_t VFT_standard___collection___list___ListIterator[59] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ListIterator < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: ListIterator < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -18318,6 +19106,8 @@ const classtable_elt_t VFT_standard___collection___list___ListIterator[59] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -18332,13 +19122,13 @@ const classtable_elt_t VFT_standard___collection___list___ListIterator[59] = {
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) standard___collection___array___Iterator___to_a},
-  {(bigint) 1 /* 48: ListIterator < Iterator: superclass init_table position */},
+  {(bigint) 1 /* 51: ListIterator < Iterator: superclass init_table position */},
   {(bigint) standard___collection___list___ListIterator___item},
   {(bigint) standard___collection___list___ListIterator___next},
   {(bigint) standard___collection___list___ListIterator___is_ok},
-  {(bigint) 0 /* 52: ListIterator < IndexedIterator: superclass init_table position */},
+  {(bigint) 0 /* 55: ListIterator < IndexedIterator: superclass init_table position */},
   {(bigint) standard___collection___list___ListIterator___index},
-  {(bigint) 3 /* 54: ListIterator < ListIterator: superclass init_table position */},
+  {(bigint) 3 /* 57: ListIterator < ListIterator: superclass init_table position */},
   {(bigint) standard___collection___list___ListIterator___item__eq},
   {(bigint) standard___collection___list___ListIterator___init},
   {(bigint) standard___collection___list___ListIterator___delete},
@@ -18409,7 +19199,7 @@ val_t NEW_ListIterator_standard___collection___list___ListIterator___init(val_t
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//list.nit:256 */
+  /* ../lib/standard/collection/list.nit:256 */
   fra.me.REG[1] = NEW_standard___collection___list___ListIterator();
   INIT_ATTRIBUTES__standard___collection___list___ListIterator(fra.me.REG[1]);
   standard___collection___list___ListIterator___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -18417,16 +19207,17 @@ val_t NEW_ListIterator_standard___collection___list___ListIterator___init(val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___collection___list___ListNode[85] = {
-  {(bigint) 2851 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___list___ListNode[88] = {
+  {(bigint) 2611 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ListNode" /* 2: Class Name */},
   {(bigint) 3 /* 3: ListNode < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 283 /* 6: ListNode < Collection: superclass typecheck marker */},
-  {(bigint) 2323 /* 7: ListNode < Container: superclass typecheck marker */},
-  {(bigint) 2851 /* 8: ListNode < ListNode: superclass typecheck marker */},
+  {(bigint) 279 /* 6: ListNode < Collection: superclass typecheck marker */},
+  {(bigint) 2359 /* 7: ListNode < Container: superclass typecheck marker */},
+  {(bigint) 2611 /* 8: ListNode < ListNode: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18436,7 +19227,7 @@ const classtable_elt_t VFT_standard___collection___list___ListNode[85] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ListNode < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ListNode < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -18452,6 +19243,8 @@ const classtable_elt_t VFT_standard___collection___list___ListNode[85] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Collection___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -18483,268 +19276,108 @@ const classtable_elt_t VFT_standard___collection___list___ListNode[85] = {
   {0} /* Class Hole :( */,
   {(bigint) standard___string___Collection___join},
   {(bigint) standard___collection___array___Collection___to_a},
-  {(bigint) 0 /* 65: ListNode < Collection: superclass init_table position */},
-  {(bigint) standard___collection___abstract_collection___Container___iterator},
-  {(bigint) standard___collection___abstract_collection___Collection___iterate},
-  {(bigint) standard___collection___abstract_collection___Container___is_empty},
-  {(bigint) standard___collection___abstract_collection___Container___length},
-  {(bigint) standard___collection___abstract_collection___Container___has},
-  {(bigint) standard___collection___abstract_collection___Container___has_only},
-  {(bigint) standard___collection___abstract_collection___Container___count},
-  {(bigint) standard___collection___abstract_collection___Container___first},
-  {(bigint) standard___math___Collection___rand},
-  {(bigint) 2 /* 75: ListNode < Container: superclass init_table position */},
-  {(bigint) standard___collection___abstract_collection___Container___init},
-  {(bigint) standard___collection___abstract_collection___Container___item},
-  {(bigint) standard___collection___abstract_collection___Container___item__eq},
-  {(bigint) 3 /* 79: ListNode < ListNode: superclass init_table position */},
-  {(bigint) standard___collection___list___ListNode___init},
-  {(bigint) standard___collection___list___ListNode___next},
-  {(bigint) standard___collection___list___ListNode___next__eq},
-  {(bigint) standard___collection___list___ListNode___prev},
-  {(bigint) standard___collection___list___ListNode___prev__eq},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute ListNode::_item */
-/* 3: Attribute ListNode::_next */
-/* 4: Attribute ListNode::_prev */
-void INIT_ATTRIBUTES__standard___collection___list___ListNode(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__standard___collection___list___ListNode;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_standard___collection___list___ListNode(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_standard___collection___list___ListNode;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_standard___collection___list___ListNode(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_standard___collection___list___ListNode;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_ListNode_standard___collection___list___ListNode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 289;
-  fra.me.meth = LOCATE_NEW_ListNode_standard___collection___list___ListNode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//list.nit:289 */
-  fra.me.REG[1] = NEW_standard___collection___list___ListNode();
-  INIT_ATTRIBUTES__standard___collection___list___ListNode(fra.me.REG[1]);
-  standard___collection___list___ListNode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_standard___collection___list___ListNode(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_standard___collection___array___AbstractArrayRead[90] = {
-  {(bigint) 3039 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AbstractArrayRead" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AbstractArrayRead < Object: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 283 /* 6: AbstractArrayRead < Collection: superclass typecheck marker */},
-  {(bigint) 351 /* 7: AbstractArrayRead < SequenceRead: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 3039 /* 10: AbstractArrayRead < AbstractArrayRead: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AbstractArrayRead < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___collection___array___AbstractArrayRead_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___collection___array___AbstractArrayRead___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Collection___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) standard___string___Collection___join},
-  {(bigint) standard___collection___array___Collection___to_a},
-  {(bigint) 1 /* 65: AbstractArrayRead < Collection: superclass init_table position */},
-  {(bigint) standard___collection___array___AbstractArrayRead___iterator},
+  {(bigint) 0 /* 68: ListNode < Collection: superclass init_table position */},
+  {(bigint) standard___collection___abstract_collection___Container___iterator},
   {(bigint) standard___collection___abstract_collection___Collection___iterate},
-  {(bigint) standard___collection___array___AbstractArrayRead___is_empty},
-  {(bigint) standard___collection___array___AbstractArrayRead___length},
-  {(bigint) standard___collection___array___AbstractArrayRead___has},
-  {(bigint) standard___collection___array___AbstractArrayRead___has_only},
-  {(bigint) standard___collection___array___AbstractArrayRead___count},
-  {(bigint) standard___collection___abstract_collection___SequenceRead___first},
+  {(bigint) standard___collection___abstract_collection___Container___is_empty},
+  {(bigint) standard___collection___abstract_collection___Container___length},
+  {(bigint) standard___collection___abstract_collection___Container___has},
+  {(bigint) standard___collection___abstract_collection___Container___has_only},
+  {(bigint) standard___collection___abstract_collection___Container___count},
+  {(bigint) standard___collection___abstract_collection___Container___first},
   {(bigint) standard___math___Collection___rand},
-  {(bigint) 0 /* 75: AbstractArrayRead < SequenceRead: superclass init_table position */},
-  {(bigint) standard___collection___abstract_collection___SequenceRead_____bra},
-  {(bigint) standard___collection___abstract_collection___SequenceRead___last},
-  {(bigint) standard___collection___array___AbstractArrayRead___index_of},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 3 /* 83: AbstractArrayRead < AbstractArrayRead: superclass init_table position */},
-  {(bigint) standard___collection___array___AbstractArrayRead___last_index_of},
-  {(bigint) standard___collection___array___AbstractArrayRead___index_of_from},
-  {(bigint) standard___collection___array___AbstractArrayRead___last_index_of_from},
-  {(bigint) standard___collection___array___AbstractArrayRead___reversed},
-  {(bigint) standard___collection___array___AbstractArrayRead___copy_to},
-  {(bigint) standard___collection___array___AbstractArrayRead___init},
+  {(bigint) 2 /* 78: ListNode < Container: superclass init_table position */},
+  {(bigint) standard___collection___abstract_collection___Container___init},
+  {(bigint) standard___collection___abstract_collection___Container___item},
+  {(bigint) standard___collection___abstract_collection___Container___item__eq},
+  {(bigint) 3 /* 82: ListNode < ListNode: superclass init_table position */},
+  {(bigint) standard___collection___list___ListNode___init},
+  {(bigint) standard___collection___list___ListNode___next},
+  {(bigint) standard___collection___list___ListNode___next__eq},
+  {(bigint) standard___collection___list___ListNode___prev},
+  {(bigint) standard___collection___list___ListNode___prev__eq},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute AbstractArrayRead::_length */
-void INIT_ATTRIBUTES__standard___collection___array___AbstractArrayRead(val_t p0){
+/* 2: Attribute ListNode::_item */
+/* 3: Attribute ListNode::_next */
+/* 4: Attribute ListNode::_prev */
+void INIT_ATTRIBUTES__standard___collection___list___ListNode(val_t p0){
   struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__standard___collection___array___AbstractArrayRead;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__standard___collection___list___ListNode;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:24 */
-  REGB0 = TAG_Int(0);
-  ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_standard___collection___array___AbstractArrayRead(void)
+val_t NEW_standard___collection___list___ListNode(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_standard___collection___array___AbstractArrayRead;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_standard___collection___list___ListNode;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_standard___collection___array___AbstractArrayRead(val_t p0){
+void CHECKNEW_standard___collection___list___ListNode(val_t p0){
   struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_standard___collection___array___AbstractArrayRead;
+  fra.me.meth = LOCATE_CHECKNEW_standard___collection___list___ListNode;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_nitc, 0);
-  }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_AbstractArrayRead_standard___collection___array___AbstractArrayRead___init(void){
-  struct {struct stack_frame_t me;} fra;
+val_t NEW_ListNode_standard___collection___list___ListNode___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AbstractArrayRead_standard___collection___array___AbstractArrayRead___init;
+  fra.me.line = 289;
+  fra.me.meth = LOCATE_NEW_ListNode_standard___collection___list___ListNode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
+  fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_standard___collection___array___AbstractArrayRead();
-  INIT_ATTRIBUTES__standard___collection___array___AbstractArrayRead(fra.me.REG[0]);
-  standard___collection___array___AbstractArrayRead___init(fra.me.REG[0], init_table);
-  CHECKNEW_standard___collection___array___AbstractArrayRead(fra.me.REG[0]);
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* ../lib/standard/collection/list.nit:289 */
+  fra.me.REG[1] = NEW_standard___collection___list___ListNode();
+  INIT_ATTRIBUTES__standard___collection___list___ListNode(fra.me.REG[1]);
+  standard___collection___list___ListNode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_standard___collection___list___ListNode(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___collection___array___AbstractArray[122] = {
-  {(bigint) 3567 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AbstractArray" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AbstractArray < Object: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
+const classtable_elt_t VFT_standard___collection___array___Array[119] = {
+  {(bigint) 3831 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "Array" /* 2: Class Name */},
+  {(bigint) 3 /* 3: Array < Object: superclass typecheck marker */},
+  {(bigint) 3831 /* 4: Array < Array: superclass typecheck marker */},
+  {(bigint) 291 /* 5: Array < ArrayCapable: superclass typecheck marker */},
+  {(bigint) 279 /* 6: Array < Collection: superclass typecheck marker */},
+  {(bigint) 343 /* 7: Array < SequenceRead: superclass typecheck marker */},
+  {(bigint) 359 /* 8: Array < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 2539 /* 9: Array < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 2799 /* 10: Array < AbstractArrayRead: superclass typecheck marker */},
+  {(bigint) 3251 /* 11: Array < Sequence: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 283 /* 6: AbstractArray < Collection: superclass typecheck marker */},
-  {(bigint) 351 /* 7: AbstractArray < SequenceRead: superclass typecheck marker */},
-  {(bigint) 367 /* 8: AbstractArray < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 2779 /* 9: AbstractArray < SimpleCollection: superclass typecheck marker */},
-  {(bigint) 3039 /* 10: AbstractArray < AbstractArrayRead: superclass typecheck marker */},
-  {(bigint) 3187 /* 11: AbstractArray < Sequence: superclass typecheck marker */},
+  {(bigint) 3647 /* 13: Array < AbstractArray: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3567 /* 13: AbstractArray < AbstractArray: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AbstractArray < Object: superclass init_table position */},
+  {(bigint) 7 /* 19: Array < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___collection___array___AbstractArrayRead_____eqeq},
@@ -18760,7 +19393,9 @@ const classtable_elt_t VFT_standard___collection___array___AbstractArray[122] =
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Collection___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Array___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -18775,15 +19410,15 @@ const classtable_elt_t VFT_standard___collection___array___AbstractArray[122] =
   {(bigint) utils___Object___cmangle_table},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 4 /* 52: Array < SimpleCollection: superclass init_table position */},
+  {(bigint) standard___collection___array___Array___add},
+  {(bigint) standard___collection___abstract_collection___SimpleCollection___add_all},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) 8 /* 59: Array < ArrayCapable: superclass init_table position */},
+  {(bigint) standard___collection___array___ArrayCapable___calloc_array},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18791,9 +19426,9 @@ const classtable_elt_t VFT_standard___collection___array___AbstractArray[122] =
   {0} /* Class Hole :( */,
   {(bigint) standard___string___Collection___join},
   {(bigint) standard___collection___array___Collection___to_a},
-  {(bigint) 1 /* 65: AbstractArray < Collection: superclass init_table position */},
+  {(bigint) 6 /* 68: Array < Collection: superclass init_table position */},
   {(bigint) standard___collection___array___AbstractArrayRead___iterator},
-  {(bigint) standard___collection___abstract_collection___Collection___iterate},
+  {(bigint) standard___collection___array___Array___iterate},
   {(bigint) standard___collection___array___AbstractArrayRead___is_empty},
   {(bigint) standard___collection___array___AbstractArrayRead___length},
   {(bigint) standard___collection___array___AbstractArrayRead___has},
@@ -18801,28 +19436,22 @@ const classtable_elt_t VFT_standard___collection___array___AbstractArray[122] =
   {(bigint) standard___collection___array___AbstractArrayRead___count},
   {(bigint) standard___collection___abstract_collection___SequenceRead___first},
   {(bigint) standard___math___Collection___rand},
-  {(bigint) 0 /* 75: AbstractArray < SequenceRead: superclass init_table position */},
-  {(bigint) standard___collection___abstract_collection___SequenceRead_____bra},
+  {(bigint) 3 /* 78: Array < SequenceRead: superclass init_table position */},
+  {(bigint) standard___collection___array___Array_____bra},
   {(bigint) standard___collection___abstract_collection___SequenceRead___last},
   {(bigint) standard___collection___array___AbstractArrayRead___index_of},
-  {(bigint) 6 /* 79: AbstractArray < RemovableCollection: superclass init_table position */},
+  {(bigint) 5 /* 82: Array < RemovableCollection: superclass init_table position */},
   {(bigint) standard___collection___array___AbstractArray___clear},
   {(bigint) standard___collection___array___AbstractArray___remove},
   {(bigint) standard___collection___array___AbstractArray___remove_all},
-  {(bigint) 3 /* 83: AbstractArray < AbstractArrayRead: superclass init_table position */},
+  {(bigint) 1 /* 86: Array < AbstractArrayRead: superclass init_table position */},
   {(bigint) standard___collection___array___AbstractArrayRead___last_index_of},
   {(bigint) standard___collection___array___AbstractArrayRead___index_of_from},
   {(bigint) standard___collection___array___AbstractArrayRead___last_index_of_from},
   {(bigint) standard___collection___array___AbstractArrayRead___reversed},
   {(bigint) standard___collection___array___AbstractArrayRead___copy_to},
   {(bigint) standard___collection___array___AbstractArrayRead___init},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 5 /* 93: AbstractArray < SimpleCollection: superclass init_table position */},
-  {(bigint) standard___collection___array___AbstractArray___add},
-  {(bigint) standard___collection___abstract_collection___SimpleCollection___add_all},
-  {(bigint) 4 /* 96: AbstractArray < Sequence: superclass init_table position */},
+  {(bigint) 2 /* 93: Array < Sequence: superclass init_table position */},
   {(bigint) standard___collection___abstract_collection___Sequence___first__eq},
   {(bigint) standard___collection___abstract_collection___Sequence___last__eq},
   {(bigint) standard___collection___array___AbstractArray___push},
@@ -18830,143 +19459,9 @@ const classtable_elt_t VFT_standard___collection___array___AbstractArray[122] =
   {(bigint) standard___collection___array___AbstractArray___pop},
   {(bigint) standard___collection___array___AbstractArray___unshift},
   {(bigint) standard___collection___array___AbstractArray___shift},
-  {(bigint) standard___collection___abstract_collection___Sequence_____braeq},
+  {(bigint) standard___collection___array___Array_____braeq},
   {(bigint) standard___collection___array___AbstractArray___remove_at},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 7 /* 118: AbstractArray < AbstractArray: superclass init_table position */},
-  {(bigint) standard___collection___array___AbstractArray___enlarge},
-  {(bigint) standard___collection___array___AbstractArray___insert},
-  {(bigint) standard___collection___array___AbstractArray___swap_at},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AbstractArray::_length */
-void INIT_ATTRIBUTES__standard___collection___array___AbstractArray(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__standard___collection___array___AbstractArray;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:24 */
-  REGB0 = TAG_Int(0);
-  ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_standard___collection___array___AbstractArray(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_standard___collection___array___AbstractArray;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_standard___collection___array___AbstractArray(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_standard___collection___array___AbstractArray;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AbstractArray_standard___collection___array___AbstractArrayRead___init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AbstractArray_standard___collection___array___AbstractArrayRead___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_standard___collection___array___AbstractArray();
-  INIT_ATTRIBUTES__standard___collection___array___AbstractArray(fra.me.REG[0]);
-  standard___collection___array___AbstractArrayRead___init(fra.me.REG[0], init_table);
-  CHECKNEW_standard___collection___array___AbstractArray(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_standard___collection___array___Array[122] = {
-  {(bigint) 3747 /* 0: Identity */},
-  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "Array" /* 2: Class Name */},
-  {(bigint) 3 /* 3: Array < Object: superclass typecheck marker */},
-  {(bigint) 3747 /* 4: Array < Array: superclass typecheck marker */},
-  {(bigint) 295 /* 5: Array < ArrayCapable: superclass typecheck marker */},
-  {(bigint) 283 /* 6: Array < Collection: superclass typecheck marker */},
-  {(bigint) 351 /* 7: Array < SequenceRead: superclass typecheck marker */},
-  {(bigint) 367 /* 8: Array < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 2779 /* 9: Array < SimpleCollection: superclass typecheck marker */},
-  {(bigint) 3039 /* 10: Array < AbstractArrayRead: superclass typecheck marker */},
-  {(bigint) 3187 /* 11: Array < Sequence: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 3567 /* 13: Array < AbstractArray: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: Array < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___collection___array___AbstractArrayRead_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___collection___array___AbstractArrayRead___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Array___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 9 /* 47: Array < Array: superclass init_table position */},
+  {(bigint) 9 /* 103: Array < Array: superclass init_table position */},
   {(bigint) standard___collection___array___Array___init},
   {(bigint) standard___collection___array___Array___with_items},
   {(bigint) standard___collection___array___Array___with_capacity},
@@ -18975,69 +19470,10 @@ const classtable_elt_t VFT_standard___collection___array___Array[122] = {
   {(bigint) standard___collection___array___Array___intern_items},
   {(bigint) standard___collection___array___Array___sort},
   {(bigint) standard___collection___array___Array___sub_sort},
-  {(bigint) 8 /* 56: Array < ArrayCapable: superclass init_table position */},
-  {(bigint) standard___collection___array___ArrayCapable___calloc_array},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) standard___string___Collection___join},
-  {(bigint) standard___collection___array___Collection___to_a},
-  {(bigint) 1 /* 65: Array < Collection: superclass init_table position */},
-  {(bigint) standard___collection___array___AbstractArrayRead___iterator},
-  {(bigint) standard___collection___array___Array___iterate},
-  {(bigint) standard___collection___array___AbstractArrayRead___is_empty},
-  {(bigint) standard___collection___array___AbstractArrayRead___length},
-  {(bigint) standard___collection___array___AbstractArrayRead___has},
-  {(bigint) standard___collection___array___AbstractArrayRead___has_only},
-  {(bigint) standard___collection___array___AbstractArrayRead___count},
-  {(bigint) standard___collection___abstract_collection___SequenceRead___first},
-  {(bigint) standard___math___Collection___rand},
-  {(bigint) 0 /* 75: Array < SequenceRead: superclass init_table position */},
-  {(bigint) standard___collection___array___Array_____bra},
-  {(bigint) standard___collection___abstract_collection___SequenceRead___last},
-  {(bigint) standard___collection___array___AbstractArrayRead___index_of},
-  {(bigint) 6 /* 79: Array < RemovableCollection: superclass init_table position */},
-  {(bigint) standard___collection___array___AbstractArray___clear},
-  {(bigint) standard___collection___array___AbstractArray___remove},
-  {(bigint) standard___collection___array___AbstractArray___remove_all},
-  {(bigint) 3 /* 83: Array < AbstractArrayRead: superclass init_table position */},
-  {(bigint) standard___collection___array___AbstractArrayRead___last_index_of},
-  {(bigint) standard___collection___array___AbstractArrayRead___index_of_from},
-  {(bigint) standard___collection___array___AbstractArrayRead___last_index_of_from},
-  {(bigint) standard___collection___array___AbstractArrayRead___reversed},
-  {(bigint) standard___collection___array___AbstractArrayRead___copy_to},
-  {(bigint) standard___collection___array___AbstractArrayRead___init},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 5 /* 93: Array < SimpleCollection: superclass init_table position */},
-  {(bigint) standard___collection___array___Array___add},
-  {(bigint) standard___collection___abstract_collection___SimpleCollection___add_all},
-  {(bigint) 4 /* 96: Array < Sequence: superclass init_table position */},
-  {(bigint) standard___collection___abstract_collection___Sequence___first__eq},
-  {(bigint) standard___collection___abstract_collection___Sequence___last__eq},
-  {(bigint) standard___collection___array___AbstractArray___push},
-  {(bigint) standard___collection___abstract_collection___Sequence___append},
-  {(bigint) standard___collection___array___AbstractArray___pop},
-  {(bigint) standard___collection___array___AbstractArray___unshift},
-  {(bigint) standard___collection___array___AbstractArray___shift},
-  {(bigint) standard___collection___array___Array_____braeq},
-  {(bigint) standard___collection___array___AbstractArray___remove_at},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 7 /* 118: Array < AbstractArray: superclass init_table position */},
+  {(bigint) 0 /* 115: Array < AbstractArray: superclass init_table position */},
   {(bigint) standard___collection___array___Array___enlarge},
   {(bigint) standard___collection___array___AbstractArray___insert},
   {(bigint) standard___collection___array___AbstractArray___swap_at},
@@ -19061,13 +19497,13 @@ void INIT_ATTRIBUTES__standard___collection___array___Array(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:364 */
+  /* ../lib/standard/collection/array.nit:364 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___collection___array___Array____items(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//array.nit:372 */
+  /* ../lib/standard/collection/array.nit:372 */
   REGB0 = TAG_Int(0);
   ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]) = REGB0;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Int(0);
   ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -19120,7 +19556,7 @@ val_t NEW_Array_standard___collection___array___Array___with_capacity(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./../lib/standard//collection//array.nit:332 */
+  /* ../lib/standard/collection/array.nit:332 */
   fra.me.REG[0] = NEW_standard___collection___array___Array();
   INIT_ATTRIBUTES__standard___collection___array___Array(fra.me.REG[0]);
   standard___collection___array___Array___with_capacity(fra.me.REG[0], REGB0, init_table);
@@ -19140,7 +19576,7 @@ val_t NEW_Array_standard___collection___array___Array___init(void){
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./../lib/standard//collection//array.nit:317 */
+  /* ../lib/standard/collection/array.nit:317 */
   fra.me.REG[0] = NEW_standard___collection___array___Array();
   INIT_ATTRIBUTES__standard___collection___array___Array(fra.me.REG[0]);
   standard___collection___array___Array___init(fra.me.REG[0], init_table);
@@ -19164,7 +19600,7 @@ val_t NEW_Array_standard___collection___array___Array___filled_with(val_t p0, va
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//collection//array.nit:341 */
+  /* ../lib/standard/collection/array.nit:341 */
   fra.me.REG[1] = NEW_standard___collection___array___Array();
   INIT_ATTRIBUTES__standard___collection___array___Array(fra.me.REG[1]);
   standard___collection___array___Array___filled_with(fra.me.REG[1], fra.me.REG[0], REGB0, init_table);
@@ -19186,7 +19622,7 @@ val_t NEW_Array_standard___collection___array___Array___with_items(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:324 */
+  /* ../lib/standard/collection/array.nit:324 */
   fra.me.REG[1] = NEW_standard___collection___array___Array();
   INIT_ATTRIBUTES__standard___collection___array___Array(fra.me.REG[1]);
   standard___collection___array___Array___with_items(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -19210,7 +19646,7 @@ val_t NEW_Array_standard___collection___array___Array___with_native(val_t p0, va
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//collection//array.nit:355 */
+  /* ../lib/standard/collection/array.nit:355 */
   fra.me.REG[1] = NEW_standard___collection___array___Array();
   INIT_ATTRIBUTES__standard___collection___array___Array(fra.me.REG[1]);
   standard___collection___array___Array___with_native(fra.me.REG[1], fra.me.REG[0], REGB0, init_table);
@@ -19218,14 +19654,15 @@ val_t NEW_Array_standard___collection___array___Array___with_native(val_t p0, va
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___collection___array___ArrayIterator[56] = {
-  {(bigint) 3031 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___array___ArrayIterator[59] = {
+  {(bigint) 2791 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ArrayIterator" /* 2: Class Name */},
   {(bigint) 3 /* 3: ArrayIterator < Object: superclass typecheck marker */},
-  {(bigint) 199 /* 4: ArrayIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2223 /* 5: ArrayIterator < IndexedIterator: superclass typecheck marker */},
-  {(bigint) 3031 /* 6: ArrayIterator < ArrayIterator: superclass typecheck marker */},
+  {(bigint) 195 /* 4: ArrayIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 2259 /* 5: ArrayIterator < IndexedIterator: superclass typecheck marker */},
+  {(bigint) 2791 /* 6: ArrayIterator < ArrayIterator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19237,7 +19674,7 @@ const classtable_elt_t VFT_standard___collection___array___ArrayIterator[56] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ArrayIterator < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: ArrayIterator < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -19253,6 +19690,8 @@ const classtable_elt_t VFT_standard___collection___array___ArrayIterator[56] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -19267,13 +19706,13 @@ const classtable_elt_t VFT_standard___collection___array___ArrayIterator[56] = {
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) standard___collection___array___Iterator___to_a},
-  {(bigint) 1 /* 48: ArrayIterator < Iterator: superclass init_table position */},
+  {(bigint) 1 /* 51: ArrayIterator < Iterator: superclass init_table position */},
   {(bigint) standard___collection___array___ArrayIterator___item},
   {(bigint) standard___collection___array___ArrayIterator___next},
   {(bigint) standard___collection___array___ArrayIterator___is_ok},
-  {(bigint) 0 /* 52: ArrayIterator < IndexedIterator: superclass init_table position */},
+  {(bigint) 0 /* 55: ArrayIterator < IndexedIterator: superclass init_table position */},
   {(bigint) standard___collection___array___ArrayIterator___index},
-  {(bigint) 3 /* 54: ArrayIterator < ArrayIterator: superclass init_table position */},
+  {(bigint) 3 /* 57: ArrayIterator < ArrayIterator: superclass init_table position */},
   {(bigint) standard___collection___array___ArrayIterator___init},
 };
 /* 0: Pointer to the classtable */
@@ -19293,7 +19732,7 @@ void INIT_ATTRIBUTES__standard___collection___array___ArrayIterator(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:445 */
+  /* ../lib/standard/collection/array.nit:445 */
   REGB0 = TAG_Int(0);
   ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -19346,7 +19785,7 @@ val_t NEW_ArrayIterator_standard___collection___array___ArrayIterator___init(val
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:439 */
+  /* ../lib/standard/collection/array.nit:439 */
   fra.me.REG[1] = NEW_standard___collection___array___ArrayIterator();
   INIT_ATTRIBUTES__standard___collection___array___ArrayIterator(fra.me.REG[1]);
   standard___collection___array___ArrayIterator___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -19354,18 +19793,19 @@ val_t NEW_ArrayIterator_standard___collection___array___ArrayIterator___init(val
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___collection___array___ArraySet[101] = {
-  {(bigint) 3563 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___array___ArraySet[91] = {
+  {(bigint) 3643 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ArraySet" /* 2: Class Name */},
   {(bigint) 3 /* 3: ArraySet < Object: superclass typecheck marker */},
-  {(bigint) 3183 /* 4: ArraySet < Set: superclass typecheck marker */},
+  {(bigint) 3247 /* 4: ArraySet < Set: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 279 /* 6: ArraySet < Collection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 283 /* 6: ArraySet < Collection: superclass typecheck marker */},
+  {(bigint) 359 /* 8: ArraySet < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 2539 /* 9: ArraySet < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 3643 /* 10: ArraySet < ArraySet: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 367 /* 8: ArraySet < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 2779 /* 9: ArraySet < SimpleCollection: superclass typecheck marker */},
-  {(bigint) 3563 /* 10: ArraySet < ArraySet: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19373,7 +19813,7 @@ const classtable_elt_t VFT_standard___collection___array___ArraySet[101] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 4 /* 18: ArraySet < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: ArraySet < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -19389,6 +19829,8 @@ const classtable_elt_t VFT_standard___collection___array___ArraySet[101] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Collection___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -19402,11 +19844,11 @@ const classtable_elt_t VFT_standard___collection___array___ArraySet[101] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ArraySet < Set: superclass init_table position */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) 0 /* 50: ArraySet < Set: superclass init_table position */},
   {0} /* Class Hole :( */,
+  {(bigint) 1 /* 52: ArraySet < SimpleCollection: superclass init_table position */},
+  {(bigint) standard___collection___array___ArraySet___add},
+  {(bigint) standard___collection___abstract_collection___SimpleCollection___add_all},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19420,7 +19862,7 @@ const classtable_elt_t VFT_standard___collection___array___ArraySet[101] = {
   {0} /* Class Hole :( */,
   {(bigint) standard___string___Collection___join},
   {(bigint) standard___collection___array___Collection___to_a},
-  {(bigint) 3 /* 65: ArraySet < Collection: superclass init_table position */},
+  {(bigint) 3 /* 68: ArraySet < Collection: superclass init_table position */},
   {(bigint) standard___collection___array___ArraySet___iterator},
   {(bigint) standard___collection___abstract_collection___Collection___iterate},
   {(bigint) standard___collection___array___ArraySet___is_empty},
@@ -19434,24 +19876,11 @@ const classtable_elt_t VFT_standard___collection___array___ArraySet[101] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2 /* 79: ArraySet < RemovableCollection: superclass init_table position */},
+  {(bigint) 2 /* 82: ArraySet < RemovableCollection: superclass init_table position */},
   {(bigint) standard___collection___array___ArraySet___clear},
   {(bigint) standard___collection___array___ArraySet___remove},
   {(bigint) standard___collection___array___ArraySet___remove_all},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 1 /* 93: ArraySet < SimpleCollection: superclass init_table position */},
-  {(bigint) standard___collection___array___ArraySet___add},
-  {(bigint) standard___collection___abstract_collection___SimpleCollection___add_all},
-  {(bigint) 5 /* 96: ArraySet < ArraySet: superclass init_table position */},
+  {(bigint) 5 /* 86: ArraySet < ArraySet: superclass init_table position */},
   {(bigint) standard___collection___array___ArraySet___enlarge},
   {(bigint) standard___collection___array___ArraySet___remove_at},
   {(bigint) standard___collection___array___ArraySet___init},
@@ -19513,7 +19942,7 @@ val_t NEW_ArraySet_standard___collection___array___ArraySet___init(void){
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./../lib/standard//collection//array.nit:493 */
+  /* ../lib/standard/collection/array.nit:493 */
   fra.me.REG[0] = NEW_standard___collection___array___ArraySet();
   INIT_ATTRIBUTES__standard___collection___array___ArraySet(fra.me.REG[0]);
   standard___collection___array___ArraySet___init(fra.me.REG[0], init_table);
@@ -19535,7 +19964,7 @@ val_t NEW_ArraySet_standard___collection___array___ArraySet___with_capacity(val_
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./../lib/standard//collection//array.nit:496 */
+  /* ../lib/standard/collection/array.nit:496 */
   fra.me.REG[0] = NEW_standard___collection___array___ArraySet();
   INIT_ATTRIBUTES__standard___collection___array___ArraySet(fra.me.REG[0]);
   standard___collection___array___ArraySet___with_capacity(fra.me.REG[0], REGB0, init_table);
@@ -19543,13 +19972,14 @@ val_t NEW_ArraySet_standard___collection___array___ArraySet___with_capacity(val_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_standard___collection___array___ArraySetIterator[54] = {
-  {(bigint) 2363 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___array___ArraySetIterator[57] = {
+  {(bigint) 2399 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ArraySetIterator" /* 2: Class Name */},
   {(bigint) 3 /* 3: ArraySetIterator < Object: superclass typecheck marker */},
-  {(bigint) 199 /* 4: ArraySetIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2363 /* 5: ArraySetIterator < ArraySetIterator: superclass typecheck marker */},
+  {(bigint) 195 /* 4: ArraySetIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 2399 /* 5: ArraySetIterator < ArraySetIterator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19562,7 +19992,7 @@ const classtable_elt_t VFT_standard___collection___array___ArraySetIterator[54]
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ArraySetIterator < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ArraySetIterator < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -19578,6 +20008,8 @@ const classtable_elt_t VFT_standard___collection___array___ArraySetIterator[54]
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -19592,11 +20024,11 @@ const classtable_elt_t VFT_standard___collection___array___ArraySetIterator[54]
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) standard___collection___array___Iterator___to_a},
-  {(bigint) 0 /* 48: ArraySetIterator < Iterator: superclass init_table position */},
+  {(bigint) 0 /* 51: ArraySetIterator < Iterator: superclass init_table position */},
   {(bigint) standard___collection___array___ArraySetIterator___item},
   {(bigint) standard___collection___array___ArraySetIterator___next},
   {(bigint) standard___collection___array___ArraySetIterator___is_ok},
-  {(bigint) 2 /* 52: ArraySetIterator < ArraySetIterator: superclass init_table position */},
+  {(bigint) 2 /* 55: ArraySetIterator < ArraySetIterator: superclass init_table position */},
   {(bigint) standard___collection___array___ArraySetIterator___init},
 };
 /* 0: Pointer to the classtable */
@@ -19657,7 +20089,7 @@ val_t NEW_ArraySetIterator_standard___collection___array___ArraySetIterator___in
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:510 */
+  /* ../lib/standard/collection/array.nit:510 */
   fra.me.REG[1] = NEW_standard___collection___array___ArraySetIterator();
   INIT_ATTRIBUTES__standard___collection___array___ArraySetIterator(fra.me.REG[1]);
   standard___collection___array___ArraySetIterator___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -19665,16 +20097,17 @@ val_t NEW_ArraySetIterator_standard___collection___array___ArraySetIterator___in
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___collection___array___ArrayMap[72] = {
-  {(bigint) 3235 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___array___ArrayMap[75] = {
+  {(bigint) 3299 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ArrayMap" /* 2: Class Name */},
   {(bigint) 3 /* 3: ArrayMap < Object: superclass typecheck marker */},
-  {(bigint) 135 /* 4: ArrayMap < MapRead: superclass typecheck marker */},
+  {(bigint) 131 /* 4: ArrayMap < MapRead: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2175 /* 6: ArrayMap < Map: superclass typecheck marker */},
+  {(bigint) 2751 /* 7: ArrayMap < CoupleMap: superclass typecheck marker */},
+  {(bigint) 3299 /* 8: ArrayMap < ArrayMap: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2139 /* 6: ArrayMap < Map: superclass typecheck marker */},
-  {(bigint) 2991 /* 7: ArrayMap < CoupleMap: superclass typecheck marker */},
-  {(bigint) 3235 /* 8: ArrayMap < ArrayMap: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19684,7 +20117,7 @@ const classtable_elt_t VFT_standard___collection___array___ArrayMap[72] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: ArrayMap < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ArrayMap < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -19700,6 +20133,8 @@ const classtable_elt_t VFT_standard___collection___array___ArrayMap[72] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -19713,7 +20148,7 @@ const classtable_elt_t VFT_standard___collection___array___ArrayMap[72] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 2 /* 47: ArrayMap < MapRead: superclass init_table position */},
+  {(bigint) 2 /* 50: ArrayMap < MapRead: superclass init_table position */},
   {(bigint) standard___collection___array___ArrayMap_____bra},
   {(bigint) standard___collection___abstract_collection___MapRead___has_key},
   {(bigint) standard___collection___array___ArrayMap___iterator},
@@ -19725,13 +20160,13 @@ const classtable_elt_t VFT_standard___collection___array___ArrayMap[72] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) standard___string___Map___join},
-  {(bigint) 1 /* 59: ArrayMap < Map: superclass init_table position */},
+  {(bigint) 1 /* 62: ArrayMap < Map: superclass init_table position */},
   {(bigint) standard___collection___array___ArrayMap_____braeq},
   {(bigint) standard___collection___abstract_collection___Map___recover_with},
   {(bigint) standard___collection___array___ArrayMap___clear},
-  {(bigint) 0 /* 63: ArrayMap < CoupleMap: superclass init_table position */},
+  {(bigint) 0 /* 66: ArrayMap < CoupleMap: superclass init_table position */},
   {(bigint) standard___collection___array___ArrayMap___couple_at},
-  {(bigint) 4 /* 65: ArrayMap < ArrayMap: superclass init_table position */},
+  {(bigint) 4 /* 68: ArrayMap < ArrayMap: superclass init_table position */},
   {(bigint) standard___collection___array___ArrayMap___keys__eq},
   {(bigint) standard___collection___array___ArrayMap___values__eq},
   {(bigint) standard___collection___array___ArrayMap___enlarge},
@@ -19759,15 +20194,15 @@ void INIT_ATTRIBUTES__standard___collection___array___ArrayMap(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:542 */
+  /* ../lib/standard/collection/array.nit:542 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = NEW_ArrayMapKeys_standard___collection___array___ArrayMapKeys___init(fra.me.REG[1]);
   ATTR_standard___collection___array___ArrayMap_____atkeys(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//array.nit:543 */
+  /* ../lib/standard/collection/array.nit:543 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = NEW_ArrayMapValues_standard___collection___array___ArrayMapValues___init(fra.me.REG[1]);
   ATTR_standard___collection___array___ArrayMap_____atvalues(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//array.nit:578 */
+  /* ../lib/standard/collection/array.nit:578 */
   REGB0 = TAG_Int(0);
   ATTR_standard___collection___array___ArrayMap____last_index(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -19828,7 +20263,7 @@ val_t NEW_ArrayMap_standard___collection___array___ArrayMap___init(void){
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./../lib/standard//collection//array.nit:598 */
+  /* ../lib/standard/collection/array.nit:598 */
   fra.me.REG[0] = NEW_standard___collection___array___ArrayMap();
   INIT_ATTRIBUTES__standard___collection___array___ArrayMap(fra.me.REG[0]);
   standard___collection___array___ArrayMap___init(fra.me.REG[0], init_table);
@@ -19836,17 +20271,18 @@ val_t NEW_ArrayMap_standard___collection___array___ArrayMap___init(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_standard___collection___array___ArrayMapKeys[87] = {
-  {(bigint) 3027 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___array___ArrayMapKeys[90] = {
+  {(bigint) 2787 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ArrayMapKeys" /* 2: Class Name */},
   {(bigint) 3 /* 3: ArrayMapKeys < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 283 /* 6: ArrayMapKeys < Collection: superclass typecheck marker */},
+  {(bigint) 279 /* 6: ArrayMapKeys < Collection: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 359 /* 8: ArrayMapKeys < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 2787 /* 9: ArrayMapKeys < ArrayMapKeys: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 367 /* 8: ArrayMapKeys < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3027 /* 9: ArrayMapKeys < ArrayMapKeys: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19855,7 +20291,7 @@ const classtable_elt_t VFT_standard___collection___array___ArrayMapKeys[87] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ArrayMapKeys < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: ArrayMapKeys < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -19871,6 +20307,8 @@ const classtable_elt_t VFT_standard___collection___array___ArrayMapKeys[87] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Collection___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -19902,7 +20340,7 @@ const classtable_elt_t VFT_standard___collection___array___ArrayMapKeys[87] = {
   {0} /* Class Hole :( */,
   {(bigint) standard___string___Collection___join},
   {(bigint) standard___collection___array___Collection___to_a},
-  {(bigint) 1 /* 65: ArrayMapKeys < Collection: superclass init_table position */},
+  {(bigint) 1 /* 68: ArrayMapKeys < Collection: superclass init_table position */},
   {(bigint) standard___collection___array___ArrayMapKeys___iterator},
   {(bigint) standard___collection___abstract_collection___Collection___iterate},
   {(bigint) standard___collection___array___ArrayMapKeys___is_empty},
@@ -19916,11 +20354,11 @@ const classtable_elt_t VFT_standard___collection___array___ArrayMapKeys[87] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 0 /* 79: ArrayMapKeys < RemovableCollection: superclass init_table position */},
+  {(bigint) 0 /* 82: ArrayMapKeys < RemovableCollection: superclass init_table position */},
   {(bigint) standard___collection___array___ArrayMapKeys___clear},
   {(bigint) standard___collection___array___ArrayMapKeys___remove},
   {(bigint) standard___collection___array___ArrayMapKeys___remove_all},
-  {(bigint) 3 /* 83: ArrayMapKeys < ArrayMapKeys: superclass init_table position */},
+  {(bigint) 3 /* 86: ArrayMapKeys < ArrayMapKeys: superclass init_table position */},
   {(bigint) standard___collection___array___ArrayMapKeys___map},
   {(bigint) standard___collection___array___ArrayMapKeys___map__eq},
   {(bigint) standard___collection___array___ArrayMapKeys___init},
@@ -19990,17 +20428,18 @@ val_t NEW_ArrayMapKeys_standard___collection___array___ArrayMapKeys___init(val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___collection___array___ArrayMapValues[87] = {
-  {(bigint) 3023 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___array___ArrayMapValues[90] = {
+  {(bigint) 2783 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ArrayMapValues" /* 2: Class Name */},
   {(bigint) 3 /* 3: ArrayMapValues < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 283 /* 6: ArrayMapValues < Collection: superclass typecheck marker */},
+  {(bigint) 279 /* 6: ArrayMapValues < Collection: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 359 /* 8: ArrayMapValues < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 2783 /* 9: ArrayMapValues < ArrayMapValues: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 367 /* 8: ArrayMapValues < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3023 /* 9: ArrayMapValues < ArrayMapValues: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20009,7 +20448,7 @@ const classtable_elt_t VFT_standard___collection___array___ArrayMapValues[87] =
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ArrayMapValues < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: ArrayMapValues < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -20025,6 +20464,8 @@ const classtable_elt_t VFT_standard___collection___array___ArrayMapValues[87] =
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Collection___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -20056,7 +20497,7 @@ const classtable_elt_t VFT_standard___collection___array___ArrayMapValues[87] =
   {0} /* Class Hole :( */,
   {(bigint) standard___string___Collection___join},
   {(bigint) standard___collection___array___Collection___to_a},
-  {(bigint) 1 /* 65: ArrayMapValues < Collection: superclass init_table position */},
+  {(bigint) 1 /* 68: ArrayMapValues < Collection: superclass init_table position */},
   {(bigint) standard___collection___array___ArrayMapValues___iterator},
   {(bigint) standard___collection___abstract_collection___Collection___iterate},
   {(bigint) standard___collection___array___ArrayMapValues___is_empty},
@@ -20070,11 +20511,11 @@ const classtable_elt_t VFT_standard___collection___array___ArrayMapValues[87] =
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 0 /* 79: ArrayMapValues < RemovableCollection: superclass init_table position */},
+  {(bigint) 0 /* 82: ArrayMapValues < RemovableCollection: superclass init_table position */},
   {(bigint) standard___collection___array___ArrayMapValues___clear},
   {(bigint) standard___collection___array___ArrayMapValues___remove},
   {(bigint) standard___collection___array___ArrayMapValues___remove_all},
-  {(bigint) 3 /* 83: ArrayMapValues < ArrayMapValues: superclass init_table position */},
+  {(bigint) 3 /* 86: ArrayMapValues < ArrayMapValues: superclass init_table position */},
   {(bigint) standard___collection___array___ArrayMapValues___map},
   {(bigint) standard___collection___array___ArrayMapValues___map__eq},
   {(bigint) standard___collection___array___ArrayMapValues___init},
@@ -20144,12 +20585,13 @@ val_t NEW_ArrayMapValues_standard___collection___array___ArrayMapValues___init(v
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___collection___array___NativeArray[51] = {
-  {(bigint) 123 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___array___NativeArray[54] = {
+  {(bigint) 119 /* 0: Identity */},
   {(bigint) -1 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "NativeArray" /* 2: Class Name */},
   {(bigint) 3 /* 3: NativeArray < Object: superclass typecheck marker */},
-  {(bigint) 123 /* 4: NativeArray < NativeArray: superclass typecheck marker */},
+  {(bigint) 119 /* 4: NativeArray < NativeArray: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20163,7 +20605,7 @@ const classtable_elt_t VFT_standard___collection___array___NativeArray[51] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: NativeArray < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: NativeArray < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -20179,6 +20621,8 @@ const classtable_elt_t VFT_standard___collection___array___NativeArray[51] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -20192,7 +20636,7 @@ const classtable_elt_t VFT_standard___collection___array___NativeArray[51] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: NativeArray < NativeArray: superclass init_table position */},
+  {(bigint) 1 /* 50: NativeArray < NativeArray: superclass init_table position */},
   {(bigint) standard___collection___array___NativeArray_____bra},
   {(bigint) standard___collection___array___NativeArray_____braeq},
   {(bigint) standard___collection___array___NativeArray___copy_to},
@@ -20208,123 +20652,14 @@ val_t NEW_NativeArray(size_t length, size_t size) {
   array->size = length;
   return OBJ2VAL(array);
 }
-const classtable_elt_t VFT_standard___collection___sorter___AbstractSorter[54] = {
-  {(bigint) 299 /* 0: Identity */},
-  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AbstractSorter" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AbstractSorter < Object: superclass typecheck marker */},
-  {(bigint) 299 /* 4: AbstractSorter < AbstractSorter: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: AbstractSorter < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: AbstractSorter < AbstractSorter: superclass init_table position */},
-  {(bigint) standard___collection___sorter___AbstractSorter___compare},
-  {(bigint) standard___collection___sorter___AbstractSorter___sort},
-  {(bigint) standard___collection___sorter___AbstractSorter___sub_sort},
-  {(bigint) standard___collection___sorter___AbstractSorter___quick_sort},
-  {(bigint) standard___collection___sorter___AbstractSorter___bubble_sort},
-  {(bigint) standard___collection___sorter___AbstractSorter___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-void INIT_ATTRIBUTES__standard___collection___sorter___AbstractSorter(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__standard___collection___sorter___AbstractSorter;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_standard___collection___sorter___AbstractSorter(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_standard___collection___sorter___AbstractSorter;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_standard___collection___sorter___AbstractSorter(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_standard___collection___sorter___AbstractSorter;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AbstractSorter_standard___collection___sorter___AbstractSorter___init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[2] = {0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AbstractSorter_standard___collection___sorter___AbstractSorter___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_standard___collection___sorter___AbstractSorter();
-  INIT_ATTRIBUTES__standard___collection___sorter___AbstractSorter(fra.me.REG[0]);
-  standard___collection___sorter___AbstractSorter___init(fra.me.REG[0], init_table);
-  CHECKNEW_standard___collection___sorter___AbstractSorter(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_standard___collection___sorter___ComparableSorter[56] = {
-  {(bigint) 2335 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___sorter___ComparableSorter[58] = {
+  {(bigint) 2371 /* 0: Identity */},
   {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ComparableSorter" /* 2: Class Name */},
   {(bigint) 3 /* 3: ComparableSorter < Object: superclass typecheck marker */},
-  {(bigint) 299 /* 4: ComparableSorter < AbstractSorter: superclass typecheck marker */},
-  {(bigint) 2335 /* 5: ComparableSorter < ComparableSorter: superclass typecheck marker */},
+  {(bigint) 295 /* 4: ComparableSorter < AbstractSorter: superclass typecheck marker */},
+  {(bigint) 2371 /* 5: ComparableSorter < ComparableSorter: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20337,7 +20672,7 @@ const classtable_elt_t VFT_standard___collection___sorter___ComparableSorter[56]
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ComparableSorter < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ComparableSorter < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -20353,6 +20688,8 @@ const classtable_elt_t VFT_standard___collection___sorter___ComparableSorter[56]
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -20366,14 +20703,13 @@ const classtable_elt_t VFT_standard___collection___sorter___ComparableSorter[56]
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ComparableSorter < AbstractSorter: superclass init_table position */},
+  {(bigint) 0 /* 50: ComparableSorter < AbstractSorter: superclass init_table position */},
   {(bigint) standard___collection___sorter___ComparableSorter___compare},
   {(bigint) standard___collection___sorter___AbstractSorter___sort},
   {(bigint) standard___collection___sorter___AbstractSorter___sub_sort},
   {(bigint) standard___collection___sorter___AbstractSorter___quick_sort},
   {(bigint) standard___collection___sorter___AbstractSorter___bubble_sort},
-  {(bigint) standard___collection___sorter___AbstractSorter___init},
-  {(bigint) 2 /* 54: ComparableSorter < ComparableSorter: superclass init_table position */},
+  {(bigint) 2 /* 56: ComparableSorter < ComparableSorter: superclass init_table position */},
   {(bigint) standard___collection___sorter___ComparableSorter___init},
 };
 /* 0: Pointer to the classtable */
@@ -20423,7 +20759,7 @@ val_t NEW_ComparableSorter_standard___collection___sorter___ComparableSorter___i
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./../lib/standard//collection//sorter.nit:96 */
+  /* ../lib/standard/collection/sorter.nit:96 */
   fra.me.REG[0] = NEW_standard___collection___sorter___ComparableSorter();
   INIT_ATTRIBUTES__standard___collection___sorter___ComparableSorter(fra.me.REG[0]);
   standard___collection___sorter___ComparableSorter___init(fra.me.REG[0], init_table);
@@ -20431,352 +20767,17 @@ val_t NEW_ComparableSorter_standard___collection___sorter___ComparableSorter___i
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_standard___collection___hash_collection___HashCollection[93] = {
-  {(bigint) 2271 /* 0: Identity */},
-  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "HashCollection" /* 2: Class Name */},
-  {(bigint) 3 /* 3: HashCollection < Object: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 295 /* 5: HashCollection < ArrayCapable: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2271 /* 7: HashCollection < HashCollection: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: HashCollection < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 0 /* 56: HashCollection < ArrayCapable: superclass init_table position */},
-  {(bigint) standard___collection___array___ArrayCapable___calloc_array},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 2 /* 83: HashCollection < HashCollection: superclass init_table position */},
-  {(bigint) standard___collection___hash_collection___HashCollection___first_item},
-  {(bigint) standard___collection___hash_collection___HashCollection___index_at},
-  {(bigint) standard___collection___hash_collection___HashCollection___node_at},
-  {(bigint) standard___collection___hash_collection___HashCollection___node_at_idx},
-  {(bigint) standard___collection___hash_collection___HashCollection___store},
-  {(bigint) standard___collection___hash_collection___HashCollection___remove_node},
-  {(bigint) standard___collection___hash_collection___HashCollection___raz},
-  {(bigint) standard___collection___hash_collection___HashCollection___enlarge},
-  {(bigint) standard___collection___hash_collection___HashCollection___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute HashCollection::_array */
-/* 3: Attribute HashCollection::_capacity */
-/* 4: Attribute HashCollection::_length */
-/* 5: Attribute HashCollection::_first_item */
-/* 6: Attribute HashCollection::_last_item */
-/* 7: Attribute HashCollection::_last_accessed_key */
-/* 8: Attribute HashCollection::_last_accessed_node */
-void INIT_ATTRIBUTES__standard___collection___hash_collection___HashCollection(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__standard___collection___hash_collection___HashCollection;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:23 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_standard___collection___hash_collection___HashCollection____array(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:24 */
-  REGB0 = TAG_Int(0);
-  ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0]) = REGB0;
-  /* ./../lib/standard//collection//hash_collection.nit:25 */
-  REGB0 = TAG_Int(0);
-  ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]) = REGB0;
-  /* ./../lib/standard//collection//hash_collection.nit:27 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:28 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_standard___collection___hash_collection___HashCollection____last_item(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:30 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:33 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_standard___collection___hash_collection___HashCollection____last_accessed_node(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_standard___collection___hash_collection___HashCollection(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 9);
-  obj->vft = (classtable_elt_t*)VFT_standard___collection___hash_collection___HashCollection;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_standard___collection___hash_collection___HashCollection(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_standard___collection___hash_collection___HashCollection;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_HashCollection_standard___collection___hash_collection___HashCollection___init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_HashCollection_standard___collection___hash_collection___HashCollection___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_standard___collection___hash_collection___HashCollection();
-  INIT_ATTRIBUTES__standard___collection___hash_collection___HashCollection(fra.me.REG[0]);
-  standard___collection___hash_collection___HashCollection___init(fra.me.REG[0], init_table);
-  CHECKNEW_standard___collection___hash_collection___HashCollection(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_standard___collection___hash_collection___HashNode[55] = {
-  {(bigint) 251 /* 0: Identity */},
-  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "HashNode" /* 2: Class Name */},
-  {(bigint) 3 /* 3: HashNode < Object: superclass typecheck marker */},
-  {(bigint) 251 /* 4: HashNode < HashNode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: HashNode < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: HashNode < HashNode: superclass init_table position */},
-  {(bigint) 251 /* 48: VT HashNode::N : id of HashNode */},
-  {(bigint) 4 /* 49: VT HashNode::N : color of HashNode */},
-  {(bigint) standard___collection___hash_collection___HashNode___next_item},
-  {(bigint) standard___collection___hash_collection___HashNode___next_item__eq},
-  {(bigint) standard___collection___hash_collection___HashNode___prev_item},
-  {(bigint) standard___collection___hash_collection___HashNode___prev_item__eq},
-  {(bigint) standard___collection___hash_collection___HashNode___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute HashNode::_key */
-/* 3: Attribute HashNode::_next_item */
-/* 4: Attribute HashNode::_prev_item */
-/* 5: Attribute HashNode::_prev_in_bucklet */
-/* 6: Attribute HashNode::_next_in_bucklet */
-void INIT_ATTRIBUTES__standard___collection___hash_collection___HashNode(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__standard___collection___hash_collection___HashNode;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:192 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:193 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_standard___collection___hash_collection___HashNode____prev_item(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:194 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_standard___collection___hash_collection___HashNode____prev_in_bucklet(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:195 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_standard___collection___hash_collection___HashNode____next_in_bucklet(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_standard___collection___hash_collection___HashNode(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_standard___collection___hash_collection___HashNode;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_standard___collection___hash_collection___HashNode(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_standard___collection___hash_collection___HashNode;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_key", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_HashNode_standard___collection___hash_collection___HashNode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[2] = {0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 196;
-  fra.me.meth = LOCATE_NEW_HashNode_standard___collection___hash_collection___HashNode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:196 */
-  fra.me.REG[1] = NEW_standard___collection___hash_collection___HashNode();
-  INIT_ATTRIBUTES__standard___collection___hash_collection___HashNode(fra.me.REG[1]);
-  standard___collection___hash_collection___HashNode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_standard___collection___hash_collection___HashNode(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_standard___collection___hash_collection___HashMap[93] = {
-  {(bigint) 2971 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___hash_collection___HashMap[96] = {
+  {(bigint) 2731 /* 0: Identity */},
   {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "HashMap" /* 2: Class Name */},
   {(bigint) 3 /* 3: HashMap < Object: superclass typecheck marker */},
-  {(bigint) 135 /* 4: HashMap < MapRead: superclass typecheck marker */},
-  {(bigint) 295 /* 5: HashMap < ArrayCapable: superclass typecheck marker */},
-  {(bigint) 2139 /* 6: HashMap < Map: superclass typecheck marker */},
-  {(bigint) 2271 /* 7: HashMap < HashCollection: superclass typecheck marker */},
-  {(bigint) 2971 /* 8: HashMap < HashMap: superclass typecheck marker */},
+  {(bigint) 131 /* 4: HashMap < MapRead: superclass typecheck marker */},
+  {(bigint) 291 /* 5: HashMap < ArrayCapable: superclass typecheck marker */},
+  {(bigint) 2175 /* 6: HashMap < Map: superclass typecheck marker */},
+  {(bigint) 2307 /* 7: HashMap < HashCollection: superclass typecheck marker */},
+  {(bigint) 2731 /* 8: HashMap < HashMap: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20786,7 +20787,7 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashMap[93]
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: HashMap < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: HashMap < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -20802,6 +20803,8 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashMap[93]
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -20815,7 +20818,7 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashMap[93]
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: HashMap < MapRead: superclass init_table position */},
+  {(bigint) 1 /* 50: HashMap < MapRead: superclass init_table position */},
   {(bigint) standard___collection___hash_collection___HashMap_____bra},
   {(bigint) standard___collection___abstract_collection___MapRead___has_key},
   {(bigint) standard___collection___hash_collection___HashMap___iterator},
@@ -20824,14 +20827,14 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashMap[93]
   {(bigint) standard___collection___hash_collection___HashMap___keys},
   {(bigint) standard___collection___hash_collection___HashMap___is_empty},
   {(bigint) standard___collection___hash_collection___HashMap___length},
-  {(bigint) 3 /* 56: HashMap < ArrayCapable: superclass init_table position */},
+  {(bigint) 4 /* 59: HashMap < ArrayCapable: superclass init_table position */},
   {(bigint) standard___collection___array___ArrayCapable___calloc_array},
   {(bigint) standard___string___Map___join},
-  {(bigint) 0 /* 59: HashMap < Map: superclass init_table position */},
+  {(bigint) 0 /* 62: HashMap < Map: superclass init_table position */},
   {(bigint) standard___collection___hash_collection___HashMap_____braeq},
   {(bigint) standard___collection___abstract_collection___Map___recover_with},
   {(bigint) standard___collection___hash_collection___HashMap___clear},
-  {(bigint) 5 /* 63: HashMap < HashMap: superclass init_table position */},
+  {(bigint) 5 /* 66: HashMap < HashMap: superclass init_table position */},
   {(bigint) standard___collection___hash_collection___HashMap___init},
   {(bigint) standard___collection___hash_collection___HashMap___keys__eq},
   {(bigint) standard___collection___hash_collection___HashMap___values__eq},
@@ -20851,7 +20854,7 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashMap[93]
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 4 /* 83: HashMap < HashCollection: superclass init_table position */},
+  {(bigint) 3 /* 86: HashMap < HashCollection: superclass init_table position */},
   {(bigint) standard___collection___hash_collection___HashCollection___first_item},
   {(bigint) standard___collection___hash_collection___HashCollection___index_at},
   {(bigint) standard___collection___hash_collection___HashCollection___node_at},
@@ -20887,33 +20890,33 @@ void INIT_ATTRIBUTES__standard___collection___hash_collection___HashMap(val_t p0
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:255 */
+  /* ../lib/standard/collection/hash_collection.nit:255 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = NEW_HashMapKeys_standard___collection___hash_collection___HashMapKeys___init(fra.me.REG[1]);
   ATTR_standard___collection___hash_collection___HashMap_____atkeys(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:256 */
+  /* ../lib/standard/collection/hash_collection.nit:256 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = NEW_HashMapValues_standard___collection___hash_collection___HashMapValues___init(fra.me.REG[1]);
   ATTR_standard___collection___hash_collection___HashMap_____atvalues(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:23 */
+  /* ../lib/standard/collection/hash_collection.nit:23 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___collection___hash_collection___HashCollection____array(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:24 */
+  /* ../lib/standard/collection/hash_collection.nit:24 */
   REGB0 = TAG_Int(0);
   ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0]) = REGB0;
-  /* ./../lib/standard//collection//hash_collection.nit:25 */
+  /* ../lib/standard/collection/hash_collection.nit:25 */
   REGB0 = TAG_Int(0);
   ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]) = REGB0;
-  /* ./../lib/standard//collection//hash_collection.nit:27 */
+  /* ../lib/standard/collection/hash_collection.nit:27 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:28 */
+  /* ../lib/standard/collection/hash_collection.nit:28 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___collection___hash_collection___HashCollection____last_item(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:30 */
+  /* ../lib/standard/collection/hash_collection.nit:30 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:33 */
+  /* ../lib/standard/collection/hash_collection.nit:33 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___collection___hash_collection___HashCollection____last_accessed_node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -20974,7 +20977,7 @@ val_t NEW_HashMap_standard___collection___hash_collection___HashMap___init(void)
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./../lib/standard//collection//hash_collection.nit:248 */
+  /* ../lib/standard/collection/hash_collection.nit:248 */
   fra.me.REG[0] = NEW_standard___collection___hash_collection___HashMap();
   INIT_ATTRIBUTES__standard___collection___hash_collection___HashMap(fra.me.REG[0]);
   standard___collection___hash_collection___HashMap___init(fra.me.REG[0], init_table);
@@ -20982,17 +20985,18 @@ val_t NEW_HashMap_standard___collection___hash_collection___HashMap___init(void)
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_standard___collection___hash_collection___HashMapKeys[87] = {
-  {(bigint) 2967 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___hash_collection___HashMapKeys[90] = {
+  {(bigint) 2727 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "HashMapKeys" /* 2: Class Name */},
   {(bigint) 3 /* 3: HashMapKeys < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 283 /* 6: HashMapKeys < Collection: superclass typecheck marker */},
+  {(bigint) 279 /* 6: HashMapKeys < Collection: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 359 /* 8: HashMapKeys < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 2727 /* 9: HashMapKeys < HashMapKeys: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 367 /* 8: HashMapKeys < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 2967 /* 9: HashMapKeys < HashMapKeys: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21001,7 +21005,7 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashMapKeys
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: HashMapKeys < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: HashMapKeys < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -21017,6 +21021,8 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashMapKeys
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Collection___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -21048,7 +21054,7 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashMapKeys
   {0} /* Class Hole :( */,
   {(bigint) standard___string___Collection___join},
   {(bigint) standard___collection___array___Collection___to_a},
-  {(bigint) 1 /* 65: HashMapKeys < Collection: superclass init_table position */},
+  {(bigint) 1 /* 68: HashMapKeys < Collection: superclass init_table position */},
   {(bigint) standard___collection___hash_collection___HashMapKeys___iterator},
   {(bigint) standard___collection___abstract_collection___Collection___iterate},
   {(bigint) standard___collection___hash_collection___HashMapKeys___is_empty},
@@ -21062,11 +21068,11 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashMapKeys
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 0 /* 79: HashMapKeys < RemovableCollection: superclass init_table position */},
+  {(bigint) 0 /* 82: HashMapKeys < RemovableCollection: superclass init_table position */},
   {(bigint) standard___collection___hash_collection___HashMapKeys___clear},
   {(bigint) standard___collection___hash_collection___HashMapKeys___remove},
   {(bigint) standard___collection___hash_collection___HashMapKeys___remove_all},
-  {(bigint) 3 /* 83: HashMapKeys < HashMapKeys: superclass init_table position */},
+  {(bigint) 3 /* 86: HashMapKeys < HashMapKeys: superclass init_table position */},
   {(bigint) standard___collection___hash_collection___HashMapKeys___map},
   {(bigint) standard___collection___hash_collection___HashMapKeys___map__eq},
   {(bigint) standard___collection___hash_collection___HashMapKeys___init},
@@ -21136,17 +21142,18 @@ val_t NEW_HashMapKeys_standard___collection___hash_collection___HashMapKeys___in
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___collection___hash_collection___HashMapValues[87] = {
-  {(bigint) 2963 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___hash_collection___HashMapValues[90] = {
+  {(bigint) 2723 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "HashMapValues" /* 2: Class Name */},
   {(bigint) 3 /* 3: HashMapValues < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 283 /* 6: HashMapValues < Collection: superclass typecheck marker */},
+  {(bigint) 279 /* 6: HashMapValues < Collection: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 359 /* 8: HashMapValues < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 2723 /* 9: HashMapValues < HashMapValues: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 367 /* 8: HashMapValues < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 2963 /* 9: HashMapValues < HashMapValues: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21155,7 +21162,7 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashMapValu
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: HashMapValues < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: HashMapValues < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -21171,6 +21178,8 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashMapValu
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Collection___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -21202,7 +21211,7 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashMapValu
   {0} /* Class Hole :( */,
   {(bigint) standard___string___Collection___join},
   {(bigint) standard___collection___array___Collection___to_a},
-  {(bigint) 1 /* 65: HashMapValues < Collection: superclass init_table position */},
+  {(bigint) 1 /* 68: HashMapValues < Collection: superclass init_table position */},
   {(bigint) standard___collection___hash_collection___HashMapValues___iterator},
   {(bigint) standard___collection___abstract_collection___Collection___iterate},
   {(bigint) standard___collection___hash_collection___HashMapValues___is_empty},
@@ -21216,11 +21225,11 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashMapValu
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 0 /* 79: HashMapValues < RemovableCollection: superclass init_table position */},
+  {(bigint) 0 /* 82: HashMapValues < RemovableCollection: superclass init_table position */},
   {(bigint) standard___collection___hash_collection___HashMapValues___clear},
   {(bigint) standard___collection___hash_collection___HashMapValues___remove},
   {(bigint) standard___collection___hash_collection___HashMapValues___remove_all},
-  {(bigint) 3 /* 83: HashMapValues < HashMapValues: superclass init_table position */},
+  {(bigint) 3 /* 86: HashMapValues < HashMapValues: superclass init_table position */},
   {(bigint) standard___collection___hash_collection___HashMapValues___map},
   {(bigint) standard___collection___hash_collection___HashMapValues___map__eq},
   {(bigint) standard___collection___hash_collection___HashMapValues___init},
@@ -21290,13 +21299,14 @@ val_t NEW_HashMapValues_standard___collection___hash_collection___HashMapValues_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___collection___hash_collection___HashMapNode[57] = {
-  {(bigint) 2263 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___hash_collection___HashMapNode[60] = {
+  {(bigint) 2299 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "HashMapNode" /* 2: Class Name */},
   {(bigint) 3 /* 3: HashMapNode < Object: superclass typecheck marker */},
-  {(bigint) 251 /* 4: HashMapNode < HashNode: superclass typecheck marker */},
-  {(bigint) 2263 /* 5: HashMapNode < HashMapNode: superclass typecheck marker */},
+  {(bigint) 247 /* 4: HashMapNode < HashNode: superclass typecheck marker */},
+  {(bigint) 2299 /* 5: HashMapNode < HashMapNode: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21309,7 +21319,7 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashMapNode
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: HashMapNode < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: HashMapNode < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -21325,6 +21335,8 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashMapNode
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -21338,15 +21350,15 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashMapNode
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: HashMapNode < HashNode: superclass init_table position */},
-  {(bigint) 2263 /* 48: VT HashMapNode::N : id of HashMapNode */},
-  {(bigint) 5 /* 49: VT HashMapNode::N : color of HashMapNode */},
+  {(bigint) 0 /* 50: HashMapNode < HashNode: superclass init_table position */},
+  {(bigint) 2299 /* 51: VT HashMapNode::N : id of HashMapNode */},
+  {(bigint) 5 /* 52: VT HashMapNode::N : color of HashMapNode */},
   {(bigint) standard___collection___hash_collection___HashNode___next_item},
   {(bigint) standard___collection___hash_collection___HashNode___next_item__eq},
   {(bigint) standard___collection___hash_collection___HashNode___prev_item},
   {(bigint) standard___collection___hash_collection___HashNode___prev_item__eq},
   {(bigint) standard___collection___hash_collection___HashNode___init},
-  {(bigint) 2 /* 55: HashMapNode < HashMapNode: superclass init_table position */},
+  {(bigint) 2 /* 58: HashMapNode < HashMapNode: superclass init_table position */},
   {(bigint) standard___collection___hash_collection___HashMapNode___init},
 };
 /* 0: Pointer to the classtable */
@@ -21370,16 +21382,16 @@ void INIT_ATTRIBUTES__standard___collection___hash_collection___HashMapNode(val_
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:192 */
+  /* ../lib/standard/collection/hash_collection.nit:192 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:193 */
+  /* ../lib/standard/collection/hash_collection.nit:193 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___collection___hash_collection___HashNode____prev_item(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:194 */
+  /* ../lib/standard/collection/hash_collection.nit:194 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___collection___hash_collection___HashNode____prev_in_bucklet(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:195 */
+  /* ../lib/standard/collection/hash_collection.nit:195 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___collection___hash_collection___HashNode____next_in_bucklet(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -21429,7 +21441,7 @@ val_t NEW_HashMapNode_standard___collection___hash_collection___HashMapNode___in
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:356 */
+  /* ../lib/standard/collection/hash_collection.nit:356 */
   fra.me.REG[2] = NEW_standard___collection___hash_collection___HashMapNode();
   INIT_ATTRIBUTES__standard___collection___hash_collection___HashMapNode(fra.me.REG[2]);
   standard___collection___hash_collection___HashMapNode___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -21437,13 +21449,14 @@ val_t NEW_HashMapNode_standard___collection___hash_collection___HashMapNode___in
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_standard___collection___hash_collection___HashMapIterator[54] = {
-  {(bigint) 2267 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___hash_collection___HashMapIterator[57] = {
+  {(bigint) 2303 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "HashMapIterator" /* 2: Class Name */},
   {(bigint) 3 /* 3: HashMapIterator < Object: superclass typecheck marker */},
-  {(bigint) 139 /* 4: HashMapIterator < MapIterator: superclass typecheck marker */},
-  {(bigint) 2267 /* 5: HashMapIterator < HashMapIterator: superclass typecheck marker */},
+  {(bigint) 135 /* 4: HashMapIterator < MapIterator: superclass typecheck marker */},
+  {(bigint) 2303 /* 5: HashMapIterator < HashMapIterator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21456,7 +21469,7 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashMapIter
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: HashMapIterator < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: HashMapIterator < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -21472,6 +21485,8 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashMapIter
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -21485,12 +21500,12 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashMapIter
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: HashMapIterator < MapIterator: superclass init_table position */},
+  {(bigint) 0 /* 50: HashMapIterator < MapIterator: superclass init_table position */},
   {(bigint) standard___collection___hash_collection___HashMapIterator___item},
   {(bigint) standard___collection___hash_collection___HashMapIterator___key},
   {(bigint) standard___collection___hash_collection___HashMapIterator___next},
   {(bigint) standard___collection___hash_collection___HashMapIterator___is_ok},
-  {(bigint) 2 /* 52: HashMapIterator < HashMapIterator: superclass init_table position */},
+  {(bigint) 2 /* 55: HashMapIterator < HashMapIterator: superclass init_table position */},
   {(bigint) standard___collection___hash_collection___HashMapIterator___init},
 };
 /* 0: Pointer to the classtable */
@@ -21552,7 +21567,7 @@ val_t NEW_HashMapIterator_standard___collection___hash_collection___HashMapItera
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:397 */
+  /* ../lib/standard/collection/hash_collection.nit:397 */
   fra.me.REG[1] = NEW_standard___collection___hash_collection___HashMapIterator();
   INIT_ATTRIBUTES__standard___collection___hash_collection___HashMapIterator(fra.me.REG[1]);
   standard___collection___hash_collection___HashMapIterator___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -21561,17 +21576,18 @@ val_t NEW_HashMapIterator_standard___collection___hash_collection___HashMapItera
   return fra.me.REG[1];
 }
 const classtable_elt_t VFT_standard___collection___hash_collection___HashSet[96] = {
-  {(bigint) 3559 /* 0: Identity */},
+  {(bigint) 3639 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "HashSet" /* 2: Class Name */},
   {(bigint) 3 /* 3: HashSet < Object: superclass typecheck marker */},
-  {(bigint) 3183 /* 4: HashSet < Set: superclass typecheck marker */},
-  {(bigint) 295 /* 5: HashSet < ArrayCapable: superclass typecheck marker */},
-  {(bigint) 283 /* 6: HashSet < Collection: superclass typecheck marker */},
-  {(bigint) 2271 /* 7: HashSet < HashCollection: superclass typecheck marker */},
-  {(bigint) 367 /* 8: HashSet < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 2779 /* 9: HashSet < SimpleCollection: superclass typecheck marker */},
-  {(bigint) 3559 /* 10: HashSet < HashSet: superclass typecheck marker */},
+  {(bigint) 3247 /* 4: HashSet < Set: superclass typecheck marker */},
+  {(bigint) 291 /* 5: HashSet < ArrayCapable: superclass typecheck marker */},
+  {(bigint) 279 /* 6: HashSet < Collection: superclass typecheck marker */},
+  {(bigint) 2307 /* 7: HashSet < HashCollection: superclass typecheck marker */},
+  {(bigint) 359 /* 8: HashSet < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 2539 /* 9: HashSet < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 3639 /* 10: HashSet < HashSet: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21579,7 +21595,7 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashSet[96]
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 4 /* 18: HashSet < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: HashSet < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -21595,6 +21611,8 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashSet[96]
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Collection___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -21608,16 +21626,16 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashSet[96]
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: HashSet < Set: superclass init_table position */},
-  {(bigint) 7 /* 48: HashSet < HashSet: superclass init_table position */},
-  {(bigint) standard___collection___hash_collection___HashSet___init},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) 0 /* 50: HashSet < Set: superclass init_table position */},
   {0} /* Class Hole :( */,
+  {(bigint) 1 /* 52: HashSet < SimpleCollection: superclass init_table position */},
+  {(bigint) standard___collection___hash_collection___HashSet___add},
+  {(bigint) standard___collection___abstract_collection___SimpleCollection___add_all},
+  {(bigint) 7 /* 55: HashSet < HashSet: superclass init_table position */},
+  {(bigint) standard___collection___hash_collection___HashSet___init},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 5 /* 56: HashSet < ArrayCapable: superclass init_table position */},
+  {(bigint) 6 /* 59: HashSet < ArrayCapable: superclass init_table position */},
   {(bigint) standard___collection___array___ArrayCapable___calloc_array},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21626,7 +21644,7 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashSet[96]
   {0} /* Class Hole :( */,
   {(bigint) standard___string___Collection___join},
   {(bigint) standard___collection___array___Collection___to_a},
-  {(bigint) 3 /* 65: HashSet < Collection: superclass init_table position */},
+  {(bigint) 3 /* 68: HashSet < Collection: superclass init_table position */},
   {(bigint) standard___collection___hash_collection___HashSet___iterator},
   {(bigint) standard___collection___abstract_collection___Collection___iterate},
   {(bigint) standard___collection___hash_collection___HashSet___is_empty},
@@ -21640,11 +21658,11 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashSet[96]
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2 /* 79: HashSet < RemovableCollection: superclass init_table position */},
+  {(bigint) 2 /* 82: HashSet < RemovableCollection: superclass init_table position */},
   {(bigint) standard___collection___hash_collection___HashSet___clear},
   {(bigint) standard___collection___hash_collection___HashSet___remove},
   {(bigint) standard___collection___abstract_collection___Set___remove_all},
-  {(bigint) 6 /* 83: HashSet < HashCollection: superclass init_table position */},
+  {(bigint) 5 /* 86: HashSet < HashCollection: superclass init_table position */},
   {(bigint) standard___collection___hash_collection___HashCollection___first_item},
   {(bigint) standard___collection___hash_collection___HashCollection___index_at},
   {(bigint) standard___collection___hash_collection___HashCollection___node_at},
@@ -21654,9 +21672,6 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashSet[96]
   {(bigint) standard___collection___hash_collection___HashCollection___raz},
   {(bigint) standard___collection___hash_collection___HashCollection___enlarge},
   {(bigint) standard___collection___hash_collection___HashCollection___init},
-  {(bigint) 1 /* 93: HashSet < SimpleCollection: superclass init_table position */},
-  {(bigint) standard___collection___hash_collection___HashSet___add},
-  {(bigint) standard___collection___abstract_collection___SimpleCollection___add_all},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -21681,25 +21696,25 @@ void INIT_ATTRIBUTES__standard___collection___hash_collection___HashSet(val_t p0
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:23 */
+  /* ../lib/standard/collection/hash_collection.nit:23 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___collection___hash_collection___HashCollection____array(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:24 */
+  /* ../lib/standard/collection/hash_collection.nit:24 */
   REGB0 = TAG_Int(0);
   ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0]) = REGB0;
-  /* ./../lib/standard//collection//hash_collection.nit:25 */
+  /* ../lib/standard/collection/hash_collection.nit:25 */
   REGB0 = TAG_Int(0);
   ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]) = REGB0;
-  /* ./../lib/standard//collection//hash_collection.nit:27 */
+  /* ../lib/standard/collection/hash_collection.nit:27 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:28 */
+  /* ../lib/standard/collection/hash_collection.nit:28 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___collection___hash_collection___HashCollection____last_item(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:30 */
+  /* ../lib/standard/collection/hash_collection.nit:30 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:33 */
+  /* ../lib/standard/collection/hash_collection.nit:33 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___collection___hash_collection___HashCollection____last_accessed_node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -21750,7 +21765,7 @@ val_t NEW_HashSet_standard___collection___hash_collection___HashSet___init(void)
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./../lib/standard//collection//hash_collection.nit:442 */
+  /* ../lib/standard/collection/hash_collection.nit:442 */
   fra.me.REG[0] = NEW_standard___collection___hash_collection___HashSet();
   INIT_ATTRIBUTES__standard___collection___hash_collection___HashSet(fra.me.REG[0]);
   standard___collection___hash_collection___HashSet___init(fra.me.REG[0], init_table);
@@ -21758,13 +21773,14 @@ val_t NEW_HashSet_standard___collection___hash_collection___HashSet___init(void)
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_standard___collection___hash_collection___HashSetNode[57] = {
-  {(bigint) 2255 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___hash_collection___HashSetNode[60] = {
+  {(bigint) 2291 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "HashSetNode" /* 2: Class Name */},
   {(bigint) 3 /* 3: HashSetNode < Object: superclass typecheck marker */},
-  {(bigint) 251 /* 4: HashSetNode < HashNode: superclass typecheck marker */},
-  {(bigint) 2255 /* 5: HashSetNode < HashSetNode: superclass typecheck marker */},
+  {(bigint) 247 /* 4: HashSetNode < HashNode: superclass typecheck marker */},
+  {(bigint) 2291 /* 5: HashSetNode < HashSetNode: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21777,7 +21793,7 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashSetNode
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: HashSetNode < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: HashSetNode < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -21793,6 +21809,8 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashSetNode
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -21806,15 +21824,15 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashSetNode
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: HashSetNode < HashNode: superclass init_table position */},
-  {(bigint) 2255 /* 48: VT HashSetNode::N : id of HashSetNode */},
-  {(bigint) 5 /* 49: VT HashSetNode::N : color of HashSetNode */},
+  {(bigint) 0 /* 50: HashSetNode < HashNode: superclass init_table position */},
+  {(bigint) 2291 /* 51: VT HashSetNode::N : id of HashSetNode */},
+  {(bigint) 5 /* 52: VT HashSetNode::N : color of HashSetNode */},
   {(bigint) standard___collection___hash_collection___HashNode___next_item},
   {(bigint) standard___collection___hash_collection___HashNode___next_item__eq},
   {(bigint) standard___collection___hash_collection___HashNode___prev_item},
   {(bigint) standard___collection___hash_collection___HashNode___prev_item__eq},
   {(bigint) standard___collection___hash_collection___HashNode___init},
-  {(bigint) 2 /* 55: HashSetNode < HashSetNode: superclass init_table position */},
+  {(bigint) 2 /* 58: HashSetNode < HashSetNode: superclass init_table position */},
   {(bigint) standard___collection___hash_collection___HashSetNode___init},
 };
 /* 0: Pointer to the classtable */
@@ -21837,16 +21855,16 @@ void INIT_ATTRIBUTES__standard___collection___hash_collection___HashSetNode(val_
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:192 */
+  /* ../lib/standard/collection/hash_collection.nit:192 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:193 */
+  /* ../lib/standard/collection/hash_collection.nit:193 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___collection___hash_collection___HashNode____prev_item(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:194 */
+  /* ../lib/standard/collection/hash_collection.nit:194 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___collection___hash_collection___HashNode____prev_in_bucklet(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:195 */
+  /* ../lib/standard/collection/hash_collection.nit:195 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___collection___hash_collection___HashNode____next_in_bucklet(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -21894,7 +21912,7 @@ val_t NEW_HashSetNode_standard___collection___hash_collection___HashSetNode___in
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:454 */
+  /* ../lib/standard/collection/hash_collection.nit:454 */
   fra.me.REG[1] = NEW_standard___collection___hash_collection___HashSetNode();
   INIT_ATTRIBUTES__standard___collection___hash_collection___HashSetNode(fra.me.REG[1]);
   standard___collection___hash_collection___HashSetNode___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -21902,13 +21920,14 @@ val_t NEW_HashSetNode_standard___collection___hash_collection___HashSetNode___in
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___collection___hash_collection___HashSetIterator[54] = {
-  {(bigint) 2259 /* 0: Identity */},
+const classtable_elt_t VFT_standard___collection___hash_collection___HashSetIterator[57] = {
+  {(bigint) 2295 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "HashSetIterator" /* 2: Class Name */},
   {(bigint) 3 /* 3: HashSetIterator < Object: superclass typecheck marker */},
-  {(bigint) 199 /* 4: HashSetIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2259 /* 5: HashSetIterator < HashSetIterator: superclass typecheck marker */},
+  {(bigint) 195 /* 4: HashSetIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 2295 /* 5: HashSetIterator < HashSetIterator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21921,7 +21940,7 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashSetIter
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: HashSetIterator < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: HashSetIterator < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -21937,6 +21956,8 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashSetIter
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -21951,11 +21972,11 @@ const classtable_elt_t VFT_standard___collection___hash_collection___HashSetIter
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) standard___collection___array___Iterator___to_a},
-  {(bigint) 0 /* 48: HashSetIterator < Iterator: superclass init_table position */},
+  {(bigint) 0 /* 51: HashSetIterator < Iterator: superclass init_table position */},
   {(bigint) standard___collection___hash_collection___HashSetIterator___item},
   {(bigint) standard___collection___hash_collection___HashSetIterator___next},
   {(bigint) standard___collection___hash_collection___HashSetIterator___is_ok},
-  {(bigint) 2 /* 52: HashSetIterator < HashSetIterator: superclass init_table position */},
+  {(bigint) 2 /* 55: HashSetIterator < HashSetIterator: superclass init_table position */},
   {(bigint) standard___collection___hash_collection___HashSetIterator___init},
 };
 /* 0: Pointer to the classtable */
@@ -22017,7 +22038,7 @@ val_t NEW_HashSetIterator_standard___collection___hash_collection___HashSetItera
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:482 */
+  /* ../lib/standard/collection/hash_collection.nit:482 */
   fra.me.REG[1] = NEW_standard___collection___hash_collection___HashSetIterator();
   INIT_ATTRIBUTES__standard___collection___hash_collection___HashSetIterator(fra.me.REG[1]);
   standard___collection___hash_collection___HashSetIterator___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -22025,26 +22046,27 @@ val_t NEW_HashSetIterator_standard___collection___hash_collection___HashSetItera
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___string___String[142] = {
-  {(bigint) 3535 /* 0: Identity */},
+const classtable_elt_t VFT_standard___string___String[141] = {
+  {(bigint) 3615 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "String" /* 2: Class Name */},
   {(bigint) 3 /* 3: String < Object: superclass typecheck marker */},
   {(bigint) 103 /* 4: String < Pattern: superclass typecheck marker */},
-  {(bigint) 275 /* 5: String < Comparable: superclass typecheck marker */},
-  {(bigint) 283 /* 6: String < Collection: superclass typecheck marker */},
-  {(bigint) 351 /* 7: String < SequenceRead: superclass typecheck marker */},
-  {(bigint) 3535 /* 8: String < String: superclass typecheck marker */},
+  {(bigint) 271 /* 5: String < Comparable: superclass typecheck marker */},
+  {(bigint) 279 /* 6: String < Collection: superclass typecheck marker */},
+  {(bigint) 343 /* 7: String < SequenceRead: superclass typecheck marker */},
+  {(bigint) 3615 /* 8: String < String: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3039 /* 10: String < AbstractArrayRead: superclass typecheck marker */},
+  {(bigint) 2799 /* 10: String < AbstractArrayRead: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3303 /* 12: String < AbstractString: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3239 /* 12: String < AbstractString: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: String < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: String < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___string___String_____eqeq},
@@ -22060,6 +22082,8 @@ const classtable_elt_t VFT_standard___string___String[142] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___String___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -22073,14 +22097,14 @@ const classtable_elt_t VFT_standard___string___String[142] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 6 /* 47: String < Pattern: superclass init_table position */},
+  {(bigint) 6 /* 50: String < Pattern: superclass init_table position */},
   {(bigint) standard___string_search___String___search_index_in},
   {(bigint) standard___string_search___String___search_in},
   {(bigint) standard___string_search___Pattern___search_all_in},
   {(bigint) standard___string_search___Pattern___split_in},
-  {(bigint) 0 /* 52: String < Comparable: superclass init_table position */},
-  {(bigint) 3535 /* 53: VT String::OTHER : id of String */},
-  {(bigint) 8 /* 54: VT String::OTHER : color of String */},
+  {(bigint) 0 /* 55: String < Comparable: superclass init_table position */},
+  {(bigint) 3615 /* 56: VT String::OTHER : id of String */},
+  {(bigint) 8 /* 57: VT String::OTHER : color of String */},
   {(bigint) standard___string___String_____l},
   {(bigint) standard___kernel___Comparable_____leq},
   {(bigint) standard___kernel___Comparable_____geq},
@@ -22091,7 +22115,7 @@ const classtable_elt_t VFT_standard___string___String[142] = {
   {(bigint) standard___kernel___Comparable___min},
   {(bigint) standard___string___Collection___join},
   {(bigint) standard___collection___array___Collection___to_a},
-  {(bigint) 4 /* 65: String < Collection: superclass init_table position */},
+  {(bigint) 5 /* 68: String < Collection: superclass init_table position */},
   {(bigint) standard___collection___array___AbstractArrayRead___iterator},
   {(bigint) standard___collection___abstract_collection___Collection___iterate},
   {(bigint) standard___collection___array___AbstractArrayRead___is_empty},
@@ -22101,7 +22125,7 @@ const classtable_elt_t VFT_standard___string___String[142] = {
   {(bigint) standard___collection___array___AbstractArrayRead___count},
   {(bigint) standard___collection___abstract_collection___SequenceRead___first},
   {(bigint) standard___math___Collection___rand},
-  {(bigint) 3 /* 75: String < SequenceRead: superclass init_table position */},
+  {(bigint) 4 /* 78: String < SequenceRead: superclass init_table position */},
   {(bigint) standard___string___AbstractString_____bra},
   {(bigint) standard___collection___abstract_collection___SequenceRead___last},
   {(bigint) standard___collection___array___AbstractArrayRead___index_of},
@@ -22109,7 +22133,7 @@ const classtable_elt_t VFT_standard___string___String[142] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 5 /* 83: String < AbstractArrayRead: superclass init_table position */},
+  {(bigint) 3 /* 86: String < AbstractArrayRead: superclass init_table position */},
   {(bigint) standard___collection___array___AbstractArrayRead___last_index_of},
   {(bigint) standard___collection___array___AbstractArrayRead___index_of_from},
   {(bigint) standard___collection___array___AbstractArrayRead___last_index_of_from},
@@ -22126,13 +22150,7 @@ const classtable_elt_t VFT_standard___string___String[142] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 2 /* 106: String < AbstractString: superclass init_table position */},
+  {(bigint) 2 /* 103: String < AbstractString: superclass init_table position */},
   {(bigint) standard___string___AbstractString___items},
   {(bigint) standard___string___AbstractString___substring},
   {(bigint) standard___string___AbstractString___substring_from},
@@ -22144,14 +22162,14 @@ const classtable_elt_t VFT_standard___string___String[142] = {
   {(bigint) standard___string___AbstractString___a_to},
   {(bigint) standard___string___AbstractString___to_upper},
   {(bigint) standard___string___AbstractString___to_lower},
-  {(bigint) native_interface___frontier___String___path_from_parent},
   {(bigint) standard___symbol___String___to_symbol},
-  {(bigint) 7 /* 120: String < String: superclass init_table position */},
+  {(bigint) 7 /* 116: String < String: superclass init_table position */},
   {(bigint) standard___string___String___with_native},
   {(bigint) standard___string___String___from_cstring},
   {(bigint) standard___string___String___to_cstring},
   {(bigint) standard___string___String_____plus},
   {(bigint) standard___string___String_____star},
+  {(bigint) standard___string___String___to_f},
   {(bigint) standard___file___String___file_exists},
   {(bigint) standard___file___String___file_stat},
   {(bigint) standard___file___String___file_delete},
@@ -22159,8 +22177,10 @@ const classtable_elt_t VFT_standard___string___String[142] = {
   {(bigint) standard___file___String___basename},
   {(bigint) standard___file___String___dirname},
   {(bigint) standard___file___String___simplify_path},
+  {(bigint) standard___file___String___join_path},
   {(bigint) standard___file___String___mkdir},
   {(bigint) standard___file___String___file_extension},
+  {(bigint) standard___file___String___files},
   {(bigint) standard___string_search___String___search},
   {(bigint) standard___string_search___String___search_from},
   {(bigint) standard___string_search___String___search_all},
@@ -22186,7 +22206,7 @@ void INIT_ATTRIBUTES__standard___string___String(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Int(0);
   ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -22241,7 +22261,7 @@ val_t NEW_String_standard___string___String___with_native(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//string.nit:170 */
+  /* ../lib/standard/string.nit:170 */
   fra.me.REG[1] = NEW_standard___string___String();
   INIT_ATTRIBUTES__standard___string___String(fra.me.REG[1]);
   standard___string___String___with_native(fra.me.REG[1], fra.me.REG[0], REGB0, init_table);
@@ -22263,7 +22283,7 @@ val_t NEW_String_standard___string___String___from_cstring(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:178 */
+  /* ../lib/standard/string.nit:178 */
   fra.me.REG[1] = NEW_standard___string___String();
   INIT_ATTRIBUTES__standard___string___String(fra.me.REG[1]);
   standard___string___String___from_cstring(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -22271,26 +22291,27 @@ val_t NEW_String_standard___string___String___from_cstring(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___string___Buffer[128] = {
-  {(bigint) 3743 /* 0: Identity */},
+const classtable_elt_t VFT_standard___string___Buffer[125] = {
+  {(bigint) 3827 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "Buffer" /* 2: Class Name */},
   {(bigint) 3 /* 3: Buffer < Object: superclass typecheck marker */},
   {(bigint) 35 /* 4: Buffer < StringCapable: superclass typecheck marker */},
-  {(bigint) 275 /* 5: Buffer < Comparable: superclass typecheck marker */},
-  {(bigint) 283 /* 6: Buffer < Collection: superclass typecheck marker */},
-  {(bigint) 351 /* 7: Buffer < SequenceRead: superclass typecheck marker */},
-  {(bigint) 367 /* 8: Buffer < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 2779 /* 9: Buffer < SimpleCollection: superclass typecheck marker */},
-  {(bigint) 3039 /* 10: Buffer < AbstractArrayRead: superclass typecheck marker */},
-  {(bigint) 3187 /* 11: Buffer < Sequence: superclass typecheck marker */},
-  {(bigint) 3239 /* 12: Buffer < AbstractString: superclass typecheck marker */},
-  {(bigint) 3567 /* 13: Buffer < AbstractArray: superclass typecheck marker */},
-  {(bigint) 3743 /* 14: Buffer < Buffer: superclass typecheck marker */},
+  {(bigint) 271 /* 5: Buffer < Comparable: superclass typecheck marker */},
+  {(bigint) 279 /* 6: Buffer < Collection: superclass typecheck marker */},
+  {(bigint) 343 /* 7: Buffer < SequenceRead: superclass typecheck marker */},
+  {(bigint) 359 /* 8: Buffer < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 2539 /* 9: Buffer < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 2799 /* 10: Buffer < AbstractArrayRead: superclass typecheck marker */},
+  {(bigint) 3251 /* 11: Buffer < Sequence: superclass typecheck marker */},
+  {(bigint) 3303 /* 12: Buffer < AbstractString: superclass typecheck marker */},
+  {(bigint) 3647 /* 13: Buffer < AbstractArray: superclass typecheck marker */},
+  {(bigint) 3827 /* 14: Buffer < Buffer: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: Buffer < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: Buffer < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___string___Buffer_____eqeq},
@@ -22306,6 +22327,8 @@ const classtable_elt_t VFT_standard___string___Buffer[128] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Buffer___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -22319,14 +22342,14 @@ const classtable_elt_t VFT_standard___string___Buffer[128] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 6 /* 47: Buffer < StringCapable: superclass init_table position */},
+  {(bigint) 6 /* 50: Buffer < StringCapable: superclass init_table position */},
   {(bigint) standard___string___StringCapable___calloc_string},
-  {(bigint) standard___string___StringCapable___init},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 5 /* 52: Buffer < Comparable: superclass init_table position */},
-  {(bigint) 3535 /* 53: VT Buffer::OTHER : id of String */},
-  {(bigint) 8 /* 54: VT Buffer::OTHER : color of String */},
+  {(bigint) 9 /* 52: Buffer < SimpleCollection: superclass init_table position */},
+  {(bigint) standard___string___Buffer___add},
+  {(bigint) standard___collection___abstract_collection___SimpleCollection___add_all},
+  {(bigint) 5 /* 55: Buffer < Comparable: superclass init_table position */},
+  {(bigint) 3615 /* 56: VT Buffer::OTHER : id of String */},
+  {(bigint) 8 /* 57: VT Buffer::OTHER : color of String */},
   {(bigint) standard___string___Buffer_____l},
   {(bigint) standard___kernel___Comparable_____leq},
   {(bigint) standard___kernel___Comparable_____geq},
@@ -22337,7 +22360,7 @@ const classtable_elt_t VFT_standard___string___Buffer[128] = {
   {(bigint) standard___kernel___Comparable___min},
   {(bigint) standard___string___Collection___join},
   {(bigint) standard___collection___array___Collection___to_a},
-  {(bigint) 2 /* 65: Buffer < Collection: superclass init_table position */},
+  {(bigint) 3 /* 68: Buffer < Collection: superclass init_table position */},
   {(bigint) standard___collection___array___AbstractArrayRead___iterator},
   {(bigint) standard___collection___abstract_collection___Collection___iterate},
   {(bigint) standard___collection___array___AbstractArrayRead___is_empty},
@@ -22347,28 +22370,22 @@ const classtable_elt_t VFT_standard___string___Buffer[128] = {
   {(bigint) standard___collection___array___AbstractArrayRead___count},
   {(bigint) standard___collection___abstract_collection___SequenceRead___first},
   {(bigint) standard___math___Collection___rand},
-  {(bigint) 1 /* 75: Buffer < SequenceRead: superclass init_table position */},
+  {(bigint) 2 /* 78: Buffer < SequenceRead: superclass init_table position */},
   {(bigint) standard___string___AbstractString_____bra},
   {(bigint) standard___collection___abstract_collection___SequenceRead___last},
   {(bigint) standard___collection___array___AbstractArrayRead___index_of},
-  {(bigint) 9 /* 79: Buffer < RemovableCollection: superclass init_table position */},
+  {(bigint) 10 /* 82: Buffer < RemovableCollection: superclass init_table position */},
   {(bigint) standard___collection___array___AbstractArray___clear},
   {(bigint) standard___collection___array___AbstractArray___remove},
   {(bigint) standard___collection___array___AbstractArray___remove_all},
-  {(bigint) 4 /* 83: Buffer < AbstractArrayRead: superclass init_table position */},
+  {(bigint) 1 /* 86: Buffer < AbstractArrayRead: superclass init_table position */},
   {(bigint) standard___collection___array___AbstractArrayRead___last_index_of},
   {(bigint) standard___collection___array___AbstractArrayRead___index_of_from},
   {(bigint) standard___collection___array___AbstractArrayRead___last_index_of_from},
   {(bigint) standard___collection___array___AbstractArrayRead___reversed},
   {(bigint) standard___collection___array___AbstractArrayRead___copy_to},
   {(bigint) standard___collection___array___AbstractArrayRead___init},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 8 /* 93: Buffer < SimpleCollection: superclass init_table position */},
-  {(bigint) standard___string___Buffer___add},
-  {(bigint) standard___collection___abstract_collection___SimpleCollection___add_all},
-  {(bigint) 7 /* 96: Buffer < Sequence: superclass init_table position */},
+  {(bigint) 8 /* 93: Buffer < Sequence: superclass init_table position */},
   {(bigint) standard___collection___abstract_collection___Sequence___first__eq},
   {(bigint) standard___collection___abstract_collection___Sequence___last__eq},
   {(bigint) standard___collection___array___AbstractArray___push},
@@ -22378,7 +22395,7 @@ const classtable_elt_t VFT_standard___string___Buffer[128] = {
   {(bigint) standard___collection___array___AbstractArray___shift},
   {(bigint) standard___string___Buffer_____braeq},
   {(bigint) standard___collection___array___AbstractArray___remove_at},
-  {(bigint) 0 /* 106: Buffer < AbstractString: superclass init_table position */},
+  {(bigint) 0 /* 103: Buffer < AbstractString: superclass init_table position */},
   {(bigint) standard___string___AbstractString___items},
   {(bigint) standard___string___AbstractString___substring},
   {(bigint) standard___string___AbstractString___substring_from},
@@ -22390,11 +22407,11 @@ const classtable_elt_t VFT_standard___string___Buffer[128] = {
   {(bigint) standard___string___AbstractString___a_to},
   {(bigint) standard___string___AbstractString___to_upper},
   {(bigint) standard___string___AbstractString___to_lower},
-  {(bigint) 10 /* 118: Buffer < AbstractArray: superclass init_table position */},
+  {(bigint) 7 /* 115: Buffer < AbstractArray: superclass init_table position */},
   {(bigint) standard___string___Buffer___enlarge},
   {(bigint) standard___collection___array___AbstractArray___insert},
   {(bigint) standard___collection___array___AbstractArray___swap_at},
-  {(bigint) 11 /* 122: Buffer < Buffer: superclass init_table position */},
+  {(bigint) 11 /* 119: Buffer < Buffer: superclass init_table position */},
   {(bigint) standard___collection___abstract_collection___Sequence___append},
   {(bigint) standard___string___Buffer___init},
   {(bigint) standard___string___Buffer___from},
@@ -22419,7 +22436,7 @@ void INIT_ATTRIBUTES__standard___string___Buffer(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Int(0);
   ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -22469,13 +22486,13 @@ val_t NEW_Buffer_standard___string___Buffer___init(void){
   int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 352;
+  fra.me.line = 354;
   fra.me.meth = LOCATE_NEW_Buffer_standard___string___Buffer___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./../lib/standard//string.nit:352 */
+  /* ../lib/standard/string.nit:354 */
   fra.me.REG[0] = NEW_standard___string___Buffer();
   INIT_ATTRIBUTES__standard___string___Buffer(fra.me.REG[0]);
   standard___string___Buffer___init(fra.me.REG[0], init_table);
@@ -22489,7 +22506,7 @@ val_t NEW_Buffer_standard___string___Buffer___from(val_t p0){
   int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 358;
+  fra.me.line = 360;
   fra.me.meth = LOCATE_NEW_Buffer_standard___string___Buffer___from;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -22497,7 +22514,7 @@ val_t NEW_Buffer_standard___string___Buffer___from(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:358 */
+  /* ../lib/standard/string.nit:360 */
   fra.me.REG[1] = NEW_standard___string___Buffer();
   INIT_ATTRIBUTES__standard___string___Buffer(fra.me.REG[1]);
   standard___string___Buffer___from(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -22512,14 +22529,14 @@ val_t NEW_Buffer_standard___string___Buffer___with_capacity(val_t p0){
   int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 366;
+  fra.me.line = 368;
   fra.me.meth = LOCATE_NEW_Buffer_standard___string___Buffer___with_capacity;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./../lib/standard//string.nit:366 */
+  /* ../lib/standard/string.nit:368 */
   fra.me.REG[0] = NEW_standard___string___Buffer();
   INIT_ATTRIBUTES__standard___string___Buffer(fra.me.REG[0]);
   standard___string___Buffer___with_capacity(fra.me.REG[0], REGB0, init_table);
@@ -22527,7 +22544,7 @@ val_t NEW_Buffer_standard___string___Buffer___with_capacity(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_standard___string___NativeString[60] = {
+const classtable_elt_t VFT_standard___string___NativeString[63] = {
   {(bigint) -5 /* 0: Identity */},
   {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "NativeString" /* 2: Class Name */},
@@ -22544,814 +22561,10 @@ const classtable_elt_t VFT_standard___string___NativeString[60] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: NativeString < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) standard___environ___NativeString___get_environ},
-  {(bigint) 1 /* 48: NativeString < NativeString: superclass init_table position */},
-  {(bigint) standard___string___NativeString_____bra},
-  {(bigint) standard___string___NativeString_____braeq},
-  {(bigint) standard___string___NativeString___copy_to},
-  {(bigint) standard___string___NativeString___cstring_length},
-  {(bigint) standard___string___NativeString___atoi},
-  {(bigint) standard___string___NativeString___init},
-  {(bigint) standard___file___NativeString___file_exists},
-  {(bigint) standard___file___NativeString___file_stat},
-  {(bigint) standard___file___NativeString___file_mkdir},
-  {(bigint) standard___file___NativeString___file_delete},
-  {(bigint) standard___exec___NativeString___system},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-val_t BOX_NativeString(char * val) {
-  struct TBOX_NativeString *box = (struct TBOX_NativeString*)alloc(sizeof(struct TBOX_NativeString));
-  box->vft = VFT_standard___string___NativeString;
-  box->val = val;
-  box->object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(box);
-}
-const classtable_elt_t VFT_standard___string___StringCapable[50] = {
-  {(bigint) 35 /* 0: Identity */},
-  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "StringCapable" /* 2: Class Name */},
-  {(bigint) 3 /* 3: StringCapable < Object: superclass typecheck marker */},
-  {(bigint) 35 /* 4: StringCapable < StringCapable: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: StringCapable < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: StringCapable < StringCapable: superclass init_table position */},
-  {(bigint) standard___string___StringCapable___calloc_string},
-  {(bigint) standard___string___StringCapable___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-void INIT_ATTRIBUTES__standard___string___StringCapable(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__standard___string___StringCapable;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_standard___string___StringCapable(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_standard___string___StringCapable;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_standard___string___StringCapable(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_standard___string___StringCapable;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_StringCapable_standard___string___StringCapable___init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[2] = {0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_StringCapable_standard___string___StringCapable___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_standard___string___StringCapable();
-  INIT_ATTRIBUTES__standard___string___StringCapable(fra.me.REG[0]);
-  standard___string___StringCapable___init(fra.me.REG[0], init_table);
-  CHECKNEW_standard___string___StringCapable(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_standard___symbol___Symbol[50] = {
-  {(bigint) 31 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "Symbol" /* 2: Class Name */},
-  {(bigint) 3 /* 3: Symbol < Object: superclass typecheck marker */},
-  {(bigint) 31 /* 4: Symbol < Symbol: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: Symbol < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___symbol___Symbol___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) standard___environ___Symbol___environ},
-  {(bigint) 1 /* 48: Symbol < Symbol: superclass init_table position */},
-  {(bigint) standard___symbol___Symbol___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute Symbol::_string */
-void INIT_ATTRIBUTES__standard___symbol___Symbol(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__standard___symbol___Symbol;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_standard___symbol___Symbol(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_standard___symbol___Symbol;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_standard___symbol___Symbol(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_standard___symbol___Symbol;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_standard___symbol___Symbol____string(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_string", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_Symbol_standard___symbol___Symbol___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[2] = {0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 39;
-  fra.me.meth = LOCATE_NEW_Symbol_standard___symbol___Symbol___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./../lib/standard//symbol.nit:39 */
-  fra.me.REG[1] = NEW_standard___symbol___Symbol();
-  INIT_ATTRIBUTES__standard___symbol___Symbol(fra.me.REG[1]);
-  standard___symbol___Symbol___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_standard___symbol___Symbol(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_standard___stream___IOS[59] = {
-  {(bigint) 215 /* 0: Identity */},
-  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "IOS" /* 2: Class Name */},
-  {(bigint) 3 /* 3: IOS < Object: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 215 /* 5: IOS < IOS: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: IOS < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 1 /* 56: IOS < IOS: superclass init_table position */},
-  {(bigint) standard___stream___IOS___close},
-  {(bigint) standard___stream___IOS___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-void INIT_ATTRIBUTES__standard___stream___IOS(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__standard___stream___IOS;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_standard___stream___IOS(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_standard___stream___IOS;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_standard___stream___IOS(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_standard___stream___IOS;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_IOS_standard___stream___IOS___init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[2] = {0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_IOS_standard___stream___IOS___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_standard___stream___IOS();
-  INIT_ATTRIBUTES__standard___stream___IOS(fra.me.REG[0]);
-  standard___stream___IOS___init(fra.me.REG[0], init_table);
-  CHECKNEW_standard___stream___IOS(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_standard___stream___IStream[69] = {
-  {(bigint) 2227 /* 0: Identity */},
-  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "IStream" /* 2: Class Name */},
-  {(bigint) 3 /* 3: IStream < Object: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 215 /* 5: IStream < IOS: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2227 /* 7: IStream < IStream: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: IStream < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 1 /* 56: IStream < IOS: superclass init_table position */},
-  {(bigint) standard___stream___IOS___close},
-  {(bigint) standard___stream___IOS___init},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 2 /* 62: IStream < IStream: superclass init_table position */},
-  {(bigint) standard___stream___IStream___read_char},
-  {(bigint) standard___stream___IStream___read},
-  {(bigint) standard___stream___IStream___read_line},
-  {(bigint) standard___stream___IStream___read_all},
-  {(bigint) standard___stream___IStream___append_line_to},
-  {(bigint) standard___stream___IStream___eof},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-void INIT_ATTRIBUTES__standard___stream___IStream(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__standard___stream___IStream;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_standard___stream___IStream(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_standard___stream___IStream;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_standard___stream___IStream(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_standard___stream___IStream;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_IStream_standard___stream___IOS___init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_IStream_standard___stream___IOS___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_standard___stream___IStream();
-  INIT_ATTRIBUTES__standard___stream___IStream(fra.me.REG[0]);
-  standard___stream___IOS___init(fra.me.REG[0], init_table);
-  CHECKNEW_standard___stream___IStream(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_standard___stream___OStream[62] = {
-  {(bigint) 2107 /* 0: Identity */},
-  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "OStream" /* 2: Class Name */},
-  {(bigint) 3 /* 3: OStream < Object: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 215 /* 5: OStream < IOS: superclass typecheck marker */},
-  {(bigint) 2107 /* 6: OStream < OStream: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: OStream < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 1 /* 56: OStream < IOS: superclass init_table position */},
-  {(bigint) standard___stream___IOS___close},
-  {(bigint) standard___stream___IOS___init},
-  {(bigint) 2 /* 59: OStream < OStream: superclass init_table position */},
-  {(bigint) standard___stream___OStream___write},
-  {(bigint) standard___stream___OStream___is_writable},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-void INIT_ATTRIBUTES__standard___stream___OStream(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__standard___stream___OStream;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_standard___stream___OStream(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_standard___stream___OStream;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_standard___stream___OStream(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_standard___stream___OStream;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_OStream_standard___stream___IOS___init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_OStream_standard___stream___IOS___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_standard___stream___OStream();
-  INIT_ATTRIBUTES__standard___stream___OStream(fra.me.REG[0]);
-  standard___stream___IOS___init(fra.me.REG[0], init_table);
-  CHECKNEW_standard___stream___OStream(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_standard___stream___BufferedIStream[73] = {
-  {(bigint) 3015 /* 0: Identity */},
-  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "BufferedIStream" /* 2: Class Name */},
-  {(bigint) 3 /* 3: BufferedIStream < Object: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 215 /* 5: BufferedIStream < IOS: superclass typecheck marker */},
-  {(bigint) 3015 /* 6: BufferedIStream < BufferedIStream: superclass typecheck marker */},
-  {(bigint) 2227 /* 7: BufferedIStream < IStream: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: BufferedIStream < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 1 /* 56: BufferedIStream < IOS: superclass init_table position */},
-  {(bigint) standard___stream___IOS___close},
-  {(bigint) standard___stream___IOS___init},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 2 /* 62: BufferedIStream < IStream: superclass init_table position */},
-  {(bigint) standard___stream___BufferedIStream___read_char},
-  {(bigint) standard___stream___BufferedIStream___read},
-  {(bigint) standard___stream___IStream___read_line},
-  {(bigint) standard___stream___BufferedIStream___read_all},
-  {(bigint) standard___stream___BufferedIStream___append_line_to},
-  {(bigint) standard___stream___BufferedIStream___eof},
-  {(bigint) 3 /* 69: BufferedIStream < BufferedIStream: superclass init_table position */},
-  {(bigint) standard___stream___BufferedIStream___fill_buffer},
-  {(bigint) standard___stream___BufferedIStream___end_reached},
-  {(bigint) standard___stream___BufferedIStream___prepare_buffer},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* 4: Attribute BufferedIStream::_buffer */
-/* 5: Attribute BufferedIStream::_buffer_pos */
-void INIT_ATTRIBUTES__standard___stream___BufferedIStream(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__standard___stream___BufferedIStream;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./../lib/standard//stream.nit:186 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//stream.nit:190 */
-  REGB0 = TAG_Int(0);
-  ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_standard___stream___BufferedIStream(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_standard___stream___BufferedIStream;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_standard___stream___BufferedIStream(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_standard___stream___BufferedIStream;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_buffer_pos", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_BufferedIStream_standard___stream___IOS___init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_BufferedIStream_standard___stream___IOS___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_standard___stream___BufferedIStream();
-  INIT_ATTRIBUTES__standard___stream___BufferedIStream(fra.me.REG[0]);
-  standard___stream___IOS___init(fra.me.REG[0], init_table);
-  CHECKNEW_standard___stream___BufferedIStream(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_standard___stream___IOStream[76] = {
-  {(bigint) 2879 /* 0: Identity */},
-  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "IOStream" /* 2: Class Name */},
-  {(bigint) 3 /* 3: IOStream < Object: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 215 /* 5: IOStream < IOS: superclass typecheck marker */},
-  {(bigint) 2107 /* 6: IOStream < OStream: superclass typecheck marker */},
-  {(bigint) 2227 /* 7: IOStream < IStream: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 2879 /* 10: IOStream < IOStream: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: IOStream < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: NativeString < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -23367,6 +22580,8 @@ const classtable_elt_t VFT_standard___stream___IOStream[76] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -23380,97 +22595,38 @@ const classtable_elt_t VFT_standard___stream___IOStream[76] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 1 /* 56: IOStream < IOS: superclass init_table position */},
-  {(bigint) standard___stream___IOS___close},
-  {(bigint) standard___stream___IOS___init},
-  {(bigint) 3 /* 59: IOStream < OStream: superclass init_table position */},
-  {(bigint) standard___stream___OStream___write},
-  {(bigint) standard___stream___OStream___is_writable},
-  {(bigint) 2 /* 62: IOStream < IStream: superclass init_table position */},
-  {(bigint) standard___stream___IStream___read_char},
-  {(bigint) standard___stream___IStream___read},
-  {(bigint) standard___stream___IStream___read_line},
-  {(bigint) standard___stream___IStream___read_all},
-  {(bigint) standard___stream___IStream___append_line_to},
-  {(bigint) standard___stream___IStream___eof},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 4 /* 75: IOStream < IOStream: superclass init_table position */},
+  {(bigint) standard___environ___NativeString___get_environ},
+  {(bigint) 1 /* 51: NativeString < NativeString: superclass init_table position */},
+  {(bigint) standard___string___NativeString_____bra},
+  {(bigint) standard___string___NativeString_____braeq},
+  {(bigint) standard___string___NativeString___copy_to},
+  {(bigint) standard___string___NativeString___cstring_length},
+  {(bigint) standard___string___NativeString___atoi},
+  {(bigint) standard___string___NativeString___init},
+  {(bigint) standard___file___NativeString___file_exists},
+  {(bigint) standard___file___NativeString___file_stat},
+  {(bigint) standard___file___NativeString___file_mkdir},
+  {(bigint) standard___file___NativeString___file_delete},
+  {(bigint) standard___exec___NativeString___system},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-void INIT_ATTRIBUTES__standard___stream___IOStream(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__standard___stream___IOStream;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_standard___stream___IOStream(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_standard___stream___IOStream;
-  obj[1].object_id = object_id_counter;
+val_t BOX_NativeString(char * val) {
+  struct TBOX_NativeString *box = (struct TBOX_NativeString*)alloc(sizeof(struct TBOX_NativeString));
+  box->vft = VFT_standard___string___NativeString;
+  box->val = val;
+  box->object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_standard___stream___IOStream(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_standard___stream___IOStream;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_IOStream_standard___stream___IOS___init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_IOStream_standard___stream___IOS___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_standard___stream___IOStream();
-  INIT_ATTRIBUTES__standard___stream___IOStream(fra.me.REG[0]);
-  standard___stream___IOS___init(fra.me.REG[0], init_table);
-  CHECKNEW_standard___stream___IOStream(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
+  return OBJ2VAL(box);
 }
-const classtable_elt_t VFT_standard___stream___FDStream[59] = {
-  {(bigint) 2287 /* 0: Identity */},
+const classtable_elt_t VFT_standard___symbol___Symbol[53] = {
+  {(bigint) 31 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "FDStream" /* 2: Class Name */},
-  {(bigint) 3 /* 3: FDStream < Object: superclass typecheck marker */},
-  {(bigint) 2287 /* 4: FDStream < FDStream: superclass typecheck marker */},
-  {(bigint) 215 /* 5: FDStream < IOS: superclass typecheck marker */},
+  {(bigint) "Symbol" /* 2: Class Name */},
+  {(bigint) 3 /* 3: Symbol < Object: superclass typecheck marker */},
+  {(bigint) 31 /* 4: Symbol < Symbol: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23483,7 +22639,7 @@ const classtable_elt_t VFT_standard___stream___FDStream[59] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: FDStream < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: Symbol < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -23499,7 +22655,9 @@ const classtable_elt_t VFT_standard___stream___FDStream[59] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___symbol___Symbol___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -23512,96 +22670,88 @@ const classtable_elt_t VFT_standard___stream___FDStream[59] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 2 /* 47: FDStream < FDStream: superclass init_table position */},
-  {(bigint) standard___stream___FDStream___native_close},
-  {(bigint) standard___stream___FDStream___native_read_char},
-  {(bigint) standard___stream___FDStream___native_read},
-  {(bigint) standard___stream___FDStream___native_write},
-  {(bigint) standard___stream___FDStream___init},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 1 /* 56: FDStream < IOS: superclass init_table position */},
-  {(bigint) standard___stream___FDStream___close},
-  {(bigint) standard___stream___IOS___init},
+  {(bigint) standard___environ___Symbol___environ},
+  {(bigint) 1 /* 51: Symbol < Symbol: superclass init_table position */},
+  {(bigint) standard___symbol___Symbol___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute FDStream::_fd */
-void INIT_ATTRIBUTES__standard___stream___FDStream(val_t p0){
+/* 2: Attribute Symbol::_string */
+void INIT_ATTRIBUTES__standard___symbol___Symbol(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__standard___stream___FDStream;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__standard___symbol___Symbol;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_standard___stream___FDStream(void)
+val_t NEW_standard___symbol___Symbol(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_standard___stream___FDStream;
+  obj->vft = (classtable_elt_t*)VFT_standard___symbol___Symbol;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_standard___stream___FDStream(val_t p0){
+void CHECKNEW_standard___symbol___Symbol(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_standard___stream___FDStream;
+  fra.me.meth = LOCATE_CHECKNEW_standard___symbol___Symbol;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_standard___stream___FDStream____fd(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_standard___symbol___Symbol____string(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_fd", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_string", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_FDStream_standard___stream___FDStream___init(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
+val_t NEW_Symbol_standard___symbol___Symbol___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[3] = {0, 0, 0};
+  int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 225;
-  fra.me.meth = LOCATE_NEW_FDStream_standard___stream___FDStream___init;
+  fra.me.line = 39;
+  fra.me.meth = LOCATE_NEW_Symbol_standard___symbol___Symbol___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
+  fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  REGB0 = p0;
-  /* ./../lib/standard//stream.nit:225 */
-  fra.me.REG[0] = NEW_standard___stream___FDStream();
-  INIT_ATTRIBUTES__standard___stream___FDStream(fra.me.REG[0]);
-  standard___stream___FDStream___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_standard___stream___FDStream(fra.me.REG[0]);
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* ../lib/standard/symbol.nit:39 */
+  fra.me.REG[1] = NEW_standard___symbol___Symbol();
+  INIT_ATTRIBUTES__standard___symbol___Symbol(fra.me.REG[1]);
+  standard___symbol___Symbol___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_standard___symbol___Symbol(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___stream___FDIStream[71] = {
-  {(bigint) 2979 /* 0: Identity */},
+const classtable_elt_t VFT_standard___stream___FDIStream[76] = {
+  {(bigint) 2739 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "FDIStream" /* 2: Class Name */},
   {(bigint) 3 /* 3: FDIStream < Object: superclass typecheck marker */},
-  {(bigint) 2287 /* 4: FDIStream < FDStream: superclass typecheck marker */},
-  {(bigint) 215 /* 5: FDIStream < IOS: superclass typecheck marker */},
+  {(bigint) 2323 /* 4: FDIStream < FDStream: superclass typecheck marker */},
+  {(bigint) 211 /* 5: FDIStream < IOS: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2263 /* 7: FDIStream < IStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2227 /* 7: FDIStream < IStream: superclass typecheck marker */},
+  {(bigint) 2739 /* 9: FDIStream < FDIStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2979 /* 9: FDIStream < FDIStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23610,7 +22760,7 @@ const classtable_elt_t VFT_standard___stream___FDIStream[71] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: FDIStream < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: FDIStream < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -23626,6 +22776,8 @@ const classtable_elt_t VFT_standard___stream___FDIStream[71] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -23639,7 +22791,9 @@ const classtable_elt_t VFT_standard___stream___FDIStream[71] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 2 /* 47: FDIStream < FDStream: superclass init_table position */},
+  {(bigint) 0 /* 50: FDIStream < FDStream: superclass init_table position */},
+  {(bigint) standard___stream___FDStream___fd},
+  {(bigint) standard___stream___FDStream___fd__eq},
   {(bigint) standard___stream___FDStream___native_close},
   {(bigint) standard___stream___FDStream___native_read_char},
   {(bigint) standard___stream___FDStream___native_read},
@@ -23648,27 +22802,27 @@ const classtable_elt_t VFT_standard___stream___FDIStream[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 1 /* 56: FDIStream < IOS: superclass init_table position */},
+  {(bigint) 1 /* 61: FDIStream < IOS: superclass init_table position */},
   {(bigint) standard___stream___FDStream___close},
-  {(bigint) standard___stream___IOS___init},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 3 /* 62: FDIStream < IStream: superclass init_table position */},
+  {(bigint) 3 /* 66: FDIStream < IStream: superclass init_table position */},
   {(bigint) standard___stream___FDIStream___read_char},
   {(bigint) standard___stream___IStream___read},
   {(bigint) standard___stream___IStream___read_line},
   {(bigint) standard___stream___IStream___read_all},
   {(bigint) standard___stream___IStream___append_line_to},
   {(bigint) standard___stream___FDIStream___eof},
-  {(bigint) 4 /* 69: FDIStream < FDIStream: superclass init_table position */},
+  {(bigint) 4 /* 73: FDIStream < FDIStream: superclass init_table position */},
+  {(bigint) standard___stream___FDIStream___eof__eq},
   {(bigint) standard___stream___FDIStream___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute FDIStream::_fd */
+/* 2: Attribute FDIStream::@fd */
 /* Instance Hole :( */
-/* 4: Attribute FDIStream::_eof */
+/* 4: Attribute FDIStream::@eof */
 void INIT_ATTRIBUTES__standard___stream___FDIStream(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -23682,9 +22836,9 @@ void INIT_ATTRIBUTES__standard___stream___FDIStream(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//stream.nit:231 */
+  /* ../lib/standard/stream.nit:231 */
   REGB0 = TAG_Bool(false);
-  ATTR_standard___stream___FDIStream____eof(fra.me.REG[0]) = REGB0;
+  ATTR_standard___stream___FDIStream_____ateof(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
 }
 val_t NEW_standard___stream___FDIStream(void)
@@ -23709,15 +22863,15 @@ void CHECKNEW_standard___stream___FDIStream(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_standard___stream___FDIStream____eof(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_standard___stream___FDIStream_____ateof(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_eof", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "@eof", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_standard___stream___FDStream____fd(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_standard___stream___FDStream_____atfd(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_fd", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "@fd", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
@@ -23735,7 +22889,7 @@ val_t NEW_FDIStream_standard___stream___FDIStream___init(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./../lib/standard//stream.nit:240 */
+  /* ../lib/standard/stream.nit:240 */
   fra.me.REG[0] = NEW_standard___stream___FDIStream();
   INIT_ATTRIBUTES__standard___stream___FDIStream(fra.me.REG[0]);
   standard___stream___FDIStream___init(fra.me.REG[0], REGB0, init_table);
@@ -23743,16 +22897,17 @@ val_t NEW_FDIStream_standard___stream___FDIStream___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_standard___stream___FDOStream[62] = {
-  {(bigint) 2975 /* 0: Identity */},
+const classtable_elt_t VFT_standard___stream___FDOStream[66] = {
+  {(bigint) 2735 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "FDOStream" /* 2: Class Name */},
   {(bigint) 3 /* 3: FDOStream < Object: superclass typecheck marker */},
-  {(bigint) 2287 /* 4: FDOStream < FDStream: superclass typecheck marker */},
-  {(bigint) 215 /* 5: FDOStream < IOS: superclass typecheck marker */},
-  {(bigint) 2107 /* 6: FDOStream < OStream: superclass typecheck marker */},
+  {(bigint) 2323 /* 4: FDOStream < FDStream: superclass typecheck marker */},
+  {(bigint) 211 /* 5: FDOStream < IOS: superclass typecheck marker */},
+  {(bigint) 2143 /* 6: FDOStream < OStream: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2735 /* 8: FDOStream < FDOStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2975 /* 8: FDOStream < FDOStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23762,7 +22917,7 @@ const classtable_elt_t VFT_standard___stream___FDOStream[62] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: FDOStream < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: FDOStream < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -23778,6 +22933,8 @@ const classtable_elt_t VFT_standard___stream___FDOStream[62] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -23791,26 +22948,27 @@ const classtable_elt_t VFT_standard___stream___FDOStream[62] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 2 /* 47: FDOStream < FDStream: superclass init_table position */},
+  {(bigint) 0 /* 50: FDOStream < FDStream: superclass init_table position */},
+  {(bigint) standard___stream___FDStream___fd},
+  {(bigint) standard___stream___FDStream___fd__eq},
   {(bigint) standard___stream___FDStream___native_close},
   {(bigint) standard___stream___FDStream___native_read_char},
   {(bigint) standard___stream___FDStream___native_read},
   {(bigint) standard___stream___FDStream___native_write},
   {(bigint) standard___stream___FDStream___init},
-  {(bigint) 4 /* 53: FDOStream < FDOStream: superclass init_table position */},
+  {(bigint) 4 /* 58: FDOStream < FDOStream: superclass init_table position */},
+  {(bigint) standard___stream___FDOStream___is_writable__eq},
   {(bigint) standard___stream___FDOStream___init},
-  {0} /* Class Hole :( */,
-  {(bigint) 1 /* 56: FDOStream < IOS: superclass init_table position */},
+  {(bigint) 1 /* 61: FDOStream < IOS: superclass init_table position */},
   {(bigint) standard___stream___FDStream___close},
-  {(bigint) standard___stream___IOS___init},
-  {(bigint) 3 /* 59: FDOStream < OStream: superclass init_table position */},
+  {(bigint) 3 /* 63: FDOStream < OStream: superclass init_table position */},
   {(bigint) standard___stream___FDOStream___write},
   {(bigint) standard___stream___FDOStream___is_writable},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute FDOStream::_fd */
-/* 3: Attribute FDOStream::_is_writable */
+/* 2: Attribute FDOStream::@fd */
+/* 3: Attribute FDOStream::@is_writable */
 void INIT_ATTRIBUTES__standard___stream___FDOStream(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -23845,15 +23003,15 @@ void CHECKNEW_standard___stream___FDOStream(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_standard___stream___FDOStream____is_writable(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_standard___stream___FDOStream_____atis_writable(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_is_writable", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "@is_writable", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_standard___stream___FDStream____fd(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_standard___stream___FDStream_____atfd(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_fd", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "@fd", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
@@ -23871,7 +23029,7 @@ val_t NEW_FDOStream_standard___stream___FDOStream___init(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./../lib/standard//stream.nit:254 */
+  /* ../lib/standard/stream.nit:254 */
   fra.me.REG[0] = NEW_standard___stream___FDOStream();
   INIT_ATTRIBUTES__standard___stream___FDOStream(fra.me.REG[0]);
   standard___stream___FDOStream___init(fra.me.REG[0], REGB0, init_table);
@@ -23879,26 +23037,27 @@ val_t NEW_FDOStream_standard___stream___FDOStream___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_standard___stream___FDIOStream[76] = {
-  {(bigint) 3231 /* 0: Identity */},
+const classtable_elt_t VFT_standard___stream___FDIOStream[84] = {
+  {(bigint) 3295 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "FDIOStream" /* 2: Class Name */},
   {(bigint) 3 /* 3: FDIOStream < Object: superclass typecheck marker */},
-  {(bigint) 2287 /* 4: FDIOStream < FDStream: superclass typecheck marker */},
-  {(bigint) 215 /* 5: FDIOStream < IOS: superclass typecheck marker */},
-  {(bigint) 2107 /* 6: FDIOStream < OStream: superclass typecheck marker */},
-  {(bigint) 2227 /* 7: FDIOStream < IStream: superclass typecheck marker */},
-  {(bigint) 2975 /* 8: FDIOStream < FDOStream: superclass typecheck marker */},
-  {(bigint) 2979 /* 9: FDIOStream < FDIStream: superclass typecheck marker */},
-  {(bigint) 2879 /* 10: FDIOStream < IOStream: superclass typecheck marker */},
-  {(bigint) 3231 /* 11: FDIOStream < FDIOStream: superclass typecheck marker */},
+  {(bigint) 2323 /* 4: FDIOStream < FDStream: superclass typecheck marker */},
+  {(bigint) 211 /* 5: FDIOStream < IOS: superclass typecheck marker */},
+  {(bigint) 2143 /* 6: FDIOStream < OStream: superclass typecheck marker */},
+  {(bigint) 2263 /* 7: FDIOStream < IStream: superclass typecheck marker */},
+  {(bigint) 2735 /* 8: FDIOStream < FDOStream: superclass typecheck marker */},
+  {(bigint) 2739 /* 9: FDIOStream < FDIStream: superclass typecheck marker */},
+  {(bigint) 2639 /* 10: FDIOStream < IOStream: superclass typecheck marker */},
+  {(bigint) 3295 /* 11: FDIOStream < FDIOStream: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: FDIOStream < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: FDIOStream < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -23914,6 +23073,8 @@ const classtable_elt_t VFT_standard___stream___FDIOStream[76] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -23927,41 +23088,46 @@ const classtable_elt_t VFT_standard___stream___FDIOStream[76] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 2 /* 47: FDIOStream < FDStream: superclass init_table position */},
+  {(bigint) 0 /* 50: FDIOStream < FDStream: superclass init_table position */},
+  {(bigint) standard___stream___FDStream___fd},
+  {(bigint) standard___stream___FDStream___fd__eq},
   {(bigint) standard___stream___FDStream___native_close},
   {(bigint) standard___stream___FDStream___native_read_char},
   {(bigint) standard___stream___FDStream___native_read},
   {(bigint) standard___stream___FDStream___native_write},
   {(bigint) standard___stream___FDStream___init},
-  {(bigint) 6 /* 53: FDIOStream < FDOStream: superclass init_table position */},
+  {(bigint) 6 /* 58: FDIOStream < FDOStream: superclass init_table position */},
+  {(bigint) standard___stream___FDOStream___is_writable__eq},
   {(bigint) standard___stream___FDOStream___init},
-  {0} /* Class Hole :( */,
-  {(bigint) 1 /* 56: FDIOStream < IOS: superclass init_table position */},
+  {(bigint) 1 /* 61: FDIOStream < IOS: superclass init_table position */},
   {(bigint) standard___stream___FDStream___close},
-  {(bigint) standard___stream___IOS___init},
-  {(bigint) 5 /* 59: FDIOStream < OStream: superclass init_table position */},
+  {(bigint) 5 /* 63: FDIOStream < OStream: superclass init_table position */},
   {(bigint) standard___stream___FDOStream___write},
   {(bigint) standard___stream___FDOStream___is_writable},
-  {(bigint) 3 /* 62: FDIOStream < IStream: superclass init_table position */},
+  {(bigint) 3 /* 66: FDIOStream < IStream: superclass init_table position */},
   {(bigint) standard___stream___FDIStream___read_char},
   {(bigint) standard___stream___IStream___read},
   {(bigint) standard___stream___IStream___read_line},
   {(bigint) standard___stream___IStream___read_all},
   {(bigint) standard___stream___IStream___append_line_to},
   {(bigint) standard___stream___FDIStream___eof},
-  {(bigint) 4 /* 69: FDIOStream < FDIStream: superclass init_table position */},
+  {(bigint) 4 /* 73: FDIOStream < FDIStream: superclass init_table position */},
+  {(bigint) standard___stream___FDIStream___eof__eq},
   {(bigint) standard___stream___FDIStream___init},
-  {(bigint) 8 /* 71: FDIOStream < FDIOStream: superclass init_table position */},
+  {(bigint) 8 /* 76: FDIOStream < FDIOStream: superclass init_table position */},
   {(bigint) standard___stream___FDIOStream___init},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 7 /* 75: FDIOStream < IOStream: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 7 /* 83: FDIOStream < IOStream: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute FDIOStream::_fd */
-/* 3: Attribute FDIOStream::_is_writable */
-/* 4: Attribute FDIOStream::_eof */
+/* 2: Attribute FDIOStream::@fd */
+/* 3: Attribute FDIOStream::@is_writable */
+/* 4: Attribute FDIOStream::@eof */
 void INIT_ATTRIBUTES__standard___stream___FDIOStream(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -23975,9 +23141,9 @@ void INIT_ATTRIBUTES__standard___stream___FDIOStream(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//stream.nit:231 */
+  /* ../lib/standard/stream.nit:231 */
   REGB0 = TAG_Bool(false);
-  ATTR_standard___stream___FDIStream____eof(fra.me.REG[0]) = REGB0;
+  ATTR_standard___stream___FDIStream_____ateof(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
 }
 val_t NEW_standard___stream___FDIOStream(void)
@@ -24002,20 +23168,20 @@ void CHECKNEW_standard___stream___FDIOStream(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_standard___stream___FDIStream____eof(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_standard___stream___FDIStream_____ateof(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_eof", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "@eof", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_standard___stream___FDStream____fd(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_standard___stream___FDStream_____atfd(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_fd", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "@fd", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_standard___stream___FDOStream____is_writable(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_standard___stream___FDOStream_____atis_writable(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_is_writable", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "@is_writable", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
@@ -24033,7 +23199,7 @@ val_t NEW_FDIOStream_standard___stream___FDIOStream___init(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./../lib/standard//stream.nit:264 */
+  /* ../lib/standard/stream.nit:264 */
   fra.me.REG[0] = NEW_standard___stream___FDIOStream();
   INIT_ATTRIBUTES__standard___stream___FDIOStream(fra.me.REG[0]);
   standard___stream___FDIOStream___init(fra.me.REG[0], REGB0, init_table);
@@ -24041,13 +23207,14 @@ val_t NEW_FDIOStream_standard___stream___FDIOStream___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_standard___string_search___BM_Pattern[58] = {
-  {(bigint) 2355 /* 0: Identity */},
+const classtable_elt_t VFT_standard___string_search___BM_Pattern[61] = {
+  {(bigint) 2391 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "BM_Pattern" /* 2: Class Name */},
   {(bigint) 3 /* 3: BM_Pattern < Object: superclass typecheck marker */},
   {(bigint) 103 /* 4: BM_Pattern < Pattern: superclass typecheck marker */},
-  {(bigint) 2355 /* 5: BM_Pattern < BM_Pattern: superclass typecheck marker */},
+  {(bigint) 2391 /* 5: BM_Pattern < BM_Pattern: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24060,7 +23227,7 @@ const classtable_elt_t VFT_standard___string_search___BM_Pattern[58] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: BM_Pattern < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: BM_Pattern < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -24076,6 +23243,8 @@ const classtable_elt_t VFT_standard___string_search___BM_Pattern[58] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string_search___BM_Pattern___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -24089,12 +23258,12 @@ const classtable_elt_t VFT_standard___string_search___BM_Pattern[58] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: BM_Pattern < Pattern: superclass init_table position */},
+  {(bigint) 0 /* 50: BM_Pattern < Pattern: superclass init_table position */},
   {(bigint) standard___string_search___BM_Pattern___search_index_in},
   {(bigint) standard___string_search___BM_Pattern___search_in},
   {(bigint) standard___string_search___Pattern___search_all_in},
   {(bigint) standard___string_search___Pattern___split_in},
-  {(bigint) 2 /* 52: BM_Pattern < BM_Pattern: superclass init_table position */},
+  {(bigint) 2 /* 55: BM_Pattern < BM_Pattern: superclass init_table position */},
   {(bigint) standard___string_search___BM_Pattern___init},
   {(bigint) standard___string_search___BM_Pattern___bc},
   {(bigint) standard___string_search___BM_Pattern___compute_bc},
@@ -24177,7 +23346,7 @@ val_t NEW_BM_Pattern_standard___string_search___BM_Pattern___init(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string_search.nit:108 */
+  /* ../lib/standard/string_search.nit:108 */
   fra.me.REG[1] = NEW_standard___string_search___BM_Pattern();
   INIT_ATTRIBUTES__standard___string_search___BM_Pattern(fra.me.REG[1]);
   standard___string_search___BM_Pattern___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -24185,14 +23354,12 @@ val_t NEW_BM_Pattern_standard___string_search___BM_Pattern___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___string_search___Match[53] = {
-  {(bigint) 131 /* 0: Identity */},
+const classtable_elt_t VFT_standard___string_search___Match[56] = {
+  {(bigint) 127 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "Match" /* 2: Class Name */},
   {(bigint) 3 /* 3: Match < Object: superclass typecheck marker */},
-  {(bigint) 131 /* 4: Match < Match: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) 127 /* 4: Match < Match: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24202,146 +23369,12 @@ const classtable_elt_t VFT_standard___string_search___Match[53] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: Match < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string_search___Match___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: Match < Match: superclass init_table position */},
-  {(bigint) standard___string_search___Match___string},
-  {(bigint) standard___string_search___Match___from},
-  {(bigint) standard___string_search___Match___length},
-  {(bigint) standard___string_search___Match___after},
-  {(bigint) standard___string_search___Match___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute Match::_string */
-/* 3: Attribute Match::_from */
-/* 4: Attribute Match::_length */
-void INIT_ATTRIBUTES__standard___string_search___Match(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__standard___string_search___Match;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_standard___string_search___Match(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_standard___string_search___Match;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_standard___string_search___Match(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_standard___string_search___Match;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_standard___string_search___Match____string(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_string", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_standard___string_search___Match____from(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_from", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_standard___string_search___Match____length(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_Match_standard___string_search___Match___init(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t tmp;
-  int init_table[2] = {0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 221;
-  fra.me.meth = LOCATE_NEW_Match_standard___string_search___Match___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = p1;
-  REGB1 = p2;
-  /* ./../lib/standard//string_search.nit:221 */
-  fra.me.REG[1] = NEW_standard___string_search___Match();
-  INIT_ATTRIBUTES__standard___string_search___Match(fra.me.REG[1]);
-  standard___string_search___Match___init(fra.me.REG[1], fra.me.REG[0], REGB0, REGB1, init_table);
-  CHECKNEW_standard___string_search___Match(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_standard___file___FStream[59] = {
-  {(bigint) 2283 /* 0: Identity */},
-  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "FStream" /* 2: Class Name */},
-  {(bigint) 3 /* 3: FStream < Object: superclass typecheck marker */},
-  {(bigint) 119 /* 4: FStream < NativeFileCapable: superclass typecheck marker */},
-  {(bigint) 215 /* 5: FStream < IOS: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 2283 /* 8: FStream < FStream: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: FStream < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: Match < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -24357,7 +23390,9 @@ const classtable_elt_t VFT_standard___file___FStream[59] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string_search___Match___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -24370,95 +23405,107 @@ const classtable_elt_t VFT_standard___file___FStream[59] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 2 /* 47: FStream < NativeFileCapable: superclass init_table position */},
-  {(bigint) standard___file___NativeFileCapable___io_open_read},
-  {(bigint) standard___file___NativeFileCapable___io_open_write},
-  {(bigint) standard___file___NativeFileCapable___native_stdin},
-  {(bigint) standard___file___NativeFileCapable___native_stdout},
-  {(bigint) standard___file___NativeFileCapable___native_stderr},
-  {(bigint) 3 /* 53: FStream < FStream: superclass init_table position */},
-  {(bigint) standard___file___FStream___path},
-  {(bigint) standard___file___FStream___file_stat},
-  {(bigint) 1 /* 56: FStream < IOS: superclass init_table position */},
-  {(bigint) standard___stream___IOS___close},
-  {(bigint) standard___stream___IOS___init},
+  {(bigint) 1 /* 50: Match < Match: superclass init_table position */},
+  {(bigint) standard___string_search___Match___string},
+  {(bigint) standard___string_search___Match___from},
+  {(bigint) standard___string_search___Match___length},
+  {(bigint) standard___string_search___Match___after},
+  {(bigint) standard___string_search___Match___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute FStream::_path */
-/* 3: Attribute FStream::_file */
-void INIT_ATTRIBUTES__standard___file___FStream(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+/* 2: Attribute Match::_string */
+/* 3: Attribute Match::_from */
+/* 4: Attribute Match::_length */
+void INIT_ATTRIBUTES__standard___string_search___Match(val_t p0){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__standard___file___FStream;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__standard___string_search___Match;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:55 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_standard___file___FStream____path(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//file.nit:58 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_standard___file___FStream____file(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_standard___file___FStream(void)
+val_t NEW_standard___string_search___Match(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_standard___file___FStream;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_standard___string_search___Match;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_standard___file___FStream(val_t p0){
+void CHECKNEW_standard___string_search___Match(val_t p0){
   struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_standard___file___FStream;
+  fra.me.meth = LOCATE_CHECKNEW_standard___string_search___Match;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_standard___string_search___Match____string(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_string", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_standard___string_search___Match____from(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_from", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_standard___string_search___Match____length(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_length", LOCATE_nitc, 0);
+  }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_FStream_standard___stream___IOS___init(void){
-  struct {struct stack_frame_t me;} fra;
+val_t NEW_Match_standard___string_search___Match___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
+  val_t REGB1;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_FStream_standard___stream___IOS___init;
+  fra.me.line = 221;
+  fra.me.meth = LOCATE_NEW_Match_standard___string_search___Match___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
+  fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_standard___file___FStream();
-  INIT_ATTRIBUTES__standard___file___FStream(fra.me.REG[0]);
-  standard___stream___IOS___init(fra.me.REG[0], init_table);
-  CHECKNEW_standard___file___FStream(fra.me.REG[0]);
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = p1;
+  REGB1 = p2;
+  /* ../lib/standard/string_search.nit:221 */
+  fra.me.REG[1] = NEW_standard___string_search___Match();
+  INIT_ATTRIBUTES__standard___string_search___Match(fra.me.REG[1]);
+  standard___string_search___Match___init(fra.me.REG[1], fra.me.REG[0], REGB0, REGB1, init_table);
+  CHECKNEW_standard___string_search___Match(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
+  return fra.me.REG[1];
 }
 const classtable_elt_t VFT_standard___file___IFStream[78] = {
-  {(bigint) 3223 /* 0: Identity */},
+  {(bigint) 3287 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IFStream" /* 2: Class Name */},
   {(bigint) 3 /* 3: IFStream < Object: superclass typecheck marker */},
-  {(bigint) 119 /* 4: IFStream < NativeFileCapable: superclass typecheck marker */},
-  {(bigint) 215 /* 5: IFStream < IOS: superclass typecheck marker */},
-  {(bigint) 3015 /* 6: IFStream < BufferedIStream: superclass typecheck marker */},
-  {(bigint) 2227 /* 7: IFStream < IStream: superclass typecheck marker */},
-  {(bigint) 2283 /* 8: IFStream < FStream: superclass typecheck marker */},
-  {(bigint) 3223 /* 9: IFStream < IFStream: superclass typecheck marker */},
+  {(bigint) 2319 /* 4: IFStream < FStream: superclass typecheck marker */},
+  {(bigint) 211 /* 5: IFStream < IOS: superclass typecheck marker */},
+  {(bigint) 2775 /* 6: IFStream < BufferedIStream: superclass typecheck marker */},
+  {(bigint) 2263 /* 7: IFStream < IStream: superclass typecheck marker */},
+  {(bigint) 3287 /* 8: IFStream < IFStream: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24467,7 +23514,7 @@ const classtable_elt_t VFT_standard___file___IFStream[78] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: IFStream < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: IFStream < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -24483,6 +23530,8 @@ const classtable_elt_t VFT_standard___file___IFStream[78] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -24496,33 +23545,30 @@ const classtable_elt_t VFT_standard___file___IFStream[78] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 2 /* 47: IFStream < NativeFileCapable: superclass init_table position */},
-  {(bigint) standard___file___NativeFileCapable___io_open_read},
-  {(bigint) standard___file___NativeFileCapable___io_open_write},
-  {(bigint) standard___file___NativeFileCapable___native_stdin},
-  {(bigint) standard___file___NativeFileCapable___native_stdout},
-  {(bigint) standard___file___NativeFileCapable___native_stderr},
-  {(bigint) 3 /* 53: IFStream < FStream: superclass init_table position */},
+  {(bigint) 0 /* 50: IFStream < FStream: superclass init_table position */},
   {(bigint) standard___file___FStream___path},
   {(bigint) standard___file___FStream___file_stat},
-  {(bigint) 1 /* 56: IFStream < IOS: superclass init_table position */},
+  {(bigint) standard___file___FStream___init},
+  {(bigint) 3 /* 54: IFStream < BufferedIStream: superclass init_table position */},
+  {(bigint) standard___file___IFStream___fill_buffer},
+  {(bigint) standard___file___IFStream___end_reached},
+  {(bigint) standard___stream___BufferedIStream___prepare_buffer},
+  {(bigint) standard___stream___BufferedIStream___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 1 /* 61: IFStream < IOS: superclass init_table position */},
   {(bigint) standard___file___IFStream___close},
-  {(bigint) standard___stream___IOS___init},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 4 /* 62: IFStream < IStream: superclass init_table position */},
+  {(bigint) 4 /* 66: IFStream < IStream: superclass init_table position */},
   {(bigint) standard___stream___BufferedIStream___read_char},
   {(bigint) standard___stream___BufferedIStream___read},
   {(bigint) standard___stream___IStream___read_line},
   {(bigint) standard___stream___BufferedIStream___read_all},
   {(bigint) standard___stream___BufferedIStream___append_line_to},
   {(bigint) standard___stream___BufferedIStream___eof},
-  {(bigint) 5 /* 69: IFStream < BufferedIStream: superclass init_table position */},
-  {(bigint) standard___file___IFStream___fill_buffer},
-  {(bigint) standard___file___IFStream___end_reached},
-  {(bigint) standard___stream___BufferedIStream___prepare_buffer},
-  {(bigint) 6 /* 73: IFStream < IFStream: superclass init_table position */},
+  {(bigint) 5 /* 73: IFStream < IFStream: superclass init_table position */},
   {(bigint) standard___file___IFStream___reopen},
   {(bigint) standard___file___IFStream___open},
   {(bigint) standard___file___IFStream___init},
@@ -24549,19 +23595,19 @@ void INIT_ATTRIBUTES__standard___file___IFStream(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:100 */
+  /* ../lib/standard/file.nit:99 */
   REGB0 = TAG_Bool(false);
   ATTR_standard___file___IFStream____end_reached(fra.me.REG[0]) = REGB0;
-  /* ./../lib/standard//file.nit:55 */
+  /* ../lib/standard/file.nit:54 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___file___FStream____path(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//file.nit:58 */
+  /* ../lib/standard/file.nit:57 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___file___FStream____file(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//stream.nit:186 */
+  /* ../lib/standard/stream.nit:186 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//stream.nit:190 */
+  /* ../lib/standard/stream.nit:190 */
   REGB0 = TAG_Int(0);
   ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -24603,10 +23649,10 @@ void CHECKNEW_standard___file___IFStream(val_t p0){
 val_t NEW_IFStream_standard___file___IFStream___open(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 102;
+  fra.me.line = 101;
   fra.me.meth = LOCATE_NEW_IFStream_standard___file___IFStream___open;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -24614,7 +23660,7 @@ val_t NEW_IFStream_standard___file___IFStream___open(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:102 */
+  /* ../lib/standard/file.nit:101 */
   fra.me.REG[1] = NEW_standard___file___IFStream();
   INIT_ATTRIBUTES__standard___file___IFStream(fra.me.REG[1]);
   standard___file___IFStream___open(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -24625,16 +23671,16 @@ val_t NEW_IFStream_standard___file___IFStream___open(val_t p0){
 val_t NEW_IFStream_standard___file___IFStream___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 111;
+  fra.me.line = 110;
   fra.me.meth = LOCATE_NEW_IFStream_standard___file___IFStream___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./../lib/standard//file.nit:111 */
+  /* ../lib/standard/file.nit:110 */
   fra.me.REG[0] = NEW_standard___file___IFStream();
   INIT_ATTRIBUTES__standard___file___IFStream(fra.me.REG[0]);
   standard___file___IFStream___init(fra.me.REG[0], init_table);
@@ -24645,16 +23691,16 @@ val_t NEW_IFStream_standard___file___IFStream___init(void){
 val_t NEW_IFStream_standard___file___IFStream___without_file(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 112;
+  fra.me.line = 111;
   fra.me.meth = LOCATE_NEW_IFStream_standard___file___IFStream___without_file;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./../lib/standard//file.nit:112 */
+  /* ../lib/standard/file.nit:111 */
   fra.me.REG[0] = NEW_standard___file___IFStream();
   INIT_ATTRIBUTES__standard___file___IFStream(fra.me.REG[0]);
   standard___file___IFStream___without_file(fra.me.REG[0], init_table);
@@ -24662,16 +23708,17 @@ val_t NEW_IFStream_standard___file___IFStream___without_file(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_standard___file___OFStream[67] = {
-  {(bigint) 2811 /* 0: Identity */},
+const classtable_elt_t VFT_standard___file___OFStream[66] = {
+  {(bigint) 2571 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "OFStream" /* 2: Class Name */},
   {(bigint) 3 /* 3: OFStream < Object: superclass typecheck marker */},
-  {(bigint) 119 /* 4: OFStream < NativeFileCapable: superclass typecheck marker */},
-  {(bigint) 215 /* 5: OFStream < IOS: superclass typecheck marker */},
-  {(bigint) 2107 /* 6: OFStream < OStream: superclass typecheck marker */},
-  {(bigint) 2811 /* 7: OFStream < OFStream: superclass typecheck marker */},
-  {(bigint) 2283 /* 8: OFStream < FStream: superclass typecheck marker */},
+  {(bigint) 2319 /* 4: OFStream < FStream: superclass typecheck marker */},
+  {(bigint) 211 /* 5: OFStream < IOS: superclass typecheck marker */},
+  {(bigint) 2143 /* 6: OFStream < OStream: superclass typecheck marker */},
+  {(bigint) 2571 /* 7: OFStream < OFStream: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24681,7 +23728,7 @@ const classtable_elt_t VFT_standard___file___OFStream[67] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: OFStream < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: OFStream < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -24697,6 +23744,8 @@ const classtable_elt_t VFT_standard___file___OFStream[67] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -24710,26 +23759,22 @@ const classtable_elt_t VFT_standard___file___OFStream[67] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 2 /* 47: OFStream < NativeFileCapable: superclass init_table position */},
-  {(bigint) standard___file___NativeFileCapable___io_open_read},
-  {(bigint) standard___file___NativeFileCapable___io_open_write},
-  {(bigint) standard___file___NativeFileCapable___native_stdin},
-  {(bigint) standard___file___NativeFileCapable___native_stdout},
-  {(bigint) standard___file___NativeFileCapable___native_stderr},
-  {(bigint) 3 /* 53: OFStream < FStream: superclass init_table position */},
+  {(bigint) 0 /* 50: OFStream < FStream: superclass init_table position */},
   {(bigint) standard___file___FStream___path},
   {(bigint) standard___file___FStream___file_stat},
-  {(bigint) 1 /* 56: OFStream < IOS: superclass init_table position */},
-  {(bigint) standard___file___OFStream___close},
-  {(bigint) standard___stream___IOS___init},
-  {(bigint) 4 /* 59: OFStream < OStream: superclass init_table position */},
-  {(bigint) standard___file___OFStream___write},
-  {(bigint) standard___file___OFStream___is_writable},
-  {(bigint) 5 /* 62: OFStream < OFStream: superclass init_table position */},
+  {(bigint) standard___file___FStream___init},
+  {(bigint) 4 /* 54: OFStream < OFStream: superclass init_table position */},
   {(bigint) standard___file___OFStream___write_native},
   {(bigint) standard___file___OFStream___open},
   {(bigint) standard___file___OFStream___init},
   {(bigint) standard___file___OFStream___without_file},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 1 /* 61: OFStream < IOS: superclass init_table position */},
+  {(bigint) standard___file___OFStream___close},
+  {(bigint) 3 /* 63: OFStream < OStream: superclass init_table position */},
+  {(bigint) standard___file___OFStream___write},
+  {(bigint) standard___file___OFStream___is_writable},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -24749,10 +23794,10 @@ void INIT_ATTRIBUTES__standard___file___OFStream(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:55 */
+  /* ../lib/standard/file.nit:54 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___file___FStream____path(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//file.nit:58 */
+  /* ../lib/standard/file.nit:57 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___file___FStream____file(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -24789,10 +23834,10 @@ void CHECKNEW_standard___file___OFStream(val_t p0){
 val_t NEW_OFStream_standard___file___OFStream___open(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 148;
+  fra.me.line = 147;
   fra.me.meth = LOCATE_NEW_OFStream_standard___file___OFStream___open;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -24800,7 +23845,7 @@ val_t NEW_OFStream_standard___file___OFStream___open(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:148 */
+  /* ../lib/standard/file.nit:147 */
   fra.me.REG[1] = NEW_standard___file___OFStream();
   INIT_ATTRIBUTES__standard___file___OFStream(fra.me.REG[1]);
   standard___file___OFStream___open(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -24811,16 +23856,16 @@ val_t NEW_OFStream_standard___file___OFStream___open(val_t p0){
 val_t NEW_OFStream_standard___file___OFStream___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 157;
+  fra.me.line = 156;
   fra.me.meth = LOCATE_NEW_OFStream_standard___file___OFStream___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./../lib/standard//file.nit:157 */
+  /* ../lib/standard/file.nit:156 */
   fra.me.REG[0] = NEW_standard___file___OFStream();
   INIT_ATTRIBUTES__standard___file___OFStream(fra.me.REG[0]);
   standard___file___OFStream___init(fra.me.REG[0], init_table);
@@ -24831,16 +23876,16 @@ val_t NEW_OFStream_standard___file___OFStream___init(void){
 val_t NEW_OFStream_standard___file___OFStream___without_file(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 158;
+  fra.me.line = 157;
   fra.me.meth = LOCATE_NEW_OFStream_standard___file___OFStream___without_file;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./../lib/standard//file.nit:158 */
+  /* ../lib/standard/file.nit:157 */
   fra.me.REG[0] = NEW_standard___file___OFStream();
   INIT_ATTRIBUTES__standard___file___OFStream(fra.me.REG[0]);
   standard___file___OFStream___without_file(fra.me.REG[0], init_table);
@@ -24849,17 +23894,18 @@ val_t NEW_OFStream_standard___file___OFStream___without_file(void){
   return fra.me.REG[0];
 }
 const classtable_elt_t VFT_standard___file___Stdin[80] = {
-  {(bigint) 3539 /* 0: Identity */},
+  {(bigint) 3619 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "Stdin" /* 2: Class Name */},
   {(bigint) 3 /* 3: Stdin < Object: superclass typecheck marker */},
-  {(bigint) 119 /* 4: Stdin < NativeFileCapable: superclass typecheck marker */},
-  {(bigint) 215 /* 5: Stdin < IOS: superclass typecheck marker */},
-  {(bigint) 3015 /* 6: Stdin < BufferedIStream: superclass typecheck marker */},
-  {(bigint) 2227 /* 7: Stdin < IStream: superclass typecheck marker */},
-  {(bigint) 2283 /* 8: Stdin < FStream: superclass typecheck marker */},
-  {(bigint) 3223 /* 9: Stdin < IFStream: superclass typecheck marker */},
-  {(bigint) 3539 /* 10: Stdin < Stdin: superclass typecheck marker */},
+  {(bigint) 2319 /* 4: Stdin < FStream: superclass typecheck marker */},
+  {(bigint) 211 /* 5: Stdin < IOS: superclass typecheck marker */},
+  {(bigint) 2775 /* 6: Stdin < BufferedIStream: superclass typecheck marker */},
+  {(bigint) 2263 /* 7: Stdin < IStream: superclass typecheck marker */},
+  {(bigint) 3287 /* 8: Stdin < IFStream: superclass typecheck marker */},
+  {(bigint) 3619 /* 9: Stdin < Stdin: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24867,7 +23913,7 @@ const classtable_elt_t VFT_standard___file___Stdin[80] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: Stdin < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: Stdin < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -24883,6 +23929,8 @@ const classtable_elt_t VFT_standard___file___Stdin[80] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -24896,38 +23944,35 @@ const classtable_elt_t VFT_standard___file___Stdin[80] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 2 /* 47: Stdin < NativeFileCapable: superclass init_table position */},
-  {(bigint) standard___file___NativeFileCapable___io_open_read},
-  {(bigint) standard___file___NativeFileCapable___io_open_write},
-  {(bigint) standard___file___NativeFileCapable___native_stdin},
-  {(bigint) standard___file___NativeFileCapable___native_stdout},
-  {(bigint) standard___file___NativeFileCapable___native_stderr},
-  {(bigint) 3 /* 53: Stdin < FStream: superclass init_table position */},
+  {(bigint) 0 /* 50: Stdin < FStream: superclass init_table position */},
   {(bigint) standard___file___FStream___path},
   {(bigint) standard___file___FStream___file_stat},
-  {(bigint) 1 /* 56: Stdin < IOS: superclass init_table position */},
+  {(bigint) standard___file___FStream___init},
+  {(bigint) 3 /* 54: Stdin < BufferedIStream: superclass init_table position */},
+  {(bigint) standard___file___IFStream___fill_buffer},
+  {(bigint) standard___file___IFStream___end_reached},
+  {(bigint) standard___stream___BufferedIStream___prepare_buffer},
+  {(bigint) standard___stream___BufferedIStream___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 1 /* 61: Stdin < IOS: superclass init_table position */},
   {(bigint) standard___file___IFStream___close},
-  {(bigint) standard___stream___IOS___init},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 4 /* 62: Stdin < IStream: superclass init_table position */},
+  {(bigint) 4 /* 66: Stdin < IStream: superclass init_table position */},
   {(bigint) standard___stream___BufferedIStream___read_char},
   {(bigint) standard___stream___BufferedIStream___read},
   {(bigint) standard___stream___IStream___read_line},
   {(bigint) standard___stream___BufferedIStream___read_all},
   {(bigint) standard___stream___BufferedIStream___append_line_to},
   {(bigint) standard___stream___BufferedIStream___eof},
-  {(bigint) 5 /* 69: Stdin < BufferedIStream: superclass init_table position */},
-  {(bigint) standard___file___IFStream___fill_buffer},
-  {(bigint) standard___file___IFStream___end_reached},
-  {(bigint) standard___stream___BufferedIStream___prepare_buffer},
-  {(bigint) 6 /* 73: Stdin < IFStream: superclass init_table position */},
+  {(bigint) 5 /* 73: Stdin < IFStream: superclass init_table position */},
   {(bigint) standard___file___IFStream___reopen},
   {(bigint) standard___file___IFStream___open},
   {(bigint) standard___file___IFStream___init},
   {(bigint) standard___file___IFStream___without_file},
-  {(bigint) 7 /* 78: Stdin < Stdin: superclass init_table position */},
+  {(bigint) 6 /* 78: Stdin < Stdin: superclass init_table position */},
   {(bigint) standard___file___Stdin___init},
 };
 /* 0: Pointer to the classtable */
@@ -24951,19 +23996,19 @@ void INIT_ATTRIBUTES__standard___file___Stdin(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:100 */
+  /* ../lib/standard/file.nit:99 */
   REGB0 = TAG_Bool(false);
   ATTR_standard___file___IFStream____end_reached(fra.me.REG[0]) = REGB0;
-  /* ./../lib/standard//file.nit:55 */
+  /* ../lib/standard/file.nit:54 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___file___FStream____path(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//file.nit:58 */
+  /* ../lib/standard/file.nit:57 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___file___FStream____file(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//stream.nit:186 */
+  /* ../lib/standard/stream.nit:186 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//stream.nit:190 */
+  /* ../lib/standard/stream.nit:190 */
   REGB0 = TAG_Int(0);
   ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -25005,16 +24050,16 @@ void CHECKNEW_standard___file___Stdin(val_t p0){
 val_t NEW_Stdin_standard___file___Stdin___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 165;
+  fra.me.line = 164;
   fra.me.meth = LOCATE_NEW_Stdin_standard___file___Stdin___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./../lib/standard//file.nit:165 */
+  /* ../lib/standard/file.nit:164 */
   fra.me.REG[0] = NEW_standard___file___Stdin();
   INIT_ATTRIBUTES__standard___file___Stdin(fra.me.REG[0]);
   standard___file___Stdin___init(fra.me.REG[0], init_table);
@@ -25022,17 +24067,18 @@ val_t NEW_Stdin_standard___file___Stdin___init(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_standard___file___Stdout[69] = {
-  {(bigint) 3175 /* 0: Identity */},
+const classtable_elt_t VFT_standard___file___Stdout[68] = {
+  {(bigint) 3239 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "Stdout" /* 2: Class Name */},
   {(bigint) 3 /* 3: Stdout < Object: superclass typecheck marker */},
-  {(bigint) 119 /* 4: Stdout < NativeFileCapable: superclass typecheck marker */},
-  {(bigint) 215 /* 5: Stdout < IOS: superclass typecheck marker */},
-  {(bigint) 2107 /* 6: Stdout < OStream: superclass typecheck marker */},
-  {(bigint) 2811 /* 7: Stdout < OFStream: superclass typecheck marker */},
-  {(bigint) 2283 /* 8: Stdout < FStream: superclass typecheck marker */},
-  {(bigint) 3175 /* 9: Stdout < Stdout: superclass typecheck marker */},
+  {(bigint) 2319 /* 4: Stdout < FStream: superclass typecheck marker */},
+  {(bigint) 211 /* 5: Stdout < IOS: superclass typecheck marker */},
+  {(bigint) 2143 /* 6: Stdout < OStream: superclass typecheck marker */},
+  {(bigint) 2571 /* 7: Stdout < OFStream: superclass typecheck marker */},
+  {(bigint) 3239 /* 8: Stdout < Stdout: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -25041,7 +24087,7 @@ const classtable_elt_t VFT_standard___file___Stdout[69] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: Stdout < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: Stdout < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -25057,6 +24103,8 @@ const classtable_elt_t VFT_standard___file___Stdout[69] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -25070,27 +24118,23 @@ const classtable_elt_t VFT_standard___file___Stdout[69] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 2 /* 47: Stdout < NativeFileCapable: superclass init_table position */},
-  {(bigint) standard___file___NativeFileCapable___io_open_read},
-  {(bigint) standard___file___NativeFileCapable___io_open_write},
-  {(bigint) standard___file___NativeFileCapable___native_stdin},
-  {(bigint) standard___file___NativeFileCapable___native_stdout},
-  {(bigint) standard___file___NativeFileCapable___native_stderr},
-  {(bigint) 3 /* 53: Stdout < FStream: superclass init_table position */},
+  {(bigint) 0 /* 50: Stdout < FStream: superclass init_table position */},
   {(bigint) standard___file___FStream___path},
   {(bigint) standard___file___FStream___file_stat},
-  {(bigint) 1 /* 56: Stdout < IOS: superclass init_table position */},
-  {(bigint) standard___file___OFStream___close},
-  {(bigint) standard___stream___IOS___init},
-  {(bigint) 4 /* 59: Stdout < OStream: superclass init_table position */},
-  {(bigint) standard___file___OFStream___write},
-  {(bigint) standard___file___OFStream___is_writable},
-  {(bigint) 5 /* 62: Stdout < OFStream: superclass init_table position */},
+  {(bigint) standard___file___FStream___init},
+  {(bigint) 4 /* 54: Stdout < OFStream: superclass init_table position */},
   {(bigint) standard___file___OFStream___write_native},
   {(bigint) standard___file___OFStream___open},
   {(bigint) standard___file___OFStream___init},
   {(bigint) standard___file___OFStream___without_file},
-  {(bigint) 6 /* 67: Stdout < Stdout: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 1 /* 61: Stdout < IOS: superclass init_table position */},
+  {(bigint) standard___file___OFStream___close},
+  {(bigint) 3 /* 63: Stdout < OStream: superclass init_table position */},
+  {(bigint) standard___file___OFStream___write},
+  {(bigint) standard___file___OFStream___is_writable},
+  {(bigint) 5 /* 66: Stdout < Stdout: superclass init_table position */},
   {(bigint) standard___file___Stdout___init},
 };
 /* 0: Pointer to the classtable */
@@ -25111,10 +24155,10 @@ void INIT_ATTRIBUTES__standard___file___Stdout(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:55 */
+  /* ../lib/standard/file.nit:54 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___file___FStream____path(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//file.nit:58 */
+  /* ../lib/standard/file.nit:57 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___file___FStream____file(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -25151,16 +24195,16 @@ void CHECKNEW_standard___file___Stdout(val_t p0){
 val_t NEW_Stdout_standard___file___Stdout___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 174;
+  fra.me.line = 173;
   fra.me.meth = LOCATE_NEW_Stdout_standard___file___Stdout___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./../lib/standard//file.nit:174 */
+  /* ../lib/standard/file.nit:173 */
   fra.me.REG[0] = NEW_standard___file___Stdout();
   INIT_ATTRIBUTES__standard___file___Stdout(fra.me.REG[0]);
   standard___file___Stdout___init(fra.me.REG[0], init_table);
@@ -25168,17 +24212,18 @@ val_t NEW_Stdout_standard___file___Stdout___init(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_standard___file___Stderr[69] = {
-  {(bigint) 3179 /* 0: Identity */},
+const classtable_elt_t VFT_standard___file___Stderr[68] = {
+  {(bigint) 3243 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "Stderr" /* 2: Class Name */},
   {(bigint) 3 /* 3: Stderr < Object: superclass typecheck marker */},
-  {(bigint) 119 /* 4: Stderr < NativeFileCapable: superclass typecheck marker */},
-  {(bigint) 215 /* 5: Stderr < IOS: superclass typecheck marker */},
-  {(bigint) 2107 /* 6: Stderr < OStream: superclass typecheck marker */},
-  {(bigint) 2811 /* 7: Stderr < OFStream: superclass typecheck marker */},
-  {(bigint) 2283 /* 8: Stderr < FStream: superclass typecheck marker */},
-  {(bigint) 3179 /* 9: Stderr < Stderr: superclass typecheck marker */},
+  {(bigint) 2319 /* 4: Stderr < FStream: superclass typecheck marker */},
+  {(bigint) 211 /* 5: Stderr < IOS: superclass typecheck marker */},
+  {(bigint) 2143 /* 6: Stderr < OStream: superclass typecheck marker */},
+  {(bigint) 2571 /* 7: Stderr < OFStream: superclass typecheck marker */},
+  {(bigint) 3243 /* 8: Stderr < Stderr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -25187,7 +24232,7 @@ const classtable_elt_t VFT_standard___file___Stderr[69] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: Stderr < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: Stderr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -25203,6 +24248,8 @@ const classtable_elt_t VFT_standard___file___Stderr[69] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -25216,27 +24263,23 @@ const classtable_elt_t VFT_standard___file___Stderr[69] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 2 /* 47: Stderr < NativeFileCapable: superclass init_table position */},
-  {(bigint) standard___file___NativeFileCapable___io_open_read},
-  {(bigint) standard___file___NativeFileCapable___io_open_write},
-  {(bigint) standard___file___NativeFileCapable___native_stdin},
-  {(bigint) standard___file___NativeFileCapable___native_stdout},
-  {(bigint) standard___file___NativeFileCapable___native_stderr},
-  {(bigint) 3 /* 53: Stderr < FStream: superclass init_table position */},
+  {(bigint) 0 /* 50: Stderr < FStream: superclass init_table position */},
   {(bigint) standard___file___FStream___path},
   {(bigint) standard___file___FStream___file_stat},
-  {(bigint) 1 /* 56: Stderr < IOS: superclass init_table position */},
-  {(bigint) standard___file___OFStream___close},
-  {(bigint) standard___stream___IOS___init},
-  {(bigint) 4 /* 59: Stderr < OStream: superclass init_table position */},
-  {(bigint) standard___file___OFStream___write},
-  {(bigint) standard___file___OFStream___is_writable},
-  {(bigint) 5 /* 62: Stderr < OFStream: superclass init_table position */},
+  {(bigint) standard___file___FStream___init},
+  {(bigint) 4 /* 54: Stderr < OFStream: superclass init_table position */},
   {(bigint) standard___file___OFStream___write_native},
   {(bigint) standard___file___OFStream___open},
   {(bigint) standard___file___OFStream___init},
   {(bigint) standard___file___OFStream___without_file},
-  {(bigint) 6 /* 67: Stderr < Stderr: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 1 /* 61: Stderr < IOS: superclass init_table position */},
+  {(bigint) standard___file___OFStream___close},
+  {(bigint) 3 /* 63: Stderr < OStream: superclass init_table position */},
+  {(bigint) standard___file___OFStream___write},
+  {(bigint) standard___file___OFStream___is_writable},
+  {(bigint) 5 /* 66: Stderr < Stderr: superclass init_table position */},
   {(bigint) standard___file___Stderr___init},
 };
 /* 0: Pointer to the classtable */
@@ -25257,10 +24300,10 @@ void INIT_ATTRIBUTES__standard___file___Stderr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:55 */
+  /* ../lib/standard/file.nit:54 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___file___FStream____path(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//file.nit:58 */
+  /* ../lib/standard/file.nit:57 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_standard___file___FStream____file(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -25297,16 +24340,16 @@ void CHECKNEW_standard___file___Stderr(val_t p0){
 val_t NEW_Stderr_standard___file___Stderr___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 183;
+  fra.me.line = 182;
   fra.me.meth = LOCATE_NEW_Stderr_standard___file___Stderr___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./../lib/standard//file.nit:183 */
+  /* ../lib/standard/file.nit:182 */
   fra.me.REG[0] = NEW_standard___file___Stderr();
   INIT_ATTRIBUTES__standard___file___Stderr(fra.me.REG[0]);
   standard___file___Stderr___init(fra.me.REG[0], init_table);
@@ -25314,7 +24357,7 @@ val_t NEW_Stderr_standard___file___Stderr___init(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_standard___file___FileStat[54] = {
+const classtable_elt_t VFT_standard___file___FileStat[57] = {
   {(bigint) -25 /* 0: Identity */},
   {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "FileStat" /* 2: Class Name */},
@@ -25331,9 +24374,10 @@ const classtable_elt_t VFT_standard___file___FileStat[54] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: FileStat < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: FileStat < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -25349,6 +24393,8 @@ const classtable_elt_t VFT_standard___file___FileStat[54] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -25362,8 +24408,8 @@ const classtable_elt_t VFT_standard___file___FileStat[54] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: FileStat < Pointer: superclass init_table position */},
-  {(bigint) 2 /* 48: FileStat < FileStat: superclass init_table position */},
+  {(bigint) 1 /* 50: FileStat < Pointer: superclass init_table position */},
+  {(bigint) 2 /* 51: FileStat < FileStat: superclass init_table position */},
   {(bigint) standard___file___FileStat___mode},
   {(bigint) standard___file___FileStat___atime},
   {(bigint) standard___file___FileStat___ctime},
@@ -25380,7 +24426,7 @@ val_t BOX_FileStat(void * val) {
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(box);
 }
-const classtable_elt_t VFT_standard___file___NativeFile[53] = {
+const classtable_elt_t VFT_standard___file___NativeFile[61] = {
   {(bigint) -21 /* 0: Identity */},
   {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "NativeFile" /* 2: Class Name */},
@@ -25397,9 +24443,10 @@ const classtable_elt_t VFT_standard___file___NativeFile[53] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: NativeFile < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: NativeFile < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -25415,6 +24462,8 @@ const classtable_elt_t VFT_standard___file___NativeFile[53] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -25428,12 +24477,17 @@ const classtable_elt_t VFT_standard___file___NativeFile[53] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: NativeFile < Pointer: superclass init_table position */},
-  {(bigint) 2 /* 48: NativeFile < NativeFile: superclass init_table position */},
+  {(bigint) 1 /* 50: NativeFile < Pointer: superclass init_table position */},
+  {(bigint) 2 /* 51: NativeFile < NativeFile: superclass init_table position */},
   {(bigint) standard___file___NativeFile___io_read},
   {(bigint) standard___file___NativeFile___io_write},
   {(bigint) standard___file___NativeFile___io_close},
   {(bigint) standard___file___NativeFile___file_stat},
+  {(bigint) standard___file___NativeFile___io_open_read},
+  {(bigint) standard___file___NativeFile___io_open_write},
+  {(bigint) standard___file___NativeFile___native_stdin},
+  {(bigint) standard___file___NativeFile___native_stdout},
+  {(bigint) standard___file___NativeFile___native_stderr},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -25445,7 +24499,7 @@ val_t BOX_NativeFile(void * val) {
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(box);
 }
-const classtable_elt_t VFT_standard___exec___Process[56] = {
+const classtable_elt_t VFT_standard___exec___Process[61] = {
   {(bigint) 95 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "Process" /* 2: Class Name */},
@@ -25462,9 +24516,10 @@ const classtable_elt_t VFT_standard___exec___Process[56] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: Process < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: Process < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -25480,6 +24535,8 @@ const classtable_elt_t VFT_standard___exec___Process[56] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -25493,7 +24550,7 @@ const classtable_elt_t VFT_standard___exec___Process[56] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: Process < Process: superclass init_table position */},
+  {(bigint) 1 /* 50: Process < Process: superclass init_table position */},
   {(bigint) standard___exec___Process___id},
   {(bigint) standard___exec___Process___is_finished},
   {(bigint) standard___exec___Process___wait},
@@ -25501,11 +24558,13 @@ const classtable_elt_t VFT_standard___exec___Process[56] = {
   {(bigint) standard___exec___Process___init},
   {(bigint) standard___exec___Process___init_},
   {(bigint) standard___exec___Process___execute},
+  {(bigint) standard___exec___Process___data},
+  {(bigint) standard___exec___Process___data__eq},
   {(bigint) standard___exec___Process___basic_exec_execute},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute Process::_data */
+/* 2: Attribute Process::@data */
 void INIT_ATTRIBUTES__standard___exec___Process(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -25540,10 +24599,10 @@ void CHECKNEW_standard___exec___Process(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_standard___exec___Process____data(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_standard___exec___Process_____atdata(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_data", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "@data", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
@@ -25553,7 +24612,7 @@ val_t NEW_Process_standard___exec___Process___init(val_t p0, val_t p1){
   int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 43;
+  fra.me.line = 42;
   fra.me.meth = LOCATE_NEW_Process_standard___exec___Process___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -25563,7 +24622,7 @@ val_t NEW_Process_standard___exec___Process___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//exec.nit:43 */
+  /* ../lib/standard/exec.nit:42 */
   fra.me.REG[2] = NEW_standard___exec___Process();
   INIT_ATTRIBUTES__standard___exec___Process(fra.me.REG[2]);
   standard___exec___Process___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -25577,7 +24636,7 @@ val_t NEW_Process_standard___exec___Process___init_(val_t p0){
   int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 49;
+  fra.me.line = 48;
   fra.me.meth = LOCATE_NEW_Process_standard___exec___Process___init_;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -25585,7 +24644,7 @@ val_t NEW_Process_standard___exec___Process___init_(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:49 */
+  /* ../lib/standard/exec.nit:48 */
   fra.me.REG[1] = NEW_standard___exec___Process();
   INIT_ATTRIBUTES__standard___exec___Process(fra.me.REG[1]);
   standard___exec___Process___init_(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -25600,7 +24659,7 @@ val_t NEW_Process_standard___exec___Process___execute(val_t p0, val_t p1, val_t
   int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 55;
+  fra.me.line = 54;
   fra.me.meth = LOCATE_NEW_Process_standard___exec___Process___execute;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -25611,7 +24670,7 @@ val_t NEW_Process_standard___exec___Process___execute(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   REGB0 = p2;
-  /* ./../lib/standard//exec.nit:55 */
+  /* ../lib/standard/exec.nit:54 */
   fra.me.REG[2] = NEW_standard___exec___Process();
   INIT_ATTRIBUTES__standard___exec___Process(fra.me.REG[2]);
   standard___exec___Process___execute(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], REGB0, init_table);
@@ -25619,17 +24678,18 @@ val_t NEW_Process_standard___exec___Process___execute(val_t p0, val_t p1, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_standard___exec___IProcess[75] = {
-  {(bigint) 2871 /* 0: Identity */},
+const classtable_elt_t VFT_standard___exec___IProcess[83] = {
+  {(bigint) 2631 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IProcess" /* 2: Class Name */},
   {(bigint) 3 /* 3: IProcess < Object: superclass typecheck marker */},
   {(bigint) 95 /* 4: IProcess < Process: superclass typecheck marker */},
-  {(bigint) 215 /* 5: IProcess < IOS: superclass typecheck marker */},
+  {(bigint) 211 /* 5: IProcess < IOS: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2263 /* 7: IProcess < IStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2227 /* 7: IProcess < IStream: superclass typecheck marker */},
+  {(bigint) 2631 /* 9: IProcess < IProcess: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2871 /* 9: IProcess < IProcess: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -25638,7 +24698,7 @@ const classtable_elt_t VFT_standard___exec___IProcess[75] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: IProcess < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: IProcess < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -25654,6 +24714,8 @@ const classtable_elt_t VFT_standard___exec___IProcess[75] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -25667,7 +24729,7 @@ const classtable_elt_t VFT_standard___exec___IProcess[75] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: IProcess < Process: superclass init_table position */},
+  {(bigint) 1 /* 50: IProcess < Process: superclass init_table position */},
   {(bigint) standard___exec___Process___id},
   {(bigint) standard___exec___Process___is_finished},
   {(bigint) standard___exec___Process___wait},
@@ -25675,14 +24737,15 @@ const classtable_elt_t VFT_standard___exec___IProcess[75] = {
   {(bigint) standard___exec___Process___init},
   {(bigint) standard___exec___Process___init_},
   {(bigint) standard___exec___Process___execute},
+  {(bigint) standard___exec___Process___data},
+  {(bigint) standard___exec___Process___data__eq},
   {(bigint) standard___exec___Process___basic_exec_execute},
-  {(bigint) 2 /* 56: IProcess < IOS: superclass init_table position */},
+  {(bigint) 3 /* 61: IProcess < IOS: superclass init_table position */},
   {(bigint) standard___exec___IProcess___close},
-  {(bigint) standard___stream___IOS___init},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 3 /* 62: IProcess < IStream: superclass init_table position */},
+  {(bigint) 2 /* 66: IProcess < IStream: superclass init_table position */},
   {(bigint) standard___exec___IProcess___read_char},
   {(bigint) standard___stream___IStream___read},
   {(bigint) standard___stream___IStream___read_line},
@@ -25692,15 +24755,19 @@ const classtable_elt_t VFT_standard___exec___IProcess[75] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 4 /* 72: IProcess < IProcess: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 4 /* 78: IProcess < IProcess: superclass init_table position */},
+  {(bigint) standard___exec___IProcess___stream_in},
+  {(bigint) standard___exec___IProcess___stream_in__eq},
   {(bigint) standard___exec___IProcess___init},
   {(bigint) standard___exec___IProcess___init_},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute IProcess::_data */
+/* 2: Attribute IProcess::@data */
 /* Instance Hole :( */
-/* 4: Attribute IProcess::_in */
+/* 4: Attribute IProcess::@stream_in */
 void INIT_ATTRIBUTES__standard___exec___IProcess(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -25735,15 +24802,15 @@ void CHECKNEW_standard___exec___IProcess(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_standard___exec___IProcess____in(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_standard___exec___IProcess_____atstream_in(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_in", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "@stream_in", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_standard___exec___Process____data(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_standard___exec___Process_____atdata(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_data", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "@data", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
@@ -25753,7 +24820,7 @@ val_t NEW_IProcess_standard___exec___IProcess___init(val_t p0, val_t p1){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 87;
+  fra.me.line = 86;
   fra.me.meth = LOCATE_NEW_IProcess_standard___exec___IProcess___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -25763,7 +24830,7 @@ val_t NEW_IProcess_standard___exec___IProcess___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//exec.nit:87 */
+  /* ../lib/standard/exec.nit:86 */
   fra.me.REG[2] = NEW_standard___exec___IProcess();
   INIT_ATTRIBUTES__standard___exec___IProcess(fra.me.REG[2]);
   standard___exec___IProcess___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -25777,7 +24844,7 @@ val_t NEW_IProcess_standard___exec___IProcess___init_(val_t p0){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 93;
+  fra.me.line = 92;
   fra.me.meth = LOCATE_NEW_IProcess_standard___exec___IProcess___init_;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -25785,7 +24852,7 @@ val_t NEW_IProcess_standard___exec___IProcess___init_(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:93 */
+  /* ../lib/standard/exec.nit:92 */
   fra.me.REG[1] = NEW_standard___exec___IProcess();
   INIT_ATTRIBUTES__standard___exec___IProcess(fra.me.REG[1]);
   standard___exec___IProcess___init_(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -25793,16 +24860,17 @@ val_t NEW_IProcess_standard___exec___IProcess___init_(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___exec___OProcess[72] = {
-  {(bigint) 2807 /* 0: Identity */},
+const classtable_elt_t VFT_standard___exec___OProcess[78] = {
+  {(bigint) 2567 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "OProcess" /* 2: Class Name */},
   {(bigint) 3 /* 3: OProcess < Object: superclass typecheck marker */},
   {(bigint) 95 /* 4: OProcess < Process: superclass typecheck marker */},
-  {(bigint) 215 /* 5: OProcess < IOS: superclass typecheck marker */},
-  {(bigint) 2107 /* 6: OProcess < OStream: superclass typecheck marker */},
+  {(bigint) 211 /* 5: OProcess < IOS: superclass typecheck marker */},
+  {(bigint) 2143 /* 6: OProcess < OStream: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2567 /* 8: OProcess < OProcess: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2807 /* 8: OProcess < OProcess: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -25812,7 +24880,7 @@ const classtable_elt_t VFT_standard___exec___OProcess[72] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: OProcess < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: OProcess < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -25828,6 +24896,8 @@ const classtable_elt_t VFT_standard___exec___OProcess[72] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -25841,7 +24911,7 @@ const classtable_elt_t VFT_standard___exec___OProcess[72] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: OProcess < Process: superclass init_table position */},
+  {(bigint) 1 /* 50: OProcess < Process: superclass init_table position */},
   {(bigint) standard___exec___Process___id},
   {(bigint) standard___exec___Process___is_finished},
   {(bigint) standard___exec___Process___wait},
@@ -25849,11 +24919,12 @@ const classtable_elt_t VFT_standard___exec___OProcess[72] = {
   {(bigint) standard___exec___Process___init},
   {(bigint) standard___exec___Process___init_},
   {(bigint) standard___exec___Process___execute},
+  {(bigint) standard___exec___Process___data},
+  {(bigint) standard___exec___Process___data__eq},
   {(bigint) standard___exec___Process___basic_exec_execute},
-  {(bigint) 2 /* 56: OProcess < IOS: superclass init_table position */},
+  {(bigint) 3 /* 61: OProcess < IOS: superclass init_table position */},
   {(bigint) standard___exec___OProcess___close},
-  {(bigint) standard___stream___IOS___init},
-  {(bigint) 3 /* 59: OProcess < OStream: superclass init_table position */},
+  {(bigint) 2 /* 63: OProcess < OStream: superclass init_table position */},
   {(bigint) standard___exec___OProcess___write},
   {(bigint) standard___exec___OProcess___is_writable},
   {0} /* Class Hole :( */,
@@ -25863,14 +24934,16 @@ const classtable_elt_t VFT_standard___exec___OProcess[72] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 4 /* 69: OProcess < OProcess: superclass init_table position */},
+  {(bigint) 4 /* 73: OProcess < OProcess: superclass init_table position */},
+  {(bigint) standard___exec___OProcess___stream_out},
+  {(bigint) standard___exec___OProcess___stream_out__eq},
   {(bigint) standard___exec___OProcess___init},
   {(bigint) standard___exec___OProcess___init_},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute OProcess::_data */
-/* 3: Attribute OProcess::_out */
+/* 2: Attribute OProcess::@data */
+/* 3: Attribute OProcess::@stream_out */
 void INIT_ATTRIBUTES__standard___exec___OProcess(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -25905,15 +24978,15 @@ void CHECKNEW_standard___exec___OProcess(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_standard___exec___OProcess____out(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_standard___exec___OProcess_____atstream_out(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_out", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "@stream_out", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_standard___exec___Process____data(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_standard___exec___Process_____atdata(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_data", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "@data", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
@@ -25923,7 +24996,7 @@ val_t NEW_OProcess_standard___exec___OProcess___init(val_t p0, val_t p1){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 112;
+  fra.me.line = 111;
   fra.me.meth = LOCATE_NEW_OProcess_standard___exec___OProcess___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -25933,7 +25006,7 @@ val_t NEW_OProcess_standard___exec___OProcess___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//exec.nit:112 */
+  /* ../lib/standard/exec.nit:111 */
   fra.me.REG[2] = NEW_standard___exec___OProcess();
   INIT_ATTRIBUTES__standard___exec___OProcess(fra.me.REG[2]);
   standard___exec___OProcess___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -25947,7 +25020,7 @@ val_t NEW_OProcess_standard___exec___OProcess___init_(val_t p0){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 118;
+  fra.me.line = 117;
   fra.me.meth = LOCATE_NEW_OProcess_standard___exec___OProcess___init_;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -25955,7 +25028,7 @@ val_t NEW_OProcess_standard___exec___OProcess___init_(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:118 */
+  /* ../lib/standard/exec.nit:117 */
   fra.me.REG[1] = NEW_standard___exec___OProcess();
   INIT_ATTRIBUTES__standard___exec___OProcess(fra.me.REG[1]);
   standard___exec___OProcess___init_(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -25963,26 +25036,27 @@ val_t NEW_OProcess_standard___exec___OProcess___init_(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___exec___IOProcess[79] = {
-  {(bigint) 3211 /* 0: Identity */},
+const classtable_elt_t VFT_standard___exec___IOProcess[87] = {
+  {(bigint) 3275 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IOProcess" /* 2: Class Name */},
   {(bigint) 3 /* 3: IOProcess < Object: superclass typecheck marker */},
   {(bigint) 95 /* 4: IOProcess < Process: superclass typecheck marker */},
-  {(bigint) 215 /* 5: IOProcess < IOS: superclass typecheck marker */},
-  {(bigint) 2107 /* 6: IOProcess < OStream: superclass typecheck marker */},
-  {(bigint) 2227 /* 7: IOProcess < IStream: superclass typecheck marker */},
-  {(bigint) 2807 /* 8: IOProcess < OProcess: superclass typecheck marker */},
-  {(bigint) 2871 /* 9: IOProcess < IProcess: superclass typecheck marker */},
-  {(bigint) 2879 /* 10: IOProcess < IOStream: superclass typecheck marker */},
-  {(bigint) 3211 /* 11: IOProcess < IOProcess: superclass typecheck marker */},
+  {(bigint) 211 /* 5: IOProcess < IOS: superclass typecheck marker */},
+  {(bigint) 2143 /* 6: IOProcess < OStream: superclass typecheck marker */},
+  {(bigint) 2263 /* 7: IOProcess < IStream: superclass typecheck marker */},
+  {(bigint) 2567 /* 8: IOProcess < OProcess: superclass typecheck marker */},
+  {(bigint) 2631 /* 9: IOProcess < IProcess: superclass typecheck marker */},
+  {(bigint) 2639 /* 10: IOProcess < IOStream: superclass typecheck marker */},
+  {(bigint) 3275 /* 11: IOProcess < IOProcess: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: IOProcess < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: IOProcess < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -25998,6 +25072,8 @@ const classtable_elt_t VFT_standard___exec___IOProcess[79] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -26011,7 +25087,7 @@ const classtable_elt_t VFT_standard___exec___IOProcess[79] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: IOProcess < Process: superclass init_table position */},
+  {(bigint) 1 /* 50: IOProcess < Process: superclass init_table position */},
   {(bigint) standard___exec___Process___id},
   {(bigint) standard___exec___Process___is_finished},
   {(bigint) standard___exec___Process___wait},
@@ -26019,36 +25095,41 @@ const classtable_elt_t VFT_standard___exec___IOProcess[79] = {
   {(bigint) standard___exec___Process___init},
   {(bigint) standard___exec___Process___init_},
   {(bigint) standard___exec___Process___execute},
+  {(bigint) standard___exec___Process___data},
+  {(bigint) standard___exec___Process___data__eq},
   {(bigint) standard___exec___Process___basic_exec_execute},
-  {(bigint) 2 /* 56: IOProcess < IOS: superclass init_table position */},
+  {(bigint) 3 /* 61: IOProcess < IOS: superclass init_table position */},
   {(bigint) standard___exec___IOProcess___close},
-  {(bigint) standard___stream___IOS___init},
-  {(bigint) 5 /* 59: IOProcess < OStream: superclass init_table position */},
+  {(bigint) 5 /* 63: IOProcess < OStream: superclass init_table position */},
   {(bigint) standard___exec___OProcess___write},
   {(bigint) standard___exec___OProcess___is_writable},
-  {(bigint) 3 /* 62: IOProcess < IStream: superclass init_table position */},
+  {(bigint) 2 /* 66: IOProcess < IStream: superclass init_table position */},
   {(bigint) standard___exec___IProcess___read_char},
   {(bigint) standard___stream___IStream___read},
   {(bigint) standard___stream___IStream___read_line},
   {(bigint) standard___stream___IStream___read_all},
   {(bigint) standard___stream___IStream___append_line_to},
   {(bigint) standard___exec___IProcess___eof},
-  {(bigint) 6 /* 69: IOProcess < OProcess: superclass init_table position */},
+  {(bigint) 6 /* 73: IOProcess < OProcess: superclass init_table position */},
+  {(bigint) standard___exec___OProcess___stream_out},
+  {(bigint) standard___exec___OProcess___stream_out__eq},
   {(bigint) standard___exec___OProcess___init},
   {(bigint) standard___exec___OProcess___init_},
-  {(bigint) 4 /* 72: IOProcess < IProcess: superclass init_table position */},
+  {(bigint) 4 /* 78: IOProcess < IProcess: superclass init_table position */},
+  {(bigint) standard___exec___IProcess___stream_in},
+  {(bigint) standard___exec___IProcess___stream_in__eq},
   {(bigint) standard___exec___IProcess___init},
   {(bigint) standard___exec___IProcess___init_},
-  {(bigint) 7 /* 75: IOProcess < IOStream: superclass init_table position */},
-  {(bigint) 8 /* 76: IOProcess < IOProcess: superclass init_table position */},
+  {(bigint) 7 /* 83: IOProcess < IOStream: superclass init_table position */},
+  {(bigint) 8 /* 84: IOProcess < IOProcess: superclass init_table position */},
   {(bigint) standard___exec___IOProcess___init},
   {(bigint) standard___exec___IOProcess___init_},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute IOProcess::_data */
-/* 3: Attribute IOProcess::_out */
-/* 4: Attribute IOProcess::_in */
+/* 2: Attribute IOProcess::@data */
+/* 3: Attribute IOProcess::@stream_out */
+/* 4: Attribute IOProcess::@stream_in */
 void INIT_ATTRIBUTES__standard___exec___IOProcess(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -26083,20 +25164,20 @@ void CHECKNEW_standard___exec___IOProcess(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_standard___exec___IProcess____in(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_standard___exec___IProcess_____atstream_in(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_in", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "@stream_in", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_standard___exec___Process____data(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_standard___exec___Process_____atdata(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_data", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "@data", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_standard___exec___OProcess____out(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_standard___exec___OProcess_____atstream_out(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_out", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "@stream_out", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
@@ -26106,7 +25187,7 @@ val_t NEW_IOProcess_standard___exec___IOProcess___init(val_t p0, val_t p1){
   int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 137;
+  fra.me.line = 136;
   fra.me.meth = LOCATE_NEW_IOProcess_standard___exec___IOProcess___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -26116,7 +25197,7 @@ val_t NEW_IOProcess_standard___exec___IOProcess___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//exec.nit:137 */
+  /* ../lib/standard/exec.nit:136 */
   fra.me.REG[2] = NEW_standard___exec___IOProcess();
   INIT_ATTRIBUTES__standard___exec___IOProcess(fra.me.REG[2]);
   standard___exec___IOProcess___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -26130,7 +25211,7 @@ val_t NEW_IOProcess_standard___exec___IOProcess___init_(val_t p0){
   int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 144;
+  fra.me.line = 143;
   fra.me.meth = LOCATE_NEW_IOProcess_standard___exec___IOProcess___init_;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -26138,7 +25219,7 @@ val_t NEW_IOProcess_standard___exec___IOProcess___init_(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:144 */
+  /* ../lib/standard/exec.nit:143 */
   fra.me.REG[1] = NEW_standard___exec___IOProcess();
   INIT_ATTRIBUTES__standard___exec___IOProcess(fra.me.REG[1]);
   standard___exec___IOProcess___init_(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -26146,7 +25227,7 @@ val_t NEW_IOProcess_standard___exec___IOProcess___init_(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_standard___exec___NativeProcess[56] = {
+const classtable_elt_t VFT_standard___exec___NativeProcess[59] = {
   {(bigint) -17 /* 0: Identity */},
   {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "NativeProcess" /* 2: Class Name */},
@@ -26163,9 +25244,10 @@ const classtable_elt_t VFT_standard___exec___NativeProcess[56] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: NativeProcess < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: NativeProcess < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -26181,6 +25263,8 @@ const classtable_elt_t VFT_standard___exec___NativeProcess[56] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -26194,8 +25278,8 @@ const classtable_elt_t VFT_standard___exec___NativeProcess[56] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: NativeProcess < Pointer: superclass init_table position */},
-  {(bigint) 2 /* 48: NativeProcess < NativeProcess: superclass init_table position */},
+  {(bigint) 1 /* 50: NativeProcess < Pointer: superclass init_table position */},
+  {(bigint) 2 /* 51: NativeProcess < NativeProcess: superclass init_table position */},
   {(bigint) standard___exec___NativeProcess___id},
   {(bigint) standard___exec___NativeProcess___is_finished},
   {(bigint) standard___exec___NativeProcess___status},
@@ -26214,7 +25298,7 @@ val_t BOX_NativeProcess(void * val) {
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(box);
 }
-const classtable_elt_t VFT_location___SourceFile[55] = {
+const classtable_elt_t VFT_location___SourceFile[58] = {
   {(bigint) 43 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "SourceFile" /* 2: Class Name */},
@@ -26231,9 +25315,10 @@ const classtable_elt_t VFT_location___SourceFile[55] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: SourceFile < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: SourceFile < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -26249,6 +25334,8 @@ const classtable_elt_t VFT_location___SourceFile[55] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -26262,7 +25349,7 @@ const classtable_elt_t VFT_location___SourceFile[55] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: SourceFile < SourceFile: superclass init_table position */},
+  {(bigint) 1 /* 50: SourceFile < SourceFile: superclass init_table position */},
   {(bigint) location___SourceFile___filename},
   {(bigint) location___SourceFile___filename__eq},
   {(bigint) location___SourceFile___string},
@@ -26289,7 +25376,7 @@ void INIT_ATTRIBUTES__location___SourceFile(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./location.nit:37 */
+  /* location.nit:37 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_location___SourceFile_____atline_starts(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -26349,7 +25436,7 @@ val_t NEW_SourceFile_location___SourceFile___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./location.nit:28 */
+  /* location.nit:28 */
   fra.me.REG[2] = NEW_location___SourceFile();
   INIT_ATTRIBUTES__location___SourceFile(fra.me.REG[2]);
   location___SourceFile___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -26357,14 +25444,15 @@ val_t NEW_SourceFile_location___SourceFile___init(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_location___Location[73] = {
-  {(bigint) 2199 /* 0: Identity */},
+const classtable_elt_t VFT_location___Location[77] = {
+  {(bigint) 2235 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "Location" /* 2: Class Name */},
   {(bigint) 3 /* 3: Location < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 275 /* 5: Location < Comparable: superclass typecheck marker */},
-  {(bigint) 2199 /* 6: Location < Location: superclass typecheck marker */},
+  {(bigint) 271 /* 5: Location < Comparable: superclass typecheck marker */},
+  {(bigint) 2235 /* 6: Location < Location: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26376,7 +25464,7 @@ const classtable_elt_t VFT_location___Location[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: Location < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: Location < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) location___Location_____eqeq},
@@ -26392,6 +25480,8 @@ const classtable_elt_t VFT_location___Location[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) location___Location___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -26410,9 +25500,9 @@ const classtable_elt_t VFT_location___Location[73] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 0 /* 52: Location < Comparable: superclass init_table position */},
-  {(bigint) 2199 /* 53: VT Location::OTHER : id of Location */},
-  {(bigint) 6 /* 54: VT Location::OTHER : color of Location */},
+  {(bigint) 0 /* 55: Location < Comparable: superclass init_table position */},
+  {(bigint) 2235 /* 56: VT Location::OTHER : id of Location */},
+  {(bigint) 6 /* 57: VT Location::OTHER : color of Location */},
   {(bigint) location___Location_____l},
   {(bigint) standard___kernel___Comparable_____leq},
   {(bigint) standard___kernel___Comparable_____geq},
@@ -26421,7 +25511,7 @@ const classtable_elt_t VFT_location___Location[73] = {
   {(bigint) standard___kernel___Comparable___is_between},
   {(bigint) standard___kernel___Comparable___max},
   {(bigint) standard___kernel___Comparable___min},
-  {(bigint) 2 /* 63: Location < Location: superclass init_table position */},
+  {(bigint) 2 /* 66: Location < Location: superclass init_table position */},
   {(bigint) location___Location___file},
   {(bigint) location___Location___line_start},
   {(bigint) location___Location___line_end},
@@ -26431,6 +25521,7 @@ const classtable_elt_t VFT_location___Location[73] = {
   {(bigint) location___Location___with_file},
   {(bigint) location___Location___located_in},
   {(bigint) location___Location___relative_to},
+  {(bigint) location___Location___colored_line},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -26517,7 +25608,7 @@ val_t NEW_Location_location___Location___init(val_t p0, val_t p1, val_t p2, val_
   REGB1 = p2;
   REGB2 = p3;
   REGB3 = p4;
-  /* ./location.nit:51 */
+  /* location.nit:51 */
   fra.me.REG[1] = NEW_location___Location();
   INIT_ATTRIBUTES__location___Location(fra.me.REG[1]);
   location___Location___init(fra.me.REG[1], fra.me.REG[0], REGB0, REGB1, REGB2, REGB3, init_table);
@@ -26539,7 +25630,7 @@ val_t NEW_Location_location___Location___with_file(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./location.nit:59 */
+  /* location.nit:59 */
   fra.me.REG[1] = NEW_location___Location();
   INIT_ATTRIBUTES__location___Location(fra.me.REG[1]);
   location___Location___with_file(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -26547,14 +25638,15 @@ val_t NEW_Location_location___Location___with_file(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TEol[73] = {
-  {(bigint) 2715 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TEol[77] = {
+  {(bigint) 2487 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TEol" /* 2: Class Name */},
   {(bigint) 3 /* 3: TEol < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TEol < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TEol < Token: superclass typecheck marker */},
-  {(bigint) 2715 /* 6: TEol < TEol: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TEol < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TEol < Token: superclass typecheck marker */},
+  {(bigint) 2487 /* 6: TEol < TEol: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26566,7 +25658,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TEol[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TEol < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TEol < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -26582,7 +25674,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TEol[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TEol___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -26608,19 +25702,20 @@ const classtable_elt_t VFT_parser___parser_nodes___TEol[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TEol < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: TEol < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TEol___parser_index},
-  {(bigint) 0 /* 70: TEol < Token: superclass init_table position */},
+  {(bigint) 0 /* 73: TEol < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TEol___init_tk},
-  {(bigint) 3 /* 72: TEol < TEol: superclass init_table position */},
+  {(bigint) 3 /* 76: TEol < TEol: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -26675,7 +25770,7 @@ val_t NEW_TEol_parser___lexer___TEol___init_tk(val_t p0, val_t p1){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 24;
+  fra.me.line = 20;
   fra.me.meth = LOCATE_NEW_TEol_parser___lexer___TEol___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -26685,7 +25780,7 @@ val_t NEW_TEol_parser___lexer___TEol___init_tk(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:24 */
+  /* parser/lexer.nit:20 */
   fra.me.REG[2] = NEW_parser___parser_nodes___TEol();
   INIT_ATTRIBUTES__parser___parser_nodes___TEol(fra.me.REG[2]);
   parser___lexer___TEol___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -26693,35 +25788,35 @@ val_t NEW_TEol_parser___lexer___TEol___init_tk(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_TEol_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TEol_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TEol_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TEol();
-  INIT_ATTRIBUTES__parser___parser_nodes___TEol(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TEol(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TEol();
+  INIT_ATTRIBUTES__parser___parser_nodes___TEol(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TEol(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TComment[73] = {
-  {(bigint) 2739 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TComment[77] = {
+  {(bigint) 2499 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TComment" /* 2: Class Name */},
   {(bigint) 3 /* 3: TComment < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TComment < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TComment < Token: superclass typecheck marker */},
-  {(bigint) 2739 /* 6: TComment < TComment: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TComment < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TComment < Token: superclass typecheck marker */},
+  {(bigint) 2499 /* 6: TComment < TComment: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26733,7 +25828,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TComment[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TComment < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TComment < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -26749,7 +25844,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TComment[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___Token___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -26775,19 +25872,20 @@ const classtable_elt_t VFT_parser___parser_nodes___TComment[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TComment < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: TComment < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TComment___parser_index},
-  {(bigint) 0 /* 70: TComment < Token: superclass init_table position */},
+  {(bigint) 0 /* 73: TComment < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TComment___init_tk},
-  {(bigint) 3 /* 72: TComment < TComment: superclass init_table position */},
+  {(bigint) 3 /* 76: TComment < TComment: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -26842,7 +25940,7 @@ val_t NEW_TComment_parser___lexer___TComment___init_tk(val_t p0, val_t p1){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 37;
+  fra.me.line = 33;
   fra.me.meth = LOCATE_NEW_TComment_parser___lexer___TComment___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -26852,7 +25950,7 @@ val_t NEW_TComment_parser___lexer___TComment___init_tk(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:37 */
+  /* parser/lexer.nit:33 */
   fra.me.REG[2] = NEW_parser___parser_nodes___TComment();
   INIT_ATTRIBUTES__parser___parser_nodes___TComment(fra.me.REG[2]);
   parser___lexer___TComment___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -26860,35 +25958,35 @@ val_t NEW_TComment_parser___lexer___TComment___init_tk(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_TComment_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TComment_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TComment_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TComment();
-  INIT_ATTRIBUTES__parser___parser_nodes___TComment(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TComment(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TComment();
+  INIT_ATTRIBUTES__parser___parser_nodes___TComment(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TComment(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwmodule[73] = {
-  {(bigint) 2575 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwmodule[78] = {
+  {(bigint) 3083 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwmodule" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwmodule < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwmodule < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwmodule < Token: superclass typecheck marker */},
-  {(bigint) 2575 /* 6: TKwmodule < TKwmodule: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwmodule < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwmodule < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwmodule < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3083 /* 7: TKwmodule < TKwmodule: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26900,7 +25998,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwmodule[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwmodule < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwmodule < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -26916,7 +26014,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwmodule[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -26942,19 +26042,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwmodule[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwmodule < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwmodule < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwmodule___parser_index},
-  {(bigint) 0 /* 70: TKwmodule < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwmodule < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwmodule < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwmodule___init_tk},
-  {(bigint) 3 /* 72: TKwmodule < TKwmodule: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwmodule < TKwmodule: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -27006,10 +26108,10 @@ void CHECKNEW_parser___parser_nodes___TKwmodule(val_t p0){
 val_t NEW_TKwmodule_parser___lexer___TKwmodule___init_tk(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 50;
+  fra.me.line = 46;
   fra.me.meth = LOCATE_NEW_TKwmodule_parser___lexer___TKwmodule___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -27019,7 +26121,7 @@ val_t NEW_TKwmodule_parser___lexer___TKwmodule___init_tk(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:50 */
+  /* parser/lexer.nit:46 */
   fra.me.REG[2] = NEW_parser___parser_nodes___TKwmodule();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwmodule(fra.me.REG[2]);
   parser___lexer___TKwmodule___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -27027,35 +26129,35 @@ val_t NEW_TKwmodule_parser___lexer___TKwmodule___init_tk(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_TKwmodule_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwmodule_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwmodule_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwmodule();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwmodule(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwmodule(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwmodule();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwmodule(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwmodule(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwimport[73] = {
-  {(bigint) 2623 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwimport[78] = {
+  {(bigint) 3131 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwimport" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwimport < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwimport < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwimport < Token: superclass typecheck marker */},
-  {(bigint) 2623 /* 6: TKwimport < TKwimport: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwimport < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwimport < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwimport < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3131 /* 7: TKwimport < TKwimport: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27067,7 +26169,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwimport[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwimport < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwimport < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -27083,7 +26185,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwimport[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -27109,19 +26213,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwimport[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwimport < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwimport < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwimport___parser_index},
-  {(bigint) 0 /* 70: TKwimport < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwimport < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwimport < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwimport___init_tk},
-  {(bigint) 3 /* 72: TKwimport < TKwimport: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwimport < TKwimport: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -27173,10 +26279,10 @@ void CHECKNEW_parser___parser_nodes___TKwimport(val_t p0){
 val_t NEW_TKwimport_parser___lexer___TKwimport___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 63;
+  fra.me.line = 59;
   fra.me.meth = LOCATE_NEW_TKwimport_parser___lexer___TKwimport___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -27184,7 +26290,7 @@ val_t NEW_TKwimport_parser___lexer___TKwimport___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:63 */
+  /* parser/lexer.nit:59 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwimport();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwimport(fra.me.REG[1]);
   parser___lexer___TKwimport___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -27192,35 +26298,35 @@ val_t NEW_TKwimport_parser___lexer___TKwimport___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwimport_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwimport_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwimport_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwimport();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwimport(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwimport(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwimport();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwimport(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwimport(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwclass[73] = {
-  {(bigint) 2663 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwclass[78] = {
+  {(bigint) 3171 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwclass" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwclass < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwclass < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwclass < Token: superclass typecheck marker */},
-  {(bigint) 2663 /* 6: TKwclass < TKwclass: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwclass < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwclass < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwclass < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3171 /* 7: TKwclass < TKwclass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27232,7 +26338,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwclass[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwclass < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwclass < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -27248,7 +26354,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwclass[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -27274,19 +26382,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwclass[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwclass < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwclass < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwclass___parser_index},
-  {(bigint) 0 /* 70: TKwclass < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwclass < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwclass < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwclass___init_tk},
-  {(bigint) 3 /* 72: TKwclass < TKwclass: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwclass < TKwclass: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -27338,10 +26448,10 @@ void CHECKNEW_parser___parser_nodes___TKwclass(val_t p0){
 val_t NEW_TKwclass_parser___lexer___TKwclass___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 76;
+  fra.me.line = 72;
   fra.me.meth = LOCATE_NEW_TKwclass_parser___lexer___TKwclass___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -27349,7 +26459,7 @@ val_t NEW_TKwclass_parser___lexer___TKwclass___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:76 */
+  /* parser/lexer.nit:72 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwclass();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwclass(fra.me.REG[1]);
   parser___lexer___TKwclass___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -27357,35 +26467,35 @@ val_t NEW_TKwclass_parser___lexer___TKwclass___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwclass_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwclass_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwclass_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwclass();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwclass(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwclass(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwclass();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwclass(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwclass(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwabstract[73] = {
-  {(bigint) 2683 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwabstract[78] = {
+  {(bigint) 3191 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwabstract" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwabstract < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwabstract < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwabstract < Token: superclass typecheck marker */},
-  {(bigint) 2683 /* 6: TKwabstract < TKwabstract: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwabstract < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwabstract < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwabstract < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3191 /* 7: TKwabstract < TKwabstract: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27397,7 +26507,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwabstract[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwabstract < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwabstract < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -27413,7 +26523,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwabstract[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -27439,19 +26551,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwabstract[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwabstract < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwabstract < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwabstract___parser_index},
-  {(bigint) 0 /* 70: TKwabstract < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwabstract < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwabstract < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwabstract___init_tk},
-  {(bigint) 3 /* 72: TKwabstract < TKwabstract: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwabstract < TKwabstract: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -27503,10 +26617,10 @@ void CHECKNEW_parser___parser_nodes___TKwabstract(val_t p0){
 val_t NEW_TKwabstract_parser___lexer___TKwabstract___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 89;
+  fra.me.line = 85;
   fra.me.meth = LOCATE_NEW_TKwabstract_parser___lexer___TKwabstract___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -27514,7 +26628,7 @@ val_t NEW_TKwabstract_parser___lexer___TKwabstract___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:89 */
+  /* parser/lexer.nit:85 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwabstract();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwabstract(fra.me.REG[1]);
   parser___lexer___TKwabstract___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -27522,35 +26636,35 @@ val_t NEW_TKwabstract_parser___lexer___TKwabstract___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwabstract_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwabstract_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwabstract_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwabstract();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwabstract(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwabstract(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwabstract();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwabstract(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwabstract(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwinterface[73] = {
-  {(bigint) 2611 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwinterface[78] = {
+  {(bigint) 3119 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwinterface" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwinterface < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwinterface < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwinterface < Token: superclass typecheck marker */},
-  {(bigint) 2611 /* 6: TKwinterface < TKwinterface: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwinterface < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwinterface < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwinterface < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3119 /* 7: TKwinterface < TKwinterface: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27562,7 +26676,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwinterface[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwinterface < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwinterface < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -27578,7 +26692,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwinterface[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -27604,19 +26720,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwinterface[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwinterface < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwinterface < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwinterface___parser_index},
-  {(bigint) 0 /* 70: TKwinterface < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwinterface < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwinterface < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwinterface___init_tk},
-  {(bigint) 3 /* 72: TKwinterface < TKwinterface: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwinterface < TKwinterface: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -27668,10 +26786,10 @@ void CHECKNEW_parser___parser_nodes___TKwinterface(val_t p0){
 val_t NEW_TKwinterface_parser___lexer___TKwinterface___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 102;
+  fra.me.line = 98;
   fra.me.meth = LOCATE_NEW_TKwinterface_parser___lexer___TKwinterface___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -27679,7 +26797,7 @@ val_t NEW_TKwinterface_parser___lexer___TKwinterface___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:102 */
+  /* parser/lexer.nit:98 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwinterface();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwinterface(fra.me.REG[1]);
   parser___lexer___TKwinterface___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -27687,35 +26805,35 @@ val_t NEW_TKwinterface_parser___lexer___TKwinterface___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwinterface_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwinterface_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwinterface_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwinterface();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwinterface(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwinterface(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwinterface();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwinterface(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwinterface(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwenum[73] = {
-  {(bigint) 2643 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwenum[78] = {
+  {(bigint) 3151 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwenum" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwenum < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwenum < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwenum < Token: superclass typecheck marker */},
-  {(bigint) 2643 /* 6: TKwenum < TKwenum: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwenum < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwenum < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwenum < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3151 /* 7: TKwenum < TKwenum: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27727,7 +26845,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwenum[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwenum < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwenum < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -27743,7 +26861,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwenum[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -27769,19 +26889,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwenum[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwenum < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwenum < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwenum___parser_index},
-  {(bigint) 0 /* 70: TKwenum < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwenum < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwenum < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwenum___init_tk},
-  {(bigint) 3 /* 72: TKwenum < TKwenum: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwenum < TKwenum: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -27833,10 +26955,10 @@ void CHECKNEW_parser___parser_nodes___TKwenum(val_t p0){
 val_t NEW_TKwenum_parser___lexer___TKwenum___init_tk(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 115;
+  fra.me.line = 111;
   fra.me.meth = LOCATE_NEW_TKwenum_parser___lexer___TKwenum___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -27846,7 +26968,7 @@ val_t NEW_TKwenum_parser___lexer___TKwenum___init_tk(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:115 */
+  /* parser/lexer.nit:111 */
   fra.me.REG[2] = NEW_parser___parser_nodes___TKwenum();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwenum(fra.me.REG[2]);
   parser___lexer___TKwenum___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -27854,35 +26976,35 @@ val_t NEW_TKwenum_parser___lexer___TKwenum___init_tk(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_TKwenum_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwenum_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwenum_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwenum();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwenum(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwenum(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwenum();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwenum(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwenum(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwspecial[73] = {
-  {(bigint) 2523 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwspecial[78] = {
+  {(bigint) 3031 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwspecial" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwspecial < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwspecial < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwspecial < Token: superclass typecheck marker */},
-  {(bigint) 2523 /* 6: TKwspecial < TKwspecial: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwspecial < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwspecial < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwspecial < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3031 /* 7: TKwspecial < TKwspecial: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27894,7 +27016,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwspecial[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwspecial < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwspecial < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -27910,7 +27032,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwspecial[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -27936,19 +27060,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwspecial[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwspecial < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwspecial < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwspecial___parser_index},
-  {(bigint) 0 /* 70: TKwspecial < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwspecial < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwspecial < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwspecial___init_tk},
-  {(bigint) 3 /* 72: TKwspecial < TKwspecial: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwspecial < TKwspecial: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -28000,10 +27126,10 @@ void CHECKNEW_parser___parser_nodes___TKwspecial(val_t p0){
 val_t NEW_TKwspecial_parser___lexer___TKwspecial___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 128;
+  fra.me.line = 124;
   fra.me.meth = LOCATE_NEW_TKwspecial_parser___lexer___TKwspecial___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -28011,7 +27137,7 @@ val_t NEW_TKwspecial_parser___lexer___TKwspecial___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:128 */
+  /* parser/lexer.nit:124 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwspecial();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwspecial(fra.me.REG[1]);
   parser___lexer___TKwspecial___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -28019,35 +27145,35 @@ val_t NEW_TKwspecial_parser___lexer___TKwspecial___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwspecial_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwspecial_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwspecial_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwspecial();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwspecial(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwspecial(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwspecial();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwspecial(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwspecial(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwend[73] = {
-  {(bigint) 2647 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwend[78] = {
+  {(bigint) 3155 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwend" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwend < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwend < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwend < Token: superclass typecheck marker */},
-  {(bigint) 2647 /* 6: TKwend < TKwend: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwend < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwend < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwend < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3155 /* 7: TKwend < TKwend: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -28059,7 +27185,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwend[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwend < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwend < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -28075,7 +27201,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwend[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -28101,19 +27229,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwend[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwend < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwend < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwend___parser_index},
-  {(bigint) 0 /* 70: TKwend < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwend < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwend < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwend___init_tk},
-  {(bigint) 3 /* 72: TKwend < TKwend: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwend < TKwend: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -28165,10 +27295,10 @@ void CHECKNEW_parser___parser_nodes___TKwend(val_t p0){
 val_t NEW_TKwend_parser___lexer___TKwend___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 141;
+  fra.me.line = 137;
   fra.me.meth = LOCATE_NEW_TKwend_parser___lexer___TKwend___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -28176,7 +27306,7 @@ val_t NEW_TKwend_parser___lexer___TKwend___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:141 */
+  /* parser/lexer.nit:137 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwend();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwend(fra.me.REG[1]);
   parser___lexer___TKwend___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -28184,35 +27314,35 @@ val_t NEW_TKwend_parser___lexer___TKwend___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwend_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwend_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwend_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwend();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwend(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwend(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwend();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwend(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwend(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwmeth[73] = {
-  {(bigint) 2579 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwmeth[78] = {
+  {(bigint) 3087 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwmeth" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwmeth < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwmeth < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwmeth < Token: superclass typecheck marker */},
-  {(bigint) 2579 /* 6: TKwmeth < TKwmeth: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwmeth < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwmeth < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwmeth < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3087 /* 7: TKwmeth < TKwmeth: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -28224,7 +27354,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwmeth[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwmeth < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwmeth < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -28240,7 +27370,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwmeth[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -28266,19 +27398,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwmeth[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwmeth < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwmeth < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwmeth___parser_index},
-  {(bigint) 0 /* 70: TKwmeth < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwmeth < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwmeth < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwmeth___init_tk},
-  {(bigint) 3 /* 72: TKwmeth < TKwmeth: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwmeth < TKwmeth: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -28330,10 +27464,10 @@ void CHECKNEW_parser___parser_nodes___TKwmeth(val_t p0){
 val_t NEW_TKwmeth_parser___lexer___TKwmeth___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 154;
+  fra.me.line = 150;
   fra.me.meth = LOCATE_NEW_TKwmeth_parser___lexer___TKwmeth___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -28341,7 +27475,7 @@ val_t NEW_TKwmeth_parser___lexer___TKwmeth___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:154 */
+  /* parser/lexer.nit:150 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwmeth();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwmeth(fra.me.REG[1]);
   parser___lexer___TKwmeth___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -28349,35 +27483,35 @@ val_t NEW_TKwmeth_parser___lexer___TKwmeth___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwmeth_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwmeth_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwmeth_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwmeth();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwmeth(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwmeth(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwmeth();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwmeth(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwmeth(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwtype[73] = {
-  {(bigint) 2507 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwtype[78] = {
+  {(bigint) 3015 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwtype" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwtype < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwtype < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwtype < Token: superclass typecheck marker */},
-  {(bigint) 2507 /* 6: TKwtype < TKwtype: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwtype < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwtype < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwtype < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3015 /* 7: TKwtype < TKwtype: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -28389,7 +27523,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwtype[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwtype < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwtype < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -28405,7 +27539,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwtype[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -28431,19 +27567,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwtype[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwtype < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwtype < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwtype___parser_index},
-  {(bigint) 0 /* 70: TKwtype < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwtype < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwtype < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwtype___init_tk},
-  {(bigint) 3 /* 72: TKwtype < TKwtype: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwtype < TKwtype: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -28495,10 +27633,10 @@ void CHECKNEW_parser___parser_nodes___TKwtype(val_t p0){
 val_t NEW_TKwtype_parser___lexer___TKwtype___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 167;
+  fra.me.line = 163;
   fra.me.meth = LOCATE_NEW_TKwtype_parser___lexer___TKwtype___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -28506,7 +27644,7 @@ val_t NEW_TKwtype_parser___lexer___TKwtype___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:167 */
+  /* parser/lexer.nit:163 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwtype();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwtype(fra.me.REG[1]);
   parser___lexer___TKwtype___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -28514,35 +27652,35 @@ val_t NEW_TKwtype_parser___lexer___TKwtype___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwtype_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwtype_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwtype_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwtype();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwtype(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwtype(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwtype();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwtype(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwtype(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwinit[73] = {
-  {(bigint) 2615 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwinit[78] = {
+  {(bigint) 3123 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwinit" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwinit < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwinit < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwinit < Token: superclass typecheck marker */},
-  {(bigint) 2615 /* 6: TKwinit < TKwinit: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwinit < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwinit < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwinit < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3123 /* 7: TKwinit < TKwinit: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -28554,7 +27692,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwinit[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwinit < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwinit < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -28570,7 +27708,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwinit[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -28596,19 +27736,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwinit[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwinit < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwinit < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwinit___parser_index},
-  {(bigint) 0 /* 70: TKwinit < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwinit < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwinit < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwinit___init_tk},
-  {(bigint) 3 /* 72: TKwinit < TKwinit: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwinit < TKwinit: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -28660,10 +27802,10 @@ void CHECKNEW_parser___parser_nodes___TKwinit(val_t p0){
 val_t NEW_TKwinit_parser___lexer___TKwinit___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 180;
+  fra.me.line = 176;
   fra.me.meth = LOCATE_NEW_TKwinit_parser___lexer___TKwinit___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -28671,7 +27813,7 @@ val_t NEW_TKwinit_parser___lexer___TKwinit___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:180 */
+  /* parser/lexer.nit:176 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwinit();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwinit(fra.me.REG[1]);
   parser___lexer___TKwinit___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -28679,35 +27821,35 @@ val_t NEW_TKwinit_parser___lexer___TKwinit___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwinit_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwinit_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwinit_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwinit();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwinit(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwinit(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwinit();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwinit(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwinit(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwredef[73] = {
-  {(bigint) 2535 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwredef[78] = {
+  {(bigint) 3043 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwredef" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwredef < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwredef < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwredef < Token: superclass typecheck marker */},
-  {(bigint) 2535 /* 6: TKwredef < TKwredef: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwredef < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwredef < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwredef < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3043 /* 7: TKwredef < TKwredef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -28719,7 +27861,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwredef[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwredef < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwredef < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -28735,7 +27877,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwredef[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -28761,19 +27905,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwredef[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwredef < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwredef < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwredef___parser_index},
-  {(bigint) 0 /* 70: TKwredef < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwredef < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwredef < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwredef___init_tk},
-  {(bigint) 3 /* 72: TKwredef < TKwredef: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwredef < TKwredef: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -28825,10 +27971,10 @@ void CHECKNEW_parser___parser_nodes___TKwredef(val_t p0){
 val_t NEW_TKwredef_parser___lexer___TKwredef___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 193;
+  fra.me.line = 189;
   fra.me.meth = LOCATE_NEW_TKwredef_parser___lexer___TKwredef___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -28836,7 +27982,7 @@ val_t NEW_TKwredef_parser___lexer___TKwredef___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:193 */
+  /* parser/lexer.nit:189 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwredef();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwredef(fra.me.REG[1]);
   parser___lexer___TKwredef___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -28844,35 +27990,35 @@ val_t NEW_TKwredef_parser___lexer___TKwredef___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwredef_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwredef_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwredef_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwredef();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwredef(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwredef(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwredef();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwredef(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwredef(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwis[73] = {
-  {(bigint) 2599 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwis[78] = {
+  {(bigint) 3107 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwis" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwis < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwis < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwis < Token: superclass typecheck marker */},
-  {(bigint) 2599 /* 6: TKwis < TKwis: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwis < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwis < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwis < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3107 /* 7: TKwis < TKwis: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -28884,7 +28030,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwis[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwis < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwis < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -28900,7 +28046,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwis[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -28926,19 +28074,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwis[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwis < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwis < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwis___parser_index},
-  {(bigint) 0 /* 70: TKwis < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwis < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwis < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwis___init_tk},
-  {(bigint) 3 /* 72: TKwis < TKwis: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwis < TKwis: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -28990,10 +28140,10 @@ void CHECKNEW_parser___parser_nodes___TKwis(val_t p0){
 val_t NEW_TKwis_parser___lexer___TKwis___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 206;
+  fra.me.line = 202;
   fra.me.meth = LOCATE_NEW_TKwis_parser___lexer___TKwis___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -29001,7 +28151,7 @@ val_t NEW_TKwis_parser___lexer___TKwis___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:206 */
+  /* parser/lexer.nit:202 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwis();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwis(fra.me.REG[1]);
   parser___lexer___TKwis___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -29009,35 +28159,35 @@ val_t NEW_TKwis_parser___lexer___TKwis___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwis_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwis_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwis_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwis();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwis(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwis(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwis();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwis(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwis(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwdo[73] = {
-  {(bigint) 2655 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwdo[78] = {
+  {(bigint) 3163 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwdo" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwdo < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwdo < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwdo < Token: superclass typecheck marker */},
-  {(bigint) 2655 /* 6: TKwdo < TKwdo: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwdo < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwdo < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwdo < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3163 /* 7: TKwdo < TKwdo: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -29049,7 +28199,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwdo[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwdo < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwdo < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -29065,7 +28215,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwdo[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -29091,19 +28243,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwdo[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwdo < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwdo < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwdo___parser_index},
-  {(bigint) 0 /* 70: TKwdo < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwdo < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwdo < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwdo___init_tk},
-  {(bigint) 3 /* 72: TKwdo < TKwdo: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwdo < TKwdo: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -29155,10 +28309,10 @@ void CHECKNEW_parser___parser_nodes___TKwdo(val_t p0){
 val_t NEW_TKwdo_parser___lexer___TKwdo___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 219;
+  fra.me.line = 215;
   fra.me.meth = LOCATE_NEW_TKwdo_parser___lexer___TKwdo___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -29166,7 +28320,7 @@ val_t NEW_TKwdo_parser___lexer___TKwdo___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:219 */
+  /* parser/lexer.nit:215 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwdo();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwdo(fra.me.REG[1]);
   parser___lexer___TKwdo___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -29174,35 +28328,35 @@ val_t NEW_TKwdo_parser___lexer___TKwdo___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwdo_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwdo_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwdo_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwdo();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwdo(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwdo(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwdo();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwdo(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwdo(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwreadable[73] = {
-  {(bigint) 2539 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwreadable[78] = {
+  {(bigint) 3047 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwreadable" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwreadable < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwreadable < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwreadable < Token: superclass typecheck marker */},
-  {(bigint) 2539 /* 6: TKwreadable < TKwreadable: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwreadable < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwreadable < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwreadable < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3047 /* 7: TKwreadable < TKwreadable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -29214,7 +28368,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwreadable[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwreadable < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwreadable < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -29230,7 +28384,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwreadable[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -29256,19 +28412,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwreadable[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwreadable < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwreadable < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwreadable___parser_index},
-  {(bigint) 0 /* 70: TKwreadable < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwreadable < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwreadable < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwreadable___init_tk},
-  {(bigint) 3 /* 72: TKwreadable < TKwreadable: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwreadable < TKwreadable: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -29320,10 +28478,10 @@ void CHECKNEW_parser___parser_nodes___TKwreadable(val_t p0){
 val_t NEW_TKwreadable_parser___lexer___TKwreadable___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 232;
+  fra.me.line = 228;
   fra.me.meth = LOCATE_NEW_TKwreadable_parser___lexer___TKwreadable___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -29331,7 +28489,7 @@ val_t NEW_TKwreadable_parser___lexer___TKwreadable___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:232 */
+  /* parser/lexer.nit:228 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwreadable();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwreadable(fra.me.REG[1]);
   parser___lexer___TKwreadable___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -29339,35 +28497,35 @@ val_t NEW_TKwreadable_parser___lexer___TKwreadable___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwreadable_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwreadable_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwreadable_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwreadable();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwreadable(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwreadable(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwreadable();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwreadable(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwreadable(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwwritable[73] = {
-  {(bigint) 2495 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwwritable[78] = {
+  {(bigint) 3003 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwwritable" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwwritable < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwwritable < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwwritable < Token: superclass typecheck marker */},
-  {(bigint) 2495 /* 6: TKwwritable < TKwwritable: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwwritable < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwwritable < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwwritable < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3003 /* 7: TKwwritable < TKwwritable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -29379,7 +28537,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwwritable[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwwritable < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwwritable < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -29395,7 +28553,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwwritable[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -29421,19 +28581,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwwritable[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwwritable < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwwritable < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwwritable___parser_index},
-  {(bigint) 0 /* 70: TKwwritable < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwwritable < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwwritable < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwwritable___init_tk},
-  {(bigint) 3 /* 72: TKwwritable < TKwwritable: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwwritable < TKwwritable: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -29485,10 +28647,10 @@ void CHECKNEW_parser___parser_nodes___TKwwritable(val_t p0){
 val_t NEW_TKwwritable_parser___lexer___TKwwritable___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 245;
+  fra.me.line = 241;
   fra.me.meth = LOCATE_NEW_TKwwritable_parser___lexer___TKwwritable___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -29496,7 +28658,7 @@ val_t NEW_TKwwritable_parser___lexer___TKwwritable___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:245 */
+  /* parser/lexer.nit:241 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwwritable();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwwritable(fra.me.REG[1]);
   parser___lexer___TKwwritable___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -29504,35 +28666,35 @@ val_t NEW_TKwwritable_parser___lexer___TKwwritable___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwwritable_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwwritable_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwwritable_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwwritable();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwwritable(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwwritable(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwwritable();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwwritable(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwwritable(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwvar[73] = {
-  {(bigint) 2503 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwvar[78] = {
+  {(bigint) 3011 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwvar" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwvar < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwvar < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwvar < Token: superclass typecheck marker */},
-  {(bigint) 2503 /* 6: TKwvar < TKwvar: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwvar < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwvar < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwvar < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3011 /* 7: TKwvar < TKwvar: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -29544,7 +28706,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwvar[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwvar < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwvar < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -29560,7 +28722,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwvar[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -29586,19 +28750,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwvar[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwvar < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwvar < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwvar___parser_index},
-  {(bigint) 0 /* 70: TKwvar < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwvar < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwvar < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwvar___init_tk},
-  {(bigint) 3 /* 72: TKwvar < TKwvar: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwvar < TKwvar: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -29650,10 +28816,10 @@ void CHECKNEW_parser___parser_nodes___TKwvar(val_t p0){
 val_t NEW_TKwvar_parser___lexer___TKwvar___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 258;
+  fra.me.line = 254;
   fra.me.meth = LOCATE_NEW_TKwvar_parser___lexer___TKwvar___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -29661,7 +28827,7 @@ val_t NEW_TKwvar_parser___lexer___TKwvar___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:258 */
+  /* parser/lexer.nit:254 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwvar();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwvar(fra.me.REG[1]);
   parser___lexer___TKwvar___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -29669,35 +28835,35 @@ val_t NEW_TKwvar_parser___lexer___TKwvar___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwvar_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwvar_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwvar_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwvar();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwvar(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwvar(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwvar();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwvar(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwvar(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwintern[73] = {
-  {(bigint) 2607 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwintern[78] = {
+  {(bigint) 3115 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwintern" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwintern < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwintern < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwintern < Token: superclass typecheck marker */},
-  {(bigint) 2607 /* 6: TKwintern < TKwintern: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwintern < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwintern < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwintern < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3115 /* 7: TKwintern < TKwintern: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -29709,7 +28875,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwintern[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwintern < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwintern < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -29725,7 +28891,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwintern[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -29751,19 +28919,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwintern[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwintern < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwintern < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwintern___parser_index},
-  {(bigint) 0 /* 70: TKwintern < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwintern < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwintern < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwintern___init_tk},
-  {(bigint) 3 /* 72: TKwintern < TKwintern: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwintern < TKwintern: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -29815,10 +28985,10 @@ void CHECKNEW_parser___parser_nodes___TKwintern(val_t p0){
 val_t NEW_TKwintern_parser___lexer___TKwintern___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 271;
+  fra.me.line = 267;
   fra.me.meth = LOCATE_NEW_TKwintern_parser___lexer___TKwintern___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -29826,7 +28996,7 @@ val_t NEW_TKwintern_parser___lexer___TKwintern___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:271 */
+  /* parser/lexer.nit:267 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwintern();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwintern(fra.me.REG[1]);
   parser___lexer___TKwintern___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -29834,35 +29004,35 @@ val_t NEW_TKwintern_parser___lexer___TKwintern___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwintern_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwintern_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwintern_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwintern();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwintern(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwintern(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwintern();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwintern(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwintern(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwextern[73] = {
-  {(bigint) 2639 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwextern[78] = {
+  {(bigint) 3147 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwextern" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwextern < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwextern < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwextern < Token: superclass typecheck marker */},
-  {(bigint) 2639 /* 6: TKwextern < TKwextern: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwextern < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwextern < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwextern < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3147 /* 7: TKwextern < TKwextern: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -29874,7 +29044,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwextern[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwextern < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwextern < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -29890,7 +29060,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwextern[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -29916,19 +29088,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwextern[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwextern < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwextern < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwextern___parser_index},
-  {(bigint) 0 /* 70: TKwextern < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwextern < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwextern < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwextern___init_tk},
-  {(bigint) 3 /* 72: TKwextern < TKwextern: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwextern < TKwextern: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -29980,10 +29154,10 @@ void CHECKNEW_parser___parser_nodes___TKwextern(val_t p0){
 val_t NEW_TKwextern_parser___lexer___TKwextern___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 284;
+  fra.me.line = 280;
   fra.me.meth = LOCATE_NEW_TKwextern_parser___lexer___TKwextern___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -29991,7 +29165,7 @@ val_t NEW_TKwextern_parser___lexer___TKwextern___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:284 */
+  /* parser/lexer.nit:280 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwextern();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwextern(fra.me.REG[1]);
   parser___lexer___TKwextern___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -29999,35 +29173,35 @@ val_t NEW_TKwextern_parser___lexer___TKwextern___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwextern_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwextern_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwextern_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwextern();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwextern(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwextern(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwextern();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwextern(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwextern(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwprotected[73] = {
-  {(bigint) 2543 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwprotected[78] = {
+  {(bigint) 3051 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwprotected" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwprotected < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwprotected < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwprotected < Token: superclass typecheck marker */},
-  {(bigint) 2543 /* 6: TKwprotected < TKwprotected: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwprotected < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwprotected < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwprotected < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3051 /* 7: TKwprotected < TKwprotected: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -30039,7 +29213,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwprotected[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwprotected < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwprotected < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -30055,7 +29229,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwprotected[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -30081,19 +29257,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwprotected[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwprotected < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwprotected < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwprotected___parser_index},
-  {(bigint) 0 /* 70: TKwprotected < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwprotected < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwprotected < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwprotected___init_tk},
-  {(bigint) 3 /* 72: TKwprotected < TKwprotected: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwprotected < TKwprotected: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -30145,10 +29323,10 @@ void CHECKNEW_parser___parser_nodes___TKwprotected(val_t p0){
 val_t NEW_TKwprotected_parser___lexer___TKwprotected___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 297;
+  fra.me.line = 293;
   fra.me.meth = LOCATE_NEW_TKwprotected_parser___lexer___TKwprotected___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -30156,7 +29334,7 @@ val_t NEW_TKwprotected_parser___lexer___TKwprotected___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:297 */
+  /* parser/lexer.nit:293 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwprotected();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwprotected(fra.me.REG[1]);
   parser___lexer___TKwprotected___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -30164,35 +29342,35 @@ val_t NEW_TKwprotected_parser___lexer___TKwprotected___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwprotected_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwprotected_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwprotected_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwprotected();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwprotected(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwprotected(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwprotected();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwprotected(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwprotected(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwprivate[73] = {
-  {(bigint) 2547 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwprivate[78] = {
+  {(bigint) 3055 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwprivate" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwprivate < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwprivate < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwprivate < Token: superclass typecheck marker */},
-  {(bigint) 2547 /* 6: TKwprivate < TKwprivate: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwprivate < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwprivate < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwprivate < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3055 /* 7: TKwprivate < TKwprivate: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -30204,7 +29382,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwprivate[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwprivate < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwprivate < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -30220,7 +29398,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwprivate[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -30246,19 +29426,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwprivate[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwprivate < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwprivate < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwprivate___parser_index},
-  {(bigint) 0 /* 70: TKwprivate < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwprivate < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwprivate < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwprivate___init_tk},
-  {(bigint) 3 /* 72: TKwprivate < TKwprivate: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwprivate < TKwprivate: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -30310,10 +29492,10 @@ void CHECKNEW_parser___parser_nodes___TKwprivate(val_t p0){
 val_t NEW_TKwprivate_parser___lexer___TKwprivate___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 310;
+  fra.me.line = 306;
   fra.me.meth = LOCATE_NEW_TKwprivate_parser___lexer___TKwprivate___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -30321,7 +29503,7 @@ val_t NEW_TKwprivate_parser___lexer___TKwprivate___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:310 */
+  /* parser/lexer.nit:306 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwprivate();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwprivate(fra.me.REG[1]);
   parser___lexer___TKwprivate___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -30329,35 +29511,35 @@ val_t NEW_TKwprivate_parser___lexer___TKwprivate___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwprivate_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwprivate_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwprivate_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwprivate();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwprivate(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwprivate(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwprivate();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwprivate(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwprivate(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwintrude[73] = {
-  {(bigint) 2603 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwintrude[78] = {
+  {(bigint) 3111 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwintrude" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwintrude < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwintrude < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwintrude < Token: superclass typecheck marker */},
-  {(bigint) 2603 /* 6: TKwintrude < TKwintrude: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwintrude < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwintrude < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwintrude < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3111 /* 7: TKwintrude < TKwintrude: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -30369,7 +29551,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwintrude[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwintrude < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwintrude < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -30385,7 +29567,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwintrude[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -30411,19 +29595,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwintrude[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwintrude < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwintrude < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwintrude___parser_index},
-  {(bigint) 0 /* 70: TKwintrude < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwintrude < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwintrude < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwintrude___init_tk},
-  {(bigint) 3 /* 72: TKwintrude < TKwintrude: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwintrude < TKwintrude: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -30475,10 +29661,10 @@ void CHECKNEW_parser___parser_nodes___TKwintrude(val_t p0){
 val_t NEW_TKwintrude_parser___lexer___TKwintrude___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 323;
+  fra.me.line = 319;
   fra.me.meth = LOCATE_NEW_TKwintrude_parser___lexer___TKwintrude___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -30486,7 +29672,7 @@ val_t NEW_TKwintrude_parser___lexer___TKwintrude___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:323 */
+  /* parser/lexer.nit:319 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwintrude();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwintrude(fra.me.REG[1]);
   parser___lexer___TKwintrude___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -30494,35 +29680,35 @@ val_t NEW_TKwintrude_parser___lexer___TKwintrude___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwintrude_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwintrude_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwintrude_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwintrude();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwintrude(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwintrude(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwintrude();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwintrude(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwintrude(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwif[73] = {
-  {(bigint) 2627 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwif[78] = {
+  {(bigint) 3135 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwif" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwif < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwif < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwif < Token: superclass typecheck marker */},
-  {(bigint) 2627 /* 6: TKwif < TKwif: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwif < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwif < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwif < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3135 /* 7: TKwif < TKwif: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -30534,7 +29720,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwif[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwif < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwif < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -30550,7 +29736,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwif[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -30576,19 +29764,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwif[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwif < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwif < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwif___parser_index},
-  {(bigint) 0 /* 70: TKwif < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwif < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwif < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwif___init_tk},
-  {(bigint) 3 /* 72: TKwif < TKwif: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwif < TKwif: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -30640,10 +29830,10 @@ void CHECKNEW_parser___parser_nodes___TKwif(val_t p0){
 val_t NEW_TKwif_parser___lexer___TKwif___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 336;
+  fra.me.line = 332;
   fra.me.meth = LOCATE_NEW_TKwif_parser___lexer___TKwif___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -30651,7 +29841,7 @@ val_t NEW_TKwif_parser___lexer___TKwif___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:336 */
+  /* parser/lexer.nit:332 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwif();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwif(fra.me.REG[1]);
   parser___lexer___TKwif___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -30659,35 +29849,35 @@ val_t NEW_TKwif_parser___lexer___TKwif___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwif_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwif_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwif_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwif();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwif(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwif(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwif();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwif(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwif(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwthen[73] = {
-  {(bigint) 2515 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwthen[78] = {
+  {(bigint) 3023 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwthen" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwthen < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwthen < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwthen < Token: superclass typecheck marker */},
-  {(bigint) 2515 /* 6: TKwthen < TKwthen: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwthen < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwthen < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwthen < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3023 /* 7: TKwthen < TKwthen: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -30699,7 +29889,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwthen[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwthen < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwthen < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -30715,7 +29905,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwthen[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -30741,19 +29933,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwthen[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwthen < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwthen < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwthen___parser_index},
-  {(bigint) 0 /* 70: TKwthen < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwthen < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwthen < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwthen___init_tk},
-  {(bigint) 3 /* 72: TKwthen < TKwthen: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwthen < TKwthen: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -30805,10 +29999,10 @@ void CHECKNEW_parser___parser_nodes___TKwthen(val_t p0){
 val_t NEW_TKwthen_parser___lexer___TKwthen___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 349;
+  fra.me.line = 345;
   fra.me.meth = LOCATE_NEW_TKwthen_parser___lexer___TKwthen___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -30816,7 +30010,7 @@ val_t NEW_TKwthen_parser___lexer___TKwthen___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:349 */
+  /* parser/lexer.nit:345 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwthen();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwthen(fra.me.REG[1]);
   parser___lexer___TKwthen___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -30824,35 +30018,35 @@ val_t NEW_TKwthen_parser___lexer___TKwthen___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwthen_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwthen_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwthen_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwthen();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwthen(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwthen(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwthen();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwthen(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwthen(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwelse[73] = {
-  {(bigint) 2651 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwelse[78] = {
+  {(bigint) 3159 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwelse" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwelse < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwelse < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwelse < Token: superclass typecheck marker */},
-  {(bigint) 2651 /* 6: TKwelse < TKwelse: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwelse < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwelse < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwelse < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3159 /* 7: TKwelse < TKwelse: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -30864,7 +30058,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwelse[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwelse < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwelse < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -30880,7 +30074,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwelse[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -30906,19 +30102,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwelse[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwelse < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwelse < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwelse___parser_index},
-  {(bigint) 0 /* 70: TKwelse < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwelse < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwelse < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwelse___init_tk},
-  {(bigint) 3 /* 72: TKwelse < TKwelse: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwelse < TKwelse: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -30970,10 +30168,10 @@ void CHECKNEW_parser___parser_nodes___TKwelse(val_t p0){
 val_t NEW_TKwelse_parser___lexer___TKwelse___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 362;
+  fra.me.line = 358;
   fra.me.meth = LOCATE_NEW_TKwelse_parser___lexer___TKwelse___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -30981,7 +30179,7 @@ val_t NEW_TKwelse_parser___lexer___TKwelse___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:362 */
+  /* parser/lexer.nit:358 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwelse();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwelse(fra.me.REG[1]);
   parser___lexer___TKwelse___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -30989,35 +30187,35 @@ val_t NEW_TKwelse_parser___lexer___TKwelse___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwelse_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwelse_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwelse_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwelse();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwelse(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwelse(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwelse();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwelse(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwelse(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwwhile[73] = {
-  {(bigint) 2499 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwwhile[78] = {
+  {(bigint) 3007 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwwhile" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwwhile < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwwhile < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwwhile < Token: superclass typecheck marker */},
-  {(bigint) 2499 /* 6: TKwwhile < TKwwhile: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwwhile < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwwhile < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwwhile < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3007 /* 7: TKwwhile < TKwwhile: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -31029,7 +30227,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwwhile[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwwhile < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwwhile < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -31045,7 +30243,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwwhile[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -31071,19 +30271,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwwhile[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwwhile < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwwhile < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwwhile___parser_index},
-  {(bigint) 0 /* 70: TKwwhile < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwwhile < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwwhile < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwwhile___init_tk},
-  {(bigint) 3 /* 72: TKwwhile < TKwwhile: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwwhile < TKwwhile: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -31135,10 +30337,10 @@ void CHECKNEW_parser___parser_nodes___TKwwhile(val_t p0){
 val_t NEW_TKwwhile_parser___lexer___TKwwhile___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 375;
+  fra.me.line = 371;
   fra.me.meth = LOCATE_NEW_TKwwhile_parser___lexer___TKwwhile___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -31146,7 +30348,7 @@ val_t NEW_TKwwhile_parser___lexer___TKwwhile___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:375 */
+  /* parser/lexer.nit:371 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwwhile();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwwhile(fra.me.REG[1]);
   parser___lexer___TKwwhile___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -31154,35 +30356,35 @@ val_t NEW_TKwwhile_parser___lexer___TKwwhile___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwwhile_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwwhile_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwwhile_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwwhile();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwwhile(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwwhile(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwwhile();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwwhile(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwwhile(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwloop[73] = {
-  {(bigint) 2583 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwloop[78] = {
+  {(bigint) 3091 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwloop" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwloop < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwloop < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwloop < Token: superclass typecheck marker */},
-  {(bigint) 2583 /* 6: TKwloop < TKwloop: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwloop < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwloop < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwloop < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3091 /* 7: TKwloop < TKwloop: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -31194,7 +30396,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwloop[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwloop < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwloop < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -31210,7 +30412,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwloop[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -31236,19 +30440,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwloop[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwloop < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwloop < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwloop___parser_index},
-  {(bigint) 0 /* 70: TKwloop < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwloop < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwloop < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwloop___init_tk},
-  {(bigint) 3 /* 72: TKwloop < TKwloop: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwloop < TKwloop: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -31300,10 +30506,10 @@ void CHECKNEW_parser___parser_nodes___TKwloop(val_t p0){
 val_t NEW_TKwloop_parser___lexer___TKwloop___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 388;
+  fra.me.line = 384;
   fra.me.meth = LOCATE_NEW_TKwloop_parser___lexer___TKwloop___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -31311,7 +30517,7 @@ val_t NEW_TKwloop_parser___lexer___TKwloop___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:388 */
+  /* parser/lexer.nit:384 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwloop();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwloop(fra.me.REG[1]);
   parser___lexer___TKwloop___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -31319,35 +30525,35 @@ val_t NEW_TKwloop_parser___lexer___TKwloop___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwloop_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwloop_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwloop_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwloop();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwloop(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwloop(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwloop();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwloop(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwloop(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwfor[73] = {
-  {(bigint) 2631 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwfor[78] = {
+  {(bigint) 3139 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwfor" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwfor < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwfor < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwfor < Token: superclass typecheck marker */},
-  {(bigint) 2631 /* 6: TKwfor < TKwfor: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwfor < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwfor < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwfor < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3139 /* 7: TKwfor < TKwfor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -31359,7 +30565,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwfor[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwfor < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwfor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -31375,7 +30581,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwfor[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -31401,19 +30609,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwfor[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwfor < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwfor < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwfor___parser_index},
-  {(bigint) 0 /* 70: TKwfor < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwfor < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwfor < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwfor___init_tk},
-  {(bigint) 3 /* 72: TKwfor < TKwfor: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwfor < TKwfor: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -31465,10 +30675,10 @@ void CHECKNEW_parser___parser_nodes___TKwfor(val_t p0){
 val_t NEW_TKwfor_parser___lexer___TKwfor___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 401;
+  fra.me.line = 397;
   fra.me.meth = LOCATE_NEW_TKwfor_parser___lexer___TKwfor___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -31476,7 +30686,7 @@ val_t NEW_TKwfor_parser___lexer___TKwfor___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:401 */
+  /* parser/lexer.nit:397 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwfor();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwfor(fra.me.REG[1]);
   parser___lexer___TKwfor___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -31484,35 +30694,35 @@ val_t NEW_TKwfor_parser___lexer___TKwfor___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwfor_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwfor_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwfor_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwfor();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwfor(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwfor(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwfor();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwfor(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwfor(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwin[73] = {
-  {(bigint) 2619 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwin[78] = {
+  {(bigint) 3127 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwin" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwin < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwin < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwin < Token: superclass typecheck marker */},
-  {(bigint) 2619 /* 6: TKwin < TKwin: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwin < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwin < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwin < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3127 /* 7: TKwin < TKwin: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -31524,7 +30734,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwin[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwin < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwin < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -31540,7 +30750,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwin[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -31566,19 +30778,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwin[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwin < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwin < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwin___parser_index},
-  {(bigint) 0 /* 70: TKwin < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwin < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwin < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwin___init_tk},
-  {(bigint) 3 /* 72: TKwin < TKwin: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwin < TKwin: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -31630,10 +30844,10 @@ void CHECKNEW_parser___parser_nodes___TKwin(val_t p0){
 val_t NEW_TKwin_parser___lexer___TKwin___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 414;
+  fra.me.line = 410;
   fra.me.meth = LOCATE_NEW_TKwin_parser___lexer___TKwin___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -31641,7 +30855,7 @@ val_t NEW_TKwin_parser___lexer___TKwin___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:414 */
+  /* parser/lexer.nit:410 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwin();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwin(fra.me.REG[1]);
   parser___lexer___TKwin___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -31649,35 +30863,35 @@ val_t NEW_TKwin_parser___lexer___TKwin___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwin_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwin_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwin_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwin();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwin(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwin(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwin();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwin(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwin(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwand[73] = {
-  {(bigint) 2679 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwand[78] = {
+  {(bigint) 3187 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwand" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwand < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwand < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwand < Token: superclass typecheck marker */},
-  {(bigint) 2679 /* 6: TKwand < TKwand: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwand < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwand < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwand < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3187 /* 7: TKwand < TKwand: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -31689,7 +30903,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwand[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwand < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwand < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -31705,7 +30919,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwand[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -31731,19 +30947,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwand[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwand < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwand < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwand___parser_index},
-  {(bigint) 0 /* 70: TKwand < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwand < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwand < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwand___init_tk},
-  {(bigint) 3 /* 72: TKwand < TKwand: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwand < TKwand: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -31795,10 +31013,10 @@ void CHECKNEW_parser___parser_nodes___TKwand(val_t p0){
 val_t NEW_TKwand_parser___lexer___TKwand___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 427;
+  fra.me.line = 423;
   fra.me.meth = LOCATE_NEW_TKwand_parser___lexer___TKwand___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -31806,7 +31024,7 @@ val_t NEW_TKwand_parser___lexer___TKwand___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:427 */
+  /* parser/lexer.nit:423 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwand();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwand(fra.me.REG[1]);
   parser___lexer___TKwand___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -31814,35 +31032,35 @@ val_t NEW_TKwand_parser___lexer___TKwand___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwand_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwand_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwand_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwand();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwand(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwand(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwand();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwand(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwand(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwor[73] = {
-  {(bigint) 2551 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwor[78] = {
+  {(bigint) 3059 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwor" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwor < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwor < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwor < Token: superclass typecheck marker */},
-  {(bigint) 2551 /* 6: TKwor < TKwor: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwor < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwor < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwor < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3059 /* 7: TKwor < TKwor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -31854,7 +31072,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwor[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwor < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -31870,7 +31088,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwor[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -31896,19 +31116,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwor[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwor < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwor < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwor___parser_index},
-  {(bigint) 0 /* 70: TKwor < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwor < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwor < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwor___init_tk},
-  {(bigint) 3 /* 72: TKwor < TKwor: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwor < TKwor: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -31960,10 +31182,10 @@ void CHECKNEW_parser___parser_nodes___TKwor(val_t p0){
 val_t NEW_TKwor_parser___lexer___TKwor___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 440;
+  fra.me.line = 436;
   fra.me.meth = LOCATE_NEW_TKwor_parser___lexer___TKwor___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -31971,7 +31193,7 @@ val_t NEW_TKwor_parser___lexer___TKwor___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:440 */
+  /* parser/lexer.nit:436 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwor();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwor(fra.me.REG[1]);
   parser___lexer___TKwor___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -31979,35 +31201,35 @@ val_t NEW_TKwor_parser___lexer___TKwor___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwor_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwor_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwor_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwor();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwor(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwor(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwor();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwor(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwor(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwnot[73] = {
-  {(bigint) 2567 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwnot[78] = {
+  {(bigint) 3075 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwnot" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwnot < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwnot < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwnot < Token: superclass typecheck marker */},
-  {(bigint) 2567 /* 6: TKwnot < TKwnot: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwnot < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwnot < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwnot < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3075 /* 7: TKwnot < TKwnot: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32019,7 +31241,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwnot[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwnot < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwnot < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -32035,7 +31257,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwnot[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -32061,19 +31285,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwnot[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwnot < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwnot < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwnot___parser_index},
-  {(bigint) 0 /* 70: TKwnot < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwnot < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwnot < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwnot___init_tk},
-  {(bigint) 3 /* 72: TKwnot < TKwnot: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwnot < TKwnot: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -32125,10 +31351,10 @@ void CHECKNEW_parser___parser_nodes___TKwnot(val_t p0){
 val_t NEW_TKwnot_parser___lexer___TKwnot___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 453;
+  fra.me.line = 449;
   fra.me.meth = LOCATE_NEW_TKwnot_parser___lexer___TKwnot___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -32136,7 +31362,7 @@ val_t NEW_TKwnot_parser___lexer___TKwnot___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:453 */
+  /* parser/lexer.nit:449 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwnot();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwnot(fra.me.REG[1]);
   parser___lexer___TKwnot___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -32144,35 +31370,35 @@ val_t NEW_TKwnot_parser___lexer___TKwnot___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwnot_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwnot_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwnot_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwnot();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwnot(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwnot(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwnot();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwnot(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwnot(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwreturn[73] = {
-  {(bigint) 2531 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwreturn[78] = {
+  {(bigint) 3039 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwreturn" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwreturn < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwreturn < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwreturn < Token: superclass typecheck marker */},
-  {(bigint) 2531 /* 6: TKwreturn < TKwreturn: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwreturn < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwreturn < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwreturn < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3039 /* 7: TKwreturn < TKwreturn: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32184,7 +31410,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwreturn[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwreturn < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwreturn < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -32200,7 +31426,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwreturn[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -32226,19 +31454,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwreturn[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwreturn < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwreturn < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwreturn___parser_index},
-  {(bigint) 0 /* 70: TKwreturn < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwreturn < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwreturn < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwreturn___init_tk},
-  {(bigint) 3 /* 72: TKwreturn < TKwreturn: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwreturn < TKwreturn: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -32290,10 +31520,10 @@ void CHECKNEW_parser___parser_nodes___TKwreturn(val_t p0){
 val_t NEW_TKwreturn_parser___lexer___TKwreturn___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 466;
+  fra.me.line = 462;
   fra.me.meth = LOCATE_NEW_TKwreturn_parser___lexer___TKwreturn___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -32301,7 +31531,7 @@ val_t NEW_TKwreturn_parser___lexer___TKwreturn___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:466 */
+  /* parser/lexer.nit:462 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwreturn();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwreturn(fra.me.REG[1]);
   parser___lexer___TKwreturn___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -32309,35 +31539,35 @@ val_t NEW_TKwreturn_parser___lexer___TKwreturn___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwreturn_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwreturn_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwreturn_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwreturn();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwreturn(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwreturn(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwreturn();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwreturn(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwreturn(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwcontinue[73] = {
-  {(bigint) 2659 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwcontinue[78] = {
+  {(bigint) 3167 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwcontinue" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwcontinue < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwcontinue < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwcontinue < Token: superclass typecheck marker */},
-  {(bigint) 2659 /* 6: TKwcontinue < TKwcontinue: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwcontinue < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwcontinue < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwcontinue < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3167 /* 7: TKwcontinue < TKwcontinue: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32349,7 +31579,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwcontinue[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwcontinue < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwcontinue < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -32365,7 +31595,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwcontinue[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -32391,19 +31623,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwcontinue[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwcontinue < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwcontinue < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwcontinue___parser_index},
-  {(bigint) 0 /* 70: TKwcontinue < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwcontinue < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwcontinue < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwcontinue___init_tk},
-  {(bigint) 3 /* 72: TKwcontinue < TKwcontinue: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwcontinue < TKwcontinue: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -32455,10 +31689,10 @@ void CHECKNEW_parser___parser_nodes___TKwcontinue(val_t p0){
 val_t NEW_TKwcontinue_parser___lexer___TKwcontinue___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 479;
+  fra.me.line = 475;
   fra.me.meth = LOCATE_NEW_TKwcontinue_parser___lexer___TKwcontinue___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -32466,7 +31700,7 @@ val_t NEW_TKwcontinue_parser___lexer___TKwcontinue___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:479 */
+  /* parser/lexer.nit:475 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwcontinue();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwcontinue(fra.me.REG[1]);
   parser___lexer___TKwcontinue___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -32474,35 +31708,35 @@ val_t NEW_TKwcontinue_parser___lexer___TKwcontinue___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwcontinue_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwcontinue_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwcontinue_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwcontinue();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwcontinue(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwcontinue(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwcontinue();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwcontinue(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwcontinue(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwbreak[73] = {
-  {(bigint) 2667 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwbreak[78] = {
+  {(bigint) 3175 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwbreak" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwbreak < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwbreak < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwbreak < Token: superclass typecheck marker */},
-  {(bigint) 2667 /* 6: TKwbreak < TKwbreak: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwbreak < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwbreak < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwbreak < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3175 /* 7: TKwbreak < TKwbreak: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32514,7 +31748,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwbreak[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwbreak < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwbreak < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -32530,7 +31764,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwbreak[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -32556,19 +31792,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwbreak[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwbreak < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwbreak < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwbreak___parser_index},
-  {(bigint) 0 /* 70: TKwbreak < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwbreak < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwbreak < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwbreak___init_tk},
-  {(bigint) 3 /* 72: TKwbreak < TKwbreak: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwbreak < TKwbreak: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -32620,10 +31858,10 @@ void CHECKNEW_parser___parser_nodes___TKwbreak(val_t p0){
 val_t NEW_TKwbreak_parser___lexer___TKwbreak___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 492;
+  fra.me.line = 488;
   fra.me.meth = LOCATE_NEW_TKwbreak_parser___lexer___TKwbreak___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -32631,7 +31869,7 @@ val_t NEW_TKwbreak_parser___lexer___TKwbreak___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:492 */
+  /* parser/lexer.nit:488 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwbreak();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwbreak(fra.me.REG[1]);
   parser___lexer___TKwbreak___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -32639,35 +31877,35 @@ val_t NEW_TKwbreak_parser___lexer___TKwbreak___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwbreak_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwbreak_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwbreak_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwbreak();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwbreak(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwbreak(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwbreak();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwbreak(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwbreak(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwabort[73] = {
-  {(bigint) 2687 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwabort[78] = {
+  {(bigint) 3195 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwabort" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwabort < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwabort < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwabort < Token: superclass typecheck marker */},
-  {(bigint) 2687 /* 6: TKwabort < TKwabort: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwabort < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwabort < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwabort < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3195 /* 7: TKwabort < TKwabort: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32679,7 +31917,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwabort[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwabort < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwabort < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -32695,7 +31933,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwabort[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -32721,19 +31961,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwabort[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwabort < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwabort < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwabort___parser_index},
-  {(bigint) 0 /* 70: TKwabort < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwabort < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwabort < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwabort___init_tk},
-  {(bigint) 3 /* 72: TKwabort < TKwabort: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwabort < TKwabort: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -32785,10 +32027,10 @@ void CHECKNEW_parser___parser_nodes___TKwabort(val_t p0){
 val_t NEW_TKwabort_parser___lexer___TKwabort___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 505;
+  fra.me.line = 501;
   fra.me.meth = LOCATE_NEW_TKwabort_parser___lexer___TKwabort___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -32796,7 +32038,7 @@ val_t NEW_TKwabort_parser___lexer___TKwabort___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:505 */
+  /* parser/lexer.nit:501 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwabort();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwabort(fra.me.REG[1]);
   parser___lexer___TKwabort___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -32804,35 +32046,35 @@ val_t NEW_TKwabort_parser___lexer___TKwabort___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwabort_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwabort_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwabort_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwabort();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwabort(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwabort(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwabort();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwabort(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwabort(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwassert[73] = {
-  {(bigint) 2671 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwassert[78] = {
+  {(bigint) 3179 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwassert" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwassert < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwassert < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwassert < Token: superclass typecheck marker */},
-  {(bigint) 2671 /* 6: TKwassert < TKwassert: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwassert < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwassert < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwassert < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3179 /* 7: TKwassert < TKwassert: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32844,7 +32086,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwassert[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwassert < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwassert < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -32860,7 +32102,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwassert[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -32886,19 +32130,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwassert[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwassert < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwassert < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwassert___parser_index},
-  {(bigint) 0 /* 70: TKwassert < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwassert < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwassert < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwassert___init_tk},
-  {(bigint) 3 /* 72: TKwassert < TKwassert: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwassert < TKwassert: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -32950,10 +32196,10 @@ void CHECKNEW_parser___parser_nodes___TKwassert(val_t p0){
 val_t NEW_TKwassert_parser___lexer___TKwassert___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 518;
+  fra.me.line = 514;
   fra.me.meth = LOCATE_NEW_TKwassert_parser___lexer___TKwassert___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -32961,7 +32207,7 @@ val_t NEW_TKwassert_parser___lexer___TKwassert___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:518 */
+  /* parser/lexer.nit:514 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwassert();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwassert(fra.me.REG[1]);
   parser___lexer___TKwassert___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -32969,35 +32215,35 @@ val_t NEW_TKwassert_parser___lexer___TKwassert___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwassert_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwassert_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwassert_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwassert();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwassert(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwassert(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwassert();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwassert(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwassert(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwnew[73] = {
-  {(bigint) 2571 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwnew[78] = {
+  {(bigint) 3079 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwnew" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwnew < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwnew < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwnew < Token: superclass typecheck marker */},
-  {(bigint) 2571 /* 6: TKwnew < TKwnew: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwnew < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwnew < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwnew < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3079 /* 7: TKwnew < TKwnew: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -33009,7 +32255,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwnew[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwnew < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwnew < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -33025,7 +32271,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwnew[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -33051,19 +32299,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwnew[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwnew < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwnew < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwnew___parser_index},
-  {(bigint) 0 /* 70: TKwnew < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwnew < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwnew < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwnew___init_tk},
-  {(bigint) 3 /* 72: TKwnew < TKwnew: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwnew < TKwnew: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -33115,10 +32365,10 @@ void CHECKNEW_parser___parser_nodes___TKwnew(val_t p0){
 val_t NEW_TKwnew_parser___lexer___TKwnew___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 531;
+  fra.me.line = 527;
   fra.me.meth = LOCATE_NEW_TKwnew_parser___lexer___TKwnew___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -33126,7 +32376,7 @@ val_t NEW_TKwnew_parser___lexer___TKwnew___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:531 */
+  /* parser/lexer.nit:527 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwnew();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwnew(fra.me.REG[1]);
   parser___lexer___TKwnew___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -33134,35 +32384,35 @@ val_t NEW_TKwnew_parser___lexer___TKwnew___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwnew_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwnew_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwnew_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwnew();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwnew(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwnew(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwnew();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwnew(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwnew(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwisa[73] = {
-  {(bigint) 2595 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwisa[78] = {
+  {(bigint) 3103 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwisa" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwisa < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwisa < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwisa < Token: superclass typecheck marker */},
-  {(bigint) 2595 /* 6: TKwisa < TKwisa: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwisa < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwisa < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwisa < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3103 /* 7: TKwisa < TKwisa: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -33174,7 +32424,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwisa[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwisa < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwisa < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -33190,7 +32440,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwisa[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -33216,19 +32468,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwisa[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwisa < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwisa < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwisa___parser_index},
-  {(bigint) 0 /* 70: TKwisa < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwisa < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwisa < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwisa___init_tk},
-  {(bigint) 3 /* 72: TKwisa < TKwisa: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwisa < TKwisa: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -33280,10 +32534,10 @@ void CHECKNEW_parser___parser_nodes___TKwisa(val_t p0){
 val_t NEW_TKwisa_parser___lexer___TKwisa___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 544;
+  fra.me.line = 540;
   fra.me.meth = LOCATE_NEW_TKwisa_parser___lexer___TKwisa___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -33291,7 +32545,7 @@ val_t NEW_TKwisa_parser___lexer___TKwisa___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:544 */
+  /* parser/lexer.nit:540 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwisa();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwisa(fra.me.REG[1]);
   parser___lexer___TKwisa___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -33299,35 +32553,35 @@ val_t NEW_TKwisa_parser___lexer___TKwisa___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwisa_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwisa_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwisa_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwisa();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwisa(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwisa(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwisa();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwisa(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwisa(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwonce[73] = {
-  {(bigint) 2555 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwonce[78] = {
+  {(bigint) 3063 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwonce" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwonce < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwonce < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwonce < Token: superclass typecheck marker */},
-  {(bigint) 2555 /* 6: TKwonce < TKwonce: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwonce < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwonce < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwonce < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3063 /* 7: TKwonce < TKwonce: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -33339,7 +32593,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwonce[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwonce < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwonce < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -33355,7 +32609,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwonce[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -33381,19 +32637,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwonce[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwonce < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwonce < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwonce___parser_index},
-  {(bigint) 0 /* 70: TKwonce < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwonce < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwonce < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwonce___init_tk},
-  {(bigint) 3 /* 72: TKwonce < TKwonce: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwonce < TKwonce: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -33445,10 +32703,10 @@ void CHECKNEW_parser___parser_nodes___TKwonce(val_t p0){
 val_t NEW_TKwonce_parser___lexer___TKwonce___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 557;
+  fra.me.line = 553;
   fra.me.meth = LOCATE_NEW_TKwonce_parser___lexer___TKwonce___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -33456,7 +32714,7 @@ val_t NEW_TKwonce_parser___lexer___TKwonce___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:557 */
+  /* parser/lexer.nit:553 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwonce();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwonce(fra.me.REG[1]);
   parser___lexer___TKwonce___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -33464,35 +32722,35 @@ val_t NEW_TKwonce_parser___lexer___TKwonce___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwonce_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwonce_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwonce_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwonce();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwonce(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwonce(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwonce();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwonce(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwonce(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwsuper[73] = {
-  {(bigint) 2519 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwsuper[78] = {
+  {(bigint) 3027 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwsuper" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwsuper < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwsuper < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwsuper < Token: superclass typecheck marker */},
-  {(bigint) 2519 /* 6: TKwsuper < TKwsuper: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwsuper < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwsuper < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwsuper < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3027 /* 7: TKwsuper < TKwsuper: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -33504,7 +32762,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwsuper[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwsuper < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwsuper < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -33520,7 +32778,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwsuper[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -33546,19 +32806,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwsuper[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwsuper < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwsuper < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwsuper___parser_index},
-  {(bigint) 0 /* 70: TKwsuper < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwsuper < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwsuper < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwsuper___init_tk},
-  {(bigint) 3 /* 72: TKwsuper < TKwsuper: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwsuper < TKwsuper: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -33610,10 +32872,10 @@ void CHECKNEW_parser___parser_nodes___TKwsuper(val_t p0){
 val_t NEW_TKwsuper_parser___lexer___TKwsuper___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 570;
+  fra.me.line = 566;
   fra.me.meth = LOCATE_NEW_TKwsuper_parser___lexer___TKwsuper___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -33621,7 +32883,7 @@ val_t NEW_TKwsuper_parser___lexer___TKwsuper___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:570 */
+  /* parser/lexer.nit:566 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwsuper();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwsuper(fra.me.REG[1]);
   parser___lexer___TKwsuper___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -33629,35 +32891,35 @@ val_t NEW_TKwsuper_parser___lexer___TKwsuper___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwsuper_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwsuper_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwsuper_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwsuper();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwsuper(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwsuper(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwsuper();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwsuper(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwsuper(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwself[73] = {
-  {(bigint) 2527 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwself[78] = {
+  {(bigint) 3035 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwself" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwself < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwself < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwself < Token: superclass typecheck marker */},
-  {(bigint) 2527 /* 6: TKwself < TKwself: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwself < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwself < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwself < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3035 /* 7: TKwself < TKwself: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -33669,7 +32931,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwself[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwself < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwself < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -33685,7 +32947,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwself[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -33711,19 +32975,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwself[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwself < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwself < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwself___parser_index},
-  {(bigint) 0 /* 70: TKwself < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwself < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwself < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwself___init_tk},
-  {(bigint) 3 /* 72: TKwself < TKwself: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwself < TKwself: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -33775,10 +33041,10 @@ void CHECKNEW_parser___parser_nodes___TKwself(val_t p0){
 val_t NEW_TKwself_parser___lexer___TKwself___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 583;
+  fra.me.line = 579;
   fra.me.meth = LOCATE_NEW_TKwself_parser___lexer___TKwself___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -33786,7 +33052,7 @@ val_t NEW_TKwself_parser___lexer___TKwself___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:583 */
+  /* parser/lexer.nit:579 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwself();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwself(fra.me.REG[1]);
   parser___lexer___TKwself___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -33794,35 +33060,35 @@ val_t NEW_TKwself_parser___lexer___TKwself___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwself_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwself_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwself_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwself();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwself(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwself(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwself();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwself(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwself(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwtrue[73] = {
-  {(bigint) 2511 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwtrue[78] = {
+  {(bigint) 3019 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwtrue" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwtrue < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwtrue < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwtrue < Token: superclass typecheck marker */},
-  {(bigint) 2511 /* 6: TKwtrue < TKwtrue: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwtrue < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwtrue < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwtrue < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3019 /* 7: TKwtrue < TKwtrue: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -33834,7 +33100,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwtrue[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwtrue < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwtrue < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -33850,7 +33116,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwtrue[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -33876,19 +33144,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwtrue[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwtrue < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwtrue < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwtrue___parser_index},
-  {(bigint) 0 /* 70: TKwtrue < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwtrue < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwtrue < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwtrue___init_tk},
-  {(bigint) 3 /* 72: TKwtrue < TKwtrue: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwtrue < TKwtrue: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -33940,10 +33210,10 @@ void CHECKNEW_parser___parser_nodes___TKwtrue(val_t p0){
 val_t NEW_TKwtrue_parser___lexer___TKwtrue___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 596;
+  fra.me.line = 592;
   fra.me.meth = LOCATE_NEW_TKwtrue_parser___lexer___TKwtrue___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -33951,7 +33221,7 @@ val_t NEW_TKwtrue_parser___lexer___TKwtrue___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:596 */
+  /* parser/lexer.nit:592 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwtrue();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwtrue(fra.me.REG[1]);
   parser___lexer___TKwtrue___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -33959,35 +33229,35 @@ val_t NEW_TKwtrue_parser___lexer___TKwtrue___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwtrue_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwtrue_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwtrue_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwtrue();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwtrue(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwtrue(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwtrue();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwtrue(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwtrue(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwfalse[73] = {
-  {(bigint) 2635 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwfalse[78] = {
+  {(bigint) 3143 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwfalse" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwfalse < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwfalse < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwfalse < Token: superclass typecheck marker */},
-  {(bigint) 2635 /* 6: TKwfalse < TKwfalse: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwfalse < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwfalse < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwfalse < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3143 /* 7: TKwfalse < TKwfalse: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -33999,7 +33269,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwfalse[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwfalse < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwfalse < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -34015,7 +33285,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwfalse[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -34041,19 +33313,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwfalse[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwfalse < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwfalse < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwfalse___parser_index},
-  {(bigint) 0 /* 70: TKwfalse < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwfalse < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwfalse < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwfalse___init_tk},
-  {(bigint) 3 /* 72: TKwfalse < TKwfalse: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwfalse < TKwfalse: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -34105,10 +33379,10 @@ void CHECKNEW_parser___parser_nodes___TKwfalse(val_t p0){
 val_t NEW_TKwfalse_parser___lexer___TKwfalse___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 609;
+  fra.me.line = 605;
   fra.me.meth = LOCATE_NEW_TKwfalse_parser___lexer___TKwfalse___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -34116,7 +33390,7 @@ val_t NEW_TKwfalse_parser___lexer___TKwfalse___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:609 */
+  /* parser/lexer.nit:605 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwfalse();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwfalse(fra.me.REG[1]);
   parser___lexer___TKwfalse___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -34124,35 +33398,35 @@ val_t NEW_TKwfalse_parser___lexer___TKwfalse___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwfalse_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwfalse_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwfalse_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwfalse();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwfalse(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwfalse(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwfalse();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwfalse(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwfalse(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwnull[73] = {
-  {(bigint) 2563 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwnull[78] = {
+  {(bigint) 3071 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwnull" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwnull < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwnull < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwnull < Token: superclass typecheck marker */},
-  {(bigint) 2563 /* 6: TKwnull < TKwnull: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwnull < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwnull < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwnull < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3071 /* 7: TKwnull < TKwnull: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -34164,7 +33438,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwnull[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwnull < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwnull < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -34180,7 +33454,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwnull[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -34206,19 +33482,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwnull[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwnull < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwnull < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwnull___parser_index},
-  {(bigint) 0 /* 70: TKwnull < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwnull < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwnull < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwnull___init_tk},
-  {(bigint) 3 /* 72: TKwnull < TKwnull: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwnull < TKwnull: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -34270,10 +33548,10 @@ void CHECKNEW_parser___parser_nodes___TKwnull(val_t p0){
 val_t NEW_TKwnull_parser___lexer___TKwnull___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 622;
+  fra.me.line = 618;
   fra.me.meth = LOCATE_NEW_TKwnull_parser___lexer___TKwnull___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -34281,7 +33559,7 @@ val_t NEW_TKwnull_parser___lexer___TKwnull___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:622 */
+  /* parser/lexer.nit:618 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwnull();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwnull(fra.me.REG[1]);
   parser___lexer___TKwnull___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -34289,35 +33567,35 @@ val_t NEW_TKwnull_parser___lexer___TKwnull___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwnull_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwnull_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwnull_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwnull();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwnull(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwnull(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwnull();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwnull(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwnull(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwas[73] = {
-  {(bigint) 2675 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwas[78] = {
+  {(bigint) 3183 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwas" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwas < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwas < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwas < Token: superclass typecheck marker */},
-  {(bigint) 2675 /* 6: TKwas < TKwas: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwas < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwas < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwas < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3183 /* 7: TKwas < TKwas: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -34329,7 +33607,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwas[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwas < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwas < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -34345,7 +33623,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwas[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -34371,19 +33651,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwas[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwas < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwas < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwas___parser_index},
-  {(bigint) 0 /* 70: TKwas < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwas < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwas < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwas___init_tk},
-  {(bigint) 3 /* 72: TKwas < TKwas: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwas < TKwas: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -34435,10 +33717,10 @@ void CHECKNEW_parser___parser_nodes___TKwas(val_t p0){
 val_t NEW_TKwas_parser___lexer___TKwas___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 635;
+  fra.me.line = 631;
   fra.me.meth = LOCATE_NEW_TKwas_parser___lexer___TKwas___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -34446,7 +33728,7 @@ val_t NEW_TKwas_parser___lexer___TKwas___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:635 */
+  /* parser/lexer.nit:631 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwas();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwas(fra.me.REG[1]);
   parser___lexer___TKwas___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -34454,35 +33736,35 @@ val_t NEW_TKwas_parser___lexer___TKwas___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwas_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwas_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwas_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwas();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwas(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwas(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwas();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwas(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwas(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwnullable[73] = {
-  {(bigint) 2559 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwnullable[78] = {
+  {(bigint) 3067 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwnullable" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwnullable < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwnullable < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwnullable < Token: superclass typecheck marker */},
-  {(bigint) 2559 /* 6: TKwnullable < TKwnullable: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwnullable < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwnullable < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwnullable < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3067 /* 7: TKwnullable < TKwnullable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -34494,7 +33776,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwnullable[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwnullable < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwnullable < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -34510,7 +33792,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwnullable[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -34536,19 +33820,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwnullable[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwnullable < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwnullable < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwnullable___parser_index},
-  {(bigint) 0 /* 70: TKwnullable < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwnullable < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwnullable < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwnullable___init_tk},
-  {(bigint) 3 /* 72: TKwnullable < TKwnullable: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwnullable < TKwnullable: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -34600,10 +33886,10 @@ void CHECKNEW_parser___parser_nodes___TKwnullable(val_t p0){
 val_t NEW_TKwnullable_parser___lexer___TKwnullable___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 648;
+  fra.me.line = 644;
   fra.me.meth = LOCATE_NEW_TKwnullable_parser___lexer___TKwnullable___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -34611,7 +33897,7 @@ val_t NEW_TKwnullable_parser___lexer___TKwnullable___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:648 */
+  /* parser/lexer.nit:644 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwnullable();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwnullable(fra.me.REG[1]);
   parser___lexer___TKwnullable___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -34619,35 +33905,35 @@ val_t NEW_TKwnullable_parser___lexer___TKwnullable___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwnullable_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwnullable_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwnullable_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwnullable();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwnullable(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwnullable(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwnullable();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwnullable(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwnullable(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwisset[73] = {
-  {(bigint) 2591 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwisset[78] = {
+  {(bigint) 3099 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwisset" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwisset < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwisset < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwisset < Token: superclass typecheck marker */},
-  {(bigint) 2591 /* 6: TKwisset < TKwisset: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwisset < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwisset < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwisset < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3099 /* 7: TKwisset < TKwisset: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -34659,7 +33945,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwisset[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwisset < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwisset < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -34675,7 +33961,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwisset[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -34701,19 +33989,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwisset[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwisset < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwisset < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwisset___parser_index},
-  {(bigint) 0 /* 70: TKwisset < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwisset < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwisset < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwisset___init_tk},
-  {(bigint) 3 /* 72: TKwisset < TKwisset: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwisset < TKwisset: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -34765,10 +34055,10 @@ void CHECKNEW_parser___parser_nodes___TKwisset(val_t p0){
 val_t NEW_TKwisset_parser___lexer___TKwisset___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 661;
+  fra.me.line = 657;
   fra.me.meth = LOCATE_NEW_TKwisset_parser___lexer___TKwisset___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -34776,7 +34066,7 @@ val_t NEW_TKwisset_parser___lexer___TKwisset___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:661 */
+  /* parser/lexer.nit:657 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwisset();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwisset(fra.me.REG[1]);
   parser___lexer___TKwisset___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -34784,35 +34074,35 @@ val_t NEW_TKwisset_parser___lexer___TKwisset___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwisset_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TKwisset_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TKwisset_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwisset();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwisset(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwisset(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwisset();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwisset(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwisset(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TKwlabel[73] = {
-  {(bigint) 2587 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TKwlabel[78] = {
+  {(bigint) 3095 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TKwlabel" /* 2: Class Name */},
   {(bigint) 3 /* 3: TKwlabel < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TKwlabel < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TKwlabel < Token: superclass typecheck marker */},
-  {(bigint) 2587 /* 6: TKwlabel < TKwlabel: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwlabel < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwlabel < Token: superclass typecheck marker */},
+  {(bigint) 2427 /* 6: TKwlabel < TokenKeyword: superclass typecheck marker */},
+  {(bigint) 3095 /* 7: TKwlabel < TKwlabel: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -34824,7 +34114,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwlabel[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TKwlabel < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TKwlabel < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -34840,7 +34130,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwlabel[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenKeyword___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -34866,19 +34158,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TKwlabel[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TKwlabel < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TKwlabel < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TKwlabel___parser_index},
-  {(bigint) 0 /* 70: TKwlabel < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TKwlabel < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TKwlabel < TokenKeyword: superclass init_table position */},
   {(bigint) parser___lexer___TKwlabel___init_tk},
-  {(bigint) 3 /* 72: TKwlabel < TKwlabel: superclass init_table position */},
+  {(bigint) 4 /* 77: TKwlabel < TKwlabel: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -34930,10 +34224,10 @@ void CHECKNEW_parser___parser_nodes___TKwlabel(val_t p0){
 val_t NEW_TKwlabel_parser___lexer___TKwlabel___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 674;
+  fra.me.line = 670;
   fra.me.meth = LOCATE_NEW_TKwlabel_parser___lexer___TKwlabel___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -34941,7 +34235,7 @@ val_t NEW_TKwlabel_parser___lexer___TKwlabel___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:674 */
+  /* parser/lexer.nit:670 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TKwlabel();
   INIT_ATTRIBUTES__parser___parser_nodes___TKwlabel(fra.me.REG[1]);
   parser___lexer___TKwlabel___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -34949,35 +34243,203 @@ val_t NEW_TKwlabel_parser___lexer___TKwlabel___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TKwlabel_parser___parser_nodes___ANode___init(val_t p0){
+val_t NEW_TKwlabel_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_TKwlabel_parser___parser_nodes___ANode___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwlabel();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwlabel(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwlabel(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___parser_nodes___TKwdebug[77] = {
+  {(bigint) 2479 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "TKwdebug" /* 2: Class Name */},
+  {(bigint) 3 /* 3: TKwdebug < Object: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TKwdebug < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TKwdebug < Token: superclass typecheck marker */},
+  {(bigint) 2479 /* 6: TKwdebug < TKwdebug: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) standard___time___Object___get_time},
+  {(bigint) 2 /* 19: TKwdebug < Object: superclass init_table position */},
+  {(bigint) standard___kernel___Object___object_id},
+  {(bigint) standard___kernel___Object___is_same_type},
+  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) standard___kernel___Object_____neq},
+  {(bigint) standard___kernel___Object___output},
+  {(bigint) standard___kernel___Object___output_class_name},
+  {(bigint) standard___kernel___Object___exit},
+  {(bigint) standard___kernel___Object___sys},
+  {(bigint) standard___file___Object___printn},
+  {(bigint) standard___file___Object___print},
+  {(bigint) standard___file___Object___getc},
+  {(bigint) standard___file___Object___gets},
+  {(bigint) standard___file___Object___stdin},
+  {(bigint) standard___file___Object___stdout},
+  {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___Token___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
+  {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser___parser_prod___ANode___parent},
+  {(bigint) parser___parser_prod___ANode___parent__eq},
+  {(bigint) parser___parser_prod___ANode___remove_child},
+  {(bigint) parser___parser_prod___Token___replace_child},
+  {(bigint) parser___parser_prod___ANode___replace_with},
+  {(bigint) parser___parser_prod___Token___visit_all},
+  {(bigint) 1 /* 63: TKwdebug < ANode: superclass init_table position */},
+  {(bigint) parser___parser_nodes___ANode___location},
+  {(bigint) parser___parser_nodes___ANode___hot_location},
+  {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
+  {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
+  {(bigint) syntax___typing___ANode___accept_typing},
+  {(bigint) syntax___typing___ANode___after_typing},
+  {(bigint) syntax___syntax_base___Token___to_symbol},
+  {(bigint) parser___lexer___TKwdebug___parser_index},
+  {(bigint) 0 /* 73: TKwdebug < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) parser___lexer___TKwdebug___init_tk},
+  {(bigint) 3 /* 76: TKwdebug < TKwdebug: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TKwdebug::_parent */
+/* 3: Attribute TKwdebug::_location */
+/* 4: Attribute TKwdebug::_symbol_cache */
+/* 5: Attribute TKwdebug::_text */
+void INIT_ATTRIBUTES__parser___parser_nodes___TKwdebug(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TKwdebug;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_parser___parser_nodes___TKwdebug(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___TKwdebug;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_parser___parser_nodes___TKwdebug(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___TKwdebug;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_text", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TKwdebug_parser___lexer___TKwdebug___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_TKwlabel_parser___parser_nodes___ANode___init;
+  fra.me.line = 683;
+  fra.me.meth = LOCATE_NEW_TKwdebug_parser___lexer___TKwdebug___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TKwlabel();
-  INIT_ATTRIBUTES__parser___parser_nodes___TKwlabel(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TKwlabel(fra.me.REG[1]);
+  /* parser/lexer.nit:683 */
+  fra.me.REG[1] = NEW_parser___parser_nodes___TKwdebug();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwdebug(fra.me.REG[1]);
+  parser___lexer___TKwdebug___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwdebug(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TOpar[73] = {
-  {(bigint) 2455 /* 0: Identity */},
+val_t NEW_TKwdebug_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_TKwdebug_parser___parser_nodes___ANode___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TKwdebug();
+  INIT_ATTRIBUTES__parser___parser_nodes___TKwdebug(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TKwdebug(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___parser_nodes___TOpar[77] = {
+  {(bigint) 2471 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TOpar" /* 2: Class Name */},
   {(bigint) 3 /* 3: TOpar < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TOpar < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TOpar < Token: superclass typecheck marker */},
-  {(bigint) 2455 /* 6: TOpar < TOpar: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TOpar < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TOpar < Token: superclass typecheck marker */},
+  {(bigint) 2471 /* 6: TOpar < TOpar: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -34989,7 +34451,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TOpar[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TOpar < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TOpar < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -35005,7 +34467,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TOpar[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___Token___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -35031,19 +34495,20 @@ const classtable_elt_t VFT_parser___parser_nodes___TOpar[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TOpar < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: TOpar < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TOpar___parser_index},
-  {(bigint) 0 /* 70: TOpar < Token: superclass init_table position */},
+  {(bigint) 0 /* 73: TOpar < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TOpar___init_tk},
-  {(bigint) 3 /* 72: TOpar < TOpar: superclass init_table position */},
+  {(bigint) 3 /* 76: TOpar < TOpar: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -35098,7 +34563,7 @@ val_t NEW_TOpar_parser___lexer___TOpar___init_tk(val_t p0){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 687;
+  fra.me.line = 696;
   fra.me.meth = LOCATE_NEW_TOpar_parser___lexer___TOpar___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -35106,7 +34571,7 @@ val_t NEW_TOpar_parser___lexer___TOpar___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:687 */
+  /* parser/lexer.nit:696 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TOpar();
   INIT_ATTRIBUTES__parser___parser_nodes___TOpar(fra.me.REG[1]);
   parser___lexer___TOpar___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -35114,35 +34579,35 @@ val_t NEW_TOpar_parser___lexer___TOpar___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TOpar_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TOpar_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TOpar_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TOpar();
-  INIT_ATTRIBUTES__parser___parser_nodes___TOpar(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TOpar(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TOpar();
+  INIT_ATTRIBUTES__parser___parser_nodes___TOpar(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TOpar(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TCpar[73] = {
-  {(bigint) 2735 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TCpar[77] = {
+  {(bigint) 2495 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TCpar" /* 2: Class Name */},
   {(bigint) 3 /* 3: TCpar < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TCpar < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TCpar < Token: superclass typecheck marker */},
-  {(bigint) 2735 /* 6: TCpar < TCpar: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TCpar < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TCpar < Token: superclass typecheck marker */},
+  {(bigint) 2495 /* 6: TCpar < TCpar: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -35154,7 +34619,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TCpar[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TCpar < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TCpar < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -35170,7 +34635,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TCpar[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___Token___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -35196,19 +34663,20 @@ const classtable_elt_t VFT_parser___parser_nodes___TCpar[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TCpar < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: TCpar < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TCpar___parser_index},
-  {(bigint) 0 /* 70: TCpar < Token: superclass init_table position */},
+  {(bigint) 0 /* 73: TCpar < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TCpar___init_tk},
-  {(bigint) 3 /* 72: TCpar < TCpar: superclass init_table position */},
+  {(bigint) 3 /* 76: TCpar < TCpar: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -35263,7 +34731,7 @@ val_t NEW_TCpar_parser___lexer___TCpar___init_tk(val_t p0){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 700;
+  fra.me.line = 709;
   fra.me.meth = LOCATE_NEW_TCpar_parser___lexer___TCpar___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -35271,7 +34739,7 @@ val_t NEW_TCpar_parser___lexer___TCpar___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:700 */
+  /* parser/lexer.nit:709 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TCpar();
   INIT_ATTRIBUTES__parser___parser_nodes___TCpar(fra.me.REG[1]);
   parser___lexer___TCpar___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -35279,35 +34747,35 @@ val_t NEW_TCpar_parser___lexer___TCpar___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TCpar_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TCpar_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TCpar_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TCpar();
-  INIT_ATTRIBUTES__parser___parser_nodes___TCpar(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TCpar(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TCpar();
+  INIT_ATTRIBUTES__parser___parser_nodes___TCpar(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TCpar(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TObra[73] = {
-  {(bigint) 2459 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TObra[77] = {
+  {(bigint) 2475 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TObra" /* 2: Class Name */},
   {(bigint) 3 /* 3: TObra < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TObra < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TObra < Token: superclass typecheck marker */},
-  {(bigint) 2459 /* 6: TObra < TObra: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TObra < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TObra < Token: superclass typecheck marker */},
+  {(bigint) 2475 /* 6: TObra < TObra: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -35319,7 +34787,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TObra[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TObra < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TObra < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -35335,7 +34803,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TObra[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___Token___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -35361,19 +34831,20 @@ const classtable_elt_t VFT_parser___parser_nodes___TObra[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TObra < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: TObra < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TObra___parser_index},
-  {(bigint) 0 /* 70: TObra < Token: superclass init_table position */},
+  {(bigint) 0 /* 73: TObra < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TObra___init_tk},
-  {(bigint) 3 /* 72: TObra < TObra: superclass init_table position */},
+  {(bigint) 3 /* 76: TObra < TObra: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -35428,7 +34899,7 @@ val_t NEW_TObra_parser___lexer___TObra___init_tk(val_t p0){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 713;
+  fra.me.line = 722;
   fra.me.meth = LOCATE_NEW_TObra_parser___lexer___TObra___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -35436,7 +34907,7 @@ val_t NEW_TObra_parser___lexer___TObra___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:713 */
+  /* parser/lexer.nit:722 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TObra();
   INIT_ATTRIBUTES__parser___parser_nodes___TObra(fra.me.REG[1]);
   parser___lexer___TObra___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -35444,35 +34915,35 @@ val_t NEW_TObra_parser___lexer___TObra___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TObra_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TObra_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TObra_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TObra();
-  INIT_ATTRIBUTES__parser___parser_nodes___TObra(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TObra(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TObra();
+  INIT_ATTRIBUTES__parser___parser_nodes___TObra(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TObra(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TCbra[73] = {
-  {(bigint) 2759 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TCbra[77] = {
+  {(bigint) 2515 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TCbra" /* 2: Class Name */},
   {(bigint) 3 /* 3: TCbra < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TCbra < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TCbra < Token: superclass typecheck marker */},
-  {(bigint) 2759 /* 6: TCbra < TCbra: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TCbra < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TCbra < Token: superclass typecheck marker */},
+  {(bigint) 2515 /* 6: TCbra < TCbra: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -35484,7 +34955,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TCbra[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TCbra < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TCbra < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -35500,7 +34971,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TCbra[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___Token___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -35526,19 +34999,20 @@ const classtable_elt_t VFT_parser___parser_nodes___TCbra[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TCbra < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: TCbra < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TCbra___parser_index},
-  {(bigint) 0 /* 70: TCbra < Token: superclass init_table position */},
+  {(bigint) 0 /* 73: TCbra < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TCbra___init_tk},
-  {(bigint) 3 /* 72: TCbra < TCbra: superclass init_table position */},
+  {(bigint) 3 /* 76: TCbra < TCbra: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -35593,7 +35067,7 @@ val_t NEW_TCbra_parser___lexer___TCbra___init_tk(val_t p0){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 726;
+  fra.me.line = 735;
   fra.me.meth = LOCATE_NEW_TCbra_parser___lexer___TCbra___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -35601,7 +35075,7 @@ val_t NEW_TCbra_parser___lexer___TCbra___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:726 */
+  /* parser/lexer.nit:735 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TCbra();
   INIT_ATTRIBUTES__parser___parser_nodes___TCbra(fra.me.REG[1]);
   parser___lexer___TCbra___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -35609,35 +35083,35 @@ val_t NEW_TCbra_parser___lexer___TCbra___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TCbra_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TCbra_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TCbra_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TCbra();
-  INIT_ATTRIBUTES__parser___parser_nodes___TCbra(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TCbra(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TCbra();
+  INIT_ATTRIBUTES__parser___parser_nodes___TCbra(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TCbra(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TComma[73] = {
-  {(bigint) 2743 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TComma[77] = {
+  {(bigint) 2503 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TComma" /* 2: Class Name */},
   {(bigint) 3 /* 3: TComma < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TComma < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TComma < Token: superclass typecheck marker */},
-  {(bigint) 2743 /* 6: TComma < TComma: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TComma < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TComma < Token: superclass typecheck marker */},
+  {(bigint) 2503 /* 6: TComma < TComma: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -35649,7 +35123,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TComma[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TComma < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TComma < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -35665,7 +35139,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TComma[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___Token___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -35691,19 +35167,20 @@ const classtable_elt_t VFT_parser___parser_nodes___TComma[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TComma < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: TComma < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TComma___parser_index},
-  {(bigint) 0 /* 70: TComma < Token: superclass init_table position */},
+  {(bigint) 0 /* 73: TComma < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TComma___init_tk},
-  {(bigint) 3 /* 72: TComma < TComma: superclass init_table position */},
+  {(bigint) 3 /* 76: TComma < TComma: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -35758,7 +35235,7 @@ val_t NEW_TComma_parser___lexer___TComma___init_tk(val_t p0){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 739;
+  fra.me.line = 748;
   fra.me.meth = LOCATE_NEW_TComma_parser___lexer___TComma___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -35766,7 +35243,7 @@ val_t NEW_TComma_parser___lexer___TComma___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:739 */
+  /* parser/lexer.nit:748 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TComma();
   INIT_ATTRIBUTES__parser___parser_nodes___TComma(fra.me.REG[1]);
   parser___lexer___TComma___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -35774,35 +35251,35 @@ val_t NEW_TComma_parser___lexer___TComma___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TComma_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TComma_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TComma_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TComma();
-  INIT_ATTRIBUTES__parser___parser_nodes___TComma(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TComma(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TComma();
+  INIT_ATTRIBUTES__parser___parser_nodes___TComma(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TComma(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TColumn[73] = {
-  {(bigint) 2747 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TColumn[77] = {
+  {(bigint) 2507 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TColumn" /* 2: Class Name */},
   {(bigint) 3 /* 3: TColumn < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TColumn < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TColumn < Token: superclass typecheck marker */},
-  {(bigint) 2747 /* 6: TColumn < TColumn: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TColumn < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TColumn < Token: superclass typecheck marker */},
+  {(bigint) 2507 /* 6: TColumn < TColumn: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -35814,7 +35291,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TColumn[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TColumn < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TColumn < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -35830,7 +35307,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TColumn[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___Token___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -35856,19 +35335,20 @@ const classtable_elt_t VFT_parser___parser_nodes___TColumn[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TColumn < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: TColumn < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TColumn___parser_index},
-  {(bigint) 0 /* 70: TColumn < Token: superclass init_table position */},
+  {(bigint) 0 /* 73: TColumn < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TColumn___init_tk},
-  {(bigint) 3 /* 72: TColumn < TColumn: superclass init_table position */},
+  {(bigint) 3 /* 76: TColumn < TColumn: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -35923,7 +35403,7 @@ val_t NEW_TColumn_parser___lexer___TColumn___init_tk(val_t p0){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 752;
+  fra.me.line = 761;
   fra.me.meth = LOCATE_NEW_TColumn_parser___lexer___TColumn___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -35931,7 +35411,7 @@ val_t NEW_TColumn_parser___lexer___TColumn___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:752 */
+  /* parser/lexer.nit:761 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TColumn();
   INIT_ATTRIBUTES__parser___parser_nodes___TColumn(fra.me.REG[1]);
   parser___lexer___TColumn___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -35939,35 +35419,35 @@ val_t NEW_TColumn_parser___lexer___TColumn___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TColumn_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TColumn_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TColumn_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TColumn();
-  INIT_ATTRIBUTES__parser___parser_nodes___TColumn(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TColumn(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TColumn();
+  INIT_ATTRIBUTES__parser___parser_nodes___TColumn(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TColumn(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TQuad[73] = {
-  {(bigint) 2439 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TQuad[77] = {
+  {(bigint) 2467 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TQuad" /* 2: Class Name */},
   {(bigint) 3 /* 3: TQuad < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TQuad < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TQuad < Token: superclass typecheck marker */},
-  {(bigint) 2439 /* 6: TQuad < TQuad: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TQuad < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TQuad < Token: superclass typecheck marker */},
+  {(bigint) 2467 /* 6: TQuad < TQuad: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -35979,7 +35459,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TQuad[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TQuad < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TQuad < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -35995,7 +35475,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TQuad[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___Token___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -36021,19 +35503,20 @@ const classtable_elt_t VFT_parser___parser_nodes___TQuad[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TQuad < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: TQuad < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TQuad___parser_index},
-  {(bigint) 0 /* 70: TQuad < Token: superclass init_table position */},
+  {(bigint) 0 /* 73: TQuad < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TQuad___init_tk},
-  {(bigint) 3 /* 72: TQuad < TQuad: superclass init_table position */},
+  {(bigint) 3 /* 76: TQuad < TQuad: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -36088,7 +35571,7 @@ val_t NEW_TQuad_parser___lexer___TQuad___init_tk(val_t p0){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 765;
+  fra.me.line = 774;
   fra.me.meth = LOCATE_NEW_TQuad_parser___lexer___TQuad___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -36096,7 +35579,7 @@ val_t NEW_TQuad_parser___lexer___TQuad___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:765 */
+  /* parser/lexer.nit:774 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TQuad();
   INIT_ATTRIBUTES__parser___parser_nodes___TQuad(fra.me.REG[1]);
   parser___lexer___TQuad___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -36104,35 +35587,35 @@ val_t NEW_TQuad_parser___lexer___TQuad___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TQuad_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TQuad_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TQuad_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TQuad();
-  INIT_ATTRIBUTES__parser___parser_nodes___TQuad(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TQuad(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TQuad();
+  INIT_ATTRIBUTES__parser___parser_nodes___TQuad(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TQuad(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TAssign[73] = {
-  {(bigint) 2771 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TAssign[77] = {
+  {(bigint) 2531 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TAssign" /* 2: Class Name */},
   {(bigint) 3 /* 3: TAssign < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TAssign < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TAssign < Token: superclass typecheck marker */},
-  {(bigint) 2771 /* 6: TAssign < TAssign: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TAssign < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TAssign < Token: superclass typecheck marker */},
+  {(bigint) 2531 /* 6: TAssign < TAssign: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -36144,7 +35627,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TAssign[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TAssign < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TAssign < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -36160,7 +35643,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TAssign[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___Token___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -36186,19 +35671,20 @@ const classtable_elt_t VFT_parser___parser_nodes___TAssign[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TAssign < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: TAssign < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TAssign___parser_index},
-  {(bigint) 0 /* 70: TAssign < Token: superclass init_table position */},
+  {(bigint) 0 /* 73: TAssign < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TAssign___init_tk},
-  {(bigint) 3 /* 72: TAssign < TAssign: superclass init_table position */},
+  {(bigint) 3 /* 76: TAssign < TAssign: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -36253,7 +35739,7 @@ val_t NEW_TAssign_parser___lexer___TAssign___init_tk(val_t p0){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 778;
+  fra.me.line = 787;
   fra.me.meth = LOCATE_NEW_TAssign_parser___lexer___TAssign___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -36261,7 +35747,7 @@ val_t NEW_TAssign_parser___lexer___TAssign___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:778 */
+  /* parser/lexer.nit:787 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TAssign();
   INIT_ATTRIBUTES__parser___parser_nodes___TAssign(fra.me.REG[1]);
   parser___lexer___TAssign___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -36269,35 +35755,35 @@ val_t NEW_TAssign_parser___lexer___TAssign___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TAssign_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TAssign_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TAssign_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TAssign();
-  INIT_ATTRIBUTES__parser___parser_nodes___TAssign(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TAssign(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TAssign();
+  INIT_ATTRIBUTES__parser___parser_nodes___TAssign(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TAssign(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TPluseq[73] = {
-  {(bigint) 2443 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TPluseq[78] = {
+  {(bigint) 2959 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TPluseq" /* 2: Class Name */},
   {(bigint) 3 /* 3: TPluseq < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TPluseq < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TPluseq < Token: superclass typecheck marker */},
-  {(bigint) 2443 /* 6: TPluseq < TPluseq: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TPluseq < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TPluseq < Token: superclass typecheck marker */},
+  {(bigint) 2419 /* 6: TPluseq < TokenOperator: superclass typecheck marker */},
+  {(bigint) 2959 /* 7: TPluseq < TPluseq: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -36309,7 +35795,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TPluseq[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TPluseq < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TPluseq < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -36325,7 +35811,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TPluseq[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenOperator___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -36351,19 +35839,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TPluseq[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TPluseq < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TPluseq < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TPluseq___parser_index},
-  {(bigint) 0 /* 70: TPluseq < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TPluseq < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TPluseq < TokenOperator: superclass init_table position */},
   {(bigint) parser___lexer___TPluseq___init_tk},
-  {(bigint) 3 /* 72: TPluseq < TPluseq: superclass init_table position */},
+  {(bigint) 4 /* 77: TPluseq < TPluseq: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -36415,10 +35905,10 @@ void CHECKNEW_parser___parser_nodes___TPluseq(val_t p0){
 val_t NEW_TPluseq_parser___lexer___TPluseq___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 791;
+  fra.me.line = 800;
   fra.me.meth = LOCATE_NEW_TPluseq_parser___lexer___TPluseq___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -36426,7 +35916,7 @@ val_t NEW_TPluseq_parser___lexer___TPluseq___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:791 */
+  /* parser/lexer.nit:800 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TPluseq();
   INIT_ATTRIBUTES__parser___parser_nodes___TPluseq(fra.me.REG[1]);
   parser___lexer___TPluseq___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -36434,35 +35924,35 @@ val_t NEW_TPluseq_parser___lexer___TPluseq___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TPluseq_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TPluseq_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TPluseq_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TPluseq();
-  INIT_ATTRIBUTES__parser___parser_nodes___TPluseq(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TPluseq(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TPluseq();
+  INIT_ATTRIBUTES__parser___parser_nodes___TPluseq(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TPluseq(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TMinuseq[73] = {
-  {(bigint) 2471 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TMinuseq[78] = {
+  {(bigint) 2979 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TMinuseq" /* 2: Class Name */},
   {(bigint) 3 /* 3: TMinuseq < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TMinuseq < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TMinuseq < Token: superclass typecheck marker */},
-  {(bigint) 2471 /* 6: TMinuseq < TMinuseq: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TMinuseq < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TMinuseq < Token: superclass typecheck marker */},
+  {(bigint) 2419 /* 6: TMinuseq < TokenOperator: superclass typecheck marker */},
+  {(bigint) 2979 /* 7: TMinuseq < TMinuseq: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -36474,7 +35964,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TMinuseq[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TMinuseq < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TMinuseq < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -36490,7 +35980,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TMinuseq[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenOperator___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -36516,19 +36008,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TMinuseq[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TMinuseq < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TMinuseq < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TMinuseq___parser_index},
-  {(bigint) 0 /* 70: TMinuseq < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TMinuseq < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TMinuseq < TokenOperator: superclass init_table position */},
   {(bigint) parser___lexer___TMinuseq___init_tk},
-  {(bigint) 3 /* 72: TMinuseq < TMinuseq: superclass init_table position */},
+  {(bigint) 4 /* 77: TMinuseq < TMinuseq: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -36580,10 +36074,10 @@ void CHECKNEW_parser___parser_nodes___TMinuseq(val_t p0){
 val_t NEW_TMinuseq_parser___lexer___TMinuseq___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 804;
+  fra.me.line = 813;
   fra.me.meth = LOCATE_NEW_TMinuseq_parser___lexer___TMinuseq___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -36591,7 +36085,7 @@ val_t NEW_TMinuseq_parser___lexer___TMinuseq___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:804 */
+  /* parser/lexer.nit:813 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TMinuseq();
   INIT_ATTRIBUTES__parser___parser_nodes___TMinuseq(fra.me.REG[1]);
   parser___lexer___TMinuseq___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -36599,35 +36093,35 @@ val_t NEW_TMinuseq_parser___lexer___TMinuseq___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TMinuseq_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TMinuseq_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TMinuseq_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TMinuseq();
-  INIT_ATTRIBUTES__parser___parser_nodes___TMinuseq(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TMinuseq(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TMinuseq();
+  INIT_ATTRIBUTES__parser___parser_nodes___TMinuseq(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TMinuseq(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TDotdotdot[73] = {
-  {(bigint) 2723 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TDotdotdot[78] = {
+  {(bigint) 3219 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TDotdotdot" /* 2: Class Name */},
   {(bigint) 3 /* 3: TDotdotdot < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TDotdotdot < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TDotdotdot < Token: superclass typecheck marker */},
-  {(bigint) 2723 /* 6: TDotdotdot < TDotdotdot: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TDotdotdot < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TDotdotdot < Token: superclass typecheck marker */},
+  {(bigint) 2419 /* 6: TDotdotdot < TokenOperator: superclass typecheck marker */},
+  {(bigint) 3219 /* 7: TDotdotdot < TDotdotdot: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -36639,7 +36133,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TDotdotdot[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TDotdotdot < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TDotdotdot < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -36655,7 +36149,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TDotdotdot[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenOperator___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -36681,19 +36177,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TDotdotdot[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TDotdotdot < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TDotdotdot < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TDotdotdot___parser_index},
-  {(bigint) 0 /* 70: TDotdotdot < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TDotdotdot < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TDotdotdot < TokenOperator: superclass init_table position */},
   {(bigint) parser___lexer___TDotdotdot___init_tk},
-  {(bigint) 3 /* 72: TDotdotdot < TDotdotdot: superclass init_table position */},
+  {(bigint) 4 /* 77: TDotdotdot < TDotdotdot: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -36745,10 +36243,10 @@ void CHECKNEW_parser___parser_nodes___TDotdotdot(val_t p0){
 val_t NEW_TDotdotdot_parser___lexer___TDotdotdot___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 817;
+  fra.me.line = 826;
   fra.me.meth = LOCATE_NEW_TDotdotdot_parser___lexer___TDotdotdot___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -36756,7 +36254,7 @@ val_t NEW_TDotdotdot_parser___lexer___TDotdotdot___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:817 */
+  /* parser/lexer.nit:826 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TDotdotdot();
   INIT_ATTRIBUTES__parser___parser_nodes___TDotdotdot(fra.me.REG[1]);
   parser___lexer___TDotdotdot___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -36764,35 +36262,35 @@ val_t NEW_TDotdotdot_parser___lexer___TDotdotdot___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TDotdotdot_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TDotdotdot_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TDotdotdot_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TDotdotdot();
-  INIT_ATTRIBUTES__parser___parser_nodes___TDotdotdot(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TDotdotdot(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TDotdotdot();
+  INIT_ATTRIBUTES__parser___parser_nodes___TDotdotdot(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TDotdotdot(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TDotdot[73] = {
-  {(bigint) 2727 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TDotdot[78] = {
+  {(bigint) 3223 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TDotdot" /* 2: Class Name */},
   {(bigint) 3 /* 3: TDotdot < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TDotdot < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TDotdot < Token: superclass typecheck marker */},
-  {(bigint) 2727 /* 6: TDotdot < TDotdot: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TDotdot < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TDotdot < Token: superclass typecheck marker */},
+  {(bigint) 2419 /* 6: TDotdot < TokenOperator: superclass typecheck marker */},
+  {(bigint) 3223 /* 7: TDotdot < TDotdot: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -36804,7 +36302,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TDotdot[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TDotdot < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TDotdot < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -36820,7 +36318,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TDotdot[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenOperator___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -36846,19 +36346,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TDotdot[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TDotdot < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TDotdot < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TDotdot___parser_index},
-  {(bigint) 0 /* 70: TDotdot < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TDotdot < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TDotdot < TokenOperator: superclass init_table position */},
   {(bigint) parser___lexer___TDotdot___init_tk},
-  {(bigint) 3 /* 72: TDotdot < TDotdot: superclass init_table position */},
+  {(bigint) 4 /* 77: TDotdot < TDotdot: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -36910,10 +36412,10 @@ void CHECKNEW_parser___parser_nodes___TDotdot(val_t p0){
 val_t NEW_TDotdot_parser___lexer___TDotdot___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 830;
+  fra.me.line = 839;
   fra.me.meth = LOCATE_NEW_TDotdot_parser___lexer___TDotdot___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -36921,7 +36423,7 @@ val_t NEW_TDotdot_parser___lexer___TDotdot___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:830 */
+  /* parser/lexer.nit:839 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TDotdot();
   INIT_ATTRIBUTES__parser___parser_nodes___TDotdot(fra.me.REG[1]);
   parser___lexer___TDotdot___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -36929,35 +36431,35 @@ val_t NEW_TDotdot_parser___lexer___TDotdot___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TDotdot_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TDotdot_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TDotdot_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TDotdot();
-  INIT_ATTRIBUTES__parser___parser_nodes___TDotdot(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TDotdot(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TDotdot();
+  INIT_ATTRIBUTES__parser___parser_nodes___TDotdot(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TDotdot(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TDot[73] = {
-  {(bigint) 2731 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TDot[78] = {
+  {(bigint) 3227 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TDot" /* 2: Class Name */},
   {(bigint) 3 /* 3: TDot < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TDot < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TDot < Token: superclass typecheck marker */},
-  {(bigint) 2731 /* 6: TDot < TDot: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TDot < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TDot < Token: superclass typecheck marker */},
+  {(bigint) 2419 /* 6: TDot < TokenOperator: superclass typecheck marker */},
+  {(bigint) 3227 /* 7: TDot < TDot: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -36969,7 +36471,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TDot[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TDot < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TDot < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -36985,7 +36487,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TDot[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenOperator___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -37011,19 +36515,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TDot[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TDot < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TDot < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TDot___parser_index},
-  {(bigint) 0 /* 70: TDot < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TDot < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TDot < TokenOperator: superclass init_table position */},
   {(bigint) parser___lexer___TDot___init_tk},
-  {(bigint) 3 /* 72: TDot < TDot: superclass init_table position */},
+  {(bigint) 4 /* 77: TDot < TDot: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -37075,10 +36581,10 @@ void CHECKNEW_parser___parser_nodes___TDot(val_t p0){
 val_t NEW_TDot_parser___lexer___TDot___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 843;
+  fra.me.line = 852;
   fra.me.meth = LOCATE_NEW_TDot_parser___lexer___TDot___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -37086,7 +36592,7 @@ val_t NEW_TDot_parser___lexer___TDot___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:843 */
+  /* parser/lexer.nit:852 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TDot();
   INIT_ATTRIBUTES__parser___parser_nodes___TDot(fra.me.REG[1]);
   parser___lexer___TDot___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -37094,35 +36600,35 @@ val_t NEW_TDot_parser___lexer___TDot___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TDot_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TDot_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TDot_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TDot();
-  INIT_ATTRIBUTES__parser___parser_nodes___TDot(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TDot(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TDot();
+  INIT_ATTRIBUTES__parser___parser_nodes___TDot(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TDot(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TPlus[73] = {
-  {(bigint) 2447 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TPlus[78] = {
+  {(bigint) 2963 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TPlus" /* 2: Class Name */},
   {(bigint) 3 /* 3: TPlus < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TPlus < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TPlus < Token: superclass typecheck marker */},
-  {(bigint) 2447 /* 6: TPlus < TPlus: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TPlus < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TPlus < Token: superclass typecheck marker */},
+  {(bigint) 2419 /* 6: TPlus < TokenOperator: superclass typecheck marker */},
+  {(bigint) 2963 /* 7: TPlus < TPlus: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -37134,7 +36640,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TPlus[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TPlus < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TPlus < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -37150,7 +36656,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TPlus[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenOperator___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -37176,19 +36684,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TPlus[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TPlus < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TPlus < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TPlus___parser_index},
-  {(bigint) 0 /* 70: TPlus < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TPlus < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TPlus < TokenOperator: superclass init_table position */},
   {(bigint) parser___lexer___TPlus___init_tk},
-  {(bigint) 3 /* 72: TPlus < TPlus: superclass init_table position */},
+  {(bigint) 4 /* 77: TPlus < TPlus: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -37240,10 +36750,10 @@ void CHECKNEW_parser___parser_nodes___TPlus(val_t p0){
 val_t NEW_TPlus_parser___lexer___TPlus___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 856;
+  fra.me.line = 865;
   fra.me.meth = LOCATE_NEW_TPlus_parser___lexer___TPlus___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -37251,7 +36761,7 @@ val_t NEW_TPlus_parser___lexer___TPlus___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:856 */
+  /* parser/lexer.nit:865 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TPlus();
   INIT_ATTRIBUTES__parser___parser_nodes___TPlus(fra.me.REG[1]);
   parser___lexer___TPlus___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -37259,35 +36769,35 @@ val_t NEW_TPlus_parser___lexer___TPlus___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TPlus_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TPlus_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TPlus_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TPlus();
-  INIT_ATTRIBUTES__parser___parser_nodes___TPlus(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TPlus(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TPlus();
+  INIT_ATTRIBUTES__parser___parser_nodes___TPlus(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TPlus(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TMinus[73] = {
-  {(bigint) 2475 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TMinus[78] = {
+  {(bigint) 2983 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TMinus" /* 2: Class Name */},
   {(bigint) 3 /* 3: TMinus < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TMinus < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TMinus < Token: superclass typecheck marker */},
-  {(bigint) 2475 /* 6: TMinus < TMinus: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TMinus < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TMinus < Token: superclass typecheck marker */},
+  {(bigint) 2419 /* 6: TMinus < TokenOperator: superclass typecheck marker */},
+  {(bigint) 2983 /* 7: TMinus < TMinus: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -37299,7 +36809,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TMinus[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TMinus < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TMinus < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -37315,7 +36825,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TMinus[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenOperator___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -37341,19 +36853,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TMinus[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TMinus < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TMinus < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TMinus___parser_index},
-  {(bigint) 0 /* 70: TMinus < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TMinus < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TMinus < TokenOperator: superclass init_table position */},
   {(bigint) parser___lexer___TMinus___init_tk},
-  {(bigint) 3 /* 72: TMinus < TMinus: superclass init_table position */},
+  {(bigint) 4 /* 77: TMinus < TMinus: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -37405,10 +36919,10 @@ void CHECKNEW_parser___parser_nodes___TMinus(val_t p0){
 val_t NEW_TMinus_parser___lexer___TMinus___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 869;
+  fra.me.line = 878;
   fra.me.meth = LOCATE_NEW_TMinus_parser___lexer___TMinus___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -37416,7 +36930,7 @@ val_t NEW_TMinus_parser___lexer___TMinus___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:869 */
+  /* parser/lexer.nit:878 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TMinus();
   INIT_ATTRIBUTES__parser___parser_nodes___TMinus(fra.me.REG[1]);
   parser___lexer___TMinus___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -37424,35 +36938,35 @@ val_t NEW_TMinus_parser___lexer___TMinus___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TMinus_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TMinus_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TMinus_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TMinus();
-  INIT_ATTRIBUTES__parser___parser_nodes___TMinus(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TMinus(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TMinus();
+  INIT_ATTRIBUTES__parser___parser_nodes___TMinus(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TMinus(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TStar[73] = {
-  {(bigint) 2431 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TStar[78] = {
+  {(bigint) 2951 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TStar" /* 2: Class Name */},
   {(bigint) 3 /* 3: TStar < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TStar < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TStar < Token: superclass typecheck marker */},
-  {(bigint) 2431 /* 6: TStar < TStar: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TStar < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TStar < Token: superclass typecheck marker */},
+  {(bigint) 2419 /* 6: TStar < TokenOperator: superclass typecheck marker */},
+  {(bigint) 2951 /* 7: TStar < TStar: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -37464,7 +36978,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TStar[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TStar < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TStar < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -37480,7 +36994,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TStar[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenOperator___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -37506,19 +37022,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TStar[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TStar < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TStar < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TStar___parser_index},
-  {(bigint) 0 /* 70: TStar < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TStar < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TStar < TokenOperator: superclass init_table position */},
   {(bigint) parser___lexer___TStar___init_tk},
-  {(bigint) 3 /* 72: TStar < TStar: superclass init_table position */},
+  {(bigint) 4 /* 77: TStar < TStar: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -37570,10 +37088,10 @@ void CHECKNEW_parser___parser_nodes___TStar(val_t p0){
 val_t NEW_TStar_parser___lexer___TStar___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 882;
+  fra.me.line = 891;
   fra.me.meth = LOCATE_NEW_TStar_parser___lexer___TStar___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -37581,7 +37099,7 @@ val_t NEW_TStar_parser___lexer___TStar___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:882 */
+  /* parser/lexer.nit:891 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TStar();
   INIT_ATTRIBUTES__parser___parser_nodes___TStar(fra.me.REG[1]);
   parser___lexer___TStar___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -37589,35 +37107,35 @@ val_t NEW_TStar_parser___lexer___TStar___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TStar_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TStar_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TStar_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TStar();
-  INIT_ATTRIBUTES__parser___parser_nodes___TStar(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TStar(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TStar();
+  INIT_ATTRIBUTES__parser___parser_nodes___TStar(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TStar(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TSlash[73] = {
-  {(bigint) 2435 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TSlash[78] = {
+  {(bigint) 2955 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TSlash" /* 2: Class Name */},
   {(bigint) 3 /* 3: TSlash < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TSlash < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TSlash < Token: superclass typecheck marker */},
-  {(bigint) 2435 /* 6: TSlash < TSlash: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TSlash < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TSlash < Token: superclass typecheck marker */},
+  {(bigint) 2419 /* 6: TSlash < TokenOperator: superclass typecheck marker */},
+  {(bigint) 2955 /* 7: TSlash < TSlash: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -37629,7 +37147,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TSlash[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TSlash < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TSlash < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -37645,7 +37163,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TSlash[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenOperator___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -37671,19 +37191,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TSlash[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TSlash < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TSlash < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TSlash___parser_index},
-  {(bigint) 0 /* 70: TSlash < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TSlash < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TSlash < TokenOperator: superclass init_table position */},
   {(bigint) parser___lexer___TSlash___init_tk},
-  {(bigint) 3 /* 72: TSlash < TSlash: superclass init_table position */},
+  {(bigint) 4 /* 77: TSlash < TSlash: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -37735,10 +37257,10 @@ void CHECKNEW_parser___parser_nodes___TSlash(val_t p0){
 val_t NEW_TSlash_parser___lexer___TSlash___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 895;
+  fra.me.line = 904;
   fra.me.meth = LOCATE_NEW_TSlash_parser___lexer___TSlash___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -37746,7 +37268,7 @@ val_t NEW_TSlash_parser___lexer___TSlash___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:895 */
+  /* parser/lexer.nit:904 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TSlash();
   INIT_ATTRIBUTES__parser___parser_nodes___TSlash(fra.me.REG[1]);
   parser___lexer___TSlash___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -37754,35 +37276,35 @@ val_t NEW_TSlash_parser___lexer___TSlash___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TSlash_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TSlash_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TSlash_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TSlash();
-  INIT_ATTRIBUTES__parser___parser_nodes___TSlash(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TSlash(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TSlash();
+  INIT_ATTRIBUTES__parser___parser_nodes___TSlash(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TSlash(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TPercent[73] = {
-  {(bigint) 2451 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TPercent[78] = {
+  {(bigint) 2967 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TPercent" /* 2: Class Name */},
   {(bigint) 3 /* 3: TPercent < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TPercent < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TPercent < Token: superclass typecheck marker */},
-  {(bigint) 2451 /* 6: TPercent < TPercent: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TPercent < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TPercent < Token: superclass typecheck marker */},
+  {(bigint) 2419 /* 6: TPercent < TokenOperator: superclass typecheck marker */},
+  {(bigint) 2967 /* 7: TPercent < TPercent: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -37794,7 +37316,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TPercent[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TPercent < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TPercent < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -37810,7 +37332,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TPercent[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenOperator___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -37836,19 +37360,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TPercent[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TPercent < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TPercent < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TPercent___parser_index},
-  {(bigint) 0 /* 70: TPercent < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TPercent < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TPercent < TokenOperator: superclass init_table position */},
   {(bigint) parser___lexer___TPercent___init_tk},
-  {(bigint) 3 /* 72: TPercent < TPercent: superclass init_table position */},
+  {(bigint) 4 /* 77: TPercent < TPercent: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -37900,10 +37426,10 @@ void CHECKNEW_parser___parser_nodes___TPercent(val_t p0){
 val_t NEW_TPercent_parser___lexer___TPercent___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 908;
+  fra.me.line = 917;
   fra.me.meth = LOCATE_NEW_TPercent_parser___lexer___TPercent___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -37911,7 +37437,7 @@ val_t NEW_TPercent_parser___lexer___TPercent___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:908 */
+  /* parser/lexer.nit:917 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TPercent();
   INIT_ATTRIBUTES__parser___parser_nodes___TPercent(fra.me.REG[1]);
   parser___lexer___TPercent___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -37919,35 +37445,35 @@ val_t NEW_TPercent_parser___lexer___TPercent___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TPercent_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TPercent_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TPercent_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TPercent();
-  INIT_ATTRIBUTES__parser___parser_nodes___TPercent(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TPercent(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TPercent();
+  INIT_ATTRIBUTES__parser___parser_nodes___TPercent(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TPercent(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TEq[73] = {
-  {(bigint) 2711 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TEq[78] = {
+  {(bigint) 3215 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TEq" /* 2: Class Name */},
   {(bigint) 3 /* 3: TEq < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TEq < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TEq < Token: superclass typecheck marker */},
-  {(bigint) 2711 /* 6: TEq < TEq: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TEq < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TEq < Token: superclass typecheck marker */},
+  {(bigint) 2419 /* 6: TEq < TokenOperator: superclass typecheck marker */},
+  {(bigint) 3215 /* 7: TEq < TEq: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -37959,7 +37485,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TEq[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TEq < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TEq < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -37975,7 +37501,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TEq[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenOperator___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -38001,19 +37529,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TEq[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TEq < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TEq < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TEq___parser_index},
-  {(bigint) 0 /* 70: TEq < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TEq < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TEq < TokenOperator: superclass init_table position */},
   {(bigint) parser___lexer___TEq___init_tk},
-  {(bigint) 3 /* 72: TEq < TEq: superclass init_table position */},
+  {(bigint) 4 /* 77: TEq < TEq: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -38065,10 +37595,10 @@ void CHECKNEW_parser___parser_nodes___TEq(val_t p0){
 val_t NEW_TEq_parser___lexer___TEq___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 921;
+  fra.me.line = 930;
   fra.me.meth = LOCATE_NEW_TEq_parser___lexer___TEq___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -38076,7 +37606,7 @@ val_t NEW_TEq_parser___lexer___TEq___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:921 */
+  /* parser/lexer.nit:930 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TEq();
   INIT_ATTRIBUTES__parser___parser_nodes___TEq(fra.me.REG[1]);
   parser___lexer___TEq___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -38084,35 +37614,35 @@ val_t NEW_TEq_parser___lexer___TEq___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TEq_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TEq_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TEq_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TEq();
-  INIT_ATTRIBUTES__parser___parser_nodes___TEq(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TEq(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TEq();
+  INIT_ATTRIBUTES__parser___parser_nodes___TEq(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TEq(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TNe[73] = {
-  {(bigint) 2467 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TNe[78] = {
+  {(bigint) 2975 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TNe" /* 2: Class Name */},
   {(bigint) 3 /* 3: TNe < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TNe < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TNe < Token: superclass typecheck marker */},
-  {(bigint) 2467 /* 6: TNe < TNe: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TNe < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TNe < Token: superclass typecheck marker */},
+  {(bigint) 2419 /* 6: TNe < TokenOperator: superclass typecheck marker */},
+  {(bigint) 2975 /* 7: TNe < TNe: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -38124,7 +37654,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TNe[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TNe < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TNe < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -38140,7 +37670,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TNe[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenOperator___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -38166,19 +37698,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TNe[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TNe < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TNe < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TNe___parser_index},
-  {(bigint) 0 /* 70: TNe < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TNe < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TNe < TokenOperator: superclass init_table position */},
   {(bigint) parser___lexer___TNe___init_tk},
-  {(bigint) 3 /* 72: TNe < TNe: superclass init_table position */},
+  {(bigint) 4 /* 77: TNe < TNe: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -38230,10 +37764,10 @@ void CHECKNEW_parser___parser_nodes___TNe(val_t p0){
 val_t NEW_TNe_parser___lexer___TNe___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 934;
+  fra.me.line = 943;
   fra.me.meth = LOCATE_NEW_TNe_parser___lexer___TNe___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -38241,7 +37775,7 @@ val_t NEW_TNe_parser___lexer___TNe___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:934 */
+  /* parser/lexer.nit:943 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TNe();
   INIT_ATTRIBUTES__parser___parser_nodes___TNe(fra.me.REG[1]);
   parser___lexer___TNe___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -38249,35 +37783,35 @@ val_t NEW_TNe_parser___lexer___TNe___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TNe_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TNe_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TNe_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TNe();
-  INIT_ATTRIBUTES__parser___parser_nodes___TNe(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TNe(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TNe();
+  INIT_ATTRIBUTES__parser___parser_nodes___TNe(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TNe(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TLt[73] = {
-  {(bigint) 2483 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TLt[78] = {
+  {(bigint) 2991 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TLt" /* 2: Class Name */},
   {(bigint) 3 /* 3: TLt < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TLt < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TLt < Token: superclass typecheck marker */},
-  {(bigint) 2483 /* 6: TLt < TLt: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TLt < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TLt < Token: superclass typecheck marker */},
+  {(bigint) 2419 /* 6: TLt < TokenOperator: superclass typecheck marker */},
+  {(bigint) 2991 /* 7: TLt < TLt: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -38289,7 +37823,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TLt[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TLt < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TLt < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -38305,7 +37839,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TLt[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenOperator___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -38331,19 +37867,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TLt[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TLt < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TLt < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TLt___parser_index},
-  {(bigint) 0 /* 70: TLt < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TLt < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TLt < TokenOperator: superclass init_table position */},
   {(bigint) parser___lexer___TLt___init_tk},
-  {(bigint) 3 /* 72: TLt < TLt: superclass init_table position */},
+  {(bigint) 4 /* 77: TLt < TLt: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -38395,10 +37933,10 @@ void CHECKNEW_parser___parser_nodes___TLt(val_t p0){
 val_t NEW_TLt_parser___lexer___TLt___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 947;
+  fra.me.line = 956;
   fra.me.meth = LOCATE_NEW_TLt_parser___lexer___TLt___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -38406,7 +37944,7 @@ val_t NEW_TLt_parser___lexer___TLt___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:947 */
+  /* parser/lexer.nit:956 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TLt();
   INIT_ATTRIBUTES__parser___parser_nodes___TLt(fra.me.REG[1]);
   parser___lexer___TLt___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -38414,35 +37952,35 @@ val_t NEW_TLt_parser___lexer___TLt___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TLt_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TLt_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TLt_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TLt();
-  INIT_ATTRIBUTES__parser___parser_nodes___TLt(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TLt(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TLt();
+  INIT_ATTRIBUTES__parser___parser_nodes___TLt(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TLt(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TLe[73] = {
-  {(bigint) 2491 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TLe[78] = {
+  {(bigint) 2999 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TLe" /* 2: Class Name */},
   {(bigint) 3 /* 3: TLe < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TLe < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TLe < Token: superclass typecheck marker */},
-  {(bigint) 2491 /* 6: TLe < TLe: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TLe < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TLe < Token: superclass typecheck marker */},
+  {(bigint) 2419 /* 6: TLe < TokenOperator: superclass typecheck marker */},
+  {(bigint) 2999 /* 7: TLe < TLe: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -38454,7 +37992,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TLe[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TLe < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TLe < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -38470,7 +38008,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TLe[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenOperator___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -38496,19 +38036,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TLe[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TLe < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TLe < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TLe___parser_index},
-  {(bigint) 0 /* 70: TLe < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TLe < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TLe < TokenOperator: superclass init_table position */},
   {(bigint) parser___lexer___TLe___init_tk},
-  {(bigint) 3 /* 72: TLe < TLe: superclass init_table position */},
+  {(bigint) 4 /* 77: TLe < TLe: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -38560,10 +38102,10 @@ void CHECKNEW_parser___parser_nodes___TLe(val_t p0){
 val_t NEW_TLe_parser___lexer___TLe___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 960;
+  fra.me.line = 969;
   fra.me.meth = LOCATE_NEW_TLe_parser___lexer___TLe___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -38571,7 +38113,7 @@ val_t NEW_TLe_parser___lexer___TLe___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:960 */
+  /* parser/lexer.nit:969 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TLe();
   INIT_ATTRIBUTES__parser___parser_nodes___TLe(fra.me.REG[1]);
   parser___lexer___TLe___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -38579,35 +38121,35 @@ val_t NEW_TLe_parser___lexer___TLe___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TLe_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TLe_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TLe_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TLe();
-  INIT_ATTRIBUTES__parser___parser_nodes___TLe(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TLe(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TLe();
+  INIT_ATTRIBUTES__parser___parser_nodes___TLe(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TLe(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TLl[73] = {
-  {(bigint) 2487 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TLl[78] = {
+  {(bigint) 2995 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TLl" /* 2: Class Name */},
   {(bigint) 3 /* 3: TLl < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TLl < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TLl < Token: superclass typecheck marker */},
-  {(bigint) 2487 /* 6: TLl < TLl: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TLl < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TLl < Token: superclass typecheck marker */},
+  {(bigint) 2419 /* 6: TLl < TokenOperator: superclass typecheck marker */},
+  {(bigint) 2995 /* 7: TLl < TLl: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -38619,7 +38161,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TLl[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TLl < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TLl < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -38635,7 +38177,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TLl[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenOperator___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -38661,19 +38205,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TLl[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TLl < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TLl < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TLl___parser_index},
-  {(bigint) 0 /* 70: TLl < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TLl < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TLl < TokenOperator: superclass init_table position */},
   {(bigint) parser___lexer___TLl___init_tk},
-  {(bigint) 3 /* 72: TLl < TLl: superclass init_table position */},
+  {(bigint) 4 /* 77: TLl < TLl: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -38725,10 +38271,10 @@ void CHECKNEW_parser___parser_nodes___TLl(val_t p0){
 val_t NEW_TLl_parser___lexer___TLl___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 973;
+  fra.me.line = 982;
   fra.me.meth = LOCATE_NEW_TLl_parser___lexer___TLl___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -38736,7 +38282,7 @@ val_t NEW_TLl_parser___lexer___TLl___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:973 */
+  /* parser/lexer.nit:982 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TLl();
   INIT_ATTRIBUTES__parser___parser_nodes___TLl(fra.me.REG[1]);
   parser___lexer___TLl___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -38744,35 +38290,35 @@ val_t NEW_TLl_parser___lexer___TLl___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TLl_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TLl_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TLl_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TLl();
-  INIT_ATTRIBUTES__parser___parser_nodes___TLl(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TLl(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TLl();
+  INIT_ATTRIBUTES__parser___parser_nodes___TLl(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TLl(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TGt[73] = {
-  {(bigint) 2695 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TGt[78] = {
+  {(bigint) 3199 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TGt" /* 2: Class Name */},
   {(bigint) 3 /* 3: TGt < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TGt < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TGt < Token: superclass typecheck marker */},
-  {(bigint) 2695 /* 6: TGt < TGt: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TGt < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TGt < Token: superclass typecheck marker */},
+  {(bigint) 2419 /* 6: TGt < TokenOperator: superclass typecheck marker */},
+  {(bigint) 3199 /* 7: TGt < TGt: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -38784,7 +38330,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TGt[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TGt < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TGt < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -38800,7 +38346,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TGt[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenOperator___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -38826,19 +38374,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TGt[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TGt < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TGt < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TGt___parser_index},
-  {(bigint) 0 /* 70: TGt < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TGt < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TGt < TokenOperator: superclass init_table position */},
   {(bigint) parser___lexer___TGt___init_tk},
-  {(bigint) 3 /* 72: TGt < TGt: superclass init_table position */},
+  {(bigint) 4 /* 77: TGt < TGt: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -38890,10 +38440,10 @@ void CHECKNEW_parser___parser_nodes___TGt(val_t p0){
 val_t NEW_TGt_parser___lexer___TGt___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 986;
+  fra.me.line = 995;
   fra.me.meth = LOCATE_NEW_TGt_parser___lexer___TGt___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -38901,7 +38451,7 @@ val_t NEW_TGt_parser___lexer___TGt___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:986 */
+  /* parser/lexer.nit:995 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TGt();
   INIT_ATTRIBUTES__parser___parser_nodes___TGt(fra.me.REG[1]);
   parser___lexer___TGt___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -38909,35 +38459,35 @@ val_t NEW_TGt_parser___lexer___TGt___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TGt_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TGt_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TGt_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TGt();
-  INIT_ATTRIBUTES__parser___parser_nodes___TGt(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TGt(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TGt();
+  INIT_ATTRIBUTES__parser___parser_nodes___TGt(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TGt(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TGe[73] = {
-  {(bigint) 2703 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TGe[78] = {
+  {(bigint) 3207 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TGe" /* 2: Class Name */},
   {(bigint) 3 /* 3: TGe < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TGe < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TGe < Token: superclass typecheck marker */},
-  {(bigint) 2703 /* 6: TGe < TGe: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TGe < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TGe < Token: superclass typecheck marker */},
+  {(bigint) 2419 /* 6: TGe < TokenOperator: superclass typecheck marker */},
+  {(bigint) 3207 /* 7: TGe < TGe: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -38949,7 +38499,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TGe[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TGe < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TGe < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -38965,7 +38515,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TGe[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenOperator___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -38991,19 +38543,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TGe[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TGe < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TGe < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TGe___parser_index},
-  {(bigint) 0 /* 70: TGe < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TGe < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TGe < TokenOperator: superclass init_table position */},
   {(bigint) parser___lexer___TGe___init_tk},
-  {(bigint) 3 /* 72: TGe < TGe: superclass init_table position */},
+  {(bigint) 4 /* 77: TGe < TGe: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -39055,10 +38609,10 @@ void CHECKNEW_parser___parser_nodes___TGe(val_t p0){
 val_t NEW_TGe_parser___lexer___TGe___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 999;
+  fra.me.line = 1008;
   fra.me.meth = LOCATE_NEW_TGe_parser___lexer___TGe___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -39066,7 +38620,7 @@ val_t NEW_TGe_parser___lexer___TGe___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:999 */
+  /* parser/lexer.nit:1008 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TGe();
   INIT_ATTRIBUTES__parser___parser_nodes___TGe(fra.me.REG[1]);
   parser___lexer___TGe___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -39074,35 +38628,35 @@ val_t NEW_TGe_parser___lexer___TGe___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TGe_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TGe_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TGe_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TGe();
-  INIT_ATTRIBUTES__parser___parser_nodes___TGe(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TGe(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TGe();
+  INIT_ATTRIBUTES__parser___parser_nodes___TGe(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TGe(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TGg[73] = {
-  {(bigint) 2699 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TGg[78] = {
+  {(bigint) 3203 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TGg" /* 2: Class Name */},
   {(bigint) 3 /* 3: TGg < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TGg < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TGg < Token: superclass typecheck marker */},
-  {(bigint) 2699 /* 6: TGg < TGg: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TGg < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TGg < Token: superclass typecheck marker */},
+  {(bigint) 2419 /* 6: TGg < TokenOperator: superclass typecheck marker */},
+  {(bigint) 3203 /* 7: TGg < TGg: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -39114,7 +38668,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TGg[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TGg < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TGg < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -39130,7 +38684,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TGg[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenOperator___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -39156,19 +38712,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TGg[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TGg < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TGg < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TGg___parser_index},
-  {(bigint) 0 /* 70: TGg < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TGg < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TGg < TokenOperator: superclass init_table position */},
   {(bigint) parser___lexer___TGg___init_tk},
-  {(bigint) 3 /* 72: TGg < TGg: superclass init_table position */},
+  {(bigint) 4 /* 77: TGg < TGg: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -39220,10 +38778,10 @@ void CHECKNEW_parser___parser_nodes___TGg(val_t p0){
 val_t NEW_TGg_parser___lexer___TGg___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1012;
+  fra.me.line = 1021;
   fra.me.meth = LOCATE_NEW_TGg_parser___lexer___TGg___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -39231,7 +38789,7 @@ val_t NEW_TGg_parser___lexer___TGg___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1012 */
+  /* parser/lexer.nit:1021 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TGg();
   INIT_ATTRIBUTES__parser___parser_nodes___TGg(fra.me.REG[1]);
   parser___lexer___TGg___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -39239,35 +38797,35 @@ val_t NEW_TGg_parser___lexer___TGg___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TGg_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TGg_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TGg_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TGg();
-  INIT_ATTRIBUTES__parser___parser_nodes___TGg(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TGg(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TGg();
+  INIT_ATTRIBUTES__parser___parser_nodes___TGg(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TGg(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TStarship[73] = {
-  {(bigint) 2427 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TStarship[78] = {
+  {(bigint) 2947 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TStarship" /* 2: Class Name */},
   {(bigint) 3 /* 3: TStarship < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TStarship < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TStarship < Token: superclass typecheck marker */},
-  {(bigint) 2427 /* 6: TStarship < TStarship: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TStarship < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TStarship < Token: superclass typecheck marker */},
+  {(bigint) 2419 /* 6: TStarship < TokenOperator: superclass typecheck marker */},
+  {(bigint) 2947 /* 7: TStarship < TStarship: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -39279,7 +38837,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TStarship[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TStarship < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TStarship < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -39295,7 +38853,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TStarship[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenOperator___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -39321,19 +38881,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TStarship[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TStarship < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TStarship < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TStarship___parser_index},
-  {(bigint) 0 /* 70: TStarship < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TStarship < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TStarship < TokenOperator: superclass init_table position */},
   {(bigint) parser___lexer___TStarship___init_tk},
-  {(bigint) 3 /* 72: TStarship < TStarship: superclass init_table position */},
+  {(bigint) 4 /* 77: TStarship < TStarship: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -39385,10 +38947,10 @@ void CHECKNEW_parser___parser_nodes___TStarship(val_t p0){
 val_t NEW_TStarship_parser___lexer___TStarship___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1025;
+  fra.me.line = 1034;
   fra.me.meth = LOCATE_NEW_TStarship_parser___lexer___TStarship___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -39396,7 +38958,7 @@ val_t NEW_TStarship_parser___lexer___TStarship___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1025 */
+  /* parser/lexer.nit:1034 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TStarship();
   INIT_ATTRIBUTES__parser___parser_nodes___TStarship(fra.me.REG[1]);
   parser___lexer___TStarship___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -39404,35 +38966,35 @@ val_t NEW_TStarship_parser___lexer___TStarship___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TStarship_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TStarship_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TStarship_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TStarship();
-  INIT_ATTRIBUTES__parser___parser_nodes___TStarship(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TStarship(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TStarship();
+  INIT_ATTRIBUTES__parser___parser_nodes___TStarship(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TStarship(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TBang[73] = {
-  {(bigint) 2763 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TBang[78] = {
+  {(bigint) 3235 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TBang" /* 2: Class Name */},
   {(bigint) 3 /* 3: TBang < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TBang < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TBang < Token: superclass typecheck marker */},
-  {(bigint) 2763 /* 6: TBang < TBang: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TBang < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TBang < Token: superclass typecheck marker */},
+  {(bigint) 2419 /* 6: TBang < TokenOperator: superclass typecheck marker */},
+  {(bigint) 3235 /* 7: TBang < TBang: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -39444,7 +39006,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TBang[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TBang < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TBang < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -39460,7 +39022,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TBang[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenOperator___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -39486,19 +39050,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TBang[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TBang < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TBang < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TBang___parser_index},
-  {(bigint) 0 /* 70: TBang < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TBang < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TBang < TokenOperator: superclass init_table position */},
   {(bigint) parser___lexer___TBang___init_tk},
-  {(bigint) 3 /* 72: TBang < TBang: superclass init_table position */},
+  {(bigint) 4 /* 77: TBang < TBang: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -39550,10 +39116,10 @@ void CHECKNEW_parser___parser_nodes___TBang(val_t p0){
 val_t NEW_TBang_parser___lexer___TBang___init_tk(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1038;
+  fra.me.line = 1047;
   fra.me.meth = LOCATE_NEW_TBang_parser___lexer___TBang___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -39561,7 +39127,7 @@ val_t NEW_TBang_parser___lexer___TBang___init_tk(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1038 */
+  /* parser/lexer.nit:1047 */
   fra.me.REG[1] = NEW_parser___parser_nodes___TBang();
   INIT_ATTRIBUTES__parser___parser_nodes___TBang(fra.me.REG[1]);
   parser___lexer___TBang___init_tk(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -39569,35 +39135,35 @@ val_t NEW_TBang_parser___lexer___TBang___init_tk(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_TBang_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TBang_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TBang_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TBang();
-  INIT_ATTRIBUTES__parser___parser_nodes___TBang(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TBang(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TBang();
+  INIT_ATTRIBUTES__parser___parser_nodes___TBang(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TBang(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TClassid[73] = {
-  {(bigint) 2751 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TClassid[77] = {
+  {(bigint) 2511 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TClassid" /* 2: Class Name */},
   {(bigint) 3 /* 3: TClassid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TClassid < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TClassid < Token: superclass typecheck marker */},
-  {(bigint) 2751 /* 6: TClassid < TClassid: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TClassid < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TClassid < Token: superclass typecheck marker */},
+  {(bigint) 2511 /* 6: TClassid < TClassid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -39609,7 +39175,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TClassid[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TClassid < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TClassid < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -39625,7 +39191,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TClassid[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TClassid___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -39651,19 +39219,20 @@ const classtable_elt_t VFT_parser___parser_nodes___TClassid[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TClassid < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: TClassid < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TClassid___parser_index},
-  {(bigint) 0 /* 70: TClassid < Token: superclass init_table position */},
+  {(bigint) 0 /* 73: TClassid < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TClassid___init_tk},
-  {(bigint) 3 /* 72: TClassid < TClassid: superclass init_table position */},
+  {(bigint) 3 /* 76: TClassid < TClassid: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -39718,7 +39287,7 @@ val_t NEW_TClassid_parser___lexer___TClassid___init_tk(val_t p0, val_t p1){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1051;
+  fra.me.line = 1060;
   fra.me.meth = LOCATE_NEW_TClassid_parser___lexer___TClassid___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -39728,7 +39297,7 @@ val_t NEW_TClassid_parser___lexer___TClassid___init_tk(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:1051 */
+  /* parser/lexer.nit:1060 */
   fra.me.REG[2] = NEW_parser___parser_nodes___TClassid();
   INIT_ATTRIBUTES__parser___parser_nodes___TClassid(fra.me.REG[2]);
   parser___lexer___TClassid___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -39736,35 +39305,35 @@ val_t NEW_TClassid_parser___lexer___TClassid___init_tk(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_TClassid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TClassid_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TClassid_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TClassid();
-  INIT_ATTRIBUTES__parser___parser_nodes___TClassid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TClassid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TClassid();
+  INIT_ATTRIBUTES__parser___parser_nodes___TClassid(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TClassid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TId[73] = {
-  {(bigint) 2691 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TId[77] = {
+  {(bigint) 2483 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TId" /* 2: Class Name */},
   {(bigint) 3 /* 3: TId < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TId < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TId < Token: superclass typecheck marker */},
-  {(bigint) 2691 /* 6: TId < TId: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TId < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TId < Token: superclass typecheck marker */},
+  {(bigint) 2483 /* 6: TId < TId: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -39776,7 +39345,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TId[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TId < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TId < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -39792,7 +39361,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TId[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TId___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -39818,19 +39389,20 @@ const classtable_elt_t VFT_parser___parser_nodes___TId[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TId < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: TId < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TId___parser_index},
-  {(bigint) 0 /* 70: TId < Token: superclass init_table position */},
+  {(bigint) 0 /* 73: TId < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TId___init_tk},
-  {(bigint) 3 /* 72: TId < TId: superclass init_table position */},
+  {(bigint) 3 /* 76: TId < TId: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -39885,7 +39457,7 @@ val_t NEW_TId_parser___lexer___TId___init_tk(val_t p0, val_t p1){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1064;
+  fra.me.line = 1073;
   fra.me.meth = LOCATE_NEW_TId_parser___lexer___TId___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -39895,7 +39467,7 @@ val_t NEW_TId_parser___lexer___TId___init_tk(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:1064 */
+  /* parser/lexer.nit:1073 */
   fra.me.REG[2] = NEW_parser___parser_nodes___TId();
   INIT_ATTRIBUTES__parser___parser_nodes___TId(fra.me.REG[2]);
   parser___lexer___TId___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -39903,35 +39475,35 @@ val_t NEW_TId_parser___lexer___TId___init_tk(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_TId_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TId_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TId_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TId();
-  INIT_ATTRIBUTES__parser___parser_nodes___TId(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TId(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TId();
+  INIT_ATTRIBUTES__parser___parser_nodes___TId(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TId(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TAttrid[73] = {
-  {(bigint) 2767 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TAttrid[77] = {
+  {(bigint) 2527 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TAttrid" /* 2: Class Name */},
   {(bigint) 3 /* 3: TAttrid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TAttrid < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TAttrid < Token: superclass typecheck marker */},
-  {(bigint) 2767 /* 6: TAttrid < TAttrid: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TAttrid < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TAttrid < Token: superclass typecheck marker */},
+  {(bigint) 2527 /* 6: TAttrid < TAttrid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -39943,7 +39515,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TAttrid[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TAttrid < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TAttrid < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -39959,7 +39531,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TAttrid[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TAttrid___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -39985,19 +39559,20 @@ const classtable_elt_t VFT_parser___parser_nodes___TAttrid[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TAttrid < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: TAttrid < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TAttrid___parser_index},
-  {(bigint) 0 /* 70: TAttrid < Token: superclass init_table position */},
+  {(bigint) 0 /* 73: TAttrid < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TAttrid___init_tk},
-  {(bigint) 3 /* 72: TAttrid < TAttrid: superclass init_table position */},
+  {(bigint) 3 /* 76: TAttrid < TAttrid: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -40052,7 +39627,7 @@ val_t NEW_TAttrid_parser___lexer___TAttrid___init_tk(val_t p0, val_t p1){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1077;
+  fra.me.line = 1086;
   fra.me.meth = LOCATE_NEW_TAttrid_parser___lexer___TAttrid___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -40062,7 +39637,7 @@ val_t NEW_TAttrid_parser___lexer___TAttrid___init_tk(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:1077 */
+  /* parser/lexer.nit:1086 */
   fra.me.REG[2] = NEW_parser___parser_nodes___TAttrid();
   INIT_ATTRIBUTES__parser___parser_nodes___TAttrid(fra.me.REG[2]);
   parser___lexer___TAttrid___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -40070,35 +39645,35 @@ val_t NEW_TAttrid_parser___lexer___TAttrid___init_tk(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_TAttrid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TAttrid_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TAttrid_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TAttrid();
-  INIT_ATTRIBUTES__parser___parser_nodes___TAttrid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TAttrid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TAttrid();
+  INIT_ATTRIBUTES__parser___parser_nodes___TAttrid(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TAttrid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TNumber[73] = {
-  {(bigint) 2463 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TNumber[78] = {
+  {(bigint) 2971 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TNumber" /* 2: Class Name */},
   {(bigint) 3 /* 3: TNumber < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TNumber < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TNumber < Token: superclass typecheck marker */},
-  {(bigint) 2463 /* 6: TNumber < TNumber: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TNumber < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TNumber < Token: superclass typecheck marker */},
+  {(bigint) 2423 /* 6: TNumber < TokenLiteral: superclass typecheck marker */},
+  {(bigint) 2971 /* 7: TNumber < TNumber: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -40110,7 +39685,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TNumber[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TNumber < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TNumber < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -40126,7 +39701,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TNumber[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenLiteral___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -40152,19 +39729,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TNumber[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TNumber < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TNumber < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TNumber___parser_index},
-  {(bigint) 0 /* 70: TNumber < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TNumber < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TNumber < TokenLiteral: superclass init_table position */},
   {(bigint) parser___lexer___TNumber___init_tk},
-  {(bigint) 3 /* 72: TNumber < TNumber: superclass init_table position */},
+  {(bigint) 4 /* 77: TNumber < TNumber: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -40216,10 +39795,10 @@ void CHECKNEW_parser___parser_nodes___TNumber(val_t p0){
 val_t NEW_TNumber_parser___lexer___TNumber___init_tk(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1090;
+  fra.me.line = 1099;
   fra.me.meth = LOCATE_NEW_TNumber_parser___lexer___TNumber___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -40229,7 +39808,7 @@ val_t NEW_TNumber_parser___lexer___TNumber___init_tk(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:1090 */
+  /* parser/lexer.nit:1099 */
   fra.me.REG[2] = NEW_parser___parser_nodes___TNumber();
   INIT_ATTRIBUTES__parser___parser_nodes___TNumber(fra.me.REG[2]);
   parser___lexer___TNumber___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -40237,35 +39816,35 @@ val_t NEW_TNumber_parser___lexer___TNumber___init_tk(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_TNumber_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TNumber_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TNumber_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TNumber();
-  INIT_ATTRIBUTES__parser___parser_nodes___TNumber(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TNumber(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TNumber();
+  INIT_ATTRIBUTES__parser___parser_nodes___TNumber(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TNumber(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TFloat[73] = {
-  {(bigint) 2707 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TFloat[78] = {
+  {(bigint) 3211 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TFloat" /* 2: Class Name */},
   {(bigint) 3 /* 3: TFloat < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TFloat < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TFloat < Token: superclass typecheck marker */},
-  {(bigint) 2707 /* 6: TFloat < TFloat: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TFloat < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TFloat < Token: superclass typecheck marker */},
+  {(bigint) 2423 /* 6: TFloat < TokenLiteral: superclass typecheck marker */},
+  {(bigint) 3211 /* 7: TFloat < TFloat: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -40277,7 +39856,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TFloat[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TFloat < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TFloat < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -40293,7 +39872,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TFloat[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenLiteral___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -40319,19 +39900,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TFloat[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TFloat < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TFloat < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TFloat___parser_index},
-  {(bigint) 0 /* 70: TFloat < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TFloat < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TFloat < TokenLiteral: superclass init_table position */},
   {(bigint) parser___lexer___TFloat___init_tk},
-  {(bigint) 3 /* 72: TFloat < TFloat: superclass init_table position */},
+  {(bigint) 4 /* 77: TFloat < TFloat: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -40383,10 +39966,10 @@ void CHECKNEW_parser___parser_nodes___TFloat(val_t p0){
 val_t NEW_TFloat_parser___lexer___TFloat___init_tk(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1103;
+  fra.me.line = 1112;
   fra.me.meth = LOCATE_NEW_TFloat_parser___lexer___TFloat___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -40396,7 +39979,7 @@ val_t NEW_TFloat_parser___lexer___TFloat___init_tk(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:1103 */
+  /* parser/lexer.nit:1112 */
   fra.me.REG[2] = NEW_parser___parser_nodes___TFloat();
   INIT_ATTRIBUTES__parser___parser_nodes___TFloat(fra.me.REG[2]);
   parser___lexer___TFloat___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -40404,35 +39987,35 @@ val_t NEW_TFloat_parser___lexer___TFloat___init_tk(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_TFloat_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TFloat_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TFloat_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TFloat();
-  INIT_ATTRIBUTES__parser___parser_nodes___TFloat(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TFloat(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TFloat();
+  INIT_ATTRIBUTES__parser___parser_nodes___TFloat(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TFloat(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TChar[73] = {
-  {(bigint) 2755 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TChar[78] = {
+  {(bigint) 3231 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TChar" /* 2: Class Name */},
   {(bigint) 3 /* 3: TChar < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TChar < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TChar < Token: superclass typecheck marker */},
-  {(bigint) 2755 /* 6: TChar < TChar: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TChar < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TChar < Token: superclass typecheck marker */},
+  {(bigint) 2423 /* 6: TChar < TokenLiteral: superclass typecheck marker */},
+  {(bigint) 3231 /* 7: TChar < TChar: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -40444,7 +40027,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TChar[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TChar < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TChar < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -40460,7 +40043,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TChar[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenLiteral___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -40486,19 +40071,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TChar[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TChar < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TChar < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TChar___parser_index},
-  {(bigint) 0 /* 70: TChar < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TChar < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TChar < TokenLiteral: superclass init_table position */},
   {(bigint) parser___lexer___TChar___init_tk},
-  {(bigint) 3 /* 72: TChar < TChar: superclass init_table position */},
+  {(bigint) 4 /* 77: TChar < TChar: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -40550,10 +40137,10 @@ void CHECKNEW_parser___parser_nodes___TChar(val_t p0){
 val_t NEW_TChar_parser___lexer___TChar___init_tk(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1116;
+  fra.me.line = 1125;
   fra.me.meth = LOCATE_NEW_TChar_parser___lexer___TChar___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -40563,7 +40150,7 @@ val_t NEW_TChar_parser___lexer___TChar___init_tk(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:1116 */
+  /* parser/lexer.nit:1125 */
   fra.me.REG[2] = NEW_parser___parser_nodes___TChar();
   INIT_ATTRIBUTES__parser___parser_nodes___TChar(fra.me.REG[2]);
   parser___lexer___TChar___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -40571,35 +40158,35 @@ val_t NEW_TChar_parser___lexer___TChar___init_tk(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_TChar_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TChar_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TChar_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TChar();
-  INIT_ATTRIBUTES__parser___parser_nodes___TChar(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TChar(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TChar();
+  INIT_ATTRIBUTES__parser___parser_nodes___TChar(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TChar(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TString[73] = {
-  {(bigint) 2419 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TString[78] = {
+  {(bigint) 2939 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TString" /* 2: Class Name */},
   {(bigint) 3 /* 3: TString < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TString < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TString < Token: superclass typecheck marker */},
-  {(bigint) 2419 /* 6: TString < TString: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TString < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TString < Token: superclass typecheck marker */},
+  {(bigint) 2423 /* 6: TString < TokenLiteral: superclass typecheck marker */},
+  {(bigint) 2939 /* 7: TString < TString: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -40611,7 +40198,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TString[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TString < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TString < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -40627,7 +40214,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TString[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenLiteral___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -40653,19 +40242,21 @@ const classtable_elt_t VFT_parser___parser_nodes___TString[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TString < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TString < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___TString___parser_index},
-  {(bigint) 0 /* 70: TString < Token: superclass init_table position */},
+  {(bigint) 1 /* 73: TString < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TString < TokenLiteral: superclass init_table position */},
   {(bigint) parser___lexer___TString___init_tk},
-  {(bigint) 3 /* 72: TString < TString: superclass init_table position */},
+  {(bigint) 4 /* 77: TString < TString: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -40717,10 +40308,10 @@ void CHECKNEW_parser___parser_nodes___TString(val_t p0){
 val_t NEW_TString_parser___lexer___TString___init_tk(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1129;
+  fra.me.line = 1138;
   fra.me.meth = LOCATE_NEW_TString_parser___lexer___TString___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -40730,7 +40321,7 @@ val_t NEW_TString_parser___lexer___TString___init_tk(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:1129 */
+  /* parser/lexer.nit:1138 */
   fra.me.REG[2] = NEW_parser___parser_nodes___TString();
   INIT_ATTRIBUTES__parser___parser_nodes___TString(fra.me.REG[2]);
   parser___lexer___TString___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -40738,35 +40329,206 @@ val_t NEW_TString_parser___lexer___TString___init_tk(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_TString_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TString_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_TString_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TString();
-  INIT_ATTRIBUTES__parser___parser_nodes___TString(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TString(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TString();
+  INIT_ATTRIBUTES__parser___parser_nodes___TString(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TString(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TStartString[73] = {
-  {(bigint) 2423 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TStartString[78] = {
+  {(bigint) 2943 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TStartString" /* 2: Class Name */},
   {(bigint) 3 /* 3: TStartString < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TStartString < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TStartString < Token: superclass typecheck marker */},
-  {(bigint) 2423 /* 6: TStartString < TStartString: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TStartString < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TStartString < Token: superclass typecheck marker */},
+  {(bigint) 2423 /* 6: TStartString < TokenLiteral: superclass typecheck marker */},
+  {(bigint) 2943 /* 7: TStartString < TStartString: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) standard___time___Object___get_time},
+  {(bigint) 3 /* 19: TStartString < Object: superclass init_table position */},
+  {(bigint) standard___kernel___Object___object_id},
+  {(bigint) standard___kernel___Object___is_same_type},
+  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) standard___kernel___Object_____neq},
+  {(bigint) standard___kernel___Object___output},
+  {(bigint) standard___kernel___Object___output_class_name},
+  {(bigint) standard___kernel___Object___exit},
+  {(bigint) standard___kernel___Object___sys},
+  {(bigint) standard___file___Object___printn},
+  {(bigint) standard___file___Object___print},
+  {(bigint) standard___file___Object___getc},
+  {(bigint) standard___file___Object___gets},
+  {(bigint) standard___file___Object___stdin},
+  {(bigint) standard___file___Object___stdout},
+  {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenLiteral___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
+  {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser___parser_prod___ANode___parent},
+  {(bigint) parser___parser_prod___ANode___parent__eq},
+  {(bigint) parser___parser_prod___ANode___remove_child},
+  {(bigint) parser___parser_prod___Token___replace_child},
+  {(bigint) parser___parser_prod___ANode___replace_with},
+  {(bigint) parser___parser_prod___Token___visit_all},
+  {(bigint) 2 /* 63: TStartString < ANode: superclass init_table position */},
+  {(bigint) parser___parser_nodes___ANode___location},
+  {(bigint) parser___parser_nodes___ANode___hot_location},
+  {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
+  {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
+  {(bigint) syntax___typing___ANode___accept_typing},
+  {(bigint) syntax___typing___ANode___after_typing},
+  {(bigint) syntax___syntax_base___Token___to_symbol},
+  {(bigint) parser___lexer___TStartString___parser_index},
+  {(bigint) 1 /* 73: TStartString < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) 0 /* 75: TStartString < TokenLiteral: superclass init_table position */},
+  {(bigint) parser___lexer___TStartString___init_tk},
+  {(bigint) 4 /* 77: TStartString < TStartString: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TStartString::_parent */
+/* 3: Attribute TStartString::_location */
+/* 4: Attribute TStartString::_symbol_cache */
+/* 5: Attribute TStartString::_text */
+void INIT_ATTRIBUTES__parser___parser_nodes___TStartString(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TStartString;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_parser___parser_nodes___TStartString(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___TStartString;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_parser___parser_nodes___TStartString(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___TStartString;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_text", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TStartString_parser___lexer___TStartString___init_tk(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1151;
+  fra.me.meth = LOCATE_NEW_TStartString_parser___lexer___TStartString___init_tk;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* parser/lexer.nit:1151 */
+  fra.me.REG[2] = NEW_parser___parser_nodes___TStartString();
+  INIT_ATTRIBUTES__parser___parser_nodes___TStartString(fra.me.REG[2]);
+  parser___lexer___TStartString___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_parser___parser_nodes___TStartString(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t NEW_TStartString_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_TStartString_parser___parser_nodes___ANode___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TStartString();
+  INIT_ATTRIBUTES__parser___parser_nodes___TStartString(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TStartString(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___parser_nodes___TMidString[78] = {
+  {(bigint) 2987 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "TMidString" /* 2: Class Name */},
+  {(bigint) 3 /* 3: TMidString < Object: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TMidString < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TMidString < Token: superclass typecheck marker */},
+  {(bigint) 2423 /* 6: TMidString < TokenLiteral: superclass typecheck marker */},
+  {(bigint) 2987 /* 7: TMidString < TMidString: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -40778,7 +40540,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TStartString[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TStartString < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TMidString < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -40794,7 +40556,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TStartString[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TokenLiteral___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -40820,55 +40584,57 @@ const classtable_elt_t VFT_parser___parser_nodes___TStartString[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TStartString < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: TMidString < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
+  {(bigint) parser___lexer___TMidString___parser_index},
+  {(bigint) 1 /* 73: TMidString < Token: superclass init_table position */},
   {(bigint) parser___lexer___Token___text},
-  {(bigint) parser___lexer___TStartString___parser_index},
-  {(bigint) 0 /* 70: TStartString < Token: superclass init_table position */},
-  {(bigint) parser___lexer___TStartString___init_tk},
-  {(bigint) 3 /* 72: TStartString < TStartString: superclass init_table position */},
+  {(bigint) 0 /* 75: TMidString < TokenLiteral: superclass init_table position */},
+  {(bigint) parser___lexer___TMidString___init_tk},
+  {(bigint) 4 /* 77: TMidString < TMidString: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute TStartString::_parent */
-/* 3: Attribute TStartString::_location */
-/* 4: Attribute TStartString::_symbol_cache */
-/* 5: Attribute TStartString::_text */
-void INIT_ATTRIBUTES__parser___parser_nodes___TStartString(val_t p0){
+/* 2: Attribute TMidString::_parent */
+/* 3: Attribute TMidString::_location */
+/* 4: Attribute TMidString::_symbol_cache */
+/* 5: Attribute TMidString::_text */
+void INIT_ATTRIBUTES__parser___parser_nodes___TMidString(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TStartString;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TMidString;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___parser_nodes___TStartString(void)
+val_t NEW_parser___parser_nodes___TMidString(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___TStartString;
+  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___TMidString;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___parser_nodes___TStartString(val_t p0){
+void CHECKNEW_parser___parser_nodes___TMidString(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___TStartString;
+  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___TMidString;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -40881,14 +40647,14 @@ void CHECKNEW_parser___parser_nodes___TStartString(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_TStartString_parser___lexer___TStartString___init_tk(val_t p0, val_t p1){
+val_t NEW_TMidString_parser___lexer___TMidString___init_tk(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1142;
-  fra.me.meth = LOCATE_NEW_TStartString_parser___lexer___TStartString___init_tk;
+  fra.me.line = 1164;
+  fra.me.meth = LOCATE_NEW_TMidString_parser___lexer___TMidString___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
@@ -40897,43 +40663,43 @@ val_t NEW_TStartString_parser___lexer___TStartString___init_tk(val_t p0, val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:1142 */
-  fra.me.REG[2] = NEW_parser___parser_nodes___TStartString();
-  INIT_ATTRIBUTES__parser___parser_nodes___TStartString(fra.me.REG[2]);
-  parser___lexer___TStartString___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_parser___parser_nodes___TStartString(fra.me.REG[2]);
+  /* parser/lexer.nit:1164 */
+  fra.me.REG[2] = NEW_parser___parser_nodes___TMidString();
+  INIT_ATTRIBUTES__parser___parser_nodes___TMidString(fra.me.REG[2]);
+  parser___lexer___TMidString___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_parser___parser_nodes___TMidString(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_TStartString_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TMidString_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_TStartString_parser___parser_nodes___ANode___init;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_TMidString_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TStartString();
-  INIT_ATTRIBUTES__parser___parser_nodes___TStartString(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TStartString(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TMidString();
+  INIT_ATTRIBUTES__parser___parser_nodes___TMidString(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TMidString(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TMidString[73] = {
-  {(bigint) 2479 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TEndString[77] = {
+  {(bigint) 2491 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "TMidString" /* 2: Class Name */},
-  {(bigint) 3 /* 3: TMidString < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TMidString < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TMidString < Token: superclass typecheck marker */},
-  {(bigint) 2479 /* 6: TMidString < TMidString: superclass typecheck marker */},
+  {(bigint) "TEndString" /* 2: Class Name */},
+  {(bigint) 3 /* 3: TEndString < Object: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TEndString < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TEndString < Token: superclass typecheck marker */},
+  {(bigint) 2491 /* 6: TEndString < TEndString: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -40945,7 +40711,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TMidString[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TMidString < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TEndString < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -40961,7 +40727,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TMidString[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___Token___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -40987,55 +40755,56 @@ const classtable_elt_t VFT_parser___parser_nodes___TMidString[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TMidString < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: TEndString < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
+  {(bigint) parser___lexer___TEndString___parser_index},
+  {(bigint) 0 /* 73: TEndString < Token: superclass init_table position */},
   {(bigint) parser___lexer___Token___text},
-  {(bigint) parser___lexer___TMidString___parser_index},
-  {(bigint) 0 /* 70: TMidString < Token: superclass init_table position */},
-  {(bigint) parser___lexer___TMidString___init_tk},
-  {(bigint) 3 /* 72: TMidString < TMidString: superclass init_table position */},
+  {(bigint) parser___lexer___TEndString___init_tk},
+  {(bigint) 3 /* 76: TEndString < TEndString: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute TMidString::_parent */
-/* 3: Attribute TMidString::_location */
-/* 4: Attribute TMidString::_symbol_cache */
-/* 5: Attribute TMidString::_text */
-void INIT_ATTRIBUTES__parser___parser_nodes___TMidString(val_t p0){
+/* 2: Attribute TEndString::_parent */
+/* 3: Attribute TEndString::_location */
+/* 4: Attribute TEndString::_symbol_cache */
+/* 5: Attribute TEndString::_text */
+void INIT_ATTRIBUTES__parser___parser_nodes___TEndString(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TMidString;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TEndString;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___parser_nodes___TMidString(void)
+val_t NEW_parser___parser_nodes___TEndString(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___TMidString;
+  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___TEndString;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___parser_nodes___TMidString(val_t p0){
+void CHECKNEW_parser___parser_nodes___TEndString(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___TMidString;
+  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___TEndString;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -41048,14 +40817,14 @@ void CHECKNEW_parser___parser_nodes___TMidString(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_TMidString_parser___lexer___TMidString___init_tk(val_t p0, val_t p1){
+val_t NEW_TEndString_parser___lexer___TEndString___init_tk(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1155;
-  fra.me.meth = LOCATE_NEW_TMidString_parser___lexer___TMidString___init_tk;
+  fra.me.line = 1177;
+  fra.me.meth = LOCATE_NEW_TEndString_parser___lexer___TEndString___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
@@ -41064,43 +40833,43 @@ val_t NEW_TMidString_parser___lexer___TMidString___init_tk(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:1155 */
-  fra.me.REG[2] = NEW_parser___parser_nodes___TMidString();
-  INIT_ATTRIBUTES__parser___parser_nodes___TMidString(fra.me.REG[2]);
-  parser___lexer___TMidString___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_parser___parser_nodes___TMidString(fra.me.REG[2]);
+  /* parser/lexer.nit:1177 */
+  fra.me.REG[2] = NEW_parser___parser_nodes___TEndString();
+  INIT_ATTRIBUTES__parser___parser_nodes___TEndString(fra.me.REG[2]);
+  parser___lexer___TEndString___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_parser___parser_nodes___TEndString(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_TMidString_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TEndString_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_TMidString_parser___parser_nodes___ANode___init;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_TEndString_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TMidString();
-  INIT_ATTRIBUTES__parser___parser_nodes___TMidString(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TMidString(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TEndString();
+  INIT_ATTRIBUTES__parser___parser_nodes___TEndString(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TEndString(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___TEndString[73] = {
-  {(bigint) 2719 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___TBadString[77] = {
+  {(bigint) 2519 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "TEndString" /* 2: Class Name */},
-  {(bigint) 3 /* 3: TEndString < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: TEndString < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: TEndString < Token: superclass typecheck marker */},
-  {(bigint) 2719 /* 6: TEndString < TEndString: superclass typecheck marker */},
+  {(bigint) "TBadString" /* 2: Class Name */},
+  {(bigint) 3 /* 3: TBadString < Object: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TBadString < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TBadString < Token: superclass typecheck marker */},
+  {(bigint) 2519 /* 6: TBadString < TBadString: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41112,7 +40881,7 @@ const classtable_elt_t VFT_parser___parser_nodes___TEndString[73] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TEndString < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TBadString < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -41128,7 +40897,9 @@ const classtable_elt_t VFT_parser___parser_nodes___TEndString[73] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TBadString___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -41154,55 +40925,56 @@ const classtable_elt_t VFT_parser___parser_nodes___TEndString[73] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: TEndString < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: TBadString < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
+  {(bigint) parser___lexer___TBadString___parser_index},
+  {(bigint) 0 /* 73: TBadString < Token: superclass init_table position */},
   {(bigint) parser___lexer___Token___text},
-  {(bigint) parser___lexer___TEndString___parser_index},
-  {(bigint) 0 /* 70: TEndString < Token: superclass init_table position */},
-  {(bigint) parser___lexer___TEndString___init_tk},
-  {(bigint) 3 /* 72: TEndString < TEndString: superclass init_table position */},
+  {(bigint) parser___lexer___TBadString___init_tk},
+  {(bigint) 3 /* 76: TBadString < TBadString: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute TEndString::_parent */
-/* 3: Attribute TEndString::_location */
-/* 4: Attribute TEndString::_symbol_cache */
-/* 5: Attribute TEndString::_text */
-void INIT_ATTRIBUTES__parser___parser_nodes___TEndString(val_t p0){
+/* 2: Attribute TBadString::_parent */
+/* 3: Attribute TBadString::_location */
+/* 4: Attribute TBadString::_symbol_cache */
+/* 5: Attribute TBadString::_text */
+void INIT_ATTRIBUTES__parser___parser_nodes___TBadString(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TEndString;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TBadString;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___parser_nodes___TEndString(void)
+val_t NEW_parser___parser_nodes___TBadString(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___TEndString;
+  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___TBadString;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___parser_nodes___TEndString(val_t p0){
+void CHECKNEW_parser___parser_nodes___TBadString(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___TEndString;
+  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___TBadString;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -41215,14 +40987,14 @@ void CHECKNEW_parser___parser_nodes___TEndString(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_TEndString_parser___lexer___TEndString___init_tk(val_t p0, val_t p1){
+val_t NEW_TBadString_parser___lexer___TBadString___init_tk(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1168;
-  fra.me.meth = LOCATE_NEW_TEndString_parser___lexer___TEndString___init_tk;
+  fra.me.line = 1203;
+  fra.me.meth = LOCATE_NEW_TBadString_parser___lexer___TBadString___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
@@ -41231,43 +41003,213 @@ val_t NEW_TEndString_parser___lexer___TEndString___init_tk(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:1168 */
-  fra.me.REG[2] = NEW_parser___parser_nodes___TEndString();
-  INIT_ATTRIBUTES__parser___parser_nodes___TEndString(fra.me.REG[2]);
-  parser___lexer___TEndString___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_parser___parser_nodes___TEndString(fra.me.REG[2]);
+  /* parser/lexer.nit:1203 */
+  fra.me.REG[2] = NEW_parser___parser_nodes___TBadString();
+  INIT_ATTRIBUTES__parser___parser_nodes___TBadString(fra.me.REG[2]);
+  parser___lexer___TBadString___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_parser___parser_nodes___TBadString(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_TEndString_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_TBadString_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_TBadString_parser___parser_nodes___ANode___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TBadString();
+  INIT_ATTRIBUTES__parser___parser_nodes___TBadString(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TBadString(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___parser_nodes___TBadChar[77] = {
+  {(bigint) 2523 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "TBadChar" /* 2: Class Name */},
+  {(bigint) 3 /* 3: TBadChar < Object: superclass typecheck marker */},
+  {(bigint) 303 /* 4: TBadChar < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: TBadChar < Token: superclass typecheck marker */},
+  {(bigint) 2523 /* 6: TBadChar < TBadChar: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) standard___time___Object___get_time},
+  {(bigint) 2 /* 19: TBadChar < Object: superclass init_table position */},
+  {(bigint) standard___kernel___Object___object_id},
+  {(bigint) standard___kernel___Object___is_same_type},
+  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) standard___kernel___Object_____neq},
+  {(bigint) standard___kernel___Object___output},
+  {(bigint) standard___kernel___Object___output_class_name},
+  {(bigint) standard___kernel___Object___exit},
+  {(bigint) standard___kernel___Object___sys},
+  {(bigint) standard___file___Object___printn},
+  {(bigint) standard___file___Object___print},
+  {(bigint) standard___file___Object___getc},
+  {(bigint) standard___file___Object___gets},
+  {(bigint) standard___file___Object___stdin},
+  {(bigint) standard___file___Object___stdout},
+  {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___TBadChar___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
+  {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser___parser_prod___ANode___parent},
+  {(bigint) parser___parser_prod___ANode___parent__eq},
+  {(bigint) parser___parser_prod___ANode___remove_child},
+  {(bigint) parser___parser_prod___Token___replace_child},
+  {(bigint) parser___parser_prod___ANode___replace_with},
+  {(bigint) parser___parser_prod___Token___visit_all},
+  {(bigint) 1 /* 63: TBadChar < ANode: superclass init_table position */},
+  {(bigint) parser___parser_nodes___ANode___location},
+  {(bigint) parser___parser_nodes___ANode___hot_location},
+  {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
+  {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
+  {(bigint) syntax___typing___ANode___accept_typing},
+  {(bigint) syntax___typing___ANode___after_typing},
+  {(bigint) syntax___syntax_base___Token___to_symbol},
+  {(bigint) parser___lexer___TBadChar___parser_index},
+  {(bigint) 0 /* 73: TBadChar < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
+  {(bigint) parser___lexer___TBadChar___init_tk},
+  {(bigint) 3 /* 76: TBadChar < TBadChar: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute TBadChar::_parent */
+/* 3: Attribute TBadChar::_location */
+/* 4: Attribute TBadChar::_symbol_cache */
+/* 5: Attribute TBadChar::_text */
+void INIT_ATTRIBUTES__parser___parser_nodes___TBadChar(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_TEndString_parser___parser_nodes___ANode___init;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___TBadChar;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_parser___parser_nodes___TBadChar(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___TBadChar;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_parser___parser_nodes___TBadChar(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___TBadChar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_text", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_TBadChar_parser___lexer___TBadChar___init_tk(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1190;
+  fra.me.meth = LOCATE_NEW_TBadChar_parser___lexer___TBadChar___init_tk;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___TEndString();
-  INIT_ATTRIBUTES__parser___parser_nodes___TEndString(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___TEndString(fra.me.REG[1]);
+  fra.me.REG[1] = p1;
+  /* parser/lexer.nit:1190 */
+  fra.me.REG[2] = NEW_parser___parser_nodes___TBadChar();
+  INIT_ATTRIBUTES__parser___parser_nodes___TBadChar(fra.me.REG[2]);
+  parser___lexer___TBadChar___init_tk(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_parser___parser_nodes___TBadChar(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_parser___parser_nodes___EOF[74] = {
-  {(bigint) 2987 /* 0: Identity */},
+val_t NEW_TBadChar_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_TBadChar_parser___parser_nodes___ANode___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___TBadChar();
+  INIT_ATTRIBUTES__parser___parser_nodes___TBadChar(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___TBadChar(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___parser_nodes___EOF[78] = {
+  {(bigint) 2747 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "EOF" /* 2: Class Name */},
   {(bigint) 3 /* 3: EOF < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: EOF < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: EOF < Token: superclass typecheck marker */},
-  {(bigint) 2987 /* 6: EOF < EOF: superclass typecheck marker */},
+  {(bigint) 303 /* 4: EOF < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: EOF < Token: superclass typecheck marker */},
+  {(bigint) 2747 /* 6: EOF < EOF: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41279,7 +41221,7 @@ const classtable_elt_t VFT_parser___parser_nodes___EOF[74] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: EOF < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: EOF < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -41295,7 +41237,9 @@ const classtable_elt_t VFT_parser___parser_nodes___EOF[74] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___EOF___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -41321,19 +41265,20 @@ const classtable_elt_t VFT_parser___parser_nodes___EOF[74] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: EOF < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: EOF < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___EOF___parser_index},
-  {(bigint) 0 /* 70: EOF < Token: superclass init_table position */},
+  {(bigint) 0 /* 73: EOF < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___EOF___init},
-  {(bigint) 3 /* 72: EOF < EOF: superclass init_table position */},
+  {(bigint) 3 /* 76: EOF < EOF: superclass init_table position */},
   {(bigint) parser___parser_nodes___EOF___noinit},
 };
 /* 0: Pointer to the classtable */
@@ -41389,7 +41334,7 @@ val_t NEW_EOF_parser___lexer___EOF___init(val_t p0){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1182;
+  fra.me.line = 1217;
   fra.me.meth = LOCATE_NEW_EOF_parser___lexer___EOF___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -41397,7 +41342,7 @@ val_t NEW_EOF_parser___lexer___EOF___init(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1182 */
+  /* parser/lexer.nit:1217 */
   fra.me.REG[1] = NEW_parser___parser_nodes___EOF();
   INIT_ATTRIBUTES__parser___parser_nodes___EOF(fra.me.REG[1]);
   parser___lexer___EOF___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -41411,13 +41356,13 @@ val_t NEW_EOF_parser___parser_nodes___EOF___noinit(void){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 313;
+  fra.me.line = 379;
   fra.me.meth = LOCATE_NEW_EOF_parser___parser_nodes___EOF___noinit;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_nodes.nit:313 */
+  /* parser/parser_nodes.nit:379 */
   fra.me.REG[0] = NEW_parser___parser_nodes___EOF();
   INIT_ATTRIBUTES__parser___parser_nodes___EOF(fra.me.REG[0]);
   parser___parser_nodes___EOF___noinit(fra.me.REG[0], init_table);
@@ -41425,15 +41370,16 @@ val_t NEW_EOF_parser___parser_nodes___EOF___noinit(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AError[78] = {
-  {(bigint) 3443 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AError[82] = {
+  {(bigint) 3515 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AError" /* 2: Class Name */},
   {(bigint) 3 /* 3: AError < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AError < ANode: superclass typecheck marker */},
-  {(bigint) 331 /* 5: AError < Token: superclass typecheck marker */},
-  {(bigint) 2987 /* 6: AError < EOF: superclass typecheck marker */},
-  {(bigint) 3443 /* 7: AError < AError: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AError < ANode: superclass typecheck marker */},
+  {(bigint) 323 /* 5: AError < Token: superclass typecheck marker */},
+  {(bigint) 2747 /* 6: AError < EOF: superclass typecheck marker */},
+  {(bigint) 3515 /* 7: AError < AError: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41444,7 +41390,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AError[78] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AError < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: AError < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -41460,7 +41406,9 @@ const classtable_elt_t VFT_parser___parser_nodes___AError[78] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) parser___lexer___Token___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) parser___parser_nodes___EOF___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -41486,23 +41434,24 @@ const classtable_elt_t VFT_parser___parser_nodes___AError[78] = {
   {(bigint) parser___parser_prod___Token___replace_child},
   {(bigint) parser___parser_prod___ANode___replace_with},
   {(bigint) parser___parser_prod___Token___visit_all},
-  {(bigint) 1 /* 60: AError < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: AError < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) syntax___syntax_base___Token___to_symbol},
-  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___EOF___parser_index},
-  {(bigint) 0 /* 70: AError < Token: superclass init_table position */},
+  {(bigint) 0 /* 73: AError < Token: superclass init_table position */},
+  {(bigint) parser___lexer___Token___text},
   {(bigint) parser___lexer___EOF___init},
-  {(bigint) 3 /* 72: AError < EOF: superclass init_table position */},
+  {(bigint) 3 /* 76: AError < EOF: superclass init_table position */},
   {(bigint) parser___parser_nodes___EOF___noinit},
   {(bigint) parser___lexer___AError___message},
   {(bigint) parser___lexer___AError___init_error},
-  {(bigint) 4 /* 76: AError < AError: superclass init_table position */},
+  {(bigint) 4 /* 80: AError < AError: superclass init_table position */},
   {(bigint) parser___parser_nodes___AError___noinit},
 };
 /* 0: Pointer to the classtable */
@@ -41564,7 +41513,7 @@ val_t NEW_AError_parser___lexer___AError___init_error(val_t p0, val_t p1){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1192;
+  fra.me.line = 1227;
   fra.me.meth = LOCATE_NEW_AError_parser___lexer___AError___init_error;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -41574,7 +41523,7 @@ val_t NEW_AError_parser___lexer___AError___init_error(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:1192 */
+  /* parser/lexer.nit:1227 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AError();
   INIT_ATTRIBUTES__parser___parser_nodes___AError(fra.me.REG[2]);
   parser___lexer___AError___init_error(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -41588,13 +41537,13 @@ val_t NEW_AError_parser___parser_nodes___AError___noinit(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 317;
+  fra.me.line = 387;
   fra.me.meth = LOCATE_NEW_AError_parser___parser_nodes___AError___noinit;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_nodes.nit:317 */
+  /* parser/parser_nodes.nit:387 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AError();
   INIT_ATTRIBUTES__parser___parser_nodes___AError(fra.me.REG[0]);
   parser___parser_nodes___AError___noinit(fra.me.REG[0], init_table);
@@ -41602,15 +41551,16 @@ val_t NEW_AError_parser___parser_nodes___AError___noinit(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AModule[79] = {
-  {(bigint) 3079 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AModule[81] = {
+  {(bigint) 2839 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AModule" /* 2: Class Name */},
   {(bigint) 3 /* 3: AModule < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AModule < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AModule < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AModule < Prod: superclass typecheck marker */},
+  {(bigint) 2839 /* 6: AModule < AModule: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AModule < Prod: superclass typecheck marker */},
-  {(bigint) 3079 /* 7: AModule < AModule: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41621,7 +41571,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AModule[79] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AModule < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: AModule < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -41637,6 +41587,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AModule[79] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -41663,22 +41615,21 @@ const classtable_elt_t VFT_parser___parser_nodes___AModule[79] = {
   {(bigint) parser___parser_prod___AModule___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AModule___visit_all},
-  {(bigint) 1 /* 60: AModule < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: AModule < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AModule < Prod: superclass init_table position */},
+  {(bigint) 0 /* 72: AModule < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___AModule___import_super_modules},
   {(bigint) parser___parser_prod___AModule___empty_init},
   {(bigint) parser___parser_prod___AModule___init_amodule},
-  {(bigint) 3 /* 75: AModule < AModule: superclass init_table position */},
+  {(bigint) 3 /* 77: AModule < AModule: superclass init_table position */},
   {(bigint) parser___parser_nodes___AModule___n_moduledecl},
   {(bigint) parser___parser_nodes___AModule___n_imports},
   {(bigint) parser___parser_nodes___AModule___n_classdefs},
@@ -41705,13 +41656,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AModule(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:322 */
+  /* parser/parser_nodes.nit:392 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:323 */
+  /* parser/parser_nodes.nit:393 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:324 */
+  /* parser/parser_nodes.nit:394 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -41762,7 +41713,7 @@ val_t NEW_AModule_parser___parser_prod___AModule___empty_init(void){
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:71 */
+  /* parser/parser_prod.nit:71 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AModule();
   INIT_ATTRIBUTES__parser___parser_nodes___AModule(fra.me.REG[0]);
   parser___parser_prod___AModule___empty_init(fra.me.REG[0], init_table);
@@ -41788,7 +41739,7 @@ val_t NEW_AModule_parser___parser_prod___AModule___init_amodule(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:73 */
+  /* parser/parser_prod.nit:73 */
   fra.me.REG[3] = NEW_parser___parser_nodes___AModule();
   INIT_ATTRIBUTES__parser___parser_nodes___AModule(fra.me.REG[3]);
   parser___parser_prod___AModule___init_amodule(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -41796,36 +41747,36 @@ val_t NEW_AModule_parser___parser_prod___AModule___init_amodule(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-val_t NEW_AModule_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AModule_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AModule_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AModule();
-  INIT_ATTRIBUTES__parser___parser_nodes___AModule(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AModule(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AModule();
+  INIT_ATTRIBUTES__parser___parser_nodes___AModule(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AModule(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AModuledecl[78] = {
-  {(bigint) 3071 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AModuledecl[80] = {
+  {(bigint) 2831 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AModuledecl" /* 2: Class Name */},
   {(bigint) 3 /* 3: AModuledecl < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AModuledecl < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AModuledecl < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AModuledecl < Prod: superclass typecheck marker */},
+  {(bigint) 2831 /* 6: AModuledecl < AModuledecl: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AModuledecl < Prod: superclass typecheck marker */},
-  {(bigint) 3071 /* 7: AModuledecl < AModuledecl: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41836,7 +41787,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AModuledecl[78] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AModuledecl < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: AModuledecl < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -41852,6 +41803,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AModuledecl[78] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -41878,21 +41831,20 @@ const classtable_elt_t VFT_parser___parser_nodes___AModuledecl[78] = {
   {(bigint) parser___parser_prod___AModuledecl___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AModuledecl___visit_all},
-  {(bigint) 1 /* 60: AModuledecl < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: AModuledecl < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AModuledecl < Prod: superclass init_table position */},
+  {(bigint) 0 /* 72: AModuledecl < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) parser___parser_prod___AModuledecl___empty_init},
   {(bigint) parser___parser_prod___AModuledecl___init_amoduledecl},
-  {(bigint) 3 /* 74: AModuledecl < AModuledecl: superclass init_table position */},
+  {(bigint) 3 /* 76: AModuledecl < AModuledecl: superclass init_table position */},
   {(bigint) parser___parser_nodes___AModuledecl___n_doc},
   {(bigint) parser___parser_nodes___AModuledecl___n_kwmodule},
   {(bigint) parser___parser_nodes___AModuledecl___n_name},
@@ -41919,7 +41871,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AModuledecl(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:328 */
+  /* parser/parser_nodes.nit:398 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -41970,7 +41922,7 @@ val_t NEW_AModuledecl_parser___parser_prod___AModuledecl___empty_init(void){
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:148 */
+  /* parser/parser_prod.nit:148 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AModuledecl();
   INIT_ATTRIBUTES__parser___parser_nodes___AModuledecl(fra.me.REG[0]);
   parser___parser_prod___AModuledecl___empty_init(fra.me.REG[0], init_table);
@@ -41996,7 +41948,7 @@ val_t NEW_AModuledecl_parser___parser_prod___AModuledecl___init_amoduledecl(val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:150 */
+  /* parser/parser_prod.nit:150 */
   fra.me.REG[3] = NEW_parser___parser_nodes___AModuledecl();
   INIT_ATTRIBUTES__parser___parser_nodes___AModuledecl(fra.me.REG[3]);
   parser___parser_prod___AModuledecl___init_amoduledecl(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -42004,174 +41956,37 @@ val_t NEW_AModuledecl_parser___parser_prod___AModuledecl___init_amoduledecl(val_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-val_t NEW_AModuledecl_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AModuledecl_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AModuledecl();
-  INIT_ATTRIBUTES__parser___parser_nodes___AModuledecl(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AModuledecl(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AImport[75] = {
-  {(bigint) 3095 /* 0: Identity */},
-  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AImport" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AImport < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AImport < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AImport < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 7: AImport < AImport: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AImport < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: AImport < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AImport < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___mmbuilder___AImport___module_name},
-  {(bigint) syntax___mmbuilder___AImport___visibility_level},
-  {(bigint) 3 /* 74: AImport < AImport: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AImport::_parent */
-/* 3: Attribute AImport::_location */
-/* 4: Attribute AImport::_first_location */
-/* 5: Attribute AImport::_last_location */
-void INIT_ATTRIBUTES__parser___parser_nodes___AImport(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AImport;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AImport(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AImport;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AImport(val_t p0){
+val_t NEW_AModuledecl_parser___parser_nodes___ANode___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AImport;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AImport_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AImport_parser___parser_nodes___ANode___init;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_AModuledecl_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AImport();
-  INIT_ATTRIBUTES__parser___parser_nodes___AImport(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AImport(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AModuledecl();
+  INIT_ATTRIBUTES__parser___parser_nodes___AModuledecl(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AModuledecl(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AStdImport[81] = {
-  {(bigint) 3279 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AStdImport[83] = {
+  {(bigint) 3343 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AStdImport" /* 2: Class Name */},
   {(bigint) 3 /* 3: AStdImport < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AStdImport < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AStdImport < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AStdImport < Prod: superclass typecheck marker */},
+  {(bigint) 2855 /* 6: AStdImport < AImport: superclass typecheck marker */},
+  {(bigint) 3343 /* 7: AStdImport < AStdImport: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AStdImport < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 7: AStdImport < AImport: superclass typecheck marker */},
-  {(bigint) 3279 /* 8: AStdImport < AStdImport: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42181,7 +41996,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AStdImport[81] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AStdImport < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AStdImport < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -42197,6 +42012,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AStdImport[81] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -42223,24 +42040,23 @@ const classtable_elt_t VFT_parser___parser_nodes___AStdImport[81] = {
   {(bigint) parser___parser_prod___AStdImport___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AStdImport___visit_all},
-  {(bigint) 1 /* 60: AStdImport < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AStdImport < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AStdImport < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AStdImport < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___AStdImport___module_name},
   {(bigint) syntax___mmbuilder___AStdImport___visibility_level},
-  {(bigint) 3 /* 74: AStdImport < AImport: superclass init_table position */},
+  {(bigint) 0 /* 76: AStdImport < AImport: superclass init_table position */},
   {(bigint) parser___parser_prod___AStdImport___empty_init},
   {(bigint) parser___parser_prod___AStdImport___init_astdimport},
-  {(bigint) 4 /* 77: AStdImport < AStdImport: superclass init_table position */},
+  {(bigint) 4 /* 79: AStdImport < AStdImport: superclass init_table position */},
   {(bigint) parser___parser_nodes___AStdImport___n_visibility},
   {(bigint) parser___parser_nodes___AStdImport___n_kwimport},
   {(bigint) parser___parser_nodes___AStdImport___n_name},
@@ -42317,7 +42133,7 @@ val_t NEW_AStdImport_parser___parser_prod___AStdImport___empty_init(void){
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:211 */
+  /* parser/parser_prod.nit:211 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AStdImport();
   INIT_ATTRIBUTES__parser___parser_nodes___AStdImport(fra.me.REG[0]);
   parser___parser_prod___AStdImport___empty_init(fra.me.REG[0], init_table);
@@ -42343,7 +42159,7 @@ val_t NEW_AStdImport_parser___parser_prod___AStdImport___init_astdimport(val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:213 */
+  /* parser/parser_prod.nit:213 */
   fra.me.REG[3] = NEW_parser___parser_nodes___AStdImport();
   INIT_ATTRIBUTES__parser___parser_nodes___AStdImport(fra.me.REG[3]);
   parser___parser_prod___AStdImport___init_astdimport(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -42351,246 +42167,36 @@ val_t NEW_AStdImport_parser___parser_prod___AStdImport___init_astdimport(val_t p
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-val_t NEW_AStdImport_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AStdImport_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AStdImport_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AStdImport();
-  INIT_ATTRIBUTES__parser___parser_nodes___AStdImport(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AStdImport(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AStdImport();
+  INIT_ATTRIBUTES__parser___parser_nodes___AStdImport(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AStdImport(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ANoImport[81] = {
-  {(bigint) 3359 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ANoImport[83] = {
+  {(bigint) 3427 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ANoImport" /* 2: Class Name */},
   {(bigint) 3 /* 3: ANoImport < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ANoImport < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ANoImport < Prod: superclass typecheck marker */},
-  {(bigint) 3095 /* 7: ANoImport < AImport: superclass typecheck marker */},
-  {(bigint) 3359 /* 8: ANoImport < ANoImport: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ANoImport < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANoImport___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANoImport___visit_all},
-  {(bigint) 1 /* 60: ANoImport < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ANoImport < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___mmbuilder___ANoImport___module_name},
-  {(bigint) syntax___mmbuilder___AImport___visibility_level},
-  {(bigint) 3 /* 74: ANoImport < AImport: superclass init_table position */},
-  {(bigint) parser___parser_prod___ANoImport___empty_init},
-  {(bigint) parser___parser_prod___ANoImport___init_anoimport},
-  {(bigint) 4 /* 77: ANoImport < ANoImport: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANoImport___n_visibility},
-  {(bigint) parser___parser_nodes___ANoImport___n_kwimport},
-  {(bigint) parser___parser_nodes___ANoImport___n_kwend},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute ANoImport::_parent */
-/* 3: Attribute ANoImport::_location */
-/* 4: Attribute ANoImport::_first_location */
-/* 5: Attribute ANoImport::_last_location */
-/* 6: Attribute ANoImport::_n_visibility */
-/* 7: Attribute ANoImport::_n_kwimport */
-/* 8: Attribute ANoImport::_n_kwend */
-void INIT_ATTRIBUTES__parser___parser_nodes___ANoImport(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ANoImport;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___ANoImport(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 9);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___ANoImport;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___ANoImport(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___ANoImport;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_ANoImport_parser___parser_prod___ANoImport___empty_init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 270;
-  fra.me.meth = LOCATE_NEW_ANoImport_parser___parser_prod___ANoImport___empty_init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:270 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___ANoImport();
-  INIT_ATTRIBUTES__parser___parser_nodes___ANoImport(fra.me.REG[0]);
-  parser___parser_prod___ANoImport___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ANoImport(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t NEW_ANoImport_parser___parser_prod___ANoImport___init_anoimport(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 272;
-  fra.me.meth = LOCATE_NEW_ANoImport_parser___parser_prod___ANoImport___init_anoimport;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:272 */
-  fra.me.REG[3] = NEW_parser___parser_nodes___ANoImport();
-  INIT_ATTRIBUTES__parser___parser_nodes___ANoImport(fra.me.REG[3]);
-  parser___parser_prod___ANoImport___init_anoimport(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  CHECKNEW_parser___parser_nodes___ANoImport(fra.me.REG[3]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[3];
-}
-val_t NEW_ANoImport_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ANoImport_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ANoImport();
-  INIT_ATTRIBUTES__parser___parser_nodes___ANoImport(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ANoImport(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AVisibility[74] = {
-  {(bigint) 3043 /* 0: Identity */},
-  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AVisibility" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AVisibility < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AVisibility < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ANoImport < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ANoImport < Prod: superclass typecheck marker */},
+  {(bigint) 2855 /* 6: ANoImport < AImport: superclass typecheck marker */},
+  {(bigint) 3427 /* 7: ANoImport < ANoImport: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AVisibility < Prod: superclass typecheck marker */},
-  {(bigint) 3043 /* 7: AVisibility < AVisibility: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42601,7 +42207,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AVisibility[74] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AVisibility < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ANoImport < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -42617,6 +42223,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AVisibility[74] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -42640,94 +42248,167 @@ const classtable_elt_t VFT_parser___parser_nodes___AVisibility[74] = {
   {(bigint) parser___parser_prod___ANode___parent},
   {(bigint) parser___parser_prod___ANode___parent__eq},
   {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
+  {(bigint) parser___parser_prod___ANoImport___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: AVisibility < ANode: superclass init_table position */},
+  {(bigint) parser___parser_prod___ANoImport___visit_all},
+  {(bigint) 2 /* 63: ANoImport < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AVisibility < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: ANoImport < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___mmbuilder___AVisibility___level},
-  {(bigint) 3 /* 73: AVisibility < AVisibility: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___ANoImport___module_name},
+  {(bigint) syntax___mmbuilder___AImport___visibility_level},
+  {(bigint) 0 /* 76: ANoImport < AImport: superclass init_table position */},
+  {(bigint) parser___parser_prod___ANoImport___empty_init},
+  {(bigint) parser___parser_prod___ANoImport___init_anoimport},
+  {(bigint) 4 /* 79: ANoImport < ANoImport: superclass init_table position */},
+  {(bigint) parser___parser_nodes___ANoImport___n_visibility},
+  {(bigint) parser___parser_nodes___ANoImport___n_kwimport},
+  {(bigint) parser___parser_nodes___ANoImport___n_kwend},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute AVisibility::_parent */
-/* 3: Attribute AVisibility::_location */
-/* 4: Attribute AVisibility::_first_location */
-/* 5: Attribute AVisibility::_last_location */
-void INIT_ATTRIBUTES__parser___parser_nodes___AVisibility(val_t p0){
+/* 2: Attribute ANoImport::_parent */
+/* 3: Attribute ANoImport::_location */
+/* 4: Attribute ANoImport::_first_location */
+/* 5: Attribute ANoImport::_last_location */
+/* 6: Attribute ANoImport::_n_visibility */
+/* 7: Attribute ANoImport::_n_kwimport */
+/* 8: Attribute ANoImport::_n_kwend */
+void INIT_ATTRIBUTES__parser___parser_nodes___ANoImport(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AVisibility;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ANoImport;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___parser_nodes___AVisibility(void)
+val_t NEW_parser___parser_nodes___ANoImport(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AVisibility;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___ANoImport;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___parser_nodes___AVisibility(val_t p0){
+void CHECKNEW_parser___parser_nodes___ANoImport(val_t p0){
   struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AVisibility;
+  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___ANoImport;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ANoImport_parser___parser_prod___ANoImport___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 270;
+  fra.me.meth = LOCATE_NEW_ANoImport_parser___parser_prod___ANoImport___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_prod.nit:270 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ANoImport();
+  INIT_ATTRIBUTES__parser___parser_nodes___ANoImport(fra.me.REG[0]);
+  parser___parser_prod___ANoImport___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ANoImport(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-val_t NEW_AVisibility_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ANoImport_parser___parser_prod___ANoImport___init_anoimport(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AVisibility_parser___parser_nodes___ANode___init;
+  fra.me.line = 272;
+  fra.me.meth = LOCATE_NEW_ANoImport_parser___parser_prod___ANoImport___init_anoimport;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AVisibility();
-  INIT_ATTRIBUTES__parser___parser_nodes___AVisibility(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AVisibility(fra.me.REG[1]);
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  /* parser/parser_prod.nit:272 */
+  fra.me.REG[3] = NEW_parser___parser_nodes___ANoImport();
+  INIT_ATTRIBUTES__parser___parser_nodes___ANoImport(fra.me.REG[3]);
+  parser___parser_prod___ANoImport___init_anoimport(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_parser___parser_nodes___ANoImport(fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_parser___parser_nodes___APublicVisibility[77] = {
-  {(bigint) 3323 /* 0: Identity */},
+val_t NEW_ANoImport_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_ANoImport_parser___parser_nodes___ANode___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ANoImport();
+  INIT_ATTRIBUTES__parser___parser_nodes___ANoImport(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ANoImport(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___parser_nodes___APublicVisibility[79] = {
+  {(bigint) 3387 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "APublicVisibility" /* 2: Class Name */},
   {(bigint) 3 /* 3: APublicVisibility < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: APublicVisibility < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: APublicVisibility < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: APublicVisibility < Prod: superclass typecheck marker */},
+  {(bigint) 2803 /* 6: APublicVisibility < AVisibility: superclass typecheck marker */},
+  {(bigint) 3387 /* 7: APublicVisibility < APublicVisibility: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: APublicVisibility < Prod: superclass typecheck marker */},
-  {(bigint) 3043 /* 7: APublicVisibility < AVisibility: superclass typecheck marker */},
-  {(bigint) 3323 /* 8: APublicVisibility < APublicVisibility: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42737,7 +42418,7 @@ const classtable_elt_t VFT_parser___parser_nodes___APublicVisibility[77] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: APublicVisibility < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: APublicVisibility < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -42753,6 +42434,8 @@ const classtable_elt_t VFT_parser___parser_nodes___APublicVisibility[77] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -42779,23 +42462,22 @@ const classtable_elt_t VFT_parser___parser_nodes___APublicVisibility[77] = {
   {(bigint) parser___parser_prod___APublicVisibility___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___APublicVisibility___visit_all},
-  {(bigint) 1 /* 60: APublicVisibility < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: APublicVisibility < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: APublicVisibility < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: APublicVisibility < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___APublicVisibility___level},
-  {(bigint) 3 /* 73: APublicVisibility < AVisibility: superclass init_table position */},
+  {(bigint) 0 /* 75: APublicVisibility < AVisibility: superclass init_table position */},
   {(bigint) parser___parser_prod___APublicVisibility___empty_init},
   {(bigint) parser___parser_prod___APublicVisibility___init_apublicvisibility},
-  {(bigint) 4 /* 76: APublicVisibility < APublicVisibility: superclass init_table position */},
+  {(bigint) 4 /* 78: APublicVisibility < APublicVisibility: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -42848,7 +42530,7 @@ val_t NEW_APublicVisibility_parser___parser_prod___APublicVisibility___empty_ini
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:329 */
+  /* parser/parser_prod.nit:329 */
   fra.me.REG[0] = NEW_parser___parser_nodes___APublicVisibility();
   INIT_ATTRIBUTES__parser___parser_nodes___APublicVisibility(fra.me.REG[0]);
   parser___parser_prod___APublicVisibility___empty_init(fra.me.REG[0], init_table);
@@ -42868,7 +42550,7 @@ val_t NEW_APublicVisibility_parser___parser_prod___APublicVisibility___init_apub
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:331 */
+  /* parser/parser_prod.nit:331 */
   fra.me.REG[0] = NEW_parser___parser_nodes___APublicVisibility();
   INIT_ATTRIBUTES__parser___parser_nodes___APublicVisibility(fra.me.REG[0]);
   parser___parser_prod___APublicVisibility___init_apublicvisibility(fra.me.REG[0], init_table);
@@ -42876,37 +42558,37 @@ val_t NEW_APublicVisibility_parser___parser_prod___APublicVisibility___init_apub
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_APublicVisibility_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_APublicVisibility_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_APublicVisibility_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___APublicVisibility();
-  INIT_ATTRIBUTES__parser___parser_nodes___APublicVisibility(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___APublicVisibility(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___APublicVisibility();
+  INIT_ATTRIBUTES__parser___parser_nodes___APublicVisibility(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___APublicVisibility(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___APrivateVisibility[78] = {
-  {(bigint) 3339 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___APrivateVisibility[80] = {
+  {(bigint) 3403 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "APrivateVisibility" /* 2: Class Name */},
   {(bigint) 3 /* 3: APrivateVisibility < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: APrivateVisibility < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: APrivateVisibility < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: APrivateVisibility < Prod: superclass typecheck marker */},
+  {(bigint) 2803 /* 6: APrivateVisibility < AVisibility: superclass typecheck marker */},
+  {(bigint) 3403 /* 7: APrivateVisibility < APrivateVisibility: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: APrivateVisibility < Prod: superclass typecheck marker */},
-  {(bigint) 3043 /* 7: APrivateVisibility < AVisibility: superclass typecheck marker */},
-  {(bigint) 3339 /* 8: APrivateVisibility < APrivateVisibility: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42916,7 +42598,7 @@ const classtable_elt_t VFT_parser___parser_nodes___APrivateVisibility[78] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: APrivateVisibility < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: APrivateVisibility < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -42932,6 +42614,8 @@ const classtable_elt_t VFT_parser___parser_nodes___APrivateVisibility[78] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -42958,23 +42642,22 @@ const classtable_elt_t VFT_parser___parser_nodes___APrivateVisibility[78] = {
   {(bigint) parser___parser_prod___APrivateVisibility___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___APrivateVisibility___visit_all},
-  {(bigint) 1 /* 60: APrivateVisibility < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: APrivateVisibility < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: APrivateVisibility < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: APrivateVisibility < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___APrivateVisibility___level},
-  {(bigint) 3 /* 73: APrivateVisibility < AVisibility: superclass init_table position */},
+  {(bigint) 0 /* 75: APrivateVisibility < AVisibility: superclass init_table position */},
   {(bigint) parser___parser_prod___APrivateVisibility___empty_init},
   {(bigint) parser___parser_prod___APrivateVisibility___init_aprivatevisibility},
-  {(bigint) 4 /* 76: APrivateVisibility < APrivateVisibility: superclass init_table position */},
+  {(bigint) 4 /* 78: APrivateVisibility < APrivateVisibility: superclass init_table position */},
   {(bigint) parser___parser_nodes___APrivateVisibility___n_kwprivate},
 };
 /* 0: Pointer to the classtable */
@@ -43037,7 +42720,7 @@ val_t NEW_APrivateVisibility_parser___parser_prod___APrivateVisibility___empty_i
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:345 */
+  /* parser/parser_prod.nit:345 */
   fra.me.REG[0] = NEW_parser___parser_nodes___APrivateVisibility();
   INIT_ATTRIBUTES__parser___parser_nodes___APrivateVisibility(fra.me.REG[0]);
   parser___parser_prod___APrivateVisibility___empty_init(fra.me.REG[0], init_table);
@@ -43059,7 +42742,7 @@ val_t NEW_APrivateVisibility_parser___parser_prod___APrivateVisibility___init_ap
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:347 */
+  /* parser/parser_prod.nit:347 */
   fra.me.REG[1] = NEW_parser___parser_nodes___APrivateVisibility();
   INIT_ATTRIBUTES__parser___parser_nodes___APrivateVisibility(fra.me.REG[1]);
   parser___parser_prod___APrivateVisibility___init_aprivatevisibility(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -43067,37 +42750,37 @@ val_t NEW_APrivateVisibility_parser___parser_prod___APrivateVisibility___init_ap
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_APrivateVisibility_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_APrivateVisibility_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_APrivateVisibility_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___APrivateVisibility();
-  INIT_ATTRIBUTES__parser___parser_nodes___APrivateVisibility(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___APrivateVisibility(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___APrivateVisibility();
+  INIT_ATTRIBUTES__parser___parser_nodes___APrivateVisibility(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___APrivateVisibility(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AProtectedVisibility[78] = {
-  {(bigint) 3331 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AProtectedVisibility[80] = {
+  {(bigint) 3395 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AProtectedVisibility" /* 2: Class Name */},
   {(bigint) 3 /* 3: AProtectedVisibility < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AProtectedVisibility < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AProtectedVisibility < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AProtectedVisibility < Prod: superclass typecheck marker */},
+  {(bigint) 2803 /* 6: AProtectedVisibility < AVisibility: superclass typecheck marker */},
+  {(bigint) 3395 /* 7: AProtectedVisibility < AProtectedVisibility: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AProtectedVisibility < Prod: superclass typecheck marker */},
-  {(bigint) 3043 /* 7: AProtectedVisibility < AVisibility: superclass typecheck marker */},
-  {(bigint) 3331 /* 8: AProtectedVisibility < AProtectedVisibility: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43107,7 +42790,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AProtectedVisibility[78] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AProtectedVisibility < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AProtectedVisibility < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -43123,6 +42806,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AProtectedVisibility[78] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -43149,23 +42834,22 @@ const classtable_elt_t VFT_parser___parser_nodes___AProtectedVisibility[78] = {
   {(bigint) parser___parser_prod___AProtectedVisibility___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AProtectedVisibility___visit_all},
-  {(bigint) 1 /* 60: AProtectedVisibility < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AProtectedVisibility < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AProtectedVisibility < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AProtectedVisibility < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___AProtectedVisibility___level},
-  {(bigint) 3 /* 73: AProtectedVisibility < AVisibility: superclass init_table position */},
+  {(bigint) 0 /* 75: AProtectedVisibility < AVisibility: superclass init_table position */},
   {(bigint) parser___parser_prod___AProtectedVisibility___empty_init},
   {(bigint) parser___parser_prod___AProtectedVisibility___init_aprotectedvisibility},
-  {(bigint) 4 /* 76: AProtectedVisibility < AProtectedVisibility: superclass init_table position */},
+  {(bigint) 4 /* 78: AProtectedVisibility < AProtectedVisibility: superclass init_table position */},
   {(bigint) parser___parser_nodes___AProtectedVisibility___n_kwprotected},
 };
 /* 0: Pointer to the classtable */
@@ -43228,7 +42912,7 @@ val_t NEW_AProtectedVisibility_parser___parser_prod___AProtectedVisibility___emp
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:376 */
+  /* parser/parser_prod.nit:376 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AProtectedVisibility();
   INIT_ATTRIBUTES__parser___parser_nodes___AProtectedVisibility(fra.me.REG[0]);
   parser___parser_prod___AProtectedVisibility___empty_init(fra.me.REG[0], init_table);
@@ -43250,7 +42934,7 @@ val_t NEW_AProtectedVisibility_parser___parser_prod___AProtectedVisibility___ini
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:378 */
+  /* parser/parser_prod.nit:378 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AProtectedVisibility();
   INIT_ATTRIBUTES__parser___parser_nodes___AProtectedVisibility(fra.me.REG[1]);
   parser___parser_prod___AProtectedVisibility___init_aprotectedvisibility(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -43258,227 +42942,36 @@ val_t NEW_AProtectedVisibility_parser___parser_prod___AProtectedVisibility___ini
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AProtectedVisibility_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AProtectedVisibility_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AProtectedVisibility_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AProtectedVisibility();
-  INIT_ATTRIBUTES__parser___parser_nodes___AProtectedVisibility(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AProtectedVisibility(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AProtectedVisibility();
+  INIT_ATTRIBUTES__parser___parser_nodes___AProtectedVisibility(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AProtectedVisibility(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AIntrudeVisibility[78] = {
-  {(bigint) 3395 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AIntrudeVisibility[80] = {
+  {(bigint) 3467 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AIntrudeVisibility" /* 2: Class Name */},
   {(bigint) 3 /* 3: AIntrudeVisibility < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AIntrudeVisibility < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AIntrudeVisibility < Prod: superclass typecheck marker */},
-  {(bigint) 3043 /* 7: AIntrudeVisibility < AVisibility: superclass typecheck marker */},
-  {(bigint) 3395 /* 8: AIntrudeVisibility < AIntrudeVisibility: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AIntrudeVisibility < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___AIntrudeVisibility___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___AIntrudeVisibility___visit_all},
-  {(bigint) 1 /* 60: AIntrudeVisibility < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AIntrudeVisibility < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___mmbuilder___AIntrudeVisibility___level},
-  {(bigint) 3 /* 73: AIntrudeVisibility < AVisibility: superclass init_table position */},
-  {(bigint) parser___parser_prod___AIntrudeVisibility___empty_init},
-  {(bigint) parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility},
-  {(bigint) 4 /* 76: AIntrudeVisibility < AIntrudeVisibility: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AIntrudeVisibility___n_kwintrude},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AIntrudeVisibility::_parent */
-/* 3: Attribute AIntrudeVisibility::_location */
-/* 4: Attribute AIntrudeVisibility::_first_location */
-/* 5: Attribute AIntrudeVisibility::_last_location */
-/* 6: Attribute AIntrudeVisibility::_n_kwintrude */
-void INIT_ATTRIBUTES__parser___parser_nodes___AIntrudeVisibility(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AIntrudeVisibility;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AIntrudeVisibility(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AIntrudeVisibility;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AIntrudeVisibility(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AIntrudeVisibility;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwintrude", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AIntrudeVisibility_parser___parser_prod___AIntrudeVisibility___empty_init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 407;
-  fra.me.meth = LOCATE_NEW_AIntrudeVisibility_parser___parser_prod___AIntrudeVisibility___empty_init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:407 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___AIntrudeVisibility();
-  INIT_ATTRIBUTES__parser___parser_nodes___AIntrudeVisibility(fra.me.REG[0]);
-  parser___parser_prod___AIntrudeVisibility___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AIntrudeVisibility(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t NEW_AIntrudeVisibility_parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 409;
-  fra.me.meth = LOCATE_NEW_AIntrudeVisibility_parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:409 */
-  fra.me.REG[1] = NEW_parser___parser_nodes___AIntrudeVisibility();
-  INIT_ATTRIBUTES__parser___parser_nodes___AIntrudeVisibility(fra.me.REG[1]);
-  parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AIntrudeVisibility(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-val_t NEW_AIntrudeVisibility_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AIntrudeVisibility_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AIntrudeVisibility();
-  INIT_ATTRIBUTES__parser___parser_nodes___AIntrudeVisibility(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AIntrudeVisibility(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AClassdef[85] = {
-  {(bigint) 3131 /* 0: Identity */},
-  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AClassdef" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AClassdef < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AClassdef < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AIntrudeVisibility < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AIntrudeVisibility < Prod: superclass typecheck marker */},
+  {(bigint) 2803 /* 6: AIntrudeVisibility < AVisibility: superclass typecheck marker */},
+  {(bigint) 3467 /* 7: AIntrudeVisibility < AIntrudeVisibility: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AClassdef < Prod: superclass typecheck marker */},
-  {(bigint) 3131 /* 7: AClassdef < AClassdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43489,7 +42982,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AClassdef[85] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AClassdef < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AIntrudeVisibility < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -43505,6 +42998,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AClassdef[85] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -43518,123 +43013,158 @@ const classtable_elt_t VFT_parser___parser_nodes___AClassdef[85] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AClassdef___accept_class_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
   {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
   {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___AClassdef___accept_class_verifier},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
-  {(bigint) syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor},
+  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
   {(bigint) parser___parser_prod___ANode___parent},
   {(bigint) parser___parser_prod___ANode___parent__eq},
   {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
+  {(bigint) parser___parser_prod___AIntrudeVisibility___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: AClassdef < ANode: superclass init_table position */},
+  {(bigint) parser___parser_prod___AIntrudeVisibility___visit_all},
+  {(bigint) 2 /* 63: AIntrudeVisibility < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
-  {(bigint) syntax___typing___AClassdef___accept_typing},
+  {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AClassdef < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AIntrudeVisibility < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___mmbuilder___AClassdef___name},
-  {(bigint) syntax___mmbuilder___AClassdef___arity},
-  {(bigint) syntax___mmbuilder___AClassdef___visibility_level},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
-  {(bigint) syntax___mmbuilder___AClassdef___build_class_introduction},
-  {(bigint) syntax___mmbuilder___AClassdef___build_class_refinement},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) syntax___mmbuilder___AClassdef___local_class},
-  {(bigint) syntax___syntax_base___AClassdef___next_node},
-  {(bigint) syntax___syntax_base___AClassdef___next_node__eq},
-  {(bigint) 3 /* 83: AClassdef < AClassdef: superclass init_table position */},
-  {(bigint) syntax___typing___ANode___accept_typing},
+  {(bigint) syntax___mmbuilder___AIntrudeVisibility___level},
+  {(bigint) 0 /* 75: AIntrudeVisibility < AVisibility: superclass init_table position */},
+  {(bigint) parser___parser_prod___AIntrudeVisibility___empty_init},
+  {(bigint) parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility},
+  {(bigint) 4 /* 78: AIntrudeVisibility < AIntrudeVisibility: superclass init_table position */},
+  {(bigint) parser___parser_nodes___AIntrudeVisibility___n_kwintrude},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute AClassdef::_parent */
-/* 3: Attribute AClassdef::_location */
-/* 4: Attribute AClassdef::_first_location */
-/* 5: Attribute AClassdef::_last_location */
-/* 6: Attribute AClassdef::_local_class */
-/* 7: Attribute AClassdef::_next_node */
-void INIT_ATTRIBUTES__parser___parser_nodes___AClassdef(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+/* 2: Attribute AIntrudeVisibility::_parent */
+/* 3: Attribute AIntrudeVisibility::_location */
+/* 4: Attribute AIntrudeVisibility::_first_location */
+/* 5: Attribute AIntrudeVisibility::_last_location */
+/* 6: Attribute AIntrudeVisibility::_n_kwintrude */
+void INIT_ATTRIBUTES__parser___parser_nodes___AIntrudeVisibility(val_t p0){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AClassdef;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AIntrudeVisibility;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:533 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_syntax___syntax_base___AClassdef____next_node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___parser_nodes___AClassdef(void)
+val_t NEW_parser___parser_nodes___AIntrudeVisibility(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AClassdef;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AIntrudeVisibility;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___parser_nodes___AClassdef(val_t p0){
+void CHECKNEW_parser___parser_nodes___AIntrudeVisibility(val_t p0){
   struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AClassdef;
+  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AIntrudeVisibility;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_kwintrude", LOCATE_nitc, 0);
+  }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_AClassdef_parser___parser_nodes___ANode___init(val_t p0){
+val_t NEW_AIntrudeVisibility_parser___parser_prod___AIntrudeVisibility___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 407;
+  fra.me.meth = LOCATE_NEW_AIntrudeVisibility_parser___parser_prod___AIntrudeVisibility___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_prod.nit:407 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AIntrudeVisibility();
+  INIT_ATTRIBUTES__parser___parser_nodes___AIntrudeVisibility(fra.me.REG[0]);
+  parser___parser_prod___AIntrudeVisibility___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AIntrudeVisibility(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AIntrudeVisibility_parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AClassdef_parser___parser_nodes___ANode___init;
+  fra.me.line = 409;
+  fra.me.meth = LOCATE_NEW_AIntrudeVisibility_parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AClassdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AClassdef(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AClassdef(fra.me.REG[1]);
+  /* parser/parser_prod.nit:409 */
+  fra.me.REG[1] = NEW_parser___parser_nodes___AIntrudeVisibility();
+  INIT_ATTRIBUTES__parser___parser_nodes___AIntrudeVisibility(fra.me.REG[1]);
+  parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AIntrudeVisibility(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AStdClassdef[98] = {
-  {(bigint) 3283 /* 0: Identity */},
-  {(bigint) 16 /* 1: Object size (-1 if a NativeArray)*/},
+val_t NEW_AIntrudeVisibility_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_AIntrudeVisibility_parser___parser_nodes___ANode___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AIntrudeVisibility();
+  INIT_ATTRIBUTES__parser___parser_nodes___AIntrudeVisibility(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AIntrudeVisibility(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___parser_nodes___AStdClassdef[101] = {
+  {(bigint) 3347 /* 0: Identity */},
+  {(bigint) 17 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AStdClassdef" /* 2: Class Name */},
   {(bigint) 3 /* 3: AStdClassdef < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AStdClassdef < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AStdClassdef < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AStdClassdef < Prod: superclass typecheck marker */},
+  {(bigint) 2895 /* 6: AStdClassdef < AClassdef: superclass typecheck marker */},
+  {(bigint) 3347 /* 7: AStdClassdef < AStdClassdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AStdClassdef < Prod: superclass typecheck marker */},
-  {(bigint) 3131 /* 7: AStdClassdef < AClassdef: superclass typecheck marker */},
-  {(bigint) 3283 /* 8: AStdClassdef < AStdClassdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43644,7 +43174,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AStdClassdef[98] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AStdClassdef < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AStdClassdef < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -43660,6 +43190,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AStdClassdef[98] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -43686,17 +43218,16 @@ const classtable_elt_t VFT_parser___parser_nodes___AStdClassdef[98] = {
   {(bigint) parser___parser_prod___AStdClassdef___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AStdClassdef___visit_all},
-  {(bigint) 1 /* 60: AStdClassdef < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AStdClassdef < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___AStdClassdef___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___AClassdef___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AStdClassdef < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AStdClassdef < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___AStdClassdef___name},
   {(bigint) syntax___mmbuilder___AStdClassdef___arity},
@@ -43709,13 +43240,14 @@ const classtable_elt_t VFT_parser___parser_nodes___AStdClassdef[98] = {
   {(bigint) syntax___mmbuilder___AClassdef___local_class},
   {(bigint) syntax___syntax_base___AClassdef___next_node},
   {(bigint) syntax___syntax_base___AClassdef___next_node__eq},
-  {(bigint) 3 /* 83: AStdClassdef < AClassdef: superclass init_table position */},
+  {(bigint) 0 /* 85: AStdClassdef < AClassdef: superclass init_table position */},
+  {(bigint) parser___parser_nodes___AClassdef___n_propdefs},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
   {(bigint) syntax___mmbuilder___AClassdef___accept_class_verifier},
   {(bigint) parser___parser_prod___AStdClassdef___empty_init},
   {(bigint) parser___parser_prod___AStdClassdef___init_astdclassdef},
-  {(bigint) 4 /* 89: AStdClassdef < AStdClassdef: superclass init_table position */},
+  {(bigint) 4 /* 92: AStdClassdef < AStdClassdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___AStdClassdef___n_doc},
   {(bigint) parser___parser_nodes___AStdClassdef___n_kwredef},
   {(bigint) parser___parser_nodes___AStdClassdef___n_visibility},
@@ -43723,7 +43255,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AStdClassdef[98] = {
   {(bigint) parser___parser_nodes___AStdClassdef___n_id},
   {(bigint) parser___parser_nodes___AStdClassdef___n_formaldefs},
   {(bigint) parser___parser_nodes___AStdClassdef___n_superclasses},
-  {(bigint) parser___parser_nodes___AStdClassdef___n_propdefs},
+  {(bigint) parser___parser_nodes___AStdClassdef___n_kwend},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -43733,14 +43265,15 @@ const classtable_elt_t VFT_parser___parser_nodes___AStdClassdef[98] = {
 /* 5: Attribute AStdClassdef::_last_location */
 /* 6: Attribute AStdClassdef::_local_class */
 /* 7: Attribute AStdClassdef::_next_node */
-/* 8: Attribute AStdClassdef::_n_doc */
-/* 9: Attribute AStdClassdef::_n_kwredef */
-/* 10: Attribute AStdClassdef::_n_visibility */
-/* 11: Attribute AStdClassdef::_n_classkind */
-/* 12: Attribute AStdClassdef::_n_id */
-/* 13: Attribute AStdClassdef::_n_formaldefs */
-/* 14: Attribute AStdClassdef::_n_superclasses */
-/* 15: Attribute AStdClassdef::_n_propdefs */
+/* 8: Attribute AStdClassdef::_n_propdefs */
+/* 9: Attribute AStdClassdef::_n_doc */
+/* 10: Attribute AStdClassdef::_n_kwredef */
+/* 11: Attribute AStdClassdef::_n_visibility */
+/* 12: Attribute AStdClassdef::_n_classkind */
+/* 13: Attribute AStdClassdef::_n_id */
+/* 14: Attribute AStdClassdef::_n_formaldefs */
+/* 15: Attribute AStdClassdef::_n_superclasses */
+/* 16: Attribute AStdClassdef::_n_kwend */
 void INIT_ATTRIBUTES__parser___parser_nodes___AStdClassdef(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
@@ -43754,25 +43287,25 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AStdClassdef(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:364 */
+  /* parser/parser_nodes.nit:436 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:365 */
+  /* parser/parser_nodes.nit:437 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:368 */
+  /* parser/parser_nodes.nit:440 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:369 */
+  /* parser/parser_nodes.nit:441 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:370 */
+  /* parser/parser_nodes.nit:442 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:371 */
+  /* parser/parser_nodes.nit:432 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//syntax_base.nit:533 */
+  ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]) = fra.me.REG[1];
+  /* syntax/syntax_base.nit:533 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___syntax_base___AClassdef____next_node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -43780,7 +43313,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AStdClassdef(val_t p0){
 val_t NEW_parser___parser_nodes___AStdClassdef(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 16);
+  obj = alloc(sizeof(val_t) * 17);
   obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AStdClassdef;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
@@ -43819,11 +43352,16 @@ void CHECKNEW_parser___parser_nodes___AStdClassdef(val_t p0){
   } else {
     nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_nitc, 0);
   }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_nitc, 0);
+  }
   stack_frame_head = fra.me.prev;
 }
 val_t NEW_AStdClassdef_parser___parser_prod___AStdClassdef___empty_init(void){
@@ -43838,7 +43376,7 @@ val_t NEW_AStdClassdef_parser___parser_prod___AStdClassdef___empty_init(void){
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:438 */
+  /* parser/parser_prod.nit:438 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AStdClassdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AStdClassdef(fra.me.REG[0]);
   parser___parser_prod___AStdClassdef___empty_init(fra.me.REG[0], init_table);
@@ -43846,8 +43384,8 @@ val_t NEW_AStdClassdef_parser___parser_prod___AStdClassdef___empty_init(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7){
-  struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
+val_t NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8){
+  struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
@@ -43855,7 +43393,7 @@ val_t NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(v
   fra.me.line = 440;
   fra.me.meth = LOCATE_NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 9;
+  fra.me.REG_size = 10;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -43866,6 +43404,7 @@ val_t NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(v
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[8] = NIT_NULL;
+  fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
@@ -43874,45 +43413,46 @@ val_t NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(v
   fra.me.REG[5] = p5;
   fra.me.REG[6] = p6;
   fra.me.REG[7] = p7;
-  /* ./parser//parser_prod.nit:440 */
-  fra.me.REG[8] = NEW_parser___parser_nodes___AStdClassdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AStdClassdef(fra.me.REG[8]);
-  parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[8], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], fra.me.REG[6], fra.me.REG[7], init_table);
-  CHECKNEW_parser___parser_nodes___AStdClassdef(fra.me.REG[8]);
+  fra.me.REG[8] = p8;
+  /* parser/parser_prod.nit:440 */
+  fra.me.REG[9] = NEW_parser___parser_nodes___AStdClassdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___AStdClassdef(fra.me.REG[9]);
+  parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[9], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], fra.me.REG[6], fra.me.REG[7], fra.me.REG[8], init_table);
+  CHECKNEW_parser___parser_nodes___AStdClassdef(fra.me.REG[9]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[8];
+  return fra.me.REG[9];
 }
-val_t NEW_AStdClassdef_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AStdClassdef_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AStdClassdef_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AStdClassdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AStdClassdef(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AStdClassdef(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AStdClassdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___AStdClassdef(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AStdClassdef(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ATopClassdef[89] = {
-  {(bigint) 3263 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ATopClassdef[91] = {
+  {(bigint) 3327 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ATopClassdef" /* 2: Class Name */},
   {(bigint) 3 /* 3: ATopClassdef < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ATopClassdef < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ATopClassdef < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ATopClassdef < Prod: superclass typecheck marker */},
+  {(bigint) 2895 /* 6: ATopClassdef < AClassdef: superclass typecheck marker */},
+  {(bigint) 3327 /* 7: ATopClassdef < ATopClassdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ATopClassdef < Prod: superclass typecheck marker */},
-  {(bigint) 3131 /* 7: ATopClassdef < AClassdef: superclass typecheck marker */},
-  {(bigint) 3263 /* 8: ATopClassdef < ATopClassdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43922,7 +43462,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ATopClassdef[89] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ATopClassdef < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ATopClassdef < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -43938,6 +43478,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ATopClassdef[89] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -43964,17 +43506,16 @@ const classtable_elt_t VFT_parser___parser_nodes___ATopClassdef[89] = {
   {(bigint) parser___parser_prod___ATopClassdef___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ATopClassdef___visit_all},
-  {(bigint) 1 /* 60: ATopClassdef < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: ATopClassdef < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___AClassdef___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ATopClassdef < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: ATopClassdef < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ATopClassdef___name},
   {(bigint) syntax___mmbuilder___AClassdef___arity},
@@ -43987,12 +43528,12 @@ const classtable_elt_t VFT_parser___parser_nodes___ATopClassdef[89] = {
   {(bigint) syntax___mmbuilder___AClassdef___local_class},
   {(bigint) syntax___syntax_base___AClassdef___next_node},
   {(bigint) syntax___syntax_base___AClassdef___next_node__eq},
-  {(bigint) 3 /* 83: ATopClassdef < AClassdef: superclass init_table position */},
+  {(bigint) 0 /* 85: ATopClassdef < AClassdef: superclass init_table position */},
+  {(bigint) parser___parser_nodes___AClassdef___n_propdefs},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) parser___parser_prod___ATopClassdef___empty_init},
   {(bigint) parser___parser_prod___ATopClassdef___init_atopclassdef},
-  {(bigint) 4 /* 87: ATopClassdef < ATopClassdef: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ATopClassdef___n_propdefs},
+  {(bigint) 4 /* 90: ATopClassdef < ATopClassdef: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -44016,10 +43557,10 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ATopClassdef(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:376 */
+  /* parser/parser_nodes.nit:432 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//syntax_base.nit:533 */
+  ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]) = fra.me.REG[1];
+  /* syntax/syntax_base.nit:533 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___syntax_base___AClassdef____next_node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -44046,7 +43587,7 @@ void CHECKNEW_parser___parser_nodes___ATopClassdef(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_nitc, 0);
@@ -44059,13 +43600,13 @@ val_t NEW_ATopClassdef_parser___parser_prod___ATopClassdef___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 600;
+  fra.me.line = 614;
   fra.me.meth = LOCATE_NEW_ATopClassdef_parser___parser_prod___ATopClassdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:600 */
+  /* parser/parser_prod.nit:614 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ATopClassdef();
   INIT_ATTRIBUTES__parser___parser_nodes___ATopClassdef(fra.me.REG[0]);
   parser___parser_prod___ATopClassdef___empty_init(fra.me.REG[0], init_table);
@@ -44079,7 +43620,7 @@ val_t NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(v
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 602;
+  fra.me.line = 616;
   fra.me.meth = LOCATE_NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -44087,7 +43628,7 @@ val_t NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(v
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:602 */
+  /* parser/parser_prod.nit:616 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ATopClassdef();
   INIT_ATTRIBUTES__parser___parser_nodes___ATopClassdef(fra.me.REG[1]);
   parser___parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -44095,37 +43636,37 @@ val_t NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(v
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_ATopClassdef_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ATopClassdef_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ATopClassdef_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ATopClassdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___ATopClassdef(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ATopClassdef(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ATopClassdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___ATopClassdef(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ATopClassdef(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AMainClassdef[89] = {
-  {(bigint) 3379 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AMainClassdef[91] = {
+  {(bigint) 3447 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AMainClassdef" /* 2: Class Name */},
   {(bigint) 3 /* 3: AMainClassdef < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AMainClassdef < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AMainClassdef < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AMainClassdef < Prod: superclass typecheck marker */},
+  {(bigint) 2895 /* 6: AMainClassdef < AClassdef: superclass typecheck marker */},
+  {(bigint) 3447 /* 7: AMainClassdef < AMainClassdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AMainClassdef < Prod: superclass typecheck marker */},
-  {(bigint) 3131 /* 7: AMainClassdef < AClassdef: superclass typecheck marker */},
-  {(bigint) 3379 /* 8: AMainClassdef < AMainClassdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44135,7 +43676,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AMainClassdef[89] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AMainClassdef < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AMainClassdef < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -44151,6 +43692,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AMainClassdef[89] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -44177,17 +43720,16 @@ const classtable_elt_t VFT_parser___parser_nodes___AMainClassdef[89] = {
   {(bigint) parser___parser_prod___AMainClassdef___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AMainClassdef___visit_all},
-  {(bigint) 1 /* 60: AMainClassdef < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AMainClassdef < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___AClassdef___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AMainClassdef < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AMainClassdef < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___AMainClassdef___name},
   {(bigint) syntax___mmbuilder___AClassdef___arity},
@@ -44200,12 +43742,12 @@ const classtable_elt_t VFT_parser___parser_nodes___AMainClassdef[89] = {
   {(bigint) syntax___mmbuilder___AClassdef___local_class},
   {(bigint) syntax___syntax_base___AClassdef___next_node},
   {(bigint) syntax___syntax_base___AClassdef___next_node__eq},
-  {(bigint) 3 /* 83: AMainClassdef < AClassdef: superclass init_table position */},
+  {(bigint) 0 /* 85: AMainClassdef < AClassdef: superclass init_table position */},
+  {(bigint) parser___parser_nodes___AClassdef___n_propdefs},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) parser___parser_prod___AMainClassdef___empty_init},
   {(bigint) parser___parser_prod___AMainClassdef___init_amainclassdef},
-  {(bigint) 4 /* 87: AMainClassdef < AMainClassdef: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AMainClassdef___n_propdefs},
+  {(bigint) 4 /* 90: AMainClassdef < AMainClassdef: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -44229,10 +43771,10 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AMainClassdef(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:380 */
+  /* parser/parser_nodes.nit:432 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//syntax_base.nit:533 */
+  ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]) = fra.me.REG[1];
+  /* syntax/syntax_base.nit:533 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___syntax_base___AClassdef____next_node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -44259,7 +43801,7 @@ void CHECKNEW_parser___parser_nodes___AMainClassdef(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_nitc, 0);
@@ -44272,13 +43814,13 @@ val_t NEW_AMainClassdef_parser___parser_prod___AMainClassdef___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 638;
+  fra.me.line = 652;
   fra.me.meth = LOCATE_NEW_AMainClassdef_parser___parser_prod___AMainClassdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:638 */
+  /* parser/parser_prod.nit:652 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AMainClassdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AMainClassdef(fra.me.REG[0]);
   parser___parser_prod___AMainClassdef___empty_init(fra.me.REG[0], init_table);
@@ -44292,7 +43834,7 @@ val_t NEW_AMainClassdef_parser___parser_prod___AMainClassdef___init_amainclassde
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 640;
+  fra.me.line = 654;
   fra.me.meth = LOCATE_NEW_AMainClassdef_parser___parser_prod___AMainClassdef___init_amainclassdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -44300,7 +43842,7 @@ val_t NEW_AMainClassdef_parser___parser_prod___AMainClassdef___init_amainclassde
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:640 */
+  /* parser/parser_prod.nit:654 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AMainClassdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AMainClassdef(fra.me.REG[1]);
   parser___parser_prod___AMainClassdef___init_amainclassdef(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -44308,176 +43850,37 @@ val_t NEW_AMainClassdef_parser___parser_prod___AMainClassdef___init_amainclassde
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AMainClassdef_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AMainClassdef_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AMainClassdef_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AMainClassdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AMainClassdef(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AMainClassdef(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AClasskind[77] = {
-  {(bigint) 3127 /* 0: Identity */},
-  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AClasskind" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AClasskind < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AClasskind < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AClasskind < Prod: superclass typecheck marker */},
-  {(bigint) 3127 /* 7: AClasskind < AClasskind: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AClasskind < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: AClasskind < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AClasskind < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___mmbuilder___AClasskind___is_interface},
-  {(bigint) syntax___mmbuilder___AClasskind___is_enum},
-  {(bigint) syntax___mmbuilder___AClasskind___is_abstract},
-  {(bigint) syntax___mmbuilder___AClasskind___is_extern},
-  {(bigint) 3 /* 76: AClasskind < AClasskind: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AClasskind::_parent */
-/* 3: Attribute AClasskind::_location */
-/* 4: Attribute AClasskind::_first_location */
-/* 5: Attribute AClasskind::_last_location */
-void INIT_ATTRIBUTES__parser___parser_nodes___AClasskind(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AClasskind;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AClasskind(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AClasskind;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AClasskind(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AClasskind;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AClasskind_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AClasskind_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AClasskind();
-  INIT_ATTRIBUTES__parser___parser_nodes___AClasskind(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AClasskind(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AMainClassdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___AMainClassdef(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AMainClassdef(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AConcreteClasskind[81] = {
-  {(bigint) 3455 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AConcreteClasskind[83] = {
+  {(bigint) 3531 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AConcreteClasskind" /* 2: Class Name */},
   {(bigint) 3 /* 3: AConcreteClasskind < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AConcreteClasskind < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AConcreteClasskind < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AConcreteClasskind < Prod: superclass typecheck marker */},
+  {(bigint) 2891 /* 6: AConcreteClasskind < AClasskind: superclass typecheck marker */},
+  {(bigint) 3531 /* 7: AConcreteClasskind < AConcreteClasskind: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AConcreteClasskind < Prod: superclass typecheck marker */},
-  {(bigint) 3127 /* 7: AConcreteClasskind < AClasskind: superclass typecheck marker */},
-  {(bigint) 3455 /* 8: AConcreteClasskind < AConcreteClasskind: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44487,7 +43890,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AConcreteClasskind[81] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AConcreteClasskind < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AConcreteClasskind < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -44503,6 +43906,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AConcreteClasskind[81] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -44529,26 +43934,25 @@ const classtable_elt_t VFT_parser___parser_nodes___AConcreteClasskind[81] = {
   {(bigint) parser___parser_prod___AConcreteClasskind___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AConcreteClasskind___visit_all},
-  {(bigint) 1 /* 60: AConcreteClasskind < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AConcreteClasskind < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AConcreteClasskind < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AConcreteClasskind < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___AClasskind___is_interface},
   {(bigint) syntax___mmbuilder___AClasskind___is_enum},
   {(bigint) syntax___mmbuilder___AClasskind___is_abstract},
   {(bigint) syntax___mmbuilder___AClasskind___is_extern},
-  {(bigint) 3 /* 76: AConcreteClasskind < AClasskind: superclass init_table position */},
+  {(bigint) 0 /* 78: AConcreteClasskind < AClasskind: superclass init_table position */},
   {(bigint) parser___parser_prod___AConcreteClasskind___empty_init},
   {(bigint) parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind},
-  {(bigint) 4 /* 79: AConcreteClasskind < AConcreteClasskind: superclass init_table position */},
+  {(bigint) 4 /* 81: AConcreteClasskind < AConcreteClasskind: superclass init_table position */},
   {(bigint) parser___parser_nodes___AConcreteClasskind___n_kwclass},
 };
 /* 0: Pointer to the classtable */
@@ -44605,13 +44009,13 @@ val_t NEW_AConcreteClasskind_parser___parser_prod___AConcreteClasskind___empty_i
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 676;
+  fra.me.line = 690;
   fra.me.meth = LOCATE_NEW_AConcreteClasskind_parser___parser_prod___AConcreteClasskind___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:676 */
+  /* parser/parser_prod.nit:690 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AConcreteClasskind();
   INIT_ATTRIBUTES__parser___parser_nodes___AConcreteClasskind(fra.me.REG[0]);
   parser___parser_prod___AConcreteClasskind___empty_init(fra.me.REG[0], init_table);
@@ -44625,7 +44029,7 @@ val_t NEW_AConcreteClasskind_parser___parser_prod___AConcreteClasskind___init_ac
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 678;
+  fra.me.line = 692;
   fra.me.meth = LOCATE_NEW_AConcreteClasskind_parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -44633,7 +44037,7 @@ val_t NEW_AConcreteClasskind_parser___parser_prod___AConcreteClasskind___init_ac
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:678 */
+  /* parser/parser_prod.nit:692 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AConcreteClasskind();
   INIT_ATTRIBUTES__parser___parser_nodes___AConcreteClasskind(fra.me.REG[1]);
   parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -44641,37 +44045,37 @@ val_t NEW_AConcreteClasskind_parser___parser_prod___AConcreteClasskind___init_ac
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AConcreteClasskind_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AConcreteClasskind_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AConcreteClasskind_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AConcreteClasskind();
-  INIT_ATTRIBUTES__parser___parser_nodes___AConcreteClasskind(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AConcreteClasskind(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AConcreteClasskind();
+  INIT_ATTRIBUTES__parser___parser_nodes___AConcreteClasskind(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AConcreteClasskind(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AAbstractClasskind[82] = {
-  {(bigint) 3519 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AAbstractClasskind[84] = {
+  {(bigint) 3599 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AAbstractClasskind" /* 2: Class Name */},
   {(bigint) 3 /* 3: AAbstractClasskind < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AAbstractClasskind < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AAbstractClasskind < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AAbstractClasskind < Prod: superclass typecheck marker */},
+  {(bigint) 2891 /* 6: AAbstractClasskind < AClasskind: superclass typecheck marker */},
+  {(bigint) 3599 /* 7: AAbstractClasskind < AAbstractClasskind: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AAbstractClasskind < Prod: superclass typecheck marker */},
-  {(bigint) 3127 /* 7: AAbstractClasskind < AClasskind: superclass typecheck marker */},
-  {(bigint) 3519 /* 8: AAbstractClasskind < AAbstractClasskind: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44681,7 +44085,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AAbstractClasskind[82] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AAbstractClasskind < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AAbstractClasskind < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -44697,6 +44101,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AAbstractClasskind[82] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -44723,26 +44129,25 @@ const classtable_elt_t VFT_parser___parser_nodes___AAbstractClasskind[82] = {
   {(bigint) parser___parser_prod___AAbstractClasskind___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AAbstractClasskind___visit_all},
-  {(bigint) 1 /* 60: AAbstractClasskind < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AAbstractClasskind < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AAbstractClasskind < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AAbstractClasskind < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___AClasskind___is_interface},
   {(bigint) syntax___mmbuilder___AClasskind___is_enum},
   {(bigint) syntax___mmbuilder___AAbstractClasskind___is_abstract},
   {(bigint) syntax___mmbuilder___AClasskind___is_extern},
-  {(bigint) 3 /* 76: AAbstractClasskind < AClasskind: superclass init_table position */},
+  {(bigint) 0 /* 78: AAbstractClasskind < AClasskind: superclass init_table position */},
   {(bigint) parser___parser_prod___AAbstractClasskind___empty_init},
   {(bigint) parser___parser_prod___AAbstractClasskind___init_aabstractclasskind},
-  {(bigint) 4 /* 79: AAbstractClasskind < AAbstractClasskind: superclass init_table position */},
+  {(bigint) 4 /* 81: AAbstractClasskind < AAbstractClasskind: superclass init_table position */},
   {(bigint) parser___parser_nodes___AAbstractClasskind___n_kwabstract},
   {(bigint) parser___parser_nodes___AAbstractClasskind___n_kwclass},
 };
@@ -44806,13 +44211,13 @@ val_t NEW_AAbstractClasskind_parser___parser_prod___AAbstractClasskind___empty_i
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 707;
+  fra.me.line = 721;
   fra.me.meth = LOCATE_NEW_AAbstractClasskind_parser___parser_prod___AAbstractClasskind___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:707 */
+  /* parser/parser_prod.nit:721 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AAbstractClasskind();
   INIT_ATTRIBUTES__parser___parser_nodes___AAbstractClasskind(fra.me.REG[0]);
   parser___parser_prod___AAbstractClasskind___empty_init(fra.me.REG[0], init_table);
@@ -44826,7 +44231,7 @@ val_t NEW_AAbstractClasskind_parser___parser_prod___AAbstractClasskind___init_aa
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 709;
+  fra.me.line = 723;
   fra.me.meth = LOCATE_NEW_AAbstractClasskind_parser___parser_prod___AAbstractClasskind___init_aabstractclasskind;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -44836,7 +44241,7 @@ val_t NEW_AAbstractClasskind_parser___parser_prod___AAbstractClasskind___init_aa
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:709 */
+  /* parser/parser_prod.nit:723 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AAbstractClasskind();
   INIT_ATTRIBUTES__parser___parser_nodes___AAbstractClasskind(fra.me.REG[2]);
   parser___parser_prod___AAbstractClasskind___init_aabstractclasskind(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -44844,37 +44249,37 @@ val_t NEW_AAbstractClasskind_parser___parser_prod___AAbstractClasskind___init_aa
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AAbstractClasskind_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AAbstractClasskind_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AAbstractClasskind_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AAbstractClasskind();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAbstractClasskind(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AAbstractClasskind(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AAbstractClasskind();
+  INIT_ATTRIBUTES__parser___parser_nodes___AAbstractClasskind(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AAbstractClasskind(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AInterfaceClasskind[81] = {
-  {(bigint) 3399 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AInterfaceClasskind[83] = {
+  {(bigint) 3471 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AInterfaceClasskind" /* 2: Class Name */},
   {(bigint) 3 /* 3: AInterfaceClasskind < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AInterfaceClasskind < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AInterfaceClasskind < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AInterfaceClasskind < Prod: superclass typecheck marker */},
+  {(bigint) 2891 /* 6: AInterfaceClasskind < AClasskind: superclass typecheck marker */},
+  {(bigint) 3471 /* 7: AInterfaceClasskind < AInterfaceClasskind: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AInterfaceClasskind < Prod: superclass typecheck marker */},
-  {(bigint) 3127 /* 7: AInterfaceClasskind < AClasskind: superclass typecheck marker */},
-  {(bigint) 3399 /* 8: AInterfaceClasskind < AInterfaceClasskind: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -44884,7 +44289,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AInterfaceClasskind[81] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AInterfaceClasskind < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AInterfaceClasskind < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -44900,6 +44305,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AInterfaceClasskind[81] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -44926,26 +44333,25 @@ const classtable_elt_t VFT_parser___parser_nodes___AInterfaceClasskind[81] = {
   {(bigint) parser___parser_prod___AInterfaceClasskind___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AInterfaceClasskind___visit_all},
-  {(bigint) 1 /* 60: AInterfaceClasskind < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AInterfaceClasskind < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AInterfaceClasskind < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AInterfaceClasskind < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___AInterfaceClasskind___is_interface},
   {(bigint) syntax___mmbuilder___AClasskind___is_enum},
   {(bigint) syntax___mmbuilder___AClasskind___is_abstract},
   {(bigint) syntax___mmbuilder___AClasskind___is_extern},
-  {(bigint) 3 /* 76: AInterfaceClasskind < AClasskind: superclass init_table position */},
+  {(bigint) 0 /* 78: AInterfaceClasskind < AClasskind: superclass init_table position */},
   {(bigint) parser___parser_prod___AInterfaceClasskind___empty_init},
   {(bigint) parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind},
-  {(bigint) 4 /* 79: AInterfaceClasskind < AInterfaceClasskind: superclass init_table position */},
+  {(bigint) 4 /* 81: AInterfaceClasskind < AInterfaceClasskind: superclass init_table position */},
   {(bigint) parser___parser_nodes___AInterfaceClasskind___n_kwinterface},
 };
 /* 0: Pointer to the classtable */
@@ -45002,13 +44408,13 @@ val_t NEW_AInterfaceClasskind_parser___parser_prod___AInterfaceClasskind___empty
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 752;
+  fra.me.line = 766;
   fra.me.meth = LOCATE_NEW_AInterfaceClasskind_parser___parser_prod___AInterfaceClasskind___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:752 */
+  /* parser/parser_prod.nit:766 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AInterfaceClasskind();
   INIT_ATTRIBUTES__parser___parser_nodes___AInterfaceClasskind(fra.me.REG[0]);
   parser___parser_prod___AInterfaceClasskind___empty_init(fra.me.REG[0], init_table);
@@ -45022,7 +44428,7 @@ val_t NEW_AInterfaceClasskind_parser___parser_prod___AInterfaceClasskind___init_
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 754;
+  fra.me.line = 768;
   fra.me.meth = LOCATE_NEW_AInterfaceClasskind_parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -45030,7 +44436,7 @@ val_t NEW_AInterfaceClasskind_parser___parser_prod___AInterfaceClasskind___init_
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:754 */
+  /* parser/parser_prod.nit:768 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AInterfaceClasskind();
   INIT_ATTRIBUTES__parser___parser_nodes___AInterfaceClasskind(fra.me.REG[1]);
   parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -45038,37 +44444,37 @@ val_t NEW_AInterfaceClasskind_parser___parser_prod___AInterfaceClasskind___init_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AInterfaceClasskind_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AInterfaceClasskind_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AInterfaceClasskind_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AInterfaceClasskind();
-  INIT_ATTRIBUTES__parser___parser_nodes___AInterfaceClasskind(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AInterfaceClasskind(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AInterfaceClasskind();
+  INIT_ATTRIBUTES__parser___parser_nodes___AInterfaceClasskind(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AInterfaceClasskind(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AEnumClasskind[81] = {
-  {(bigint) 3451 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AEnumClasskind[83] = {
+  {(bigint) 3523 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AEnumClasskind" /* 2: Class Name */},
   {(bigint) 3 /* 3: AEnumClasskind < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AEnumClasskind < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AEnumClasskind < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AEnumClasskind < Prod: superclass typecheck marker */},
+  {(bigint) 2891 /* 6: AEnumClasskind < AClasskind: superclass typecheck marker */},
+  {(bigint) 3523 /* 7: AEnumClasskind < AEnumClasskind: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AEnumClasskind < Prod: superclass typecheck marker */},
-  {(bigint) 3127 /* 7: AEnumClasskind < AClasskind: superclass typecheck marker */},
-  {(bigint) 3451 /* 8: AEnumClasskind < AEnumClasskind: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45078,7 +44484,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AEnumClasskind[81] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AEnumClasskind < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AEnumClasskind < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -45094,6 +44500,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AEnumClasskind[81] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -45120,26 +44528,25 @@ const classtable_elt_t VFT_parser___parser_nodes___AEnumClasskind[81] = {
   {(bigint) parser___parser_prod___AEnumClasskind___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AEnumClasskind___visit_all},
-  {(bigint) 1 /* 60: AEnumClasskind < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AEnumClasskind < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AEnumClasskind < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AEnumClasskind < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___AClasskind___is_interface},
   {(bigint) syntax___mmbuilder___AEnumClasskind___is_enum},
   {(bigint) syntax___mmbuilder___AClasskind___is_abstract},
   {(bigint) syntax___mmbuilder___AClasskind___is_extern},
-  {(bigint) 3 /* 76: AEnumClasskind < AClasskind: superclass init_table position */},
+  {(bigint) 0 /* 78: AEnumClasskind < AClasskind: superclass init_table position */},
   {(bigint) parser___parser_prod___AEnumClasskind___empty_init},
   {(bigint) parser___parser_prod___AEnumClasskind___init_aenumclasskind},
-  {(bigint) 4 /* 79: AEnumClasskind < AEnumClasskind: superclass init_table position */},
+  {(bigint) 4 /* 81: AEnumClasskind < AEnumClasskind: superclass init_table position */},
   {(bigint) parser___parser_nodes___AEnumClasskind___n_kwenum},
 };
 /* 0: Pointer to the classtable */
@@ -45196,13 +44603,13 @@ val_t NEW_AEnumClasskind_parser___parser_prod___AEnumClasskind___empty_init(void
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 783;
+  fra.me.line = 797;
   fra.me.meth = LOCATE_NEW_AEnumClasskind_parser___parser_prod___AEnumClasskind___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:783 */
+  /* parser/parser_prod.nit:797 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AEnumClasskind();
   INIT_ATTRIBUTES__parser___parser_nodes___AEnumClasskind(fra.me.REG[0]);
   parser___parser_prod___AEnumClasskind___empty_init(fra.me.REG[0], init_table);
@@ -45216,7 +44623,7 @@ val_t NEW_AEnumClasskind_parser___parser_prod___AEnumClasskind___init_aenumclass
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 785;
+  fra.me.line = 799;
   fra.me.meth = LOCATE_NEW_AEnumClasskind_parser___parser_prod___AEnumClasskind___init_aenumclasskind;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -45224,7 +44631,7 @@ val_t NEW_AEnumClasskind_parser___parser_prod___AEnumClasskind___init_aenumclass
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:785 */
+  /* parser/parser_prod.nit:799 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AEnumClasskind();
   INIT_ATTRIBUTES__parser___parser_nodes___AEnumClasskind(fra.me.REG[1]);
   parser___parser_prod___AEnumClasskind___init_aenumclasskind(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -45232,37 +44639,37 @@ val_t NEW_AEnumClasskind_parser___parser_prod___AEnumClasskind___init_aenumclass
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AEnumClasskind_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AEnumClasskind_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AEnumClasskind_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AEnumClasskind();
-  INIT_ATTRIBUTES__parser___parser_nodes___AEnumClasskind(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AEnumClasskind(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AEnumClasskind();
+  INIT_ATTRIBUTES__parser___parser_nodes___AEnumClasskind(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AEnumClasskind(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AExternClasskind[81] = {
-  {(bigint) 3435 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AExternClasskind[83] = {
+  {(bigint) 3507 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AExternClasskind" /* 2: Class Name */},
   {(bigint) 3 /* 3: AExternClasskind < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AExternClasskind < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AExternClasskind < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AExternClasskind < Prod: superclass typecheck marker */},
+  {(bigint) 2891 /* 6: AExternClasskind < AClasskind: superclass typecheck marker */},
+  {(bigint) 3507 /* 7: AExternClasskind < AExternClasskind: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AExternClasskind < Prod: superclass typecheck marker */},
-  {(bigint) 3127 /* 7: AExternClasskind < AClasskind: superclass typecheck marker */},
-  {(bigint) 3435 /* 8: AExternClasskind < AExternClasskind: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45272,7 +44679,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternClasskind[81] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AExternClasskind < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AExternClasskind < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -45288,6 +44695,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternClasskind[81] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -45314,26 +44723,25 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternClasskind[81] = {
   {(bigint) parser___parser_prod___AExternClasskind___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AExternClasskind___visit_all},
-  {(bigint) 1 /* 60: AExternClasskind < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AExternClasskind < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AExternClasskind < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AExternClasskind < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___AClasskind___is_interface},
   {(bigint) syntax___mmbuilder___AClasskind___is_enum},
   {(bigint) syntax___mmbuilder___AClasskind___is_abstract},
   {(bigint) syntax___mmbuilder___AExternClasskind___is_extern},
-  {(bigint) 3 /* 76: AExternClasskind < AClasskind: superclass init_table position */},
+  {(bigint) 0 /* 78: AExternClasskind < AClasskind: superclass init_table position */},
   {(bigint) parser___parser_prod___AExternClasskind___empty_init},
   {(bigint) parser___parser_prod___AExternClasskind___init_aexternclasskind},
-  {(bigint) 4 /* 79: AExternClasskind < AExternClasskind: superclass init_table position */},
+  {(bigint) 4 /* 81: AExternClasskind < AExternClasskind: superclass init_table position */},
   {(bigint) parser___parser_nodes___AExternClasskind___n_kwextern},
 };
 /* 0: Pointer to the classtable */
@@ -45390,13 +44798,13 @@ val_t NEW_AExternClasskind_parser___parser_prod___AExternClasskind___empty_init(
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 814;
+  fra.me.line = 828;
   fra.me.meth = LOCATE_NEW_AExternClasskind_parser___parser_prod___AExternClasskind___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:814 */
+  /* parser/parser_prod.nit:828 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AExternClasskind();
   INIT_ATTRIBUTES__parser___parser_nodes___AExternClasskind(fra.me.REG[0]);
   parser___parser_prod___AExternClasskind___empty_init(fra.me.REG[0], init_table);
@@ -45410,7 +44818,7 @@ val_t NEW_AExternClasskind_parser___parser_prod___AExternClasskind___init_aexter
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 816;
+  fra.me.line = 830;
   fra.me.meth = LOCATE_NEW_AExternClasskind_parser___parser_prod___AExternClasskind___init_aexternclasskind;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -45418,7 +44826,7 @@ val_t NEW_AExternClasskind_parser___parser_prod___AExternClasskind___init_aexter
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:816 */
+  /* parser/parser_prod.nit:830 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AExternClasskind();
   INIT_ATTRIBUTES__parser___parser_nodes___AExternClasskind(fra.me.REG[1]);
   parser___parser_prod___AExternClasskind___init_aexternclasskind(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -45426,36 +44834,36 @@ val_t NEW_AExternClasskind_parser___parser_prod___AExternClasskind___init_aexter
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AExternClasskind_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AExternClasskind_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AExternClasskind_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AExternClasskind();
-  INIT_ATTRIBUTES__parser___parser_nodes___AExternClasskind(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AExternClasskind(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AExternClasskind();
+  INIT_ATTRIBUTES__parser___parser_nodes___AExternClasskind(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AExternClasskind(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AFormaldef[79] = {
-  {(bigint) 3099 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AFormaldef[81] = {
+  {(bigint) 2859 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AFormaldef" /* 2: Class Name */},
   {(bigint) 3 /* 3: AFormaldef < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AFormaldef < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AFormaldef < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AFormaldef < Prod: superclass typecheck marker */},
+  {(bigint) 2859 /* 6: AFormaldef < AFormaldef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AFormaldef < Prod: superclass typecheck marker */},
-  {(bigint) 3099 /* 7: AFormaldef < AFormaldef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45466,7 +44874,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AFormaldef[79] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AFormaldef < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: AFormaldef < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -45482,6 +44890,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AFormaldef[79] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -45508,23 +44918,22 @@ const classtable_elt_t VFT_parser___parser_nodes___AFormaldef[79] = {
   {(bigint) parser___parser_prod___AFormaldef___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AFormaldef___visit_all},
-  {(bigint) 1 /* 60: AFormaldef < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: AFormaldef < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AFormaldef < Prod: superclass init_table position */},
+  {(bigint) 0 /* 72: AFormaldef < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
   {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
   {(bigint) parser___parser_prod___AFormaldef___empty_init},
   {(bigint) parser___parser_prod___AFormaldef___init_aformaldef},
-  {(bigint) 3 /* 76: AFormaldef < AFormaldef: superclass init_table position */},
+  {(bigint) 3 /* 78: AFormaldef < AFormaldef: superclass init_table position */},
   {(bigint) parser___parser_nodes___AFormaldef___n_id},
   {(bigint) parser___parser_nodes___AFormaldef___n_type},
 };
@@ -45550,7 +44959,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AFormaldef(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:407 */
+  /* parser/parser_nodes.nit:477 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -45590,13 +44999,13 @@ val_t NEW_AFormaldef_parser___parser_prod___AFormaldef___empty_init(void){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 845;
+  fra.me.line = 859;
   fra.me.meth = LOCATE_NEW_AFormaldef_parser___parser_prod___AFormaldef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:845 */
+  /* parser/parser_prod.nit:859 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AFormaldef();
   INIT_ATTRIBUTES__parser___parser_nodes___AFormaldef(fra.me.REG[0]);
   parser___parser_prod___AFormaldef___empty_init(fra.me.REG[0], init_table);
@@ -45610,7 +45019,7 @@ val_t NEW_AFormaldef_parser___parser_prod___AFormaldef___init_aformaldef(val_t p
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 847;
+  fra.me.line = 861;
   fra.me.meth = LOCATE_NEW_AFormaldef_parser___parser_prod___AFormaldef___init_aformaldef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -45620,7 +45029,7 @@ val_t NEW_AFormaldef_parser___parser_prod___AFormaldef___init_aformaldef(val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:847 */
+  /* parser/parser_prod.nit:861 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AFormaldef();
   INIT_ATTRIBUTES__parser___parser_nodes___AFormaldef(fra.me.REG[2]);
   parser___parser_prod___AFormaldef___init_aformaldef(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -45628,36 +45037,36 @@ val_t NEW_AFormaldef_parser___parser_prod___AFormaldef___init_aformaldef(val_t p
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AFormaldef_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AFormaldef_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AFormaldef_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AFormaldef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AFormaldef(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AFormaldef(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AFormaldef();
+  INIT_ATTRIBUTES__parser___parser_nodes___AFormaldef(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AFormaldef(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ASuperclass[82] = {
-  {(bigint) 3051 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ASuperclass[84] = {
+  {(bigint) 2811 /* 0: Identity */},
   {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ASuperclass" /* 2: Class Name */},
   {(bigint) 3 /* 3: ASuperclass < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ASuperclass < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ASuperclass < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ASuperclass < Prod: superclass typecheck marker */},
+  {(bigint) 2811 /* 6: ASuperclass < ASuperclass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ASuperclass < Prod: superclass typecheck marker */},
-  {(bigint) 3051 /* 7: ASuperclass < ASuperclass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45668,7 +45077,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ASuperclass[82] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ASuperclass < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: ASuperclass < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -45684,6 +45093,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ASuperclass[82] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -45710,17 +45121,16 @@ const classtable_elt_t VFT_parser___parser_nodes___ASuperclass[82] = {
   {(bigint) parser___parser_prod___ASuperclass___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ASuperclass___visit_all},
-  {(bigint) 1 /* 60: ASuperclass < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: ASuperclass < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ASuperclass < Prod: superclass init_table position */},
+  {(bigint) 0 /* 72: ASuperclass < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ASuperclass___ancestor},
   {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
@@ -45728,7 +45138,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ASuperclass[82] = {
   {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
   {(bigint) parser___parser_prod___ASuperclass___empty_init},
   {(bigint) parser___parser_prod___ASuperclass___init_asuperclass},
-  {(bigint) 3 /* 78: ASuperclass < ASuperclass: superclass init_table position */},
+  {(bigint) 3 /* 80: ASuperclass < ASuperclass: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASuperclass___n_kwspecial},
   {(bigint) parser___parser_nodes___ASuperclass___n_kwsuper},
   {(bigint) parser___parser_nodes___ASuperclass___n_type},
@@ -45756,10 +45166,10 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ASuperclass(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:411 */
+  /* parser/parser_nodes.nit:481 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:412 */
+  /* parser/parser_nodes.nit:482 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -45799,13 +45209,13 @@ val_t NEW_ASuperclass_parser___parser_prod___ASuperclass___empty_init(void){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 894;
+  fra.me.line = 908;
   fra.me.meth = LOCATE_NEW_ASuperclass_parser___parser_prod___ASuperclass___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:894 */
+  /* parser/parser_prod.nit:908 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ASuperclass();
   INIT_ATTRIBUTES__parser___parser_nodes___ASuperclass(fra.me.REG[0]);
   parser___parser_prod___ASuperclass___empty_init(fra.me.REG[0], init_table);
@@ -45819,7 +45229,7 @@ val_t NEW_ASuperclass_parser___parser_prod___ASuperclass___init_asuperclass(val_
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 896;
+  fra.me.line = 910;
   fra.me.meth = LOCATE_NEW_ASuperclass_parser___parser_prod___ASuperclass___init_asuperclass;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -45831,7 +45241,7 @@ val_t NEW_ASuperclass_parser___parser_prod___ASuperclass___init_asuperclass(val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:896 */
+  /* parser/parser_prod.nit:910 */
   fra.me.REG[3] = NEW_parser___parser_nodes___ASuperclass();
   INIT_ATTRIBUTES__parser___parser_nodes___ASuperclass(fra.me.REG[3]);
   parser___parser_prod___ASuperclass___init_asuperclass(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -45839,186 +45249,37 @@ val_t NEW_ASuperclass_parser___parser_prod___ASuperclass___init_asuperclass(val_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-val_t NEW_ASuperclass_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ASuperclass_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ASuperclass();
-  INIT_ATTRIBUTES__parser___parser_nodes___ASuperclass(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ASuperclass(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___APropdef[79] = {
-  {(bigint) 3063 /* 0: Identity */},
-  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "APropdef" /* 2: Class Name */},
-  {(bigint) 3 /* 3: APropdef < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: APropdef < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: APropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3063 /* 7: APropdef < APropdef: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: APropdef < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: APropdef < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: APropdef < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___mmbuilder___APropdef___process_and_check},
-  {(bigint) syntax___mmbuilder___APropdef___do_and_check_intro},
-  {(bigint) syntax___mmbuilder___APropdef___inherit_signature},
-  {(bigint) syntax___mmbuilder___APropdef___do_and_check_redef},
-  {(bigint) syntax___typing___APropdef___self_var},
-  {(bigint) 3 /* 77: APropdef < APropdef: superclass init_table position */},
-  {(bigint) parser___parser_nodes___APropdef___n_doc},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute APropdef::_parent */
-/* 3: Attribute APropdef::_location */
-/* 4: Attribute APropdef::_first_location */
-/* 5: Attribute APropdef::_last_location */
-/* 6: Attribute APropdef::_n_doc */
-/* 7: Attribute APropdef::_self_var */
-void INIT_ATTRIBUTES__parser___parser_nodes___APropdef(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___APropdef;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:416 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___APropdef(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___APropdef;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___APropdef(val_t p0){
+val_t NEW_ASuperclass_parser___parser_nodes___ANode___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___APropdef;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_APropdef_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_APropdef_parser___parser_nodes___ANode___init;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_ASuperclass_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___APropdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___APropdef(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___APropdef(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ASuperclass();
+  INIT_ATTRIBUTES__parser___parser_nodes___ASuperclass(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ASuperclass(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AAttrPropdef[99] = {
-  {(bigint) 3491 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AAttrPropdef[101] = {
+  {(bigint) 3571 /* 0: Identity */},
   {(bigint) 20 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AAttrPropdef" /* 2: Class Name */},
   {(bigint) 3 /* 3: AAttrPropdef < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AAttrPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AAttrPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AAttrPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 2823 /* 6: AAttrPropdef < APropdef: superclass typecheck marker */},
+  {(bigint) 3571 /* 7: AAttrPropdef < AAttrPropdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AAttrPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3063 /* 7: AAttrPropdef < APropdef: superclass typecheck marker */},
-  {(bigint) 3491 /* 8: AAttrPropdef < AAttrPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46028,7 +45289,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AAttrPropdef[99] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AAttrPropdef < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AAttrPropdef < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -46044,6 +45305,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AAttrPropdef[99] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -46070,24 +45333,23 @@ const classtable_elt_t VFT_parser___parser_nodes___AAttrPropdef[99] = {
   {(bigint) parser___parser_prod___AAttrPropdef___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AAttrPropdef___visit_all},
-  {(bigint) 1 /* 60: AAttrPropdef < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AAttrPropdef < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___AAttrPropdef___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AAttrPropdef___accept_icode_generation},
   {(bigint) syntax___typing___AAttrPropdef___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AAttrPropdef < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AAttrPropdef < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___APropdef___process_and_check},
   {(bigint) syntax___mmbuilder___APropdef___do_and_check_intro},
   {(bigint) syntax___mmbuilder___APropdef___inherit_signature},
   {(bigint) syntax___mmbuilder___APropdef___do_and_check_redef},
   {(bigint) syntax___typing___APropdef___self_var},
-  {(bigint) 3 /* 77: AAttrPropdef < APropdef: superclass init_table position */},
+  {(bigint) 0 /* 79: AAttrPropdef < APropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___APropdef___n_doc},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
@@ -46097,7 +45359,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AAttrPropdef[99] = {
   {(bigint) syntax___mmbuilder___AAttrPropdef___writemethod},
   {(bigint) parser___parser_prod___AAttrPropdef___empty_init},
   {(bigint) parser___parser_prod___AAttrPropdef___init_aattrpropdef},
-  {(bigint) 4 /* 87: AAttrPropdef < AAttrPropdef: superclass init_table position */},
+  {(bigint) 4 /* 89: AAttrPropdef < AAttrPropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___AAttrPropdef___n_kwredef},
   {(bigint) parser___parser_nodes___AAttrPropdef___n_visibility},
   {(bigint) parser___parser_nodes___AAttrPropdef___n_kwvar},
@@ -46143,22 +45405,22 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AAttrPropdef(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:416 */
+  /* parser/parser_nodes.nit:486 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:426 */
+  /* parser/parser_nodes.nit:496 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:427 */
+  /* parser/parser_nodes.nit:497 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:420 */
+  /* parser/parser_nodes.nit:490 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:425 */
+  /* parser/parser_nodes.nit:495 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:428 */
+  /* parser/parser_nodes.nit:498 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -46203,13 +45465,13 @@ val_t NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 961;
+  fra.me.line = 975;
   fra.me.meth = LOCATE_NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:961 */
+  /* parser/parser_prod.nit:975 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AAttrPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AAttrPropdef(fra.me.REG[0]);
   parser___parser_prod___AAttrPropdef___empty_init(fra.me.REG[0], init_table);
@@ -46223,7 +45485,7 @@ val_t NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(v
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 963;
+  fra.me.line = 977;
   fra.me.meth = LOCATE_NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 11;
@@ -46249,7 +45511,7 @@ val_t NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(v
   fra.me.REG[7] = p7;
   fra.me.REG[8] = p8;
   fra.me.REG[9] = p9;
-  /* ./parser//parser_prod.nit:963 */
+  /* parser/parser_prod.nit:977 */
   fra.me.REG[10] = NEW_parser___parser_nodes___AAttrPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AAttrPropdef(fra.me.REG[10]);
   parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[10], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], fra.me.REG[6], fra.me.REG[7], fra.me.REG[8], fra.me.REG[9], init_table);
@@ -46257,264 +45519,38 @@ val_t NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(v
   stack_frame_head = fra.me.prev;
   return fra.me.REG[10];
 }
-val_t NEW_AAttrPropdef_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AAttrPropdef_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AAttrPropdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAttrPropdef(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AAttrPropdef(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AMethPropdef[94] = {
-  {(bigint) 3375 /* 0: Identity */},
-  {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AMethPropdef" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AMethPropdef < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AMethPropdef < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AMethPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3063 /* 7: AMethPropdef < APropdef: superclass typecheck marker */},
-  {(bigint) 3375 /* 8: AMethPropdef < AMethPropdef: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AMethPropdef < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AMethPropdef___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AMethPropdef___accept_property_verifier},
-  {(bigint) syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___AMethPropdef___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___AMethPropdef___visit_all},
-  {(bigint) 1 /* 60: AMethPropdef < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___AMethPropdef___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AMethPropdef___accept_icode_generation},
-  {(bigint) syntax___typing___AMethPropdef___accept_typing},
-  {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AMethPropdef < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___mmbuilder___APropdef___process_and_check},
-  {(bigint) syntax___mmbuilder___APropdef___do_and_check_intro},
-  {(bigint) syntax___mmbuilder___APropdef___inherit_signature},
-  {(bigint) syntax___mmbuilder___APropdef___do_and_check_redef},
-  {(bigint) syntax___typing___APropdef___self_var},
-  {(bigint) 3 /* 77: AMethPropdef < APropdef: superclass init_table position */},
-  {(bigint) parser___parser_nodes___APropdef___n_doc},
-  {(bigint) syntax___mmbuilder___AMethPropdef___name},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) syntax___mmbuilder___AMethPropdef___method},
-  {(bigint) parser___parser_prod___AMethPropdef___empty_init},
-  {(bigint) parser___parser_prod___AMethPropdef___init_amethpropdef},
-  {(bigint) 4 /* 86: AMethPropdef < AMethPropdef: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AMethPropdef___n_kwredef},
-  {(bigint) parser___parser_nodes___AMethPropdef___n_visibility},
-  {(bigint) parser___parser_nodes___AMethPropdef___n_methid},
-  {(bigint) parser___parser_nodes___AMethPropdef___n_signature},
-  {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
-  {(bigint) syntax___icode_generation___AMethPropdef___fill_iroutine},
-  {(bigint) syntax___typing___ANode___accept_typing},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AMethPropdef::_parent */
-/* 3: Attribute AMethPropdef::_location */
-/* 4: Attribute AMethPropdef::_first_location */
-/* 5: Attribute AMethPropdef::_last_location */
-/* 6: Attribute AMethPropdef::_n_doc */
-/* 7: Attribute AMethPropdef::_self_var */
-/* 8: Attribute AMethPropdef::_name */
-/* 9: Attribute AMethPropdef::_method */
-/* 10: Attribute AMethPropdef::_n_kwredef */
-/* 11: Attribute AMethPropdef::_n_visibility */
-/* 12: Attribute AMethPropdef::_n_methid */
-/* 13: Attribute AMethPropdef::_n_signature */
-void INIT_ATTRIBUTES__parser___parser_nodes___AMethPropdef(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AMethPropdef;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:416 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:436 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:438 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AMethPropdef(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 14);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AMethPropdef;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AMethPropdef(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AMethPropdef;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AMethPropdef_parser___parser_prod___AMethPropdef___empty_init(void){
+val_t NEW_AAttrPropdef_parser___parser_nodes___ANode___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1150;
-  fra.me.meth = LOCATE_NEW_AMethPropdef_parser___parser_prod___AMethPropdef___empty_init;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_AAttrPropdef_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:1150 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___AMethPropdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AMethPropdef(fra.me.REG[0]);
-  parser___parser_prod___AMethPropdef___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AMethPropdef(fra.me.REG[0]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AAttrPropdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___AAttrPropdef(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AAttrPropdef(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_AMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 1152;
-  fra.me.meth = LOCATE_NEW_AMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  fra.me.REG[3] = p3;
-  fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:1152 */
-  fra.me.REG[5] = NEW_parser___parser_nodes___AMethPropdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AMethPropdef(fra.me.REG[5]);
-  parser___parser_prod___AMethPropdef___init_amethpropdef(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
-  CHECKNEW_parser___parser_nodes___AMethPropdef(fra.me.REG[5]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[5];
-}
-val_t NEW_AMethPropdef_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AMethPropdef_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AMethPropdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AMethPropdef(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AMethPropdef(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___ADeferredMethPropdef[98] = {
-  {(bigint) 3683 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ADeferredMethPropdef[100] = {
+  {(bigint) 3767 /* 0: Identity */},
   {(bigint) 15 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ADeferredMethPropdef" /* 2: Class Name */},
   {(bigint) 3 /* 3: ADeferredMethPropdef < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ADeferredMethPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ADeferredMethPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ADeferredMethPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 2823 /* 6: ADeferredMethPropdef < APropdef: superclass typecheck marker */},
+  {(bigint) 3443 /* 7: ADeferredMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {(bigint) 3767 /* 8: ADeferredMethPropdef < ADeferredMethPropdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ADeferredMethPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3063 /* 7: ADeferredMethPropdef < APropdef: superclass typecheck marker */},
-  {(bigint) 3375 /* 8: ADeferredMethPropdef < AMethPropdef: superclass typecheck marker */},
-  {(bigint) 3683 /* 9: ADeferredMethPropdef < ADeferredMethPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46523,7 +45559,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ADeferredMethPropdef[98] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ADeferredMethPropdef < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: ADeferredMethPropdef < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -46539,6 +45575,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ADeferredMethPropdef[98] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -46565,24 +45603,23 @@ const classtable_elt_t VFT_parser___parser_nodes___ADeferredMethPropdef[98] = {
   {(bigint) parser___parser_prod___ADeferredMethPropdef___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ADeferredMethPropdef___visit_all},
-  {(bigint) 1 /* 60: ADeferredMethPropdef < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: ADeferredMethPropdef < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___AMethPropdef___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AMethPropdef___accept_icode_generation},
   {(bigint) syntax___typing___AMethPropdef___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ADeferredMethPropdef < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: ADeferredMethPropdef < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___APropdef___process_and_check},
   {(bigint) syntax___mmbuilder___APropdef___do_and_check_intro},
   {(bigint) syntax___mmbuilder___APropdef___inherit_signature},
   {(bigint) syntax___mmbuilder___APropdef___do_and_check_redef},
   {(bigint) syntax___typing___APropdef___self_var},
-  {(bigint) 3 /* 77: ADeferredMethPropdef < APropdef: superclass init_table position */},
+  {(bigint) 1 /* 79: ADeferredMethPropdef < APropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___APropdef___n_doc},
   {(bigint) syntax___mmbuilder___AMethPropdef___name},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
@@ -46591,7 +45628,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ADeferredMethPropdef[98] = {
   {(bigint) syntax___mmbuilder___AMethPropdef___method},
   {(bigint) parser___parser_prod___AMethPropdef___empty_init},
   {(bigint) parser___parser_prod___AMethPropdef___init_amethpropdef},
-  {(bigint) 4 /* 86: ADeferredMethPropdef < AMethPropdef: superclass init_table position */},
+  {(bigint) 0 /* 88: ADeferredMethPropdef < AMethPropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___AMethPropdef___n_kwredef},
   {(bigint) parser___parser_nodes___AMethPropdef___n_visibility},
   {(bigint) parser___parser_nodes___AMethPropdef___n_methid},
@@ -46601,7 +45638,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ADeferredMethPropdef[98] = {
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) parser___parser_prod___ADeferredMethPropdef___empty_init},
   {(bigint) parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef},
-  {(bigint) 5 /* 96: ADeferredMethPropdef < ADeferredMethPropdef: superclass init_table position */},
+  {(bigint) 5 /* 98: ADeferredMethPropdef < ADeferredMethPropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___ADeferredMethPropdef___n_kwmeth},
 };
 /* 0: Pointer to the classtable */
@@ -46632,13 +45669,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ADeferredMethPropdef(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:416 */
+  /* parser/parser_nodes.nit:486 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:436 */
+  /* parser/parser_nodes.nit:506 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:438 */
+  /* parser/parser_nodes.nit:508 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -46678,13 +45715,13 @@ val_t NEW_ADeferredMethPropdef_parser___parser_prod___AMethPropdef___empty_init(
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1150;
+  fra.me.line = 1164;
   fra.me.meth = LOCATE_NEW_ADeferredMethPropdef_parser___parser_prod___AMethPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:1150 */
+  /* parser/parser_prod.nit:1164 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ADeferredMethPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___ADeferredMethPropdef(fra.me.REG[0]);
   parser___parser_prod___AMethPropdef___empty_init(fra.me.REG[0], init_table);
@@ -46698,13 +45735,13 @@ val_t NEW_ADeferredMethPropdef_parser___parser_prod___ADeferredMethPropdef___emp
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1245;
+  fra.me.line = 1259;
   fra.me.meth = LOCATE_NEW_ADeferredMethPropdef_parser___parser_prod___ADeferredMethPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:1245 */
+  /* parser/parser_prod.nit:1259 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ADeferredMethPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___ADeferredMethPropdef(fra.me.REG[0]);
   parser___parser_prod___ADeferredMethPropdef___empty_init(fra.me.REG[0], init_table);
@@ -46718,7 +45755,7 @@ val_t NEW_ADeferredMethPropdef_parser___parser_prod___ADeferredMethPropdef___ini
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1247;
+  fra.me.line = 1261;
   fra.me.meth = LOCATE_NEW_ADeferredMethPropdef_parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -46736,7 +45773,7 @@ val_t NEW_ADeferredMethPropdef_parser___parser_prod___ADeferredMethPropdef___ini
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
-  /* ./parser//parser_prod.nit:1247 */
+  /* parser/parser_prod.nit:1261 */
   fra.me.REG[6] = NEW_parser___parser_nodes___ADeferredMethPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___ADeferredMethPropdef(fra.me.REG[6]);
   parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(fra.me.REG[6], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], init_table);
@@ -46744,26 +45781,25 @@ val_t NEW_ADeferredMethPropdef_parser___parser_prod___ADeferredMethPropdef___ini
   stack_frame_head = fra.me.prev;
   return fra.me.REG[6];
 }
-val_t NEW_ADeferredMethPropdef_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ADeferredMethPropdef_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ADeferredMethPropdef_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ADeferredMethPropdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___ADeferredMethPropdef(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ADeferredMethPropdef(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ADeferredMethPropdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___ADeferredMethPropdef(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ADeferredMethPropdef(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_ADeferredMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
@@ -46771,7 +45807,7 @@ val_t NEW_ADeferredMethPropdef_parser___parser_prod___AMethPropdef___init_amethp
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1152;
+  fra.me.line = 1166;
   fra.me.meth = LOCATE_NEW_ADeferredMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -46787,7 +45823,7 @@ val_t NEW_ADeferredMethPropdef_parser___parser_prod___AMethPropdef___init_amethp
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:1152 */
+  /* parser/parser_prod.nit:1166 */
   fra.me.REG[5] = NEW_parser___parser_nodes___ADeferredMethPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___ADeferredMethPropdef(fra.me.REG[5]);
   parser___parser_prod___AMethPropdef___init_amethpropdef(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
@@ -46795,308 +45831,18 @@ val_t NEW_ADeferredMethPropdef_parser___parser_prod___AMethPropdef___init_amethp
   stack_frame_head = fra.me.prev;
   return fra.me.REG[5];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AInternMethPropdef[98] = {
-  {(bigint) 3643 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AInternMethPropdef[100] = {
+  {(bigint) 3723 /* 0: Identity */},
   {(bigint) 15 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AInternMethPropdef" /* 2: Class Name */},
   {(bigint) 3 /* 3: AInternMethPropdef < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AInternMethPropdef < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AInternMethPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3063 /* 7: AInternMethPropdef < APropdef: superclass typecheck marker */},
-  {(bigint) 3375 /* 8: AInternMethPropdef < AMethPropdef: superclass typecheck marker */},
-  {(bigint) 3643 /* 9: AInternMethPropdef < AInternMethPropdef: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AInternMethPropdef < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AMethPropdef___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AMethPropdef___accept_property_verifier},
-  {(bigint) syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___AInternMethPropdef___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___AInternMethPropdef___visit_all},
-  {(bigint) 1 /* 60: AInternMethPropdef < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___AMethPropdef___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AMethPropdef___accept_icode_generation},
-  {(bigint) syntax___typing___AMethPropdef___accept_typing},
-  {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
+  {(bigint) 303 /* 4: AInternMethPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AInternMethPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 2823 /* 6: AInternMethPropdef < APropdef: superclass typecheck marker */},
+  {(bigint) 3443 /* 7: AInternMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {(bigint) 3723 /* 8: AInternMethPropdef < AInternMethPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AInternMethPropdef < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___mmbuilder___APropdef___process_and_check},
-  {(bigint) syntax___mmbuilder___APropdef___do_and_check_intro},
-  {(bigint) syntax___mmbuilder___APropdef___inherit_signature},
-  {(bigint) syntax___mmbuilder___APropdef___do_and_check_redef},
-  {(bigint) syntax___typing___APropdef___self_var},
-  {(bigint) 3 /* 77: AInternMethPropdef < APropdef: superclass init_table position */},
-  {(bigint) parser___parser_nodes___APropdef___n_doc},
-  {(bigint) syntax___mmbuilder___AMethPropdef___name},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) syntax___mmbuilder___AMethPropdef___method},
-  {(bigint) parser___parser_prod___AMethPropdef___empty_init},
-  {(bigint) parser___parser_prod___AMethPropdef___init_amethpropdef},
-  {(bigint) 4 /* 86: AInternMethPropdef < AMethPropdef: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AMethPropdef___n_kwredef},
-  {(bigint) parser___parser_nodes___AMethPropdef___n_visibility},
-  {(bigint) parser___parser_nodes___AMethPropdef___n_methid},
-  {(bigint) parser___parser_nodes___AMethPropdef___n_signature},
-  {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
-  {(bigint) syntax___icode_generation___AInternMethPropdef___fill_iroutine},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) parser___parser_prod___AInternMethPropdef___empty_init},
-  {(bigint) parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef},
-  {(bigint) 5 /* 96: AInternMethPropdef < AInternMethPropdef: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AInternMethPropdef___n_kwmeth},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AInternMethPropdef::_parent */
-/* 3: Attribute AInternMethPropdef::_location */
-/* 4: Attribute AInternMethPropdef::_first_location */
-/* 5: Attribute AInternMethPropdef::_last_location */
-/* 6: Attribute AInternMethPropdef::_n_doc */
-/* 7: Attribute AInternMethPropdef::_self_var */
-/* 8: Attribute AInternMethPropdef::_name */
-/* 9: Attribute AInternMethPropdef::_method */
-/* 10: Attribute AInternMethPropdef::_n_kwredef */
-/* 11: Attribute AInternMethPropdef::_n_visibility */
-/* 12: Attribute AInternMethPropdef::_n_methid */
-/* 13: Attribute AInternMethPropdef::_n_signature */
-/* 14: Attribute AInternMethPropdef::_n_kwmeth */
-void INIT_ATTRIBUTES__parser___parser_nodes___AInternMethPropdef(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AInternMethPropdef;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:416 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:436 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:438 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AInternMethPropdef(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 15);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AInternMethPropdef;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AInternMethPropdef(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AInternMethPropdef;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AInternMethPropdef_parser___parser_prod___AMethPropdef___empty_init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 1150;
-  fra.me.meth = LOCATE_NEW_AInternMethPropdef_parser___parser_prod___AMethPropdef___empty_init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:1150 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___AInternMethPropdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AInternMethPropdef(fra.me.REG[0]);
-  parser___parser_prod___AMethPropdef___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AInternMethPropdef(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t NEW_AInternMethPropdef_parser___parser_prod___AInternMethPropdef___empty_init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 1354;
-  fra.me.meth = LOCATE_NEW_AInternMethPropdef_parser___parser_prod___AInternMethPropdef___empty_init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:1354 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___AInternMethPropdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AInternMethPropdef(fra.me.REG[0]);
-  parser___parser_prod___AInternMethPropdef___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AInternMethPropdef(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t NEW_AInternMethPropdef_parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5){
-  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
-  val_t tmp;
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 1356;
-  fra.me.meth = LOCATE_NEW_AInternMethPropdef_parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 7;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[6] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  fra.me.REG[3] = p3;
-  fra.me.REG[4] = p4;
-  fra.me.REG[5] = p5;
-  /* ./parser//parser_prod.nit:1356 */
-  fra.me.REG[6] = NEW_parser___parser_nodes___AInternMethPropdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AInternMethPropdef(fra.me.REG[6]);
-  parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef(fra.me.REG[6], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], init_table);
-  CHECKNEW_parser___parser_nodes___AInternMethPropdef(fra.me.REG[6]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[6];
-}
-val_t NEW_AInternMethPropdef_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AInternMethPropdef_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AInternMethPropdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AInternMethPropdef(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AInternMethPropdef(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-val_t NEW_AInternMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
-  val_t tmp;
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 1152;
-  fra.me.meth = LOCATE_NEW_AInternMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  fra.me.REG[3] = p3;
-  fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:1152 */
-  fra.me.REG[5] = NEW_parser___parser_nodes___AInternMethPropdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AInternMethPropdef(fra.me.REG[5]);
-  parser___parser_prod___AMethPropdef___init_amethpropdef(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
-  CHECKNEW_parser___parser_nodes___AInternMethPropdef(fra.me.REG[5]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[5];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AExternPropdef[98] = {
-  {(bigint) 3667 /* 0: Identity */},
-  {(bigint) 16 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AExternPropdef" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AExternPropdef < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AExternPropdef < ANode: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AExternPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3063 /* 7: AExternPropdef < APropdef: superclass typecheck marker */},
-  {(bigint) 3375 /* 8: AExternPropdef < AMethPropdef: superclass typecheck marker */},
-  {(bigint) 3667 /* 9: AExternPropdef < AExternPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47105,7 +45851,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternPropdef[98] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AExternPropdef < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AInternMethPropdef < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -47121,6 +45867,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternPropdef[98] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -47139,32 +45887,31 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternPropdef[98] = {
   {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
   {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
   {(bigint) syntax___mmbuilder___AMethPropdef___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExternPropdef___accept_property_verifier},
+  {(bigint) syntax___mmbuilder___AMethPropdef___accept_property_verifier},
   {(bigint) syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor},
   {(bigint) parser___parser_prod___ANode___parent},
   {(bigint) parser___parser_prod___ANode___parent__eq},
   {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___AMethPropdef___replace_child},
+  {(bigint) parser___parser_prod___AInternMethPropdef___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___AMethPropdef___visit_all},
-  {(bigint) 1 /* 60: AExternPropdef < ANode: superclass init_table position */},
+  {(bigint) parser___parser_prod___AInternMethPropdef___visit_all},
+  {(bigint) 3 /* 63: AInternMethPropdef < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___AMethPropdef___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AMethPropdef___accept_icode_generation},
   {(bigint) syntax___typing___AMethPropdef___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AExternPropdef < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AInternMethPropdef < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___APropdef___process_and_check},
   {(bigint) syntax___mmbuilder___APropdef___do_and_check_intro},
   {(bigint) syntax___mmbuilder___APropdef___inherit_signature},
   {(bigint) syntax___mmbuilder___APropdef___do_and_check_redef},
   {(bigint) syntax___typing___APropdef___self_var},
-  {(bigint) 3 /* 77: AExternPropdef < APropdef: superclass init_table position */},
+  {(bigint) 1 /* 79: AInternMethPropdef < APropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___APropdef___n_doc},
   {(bigint) syntax___mmbuilder___AMethPropdef___name},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
@@ -47173,135 +45920,187 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternPropdef[98] = {
   {(bigint) syntax___mmbuilder___AMethPropdef___method},
   {(bigint) parser___parser_prod___AMethPropdef___empty_init},
   {(bigint) parser___parser_prod___AMethPropdef___init_amethpropdef},
-  {(bigint) 4 /* 86: AExternPropdef < AMethPropdef: superclass init_table position */},
+  {(bigint) 0 /* 88: AInternMethPropdef < AMethPropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___AMethPropdef___n_kwredef},
   {(bigint) parser___parser_nodes___AMethPropdef___n_visibility},
   {(bigint) parser___parser_nodes___AMethPropdef___n_methid},
   {(bigint) parser___parser_nodes___AMethPropdef___n_signature},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
-  {(bigint) syntax___icode_generation___AExternPropdef___fill_iroutine},
+  {(bigint) syntax___icode_generation___AInternMethPropdef___fill_iroutine},
   {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___mmbuilder___AMethPropdef___accept_property_verifier},
-  {(bigint) 5 /* 95: AExternPropdef < AExternPropdef: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AExternPropdef___n_extern},
-  {(bigint) parser___parser_nodes___AExternPropdef___n_extern_calls},
+  {(bigint) parser___parser_prod___AInternMethPropdef___empty_init},
+  {(bigint) parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef},
+  {(bigint) 5 /* 98: AInternMethPropdef < AInternMethPropdef: superclass init_table position */},
+  {(bigint) parser___parser_nodes___AInternMethPropdef___n_kwmeth},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute AExternPropdef::_parent */
-/* 3: Attribute AExternPropdef::_location */
-/* 4: Attribute AExternPropdef::_first_location */
-/* 5: Attribute AExternPropdef::_last_location */
-/* 6: Attribute AExternPropdef::_n_doc */
-/* 7: Attribute AExternPropdef::_self_var */
-/* 8: Attribute AExternPropdef::_name */
-/* 9: Attribute AExternPropdef::_method */
-/* 10: Attribute AExternPropdef::_n_kwredef */
-/* 11: Attribute AExternPropdef::_n_visibility */
-/* 12: Attribute AExternPropdef::_n_methid */
-/* 13: Attribute AExternPropdef::_n_signature */
-/* 14: Attribute AExternPropdef::_n_extern */
-/* 15: Attribute AExternPropdef::_n_extern_calls */
-void INIT_ATTRIBUTES__parser___parser_nodes___AExternPropdef(val_t p0){
+/* 2: Attribute AInternMethPropdef::_parent */
+/* 3: Attribute AInternMethPropdef::_location */
+/* 4: Attribute AInternMethPropdef::_first_location */
+/* 5: Attribute AInternMethPropdef::_last_location */
+/* 6: Attribute AInternMethPropdef::_n_doc */
+/* 7: Attribute AInternMethPropdef::_self_var */
+/* 8: Attribute AInternMethPropdef::_name */
+/* 9: Attribute AInternMethPropdef::_method */
+/* 10: Attribute AInternMethPropdef::_n_kwredef */
+/* 11: Attribute AInternMethPropdef::_n_visibility */
+/* 12: Attribute AInternMethPropdef::_n_methid */
+/* 13: Attribute AInternMethPropdef::_n_signature */
+/* 14: Attribute AInternMethPropdef::_n_kwmeth */
+void INIT_ATTRIBUTES__parser___parser_nodes___AInternMethPropdef(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AExternPropdef;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AInternMethPropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:459 */
+  /* parser/parser_nodes.nit:486 */
   fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:460 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:436 */
+  ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
+  /* parser/parser_nodes.nit:506 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:438 */
+  /* parser/parser_nodes.nit:508 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:416 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___parser_nodes___AExternPropdef(void)
+val_t NEW_parser___parser_nodes___AInternMethPropdef(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 16);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AExternPropdef;
+  obj = alloc(sizeof(val_t) * 15);
+  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AInternMethPropdef;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___parser_nodes___AExternPropdef(val_t p0){
+void CHECKNEW_parser___parser_nodes___AInternMethPropdef(val_t p0){
   struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AExternPropdef;
+  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AInternMethPropdef;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_nitc, 0);
+  }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_AExternPropdef_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AInternMethPropdef_parser___parser_prod___AMethPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AExternPropdef_parser___parser_nodes___ANode___init;
+  fra.me.line = 1164;
+  fra.me.meth = LOCATE_NEW_AInternMethPropdef_parser___parser_prod___AMethPropdef___empty_init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_prod.nit:1164 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AInternMethPropdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___AInternMethPropdef(fra.me.REG[0]);
+  parser___parser_prod___AMethPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AInternMethPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AInternMethPropdef_parser___parser_prod___AInternMethPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1368;
+  fra.me.meth = LOCATE_NEW_AInternMethPropdef_parser___parser_prod___AInternMethPropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_prod.nit:1368 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AInternMethPropdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___AInternMethPropdef(fra.me.REG[0]);
+  parser___parser_prod___AInternMethPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AInternMethPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AInternMethPropdef_parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1370;
+  fra.me.meth = LOCATE_NEW_AInternMethPropdef_parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AExternPropdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AExternPropdef(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AExternPropdef(fra.me.REG[1]);
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = p5;
+  /* parser/parser_prod.nit:1370 */
+  fra.me.REG[6] = NEW_parser___parser_nodes___AInternMethPropdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___AInternMethPropdef(fra.me.REG[6]);
+  parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef(fra.me.REG[6], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], init_table);
+  CHECKNEW_parser___parser_nodes___AInternMethPropdef(fra.me.REG[6]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[6];
 }
-val_t NEW_AExternPropdef_parser___parser_prod___AMethPropdef___empty_init(void){
+val_t NEW_AInternMethPropdef_parser___parser_nodes___ANode___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1150;
-  fra.me.meth = LOCATE_NEW_AExternPropdef_parser___parser_prod___AMethPropdef___empty_init;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_AInternMethPropdef_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:1150 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___AExternPropdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AExternPropdef(fra.me.REG[0]);
-  parser___parser_prod___AMethPropdef___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AExternPropdef(fra.me.REG[0]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AInternMethPropdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___AInternMethPropdef(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AInternMethPropdef(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_AExternPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
+val_t NEW_AInternMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1152;
-  fra.me.meth = LOCATE_NEW_AExternPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef;
+  fra.me.line = 1166;
+  fra.me.meth = LOCATE_NEW_AInternMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -47316,26 +46115,27 @@ val_t NEW_AExternPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:1152 */
-  fra.me.REG[5] = NEW_parser___parser_nodes___AExternPropdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AExternPropdef(fra.me.REG[5]);
+  /* parser/parser_prod.nit:1166 */
+  fra.me.REG[5] = NEW_parser___parser_nodes___AInternMethPropdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___AInternMethPropdef(fra.me.REG[5]);
   parser___parser_prod___AMethPropdef___init_amethpropdef(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
-  CHECKNEW_parser___parser_nodes___AExternPropdef(fra.me.REG[5]);
+  CHECKNEW_parser___parser_nodes___AInternMethPropdef(fra.me.REG[5]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[5];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AExternMethPropdef[103] = {
-  {(bigint) 3763 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AExternMethPropdef[106] = {
+  {(bigint) 3847 /* 0: Identity */},
   {(bigint) 17 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AExternMethPropdef" /* 2: Class Name */},
   {(bigint) 3 /* 3: AExternMethPropdef < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AExternMethPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AExternMethPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AExternMethPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 2823 /* 6: AExternMethPropdef < APropdef: superclass typecheck marker */},
+  {(bigint) 3443 /* 7: AExternMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3751 /* 9: AExternMethPropdef < AExternPropdef: superclass typecheck marker */},
+  {(bigint) 3847 /* 10: AExternMethPropdef < AExternMethPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AExternMethPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3063 /* 7: AExternMethPropdef < APropdef: superclass typecheck marker */},
-  {(bigint) 3375 /* 8: AExternMethPropdef < AMethPropdef: superclass typecheck marker */},
-  {(bigint) 3667 /* 9: AExternMethPropdef < AExternPropdef: superclass typecheck marker */},
-  {(bigint) 3763 /* 10: AExternMethPropdef < AExternMethPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47343,7 +46143,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternMethPropdef[103] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AExternMethPropdef < Object: superclass init_table position */},
+  {(bigint) 5 /* 19: AExternMethPropdef < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -47359,6 +46159,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternMethPropdef[103] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -47385,24 +46187,23 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternMethPropdef[103] = {
   {(bigint) parser___parser_prod___AExternMethPropdef___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AExternMethPropdef___visit_all},
-  {(bigint) 1 /* 60: AExternMethPropdef < ANode: superclass init_table position */},
+  {(bigint) 4 /* 63: AExternMethPropdef < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___AMethPropdef___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AMethPropdef___accept_icode_generation},
   {(bigint) syntax___typing___AMethPropdef___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AExternMethPropdef < Prod: superclass init_table position */},
+  {(bigint) 3 /* 72: AExternMethPropdef < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___APropdef___process_and_check},
   {(bigint) syntax___mmbuilder___APropdef___do_and_check_intro},
   {(bigint) syntax___mmbuilder___APropdef___inherit_signature},
   {(bigint) syntax___mmbuilder___APropdef___do_and_check_redef},
   {(bigint) syntax___typing___APropdef___self_var},
-  {(bigint) 3 /* 77: AExternMethPropdef < APropdef: superclass init_table position */},
+  {(bigint) 2 /* 79: AExternMethPropdef < APropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___APropdef___n_doc},
   {(bigint) syntax___mmbuilder___AMethPropdef___name},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
@@ -47411,7 +46212,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternMethPropdef[103] = {
   {(bigint) syntax___mmbuilder___AMethPropdef___method},
   {(bigint) parser___parser_prod___AMethPropdef___empty_init},
   {(bigint) parser___parser_prod___AMethPropdef___init_amethpropdef},
-  {(bigint) 4 /* 86: AExternMethPropdef < AMethPropdef: superclass init_table position */},
+  {(bigint) 1 /* 88: AExternMethPropdef < AMethPropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___AMethPropdef___n_kwredef},
   {(bigint) parser___parser_nodes___AMethPropdef___n_visibility},
   {(bigint) parser___parser_nodes___AMethPropdef___n_methid},
@@ -47419,14 +46220,15 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternMethPropdef[103] = {
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___icode_generation___AExternMethPropdef___fill_iroutine},
   {(bigint) syntax___typing___ANode___accept_typing},
+  {0} /* Class Hole :( */,
   {(bigint) syntax___mmbuilder___AMethPropdef___accept_property_verifier},
-  {(bigint) 5 /* 95: AExternMethPropdef < AExternPropdef: superclass init_table position */},
+  {(bigint) 0 /* 98: AExternMethPropdef < AExternPropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___AExternPropdef___n_extern},
   {(bigint) parser___parser_nodes___AExternPropdef___n_extern_calls},
   {(bigint) syntax___icode_generation___AExternPropdef___fill_iroutine},
   {(bigint) parser___parser_prod___AExternMethPropdef___empty_init},
   {(bigint) parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef},
-  {(bigint) 6 /* 101: AExternMethPropdef < AExternMethPropdef: superclass init_table position */},
+  {(bigint) 6 /* 104: AExternMethPropdef < AExternMethPropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___AExternMethPropdef___n_kwmeth},
 };
 /* 0: Pointer to the classtable */
@@ -47459,19 +46261,19 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AExternMethPropdef(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:416 */
+  /* parser/parser_nodes.nit:486 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:436 */
+  /* parser/parser_nodes.nit:506 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:438 */
+  /* parser/parser_nodes.nit:508 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:459 */
+  /* parser/parser_nodes.nit:529 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:460 */
+  /* parser/parser_nodes.nit:530 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -47511,13 +46313,13 @@ val_t NEW_AExternMethPropdef_parser___parser_prod___AMethPropdef___empty_init(vo
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1150;
+  fra.me.line = 1164;
   fra.me.meth = LOCATE_NEW_AExternMethPropdef_parser___parser_prod___AMethPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:1150 */
+  /* parser/parser_prod.nit:1164 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AExternMethPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AExternMethPropdef(fra.me.REG[0]);
   parser___parser_prod___AMethPropdef___empty_init(fra.me.REG[0], init_table);
@@ -47531,13 +46333,13 @@ val_t NEW_AExternMethPropdef_parser___parser_prod___AExternMethPropdef___empty_i
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1463;
+  fra.me.line = 1477;
   fra.me.meth = LOCATE_NEW_AExternMethPropdef_parser___parser_prod___AExternMethPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:1463 */
+  /* parser/parser_prod.nit:1477 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AExternMethPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AExternMethPropdef(fra.me.REG[0]);
   parser___parser_prod___AExternMethPropdef___empty_init(fra.me.REG[0], init_table);
@@ -47551,7 +46353,7 @@ val_t NEW_AExternMethPropdef_parser___parser_prod___AExternMethPropdef___init_ae
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1465;
+  fra.me.line = 1479;
   fra.me.meth = LOCATE_NEW_AExternMethPropdef_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -47573,7 +46375,7 @@ val_t NEW_AExternMethPropdef_parser___parser_prod___AExternMethPropdef___init_ae
   fra.me.REG[5] = p5;
   fra.me.REG[6] = p6;
   fra.me.REG[7] = p7;
-  /* ./parser//parser_prod.nit:1465 */
+  /* parser/parser_prod.nit:1479 */
   fra.me.REG[8] = NEW_parser___parser_nodes___AExternMethPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AExternMethPropdef(fra.me.REG[8]);
   parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(fra.me.REG[8], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], fra.me.REG[6], fra.me.REG[7], init_table);
@@ -47581,26 +46383,25 @@ val_t NEW_AExternMethPropdef_parser___parser_prod___AExternMethPropdef___init_ae
   stack_frame_head = fra.me.prev;
   return fra.me.REG[8];
 }
-val_t NEW_AExternMethPropdef_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AExternMethPropdef_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AExternMethPropdef_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AExternMethPropdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AExternMethPropdef(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AExternMethPropdef(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AExternMethPropdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___AExternMethPropdef(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AExternMethPropdef(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_AExternMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
@@ -47608,7 +46409,7 @@ val_t NEW_AExternMethPropdef_parser___parser_prod___AMethPropdef___init_amethpro
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1152;
+  fra.me.line = 1166;
   fra.me.meth = LOCATE_NEW_AExternMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -47624,7 +46425,7 @@ val_t NEW_AExternMethPropdef_parser___parser_prod___AMethPropdef___init_amethpro
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:1152 */
+  /* parser/parser_prod.nit:1166 */
   fra.me.REG[5] = NEW_parser___parser_nodes___AExternMethPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AExternMethPropdef(fra.me.REG[5]);
   parser___parser_prod___AMethPropdef___init_amethpropdef(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
@@ -47632,17 +46433,18 @@ val_t NEW_AExternMethPropdef_parser___parser_prod___AMethPropdef___init_amethpro
   stack_frame_head = fra.me.prev;
   return fra.me.REG[5];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AConcreteMethPropdef[100] = {
-  {(bigint) 3695 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AConcreteMethPropdef[103] = {
+  {(bigint) 3779 /* 0: Identity */},
   {(bigint) 16 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AConcreteMethPropdef" /* 2: Class Name */},
   {(bigint) 3 /* 3: AConcreteMethPropdef < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AConcreteMethPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AConcreteMethPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AConcreteMethPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 2823 /* 6: AConcreteMethPropdef < APropdef: superclass typecheck marker */},
+  {(bigint) 3443 /* 7: AConcreteMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3779 /* 9: AConcreteMethPropdef < AConcreteMethPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AConcreteMethPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3063 /* 7: AConcreteMethPropdef < APropdef: superclass typecheck marker */},
-  {(bigint) 3375 /* 8: AConcreteMethPropdef < AMethPropdef: superclass typecheck marker */},
-  {(bigint) 3695 /* 9: AConcreteMethPropdef < AConcreteMethPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47651,7 +46453,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AConcreteMethPropdef[100] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AConcreteMethPropdef < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AConcreteMethPropdef < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -47667,6 +46469,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AConcreteMethPropdef[100] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -47693,24 +46497,23 @@ const classtable_elt_t VFT_parser___parser_nodes___AConcreteMethPropdef[100] = {
   {(bigint) parser___parser_prod___AConcreteMethPropdef___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AConcreteMethPropdef___visit_all},
-  {(bigint) 1 /* 60: AConcreteMethPropdef < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AConcreteMethPropdef < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___AMethPropdef___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AMethPropdef___accept_icode_generation},
   {(bigint) syntax___typing___AMethPropdef___accept_typing},
   {(bigint) syntax___typing___AConcreteMethPropdef___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AConcreteMethPropdef < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AConcreteMethPropdef < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___APropdef___process_and_check},
   {(bigint) syntax___mmbuilder___APropdef___do_and_check_intro},
   {(bigint) syntax___mmbuilder___APropdef___inherit_signature},
   {(bigint) syntax___mmbuilder___APropdef___do_and_check_redef},
   {(bigint) syntax___typing___APropdef___self_var},
-  {(bigint) 3 /* 77: AConcreteMethPropdef < APropdef: superclass init_table position */},
+  {(bigint) 1 /* 79: AConcreteMethPropdef < APropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___APropdef___n_doc},
   {(bigint) syntax___mmbuilder___AMethPropdef___name},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
@@ -47719,7 +46522,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AConcreteMethPropdef[100] = {
   {(bigint) syntax___mmbuilder___AMethPropdef___method},
   {(bigint) parser___parser_prod___AMethPropdef___empty_init},
   {(bigint) parser___parser_prod___AMethPropdef___init_amethpropdef},
-  {(bigint) 4 /* 86: AConcreteMethPropdef < AMethPropdef: superclass init_table position */},
+  {(bigint) 0 /* 88: AConcreteMethPropdef < AMethPropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___AMethPropdef___n_kwredef},
   {(bigint) parser___parser_nodes___AMethPropdef___n_visibility},
   {(bigint) parser___parser_nodes___AMethPropdef___n_methid},
@@ -47727,10 +46530,11 @@ const classtable_elt_t VFT_parser___parser_nodes___AConcreteMethPropdef[100] = {
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___icode_generation___AConcreteMethPropdef___fill_iroutine},
   {(bigint) syntax___typing___ANode___accept_typing},
+  {0} /* Class Hole :( */,
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) parser___parser_prod___AConcreteMethPropdef___empty_init},
   {(bigint) parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef},
-  {(bigint) 5 /* 97: AConcreteMethPropdef < AConcreteMethPropdef: superclass init_table position */},
+  {(bigint) 5 /* 100: AConcreteMethPropdef < AConcreteMethPropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___AConcreteMethPropdef___n_kwmeth},
   {(bigint) parser___parser_nodes___AConcreteMethPropdef___n_block},
 };
@@ -47763,16 +46567,16 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AConcreteMethPropdef(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:416 */
+  /* parser/parser_nodes.nit:486 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:436 */
+  /* parser/parser_nodes.nit:506 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:438 */
+  /* parser/parser_nodes.nit:508 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:470 */
+  /* parser/parser_nodes.nit:540 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -47804,13 +46608,13 @@ val_t NEW_AConcreteMethPropdef_parser___parser_prod___AMethPropdef___empty_init(
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1150;
+  fra.me.line = 1164;
   fra.me.meth = LOCATE_NEW_AConcreteMethPropdef_parser___parser_prod___AMethPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:1150 */
+  /* parser/parser_prod.nit:1164 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AConcreteMethPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AConcreteMethPropdef(fra.me.REG[0]);
   parser___parser_prod___AMethPropdef___empty_init(fra.me.REG[0], init_table);
@@ -47824,13 +46628,13 @@ val_t NEW_AConcreteMethPropdef_parser___parser_prod___AConcreteMethPropdef___emp
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1608;
+  fra.me.line = 1622;
   fra.me.meth = LOCATE_NEW_AConcreteMethPropdef_parser___parser_prod___AConcreteMethPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:1608 */
+  /* parser/parser_prod.nit:1622 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AConcreteMethPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AConcreteMethPropdef(fra.me.REG[0]);
   parser___parser_prod___AConcreteMethPropdef___empty_init(fra.me.REG[0], init_table);
@@ -47844,7 +46648,7 @@ val_t NEW_AConcreteMethPropdef_parser___parser_prod___AConcreteMethPropdef___ini
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1610;
+  fra.me.line = 1624;
   fra.me.meth = LOCATE_NEW_AConcreteMethPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -47864,7 +46668,7 @@ val_t NEW_AConcreteMethPropdef_parser___parser_prod___AConcreteMethPropdef___ini
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
   fra.me.REG[6] = p6;
-  /* ./parser//parser_prod.nit:1610 */
+  /* parser/parser_prod.nit:1624 */
   fra.me.REG[7] = NEW_parser___parser_nodes___AConcreteMethPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AConcreteMethPropdef(fra.me.REG[7]);
   parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(fra.me.REG[7], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], fra.me.REG[6], init_table);
@@ -47872,26 +46676,25 @@ val_t NEW_AConcreteMethPropdef_parser___parser_prod___AConcreteMethPropdef___ini
   stack_frame_head = fra.me.prev;
   return fra.me.REG[7];
 }
-val_t NEW_AConcreteMethPropdef_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AConcreteMethPropdef_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AConcreteMethPropdef_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AConcreteMethPropdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AConcreteMethPropdef(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AConcreteMethPropdef(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AConcreteMethPropdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___AConcreteMethPropdef(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AConcreteMethPropdef(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_AConcreteMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
@@ -47899,7 +46702,7 @@ val_t NEW_AConcreteMethPropdef_parser___parser_prod___AMethPropdef___init_amethp
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1152;
+  fra.me.line = 1166;
   fra.me.meth = LOCATE_NEW_AConcreteMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -47915,7 +46718,7 @@ val_t NEW_AConcreteMethPropdef_parser___parser_prod___AMethPropdef___init_amethp
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:1152 */
+  /* parser/parser_prod.nit:1166 */
   fra.me.REG[5] = NEW_parser___parser_nodes___AConcreteMethPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AConcreteMethPropdef(fra.me.REG[5]);
   parser___parser_prod___AMethPropdef___init_amethpropdef(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
@@ -47923,143 +46726,19 @@ val_t NEW_AConcreteMethPropdef_parser___parser_prod___AMethPropdef___init_amethp
   stack_frame_head = fra.me.prev;
   return fra.me.REG[5];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AInitPropdef[69] = {
-  {(bigint) 311 /* 0: Identity */},
-  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AInitPropdef" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AInitPropdef < Object: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 311 /* 5: AInitPropdef < AInitPropdef: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: AInitPropdef < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 1 /* 67: AInitPropdef < AInitPropdef: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AInitPropdef___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-void INIT_ATTRIBUTES__parser___parser_nodes___AInitPropdef(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AInitPropdef;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AInitPropdef(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AInitPropdef;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AInitPropdef(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AInitPropdef;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AInitPropdef_parser___parser_nodes___AInitPropdef___init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[2] = {0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AInitPropdef_parser___parser_nodes___AInitPropdef___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_parser___parser_nodes___AInitPropdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AInitPropdef(fra.me.REG[0]);
-  parser___parser_nodes___AInitPropdef___init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AInitPropdef(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AConcreteInitPropdef[109] = {
-  {(bigint) 3771 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AConcreteInitPropdef[111] = {
+  {(bigint) 3855 /* 0: Identity */},
   {(bigint) 19 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AConcreteInitPropdef" /* 2: Class Name */},
   {(bigint) 3 /* 3: AConcreteInitPropdef < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AConcreteInitPropdef < ANode: superclass typecheck marker */},
-  {(bigint) 311 /* 5: AConcreteInitPropdef < AInitPropdef: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AConcreteInitPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3063 /* 7: AConcreteInitPropdef < APropdef: superclass typecheck marker */},
-  {(bigint) 3375 /* 8: AConcreteInitPropdef < AMethPropdef: superclass typecheck marker */},
-  {(bigint) 3695 /* 9: AConcreteInitPropdef < AConcreteMethPropdef: superclass typecheck marker */},
-  {(bigint) 3771 /* 10: AConcreteInitPropdef < AConcreteInitPropdef: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AConcreteInitPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AConcreteInitPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 2823 /* 6: AConcreteInitPropdef < APropdef: superclass typecheck marker */},
+  {(bigint) 3443 /* 7: AConcreteInitPropdef < AMethPropdef: superclass typecheck marker */},
+  {(bigint) 3727 /* 8: AConcreteInitPropdef < AInitPropdef: superclass typecheck marker */},
+  {(bigint) 3779 /* 9: AConcreteInitPropdef < AConcreteMethPropdef: superclass typecheck marker */},
+  {(bigint) 3855 /* 10: AConcreteInitPropdef < AConcreteInitPropdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48067,7 +46746,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AConcreteInitPropdef[109] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AConcreteInitPropdef < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AConcreteInitPropdef < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -48083,6 +46762,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AConcreteInitPropdef[109] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -48109,24 +46790,23 @@ const classtable_elt_t VFT_parser___parser_nodes___AConcreteInitPropdef[109] = {
   {(bigint) parser___parser_prod___AConcreteInitPropdef___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AConcreteInitPropdef___visit_all},
-  {(bigint) 1 /* 60: AConcreteInitPropdef < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AConcreteInitPropdef < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___AConcreteInitPropdef___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AMethPropdef___accept_icode_generation},
   {(bigint) syntax___typing___AConcreteInitPropdef___accept_typing},
   {(bigint) syntax___typing___AConcreteInitPropdef___after_typing},
-  {(bigint) 6 /* 67: AConcreteInitPropdef < AInitPropdef: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AInitPropdef___init},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AConcreteInitPropdef < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AConcreteInitPropdef < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___APropdef___process_and_check},
   {(bigint) syntax___mmbuilder___APropdef___do_and_check_intro},
   {(bigint) syntax___mmbuilder___APropdef___inherit_signature},
   {(bigint) syntax___mmbuilder___APropdef___do_and_check_redef},
   {(bigint) syntax___typing___APropdef___self_var},
-  {(bigint) 3 /* 77: AConcreteInitPropdef < APropdef: superclass init_table position */},
+  {(bigint) 1 /* 79: AConcreteInitPropdef < APropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___APropdef___n_doc},
   {(bigint) syntax___mmbuilder___AMethPropdef___name},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
@@ -48135,7 +46815,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AConcreteInitPropdef[109] = {
   {(bigint) syntax___mmbuilder___AMethPropdef___method},
   {(bigint) parser___parser_prod___AMethPropdef___empty_init},
   {(bigint) parser___parser_prod___AMethPropdef___init_amethpropdef},
-  {(bigint) 4 /* 86: AConcreteInitPropdef < AMethPropdef: superclass init_table position */},
+  {(bigint) 0 /* 88: AConcreteInitPropdef < AMethPropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___AMethPropdef___n_kwredef},
   {(bigint) parser___parser_nodes___AMethPropdef___n_visibility},
   {(bigint) parser___parser_nodes___AMethPropdef___n_methid},
@@ -48143,10 +46823,11 @@ const classtable_elt_t VFT_parser___parser_nodes___AConcreteInitPropdef[109] = {
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___icode_generation___AConcreteMethPropdef___fill_iroutine},
   {(bigint) syntax___typing___ANode___accept_typing},
+  {(bigint) 6 /* 96: AConcreteInitPropdef < AInitPropdef: superclass init_table position */},
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) parser___parser_prod___AConcreteMethPropdef___empty_init},
   {(bigint) parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef},
-  {(bigint) 5 /* 97: AConcreteInitPropdef < AConcreteMethPropdef: superclass init_table position */},
+  {(bigint) 5 /* 100: AConcreteInitPropdef < AConcreteMethPropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___AConcreteMethPropdef___n_kwmeth},
   {(bigint) parser___parser_nodes___AConcreteMethPropdef___n_block},
   {(bigint) syntax___typing___AMethPropdef___accept_typing},
@@ -48155,8 +46836,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AConcreteInitPropdef[109] = {
   {(bigint) syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls},
   {(bigint) parser___parser_prod___AConcreteInitPropdef___empty_init},
   {(bigint) parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef},
-  {(bigint) 7 /* 106: AConcreteInitPropdef < AConcreteInitPropdef: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AConcreteInitPropdef___init},
+  {(bigint) 7 /* 109: AConcreteInitPropdef < AConcreteInitPropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___AConcreteInitPropdef___n_kwinit},
 };
 /* 0: Pointer to the classtable */
@@ -48191,22 +46871,22 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AConcreteInitPropdef(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:554 */
+  /* syntax/syntax_base.nit:554 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_syntax___syntax_base___AConcreteInitPropdef____super_init_calls(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//syntax_base.nit:555 */
+  /* syntax/syntax_base.nit:555 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_syntax___syntax_base___AConcreteInitPropdef____explicit_super_init_calls(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:416 */
+  /* parser/parser_nodes.nit:486 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:436 */
+  /* parser/parser_nodes.nit:506 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:438 */
+  /* parser/parser_nodes.nit:508 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:470 */
+  /* parser/parser_nodes.nit:540 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -48250,19 +46930,39 @@ void CHECKNEW_parser___parser_nodes___AConcreteInitPropdef(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
+val_t NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteMethPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1622;
+  fra.me.meth = LOCATE_NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteMethPropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_prod.nit:1622 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AConcreteInitPropdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___AConcreteInitPropdef(fra.me.REG[0]);
+  parser___parser_prod___AConcreteMethPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AConcreteInitPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
 val_t NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___empty_init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1735;
+  fra.me.line = 1749;
   fra.me.meth = LOCATE_NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:1735 */
+  /* parser/parser_prod.nit:1749 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AConcreteInitPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AConcreteInitPropdef(fra.me.REG[0]);
   parser___parser_prod___AConcreteInitPropdef___empty_init(fra.me.REG[0], init_table);
@@ -48276,7 +46976,7 @@ val_t NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___ini
   int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1737;
+  fra.me.line = 1751;
   fra.me.meth = LOCATE_NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -48296,7 +46996,7 @@ val_t NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___ini
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
   fra.me.REG[6] = p6;
-  /* ./parser//parser_prod.nit:1737 */
+  /* parser/parser_prod.nit:1751 */
   fra.me.REG[7] = NEW_parser___parser_nodes___AConcreteInitPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AConcreteInitPropdef(fra.me.REG[7]);
   parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(fra.me.REG[7], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], fra.me.REG[6], init_table);
@@ -48304,38 +47004,123 @@ val_t NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___ini
   stack_frame_head = fra.me.prev;
   return fra.me.REG[7];
 }
-val_t NEW_AConcreteInitPropdef_parser___parser_nodes___AConcreteInitPropdef___init(void){
+val_t NEW_AConcreteInitPropdef_parser___parser_nodes___ANode___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 477;
-  fra.me.meth = LOCATE_NEW_AConcreteInitPropdef_parser___parser_nodes___AConcreteInitPropdef___init;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_AConcreteInitPropdef_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_nodes.nit:477 */
+  /* parser/parser_nodes.nit:32 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AConcreteInitPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AConcreteInitPropdef(fra.me.REG[0]);
-  parser___parser_nodes___AConcreteInitPropdef___init(fra.me.REG[0], init_table);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
   CHECKNEW_parser___parser_nodes___AConcreteInitPropdef(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AExternInitPropdef[106] = {
-  {(bigint) 3767 /* 0: Identity */},
+val_t NEW_AConcreteInitPropdef_parser___parser_prod___AMethPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1164;
+  fra.me.meth = LOCATE_NEW_AConcreteInitPropdef_parser___parser_prod___AMethPropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_prod.nit:1164 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AConcreteInitPropdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___AConcreteInitPropdef(fra.me.REG[0]);
+  parser___parser_prod___AMethPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AConcreteInitPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6){
+  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
+  val_t tmp;
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1624;
+  fra.me.meth = LOCATE_NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 8;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[7] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = p5;
+  fra.me.REG[6] = p6;
+  /* parser/parser_prod.nit:1624 */
+  fra.me.REG[7] = NEW_parser___parser_nodes___AConcreteInitPropdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___AConcreteInitPropdef(fra.me.REG[7]);
+  parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(fra.me.REG[7], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], fra.me.REG[6], init_table);
+  CHECKNEW_parser___parser_nodes___AConcreteInitPropdef(fra.me.REG[7]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[7];
+}
+val_t NEW_AConcreteInitPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
+  val_t tmp;
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1166;
+  fra.me.meth = LOCATE_NEW_AConcreteInitPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 6;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  /* parser/parser_prod.nit:1166 */
+  fra.me.REG[5] = NEW_parser___parser_nodes___AConcreteInitPropdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___AConcreteInitPropdef(fra.me.REG[5]);
+  parser___parser_prod___AMethPropdef___init_amethpropdef(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
+  CHECKNEW_parser___parser_nodes___AConcreteInitPropdef(fra.me.REG[5]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[5];
+}
+const classtable_elt_t VFT_parser___parser_nodes___AExternInitPropdef[108] = {
+  {(bigint) 3851 /* 0: Identity */},
   {(bigint) 17 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AExternInitPropdef" /* 2: Class Name */},
   {(bigint) 3 /* 3: AExternInitPropdef < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AExternInitPropdef < ANode: superclass typecheck marker */},
-  {(bigint) 311 /* 5: AExternInitPropdef < AInitPropdef: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AExternInitPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3063 /* 7: AExternInitPropdef < APropdef: superclass typecheck marker */},
-  {(bigint) 3375 /* 8: AExternInitPropdef < AMethPropdef: superclass typecheck marker */},
-  {(bigint) 3667 /* 9: AExternInitPropdef < AExternPropdef: superclass typecheck marker */},
-  {(bigint) 3767 /* 10: AExternInitPropdef < AExternInitPropdef: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AExternInitPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AExternInitPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 2823 /* 6: AExternInitPropdef < APropdef: superclass typecheck marker */},
+  {(bigint) 3443 /* 7: AExternInitPropdef < AMethPropdef: superclass typecheck marker */},
+  {(bigint) 3727 /* 8: AExternInitPropdef < AInitPropdef: superclass typecheck marker */},
+  {(bigint) 3751 /* 9: AExternInitPropdef < AExternPropdef: superclass typecheck marker */},
+  {(bigint) 3851 /* 10: AExternInitPropdef < AExternInitPropdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48343,7 +47128,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternInitPropdef[106] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AExternInitPropdef < Object: superclass init_table position */},
+  {(bigint) 5 /* 19: AExternInitPropdef < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -48359,6 +47144,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternInitPropdef[106] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -48385,24 +47172,23 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternInitPropdef[106] = {
   {(bigint) parser___parser_prod___AExternInitPropdef___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AExternInitPropdef___visit_all},
-  {(bigint) 1 /* 60: AExternInitPropdef < ANode: superclass init_table position */},
+  {(bigint) 4 /* 63: AExternInitPropdef < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___AMethPropdef___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AMethPropdef___accept_icode_generation},
   {(bigint) syntax___typing___AExternInitPropdef___accept_typing},
   {(bigint) syntax___typing___AExternInitPropdef___after_typing},
-  {(bigint) 6 /* 67: AExternInitPropdef < AInitPropdef: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AInitPropdef___init},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AExternInitPropdef < Prod: superclass init_table position */},
+  {(bigint) 3 /* 72: AExternInitPropdef < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___APropdef___process_and_check},
   {(bigint) syntax___mmbuilder___APropdef___do_and_check_intro},
   {(bigint) syntax___mmbuilder___APropdef___inherit_signature},
   {(bigint) syntax___mmbuilder___APropdef___do_and_check_redef},
   {(bigint) syntax___typing___APropdef___self_var},
-  {(bigint) 3 /* 77: AExternInitPropdef < APropdef: superclass init_table position */},
+  {(bigint) 2 /* 79: AExternInitPropdef < APropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___APropdef___n_doc},
   {(bigint) syntax___mmbuilder___AMethPropdef___name},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
@@ -48411,7 +47197,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternInitPropdef[106] = {
   {(bigint) syntax___mmbuilder___AMethPropdef___method},
   {(bigint) parser___parser_prod___AMethPropdef___empty_init},
   {(bigint) parser___parser_prod___AMethPropdef___init_amethpropdef},
-  {(bigint) 4 /* 86: AExternInitPropdef < AMethPropdef: superclass init_table position */},
+  {(bigint) 1 /* 88: AExternInitPropdef < AMethPropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___AMethPropdef___n_kwredef},
   {(bigint) parser___parser_nodes___AMethPropdef___n_visibility},
   {(bigint) parser___parser_nodes___AMethPropdef___n_methid},
@@ -48419,8 +47205,9 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternInitPropdef[106] = {
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___icode_generation___AExternInitPropdef___fill_iroutine},
   {(bigint) syntax___typing___ANode___accept_typing},
+  {(bigint) 6 /* 96: AExternInitPropdef < AInitPropdef: superclass init_table position */},
   {(bigint) syntax___mmbuilder___AMethPropdef___accept_property_verifier},
-  {(bigint) 5 /* 95: AExternInitPropdef < AExternPropdef: superclass init_table position */},
+  {(bigint) 0 /* 98: AExternInitPropdef < AExternPropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___AExternPropdef___n_extern},
   {(bigint) parser___parser_nodes___AExternPropdef___n_extern_calls},
   {(bigint) syntax___icode_generation___AExternPropdef___fill_iroutine},
@@ -48428,8 +47215,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternInitPropdef[106] = {
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) parser___parser_prod___AExternInitPropdef___empty_init},
   {(bigint) parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef},
-  {(bigint) 7 /* 103: AExternInitPropdef < AExternInitPropdef: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AExternInitPropdef___init},
+  {(bigint) 7 /* 106: AExternInitPropdef < AExternInitPropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___AExternInitPropdef___n_kwnew},
 };
 /* 0: Pointer to the classtable */
@@ -48462,19 +47248,19 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AExternInitPropdef(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:416 */
+  /* parser/parser_nodes.nit:486 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:436 */
+  /* parser/parser_nodes.nit:506 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:438 */
+  /* parser/parser_nodes.nit:508 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:459 */
+  /* parser/parser_nodes.nit:529 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:460 */
+  /* parser/parser_nodes.nit:530 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -48508,19 +47294,39 @@ void CHECKNEW_parser___parser_nodes___AExternInitPropdef(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
+val_t NEW_AExternInitPropdef_parser___parser_prod___AMethPropdef___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1164;
+  fra.me.meth = LOCATE_NEW_AExternInitPropdef_parser___parser_prod___AMethPropdef___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_prod.nit:1164 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AExternInitPropdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___AExternInitPropdef(fra.me.REG[0]);
+  parser___parser_prod___AMethPropdef___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AExternInitPropdef(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
 val_t NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___empty_init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1866;
+  fra.me.line = 1880;
   fra.me.meth = LOCATE_NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:1866 */
+  /* parser/parser_prod.nit:1880 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AExternInitPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AExternInitPropdef(fra.me.REG[0]);
   parser___parser_prod___AExternInitPropdef___empty_init(fra.me.REG[0], init_table);
@@ -48534,7 +47340,7 @@ val_t NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_ae
   int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1868;
+  fra.me.line = 1882;
   fra.me.meth = LOCATE_NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -48556,7 +47362,7 @@ val_t NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_ae
   fra.me.REG[5] = p5;
   fra.me.REG[6] = p6;
   fra.me.REG[7] = p7;
-  /* ./parser//parser_prod.nit:1868 */
+  /* parser/parser_prod.nit:1882 */
   fra.me.REG[8] = NEW_parser___parser_nodes___AExternInitPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AExternInitPropdef(fra.me.REG[8]);
   parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(fra.me.REG[8], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], fra.me.REG[6], fra.me.REG[7], init_table);
@@ -48564,38 +47370,69 @@ val_t NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_ae
   stack_frame_head = fra.me.prev;
   return fra.me.REG[8];
 }
-val_t NEW_AExternInitPropdef_parser___parser_nodes___AExternInitPropdef___init(void){
+val_t NEW_AExternInitPropdef_parser___parser_nodes___ANode___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 484;
-  fra.me.meth = LOCATE_NEW_AExternInitPropdef_parser___parser_nodes___AExternInitPropdef___init;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_AExternInitPropdef_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_nodes.nit:484 */
+  /* parser/parser_nodes.nit:32 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AExternInitPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AExternInitPropdef(fra.me.REG[0]);
-  parser___parser_nodes___AExternInitPropdef___init(fra.me.REG[0], init_table);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
   CHECKNEW_parser___parser_nodes___AExternInitPropdef(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AMainMethPropdef[103] = {
-  {(bigint) 3759 /* 0: Identity */},
+val_t NEW_AExternInitPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
+  val_t tmp;
+  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1166;
+  fra.me.meth = LOCATE_NEW_AExternInitPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 6;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  /* parser/parser_prod.nit:1166 */
+  fra.me.REG[5] = NEW_parser___parser_nodes___AExternInitPropdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___AExternInitPropdef(fra.me.REG[5]);
+  parser___parser_prod___AMethPropdef___init_amethpropdef(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
+  CHECKNEW_parser___parser_nodes___AExternInitPropdef(fra.me.REG[5]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[5];
+}
+const classtable_elt_t VFT_parser___parser_nodes___AMainMethPropdef[106] = {
+  {(bigint) 3843 /* 0: Identity */},
   {(bigint) 16 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AMainMethPropdef" /* 2: Class Name */},
   {(bigint) 3 /* 3: AMainMethPropdef < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AMainMethPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AMainMethPropdef < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AMainMethPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 2823 /* 6: AMainMethPropdef < APropdef: superclass typecheck marker */},
+  {(bigint) 3443 /* 7: AMainMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3779 /* 9: AMainMethPropdef < AConcreteMethPropdef: superclass typecheck marker */},
+  {(bigint) 3843 /* 10: AMainMethPropdef < AMainMethPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AMainMethPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3063 /* 7: AMainMethPropdef < APropdef: superclass typecheck marker */},
-  {(bigint) 3375 /* 8: AMainMethPropdef < AMethPropdef: superclass typecheck marker */},
-  {(bigint) 3695 /* 9: AMainMethPropdef < AConcreteMethPropdef: superclass typecheck marker */},
-  {(bigint) 3759 /* 10: AMainMethPropdef < AMainMethPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48603,7 +47440,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AMainMethPropdef[103] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AMainMethPropdef < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AMainMethPropdef < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -48619,6 +47456,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AMainMethPropdef[103] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -48645,24 +47484,23 @@ const classtable_elt_t VFT_parser___parser_nodes___AMainMethPropdef[103] = {
   {(bigint) parser___parser_prod___AMainMethPropdef___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AMainMethPropdef___visit_all},
-  {(bigint) 1 /* 60: AMainMethPropdef < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AMainMethPropdef < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___AMethPropdef___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AMethPropdef___accept_icode_generation},
   {(bigint) syntax___typing___AMethPropdef___accept_typing},
   {(bigint) syntax___typing___AConcreteMethPropdef___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AMainMethPropdef < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AMainMethPropdef < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___AMainMethPropdef___process_and_check},
   {(bigint) syntax___mmbuilder___APropdef___do_and_check_intro},
   {(bigint) syntax___mmbuilder___APropdef___inherit_signature},
   {(bigint) syntax___mmbuilder___APropdef___do_and_check_redef},
   {(bigint) syntax___typing___APropdef___self_var},
-  {(bigint) 3 /* 77: AMainMethPropdef < APropdef: superclass init_table position */},
+  {(bigint) 1 /* 79: AMainMethPropdef < APropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___APropdef___n_doc},
   {(bigint) syntax___mmbuilder___AMethPropdef___name},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
@@ -48671,7 +47509,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AMainMethPropdef[103] = {
   {(bigint) syntax___mmbuilder___AMethPropdef___method},
   {(bigint) parser___parser_prod___AMethPropdef___empty_init},
   {(bigint) parser___parser_prod___AMethPropdef___init_amethpropdef},
-  {(bigint) 4 /* 86: AMainMethPropdef < AMethPropdef: superclass init_table position */},
+  {(bigint) 0 /* 88: AMainMethPropdef < AMethPropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___AMethPropdef___n_kwredef},
   {(bigint) parser___parser_nodes___AMethPropdef___n_visibility},
   {(bigint) parser___parser_nodes___AMethPropdef___n_methid},
@@ -48679,15 +47517,16 @@ const classtable_elt_t VFT_parser___parser_nodes___AMainMethPropdef[103] = {
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___icode_generation___AConcreteMethPropdef___fill_iroutine},
   {(bigint) syntax___typing___ANode___accept_typing},
+  {0} /* Class Hole :( */,
   {(bigint) syntax___typing___ANode___after_typing},
   {(bigint) parser___parser_prod___AConcreteMethPropdef___empty_init},
   {(bigint) parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef},
-  {(bigint) 5 /* 97: AMainMethPropdef < AConcreteMethPropdef: superclass init_table position */},
+  {(bigint) 5 /* 100: AMainMethPropdef < AConcreteMethPropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___AConcreteMethPropdef___n_kwmeth},
   {(bigint) parser___parser_nodes___AConcreteMethPropdef___n_block},
   {(bigint) parser___parser_prod___AMainMethPropdef___empty_init},
   {(bigint) parser___parser_prod___AMainMethPropdef___init_amainmethpropdef},
-  {(bigint) 6 /* 102: AMainMethPropdef < AMainMethPropdef: superclass init_table position */},
+  {(bigint) 6 /* 105: AMainMethPropdef < AMainMethPropdef: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -48718,16 +47557,16 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AMainMethPropdef(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:436 */
+  /* parser/parser_nodes.nit:506 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:470 */
+  /* parser/parser_nodes.nit:540 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:438 */
+  /* parser/parser_nodes.nit:508 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:416 */
+  /* parser/parser_nodes.nit:486 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -48759,13 +47598,13 @@ val_t NEW_AMainMethPropdef_parser___parser_prod___AConcreteMethPropdef___empty_i
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1608;
+  fra.me.line = 1622;
   fra.me.meth = LOCATE_NEW_AMainMethPropdef_parser___parser_prod___AConcreteMethPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:1608 */
+  /* parser/parser_prod.nit:1622 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AMainMethPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AMainMethPropdef(fra.me.REG[0]);
   parser___parser_prod___AConcreteMethPropdef___empty_init(fra.me.REG[0], init_table);
@@ -48779,13 +47618,13 @@ val_t NEW_AMainMethPropdef_parser___parser_prod___AMainMethPropdef___empty_init(
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2015;
+  fra.me.line = 2029;
   fra.me.meth = LOCATE_NEW_AMainMethPropdef_parser___parser_prod___AMainMethPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2015 */
+  /* parser/parser_prod.nit:2029 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AMainMethPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AMainMethPropdef(fra.me.REG[0]);
   parser___parser_prod___AMainMethPropdef___empty_init(fra.me.REG[0], init_table);
@@ -48799,7 +47638,7 @@ val_t NEW_AMainMethPropdef_parser___parser_prod___AMainMethPropdef___init_amainm
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2017;
+  fra.me.line = 2031;
   fra.me.meth = LOCATE_NEW_AMainMethPropdef_parser___parser_prod___AMainMethPropdef___init_amainmethpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -48809,7 +47648,7 @@ val_t NEW_AMainMethPropdef_parser___parser_prod___AMainMethPropdef___init_amainm
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2017 */
+  /* parser/parser_prod.nit:2031 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AMainMethPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AMainMethPropdef(fra.me.REG[2]);
   parser___parser_prod___AMainMethPropdef___init_amainmethpropdef(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -48817,26 +47656,25 @@ val_t NEW_AMainMethPropdef_parser___parser_prod___AMainMethPropdef___init_amainm
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AMainMethPropdef_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AMainMethPropdef_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AMainMethPropdef_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AMainMethPropdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AMainMethPropdef(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AMainMethPropdef(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AMainMethPropdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___AMainMethPropdef(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AMainMethPropdef(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_AMainMethPropdef_parser___parser_prod___AMethPropdef___empty_init(void){
   struct {struct stack_frame_t me;} fra;
@@ -48844,13 +47682,13 @@ val_t NEW_AMainMethPropdef_parser___parser_prod___AMethPropdef___empty_init(void
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1150;
+  fra.me.line = 1164;
   fra.me.meth = LOCATE_NEW_AMainMethPropdef_parser___parser_prod___AMethPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:1150 */
+  /* parser/parser_prod.nit:1164 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AMainMethPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AMainMethPropdef(fra.me.REG[0]);
   parser___parser_prod___AMethPropdef___empty_init(fra.me.REG[0], init_table);
@@ -48864,7 +47702,7 @@ val_t NEW_AMainMethPropdef_parser___parser_prod___AConcreteMethPropdef___init_ac
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1610;
+  fra.me.line = 1624;
   fra.me.meth = LOCATE_NEW_AMainMethPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -48884,7 +47722,7 @@ val_t NEW_AMainMethPropdef_parser___parser_prod___AConcreteMethPropdef___init_ac
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
   fra.me.REG[6] = p6;
-  /* ./parser//parser_prod.nit:1610 */
+  /* parser/parser_prod.nit:1624 */
   fra.me.REG[7] = NEW_parser___parser_nodes___AMainMethPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AMainMethPropdef(fra.me.REG[7]);
   parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(fra.me.REG[7], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], fra.me.REG[6], init_table);
@@ -48898,7 +47736,7 @@ val_t NEW_AMainMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropd
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1152;
+  fra.me.line = 1166;
   fra.me.meth = LOCATE_NEW_AMainMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -48914,7 +47752,7 @@ val_t NEW_AMainMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropd
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:1152 */
+  /* parser/parser_prod.nit:1166 */
   fra.me.REG[5] = NEW_parser___parser_nodes___AMainMethPropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___AMainMethPropdef(fra.me.REG[5]);
   parser___parser_prod___AMethPropdef___init_amethpropdef(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
@@ -48922,15 +47760,16 @@ val_t NEW_AMainMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropd
   stack_frame_head = fra.me.prev;
   return fra.me.REG[5];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AExternCalls[77] = {
-  {(bigint) 3103 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AExternCalls[79] = {
+  {(bigint) 2863 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AExternCalls" /* 2: Class Name */},
   {(bigint) 3 /* 3: AExternCalls < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AExternCalls < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AExternCalls < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AExternCalls < Prod: superclass typecheck marker */},
+  {(bigint) 2863 /* 6: AExternCalls < AExternCalls: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AExternCalls < Prod: superclass typecheck marker */},
-  {(bigint) 3103 /* 7: AExternCalls < AExternCalls: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48941,7 +47780,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternCalls[77] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AExternCalls < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: AExternCalls < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -48957,6 +47796,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternCalls[77] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -48983,21 +47824,20 @@ const classtable_elt_t VFT_parser___parser_nodes___AExternCalls[77] = {
   {(bigint) parser___parser_prod___AExternCalls___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AExternCalls___visit_all},
-  {(bigint) 1 /* 60: AExternCalls < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: AExternCalls < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AExternCalls < Prod: superclass init_table position */},
+  {(bigint) 0 /* 72: AExternCalls < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) parser___parser_prod___AExternCalls___empty_init},
   {(bigint) parser___parser_prod___AExternCalls___init_aexterncalls},
-  {(bigint) 3 /* 74: AExternCalls < AExternCalls: superclass init_table position */},
+  {(bigint) 3 /* 76: AExternCalls < AExternCalls: superclass init_table position */},
   {(bigint) parser___parser_nodes___AExternCalls___n_kwimport},
   {(bigint) parser___parser_nodes___AExternCalls___n_extern_calls},
 };
@@ -49022,7 +47862,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AExternCalls(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:493 */
+  /* parser/parser_nodes.nit:562 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -49067,13 +47907,13 @@ val_t NEW_AExternCalls_parser___parser_prod___AExternCalls___empty_init(void){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7539;
+  fra.me.line = 7913;
   fra.me.meth = LOCATE_NEW_AExternCalls_parser___parser_prod___AExternCalls___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7539 */
+  /* parser/parser_prod.nit:7913 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AExternCalls();
   INIT_ATTRIBUTES__parser___parser_nodes___AExternCalls(fra.me.REG[0]);
   parser___parser_prod___AExternCalls___empty_init(fra.me.REG[0], init_table);
@@ -49087,7 +47927,7 @@ val_t NEW_AExternCalls_parser___parser_prod___AExternCalls___init_aexterncalls(v
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7541;
+  fra.me.line = 7915;
   fra.me.meth = LOCATE_NEW_AExternCalls_parser___parser_prod___AExternCalls___init_aexterncalls;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -49097,7 +47937,7 @@ val_t NEW_AExternCalls_parser___parser_prod___AExternCalls___init_aexterncalls(v
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7541 */
+  /* parser/parser_prod.nit:7915 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AExternCalls();
   INIT_ATTRIBUTES__parser___parser_nodes___AExternCalls(fra.me.REG[2]);
   parser___parser_prod___AExternCalls___init_aexterncalls(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -49105,397 +47945,38 @@ val_t NEW_AExternCalls_parser___parser_prod___AExternCalls___init_aexterncalls(v
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AExternCalls_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AExternCalls_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AExternCalls();
-  INIT_ATTRIBUTES__parser___parser_nodes___AExternCalls(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AExternCalls(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AExternCall[77] = {
-  {(bigint) 3107 /* 0: Identity */},
-  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AExternCall" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AExternCall < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AExternCall < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AExternCall < Prod: superclass typecheck marker */},
-  {(bigint) 3107 /* 7: AExternCall < AExternCall: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AExternCall < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___AExternCall___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___AExternCall___visit_all},
-  {(bigint) 1 /* 60: AExternCall < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___AExternCall___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AExternCall < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExternCall___target_class_name},
-  {(bigint) syntax___typing___AExternCall___target_method_name},
-  {(bigint) parser___parser_prod___AExternCall___empty_init},
-  {(bigint) parser___parser_prod___AExternCall___init_aexterncall},
-  {(bigint) 3 /* 76: AExternCall < AExternCall: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AExternCall::_parent */
-/* 3: Attribute AExternCall::_location */
-/* 4: Attribute AExternCall::_first_location */
-/* 5: Attribute AExternCall::_last_location */
-void INIT_ATTRIBUTES__parser___parser_nodes___AExternCall(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AExternCall;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AExternCall(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AExternCall;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AExternCall(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AExternCall;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AExternCall_parser___parser_prod___AExternCall___empty_init(void){
+val_t NEW_AExternCalls_parser___parser_nodes___ANode___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7591;
-  fra.me.meth = LOCATE_NEW_AExternCall_parser___parser_prod___AExternCall___empty_init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7591 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___AExternCall();
-  INIT_ATTRIBUTES__parser___parser_nodes___AExternCall(fra.me.REG[0]);
-  parser___parser_prod___AExternCall___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AExternCall(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t NEW_AExternCall_parser___parser_prod___AExternCall___init_aexterncall(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 7593;
-  fra.me.meth = LOCATE_NEW_AExternCall_parser___parser_prod___AExternCall___init_aexterncall;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7593 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___AExternCall();
-  INIT_ATTRIBUTES__parser___parser_nodes___AExternCall(fra.me.REG[0]);
-  parser___parser_prod___AExternCall___init_aexterncall(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AExternCall(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t NEW_AExternCall_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AExternCall_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AExternCall();
-  INIT_ATTRIBUTES__parser___parser_nodes___AExternCall(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AExternCall(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___APropExternCall[78] = {
-  {(bigint) 3335 /* 0: Identity */},
-  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "APropExternCall" /* 2: Class Name */},
-  {(bigint) 3 /* 3: APropExternCall < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: APropExternCall < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: APropExternCall < Prod: superclass typecheck marker */},
-  {(bigint) 3107 /* 7: APropExternCall < AExternCall: superclass typecheck marker */},
-  {(bigint) 3335 /* 8: APropExternCall < APropExternCall: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: APropExternCall < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___AExternCall___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___AExternCall___visit_all},
-  {(bigint) 1 /* 60: APropExternCall < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___AExternCall___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: APropExternCall < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExternCall___target_class_name},
-  {(bigint) syntax___typing___AExternCall___target_method_name},
-  {(bigint) parser___parser_prod___AExternCall___empty_init},
-  {(bigint) parser___parser_prod___AExternCall___init_aexterncall},
-  {(bigint) 3 /* 76: APropExternCall < AExternCall: superclass init_table position */},
-  {(bigint) 4 /* 77: APropExternCall < APropExternCall: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute APropExternCall::_parent */
-/* 3: Attribute APropExternCall::_location */
-/* 4: Attribute APropExternCall::_first_location */
-/* 5: Attribute APropExternCall::_last_location */
-void INIT_ATTRIBUTES__parser___parser_nodes___APropExternCall(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___APropExternCall;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___APropExternCall(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___APropExternCall;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___APropExternCall(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___APropExternCall;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_APropExternCall_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_APropExternCall_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___APropExternCall();
-  INIT_ATTRIBUTES__parser___parser_nodes___APropExternCall(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___APropExternCall(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-val_t NEW_APropExternCall_parser___parser_prod___AExternCall___empty_init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 7591;
-  fra.me.meth = LOCATE_NEW_APropExternCall_parser___parser_prod___AExternCall___empty_init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7591 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___APropExternCall();
-  INIT_ATTRIBUTES__parser___parser_nodes___APropExternCall(fra.me.REG[0]);
-  parser___parser_prod___AExternCall___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___APropExternCall(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t NEW_APropExternCall_parser___parser_prod___AExternCall___init_aexterncall(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 7593;
-  fra.me.meth = LOCATE_NEW_APropExternCall_parser___parser_prod___AExternCall___init_aexterncall;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_AExternCalls_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7593 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___APropExternCall();
-  INIT_ATTRIBUTES__parser___parser_nodes___APropExternCall(fra.me.REG[0]);
-  parser___parser_prod___AExternCall___init_aexterncall(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___APropExternCall(fra.me.REG[0]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AExternCalls();
+  INIT_ATTRIBUTES__parser___parser_nodes___AExternCalls(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AExternCalls(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ALocalPropExternCall[82] = {
-  {(bigint) 3631 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ALocalPropExternCall[84] = {
+  {(bigint) 3711 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ALocalPropExternCall" /* 2: Class Name */},
   {(bigint) 3 /* 3: ALocalPropExternCall < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ALocalPropExternCall < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ALocalPropExternCall < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ALocalPropExternCall < Prod: superclass typecheck marker */},
+  {(bigint) 2867 /* 6: ALocalPropExternCall < AExternCall: superclass typecheck marker */},
+  {(bigint) 3399 /* 7: ALocalPropExternCall < APropExternCall: superclass typecheck marker */},
+  {(bigint) 3711 /* 8: ALocalPropExternCall < ALocalPropExternCall: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ALocalPropExternCall < Prod: superclass typecheck marker */},
-  {(bigint) 3107 /* 7: ALocalPropExternCall < AExternCall: superclass typecheck marker */},
-  {(bigint) 3335 /* 8: ALocalPropExternCall < APropExternCall: superclass typecheck marker */},
-  {(bigint) 3631 /* 9: ALocalPropExternCall < ALocalPropExternCall: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49504,7 +47985,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ALocalPropExternCall[82] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ALocalPropExternCall < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: ALocalPropExternCall < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -49520,6 +48001,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ALocalPropExternCall[82] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -49546,27 +48029,26 @@ const classtable_elt_t VFT_parser___parser_nodes___ALocalPropExternCall[82] = {
   {(bigint) parser___parser_prod___ALocalPropExternCall___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ALocalPropExternCall___visit_all},
-  {(bigint) 1 /* 60: ALocalPropExternCall < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: ALocalPropExternCall < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AExternCall___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ALocalPropExternCall < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: ALocalPropExternCall < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___typing___ALocalPropExternCall___target_class_name},
   {(bigint) syntax___typing___ALocalPropExternCall___target_method_name},
   {(bigint) parser___parser_prod___AExternCall___empty_init},
   {(bigint) parser___parser_prod___AExternCall___init_aexterncall},
-  {(bigint) 3 /* 76: ALocalPropExternCall < AExternCall: superclass init_table position */},
-  {(bigint) 4 /* 77: ALocalPropExternCall < APropExternCall: superclass init_table position */},
+  {(bigint) 1 /* 78: ALocalPropExternCall < AExternCall: superclass init_table position */},
+  {(bigint) 0 /* 79: ALocalPropExternCall < APropExternCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ALocalPropExternCall___empty_init},
   {(bigint) parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall},
-  {(bigint) 5 /* 80: ALocalPropExternCall < ALocalPropExternCall: superclass init_table position */},
+  {(bigint) 5 /* 82: ALocalPropExternCall < ALocalPropExternCall: superclass init_table position */},
   {(bigint) parser___parser_nodes___ALocalPropExternCall___n_methid},
 };
 /* 0: Pointer to the classtable */
@@ -49623,13 +48105,13 @@ val_t NEW_ALocalPropExternCall_parser___parser_prod___AExternCall___empty_init(v
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7591;
+  fra.me.line = 7965;
   fra.me.meth = LOCATE_NEW_ALocalPropExternCall_parser___parser_prod___AExternCall___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7591 */
+  /* parser/parser_prod.nit:7965 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ALocalPropExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___ALocalPropExternCall(fra.me.REG[0]);
   parser___parser_prod___AExternCall___empty_init(fra.me.REG[0], init_table);
@@ -49643,13 +48125,13 @@ val_t NEW_ALocalPropExternCall_parser___parser_prod___ALocalPropExternCall___emp
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7638;
+  fra.me.line = 8012;
   fra.me.meth = LOCATE_NEW_ALocalPropExternCall_parser___parser_prod___ALocalPropExternCall___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7638 */
+  /* parser/parser_prod.nit:8012 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ALocalPropExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___ALocalPropExternCall(fra.me.REG[0]);
   parser___parser_prod___ALocalPropExternCall___empty_init(fra.me.REG[0], init_table);
@@ -49663,7 +48145,7 @@ val_t NEW_ALocalPropExternCall_parser___parser_prod___ALocalPropExternCall___ini
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7640;
+  fra.me.line = 8014;
   fra.me.meth = LOCATE_NEW_ALocalPropExternCall_parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -49671,7 +48153,7 @@ val_t NEW_ALocalPropExternCall_parser___parser_prod___ALocalPropExternCall___ini
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:7640 */
+  /* parser/parser_prod.nit:8014 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ALocalPropExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___ALocalPropExternCall(fra.me.REG[1]);
   parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -49679,26 +48161,25 @@ val_t NEW_ALocalPropExternCall_parser___parser_prod___ALocalPropExternCall___ini
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_ALocalPropExternCall_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ALocalPropExternCall_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ALocalPropExternCall_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ALocalPropExternCall();
-  INIT_ATTRIBUTES__parser___parser_nodes___ALocalPropExternCall(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ALocalPropExternCall(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ALocalPropExternCall();
+  INIT_ATTRIBUTES__parser___parser_nodes___ALocalPropExternCall(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ALocalPropExternCall(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_ALocalPropExternCall_parser___parser_prod___AExternCall___init_aexterncall(void){
   struct {struct stack_frame_t me;} fra;
@@ -49706,13 +48187,13 @@ val_t NEW_ALocalPropExternCall_parser___parser_prod___AExternCall___init_aextern
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7593;
+  fra.me.line = 7967;
   fra.me.meth = LOCATE_NEW_ALocalPropExternCall_parser___parser_prod___AExternCall___init_aexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7593 */
+  /* parser/parser_prod.nit:7967 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ALocalPropExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___ALocalPropExternCall(fra.me.REG[0]);
   parser___parser_prod___AExternCall___init_aexterncall(fra.me.REG[0], init_table);
@@ -49720,17 +48201,18 @@ val_t NEW_ALocalPropExternCall_parser___parser_prod___AExternCall___init_aextern
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AFullPropExternCall[84] = {
-  {(bigint) 3655 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AFullPropExternCall[86] = {
+  {(bigint) 3739 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AFullPropExternCall" /* 2: Class Name */},
   {(bigint) 3 /* 3: AFullPropExternCall < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AFullPropExternCall < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AFullPropExternCall < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AFullPropExternCall < Prod: superclass typecheck marker */},
+  {(bigint) 2867 /* 6: AFullPropExternCall < AExternCall: superclass typecheck marker */},
+  {(bigint) 3399 /* 7: AFullPropExternCall < APropExternCall: superclass typecheck marker */},
+  {(bigint) 3739 /* 8: AFullPropExternCall < AFullPropExternCall: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AFullPropExternCall < Prod: superclass typecheck marker */},
-  {(bigint) 3107 /* 7: AFullPropExternCall < AExternCall: superclass typecheck marker */},
-  {(bigint) 3335 /* 8: AFullPropExternCall < APropExternCall: superclass typecheck marker */},
-  {(bigint) 3655 /* 9: AFullPropExternCall < AFullPropExternCall: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49739,7 +48221,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AFullPropExternCall[84] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AFullPropExternCall < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AFullPropExternCall < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -49755,6 +48237,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AFullPropExternCall[84] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -49781,27 +48265,26 @@ const classtable_elt_t VFT_parser___parser_nodes___AFullPropExternCall[84] = {
   {(bigint) parser___parser_prod___AFullPropExternCall___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AFullPropExternCall___visit_all},
-  {(bigint) 1 /* 60: AFullPropExternCall < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AFullPropExternCall < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AExternCall___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AFullPropExternCall < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AFullPropExternCall < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___typing___AFullPropExternCall___target_class_name},
   {(bigint) syntax___typing___AFullPropExternCall___target_method_name},
   {(bigint) parser___parser_prod___AExternCall___empty_init},
   {(bigint) parser___parser_prod___AExternCall___init_aexterncall},
-  {(bigint) 3 /* 76: AFullPropExternCall < AExternCall: superclass init_table position */},
-  {(bigint) 4 /* 77: AFullPropExternCall < APropExternCall: superclass init_table position */},
+  {(bigint) 1 /* 78: AFullPropExternCall < AExternCall: superclass init_table position */},
+  {(bigint) 0 /* 79: AFullPropExternCall < APropExternCall: superclass init_table position */},
   {(bigint) parser___parser_prod___AFullPropExternCall___empty_init},
   {(bigint) parser___parser_prod___AFullPropExternCall___init_afullpropexterncall},
-  {(bigint) 5 /* 80: AFullPropExternCall < AFullPropExternCall: superclass init_table position */},
+  {(bigint) 5 /* 82: AFullPropExternCall < AFullPropExternCall: superclass init_table position */},
   {(bigint) parser___parser_nodes___AFullPropExternCall___n_classid},
   {(bigint) parser___parser_nodes___AFullPropExternCall___n_quad},
   {(bigint) parser___parser_nodes___AFullPropExternCall___n_methid},
@@ -49828,7 +48311,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AFullPropExternCall(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:508 */
+  /* parser/parser_nodes.nit:577 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -49873,13 +48356,13 @@ val_t NEW_AFullPropExternCall_parser___parser_prod___AExternCall___empty_init(vo
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7591;
+  fra.me.line = 7965;
   fra.me.meth = LOCATE_NEW_AFullPropExternCall_parser___parser_prod___AExternCall___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7591 */
+  /* parser/parser_prod.nit:7965 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AFullPropExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___AFullPropExternCall(fra.me.REG[0]);
   parser___parser_prod___AExternCall___empty_init(fra.me.REG[0], init_table);
@@ -49893,13 +48376,13 @@ val_t NEW_AFullPropExternCall_parser___parser_prod___AFullPropExternCall___empty
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7669;
+  fra.me.line = 8043;
   fra.me.meth = LOCATE_NEW_AFullPropExternCall_parser___parser_prod___AFullPropExternCall___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7669 */
+  /* parser/parser_prod.nit:8043 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AFullPropExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___AFullPropExternCall(fra.me.REG[0]);
   parser___parser_prod___AFullPropExternCall___empty_init(fra.me.REG[0], init_table);
@@ -49913,7 +48396,7 @@ val_t NEW_AFullPropExternCall_parser___parser_prod___AFullPropExternCall___init_
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7671;
+  fra.me.line = 8045;
   fra.me.meth = LOCATE_NEW_AFullPropExternCall_parser___parser_prod___AFullPropExternCall___init_afullpropexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -49925,7 +48408,7 @@ val_t NEW_AFullPropExternCall_parser___parser_prod___AFullPropExternCall___init_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7671 */
+  /* parser/parser_prod.nit:8045 */
   fra.me.REG[3] = NEW_parser___parser_nodes___AFullPropExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___AFullPropExternCall(fra.me.REG[3]);
   parser___parser_prod___AFullPropExternCall___init_afullpropexterncall(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -49933,26 +48416,25 @@ val_t NEW_AFullPropExternCall_parser___parser_prod___AFullPropExternCall___init_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-val_t NEW_AFullPropExternCall_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AFullPropExternCall_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AFullPropExternCall_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AFullPropExternCall();
-  INIT_ATTRIBUTES__parser___parser_nodes___AFullPropExternCall(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AFullPropExternCall(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AFullPropExternCall();
+  INIT_ATTRIBUTES__parser___parser_nodes___AFullPropExternCall(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AFullPropExternCall(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_AFullPropExternCall_parser___parser_prod___AExternCall___init_aexterncall(void){
   struct {struct stack_frame_t me;} fra;
@@ -49960,13 +48442,13 @@ val_t NEW_AFullPropExternCall_parser___parser_prod___AExternCall___init_aexternc
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7593;
+  fra.me.line = 7967;
   fra.me.meth = LOCATE_NEW_AFullPropExternCall_parser___parser_prod___AExternCall___init_aexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7593 */
+  /* parser/parser_prod.nit:7967 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AFullPropExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___AFullPropExternCall(fra.me.REG[0]);
   parser___parser_prod___AExternCall___init_aexterncall(fra.me.REG[0], init_table);
@@ -49974,17 +48456,18 @@ val_t NEW_AFullPropExternCall_parser___parser_prod___AExternCall___init_aexternc
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AInitPropExternCall[82] = {
-  {(bigint) 3647 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AInitPropExternCall[84] = {
+  {(bigint) 3731 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AInitPropExternCall" /* 2: Class Name */},
   {(bigint) 3 /* 3: AInitPropExternCall < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AInitPropExternCall < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AInitPropExternCall < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AInitPropExternCall < Prod: superclass typecheck marker */},
+  {(bigint) 2867 /* 6: AInitPropExternCall < AExternCall: superclass typecheck marker */},
+  {(bigint) 3399 /* 7: AInitPropExternCall < APropExternCall: superclass typecheck marker */},
+  {(bigint) 3731 /* 8: AInitPropExternCall < AInitPropExternCall: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AInitPropExternCall < Prod: superclass typecheck marker */},
-  {(bigint) 3107 /* 7: AInitPropExternCall < AExternCall: superclass typecheck marker */},
-  {(bigint) 3335 /* 8: AInitPropExternCall < APropExternCall: superclass typecheck marker */},
-  {(bigint) 3647 /* 9: AInitPropExternCall < AInitPropExternCall: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49993,7 +48476,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AInitPropExternCall[82] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AInitPropExternCall < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AInitPropExternCall < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -50009,6 +48492,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AInitPropExternCall[82] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -50035,27 +48520,26 @@ const classtable_elt_t VFT_parser___parser_nodes___AInitPropExternCall[82] = {
   {(bigint) parser___parser_prod___AInitPropExternCall___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AInitPropExternCall___visit_all},
-  {(bigint) 1 /* 60: AInitPropExternCall < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AInitPropExternCall < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AExternCall___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AInitPropExternCall < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AInitPropExternCall < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___typing___AInitPropExternCall___target_class_name},
   {(bigint) syntax___typing___AInitPropExternCall___target_method_name},
   {(bigint) parser___parser_prod___AExternCall___empty_init},
   {(bigint) parser___parser_prod___AExternCall___init_aexterncall},
-  {(bigint) 3 /* 76: AInitPropExternCall < AExternCall: superclass init_table position */},
-  {(bigint) 4 /* 77: AInitPropExternCall < APropExternCall: superclass init_table position */},
+  {(bigint) 1 /* 78: AInitPropExternCall < AExternCall: superclass init_table position */},
+  {(bigint) 0 /* 79: AInitPropExternCall < APropExternCall: superclass init_table position */},
   {(bigint) parser___parser_prod___AInitPropExternCall___empty_init},
   {(bigint) parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall},
-  {(bigint) 5 /* 80: AInitPropExternCall < AInitPropExternCall: superclass init_table position */},
+  {(bigint) 5 /* 82: AInitPropExternCall < AInitPropExternCall: superclass init_table position */},
   {(bigint) parser___parser_nodes___AInitPropExternCall___n_classid},
 };
 /* 0: Pointer to the classtable */
@@ -50112,13 +48596,13 @@ val_t NEW_AInitPropExternCall_parser___parser_prod___AExternCall___empty_init(vo
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7591;
+  fra.me.line = 7965;
   fra.me.meth = LOCATE_NEW_AInitPropExternCall_parser___parser_prod___AExternCall___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7591 */
+  /* parser/parser_prod.nit:7965 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AInitPropExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___AInitPropExternCall(fra.me.REG[0]);
   parser___parser_prod___AExternCall___empty_init(fra.me.REG[0], init_table);
@@ -50132,13 +48616,13 @@ val_t NEW_AInitPropExternCall_parser___parser_prod___AInitPropExternCall___empty
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7732;
+  fra.me.line = 8106;
   fra.me.meth = LOCATE_NEW_AInitPropExternCall_parser___parser_prod___AInitPropExternCall___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7732 */
+  /* parser/parser_prod.nit:8106 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AInitPropExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___AInitPropExternCall(fra.me.REG[0]);
   parser___parser_prod___AInitPropExternCall___empty_init(fra.me.REG[0], init_table);
@@ -50152,7 +48636,7 @@ val_t NEW_AInitPropExternCall_parser___parser_prod___AInitPropExternCall___init_
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7734;
+  fra.me.line = 8108;
   fra.me.meth = LOCATE_NEW_AInitPropExternCall_parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -50160,7 +48644,7 @@ val_t NEW_AInitPropExternCall_parser___parser_prod___AInitPropExternCall___init_
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:7734 */
+  /* parser/parser_prod.nit:8108 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AInitPropExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___AInitPropExternCall(fra.me.REG[1]);
   parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -50168,26 +48652,25 @@ val_t NEW_AInitPropExternCall_parser___parser_prod___AInitPropExternCall___init_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AInitPropExternCall_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AInitPropExternCall_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AInitPropExternCall_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AInitPropExternCall();
-  INIT_ATTRIBUTES__parser___parser_nodes___AInitPropExternCall(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AInitPropExternCall(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AInitPropExternCall();
+  INIT_ATTRIBUTES__parser___parser_nodes___AInitPropExternCall(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AInitPropExternCall(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_AInitPropExternCall_parser___parser_prod___AExternCall___init_aexterncall(void){
   struct {struct stack_frame_t me;} fra;
@@ -50195,13 +48678,13 @@ val_t NEW_AInitPropExternCall_parser___parser_prod___AExternCall___init_aexternc
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7593;
+  fra.me.line = 7967;
   fra.me.meth = LOCATE_NEW_AInitPropExternCall_parser___parser_prod___AExternCall___init_aexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7593 */
+  /* parser/parser_prod.nit:7967 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AInitPropExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___AInitPropExternCall(fra.me.REG[0]);
   parser___parser_prod___AExternCall___init_aexterncall(fra.me.REG[0], init_table);
@@ -50209,251 +48692,18 @@ val_t NEW_AInitPropExternCall_parser___parser_prod___AExternCall___init_aexternc
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ASuperExternCall[81] = {
-  {(bigint) 3271 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ASuperExternCall[83] = {
+  {(bigint) 3335 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ASuperExternCall" /* 2: Class Name */},
   {(bigint) 3 /* 3: ASuperExternCall < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ASuperExternCall < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ASuperExternCall < Prod: superclass typecheck marker */},
-  {(bigint) 3107 /* 7: ASuperExternCall < AExternCall: superclass typecheck marker */},
-  {(bigint) 3271 /* 8: ASuperExternCall < ASuperExternCall: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) 303 /* 4: ASuperExternCall < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ASuperExternCall < Prod: superclass typecheck marker */},
+  {(bigint) 2867 /* 6: ASuperExternCall < AExternCall: superclass typecheck marker */},
+  {(bigint) 3335 /* 7: ASuperExternCall < ASuperExternCall: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ASuperExternCall < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ASuperExternCall___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ASuperExternCall___visit_all},
-  {(bigint) 1 /* 60: ASuperExternCall < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___ASuperExternCall___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ASuperExternCall < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExternCall___target_class_name},
-  {(bigint) syntax___typing___AExternCall___target_method_name},
-  {(bigint) parser___parser_prod___AExternCall___empty_init},
-  {(bigint) parser___parser_prod___AExternCall___init_aexterncall},
-  {(bigint) 3 /* 76: ASuperExternCall < AExternCall: superclass init_table position */},
-  {(bigint) parser___parser_prod___ASuperExternCall___empty_init},
-  {(bigint) parser___parser_prod___ASuperExternCall___init_asuperexterncall},
-  {(bigint) 4 /* 79: ASuperExternCall < ASuperExternCall: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ASuperExternCall___n_kwsuper},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute ASuperExternCall::_parent */
-/* 3: Attribute ASuperExternCall::_location */
-/* 4: Attribute ASuperExternCall::_first_location */
-/* 5: Attribute ASuperExternCall::_last_location */
-/* 6: Attribute ASuperExternCall::_n_kwsuper */
-void INIT_ATTRIBUTES__parser___parser_nodes___ASuperExternCall(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ASuperExternCall;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___ASuperExternCall(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___ASuperExternCall;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___ASuperExternCall(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___ASuperExternCall;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_ASuperExternCall_parser___parser_prod___AExternCall___empty_init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 7591;
-  fra.me.meth = LOCATE_NEW_ASuperExternCall_parser___parser_prod___AExternCall___empty_init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7591 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___ASuperExternCall();
-  INIT_ATTRIBUTES__parser___parser_nodes___ASuperExternCall(fra.me.REG[0]);
-  parser___parser_prod___AExternCall___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ASuperExternCall(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t NEW_ASuperExternCall_parser___parser_prod___ASuperExternCall___empty_init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 7607;
-  fra.me.meth = LOCATE_NEW_ASuperExternCall_parser___parser_prod___ASuperExternCall___empty_init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7607 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___ASuperExternCall();
-  INIT_ATTRIBUTES__parser___parser_nodes___ASuperExternCall(fra.me.REG[0]);
-  parser___parser_prod___ASuperExternCall___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ASuperExternCall(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t NEW_ASuperExternCall_parser___parser_prod___ASuperExternCall___init_asuperexterncall(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 7609;
-  fra.me.meth = LOCATE_NEW_ASuperExternCall_parser___parser_prod___ASuperExternCall___init_asuperexterncall;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:7609 */
-  fra.me.REG[1] = NEW_parser___parser_nodes___ASuperExternCall();
-  INIT_ATTRIBUTES__parser___parser_nodes___ASuperExternCall(fra.me.REG[1]);
-  parser___parser_prod___ASuperExternCall___init_asuperexterncall(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ASuperExternCall(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-val_t NEW_ASuperExternCall_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ASuperExternCall_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ASuperExternCall();
-  INIT_ATTRIBUTES__parser___parser_nodes___ASuperExternCall(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ASuperExternCall(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-val_t NEW_ASuperExternCall_parser___parser_prod___AExternCall___init_aexterncall(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 7593;
-  fra.me.meth = LOCATE_NEW_ASuperExternCall_parser___parser_prod___AExternCall___init_aexterncall;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7593 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___ASuperExternCall();
-  INIT_ATTRIBUTES__parser___parser_nodes___ASuperExternCall(fra.me.REG[0]);
-  parser___parser_prod___AExternCall___init_aexterncall(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ASuperExternCall(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_parser___parser_nodes___ACastExternCall[80] = {
-  {(bigint) 3467 /* 0: Identity */},
-  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ACastExternCall" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ACastExternCall < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ACastExternCall < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ACastExternCall < Prod: superclass typecheck marker */},
-  {(bigint) 3107 /* 7: ACastExternCall < AExternCall: superclass typecheck marker */},
-  {(bigint) 3467 /* 8: ACastExternCall < ACastExternCall: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50462,7 +48712,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ACastExternCall[80] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ACastExternCall < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ASuperExternCall < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -50478,6 +48728,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ACastExternCall[80] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -50501,141 +48753,192 @@ const classtable_elt_t VFT_parser___parser_nodes___ACastExternCall[80] = {
   {(bigint) parser___parser_prod___ANode___parent},
   {(bigint) parser___parser_prod___ANode___parent__eq},
   {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___AExternCall___replace_child},
+  {(bigint) parser___parser_prod___ASuperExternCall___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___AExternCall___visit_all},
-  {(bigint) 1 /* 60: ACastExternCall < ANode: superclass init_table position */},
+  {(bigint) parser___parser_prod___ASuperExternCall___visit_all},
+  {(bigint) 2 /* 63: ASuperExternCall < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___ACastExternCall___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) syntax___typing___ASuperExternCall___after_typing},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ACastExternCall < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: ASuperExternCall < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___typing___AExternCall___target_class_name},
   {(bigint) syntax___typing___AExternCall___target_method_name},
   {(bigint) parser___parser_prod___AExternCall___empty_init},
   {(bigint) parser___parser_prod___AExternCall___init_aexterncall},
-  {(bigint) 3 /* 76: ACastExternCall < AExternCall: superclass init_table position */},
-  {(bigint) syntax___typing___ACastExternCall___from_type},
-  {(bigint) syntax___typing___ACastExternCall___to_type},
-  {(bigint) 4 /* 79: ACastExternCall < ACastExternCall: superclass init_table position */},
+  {(bigint) 0 /* 78: ASuperExternCall < AExternCall: superclass init_table position */},
+  {(bigint) parser___parser_prod___ASuperExternCall___empty_init},
+  {(bigint) parser___parser_prod___ASuperExternCall___init_asuperexterncall},
+  {(bigint) 4 /* 81: ASuperExternCall < ASuperExternCall: superclass init_table position */},
+  {(bigint) parser___parser_nodes___ASuperExternCall___n_kwsuper},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ACastExternCall::_parent */
-/* 3: Attribute ACastExternCall::_location */
-/* 4: Attribute ACastExternCall::_first_location */
-/* 5: Attribute ACastExternCall::_last_location */
-void INIT_ATTRIBUTES__parser___parser_nodes___ACastExternCall(val_t p0){
+/* 2: Attribute ASuperExternCall::_parent */
+/* 3: Attribute ASuperExternCall::_location */
+/* 4: Attribute ASuperExternCall::_first_location */
+/* 5: Attribute ASuperExternCall::_last_location */
+/* 6: Attribute ASuperExternCall::_n_kwsuper */
+void INIT_ATTRIBUTES__parser___parser_nodes___ASuperExternCall(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ACastExternCall;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ASuperExternCall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___parser_nodes___ACastExternCall(void)
+val_t NEW_parser___parser_nodes___ASuperExternCall(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___ACastExternCall;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___ASuperExternCall;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___parser_nodes___ACastExternCall(val_t p0){
+void CHECKNEW_parser___parser_nodes___ASuperExternCall(val_t p0){
   struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___ACastExternCall;
+  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___ASuperExternCall;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ASuperExternCall_parser___parser_prod___AExternCall___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7965;
+  fra.me.meth = LOCATE_NEW_ASuperExternCall_parser___parser_prod___AExternCall___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_prod.nit:7965 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ASuperExternCall();
+  INIT_ATTRIBUTES__parser___parser_nodes___ASuperExternCall(fra.me.REG[0]);
+  parser___parser_prod___AExternCall___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ASuperExternCall(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ASuperExternCall_parser___parser_prod___ASuperExternCall___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7981;
+  fra.me.meth = LOCATE_NEW_ASuperExternCall_parser___parser_prod___ASuperExternCall___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_prod.nit:7981 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ASuperExternCall();
+  INIT_ATTRIBUTES__parser___parser_nodes___ASuperExternCall(fra.me.REG[0]);
+  parser___parser_prod___ASuperExternCall___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ASuperExternCall(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-val_t NEW_ACastExternCall_parser___parser_nodes___ANode___init(val_t p0){
+val_t NEW_ASuperExternCall_parser___parser_prod___ASuperExternCall___init_asuperexterncall(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ACastExternCall_parser___parser_nodes___ANode___init;
+  fra.me.line = 7983;
+  fra.me.meth = LOCATE_NEW_ASuperExternCall_parser___parser_prod___ASuperExternCall___init_asuperexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ACastExternCall();
-  INIT_ATTRIBUTES__parser___parser_nodes___ACastExternCall(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ACastExternCall(fra.me.REG[1]);
+  /* parser/parser_prod.nit:7983 */
+  fra.me.REG[1] = NEW_parser___parser_nodes___ASuperExternCall();
+  INIT_ATTRIBUTES__parser___parser_nodes___ASuperExternCall(fra.me.REG[1]);
+  parser___parser_prod___ASuperExternCall___init_asuperexterncall(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ASuperExternCall(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_ACastExternCall_parser___parser_prod___AExternCall___empty_init(void){
+val_t NEW_ASuperExternCall_parser___parser_nodes___ANode___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7591;
-  fra.me.meth = LOCATE_NEW_ACastExternCall_parser___parser_prod___AExternCall___empty_init;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_ASuperExternCall_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7591 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___ACastExternCall();
-  INIT_ATTRIBUTES__parser___parser_nodes___ACastExternCall(fra.me.REG[0]);
-  parser___parser_prod___AExternCall___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ACastExternCall(fra.me.REG[0]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ASuperExternCall();
+  INIT_ATTRIBUTES__parser___parser_nodes___ASuperExternCall(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ASuperExternCall(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_ACastExternCall_parser___parser_prod___AExternCall___init_aexterncall(void){
+val_t NEW_ASuperExternCall_parser___parser_prod___AExternCall___init_aexterncall(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7593;
-  fra.me.meth = LOCATE_NEW_ACastExternCall_parser___parser_prod___AExternCall___init_aexterncall;
+  fra.me.line = 7967;
+  fra.me.meth = LOCATE_NEW_ASuperExternCall_parser___parser_prod___AExternCall___init_aexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7593 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___ACastExternCall();
-  INIT_ATTRIBUTES__parser___parser_nodes___ACastExternCall(fra.me.REG[0]);
+  /* parser/parser_prod.nit:7967 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ASuperExternCall();
+  INIT_ATTRIBUTES__parser___parser_nodes___ASuperExternCall(fra.me.REG[0]);
   parser___parser_prod___AExternCall___init_aexterncall(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ACastExternCall(fra.me.REG[0]);
+  CHECKNEW_parser___parser_nodes___ASuperExternCall(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ACastAsExternCall[86] = {
-  {(bigint) 3703 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ACastAsExternCall[88] = {
+  {(bigint) 3787 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ACastAsExternCall" /* 2: Class Name */},
   {(bigint) 3 /* 3: ACastAsExternCall < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ACastAsExternCall < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ACastAsExternCall < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ACastAsExternCall < Prod: superclass typecheck marker */},
+  {(bigint) 2867 /* 6: ACastAsExternCall < AExternCall: superclass typecheck marker */},
+  {(bigint) 3543 /* 7: ACastAsExternCall < ACastExternCall: superclass typecheck marker */},
+  {(bigint) 3787 /* 8: ACastAsExternCall < ACastAsExternCall: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ACastAsExternCall < Prod: superclass typecheck marker */},
-  {(bigint) 3107 /* 7: ACastAsExternCall < AExternCall: superclass typecheck marker */},
-  {(bigint) 3467 /* 8: ACastAsExternCall < ACastExternCall: superclass typecheck marker */},
-  {(bigint) 3703 /* 9: ACastAsExternCall < ACastAsExternCall: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50644,7 +48947,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ACastAsExternCall[86] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ACastAsExternCall < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: ACastAsExternCall < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -50660,6 +48963,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ACastAsExternCall[86] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -50686,29 +48991,28 @@ const classtable_elt_t VFT_parser___parser_nodes___ACastAsExternCall[86] = {
   {(bigint) parser___parser_prod___ACastAsExternCall___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ACastAsExternCall___visit_all},
-  {(bigint) 1 /* 60: ACastAsExternCall < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: ACastAsExternCall < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ACastExternCall___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ACastAsExternCall < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: ACastAsExternCall < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___typing___AExternCall___target_class_name},
   {(bigint) syntax___typing___AExternCall___target_method_name},
   {(bigint) parser___parser_prod___AExternCall___empty_init},
   {(bigint) parser___parser_prod___AExternCall___init_aexterncall},
-  {(bigint) 3 /* 76: ACastAsExternCall < AExternCall: superclass init_table position */},
+  {(bigint) 1 /* 78: ACastAsExternCall < AExternCall: superclass init_table position */},
   {(bigint) syntax___typing___ACastAsExternCall___from_type},
   {(bigint) syntax___typing___ACastAsExternCall___to_type},
-  {(bigint) 4 /* 79: ACastAsExternCall < ACastExternCall: superclass init_table position */},
+  {(bigint) 0 /* 81: ACastAsExternCall < ACastExternCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ACastAsExternCall___empty_init},
   {(bigint) parser___parser_prod___ACastAsExternCall___init_acastasexterncall},
-  {(bigint) 5 /* 82: ACastAsExternCall < ACastAsExternCall: superclass init_table position */},
+  {(bigint) 5 /* 84: ACastAsExternCall < ACastAsExternCall: superclass init_table position */},
   {(bigint) parser___parser_nodes___ACastAsExternCall___n_from_type},
   {(bigint) parser___parser_nodes___ACastAsExternCall___n_kwas},
   {(bigint) parser___parser_nodes___ACastAsExternCall___n_to_type},
@@ -50779,13 +49083,13 @@ val_t NEW_ACastAsExternCall_parser___parser_prod___AExternCall___empty_init(void
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7591;
+  fra.me.line = 7965;
   fra.me.meth = LOCATE_NEW_ACastAsExternCall_parser___parser_prod___AExternCall___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7591 */
+  /* parser/parser_prod.nit:7965 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ACastAsExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___ACastAsExternCall(fra.me.REG[0]);
   parser___parser_prod___AExternCall___empty_init(fra.me.REG[0], init_table);
@@ -50799,13 +49103,13 @@ val_t NEW_ACastAsExternCall_parser___parser_prod___ACastAsExternCall___empty_ini
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7763;
+  fra.me.line = 8137;
   fra.me.meth = LOCATE_NEW_ACastAsExternCall_parser___parser_prod___ACastAsExternCall___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7763 */
+  /* parser/parser_prod.nit:8137 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ACastAsExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___ACastAsExternCall(fra.me.REG[0]);
   parser___parser_prod___ACastAsExternCall___empty_init(fra.me.REG[0], init_table);
@@ -50819,7 +49123,7 @@ val_t NEW_ACastAsExternCall_parser___parser_prod___ACastAsExternCall___init_acas
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7765;
+  fra.me.line = 8139;
   fra.me.meth = LOCATE_NEW_ACastAsExternCall_parser___parser_prod___ACastAsExternCall___init_acastasexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -50831,7 +49135,7 @@ val_t NEW_ACastAsExternCall_parser___parser_prod___ACastAsExternCall___init_acas
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7765 */
+  /* parser/parser_prod.nit:8139 */
   fra.me.REG[3] = NEW_parser___parser_nodes___ACastAsExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___ACastAsExternCall(fra.me.REG[3]);
   parser___parser_prod___ACastAsExternCall___init_acastasexterncall(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -50839,26 +49143,25 @@ val_t NEW_ACastAsExternCall_parser___parser_prod___ACastAsExternCall___init_acas
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-val_t NEW_ACastAsExternCall_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ACastAsExternCall_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ACastAsExternCall_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ACastAsExternCall();
-  INIT_ATTRIBUTES__parser___parser_nodes___ACastAsExternCall(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ACastAsExternCall(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ACastAsExternCall();
+  INIT_ATTRIBUTES__parser___parser_nodes___ACastAsExternCall(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ACastAsExternCall(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_ACastAsExternCall_parser___parser_prod___AExternCall___init_aexterncall(void){
   struct {struct stack_frame_t me;} fra;
@@ -50866,13 +49169,13 @@ val_t NEW_ACastAsExternCall_parser___parser_prod___AExternCall___init_aexterncal
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7593;
+  fra.me.line = 7967;
   fra.me.meth = LOCATE_NEW_ACastAsExternCall_parser___parser_prod___AExternCall___init_aexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7593 */
+  /* parser/parser_prod.nit:7967 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ACastAsExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___ACastAsExternCall(fra.me.REG[0]);
   parser___parser_prod___AExternCall___init_aexterncall(fra.me.REG[0], init_table);
@@ -50880,17 +49183,18 @@ val_t NEW_ACastAsExternCall_parser___parser_prod___AExternCall___init_aexterncal
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AAsNullableExternCall[86] = {
-  {(bigint) 3723 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AAsNullableExternCall[88] = {
+  {(bigint) 3807 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AAsNullableExternCall" /* 2: Class Name */},
   {(bigint) 3 /* 3: AAsNullableExternCall < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AAsNullableExternCall < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AAsNullableExternCall < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AAsNullableExternCall < Prod: superclass typecheck marker */},
+  {(bigint) 2867 /* 6: AAsNullableExternCall < AExternCall: superclass typecheck marker */},
+  {(bigint) 3543 /* 7: AAsNullableExternCall < ACastExternCall: superclass typecheck marker */},
+  {(bigint) 3807 /* 8: AAsNullableExternCall < AAsNullableExternCall: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AAsNullableExternCall < Prod: superclass typecheck marker */},
-  {(bigint) 3107 /* 7: AAsNullableExternCall < AExternCall: superclass typecheck marker */},
-  {(bigint) 3467 /* 8: AAsNullableExternCall < ACastExternCall: superclass typecheck marker */},
-  {(bigint) 3723 /* 9: AAsNullableExternCall < AAsNullableExternCall: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50899,7 +49203,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AAsNullableExternCall[86] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AAsNullableExternCall < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AAsNullableExternCall < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -50915,6 +49219,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AAsNullableExternCall[86] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -50941,29 +49247,28 @@ const classtable_elt_t VFT_parser___parser_nodes___AAsNullableExternCall[86] = {
   {(bigint) parser___parser_prod___AAsNullableExternCall___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AAsNullableExternCall___visit_all},
-  {(bigint) 1 /* 60: AAsNullableExternCall < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AAsNullableExternCall < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ACastExternCall___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AAsNullableExternCall < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AAsNullableExternCall < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___typing___AExternCall___target_class_name},
   {(bigint) syntax___typing___AExternCall___target_method_name},
   {(bigint) parser___parser_prod___AExternCall___empty_init},
   {(bigint) parser___parser_prod___AExternCall___init_aexterncall},
-  {(bigint) 3 /* 76: AAsNullableExternCall < AExternCall: superclass init_table position */},
+  {(bigint) 1 /* 78: AAsNullableExternCall < AExternCall: superclass init_table position */},
   {(bigint) syntax___typing___AAsNullableExternCall___from_type},
   {(bigint) syntax___typing___AAsNullableExternCall___to_type},
-  {(bigint) 4 /* 79: AAsNullableExternCall < ACastExternCall: superclass init_table position */},
+  {(bigint) 0 /* 81: AAsNullableExternCall < ACastExternCall: superclass init_table position */},
   {(bigint) parser___parser_prod___AAsNullableExternCall___empty_init},
   {(bigint) parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall},
-  {(bigint) 5 /* 82: AAsNullableExternCall < AAsNullableExternCall: superclass init_table position */},
+  {(bigint) 5 /* 84: AAsNullableExternCall < AAsNullableExternCall: superclass init_table position */},
   {(bigint) parser___parser_nodes___AAsNullableExternCall___n_type},
   {(bigint) parser___parser_nodes___AAsNullableExternCall___n_kwas},
   {(bigint) parser___parser_nodes___AAsNullableExternCall___n_kwnullable},
@@ -51034,13 +49339,13 @@ val_t NEW_AAsNullableExternCall_parser___parser_prod___AExternCall___empty_init(
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7591;
+  fra.me.line = 7965;
   fra.me.meth = LOCATE_NEW_AAsNullableExternCall_parser___parser_prod___AExternCall___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7591 */
+  /* parser/parser_prod.nit:7965 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AAsNullableExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___AAsNullableExternCall(fra.me.REG[0]);
   parser___parser_prod___AExternCall___empty_init(fra.me.REG[0], init_table);
@@ -51054,13 +49359,13 @@ val_t NEW_AAsNullableExternCall_parser___parser_prod___AAsNullableExternCall___e
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7822;
+  fra.me.line = 8196;
   fra.me.meth = LOCATE_NEW_AAsNullableExternCall_parser___parser_prod___AAsNullableExternCall___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7822 */
+  /* parser/parser_prod.nit:8196 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AAsNullableExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___AAsNullableExternCall(fra.me.REG[0]);
   parser___parser_prod___AAsNullableExternCall___empty_init(fra.me.REG[0], init_table);
@@ -51074,7 +49379,7 @@ val_t NEW_AAsNullableExternCall_parser___parser_prod___AAsNullableExternCall___i
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7824;
+  fra.me.line = 8198;
   fra.me.meth = LOCATE_NEW_AAsNullableExternCall_parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -51086,7 +49391,7 @@ val_t NEW_AAsNullableExternCall_parser___parser_prod___AAsNullableExternCall___i
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7824 */
+  /* parser/parser_prod.nit:8198 */
   fra.me.REG[3] = NEW_parser___parser_nodes___AAsNullableExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___AAsNullableExternCall(fra.me.REG[3]);
   parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -51094,26 +49399,25 @@ val_t NEW_AAsNullableExternCall_parser___parser_prod___AAsNullableExternCall___i
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-val_t NEW_AAsNullableExternCall_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AAsNullableExternCall_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AAsNullableExternCall_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AAsNullableExternCall();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAsNullableExternCall(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AAsNullableExternCall(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AAsNullableExternCall();
+  INIT_ATTRIBUTES__parser___parser_nodes___AAsNullableExternCall(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AAsNullableExternCall(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_AAsNullableExternCall_parser___parser_prod___AExternCall___init_aexterncall(void){
   struct {struct stack_frame_t me;} fra;
@@ -51121,13 +49425,13 @@ val_t NEW_AAsNullableExternCall_parser___parser_prod___AExternCall___init_aexter
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7593;
+  fra.me.line = 7967;
   fra.me.meth = LOCATE_NEW_AAsNullableExternCall_parser___parser_prod___AExternCall___init_aexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7593 */
+  /* parser/parser_prod.nit:7967 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AAsNullableExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___AAsNullableExternCall(fra.me.REG[0]);
   parser___parser_prod___AExternCall___init_aexterncall(fra.me.REG[0], init_table);
@@ -51135,17 +49439,18 @@ val_t NEW_AAsNullableExternCall_parser___parser_prod___AExternCall___init_aexter
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AAsNotNullableExternCall[87] = {
-  {(bigint) 3727 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AAsNotNullableExternCall[89] = {
+  {(bigint) 3811 /* 0: Identity */},
   {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AAsNotNullableExternCall" /* 2: Class Name */},
   {(bigint) 3 /* 3: AAsNotNullableExternCall < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AAsNotNullableExternCall < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AAsNotNullableExternCall < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AAsNotNullableExternCall < Prod: superclass typecheck marker */},
+  {(bigint) 2867 /* 6: AAsNotNullableExternCall < AExternCall: superclass typecheck marker */},
+  {(bigint) 3543 /* 7: AAsNotNullableExternCall < ACastExternCall: superclass typecheck marker */},
+  {(bigint) 3811 /* 8: AAsNotNullableExternCall < AAsNotNullableExternCall: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AAsNotNullableExternCall < Prod: superclass typecheck marker */},
-  {(bigint) 3107 /* 7: AAsNotNullableExternCall < AExternCall: superclass typecheck marker */},
-  {(bigint) 3467 /* 8: AAsNotNullableExternCall < ACastExternCall: superclass typecheck marker */},
-  {(bigint) 3727 /* 9: AAsNotNullableExternCall < AAsNotNullableExternCall: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51154,7 +49459,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AAsNotNullableExternCall[87]
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AAsNotNullableExternCall < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AAsNotNullableExternCall < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -51170,6 +49475,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AAsNotNullableExternCall[87]
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -51196,29 +49503,28 @@ const classtable_elt_t VFT_parser___parser_nodes___AAsNotNullableExternCall[87]
   {(bigint) parser___parser_prod___AAsNotNullableExternCall___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AAsNotNullableExternCall___visit_all},
-  {(bigint) 1 /* 60: AAsNotNullableExternCall < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AAsNotNullableExternCall < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ACastExternCall___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AAsNotNullableExternCall < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AAsNotNullableExternCall < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___typing___AExternCall___target_class_name},
   {(bigint) syntax___typing___AExternCall___target_method_name},
   {(bigint) parser___parser_prod___AExternCall___empty_init},
   {(bigint) parser___parser_prod___AExternCall___init_aexterncall},
-  {(bigint) 3 /* 76: AAsNotNullableExternCall < AExternCall: superclass init_table position */},
+  {(bigint) 1 /* 78: AAsNotNullableExternCall < AExternCall: superclass init_table position */},
   {(bigint) syntax___typing___AAsNotNullableExternCall___from_type},
   {(bigint) syntax___typing___AAsNotNullableExternCall___to_type},
-  {(bigint) 4 /* 79: AAsNotNullableExternCall < ACastExternCall: superclass init_table position */},
+  {(bigint) 0 /* 81: AAsNotNullableExternCall < ACastExternCall: superclass init_table position */},
   {(bigint) parser___parser_prod___AAsNotNullableExternCall___empty_init},
   {(bigint) parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall},
-  {(bigint) 5 /* 82: AAsNotNullableExternCall < AAsNotNullableExternCall: superclass init_table position */},
+  {(bigint) 5 /* 84: AAsNotNullableExternCall < AAsNotNullableExternCall: superclass init_table position */},
   {(bigint) parser___parser_nodes___AAsNotNullableExternCall___n_type},
   {(bigint) parser___parser_nodes___AAsNotNullableExternCall___n_kwas},
   {(bigint) parser___parser_nodes___AAsNotNullableExternCall___n_kwnot},
@@ -51296,13 +49602,13 @@ val_t NEW_AAsNotNullableExternCall_parser___parser_prod___AExternCall___empty_in
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7591;
+  fra.me.line = 7965;
   fra.me.meth = LOCATE_NEW_AAsNotNullableExternCall_parser___parser_prod___AExternCall___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7591 */
+  /* parser/parser_prod.nit:7965 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AAsNotNullableExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___AAsNotNullableExternCall(fra.me.REG[0]);
   parser___parser_prod___AExternCall___empty_init(fra.me.REG[0], init_table);
@@ -51316,13 +49622,13 @@ val_t NEW_AAsNotNullableExternCall_parser___parser_prod___AAsNotNullableExternCa
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7881;
+  fra.me.line = 8255;
   fra.me.meth = LOCATE_NEW_AAsNotNullableExternCall_parser___parser_prod___AAsNotNullableExternCall___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7881 */
+  /* parser/parser_prod.nit:8255 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AAsNotNullableExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___AAsNotNullableExternCall(fra.me.REG[0]);
   parser___parser_prod___AAsNotNullableExternCall___empty_init(fra.me.REG[0], init_table);
@@ -51336,7 +49642,7 @@ val_t NEW_AAsNotNullableExternCall_parser___parser_prod___AAsNotNullableExternCa
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7883;
+  fra.me.line = 8257;
   fra.me.meth = LOCATE_NEW_AAsNotNullableExternCall_parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -51350,7 +49656,7 @@ val_t NEW_AAsNotNullableExternCall_parser___parser_prod___AAsNotNullableExternCa
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:7883 */
+  /* parser/parser_prod.nit:8257 */
   fra.me.REG[4] = NEW_parser___parser_nodes___AAsNotNullableExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___AAsNotNullableExternCall(fra.me.REG[4]);
   parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
@@ -51358,26 +49664,25 @@ val_t NEW_AAsNotNullableExternCall_parser___parser_prod___AAsNotNullableExternCa
   stack_frame_head = fra.me.prev;
   return fra.me.REG[4];
 }
-val_t NEW_AAsNotNullableExternCall_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AAsNotNullableExternCall_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AAsNotNullableExternCall_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AAsNotNullableExternCall();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAsNotNullableExternCall(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AAsNotNullableExternCall(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AAsNotNullableExternCall();
+  INIT_ATTRIBUTES__parser___parser_nodes___AAsNotNullableExternCall(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AAsNotNullableExternCall(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_AAsNotNullableExternCall_parser___parser_prod___AExternCall___init_aexterncall(void){
   struct {struct stack_frame_t me;} fra;
@@ -51385,13 +49690,13 @@ val_t NEW_AAsNotNullableExternCall_parser___parser_prod___AExternCall___init_aex
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7593;
+  fra.me.line = 7967;
   fra.me.meth = LOCATE_NEW_AAsNotNullableExternCall_parser___parser_prod___AExternCall___init_aexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7593 */
+  /* parser/parser_prod.nit:7967 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AAsNotNullableExternCall();
   INIT_ATTRIBUTES__parser___parser_nodes___AAsNotNullableExternCall(fra.me.REG[0]);
   parser___parser_prod___AExternCall___init_aexterncall(fra.me.REG[0], init_table);
@@ -51399,16 +49704,17 @@ val_t NEW_AAsNotNullableExternCall_parser___parser_prod___AExternCall___init_aex
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ATypePropdef[91] = {
-  {(bigint) 3255 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ATypePropdef[93] = {
+  {(bigint) 3319 /* 0: Identity */},
   {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ATypePropdef" /* 2: Class Name */},
   {(bigint) 3 /* 3: ATypePropdef < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ATypePropdef < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ATypePropdef < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ATypePropdef < Prod: superclass typecheck marker */},
+  {(bigint) 2823 /* 6: ATypePropdef < APropdef: superclass typecheck marker */},
+  {(bigint) 3319 /* 7: ATypePropdef < ATypePropdef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ATypePropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3063 /* 7: ATypePropdef < APropdef: superclass typecheck marker */},
-  {(bigint) 3255 /* 8: ATypePropdef < ATypePropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51418,7 +49724,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ATypePropdef[91] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ATypePropdef < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ATypePropdef < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -51434,6 +49740,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ATypePropdef[91] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -51460,24 +49768,23 @@ const classtable_elt_t VFT_parser___parser_nodes___ATypePropdef[91] = {
   {(bigint) parser___parser_prod___ATypePropdef___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ATypePropdef___visit_all},
-  {(bigint) 1 /* 60: ATypePropdef < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: ATypePropdef < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ATypePropdef < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: ATypePropdef < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___APropdef___process_and_check},
   {(bigint) syntax___mmbuilder___APropdef___do_and_check_intro},
   {(bigint) syntax___mmbuilder___APropdef___inherit_signature},
   {(bigint) syntax___mmbuilder___APropdef___do_and_check_redef},
   {(bigint) syntax___typing___APropdef___self_var},
-  {(bigint) 3 /* 77: ATypePropdef < APropdef: superclass init_table position */},
+  {(bigint) 0 /* 79: ATypePropdef < APropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___APropdef___n_doc},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
@@ -51485,7 +49792,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ATypePropdef[91] = {
   {(bigint) syntax___mmbuilder___ATypePropdef___prop},
   {(bigint) parser___parser_prod___ATypePropdef___empty_init},
   {(bigint) parser___parser_prod___ATypePropdef___init_atypepropdef},
-  {(bigint) 4 /* 85: ATypePropdef < ATypePropdef: superclass init_table position */},
+  {(bigint) 4 /* 87: ATypePropdef < ATypePropdef: superclass init_table position */},
   {(bigint) parser___parser_nodes___ATypePropdef___n_kwredef},
   {(bigint) parser___parser_nodes___ATypePropdef___n_visibility},
   {(bigint) parser___parser_nodes___ATypePropdef___n_kwtype},
@@ -51519,10 +49826,10 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ATypePropdef(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:416 */
+  /* parser/parser_nodes.nit:486 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:543 */
+  /* parser/parser_nodes.nit:612 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -51577,13 +49884,13 @@ val_t NEW_ATypePropdef_parser___parser_prod___ATypePropdef___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2068;
+  fra.me.line = 2082;
   fra.me.meth = LOCATE_NEW_ATypePropdef_parser___parser_prod___ATypePropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2068 */
+  /* parser/parser_prod.nit:2082 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ATypePropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___ATypePropdef(fra.me.REG[0]);
   parser___parser_prod___ATypePropdef___empty_init(fra.me.REG[0], init_table);
@@ -51597,7 +49904,7 @@ val_t NEW_ATypePropdef_parser___parser_prod___ATypePropdef___init_atypepropdef(v
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2070;
+  fra.me.line = 2084;
   fra.me.meth = LOCATE_NEW_ATypePropdef_parser___parser_prod___ATypePropdef___init_atypepropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -51615,7 +49922,7 @@ val_t NEW_ATypePropdef_parser___parser_prod___ATypePropdef___init_atypepropdef(v
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
-  /* ./parser//parser_prod.nit:2070 */
+  /* parser/parser_prod.nit:2084 */
   fra.me.REG[6] = NEW_parser___parser_nodes___ATypePropdef();
   INIT_ATTRIBUTES__parser___parser_nodes___ATypePropdef(fra.me.REG[6]);
   parser___parser_prod___ATypePropdef___init_atypepropdef(fra.me.REG[6], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], init_table);
@@ -51623,185 +49930,37 @@ val_t NEW_ATypePropdef_parser___parser_prod___ATypePropdef___init_atypepropdef(v
   stack_frame_head = fra.me.prev;
   return fra.me.REG[6];
 }
-val_t NEW_ATypePropdef_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ATypePropdef_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ATypePropdef_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ATypePropdef();
-  INIT_ATTRIBUTES__parser___parser_nodes___ATypePropdef(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ATypePropdef(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AAble[75] = {
-  {(bigint) 3139 /* 0: Identity */},
-  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AAble" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AAble < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AAble < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AAble < Prod: superclass typecheck marker */},
-  {(bigint) 3139 /* 7: AAble < AAble: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AAble < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: AAble < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AAble < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) 3 /* 72: AAble < AAble: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AAble___n_visibility},
-  {(bigint) parser___parser_nodes___AAble___n_kwredef},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AAble::_parent */
-/* 3: Attribute AAble::_location */
-/* 4: Attribute AAble::_first_location */
-/* 5: Attribute AAble::_last_location */
-/* 6: Attribute AAble::_n_visibility */
-/* 7: Attribute AAble::_n_kwredef */
-void INIT_ATTRIBUTES__parser___parser_nodes___AAble(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAble;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:550 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:551 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AAble(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AAble;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AAble(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AAble;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AAble_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AAble_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AAble();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAble(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AAble(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ATypePropdef();
+  INIT_ATTRIBUTES__parser___parser_nodes___ATypePropdef(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ATypePropdef(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AReadAble[79] = {
-  {(bigint) 3315 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AReadAble[81] = {
+  {(bigint) 3379 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AReadAble" /* 2: Class Name */},
   {(bigint) 3 /* 3: AReadAble < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AReadAble < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AReadAble < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AReadAble < Prod: superclass typecheck marker */},
+  {(bigint) 2903 /* 6: AReadAble < AAble: superclass typecheck marker */},
+  {(bigint) 3379 /* 7: AReadAble < AReadAble: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AReadAble < Prod: superclass typecheck marker */},
-  {(bigint) 3139 /* 7: AReadAble < AAble: superclass typecheck marker */},
-  {(bigint) 3315 /* 8: AReadAble < AReadAble: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51811,7 +49970,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AReadAble[79] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AReadAble < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AReadAble < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -51827,6 +49986,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AReadAble[79] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -51853,24 +50014,23 @@ const classtable_elt_t VFT_parser___parser_nodes___AReadAble[79] = {
   {(bigint) parser___parser_prod___AReadAble___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AReadAble___visit_all},
-  {(bigint) 1 /* 60: AReadAble < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AReadAble < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AReadAble < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AReadAble < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) 3 /* 72: AReadAble < AAble: superclass init_table position */},
+  {(bigint) 0 /* 74: AReadAble < AAble: superclass init_table position */},
   {(bigint) parser___parser_nodes___AAble___n_visibility},
   {(bigint) parser___parser_nodes___AAble___n_kwredef},
   {(bigint) parser___parser_prod___AReadAble___empty_init},
   {(bigint) parser___parser_prod___AReadAble___init_areadable},
-  {(bigint) 4 /* 77: AReadAble < AReadAble: superclass init_table position */},
+  {(bigint) 4 /* 79: AReadAble < AReadAble: superclass init_table position */},
   {(bigint) parser___parser_nodes___AReadAble___n_kwreadable},
 };
 /* 0: Pointer to the classtable */
@@ -51895,10 +50055,10 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AReadAble(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:551 */
+  /* parser/parser_nodes.nit:620 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:550 */
+  /* parser/parser_nodes.nit:619 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -51938,13 +50098,13 @@ val_t NEW_AReadAble_parser___parser_prod___AReadAble___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2177;
+  fra.me.line = 2191;
   fra.me.meth = LOCATE_NEW_AReadAble_parser___parser_prod___AReadAble___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2177 */
+  /* parser/parser_prod.nit:2191 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AReadAble();
   INIT_ATTRIBUTES__parser___parser_nodes___AReadAble(fra.me.REG[0]);
   parser___parser_prod___AReadAble___empty_init(fra.me.REG[0], init_table);
@@ -51958,7 +50118,7 @@ val_t NEW_AReadAble_parser___parser_prod___AReadAble___init_areadable(val_t p0,
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2179;
+  fra.me.line = 2193;
   fra.me.meth = LOCATE_NEW_AReadAble_parser___parser_prod___AReadAble___init_areadable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -51968,7 +50128,7 @@ val_t NEW_AReadAble_parser___parser_prod___AReadAble___init_areadable(val_t p0,
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2179 */
+  /* parser/parser_prod.nit:2193 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AReadAble();
   INIT_ATTRIBUTES__parser___parser_nodes___AReadAble(fra.me.REG[2]);
   parser___parser_prod___AReadAble___init_areadable(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -51976,37 +50136,37 @@ val_t NEW_AReadAble_parser___parser_prod___AReadAble___init_areadable(val_t p0,
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AReadAble_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AReadAble_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AReadAble_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AReadAble();
-  INIT_ATTRIBUTES__parser___parser_nodes___AReadAble(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AReadAble(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AReadAble();
+  INIT_ATTRIBUTES__parser___parser_nodes___AReadAble(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AReadAble(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AWriteAble[79] = {
-  {(bigint) 3243 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AWriteAble[81] = {
+  {(bigint) 3307 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AWriteAble" /* 2: Class Name */},
   {(bigint) 3 /* 3: AWriteAble < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AWriteAble < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AWriteAble < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AWriteAble < Prod: superclass typecheck marker */},
+  {(bigint) 2903 /* 6: AWriteAble < AAble: superclass typecheck marker */},
+  {(bigint) 3307 /* 7: AWriteAble < AWriteAble: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AWriteAble < Prod: superclass typecheck marker */},
-  {(bigint) 3139 /* 7: AWriteAble < AAble: superclass typecheck marker */},
-  {(bigint) 3243 /* 8: AWriteAble < AWriteAble: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52016,7 +50176,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AWriteAble[79] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AWriteAble < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AWriteAble < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -52032,6 +50192,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AWriteAble[79] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -52058,24 +50220,23 @@ const classtable_elt_t VFT_parser___parser_nodes___AWriteAble[79] = {
   {(bigint) parser___parser_prod___AWriteAble___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AWriteAble___visit_all},
-  {(bigint) 1 /* 60: AWriteAble < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AWriteAble < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AWriteAble < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AWriteAble < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) 3 /* 72: AWriteAble < AAble: superclass init_table position */},
+  {(bigint) 0 /* 74: AWriteAble < AAble: superclass init_table position */},
   {(bigint) parser___parser_nodes___AAble___n_visibility},
   {(bigint) parser___parser_nodes___AAble___n_kwredef},
   {(bigint) parser___parser_prod___AWriteAble___empty_init},
   {(bigint) parser___parser_prod___AWriteAble___init_awriteable},
-  {(bigint) 4 /* 77: AWriteAble < AWriteAble: superclass init_table position */},
+  {(bigint) 4 /* 79: AWriteAble < AWriteAble: superclass init_table position */},
   {(bigint) parser___parser_nodes___AWriteAble___n_kwwritable},
 };
 /* 0: Pointer to the classtable */
@@ -52100,10 +50261,10 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AWriteAble(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:551 */
+  /* parser/parser_nodes.nit:620 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:550 */
+  /* parser/parser_nodes.nit:619 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -52143,13 +50304,13 @@ val_t NEW_AWriteAble_parser___parser_prod___AWriteAble___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2226;
+  fra.me.line = 2240;
   fra.me.meth = LOCATE_NEW_AWriteAble_parser___parser_prod___AWriteAble___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2226 */
+  /* parser/parser_prod.nit:2240 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AWriteAble();
   INIT_ATTRIBUTES__parser___parser_nodes___AWriteAble(fra.me.REG[0]);
   parser___parser_prod___AWriteAble___empty_init(fra.me.REG[0], init_table);
@@ -52163,7 +50324,7 @@ val_t NEW_AWriteAble_parser___parser_prod___AWriteAble___init_awriteable(val_t p
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2228;
+  fra.me.line = 2242;
   fra.me.meth = LOCATE_NEW_AWriteAble_parser___parser_prod___AWriteAble___init_awriteable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -52175,7 +50336,7 @@ val_t NEW_AWriteAble_parser___parser_prod___AWriteAble___init_awriteable(val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2228 */
+  /* parser/parser_prod.nit:2242 */
   fra.me.REG[3] = NEW_parser___parser_nodes___AWriteAble();
   INIT_ATTRIBUTES__parser___parser_nodes___AWriteAble(fra.me.REG[3]);
   parser___parser_prod___AWriteAble___init_awriteable(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -52183,175 +50344,37 @@ val_t NEW_AWriteAble_parser___parser_prod___AWriteAble___init_awriteable(val_t p
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-val_t NEW_AWriteAble_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AWriteAble_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AWriteAble_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AWriteAble();
-  INIT_ATTRIBUTES__parser___parser_nodes___AWriteAble(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AWriteAble(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AMethid[75] = {
-  {(bigint) 3083 /* 0: Identity */},
-  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AMethid" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AMethid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AMethid < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 7: AMethid < AMethid: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AMethid < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AMethid___accept_property_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: AMethid < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AMethid < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AMethid___name},
-  {(bigint) 3 /* 74: AMethid < AMethid: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AMethid::_parent */
-/* 3: Attribute AMethid::_location */
-/* 4: Attribute AMethid::_first_location */
-/* 5: Attribute AMethid::_last_location */
-/* 6: Attribute AMethid::_name */
-void INIT_ATTRIBUTES__parser___parser_nodes___AMethid(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AMethid;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AMethid(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AMethid;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AMethid(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AMethid;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AMethid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AMethid_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AMethid();
-  INIT_ATTRIBUTES__parser___parser_nodes___AMethid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AMethid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AWriteAble();
+  INIT_ATTRIBUTES__parser___parser_nodes___AWriteAble(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AWriteAble(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AIdMethid[79] = {
-  {(bigint) 3415 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AIdMethid[81] = {
+  {(bigint) 3487 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AIdMethid" /* 2: Class Name */},
   {(bigint) 3 /* 3: AIdMethid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AIdMethid < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AIdMethid < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AIdMethid < Prod: superclass typecheck marker */},
+  {(bigint) 2843 /* 6: AIdMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 3487 /* 7: AIdMethid < AIdMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AIdMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 7: AIdMethid < AMethid: superclass typecheck marker */},
-  {(bigint) 3415 /* 8: AIdMethid < AIdMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52361,7 +50384,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AIdMethid[79] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AIdMethid < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AIdMethid < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -52377,6 +50400,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AIdMethid[79] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -52403,24 +50428,23 @@ const classtable_elt_t VFT_parser___parser_nodes___AIdMethid[79] = {
   {(bigint) parser___parser_prod___AIdMethid___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AIdMethid___visit_all},
-  {(bigint) 1 /* 60: AIdMethid < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AIdMethid < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AIdMethid < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AIdMethid < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___AMethid___name},
-  {(bigint) 3 /* 74: AIdMethid < AMethid: superclass init_table position */},
+  {(bigint) 0 /* 76: AIdMethid < AMethid: superclass init_table position */},
   {(bigint) parser___parser_prod___AIdMethid___empty_init},
   {(bigint) parser___parser_prod___AIdMethid___init_aidmethid},
-  {(bigint) 4 /* 77: AIdMethid < AIdMethid: superclass init_table position */},
+  {(bigint) 4 /* 79: AIdMethid < AIdMethid: superclass init_table position */},
   {(bigint) parser___parser_nodes___AIdMethid___n_id},
 };
 /* 0: Pointer to the classtable */
@@ -52478,13 +50502,13 @@ val_t NEW_AIdMethid_parser___parser_prod___AIdMethid___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2293;
+  fra.me.line = 2307;
   fra.me.meth = LOCATE_NEW_AIdMethid_parser___parser_prod___AIdMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2293 */
+  /* parser/parser_prod.nit:2307 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AIdMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___AIdMethid(fra.me.REG[0]);
   parser___parser_prod___AIdMethid___empty_init(fra.me.REG[0], init_table);
@@ -52498,7 +50522,7 @@ val_t NEW_AIdMethid_parser___parser_prod___AIdMethid___init_aidmethid(val_t p0){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2295;
+  fra.me.line = 2309;
   fra.me.meth = LOCATE_NEW_AIdMethid_parser___parser_prod___AIdMethid___init_aidmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -52506,7 +50530,7 @@ val_t NEW_AIdMethid_parser___parser_prod___AIdMethid___init_aidmethid(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:2295 */
+  /* parser/parser_prod.nit:2309 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AIdMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___AIdMethid(fra.me.REG[1]);
   parser___parser_prod___AIdMethid___init_aidmethid(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -52514,37 +50538,37 @@ val_t NEW_AIdMethid_parser___parser_prod___AIdMethid___init_aidmethid(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AIdMethid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AIdMethid_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AIdMethid_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AIdMethid();
-  INIT_ATTRIBUTES__parser___parser_nodes___AIdMethid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AIdMethid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AIdMethid();
+  INIT_ATTRIBUTES__parser___parser_nodes___AIdMethid(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AIdMethid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___APlusMethid[79] = {
-  {(bigint) 3343 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___APlusMethid[81] = {
+  {(bigint) 3407 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "APlusMethid" /* 2: Class Name */},
   {(bigint) 3 /* 3: APlusMethid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: APlusMethid < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: APlusMethid < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: APlusMethid < Prod: superclass typecheck marker */},
+  {(bigint) 2843 /* 6: APlusMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 3407 /* 7: APlusMethid < APlusMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: APlusMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 7: APlusMethid < AMethid: superclass typecheck marker */},
-  {(bigint) 3343 /* 8: APlusMethid < APlusMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52554,7 +50578,7 @@ const classtable_elt_t VFT_parser___parser_nodes___APlusMethid[79] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: APlusMethid < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: APlusMethid < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -52570,6 +50594,8 @@ const classtable_elt_t VFT_parser___parser_nodes___APlusMethid[79] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -52596,24 +50622,23 @@ const classtable_elt_t VFT_parser___parser_nodes___APlusMethid[79] = {
   {(bigint) parser___parser_prod___APlusMethid___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___APlusMethid___visit_all},
-  {(bigint) 1 /* 60: APlusMethid < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: APlusMethid < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: APlusMethid < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: APlusMethid < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___AMethid___name},
-  {(bigint) 3 /* 74: APlusMethid < AMethid: superclass init_table position */},
+  {(bigint) 0 /* 76: APlusMethid < AMethid: superclass init_table position */},
   {(bigint) parser___parser_prod___APlusMethid___empty_init},
   {(bigint) parser___parser_prod___APlusMethid___init_aplusmethid},
-  {(bigint) 4 /* 77: APlusMethid < APlusMethid: superclass init_table position */},
+  {(bigint) 4 /* 79: APlusMethid < APlusMethid: superclass init_table position */},
   {(bigint) parser___parser_nodes___APlusMethid___n_plus},
 };
 /* 0: Pointer to the classtable */
@@ -52671,13 +50696,13 @@ val_t NEW_APlusMethid_parser___parser_prod___APlusMethid___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2324;
+  fra.me.line = 2338;
   fra.me.meth = LOCATE_NEW_APlusMethid_parser___parser_prod___APlusMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2324 */
+  /* parser/parser_prod.nit:2338 */
   fra.me.REG[0] = NEW_parser___parser_nodes___APlusMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___APlusMethid(fra.me.REG[0]);
   parser___parser_prod___APlusMethid___empty_init(fra.me.REG[0], init_table);
@@ -52691,7 +50716,7 @@ val_t NEW_APlusMethid_parser___parser_prod___APlusMethid___init_aplusmethid(val_
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2326;
+  fra.me.line = 2340;
   fra.me.meth = LOCATE_NEW_APlusMethid_parser___parser_prod___APlusMethid___init_aplusmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -52699,7 +50724,7 @@ val_t NEW_APlusMethid_parser___parser_prod___APlusMethid___init_aplusmethid(val_
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:2326 */
+  /* parser/parser_prod.nit:2340 */
   fra.me.REG[1] = NEW_parser___parser_nodes___APlusMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___APlusMethid(fra.me.REG[1]);
   parser___parser_prod___APlusMethid___init_aplusmethid(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -52707,37 +50732,37 @@ val_t NEW_APlusMethid_parser___parser_prod___APlusMethid___init_aplusmethid(val_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_APlusMethid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_APlusMethid_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_APlusMethid_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___APlusMethid();
-  INIT_ATTRIBUTES__parser___parser_nodes___APlusMethid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___APlusMethid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___APlusMethid();
+  INIT_ATTRIBUTES__parser___parser_nodes___APlusMethid(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___APlusMethid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AMinusMethid[79] = {
-  {(bigint) 3367 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AMinusMethid[81] = {
+  {(bigint) 3435 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AMinusMethid" /* 2: Class Name */},
   {(bigint) 3 /* 3: AMinusMethid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AMinusMethid < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AMinusMethid < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AMinusMethid < Prod: superclass typecheck marker */},
+  {(bigint) 2843 /* 6: AMinusMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 3435 /* 7: AMinusMethid < AMinusMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AMinusMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 7: AMinusMethid < AMethid: superclass typecheck marker */},
-  {(bigint) 3367 /* 8: AMinusMethid < AMinusMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52747,7 +50772,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AMinusMethid[79] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AMinusMethid < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AMinusMethid < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -52763,6 +50788,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AMinusMethid[79] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -52789,24 +50816,23 @@ const classtable_elt_t VFT_parser___parser_nodes___AMinusMethid[79] = {
   {(bigint) parser___parser_prod___AMinusMethid___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AMinusMethid___visit_all},
-  {(bigint) 1 /* 60: AMinusMethid < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AMinusMethid < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AMinusMethid < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AMinusMethid < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___AMethid___name},
-  {(bigint) 3 /* 74: AMinusMethid < AMethid: superclass init_table position */},
+  {(bigint) 0 /* 76: AMinusMethid < AMethid: superclass init_table position */},
   {(bigint) parser___parser_prod___AMinusMethid___empty_init},
   {(bigint) parser___parser_prod___AMinusMethid___init_aminusmethid},
-  {(bigint) 4 /* 77: AMinusMethid < AMinusMethid: superclass init_table position */},
+  {(bigint) 4 /* 79: AMinusMethid < AMinusMethid: superclass init_table position */},
   {(bigint) parser___parser_nodes___AMinusMethid___n_minus},
 };
 /* 0: Pointer to the classtable */
@@ -52864,13 +50890,13 @@ val_t NEW_AMinusMethid_parser___parser_prod___AMinusMethid___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2355;
+  fra.me.line = 2369;
   fra.me.meth = LOCATE_NEW_AMinusMethid_parser___parser_prod___AMinusMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2355 */
+  /* parser/parser_prod.nit:2369 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AMinusMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___AMinusMethid(fra.me.REG[0]);
   parser___parser_prod___AMinusMethid___empty_init(fra.me.REG[0], init_table);
@@ -52884,7 +50910,7 @@ val_t NEW_AMinusMethid_parser___parser_prod___AMinusMethid___init_aminusmethid(v
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2357;
+  fra.me.line = 2371;
   fra.me.meth = LOCATE_NEW_AMinusMethid_parser___parser_prod___AMinusMethid___init_aminusmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -52892,7 +50918,7 @@ val_t NEW_AMinusMethid_parser___parser_prod___AMinusMethid___init_aminusmethid(v
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:2357 */
+  /* parser/parser_prod.nit:2371 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AMinusMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___AMinusMethid(fra.me.REG[1]);
   parser___parser_prod___AMinusMethid___init_aminusmethid(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -52900,37 +50926,37 @@ val_t NEW_AMinusMethid_parser___parser_prod___AMinusMethid___init_aminusmethid(v
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AMinusMethid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AMinusMethid_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AMinusMethid_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AMinusMethid();
-  INIT_ATTRIBUTES__parser___parser_nodes___AMinusMethid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AMinusMethid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AMinusMethid();
+  INIT_ATTRIBUTES__parser___parser_nodes___AMinusMethid(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AMinusMethid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AStarMethid[79] = {
-  {(bigint) 3291 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AStarMethid[81] = {
+  {(bigint) 3355 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AStarMethid" /* 2: Class Name */},
   {(bigint) 3 /* 3: AStarMethid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AStarMethid < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AStarMethid < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AStarMethid < Prod: superclass typecheck marker */},
+  {(bigint) 2843 /* 6: AStarMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 3355 /* 7: AStarMethid < AStarMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AStarMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 7: AStarMethid < AMethid: superclass typecheck marker */},
-  {(bigint) 3291 /* 8: AStarMethid < AStarMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52940,7 +50966,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AStarMethid[79] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AStarMethid < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AStarMethid < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -52956,6 +50982,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AStarMethid[79] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -52982,24 +51010,23 @@ const classtable_elt_t VFT_parser___parser_nodes___AStarMethid[79] = {
   {(bigint) parser___parser_prod___AStarMethid___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AStarMethid___visit_all},
-  {(bigint) 1 /* 60: AStarMethid < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AStarMethid < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AStarMethid < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AStarMethid < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___AMethid___name},
-  {(bigint) 3 /* 74: AStarMethid < AMethid: superclass init_table position */},
+  {(bigint) 0 /* 76: AStarMethid < AMethid: superclass init_table position */},
   {(bigint) parser___parser_prod___AStarMethid___empty_init},
   {(bigint) parser___parser_prod___AStarMethid___init_astarmethid},
-  {(bigint) 4 /* 77: AStarMethid < AStarMethid: superclass init_table position */},
+  {(bigint) 4 /* 79: AStarMethid < AStarMethid: superclass init_table position */},
   {(bigint) parser___parser_nodes___AStarMethid___n_star},
 };
 /* 0: Pointer to the classtable */
@@ -53057,13 +51084,13 @@ val_t NEW_AStarMethid_parser___parser_prod___AStarMethid___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2386;
+  fra.me.line = 2400;
   fra.me.meth = LOCATE_NEW_AStarMethid_parser___parser_prod___AStarMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2386 */
+  /* parser/parser_prod.nit:2400 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AStarMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___AStarMethid(fra.me.REG[0]);
   parser___parser_prod___AStarMethid___empty_init(fra.me.REG[0], init_table);
@@ -53077,7 +51104,7 @@ val_t NEW_AStarMethid_parser___parser_prod___AStarMethid___init_astarmethid(val_
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2388;
+  fra.me.line = 2402;
   fra.me.meth = LOCATE_NEW_AStarMethid_parser___parser_prod___AStarMethid___init_astarmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -53085,7 +51112,7 @@ val_t NEW_AStarMethid_parser___parser_prod___AStarMethid___init_astarmethid(val_
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:2388 */
+  /* parser/parser_prod.nit:2402 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AStarMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___AStarMethid(fra.me.REG[1]);
   parser___parser_prod___AStarMethid___init_astarmethid(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -53093,37 +51120,37 @@ val_t NEW_AStarMethid_parser___parser_prod___AStarMethid___init_astarmethid(val_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AStarMethid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AStarMethid_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AStarMethid_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AStarMethid();
-  INIT_ATTRIBUTES__parser___parser_nodes___AStarMethid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AStarMethid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AStarMethid();
+  INIT_ATTRIBUTES__parser___parser_nodes___AStarMethid(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AStarMethid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ASlashMethid[79] = {
-  {(bigint) 3295 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ASlashMethid[81] = {
+  {(bigint) 3359 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ASlashMethid" /* 2: Class Name */},
   {(bigint) 3 /* 3: ASlashMethid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ASlashMethid < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ASlashMethid < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ASlashMethid < Prod: superclass typecheck marker */},
+  {(bigint) 2843 /* 6: ASlashMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 3359 /* 7: ASlashMethid < ASlashMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ASlashMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 7: ASlashMethid < AMethid: superclass typecheck marker */},
-  {(bigint) 3295 /* 8: ASlashMethid < ASlashMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53133,7 +51160,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ASlashMethid[79] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ASlashMethid < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ASlashMethid < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -53149,6 +51176,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ASlashMethid[79] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -53175,24 +51204,23 @@ const classtable_elt_t VFT_parser___parser_nodes___ASlashMethid[79] = {
   {(bigint) parser___parser_prod___ASlashMethid___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ASlashMethid___visit_all},
-  {(bigint) 1 /* 60: ASlashMethid < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: ASlashMethid < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ASlashMethid < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: ASlashMethid < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___AMethid___name},
-  {(bigint) 3 /* 74: ASlashMethid < AMethid: superclass init_table position */},
+  {(bigint) 0 /* 76: ASlashMethid < AMethid: superclass init_table position */},
   {(bigint) parser___parser_prod___ASlashMethid___empty_init},
   {(bigint) parser___parser_prod___ASlashMethid___init_aslashmethid},
-  {(bigint) 4 /* 77: ASlashMethid < ASlashMethid: superclass init_table position */},
+  {(bigint) 4 /* 79: ASlashMethid < ASlashMethid: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASlashMethid___n_slash},
 };
 /* 0: Pointer to the classtable */
@@ -53250,13 +51278,13 @@ val_t NEW_ASlashMethid_parser___parser_prod___ASlashMethid___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2417;
+  fra.me.line = 2431;
   fra.me.meth = LOCATE_NEW_ASlashMethid_parser___parser_prod___ASlashMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2417 */
+  /* parser/parser_prod.nit:2431 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ASlashMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___ASlashMethid(fra.me.REG[0]);
   parser___parser_prod___ASlashMethid___empty_init(fra.me.REG[0], init_table);
@@ -53270,7 +51298,7 @@ val_t NEW_ASlashMethid_parser___parser_prod___ASlashMethid___init_aslashmethid(v
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2419;
+  fra.me.line = 2433;
   fra.me.meth = LOCATE_NEW_ASlashMethid_parser___parser_prod___ASlashMethid___init_aslashmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -53278,7 +51306,7 @@ val_t NEW_ASlashMethid_parser___parser_prod___ASlashMethid___init_aslashmethid(v
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:2419 */
+  /* parser/parser_prod.nit:2433 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ASlashMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___ASlashMethid(fra.me.REG[1]);
   parser___parser_prod___ASlashMethid___init_aslashmethid(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -53286,37 +51314,37 @@ val_t NEW_ASlashMethid_parser___parser_prod___ASlashMethid___init_aslashmethid(v
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_ASlashMethid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ASlashMethid_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ASlashMethid_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ASlashMethid();
-  INIT_ATTRIBUTES__parser___parser_nodes___ASlashMethid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ASlashMethid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ASlashMethid();
+  INIT_ATTRIBUTES__parser___parser_nodes___ASlashMethid(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ASlashMethid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___APercentMethid[79] = {
-  {(bigint) 3351 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___APercentMethid[81] = {
+  {(bigint) 3415 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "APercentMethid" /* 2: Class Name */},
   {(bigint) 3 /* 3: APercentMethid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: APercentMethid < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: APercentMethid < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: APercentMethid < Prod: superclass typecheck marker */},
+  {(bigint) 2843 /* 6: APercentMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 3415 /* 7: APercentMethid < APercentMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: APercentMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 7: APercentMethid < AMethid: superclass typecheck marker */},
-  {(bigint) 3351 /* 8: APercentMethid < APercentMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53326,7 +51354,7 @@ const classtable_elt_t VFT_parser___parser_nodes___APercentMethid[79] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: APercentMethid < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: APercentMethid < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -53342,6 +51370,8 @@ const classtable_elt_t VFT_parser___parser_nodes___APercentMethid[79] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -53368,24 +51398,23 @@ const classtable_elt_t VFT_parser___parser_nodes___APercentMethid[79] = {
   {(bigint) parser___parser_prod___APercentMethid___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___APercentMethid___visit_all},
-  {(bigint) 1 /* 60: APercentMethid < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: APercentMethid < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: APercentMethid < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: APercentMethid < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___AMethid___name},
-  {(bigint) 3 /* 74: APercentMethid < AMethid: superclass init_table position */},
+  {(bigint) 0 /* 76: APercentMethid < AMethid: superclass init_table position */},
   {(bigint) parser___parser_prod___APercentMethid___empty_init},
   {(bigint) parser___parser_prod___APercentMethid___init_apercentmethid},
-  {(bigint) 4 /* 77: APercentMethid < APercentMethid: superclass init_table position */},
+  {(bigint) 4 /* 79: APercentMethid < APercentMethid: superclass init_table position */},
   {(bigint) parser___parser_nodes___APercentMethid___n_percent},
 };
 /* 0: Pointer to the classtable */
@@ -53443,13 +51472,13 @@ val_t NEW_APercentMethid_parser___parser_prod___APercentMethid___empty_init(void
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2448;
+  fra.me.line = 2462;
   fra.me.meth = LOCATE_NEW_APercentMethid_parser___parser_prod___APercentMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2448 */
+  /* parser/parser_prod.nit:2462 */
   fra.me.REG[0] = NEW_parser___parser_nodes___APercentMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___APercentMethid(fra.me.REG[0]);
   parser___parser_prod___APercentMethid___empty_init(fra.me.REG[0], init_table);
@@ -53463,7 +51492,7 @@ val_t NEW_APercentMethid_parser___parser_prod___APercentMethid___init_apercentme
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2450;
+  fra.me.line = 2464;
   fra.me.meth = LOCATE_NEW_APercentMethid_parser___parser_prod___APercentMethid___init_apercentmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -53471,7 +51500,7 @@ val_t NEW_APercentMethid_parser___parser_prod___APercentMethid___init_apercentme
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:2450 */
+  /* parser/parser_prod.nit:2464 */
   fra.me.REG[1] = NEW_parser___parser_nodes___APercentMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___APercentMethid(fra.me.REG[1]);
   parser___parser_prod___APercentMethid___init_apercentmethid(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -53479,37 +51508,37 @@ val_t NEW_APercentMethid_parser___parser_prod___APercentMethid___init_apercentme
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_APercentMethid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_APercentMethid_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_APercentMethid_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___APercentMethid();
-  INIT_ATTRIBUTES__parser___parser_nodes___APercentMethid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___APercentMethid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___APercentMethid();
+  INIT_ATTRIBUTES__parser___parser_nodes___APercentMethid(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___APercentMethid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AEqMethid[79] = {
-  {(bigint) 3447 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AEqMethid[81] = {
+  {(bigint) 3519 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AEqMethid" /* 2: Class Name */},
   {(bigint) 3 /* 3: AEqMethid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AEqMethid < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AEqMethid < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AEqMethid < Prod: superclass typecheck marker */},
+  {(bigint) 2843 /* 6: AEqMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 3519 /* 7: AEqMethid < AEqMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AEqMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 7: AEqMethid < AMethid: superclass typecheck marker */},
-  {(bigint) 3447 /* 8: AEqMethid < AEqMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53519,7 +51548,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AEqMethid[79] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AEqMethid < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AEqMethid < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -53535,6 +51564,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AEqMethid[79] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -53561,24 +51592,23 @@ const classtable_elt_t VFT_parser___parser_nodes___AEqMethid[79] = {
   {(bigint) parser___parser_prod___AEqMethid___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AEqMethid___visit_all},
-  {(bigint) 1 /* 60: AEqMethid < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AEqMethid < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AEqMethid < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AEqMethid < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___AMethid___name},
-  {(bigint) 3 /* 74: AEqMethid < AMethid: superclass init_table position */},
+  {(bigint) 0 /* 76: AEqMethid < AMethid: superclass init_table position */},
   {(bigint) parser___parser_prod___AEqMethid___empty_init},
   {(bigint) parser___parser_prod___AEqMethid___init_aeqmethid},
-  {(bigint) 4 /* 77: AEqMethid < AEqMethid: superclass init_table position */},
+  {(bigint) 4 /* 79: AEqMethid < AEqMethid: superclass init_table position */},
   {(bigint) parser___parser_nodes___AEqMethid___n_eq},
 };
 /* 0: Pointer to the classtable */
@@ -53636,13 +51666,13 @@ val_t NEW_AEqMethid_parser___parser_prod___AEqMethid___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2479;
+  fra.me.line = 2493;
   fra.me.meth = LOCATE_NEW_AEqMethid_parser___parser_prod___AEqMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2479 */
+  /* parser/parser_prod.nit:2493 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AEqMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___AEqMethid(fra.me.REG[0]);
   parser___parser_prod___AEqMethid___empty_init(fra.me.REG[0], init_table);
@@ -53656,7 +51686,7 @@ val_t NEW_AEqMethid_parser___parser_prod___AEqMethid___init_aeqmethid(val_t p0){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2481;
+  fra.me.line = 2495;
   fra.me.meth = LOCATE_NEW_AEqMethid_parser___parser_prod___AEqMethid___init_aeqmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -53664,7 +51694,7 @@ val_t NEW_AEqMethid_parser___parser_prod___AEqMethid___init_aeqmethid(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:2481 */
+  /* parser/parser_prod.nit:2495 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AEqMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___AEqMethid(fra.me.REG[1]);
   parser___parser_prod___AEqMethid___init_aeqmethid(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -53672,37 +51702,37 @@ val_t NEW_AEqMethid_parser___parser_prod___AEqMethid___init_aeqmethid(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AEqMethid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AEqMethid_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AEqMethid_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AEqMethid();
-  INIT_ATTRIBUTES__parser___parser_nodes___AEqMethid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AEqMethid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AEqMethid();
+  INIT_ATTRIBUTES__parser___parser_nodes___AEqMethid(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AEqMethid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ANeMethid[79] = {
-  {(bigint) 3363 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ANeMethid[81] = {
+  {(bigint) 3431 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ANeMethid" /* 2: Class Name */},
   {(bigint) 3 /* 3: ANeMethid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ANeMethid < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ANeMethid < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ANeMethid < Prod: superclass typecheck marker */},
+  {(bigint) 2843 /* 6: ANeMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 3431 /* 7: ANeMethid < ANeMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ANeMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 7: ANeMethid < AMethid: superclass typecheck marker */},
-  {(bigint) 3363 /* 8: ANeMethid < ANeMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53712,7 +51742,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ANeMethid[79] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ANeMethid < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ANeMethid < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -53728,6 +51758,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ANeMethid[79] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -53754,24 +51786,23 @@ const classtable_elt_t VFT_parser___parser_nodes___ANeMethid[79] = {
   {(bigint) parser___parser_prod___ANeMethid___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ANeMethid___visit_all},
-  {(bigint) 1 /* 60: ANeMethid < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: ANeMethid < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ANeMethid < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: ANeMethid < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___AMethid___name},
-  {(bigint) 3 /* 74: ANeMethid < AMethid: superclass init_table position */},
+  {(bigint) 0 /* 76: ANeMethid < AMethid: superclass init_table position */},
   {(bigint) parser___parser_prod___ANeMethid___empty_init},
   {(bigint) parser___parser_prod___ANeMethid___init_anemethid},
-  {(bigint) 4 /* 77: ANeMethid < ANeMethid: superclass init_table position */},
+  {(bigint) 4 /* 79: ANeMethid < ANeMethid: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANeMethid___n_ne},
 };
 /* 0: Pointer to the classtable */
@@ -53829,13 +51860,13 @@ val_t NEW_ANeMethid_parser___parser_prod___ANeMethid___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2510;
+  fra.me.line = 2524;
   fra.me.meth = LOCATE_NEW_ANeMethid_parser___parser_prod___ANeMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2510 */
+  /* parser/parser_prod.nit:2524 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ANeMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___ANeMethid(fra.me.REG[0]);
   parser___parser_prod___ANeMethid___empty_init(fra.me.REG[0], init_table);
@@ -53849,7 +51880,7 @@ val_t NEW_ANeMethid_parser___parser_prod___ANeMethid___init_anemethid(val_t p0){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2512;
+  fra.me.line = 2526;
   fra.me.meth = LOCATE_NEW_ANeMethid_parser___parser_prod___ANeMethid___init_anemethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -53857,7 +51888,7 @@ val_t NEW_ANeMethid_parser___parser_prod___ANeMethid___init_anemethid(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:2512 */
+  /* parser/parser_prod.nit:2526 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ANeMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___ANeMethid(fra.me.REG[1]);
   parser___parser_prod___ANeMethid___init_anemethid(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -53865,37 +51896,37 @@ val_t NEW_ANeMethid_parser___parser_prod___ANeMethid___init_anemethid(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_ANeMethid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ANeMethid_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ANeMethid_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ANeMethid();
-  INIT_ATTRIBUTES__parser___parser_nodes___ANeMethid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ANeMethid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ANeMethid();
+  INIT_ATTRIBUTES__parser___parser_nodes___ANeMethid(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ANeMethid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ALeMethid[79] = {
-  {(bigint) 3391 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ALeMethid[81] = {
+  {(bigint) 3463 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ALeMethid" /* 2: Class Name */},
   {(bigint) 3 /* 3: ALeMethid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ALeMethid < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ALeMethid < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ALeMethid < Prod: superclass typecheck marker */},
+  {(bigint) 2843 /* 6: ALeMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 3463 /* 7: ALeMethid < ALeMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ALeMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 7: ALeMethid < AMethid: superclass typecheck marker */},
-  {(bigint) 3391 /* 8: ALeMethid < ALeMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53905,7 +51936,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ALeMethid[79] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ALeMethid < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ALeMethid < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -53921,6 +51952,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ALeMethid[79] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -53947,24 +51980,23 @@ const classtable_elt_t VFT_parser___parser_nodes___ALeMethid[79] = {
   {(bigint) parser___parser_prod___ALeMethid___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ALeMethid___visit_all},
-  {(bigint) 1 /* 60: ALeMethid < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: ALeMethid < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ALeMethid < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: ALeMethid < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___AMethid___name},
-  {(bigint) 3 /* 74: ALeMethid < AMethid: superclass init_table position */},
+  {(bigint) 0 /* 76: ALeMethid < AMethid: superclass init_table position */},
   {(bigint) parser___parser_prod___ALeMethid___empty_init},
   {(bigint) parser___parser_prod___ALeMethid___init_alemethid},
-  {(bigint) 4 /* 77: ALeMethid < ALeMethid: superclass init_table position */},
+  {(bigint) 4 /* 79: ALeMethid < ALeMethid: superclass init_table position */},
   {(bigint) parser___parser_nodes___ALeMethid___n_le},
 };
 /* 0: Pointer to the classtable */
@@ -54022,13 +52054,13 @@ val_t NEW_ALeMethid_parser___parser_prod___ALeMethid___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2541;
+  fra.me.line = 2555;
   fra.me.meth = LOCATE_NEW_ALeMethid_parser___parser_prod___ALeMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2541 */
+  /* parser/parser_prod.nit:2555 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ALeMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___ALeMethid(fra.me.REG[0]);
   parser___parser_prod___ALeMethid___empty_init(fra.me.REG[0], init_table);
@@ -54042,7 +52074,7 @@ val_t NEW_ALeMethid_parser___parser_prod___ALeMethid___init_alemethid(val_t p0){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2543;
+  fra.me.line = 2557;
   fra.me.meth = LOCATE_NEW_ALeMethid_parser___parser_prod___ALeMethid___init_alemethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -54050,7 +52082,7 @@ val_t NEW_ALeMethid_parser___parser_prod___ALeMethid___init_alemethid(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:2543 */
+  /* parser/parser_prod.nit:2557 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ALeMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___ALeMethid(fra.me.REG[1]);
   parser___parser_prod___ALeMethid___init_alemethid(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -54058,37 +52090,37 @@ val_t NEW_ALeMethid_parser___parser_prod___ALeMethid___init_alemethid(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_ALeMethid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ALeMethid_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ALeMethid_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ALeMethid();
-  INIT_ATTRIBUTES__parser___parser_nodes___ALeMethid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ALeMethid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ALeMethid();
+  INIT_ATTRIBUTES__parser___parser_nodes___ALeMethid(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ALeMethid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AGeMethid[79] = {
-  {(bigint) 3427 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AGeMethid[81] = {
+  {(bigint) 3499 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AGeMethid" /* 2: Class Name */},
   {(bigint) 3 /* 3: AGeMethid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AGeMethid < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AGeMethid < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AGeMethid < Prod: superclass typecheck marker */},
+  {(bigint) 2843 /* 6: AGeMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 3499 /* 7: AGeMethid < AGeMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AGeMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 7: AGeMethid < AMethid: superclass typecheck marker */},
-  {(bigint) 3427 /* 8: AGeMethid < AGeMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54098,7 +52130,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AGeMethid[79] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AGeMethid < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AGeMethid < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -54114,6 +52146,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AGeMethid[79] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -54140,24 +52174,23 @@ const classtable_elt_t VFT_parser___parser_nodes___AGeMethid[79] = {
   {(bigint) parser___parser_prod___AGeMethid___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AGeMethid___visit_all},
-  {(bigint) 1 /* 60: AGeMethid < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AGeMethid < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AGeMethid < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AGeMethid < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___AMethid___name},
-  {(bigint) 3 /* 74: AGeMethid < AMethid: superclass init_table position */},
+  {(bigint) 0 /* 76: AGeMethid < AMethid: superclass init_table position */},
   {(bigint) parser___parser_prod___AGeMethid___empty_init},
   {(bigint) parser___parser_prod___AGeMethid___init_agemethid},
-  {(bigint) 4 /* 77: AGeMethid < AGeMethid: superclass init_table position */},
+  {(bigint) 4 /* 79: AGeMethid < AGeMethid: superclass init_table position */},
   {(bigint) parser___parser_nodes___AGeMethid___n_ge},
 };
 /* 0: Pointer to the classtable */
@@ -54215,13 +52248,13 @@ val_t NEW_AGeMethid_parser___parser_prod___AGeMethid___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2572;
+  fra.me.line = 2586;
   fra.me.meth = LOCATE_NEW_AGeMethid_parser___parser_prod___AGeMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2572 */
+  /* parser/parser_prod.nit:2586 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AGeMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___AGeMethid(fra.me.REG[0]);
   parser___parser_prod___AGeMethid___empty_init(fra.me.REG[0], init_table);
@@ -54235,7 +52268,7 @@ val_t NEW_AGeMethid_parser___parser_prod___AGeMethid___init_agemethid(val_t p0){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2574;
+  fra.me.line = 2588;
   fra.me.meth = LOCATE_NEW_AGeMethid_parser___parser_prod___AGeMethid___init_agemethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -54243,7 +52276,7 @@ val_t NEW_AGeMethid_parser___parser_prod___AGeMethid___init_agemethid(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:2574 */
+  /* parser/parser_prod.nit:2588 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AGeMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___AGeMethid(fra.me.REG[1]);
   parser___parser_prod___AGeMethid___init_agemethid(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -54251,37 +52284,37 @@ val_t NEW_AGeMethid_parser___parser_prod___AGeMethid___init_agemethid(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AGeMethid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AGeMethid_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AGeMethid_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AGeMethid();
-  INIT_ATTRIBUTES__parser___parser_nodes___AGeMethid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AGeMethid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AGeMethid();
+  INIT_ATTRIBUTES__parser___parser_nodes___AGeMethid(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AGeMethid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ALtMethid[79] = {
-  {(bigint) 3383 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ALtMethid[81] = {
+  {(bigint) 3451 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ALtMethid" /* 2: Class Name */},
   {(bigint) 3 /* 3: ALtMethid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ALtMethid < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ALtMethid < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ALtMethid < Prod: superclass typecheck marker */},
+  {(bigint) 2843 /* 6: ALtMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 3451 /* 7: ALtMethid < ALtMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ALtMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 7: ALtMethid < AMethid: superclass typecheck marker */},
-  {(bigint) 3383 /* 8: ALtMethid < ALtMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54291,7 +52324,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ALtMethid[79] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ALtMethid < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ALtMethid < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -54307,6 +52340,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ALtMethid[79] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -54333,24 +52368,23 @@ const classtable_elt_t VFT_parser___parser_nodes___ALtMethid[79] = {
   {(bigint) parser___parser_prod___ALtMethid___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ALtMethid___visit_all},
-  {(bigint) 1 /* 60: ALtMethid < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: ALtMethid < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ALtMethid < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: ALtMethid < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___AMethid___name},
-  {(bigint) 3 /* 74: ALtMethid < AMethid: superclass init_table position */},
+  {(bigint) 0 /* 76: ALtMethid < AMethid: superclass init_table position */},
   {(bigint) parser___parser_prod___ALtMethid___empty_init},
   {(bigint) parser___parser_prod___ALtMethid___init_altmethid},
-  {(bigint) 4 /* 77: ALtMethid < ALtMethid: superclass init_table position */},
+  {(bigint) 4 /* 79: ALtMethid < ALtMethid: superclass init_table position */},
   {(bigint) parser___parser_nodes___ALtMethid___n_lt},
 };
 /* 0: Pointer to the classtable */
@@ -54408,13 +52442,13 @@ val_t NEW_ALtMethid_parser___parser_prod___ALtMethid___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2603;
+  fra.me.line = 2617;
   fra.me.meth = LOCATE_NEW_ALtMethid_parser___parser_prod___ALtMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2603 */
+  /* parser/parser_prod.nit:2617 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ALtMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___ALtMethid(fra.me.REG[0]);
   parser___parser_prod___ALtMethid___empty_init(fra.me.REG[0], init_table);
@@ -54428,7 +52462,7 @@ val_t NEW_ALtMethid_parser___parser_prod___ALtMethid___init_altmethid(val_t p0){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2605;
+  fra.me.line = 2619;
   fra.me.meth = LOCATE_NEW_ALtMethid_parser___parser_prod___ALtMethid___init_altmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -54436,7 +52470,7 @@ val_t NEW_ALtMethid_parser___parser_prod___ALtMethid___init_altmethid(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:2605 */
+  /* parser/parser_prod.nit:2619 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ALtMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___ALtMethid(fra.me.REG[1]);
   parser___parser_prod___ALtMethid___init_altmethid(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -54444,37 +52478,37 @@ val_t NEW_ALtMethid_parser___parser_prod___ALtMethid___init_altmethid(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_ALtMethid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ALtMethid_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ALtMethid_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ALtMethid();
-  INIT_ATTRIBUTES__parser___parser_nodes___ALtMethid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ALtMethid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ALtMethid();
+  INIT_ATTRIBUTES__parser___parser_nodes___ALtMethid(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ALtMethid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AGtMethid[79] = {
-  {(bigint) 3419 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AGtMethid[81] = {
+  {(bigint) 3491 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AGtMethid" /* 2: Class Name */},
   {(bigint) 3 /* 3: AGtMethid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AGtMethid < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AGtMethid < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AGtMethid < Prod: superclass typecheck marker */},
+  {(bigint) 2843 /* 6: AGtMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 3491 /* 7: AGtMethid < AGtMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AGtMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 7: AGtMethid < AMethid: superclass typecheck marker */},
-  {(bigint) 3419 /* 8: AGtMethid < AGtMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54484,7 +52518,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AGtMethid[79] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AGtMethid < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AGtMethid < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -54500,6 +52534,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AGtMethid[79] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -54526,24 +52562,23 @@ const classtable_elt_t VFT_parser___parser_nodes___AGtMethid[79] = {
   {(bigint) parser___parser_prod___AGtMethid___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AGtMethid___visit_all},
-  {(bigint) 1 /* 60: AGtMethid < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AGtMethid < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AGtMethid < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AGtMethid < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___AMethid___name},
-  {(bigint) 3 /* 74: AGtMethid < AMethid: superclass init_table position */},
+  {(bigint) 0 /* 76: AGtMethid < AMethid: superclass init_table position */},
   {(bigint) parser___parser_prod___AGtMethid___empty_init},
   {(bigint) parser___parser_prod___AGtMethid___init_agtmethid},
-  {(bigint) 4 /* 77: AGtMethid < AGtMethid: superclass init_table position */},
+  {(bigint) 4 /* 79: AGtMethid < AGtMethid: superclass init_table position */},
   {(bigint) parser___parser_nodes___AGtMethid___n_gt},
 };
 /* 0: Pointer to the classtable */
@@ -54601,13 +52636,13 @@ val_t NEW_AGtMethid_parser___parser_prod___AGtMethid___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2634;
+  fra.me.line = 2648;
   fra.me.meth = LOCATE_NEW_AGtMethid_parser___parser_prod___AGtMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2634 */
+  /* parser/parser_prod.nit:2648 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AGtMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___AGtMethid(fra.me.REG[0]);
   parser___parser_prod___AGtMethid___empty_init(fra.me.REG[0], init_table);
@@ -54621,7 +52656,7 @@ val_t NEW_AGtMethid_parser___parser_prod___AGtMethid___init_agtmethid(val_t p0){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2636;
+  fra.me.line = 2650;
   fra.me.meth = LOCATE_NEW_AGtMethid_parser___parser_prod___AGtMethid___init_agtmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -54629,7 +52664,7 @@ val_t NEW_AGtMethid_parser___parser_prod___AGtMethid___init_agtmethid(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:2636 */
+  /* parser/parser_prod.nit:2650 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AGtMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___AGtMethid(fra.me.REG[1]);
   parser___parser_prod___AGtMethid___init_agtmethid(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -54637,37 +52672,37 @@ val_t NEW_AGtMethid_parser___parser_prod___AGtMethid___init_agtmethid(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AGtMethid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AGtMethid_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AGtMethid_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AGtMethid();
-  INIT_ATTRIBUTES__parser___parser_nodes___AGtMethid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AGtMethid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AGtMethid();
+  INIT_ATTRIBUTES__parser___parser_nodes___AGtMethid(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AGtMethid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ALlMethid[80] = {
-  {(bigint) 3387 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ALlMethid[82] = {
+  {(bigint) 3455 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ALlMethid" /* 2: Class Name */},
   {(bigint) 3 /* 3: ALlMethid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ALlMethid < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ALlMethid < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ALlMethid < Prod: superclass typecheck marker */},
+  {(bigint) 2843 /* 6: ALlMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 3455 /* 7: ALlMethid < ALlMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ALlMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 7: ALlMethid < AMethid: superclass typecheck marker */},
-  {(bigint) 3387 /* 8: ALlMethid < ALlMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54677,7 +52712,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ALlMethid[80] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ALlMethid < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ALlMethid < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -54693,6 +52728,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ALlMethid[80] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -54719,24 +52756,23 @@ const classtable_elt_t VFT_parser___parser_nodes___ALlMethid[80] = {
   {(bigint) parser___parser_prod___ALlMethid___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ALlMethid___visit_all},
-  {(bigint) 1 /* 60: ALlMethid < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: ALlMethid < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ALlMethid < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: ALlMethid < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___AMethid___name},
-  {(bigint) 3 /* 74: ALlMethid < AMethid: superclass init_table position */},
+  {(bigint) 0 /* 76: ALlMethid < AMethid: superclass init_table position */},
   {(bigint) parser___parser_prod___ALlMethid___empty_init},
   {(bigint) parser___parser_prod___ALlMethid___init_allmethid},
-  {(bigint) 4 /* 77: ALlMethid < ALlMethid: superclass init_table position */},
+  {(bigint) 4 /* 79: ALlMethid < ALlMethid: superclass init_table position */},
   {(bigint) parser___parser_nodes___ALlMethid___n_ll},
   {(bigint) parser___parser_nodes___ALlMethid___n_ll__eq},
 };
@@ -54795,13 +52831,13 @@ val_t NEW_ALlMethid_parser___parser_prod___ALlMethid___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2665;
+  fra.me.line = 2679;
   fra.me.meth = LOCATE_NEW_ALlMethid_parser___parser_prod___ALlMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2665 */
+  /* parser/parser_prod.nit:2679 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ALlMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___ALlMethid(fra.me.REG[0]);
   parser___parser_prod___ALlMethid___empty_init(fra.me.REG[0], init_table);
@@ -54815,7 +52851,7 @@ val_t NEW_ALlMethid_parser___parser_prod___ALlMethid___init_allmethid(val_t p0){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2667;
+  fra.me.line = 2681;
   fra.me.meth = LOCATE_NEW_ALlMethid_parser___parser_prod___ALlMethid___init_allmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -54823,7 +52859,7 @@ val_t NEW_ALlMethid_parser___parser_prod___ALlMethid___init_allmethid(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:2667 */
+  /* parser/parser_prod.nit:2681 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ALlMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___ALlMethid(fra.me.REG[1]);
   parser___parser_prod___ALlMethid___init_allmethid(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -54831,37 +52867,37 @@ val_t NEW_ALlMethid_parser___parser_prod___ALlMethid___init_allmethid(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_ALlMethid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ALlMethid_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ALlMethid_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ALlMethid();
-  INIT_ATTRIBUTES__parser___parser_nodes___ALlMethid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ALlMethid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ALlMethid();
+  INIT_ATTRIBUTES__parser___parser_nodes___ALlMethid(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ALlMethid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AGgMethid[80] = {
-  {(bigint) 3423 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AGgMethid[82] = {
+  {(bigint) 3495 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AGgMethid" /* 2: Class Name */},
   {(bigint) 3 /* 3: AGgMethid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AGgMethid < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AGgMethid < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AGgMethid < Prod: superclass typecheck marker */},
+  {(bigint) 2843 /* 6: AGgMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 3495 /* 7: AGgMethid < AGgMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AGgMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 7: AGgMethid < AMethid: superclass typecheck marker */},
-  {(bigint) 3423 /* 8: AGgMethid < AGgMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54871,7 +52907,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AGgMethid[80] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AGgMethid < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AGgMethid < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -54887,6 +52923,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AGgMethid[80] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -54913,24 +52951,23 @@ const classtable_elt_t VFT_parser___parser_nodes___AGgMethid[80] = {
   {(bigint) parser___parser_prod___AGgMethid___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AGgMethid___visit_all},
-  {(bigint) 1 /* 60: AGgMethid < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AGgMethid < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AGgMethid < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AGgMethid < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___AMethid___name},
-  {(bigint) 3 /* 74: AGgMethid < AMethid: superclass init_table position */},
+  {(bigint) 0 /* 76: AGgMethid < AMethid: superclass init_table position */},
   {(bigint) parser___parser_prod___AGgMethid___empty_init},
   {(bigint) parser___parser_prod___AGgMethid___init_aggmethid},
-  {(bigint) 4 /* 77: AGgMethid < AGgMethid: superclass init_table position */},
+  {(bigint) 4 /* 79: AGgMethid < AGgMethid: superclass init_table position */},
   {(bigint) parser___parser_nodes___AGgMethid___n_gg},
   {(bigint) parser___parser_nodes___AGgMethid___n_gg__eq},
 };
@@ -54989,13 +53026,13 @@ val_t NEW_AGgMethid_parser___parser_prod___AGgMethid___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2696;
+  fra.me.line = 2710;
   fra.me.meth = LOCATE_NEW_AGgMethid_parser___parser_prod___AGgMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2696 */
+  /* parser/parser_prod.nit:2710 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AGgMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___AGgMethid(fra.me.REG[0]);
   parser___parser_prod___AGgMethid___empty_init(fra.me.REG[0], init_table);
@@ -55009,7 +53046,7 @@ val_t NEW_AGgMethid_parser___parser_prod___AGgMethid___init_aggmethid(val_t p0){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2698;
+  fra.me.line = 2712;
   fra.me.meth = LOCATE_NEW_AGgMethid_parser___parser_prod___AGgMethid___init_aggmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -55017,7 +53054,7 @@ val_t NEW_AGgMethid_parser___parser_prod___AGgMethid___init_aggmethid(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:2698 */
+  /* parser/parser_prod.nit:2712 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AGgMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___AGgMethid(fra.me.REG[1]);
   parser___parser_prod___AGgMethid___init_aggmethid(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -55025,37 +53062,37 @@ val_t NEW_AGgMethid_parser___parser_prod___AGgMethid___init_aggmethid(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AGgMethid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AGgMethid_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AGgMethid_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AGgMethid();
-  INIT_ATTRIBUTES__parser___parser_nodes___AGgMethid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AGgMethid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AGgMethid();
+  INIT_ATTRIBUTES__parser___parser_nodes___AGgMethid(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AGgMethid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ABraMethid[80] = {
-  {(bigint) 3479 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ABraMethid[82] = {
+  {(bigint) 3555 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ABraMethid" /* 2: Class Name */},
   {(bigint) 3 /* 3: ABraMethid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ABraMethid < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ABraMethid < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ABraMethid < Prod: superclass typecheck marker */},
+  {(bigint) 2843 /* 6: ABraMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 3555 /* 7: ABraMethid < ABraMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ABraMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 7: ABraMethid < AMethid: superclass typecheck marker */},
-  {(bigint) 3479 /* 8: ABraMethid < ABraMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55065,7 +53102,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ABraMethid[80] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ABraMethid < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ABraMethid < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -55081,6 +53118,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ABraMethid[80] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -55107,24 +53146,23 @@ const classtable_elt_t VFT_parser___parser_nodes___ABraMethid[80] = {
   {(bigint) parser___parser_prod___ABraMethid___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ABraMethid___visit_all},
-  {(bigint) 1 /* 60: ABraMethid < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: ABraMethid < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ABraMethid < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: ABraMethid < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___AMethid___name},
-  {(bigint) 3 /* 74: ABraMethid < AMethid: superclass init_table position */},
+  {(bigint) 0 /* 76: ABraMethid < AMethid: superclass init_table position */},
   {(bigint) parser___parser_prod___ABraMethid___empty_init},
   {(bigint) parser___parser_prod___ABraMethid___init_abramethid},
-  {(bigint) 4 /* 77: ABraMethid < ABraMethid: superclass init_table position */},
+  {(bigint) 4 /* 79: ABraMethid < ABraMethid: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABraMethid___n_obra},
   {(bigint) parser___parser_nodes___ABraMethid___n_cbra},
 };
@@ -55189,13 +53227,13 @@ val_t NEW_ABraMethid_parser___parser_prod___ABraMethid___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2727;
+  fra.me.line = 2741;
   fra.me.meth = LOCATE_NEW_ABraMethid_parser___parser_prod___ABraMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2727 */
+  /* parser/parser_prod.nit:2741 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ABraMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___ABraMethid(fra.me.REG[0]);
   parser___parser_prod___ABraMethid___empty_init(fra.me.REG[0], init_table);
@@ -55209,7 +53247,7 @@ val_t NEW_ABraMethid_parser___parser_prod___ABraMethid___init_abramethid(val_t p
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2729;
+  fra.me.line = 2743;
   fra.me.meth = LOCATE_NEW_ABraMethid_parser___parser_prod___ABraMethid___init_abramethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -55219,7 +53257,7 @@ val_t NEW_ABraMethid_parser___parser_prod___ABraMethid___init_abramethid(val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2729 */
+  /* parser/parser_prod.nit:2743 */
   fra.me.REG[2] = NEW_parser___parser_nodes___ABraMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___ABraMethid(fra.me.REG[2]);
   parser___parser_prod___ABraMethid___init_abramethid(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -55227,37 +53265,37 @@ val_t NEW_ABraMethid_parser___parser_prod___ABraMethid___init_abramethid(val_t p
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_ABraMethid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ABraMethid_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ABraMethid_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ABraMethid();
-  INIT_ATTRIBUTES__parser___parser_nodes___ABraMethid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ABraMethid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ABraMethid();
+  INIT_ATTRIBUTES__parser___parser_nodes___ABraMethid(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ABraMethid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AStarshipMethid[79] = {
-  {(bigint) 3287 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AStarshipMethid[81] = {
+  {(bigint) 3351 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AStarshipMethid" /* 2: Class Name */},
   {(bigint) 3 /* 3: AStarshipMethid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AStarshipMethid < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AStarshipMethid < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AStarshipMethid < Prod: superclass typecheck marker */},
+  {(bigint) 2843 /* 6: AStarshipMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 3351 /* 7: AStarshipMethid < AStarshipMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AStarshipMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 7: AStarshipMethid < AMethid: superclass typecheck marker */},
-  {(bigint) 3287 /* 8: AStarshipMethid < AStarshipMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55267,7 +53305,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AStarshipMethid[79] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AStarshipMethid < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AStarshipMethid < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -55283,6 +53321,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AStarshipMethid[79] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -55309,24 +53349,23 @@ const classtable_elt_t VFT_parser___parser_nodes___AStarshipMethid[79] = {
   {(bigint) parser___parser_prod___AStarshipMethid___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AStarshipMethid___visit_all},
-  {(bigint) 1 /* 60: AStarshipMethid < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AStarshipMethid < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AStarshipMethid < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AStarshipMethid < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___AMethid___name},
-  {(bigint) 3 /* 74: AStarshipMethid < AMethid: superclass init_table position */},
+  {(bigint) 0 /* 76: AStarshipMethid < AMethid: superclass init_table position */},
   {(bigint) parser___parser_prod___AStarshipMethid___empty_init},
   {(bigint) parser___parser_prod___AStarshipMethid___init_astarshipmethid},
-  {(bigint) 4 /* 77: AStarshipMethid < AStarshipMethid: superclass init_table position */},
+  {(bigint) 4 /* 79: AStarshipMethid < AStarshipMethid: superclass init_table position */},
   {(bigint) parser___parser_nodes___AStarshipMethid___n_starship},
 };
 /* 0: Pointer to the classtable */
@@ -55384,13 +53423,13 @@ val_t NEW_AStarshipMethid_parser___parser_prod___AStarshipMethid___empty_init(vo
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2772;
+  fra.me.line = 2786;
   fra.me.meth = LOCATE_NEW_AStarshipMethid_parser___parser_prod___AStarshipMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2772 */
+  /* parser/parser_prod.nit:2786 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AStarshipMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___AStarshipMethid(fra.me.REG[0]);
   parser___parser_prod___AStarshipMethid___empty_init(fra.me.REG[0], init_table);
@@ -55404,7 +53443,7 @@ val_t NEW_AStarshipMethid_parser___parser_prod___AStarshipMethid___init_astarshi
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2774;
+  fra.me.line = 2788;
   fra.me.meth = LOCATE_NEW_AStarshipMethid_parser___parser_prod___AStarshipMethid___init_astarshipmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -55412,7 +53451,7 @@ val_t NEW_AStarshipMethid_parser___parser_prod___AStarshipMethid___init_astarshi
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:2774 */
+  /* parser/parser_prod.nit:2788 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AStarshipMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___AStarshipMethid(fra.me.REG[1]);
   parser___parser_prod___AStarshipMethid___init_astarshipmethid(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -55420,37 +53459,37 @@ val_t NEW_AStarshipMethid_parser___parser_prod___AStarshipMethid___init_astarshi
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AStarshipMethid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AStarshipMethid_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AStarshipMethid_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AStarshipMethid();
-  INIT_ATTRIBUTES__parser___parser_nodes___AStarshipMethid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AStarshipMethid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AStarshipMethid();
+  INIT_ATTRIBUTES__parser___parser_nodes___AStarshipMethid(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AStarshipMethid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AAssignMethid[80] = {
-  {(bigint) 3499 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AAssignMethid[82] = {
+  {(bigint) 3579 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AAssignMethid" /* 2: Class Name */},
   {(bigint) 3 /* 3: AAssignMethid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AAssignMethid < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AAssignMethid < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AAssignMethid < Prod: superclass typecheck marker */},
+  {(bigint) 2843 /* 6: AAssignMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 3579 /* 7: AAssignMethid < AAssignMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AAssignMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 7: AAssignMethid < AMethid: superclass typecheck marker */},
-  {(bigint) 3499 /* 8: AAssignMethid < AAssignMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55460,7 +53499,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AAssignMethid[80] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AAssignMethid < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AAssignMethid < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -55476,6 +53515,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AAssignMethid[80] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -55502,24 +53543,23 @@ const classtable_elt_t VFT_parser___parser_nodes___AAssignMethid[80] = {
   {(bigint) parser___parser_prod___AAssignMethid___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AAssignMethid___visit_all},
-  {(bigint) 1 /* 60: AAssignMethid < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AAssignMethid < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AAssignMethid < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AAssignMethid < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___AMethid___name},
-  {(bigint) 3 /* 74: AAssignMethid < AMethid: superclass init_table position */},
+  {(bigint) 0 /* 76: AAssignMethid < AMethid: superclass init_table position */},
   {(bigint) parser___parser_prod___AAssignMethid___empty_init},
   {(bigint) parser___parser_prod___AAssignMethid___init_aassignmethid},
-  {(bigint) 4 /* 77: AAssignMethid < AAssignMethid: superclass init_table position */},
+  {(bigint) 4 /* 79: AAssignMethid < AAssignMethid: superclass init_table position */},
   {(bigint) parser___parser_nodes___AAssignMethid___n_id},
   {(bigint) parser___parser_nodes___AAssignMethid___n_assign},
 };
@@ -55584,13 +53624,13 @@ val_t NEW_AAssignMethid_parser___parser_prod___AAssignMethid___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2803;
+  fra.me.line = 2817;
   fra.me.meth = LOCATE_NEW_AAssignMethid_parser___parser_prod___AAssignMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2803 */
+  /* parser/parser_prod.nit:2817 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AAssignMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___AAssignMethid(fra.me.REG[0]);
   parser___parser_prod___AAssignMethid___empty_init(fra.me.REG[0], init_table);
@@ -55604,7 +53644,7 @@ val_t NEW_AAssignMethid_parser___parser_prod___AAssignMethid___init_aassignmethi
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2805;
+  fra.me.line = 2819;
   fra.me.meth = LOCATE_NEW_AAssignMethid_parser___parser_prod___AAssignMethid___init_aassignmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -55614,7 +53654,7 @@ val_t NEW_AAssignMethid_parser___parser_prod___AAssignMethid___init_aassignmethi
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2805 */
+  /* parser/parser_prod.nit:2819 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AAssignMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___AAssignMethid(fra.me.REG[2]);
   parser___parser_prod___AAssignMethid___init_aassignmethid(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -55622,37 +53662,37 @@ val_t NEW_AAssignMethid_parser___parser_prod___AAssignMethid___init_aassignmethi
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AAssignMethid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AAssignMethid_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AAssignMethid_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AAssignMethid();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAssignMethid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AAssignMethid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AAssignMethid();
+  INIT_ATTRIBUTES__parser___parser_nodes___AAssignMethid(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AAssignMethid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ABraassignMethid[81] = {
-  {(bigint) 3475 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ABraassignMethid[83] = {
+  {(bigint) 3551 /* 0: Identity */},
   {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ABraassignMethid" /* 2: Class Name */},
   {(bigint) 3 /* 3: ABraassignMethid < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ABraassignMethid < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ABraassignMethid < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ABraassignMethid < Prod: superclass typecheck marker */},
+  {(bigint) 2843 /* 6: ABraassignMethid < AMethid: superclass typecheck marker */},
+  {(bigint) 3551 /* 7: ABraassignMethid < ABraassignMethid: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ABraassignMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3083 /* 7: ABraassignMethid < AMethid: superclass typecheck marker */},
-  {(bigint) 3475 /* 8: ABraassignMethid < ABraassignMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55662,7 +53702,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ABraassignMethid[81] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ABraassignMethid < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ABraassignMethid < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -55678,6 +53718,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ABraassignMethid[81] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -55704,24 +53746,23 @@ const classtable_elt_t VFT_parser___parser_nodes___ABraassignMethid[81] = {
   {(bigint) parser___parser_prod___ABraassignMethid___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ABraassignMethid___visit_all},
-  {(bigint) 1 /* 60: ABraassignMethid < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: ABraassignMethid < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ABraassignMethid < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: ABraassignMethid < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
   {(bigint) syntax___mmbuilder___AMethid___name},
-  {(bigint) 3 /* 74: ABraassignMethid < AMethid: superclass init_table position */},
+  {(bigint) 0 /* 76: ABraassignMethid < AMethid: superclass init_table position */},
   {(bigint) parser___parser_prod___ABraassignMethid___empty_init},
   {(bigint) parser___parser_prod___ABraassignMethid___init_abraassignmethid},
-  {(bigint) 4 /* 77: ABraassignMethid < ABraassignMethid: superclass init_table position */},
+  {(bigint) 4 /* 79: ABraassignMethid < ABraassignMethid: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABraassignMethid___n_obra},
   {(bigint) parser___parser_nodes___ABraassignMethid___n_cbra},
   {(bigint) parser___parser_nodes___ABraassignMethid___n_assign},
@@ -55793,13 +53834,13 @@ val_t NEW_ABraassignMethid_parser___parser_prod___ABraassignMethid___empty_init(
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2848;
+  fra.me.line = 2862;
   fra.me.meth = LOCATE_NEW_ABraassignMethid_parser___parser_prod___ABraassignMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2848 */
+  /* parser/parser_prod.nit:2862 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ABraassignMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___ABraassignMethid(fra.me.REG[0]);
   parser___parser_prod___ABraassignMethid___empty_init(fra.me.REG[0], init_table);
@@ -55813,7 +53854,7 @@ val_t NEW_ABraassignMethid_parser___parser_prod___ABraassignMethid___init_abraas
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2850;
+  fra.me.line = 2864;
   fra.me.meth = LOCATE_NEW_ABraassignMethid_parser___parser_prod___ABraassignMethid___init_abraassignmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -55825,7 +53866,7 @@ val_t NEW_ABraassignMethid_parser___parser_prod___ABraassignMethid___init_abraas
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2850 */
+  /* parser/parser_prod.nit:2864 */
   fra.me.REG[3] = NEW_parser___parser_nodes___ABraassignMethid();
   INIT_ATTRIBUTES__parser___parser_nodes___ABraassignMethid(fra.me.REG[3]);
   parser___parser_prod___ABraassignMethid___init_abraassignmethid(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -55833,36 +53874,36 @@ val_t NEW_ABraassignMethid_parser___parser_prod___ABraassignMethid___init_abraas
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-val_t NEW_ABraassignMethid_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ABraassignMethid_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ABraassignMethid_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ABraassignMethid();
-  INIT_ATTRIBUTES__parser___parser_nodes___ABraassignMethid(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ABraassignMethid(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ABraassignMethid();
+  INIT_ATTRIBUTES__parser___parser_nodes___ABraassignMethid(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ABraassignMethid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ASignature[81] = {
-  {(bigint) 3055 /* 0: Identity */},
-  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+const classtable_elt_t VFT_parser___parser_nodes___ASignature[85] = {
+  {(bigint) 2815 /* 0: Identity */},
+  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ASignature" /* 2: Class Name */},
   {(bigint) 3 /* 3: ASignature < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ASignature < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ASignature < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ASignature < Prod: superclass typecheck marker */},
+  {(bigint) 2815 /* 6: ASignature < ASignature: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ASignature < Prod: superclass typecheck marker */},
-  {(bigint) 3055 /* 7: ASignature < ASignature: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55873,7 +53914,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ASignature[81] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ASignature < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: ASignature < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -55889,6 +53930,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ASignature[81] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -55915,24 +53958,25 @@ const classtable_elt_t VFT_parser___parser_nodes___ASignature[81] = {
   {(bigint) parser___parser_prod___ASignature___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ASignature___visit_all},
-  {(bigint) 1 /* 60: ASignature < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: ASignature < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) syntax___typing___ASignature___after_typing},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ASignature < Prod: superclass init_table position */},
+  {(bigint) 0 /* 72: ASignature < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
   {(bigint) syntax___mmbuilder___ASignature___check_visibility},
   {(bigint) parser___parser_prod___ASignature___empty_init},
   {(bigint) parser___parser_prod___ASignature___init_asignature},
-  {(bigint) 3 /* 76: ASignature < ASignature: superclass init_table position */},
+  {(bigint) 3 /* 78: ASignature < ASignature: superclass init_table position */},
+  {(bigint) parser___parser_nodes___ASignature___n_opar},
   {(bigint) parser___parser_nodes___ASignature___n_params},
+  {(bigint) parser___parser_nodes___ASignature___n_cpar},
   {(bigint) parser___parser_nodes___ASignature___n_type},
   {(bigint) parser___parser_nodes___ASignature___n_closure_decls},
   {(bigint) syntax___icode_generation___ASignature___fill_iroutine_parameters},
@@ -55943,9 +53987,11 @@ const classtable_elt_t VFT_parser___parser_nodes___ASignature[81] = {
 /* 3: Attribute ASignature::_location */
 /* 4: Attribute ASignature::_first_location */
 /* 5: Attribute ASignature::_last_location */
-/* 6: Attribute ASignature::_n_params */
-/* 7: Attribute ASignature::_n_type */
-/* 8: Attribute ASignature::_n_closure_decls */
+/* 6: Attribute ASignature::_n_opar */
+/* 7: Attribute ASignature::_n_params */
+/* 8: Attribute ASignature::_n_cpar */
+/* 9: Attribute ASignature::_n_type */
+/* 10: Attribute ASignature::_n_closure_decls */
 void INIT_ATTRIBUTES__parser___parser_nodes___ASignature(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
@@ -55959,13 +54005,19 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ASignature(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:640 */
+  /* parser/parser_nodes.nit:709 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[0]) = fra.me.REG[1];
+  /* parser/parser_nodes.nit:710 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:641 */
+  /* parser/parser_nodes.nit:711 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[0]) = fra.me.REG[1];
+  /* parser/parser_nodes.nit:712 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:642 */
+  /* parser/parser_nodes.nit:713 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -55973,7 +54025,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ASignature(val_t p0){
 val_t NEW_parser___parser_nodes___ASignature(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 9);
+  obj = alloc(sizeof(val_t) * 11);
   obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___ASignature;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
@@ -56010,13 +54062,13 @@ val_t NEW_ASignature_parser___parser_prod___ASignature___empty_init(void){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2907;
+  fra.me.line = 2921;
   fra.me.meth = LOCATE_NEW_ASignature_parser___parser_prod___ASignature___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2907 */
+  /* parser/parser_prod.nit:2921 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ASignature();
   INIT_ATTRIBUTES__parser___parser_nodes___ASignature(fra.me.REG[0]);
   parser___parser_prod___ASignature___empty_init(fra.me.REG[0], init_table);
@@ -56024,62 +54076,66 @@ val_t NEW_ASignature_parser___parser_prod___ASignature___empty_init(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_ASignature_parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+val_t NEW_ASignature_parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2909;
+  fra.me.line = 2923;
   fra.me.meth = LOCATE_NEW_ASignature_parser___parser_prod___ASignature___init_asignature;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
+  fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2909 */
-  fra.me.REG[3] = NEW_parser___parser_nodes___ASignature();
-  INIT_ATTRIBUTES__parser___parser_nodes___ASignature(fra.me.REG[3]);
-  parser___parser_prod___ASignature___init_asignature(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  CHECKNEW_parser___parser_nodes___ASignature(fra.me.REG[3]);
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  /* parser/parser_prod.nit:2923 */
+  fra.me.REG[5] = NEW_parser___parser_nodes___ASignature();
+  INIT_ATTRIBUTES__parser___parser_nodes___ASignature(fra.me.REG[5]);
+  parser___parser_prod___ASignature___init_asignature(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
+  CHECKNEW_parser___parser_nodes___ASignature(fra.me.REG[5]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[3];
+  return fra.me.REG[5];
 }
-val_t NEW_ASignature_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ASignature_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ASignature_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ASignature();
-  INIT_ATTRIBUTES__parser___parser_nodes___ASignature(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ASignature(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ASignature();
+  INIT_ATTRIBUTES__parser___parser_nodes___ASignature(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ASignature(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AParam[84] = {
-  {(bigint) 3067 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AParam[86] = {
+  {(bigint) 2827 /* 0: Identity */},
   {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AParam" /* 2: Class Name */},
   {(bigint) 3 /* 3: AParam < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AParam < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AParam < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AParam < Prod: superclass typecheck marker */},
+  {(bigint) 2827 /* 6: AParam < AParam: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AParam < Prod: superclass typecheck marker */},
-  {(bigint) 3067 /* 7: AParam < AParam: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56090,7 +54146,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AParam[84] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AParam < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: AParam < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -56106,6 +54162,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AParam[84] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -56132,17 +54190,16 @@ const classtable_elt_t VFT_parser___parser_nodes___AParam[84] = {
   {(bigint) parser___parser_prod___AParam___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AParam___visit_all},
-  {(bigint) 1 /* 60: AParam < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: AParam < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AParam___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AParam < Prod: superclass init_table position */},
+  {(bigint) 0 /* 72: AParam < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___AParam___stype},
   {(bigint) syntax___mmbuilder___AParam___stype__eq},
@@ -56152,7 +54209,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AParam[84] = {
   {(bigint) syntax___mmbuilder___AParam___variable},
   {(bigint) parser___parser_prod___AParam___empty_init},
   {(bigint) parser___parser_prod___AParam___init_aparam},
-  {(bigint) 3 /* 80: AParam < AParam: superclass init_table position */},
+  {(bigint) 3 /* 82: AParam < AParam: superclass init_table position */},
   {(bigint) parser___parser_nodes___AParam___n_id},
   {(bigint) parser___parser_nodes___AParam___n_type},
   {(bigint) parser___parser_nodes___AParam___n_dotdotdot},
@@ -56183,13 +54240,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AParam(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:1320 */
+  /* syntax/mmbuilder.nit:1324 */
   REGB0 = TAG_Int(0);
   ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser_nodes.nit:647 */
+  /* parser/parser_nodes.nit:718 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:648 */
+  /* parser/parser_nodes.nit:719 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -56234,13 +54291,13 @@ val_t NEW_AParam_parser___parser_prod___AParam___empty_init(void){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2984;
+  fra.me.line = 3034;
   fra.me.meth = LOCATE_NEW_AParam_parser___parser_prod___AParam___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:2984 */
+  /* parser/parser_prod.nit:3034 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AParam();
   INIT_ATTRIBUTES__parser___parser_nodes___AParam(fra.me.REG[0]);
   parser___parser_prod___AParam___empty_init(fra.me.REG[0], init_table);
@@ -56254,7 +54311,7 @@ val_t NEW_AParam_parser___parser_prod___AParam___init_aparam(val_t p0, val_t p1,
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 2986;
+  fra.me.line = 3036;
   fra.me.meth = LOCATE_NEW_AParam_parser___parser_prod___AParam___init_aparam;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -56266,7 +54323,7 @@ val_t NEW_AParam_parser___parser_prod___AParam___init_aparam(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2986 */
+  /* parser/parser_prod.nit:3036 */
   fra.me.REG[3] = NEW_parser___parser_nodes___AParam();
   INIT_ATTRIBUTES__parser___parser_nodes___AParam(fra.me.REG[3]);
   parser___parser_prod___AParam___init_aparam(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -56274,36 +54331,36 @@ val_t NEW_AParam_parser___parser_prod___AParam___init_aparam(val_t p0, val_t p1,
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-val_t NEW_AParam_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AParam_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AParam_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AParam();
-  INIT_ATTRIBUTES__parser___parser_nodes___AParam(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AParam(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AParam();
+  INIT_ATTRIBUTES__parser___parser_nodes___AParam(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AParam(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AClosureDecl[85] = {
-  {(bigint) 3123 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AClosureDecl[87] = {
+  {(bigint) 2887 /* 0: Identity */},
   {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AClosureDecl" /* 2: Class Name */},
   {(bigint) 3 /* 3: AClosureDecl < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AClosureDecl < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AClosureDecl < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AClosureDecl < Prod: superclass typecheck marker */},
+  {(bigint) 2887 /* 6: AClosureDecl < AClosureDecl: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AClosureDecl < Prod: superclass typecheck marker */},
-  {(bigint) 3123 /* 7: AClosureDecl < AClosureDecl: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56314,7 +54371,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AClosureDecl[85] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AClosureDecl < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: AClosureDecl < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -56330,6 +54387,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AClosureDecl[85] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -56356,24 +54415,23 @@ const classtable_elt_t VFT_parser___parser_nodes___AClosureDecl[85] = {
   {(bigint) parser___parser_prod___AClosureDecl___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AClosureDecl___visit_all},
-  {(bigint) 1 /* 60: AClosureDecl < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: AClosureDecl < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AClosureDecl___accept_icode_generation},
   {(bigint) syntax___typing___AClosureDecl___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AClosureDecl < Prod: superclass init_table position */},
+  {(bigint) 0 /* 72: AClosureDecl < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
   {(bigint) syntax___mmbuilder___AClosureDecl___position},
   {(bigint) syntax___mmbuilder___AClosureDecl___variable},
   {(bigint) parser___parser_prod___AClosureDecl___empty_init},
   {(bigint) parser___parser_prod___AClosureDecl___init_aclosuredecl},
-  {(bigint) 3 /* 77: AClosureDecl < AClosureDecl: superclass init_table position */},
+  {(bigint) 3 /* 79: AClosureDecl < AClosureDecl: superclass init_table position */},
   {(bigint) parser___parser_nodes___AClosureDecl___n_kwbreak},
   {(bigint) parser___parser_nodes___AClosureDecl___n_bang},
   {(bigint) parser___parser_nodes___AClosureDecl___n_id},
@@ -56410,13 +54468,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AClosureDecl(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:1361 */
+  /* syntax/mmbuilder.nit:1365 */
   REGB0 = TAG_Int(0);
   ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser_nodes.nit:652 */
+  /* parser/parser_nodes.nit:723 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:656 */
+  /* parser/parser_nodes.nit:727 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -56471,13 +54529,13 @@ val_t NEW_AClosureDecl_parser___parser_prod___AClosureDecl___empty_init(void){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3051;
+  fra.me.line = 3101;
   fra.me.meth = LOCATE_NEW_AClosureDecl_parser___parser_prod___AClosureDecl___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:3051 */
+  /* parser/parser_prod.nit:3101 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AClosureDecl();
   INIT_ATTRIBUTES__parser___parser_nodes___AClosureDecl(fra.me.REG[0]);
   parser___parser_prod___AClosureDecl___empty_init(fra.me.REG[0], init_table);
@@ -56491,7 +54549,7 @@ val_t NEW_AClosureDecl_parser___parser_prod___AClosureDecl___init_aclosuredecl(v
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3053;
+  fra.me.line = 3103;
   fra.me.meth = LOCATE_NEW_AClosureDecl_parser___parser_prod___AClosureDecl___init_aclosuredecl;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -56507,7 +54565,7 @@ val_t NEW_AClosureDecl_parser___parser_prod___AClosureDecl___init_aclosuredecl(v
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:3053 */
+  /* parser/parser_prod.nit:3103 */
   fra.me.REG[5] = NEW_parser___parser_nodes___AClosureDecl();
   INIT_ATTRIBUTES__parser___parser_nodes___AClosureDecl(fra.me.REG[5]);
   parser___parser_prod___AClosureDecl___init_aclosuredecl(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
@@ -56515,36 +54573,36 @@ val_t NEW_AClosureDecl_parser___parser_prod___AClosureDecl___init_aclosuredecl(v
   stack_frame_head = fra.me.prev;
   return fra.me.REG[5];
 }
-val_t NEW_AClosureDecl_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AClosureDecl_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AClosureDecl_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AClosureDecl();
-  INIT_ATTRIBUTES__parser___parser_nodes___AClosureDecl(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AClosureDecl(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AClosureDecl();
+  INIT_ATTRIBUTES__parser___parser_nodes___AClosureDecl(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AClosureDecl(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AType[85] = {
-  {(bigint) 3047 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AType[87] = {
+  {(bigint) 2807 /* 0: Identity */},
   {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AType" /* 2: Class Name */},
   {(bigint) 3 /* 3: AType < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AType < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AType < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AType < Prod: superclass typecheck marker */},
+  {(bigint) 2807 /* 6: AType < AType: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AType < Prod: superclass typecheck marker */},
-  {(bigint) 3047 /* 7: AType < AType: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56555,7 +54613,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AType[85] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AType < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: AType < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -56571,6 +54629,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AType[85] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -56597,17 +54657,16 @@ const classtable_elt_t VFT_parser___parser_nodes___AType[85] = {
   {(bigint) parser___parser_prod___AType___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AType___visit_all},
-  {(bigint) 1 /* 60: AType < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: AType < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AType___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AType < Prod: superclass init_table position */},
+  {(bigint) 0 /* 72: AType < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___mmbuilder___AType___check_visibility},
   {(bigint) syntax___typing___AType___is_typed},
@@ -56618,7 +54677,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AType[85] = {
   {(bigint) syntax___syntax_base___AType___check_conform},
   {(bigint) parser___parser_prod___AType___empty_init},
   {(bigint) parser___parser_prod___AType___init_atype},
-  {(bigint) 3 /* 81: AType < AType: superclass init_table position */},
+  {(bigint) 3 /* 83: AType < AType: superclass init_table position */},
   {(bigint) parser___parser_nodes___AType___n_kwnullable},
   {(bigint) parser___parser_nodes___AType___n_id},
   {(bigint) parser___parser_nodes___AType___n_types},
@@ -56649,16 +54708,16 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AType(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:593 */
+  /* syntax/syntax_base.nit:593 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___syntax_base___AType____stype_cache(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//syntax_base.nit:594 */
+  /* syntax/syntax_base.nit:594 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___syntax_base___AType____stype_cached(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser_nodes.nit:660 */
+  /* parser/parser_nodes.nit:731 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:662 */
+  /* parser/parser_nodes.nit:733 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -56708,13 +54767,13 @@ val_t NEW_AType_parser___parser_prod___AType___empty_init(void){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3146;
+  fra.me.line = 3196;
   fra.me.meth = LOCATE_NEW_AType_parser___parser_prod___AType___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:3146 */
+  /* parser/parser_prod.nit:3196 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AType();
   INIT_ATTRIBUTES__parser___parser_nodes___AType(fra.me.REG[0]);
   parser___parser_prod___AType___empty_init(fra.me.REG[0], init_table);
@@ -56728,7 +54787,7 @@ val_t NEW_AType_parser___parser_prod___AType___init_atype(val_t p0, val_t p1, va
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3148;
+  fra.me.line = 3198;
   fra.me.meth = LOCATE_NEW_AType_parser___parser_prod___AType___init_atype;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -56740,7 +54799,7 @@ val_t NEW_AType_parser___parser_prod___AType___init_atype(val_t p0, val_t p1, va
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3148 */
+  /* parser/parser_prod.nit:3198 */
   fra.me.REG[3] = NEW_parser___parser_nodes___AType();
   INIT_ATTRIBUTES__parser___parser_nodes___AType(fra.me.REG[3]);
   parser___parser_prod___AType___init_atype(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -56748,36 +54807,36 @@ val_t NEW_AType_parser___parser_prod___AType___init_atype(val_t p0, val_t p1, va
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-val_t NEW_AType_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AType_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AType_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AType();
-  INIT_ATTRIBUTES__parser___parser_nodes___AType(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AType(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AType();
+  INIT_ATTRIBUTES__parser___parser_nodes___AType(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AType(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ALabel[77] = {
-  {(bigint) 3091 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ALabel[79] = {
+  {(bigint) 2851 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ALabel" /* 2: Class Name */},
   {(bigint) 3 /* 3: ALabel < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ALabel < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ALabel < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ALabel < Prod: superclass typecheck marker */},
+  {(bigint) 2851 /* 6: ALabel < ALabel: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ALabel < Prod: superclass typecheck marker */},
-  {(bigint) 3091 /* 7: ALabel < ALabel: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56788,7 +54847,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ALabel[77] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ALabel < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: ALabel < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -56804,6 +54863,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ALabel[77] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -56830,21 +54891,20 @@ const classtable_elt_t VFT_parser___parser_nodes___ALabel[77] = {
   {(bigint) parser___parser_prod___ALabel___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ALabel___visit_all},
-  {(bigint) 1 /* 60: ALabel < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: ALabel < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ALabel < Prod: superclass init_table position */},
+  {(bigint) 0 /* 72: ALabel < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) parser___parser_prod___ALabel___empty_init},
   {(bigint) parser___parser_prod___ALabel___init_alabel},
-  {(bigint) 3 /* 74: ALabel < ALabel: superclass init_table position */},
+  {(bigint) 3 /* 76: ALabel < ALabel: superclass init_table position */},
   {(bigint) parser___parser_nodes___ALabel___n_kwlabel},
   {(bigint) parser___parser_nodes___ALabel___n_id},
 };
@@ -56908,13 +54968,13 @@ val_t NEW_ALabel_parser___parser_prod___ALabel___empty_init(void){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3216;
+  fra.me.line = 3266;
   fra.me.meth = LOCATE_NEW_ALabel_parser___parser_prod___ALabel___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:3216 */
+  /* parser/parser_prod.nit:3266 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ALabel();
   INIT_ATTRIBUTES__parser___parser_nodes___ALabel(fra.me.REG[0]);
   parser___parser_prod___ALabel___empty_init(fra.me.REG[0], init_table);
@@ -56928,7 +54988,7 @@ val_t NEW_ALabel_parser___parser_prod___ALabel___init_alabel(val_t p0, val_t p1)
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3218;
+  fra.me.line = 3268;
   fra.me.meth = LOCATE_NEW_ALabel_parser___parser_prod___ALabel___init_alabel;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -56938,7 +54998,7 @@ val_t NEW_ALabel_parser___parser_prod___ALabel___init_alabel(val_t p0, val_t p1)
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:3218 */
+  /* parser/parser_prod.nit:3268 */
   fra.me.REG[2] = NEW_parser___parser_nodes___ALabel();
   INIT_ATTRIBUTES__parser___parser_nodes___ALabel(fra.me.REG[2]);
   parser___parser_prod___ALabel___init_alabel(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -56946,200 +55006,37 @@ val_t NEW_ALabel_parser___parser_prod___ALabel___init_alabel(val_t p0, val_t p1)
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_ALabel_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ALabel_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ALabel_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ALabel();
-  INIT_ATTRIBUTES__parser___parser_nodes___ALabel(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ALabel(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AExpr[82] = {
-  {(bigint) 3111 /* 0: Identity */},
-  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AExpr < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AExpr < AExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AExpr < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: AExpr < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___AExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AExpr < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExpr___is_typed},
-  {(bigint) syntax___typing___AExpr___is_statement},
-  {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___AExpr___generate_icode},
-  {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
-  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
-  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AExpr::_parent */
-/* 3: Attribute AExpr::_location */
-/* 4: Attribute AExpr::_first_location */
-/* 5: Attribute AExpr::_last_location */
-/* Instance Hole :( */
-/* 7: Attribute AExpr::_is_typed */
-/* 8: Attribute AExpr::_stype */
-/* 9: Attribute AExpr::_if_true_flow_ctx */
-/* 10: Attribute AExpr::_if_false_flow_ctx */
-void INIT_ATTRIBUTES__parser___parser_nodes___AExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AExpr(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 11);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AExpr;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AExpr;
-  fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AExpr_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ALabel();
+  INIT_ATTRIBUTES__parser___parser_nodes___ALabel(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ALabel(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ABlockExpr[86] = {
-  {(bigint) 3487 /* 0: Identity */},
-  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
+const classtable_elt_t VFT_parser___parser_nodes___ABlockExpr[93] = {
+  {(bigint) 3567 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ABlockExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ABlockExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ABlockExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ABlockExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ABlockExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: ABlockExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3567 /* 8: ABlockExpr < ABlockExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ABlockExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ABlockExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3487 /* 8: ABlockExpr < ABlockExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57149,7 +55046,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ABlockExpr[86] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ABlockExpr < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ABlockExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -57165,6 +55062,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ABlockExpr[86] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -57191,32 +55090,36 @@ const classtable_elt_t VFT_parser___parser_nodes___ABlockExpr[86] = {
   {(bigint) parser___parser_prod___ABlockExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ABlockExpr___visit_all},
-  {(bigint) 1 /* 60: ABlockExpr < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: ABlockExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ABlockExpr___accept_typing},
   {(bigint) syntax___typing___AExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ABlockExpr < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: ABlockExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: ABlockExpr < AExpr: superclass init_table position */},
+  {(bigint) 0 /* 80: ABlockExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ABlockExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) parser___parser_prod___ABlockExpr___empty_init},
   {(bigint) parser___parser_prod___ABlockExpr___init_ablockexpr},
-  {(bigint) 4 /* 84: ABlockExpr < ABlockExpr: superclass init_table position */},
+  {(bigint) 4 /* 90: ABlockExpr < ABlockExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABlockExpr___n_expr},
+  {(bigint) parser___parser_nodes___ABlockExpr___n_kwend},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -57230,6 +55133,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ABlockExpr[86] = {
 /* 9: Attribute ABlockExpr::_if_true_flow_ctx */
 /* 10: Attribute ABlockExpr::_if_false_flow_ctx */
 /* 11: Attribute ABlockExpr::_n_expr */
+/* 12: Attribute ABlockExpr::_n_kwend */
 void INIT_ATTRIBUTES__parser___parser_nodes___ABlockExpr(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -57244,18 +55148,21 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ABlockExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser_nodes.nit:672 */
+  /* parser/parser_nodes.nit:743 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
+  /* parser/parser_nodes.nit:744 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
 val_t NEW_parser___parser_nodes___ABlockExpr(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 12);
+  obj = alloc(sizeof(val_t) * 13);
   obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___ABlockExpr;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
@@ -57292,13 +55199,13 @@ val_t NEW_ABlockExpr_parser___parser_prod___ABlockExpr___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3261;
+  fra.me.line = 3311;
   fra.me.meth = LOCATE_NEW_ABlockExpr_parser___parser_prod___ABlockExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:3261 */
+  /* parser/parser_prod.nit:3311 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ABlockExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ABlockExpr(fra.me.REG[0]);
   parser___parser_prod___ABlockExpr___empty_init(fra.me.REG[0], init_table);
@@ -57306,317 +55213,71 @@ val_t NEW_ABlockExpr_parser___parser_prod___ABlockExpr___empty_init(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3263;
+  fra.me.line = 3313;
   fra.me.meth = LOCATE_NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:3263 */
-  fra.me.REG[1] = NEW_parser___parser_nodes___ABlockExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ABlockExpr(fra.me.REG[1]);
-  parser___parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ABlockExpr(fra.me.REG[1]);
+  fra.me.REG[1] = p1;
+  /* parser/parser_prod.nit:3313 */
+  fra.me.REG[2] = NEW_parser___parser_nodes___ABlockExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ABlockExpr(fra.me.REG[2]);
+  parser___parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_parser___parser_nodes___ABlockExpr(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[2];
 }
-val_t NEW_ABlockExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ABlockExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ABlockExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ABlockExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ABlockExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ABlockExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ABlockExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ABlockExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ABlockExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AVardeclExpr[91] = {
-  {(bigint) 3247 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AVardeclExpr[97] = {
+  {(bigint) 3311 /* 0: Identity */},
   {(bigint) 17 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AVardeclExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AVardeclExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AVardeclExpr < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AVardeclExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AVardeclExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3247 /* 8: AVardeclExpr < AVardeclExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AVardeclExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AVardeclExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AVardeclExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3311 /* 8: AVardeclExpr < AVardeclExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AVardeclExpr < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___AVardeclExpr___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___AVardeclExpr___visit_all},
-  {(bigint) 1 /* 60: AVardeclExpr < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___AVardeclExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AVardeclExpr < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExpr___is_typed},
-  {(bigint) syntax___typing___AExpr___is_statement},
-  {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AVardeclExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___AVardeclExpr___generate_icode},
-  {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
-  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
-  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) syntax___typing___AVardeclExpr___variable},
-  {(bigint) parser___parser_prod___AVardeclExpr___empty_init},
-  {(bigint) parser___parser_prod___AVardeclExpr___init_avardeclexpr},
-  {(bigint) 4 /* 85: AVardeclExpr < AVardeclExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AVardeclExpr___n_kwvar},
-  {(bigint) parser___parser_nodes___AVardeclExpr___n_id},
-  {(bigint) parser___parser_nodes___AVardeclExpr___n_type},
-  {(bigint) parser___parser_nodes___AVardeclExpr___n_assign},
-  {(bigint) parser___parser_nodes___AVardeclExpr___n_expr},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AVardeclExpr::_parent */
-/* 3: Attribute AVardeclExpr::_location */
-/* 4: Attribute AVardeclExpr::_first_location */
-/* 5: Attribute AVardeclExpr::_last_location */
-/* Instance Hole :( */
-/* 7: Attribute AVardeclExpr::_is_typed */
-/* 8: Attribute AVardeclExpr::_stype */
-/* 9: Attribute AVardeclExpr::_if_true_flow_ctx */
-/* 10: Attribute AVardeclExpr::_if_false_flow_ctx */
-/* 11: Attribute AVardeclExpr::_variable */
-/* 12: Attribute AVardeclExpr::_n_kwvar */
-/* 13: Attribute AVardeclExpr::_n_id */
-/* 14: Attribute AVardeclExpr::_n_type */
-/* 15: Attribute AVardeclExpr::_n_assign */
-/* 16: Attribute AVardeclExpr::_n_expr */
-void INIT_ATTRIBUTES__parser___parser_nodes___AVardeclExpr(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AVardeclExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser_nodes.nit:678 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:679 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:680 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AVardeclExpr(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 17);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AVardeclExpr;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AVardeclExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AVardeclExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AVardeclExpr_parser___parser_prod___AVardeclExpr___empty_init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 3299;
-  fra.me.meth = LOCATE_NEW_AVardeclExpr_parser___parser_prod___AVardeclExpr___empty_init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:3299 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___AVardeclExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AVardeclExpr(fra.me.REG[0]);
-  parser___parser_prod___AVardeclExpr___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AVardeclExpr(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t NEW_AVardeclExpr_parser___parser_prod___AVardeclExpr___init_avardeclexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 3301;
-  fra.me.meth = LOCATE_NEW_AVardeclExpr_parser___parser_prod___AVardeclExpr___init_avardeclexpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  fra.me.REG[3] = p3;
-  fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:3301 */
-  fra.me.REG[5] = NEW_parser___parser_nodes___AVardeclExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AVardeclExpr(fra.me.REG[5]);
-  parser___parser_prod___AVardeclExpr___init_avardeclexpr(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
-  CHECKNEW_parser___parser_nodes___AVardeclExpr(fra.me.REG[5]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[5];
-}
-val_t NEW_AVardeclExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AVardeclExpr_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AVardeclExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AVardeclExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AVardeclExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AReturnExpr[87] = {
-  {(bigint) 3307 /* 0: Identity */},
-  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AReturnExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AReturnExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AReturnExpr < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AReturnExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AReturnExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3307 /* 8: AReturnExpr < AReturnExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AReturnExpr < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AVardeclExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -57632,6 +55293,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AReturnExpr[87] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -57655,92 +55318,106 @@ const classtable_elt_t VFT_parser___parser_nodes___AReturnExpr[87] = {
   {(bigint) parser___parser_prod___ANode___parent},
   {(bigint) parser___parser_prod___ANode___parent__eq},
   {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___AReturnExpr___replace_child},
+  {(bigint) parser___parser_prod___AVardeclExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___AReturnExpr___visit_all},
-  {(bigint) 1 /* 60: AReturnExpr < ANode: superclass init_table position */},
+  {(bigint) parser___parser_prod___AVardeclExpr___visit_all},
+  {(bigint) 2 /* 63: AVardeclExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___AReturnExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) syntax___typing___AVardeclExpr___after_typing},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AReturnExpr < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AVardeclExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AReturnExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___AReturnExpr___generate_icode},
+  {(bigint) 0 /* 80: AVardeclExpr < AExpr: superclass init_table position */},
+  {(bigint) syntax___icode_generation___AVardeclExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) parser___parser_prod___AReturnExpr___empty_init},
-  {(bigint) parser___parser_prod___AReturnExpr___init_areturnexpr},
-  {(bigint) 4 /* 84: AReturnExpr < AReturnExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AReturnExpr___n_kwreturn},
-  {(bigint) parser___parser_nodes___AReturnExpr___n_expr},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) syntax___typing___AVardeclExpr___variable},
+  {(bigint) parser___parser_prod___AVardeclExpr___empty_init},
+  {(bigint) parser___parser_prod___AVardeclExpr___init_avardeclexpr},
+  {(bigint) 4 /* 91: AVardeclExpr < AVardeclExpr: superclass init_table position */},
+  {(bigint) parser___parser_nodes___AVardeclExpr___n_kwvar},
+  {(bigint) parser___parser_nodes___AVardeclExpr___n_id},
+  {(bigint) parser___parser_nodes___AVardeclExpr___n_type},
+  {(bigint) parser___parser_nodes___AVardeclExpr___n_assign},
+  {(bigint) parser___parser_nodes___AVardeclExpr___n_expr},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute AReturnExpr::_parent */
-/* 3: Attribute AReturnExpr::_location */
-/* 4: Attribute AReturnExpr::_first_location */
-/* 5: Attribute AReturnExpr::_last_location */
+/* 2: Attribute AVardeclExpr::_parent */
+/* 3: Attribute AVardeclExpr::_location */
+/* 4: Attribute AVardeclExpr::_first_location */
+/* 5: Attribute AVardeclExpr::_last_location */
 /* Instance Hole :( */
-/* 7: Attribute AReturnExpr::_is_typed */
-/* 8: Attribute AReturnExpr::_stype */
-/* 9: Attribute AReturnExpr::_if_true_flow_ctx */
-/* 10: Attribute AReturnExpr::_if_false_flow_ctx */
-/* 11: Attribute AReturnExpr::_n_kwreturn */
-/* 12: Attribute AReturnExpr::_n_expr */
-void INIT_ATTRIBUTES__parser___parser_nodes___AReturnExpr(val_t p0){
+/* 7: Attribute AVardeclExpr::_is_typed */
+/* 8: Attribute AVardeclExpr::_stype */
+/* 9: Attribute AVardeclExpr::_if_true_flow_ctx */
+/* 10: Attribute AVardeclExpr::_if_false_flow_ctx */
+/* 11: Attribute AVardeclExpr::_variable */
+/* 12: Attribute AVardeclExpr::_n_kwvar */
+/* 13: Attribute AVardeclExpr::_n_id */
+/* 14: Attribute AVardeclExpr::_n_type */
+/* 15: Attribute AVardeclExpr::_n_assign */
+/* 16: Attribute AVardeclExpr::_n_expr */
+void INIT_ATTRIBUTES__parser___parser_nodes___AVardeclExpr(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AReturnExpr;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AVardeclExpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser_nodes.nit:684 */
+  /* parser/parser_nodes.nit:750 */
   fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:685 */
+  ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = fra.me.REG[1];
+  /* parser/parser_nodes.nit:751 */
   fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
+  ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = fra.me.REG[1];
+  /* parser/parser_nodes.nit:752 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___parser_nodes___AReturnExpr(void)
+val_t NEW_parser___parser_nodes___AVardeclExpr(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AReturnExpr;
+  obj = alloc(sizeof(val_t) * 17);
+  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AVardeclExpr;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___parser_nodes___AReturnExpr(val_t p0){
+void CHECKNEW_parser___parser_nodes___AVardeclExpr(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AReturnExpr;
+  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AVardeclExpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -57751,82 +55428,98 @@ void CHECKNEW_parser___parser_nodes___AReturnExpr(val_t p0){
   } else {
     nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
   }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_nitc, 0);
+  }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_AReturnExpr_parser___parser_prod___AReturnExpr___empty_init(void){
+val_t NEW_AVardeclExpr_parser___parser_prod___AVardeclExpr___empty_init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3398;
-  fra.me.meth = LOCATE_NEW_AReturnExpr_parser___parser_prod___AReturnExpr___empty_init;
+  fra.me.line = 3367;
+  fra.me.meth = LOCATE_NEW_AVardeclExpr_parser___parser_prod___AVardeclExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:3398 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___AReturnExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AReturnExpr(fra.me.REG[0]);
-  parser___parser_prod___AReturnExpr___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AReturnExpr(fra.me.REG[0]);
+  /* parser/parser_prod.nit:3367 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AVardeclExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AVardeclExpr(fra.me.REG[0]);
+  parser___parser_prod___AVardeclExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AVardeclExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_AReturnExpr_parser___parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+val_t NEW_AVardeclExpr_parser___parser_prod___AVardeclExpr___init_avardeclexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3400;
-  fra.me.meth = LOCATE_NEW_AReturnExpr_parser___parser_prod___AReturnExpr___init_areturnexpr;
+  fra.me.line = 3369;
+  fra.me.meth = LOCATE_NEW_AVardeclExpr_parser___parser_prod___AVardeclExpr___init_avardeclexpr;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
+  fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:3400 */
-  fra.me.REG[2] = NEW_parser___parser_nodes___AReturnExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AReturnExpr(fra.me.REG[2]);
-  parser___parser_prod___AReturnExpr___init_areturnexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_parser___parser_nodes___AReturnExpr(fra.me.REG[2]);
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  /* parser/parser_prod.nit:3369 */
+  fra.me.REG[5] = NEW_parser___parser_nodes___AVardeclExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AVardeclExpr(fra.me.REG[5]);
+  parser___parser_prod___AVardeclExpr___init_avardeclexpr(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
+  CHECKNEW_parser___parser_nodes___AVardeclExpr(fra.me.REG[5]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
+  return fra.me.REG[5];
 }
-val_t NEW_AReturnExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AVardeclExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AReturnExpr_parser___parser_nodes___ANode___init;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_AVardeclExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AReturnExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AReturnExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AReturnExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AVardeclExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AVardeclExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AVardeclExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ALabelable[72] = {
-  {(bigint) 3087 /* 0: Identity */},
-  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ALabelable" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ALabelable < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ALabelable < ANode: superclass typecheck marker */},
-  {(bigint) 3087 /* 5: ALabelable < ALabelable: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ALabelable < Prod: superclass typecheck marker */},
+const classtable_elt_t VFT_parser___parser_nodes___AReturnExpr[93] = {
+  {(bigint) 3371 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "AReturnExpr" /* 2: Class Name */},
+  {(bigint) 3 /* 3: AReturnExpr < Object: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AReturnExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AReturnExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AReturnExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3371 /* 8: AReturnExpr < AReturnExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57837,7 +55530,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ALabelable[72] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ALabelable < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AReturnExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -57853,6 +55546,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ALabelable[72] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -57866,110 +55561,193 @@ const classtable_elt_t VFT_parser___parser_nodes___ALabelable[72] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
+  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
   {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
   {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
   {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
+  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
   {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
   {(bigint) parser___parser_prod___ANode___parent},
   {(bigint) parser___parser_prod___ANode___parent__eq},
   {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
+  {(bigint) parser___parser_prod___AReturnExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: ALabelable < ANode: superclass init_table position */},
+  {(bigint) parser___parser_prod___AReturnExpr___visit_all},
+  {(bigint) 2 /* 63: AReturnExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
+  {(bigint) parser___parser_nodes___ANode___debug},
+  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___ANode___after_typing},
-  {(bigint) 3 /* 67: ALabelable < ALabelable: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ALabelable___n_label},
+  {(bigint) syntax___typing___AReturnExpr___after_typing},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ALabelable < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AReturnExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
+  {(bigint) syntax___typing___AExpr___is_typed},
+  {(bigint) syntax___typing___AExpr___is_statement},
+  {(bigint) syntax___typing___AExpr___stype},
+  {(bigint) 0 /* 80: AReturnExpr < AExpr: superclass init_table position */},
+  {(bigint) syntax___icode_generation___AReturnExpr___generate_icode},
+  {(bigint) syntax___typing___AExpr___is_implicit_self},
+  {(bigint) syntax___typing___AExpr___is_self},
+  {(bigint) syntax___typing___AExpr___its_variable},
+  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
+  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) parser___parser_prod___AReturnExpr___empty_init},
+  {(bigint) parser___parser_prod___AReturnExpr___init_areturnexpr},
+  {(bigint) 4 /* 90: AReturnExpr < AReturnExpr: superclass init_table position */},
+  {(bigint) parser___parser_nodes___AReturnExpr___n_kwreturn},
+  {(bigint) parser___parser_nodes___AReturnExpr___n_expr},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ALabelable::_parent */
-/* 3: Attribute ALabelable::_location */
-/* 4: Attribute ALabelable::_first_location */
-/* 5: Attribute ALabelable::_last_location */
-/* 6: Attribute ALabelable::_n_label */
-void INIT_ATTRIBUTES__parser___parser_nodes___ALabelable(val_t p0){
+/* 2: Attribute AReturnExpr::_parent */
+/* 3: Attribute AReturnExpr::_location */
+/* 4: Attribute AReturnExpr::_first_location */
+/* 5: Attribute AReturnExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute AReturnExpr::_is_typed */
+/* 8: Attribute AReturnExpr::_stype */
+/* 9: Attribute AReturnExpr::_if_true_flow_ctx */
+/* 10: Attribute AReturnExpr::_if_false_flow_ctx */
+/* 11: Attribute AReturnExpr::_n_kwreturn */
+/* 12: Attribute AReturnExpr::_n_expr */
+void INIT_ATTRIBUTES__parser___parser_nodes___AReturnExpr(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ALabelable;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AReturnExpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:689 */
+  /* syntax/typing.nit:365 */
+  REGB0 = TAG_Bool(false);
+  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  /* parser/parser_nodes.nit:756 */
   fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[1];
+  ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[1];
+  /* parser/parser_nodes.nit:757 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___parser_nodes___ALabelable(void)
+val_t NEW_parser___parser_nodes___AReturnExpr(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___ALabelable;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AReturnExpr;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___parser_nodes___ALabelable(val_t p0){
+void CHECKNEW_parser___parser_nodes___AReturnExpr(val_t p0){
   struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___ALabelable;
+  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AReturnExpr;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
+  }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ALabelable_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AReturnExpr_parser___parser_prod___AReturnExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ALabelable_parser___parser_nodes___ANode___init;
+  fra.me.line = 3466;
+  fra.me.meth = LOCATE_NEW_AReturnExpr_parser___parser_prod___AReturnExpr___empty_init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_prod.nit:3466 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AReturnExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AReturnExpr(fra.me.REG[0]);
+  parser___parser_prod___AReturnExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AReturnExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AReturnExpr_parser___parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 3468;
+  fra.me.meth = LOCATE_NEW_AReturnExpr_parser___parser_prod___AReturnExpr___init_areturnexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ALabelable();
-  INIT_ATTRIBUTES__parser___parser_nodes___ALabelable(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ALabelable(fra.me.REG[1]);
+  fra.me.REG[1] = p1;
+  /* parser/parser_prod.nit:3468 */
+  fra.me.REG[2] = NEW_parser___parser_nodes___AReturnExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AReturnExpr(fra.me.REG[2]);
+  parser___parser_prod___AReturnExpr___init_areturnexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_parser___parser_nodes___AReturnExpr(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ABreakExpr[91] = {
-  {(bigint) 3707 /* 0: Identity */},
+val_t NEW_AReturnExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_AReturnExpr_parser___parser_nodes___ANode___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AReturnExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AReturnExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AReturnExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___parser_nodes___ABreakExpr[97] = {
+  {(bigint) 3791 /* 0: Identity */},
   {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ABreakExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ABreakExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ABreakExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3087 /* 5: ABreakExpr < ALabelable: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ABreakExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ABreakExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3439 /* 8: ABreakExpr < AEscapeExpr: superclass typecheck marker */},
-  {(bigint) 3707 /* 9: ABreakExpr < ABreakExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ABreakExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ABreakExpr < Prod: superclass typecheck marker */},
+  {(bigint) 2847 /* 6: ABreakExpr < ALabelable: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: ABreakExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3511 /* 8: ABreakExpr < AEscapeExpr: superclass typecheck marker */},
+  {(bigint) 3791 /* 9: ABreakExpr < ABreakExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57978,7 +55756,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ABreakExpr[91] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: ABreakExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: ABreakExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -57994,6 +55772,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ABreakExpr[91] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -58020,35 +55800,38 @@ const classtable_elt_t VFT_parser___parser_nodes___ABreakExpr[91] = {
   {(bigint) parser___parser_prod___ABreakExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ABreakExpr___visit_all},
-  {(bigint) 2 /* 60: ABreakExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: ABreakExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ABreakExpr___after_typing},
-  {(bigint) 4 /* 67: ABreakExpr < ALabelable: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ALabelable___n_label},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 1 /* 70: ABreakExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: ABreakExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) 1 /* 74: ABreakExpr < ALabelable: superclass init_table position */},
+  {(bigint) parser___parser_nodes___ALabelable___n_label},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 5 /* 75: ABreakExpr < AExpr: superclass init_table position */},
+  {(bigint) 5 /* 80: ABreakExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ABreakExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 0 /* 82: ABreakExpr < AEscapeExpr: superclass init_table position */},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) 0 /* 88: ABreakExpr < AEscapeExpr: superclass init_table position */},
   {(bigint) syntax___scope___AEscapeExpr___escapable},
   {(bigint) syntax___scope___ABreakExpr___kwname},
   {(bigint) syntax___scope___AEscapeExpr___compute_escapable_block},
   {(bigint) parser___parser_prod___ABreakExpr___empty_init},
   {(bigint) parser___parser_prod___ABreakExpr___init_abreakexpr},
-  {(bigint) 6 /* 88: ABreakExpr < ABreakExpr: superclass init_table position */},
+  {(bigint) 6 /* 94: ABreakExpr < ABreakExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABreakExpr___n_kwbreak},
   {(bigint) parser___parser_nodes___ABreakExpr___n_expr},
 };
@@ -58080,13 +55863,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ABreakExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser_nodes.nit:689 */
+  /* parser/parser_nodes.nit:761 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:695 */
+  /* parser/parser_nodes.nit:767 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -58131,13 +55914,13 @@ val_t NEW_ABreakExpr_parser___parser_prod___ABreakExpr___empty_init(void){
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3451;
+  fra.me.line = 3519;
   fra.me.meth = LOCATE_NEW_ABreakExpr_parser___parser_prod___ABreakExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:3451 */
+  /* parser/parser_prod.nit:3519 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ABreakExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ABreakExpr(fra.me.REG[0]);
   parser___parser_prod___ABreakExpr___empty_init(fra.me.REG[0], init_table);
@@ -58151,7 +55934,7 @@ val_t NEW_ABreakExpr_parser___parser_prod___ABreakExpr___init_abreakexpr(val_t p
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3453;
+  fra.me.line = 3521;
   fra.me.meth = LOCATE_NEW_ABreakExpr_parser___parser_prod___ABreakExpr___init_abreakexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -58163,7 +55946,7 @@ val_t NEW_ABreakExpr_parser___parser_prod___ABreakExpr___init_abreakexpr(val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3453 */
+  /* parser/parser_prod.nit:3521 */
   fra.me.REG[3] = NEW_parser___parser_nodes___ABreakExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ABreakExpr(fra.me.REG[3]);
   parser___parser_prod___ABreakExpr___init_abreakexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -58171,37 +55954,37 @@ val_t NEW_ABreakExpr_parser___parser_prod___ABreakExpr___init_abreakexpr(val_t p
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-val_t NEW_ABreakExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ABreakExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ABreakExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ABreakExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ABreakExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ABreakExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ABreakExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ABreakExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ABreakExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AAbortExpr[86] = {
-  {(bigint) 3531 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AAbortExpr[92] = {
+  {(bigint) 3611 /* 0: Identity */},
   {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AAbortExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AAbortExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AAbortExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AAbortExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AAbortExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AAbortExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3611 /* 8: AAbortExpr < AAbortExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AAbortExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AAbortExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3531 /* 8: AAbortExpr < AAbortExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58211,7 +55994,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AAbortExpr[86] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AAbortExpr < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AAbortExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -58227,6 +56010,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AAbortExpr[86] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -58253,31 +56038,34 @@ const classtable_elt_t VFT_parser___parser_nodes___AAbortExpr[86] = {
   {(bigint) parser___parser_prod___AAbortExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AAbortExpr___visit_all},
-  {(bigint) 1 /* 60: AAbortExpr < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AAbortExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AAbortExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AAbortExpr < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AAbortExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AAbortExpr < AExpr: superclass init_table position */},
+  {(bigint) 0 /* 80: AAbortExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AAbortExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) parser___parser_prod___AAbortExpr___empty_init},
   {(bigint) parser___parser_prod___AAbortExpr___init_aabortexpr},
-  {(bigint) 4 /* 84: AAbortExpr < AAbortExpr: superclass init_table position */},
+  {(bigint) 4 /* 90: AAbortExpr < AAbortExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AAbortExpr___n_kwabort},
 };
 /* 0: Pointer to the classtable */
@@ -58305,7 +56093,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AAbortExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -58350,13 +56138,13 @@ val_t NEW_AAbortExpr_parser___parser_prod___AAbortExpr___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3518;
+  fra.me.line = 3586;
   fra.me.meth = LOCATE_NEW_AAbortExpr_parser___parser_prod___AAbortExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:3518 */
+  /* parser/parser_prod.nit:3586 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AAbortExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AAbortExpr(fra.me.REG[0]);
   parser___parser_prod___AAbortExpr___empty_init(fra.me.REG[0], init_table);
@@ -58370,7 +56158,7 @@ val_t NEW_AAbortExpr_parser___parser_prod___AAbortExpr___init_aabortexpr(val_t p
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3520;
+  fra.me.line = 3588;
   fra.me.meth = LOCATE_NEW_AAbortExpr_parser___parser_prod___AAbortExpr___init_aabortexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -58378,7 +56166,7 @@ val_t NEW_AAbortExpr_parser___parser_prod___AAbortExpr___init_aabortexpr(val_t p
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:3520 */
+  /* parser/parser_prod.nit:3588 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AAbortExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AAbortExpr(fra.me.REG[1]);
   parser___parser_prod___AAbortExpr___init_aabortexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -58386,38 +56174,38 @@ val_t NEW_AAbortExpr_parser___parser_prod___AAbortExpr___init_aabortexpr(val_t p
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AAbortExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AAbortExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AAbortExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AAbortExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAbortExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AAbortExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AAbortExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AAbortExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AAbortExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AContinueExpr[91] = {
-  {(bigint) 3691 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AContinueExpr[97] = {
+  {(bigint) 3775 /* 0: Identity */},
   {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AContinueExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AContinueExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AContinueExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3087 /* 5: AContinueExpr < ALabelable: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AContinueExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AContinueExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3439 /* 8: AContinueExpr < AEscapeExpr: superclass typecheck marker */},
-  {(bigint) 3691 /* 9: AContinueExpr < AContinueExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AContinueExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AContinueExpr < Prod: superclass typecheck marker */},
+  {(bigint) 2847 /* 6: AContinueExpr < ALabelable: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AContinueExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3511 /* 8: AContinueExpr < AEscapeExpr: superclass typecheck marker */},
+  {(bigint) 3775 /* 9: AContinueExpr < AContinueExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58426,7 +56214,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AContinueExpr[91] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: AContinueExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AContinueExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -58442,6 +56230,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AContinueExpr[91] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -58468,35 +56258,38 @@ const classtable_elt_t VFT_parser___parser_nodes___AContinueExpr[91] = {
   {(bigint) parser___parser_prod___AContinueExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AContinueExpr___visit_all},
-  {(bigint) 2 /* 60: AContinueExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AContinueExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AContinueExpr___after_typing},
-  {(bigint) 4 /* 67: AContinueExpr < ALabelable: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ALabelable___n_label},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 1 /* 70: AContinueExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AContinueExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) 1 /* 74: AContinueExpr < ALabelable: superclass init_table position */},
+  {(bigint) parser___parser_nodes___ALabelable___n_label},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 5 /* 75: AContinueExpr < AExpr: superclass init_table position */},
+  {(bigint) 5 /* 80: AContinueExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AContinueExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 0 /* 82: AContinueExpr < AEscapeExpr: superclass init_table position */},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) 0 /* 88: AContinueExpr < AEscapeExpr: superclass init_table position */},
   {(bigint) syntax___scope___AEscapeExpr___escapable},
   {(bigint) syntax___scope___AContinueExpr___kwname},
   {(bigint) syntax___scope___AEscapeExpr___compute_escapable_block},
   {(bigint) parser___parser_prod___AContinueExpr___empty_init},
   {(bigint) parser___parser_prod___AContinueExpr___init_acontinueexpr},
-  {(bigint) 6 /* 88: AContinueExpr < AContinueExpr: superclass init_table position */},
+  {(bigint) 6 /* 94: AContinueExpr < AContinueExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AContinueExpr___n_kwcontinue},
   {(bigint) parser___parser_nodes___AContinueExpr___n_expr},
 };
@@ -58528,16 +56321,16 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AContinueExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser_nodes.nit:704 */
+  /* parser/parser_nodes.nit:776 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:689 */
+  /* parser/parser_nodes.nit:761 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:705 */
+  /* parser/parser_nodes.nit:777 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -58577,13 +56370,13 @@ val_t NEW_AContinueExpr_parser___parser_prod___AContinueExpr___empty_init(void){
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3549;
+  fra.me.line = 3617;
   fra.me.meth = LOCATE_NEW_AContinueExpr_parser___parser_prod___AContinueExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:3549 */
+  /* parser/parser_prod.nit:3617 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AContinueExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AContinueExpr(fra.me.REG[0]);
   parser___parser_prod___AContinueExpr___empty_init(fra.me.REG[0], init_table);
@@ -58597,7 +56390,7 @@ val_t NEW_AContinueExpr_parser___parser_prod___AContinueExpr___init_acontinueexp
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3551;
+  fra.me.line = 3619;
   fra.me.meth = LOCATE_NEW_AContinueExpr_parser___parser_prod___AContinueExpr___init_acontinueexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -58609,7 +56402,7 @@ val_t NEW_AContinueExpr_parser___parser_prod___AContinueExpr___init_acontinueexp
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3551 */
+  /* parser/parser_prod.nit:3619 */
   fra.me.REG[3] = NEW_parser___parser_nodes___AContinueExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AContinueExpr(fra.me.REG[3]);
   parser___parser_prod___AContinueExpr___init_acontinueexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -58617,38 +56410,38 @@ val_t NEW_AContinueExpr_parser___parser_prod___AContinueExpr___init_acontinueexp
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-val_t NEW_AContinueExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AContinueExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AContinueExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AContinueExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AContinueExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AContinueExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AContinueExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AContinueExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AContinueExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ADoExpr[91] = {
-  {(bigint) 3679 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ADoExpr[97] = {
+  {(bigint) 3763 /* 0: Identity */},
   {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ADoExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ADoExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ADoExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3087 /* 5: ADoExpr < ALabelable: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ADoExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ADoExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3523 /* 8: ADoExpr < AAbsControl: superclass typecheck marker */},
-  {(bigint) 3679 /* 9: ADoExpr < ADoExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ADoExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ADoExpr < Prod: superclass typecheck marker */},
+  {(bigint) 2847 /* 6: ADoExpr < ALabelable: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: ADoExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3603 /* 8: ADoExpr < AAbsControl: superclass typecheck marker */},
+  {(bigint) 3763 /* 9: ADoExpr < ADoExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58657,7 +56450,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ADoExpr[91] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: ADoExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: ADoExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -58673,6 +56466,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ADoExpr[91] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -58699,35 +56494,38 @@ const classtable_elt_t VFT_parser___parser_nodes___ADoExpr[91] = {
   {(bigint) parser___parser_prod___ADoExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ADoExpr___visit_all},
-  {(bigint) 2 /* 60: ADoExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: ADoExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ADoExpr___accept_typing},
   {(bigint) syntax___typing___AExpr___after_typing},
-  {(bigint) 5 /* 67: ADoExpr < ALabelable: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ALabelable___n_label},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 1 /* 70: ADoExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: ADoExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) 5 /* 74: ADoExpr < ALabelable: superclass init_table position */},
+  {(bigint) parser___parser_nodes___ALabelable___n_label},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 4 /* 75: ADoExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: ADoExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ADoExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 0 /* 82: ADoExpr < AAbsControl: superclass init_table position */},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) 0 /* 88: ADoExpr < AAbsControl: superclass init_table position */},
   {(bigint) syntax___typing___AAbsControl___escapable},
   {(bigint) syntax___typing___AAbsControl___process_control},
   {(bigint) syntax___typing___ADoExpr___process_control_inside},
   {(bigint) parser___parser_prod___ADoExpr___empty_init},
   {(bigint) parser___parser_prod___ADoExpr___init_adoexpr},
-  {(bigint) 6 /* 88: ADoExpr < ADoExpr: superclass init_table position */},
+  {(bigint) 6 /* 94: ADoExpr < ADoExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ADoExpr___n_kwdo},
   {(bigint) parser___parser_nodes___ADoExpr___n_block},
 };
@@ -58759,13 +56557,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ADoExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:711 */
+  /* parser/parser_nodes.nit:783 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:689 */
+  /* parser/parser_nodes.nit:761 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -58810,13 +56608,13 @@ val_t NEW_ADoExpr_parser___parser_prod___ADoExpr___empty_init(void){
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3620;
+  fra.me.line = 3688;
   fra.me.meth = LOCATE_NEW_ADoExpr_parser___parser_prod___ADoExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:3620 */
+  /* parser/parser_prod.nit:3688 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ADoExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ADoExpr(fra.me.REG[0]);
   parser___parser_prod___ADoExpr___empty_init(fra.me.REG[0], init_table);
@@ -58830,7 +56628,7 @@ val_t NEW_ADoExpr_parser___parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3622;
+  fra.me.line = 3690;
   fra.me.meth = LOCATE_NEW_ADoExpr_parser___parser_prod___ADoExpr___init_adoexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -58842,7 +56640,7 @@ val_t NEW_ADoExpr_parser___parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3622 */
+  /* parser/parser_prod.nit:3690 */
   fra.me.REG[3] = NEW_parser___parser_nodes___ADoExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ADoExpr(fra.me.REG[3]);
   parser___parser_prod___ADoExpr___init_adoexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -58850,37 +56648,37 @@ val_t NEW_ADoExpr_parser___parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-val_t NEW_ADoExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ADoExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ADoExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ADoExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ADoExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ADoExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ADoExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ADoExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ADoExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AIfExpr[89] = {
-  {(bigint) 3411 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AIfExpr[95] = {
+  {(bigint) 3483 /* 0: Identity */},
   {(bigint) 15 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AIfExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AIfExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AIfExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AIfExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AIfExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AIfExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3483 /* 8: AIfExpr < AIfExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AIfExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AIfExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3411 /* 8: AIfExpr < AIfExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58890,7 +56688,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AIfExpr[89] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AIfExpr < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AIfExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -58906,6 +56704,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AIfExpr[89] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -58932,31 +56732,34 @@ const classtable_elt_t VFT_parser___parser_nodes___AIfExpr[89] = {
   {(bigint) parser___parser_prod___AIfExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AIfExpr___visit_all},
-  {(bigint) 1 /* 60: AIfExpr < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AIfExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___AIfExpr___accept_typing},
   {(bigint) syntax___typing___AExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AIfExpr < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AIfExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AIfExpr < AExpr: superclass init_table position */},
+  {(bigint) 0 /* 80: AIfExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AIfExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) parser___parser_prod___AIfExpr___empty_init},
   {(bigint) parser___parser_prod___AIfExpr___init_aifexpr},
-  {(bigint) 4 /* 84: AIfExpr < AIfExpr: superclass init_table position */},
+  {(bigint) 4 /* 90: AIfExpr < AIfExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AIfExpr___n_kwif},
   {(bigint) parser___parser_nodes___AIfExpr___n_expr},
   {(bigint) parser___parser_nodes___AIfExpr___n_then},
@@ -58991,13 +56794,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AIfExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser_nodes.nit:717 */
+  /* parser/parser_nodes.nit:789 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:718 */
+  /* parser/parser_nodes.nit:790 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -59047,13 +56850,13 @@ val_t NEW_AIfExpr_parser___parser_prod___AIfExpr___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3687;
+  fra.me.line = 3755;
   fra.me.meth = LOCATE_NEW_AIfExpr_parser___parser_prod___AIfExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:3687 */
+  /* parser/parser_prod.nit:3755 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AIfExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AIfExpr(fra.me.REG[0]);
   parser___parser_prod___AIfExpr___empty_init(fra.me.REG[0], init_table);
@@ -59067,7 +56870,7 @@ val_t NEW_AIfExpr_parser___parser_prod___AIfExpr___init_aifexpr(val_t p0, val_t
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3689;
+  fra.me.line = 3757;
   fra.me.meth = LOCATE_NEW_AIfExpr_parser___parser_prod___AIfExpr___init_aifexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -59081,7 +56884,7 @@ val_t NEW_AIfExpr_parser___parser_prod___AIfExpr___init_aifexpr(val_t p0, val_t
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:3689 */
+  /* parser/parser_prod.nit:3757 */
   fra.me.REG[4] = NEW_parser___parser_nodes___AIfExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AIfExpr(fra.me.REG[4]);
   parser___parser_prod___AIfExpr___init_aifexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
@@ -59089,37 +56892,37 @@ val_t NEW_AIfExpr_parser___parser_prod___AIfExpr___init_aifexpr(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[4];
 }
-val_t NEW_AIfExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AIfExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AIfExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AIfExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AIfExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AIfExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AIfExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AIfExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AIfExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AIfexprExpr[91] = {
-  {(bigint) 3407 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AIfexprExpr[97] = {
+  {(bigint) 3479 /* 0: Identity */},
   {(bigint) 17 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AIfexprExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AIfexprExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AIfexprExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AIfexprExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AIfexprExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AIfexprExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3479 /* 8: AIfexprExpr < AIfexprExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AIfexprExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AIfexprExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3407 /* 8: AIfexprExpr < AIfexprExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59129,7 +56932,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AIfexprExpr[91] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AIfexprExpr < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AIfexprExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -59145,6 +56948,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AIfexprExpr[91] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -59171,31 +56976,34 @@ const classtable_elt_t VFT_parser___parser_nodes___AIfexprExpr[91] = {
   {(bigint) parser___parser_prod___AIfexprExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AIfexprExpr___visit_all},
-  {(bigint) 1 /* 60: AIfexprExpr < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AIfexprExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___AIfexprExpr___accept_typing},
   {(bigint) syntax___typing___AExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AIfexprExpr < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AIfexprExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AIfexprExpr < AExpr: superclass init_table position */},
+  {(bigint) 0 /* 80: AIfexprExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AIfexprExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) parser___parser_prod___AIfexprExpr___empty_init},
   {(bigint) parser___parser_prod___AIfexprExpr___init_aifexprexpr},
-  {(bigint) 4 /* 84: AIfexprExpr < AIfexprExpr: superclass init_table position */},
+  {(bigint) 4 /* 90: AIfexprExpr < AIfexprExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AIfexprExpr___n_kwif},
   {(bigint) parser___parser_nodes___AIfexprExpr___n_expr},
   {(bigint) parser___parser_nodes___AIfexprExpr___n_kwthen},
@@ -59233,7 +57041,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AIfexprExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -59303,13 +57111,13 @@ val_t NEW_AIfexprExpr_parser___parser_prod___AIfexprExpr___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3768;
+  fra.me.line = 3836;
   fra.me.meth = LOCATE_NEW_AIfexprExpr_parser___parser_prod___AIfexprExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:3768 */
+  /* parser/parser_prod.nit:3836 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AIfexprExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AIfexprExpr(fra.me.REG[0]);
   parser___parser_prod___AIfexprExpr___empty_init(fra.me.REG[0], init_table);
@@ -59323,7 +57131,7 @@ val_t NEW_AIfexprExpr_parser___parser_prod___AIfexprExpr___init_aifexprexpr(val_
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3770;
+  fra.me.line = 3838;
   fra.me.meth = LOCATE_NEW_AIfexprExpr_parser___parser_prod___AIfexprExpr___init_aifexprexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -59341,7 +57149,7 @@ val_t NEW_AIfexprExpr_parser___parser_prod___AIfexprExpr___init_aifexprexpr(val_
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
-  /* ./parser//parser_prod.nit:3770 */
+  /* parser/parser_prod.nit:3838 */
   fra.me.REG[6] = NEW_parser___parser_nodes___AIfexprExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AIfexprExpr(fra.me.REG[6]);
   parser___parser_prod___AIfexprExpr___init_aifexprexpr(fra.me.REG[6], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], init_table);
@@ -59349,38 +57157,38 @@ val_t NEW_AIfexprExpr_parser___parser_prod___AIfexprExpr___init_aifexprexpr(val_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[6];
 }
-val_t NEW_AIfexprExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AIfexprExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AIfexprExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AIfexprExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AIfexprExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AIfexprExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AIfexprExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AIfexprExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AIfexprExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AWhileExpr[93] = {
-  {(bigint) 3571 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AWhileExpr[99] = {
+  {(bigint) 3651 /* 0: Identity */},
   {(bigint) 16 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AWhileExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AWhileExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AWhileExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3087 /* 5: AWhileExpr < ALabelable: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AWhileExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AWhileExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3523 /* 8: AWhileExpr < AAbsControl: superclass typecheck marker */},
-  {(bigint) 3571 /* 9: AWhileExpr < AWhileExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AWhileExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AWhileExpr < Prod: superclass typecheck marker */},
+  {(bigint) 2847 /* 6: AWhileExpr < ALabelable: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AWhileExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3603 /* 8: AWhileExpr < AAbsControl: superclass typecheck marker */},
+  {(bigint) 3651 /* 9: AWhileExpr < AWhileExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59389,7 +57197,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AWhileExpr[93] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: AWhileExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AWhileExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -59405,6 +57213,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AWhileExpr[93] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -59431,35 +57241,38 @@ const classtable_elt_t VFT_parser___parser_nodes___AWhileExpr[93] = {
   {(bigint) parser___parser_prod___AWhileExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AWhileExpr___visit_all},
-  {(bigint) 2 /* 60: AWhileExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AWhileExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___AWhileExpr___accept_typing},
   {(bigint) syntax___typing___AExpr___after_typing},
-  {(bigint) 5 /* 67: AWhileExpr < ALabelable: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ALabelable___n_label},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 1 /* 70: AWhileExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AWhileExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) 5 /* 74: AWhileExpr < ALabelable: superclass init_table position */},
+  {(bigint) parser___parser_nodes___ALabelable___n_label},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 4 /* 75: AWhileExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AWhileExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AWhileExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 0 /* 82: AWhileExpr < AAbsControl: superclass init_table position */},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) 0 /* 88: AWhileExpr < AAbsControl: superclass init_table position */},
   {(bigint) syntax___typing___AAbsControl___escapable},
   {(bigint) syntax___typing___AAbsControl___process_control},
   {(bigint) syntax___typing___AWhileExpr___process_control_inside},
   {(bigint) parser___parser_prod___AWhileExpr___empty_init},
   {(bigint) parser___parser_prod___AWhileExpr___init_awhileexpr},
-  {(bigint) 6 /* 88: AWhileExpr < AWhileExpr: superclass init_table position */},
+  {(bigint) 6 /* 94: AWhileExpr < AWhileExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AWhileExpr___n_kwwhile},
   {(bigint) parser___parser_nodes___AWhileExpr___n_expr},
   {(bigint) parser___parser_nodes___AWhileExpr___n_kwdo},
@@ -59495,13 +57308,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AWhileExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:735 */
+  /* parser/parser_nodes.nit:807 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:689 */
+  /* parser/parser_nodes.nit:761 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -59556,13 +57369,13 @@ val_t NEW_AWhileExpr_parser___parser_prod___AWhileExpr___empty_init(void){
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3869;
+  fra.me.line = 3937;
   fra.me.meth = LOCATE_NEW_AWhileExpr_parser___parser_prod___AWhileExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:3869 */
+  /* parser/parser_prod.nit:3937 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AWhileExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AWhileExpr(fra.me.REG[0]);
   parser___parser_prod___AWhileExpr___empty_init(fra.me.REG[0], init_table);
@@ -59576,7 +57389,7 @@ val_t NEW_AWhileExpr_parser___parser_prod___AWhileExpr___init_awhileexpr(val_t p
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3871;
+  fra.me.line = 3939;
   fra.me.meth = LOCATE_NEW_AWhileExpr_parser___parser_prod___AWhileExpr___init_awhileexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -59592,7 +57405,7 @@ val_t NEW_AWhileExpr_parser___parser_prod___AWhileExpr___init_awhileexpr(val_t p
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:3871 */
+  /* parser/parser_prod.nit:3939 */
   fra.me.REG[5] = NEW_parser___parser_nodes___AWhileExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AWhileExpr(fra.me.REG[5]);
   parser___parser_prod___AWhileExpr___init_awhileexpr(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
@@ -59600,38 +57413,38 @@ val_t NEW_AWhileExpr_parser___parser_prod___AWhileExpr___init_awhileexpr(val_t p
   stack_frame_head = fra.me.prev;
   return fra.me.REG[5];
 }
-val_t NEW_AWhileExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AWhileExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AWhileExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AWhileExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AWhileExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AWhileExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AWhileExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AWhileExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AWhileExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ALoopExpr[91] = {
-  {(bigint) 3627 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ALoopExpr[97] = {
+  {(bigint) 3707 /* 0: Identity */},
   {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ALoopExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ALoopExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ALoopExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3087 /* 5: ALoopExpr < ALabelable: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ALoopExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ALoopExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3523 /* 8: ALoopExpr < AAbsControl: superclass typecheck marker */},
-  {(bigint) 3627 /* 9: ALoopExpr < ALoopExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ALoopExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ALoopExpr < Prod: superclass typecheck marker */},
+  {(bigint) 2847 /* 6: ALoopExpr < ALabelable: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: ALoopExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3603 /* 8: ALoopExpr < AAbsControl: superclass typecheck marker */},
+  {(bigint) 3707 /* 9: ALoopExpr < ALoopExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59640,7 +57453,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ALoopExpr[91] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: ALoopExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: ALoopExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -59656,6 +57469,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ALoopExpr[91] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -59682,35 +57497,38 @@ const classtable_elt_t VFT_parser___parser_nodes___ALoopExpr[91] = {
   {(bigint) parser___parser_prod___ALoopExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ALoopExpr___visit_all},
-  {(bigint) 2 /* 60: ALoopExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: ALoopExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ALoopExpr___accept_typing},
   {(bigint) syntax___typing___AExpr___after_typing},
-  {(bigint) 5 /* 67: ALoopExpr < ALabelable: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ALabelable___n_label},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 1 /* 70: ALoopExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: ALoopExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) 5 /* 74: ALoopExpr < ALabelable: superclass init_table position */},
+  {(bigint) parser___parser_nodes___ALabelable___n_label},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 4 /* 75: ALoopExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: ALoopExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ALoopExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 0 /* 82: ALoopExpr < AAbsControl: superclass init_table position */},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) 0 /* 88: ALoopExpr < AAbsControl: superclass init_table position */},
   {(bigint) syntax___typing___AAbsControl___escapable},
   {(bigint) syntax___typing___AAbsControl___process_control},
   {(bigint) syntax___typing___ALoopExpr___process_control_inside},
   {(bigint) parser___parser_prod___ALoopExpr___empty_init},
   {(bigint) parser___parser_prod___ALoopExpr___init_aloopexpr},
-  {(bigint) 6 /* 88: ALoopExpr < ALoopExpr: superclass init_table position */},
+  {(bigint) 6 /* 94: ALoopExpr < ALoopExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ALoopExpr___n_kwloop},
   {(bigint) parser___parser_nodes___ALoopExpr___n_block},
 };
@@ -59742,13 +57560,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ALoopExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:741 */
+  /* parser/parser_nodes.nit:813 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:689 */
+  /* parser/parser_nodes.nit:761 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -59793,13 +57611,13 @@ val_t NEW_ALoopExpr_parser___parser_prod___ALoopExpr___empty_init(void){
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3964;
+  fra.me.line = 4032;
   fra.me.meth = LOCATE_NEW_ALoopExpr_parser___parser_prod___ALoopExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:3964 */
+  /* parser/parser_prod.nit:4032 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ALoopExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ALoopExpr(fra.me.REG[0]);
   parser___parser_prod___ALoopExpr___empty_init(fra.me.REG[0], init_table);
@@ -59813,7 +57631,7 @@ val_t NEW_ALoopExpr_parser___parser_prod___ALoopExpr___init_aloopexpr(val_t p0,
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 3966;
+  fra.me.line = 4034;
   fra.me.meth = LOCATE_NEW_ALoopExpr_parser___parser_prod___ALoopExpr___init_aloopexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -59825,7 +57643,7 @@ val_t NEW_ALoopExpr_parser___parser_prod___ALoopExpr___init_aloopexpr(val_t p0,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3966 */
+  /* parser/parser_prod.nit:4034 */
   fra.me.REG[3] = NEW_parser___parser_nodes___ALoopExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ALoopExpr(fra.me.REG[3]);
   parser___parser_prod___ALoopExpr___init_aloopexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -59833,38 +57651,38 @@ val_t NEW_ALoopExpr_parser___parser_prod___ALoopExpr___init_aloopexpr(val_t p0,
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-val_t NEW_ALoopExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ALoopExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ALoopExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ALoopExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ALoopExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ALoopExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ALoopExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ALoopExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ALoopExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AForExpr[96] = {
-  {(bigint) 3659 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AForExpr[102] = {
+  {(bigint) 3743 /* 0: Identity */},
   {(bigint) 18 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AForExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AForExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AForExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3087 /* 5: AForExpr < ALabelable: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AForExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AForExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3523 /* 8: AForExpr < AAbsControl: superclass typecheck marker */},
-  {(bigint) 3659 /* 9: AForExpr < AForExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AForExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AForExpr < Prod: superclass typecheck marker */},
+  {(bigint) 2847 /* 6: AForExpr < ALabelable: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AForExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3603 /* 8: AForExpr < AAbsControl: superclass typecheck marker */},
+  {(bigint) 3743 /* 9: AForExpr < AForExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59873,7 +57691,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AForExpr[96] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: AForExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AForExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -59889,6 +57707,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AForExpr[96] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -59915,29 +57735,32 @@ const classtable_elt_t VFT_parser___parser_nodes___AForExpr[96] = {
   {(bigint) parser___parser_prod___AForExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AForExpr___visit_all},
-  {(bigint) 2 /* 60: AForExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AForExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___AForExpr___accept_typing},
   {(bigint) syntax___typing___AExpr___after_typing},
-  {(bigint) 5 /* 67: AForExpr < ALabelable: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ALabelable___n_label},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 1 /* 70: AForExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AForExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) 5 /* 74: AForExpr < ALabelable: superclass init_table position */},
+  {(bigint) parser___parser_nodes___ALabelable___n_label},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 4 /* 75: AForExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AForExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AForExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 0 /* 82: AForExpr < AAbsControl: superclass init_table position */},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) 0 /* 88: AForExpr < AAbsControl: superclass init_table position */},
   {(bigint) syntax___typing___AAbsControl___escapable},
   {(bigint) syntax___typing___AAbsControl___process_control},
   {(bigint) syntax___typing___AForExpr___process_control_inside},
@@ -59945,7 +57768,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AForExpr[96] = {
   {(bigint) syntax___typing___AForExpr___variables},
   {(bigint) parser___parser_prod___AForExpr___empty_init},
   {(bigint) parser___parser_prod___AForExpr___init_aforexpr},
-  {(bigint) 6 /* 90: AForExpr < AForExpr: superclass init_table position */},
+  {(bigint) 6 /* 96: AForExpr < AForExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AForExpr___n_kwfor},
   {(bigint) parser___parser_nodes___AForExpr___n_ids},
   {(bigint) parser___parser_nodes___AForExpr___n_expr},
@@ -59984,16 +57807,16 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AForExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:747 */
+  /* parser/parser_nodes.nit:819 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:750 */
+  /* parser/parser_nodes.nit:822 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:689 */
+  /* parser/parser_nodes.nit:761 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -60053,13 +57876,13 @@ val_t NEW_AForExpr_parser___parser_prod___AForExpr___empty_init(void){
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4031;
+  fra.me.line = 4099;
   fra.me.meth = LOCATE_NEW_AForExpr_parser___parser_prod___AForExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4031 */
+  /* parser/parser_prod.nit:4099 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AForExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AForExpr(fra.me.REG[0]);
   parser___parser_prod___AForExpr___empty_init(fra.me.REG[0], init_table);
@@ -60073,7 +57896,7 @@ val_t NEW_AForExpr_parser___parser_prod___AForExpr___init_aforexpr(val_t p0, val
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4033;
+  fra.me.line = 4101;
   fra.me.meth = LOCATE_NEW_AForExpr_parser___parser_prod___AForExpr___init_aforexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -60091,7 +57914,7 @@ val_t NEW_AForExpr_parser___parser_prod___AForExpr___init_aforexpr(val_t p0, val
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
-  /* ./parser//parser_prod.nit:4033 */
+  /* parser/parser_prod.nit:4101 */
   fra.me.REG[6] = NEW_parser___parser_nodes___AForExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AForExpr(fra.me.REG[6]);
   parser___parser_prod___AForExpr___init_aforexpr(fra.me.REG[6], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], init_table);
@@ -60099,1141 +57922,47 @@ val_t NEW_AForExpr_parser___parser_prod___AForExpr___init_aforexpr(val_t p0, val
   stack_frame_head = fra.me.prev;
   return fra.me.REG[6];
 }
-val_t NEW_AForExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AForExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AForExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AForExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AForExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AForExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AAssertExpr[89] = {
-  {(bigint) 3507 /* 0: Identity */},
-  {(bigint) 15 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AAssertExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AAssertExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AAssertExpr < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AAssertExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AAssertExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3507 /* 8: AAssertExpr < AAssertExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AAssertExpr < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___AAssertExpr___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___AAssertExpr___visit_all},
-  {(bigint) 1 /* 60: AAssertExpr < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___AAssertExpr___accept_typing},
-  {(bigint) syntax___typing___AExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AAssertExpr < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExpr___is_typed},
-  {(bigint) syntax___typing___AExpr___is_statement},
-  {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AAssertExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___AAssertExpr___generate_icode},
-  {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
-  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
-  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) parser___parser_prod___AAssertExpr___empty_init},
-  {(bigint) parser___parser_prod___AAssertExpr___init_aassertexpr},
-  {(bigint) 4 /* 84: AAssertExpr < AAssertExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AAssertExpr___n_kwassert},
-  {(bigint) parser___parser_nodes___AAssertExpr___n_id},
-  {(bigint) parser___parser_nodes___AAssertExpr___n_expr},
-  {(bigint) parser___parser_nodes___AAssertExpr___n_else},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AAssertExpr::_parent */
-/* 3: Attribute AAssertExpr::_location */
-/* 4: Attribute AAssertExpr::_first_location */
-/* 5: Attribute AAssertExpr::_last_location */
-/* Instance Hole :( */
-/* 7: Attribute AAssertExpr::_is_typed */
-/* 8: Attribute AAssertExpr::_stype */
-/* 9: Attribute AAssertExpr::_if_true_flow_ctx */
-/* 10: Attribute AAssertExpr::_if_false_flow_ctx */
-/* 11: Attribute AAssertExpr::_n_kwassert */
-/* 12: Attribute AAssertExpr::_n_id */
-/* 13: Attribute AAssertExpr::_n_expr */
-/* 14: Attribute AAssertExpr::_n_else */
-void INIT_ATTRIBUTES__parser___parser_nodes___AAssertExpr(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAssertExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser_nodes.nit:755 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:757 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AAssertExpr(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 15);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AAssertExpr;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AAssertExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AAssertExpr;
-  fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AAssertExpr_parser___parser_prod___AAssertExpr___empty_init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 4147;
-  fra.me.meth = LOCATE_NEW_AAssertExpr_parser___parser_prod___AAssertExpr___empty_init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4147 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___AAssertExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAssertExpr(fra.me.REG[0]);
-  parser___parser_prod___AAssertExpr___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AAssertExpr(fra.me.REG[0]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AForExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AForExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AForExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_AAssertExpr_parser___parser_prod___AAssertExpr___init_aassertexpr(val_t p0, val_t p1, val_t p2, val_t p3){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 4149;
-  fra.me.meth = LOCATE_NEW_AAssertExpr_parser___parser_prod___AAssertExpr___init_aassertexpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:4149 */
-  fra.me.REG[4] = NEW_parser___parser_nodes___AAssertExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAssertExpr(fra.me.REG[4]);
-  parser___parser_prod___AAssertExpr___init_aassertexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
-  CHECKNEW_parser___parser_nodes___AAssertExpr(fra.me.REG[4]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[4];
-}
-val_t NEW_AAssertExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AAssertExpr_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AAssertExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAssertExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AAssertExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AAssignFormExpr[88] = {
-  {(bigint) 3503 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AAssertExpr[95] = {
+  {(bigint) 3587 /* 0: Identity */},
   {(bigint) 15 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AAssignFormExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AAssignFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AAssignFormExpr < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AAssignFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AAssignFormExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3503 /* 8: AAssignFormExpr < AAssignFormExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AAssignFormExpr < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: AAssignFormExpr < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___AExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AAssignFormExpr < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExpr___is_typed},
-  {(bigint) syntax___typing___AExpr___is_statement},
-  {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AAssignFormExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___AExpr___generate_icode},
-  {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
-  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
-  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 4 /* 85: AAssignFormExpr < AAssignFormExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AAssignFormExpr___n_assign},
-  {(bigint) parser___parser_nodes___AAssignFormExpr___n_value},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AAssignFormExpr::_parent */
-/* 3: Attribute AAssignFormExpr::_location */
-/* 4: Attribute AAssignFormExpr::_first_location */
-/* 5: Attribute AAssignFormExpr::_last_location */
-/* Instance Hole :( */
-/* 7: Attribute AAssignFormExpr::_is_typed */
-/* 8: Attribute AAssignFormExpr::_stype */
-/* 9: Attribute AAssignFormExpr::_if_true_flow_ctx */
-/* 10: Attribute AAssignFormExpr::_if_false_flow_ctx */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* 13: Attribute AAssignFormExpr::_n_assign */
-/* 14: Attribute AAssignFormExpr::_n_value */
-void INIT_ATTRIBUTES__parser___parser_nodes___AAssignFormExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAssignFormExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AAssignFormExpr(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 15);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AAssignFormExpr;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AAssignFormExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AAssignFormExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AAssignFormExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AAssignFormExpr_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AAssignFormExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAssignFormExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AAssignFormExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AReassignFormExpr[90] = {
-  {(bigint) 3311 /* 0: Identity */},
-  {(bigint) 16 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AReassignFormExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AReassignFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AReassignFormExpr < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AReassignFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AReassignFormExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3311 /* 8: AReassignFormExpr < AReassignFormExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AReassignFormExpr < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: AReassignFormExpr < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___AExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AReassignFormExpr < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExpr___is_typed},
-  {(bigint) syntax___typing___AExpr___is_statement},
-  {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AReassignFormExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___AExpr___generate_icode},
-  {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
-  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
-  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) syntax___typing___AReassignFormExpr___do_rvalue_typing},
-  {(bigint) syntax___typing___AReassignFormExpr___assign_method},
-  {(bigint) 4 /* 87: AReassignFormExpr < AReassignFormExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AReassignFormExpr___n_assign_op},
-  {(bigint) parser___parser_nodes___AReassignFormExpr___n_value},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AReassignFormExpr::_parent */
-/* 3: Attribute AReassignFormExpr::_location */
-/* 4: Attribute AReassignFormExpr::_first_location */
-/* 5: Attribute AReassignFormExpr::_last_location */
-/* Instance Hole :( */
-/* 7: Attribute AReassignFormExpr::_is_typed */
-/* 8: Attribute AReassignFormExpr::_stype */
-/* 9: Attribute AReassignFormExpr::_if_true_flow_ctx */
-/* 10: Attribute AReassignFormExpr::_if_false_flow_ctx */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* 13: Attribute AReassignFormExpr::_assign_method */
-/* 14: Attribute AReassignFormExpr::_n_assign_op */
-/* 15: Attribute AReassignFormExpr::_n_value */
-void INIT_ATTRIBUTES__parser___parser_nodes___AReassignFormExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AReassignFormExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AReassignFormExpr(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 16);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AReassignFormExpr;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AReassignFormExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AReassignFormExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AReassignFormExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AReassignFormExpr_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AReassignFormExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AReassignFormExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AReassignFormExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AOnceExpr[89] = {
-  {(bigint) 3615 /* 0: Identity */},
-  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AOnceExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AOnceExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AOnceExpr < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AOnceExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AOnceExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3327 /* 8: AOnceExpr < AProxyExpr: superclass typecheck marker */},
-  {(bigint) 3615 /* 9: AOnceExpr < AOnceExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: AOnceExpr < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___AOnceExpr___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___AOnceExpr___visit_all},
-  {(bigint) 2 /* 60: AOnceExpr < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___AOnceExpr___accept_typing},
-  {(bigint) syntax___typing___AProxyExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 1 /* 70: AOnceExpr < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExpr___is_typed},
-  {(bigint) syntax___typing___AExpr___is_statement},
-  {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 4 /* 75: AOnceExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___AOnceExpr___generate_icode},
-  {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
-  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
-  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 0 /* 82: AOnceExpr < AProxyExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AProxyExpr___n_expr},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) parser___parser_prod___AOnceExpr___empty_init},
-  {(bigint) parser___parser_prod___AOnceExpr___init_aonceexpr},
-  {(bigint) 5 /* 87: AOnceExpr < AOnceExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AOnceExpr___n_kwonce},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AOnceExpr::_parent */
-/* 3: Attribute AOnceExpr::_location */
-/* 4: Attribute AOnceExpr::_first_location */
-/* 5: Attribute AOnceExpr::_last_location */
-/* Instance Hole :( */
-/* 7: Attribute AOnceExpr::_is_typed */
-/* 8: Attribute AOnceExpr::_stype */
-/* 9: Attribute AOnceExpr::_if_true_flow_ctx */
-/* 10: Attribute AOnceExpr::_if_false_flow_ctx */
-/* 11: Attribute AOnceExpr::_n_expr */
-/* 12: Attribute AOnceExpr::_n_kwonce */
-void INIT_ATTRIBUTES__parser___parser_nodes___AOnceExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AOnceExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AOnceExpr(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AOnceExpr;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AOnceExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AOnceExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AOnceExpr_parser___parser_prod___AOnceExpr___empty_init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 4228;
-  fra.me.meth = LOCATE_NEW_AOnceExpr_parser___parser_prod___AOnceExpr___empty_init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4228 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___AOnceExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AOnceExpr(fra.me.REG[0]);
-  parser___parser_prod___AOnceExpr___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AOnceExpr(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t NEW_AOnceExpr_parser___parser_prod___AOnceExpr___init_aonceexpr(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 4230;
-  fra.me.meth = LOCATE_NEW_AOnceExpr_parser___parser_prod___AOnceExpr___init_aonceexpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4230 */
-  fra.me.REG[2] = NEW_parser___parser_nodes___AOnceExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AOnceExpr(fra.me.REG[2]);
-  parser___parser_prod___AOnceExpr___init_aonceexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_parser___parser_nodes___AOnceExpr(fra.me.REG[2]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
-}
-val_t NEW_AOnceExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AOnceExpr_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AOnceExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AOnceExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AOnceExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___ASendExpr[111] = {
-  {(bigint) 3779 /* 0: Identity */},
-  {(bigint) 20 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ASendExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ASendExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ASendExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: ASendExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ASendExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ASendExpr < AExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: ASendExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: ASendExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: ASendExpr < ASendExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: ASendExpr < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ASendExpr___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ASendExpr___visit_all},
-  {(bigint) 4 /* 60: ASendExpr < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: ASendExpr < ASuperInitCall: superclass init_table position */},
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: ASendExpr < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExpr___is_typed},
-  {(bigint) syntax___typing___AExpr___is_statement},
-  {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: ASendExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
-  {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
-  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
-  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) "AAssertExpr" /* 2: Class Name */},
+  {(bigint) 3 /* 3: AAssertExpr < Object: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AAssertExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AAssertExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AAssertExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3587 /* 8: AAssertExpr < AAssertExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___compute_raw_arguments},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: ASendExpr < AAbsAbsSendExpr: superclass init_table position */},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
-  {(bigint) syntax___typing___AAbsSendExpr___do_typing},
-  {(bigint) syntax___typing___AAbsSendExpr___get_property},
-  {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: ASendExpr < AAbsSendExpr: superclass init_table position */},
-  {(bigint) syntax___typing___AAbsSendExpr___prop},
-  {(bigint) syntax___typing___AAbsSendExpr___return_type},
-  {(bigint) syntax___typing___ASendExpr___name},
-  {(bigint) syntax___typing___ASendExpr___do_all_typing},
-  {(bigint) syntax___typing___ASendExpr___closure_defs},
-  {(bigint) parser___parser_prod___ASendExpr___empty_init},
-  {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: ASendExpr < ASendExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ASendExpr___n_expr},
-  {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute ASendExpr::_parent */
-/* 3: Attribute ASendExpr::_location */
-/* 4: Attribute ASendExpr::_first_location */
-/* 5: Attribute ASendExpr::_last_location */
-/* Instance Hole :( */
-/* 7: Attribute ASendExpr::_is_typed */
-/* 8: Attribute ASendExpr::_stype */
-/* 9: Attribute ASendExpr::_if_true_flow_ctx */
-/* 10: Attribute ASendExpr::_if_false_flow_ctx */
-/* 11: Attribute ASendExpr::_prop_signature */
-/* 12: Attribute ASendExpr::_raw_arguments_cache */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* 16: Attribute ASendExpr::_prop */
-/* 17: Attribute ASendExpr::_return_type */
-/* 18: Attribute ASendExpr::_n_expr */
-/* 19: Attribute ASendExpr::_n_closure_defs */
-void INIT_ATTRIBUTES__parser___parser_nodes___ASendExpr(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ASendExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser_nodes.nit:776 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:1388 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___ASendExpr(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 20);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___ASendExpr;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___ASendExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___ASendExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_ASendExpr_parser___parser_prod___ASendExpr___empty_init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
-  fra.me.meth = LOCATE_NEW_ASendExpr_parser___parser_prod___ASendExpr___empty_init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___ASendExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ASendExpr(fra.me.REG[0]);
-  parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ASendExpr(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t NEW_ASendExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
-  fra.me.meth = LOCATE_NEW_ASendExpr_parser___parser_prod___ASendExpr___init_asendexpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
-  fra.me.REG[1] = NEW_parser___parser_nodes___ASendExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ASendExpr(fra.me.REG[1]);
-  parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ASendExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-val_t NEW_ASendExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ASendExpr_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ASendExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ASendExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ASendExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___ABinopExpr[115] = {
-  {(bigint) 3803 /* 0: Identity */},
-  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ABinopExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ABinopExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ABinopExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: ABinopExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ABinopExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ABinopExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: ABinopExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: ABinopExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: ABinopExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3803 /* 12: ABinopExpr < ABinopExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: ABinopExpr < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AAssertExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -61249,6 +57978,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ABinopExpr[115] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -61272,272 +58003,200 @@ const classtable_elt_t VFT_parser___parser_nodes___ABinopExpr[115] = {
   {(bigint) parser___parser_prod___ANode___parent},
   {(bigint) parser___parser_prod___ANode___parent__eq},
   {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ABinopExpr___replace_child},
+  {(bigint) parser___parser_prod___AAssertExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ABinopExpr___visit_all},
-  {(bigint) 4 /* 60: ABinopExpr < ANode: superclass init_table position */},
+  {(bigint) parser___parser_prod___AAssertExpr___visit_all},
+  {(bigint) 2 /* 63: AAssertExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: ABinopExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___typing___AAssertExpr___accept_typing},
+  {(bigint) syntax___typing___AExpr___after_typing},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: ABinopExpr < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AAssertExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: ABinopExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
+  {(bigint) 0 /* 80: AAssertExpr < AExpr: superclass init_table position */},
+  {(bigint) syntax___icode_generation___AAssertExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
-  {(bigint) syntax___typing___ABinopExpr___compute_raw_arguments},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: ABinopExpr < AAbsAbsSendExpr: superclass init_table position */},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
-  {(bigint) syntax___typing___AAbsSendExpr___do_typing},
-  {(bigint) syntax___typing___AAbsSendExpr___get_property},
-  {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: ABinopExpr < AAbsSendExpr: superclass init_table position */},
-  {(bigint) syntax___typing___AAbsSendExpr___prop},
-  {(bigint) syntax___typing___AAbsSendExpr___return_type},
-  {(bigint) syntax___typing___ASendExpr___name},
-  {(bigint) syntax___typing___ASendExpr___do_all_typing},
-  {(bigint) syntax___typing___ASendExpr___closure_defs},
-  {(bigint) parser___parser_prod___ASendExpr___empty_init},
-  {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: ABinopExpr < ASendExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ASendExpr___n_expr},
-  {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
-  {(bigint) parser___parser_prod___ABinopExpr___empty_init},
-  {(bigint) parser___parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 8 /* 113: ABinopExpr < ABinopExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ABinopExpr___n_expr2},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) parser___parser_prod___AAssertExpr___empty_init},
+  {(bigint) parser___parser_prod___AAssertExpr___init_aassertexpr},
+  {(bigint) 4 /* 90: AAssertExpr < AAssertExpr: superclass init_table position */},
+  {(bigint) parser___parser_nodes___AAssertExpr___n_kwassert},
+  {(bigint) parser___parser_nodes___AAssertExpr___n_id},
+  {(bigint) parser___parser_nodes___AAssertExpr___n_expr},
+  {(bigint) parser___parser_nodes___AAssertExpr___n_else},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ABinopExpr::_parent */
-/* 3: Attribute ABinopExpr::_location */
-/* 4: Attribute ABinopExpr::_first_location */
-/* 5: Attribute ABinopExpr::_last_location */
-/* Instance Hole :( */
-/* 7: Attribute ABinopExpr::_is_typed */
-/* 8: Attribute ABinopExpr::_stype */
-/* 9: Attribute ABinopExpr::_if_true_flow_ctx */
-/* 10: Attribute ABinopExpr::_if_false_flow_ctx */
-/* 11: Attribute ABinopExpr::_prop_signature */
-/* 12: Attribute ABinopExpr::_raw_arguments_cache */
-/* Instance Hole :( */
-/* Instance Hole :( */
+/* 2: Attribute AAssertExpr::_parent */
+/* 3: Attribute AAssertExpr::_location */
+/* 4: Attribute AAssertExpr::_first_location */
+/* 5: Attribute AAssertExpr::_last_location */
 /* Instance Hole :( */
-/* 16: Attribute ABinopExpr::_prop */
-/* 17: Attribute ABinopExpr::_return_type */
-/* 18: Attribute ABinopExpr::_n_expr */
-/* 19: Attribute ABinopExpr::_n_closure_defs */
-/* 20: Attribute ABinopExpr::_n_expr2 */
-void INIT_ATTRIBUTES__parser___parser_nodes___ABinopExpr(val_t p0){
+/* 7: Attribute AAssertExpr::_is_typed */
+/* 8: Attribute AAssertExpr::_stype */
+/* 9: Attribute AAssertExpr::_if_true_flow_ctx */
+/* 10: Attribute AAssertExpr::_if_false_flow_ctx */
+/* 11: Attribute AAssertExpr::_n_kwassert */
+/* 12: Attribute AAssertExpr::_n_id */
+/* 13: Attribute AAssertExpr::_n_expr */
+/* 14: Attribute AAssertExpr::_n_else */
+void INIT_ATTRIBUTES__parser___parser_nodes___AAssertExpr(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ABinopExpr;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAssertExpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:776 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* parser/parser_nodes.nit:827 */
   fra.me.REG[1] = NIT_NULL;
-  ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
+  ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = fra.me.REG[1];
+  /* parser/parser_nodes.nit:829 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___parser_nodes___ABinopExpr(void)
+val_t NEW_parser___parser_nodes___AAssertExpr(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 21);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___ABinopExpr;
+  obj = alloc(sizeof(val_t) * 15);
+  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AAssertExpr;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___parser_nodes___ABinopExpr(val_t p0){
+void CHECKNEW_parser___parser_nodes___AAssertExpr(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___ABinopExpr;
+  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AAssertExpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ABinopExpr_parser___parser_prod___ASendExpr___empty_init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
-  fra.me.meth = LOCATE_NEW_ABinopExpr_parser___parser_prod___ASendExpr___empty_init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___ABinopExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ABinopExpr(fra.me.REG[0]);
-  parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ABinopExpr(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t NEW_ABinopExpr_parser___parser_prod___ABinopExpr___empty_init(void){
+val_t NEW_AAssertExpr_parser___parser_prod___AAssertExpr___empty_init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4304;
-  fra.me.meth = LOCATE_NEW_ABinopExpr_parser___parser_prod___ABinopExpr___empty_init;
+  fra.me.line = 4215;
+  fra.me.meth = LOCATE_NEW_AAssertExpr_parser___parser_prod___AAssertExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4304 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___ABinopExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ABinopExpr(fra.me.REG[0]);
-  parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ABinopExpr(fra.me.REG[0]);
+  /* parser/parser_prod.nit:4215 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AAssertExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AAssertExpr(fra.me.REG[0]);
+  parser___parser_prod___AAssertExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AAssertExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_ABinopExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+val_t NEW_AAssertExpr_parser___parser_prod___AAssertExpr___init_aassertexpr(val_t p0, val_t p1, val_t p2, val_t p3){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t tmp;
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4306;
-  fra.me.meth = LOCATE_NEW_ABinopExpr_parser___parser_prod___ABinopExpr___init_abinopexpr;
+  fra.me.line = 4217;
+  fra.me.meth = LOCATE_NEW_AAssertExpr_parser___parser_prod___AAssertExpr___init_aassertexpr;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
+  fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4306 */
-  fra.me.REG[2] = NEW_parser___parser_nodes___ABinopExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ABinopExpr(fra.me.REG[2]);
-  parser___parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_parser___parser_nodes___ABinopExpr(fra.me.REG[2]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
-}
-val_t NEW_ABinopExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ABinopExpr_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ABinopExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ABinopExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ABinopExpr(fra.me.REG[1]);
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  /* parser/parser_prod.nit:4217 */
+  fra.me.REG[4] = NEW_parser___parser_nodes___AAssertExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AAssertExpr(fra.me.REG[4]);
+  parser___parser_prod___AAssertExpr___init_aassertexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
+  CHECKNEW_parser___parser_nodes___AAssertExpr(fra.me.REG[4]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[4];
 }
-val_t NEW_ABinopExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AAssertExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
-  fra.me.meth = LOCATE_NEW_ABinopExpr_parser___parser_prod___ASendExpr___init_asendexpr;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_AAssertExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
-  fra.me.REG[1] = NEW_parser___parser_nodes___ABinopExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ABinopExpr(fra.me.REG[1]);
-  parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ABinopExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AAssertExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AAssertExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AAssertExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ABoolExpr[83] = {
-  {(bigint) 3483 /* 0: Identity */},
-  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ABoolExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ABoolExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ABoolExpr < ANode: superclass typecheck marker */},
+const classtable_elt_t VFT_parser___parser_nodes___AOnceExpr[95] = {
+  {(bigint) 3695 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "AOnceExpr" /* 2: Class Name */},
+  {(bigint) 3 /* 3: AOnceExpr < Object: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AOnceExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AOnceExpr < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ABoolExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ABoolExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3483 /* 8: ABoolExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AOnceExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3391 /* 8: AOnceExpr < AProxyExpr: superclass typecheck marker */},
+  {(bigint) 3695 /* 9: AOnceExpr < AOnceExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61547,7 +58206,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ABoolExpr[83] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ABoolExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AOnceExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -61563,6 +58222,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ABoolExpr[83] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -61586,84 +58247,105 @@ const classtable_elt_t VFT_parser___parser_nodes___ABoolExpr[83] = {
   {(bigint) parser___parser_prod___ANode___parent},
   {(bigint) parser___parser_prod___ANode___parent__eq},
   {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
+  {(bigint) parser___parser_prod___AOnceExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: ABoolExpr < ANode: superclass init_table position */},
+  {(bigint) parser___parser_prod___AOnceExpr___visit_all},
+  {(bigint) 3 /* 63: AOnceExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___ABoolExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) syntax___typing___AOnceExpr___accept_typing},
+  {(bigint) syntax___typing___AProxyExpr___after_typing},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ABoolExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AOnceExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: ABoolExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___AExpr___generate_icode},
+  {(bigint) 1 /* 80: AOnceExpr < AExpr: superclass init_table position */},
+  {(bigint) syntax___icode_generation___AOnceExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
+  {(bigint) syntax___typing___AProxyExpr___is_self},
+  {(bigint) syntax___typing___AProxyExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 4 /* 82: ABoolExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) 0 /* 88: AOnceExpr < AProxyExpr: superclass init_table position */},
+  {(bigint) parser___parser_nodes___AProxyExpr___n_expr},
+  {(bigint) syntax___typing___ANode___accept_typing},
+  {(bigint) parser___parser_prod___AOnceExpr___empty_init},
+  {(bigint) parser___parser_prod___AOnceExpr___init_aonceexpr},
+  {(bigint) 5 /* 93: AOnceExpr < AOnceExpr: superclass init_table position */},
+  {(bigint) parser___parser_nodes___AOnceExpr___n_kwonce},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ABoolExpr::_parent */
-/* 3: Attribute ABoolExpr::_location */
-/* 4: Attribute ABoolExpr::_first_location */
-/* 5: Attribute ABoolExpr::_last_location */
+/* 2: Attribute AOnceExpr::_parent */
+/* 3: Attribute AOnceExpr::_location */
+/* 4: Attribute AOnceExpr::_first_location */
+/* 5: Attribute AOnceExpr::_last_location */
 /* Instance Hole :( */
-/* 7: Attribute ABoolExpr::_is_typed */
-/* 8: Attribute ABoolExpr::_stype */
-/* 9: Attribute ABoolExpr::_if_true_flow_ctx */
-/* 10: Attribute ABoolExpr::_if_false_flow_ctx */
-void INIT_ATTRIBUTES__parser___parser_nodes___ABoolExpr(val_t p0){
+/* 7: Attribute AOnceExpr::_is_typed */
+/* 8: Attribute AOnceExpr::_stype */
+/* 9: Attribute AOnceExpr::_if_true_flow_ctx */
+/* 10: Attribute AOnceExpr::_if_false_flow_ctx */
+/* 11: Attribute AOnceExpr::_n_expr */
+/* 12: Attribute AOnceExpr::_n_kwonce */
+void INIT_ATTRIBUTES__parser___parser_nodes___AOnceExpr(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ABoolExpr;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AOnceExpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___parser_nodes___ABoolExpr(void)
+val_t NEW_parser___parser_nodes___AOnceExpr(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 11);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___ABoolExpr;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AOnceExpr;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___parser_nodes___ABoolExpr(val_t p0){
+void CHECKNEW_parser___parser_nodes___AOnceExpr(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___ABoolExpr;
+  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AOnceExpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_nitc, 0);
+  }
   REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -61671,38 +58353,82 @@ void CHECKNEW_parser___parser_nodes___ABoolExpr(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ABoolExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AOnceExpr_parser___parser_prod___AOnceExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ABoolExpr_parser___parser_nodes___ANode___init;
+  fra.me.line = 4296;
+  fra.me.meth = LOCATE_NEW_AOnceExpr_parser___parser_prod___AOnceExpr___empty_init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_prod.nit:4296 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AOnceExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AOnceExpr(fra.me.REG[0]);
+  parser___parser_prod___AOnceExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AOnceExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AOnceExpr_parser___parser_prod___AOnceExpr___init_aonceexpr(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 4298;
+  fra.me.meth = LOCATE_NEW_AOnceExpr_parser___parser_prod___AOnceExpr___init_aonceexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ABoolExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ABoolExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ABoolExpr(fra.me.REG[1]);
+  fra.me.REG[1] = p1;
+  /* parser/parser_prod.nit:4298 */
+  fra.me.REG[2] = NEW_parser___parser_nodes___AOnceExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AOnceExpr(fra.me.REG[2]);
+  parser___parser_prod___AOnceExpr___init_aonceexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_parser___parser_nodes___AOnceExpr(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[2];
+}
+val_t NEW_AOnceExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_AOnceExpr_parser___parser_nodes___ANode___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AOnceExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AOnceExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AOnceExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AOrExpr[88] = {
-  {(bigint) 3607 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AOrExpr[94] = {
+  {(bigint) 3687 /* 0: Identity */},
   {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AOrExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AOrExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AOrExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AOrExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AOrExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AOrExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3563 /* 8: AOrExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 3687 /* 9: AOrExpr < AOrExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AOrExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AOrExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3483 /* 8: AOrExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 3607 /* 9: AOrExpr < AOrExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61711,7 +58437,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AOrExpr[88] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AOrExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AOrExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -61727,6 +58453,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AOrExpr[88] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -61753,32 +58481,35 @@ const classtable_elt_t VFT_parser___parser_nodes___AOrExpr[88] = {
   {(bigint) parser___parser_prod___AOrExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AOrExpr___visit_all},
-  {(bigint) 1 /* 60: AOrExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AOrExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___AOrExpr___accept_typing},
   {(bigint) syntax___typing___ABoolExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AOrExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AOrExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___ABoolExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AOrExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AOrExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AOrExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 4 /* 82: AOrExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) 0 /* 88: AOrExpr < ABoolExpr: superclass init_table position */},
   {(bigint) parser___parser_prod___AOrExpr___empty_init},
   {(bigint) parser___parser_prod___AOrExpr___init_aorexpr},
-  {(bigint) 5 /* 85: AOrExpr < AOrExpr: superclass init_table position */},
+  {(bigint) 5 /* 91: AOrExpr < AOrExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AOrExpr___n_expr},
   {(bigint) parser___parser_nodes___AOrExpr___n_expr2},
 };
@@ -61808,7 +58539,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AOrExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -61858,13 +58589,13 @@ val_t NEW_AOrExpr_parser___parser_prod___AOrExpr___empty_init(void){
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4349;
+  fra.me.line = 4417;
   fra.me.meth = LOCATE_NEW_AOrExpr_parser___parser_prod___AOrExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4349 */
+  /* parser/parser_prod.nit:4417 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AOrExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AOrExpr(fra.me.REG[0]);
   parser___parser_prod___AOrExpr___empty_init(fra.me.REG[0], init_table);
@@ -61878,7 +58609,7 @@ val_t NEW_AOrExpr_parser___parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4351;
+  fra.me.line = 4419;
   fra.me.meth = LOCATE_NEW_AOrExpr_parser___parser_prod___AOrExpr___init_aorexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -61888,7 +58619,7 @@ val_t NEW_AOrExpr_parser___parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4351 */
+  /* parser/parser_prod.nit:4419 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AOrExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AOrExpr(fra.me.REG[2]);
   parser___parser_prod___AOrExpr___init_aorexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -61896,38 +58627,38 @@ val_t NEW_AOrExpr_parser___parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AOrExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AOrExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AOrExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AOrExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AOrExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AOrExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AOrExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AOrExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AOrExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AAndExpr[88] = {
-  {(bigint) 3735 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AAndExpr[94] = {
+  {(bigint) 3819 /* 0: Identity */},
   {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AAndExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AAndExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AAndExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AAndExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AAndExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AAndExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3563 /* 8: AAndExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 3819 /* 9: AAndExpr < AAndExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AAndExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AAndExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3483 /* 8: AAndExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 3735 /* 9: AAndExpr < AAndExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61936,7 +58667,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AAndExpr[88] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AAndExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AAndExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -61952,6 +58683,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AAndExpr[88] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -61978,32 +58711,35 @@ const classtable_elt_t VFT_parser___parser_nodes___AAndExpr[88] = {
   {(bigint) parser___parser_prod___AAndExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AAndExpr___visit_all},
-  {(bigint) 1 /* 60: AAndExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AAndExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___AAndExpr___accept_typing},
   {(bigint) syntax___typing___ABoolExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AAndExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AAndExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___ABoolExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AAndExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AAndExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AAndExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 4 /* 82: AAndExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) 0 /* 88: AAndExpr < ABoolExpr: superclass init_table position */},
   {(bigint) parser___parser_prod___AAndExpr___empty_init},
   {(bigint) parser___parser_prod___AAndExpr___init_aandexpr},
-  {(bigint) 5 /* 85: AAndExpr < AAndExpr: superclass init_table position */},
+  {(bigint) 5 /* 91: AAndExpr < AAndExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AAndExpr___n_expr},
   {(bigint) parser___parser_nodes___AAndExpr___n_expr2},
 };
@@ -62033,7 +58769,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AAndExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -62083,13 +58819,13 @@ val_t NEW_AAndExpr_parser___parser_prod___AAndExpr___empty_init(void){
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4394;
+  fra.me.line = 4462;
   fra.me.meth = LOCATE_NEW_AAndExpr_parser___parser_prod___AAndExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4394 */
+  /* parser/parser_prod.nit:4462 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AAndExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AAndExpr(fra.me.REG[0]);
   parser___parser_prod___AAndExpr___empty_init(fra.me.REG[0], init_table);
@@ -62103,7 +58839,7 @@ val_t NEW_AAndExpr_parser___parser_prod___AAndExpr___init_aandexpr(val_t p0, val
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4396;
+  fra.me.line = 4464;
   fra.me.meth = LOCATE_NEW_AAndExpr_parser___parser_prod___AAndExpr___init_aandexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -62113,7 +58849,7 @@ val_t NEW_AAndExpr_parser___parser_prod___AAndExpr___init_aandexpr(val_t p0, val
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4396 */
+  /* parser/parser_prod.nit:4464 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AAndExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AAndExpr(fra.me.REG[2]);
   parser___parser_prod___AAndExpr___init_aandexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -62121,38 +58857,38 @@ val_t NEW_AAndExpr_parser___parser_prod___AAndExpr___init_aandexpr(val_t p0, val
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AAndExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AAndExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AAndExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AAndExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAndExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AAndExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AAndExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AAndExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AAndExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AOrElseExpr[88] = {
-  {(bigint) 3611 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AOrElseExpr[94] = {
+  {(bigint) 3691 /* 0: Identity */},
   {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AOrElseExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AOrElseExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AOrElseExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AOrElseExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AOrElseExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AOrElseExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3563 /* 8: AOrElseExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 3691 /* 9: AOrElseExpr < AOrElseExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AOrElseExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AOrElseExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3483 /* 8: AOrElseExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 3611 /* 9: AOrElseExpr < AOrElseExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62161,7 +58897,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AOrElseExpr[88] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AOrElseExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AOrElseExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -62177,6 +58913,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AOrElseExpr[88] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -62203,32 +58941,35 @@ const classtable_elt_t VFT_parser___parser_nodes___AOrElseExpr[88] = {
   {(bigint) parser___parser_prod___AOrElseExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AOrElseExpr___visit_all},
-  {(bigint) 1 /* 60: AOrElseExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AOrElseExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AOrElseExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AOrElseExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AOrElseExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___ABoolExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AOrElseExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AOrElseExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AOrElseExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 4 /* 82: AOrElseExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) 0 /* 88: AOrElseExpr < ABoolExpr: superclass init_table position */},
   {(bigint) parser___parser_prod___AOrElseExpr___empty_init},
   {(bigint) parser___parser_prod___AOrElseExpr___init_aorelseexpr},
-  {(bigint) 5 /* 85: AOrElseExpr < AOrElseExpr: superclass init_table position */},
+  {(bigint) 5 /* 91: AOrElseExpr < AOrElseExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AOrElseExpr___n_expr},
   {(bigint) parser___parser_nodes___AOrElseExpr___n_expr2},
 };
@@ -62258,7 +58999,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AOrElseExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -62308,13 +59049,13 @@ val_t NEW_AOrElseExpr_parser___parser_prod___AOrElseExpr___empty_init(void){
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4439;
+  fra.me.line = 4507;
   fra.me.meth = LOCATE_NEW_AOrElseExpr_parser___parser_prod___AOrElseExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4439 */
+  /* parser/parser_prod.nit:4507 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AOrElseExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AOrElseExpr(fra.me.REG[0]);
   parser___parser_prod___AOrElseExpr___empty_init(fra.me.REG[0], init_table);
@@ -62328,7 +59069,7 @@ val_t NEW_AOrElseExpr_parser___parser_prod___AOrElseExpr___init_aorelseexpr(val_
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4441;
+  fra.me.line = 4509;
   fra.me.meth = LOCATE_NEW_AOrElseExpr_parser___parser_prod___AOrElseExpr___init_aorelseexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -62338,7 +59079,7 @@ val_t NEW_AOrElseExpr_parser___parser_prod___AOrElseExpr___init_aorelseexpr(val_
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4441 */
+  /* parser/parser_prod.nit:4509 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AOrElseExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AOrElseExpr(fra.me.REG[2]);
   parser___parser_prod___AOrElseExpr___init_aorelseexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -62346,38 +59087,38 @@ val_t NEW_AOrElseExpr_parser___parser_prod___AOrElseExpr___init_aorelseexpr(val_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AOrElseExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AOrElseExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AOrElseExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AOrElseExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AOrElseExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AOrElseExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AOrElseExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AOrElseExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AOrElseExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ANotExpr[88] = {
-  {(bigint) 3619 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ANotExpr[94] = {
+  {(bigint) 3699 /* 0: Identity */},
   {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ANotExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ANotExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ANotExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ANotExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ANotExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: ANotExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3563 /* 8: ANotExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 3699 /* 9: ANotExpr < ANotExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ANotExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ANotExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3483 /* 8: ANotExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 3619 /* 9: ANotExpr < ANotExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62386,7 +59127,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ANotExpr[88] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ANotExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: ANotExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -62402,6 +59143,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ANotExpr[88] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -62428,32 +59171,35 @@ const classtable_elt_t VFT_parser___parser_nodes___ANotExpr[88] = {
   {(bigint) parser___parser_prod___ANotExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ANotExpr___visit_all},
-  {(bigint) 1 /* 60: ANotExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: ANotExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANotExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ANotExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: ANotExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___ABoolExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: ANotExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: ANotExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ANotExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 4 /* 82: ANotExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) 0 /* 88: ANotExpr < ABoolExpr: superclass init_table position */},
   {(bigint) parser___parser_prod___ANotExpr___empty_init},
   {(bigint) parser___parser_prod___ANotExpr___init_anotexpr},
-  {(bigint) 5 /* 85: ANotExpr < ANotExpr: superclass init_table position */},
+  {(bigint) 5 /* 91: ANotExpr < ANotExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANotExpr___n_kwnot},
   {(bigint) parser___parser_nodes___ANotExpr___n_expr},
 };
@@ -62483,7 +59229,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ANotExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -62533,13 +59279,13 @@ val_t NEW_ANotExpr_parser___parser_prod___ANotExpr___empty_init(void){
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4484;
+  fra.me.line = 4552;
   fra.me.meth = LOCATE_NEW_ANotExpr_parser___parser_prod___ANotExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4484 */
+  /* parser/parser_prod.nit:4552 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ANotExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ANotExpr(fra.me.REG[0]);
   parser___parser_prod___ANotExpr___empty_init(fra.me.REG[0], init_table);
@@ -62553,7 +59299,7 @@ val_t NEW_ANotExpr_parser___parser_prod___ANotExpr___init_anotexpr(val_t p0, val
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4486;
+  fra.me.line = 4554;
   fra.me.meth = LOCATE_NEW_ANotExpr_parser___parser_prod___ANotExpr___init_anotexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -62563,7 +59309,7 @@ val_t NEW_ANotExpr_parser___parser_prod___ANotExpr___init_anotexpr(val_t p0, val
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4486 */
+  /* parser/parser_prod.nit:4554 */
   fra.me.REG[2] = NEW_parser___parser_nodes___ANotExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ANotExpr(fra.me.REG[2]);
   parser___parser_prod___ANotExpr___init_anotexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -62571,47 +59317,47 @@ val_t NEW_ANotExpr_parser___parser_prod___ANotExpr___init_anotexpr(val_t p0, val
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_ANotExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ANotExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ANotExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ANotExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ANotExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ANotExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ANotExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ANotExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ANotExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AEqExpr[120] = {
-  {(bigint) 3859 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AEqExpr[126] = {
+  {(bigint) 3947 /* 0: Identity */},
   {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AEqExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AEqExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AEqExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: AEqExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AEqExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AEqExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AEqExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AEqExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: AEqExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AEqExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3823 /* 9: AEqExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: AEqExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: AEqExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 3891 /* 12: AEqExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 3947 /* 13: AEqExpr < AEqExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: AEqExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: AEqExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: AEqExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3803 /* 12: AEqExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3859 /* 13: AEqExpr < AEqExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: AEqExpr < Object: superclass init_table position */},
+  {(bigint) 8 /* 19: AEqExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -62627,6 +59373,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AEqExpr[120] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -62653,28 +59401,31 @@ const classtable_elt_t VFT_parser___parser_nodes___AEqExpr[120] = {
   {(bigint) parser___parser_prod___AEqExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AEqExpr___visit_all},
-  {(bigint) 4 /* 60: AEqExpr < ANode: superclass init_table position */},
+  {(bigint) 7 /* 63: AEqExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AEqExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: AEqExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: AEqExpr < Prod: superclass init_table position */},
+  {(bigint) 6 /* 72: AEqExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 2 /* 75: AEqExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: AEqExpr < AExpr: superclass init_table position */},
+  {(bigint) 5 /* 80: AEqExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62687,13 +59438,13 @@ const classtable_elt_t VFT_parser___parser_nodes___AEqExpr[120] = {
   {(bigint) syntax___typing___ABinopExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: AEqExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 4 /* 100: AEqExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: AEqExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 106: AEqExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___AEqExpr___name},
@@ -62701,18 +59452,18 @@ const classtable_elt_t VFT_parser___parser_nodes___AEqExpr[120] = {
   {(bigint) syntax___typing___ASendExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: AEqExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 1 /* 114: AEqExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
   {(bigint) parser___parser_prod___ABinopExpr___empty_init},
   {(bigint) parser___parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 8 /* 113: AEqExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 0 /* 119: AEqExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABinopExpr___n_expr2},
   {(bigint) syntax___typing___ASendExpr___after_typing},
   {(bigint) syntax___typing___AEqExpr___try_to_isa},
   {(bigint) parser___parser_prod___AEqExpr___empty_init},
   {(bigint) parser___parser_prod___AEqExpr___init_aeqexpr},
-  {(bigint) 9 /* 119: AEqExpr < AEqExpr: superclass init_table position */},
+  {(bigint) 9 /* 125: AEqExpr < AEqExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -62749,13 +59500,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AEqExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -62810,13 +59561,13 @@ val_t NEW_AEqExpr_parser___parser_prod___ABinopExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4304;
+  fra.me.line = 4372;
   fra.me.meth = LOCATE_NEW_AEqExpr_parser___parser_prod___ABinopExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4304 */
+  /* parser/parser_prod.nit:4372 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AEqExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AEqExpr(fra.me.REG[0]);
   parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
@@ -62830,13 +59581,13 @@ val_t NEW_AEqExpr_parser___parser_prod___AEqExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4529;
+  fra.me.line = 4597;
   fra.me.meth = LOCATE_NEW_AEqExpr_parser___parser_prod___AEqExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4529 */
+  /* parser/parser_prod.nit:4597 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AEqExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AEqExpr(fra.me.REG[0]);
   parser___parser_prod___AEqExpr___empty_init(fra.me.REG[0], init_table);
@@ -62850,7 +59601,7 @@ val_t NEW_AEqExpr_parser___parser_prod___AEqExpr___init_aeqexpr(val_t p0, val_t
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4531;
+  fra.me.line = 4599;
   fra.me.meth = LOCATE_NEW_AEqExpr_parser___parser_prod___AEqExpr___init_aeqexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -62860,7 +59611,7 @@ val_t NEW_AEqExpr_parser___parser_prod___AEqExpr___init_aeqexpr(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4531 */
+  /* parser/parser_prod.nit:4599 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AEqExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AEqExpr(fra.me.REG[2]);
   parser___parser_prod___AEqExpr___init_aeqexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -62868,26 +59619,25 @@ val_t NEW_AEqExpr_parser___parser_prod___AEqExpr___init_aeqexpr(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AEqExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AEqExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AEqExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AEqExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AEqExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AEqExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AEqExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AEqExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AEqExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_AEqExpr_parser___parser_prod___ASendExpr___empty_init(void){
   struct {struct stack_frame_t me;} fra;
@@ -62895,13 +59645,13 @@ val_t NEW_AEqExpr_parser___parser_prod___ASendExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_AEqExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AEqExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AEqExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -62915,7 +59665,7 @@ val_t NEW_AEqExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0,
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4306;
+  fra.me.line = 4374;
   fra.me.meth = LOCATE_NEW_AEqExpr_parser___parser_prod___ABinopExpr___init_abinopexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -62925,7 +59675,7 @@ val_t NEW_AEqExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0,
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4306 */
+  /* parser/parser_prod.nit:4374 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AEqExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AEqExpr(fra.me.REG[2]);
   parser___parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -62939,7 +59689,7 @@ val_t NEW_AEqExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_AEqExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -62947,7 +59697,7 @@ val_t NEW_AEqExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AEqExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AEqExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -62955,17 +59705,18 @@ val_t NEW_AEqExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AEeExpr[88] = {
-  {(bigint) 3675 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AEeExpr[94] = {
+  {(bigint) 3759 /* 0: Identity */},
   {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AEeExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AEeExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AEeExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AEeExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AEeExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AEeExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3563 /* 8: AEeExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 3759 /* 9: AEeExpr < AEeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AEeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AEeExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3483 /* 8: AEeExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 3675 /* 9: AEeExpr < AEeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62974,7 +59725,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AEeExpr[88] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AEeExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AEeExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -62990,6 +59741,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AEeExpr[88] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -63016,32 +59769,35 @@ const classtable_elt_t VFT_parser___parser_nodes___AEeExpr[88] = {
   {(bigint) parser___parser_prod___AEeExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AEeExpr___visit_all},
-  {(bigint) 1 /* 60: AEeExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AEeExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ABoolExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AEeExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AEeExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___ABoolExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AEeExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AEeExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AEeExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 4 /* 82: AEeExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) 0 /* 88: AEeExpr < ABoolExpr: superclass init_table position */},
   {(bigint) parser___parser_prod___AEeExpr___empty_init},
   {(bigint) parser___parser_prod___AEeExpr___init_aeeexpr},
-  {(bigint) 5 /* 85: AEeExpr < AEeExpr: superclass init_table position */},
+  {(bigint) 5 /* 91: AEeExpr < AEeExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AEeExpr___n_expr},
   {(bigint) parser___parser_nodes___AEeExpr___n_expr2},
 };
@@ -63071,7 +59827,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AEeExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -63121,13 +59877,13 @@ val_t NEW_AEeExpr_parser___parser_prod___AEeExpr___empty_init(void){
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4574;
+  fra.me.line = 4642;
   fra.me.meth = LOCATE_NEW_AEeExpr_parser___parser_prod___AEeExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4574 */
+  /* parser/parser_prod.nit:4642 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AEeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AEeExpr(fra.me.REG[0]);
   parser___parser_prod___AEeExpr___empty_init(fra.me.REG[0], init_table);
@@ -63141,7 +59897,7 @@ val_t NEW_AEeExpr_parser___parser_prod___AEeExpr___init_aeeexpr(val_t p0, val_t
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4576;
+  fra.me.line = 4644;
   fra.me.meth = LOCATE_NEW_AEeExpr_parser___parser_prod___AEeExpr___init_aeeexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -63151,7 +59907,7 @@ val_t NEW_AEeExpr_parser___parser_prod___AEeExpr___init_aeeexpr(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4576 */
+  /* parser/parser_prod.nit:4644 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AEeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AEeExpr(fra.me.REG[2]);
   parser___parser_prod___AEeExpr___init_aeeexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -63159,47 +59915,47 @@ val_t NEW_AEeExpr_parser___parser_prod___AEeExpr___init_aeeexpr(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AEeExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AEeExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AEeExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AEeExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AEeExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AEeExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AEeExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AEeExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AEeExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ANeExpr[120] = {
-  {(bigint) 3827 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ANeExpr[126] = {
+  {(bigint) 3915 /* 0: Identity */},
   {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ANeExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ANeExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ANeExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: ANeExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ANeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ANeExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ANeExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ANeExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: ANeExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: ANeExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3823 /* 9: ANeExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: ANeExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: ANeExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 3891 /* 12: ANeExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 3915 /* 13: ANeExpr < ANeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: ANeExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: ANeExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: ANeExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3803 /* 12: ANeExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3827 /* 13: ANeExpr < ANeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: ANeExpr < Object: superclass init_table position */},
+  {(bigint) 8 /* 19: ANeExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -63215,6 +59971,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ANeExpr[120] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -63241,28 +59999,31 @@ const classtable_elt_t VFT_parser___parser_nodes___ANeExpr[120] = {
   {(bigint) parser___parser_prod___ANeExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ANeExpr___visit_all},
-  {(bigint) 4 /* 60: ANeExpr < ANode: superclass init_table position */},
+  {(bigint) 7 /* 63: ANeExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANeExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: ANeExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: ANeExpr < Prod: superclass init_table position */},
+  {(bigint) 6 /* 72: ANeExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 2 /* 75: ANeExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: ANeExpr < AExpr: superclass init_table position */},
+  {(bigint) 5 /* 80: ANeExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63275,13 +60036,13 @@ const classtable_elt_t VFT_parser___parser_nodes___ANeExpr[120] = {
   {(bigint) syntax___typing___ABinopExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: ANeExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 4 /* 100: ANeExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: ANeExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 106: ANeExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___ANeExpr___name},
@@ -63289,18 +60050,18 @@ const classtable_elt_t VFT_parser___parser_nodes___ANeExpr[120] = {
   {(bigint) syntax___typing___ASendExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: ANeExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 1 /* 114: ANeExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
   {(bigint) parser___parser_prod___ABinopExpr___empty_init},
   {(bigint) parser___parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 8 /* 113: ANeExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 0 /* 119: ANeExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABinopExpr___n_expr2},
   {(bigint) syntax___typing___ASendExpr___after_typing},
   {(bigint) syntax___typing___ANeExpr___try_to_isa},
   {(bigint) parser___parser_prod___ANeExpr___empty_init},
   {(bigint) parser___parser_prod___ANeExpr___init_aneexpr},
-  {(bigint) 9 /* 119: ANeExpr < ANeExpr: superclass init_table position */},
+  {(bigint) 9 /* 125: ANeExpr < ANeExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -63337,13 +60098,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ANeExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -63398,13 +60159,13 @@ val_t NEW_ANeExpr_parser___parser_prod___ABinopExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4304;
+  fra.me.line = 4372;
   fra.me.meth = LOCATE_NEW_ANeExpr_parser___parser_prod___ABinopExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4304 */
+  /* parser/parser_prod.nit:4372 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ANeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ANeExpr(fra.me.REG[0]);
   parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
@@ -63418,13 +60179,13 @@ val_t NEW_ANeExpr_parser___parser_prod___ANeExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4619;
+  fra.me.line = 4687;
   fra.me.meth = LOCATE_NEW_ANeExpr_parser___parser_prod___ANeExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4619 */
+  /* parser/parser_prod.nit:4687 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ANeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ANeExpr(fra.me.REG[0]);
   parser___parser_prod___ANeExpr___empty_init(fra.me.REG[0], init_table);
@@ -63438,7 +60199,7 @@ val_t NEW_ANeExpr_parser___parser_prod___ANeExpr___init_aneexpr(val_t p0, val_t
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4621;
+  fra.me.line = 4689;
   fra.me.meth = LOCATE_NEW_ANeExpr_parser___parser_prod___ANeExpr___init_aneexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -63448,7 +60209,7 @@ val_t NEW_ANeExpr_parser___parser_prod___ANeExpr___init_aneexpr(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4621 */
+  /* parser/parser_prod.nit:4689 */
   fra.me.REG[2] = NEW_parser___parser_nodes___ANeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ANeExpr(fra.me.REG[2]);
   parser___parser_prod___ANeExpr___init_aneexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -63456,26 +60217,25 @@ val_t NEW_ANeExpr_parser___parser_prod___ANeExpr___init_aneexpr(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_ANeExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ANeExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ANeExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ANeExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ANeExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ANeExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ANeExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ANeExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ANeExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_ANeExpr_parser___parser_prod___ASendExpr___empty_init(void){
   struct {struct stack_frame_t me;} fra;
@@ -63483,13 +60243,13 @@ val_t NEW_ANeExpr_parser___parser_prod___ASendExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_ANeExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ANeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ANeExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -63503,7 +60263,7 @@ val_t NEW_ANeExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0,
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4306;
+  fra.me.line = 4374;
   fra.me.meth = LOCATE_NEW_ANeExpr_parser___parser_prod___ABinopExpr___init_abinopexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -63513,7 +60273,7 @@ val_t NEW_ANeExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0,
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4306 */
+  /* parser/parser_prod.nit:4374 */
   fra.me.REG[2] = NEW_parser___parser_nodes___ANeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ANeExpr(fra.me.REG[2]);
   parser___parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -63527,7 +60287,7 @@ val_t NEW_ANeExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_ANeExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -63535,7 +60295,7 @@ val_t NEW_ANeExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ANeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ANeExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -63543,26 +60303,27 @@ val_t NEW_ANeExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ALtExpr[118] = {
-  {(bigint) 3835 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ALtExpr[124] = {
+  {(bigint) 3923 /* 0: Identity */},
   {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ALtExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ALtExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ALtExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: ALtExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ALtExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ALtExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ALtExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ALtExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: ALtExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: ALtExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3823 /* 9: ALtExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: ALtExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: ALtExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 3891 /* 12: ALtExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 3923 /* 13: ALtExpr < ALtExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: ALtExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: ALtExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: ALtExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3803 /* 12: ALtExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3835 /* 13: ALtExpr < ALtExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: ALtExpr < Object: superclass init_table position */},
+  {(bigint) 8 /* 19: ALtExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -63578,6 +60339,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ALtExpr[118] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -63604,28 +60367,31 @@ const classtable_elt_t VFT_parser___parser_nodes___ALtExpr[118] = {
   {(bigint) parser___parser_prod___ALtExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ALtExpr___visit_all},
-  {(bigint) 4 /* 60: ALtExpr < ANode: superclass init_table position */},
+  {(bigint) 7 /* 63: ALtExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: ALtExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: ALtExpr < Prod: superclass init_table position */},
+  {(bigint) 6 /* 72: ALtExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 2 /* 75: ALtExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: ALtExpr < AExpr: superclass init_table position */},
+  {(bigint) 5 /* 80: ALtExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63638,13 +60404,13 @@ const classtable_elt_t VFT_parser___parser_nodes___ALtExpr[118] = {
   {(bigint) syntax___typing___ABinopExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: ALtExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 4 /* 100: ALtExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: ALtExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 106: ALtExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___ALtExpr___name},
@@ -63652,16 +60418,16 @@ const classtable_elt_t VFT_parser___parser_nodes___ALtExpr[118] = {
   {(bigint) syntax___typing___ASendExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: ALtExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 1 /* 114: ALtExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
   {(bigint) parser___parser_prod___ABinopExpr___empty_init},
   {(bigint) parser___parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 8 /* 113: ALtExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 0 /* 119: ALtExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser___parser_prod___ALtExpr___empty_init},
   {(bigint) parser___parser_prod___ALtExpr___init_altexpr},
-  {(bigint) 9 /* 117: ALtExpr < ALtExpr: superclass init_table position */},
+  {(bigint) 9 /* 123: ALtExpr < ALtExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -63698,13 +60464,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ALtExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -63759,13 +60525,13 @@ val_t NEW_ALtExpr_parser___parser_prod___ABinopExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4304;
+  fra.me.line = 4372;
   fra.me.meth = LOCATE_NEW_ALtExpr_parser___parser_prod___ABinopExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4304 */
+  /* parser/parser_prod.nit:4372 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ALtExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ALtExpr(fra.me.REG[0]);
   parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
@@ -63779,13 +60545,13 @@ val_t NEW_ALtExpr_parser___parser_prod___ALtExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4664;
+  fra.me.line = 4732;
   fra.me.meth = LOCATE_NEW_ALtExpr_parser___parser_prod___ALtExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4664 */
+  /* parser/parser_prod.nit:4732 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ALtExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ALtExpr(fra.me.REG[0]);
   parser___parser_prod___ALtExpr___empty_init(fra.me.REG[0], init_table);
@@ -63799,7 +60565,7 @@ val_t NEW_ALtExpr_parser___parser_prod___ALtExpr___init_altexpr(val_t p0, val_t
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4666;
+  fra.me.line = 4734;
   fra.me.meth = LOCATE_NEW_ALtExpr_parser___parser_prod___ALtExpr___init_altexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -63809,7 +60575,7 @@ val_t NEW_ALtExpr_parser___parser_prod___ALtExpr___init_altexpr(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4666 */
+  /* parser/parser_prod.nit:4734 */
   fra.me.REG[2] = NEW_parser___parser_nodes___ALtExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ALtExpr(fra.me.REG[2]);
   parser___parser_prod___ALtExpr___init_altexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -63817,26 +60583,25 @@ val_t NEW_ALtExpr_parser___parser_prod___ALtExpr___init_altexpr(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_ALtExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ALtExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ALtExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ALtExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ALtExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ALtExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ALtExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ALtExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ALtExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_ALtExpr_parser___parser_prod___ASendExpr___empty_init(void){
   struct {struct stack_frame_t me;} fra;
@@ -63844,13 +60609,13 @@ val_t NEW_ALtExpr_parser___parser_prod___ASendExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_ALtExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ALtExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ALtExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -63864,7 +60629,7 @@ val_t NEW_ALtExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0,
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4306;
+  fra.me.line = 4374;
   fra.me.meth = LOCATE_NEW_ALtExpr_parser___parser_prod___ABinopExpr___init_abinopexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -63874,7 +60639,7 @@ val_t NEW_ALtExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0,
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4306 */
+  /* parser/parser_prod.nit:4374 */
   fra.me.REG[2] = NEW_parser___parser_nodes___ALtExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ALtExpr(fra.me.REG[2]);
   parser___parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -63888,7 +60653,7 @@ val_t NEW_ALtExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_ALtExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -63896,7 +60661,7 @@ val_t NEW_ALtExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ALtExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ALtExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -63904,26 +60669,27 @@ val_t NEW_ALtExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ALeExpr[118] = {
-  {(bigint) 3843 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ALeExpr[124] = {
+  {(bigint) 3931 /* 0: Identity */},
   {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ALeExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ALeExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ALeExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: ALeExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ALeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ALeExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ALeExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ALeExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: ALeExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: ALeExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3823 /* 9: ALeExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: ALeExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: ALeExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 3891 /* 12: ALeExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 3931 /* 13: ALeExpr < ALeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: ALeExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: ALeExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: ALeExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3803 /* 12: ALeExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3843 /* 13: ALeExpr < ALeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: ALeExpr < Object: superclass init_table position */},
+  {(bigint) 8 /* 19: ALeExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -63939,6 +60705,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ALeExpr[118] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -63965,28 +60733,31 @@ const classtable_elt_t VFT_parser___parser_nodes___ALeExpr[118] = {
   {(bigint) parser___parser_prod___ALeExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ALeExpr___visit_all},
-  {(bigint) 4 /* 60: ALeExpr < ANode: superclass init_table position */},
+  {(bigint) 7 /* 63: ALeExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: ALeExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: ALeExpr < Prod: superclass init_table position */},
+  {(bigint) 6 /* 72: ALeExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 2 /* 75: ALeExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: ALeExpr < AExpr: superclass init_table position */},
+  {(bigint) 5 /* 80: ALeExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63999,13 +60770,13 @@ const classtable_elt_t VFT_parser___parser_nodes___ALeExpr[118] = {
   {(bigint) syntax___typing___ABinopExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: ALeExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 4 /* 100: ALeExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: ALeExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 106: ALeExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___ALeExpr___name},
@@ -64013,16 +60784,16 @@ const classtable_elt_t VFT_parser___parser_nodes___ALeExpr[118] = {
   {(bigint) syntax___typing___ASendExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: ALeExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 1 /* 114: ALeExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
   {(bigint) parser___parser_prod___ABinopExpr___empty_init},
   {(bigint) parser___parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 8 /* 113: ALeExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 0 /* 119: ALeExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser___parser_prod___ALeExpr___empty_init},
   {(bigint) parser___parser_prod___ALeExpr___init_aleexpr},
-  {(bigint) 9 /* 117: ALeExpr < ALeExpr: superclass init_table position */},
+  {(bigint) 9 /* 123: ALeExpr < ALeExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -64059,13 +60830,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ALeExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -64120,13 +60891,13 @@ val_t NEW_ALeExpr_parser___parser_prod___ABinopExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4304;
+  fra.me.line = 4372;
   fra.me.meth = LOCATE_NEW_ALeExpr_parser___parser_prod___ABinopExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4304 */
+  /* parser/parser_prod.nit:4372 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ALeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ALeExpr(fra.me.REG[0]);
   parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
@@ -64140,13 +60911,13 @@ val_t NEW_ALeExpr_parser___parser_prod___ALeExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4709;
+  fra.me.line = 4777;
   fra.me.meth = LOCATE_NEW_ALeExpr_parser___parser_prod___ALeExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4709 */
+  /* parser/parser_prod.nit:4777 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ALeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ALeExpr(fra.me.REG[0]);
   parser___parser_prod___ALeExpr___empty_init(fra.me.REG[0], init_table);
@@ -64160,7 +60931,7 @@ val_t NEW_ALeExpr_parser___parser_prod___ALeExpr___init_aleexpr(val_t p0, val_t
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4711;
+  fra.me.line = 4779;
   fra.me.meth = LOCATE_NEW_ALeExpr_parser___parser_prod___ALeExpr___init_aleexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -64170,7 +60941,7 @@ val_t NEW_ALeExpr_parser___parser_prod___ALeExpr___init_aleexpr(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4711 */
+  /* parser/parser_prod.nit:4779 */
   fra.me.REG[2] = NEW_parser___parser_nodes___ALeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ALeExpr(fra.me.REG[2]);
   parser___parser_prod___ALeExpr___init_aleexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -64178,26 +60949,25 @@ val_t NEW_ALeExpr_parser___parser_prod___ALeExpr___init_aleexpr(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_ALeExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ALeExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ALeExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ALeExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ALeExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ALeExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ALeExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ALeExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ALeExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_ALeExpr_parser___parser_prod___ASendExpr___empty_init(void){
   struct {struct stack_frame_t me;} fra;
@@ -64205,13 +60975,13 @@ val_t NEW_ALeExpr_parser___parser_prod___ASendExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_ALeExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ALeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ALeExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -64225,7 +60995,7 @@ val_t NEW_ALeExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0,
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4306;
+  fra.me.line = 4374;
   fra.me.meth = LOCATE_NEW_ALeExpr_parser___parser_prod___ABinopExpr___init_abinopexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -64235,7 +61005,7 @@ val_t NEW_ALeExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0,
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4306 */
+  /* parser/parser_prod.nit:4374 */
   fra.me.REG[2] = NEW_parser___parser_nodes___ALeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ALeExpr(fra.me.REG[2]);
   parser___parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -64249,7 +61019,7 @@ val_t NEW_ALeExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_ALeExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -64257,7 +61027,7 @@ val_t NEW_ALeExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ALeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ALeExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -64265,26 +61035,27 @@ val_t NEW_ALeExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ALlExpr[118] = {
-  {(bigint) 3839 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ALlExpr[124] = {
+  {(bigint) 3927 /* 0: Identity */},
   {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ALlExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ALlExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ALlExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: ALlExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ALlExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ALlExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ALlExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ALlExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: ALlExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: ALlExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3823 /* 9: ALlExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: ALlExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: ALlExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 3891 /* 12: ALlExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 3927 /* 13: ALlExpr < ALlExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: ALlExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: ALlExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: ALlExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3803 /* 12: ALlExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3839 /* 13: ALlExpr < ALlExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: ALlExpr < Object: superclass init_table position */},
+  {(bigint) 8 /* 19: ALlExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -64300,6 +61071,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ALlExpr[118] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -64326,28 +61099,31 @@ const classtable_elt_t VFT_parser___parser_nodes___ALlExpr[118] = {
   {(bigint) parser___parser_prod___ALlExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ALlExpr___visit_all},
-  {(bigint) 4 /* 60: ALlExpr < ANode: superclass init_table position */},
+  {(bigint) 7 /* 63: ALlExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: ALlExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: ALlExpr < Prod: superclass init_table position */},
+  {(bigint) 6 /* 72: ALlExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 2 /* 75: ALlExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: ALlExpr < AExpr: superclass init_table position */},
+  {(bigint) 5 /* 80: ALlExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64360,13 +61136,13 @@ const classtable_elt_t VFT_parser___parser_nodes___ALlExpr[118] = {
   {(bigint) syntax___typing___ABinopExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: ALlExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 4 /* 100: ALlExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: ALlExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 106: ALlExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___ALlExpr___name},
@@ -64374,16 +61150,16 @@ const classtable_elt_t VFT_parser___parser_nodes___ALlExpr[118] = {
   {(bigint) syntax___typing___ASendExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: ALlExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 1 /* 114: ALlExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
   {(bigint) parser___parser_prod___ABinopExpr___empty_init},
   {(bigint) parser___parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 8 /* 113: ALlExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 0 /* 119: ALlExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser___parser_prod___ALlExpr___empty_init},
   {(bigint) parser___parser_prod___ALlExpr___init_allexpr},
-  {(bigint) 9 /* 117: ALlExpr < ALlExpr: superclass init_table position */},
+  {(bigint) 9 /* 123: ALlExpr < ALlExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -64420,13 +61196,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ALlExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -64481,13 +61257,13 @@ val_t NEW_ALlExpr_parser___parser_prod___ABinopExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4304;
+  fra.me.line = 4372;
   fra.me.meth = LOCATE_NEW_ALlExpr_parser___parser_prod___ABinopExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4304 */
+  /* parser/parser_prod.nit:4372 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ALlExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ALlExpr(fra.me.REG[0]);
   parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
@@ -64501,13 +61277,13 @@ val_t NEW_ALlExpr_parser___parser_prod___ALlExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4754;
+  fra.me.line = 4822;
   fra.me.meth = LOCATE_NEW_ALlExpr_parser___parser_prod___ALlExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4754 */
+  /* parser/parser_prod.nit:4822 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ALlExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ALlExpr(fra.me.REG[0]);
   parser___parser_prod___ALlExpr___empty_init(fra.me.REG[0], init_table);
@@ -64521,7 +61297,7 @@ val_t NEW_ALlExpr_parser___parser_prod___ALlExpr___init_allexpr(val_t p0, val_t
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4756;
+  fra.me.line = 4824;
   fra.me.meth = LOCATE_NEW_ALlExpr_parser___parser_prod___ALlExpr___init_allexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -64531,7 +61307,7 @@ val_t NEW_ALlExpr_parser___parser_prod___ALlExpr___init_allexpr(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4756 */
+  /* parser/parser_prod.nit:4824 */
   fra.me.REG[2] = NEW_parser___parser_nodes___ALlExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ALlExpr(fra.me.REG[2]);
   parser___parser_prod___ALlExpr___init_allexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -64539,26 +61315,25 @@ val_t NEW_ALlExpr_parser___parser_prod___ALlExpr___init_allexpr(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_ALlExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ALlExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ALlExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ALlExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ALlExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ALlExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ALlExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ALlExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ALlExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_ALlExpr_parser___parser_prod___ASendExpr___empty_init(void){
   struct {struct stack_frame_t me;} fra;
@@ -64566,13 +61341,13 @@ val_t NEW_ALlExpr_parser___parser_prod___ASendExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_ALlExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ALlExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ALlExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -64586,7 +61361,7 @@ val_t NEW_ALlExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0,
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4306;
+  fra.me.line = 4374;
   fra.me.meth = LOCATE_NEW_ALlExpr_parser___parser_prod___ABinopExpr___init_abinopexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -64596,7 +61371,7 @@ val_t NEW_ALlExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0,
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4306 */
+  /* parser/parser_prod.nit:4374 */
   fra.me.REG[2] = NEW_parser___parser_nodes___ALlExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ALlExpr(fra.me.REG[2]);
   parser___parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -64610,7 +61385,7 @@ val_t NEW_ALlExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_ALlExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -64618,7 +61393,7 @@ val_t NEW_ALlExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ALlExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ALlExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -64626,26 +61401,27 @@ val_t NEW_ALlExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AGtExpr[118] = {
-  {(bigint) 3847 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AGtExpr[124] = {
+  {(bigint) 3935 /* 0: Identity */},
   {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AGtExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AGtExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AGtExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: AGtExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AGtExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AGtExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AGtExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AGtExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: AGtExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AGtExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3823 /* 9: AGtExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: AGtExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: AGtExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 3891 /* 12: AGtExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 3935 /* 13: AGtExpr < AGtExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: AGtExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: AGtExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: AGtExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3803 /* 12: AGtExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3847 /* 13: AGtExpr < AGtExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: AGtExpr < Object: superclass init_table position */},
+  {(bigint) 8 /* 19: AGtExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -64661,6 +61437,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AGtExpr[118] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -64687,28 +61465,31 @@ const classtable_elt_t VFT_parser___parser_nodes___AGtExpr[118] = {
   {(bigint) parser___parser_prod___AGtExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AGtExpr___visit_all},
-  {(bigint) 4 /* 60: AGtExpr < ANode: superclass init_table position */},
+  {(bigint) 7 /* 63: AGtExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: AGtExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: AGtExpr < Prod: superclass init_table position */},
+  {(bigint) 6 /* 72: AGtExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 2 /* 75: AGtExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: AGtExpr < AExpr: superclass init_table position */},
+  {(bigint) 5 /* 80: AGtExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64721,13 +61502,13 @@ const classtable_elt_t VFT_parser___parser_nodes___AGtExpr[118] = {
   {(bigint) syntax___typing___ABinopExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: AGtExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 4 /* 100: AGtExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: AGtExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 106: AGtExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___AGtExpr___name},
@@ -64735,16 +61516,16 @@ const classtable_elt_t VFT_parser___parser_nodes___AGtExpr[118] = {
   {(bigint) syntax___typing___ASendExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: AGtExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 1 /* 114: AGtExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
   {(bigint) parser___parser_prod___ABinopExpr___empty_init},
   {(bigint) parser___parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 8 /* 113: AGtExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 0 /* 119: AGtExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser___parser_prod___AGtExpr___empty_init},
   {(bigint) parser___parser_prod___AGtExpr___init_agtexpr},
-  {(bigint) 9 /* 117: AGtExpr < AGtExpr: superclass init_table position */},
+  {(bigint) 9 /* 123: AGtExpr < AGtExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -64781,13 +61562,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AGtExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -64842,13 +61623,13 @@ val_t NEW_AGtExpr_parser___parser_prod___ABinopExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4304;
+  fra.me.line = 4372;
   fra.me.meth = LOCATE_NEW_AGtExpr_parser___parser_prod___ABinopExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4304 */
+  /* parser/parser_prod.nit:4372 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AGtExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AGtExpr(fra.me.REG[0]);
   parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
@@ -64862,13 +61643,13 @@ val_t NEW_AGtExpr_parser___parser_prod___AGtExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4799;
+  fra.me.line = 4867;
   fra.me.meth = LOCATE_NEW_AGtExpr_parser___parser_prod___AGtExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4799 */
+  /* parser/parser_prod.nit:4867 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AGtExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AGtExpr(fra.me.REG[0]);
   parser___parser_prod___AGtExpr___empty_init(fra.me.REG[0], init_table);
@@ -64882,7 +61663,7 @@ val_t NEW_AGtExpr_parser___parser_prod___AGtExpr___init_agtexpr(val_t p0, val_t
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4801;
+  fra.me.line = 4869;
   fra.me.meth = LOCATE_NEW_AGtExpr_parser___parser_prod___AGtExpr___init_agtexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -64892,7 +61673,7 @@ val_t NEW_AGtExpr_parser___parser_prod___AGtExpr___init_agtexpr(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4801 */
+  /* parser/parser_prod.nit:4869 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AGtExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AGtExpr(fra.me.REG[2]);
   parser___parser_prod___AGtExpr___init_agtexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -64900,26 +61681,25 @@ val_t NEW_AGtExpr_parser___parser_prod___AGtExpr___init_agtexpr(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AGtExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AGtExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AGtExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AGtExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AGtExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AGtExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AGtExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AGtExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AGtExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_AGtExpr_parser___parser_prod___ASendExpr___empty_init(void){
   struct {struct stack_frame_t me;} fra;
@@ -64927,13 +61707,13 @@ val_t NEW_AGtExpr_parser___parser_prod___ASendExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_AGtExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AGtExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AGtExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -64947,7 +61727,7 @@ val_t NEW_AGtExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0,
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4306;
+  fra.me.line = 4374;
   fra.me.meth = LOCATE_NEW_AGtExpr_parser___parser_prod___ABinopExpr___init_abinopexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -64957,7 +61737,7 @@ val_t NEW_AGtExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0,
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4306 */
+  /* parser/parser_prod.nit:4374 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AGtExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AGtExpr(fra.me.REG[2]);
   parser___parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -64971,7 +61751,7 @@ val_t NEW_AGtExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_AGtExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -64979,7 +61759,7 @@ val_t NEW_AGtExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AGtExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AGtExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -64987,26 +61767,27 @@ val_t NEW_AGtExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AGeExpr[118] = {
-  {(bigint) 3855 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AGeExpr[124] = {
+  {(bigint) 3943 /* 0: Identity */},
   {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AGeExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AGeExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AGeExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: AGeExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AGeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AGeExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AGeExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AGeExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: AGeExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AGeExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3823 /* 9: AGeExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: AGeExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: AGeExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 3891 /* 12: AGeExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 3943 /* 13: AGeExpr < AGeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: AGeExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: AGeExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: AGeExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3803 /* 12: AGeExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3855 /* 13: AGeExpr < AGeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: AGeExpr < Object: superclass init_table position */},
+  {(bigint) 8 /* 19: AGeExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -65022,6 +61803,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AGeExpr[118] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -65048,28 +61831,31 @@ const classtable_elt_t VFT_parser___parser_nodes___AGeExpr[118] = {
   {(bigint) parser___parser_prod___AGeExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AGeExpr___visit_all},
-  {(bigint) 4 /* 60: AGeExpr < ANode: superclass init_table position */},
+  {(bigint) 7 /* 63: AGeExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: AGeExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: AGeExpr < Prod: superclass init_table position */},
+  {(bigint) 6 /* 72: AGeExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 2 /* 75: AGeExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: AGeExpr < AExpr: superclass init_table position */},
+  {(bigint) 5 /* 80: AGeExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65082,13 +61868,13 @@ const classtable_elt_t VFT_parser___parser_nodes___AGeExpr[118] = {
   {(bigint) syntax___typing___ABinopExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: AGeExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 4 /* 100: AGeExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: AGeExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 106: AGeExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___AGeExpr___name},
@@ -65096,16 +61882,16 @@ const classtable_elt_t VFT_parser___parser_nodes___AGeExpr[118] = {
   {(bigint) syntax___typing___ASendExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: AGeExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 1 /* 114: AGeExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
   {(bigint) parser___parser_prod___ABinopExpr___empty_init},
   {(bigint) parser___parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 8 /* 113: AGeExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 0 /* 119: AGeExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser___parser_prod___AGeExpr___empty_init},
   {(bigint) parser___parser_prod___AGeExpr___init_ageexpr},
-  {(bigint) 9 /* 117: AGeExpr < AGeExpr: superclass init_table position */},
+  {(bigint) 9 /* 123: AGeExpr < AGeExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -65142,13 +61928,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AGeExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -65203,13 +61989,13 @@ val_t NEW_AGeExpr_parser___parser_prod___ABinopExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4304;
+  fra.me.line = 4372;
   fra.me.meth = LOCATE_NEW_AGeExpr_parser___parser_prod___ABinopExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4304 */
+  /* parser/parser_prod.nit:4372 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AGeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AGeExpr(fra.me.REG[0]);
   parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
@@ -65223,13 +62009,13 @@ val_t NEW_AGeExpr_parser___parser_prod___AGeExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4844;
+  fra.me.line = 4912;
   fra.me.meth = LOCATE_NEW_AGeExpr_parser___parser_prod___AGeExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4844 */
+  /* parser/parser_prod.nit:4912 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AGeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AGeExpr(fra.me.REG[0]);
   parser___parser_prod___AGeExpr___empty_init(fra.me.REG[0], init_table);
@@ -65243,7 +62029,7 @@ val_t NEW_AGeExpr_parser___parser_prod___AGeExpr___init_ageexpr(val_t p0, val_t
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4846;
+  fra.me.line = 4914;
   fra.me.meth = LOCATE_NEW_AGeExpr_parser___parser_prod___AGeExpr___init_ageexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -65253,7 +62039,7 @@ val_t NEW_AGeExpr_parser___parser_prod___AGeExpr___init_ageexpr(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4846 */
+  /* parser/parser_prod.nit:4914 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AGeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AGeExpr(fra.me.REG[2]);
   parser___parser_prod___AGeExpr___init_ageexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -65261,26 +62047,25 @@ val_t NEW_AGeExpr_parser___parser_prod___AGeExpr___init_ageexpr(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AGeExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AGeExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AGeExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AGeExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AGeExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AGeExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AGeExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AGeExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AGeExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_AGeExpr_parser___parser_prod___ASendExpr___empty_init(void){
   struct {struct stack_frame_t me;} fra;
@@ -65288,13 +62073,13 @@ val_t NEW_AGeExpr_parser___parser_prod___ASendExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_AGeExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AGeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AGeExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -65308,7 +62093,7 @@ val_t NEW_AGeExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0,
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4306;
+  fra.me.line = 4374;
   fra.me.meth = LOCATE_NEW_AGeExpr_parser___parser_prod___ABinopExpr___init_abinopexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -65318,7 +62103,7 @@ val_t NEW_AGeExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0,
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4306 */
+  /* parser/parser_prod.nit:4374 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AGeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AGeExpr(fra.me.REG[2]);
   parser___parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -65332,7 +62117,7 @@ val_t NEW_AGeExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_AGeExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -65340,7 +62125,7 @@ val_t NEW_AGeExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AGeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AGeExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -65348,26 +62133,27 @@ val_t NEW_AGeExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AGgExpr[118] = {
-  {(bigint) 3851 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AGgExpr[124] = {
+  {(bigint) 3939 /* 0: Identity */},
   {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AGgExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AGgExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AGgExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: AGgExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AGgExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AGgExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AGgExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AGgExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: AGgExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AGgExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3823 /* 9: AGgExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: AGgExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: AGgExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 3891 /* 12: AGgExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 3939 /* 13: AGgExpr < AGgExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: AGgExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: AGgExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: AGgExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3803 /* 12: AGgExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3851 /* 13: AGgExpr < AGgExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: AGgExpr < Object: superclass init_table position */},
+  {(bigint) 8 /* 19: AGgExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -65383,6 +62169,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AGgExpr[118] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -65409,28 +62197,31 @@ const classtable_elt_t VFT_parser___parser_nodes___AGgExpr[118] = {
   {(bigint) parser___parser_prod___AGgExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AGgExpr___visit_all},
-  {(bigint) 4 /* 60: AGgExpr < ANode: superclass init_table position */},
+  {(bigint) 7 /* 63: AGgExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: AGgExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: AGgExpr < Prod: superclass init_table position */},
+  {(bigint) 6 /* 72: AGgExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 2 /* 75: AGgExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: AGgExpr < AExpr: superclass init_table position */},
+  {(bigint) 5 /* 80: AGgExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65443,13 +62234,13 @@ const classtable_elt_t VFT_parser___parser_nodes___AGgExpr[118] = {
   {(bigint) syntax___typing___ABinopExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: AGgExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 4 /* 100: AGgExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: AGgExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 106: AGgExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___AGgExpr___name},
@@ -65457,16 +62248,16 @@ const classtable_elt_t VFT_parser___parser_nodes___AGgExpr[118] = {
   {(bigint) syntax___typing___ASendExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: AGgExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 1 /* 114: AGgExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
   {(bigint) parser___parser_prod___ABinopExpr___empty_init},
   {(bigint) parser___parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 8 /* 113: AGgExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 0 /* 119: AGgExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser___parser_prod___AGgExpr___empty_init},
   {(bigint) parser___parser_prod___AGgExpr___init_aggexpr},
-  {(bigint) 9 /* 117: AGgExpr < AGgExpr: superclass init_table position */},
+  {(bigint) 9 /* 123: AGgExpr < AGgExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -65503,13 +62294,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AGgExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -65564,13 +62355,13 @@ val_t NEW_AGgExpr_parser___parser_prod___ABinopExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4304;
+  fra.me.line = 4372;
   fra.me.meth = LOCATE_NEW_AGgExpr_parser___parser_prod___ABinopExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4304 */
+  /* parser/parser_prod.nit:4372 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AGgExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AGgExpr(fra.me.REG[0]);
   parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
@@ -65584,13 +62375,13 @@ val_t NEW_AGgExpr_parser___parser_prod___AGgExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4889;
+  fra.me.line = 4957;
   fra.me.meth = LOCATE_NEW_AGgExpr_parser___parser_prod___AGgExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4889 */
+  /* parser/parser_prod.nit:4957 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AGgExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AGgExpr(fra.me.REG[0]);
   parser___parser_prod___AGgExpr___empty_init(fra.me.REG[0], init_table);
@@ -65604,7 +62395,7 @@ val_t NEW_AGgExpr_parser___parser_prod___AGgExpr___init_aggexpr(val_t p0, val_t
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4891;
+  fra.me.line = 4959;
   fra.me.meth = LOCATE_NEW_AGgExpr_parser___parser_prod___AGgExpr___init_aggexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -65614,7 +62405,7 @@ val_t NEW_AGgExpr_parser___parser_prod___AGgExpr___init_aggexpr(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4891 */
+  /* parser/parser_prod.nit:4959 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AGgExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AGgExpr(fra.me.REG[2]);
   parser___parser_prod___AGgExpr___init_aggexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -65622,26 +62413,25 @@ val_t NEW_AGgExpr_parser___parser_prod___AGgExpr___init_aggexpr(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AGgExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AGgExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AGgExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AGgExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AGgExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AGgExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AGgExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AGgExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AGgExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_AGgExpr_parser___parser_prod___ASendExpr___empty_init(void){
   struct {struct stack_frame_t me;} fra;
@@ -65649,13 +62439,13 @@ val_t NEW_AGgExpr_parser___parser_prod___ASendExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_AGgExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AGgExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AGgExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -65669,7 +62459,7 @@ val_t NEW_AGgExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0,
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4306;
+  fra.me.line = 4374;
   fra.me.meth = LOCATE_NEW_AGgExpr_parser___parser_prod___ABinopExpr___init_abinopexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -65679,7 +62469,7 @@ val_t NEW_AGgExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0,
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4306 */
+  /* parser/parser_prod.nit:4374 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AGgExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AGgExpr(fra.me.REG[2]);
   parser___parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -65693,7 +62483,7 @@ val_t NEW_AGgExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_AGgExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -65701,7 +62491,7 @@ val_t NEW_AGgExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AGgExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AGgExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -65709,17 +62499,18 @@ val_t NEW_AGgExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AIsaExpr[88] = {
-  {(bigint) 3639 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AIsaExpr[94] = {
+  {(bigint) 3719 /* 0: Identity */},
   {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AIsaExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AIsaExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AIsaExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3259 /* 5: AIsaExpr < ATypeCheckExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AIsaExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AIsaExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3483 /* 8: AIsaExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 3639 /* 9: AIsaExpr < AIsaExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AIsaExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AIsaExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3323 /* 6: AIsaExpr < ATypeCheckExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AIsaExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3563 /* 8: AIsaExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 3719 /* 9: AIsaExpr < AIsaExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65728,7 +62519,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AIsaExpr[88] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: AIsaExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AIsaExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -65744,6 +62535,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AIsaExpr[88] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -65770,32 +62563,35 @@ const classtable_elt_t VFT_parser___parser_nodes___AIsaExpr[88] = {
   {(bigint) parser___parser_prod___AIsaExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AIsaExpr___visit_all},
-  {(bigint) 2 /* 60: AIsaExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AIsaExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AIsaExpr___after_typing},
-  {(bigint) 0 /* 67: AIsaExpr < ATypeCheckExpr: superclass init_table position */},
-  {(bigint) syntax___typing___ATypeCheckExpr___check_expr_cast},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 1 /* 70: AIsaExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AIsaExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) 0 /* 74: AIsaExpr < ATypeCheckExpr: superclass init_table position */},
+  {(bigint) syntax___typing___ATypeCheckExpr___check_expr_cast},
+  {(bigint) syntax___mmbuilder___ABoolExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 4 /* 75: AIsaExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AIsaExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AIsaExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 5 /* 82: AIsaExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) 5 /* 88: AIsaExpr < ABoolExpr: superclass init_table position */},
   {(bigint) parser___parser_prod___AIsaExpr___empty_init},
   {(bigint) parser___parser_prod___AIsaExpr___init_aisaexpr},
-  {(bigint) 6 /* 85: AIsaExpr < AIsaExpr: superclass init_table position */},
+  {(bigint) 6 /* 91: AIsaExpr < AIsaExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AIsaExpr___n_expr},
   {(bigint) parser___parser_nodes___AIsaExpr___n_type},
 };
@@ -65825,7 +62621,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AIsaExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -65875,13 +62671,13 @@ val_t NEW_AIsaExpr_parser___parser_prod___AIsaExpr___empty_init(void){
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4934;
+  fra.me.line = 5002;
   fra.me.meth = LOCATE_NEW_AIsaExpr_parser___parser_prod___AIsaExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4934 */
+  /* parser/parser_prod.nit:5002 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AIsaExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AIsaExpr(fra.me.REG[0]);
   parser___parser_prod___AIsaExpr___empty_init(fra.me.REG[0], init_table);
@@ -65895,7 +62691,7 @@ val_t NEW_AIsaExpr_parser___parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4936;
+  fra.me.line = 5004;
   fra.me.meth = LOCATE_NEW_AIsaExpr_parser___parser_prod___AIsaExpr___init_aisaexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -65905,7 +62701,7 @@ val_t NEW_AIsaExpr_parser___parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4936 */
+  /* parser/parser_prod.nit:5004 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AIsaExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AIsaExpr(fra.me.REG[2]);
   parser___parser_prod___AIsaExpr___init_aisaexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -65913,47 +62709,47 @@ val_t NEW_AIsaExpr_parser___parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AIsaExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AIsaExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AIsaExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AIsaExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AIsaExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AIsaExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AIsaExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AIsaExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AIsaExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___APlusExpr[118] = {
-  {(bigint) 3819 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___APlusExpr[124] = {
+  {(bigint) 3907 /* 0: Identity */},
   {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "APlusExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: APlusExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: APlusExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: APlusExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: APlusExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: APlusExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: APlusExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: APlusExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: APlusExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: APlusExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3823 /* 9: APlusExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: APlusExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: APlusExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 3891 /* 12: APlusExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 3907 /* 13: APlusExpr < APlusExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: APlusExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: APlusExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: APlusExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3803 /* 12: APlusExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3819 /* 13: APlusExpr < APlusExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: APlusExpr < Object: superclass init_table position */},
+  {(bigint) 8 /* 19: APlusExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -65969,6 +62765,8 @@ const classtable_elt_t VFT_parser___parser_nodes___APlusExpr[118] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -65995,28 +62793,31 @@ const classtable_elt_t VFT_parser___parser_nodes___APlusExpr[118] = {
   {(bigint) parser___parser_prod___APlusExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___APlusExpr___visit_all},
-  {(bigint) 4 /* 60: APlusExpr < ANode: superclass init_table position */},
+  {(bigint) 7 /* 63: APlusExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: APlusExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: APlusExpr < Prod: superclass init_table position */},
+  {(bigint) 6 /* 72: APlusExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 2 /* 75: APlusExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: APlusExpr < AExpr: superclass init_table position */},
+  {(bigint) 5 /* 80: APlusExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66029,13 +62830,13 @@ const classtable_elt_t VFT_parser___parser_nodes___APlusExpr[118] = {
   {(bigint) syntax___typing___ABinopExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: APlusExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 4 /* 100: APlusExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: APlusExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 106: APlusExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___APlusExpr___name},
@@ -66043,16 +62844,16 @@ const classtable_elt_t VFT_parser___parser_nodes___APlusExpr[118] = {
   {(bigint) syntax___typing___ASendExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: APlusExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 1 /* 114: APlusExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
   {(bigint) parser___parser_prod___ABinopExpr___empty_init},
   {(bigint) parser___parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 8 /* 113: APlusExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 0 /* 119: APlusExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser___parser_prod___APlusExpr___empty_init},
   {(bigint) parser___parser_prod___APlusExpr___init_aplusexpr},
-  {(bigint) 9 /* 117: APlusExpr < APlusExpr: superclass init_table position */},
+  {(bigint) 9 /* 123: APlusExpr < APlusExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -66089,13 +62890,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___APlusExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -66150,13 +62951,13 @@ val_t NEW_APlusExpr_parser___parser_prod___ABinopExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4304;
+  fra.me.line = 4372;
   fra.me.meth = LOCATE_NEW_APlusExpr_parser___parser_prod___ABinopExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4304 */
+  /* parser/parser_prod.nit:4372 */
   fra.me.REG[0] = NEW_parser___parser_nodes___APlusExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___APlusExpr(fra.me.REG[0]);
   parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
@@ -66170,13 +62971,13 @@ val_t NEW_APlusExpr_parser___parser_prod___APlusExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4979;
+  fra.me.line = 5047;
   fra.me.meth = LOCATE_NEW_APlusExpr_parser___parser_prod___APlusExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4979 */
+  /* parser/parser_prod.nit:5047 */
   fra.me.REG[0] = NEW_parser___parser_nodes___APlusExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___APlusExpr(fra.me.REG[0]);
   parser___parser_prod___APlusExpr___empty_init(fra.me.REG[0], init_table);
@@ -66190,7 +62991,7 @@ val_t NEW_APlusExpr_parser___parser_prod___APlusExpr___init_aplusexpr(val_t p0,
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4981;
+  fra.me.line = 5049;
   fra.me.meth = LOCATE_NEW_APlusExpr_parser___parser_prod___APlusExpr___init_aplusexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -66200,7 +63001,7 @@ val_t NEW_APlusExpr_parser___parser_prod___APlusExpr___init_aplusexpr(val_t p0,
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4981 */
+  /* parser/parser_prod.nit:5049 */
   fra.me.REG[2] = NEW_parser___parser_nodes___APlusExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___APlusExpr(fra.me.REG[2]);
   parser___parser_prod___APlusExpr___init_aplusexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -66208,26 +63009,25 @@ val_t NEW_APlusExpr_parser___parser_prod___APlusExpr___init_aplusexpr(val_t p0,
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_APlusExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_APlusExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_APlusExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___APlusExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___APlusExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___APlusExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___APlusExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___APlusExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___APlusExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_APlusExpr_parser___parser_prod___ASendExpr___empty_init(void){
   struct {struct stack_frame_t me;} fra;
@@ -66235,13 +63035,13 @@ val_t NEW_APlusExpr_parser___parser_prod___ASendExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_APlusExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___APlusExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___APlusExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -66255,7 +63055,7 @@ val_t NEW_APlusExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4306;
+  fra.me.line = 4374;
   fra.me.meth = LOCATE_NEW_APlusExpr_parser___parser_prod___ABinopExpr___init_abinopexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -66265,7 +63065,7 @@ val_t NEW_APlusExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4306 */
+  /* parser/parser_prod.nit:4374 */
   fra.me.REG[2] = NEW_parser___parser_nodes___APlusExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___APlusExpr(fra.me.REG[2]);
   parser___parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -66279,7 +63079,7 @@ val_t NEW_APlusExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_APlusExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -66287,7 +63087,7 @@ val_t NEW_APlusExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___APlusExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___APlusExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -66295,26 +63095,27 @@ val_t NEW_APlusExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AMinusExpr[118] = {
-  {(bigint) 3831 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AMinusExpr[124] = {
+  {(bigint) 3919 /* 0: Identity */},
   {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AMinusExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AMinusExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AMinusExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: AMinusExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AMinusExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AMinusExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AMinusExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AMinusExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: AMinusExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AMinusExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3823 /* 9: AMinusExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: AMinusExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: AMinusExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 3891 /* 12: AMinusExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 3919 /* 13: AMinusExpr < AMinusExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: AMinusExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: AMinusExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: AMinusExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3803 /* 12: AMinusExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3831 /* 13: AMinusExpr < AMinusExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: AMinusExpr < Object: superclass init_table position */},
+  {(bigint) 8 /* 19: AMinusExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -66330,6 +63131,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AMinusExpr[118] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -66356,28 +63159,31 @@ const classtable_elt_t VFT_parser___parser_nodes___AMinusExpr[118] = {
   {(bigint) parser___parser_prod___AMinusExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AMinusExpr___visit_all},
-  {(bigint) 4 /* 60: AMinusExpr < ANode: superclass init_table position */},
+  {(bigint) 7 /* 63: AMinusExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: AMinusExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: AMinusExpr < Prod: superclass init_table position */},
+  {(bigint) 6 /* 72: AMinusExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 2 /* 75: AMinusExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: AMinusExpr < AExpr: superclass init_table position */},
+  {(bigint) 5 /* 80: AMinusExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66390,13 +63196,13 @@ const classtable_elt_t VFT_parser___parser_nodes___AMinusExpr[118] = {
   {(bigint) syntax___typing___ABinopExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: AMinusExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 4 /* 100: AMinusExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: AMinusExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 106: AMinusExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___AMinusExpr___name},
@@ -66404,16 +63210,16 @@ const classtable_elt_t VFT_parser___parser_nodes___AMinusExpr[118] = {
   {(bigint) syntax___typing___ASendExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: AMinusExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 1 /* 114: AMinusExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
   {(bigint) parser___parser_prod___ABinopExpr___empty_init},
   {(bigint) parser___parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 8 /* 113: AMinusExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 0 /* 119: AMinusExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser___parser_prod___AMinusExpr___empty_init},
   {(bigint) parser___parser_prod___AMinusExpr___init_aminusexpr},
-  {(bigint) 9 /* 117: AMinusExpr < AMinusExpr: superclass init_table position */},
+  {(bigint) 9 /* 123: AMinusExpr < AMinusExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -66450,13 +63256,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AMinusExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -66511,13 +63317,13 @@ val_t NEW_AMinusExpr_parser___parser_prod___ABinopExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4304;
+  fra.me.line = 4372;
   fra.me.meth = LOCATE_NEW_AMinusExpr_parser___parser_prod___ABinopExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4304 */
+  /* parser/parser_prod.nit:4372 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AMinusExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AMinusExpr(fra.me.REG[0]);
   parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
@@ -66531,13 +63337,13 @@ val_t NEW_AMinusExpr_parser___parser_prod___AMinusExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5024;
+  fra.me.line = 5092;
   fra.me.meth = LOCATE_NEW_AMinusExpr_parser___parser_prod___AMinusExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:5024 */
+  /* parser/parser_prod.nit:5092 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AMinusExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AMinusExpr(fra.me.REG[0]);
   parser___parser_prod___AMinusExpr___empty_init(fra.me.REG[0], init_table);
@@ -66551,7 +63357,7 @@ val_t NEW_AMinusExpr_parser___parser_prod___AMinusExpr___init_aminusexpr(val_t p
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5026;
+  fra.me.line = 5094;
   fra.me.meth = LOCATE_NEW_AMinusExpr_parser___parser_prod___AMinusExpr___init_aminusexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -66561,7 +63367,7 @@ val_t NEW_AMinusExpr_parser___parser_prod___AMinusExpr___init_aminusexpr(val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5026 */
+  /* parser/parser_prod.nit:5094 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AMinusExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AMinusExpr(fra.me.REG[2]);
   parser___parser_prod___AMinusExpr___init_aminusexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -66569,26 +63375,25 @@ val_t NEW_AMinusExpr_parser___parser_prod___AMinusExpr___init_aminusexpr(val_t p
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AMinusExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AMinusExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AMinusExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AMinusExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AMinusExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AMinusExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AMinusExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AMinusExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AMinusExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_AMinusExpr_parser___parser_prod___ASendExpr___empty_init(void){
   struct {struct stack_frame_t me;} fra;
@@ -66596,13 +63401,13 @@ val_t NEW_AMinusExpr_parser___parser_prod___ASendExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_AMinusExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AMinusExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AMinusExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -66616,7 +63421,7 @@ val_t NEW_AMinusExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4306;
+  fra.me.line = 4374;
   fra.me.meth = LOCATE_NEW_AMinusExpr_parser___parser_prod___ABinopExpr___init_abinopexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -66626,7 +63431,7 @@ val_t NEW_AMinusExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4306 */
+  /* parser/parser_prod.nit:4374 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AMinusExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AMinusExpr(fra.me.REG[2]);
   parser___parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -66640,7 +63445,7 @@ val_t NEW_AMinusExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0)
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_AMinusExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -66648,7 +63453,7 @@ val_t NEW_AMinusExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0)
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AMinusExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AMinusExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -66656,26 +63461,27 @@ val_t NEW_AMinusExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0)
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AStarshipExpr[118] = {
-  {(bigint) 3807 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AStarshipExpr[124] = {
+  {(bigint) 3895 /* 0: Identity */},
   {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AStarshipExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AStarshipExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AStarshipExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: AStarshipExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AStarshipExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AStarshipExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AStarshipExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AStarshipExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: AStarshipExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AStarshipExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3823 /* 9: AStarshipExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: AStarshipExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: AStarshipExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 3891 /* 12: AStarshipExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 3895 /* 13: AStarshipExpr < AStarshipExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: AStarshipExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: AStarshipExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: AStarshipExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3803 /* 12: AStarshipExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3807 /* 13: AStarshipExpr < AStarshipExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: AStarshipExpr < Object: superclass init_table position */},
+  {(bigint) 8 /* 19: AStarshipExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -66691,6 +63497,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AStarshipExpr[118] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -66717,28 +63525,31 @@ const classtable_elt_t VFT_parser___parser_nodes___AStarshipExpr[118] = {
   {(bigint) parser___parser_prod___AStarshipExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AStarshipExpr___visit_all},
-  {(bigint) 4 /* 60: AStarshipExpr < ANode: superclass init_table position */},
+  {(bigint) 7 /* 63: AStarshipExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: AStarshipExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: AStarshipExpr < Prod: superclass init_table position */},
+  {(bigint) 6 /* 72: AStarshipExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 2 /* 75: AStarshipExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: AStarshipExpr < AExpr: superclass init_table position */},
+  {(bigint) 5 /* 80: AStarshipExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66751,13 +63562,13 @@ const classtable_elt_t VFT_parser___parser_nodes___AStarshipExpr[118] = {
   {(bigint) syntax___typing___ABinopExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: AStarshipExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 4 /* 100: AStarshipExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: AStarshipExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 106: AStarshipExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___AStarshipExpr___name},
@@ -66765,16 +63576,16 @@ const classtable_elt_t VFT_parser___parser_nodes___AStarshipExpr[118] = {
   {(bigint) syntax___typing___ASendExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: AStarshipExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 1 /* 114: AStarshipExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
   {(bigint) parser___parser_prod___ABinopExpr___empty_init},
   {(bigint) parser___parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 8 /* 113: AStarshipExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 0 /* 119: AStarshipExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser___parser_prod___AStarshipExpr___empty_init},
   {(bigint) parser___parser_prod___AStarshipExpr___init_astarshipexpr},
-  {(bigint) 9 /* 117: AStarshipExpr < AStarshipExpr: superclass init_table position */},
+  {(bigint) 9 /* 123: AStarshipExpr < AStarshipExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -66811,13 +63622,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AStarshipExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -66872,13 +63683,13 @@ val_t NEW_AStarshipExpr_parser___parser_prod___ABinopExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4304;
+  fra.me.line = 4372;
   fra.me.meth = LOCATE_NEW_AStarshipExpr_parser___parser_prod___ABinopExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4304 */
+  /* parser/parser_prod.nit:4372 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AStarshipExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AStarshipExpr(fra.me.REG[0]);
   parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
@@ -66892,13 +63703,13 @@ val_t NEW_AStarshipExpr_parser___parser_prod___AStarshipExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5069;
+  fra.me.line = 5137;
   fra.me.meth = LOCATE_NEW_AStarshipExpr_parser___parser_prod___AStarshipExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:5069 */
+  /* parser/parser_prod.nit:5137 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AStarshipExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AStarshipExpr(fra.me.REG[0]);
   parser___parser_prod___AStarshipExpr___empty_init(fra.me.REG[0], init_table);
@@ -66912,7 +63723,7 @@ val_t NEW_AStarshipExpr_parser___parser_prod___AStarshipExpr___init_astarshipexp
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5071;
+  fra.me.line = 5139;
   fra.me.meth = LOCATE_NEW_AStarshipExpr_parser___parser_prod___AStarshipExpr___init_astarshipexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -66922,7 +63733,7 @@ val_t NEW_AStarshipExpr_parser___parser_prod___AStarshipExpr___init_astarshipexp
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5071 */
+  /* parser/parser_prod.nit:5139 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AStarshipExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AStarshipExpr(fra.me.REG[2]);
   parser___parser_prod___AStarshipExpr___init_astarshipexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -66930,26 +63741,25 @@ val_t NEW_AStarshipExpr_parser___parser_prod___AStarshipExpr___init_astarshipexp
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AStarshipExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AStarshipExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AStarshipExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AStarshipExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AStarshipExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AStarshipExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AStarshipExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AStarshipExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AStarshipExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_AStarshipExpr_parser___parser_prod___ASendExpr___empty_init(void){
   struct {struct stack_frame_t me;} fra;
@@ -66957,13 +63767,13 @@ val_t NEW_AStarshipExpr_parser___parser_prod___ASendExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_AStarshipExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AStarshipExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AStarshipExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -66977,7 +63787,7 @@ val_t NEW_AStarshipExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4306;
+  fra.me.line = 4374;
   fra.me.meth = LOCATE_NEW_AStarshipExpr_parser___parser_prod___ABinopExpr___init_abinopexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -66987,7 +63797,7 @@ val_t NEW_AStarshipExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4306 */
+  /* parser/parser_prod.nit:4374 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AStarshipExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AStarshipExpr(fra.me.REG[2]);
   parser___parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -67001,7 +63811,7 @@ val_t NEW_AStarshipExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_AStarshipExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -67009,7 +63819,7 @@ val_t NEW_AStarshipExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AStarshipExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AStarshipExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -67017,26 +63827,27 @@ val_t NEW_AStarshipExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AStarExpr[118] = {
-  {(bigint) 3811 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AStarExpr[124] = {
+  {(bigint) 3899 /* 0: Identity */},
   {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AStarExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AStarExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AStarExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: AStarExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AStarExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AStarExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AStarExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AStarExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: AStarExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AStarExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3823 /* 9: AStarExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: AStarExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: AStarExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 3891 /* 12: AStarExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 3899 /* 13: AStarExpr < AStarExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: AStarExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: AStarExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: AStarExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3803 /* 12: AStarExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3811 /* 13: AStarExpr < AStarExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: AStarExpr < Object: superclass init_table position */},
+  {(bigint) 8 /* 19: AStarExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -67052,6 +63863,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AStarExpr[118] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -67078,28 +63891,31 @@ const classtable_elt_t VFT_parser___parser_nodes___AStarExpr[118] = {
   {(bigint) parser___parser_prod___AStarExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AStarExpr___visit_all},
-  {(bigint) 4 /* 60: AStarExpr < ANode: superclass init_table position */},
+  {(bigint) 7 /* 63: AStarExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: AStarExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: AStarExpr < Prod: superclass init_table position */},
+  {(bigint) 6 /* 72: AStarExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 2 /* 75: AStarExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: AStarExpr < AExpr: superclass init_table position */},
+  {(bigint) 5 /* 80: AStarExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67112,13 +63928,13 @@ const classtable_elt_t VFT_parser___parser_nodes___AStarExpr[118] = {
   {(bigint) syntax___typing___ABinopExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: AStarExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 4 /* 100: AStarExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: AStarExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 106: AStarExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___AStarExpr___name},
@@ -67126,16 +63942,16 @@ const classtable_elt_t VFT_parser___parser_nodes___AStarExpr[118] = {
   {(bigint) syntax___typing___ASendExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: AStarExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 1 /* 114: AStarExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
   {(bigint) parser___parser_prod___ABinopExpr___empty_init},
   {(bigint) parser___parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 8 /* 113: AStarExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 0 /* 119: AStarExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser___parser_prod___AStarExpr___empty_init},
   {(bigint) parser___parser_prod___AStarExpr___init_astarexpr},
-  {(bigint) 9 /* 117: AStarExpr < AStarExpr: superclass init_table position */},
+  {(bigint) 9 /* 123: AStarExpr < AStarExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -67172,13 +63988,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AStarExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -67233,13 +64049,13 @@ val_t NEW_AStarExpr_parser___parser_prod___ABinopExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4304;
+  fra.me.line = 4372;
   fra.me.meth = LOCATE_NEW_AStarExpr_parser___parser_prod___ABinopExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4304 */
+  /* parser/parser_prod.nit:4372 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AStarExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AStarExpr(fra.me.REG[0]);
   parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
@@ -67253,13 +64069,13 @@ val_t NEW_AStarExpr_parser___parser_prod___AStarExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5114;
+  fra.me.line = 5182;
   fra.me.meth = LOCATE_NEW_AStarExpr_parser___parser_prod___AStarExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:5114 */
+  /* parser/parser_prod.nit:5182 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AStarExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AStarExpr(fra.me.REG[0]);
   parser___parser_prod___AStarExpr___empty_init(fra.me.REG[0], init_table);
@@ -67273,7 +64089,7 @@ val_t NEW_AStarExpr_parser___parser_prod___AStarExpr___init_astarexpr(val_t p0,
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5116;
+  fra.me.line = 5184;
   fra.me.meth = LOCATE_NEW_AStarExpr_parser___parser_prod___AStarExpr___init_astarexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -67283,7 +64099,7 @@ val_t NEW_AStarExpr_parser___parser_prod___AStarExpr___init_astarexpr(val_t p0,
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5116 */
+  /* parser/parser_prod.nit:5184 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AStarExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AStarExpr(fra.me.REG[2]);
   parser___parser_prod___AStarExpr___init_astarexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -67291,26 +64107,25 @@ val_t NEW_AStarExpr_parser___parser_prod___AStarExpr___init_astarexpr(val_t p0,
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AStarExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AStarExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AStarExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AStarExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AStarExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AStarExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AStarExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AStarExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AStarExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_AStarExpr_parser___parser_prod___ASendExpr___empty_init(void){
   struct {struct stack_frame_t me;} fra;
@@ -67318,13 +64133,13 @@ val_t NEW_AStarExpr_parser___parser_prod___ASendExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_AStarExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AStarExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AStarExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -67338,7 +64153,7 @@ val_t NEW_AStarExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4306;
+  fra.me.line = 4374;
   fra.me.meth = LOCATE_NEW_AStarExpr_parser___parser_prod___ABinopExpr___init_abinopexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -67348,7 +64163,7 @@ val_t NEW_AStarExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4306 */
+  /* parser/parser_prod.nit:4374 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AStarExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AStarExpr(fra.me.REG[2]);
   parser___parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -67362,7 +64177,7 @@ val_t NEW_AStarExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_AStarExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -67370,7 +64185,7 @@ val_t NEW_AStarExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AStarExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AStarExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -67378,26 +64193,27 @@ val_t NEW_AStarExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ASlashExpr[118] = {
-  {(bigint) 3815 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ASlashExpr[124] = {
+  {(bigint) 3903 /* 0: Identity */},
   {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ASlashExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ASlashExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ASlashExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: ASlashExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ASlashExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ASlashExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ASlashExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ASlashExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: ASlashExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: ASlashExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3823 /* 9: ASlashExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: ASlashExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: ASlashExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 3891 /* 12: ASlashExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 3903 /* 13: ASlashExpr < ASlashExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: ASlashExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: ASlashExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: ASlashExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3803 /* 12: ASlashExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3815 /* 13: ASlashExpr < ASlashExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: ASlashExpr < Object: superclass init_table position */},
+  {(bigint) 8 /* 19: ASlashExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -67413,6 +64229,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ASlashExpr[118] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -67439,28 +64257,31 @@ const classtable_elt_t VFT_parser___parser_nodes___ASlashExpr[118] = {
   {(bigint) parser___parser_prod___ASlashExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ASlashExpr___visit_all},
-  {(bigint) 4 /* 60: ASlashExpr < ANode: superclass init_table position */},
+  {(bigint) 7 /* 63: ASlashExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: ASlashExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: ASlashExpr < Prod: superclass init_table position */},
+  {(bigint) 6 /* 72: ASlashExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 2 /* 75: ASlashExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: ASlashExpr < AExpr: superclass init_table position */},
+  {(bigint) 5 /* 80: ASlashExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67473,13 +64294,13 @@ const classtable_elt_t VFT_parser___parser_nodes___ASlashExpr[118] = {
   {(bigint) syntax___typing___ABinopExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: ASlashExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 4 /* 100: ASlashExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: ASlashExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 106: ASlashExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___ASlashExpr___name},
@@ -67487,16 +64308,16 @@ const classtable_elt_t VFT_parser___parser_nodes___ASlashExpr[118] = {
   {(bigint) syntax___typing___ASendExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: ASlashExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 1 /* 114: ASlashExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
   {(bigint) parser___parser_prod___ABinopExpr___empty_init},
   {(bigint) parser___parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 8 /* 113: ASlashExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 0 /* 119: ASlashExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser___parser_prod___ASlashExpr___empty_init},
   {(bigint) parser___parser_prod___ASlashExpr___init_aslashexpr},
-  {(bigint) 9 /* 117: ASlashExpr < ASlashExpr: superclass init_table position */},
+  {(bigint) 9 /* 123: ASlashExpr < ASlashExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -67533,13 +64354,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ASlashExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -67594,13 +64415,13 @@ val_t NEW_ASlashExpr_parser___parser_prod___ABinopExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4304;
+  fra.me.line = 4372;
   fra.me.meth = LOCATE_NEW_ASlashExpr_parser___parser_prod___ABinopExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4304 */
+  /* parser/parser_prod.nit:4372 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ASlashExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ASlashExpr(fra.me.REG[0]);
   parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
@@ -67614,13 +64435,13 @@ val_t NEW_ASlashExpr_parser___parser_prod___ASlashExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5159;
+  fra.me.line = 5227;
   fra.me.meth = LOCATE_NEW_ASlashExpr_parser___parser_prod___ASlashExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:5159 */
+  /* parser/parser_prod.nit:5227 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ASlashExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ASlashExpr(fra.me.REG[0]);
   parser___parser_prod___ASlashExpr___empty_init(fra.me.REG[0], init_table);
@@ -67634,7 +64455,7 @@ val_t NEW_ASlashExpr_parser___parser_prod___ASlashExpr___init_aslashexpr(val_t p
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5161;
+  fra.me.line = 5229;
   fra.me.meth = LOCATE_NEW_ASlashExpr_parser___parser_prod___ASlashExpr___init_aslashexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -67644,7 +64465,7 @@ val_t NEW_ASlashExpr_parser___parser_prod___ASlashExpr___init_aslashexpr(val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5161 */
+  /* parser/parser_prod.nit:5229 */
   fra.me.REG[2] = NEW_parser___parser_nodes___ASlashExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ASlashExpr(fra.me.REG[2]);
   parser___parser_prod___ASlashExpr___init_aslashexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -67652,26 +64473,25 @@ val_t NEW_ASlashExpr_parser___parser_prod___ASlashExpr___init_aslashexpr(val_t p
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_ASlashExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ASlashExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ASlashExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ASlashExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ASlashExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ASlashExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ASlashExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ASlashExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ASlashExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_ASlashExpr_parser___parser_prod___ASendExpr___empty_init(void){
   struct {struct stack_frame_t me;} fra;
@@ -67679,13 +64499,13 @@ val_t NEW_ASlashExpr_parser___parser_prod___ASendExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_ASlashExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ASlashExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ASlashExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -67699,7 +64519,7 @@ val_t NEW_ASlashExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4306;
+  fra.me.line = 4374;
   fra.me.meth = LOCATE_NEW_ASlashExpr_parser___parser_prod___ABinopExpr___init_abinopexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -67709,7 +64529,7 @@ val_t NEW_ASlashExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4306 */
+  /* parser/parser_prod.nit:4374 */
   fra.me.REG[2] = NEW_parser___parser_nodes___ASlashExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ASlashExpr(fra.me.REG[2]);
   parser___parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -67723,7 +64543,7 @@ val_t NEW_ASlashExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0)
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_ASlashExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -67731,7 +64551,7 @@ val_t NEW_ASlashExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0)
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ASlashExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ASlashExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -67739,26 +64559,27 @@ val_t NEW_ASlashExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0)
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___APercentExpr[118] = {
-  {(bigint) 3823 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___APercentExpr[124] = {
+  {(bigint) 3911 /* 0: Identity */},
   {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "APercentExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: APercentExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: APercentExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: APercentExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: APercentExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: APercentExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: APercentExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: APercentExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: APercentExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: APercentExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3823 /* 9: APercentExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: APercentExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: APercentExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 3891 /* 12: APercentExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 3911 /* 13: APercentExpr < APercentExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: APercentExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: APercentExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: APercentExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3803 /* 12: APercentExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 3823 /* 13: APercentExpr < APercentExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: APercentExpr < Object: superclass init_table position */},
+  {(bigint) 8 /* 19: APercentExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -67774,6 +64595,8 @@ const classtable_elt_t VFT_parser___parser_nodes___APercentExpr[118] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -67800,28 +64623,31 @@ const classtable_elt_t VFT_parser___parser_nodes___APercentExpr[118] = {
   {(bigint) parser___parser_prod___APercentExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___APercentExpr___visit_all},
-  {(bigint) 4 /* 60: APercentExpr < ANode: superclass init_table position */},
+  {(bigint) 7 /* 63: APercentExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: APercentExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: APercentExpr < Prod: superclass init_table position */},
+  {(bigint) 6 /* 72: APercentExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 2 /* 75: APercentExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: APercentExpr < AExpr: superclass init_table position */},
+  {(bigint) 5 /* 80: APercentExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67834,13 +64660,13 @@ const classtable_elt_t VFT_parser___parser_nodes___APercentExpr[118] = {
   {(bigint) syntax___typing___ABinopExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: APercentExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 4 /* 100: APercentExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: APercentExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 106: APercentExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___APercentExpr___name},
@@ -67848,16 +64674,16 @@ const classtable_elt_t VFT_parser___parser_nodes___APercentExpr[118] = {
   {(bigint) syntax___typing___ASendExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: APercentExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 1 /* 114: APercentExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
   {(bigint) parser___parser_prod___ABinopExpr___empty_init},
   {(bigint) parser___parser_prod___ABinopExpr___init_abinopexpr},
-  {(bigint) 8 /* 113: APercentExpr < ABinopExpr: superclass init_table position */},
+  {(bigint) 0 /* 119: APercentExpr < ABinopExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABinopExpr___n_expr2},
   {(bigint) parser___parser_prod___APercentExpr___empty_init},
   {(bigint) parser___parser_prod___APercentExpr___init_apercentexpr},
-  {(bigint) 9 /* 117: APercentExpr < APercentExpr: superclass init_table position */},
+  {(bigint) 9 /* 123: APercentExpr < APercentExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -67894,13 +64720,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___APercentExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -67955,13 +64781,13 @@ val_t NEW_APercentExpr_parser___parser_prod___ABinopExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4304;
+  fra.me.line = 4372;
   fra.me.meth = LOCATE_NEW_APercentExpr_parser___parser_prod___ABinopExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4304 */
+  /* parser/parser_prod.nit:4372 */
   fra.me.REG[0] = NEW_parser___parser_nodes___APercentExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___APercentExpr(fra.me.REG[0]);
   parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[0], init_table);
@@ -67975,13 +64801,13 @@ val_t NEW_APercentExpr_parser___parser_prod___APercentExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5204;
+  fra.me.line = 5272;
   fra.me.meth = LOCATE_NEW_APercentExpr_parser___parser_prod___APercentExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:5204 */
+  /* parser/parser_prod.nit:5272 */
   fra.me.REG[0] = NEW_parser___parser_nodes___APercentExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___APercentExpr(fra.me.REG[0]);
   parser___parser_prod___APercentExpr___empty_init(fra.me.REG[0], init_table);
@@ -67995,7 +64821,7 @@ val_t NEW_APercentExpr_parser___parser_prod___APercentExpr___init_apercentexpr(v
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5206;
+  fra.me.line = 5274;
   fra.me.meth = LOCATE_NEW_APercentExpr_parser___parser_prod___APercentExpr___init_apercentexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -68005,7 +64831,7 @@ val_t NEW_APercentExpr_parser___parser_prod___APercentExpr___init_apercentexpr(v
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5206 */
+  /* parser/parser_prod.nit:5274 */
   fra.me.REG[2] = NEW_parser___parser_nodes___APercentExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___APercentExpr(fra.me.REG[2]);
   parser___parser_prod___APercentExpr___init_apercentexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -68013,26 +64839,25 @@ val_t NEW_APercentExpr_parser___parser_prod___APercentExpr___init_apercentexpr(v
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_APercentExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_APercentExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_APercentExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___APercentExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___APercentExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___APercentExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___APercentExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___APercentExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___APercentExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_APercentExpr_parser___parser_prod___ASendExpr___empty_init(void){
   struct {struct stack_frame_t me;} fra;
@@ -68040,13 +64865,13 @@ val_t NEW_APercentExpr_parser___parser_prod___ASendExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_APercentExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___APercentExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___APercentExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -68060,7 +64885,7 @@ val_t NEW_APercentExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4306;
+  fra.me.line = 4374;
   fra.me.meth = LOCATE_NEW_APercentExpr_parser___parser_prod___ABinopExpr___init_abinopexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -68070,7 +64895,7 @@ val_t NEW_APercentExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4306 */
+  /* parser/parser_prod.nit:4374 */
   fra.me.REG[2] = NEW_parser___parser_nodes___APercentExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___APercentExpr(fra.me.REG[2]);
   parser___parser_prod___ABinopExpr___init_abinopexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -68084,7 +64909,7 @@ val_t NEW_APercentExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_APercentExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -68092,7 +64917,7 @@ val_t NEW_APercentExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___APercentExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___APercentExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -68100,26 +64925,27 @@ val_t NEW_APercentExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AUminusExpr[115] = {
-  {(bigint) 3783 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AUminusExpr[121] = {
+  {(bigint) 3867 /* 0: Identity */},
   {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AUminusExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AUminusExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AUminusExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: AUminusExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AUminusExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AUminusExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AUminusExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AUminusExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: AUminusExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AUminusExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3823 /* 9: AUminusExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: AUminusExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: AUminusExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 3867 /* 12: AUminusExpr < AUminusExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: AUminusExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: AUminusExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: AUminusExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3783 /* 12: AUminusExpr < AUminusExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: AUminusExpr < Object: superclass init_table position */},
+  {(bigint) 7 /* 19: AUminusExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -68135,6 +64961,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AUminusExpr[115] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -68161,28 +64989,31 @@ const classtable_elt_t VFT_parser___parser_nodes___AUminusExpr[115] = {
   {(bigint) parser___parser_prod___AUminusExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AUminusExpr___visit_all},
-  {(bigint) 4 /* 60: AUminusExpr < ANode: superclass init_table position */},
+  {(bigint) 6 /* 63: AUminusExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: AUminusExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: AUminusExpr < Prod: superclass init_table position */},
+  {(bigint) 5 /* 72: AUminusExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 1 /* 75: AUminusExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: AUminusExpr < AExpr: superclass init_table position */},
+  {(bigint) 4 /* 80: AUminusExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68195,13 +65026,13 @@ const classtable_elt_t VFT_parser___parser_nodes___AUminusExpr[115] = {
   {(bigint) syntax___typing___AUminusExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: AUminusExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 100: AUminusExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: AUminusExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 2 /* 106: AUminusExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___AUminusExpr___name},
@@ -68209,12 +65040,12 @@ const classtable_elt_t VFT_parser___parser_nodes___AUminusExpr[115] = {
   {(bigint) syntax___typing___ASendExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: AUminusExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 0 /* 114: AUminusExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
   {(bigint) parser___parser_prod___AUminusExpr___empty_init},
   {(bigint) parser___parser_prod___AUminusExpr___init_auminusexpr},
-  {(bigint) 8 /* 113: AUminusExpr < AUminusExpr: superclass init_table position */},
+  {(bigint) 8 /* 119: AUminusExpr < AUminusExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AUminusExpr___n_minus},
 };
 /* 0: Pointer to the classtable */
@@ -68252,13 +65083,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AUminusExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -68313,13 +65144,13 @@ val_t NEW_AUminusExpr_parser___parser_prod___ASendExpr___empty_init(void){
   int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_AUminusExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AUminusExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AUminusExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -68333,13 +65164,13 @@ val_t NEW_AUminusExpr_parser___parser_prod___AUminusExpr___empty_init(void){
   int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5249;
+  fra.me.line = 5317;
   fra.me.meth = LOCATE_NEW_AUminusExpr_parser___parser_prod___AUminusExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:5249 */
+  /* parser/parser_prod.nit:5317 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AUminusExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AUminusExpr(fra.me.REG[0]);
   parser___parser_prod___AUminusExpr___empty_init(fra.me.REG[0], init_table);
@@ -68353,7 +65184,7 @@ val_t NEW_AUminusExpr_parser___parser_prod___AUminusExpr___init_auminusexpr(val_
   int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5251;
+  fra.me.line = 5319;
   fra.me.meth = LOCATE_NEW_AUminusExpr_parser___parser_prod___AUminusExpr___init_auminusexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -68363,7 +65194,7 @@ val_t NEW_AUminusExpr_parser___parser_prod___AUminusExpr___init_auminusexpr(val_
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5251 */
+  /* parser/parser_prod.nit:5319 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AUminusExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AUminusExpr(fra.me.REG[2]);
   parser___parser_prod___AUminusExpr___init_auminusexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -68371,26 +65202,25 @@ val_t NEW_AUminusExpr_parser___parser_prod___AUminusExpr___init_auminusexpr(val_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AUminusExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AUminusExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AUminusExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AUminusExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AUminusExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AUminusExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AUminusExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AUminusExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AUminusExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_AUminusExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
@@ -68398,7 +65228,7 @@ val_t NEW_AUminusExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0
   int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_AUminusExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -68406,7 +65236,7 @@ val_t NEW_AUminusExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AUminusExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AUminusExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -68414,18 +65244,19 @@ val_t NEW_AUminusExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ANewExpr[110] = {
-  {(bigint) 3755 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ANewExpr[116] = {
+  {(bigint) 3839 /* 0: Identity */},
   {(bigint) 22 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ANewExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ANewExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ANewExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: ANewExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ANewExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ANewExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ANewExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ANewExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: ANewExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: ANewExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3823 /* 9: ANewExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3839 /* 10: ANewExpr < ANewExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: ANewExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3755 /* 10: ANewExpr < ANewExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68433,7 +65264,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ANewExpr[110] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 4 /* 18: ANewExpr < Object: superclass init_table position */},
+  {(bigint) 5 /* 19: ANewExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -68449,6 +65280,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ANewExpr[110] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -68475,28 +65308,31 @@ const classtable_elt_t VFT_parser___parser_nodes___ANewExpr[110] = {
   {(bigint) parser___parser_prod___ANewExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ANewExpr___visit_all},
-  {(bigint) 3 /* 60: ANewExpr < ANode: superclass init_table position */},
+  {(bigint) 4 /* 63: ANewExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANewExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 2 /* 70: ANewExpr < Prod: superclass init_table position */},
+  {(bigint) 3 /* 72: ANewExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___ANewExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 5 /* 75: ANewExpr < AExpr: superclass init_table position */},
+  {(bigint) 2 /* 80: ANewExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ANewExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68509,18 +65345,18 @@ const classtable_elt_t VFT_parser___parser_nodes___ANewExpr[110] = {
   {(bigint) syntax___typing___ANewExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 1 /* 94: ANewExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 1 /* 100: ANewExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 0 /* 100: ANewExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 0 /* 106: ANewExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) parser___parser_prod___ANewExpr___empty_init},
   {(bigint) parser___parser_prod___ANewExpr___init_anewexpr},
-  {(bigint) 6 /* 105: ANewExpr < ANewExpr: superclass init_table position */},
+  {(bigint) 6 /* 111: ANewExpr < ANewExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANewExpr___n_kwnew},
   {(bigint) parser___parser_nodes___ANewExpr___n_type},
   {(bigint) parser___parser_nodes___ANewExpr___n_id},
@@ -68562,16 +65398,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ANewExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser_nodes.nit:865 */
+  /* parser/parser_nodes.nit:937 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:866 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:365 */
+  REGB0 = TAG_Bool(false);
+  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -68598,11 +65431,6 @@ void CHECKNEW_parser___parser_nodes___ANewExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
-  }
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -68618,6 +65446,11 @@ void CHECKNEW_parser___parser_nodes___ANewExpr(val_t p0){
   } else {
     nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_nitc, 0);
   }
+  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
+  }
   stack_frame_head = fra.me.prev;
 }
 val_t NEW_ANewExpr_parser___parser_prod___ANewExpr___empty_init(void){
@@ -68626,13 +65459,13 @@ val_t NEW_ANewExpr_parser___parser_prod___ANewExpr___empty_init(void){
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5294;
+  fra.me.line = 5362;
   fra.me.meth = LOCATE_NEW_ANewExpr_parser___parser_prod___ANewExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:5294 */
+  /* parser/parser_prod.nit:5362 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ANewExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ANewExpr(fra.me.REG[0]);
   parser___parser_prod___ANewExpr___empty_init(fra.me.REG[0], init_table);
@@ -68646,7 +65479,7 @@ val_t NEW_ANewExpr_parser___parser_prod___ANewExpr___init_anewexpr(val_t p0, val
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5296;
+  fra.me.line = 5364;
   fra.me.meth = LOCATE_NEW_ANewExpr_parser___parser_prod___ANewExpr___init_anewexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -68660,7 +65493,7 @@ val_t NEW_ANewExpr_parser___parser_prod___ANewExpr___init_anewexpr(val_t p0, val
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:5296 */
+  /* parser/parser_prod.nit:5364 */
   fra.me.REG[4] = NEW_parser___parser_nodes___ANewExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ANewExpr(fra.me.REG[4]);
   parser___parser_prod___ANewExpr___init_anewexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
@@ -68668,233 +65501,37 @@ val_t NEW_ANewExpr_parser___parser_prod___ANewExpr___init_anewexpr(val_t p0, val
   stack_frame_head = fra.me.prev;
   return fra.me.REG[4];
 }
-val_t NEW_ANewExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ANewExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ANewExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ANewExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ANewExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ANewExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AAttrFormExpr[96] = {
-  {(bigint) 3495 /* 0: Identity */},
-  {(bigint) 20 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AAttrFormExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AAttrFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AAttrFormExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3495 /* 5: AAttrFormExpr < AAttrFormExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AAttrFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AAttrFormExpr < AExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AAttrFormExpr < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: AAttrFormExpr < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___AExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AAttrFormExpr < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExpr___is_typed},
-  {(bigint) syntax___typing___AExpr___is_statement},
-  {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AAttrFormExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___AExpr___generate_icode},
-  {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
-  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
-  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) syntax___typing___AAttrFormExpr___do_typing},
-  {(bigint) syntax___typing___AAttrFormExpr___prop},
-  {(bigint) syntax___typing___AAttrFormExpr___attr_type},
-  {(bigint) 4 /* 93: AAttrFormExpr < AAttrFormExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AAttrFormExpr___n_expr},
-  {(bigint) parser___parser_nodes___AAttrFormExpr___n_id},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AAttrFormExpr::_parent */
-/* 3: Attribute AAttrFormExpr::_location */
-/* 4: Attribute AAttrFormExpr::_first_location */
-/* 5: Attribute AAttrFormExpr::_last_location */
-/* Instance Hole :( */
-/* 7: Attribute AAttrFormExpr::_is_typed */
-/* 8: Attribute AAttrFormExpr::_stype */
-/* 9: Attribute AAttrFormExpr::_if_true_flow_ctx */
-/* 10: Attribute AAttrFormExpr::_if_false_flow_ctx */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* 16: Attribute AAttrFormExpr::_prop */
-/* 17: Attribute AAttrFormExpr::_attr_type */
-/* 18: Attribute AAttrFormExpr::_n_expr */
-/* 19: Attribute AAttrFormExpr::_n_id */
-void INIT_ATTRIBUTES__parser___parser_nodes___AAttrFormExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAttrFormExpr;
-  fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AAttrFormExpr(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 20);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AAttrFormExpr;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AAttrFormExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AAttrFormExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AAttrFormExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AAttrFormExpr_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AAttrFormExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAttrFormExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AAttrFormExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ANewExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ANewExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ANewExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AAttrExpr[99] = {
-  {(bigint) 3715 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AAttrExpr[105] = {
+  {(bigint) 3799 /* 0: Identity */},
   {(bigint) 20 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AAttrExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AAttrExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AAttrExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3495 /* 5: AAttrExpr < AAttrFormExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AAttrExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AAttrExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3715 /* 8: AAttrExpr < AAttrExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AAttrExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AAttrExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3575 /* 6: AAttrExpr < AAttrFormExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AAttrExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3799 /* 8: AAttrExpr < AAttrExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68904,7 +65541,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AAttrExpr[99] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AAttrExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AAttrExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -68920,6 +65557,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AAttrExpr[99] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -68946,28 +65585,31 @@ const classtable_elt_t VFT_parser___parser_nodes___AAttrExpr[99] = {
   {(bigint) parser___parser_prod___AAttrExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AAttrExpr___visit_all},
-  {(bigint) 1 /* 60: AAttrExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AAttrExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AAttrExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AAttrExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AAttrExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AAttrExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AAttrExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AAttrExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68979,12 +65621,12 @@ const classtable_elt_t VFT_parser___parser_nodes___AAttrExpr[99] = {
   {(bigint) syntax___typing___AAttrFormExpr___do_typing},
   {(bigint) syntax___typing___AAttrFormExpr___prop},
   {(bigint) syntax___typing___AAttrFormExpr___attr_type},
-  {(bigint) 4 /* 93: AAttrExpr < AAttrFormExpr: superclass init_table position */},
+  {(bigint) 0 /* 99: AAttrExpr < AAttrFormExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AAttrFormExpr___n_expr},
   {(bigint) parser___parser_nodes___AAttrFormExpr___n_id},
   {(bigint) parser___parser_prod___AAttrExpr___empty_init},
   {(bigint) parser___parser_prod___AAttrExpr___init_aattrexpr},
-  {(bigint) 5 /* 98: AAttrExpr < AAttrExpr: superclass init_table position */},
+  {(bigint) 5 /* 104: AAttrExpr < AAttrExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -69019,7 +65661,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AAttrExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -69069,13 +65711,13 @@ val_t NEW_AAttrExpr_parser___parser_prod___AAttrExpr___empty_init(void){
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5378;
+  fra.me.line = 5439;
   fra.me.meth = LOCATE_NEW_AAttrExpr_parser___parser_prod___AAttrExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:5378 */
+  /* parser/parser_prod.nit:5439 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AAttrExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AAttrExpr(fra.me.REG[0]);
   parser___parser_prod___AAttrExpr___empty_init(fra.me.REG[0], init_table);
@@ -69089,7 +65731,7 @@ val_t NEW_AAttrExpr_parser___parser_prod___AAttrExpr___init_aattrexpr(val_t p0,
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5380;
+  fra.me.line = 5441;
   fra.me.meth = LOCATE_NEW_AAttrExpr_parser___parser_prod___AAttrExpr___init_aattrexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -69099,7 +65741,7 @@ val_t NEW_AAttrExpr_parser___parser_prod___AAttrExpr___init_aattrexpr(val_t p0,
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5380 */
+  /* parser/parser_prod.nit:5441 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AAttrExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AAttrExpr(fra.me.REG[2]);
   parser___parser_prod___AAttrExpr___init_aattrexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -69107,38 +65749,38 @@ val_t NEW_AAttrExpr_parser___parser_prod___AAttrExpr___init_aattrexpr(val_t p0,
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AAttrExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AAttrExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AAttrExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AAttrExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAttrExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AAttrExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AAttrExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AAttrExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AAttrExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AAttrAssignExpr[96] = {
-  {(bigint) 3719 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AAttrAssignExpr[102] = {
+  {(bigint) 3803 /* 0: Identity */},
   {(bigint) 20 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AAttrAssignExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AAttrAssignExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AAttrAssignExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3495 /* 5: AAttrAssignExpr < AAttrFormExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AAttrAssignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AAttrAssignExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3503 /* 8: AAttrAssignExpr < AAssignFormExpr: superclass typecheck marker */},
-  {(bigint) 3719 /* 9: AAttrAssignExpr < AAttrAssignExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AAttrAssignExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AAttrAssignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3575 /* 6: AAttrAssignExpr < AAttrFormExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AAttrAssignExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3583 /* 8: AAttrAssignExpr < AAssignFormExpr: superclass typecheck marker */},
+  {(bigint) 3803 /* 9: AAttrAssignExpr < AAttrAssignExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69147,7 +65789,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AAttrAssignExpr[96] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AAttrAssignExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AAttrAssignExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -69163,6 +65805,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AAttrAssignExpr[96] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -69189,32 +65833,35 @@ const classtable_elt_t VFT_parser___parser_nodes___AAttrAssignExpr[96] = {
   {(bigint) parser___parser_prod___AAttrAssignExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AAttrAssignExpr___visit_all},
-  {(bigint) 1 /* 60: AAttrAssignExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AAttrAssignExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AAttrAssignExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AAttrAssignExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AAttrAssignExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AAttrAssignExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AAttrAssignExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AAttrAssignExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) parser___parser_prod___AAttrAssignExpr___empty_init},
   {(bigint) parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr},
-  {(bigint) 6 /* 84: AAttrAssignExpr < AAttrAssignExpr: superclass init_table position */},
-  {(bigint) 5 /* 85: AAttrAssignExpr < AAssignFormExpr: superclass init_table position */},
+  {(bigint) 6 /* 90: AAttrAssignExpr < AAttrAssignExpr: superclass init_table position */},
+  {(bigint) 5 /* 91: AAttrAssignExpr < AAssignFormExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AAssignFormExpr___n_assign},
   {(bigint) parser___parser_nodes___AAssignFormExpr___n_value},
   {0} /* Class Hole :( */,
@@ -69222,7 +65869,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AAttrAssignExpr[96] = {
   {(bigint) syntax___typing___AAttrFormExpr___do_typing},
   {(bigint) syntax___typing___AAttrFormExpr___prop},
   {(bigint) syntax___typing___AAttrFormExpr___attr_type},
-  {(bigint) 4 /* 93: AAttrAssignExpr < AAttrFormExpr: superclass init_table position */},
+  {(bigint) 0 /* 99: AAttrAssignExpr < AAttrFormExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AAttrFormExpr___n_expr},
   {(bigint) parser___parser_nodes___AAttrFormExpr___n_id},
 };
@@ -69259,7 +65906,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AAttrAssignExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -69319,13 +65966,13 @@ val_t NEW_AAttrAssignExpr_parser___parser_prod___AAttrAssignExpr___empty_init(vo
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5423;
+  fra.me.line = 5484;
   fra.me.meth = LOCATE_NEW_AAttrAssignExpr_parser___parser_prod___AAttrAssignExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:5423 */
+  /* parser/parser_prod.nit:5484 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AAttrAssignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AAttrAssignExpr(fra.me.REG[0]);
   parser___parser_prod___AAttrAssignExpr___empty_init(fra.me.REG[0], init_table);
@@ -69339,7 +65986,7 @@ val_t NEW_AAttrAssignExpr_parser___parser_prod___AAttrAssignExpr___init_aattrass
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5425;
+  fra.me.line = 5486;
   fra.me.meth = LOCATE_NEW_AAttrAssignExpr_parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -69353,7 +66000,7 @@ val_t NEW_AAttrAssignExpr_parser___parser_prod___AAttrAssignExpr___init_aattrass
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:5425 */
+  /* parser/parser_prod.nit:5486 */
   fra.me.REG[4] = NEW_parser___parser_nodes___AAttrAssignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AAttrAssignExpr(fra.me.REG[4]);
   parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
@@ -69361,318 +66008,38 @@ val_t NEW_AAttrAssignExpr_parser___parser_prod___AAttrAssignExpr___init_aattrass
   stack_frame_head = fra.me.prev;
   return fra.me.REG[4];
 }
-val_t NEW_AAttrAssignExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AAttrAssignExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AAttrAssignExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AAttrAssignExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAttrAssignExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AAttrAssignExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___ACallFormExpr[116] = {
-  {(bigint) 3795 /* 0: Identity */},
-  {(bigint) 22 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ACallFormExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ACallFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ACallFormExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: ACallFormExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ACallFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ACallFormExpr < AExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: ACallFormExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: ACallFormExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: ACallFormExpr < ASendExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 3795 /* 13: ACallFormExpr < ACallFormExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: ACallFormExpr < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ASendExpr___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ASendExpr___visit_all},
-  {(bigint) 4 /* 60: ACallFormExpr < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___ACallFormExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: ACallFormExpr < ASuperInitCall: superclass init_table position */},
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: ACallFormExpr < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExpr___is_typed},
-  {(bigint) syntax___typing___AExpr___is_statement},
-  {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: ACallFormExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
-  {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
-  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
-  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___compute_raw_arguments},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: ACallFormExpr < AAbsAbsSendExpr: superclass init_table position */},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
-  {(bigint) syntax___typing___AAbsSendExpr___do_typing},
-  {(bigint) syntax___typing___AAbsSendExpr___get_property},
-  {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: ACallFormExpr < AAbsSendExpr: superclass init_table position */},
-  {(bigint) syntax___typing___AAbsSendExpr___prop},
-  {(bigint) syntax___typing___AAbsSendExpr___return_type},
-  {(bigint) syntax___typing___ASendExpr___name},
-  {(bigint) syntax___typing___ASendExpr___do_all_typing},
-  {(bigint) syntax___typing___ACallFormExpr___closure_defs},
-  {(bigint) parser___parser_prod___ASendExpr___empty_init},
-  {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: ACallFormExpr < ASendExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ASendExpr___n_expr},
-  {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
-  {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ACallFormExpr___variable_create},
-  {(bigint) 8 /* 113: ACallFormExpr < ACallFormExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ACallFormExpr___n_id},
-  {(bigint) parser___parser_nodes___ACallFormExpr___n_args},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute ACallFormExpr::_parent */
-/* 3: Attribute ACallFormExpr::_location */
-/* 4: Attribute ACallFormExpr::_first_location */
-/* 5: Attribute ACallFormExpr::_last_location */
-/* Instance Hole :( */
-/* 7: Attribute ACallFormExpr::_is_typed */
-/* 8: Attribute ACallFormExpr::_stype */
-/* 9: Attribute ACallFormExpr::_if_true_flow_ctx */
-/* 10: Attribute ACallFormExpr::_if_false_flow_ctx */
-/* 11: Attribute ACallFormExpr::_prop_signature */
-/* 12: Attribute ACallFormExpr::_raw_arguments_cache */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* 16: Attribute ACallFormExpr::_prop */
-/* 17: Attribute ACallFormExpr::_return_type */
-/* 18: Attribute ACallFormExpr::_n_expr */
-/* 19: Attribute ACallFormExpr::_n_closure_defs */
-/* 20: Attribute ACallFormExpr::_n_id */
-/* 21: Attribute ACallFormExpr::_n_args */
-void INIT_ATTRIBUTES__parser___parser_nodes___ACallFormExpr(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ACallFormExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:883 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:776 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___ACallFormExpr(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 22);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___ACallFormExpr;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___ACallFormExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___ACallFormExpr;
-  fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_ACallFormExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ACallFormExpr_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ACallFormExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ACallFormExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ACallFormExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-val_t NEW_ACallFormExpr_parser___parser_prod___ASendExpr___empty_init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
-  fra.me.meth = LOCATE_NEW_ACallFormExpr_parser___parser_prod___ASendExpr___empty_init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___ACallFormExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ACallFormExpr(fra.me.REG[0]);
-  parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ACallFormExpr(fra.me.REG[0]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AAttrAssignExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AAttrAssignExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AAttrAssignExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_ACallFormExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
-  fra.me.meth = LOCATE_NEW_ACallFormExpr_parser___parser_prod___ASendExpr___init_asendexpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
-  fra.me.REG[1] = NEW_parser___parser_nodes___ACallFormExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ACallFormExpr(fra.me.REG[1]);
-  parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ACallFormExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AAttrReassignExpr[96] = {
-  {(bigint) 3711 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AAttrReassignExpr[102] = {
+  {(bigint) 3795 /* 0: Identity */},
   {(bigint) 20 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AAttrReassignExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AAttrReassignExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AAttrReassignExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3495 /* 5: AAttrReassignExpr < AAttrFormExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AAttrReassignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AAttrReassignExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3311 /* 8: AAttrReassignExpr < AReassignFormExpr: superclass typecheck marker */},
-  {(bigint) 3711 /* 9: AAttrReassignExpr < AAttrReassignExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AAttrReassignExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AAttrReassignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3575 /* 6: AAttrReassignExpr < AAttrFormExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AAttrReassignExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3375 /* 8: AAttrReassignExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(bigint) 3795 /* 9: AAttrReassignExpr < AAttrReassignExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69681,7 +66048,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AAttrReassignExpr[96] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AAttrReassignExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AAttrReassignExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -69697,6 +66064,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AAttrReassignExpr[96] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -69723,40 +66092,43 @@ const classtable_elt_t VFT_parser___parser_nodes___AAttrReassignExpr[96] = {
   {(bigint) parser___parser_prod___AAttrReassignExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AAttrReassignExpr___visit_all},
-  {(bigint) 1 /* 60: AAttrReassignExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AAttrReassignExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AAttrReassignExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AAttrReassignExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AAttrReassignExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AAttrReassignExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AAttrReassignExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AAttrReassignExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) parser___parser_prod___AAttrReassignExpr___empty_init},
   {(bigint) parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr},
-  {(bigint) 6 /* 84: AAttrReassignExpr < AAttrReassignExpr: superclass init_table position */},
+  {(bigint) 6 /* 90: AAttrReassignExpr < AAttrReassignExpr: superclass init_table position */},
   {(bigint) syntax___typing___AReassignFormExpr___do_rvalue_typing},
   {(bigint) syntax___typing___AReassignFormExpr___assign_method},
-  {(bigint) 5 /* 87: AAttrReassignExpr < AReassignFormExpr: superclass init_table position */},
+  {(bigint) 5 /* 93: AAttrReassignExpr < AReassignFormExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AReassignFormExpr___n_assign_op},
   {(bigint) parser___parser_nodes___AReassignFormExpr___n_value},
   {(bigint) syntax___typing___AAttrFormExpr___do_typing},
   {(bigint) syntax___typing___AAttrFormExpr___prop},
   {(bigint) syntax___typing___AAttrFormExpr___attr_type},
-  {(bigint) 4 /* 93: AAttrReassignExpr < AAttrFormExpr: superclass init_table position */},
+  {(bigint) 0 /* 99: AAttrReassignExpr < AAttrFormExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AAttrFormExpr___n_expr},
   {(bigint) parser___parser_nodes___AAttrFormExpr___n_id},
 };
@@ -69793,7 +66165,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AAttrReassignExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -69853,13 +66225,13 @@ val_t NEW_AAttrReassignExpr_parser___parser_prod___AAttrReassignExpr___empty_ini
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5496;
+  fra.me.line = 5557;
   fra.me.meth = LOCATE_NEW_AAttrReassignExpr_parser___parser_prod___AAttrReassignExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:5496 */
+  /* parser/parser_prod.nit:5557 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AAttrReassignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AAttrReassignExpr(fra.me.REG[0]);
   parser___parser_prod___AAttrReassignExpr___empty_init(fra.me.REG[0], init_table);
@@ -69873,7 +66245,7 @@ val_t NEW_AAttrReassignExpr_parser___parser_prod___AAttrReassignExpr___init_aatt
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5498;
+  fra.me.line = 5559;
   fra.me.meth = LOCATE_NEW_AAttrReassignExpr_parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -69887,7 +66259,7 @@ val_t NEW_AAttrReassignExpr_parser___parser_prod___AAttrReassignExpr___init_aatt
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:5498 */
+  /* parser/parser_prod.nit:5559 */
   fra.me.REG[4] = NEW_parser___parser_nodes___AAttrReassignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AAttrReassignExpr(fra.me.REG[4]);
   parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
@@ -69895,47 +66267,47 @@ val_t NEW_AAttrReassignExpr_parser___parser_prod___AAttrReassignExpr___init_aatt
   stack_frame_head = fra.me.prev;
   return fra.me.REG[4];
 }
-val_t NEW_AAttrReassignExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AAttrReassignExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AAttrReassignExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AAttrReassignExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAttrReassignExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AAttrReassignExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AAttrReassignExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AAttrReassignExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AAttrReassignExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ACallExpr[119] = {
-  {(bigint) 3867 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ACallExpr[125] = {
+  {(bigint) 3955 /* 0: Identity */},
   {(bigint) 22 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ACallExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ACallExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ACallExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: ACallExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ACallExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ACallExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ACallExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ACallExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: ACallExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: ACallExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3823 /* 9: ACallExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: ACallExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: ACallExpr < ASendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: ACallExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: ACallExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: ACallExpr < ASendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3795 /* 13: ACallExpr < ACallFormExpr: superclass typecheck marker */},
-  {(bigint) 3867 /* 14: ACallExpr < ACallExpr: superclass typecheck marker */},
+  {(bigint) 3883 /* 14: ACallExpr < ACallFormExpr: superclass typecheck marker */},
+  {(bigint) 3955 /* 15: ACallExpr < ACallExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: ACallExpr < Object: superclass init_table position */},
+  {(bigint) 8 /* 19: ACallExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -69951,6 +66323,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ACallExpr[119] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -69977,28 +66351,31 @@ const classtable_elt_t VFT_parser___parser_nodes___ACallExpr[119] = {
   {(bigint) parser___parser_prod___ACallExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ACallExpr___visit_all},
-  {(bigint) 4 /* 60: ACallExpr < ANode: superclass init_table position */},
+  {(bigint) 7 /* 63: ACallExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ACallFormExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: ACallExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: ACallExpr < Prod: superclass init_table position */},
+  {(bigint) 6 /* 72: ACallExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 2 /* 75: ACallExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: ACallExpr < AExpr: superclass init_table position */},
+  {(bigint) 5 /* 80: ACallExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70011,13 +66388,13 @@ const classtable_elt_t VFT_parser___parser_nodes___ACallExpr[119] = {
   {(bigint) syntax___typing___ACallExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: ACallExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 4 /* 100: ACallExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: ACallExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 106: ACallExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___ACallExpr___name},
@@ -70025,17 +66402,17 @@ const classtable_elt_t VFT_parser___parser_nodes___ACallExpr[119] = {
   {(bigint) syntax___typing___ACallFormExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: ACallExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 1 /* 114: ACallExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
   {(bigint) syntax___typing___ASendExpr___after_typing},
   {(bigint) syntax___typing___ACallExpr___variable_create},
-  {(bigint) 8 /* 113: ACallExpr < ACallFormExpr: superclass init_table position */},
+  {(bigint) 0 /* 119: ACallExpr < ACallFormExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ACallFormExpr___n_id},
   {(bigint) parser___parser_nodes___ACallFormExpr___n_args},
   {(bigint) parser___parser_prod___ACallExpr___empty_init},
   {(bigint) parser___parser_prod___ACallExpr___init_acallexpr},
-  {(bigint) 9 /* 118: ACallExpr < ACallExpr: superclass init_table position */},
+  {(bigint) 9 /* 124: ACallExpr < ACallExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -70073,16 +66450,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ACallExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:883 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -70142,13 +66516,13 @@ val_t NEW_ACallExpr_parser___parser_prod___ASendExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_ACallExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ACallExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ACallExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -70162,13 +66536,13 @@ val_t NEW_ACallExpr_parser___parser_prod___ACallExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5569;
+  fra.me.line = 5630;
   fra.me.meth = LOCATE_NEW_ACallExpr_parser___parser_prod___ACallExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:5569 */
+  /* parser/parser_prod.nit:5630 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ACallExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ACallExpr(fra.me.REG[0]);
   parser___parser_prod___ACallExpr___empty_init(fra.me.REG[0], init_table);
@@ -70182,7 +66556,7 @@ val_t NEW_ACallExpr_parser___parser_prod___ACallExpr___init_acallexpr(val_t p0,
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5571;
+  fra.me.line = 5632;
   fra.me.meth = LOCATE_NEW_ACallExpr_parser___parser_prod___ACallExpr___init_acallexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -70196,7 +66570,7 @@ val_t NEW_ACallExpr_parser___parser_prod___ACallExpr___init_acallexpr(val_t p0,
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:5571 */
+  /* parser/parser_prod.nit:5632 */
   fra.me.REG[4] = NEW_parser___parser_nodes___ACallExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ACallExpr(fra.me.REG[4]);
   parser___parser_prod___ACallExpr___init_acallexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
@@ -70204,26 +66578,25 @@ val_t NEW_ACallExpr_parser___parser_prod___ACallExpr___init_acallexpr(val_t p0,
   stack_frame_head = fra.me.prev;
   return fra.me.REG[4];
 }
-val_t NEW_ACallExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ACallExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ACallExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ACallExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ACallExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ACallExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ACallExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ACallExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ACallExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_ACallExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
@@ -70231,7 +66604,7 @@ val_t NEW_ACallExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_ACallExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -70239,7 +66612,7 @@ val_t NEW_ACallExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ACallExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ACallExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -70247,26 +66620,27 @@ val_t NEW_ACallExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ACallAssignExpr[116] = {
-  {(bigint) 3871 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ACallAssignExpr[122] = {
+  {(bigint) 3959 /* 0: Identity */},
   {(bigint) 22 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ACallAssignExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ACallAssignExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ACallAssignExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: ACallAssignExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ACallAssignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ACallAssignExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3503 /* 8: ACallAssignExpr < AAssignFormExpr: superclass typecheck marker */},
-  {(bigint) 3739 /* 9: ACallAssignExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: ACallAssignExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: ACallAssignExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3871 /* 12: ACallAssignExpr < ACallAssignExpr: superclass typecheck marker */},
-  {(bigint) 3795 /* 13: ACallAssignExpr < ACallFormExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ACallAssignExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ACallAssignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: ACallAssignExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: ACallAssignExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3583 /* 8: ACallAssignExpr < AAssignFormExpr: superclass typecheck marker */},
+  {(bigint) 3823 /* 9: ACallAssignExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: ACallAssignExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: ACallAssignExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 3959 /* 12: ACallAssignExpr < ACallAssignExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3883 /* 14: ACallAssignExpr < ACallFormExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: ACallAssignExpr < Object: superclass init_table position */},
+  {(bigint) 8 /* 19: ACallAssignExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -70282,6 +66656,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ACallAssignExpr[116] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -70308,32 +66684,35 @@ const classtable_elt_t VFT_parser___parser_nodes___ACallAssignExpr[116] = {
   {(bigint) parser___parser_prod___ACallAssignExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ACallAssignExpr___visit_all},
-  {(bigint) 4 /* 60: ACallAssignExpr < ANode: superclass init_table position */},
+  {(bigint) 7 /* 63: ACallAssignExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ACallFormExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: ACallAssignExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: ACallAssignExpr < Prod: superclass init_table position */},
+  {(bigint) 6 /* 72: ACallAssignExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 2 /* 75: ACallAssignExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: ACallAssignExpr < AExpr: superclass init_table position */},
+  {(bigint) 5 /* 80: ACallAssignExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) parser___parser_prod___ACallAssignExpr___empty_init},
   {(bigint) parser___parser_prod___ACallAssignExpr___init_acallassignexpr},
-  {(bigint) 10 /* 84: ACallAssignExpr < ACallAssignExpr: superclass init_table position */},
-  {(bigint) 9 /* 85: ACallAssignExpr < AAssignFormExpr: superclass init_table position */},
+  {(bigint) 10 /* 90: ACallAssignExpr < ACallAssignExpr: superclass init_table position */},
+  {(bigint) 9 /* 91: ACallAssignExpr < AAssignFormExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AAssignFormExpr___n_assign},
   {(bigint) parser___parser_nodes___AAssignFormExpr___n_value},
   {0} /* Class Hole :( */,
@@ -70342,13 +66721,13 @@ const classtable_elt_t VFT_parser___parser_nodes___ACallAssignExpr[116] = {
   {(bigint) syntax___typing___ACallAssignExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: ACallAssignExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 4 /* 100: ACallAssignExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: ACallAssignExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 106: ACallAssignExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___ACallAssignExpr___name},
@@ -70356,12 +66735,12 @@ const classtable_elt_t VFT_parser___parser_nodes___ACallAssignExpr[116] = {
   {(bigint) syntax___typing___ACallFormExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: ACallAssignExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 1 /* 114: ACallAssignExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
   {(bigint) syntax___typing___ASendExpr___after_typing},
   {(bigint) syntax___typing___ACallAssignExpr___variable_create},
-  {(bigint) 8 /* 113: ACallAssignExpr < ACallFormExpr: superclass init_table position */},
+  {(bigint) 0 /* 119: ACallAssignExpr < ACallFormExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ACallFormExpr___n_id},
   {(bigint) parser___parser_nodes___ACallFormExpr___n_args},
 };
@@ -70401,16 +66780,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ACallAssignExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:883 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -70480,13 +66856,13 @@ val_t NEW_ACallAssignExpr_parser___parser_prod___ASendExpr___empty_init(void){
   int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_ACallAssignExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ACallAssignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ACallAssignExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -70500,13 +66876,13 @@ val_t NEW_ACallAssignExpr_parser___parser_prod___ACallAssignExpr___empty_init(vo
   int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5656;
+  fra.me.line = 5710;
   fra.me.meth = LOCATE_NEW_ACallAssignExpr_parser___parser_prod___ACallAssignExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:5656 */
+  /* parser/parser_prod.nit:5710 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ACallAssignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ACallAssignExpr(fra.me.REG[0]);
   parser___parser_prod___ACallAssignExpr___empty_init(fra.me.REG[0], init_table);
@@ -70520,7 +66896,7 @@ val_t NEW_ACallAssignExpr_parser___parser_prod___ACallAssignExpr___init_acallass
   int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5658;
+  fra.me.line = 5712;
   fra.me.meth = LOCATE_NEW_ACallAssignExpr_parser___parser_prod___ACallAssignExpr___init_acallassignexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -70536,7 +66912,7 @@ val_t NEW_ACallAssignExpr_parser___parser_prod___ACallAssignExpr___init_acallass
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:5658 */
+  /* parser/parser_prod.nit:5712 */
   fra.me.REG[5] = NEW_parser___parser_nodes___ACallAssignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ACallAssignExpr(fra.me.REG[5]);
   parser___parser_prod___ACallAssignExpr___init_acallassignexpr(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
@@ -70544,26 +66920,25 @@ val_t NEW_ACallAssignExpr_parser___parser_prod___ACallAssignExpr___init_acallass
   stack_frame_head = fra.me.prev;
   return fra.me.REG[5];
 }
-val_t NEW_ACallAssignExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ACallAssignExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ACallAssignExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ACallAssignExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ACallAssignExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ACallAssignExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ACallAssignExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ACallAssignExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ACallAssignExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_ACallAssignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
@@ -70571,7 +66946,7 @@ val_t NEW_ACallAssignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_
   int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_ACallAssignExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -70579,7 +66954,7 @@ val_t NEW_ACallAssignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ACallAssignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ACallAssignExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -70587,26 +66962,27 @@ val_t NEW_ACallAssignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ACallReassignExpr[119] = {
-  {(bigint) 3863 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ACallReassignExpr[125] = {
+  {(bigint) 3951 /* 0: Identity */},
   {(bigint) 22 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ACallReassignExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ACallReassignExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ACallReassignExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: ACallReassignExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ACallReassignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ACallReassignExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3311 /* 8: ACallReassignExpr < AReassignFormExpr: superclass typecheck marker */},
-  {(bigint) 3739 /* 9: ACallReassignExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: ACallReassignExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: ACallReassignExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3787 /* 12: ACallReassignExpr < ASendReassignExpr: superclass typecheck marker */},
-  {(bigint) 3795 /* 13: ACallReassignExpr < ACallFormExpr: superclass typecheck marker */},
-  {(bigint) 3863 /* 14: ACallReassignExpr < ACallReassignExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ACallReassignExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ACallReassignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: ACallReassignExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: ACallReassignExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3375 /* 8: ACallReassignExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(bigint) 3823 /* 9: ACallReassignExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: ACallReassignExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: ACallReassignExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 3871 /* 12: ACallReassignExpr < ASendReassignFormExpr: superclass typecheck marker */},
+  {(bigint) 3875 /* 13: ACallReassignExpr < ASendReassignExpr: superclass typecheck marker */},
+  {(bigint) 3883 /* 14: ACallReassignExpr < ACallFormExpr: superclass typecheck marker */},
+  {(bigint) 3951 /* 15: ACallReassignExpr < ACallReassignExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 7 /* 18: ACallReassignExpr < Object: superclass init_table position */},
+  {(bigint) 9 /* 19: ACallReassignExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -70622,6 +66998,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ACallReassignExpr[119] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -70648,47 +67026,50 @@ const classtable_elt_t VFT_parser___parser_nodes___ACallReassignExpr[119] = {
   {(bigint) parser___parser_prod___ACallReassignExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ACallReassignExpr___visit_all},
-  {(bigint) 6 /* 60: ACallReassignExpr < ANode: superclass init_table position */},
+  {(bigint) 8 /* 63: ACallReassignExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ACallFormExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 1 /* 68: ACallReassignExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 5 /* 70: ACallReassignExpr < Prod: superclass init_table position */},
+  {(bigint) 7 /* 72: ACallReassignExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 2 /* 75: ACallReassignExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 8 /* 75: ACallReassignExpr < AExpr: superclass init_table position */},
+  {(bigint) 6 /* 80: ACallReassignExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendReassignExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 0 /* 82: ACallReassignExpr < ASendReassignExpr: superclass init_table position */},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) 11 /* 88: ACallReassignExpr < ASendReassignFormExpr: superclass init_table position */},
+  {(bigint) 0 /* 89: ACallReassignExpr < ASendReassignExpr: superclass init_table position */},
   {(bigint) syntax___typing___ASendReassignExpr___read_prop},
-  {0} /* Class Hole :( */,
   {(bigint) syntax___typing___AReassignFormExpr___do_rvalue_typing},
   {(bigint) syntax___typing___AReassignFormExpr___assign_method},
-  {(bigint) 9 /* 87: ACallReassignExpr < AReassignFormExpr: superclass init_table position */},
+  {(bigint) 5 /* 93: ACallReassignExpr < AReassignFormExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AReassignFormExpr___n_assign_op},
   {(bigint) parser___parser_nodes___AReassignFormExpr___n_value},
   {(bigint) syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
   {(bigint) syntax___typing___ACallReassignExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 3 /* 94: ACallReassignExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 4 /* 100: ACallReassignExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 2 /* 100: ACallReassignExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 106: ACallReassignExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___ACallReassignExpr___name},
@@ -70696,17 +67077,17 @@ const classtable_elt_t VFT_parser___parser_nodes___ACallReassignExpr[119] = {
   {(bigint) syntax___typing___ACallFormExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 4 /* 108: ACallReassignExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 1 /* 114: ACallReassignExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
   {(bigint) syntax___typing___ASendExpr___after_typing},
   {(bigint) syntax___typing___ACallReassignExpr___variable_create},
-  {(bigint) 10 /* 113: ACallReassignExpr < ACallFormExpr: superclass init_table position */},
+  {(bigint) 10 /* 119: ACallReassignExpr < ACallFormExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ACallFormExpr___n_id},
   {(bigint) parser___parser_nodes___ACallFormExpr___n_args},
   {(bigint) parser___parser_prod___ACallReassignExpr___empty_init},
   {(bigint) parser___parser_prod___ACallReassignExpr___init_acallreassignexpr},
-  {(bigint) 11 /* 118: ACallReassignExpr < ACallReassignExpr: superclass init_table position */},
+  {(bigint) 12 /* 124: ACallReassignExpr < ACallReassignExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -70744,16 +67125,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ACallReassignExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:883 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -70820,16 +67198,16 @@ void CHECKNEW_parser___parser_nodes___ACallReassignExpr(val_t p0){
 val_t NEW_ACallReassignExpr_parser___parser_prod___ASendExpr___empty_init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int init_table[13] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_ACallReassignExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ACallReassignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ACallReassignExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -70840,16 +67218,16 @@ val_t NEW_ACallReassignExpr_parser___parser_prod___ASendExpr___empty_init(void){
 val_t NEW_ACallReassignExpr_parser___parser_prod___ACallReassignExpr___empty_init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int init_table[13] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5750;
+  fra.me.line = 5797;
   fra.me.meth = LOCATE_NEW_ACallReassignExpr_parser___parser_prod___ACallReassignExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:5750 */
+  /* parser/parser_prod.nit:5797 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ACallReassignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ACallReassignExpr(fra.me.REG[0]);
   parser___parser_prod___ACallReassignExpr___empty_init(fra.me.REG[0], init_table);
@@ -70860,10 +67238,10 @@ val_t NEW_ACallReassignExpr_parser___parser_prod___ACallReassignExpr___empty_ini
 val_t NEW_ACallReassignExpr_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t tmp;
-  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int init_table[13] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5752;
+  fra.me.line = 5799;
   fra.me.meth = LOCATE_NEW_ACallReassignExpr_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -70879,7 +67257,7 @@ val_t NEW_ACallReassignExpr_parser___parser_prod___ACallReassignExpr___init_acal
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:5752 */
+  /* parser/parser_prod.nit:5799 */
   fra.me.REG[5] = NEW_parser___parser_nodes___ACallReassignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ACallReassignExpr(fra.me.REG[5]);
   parser___parser_prod___ACallReassignExpr___init_acallreassignexpr(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
@@ -70887,34 +67265,33 @@ val_t NEW_ACallReassignExpr_parser___parser_prod___ACallReassignExpr___init_acal
   stack_frame_head = fra.me.prev;
   return fra.me.REG[5];
 }
-val_t NEW_ACallReassignExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ACallReassignExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int init_table[13] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ACallReassignExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ACallReassignExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ACallReassignExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ACallReassignExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ACallReassignExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ACallReassignExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ACallReassignExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_ACallReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int init_table[13] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_ACallReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -70922,7 +67299,7 @@ val_t NEW_ACallReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr(va
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ACallReassignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ACallReassignExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -70930,26 +67307,27 @@ val_t NEW_ACallReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr(va
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ASuperExpr[110] = {
-  {(bigint) 3775 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ASuperExpr[116] = {
+  {(bigint) 3859 /* 0: Identity */},
   {(bigint) 22 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ASuperExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ASuperExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ASuperExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: ASuperExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ASuperExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ASuperExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ASuperExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ASuperExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: ASuperExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: ASuperExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3823 /* 9: ASuperExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: ASuperExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3859 /* 11: ASuperExpr < ASuperExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: ASuperExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: ASuperExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3775 /* 11: ASuperExpr < ASuperExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: ASuperExpr < Object: superclass init_table position */},
+  {(bigint) 6 /* 19: ASuperExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -70965,6 +67343,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ASuperExpr[110] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -70991,28 +67371,31 @@ const classtable_elt_t VFT_parser___parser_nodes___ASuperExpr[110] = {
   {(bigint) parser___parser_prod___ASuperExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ASuperExpr___visit_all},
-  {(bigint) 4 /* 60: ASuperExpr < ANode: superclass init_table position */},
+  {(bigint) 5 /* 63: ASuperExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASuperExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: ASuperExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: ASuperExpr < Prod: superclass init_table position */},
+  {(bigint) 4 /* 72: ASuperExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 0 /* 75: ASuperExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: ASuperExpr < AExpr: superclass init_table position */},
+  {(bigint) 3 /* 80: ASuperExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASuperExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71025,19 +67408,19 @@ const classtable_elt_t VFT_parser___parser_nodes___ASuperExpr[110] = {
   {(bigint) syntax___typing___ASuperExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: ASuperExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 2 /* 100: ASuperExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: ASuperExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 1 /* 106: ASuperExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___ASuperExpr___init_in_superclass},
   {(bigint) parser___parser_prod___ASuperExpr___empty_init},
   {(bigint) parser___parser_prod___ASuperExpr___init_asuperexpr},
-  {(bigint) 7 /* 106: ASuperExpr < ASuperExpr: superclass init_table position */},
+  {(bigint) 7 /* 112: ASuperExpr < ASuperExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASuperExpr___n_qualified},
   {(bigint) parser___parser_nodes___ASuperExpr___n_kwsuper},
   {(bigint) parser___parser_nodes___ASuperExpr___n_args},
@@ -71078,16 +67461,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ASuperExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser_nodes.nit:904 */
+  /* parser/parser_nodes.nit:980 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:906 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -71137,13 +67517,13 @@ val_t NEW_ASuperExpr_parser___parser_prod___ASuperExpr___empty_init(void){
   int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5844;
+  fra.me.line = 5884;
   fra.me.meth = LOCATE_NEW_ASuperExpr_parser___parser_prod___ASuperExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:5844 */
+  /* parser/parser_prod.nit:5884 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ASuperExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ASuperExpr(fra.me.REG[0]);
   parser___parser_prod___ASuperExpr___empty_init(fra.me.REG[0], init_table);
@@ -71157,7 +67537,7 @@ val_t NEW_ASuperExpr_parser___parser_prod___ASuperExpr___init_asuperexpr(val_t p
   int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5846;
+  fra.me.line = 5886;
   fra.me.meth = LOCATE_NEW_ASuperExpr_parser___parser_prod___ASuperExpr___init_asuperexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -71169,7 +67549,7 @@ val_t NEW_ASuperExpr_parser___parser_prod___ASuperExpr___init_asuperexpr(val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5846 */
+  /* parser/parser_prod.nit:5886 */
   fra.me.REG[3] = NEW_parser___parser_nodes___ASuperExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ASuperExpr(fra.me.REG[3]);
   parser___parser_prod___ASuperExpr___init_asuperexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -71177,373 +67557,47 @@ val_t NEW_ASuperExpr_parser___parser_prod___ASuperExpr___init_asuperexpr(val_t p
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-val_t NEW_ASuperExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ASuperExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[8] = {0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ASuperExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ASuperExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ASuperExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ASuperExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ASuperExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ASuperExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ASuperExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AInitExpr[116] = {
-  {(bigint) 3791 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AInitExpr[122] = {
+  {(bigint) 3879 /* 0: Identity */},
   {(bigint) 22 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AInitExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AInitExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AInitExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: AInitExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AInitExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AInitExpr < AExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: AInitExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: AInitExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: AInitExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3791 /* 12: AInitExpr < AInitExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
+  {(bigint) 303 /* 4: AInitExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AInitExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: AInitExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AInitExpr < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 3823 /* 9: AInitExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: AInitExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: AInitExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 3879 /* 12: AInitExpr < AInitExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: AInitExpr < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___AInitExpr___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___AInitExpr___visit_all},
-  {(bigint) 4 /* 60: AInitExpr < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: AInitExpr < ASuperInitCall: superclass init_table position */},
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: AInitExpr < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExpr___is_typed},
-  {(bigint) syntax___typing___AExpr___is_statement},
-  {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: AInitExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
-  {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
-  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
-  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
-  {(bigint) syntax___typing___AInitExpr___compute_raw_arguments},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: AInitExpr < AAbsAbsSendExpr: superclass init_table position */},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
-  {(bigint) syntax___typing___AAbsSendExpr___do_typing},
-  {(bigint) syntax___typing___AAbsSendExpr___get_property},
-  {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: AInitExpr < AAbsSendExpr: superclass init_table position */},
-  {(bigint) syntax___typing___AAbsSendExpr___prop},
-  {(bigint) syntax___typing___AAbsSendExpr___return_type},
-  {(bigint) syntax___typing___AInitExpr___name},
-  {(bigint) syntax___typing___ASendExpr___do_all_typing},
-  {(bigint) syntax___typing___ASendExpr___closure_defs},
-  {(bigint) parser___parser_prod___ASendExpr___empty_init},
-  {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: AInitExpr < ASendExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ASendExpr___n_expr},
-  {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
-  {(bigint) parser___parser_prod___AInitExpr___empty_init},
-  {(bigint) parser___parser_prod___AInitExpr___init_ainitexpr},
-  {(bigint) 8 /* 113: AInitExpr < AInitExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AInitExpr___n_kwinit},
-  {(bigint) parser___parser_nodes___AInitExpr___n_args},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AInitExpr::_parent */
-/* 3: Attribute AInitExpr::_location */
-/* 4: Attribute AInitExpr::_first_location */
-/* 5: Attribute AInitExpr::_last_location */
-/* Instance Hole :( */
-/* 7: Attribute AInitExpr::_is_typed */
-/* 8: Attribute AInitExpr::_stype */
-/* 9: Attribute AInitExpr::_if_true_flow_ctx */
-/* 10: Attribute AInitExpr::_if_false_flow_ctx */
-/* 11: Attribute AInitExpr::_prop_signature */
-/* 12: Attribute AInitExpr::_raw_arguments_cache */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* 16: Attribute AInitExpr::_prop */
-/* 17: Attribute AInitExpr::_return_type */
-/* 18: Attribute AInitExpr::_n_expr */
-/* 19: Attribute AInitExpr::_n_closure_defs */
-/* 20: Attribute AInitExpr::_n_kwinit */
-/* 21: Attribute AInitExpr::_n_args */
-void INIT_ATTRIBUTES__parser___parser_nodes___AInitExpr(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AInitExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:911 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:776 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AInitExpr(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 22);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AInitExpr;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AInitExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AInitExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AInitExpr_parser___parser_prod___ASendExpr___empty_init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
-  fra.me.meth = LOCATE_NEW_AInitExpr_parser___parser_prod___ASendExpr___empty_init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___AInitExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AInitExpr(fra.me.REG[0]);
-  parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AInitExpr(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t NEW_AInitExpr_parser___parser_prod___AInitExpr___empty_init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 5914;
-  fra.me.meth = LOCATE_NEW_AInitExpr_parser___parser_prod___AInitExpr___empty_init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:5914 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___AInitExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AInitExpr(fra.me.REG[0]);
-  parser___parser_prod___AInitExpr___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AInitExpr(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t NEW_AInitExpr_parser___parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t tmp;
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 5916;
-  fra.me.meth = LOCATE_NEW_AInitExpr_parser___parser_prod___AInitExpr___init_ainitexpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5916 */
-  fra.me.REG[3] = NEW_parser___parser_nodes___AInitExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AInitExpr(fra.me.REG[3]);
-  parser___parser_prod___AInitExpr___init_ainitexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  CHECKNEW_parser___parser_nodes___AInitExpr(fra.me.REG[3]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[3];
-}
-val_t NEW_AInitExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AInitExpr_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AInitExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AInitExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AInitExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-val_t NEW_AInitExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
-  fra.me.meth = LOCATE_NEW_AInitExpr_parser___parser_prod___ASendExpr___init_asendexpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
-  fra.me.REG[1] = NEW_parser___parser_nodes___AInitExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AInitExpr(fra.me.REG[1]);
-  parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AInitExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___ABraFormExpr[113] = {
-  {(bigint) 3799 /* 0: Identity */},
-  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ABraFormExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ABraFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ABraFormExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: ABraFormExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ABraFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ABraFormExpr < AExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: ABraFormExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: ABraFormExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: ABraFormExpr < ASendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3799 /* 13: ABraFormExpr < ABraFormExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: ABraFormExpr < Object: superclass init_table position */},
+  {(bigint) 7 /* 19: AInitExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -71559,6 +67613,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ABraFormExpr[113] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -71582,31 +67638,34 @@ const classtable_elt_t VFT_parser___parser_nodes___ABraFormExpr[113] = {
   {(bigint) parser___parser_prod___ANode___parent},
   {(bigint) parser___parser_prod___ANode___parent__eq},
   {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ASendExpr___replace_child},
+  {(bigint) parser___parser_prod___AInitExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ASendExpr___visit_all},
-  {(bigint) 4 /* 60: ABraFormExpr < ANode: superclass init_table position */},
+  {(bigint) parser___parser_prod___AInitExpr___visit_all},
+  {(bigint) 6 /* 63: AInitExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: ABraFormExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: ABraFormExpr < Prod: superclass init_table position */},
+  {(bigint) 5 /* 72: AInitExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 1 /* 75: AInitExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: ABraFormExpr < AExpr: superclass init_table position */},
+  {(bigint) 4 /* 80: AInitExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71616,109 +67675,115 @@ const classtable_elt_t VFT_parser___parser_nodes___ABraFormExpr[113] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___compute_raw_arguments},
+  {(bigint) syntax___typing___AInitExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: ABraFormExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 100: AInitExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: ABraFormExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 2 /* 106: AInitExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
-  {(bigint) syntax___typing___ASendExpr___name},
+  {(bigint) syntax___typing___AInitExpr___name},
   {(bigint) syntax___typing___ASendExpr___do_all_typing},
   {(bigint) syntax___typing___ASendExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: ABraFormExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 0 /* 114: AInitExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
-  {(bigint) 8 /* 111: ABraFormExpr < ABraFormExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ABraFormExpr___n_args},
+  {(bigint) parser___parser_prod___AInitExpr___empty_init},
+  {(bigint) parser___parser_prod___AInitExpr___init_ainitexpr},
+  {(bigint) 8 /* 119: AInitExpr < AInitExpr: superclass init_table position */},
+  {(bigint) parser___parser_nodes___AInitExpr___n_kwinit},
+  {(bigint) parser___parser_nodes___AInitExpr___n_args},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ABraFormExpr::_parent */
-/* 3: Attribute ABraFormExpr::_location */
-/* 4: Attribute ABraFormExpr::_first_location */
-/* 5: Attribute ABraFormExpr::_last_location */
+/* 2: Attribute AInitExpr::_parent */
+/* 3: Attribute AInitExpr::_location */
+/* 4: Attribute AInitExpr::_first_location */
+/* 5: Attribute AInitExpr::_last_location */
 /* Instance Hole :( */
-/* 7: Attribute ABraFormExpr::_is_typed */
-/* 8: Attribute ABraFormExpr::_stype */
-/* 9: Attribute ABraFormExpr::_if_true_flow_ctx */
-/* 10: Attribute ABraFormExpr::_if_false_flow_ctx */
-/* 11: Attribute ABraFormExpr::_prop_signature */
-/* 12: Attribute ABraFormExpr::_raw_arguments_cache */
+/* 7: Attribute AInitExpr::_is_typed */
+/* 8: Attribute AInitExpr::_stype */
+/* 9: Attribute AInitExpr::_if_true_flow_ctx */
+/* 10: Attribute AInitExpr::_if_false_flow_ctx */
+/* 11: Attribute AInitExpr::_prop_signature */
+/* 12: Attribute AInitExpr::_raw_arguments_cache */
 /* Instance Hole :( */
 /* Instance Hole :( */
 /* Instance Hole :( */
-/* 16: Attribute ABraFormExpr::_prop */
-/* 17: Attribute ABraFormExpr::_return_type */
-/* 18: Attribute ABraFormExpr::_n_expr */
-/* 19: Attribute ABraFormExpr::_n_closure_defs */
-/* 20: Attribute ABraFormExpr::_n_args */
-void INIT_ATTRIBUTES__parser___parser_nodes___ABraFormExpr(val_t p0){
+/* 16: Attribute AInitExpr::_prop */
+/* 17: Attribute AInitExpr::_return_type */
+/* 18: Attribute AInitExpr::_n_expr */
+/* 19: Attribute AInitExpr::_n_closure_defs */
+/* 20: Attribute AInitExpr::_n_kwinit */
+/* 21: Attribute AInitExpr::_n_args */
+void INIT_ATTRIBUTES__parser___parser_nodes___AInitExpr(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ABraFormExpr;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AInitExpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:915 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___parser_nodes___ABraFormExpr(void)
+val_t NEW_parser___parser_nodes___AInitExpr(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 21);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___ABraFormExpr;
+  obj = alloc(sizeof(val_t) * 22);
+  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AInitExpr;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___parser_nodes___ABraFormExpr(val_t p0){
+void CHECKNEW_parser___parser_nodes___AInitExpr(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___ABraFormExpr;
+  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AInitExpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_nitc, 0);
   }
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -71732,89 +67797,135 @@ void CHECKNEW_parser___parser_nodes___ABraFormExpr(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ABraFormExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AInitExpr_parser___parser_prod___ASendExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ABraFormExpr_parser___parser_nodes___ANode___init;
+  fra.me.line = 4341;
+  fra.me.meth = LOCATE_NEW_AInitExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_prod.nit:4341 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AInitExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AInitExpr(fra.me.REG[0]);
+  parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AInitExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AInitExpr_parser___parser_prod___AInitExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5947;
+  fra.me.meth = LOCATE_NEW_AInitExpr_parser___parser_prod___AInitExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_prod.nit:5947 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AInitExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AInitExpr(fra.me.REG[0]);
+  parser___parser_prod___AInitExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AInitExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AInitExpr_parser___parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 5949;
+  fra.me.meth = LOCATE_NEW_AInitExpr_parser___parser_prod___AInitExpr___init_ainitexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ABraFormExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ABraFormExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ABraFormExpr(fra.me.REG[1]);
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  /* parser/parser_prod.nit:5949 */
+  fra.me.REG[3] = NEW_parser___parser_nodes___AInitExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AInitExpr(fra.me.REG[3]);
+  parser___parser_prod___AInitExpr___init_ainitexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_parser___parser_nodes___AInitExpr(fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[3];
 }
-val_t NEW_ABraFormExpr_parser___parser_prod___ASendExpr___empty_init(void){
+val_t NEW_AInitExpr_parser___parser_nodes___ANode___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
-  fra.me.meth = LOCATE_NEW_ABraFormExpr_parser___parser_prod___ASendExpr___empty_init;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_AInitExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___ABraFormExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ABraFormExpr(fra.me.REG[0]);
-  parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ABraFormExpr(fra.me.REG[0]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AInitExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AInitExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AInitExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_ABraFormExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
+val_t NEW_AInitExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   int init_table[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
-  fra.me.meth = LOCATE_NEW_ABraFormExpr_parser___parser_prod___ASendExpr___init_asendexpr;
+  fra.me.line = 4343;
+  fra.me.meth = LOCATE_NEW_AInitExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
-  fra.me.REG[1] = NEW_parser___parser_nodes___ABraFormExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ABraFormExpr(fra.me.REG[1]);
+  /* parser/parser_prod.nit:4343 */
+  fra.me.REG[1] = NEW_parser___parser_nodes___AInitExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AInitExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ABraFormExpr(fra.me.REG[1]);
+  CHECKNEW_parser___parser_nodes___AInitExpr(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ABraExpr[116] = {
-  {(bigint) 3879 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ABraExpr[122] = {
+  {(bigint) 3967 /* 0: Identity */},
   {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ABraExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ABraExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ABraExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: ABraExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ABraExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ABraExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ABraExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ABraExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: ABraExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: ABraExpr < AExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3823 /* 9: ABraExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: ABraExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: ABraExpr < ASendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: ABraExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: ABraExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: ABraExpr < ASendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3799 /* 13: ABraExpr < ABraFormExpr: superclass typecheck marker */},
-  {(bigint) 3879 /* 14: ABraExpr < ABraExpr: superclass typecheck marker */},
+  {(bigint) 3887 /* 14: ABraExpr < ABraFormExpr: superclass typecheck marker */},
+  {(bigint) 3967 /* 15: ABraExpr < ABraExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: ABraExpr < Object: superclass init_table position */},
+  {(bigint) 8 /* 19: ABraExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -71830,6 +67941,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ABraExpr[116] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -71856,28 +67969,31 @@ const classtable_elt_t VFT_parser___parser_nodes___ABraExpr[116] = {
   {(bigint) parser___parser_prod___ABraExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ABraExpr___visit_all},
-  {(bigint) 4 /* 60: ABraExpr < ANode: superclass init_table position */},
+  {(bigint) 7 /* 63: ABraExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: ABraExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: ABraExpr < Prod: superclass init_table position */},
+  {(bigint) 6 /* 72: ABraExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 2 /* 75: ABraExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: ABraExpr < AExpr: superclass init_table position */},
+  {(bigint) 5 /* 80: ABraExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71890,13 +68006,13 @@ const classtable_elt_t VFT_parser___parser_nodes___ABraExpr[116] = {
   {(bigint) syntax___typing___ABraExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: ABraExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 4 /* 100: ABraExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: ABraExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 106: ABraExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___ABraExpr___name},
@@ -71904,14 +68020,14 @@ const classtable_elt_t VFT_parser___parser_nodes___ABraExpr[116] = {
   {(bigint) syntax___typing___ABraExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: ABraExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 1 /* 114: ABraExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
-  {(bigint) 8 /* 111: ABraExpr < ABraFormExpr: superclass init_table position */},
+  {(bigint) 0 /* 117: ABraExpr < ABraFormExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABraFormExpr___n_args},
   {(bigint) parser___parser_prod___ABraExpr___empty_init},
   {(bigint) parser___parser_prod___ABraExpr___init_abraexpr},
-  {(bigint) 9 /* 115: ABraExpr < ABraExpr: superclass init_table position */},
+  {(bigint) 9 /* 121: ABraExpr < ABraExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -71948,16 +68064,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ABraExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:915 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -72012,13 +68125,13 @@ val_t NEW_ABraExpr_parser___parser_prod___ASendExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_ABraExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ABraExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ABraExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -72032,13 +68145,13 @@ val_t NEW_ABraExpr_parser___parser_prod___ABraExpr___empty_init(void){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5980;
+  fra.me.line = 6006;
   fra.me.meth = LOCATE_NEW_ABraExpr_parser___parser_prod___ABraExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:5980 */
+  /* parser/parser_prod.nit:6006 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ABraExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ABraExpr(fra.me.REG[0]);
   parser___parser_prod___ABraExpr___empty_init(fra.me.REG[0], init_table);
@@ -72052,7 +68165,7 @@ val_t NEW_ABraExpr_parser___parser_prod___ABraExpr___init_abraexpr(val_t p0, val
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 5982;
+  fra.me.line = 6008;
   fra.me.meth = LOCATE_NEW_ABraExpr_parser___parser_prod___ABraExpr___init_abraexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -72064,7 +68177,7 @@ val_t NEW_ABraExpr_parser___parser_prod___ABraExpr___init_abraexpr(val_t p0, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5982 */
+  /* parser/parser_prod.nit:6008 */
   fra.me.REG[3] = NEW_parser___parser_nodes___ABraExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ABraExpr(fra.me.REG[3]);
   parser___parser_prod___ABraExpr___init_abraexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -72072,26 +68185,25 @@ val_t NEW_ABraExpr_parser___parser_prod___ABraExpr___init_abraexpr(val_t p0, val
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-val_t NEW_ABraExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ABraExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ABraExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ABraExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ABraExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ABraExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ABraExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ABraExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ABraExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_ABraExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
@@ -72099,7 +68211,7 @@ val_t NEW_ABraExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_ABraExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -72107,7 +68219,7 @@ val_t NEW_ABraExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ABraExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ABraExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -72115,26 +68227,27 @@ val_t NEW_ABraExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ABraAssignExpr[113] = {
-  {(bigint) 3883 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ABraAssignExpr[119] = {
+  {(bigint) 3971 /* 0: Identity */},
   {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ABraAssignExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ABraAssignExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ABraAssignExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: ABraAssignExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ABraAssignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ABraAssignExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3503 /* 8: ABraAssignExpr < AAssignFormExpr: superclass typecheck marker */},
-  {(bigint) 3739 /* 9: ABraAssignExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: ABraAssignExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: ABraAssignExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3883 /* 12: ABraAssignExpr < ABraAssignExpr: superclass typecheck marker */},
-  {(bigint) 3799 /* 13: ABraAssignExpr < ABraFormExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ABraAssignExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ABraAssignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: ABraAssignExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: ABraAssignExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3583 /* 8: ABraAssignExpr < AAssignFormExpr: superclass typecheck marker */},
+  {(bigint) 3823 /* 9: ABraAssignExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: ABraAssignExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: ABraAssignExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 3971 /* 12: ABraAssignExpr < ABraAssignExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 3887 /* 14: ABraAssignExpr < ABraFormExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: ABraAssignExpr < Object: superclass init_table position */},
+  {(bigint) 8 /* 19: ABraAssignExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -72150,6 +68263,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ABraAssignExpr[113] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -72176,32 +68291,35 @@ const classtable_elt_t VFT_parser___parser_nodes___ABraAssignExpr[113] = {
   {(bigint) parser___parser_prod___ABraAssignExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ABraAssignExpr___visit_all},
-  {(bigint) 4 /* 60: ABraAssignExpr < ANode: superclass init_table position */},
+  {(bigint) 7 /* 63: ABraAssignExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: ABraAssignExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: ABraAssignExpr < Prod: superclass init_table position */},
+  {(bigint) 6 /* 72: ABraAssignExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 2 /* 75: ABraAssignExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: ABraAssignExpr < AExpr: superclass init_table position */},
+  {(bigint) 5 /* 80: ABraAssignExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) parser___parser_prod___ABraAssignExpr___empty_init},
   {(bigint) parser___parser_prod___ABraAssignExpr___init_abraassignexpr},
-  {(bigint) 10 /* 84: ABraAssignExpr < ABraAssignExpr: superclass init_table position */},
-  {(bigint) 9 /* 85: ABraAssignExpr < AAssignFormExpr: superclass init_table position */},
+  {(bigint) 10 /* 90: ABraAssignExpr < ABraAssignExpr: superclass init_table position */},
+  {(bigint) 9 /* 91: ABraAssignExpr < AAssignFormExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AAssignFormExpr___n_assign},
   {(bigint) parser___parser_nodes___AAssignFormExpr___n_value},
   {0} /* Class Hole :( */,
@@ -72210,13 +68328,13 @@ const classtable_elt_t VFT_parser___parser_nodes___ABraAssignExpr[113] = {
   {(bigint) syntax___typing___ABraAssignExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: ABraAssignExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 4 /* 100: ABraAssignExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: ABraAssignExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 106: ABraAssignExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___ABraAssignExpr___name},
@@ -72224,10 +68342,10 @@ const classtable_elt_t VFT_parser___parser_nodes___ABraAssignExpr[113] = {
   {(bigint) syntax___typing___ASendExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: ABraAssignExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 1 /* 114: ABraAssignExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
-  {(bigint) 8 /* 111: ABraAssignExpr < ABraFormExpr: superclass init_table position */},
+  {(bigint) 0 /* 117: ABraAssignExpr < ABraFormExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABraFormExpr___n_args},
 };
 /* 0: Pointer to the classtable */
@@ -72265,16 +68383,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ABraAssignExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:915 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -72339,13 +68454,13 @@ val_t NEW_ABraAssignExpr_parser___parser_prod___ASendExpr___empty_init(void){
   int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_ABraAssignExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ABraAssignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ABraAssignExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -72359,13 +68474,13 @@ val_t NEW_ABraAssignExpr_parser___parser_prod___ABraAssignExpr___empty_init(void
   int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6053;
+  fra.me.line = 6072;
   fra.me.meth = LOCATE_NEW_ABraAssignExpr_parser___parser_prod___ABraAssignExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6053 */
+  /* parser/parser_prod.nit:6072 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ABraAssignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ABraAssignExpr(fra.me.REG[0]);
   parser___parser_prod___ABraAssignExpr___empty_init(fra.me.REG[0], init_table);
@@ -72379,7 +68494,7 @@ val_t NEW_ABraAssignExpr_parser___parser_prod___ABraAssignExpr___init_abraassign
   int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6055;
+  fra.me.line = 6074;
   fra.me.meth = LOCATE_NEW_ABraAssignExpr_parser___parser_prod___ABraAssignExpr___init_abraassignexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -72393,7 +68508,7 @@ val_t NEW_ABraAssignExpr_parser___parser_prod___ABraAssignExpr___init_abraassign
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:6055 */
+  /* parser/parser_prod.nit:6074 */
   fra.me.REG[4] = NEW_parser___parser_nodes___ABraAssignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ABraAssignExpr(fra.me.REG[4]);
   parser___parser_prod___ABraAssignExpr___init_abraassignexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
@@ -72401,26 +68516,25 @@ val_t NEW_ABraAssignExpr_parser___parser_prod___ABraAssignExpr___init_abraassign
   stack_frame_head = fra.me.prev;
   return fra.me.REG[4];
 }
-val_t NEW_ABraAssignExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ABraAssignExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ABraAssignExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ABraAssignExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ABraAssignExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ABraAssignExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ABraAssignExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ABraAssignExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ABraAssignExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_ABraAssignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
@@ -72428,7 +68542,7 @@ val_t NEW_ABraAssignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t
   int init_table[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_ABraAssignExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -72436,7 +68550,7 @@ val_t NEW_ABraAssignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ABraAssignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ABraAssignExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -72444,199 +68558,27 @@ val_t NEW_ABraAssignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AVarFormExpr[85] = {
-  {(bigint) 3251 /* 0: Identity */},
-  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AVarFormExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AVarFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AVarFormExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3251 /* 5: AVarFormExpr < AVarFormExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AVarFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AVarFormExpr < AExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AVarFormExpr < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: AVarFormExpr < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___AExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AVarFormExpr < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExpr___is_typed},
-  {(bigint) syntax___typing___AExpr___is_statement},
-  {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AVarFormExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___AExpr___generate_icode},
-  {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
-  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
-  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) syntax___typing___AVarFormExpr___variable},
-  {(bigint) 4 /* 83: AVarFormExpr < AVarFormExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AVarFormExpr___n_id},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AVarFormExpr::_parent */
-/* 3: Attribute AVarFormExpr::_location */
-/* 4: Attribute AVarFormExpr::_first_location */
-/* 5: Attribute AVarFormExpr::_last_location */
-/* Instance Hole :( */
-/* 7: Attribute AVarFormExpr::_is_typed */
-/* 8: Attribute AVarFormExpr::_stype */
-/* 9: Attribute AVarFormExpr::_if_true_flow_ctx */
-/* 10: Attribute AVarFormExpr::_if_false_flow_ctx */
-/* 11: Attribute AVarFormExpr::_variable */
-/* 12: Attribute AVarFormExpr::_n_id */
-void INIT_ATTRIBUTES__parser___parser_nodes___AVarFormExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AVarFormExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AVarFormExpr(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AVarFormExpr;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AVarFormExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AVarFormExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AVarFormExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AVarFormExpr_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AVarFormExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AVarFormExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AVarFormExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___ABraReassignExpr[116] = {
-  {(bigint) 3875 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ABraReassignExpr[122] = {
+  {(bigint) 3963 /* 0: Identity */},
   {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ABraReassignExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ABraReassignExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ABraReassignExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: ABraReassignExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ABraReassignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ABraReassignExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3311 /* 8: ABraReassignExpr < AReassignFormExpr: superclass typecheck marker */},
-  {(bigint) 3739 /* 9: ABraReassignExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: ABraReassignExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: ABraReassignExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3787 /* 12: ABraReassignExpr < ASendReassignExpr: superclass typecheck marker */},
-  {(bigint) 3799 /* 13: ABraReassignExpr < ABraFormExpr: superclass typecheck marker */},
-  {(bigint) 3875 /* 14: ABraReassignExpr < ABraReassignExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ABraReassignExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ABraReassignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: ABraReassignExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: ABraReassignExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3375 /* 8: ABraReassignExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(bigint) 3823 /* 9: ABraReassignExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3835 /* 10: ABraReassignExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 3863 /* 11: ABraReassignExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 3871 /* 12: ABraReassignExpr < ASendReassignFormExpr: superclass typecheck marker */},
+  {(bigint) 3875 /* 13: ABraReassignExpr < ASendReassignExpr: superclass typecheck marker */},
+  {(bigint) 3887 /* 14: ABraReassignExpr < ABraFormExpr: superclass typecheck marker */},
+  {(bigint) 3963 /* 15: ABraReassignExpr < ABraReassignExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 7 /* 18: ABraReassignExpr < Object: superclass init_table position */},
+  {(bigint) 9 /* 19: ABraReassignExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -72652,6 +68594,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ABraReassignExpr[116] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -72678,47 +68622,50 @@ const classtable_elt_t VFT_parser___parser_nodes___ABraReassignExpr[116] = {
   {(bigint) parser___parser_prod___ABraReassignExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ABraReassignExpr___visit_all},
-  {(bigint) 6 /* 60: ABraReassignExpr < ANode: superclass init_table position */},
+  {(bigint) 8 /* 63: ABraReassignExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 1 /* 68: ABraReassignExpr < ASuperInitCall: superclass init_table position */},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 5 /* 70: ABraReassignExpr < Prod: superclass init_table position */},
+  {(bigint) 7 /* 72: ABraReassignExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
+  {(bigint) 2 /* 75: ABraReassignExpr < ASuperInitCall: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 8 /* 75: ABraReassignExpr < AExpr: superclass init_table position */},
+  {(bigint) 6 /* 80: ABraReassignExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASendReassignExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 0 /* 82: ABraReassignExpr < ASendReassignExpr: superclass init_table position */},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) 11 /* 88: ABraReassignExpr < ASendReassignFormExpr: superclass init_table position */},
+  {(bigint) 0 /* 89: ABraReassignExpr < ASendReassignExpr: superclass init_table position */},
   {(bigint) syntax___typing___ASendReassignExpr___read_prop},
-  {0} /* Class Hole :( */,
   {(bigint) syntax___typing___AReassignFormExpr___do_rvalue_typing},
   {(bigint) syntax___typing___AReassignFormExpr___assign_method},
-  {(bigint) 9 /* 87: ABraReassignExpr < AReassignFormExpr: superclass init_table position */},
+  {(bigint) 5 /* 93: ABraReassignExpr < AReassignFormExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AReassignFormExpr___n_assign_op},
   {(bigint) parser___parser_nodes___AReassignFormExpr___n_value},
   {(bigint) syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
   {(bigint) syntax___typing___ABraReassignExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 3 /* 94: ABraReassignExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 4 /* 100: ABraReassignExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AAbsSendExpr___do_typing},
   {(bigint) syntax___typing___AAbsSendExpr___get_property},
   {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 2 /* 100: ABraReassignExpr < AAbsSendExpr: superclass init_table position */},
+  {(bigint) 3 /* 106: ABraReassignExpr < AAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsSendExpr___prop},
   {(bigint) syntax___typing___AAbsSendExpr___return_type},
   {(bigint) syntax___typing___ABraReassignExpr___name},
@@ -72726,14 +68673,14 @@ const classtable_elt_t VFT_parser___parser_nodes___ABraReassignExpr[116] = {
   {(bigint) syntax___typing___ASendExpr___closure_defs},
   {(bigint) parser___parser_prod___ASendExpr___empty_init},
   {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 4 /* 108: ABraReassignExpr < ASendExpr: superclass init_table position */},
+  {(bigint) 1 /* 114: ABraReassignExpr < ASendExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASendExpr___n_expr},
   {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
-  {(bigint) 10 /* 111: ABraReassignExpr < ABraFormExpr: superclass init_table position */},
+  {(bigint) 10 /* 117: ABraReassignExpr < ABraFormExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABraFormExpr___n_args},
   {(bigint) parser___parser_prod___ABraReassignExpr___empty_init},
   {(bigint) parser___parser_prod___ABraReassignExpr___init_abrareassignexpr},
-  {(bigint) 11 /* 115: ABraReassignExpr < ABraReassignExpr: superclass init_table position */},
+  {(bigint) 12 /* 121: ABraReassignExpr < ABraReassignExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -72770,16 +68717,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ABraReassignExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:915 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -72841,16 +68785,16 @@ void CHECKNEW_parser___parser_nodes___ABraReassignExpr(val_t p0){
 val_t NEW_ABraReassignExpr_parser___parser_prod___ASendExpr___empty_init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int init_table[13] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_NEW_ABraReassignExpr_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
+  /* parser/parser_prod.nit:4341 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ABraReassignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ABraReassignExpr(fra.me.REG[0]);
   parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
@@ -72861,16 +68805,16 @@ val_t NEW_ABraReassignExpr_parser___parser_prod___ASendExpr___empty_init(void){
 val_t NEW_ABraReassignExpr_parser___parser_prod___ABraReassignExpr___empty_init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int init_table[13] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6133;
+  fra.me.line = 6145;
   fra.me.meth = LOCATE_NEW_ABraReassignExpr_parser___parser_prod___ABraReassignExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6133 */
+  /* parser/parser_prod.nit:6145 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ABraReassignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ABraReassignExpr(fra.me.REG[0]);
   parser___parser_prod___ABraReassignExpr___empty_init(fra.me.REG[0], init_table);
@@ -72881,10 +68825,10 @@ val_t NEW_ABraReassignExpr_parser___parser_prod___ABraReassignExpr___empty_init(
 val_t NEW_ABraReassignExpr_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t p0, val_t p1, val_t p2, val_t p3){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t tmp;
-  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int init_table[13] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6135;
+  fra.me.line = 6147;
   fra.me.meth = LOCATE_NEW_ABraReassignExpr_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -72898,7 +68842,7 @@ val_t NEW_ABraReassignExpr_parser___parser_prod___ABraReassignExpr___init_abrare
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:6135 */
+  /* parser/parser_prod.nit:6147 */
   fra.me.REG[4] = NEW_parser___parser_nodes___ABraReassignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ABraReassignExpr(fra.me.REG[4]);
   parser___parser_prod___ABraReassignExpr___init_abrareassignexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
@@ -72906,34 +68850,33 @@ val_t NEW_ABraReassignExpr_parser___parser_prod___ABraReassignExpr___init_abrare
   stack_frame_head = fra.me.prev;
   return fra.me.REG[4];
 }
-val_t NEW_ABraReassignExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ABraReassignExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int init_table[13] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ABraReassignExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ABraReassignExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ABraReassignExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ABraReassignExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ABraReassignExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ABraReassignExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ABraReassignExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_ABraReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int init_table[13] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_NEW_ABraReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -72941,7 +68884,7 @@ val_t NEW_ABraReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ABraReassignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ABraReassignExpr(fra.me.REG[1]);
   parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -72949,16 +68892,17 @@ val_t NEW_ABraReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AClosureCallExpr[104] = {
-  {(bigint) 3699 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AClosureCallExpr[110] = {
+  {(bigint) 3783 /* 0: Identity */},
   {(bigint) 17 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AClosureCallExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AClosureCallExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AClosureCallExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: AClosureCallExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AClosureCallExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AClosureCallExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3699 /* 8: AClosureCallExpr < AClosureCallExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AClosureCallExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AClosureCallExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3607 /* 6: AClosureCallExpr < AAbsAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AClosureCallExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3783 /* 8: AClosureCallExpr < AClosureCallExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72968,7 +68912,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AClosureCallExpr[104] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: AClosureCallExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AClosureCallExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -72984,6 +68928,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AClosureCallExpr[104] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -73010,28 +68956,31 @@ const classtable_elt_t VFT_parser___parser_nodes___AClosureCallExpr[104] = {
   {(bigint) parser___parser_prod___AClosureCallExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AClosureCallExpr___visit_all},
-  {(bigint) 2 /* 60: AClosureCallExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AClosureCallExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AClosureCallExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 1 /* 70: AClosureCallExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AClosureCallExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 4 /* 75: AClosureCallExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AClosureCallExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AClosureCallExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73044,13 +68993,13 @@ const classtable_elt_t VFT_parser___parser_nodes___AClosureCallExpr[104] = {
   {(bigint) syntax___typing___AClosureCallExpr___compute_raw_arguments},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 0 /* 94: AClosureCallExpr < AAbsAbsSendExpr: superclass init_table position */},
+  {(bigint) 0 /* 100: AClosureCallExpr < AAbsAbsSendExpr: superclass init_table position */},
   {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
   {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
   {(bigint) syntax___typing___AClosureCallExpr___variable},
   {(bigint) parser___parser_prod___AClosureCallExpr___empty_init},
   {(bigint) parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr},
-  {(bigint) 5 /* 100: AClosureCallExpr < AClosureCallExpr: superclass init_table position */},
+  {(bigint) 5 /* 106: AClosureCallExpr < AClosureCallExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AClosureCallExpr___n_id},
   {(bigint) parser___parser_nodes___AClosureCallExpr___n_args},
   {(bigint) parser___parser_nodes___AClosureCallExpr___n_closure_defs},
@@ -73086,16 +69035,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AClosureCallExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser_nodes.nit:935 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:936 */
+  /* parser/parser_nodes.nit:1012 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:1388 */
+  /* syntax/typing.nit:1435 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -73150,7 +69096,7 @@ val_t NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___init_aclosu
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6215;
+  fra.me.line = 6220;
   fra.me.meth = LOCATE_NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -73162,7 +69108,7 @@ val_t NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___init_aclosu
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6215 */
+  /* parser/parser_prod.nit:6220 */
   fra.me.REG[3] = NEW_parser___parser_nodes___AClosureCallExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AClosureCallExpr(fra.me.REG[3]);
   parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -73176,13 +69122,13 @@ val_t NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___empty_init(
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6213;
+  fra.me.line = 6218;
   fra.me.meth = LOCATE_NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6213 */
+  /* parser/parser_prod.nit:6218 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AClosureCallExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AClosureCallExpr(fra.me.REG[0]);
   parser___parser_prod___AClosureCallExpr___empty_init(fra.me.REG[0], init_table);
@@ -73190,37 +69136,37 @@ val_t NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___empty_init(
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_AClosureCallExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AClosureCallExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AClosureCallExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AClosureCallExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AClosureCallExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AClosureCallExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AClosureCallExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AClosureCallExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AClosureCallExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AVarExpr[88] = {
-  {(bigint) 3579 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AVarExpr[94] = {
+  {(bigint) 3659 /* 0: Identity */},
   {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AVarExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AVarExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AVarExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3251 /* 5: AVarExpr < AVarFormExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AVarExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AVarExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3579 /* 8: AVarExpr < AVarExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AVarExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AVarExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3315 /* 6: AVarExpr < AVarFormExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AVarExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3659 /* 8: AVarExpr < AVarExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73230,7 +69176,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AVarExpr[88] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AVarExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AVarExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -73246,6 +69192,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AVarExpr[88] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -73272,34 +69220,37 @@ const classtable_elt_t VFT_parser___parser_nodes___AVarExpr[88] = {
   {(bigint) parser___parser_prod___AVarExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AVarExpr___visit_all},
-  {(bigint) 1 /* 60: AVarExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AVarExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AVarExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AVarExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AVarExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AVarExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AVarExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AVarExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AVarExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) syntax___typing___AVarFormExpr___variable},
-  {(bigint) 4 /* 83: AVarExpr < AVarFormExpr: superclass init_table position */},
+  {(bigint) 0 /* 89: AVarExpr < AVarFormExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AVarFormExpr___n_id},
   {(bigint) parser___parser_prod___AVarExpr___empty_init},
   {(bigint) parser___parser_prod___AVarExpr___init_avarexpr},
-  {(bigint) 5 /* 87: AVarExpr < AVarExpr: superclass init_table position */},
+  {(bigint) 5 /* 93: AVarExpr < AVarExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -73327,7 +69278,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AVarExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -73372,7 +69323,7 @@ val_t NEW_AVarExpr_parser___parser_prod___AVarExpr___init_avarexpr(val_t p0){
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6288;
+  fra.me.line = 6286;
   fra.me.meth = LOCATE_NEW_AVarExpr_parser___parser_prod___AVarExpr___init_avarexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -73380,7 +69331,7 @@ val_t NEW_AVarExpr_parser___parser_prod___AVarExpr___init_avarexpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:6288 */
+  /* parser/parser_prod.nit:6286 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AVarExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AVarExpr(fra.me.REG[1]);
   parser___parser_prod___AVarExpr___init_avarexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -73394,13 +69345,13 @@ val_t NEW_AVarExpr_parser___parser_prod___AVarExpr___empty_init(void){
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6286;
+  fra.me.line = 6284;
   fra.me.meth = LOCATE_NEW_AVarExpr_parser___parser_prod___AVarExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6286 */
+  /* parser/parser_prod.nit:6284 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AVarExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AVarExpr(fra.me.REG[0]);
   parser___parser_prod___AVarExpr___empty_init(fra.me.REG[0], init_table);
@@ -73408,38 +69359,38 @@ val_t NEW_AVarExpr_parser___parser_prod___AVarExpr___empty_init(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_AVarExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AVarExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AVarExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AVarExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AVarExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AVarExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AVarExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AVarExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AVarExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AVarAssignExpr[91] = {
-  {(bigint) 3583 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AVarAssignExpr[97] = {
+  {(bigint) 3663 /* 0: Identity */},
   {(bigint) 15 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AVarAssignExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AVarAssignExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AVarAssignExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3251 /* 5: AVarAssignExpr < AVarFormExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AVarAssignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AVarAssignExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3503 /* 8: AVarAssignExpr < AAssignFormExpr: superclass typecheck marker */},
-  {(bigint) 3583 /* 9: AVarAssignExpr < AVarAssignExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AVarAssignExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AVarAssignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3315 /* 6: AVarAssignExpr < AVarFormExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AVarAssignExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3583 /* 8: AVarAssignExpr < AAssignFormExpr: superclass typecheck marker */},
+  {(bigint) 3663 /* 9: AVarAssignExpr < AVarAssignExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73448,7 +69399,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AVarAssignExpr[91] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AVarAssignExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AVarAssignExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -73464,6 +69415,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AVarAssignExpr[91] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -73490,37 +69443,40 @@ const classtable_elt_t VFT_parser___parser_nodes___AVarAssignExpr[91] = {
   {(bigint) parser___parser_prod___AVarAssignExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AVarAssignExpr___visit_all},
-  {(bigint) 1 /* 60: AVarAssignExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AVarAssignExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AVarAssignExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AVarAssignExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AVarAssignExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AVarAssignExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AVarAssignExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AVarAssignExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) syntax___typing___AVarFormExpr___variable},
-  {(bigint) 4 /* 83: AVarAssignExpr < AVarFormExpr: superclass init_table position */},
+  {(bigint) 0 /* 89: AVarAssignExpr < AVarFormExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AVarFormExpr___n_id},
-  {(bigint) 5 /* 85: AVarAssignExpr < AAssignFormExpr: superclass init_table position */},
+  {(bigint) 5 /* 91: AVarAssignExpr < AAssignFormExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AAssignFormExpr___n_assign},
   {(bigint) parser___parser_nodes___AAssignFormExpr___n_value},
   {(bigint) parser___parser_prod___AVarAssignExpr___empty_init},
   {(bigint) parser___parser_prod___AVarAssignExpr___init_avarassignexpr},
-  {(bigint) 6 /* 90: AVarAssignExpr < AVarAssignExpr: superclass init_table position */},
+  {(bigint) 6 /* 96: AVarAssignExpr < AVarAssignExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -73550,7 +69506,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AVarAssignExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -73605,7 +69561,7 @@ val_t NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___init_avarassign
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6319;
+  fra.me.line = 6317;
   fra.me.meth = LOCATE_NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___init_avarassignexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -73617,7 +69573,7 @@ val_t NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___init_avarassign
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6319 */
+  /* parser/parser_prod.nit:6317 */
   fra.me.REG[3] = NEW_parser___parser_nodes___AVarAssignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AVarAssignExpr(fra.me.REG[3]);
   parser___parser_prod___AVarAssignExpr___init_avarassignexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -73631,13 +69587,13 @@ val_t NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___empty_init(void
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6317;
+  fra.me.line = 6315;
   fra.me.meth = LOCATE_NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6317 */
+  /* parser/parser_prod.nit:6315 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AVarAssignExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AVarAssignExpr(fra.me.REG[0]);
   parser___parser_prod___AVarAssignExpr___empty_init(fra.me.REG[0], init_table);
@@ -73645,277 +69601,37 @@ val_t NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___empty_init(void
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_AVarAssignExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AVarAssignExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AVarAssignExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AVarAssignExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AVarAssignExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AVarAssignExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AVarAssignExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AVarAssignExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AVarAssignExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AVarReassignExpr[93] = {
-  {(bigint) 3575 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AVarReassignExpr[99] = {
+  {(bigint) 3655 /* 0: Identity */},
   {(bigint) 16 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AVarReassignExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AVarReassignExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AVarReassignExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3251 /* 5: AVarReassignExpr < AVarFormExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AVarReassignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AVarReassignExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3311 /* 8: AVarReassignExpr < AReassignFormExpr: superclass typecheck marker */},
-  {(bigint) 3575 /* 9: AVarReassignExpr < AVarReassignExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AVarReassignExpr < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___AVarReassignExpr___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___AVarReassignExpr___visit_all},
-  {(bigint) 1 /* 60: AVarReassignExpr < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___AVarReassignExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AVarReassignExpr < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExpr___is_typed},
-  {(bigint) syntax___typing___AExpr___is_statement},
-  {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AVarReassignExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___AVarReassignExpr___generate_icode},
-  {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
-  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
-  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) syntax___typing___AVarFormExpr___variable},
-  {(bigint) 4 /* 83: AVarReassignExpr < AVarFormExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AVarFormExpr___n_id},
-  {(bigint) syntax___typing___AReassignFormExpr___do_rvalue_typing},
-  {(bigint) syntax___typing___AReassignFormExpr___assign_method},
-  {(bigint) 5 /* 87: AVarReassignExpr < AReassignFormExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AReassignFormExpr___n_assign_op},
-  {(bigint) parser___parser_nodes___AReassignFormExpr___n_value},
-  {(bigint) parser___parser_prod___AVarReassignExpr___empty_init},
-  {(bigint) parser___parser_prod___AVarReassignExpr___init_avarreassignexpr},
-  {(bigint) 6 /* 92: AVarReassignExpr < AVarReassignExpr: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AVarReassignExpr::_parent */
-/* 3: Attribute AVarReassignExpr::_location */
-/* 4: Attribute AVarReassignExpr::_first_location */
-/* 5: Attribute AVarReassignExpr::_last_location */
-/* Instance Hole :( */
-/* 7: Attribute AVarReassignExpr::_is_typed */
-/* 8: Attribute AVarReassignExpr::_stype */
-/* 9: Attribute AVarReassignExpr::_if_true_flow_ctx */
-/* 10: Attribute AVarReassignExpr::_if_false_flow_ctx */
-/* 11: Attribute AVarReassignExpr::_variable */
-/* 12: Attribute AVarReassignExpr::_n_id */
-/* 13: Attribute AVarReassignExpr::_assign_method */
-/* 14: Attribute AVarReassignExpr::_n_assign_op */
-/* 15: Attribute AVarReassignExpr::_n_value */
-void INIT_ATTRIBUTES__parser___parser_nodes___AVarReassignExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AVarReassignExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AVarReassignExpr(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 16);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AVarReassignExpr;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AVarReassignExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AVarReassignExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t tmp;
-  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 6378;
-  fra.me.meth = LOCATE_NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6378 */
-  fra.me.REG[3] = NEW_parser___parser_nodes___AVarReassignExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AVarReassignExpr(fra.me.REG[3]);
-  parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  CHECKNEW_parser___parser_nodes___AVarReassignExpr(fra.me.REG[3]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[3];
-}
-val_t NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___empty_init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 6376;
-  fra.me.meth = LOCATE_NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___empty_init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6376 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___AVarReassignExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AVarReassignExpr(fra.me.REG[0]);
-  parser___parser_prod___AVarReassignExpr___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AVarReassignExpr(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t NEW_AVarReassignExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AVarReassignExpr_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AVarReassignExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AVarReassignExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AVarReassignExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___ARangeExpr[87] = {
-  {(bigint) 3319 /* 0: Identity */},
-  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ARangeExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ARangeExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ARangeExpr < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ARangeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ARangeExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3319 /* 8: ARangeExpr < ARangeExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AVarReassignExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AVarReassignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3315 /* 6: AVarReassignExpr < AVarFormExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AVarReassignExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3375 /* 8: AVarReassignExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(bigint) 3655 /* 9: AVarReassignExpr < AVarReassignExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73925,7 +69641,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ARangeExpr[87] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ARangeExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AVarReassignExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -73941,6 +69657,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ARangeExpr[87] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -73964,85 +69682,97 @@ const classtable_elt_t VFT_parser___parser_nodes___ARangeExpr[87] = {
   {(bigint) parser___parser_prod___ANode___parent},
   {(bigint) parser___parser_prod___ANode___parent__eq},
   {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ARangeExpr___replace_child},
+  {(bigint) parser___parser_prod___AVarReassignExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ARangeExpr___visit_all},
-  {(bigint) 1 /* 60: ARangeExpr < ANode: superclass init_table position */},
+  {(bigint) parser___parser_prod___AVarReassignExpr___visit_all},
+  {(bigint) 3 /* 63: AVarReassignExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___ARangeExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) syntax___typing___AVarReassignExpr___after_typing},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ARangeExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AVarReassignExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: ARangeExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___AExpr___generate_icode},
+  {(bigint) 1 /* 80: AVarReassignExpr < AExpr: superclass init_table position */},
+  {(bigint) syntax___icode_generation___AVarReassignExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) parser___parser_prod___ARangeExpr___empty_init},
-  {(bigint) parser___parser_prod___ARangeExpr___init_arangeexpr},
-  {(bigint) 4 /* 84: ARangeExpr < ARangeExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ARangeExpr___n_expr},
-  {(bigint) parser___parser_nodes___ARangeExpr___n_expr2},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) syntax___typing___AVarFormExpr___variable},
+  {(bigint) 0 /* 89: AVarReassignExpr < AVarFormExpr: superclass init_table position */},
+  {(bigint) parser___parser_nodes___AVarFormExpr___n_id},
+  {(bigint) syntax___typing___AReassignFormExpr___do_rvalue_typing},
+  {(bigint) syntax___typing___AReassignFormExpr___assign_method},
+  {(bigint) 5 /* 93: AVarReassignExpr < AReassignFormExpr: superclass init_table position */},
+  {(bigint) parser___parser_nodes___AReassignFormExpr___n_assign_op},
+  {(bigint) parser___parser_nodes___AReassignFormExpr___n_value},
+  {(bigint) parser___parser_prod___AVarReassignExpr___empty_init},
+  {(bigint) parser___parser_prod___AVarReassignExpr___init_avarreassignexpr},
+  {(bigint) 6 /* 98: AVarReassignExpr < AVarReassignExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ARangeExpr::_parent */
-/* 3: Attribute ARangeExpr::_location */
-/* 4: Attribute ARangeExpr::_first_location */
-/* 5: Attribute ARangeExpr::_last_location */
+/* 2: Attribute AVarReassignExpr::_parent */
+/* 3: Attribute AVarReassignExpr::_location */
+/* 4: Attribute AVarReassignExpr::_first_location */
+/* 5: Attribute AVarReassignExpr::_last_location */
 /* Instance Hole :( */
-/* 7: Attribute ARangeExpr::_is_typed */
-/* 8: Attribute ARangeExpr::_stype */
-/* 9: Attribute ARangeExpr::_if_true_flow_ctx */
-/* 10: Attribute ARangeExpr::_if_false_flow_ctx */
-/* 11: Attribute ARangeExpr::_n_expr */
-/* 12: Attribute ARangeExpr::_n_expr2 */
-void INIT_ATTRIBUTES__parser___parser_nodes___ARangeExpr(val_t p0){
+/* 7: Attribute AVarReassignExpr::_is_typed */
+/* 8: Attribute AVarReassignExpr::_stype */
+/* 9: Attribute AVarReassignExpr::_if_true_flow_ctx */
+/* 10: Attribute AVarReassignExpr::_if_false_flow_ctx */
+/* 11: Attribute AVarReassignExpr::_variable */
+/* 12: Attribute AVarReassignExpr::_n_id */
+/* 13: Attribute AVarReassignExpr::_assign_method */
+/* 14: Attribute AVarReassignExpr::_n_assign_op */
+/* 15: Attribute AVarReassignExpr::_n_value */
+void INIT_ATTRIBUTES__parser___parser_nodes___AVarReassignExpr(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ARangeExpr;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AVarReassignExpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___parser_nodes___ARangeExpr(void)
+val_t NEW_parser___parser_nodes___AVarReassignExpr(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___ARangeExpr;
+  obj = alloc(sizeof(val_t) * 16);
+  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AVarReassignExpr;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___parser_nodes___ARangeExpr(val_t p0){
+void CHECKNEW_parser___parser_nodes___AVarReassignExpr(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___ARangeExpr;
+  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AVarReassignExpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -74053,94 +69783,101 @@ void CHECKNEW_parser___parser_nodes___ARangeExpr(val_t p0){
   } else {
     nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ARangeExpr_parser___parser_prod___ARangeExpr___empty_init(void){
-  struct {struct stack_frame_t me;} fra;
+val_t NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6435;
-  fra.me.meth = LOCATE_NEW_ARangeExpr_parser___parser_prod___ARangeExpr___empty_init;
+  fra.me.line = 6376;
+  fra.me.meth = LOCATE_NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
+  fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6435 */
-  fra.me.REG[0] = NEW_parser___parser_nodes___ARangeExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ARangeExpr(fra.me.REG[0]);
-  parser___parser_prod___ARangeExpr___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ARangeExpr(fra.me.REG[0]);
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  /* parser/parser_prod.nit:6376 */
+  fra.me.REG[3] = NEW_parser___parser_nodes___AVarReassignExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AVarReassignExpr(fra.me.REG[3]);
+  parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_parser___parser_nodes___AVarReassignExpr(fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
+  return fra.me.REG[3];
 }
-val_t NEW_ARangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+val_t NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6437;
-  fra.me.meth = LOCATE_NEW_ARangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr;
+  fra.me.line = 6374;
+  fra.me.meth = LOCATE_NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___empty_init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6437 */
-  fra.me.REG[2] = NEW_parser___parser_nodes___ARangeExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ARangeExpr(fra.me.REG[2]);
-  parser___parser_prod___ARangeExpr___init_arangeexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_parser___parser_nodes___ARangeExpr(fra.me.REG[2]);
+  /* parser/parser_prod.nit:6374 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AVarReassignExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AVarReassignExpr(fra.me.REG[0]);
+  parser___parser_prod___AVarReassignExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AVarReassignExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
+  return fra.me.REG[0];
 }
-val_t NEW_ARangeExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AVarReassignExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ARangeExpr_parser___parser_nodes___ANode___init;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_AVarReassignExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ARangeExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ARangeExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ARangeExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AVarReassignExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AVarReassignExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AVarReassignExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ACrangeExpr[90] = {
-  {(bigint) 3687 /* 0: Identity */},
-  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+const classtable_elt_t VFT_parser___parser_nodes___ACrangeExpr[98] = {
+  {(bigint) 3771 /* 0: Identity */},
+  {(bigint) 15 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ACrangeExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ACrangeExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ACrangeExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ACrangeExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ACrangeExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: ACrangeExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3383 /* 8: ACrangeExpr < ARangeExpr: superclass typecheck marker */},
+  {(bigint) 3771 /* 9: ACrangeExpr < ACrangeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ACrangeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ACrangeExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3319 /* 8: ACrangeExpr < ARangeExpr: superclass typecheck marker */},
-  {(bigint) 3687 /* 9: ACrangeExpr < ACrangeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74149,7 +69886,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ACrangeExpr[90] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ACrangeExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: ACrangeExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -74165,6 +69902,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ACrangeExpr[90] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -74191,36 +69930,41 @@ const classtable_elt_t VFT_parser___parser_nodes___ACrangeExpr[90] = {
   {(bigint) parser___parser_prod___ACrangeExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ACrangeExpr___visit_all},
-  {(bigint) 1 /* 60: ACrangeExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: ACrangeExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ARangeExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ACrangeExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: ACrangeExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: ACrangeExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: ACrangeExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ACrangeExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) parser___parser_prod___ARangeExpr___empty_init},
   {(bigint) parser___parser_prod___ARangeExpr___init_arangeexpr},
-  {(bigint) 4 /* 84: ACrangeExpr < ARangeExpr: superclass init_table position */},
+  {(bigint) 0 /* 90: ACrangeExpr < ARangeExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ARangeExpr___n_expr},
   {(bigint) parser___parser_nodes___ARangeExpr___n_expr2},
   {(bigint) parser___parser_prod___ACrangeExpr___empty_init},
   {(bigint) parser___parser_prod___ACrangeExpr___init_acrangeexpr},
-  {(bigint) 5 /* 89: ACrangeExpr < ACrangeExpr: superclass init_table position */},
+  {(bigint) 5 /* 95: ACrangeExpr < ACrangeExpr: superclass init_table position */},
+  {(bigint) parser___parser_nodes___ACrangeExpr___n_obra},
+  {(bigint) parser___parser_nodes___ACrangeExpr___n_cbra},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -74235,6 +69979,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ACrangeExpr[90] = {
 /* 10: Attribute ACrangeExpr::_if_false_flow_ctx */
 /* 11: Attribute ACrangeExpr::_n_expr */
 /* 12: Attribute ACrangeExpr::_n_expr2 */
+/* 13: Attribute ACrangeExpr::_n_obra */
+/* 14: Attribute ACrangeExpr::_n_cbra */
 void INIT_ATTRIBUTES__parser___parser_nodes___ACrangeExpr(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -74248,7 +69994,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ACrangeExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -74256,7 +70002,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ACrangeExpr(val_t p0){
 val_t NEW_parser___parser_nodes___ACrangeExpr(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
+  obj = alloc(sizeof(val_t) * 15);
   obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___ACrangeExpr;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
@@ -74275,6 +70021,11 @@ void CHECKNEW_parser___parser_nodes___ACrangeExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_nitc, 0);
+  }
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -74285,6 +70036,11 @@ void CHECKNEW_parser___parser_nodes___ACrangeExpr(val_t p0){
   } else {
     nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_nitc, 0);
   }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_nitc, 0);
+  }
   REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -74298,13 +70054,13 @@ val_t NEW_ACrangeExpr_parser___parser_prod___ARangeExpr___empty_init(void){
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6435;
+  fra.me.line = 6433;
   fra.me.meth = LOCATE_NEW_ACrangeExpr_parser___parser_prod___ARangeExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6435 */
+  /* parser/parser_prod.nit:6433 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ACrangeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ACrangeExpr(fra.me.REG[0]);
   parser___parser_prod___ARangeExpr___empty_init(fra.me.REG[0], init_table);
@@ -74318,13 +70074,13 @@ val_t NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___empty_init(void){
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6480;
+  fra.me.line = 6478;
   fra.me.meth = LOCATE_NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6480 */
+  /* parser/parser_prod.nit:6478 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ACrangeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ACrangeExpr(fra.me.REG[0]);
   parser___parser_prod___ACrangeExpr___empty_init(fra.me.REG[0], init_table);
@@ -74332,50 +70088,53 @@ val_t NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___empty_init(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+val_t NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1, val_t p2, val_t p3){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6482;
+  fra.me.line = 6480;
   fra.me.meth = LOCATE_NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___init_acrangeexpr;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
+  fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6482 */
-  fra.me.REG[2] = NEW_parser___parser_nodes___ACrangeExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ACrangeExpr(fra.me.REG[2]);
-  parser___parser_prod___ACrangeExpr___init_acrangeexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_parser___parser_nodes___ACrangeExpr(fra.me.REG[2]);
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  /* parser/parser_prod.nit:6480 */
+  fra.me.REG[4] = NEW_parser___parser_nodes___ACrangeExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ACrangeExpr(fra.me.REG[4]);
+  parser___parser_prod___ACrangeExpr___init_acrangeexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
+  CHECKNEW_parser___parser_nodes___ACrangeExpr(fra.me.REG[4]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
+  return fra.me.REG[4];
 }
-val_t NEW_ACrangeExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ACrangeExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ACrangeExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ACrangeExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ACrangeExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ACrangeExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ACrangeExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ACrangeExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ACrangeExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_ACrangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
@@ -74383,7 +70142,7 @@ val_t NEW_ACrangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr(val_t
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6437;
+  fra.me.line = 6435;
   fra.me.meth = LOCATE_NEW_ACrangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -74393,7 +70152,7 @@ val_t NEW_ACrangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr(val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6437 */
+  /* parser/parser_prod.nit:6435 */
   fra.me.REG[2] = NEW_parser___parser_nodes___ACrangeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ACrangeExpr(fra.me.REG[2]);
   parser___parser_prod___ARangeExpr___init_arangeexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -74401,17 +70160,18 @@ val_t NEW_ACrangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr(val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AOrangeExpr[90] = {
-  {(bigint) 3603 /* 0: Identity */},
-  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+const classtable_elt_t VFT_parser___parser_nodes___AOrangeExpr[98] = {
+  {(bigint) 3683 /* 0: Identity */},
+  {(bigint) 15 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AOrangeExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AOrangeExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AOrangeExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AOrangeExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AOrangeExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AOrangeExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3383 /* 8: AOrangeExpr < ARangeExpr: superclass typecheck marker */},
+  {(bigint) 3683 /* 9: AOrangeExpr < AOrangeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AOrangeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AOrangeExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3319 /* 8: AOrangeExpr < ARangeExpr: superclass typecheck marker */},
-  {(bigint) 3603 /* 9: AOrangeExpr < AOrangeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74420,7 +70180,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AOrangeExpr[90] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AOrangeExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AOrangeExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -74436,6 +70196,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AOrangeExpr[90] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -74462,36 +70224,41 @@ const classtable_elt_t VFT_parser___parser_nodes___AOrangeExpr[90] = {
   {(bigint) parser___parser_prod___AOrangeExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AOrangeExpr___visit_all},
-  {(bigint) 1 /* 60: AOrangeExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AOrangeExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ARangeExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AOrangeExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AOrangeExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AOrangeExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AOrangeExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AOrangeExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) parser___parser_prod___ARangeExpr___empty_init},
   {(bigint) parser___parser_prod___ARangeExpr___init_arangeexpr},
-  {(bigint) 4 /* 84: AOrangeExpr < ARangeExpr: superclass init_table position */},
+  {(bigint) 0 /* 90: AOrangeExpr < ARangeExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ARangeExpr___n_expr},
   {(bigint) parser___parser_nodes___ARangeExpr___n_expr2},
   {(bigint) parser___parser_prod___AOrangeExpr___empty_init},
   {(bigint) parser___parser_prod___AOrangeExpr___init_aorangeexpr},
-  {(bigint) 5 /* 89: AOrangeExpr < AOrangeExpr: superclass init_table position */},
+  {(bigint) 5 /* 95: AOrangeExpr < AOrangeExpr: superclass init_table position */},
+  {(bigint) parser___parser_nodes___AOrangeExpr___n_obra},
+  {(bigint) parser___parser_nodes___AOrangeExpr___n_cbra},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -74506,6 +70273,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AOrangeExpr[90] = {
 /* 10: Attribute AOrangeExpr::_if_false_flow_ctx */
 /* 11: Attribute AOrangeExpr::_n_expr */
 /* 12: Attribute AOrangeExpr::_n_expr2 */
+/* 13: Attribute AOrangeExpr::_n_obra */
+/* 14: Attribute AOrangeExpr::_n_cbra */
 void INIT_ATTRIBUTES__parser___parser_nodes___AOrangeExpr(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -74519,7 +70288,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AOrangeExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -74527,7 +70296,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AOrangeExpr(val_t p0){
 val_t NEW_parser___parser_nodes___AOrangeExpr(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
+  obj = alloc(sizeof(val_t) * 15);
   obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AOrangeExpr;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
@@ -74546,6 +70315,11 @@ void CHECKNEW_parser___parser_nodes___AOrangeExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_nitc, 0);
+  }
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -74556,6 +70330,11 @@ void CHECKNEW_parser___parser_nodes___AOrangeExpr(val_t p0){
   } else {
     nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_nitc, 0);
   }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_nitc, 0);
+  }
   REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -74569,13 +70348,13 @@ val_t NEW_AOrangeExpr_parser___parser_prod___ARangeExpr___empty_init(void){
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6435;
+  fra.me.line = 6433;
   fra.me.meth = LOCATE_NEW_AOrangeExpr_parser___parser_prod___ARangeExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6435 */
+  /* parser/parser_prod.nit:6433 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AOrangeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AOrangeExpr(fra.me.REG[0]);
   parser___parser_prod___ARangeExpr___empty_init(fra.me.REG[0], init_table);
@@ -74589,13 +70368,13 @@ val_t NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___empty_init(void){
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6525;
+  fra.me.line = 6551;
   fra.me.meth = LOCATE_NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6525 */
+  /* parser/parser_prod.nit:6551 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AOrangeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AOrangeExpr(fra.me.REG[0]);
   parser___parser_prod___AOrangeExpr___empty_init(fra.me.REG[0], init_table);
@@ -74603,50 +70382,53 @@ val_t NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___empty_init(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+val_t NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1, val_t p2, val_t p3){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6527;
+  fra.me.line = 6553;
   fra.me.meth = LOCATE_NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___init_aorangeexpr;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
+  fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6527 */
-  fra.me.REG[2] = NEW_parser___parser_nodes___AOrangeExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AOrangeExpr(fra.me.REG[2]);
-  parser___parser_prod___AOrangeExpr___init_aorangeexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_parser___parser_nodes___AOrangeExpr(fra.me.REG[2]);
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  /* parser/parser_prod.nit:6553 */
+  fra.me.REG[4] = NEW_parser___parser_nodes___AOrangeExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AOrangeExpr(fra.me.REG[4]);
+  parser___parser_prod___AOrangeExpr___init_aorangeexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
+  CHECKNEW_parser___parser_nodes___AOrangeExpr(fra.me.REG[4]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
+  return fra.me.REG[4];
 }
-val_t NEW_AOrangeExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AOrangeExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AOrangeExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AOrangeExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AOrangeExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AOrangeExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AOrangeExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AOrangeExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AOrangeExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_AOrangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
@@ -74654,7 +70436,7 @@ val_t NEW_AOrangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr(val_t
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6437;
+  fra.me.line = 6435;
   fra.me.meth = LOCATE_NEW_AOrangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -74664,7 +70446,7 @@ val_t NEW_AOrangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr(val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6437 */
+  /* parser/parser_prod.nit:6435 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AOrangeExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AOrangeExpr(fra.me.REG[2]);
   parser___parser_prod___ARangeExpr___init_arangeexpr(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -74672,16 +70454,17 @@ val_t NEW_AOrangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr(val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AArrayExpr[87] = {
-  {(bigint) 3515 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AArrayExpr[93] = {
+  {(bigint) 3595 /* 0: Identity */},
   {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AArrayExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AArrayExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AArrayExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AArrayExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AArrayExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AArrayExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3595 /* 8: AArrayExpr < AArrayExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AArrayExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AArrayExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3515 /* 8: AArrayExpr < AArrayExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74691,7 +70474,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AArrayExpr[87] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AArrayExpr < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AArrayExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -74707,6 +70490,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AArrayExpr[87] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -74733,32 +70518,35 @@ const classtable_elt_t VFT_parser___parser_nodes___AArrayExpr[87] = {
   {(bigint) parser___parser_prod___AArrayExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AArrayExpr___visit_all},
-  {(bigint) 1 /* 60: AArrayExpr < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AArrayExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AArrayExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AArrayExpr < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AArrayExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AArrayExpr < AExpr: superclass init_table position */},
+  {(bigint) 0 /* 80: AArrayExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AArrayExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) syntax___typing___AArrayExpr___do_typing},
   {(bigint) parser___parser_prod___AArrayExpr___empty_init},
   {(bigint) parser___parser_prod___AArrayExpr___init_aarrayexpr},
-  {(bigint) 4 /* 85: AArrayExpr < AArrayExpr: superclass init_table position */},
+  {(bigint) 4 /* 91: AArrayExpr < AArrayExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AArrayExpr___n_exprs},
 };
 /* 0: Pointer to the classtable */
@@ -74774,7 +70562,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AArrayExpr[87] = {
 /* 10: Attribute AArrayExpr::_if_false_flow_ctx */
 /* 11: Attribute AArrayExpr::_n_exprs */
 void INIT_ATTRIBUTES__parser___parser_nodes___AArrayExpr(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
@@ -74782,17 +70570,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AArrayExpr(val_t p0){
   fra.me.line = 0;
   fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AArrayExpr;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser_nodes.nit:962 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
 val_t NEW_parser___parser_nodes___AArrayExpr(void)
@@ -74835,13 +70619,13 @@ val_t NEW_AArrayExpr_parser___parser_prod___AArrayExpr___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6570;
+  fra.me.line = 6624;
   fra.me.meth = LOCATE_NEW_AArrayExpr_parser___parser_prod___AArrayExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6570 */
+  /* parser/parser_prod.nit:6624 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AArrayExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AArrayExpr(fra.me.REG[0]);
   parser___parser_prod___AArrayExpr___empty_init(fra.me.REG[0], init_table);
@@ -74855,7 +70639,7 @@ val_t NEW_AArrayExpr_parser___parser_prod___AArrayExpr___init_aarrayexpr(val_t p
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6572;
+  fra.me.line = 6626;
   fra.me.meth = LOCATE_NEW_AArrayExpr_parser___parser_prod___AArrayExpr___init_aarrayexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -74863,7 +70647,7 @@ val_t NEW_AArrayExpr_parser___parser_prod___AArrayExpr___init_aarrayexpr(val_t p
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:6572 */
+  /* parser/parser_prod.nit:6626 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AArrayExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AArrayExpr(fra.me.REG[1]);
   parser___parser_prod___AArrayExpr___init_aarrayexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -74871,37 +70655,37 @@ val_t NEW_AArrayExpr_parser___parser_prod___AArrayExpr___init_aarrayexpr(val_t p
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AArrayExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AArrayExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AArrayExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AArrayExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AArrayExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AArrayExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AArrayExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AArrayExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AArrayExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ASelfExpr[87] = {
-  {(bigint) 3303 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ASelfExpr[93] = {
+  {(bigint) 3367 /* 0: Identity */},
   {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ASelfExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ASelfExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ASelfExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ASelfExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ASelfExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: ASelfExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3367 /* 8: ASelfExpr < ASelfExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ASelfExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ASelfExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3303 /* 8: ASelfExpr < ASelfExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74911,7 +70695,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ASelfExpr[87] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ASelfExpr < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ASelfExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -74927,6 +70711,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ASelfExpr[87] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -74953,32 +70739,35 @@ const classtable_elt_t VFT_parser___parser_nodes___ASelfExpr[87] = {
   {(bigint) parser___parser_prod___ASelfExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ASelfExpr___visit_all},
-  {(bigint) 1 /* 60: ASelfExpr < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: ASelfExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASelfExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ASelfExpr < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: ASelfExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: ASelfExpr < AExpr: superclass init_table position */},
+  {(bigint) 0 /* 80: ASelfExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASelfExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___ASelfExpr___is_self},
   {(bigint) syntax___typing___ASelfExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) syntax___typing___ASelfExpr___variable},
   {(bigint) parser___parser_prod___ASelfExpr___empty_init},
   {(bigint) parser___parser_prod___ASelfExpr___init_aselfexpr},
-  {(bigint) 4 /* 85: ASelfExpr < ASelfExpr: superclass init_table position */},
+  {(bigint) 4 /* 91: ASelfExpr < ASelfExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASelfExpr___n_kwself},
 };
 /* 0: Pointer to the classtable */
@@ -75007,7 +70796,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ASelfExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -75047,13 +70836,13 @@ val_t NEW_ASelfExpr_parser___parser_prod___ASelfExpr___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6608;
+  fra.me.line = 6655;
   fra.me.meth = LOCATE_NEW_ASelfExpr_parser___parser_prod___ASelfExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6608 */
+  /* parser/parser_prod.nit:6655 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ASelfExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ASelfExpr(fra.me.REG[0]);
   parser___parser_prod___ASelfExpr___empty_init(fra.me.REG[0], init_table);
@@ -75067,7 +70856,7 @@ val_t NEW_ASelfExpr_parser___parser_prod___ASelfExpr___init_aselfexpr(val_t p0){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6610;
+  fra.me.line = 6657;
   fra.me.meth = LOCATE_NEW_ASelfExpr_parser___parser_prod___ASelfExpr___init_aselfexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -75075,7 +70864,7 @@ val_t NEW_ASelfExpr_parser___parser_prod___ASelfExpr___init_aselfexpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:6610 */
+  /* parser/parser_prod.nit:6657 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ASelfExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ASelfExpr(fra.me.REG[1]);
   parser___parser_prod___ASelfExpr___init_aselfexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -75083,38 +70872,38 @@ val_t NEW_ASelfExpr_parser___parser_prod___ASelfExpr___init_aselfexpr(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_ASelfExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ASelfExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ASelfExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ASelfExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ASelfExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ASelfExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ASelfExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ASelfExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ASelfExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AImplicitSelfExpr[90] = {
-  {(bigint) 3651 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AImplicitSelfExpr[96] = {
+  {(bigint) 3735 /* 0: Identity */},
   {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AImplicitSelfExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AImplicitSelfExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AImplicitSelfExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AImplicitSelfExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AImplicitSelfExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AImplicitSelfExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3367 /* 8: AImplicitSelfExpr < ASelfExpr: superclass typecheck marker */},
+  {(bigint) 3735 /* 9: AImplicitSelfExpr < AImplicitSelfExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AImplicitSelfExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AImplicitSelfExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3303 /* 8: AImplicitSelfExpr < ASelfExpr: superclass typecheck marker */},
-  {(bigint) 3651 /* 9: AImplicitSelfExpr < AImplicitSelfExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75123,7 +70912,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AImplicitSelfExpr[90] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AImplicitSelfExpr < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AImplicitSelfExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -75139,6 +70928,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AImplicitSelfExpr[90] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -75165,36 +70956,39 @@ const classtable_elt_t VFT_parser___parser_nodes___AImplicitSelfExpr[90] = {
   {(bigint) parser___parser_prod___AImplicitSelfExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AImplicitSelfExpr___visit_all},
-  {(bigint) 1 /* 60: AImplicitSelfExpr < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AImplicitSelfExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASelfExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AImplicitSelfExpr < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AImplicitSelfExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AImplicitSelfExpr < AExpr: superclass init_table position */},
+  {(bigint) 0 /* 80: AImplicitSelfExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASelfExpr___generate_icode},
   {(bigint) syntax___typing___AImplicitSelfExpr___is_implicit_self},
   {(bigint) syntax___typing___ASelfExpr___is_self},
   {(bigint) syntax___typing___ASelfExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) syntax___typing___ASelfExpr___variable},
   {(bigint) parser___parser_prod___ASelfExpr___empty_init},
   {(bigint) parser___parser_prod___ASelfExpr___init_aselfexpr},
-  {(bigint) 4 /* 85: AImplicitSelfExpr < ASelfExpr: superclass init_table position */},
+  {(bigint) 4 /* 91: AImplicitSelfExpr < ASelfExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASelfExpr___n_kwself},
   {(bigint) parser___parser_prod___AImplicitSelfExpr___empty_init},
   {(bigint) parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr},
-  {(bigint) 5 /* 89: AImplicitSelfExpr < AImplicitSelfExpr: superclass init_table position */},
+  {(bigint) 5 /* 95: AImplicitSelfExpr < AImplicitSelfExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -75222,7 +71016,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AImplicitSelfExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -75262,13 +71056,13 @@ val_t NEW_AImplicitSelfExpr_parser___parser_prod___ASelfExpr___empty_init(void){
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6608;
+  fra.me.line = 6655;
   fra.me.meth = LOCATE_NEW_AImplicitSelfExpr_parser___parser_prod___ASelfExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6608 */
+  /* parser/parser_prod.nit:6655 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AImplicitSelfExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AImplicitSelfExpr(fra.me.REG[0]);
   parser___parser_prod___ASelfExpr___empty_init(fra.me.REG[0], init_table);
@@ -75282,13 +71076,13 @@ val_t NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___empty_ini
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6639;
+  fra.me.line = 6686;
   fra.me.meth = LOCATE_NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6639 */
+  /* parser/parser_prod.nit:6686 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AImplicitSelfExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AImplicitSelfExpr(fra.me.REG[0]);
   parser___parser_prod___AImplicitSelfExpr___empty_init(fra.me.REG[0], init_table);
@@ -75302,13 +71096,13 @@ val_t NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimp
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6641;
+  fra.me.line = 6688;
   fra.me.meth = LOCATE_NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6641 */
+  /* parser/parser_prod.nit:6688 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AImplicitSelfExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AImplicitSelfExpr(fra.me.REG[0]);
   parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(fra.me.REG[0], init_table);
@@ -75316,26 +71110,25 @@ val_t NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimp
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_AImplicitSelfExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AImplicitSelfExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AImplicitSelfExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AImplicitSelfExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AImplicitSelfExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AImplicitSelfExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AImplicitSelfExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AImplicitSelfExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AImplicitSelfExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
 val_t NEW_AImplicitSelfExpr_parser___parser_prod___ASelfExpr___init_aselfexpr(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
@@ -75343,7 +71136,7 @@ val_t NEW_AImplicitSelfExpr_parser___parser_prod___ASelfExpr___init_aselfexpr(va
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6610;
+  fra.me.line = 6657;
   fra.me.meth = LOCATE_NEW_AImplicitSelfExpr_parser___parser_prod___ASelfExpr___init_aselfexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -75351,7 +71144,7 @@ val_t NEW_AImplicitSelfExpr_parser___parser_prod___ASelfExpr___init_aselfexpr(va
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:6610 */
+  /* parser/parser_prod.nit:6657 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AImplicitSelfExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AImplicitSelfExpr(fra.me.REG[1]);
   parser___parser_prod___ASelfExpr___init_aselfexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -75359,17 +71152,18 @@ val_t NEW_AImplicitSelfExpr_parser___parser_prod___ASelfExpr___init_aselfexpr(va
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ATrueExpr[87] = {
-  {(bigint) 3587 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ATrueExpr[93] = {
+  {(bigint) 3667 /* 0: Identity */},
   {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ATrueExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ATrueExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ATrueExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ATrueExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ATrueExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: ATrueExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3563 /* 8: ATrueExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 3667 /* 9: ATrueExpr < ATrueExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ATrueExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ATrueExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3483 /* 8: ATrueExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 3587 /* 9: ATrueExpr < ATrueExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75378,7 +71172,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ATrueExpr[87] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ATrueExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: ATrueExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -75394,6 +71188,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ATrueExpr[87] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -75420,32 +71216,35 @@ const classtable_elt_t VFT_parser___parser_nodes___ATrueExpr[87] = {
   {(bigint) parser___parser_prod___ATrueExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ATrueExpr___visit_all},
-  {(bigint) 1 /* 60: ATrueExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: ATrueExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ABoolExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ATrueExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: ATrueExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___ABoolExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: ATrueExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: ATrueExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ATrueExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 4 /* 82: ATrueExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) 0 /* 88: ATrueExpr < ABoolExpr: superclass init_table position */},
   {(bigint) parser___parser_prod___ATrueExpr___empty_init},
   {(bigint) parser___parser_prod___ATrueExpr___init_atrueexpr},
-  {(bigint) 5 /* 85: ATrueExpr < ATrueExpr: superclass init_table position */},
+  {(bigint) 5 /* 91: ATrueExpr < ATrueExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ATrueExpr___n_kwtrue},
 };
 /* 0: Pointer to the classtable */
@@ -75473,7 +71272,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ATrueExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -75518,13 +71317,13 @@ val_t NEW_ATrueExpr_parser___parser_prod___ATrueExpr___empty_init(void){
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6655;
+  fra.me.line = 6702;
   fra.me.meth = LOCATE_NEW_ATrueExpr_parser___parser_prod___ATrueExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6655 */
+  /* parser/parser_prod.nit:6702 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ATrueExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ATrueExpr(fra.me.REG[0]);
   parser___parser_prod___ATrueExpr___empty_init(fra.me.REG[0], init_table);
@@ -75538,7 +71337,7 @@ val_t NEW_ATrueExpr_parser___parser_prod___ATrueExpr___init_atrueexpr(val_t p0){
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6657;
+  fra.me.line = 6704;
   fra.me.meth = LOCATE_NEW_ATrueExpr_parser___parser_prod___ATrueExpr___init_atrueexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -75546,7 +71345,7 @@ val_t NEW_ATrueExpr_parser___parser_prod___ATrueExpr___init_atrueexpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:6657 */
+  /* parser/parser_prod.nit:6704 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ATrueExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ATrueExpr(fra.me.REG[1]);
   parser___parser_prod___ATrueExpr___init_atrueexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -75554,38 +71353,38 @@ val_t NEW_ATrueExpr_parser___parser_prod___ATrueExpr___init_atrueexpr(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_ATrueExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ATrueExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ATrueExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ATrueExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ATrueExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ATrueExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ATrueExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ATrueExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ATrueExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AFalseExpr[87] = {
-  {(bigint) 3663 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AFalseExpr[93] = {
+  {(bigint) 3747 /* 0: Identity */},
   {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AFalseExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AFalseExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AFalseExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AFalseExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AFalseExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AFalseExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3563 /* 8: AFalseExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 3747 /* 9: AFalseExpr < AFalseExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AFalseExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AFalseExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3483 /* 8: AFalseExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 3663 /* 9: AFalseExpr < AFalseExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75594,7 +71393,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AFalseExpr[87] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AFalseExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AFalseExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -75610,6 +71409,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AFalseExpr[87] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -75636,32 +71437,35 @@ const classtable_elt_t VFT_parser___parser_nodes___AFalseExpr[87] = {
   {(bigint) parser___parser_prod___AFalseExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AFalseExpr___visit_all},
-  {(bigint) 1 /* 60: AFalseExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AFalseExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ABoolExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AFalseExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AFalseExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___ABoolExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AFalseExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AFalseExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AFalseExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 4 /* 82: AFalseExpr < ABoolExpr: superclass init_table position */},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) 0 /* 88: AFalseExpr < ABoolExpr: superclass init_table position */},
   {(bigint) parser___parser_prod___AFalseExpr___empty_init},
   {(bigint) parser___parser_prod___AFalseExpr___init_afalseexpr},
-  {(bigint) 5 /* 85: AFalseExpr < AFalseExpr: superclass init_table position */},
+  {(bigint) 5 /* 91: AFalseExpr < AFalseExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AFalseExpr___n_kwfalse},
 };
 /* 0: Pointer to the classtable */
@@ -75689,7 +71493,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AFalseExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -75734,13 +71538,13 @@ val_t NEW_AFalseExpr_parser___parser_prod___AFalseExpr___empty_init(void){
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6686;
+  fra.me.line = 6733;
   fra.me.meth = LOCATE_NEW_AFalseExpr_parser___parser_prod___AFalseExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6686 */
+  /* parser/parser_prod.nit:6733 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AFalseExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AFalseExpr(fra.me.REG[0]);
   parser___parser_prod___AFalseExpr___empty_init(fra.me.REG[0], init_table);
@@ -75754,7 +71558,7 @@ val_t NEW_AFalseExpr_parser___parser_prod___AFalseExpr___init_afalseexpr(val_t p
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6688;
+  fra.me.line = 6735;
   fra.me.meth = LOCATE_NEW_AFalseExpr_parser___parser_prod___AFalseExpr___init_afalseexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -75762,7 +71566,7 @@ val_t NEW_AFalseExpr_parser___parser_prod___AFalseExpr___init_afalseexpr(val_t p
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:6688 */
+  /* parser/parser_prod.nit:6735 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AFalseExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AFalseExpr(fra.me.REG[1]);
   parser___parser_prod___AFalseExpr___init_afalseexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -75770,37 +71574,37 @@ val_t NEW_AFalseExpr_parser___parser_prod___AFalseExpr___init_afalseexpr(val_t p
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AFalseExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AFalseExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AFalseExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AFalseExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AFalseExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AFalseExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AFalseExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AFalseExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AFalseExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ANullExpr[86] = {
-  {(bigint) 3355 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ANullExpr[92] = {
+  {(bigint) 3423 /* 0: Identity */},
   {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ANullExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ANullExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ANullExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ANullExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ANullExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: ANullExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3423 /* 8: ANullExpr < ANullExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ANullExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ANullExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3355 /* 8: ANullExpr < ANullExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75810,7 +71614,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ANullExpr[86] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ANullExpr < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ANullExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -75826,6 +71630,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ANullExpr[86] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -75852,31 +71658,34 @@ const classtable_elt_t VFT_parser___parser_nodes___ANullExpr[86] = {
   {(bigint) parser___parser_prod___ANullExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ANullExpr___visit_all},
-  {(bigint) 1 /* 60: ANullExpr < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: ANullExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANullExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ANullExpr < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: ANullExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: ANullExpr < AExpr: superclass init_table position */},
+  {(bigint) 0 /* 80: ANullExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ANullExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) parser___parser_prod___ANullExpr___empty_init},
   {(bigint) parser___parser_prod___ANullExpr___init_anullexpr},
-  {(bigint) 4 /* 84: ANullExpr < ANullExpr: superclass init_table position */},
+  {(bigint) 4 /* 90: ANullExpr < ANullExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANullExpr___n_kwnull},
 };
 /* 0: Pointer to the classtable */
@@ -75904,7 +71713,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ANullExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -75949,13 +71758,13 @@ val_t NEW_ANullExpr_parser___parser_prod___ANullExpr___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6717;
+  fra.me.line = 6764;
   fra.me.meth = LOCATE_NEW_ANullExpr_parser___parser_prod___ANullExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6717 */
+  /* parser/parser_prod.nit:6764 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ANullExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ANullExpr(fra.me.REG[0]);
   parser___parser_prod___ANullExpr___empty_init(fra.me.REG[0], init_table);
@@ -75969,7 +71778,7 @@ val_t NEW_ANullExpr_parser___parser_prod___ANullExpr___init_anullexpr(val_t p0){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6719;
+  fra.me.line = 6766;
   fra.me.meth = LOCATE_NEW_ANullExpr_parser___parser_prod___ANullExpr___init_anullexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -75977,7 +71786,7 @@ val_t NEW_ANullExpr_parser___parser_prod___ANullExpr___init_anullexpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:6719 */
+  /* parser/parser_prod.nit:6766 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ANullExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ANullExpr(fra.me.REG[1]);
   parser___parser_prod___ANullExpr___init_anullexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -75985,37 +71794,37 @@ val_t NEW_ANullExpr_parser___parser_prod___ANullExpr___init_anullexpr(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_ANullExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ANullExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ANullExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ANullExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ANullExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ANullExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ANullExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ANullExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ANullExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AIntExpr[86] = {
-  {(bigint) 3403 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AIntExpr[92] = {
+  {(bigint) 3475 /* 0: Identity */},
   {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AIntExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AIntExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AIntExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AIntExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AIntExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AIntExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3475 /* 8: AIntExpr < AIntExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AIntExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AIntExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3403 /* 8: AIntExpr < AIntExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76025,7 +71834,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AIntExpr[86] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AIntExpr < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AIntExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -76041,6 +71850,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AIntExpr[86] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -76067,31 +71878,34 @@ const classtable_elt_t VFT_parser___parser_nodes___AIntExpr[86] = {
   {(bigint) parser___parser_prod___AIntExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AIntExpr___visit_all},
-  {(bigint) 1 /* 60: AIntExpr < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AIntExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AIntExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AIntExpr < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AIntExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AIntExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AIntExpr < AExpr: superclass init_table position */},
+  {(bigint) 0 /* 80: AIntExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AIntExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) parser___parser_prod___AIntExpr___empty_init},
   {(bigint) parser___parser_prod___AIntExpr___init_aintexpr},
-  {(bigint) 4 /* 84: AIntExpr < AIntExpr: superclass init_table position */},
+  {(bigint) 4 /* 90: AIntExpr < AIntExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AIntExpr___n_number},
 };
 /* 0: Pointer to the classtable */
@@ -76119,7 +71933,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AIntExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -76146,15 +71960,15 @@ void CHECKNEW_parser___parser_nodes___AIntExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
@@ -76164,13 +71978,13 @@ val_t NEW_AIntExpr_parser___parser_prod___AIntExpr___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6748;
+  fra.me.line = 6795;
   fra.me.meth = LOCATE_NEW_AIntExpr_parser___parser_prod___AIntExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6748 */
+  /* parser/parser_prod.nit:6795 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AIntExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AIntExpr(fra.me.REG[0]);
   parser___parser_prod___AIntExpr___empty_init(fra.me.REG[0], init_table);
@@ -76184,7 +71998,7 @@ val_t NEW_AIntExpr_parser___parser_prod___AIntExpr___init_aintexpr(val_t p0){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6750;
+  fra.me.line = 6797;
   fra.me.meth = LOCATE_NEW_AIntExpr_parser___parser_prod___AIntExpr___init_aintexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -76192,7 +72006,7 @@ val_t NEW_AIntExpr_parser___parser_prod___AIntExpr___init_aintexpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:6750 */
+  /* parser/parser_prod.nit:6797 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AIntExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AIntExpr(fra.me.REG[1]);
   parser___parser_prod___AIntExpr___init_aintexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -76200,37 +72014,37 @@ val_t NEW_AIntExpr_parser___parser_prod___AIntExpr___init_aintexpr(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AIntExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AIntExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AIntExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AIntExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AIntExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AIntExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AIntExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AIntExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AIntExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AFloatExpr[86] = {
-  {(bigint) 3431 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AFloatExpr[92] = {
+  {(bigint) 3503 /* 0: Identity */},
   {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AFloatExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AFloatExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AFloatExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AFloatExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AFloatExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AFloatExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3503 /* 8: AFloatExpr < AFloatExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AFloatExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AFloatExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3431 /* 8: AFloatExpr < AFloatExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76240,7 +72054,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AFloatExpr[86] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AFloatExpr < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AFloatExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -76256,6 +72070,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AFloatExpr[86] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -76282,31 +72098,34 @@ const classtable_elt_t VFT_parser___parser_nodes___AFloatExpr[86] = {
   {(bigint) parser___parser_prod___AFloatExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AFloatExpr___visit_all},
-  {(bigint) 1 /* 60: AFloatExpr < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AFloatExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AFloatExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AFloatExpr < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AFloatExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AFloatExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AFloatExpr < AExpr: superclass init_table position */},
+  {(bigint) 0 /* 80: AFloatExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AFloatExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) parser___parser_prod___AFloatExpr___empty_init},
   {(bigint) parser___parser_prod___AFloatExpr___init_afloatexpr},
-  {(bigint) 4 /* 84: AFloatExpr < AFloatExpr: superclass init_table position */},
+  {(bigint) 4 /* 90: AFloatExpr < AFloatExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AFloatExpr___n_float},
 };
 /* 0: Pointer to the classtable */
@@ -76334,7 +72153,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AFloatExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -76361,15 +72180,15 @@ void CHECKNEW_parser___parser_nodes___AFloatExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
@@ -76379,13 +72198,13 @@ val_t NEW_AFloatExpr_parser___parser_prod___AFloatExpr___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6779;
+  fra.me.line = 6826;
   fra.me.meth = LOCATE_NEW_AFloatExpr_parser___parser_prod___AFloatExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6779 */
+  /* parser/parser_prod.nit:6826 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AFloatExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AFloatExpr(fra.me.REG[0]);
   parser___parser_prod___AFloatExpr___empty_init(fra.me.REG[0], init_table);
@@ -76399,7 +72218,7 @@ val_t NEW_AFloatExpr_parser___parser_prod___AFloatExpr___init_afloatexpr(val_t p
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6781;
+  fra.me.line = 6828;
   fra.me.meth = LOCATE_NEW_AFloatExpr_parser___parser_prod___AFloatExpr___init_afloatexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -76407,7 +72226,7 @@ val_t NEW_AFloatExpr_parser___parser_prod___AFloatExpr___init_afloatexpr(val_t p
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:6781 */
+  /* parser/parser_prod.nit:6828 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AFloatExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AFloatExpr(fra.me.REG[1]);
   parser___parser_prod___AFloatExpr___init_afloatexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -76415,37 +72234,37 @@ val_t NEW_AFloatExpr_parser___parser_prod___AFloatExpr___init_afloatexpr(val_t p
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AFloatExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AFloatExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AFloatExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AFloatExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AFloatExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AFloatExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AFloatExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AFloatExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AFloatExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ACharExpr[86] = {
-  {(bigint) 3463 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ACharExpr[92] = {
+  {(bigint) 3539 /* 0: Identity */},
   {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ACharExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ACharExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ACharExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ACharExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ACharExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: ACharExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3539 /* 8: ACharExpr < ACharExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ACharExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ACharExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3463 /* 8: ACharExpr < ACharExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76455,7 +72274,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ACharExpr[86] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ACharExpr < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ACharExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -76471,6 +72290,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ACharExpr[86] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -76497,31 +72318,34 @@ const classtable_elt_t VFT_parser___parser_nodes___ACharExpr[86] = {
   {(bigint) parser___parser_prod___ACharExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ACharExpr___visit_all},
-  {(bigint) 1 /* 60: ACharExpr < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: ACharExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ACharExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ACharExpr < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: ACharExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___ACharExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: ACharExpr < AExpr: superclass init_table position */},
+  {(bigint) 0 /* 80: ACharExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ACharExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) parser___parser_prod___ACharExpr___empty_init},
   {(bigint) parser___parser_prod___ACharExpr___init_acharexpr},
-  {(bigint) 4 /* 84: ACharExpr < ACharExpr: superclass init_table position */},
+  {(bigint) 4 /* 90: ACharExpr < ACharExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ACharExpr___n_char},
 };
 /* 0: Pointer to the classtable */
@@ -76549,7 +72373,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ACharExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -76576,15 +72400,15 @@ void CHECKNEW_parser___parser_nodes___ACharExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
@@ -76594,13 +72418,13 @@ val_t NEW_ACharExpr_parser___parser_prod___ACharExpr___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6810;
+  fra.me.line = 6857;
   fra.me.meth = LOCATE_NEW_ACharExpr_parser___parser_prod___ACharExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6810 */
+  /* parser/parser_prod.nit:6857 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ACharExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ACharExpr(fra.me.REG[0]);
   parser___parser_prod___ACharExpr___empty_init(fra.me.REG[0], init_table);
@@ -76614,7 +72438,7 @@ val_t NEW_ACharExpr_parser___parser_prod___ACharExpr___init_acharexpr(val_t p0){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6812;
+  fra.me.line = 6859;
   fra.me.meth = LOCATE_NEW_ACharExpr_parser___parser_prod___ACharExpr___init_acharexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -76622,7 +72446,7 @@ val_t NEW_ACharExpr_parser___parser_prod___ACharExpr___init_acharexpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:6812 */
+  /* parser/parser_prod.nit:6859 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ACharExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ACharExpr(fra.me.REG[1]);
   parser___parser_prod___ACharExpr___init_acharexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -76630,206 +72454,38 @@ val_t NEW_ACharExpr_parser___parser_prod___ACharExpr___init_acharexpr(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_ACharExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ACharExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ACharExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ACharExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ACharExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ACharExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AStringFormExpr[85] = {
-  {(bigint) 3275 /* 0: Identity */},
-  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AStringFormExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AStringFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AStringFormExpr < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AStringFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AStringFormExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3275 /* 8: AStringFormExpr < AStringFormExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AStringFormExpr < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: AStringFormExpr < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___AStringFormExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AStringFormExpr < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExpr___is_typed},
-  {(bigint) syntax___typing___AExpr___is_statement},
-  {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AStringFormExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___AStringFormExpr___generate_icode},
-  {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
-  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
-  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) syntax___icode_generation___AStringFormExpr___string_text},
-  {(bigint) syntax___icode_generation___AStringFormExpr___compute_string_infos},
-  {(bigint) 4 /* 84: AStringFormExpr < AStringFormExpr: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AStringFormExpr::_parent */
-/* 3: Attribute AStringFormExpr::_location */
-/* 4: Attribute AStringFormExpr::_first_location */
-/* 5: Attribute AStringFormExpr::_last_location */
-/* Instance Hole :( */
-/* 7: Attribute AStringFormExpr::_is_typed */
-/* 8: Attribute AStringFormExpr::_stype */
-/* 9: Attribute AStringFormExpr::_if_true_flow_ctx */
-/* 10: Attribute AStringFormExpr::_if_false_flow_ctx */
-/* 11: Attribute AStringFormExpr::_cstring */
-/* 12: Attribute AStringFormExpr::_cstring_length */
-void INIT_ATTRIBUTES__parser___parser_nodes___AStringFormExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AStringFormExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AStringFormExpr(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AStringFormExpr;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AStringFormExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AStringFormExpr;
-  fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AStringFormExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AStringFormExpr_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AStringFormExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AStringFormExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AStringFormExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ACharExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ACharExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ACharExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AStringExpr[89] = {
-  {(bigint) 3591 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AStringExpr[95] = {
+  {(bigint) 3671 /* 0: Identity */},
   {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AStringExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AStringExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AStringExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AStringExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AStringExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AStringExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3339 /* 8: AStringExpr < AStringFormExpr: superclass typecheck marker */},
+  {(bigint) 3671 /* 9: AStringExpr < AStringExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AStringExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AStringExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3275 /* 8: AStringExpr < AStringFormExpr: superclass typecheck marker */},
-  {(bigint) 3591 /* 9: AStringExpr < AStringExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76838,7 +72494,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AStringExpr[89] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AStringExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AStringExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -76854,6 +72510,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AStringExpr[89] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -76880,34 +72538,37 @@ const classtable_elt_t VFT_parser___parser_nodes___AStringExpr[89] = {
   {(bigint) parser___parser_prod___AStringExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AStringExpr___visit_all},
-  {(bigint) 1 /* 60: AStringExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AStringExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AStringFormExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AStringExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AStringExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AStringExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AStringExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AStringExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AStringFormExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) syntax___icode_generation___AStringExpr___string_text},
   {(bigint) syntax___icode_generation___AStringFormExpr___compute_string_infos},
-  {(bigint) 4 /* 84: AStringExpr < AStringFormExpr: superclass init_table position */},
+  {(bigint) 0 /* 90: AStringExpr < AStringFormExpr: superclass init_table position */},
   {(bigint) parser___parser_prod___AStringExpr___empty_init},
   {(bigint) parser___parser_prod___AStringExpr___init_astringexpr},
-  {(bigint) 5 /* 87: AStringExpr < AStringExpr: superclass init_table position */},
+  {(bigint) 5 /* 93: AStringExpr < AStringExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AStringExpr___n_string},
 };
 /* 0: Pointer to the classtable */
@@ -76937,7 +72598,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AStringExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -76982,13 +72643,13 @@ val_t NEW_AStringExpr_parser___parser_prod___AStringExpr___empty_init(void){
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6841;
+  fra.me.line = 6888;
   fra.me.meth = LOCATE_NEW_AStringExpr_parser___parser_prod___AStringExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6841 */
+  /* parser/parser_prod.nit:6888 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AStringExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AStringExpr(fra.me.REG[0]);
   parser___parser_prod___AStringExpr___empty_init(fra.me.REG[0], init_table);
@@ -77002,7 +72663,7 @@ val_t NEW_AStringExpr_parser___parser_prod___AStringExpr___init_astringexpr(val_
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6843;
+  fra.me.line = 6890;
   fra.me.meth = LOCATE_NEW_AStringExpr_parser___parser_prod___AStringExpr___init_astringexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -77010,7 +72671,7 @@ val_t NEW_AStringExpr_parser___parser_prod___AStringExpr___init_astringexpr(val_
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:6843 */
+  /* parser/parser_prod.nit:6890 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AStringExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AStringExpr(fra.me.REG[1]);
   parser___parser_prod___AStringExpr___init_astringexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -77018,38 +72679,38 @@ val_t NEW_AStringExpr_parser___parser_prod___AStringExpr___init_astringexpr(val_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AStringExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AStringExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AStringExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AStringExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AStringExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AStringExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AStringExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AStringExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AStringExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AStartStringExpr[89] = {
-  {(bigint) 3595 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AStartStringExpr[95] = {
+  {(bigint) 3675 /* 0: Identity */},
   {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AStartStringExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AStartStringExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AStartStringExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AStartStringExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AStartStringExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AStartStringExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3339 /* 8: AStartStringExpr < AStringFormExpr: superclass typecheck marker */},
+  {(bigint) 3675 /* 9: AStartStringExpr < AStartStringExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AStartStringExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AStartStringExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3275 /* 8: AStartStringExpr < AStringFormExpr: superclass typecheck marker */},
-  {(bigint) 3595 /* 9: AStartStringExpr < AStartStringExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77058,7 +72719,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AStartStringExpr[89] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AStartStringExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AStartStringExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -77074,6 +72735,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AStartStringExpr[89] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -77100,34 +72763,37 @@ const classtable_elt_t VFT_parser___parser_nodes___AStartStringExpr[89] = {
   {(bigint) parser___parser_prod___AStartStringExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AStartStringExpr___visit_all},
-  {(bigint) 1 /* 60: AStartStringExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AStartStringExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AStringFormExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AStartStringExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AStartStringExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AStartStringExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AStartStringExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AStringFormExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) syntax___icode_generation___AStartStringExpr___string_text},
   {(bigint) syntax___icode_generation___AStringFormExpr___compute_string_infos},
-  {(bigint) 4 /* 84: AStartStringExpr < AStringFormExpr: superclass init_table position */},
+  {(bigint) 0 /* 90: AStartStringExpr < AStringFormExpr: superclass init_table position */},
   {(bigint) parser___parser_prod___AStartStringExpr___empty_init},
   {(bigint) parser___parser_prod___AStartStringExpr___init_astartstringexpr},
-  {(bigint) 5 /* 87: AStartStringExpr < AStartStringExpr: superclass init_table position */},
+  {(bigint) 5 /* 93: AStartStringExpr < AStartStringExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AStartStringExpr___n_string},
 };
 /* 0: Pointer to the classtable */
@@ -77157,7 +72823,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AStartStringExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -77202,13 +72868,13 @@ val_t NEW_AStartStringExpr_parser___parser_prod___AStartStringExpr___empty_init(
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6872;
+  fra.me.line = 6919;
   fra.me.meth = LOCATE_NEW_AStartStringExpr_parser___parser_prod___AStartStringExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6872 */
+  /* parser/parser_prod.nit:6919 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AStartStringExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AStartStringExpr(fra.me.REG[0]);
   parser___parser_prod___AStartStringExpr___empty_init(fra.me.REG[0], init_table);
@@ -77222,7 +72888,7 @@ val_t NEW_AStartStringExpr_parser___parser_prod___AStartStringExpr___init_astart
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6874;
+  fra.me.line = 6921;
   fra.me.meth = LOCATE_NEW_AStartStringExpr_parser___parser_prod___AStartStringExpr___init_astartstringexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -77230,7 +72896,7 @@ val_t NEW_AStartStringExpr_parser___parser_prod___AStartStringExpr___init_astart
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:6874 */
+  /* parser/parser_prod.nit:6921 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AStartStringExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AStartStringExpr(fra.me.REG[1]);
   parser___parser_prod___AStartStringExpr___init_astartstringexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -77238,38 +72904,38 @@ val_t NEW_AStartStringExpr_parser___parser_prod___AStartStringExpr___init_astart
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AStartStringExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AStartStringExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AStartStringExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AStartStringExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AStartStringExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AStartStringExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AStartStringExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AStartStringExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AStartStringExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AMidStringExpr[89] = {
-  {(bigint) 3623 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AMidStringExpr[95] = {
+  {(bigint) 3703 /* 0: Identity */},
   {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AMidStringExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AMidStringExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AMidStringExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AMidStringExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AMidStringExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AMidStringExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3339 /* 8: AMidStringExpr < AStringFormExpr: superclass typecheck marker */},
+  {(bigint) 3703 /* 9: AMidStringExpr < AMidStringExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AMidStringExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AMidStringExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3275 /* 8: AMidStringExpr < AStringFormExpr: superclass typecheck marker */},
-  {(bigint) 3623 /* 9: AMidStringExpr < AMidStringExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77278,7 +72944,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AMidStringExpr[89] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AMidStringExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AMidStringExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -77294,6 +72960,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AMidStringExpr[89] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -77320,34 +72988,37 @@ const classtable_elt_t VFT_parser___parser_nodes___AMidStringExpr[89] = {
   {(bigint) parser___parser_prod___AMidStringExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AMidStringExpr___visit_all},
-  {(bigint) 1 /* 60: AMidStringExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AMidStringExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AStringFormExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AMidStringExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AMidStringExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AMidStringExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AMidStringExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AStringFormExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) syntax___icode_generation___AMidStringExpr___string_text},
   {(bigint) syntax___icode_generation___AStringFormExpr___compute_string_infos},
-  {(bigint) 4 /* 84: AMidStringExpr < AStringFormExpr: superclass init_table position */},
+  {(bigint) 0 /* 90: AMidStringExpr < AStringFormExpr: superclass init_table position */},
   {(bigint) parser___parser_prod___AMidStringExpr___empty_init},
   {(bigint) parser___parser_prod___AMidStringExpr___init_amidstringexpr},
-  {(bigint) 5 /* 87: AMidStringExpr < AMidStringExpr: superclass init_table position */},
+  {(bigint) 5 /* 93: AMidStringExpr < AMidStringExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AMidStringExpr___n_string},
 };
 /* 0: Pointer to the classtable */
@@ -77377,7 +73048,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AMidStringExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -77422,13 +73093,13 @@ val_t NEW_AMidStringExpr_parser___parser_prod___AMidStringExpr___empty_init(void
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6903;
+  fra.me.line = 6950;
   fra.me.meth = LOCATE_NEW_AMidStringExpr_parser___parser_prod___AMidStringExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6903 */
+  /* parser/parser_prod.nit:6950 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AMidStringExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AMidStringExpr(fra.me.REG[0]);
   parser___parser_prod___AMidStringExpr___empty_init(fra.me.REG[0], init_table);
@@ -77442,7 +73113,7 @@ val_t NEW_AMidStringExpr_parser___parser_prod___AMidStringExpr___init_amidstring
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6905;
+  fra.me.line = 6952;
   fra.me.meth = LOCATE_NEW_AMidStringExpr_parser___parser_prod___AMidStringExpr___init_amidstringexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -77450,7 +73121,7 @@ val_t NEW_AMidStringExpr_parser___parser_prod___AMidStringExpr___init_amidstring
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:6905 */
+  /* parser/parser_prod.nit:6952 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AMidStringExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AMidStringExpr(fra.me.REG[1]);
   parser___parser_prod___AMidStringExpr___init_amidstringexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -77458,38 +73129,38 @@ val_t NEW_AMidStringExpr_parser___parser_prod___AMidStringExpr___init_amidstring
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AMidStringExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AMidStringExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AMidStringExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AMidStringExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AMidStringExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AMidStringExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AMidStringExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AMidStringExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AMidStringExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AEndStringExpr[89] = {
-  {(bigint) 3671 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AEndStringExpr[95] = {
+  {(bigint) 3755 /* 0: Identity */},
   {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AEndStringExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AEndStringExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AEndStringExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AEndStringExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AEndStringExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AEndStringExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3339 /* 8: AEndStringExpr < AStringFormExpr: superclass typecheck marker */},
+  {(bigint) 3755 /* 9: AEndStringExpr < AEndStringExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AEndStringExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AEndStringExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3275 /* 8: AEndStringExpr < AStringFormExpr: superclass typecheck marker */},
-  {(bigint) 3671 /* 9: AEndStringExpr < AEndStringExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77498,7 +73169,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AEndStringExpr[89] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AEndStringExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AEndStringExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -77514,6 +73185,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AEndStringExpr[89] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -77540,34 +73213,37 @@ const classtable_elt_t VFT_parser___parser_nodes___AEndStringExpr[89] = {
   {(bigint) parser___parser_prod___AEndStringExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AEndStringExpr___visit_all},
-  {(bigint) 1 /* 60: AEndStringExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AEndStringExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AStringFormExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AEndStringExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AEndStringExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AEndStringExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AEndStringExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AStringFormExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) syntax___icode_generation___AEndStringExpr___string_text},
   {(bigint) syntax___icode_generation___AStringFormExpr___compute_string_infos},
-  {(bigint) 4 /* 84: AEndStringExpr < AStringFormExpr: superclass init_table position */},
+  {(bigint) 0 /* 90: AEndStringExpr < AStringFormExpr: superclass init_table position */},
   {(bigint) parser___parser_prod___AEndStringExpr___empty_init},
   {(bigint) parser___parser_prod___AEndStringExpr___init_aendstringexpr},
-  {(bigint) 5 /* 87: AEndStringExpr < AEndStringExpr: superclass init_table position */},
+  {(bigint) 5 /* 93: AEndStringExpr < AEndStringExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AEndStringExpr___n_string},
 };
 /* 0: Pointer to the classtable */
@@ -77597,7 +73273,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AEndStringExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -77642,13 +73318,13 @@ val_t NEW_AEndStringExpr_parser___parser_prod___AEndStringExpr___empty_init(void
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6934;
+  fra.me.line = 6981;
   fra.me.meth = LOCATE_NEW_AEndStringExpr_parser___parser_prod___AEndStringExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6934 */
+  /* parser/parser_prod.nit:6981 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AEndStringExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AEndStringExpr(fra.me.REG[0]);
   parser___parser_prod___AEndStringExpr___empty_init(fra.me.REG[0], init_table);
@@ -77662,7 +73338,7 @@ val_t NEW_AEndStringExpr_parser___parser_prod___AEndStringExpr___init_aendstring
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6936;
+  fra.me.line = 6983;
   fra.me.meth = LOCATE_NEW_AEndStringExpr_parser___parser_prod___AEndStringExpr___init_aendstringexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -77670,7 +73346,7 @@ val_t NEW_AEndStringExpr_parser___parser_prod___AEndStringExpr___init_aendstring
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:6936 */
+  /* parser/parser_prod.nit:6983 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AEndStringExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AEndStringExpr(fra.me.REG[1]);
   parser___parser_prod___AEndStringExpr___init_aendstringexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -77678,37 +73354,37 @@ val_t NEW_AEndStringExpr_parser___parser_prod___AEndStringExpr___init_aendstring
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AEndStringExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AEndStringExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AEndStringExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AEndStringExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AEndStringExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AEndStringExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AEndStringExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AEndStringExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AEndStringExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ASuperstringExpr[87] = {
-  {(bigint) 3267 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ASuperstringExpr[93] = {
+  {(bigint) 3331 /* 0: Identity */},
   {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ASuperstringExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: ASuperstringExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ASuperstringExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ASuperstringExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ASuperstringExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: ASuperstringExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3331 /* 8: ASuperstringExpr < ASuperstringExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ASuperstringExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ASuperstringExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3267 /* 8: ASuperstringExpr < ASuperstringExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77718,7 +73394,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ASuperstringExpr[87] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ASuperstringExpr < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ASuperstringExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -77734,6 +73410,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ASuperstringExpr[87] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -77760,32 +73438,35 @@ const classtable_elt_t VFT_parser___parser_nodes___ASuperstringExpr[87] = {
   {(bigint) parser___parser_prod___ASuperstringExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ASuperstringExpr___visit_all},
-  {(bigint) 1 /* 60: ASuperstringExpr < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: ASuperstringExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ASuperstringExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ASuperstringExpr < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: ASuperstringExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: ASuperstringExpr < AExpr: superclass init_table position */},
+  {(bigint) 0 /* 80: ASuperstringExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___ASuperstringExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) syntax___typing___ASuperstringExpr___atype},
   {(bigint) parser___parser_prod___ASuperstringExpr___empty_init},
   {(bigint) parser___parser_prod___ASuperstringExpr___init_asuperstringexpr},
-  {(bigint) 4 /* 85: ASuperstringExpr < ASuperstringExpr: superclass init_table position */},
+  {(bigint) 4 /* 91: ASuperstringExpr < ASuperstringExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASuperstringExpr___n_exprs},
 };
 /* 0: Pointer to the classtable */
@@ -77815,10 +73496,10 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ASuperstringExpr(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser_nodes.nit:1016 */
+  /* parser/parser_nodes.nit:1096 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -77863,13 +73544,13 @@ val_t NEW_ASuperstringExpr_parser___parser_prod___ASuperstringExpr___empty_init(
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6965;
+  fra.me.line = 7012;
   fra.me.meth = LOCATE_NEW_ASuperstringExpr_parser___parser_prod___ASuperstringExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:6965 */
+  /* parser/parser_prod.nit:7012 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ASuperstringExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ASuperstringExpr(fra.me.REG[0]);
   parser___parser_prod___ASuperstringExpr___empty_init(fra.me.REG[0], init_table);
@@ -77883,7 +73564,7 @@ val_t NEW_ASuperstringExpr_parser___parser_prod___ASuperstringExpr___init_asuper
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 6967;
+  fra.me.line = 7014;
   fra.me.meth = LOCATE_NEW_ASuperstringExpr_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -77891,7 +73572,7 @@ val_t NEW_ASuperstringExpr_parser___parser_prod___ASuperstringExpr___init_asuper
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:6967 */
+  /* parser/parser_prod.nit:7014 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ASuperstringExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___ASuperstringExpr(fra.me.REG[1]);
   parser___parser_prod___ASuperstringExpr___init_asuperstringexpr(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -77899,38 +73580,38 @@ val_t NEW_ASuperstringExpr_parser___parser_prod___ASuperstringExpr___init_asuper
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_ASuperstringExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ASuperstringExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ASuperstringExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ASuperstringExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___ASuperstringExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ASuperstringExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ASuperstringExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ASuperstringExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ASuperstringExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AParExpr[87] = {
-  {(bigint) 3599 /* 0: Identity */},
-  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
+const classtable_elt_t VFT_parser___parser_nodes___AParExpr[95] = {
+  {(bigint) 3679 /* 0: Identity */},
+  {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AParExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AParExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AParExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AParExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AParExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AParExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3391 /* 8: AParExpr < AProxyExpr: superclass typecheck marker */},
+  {(bigint) 3679 /* 9: AParExpr < AParExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AParExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AParExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3327 /* 8: AParExpr < AProxyExpr: superclass typecheck marker */},
-  {(bigint) 3599 /* 9: AParExpr < AParExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77939,7 +73620,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AParExpr[87] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: AParExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AParExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -77955,6 +73636,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AParExpr[87] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -77981,33 +73664,38 @@ const classtable_elt_t VFT_parser___parser_nodes___AParExpr[87] = {
   {(bigint) parser___parser_prod___AParExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AParExpr___visit_all},
-  {(bigint) 2 /* 60: AParExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AParExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AProxyExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 1 /* 70: AParExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AParExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 4 /* 75: AParExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AParExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AProxyExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
+  {(bigint) syntax___typing___AProxyExpr___is_self},
+  {(bigint) syntax___typing___AProxyExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 0 /* 82: AParExpr < AProxyExpr: superclass init_table position */},
+  {(bigint) syntax___typing___AParExpr___warn_parentheses},
+  {(bigint) 0 /* 88: AParExpr < AProxyExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AProxyExpr___n_expr},
   {(bigint) parser___parser_prod___AParExpr___empty_init},
   {(bigint) parser___parser_prod___AParExpr___init_aparexpr},
-  {(bigint) 5 /* 86: AParExpr < AParExpr: superclass init_table position */},
+  {(bigint) 5 /* 92: AParExpr < AParExpr: superclass init_table position */},
+  {(bigint) parser___parser_nodes___AParExpr___n_opar},
+  {(bigint) parser___parser_nodes___AParExpr___n_cpar},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -78021,6 +73709,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AParExpr[87] = {
 /* 9: Attribute AParExpr::_if_true_flow_ctx */
 /* 10: Attribute AParExpr::_if_false_flow_ctx */
 /* 11: Attribute AParExpr::_n_expr */
+/* 12: Attribute AParExpr::_n_opar */
+/* 13: Attribute AParExpr::_n_cpar */
 void INIT_ATTRIBUTES__parser___parser_nodes___AParExpr(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -78034,7 +73724,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AParExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -78042,7 +73732,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AParExpr(val_t p0){
 val_t NEW_parser___parser_nodes___AParExpr(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 12);
+  obj = alloc(sizeof(val_t) * 14);
   obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AParExpr;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
@@ -78061,11 +73751,21 @@ void CHECKNEW_parser___parser_nodes___AParExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_nitc, 0);
+  }
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_nitc, 0);
   }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_nitc, 0);
+  }
   REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -78079,13 +73779,13 @@ val_t NEW_AParExpr_parser___parser_prod___AParExpr___empty_init(void){
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7003;
+  fra.me.line = 7050;
   fra.me.meth = LOCATE_NEW_AParExpr_parser___parser_prod___AParExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7003 */
+  /* parser/parser_prod.nit:7050 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AParExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AParExpr(fra.me.REG[0]);
   parser___parser_prod___AParExpr___empty_init(fra.me.REG[0], init_table);
@@ -78093,230 +73793,63 @@ val_t NEW_AParExpr_parser___parser_prod___AParExpr___empty_init(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_AParExpr_parser___parser_prod___AParExpr___init_aparexpr(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AParExpr_parser___parser_prod___AParExpr___init_aparexpr(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7005;
+  fra.me.line = 7052;
   fra.me.meth = LOCATE_NEW_AParExpr_parser___parser_prod___AParExpr___init_aparexpr;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:7005 */
-  fra.me.REG[1] = NEW_parser___parser_nodes___AParExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AParExpr(fra.me.REG[1]);
-  parser___parser_prod___AParExpr___init_aparexpr(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AParExpr(fra.me.REG[1]);
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  /* parser/parser_prod.nit:7052 */
+  fra.me.REG[3] = NEW_parser___parser_nodes___AParExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AParExpr(fra.me.REG[3]);
+  parser___parser_prod___AParExpr___init_aparexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_parser___parser_nodes___AParExpr(fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[3];
 }
-val_t NEW_AParExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AParExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AParExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AParExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AParExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AParExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AProxyExpr[84] = {
-  {(bigint) 3327 /* 0: Identity */},
-  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AProxyExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AProxyExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AProxyExpr < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AProxyExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AProxyExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3327 /* 8: AProxyExpr < AProxyExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AProxyExpr < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: AProxyExpr < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___AProxyExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AProxyExpr < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExpr___is_typed},
-  {(bigint) syntax___typing___AExpr___is_statement},
-  {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AProxyExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___AProxyExpr___generate_icode},
-  {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
-  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
-  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 4 /* 82: AProxyExpr < AProxyExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AProxyExpr___n_expr},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AProxyExpr::_parent */
-/* 3: Attribute AProxyExpr::_location */
-/* 4: Attribute AProxyExpr::_first_location */
-/* 5: Attribute AProxyExpr::_last_location */
-/* Instance Hole :( */
-/* 7: Attribute AProxyExpr::_is_typed */
-/* 8: Attribute AProxyExpr::_stype */
-/* 9: Attribute AProxyExpr::_if_true_flow_ctx */
-/* 10: Attribute AProxyExpr::_if_false_flow_ctx */
-/* 11: Attribute AProxyExpr::_n_expr */
-void INIT_ATTRIBUTES__parser___parser_nodes___AProxyExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AProxyExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AProxyExpr(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 12);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AProxyExpr;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AProxyExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AProxyExpr;
-  fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AProxyExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AProxyExpr_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AProxyExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AProxyExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AProxyExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AParExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AParExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AParExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AAsCastExpr[88] = {
-  {(bigint) 3731 /* 0: Identity */},
-  {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
+const classtable_elt_t VFT_parser___parser_nodes___AAsCastExpr[96] = {
+  {(bigint) 3815 /* 0: Identity */},
+  {(bigint) 16 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AAsCastExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AAsCastExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AAsCastExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3259 /* 5: AAsCastExpr < ATypeCheckExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AAsCastExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AAsCastExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3731 /* 8: AAsCastExpr < AAsCastExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AAsCastExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AAsCastExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3323 /* 6: AAsCastExpr < ATypeCheckExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AAsCastExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3815 /* 8: AAsCastExpr < AAsCastExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78326,7 +73859,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AAsCastExpr[88] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: AAsCastExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AAsCastExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -78342,6 +73875,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AAsCastExpr[88] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -78368,34 +73903,39 @@ const classtable_elt_t VFT_parser___parser_nodes___AAsCastExpr[88] = {
   {(bigint) parser___parser_prod___AAsCastExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AAsCastExpr___visit_all},
-  {(bigint) 2 /* 60: AAsCastExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AAsCastExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AAsCastExpr___after_typing},
-  {(bigint) 0 /* 67: AAsCastExpr < ATypeCheckExpr: superclass init_table position */},
-  {(bigint) syntax___typing___ATypeCheckExpr___check_expr_cast},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 1 /* 70: AAsCastExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AAsCastExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) 0 /* 74: AAsCastExpr < ATypeCheckExpr: superclass init_table position */},
+  {(bigint) syntax___typing___ATypeCheckExpr___check_expr_cast},
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 4 /* 75: AAsCastExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AAsCastExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AAsCastExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) parser___parser_prod___AAsCastExpr___empty_init},
   {(bigint) parser___parser_prod___AAsCastExpr___init_aascastexpr},
-  {(bigint) 5 /* 84: AAsCastExpr < AAsCastExpr: superclass init_table position */},
+  {(bigint) 5 /* 90: AAsCastExpr < AAsCastExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AAsCastExpr___n_expr},
   {(bigint) parser___parser_nodes___AAsCastExpr___n_kwas},
+  {(bigint) parser___parser_nodes___AAsCastExpr___n_opar},
   {(bigint) parser___parser_nodes___AAsCastExpr___n_type},
+  {(bigint) parser___parser_nodes___AAsCastExpr___n_cpar},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -78410,7 +73950,9 @@ const classtable_elt_t VFT_parser___parser_nodes___AAsCastExpr[88] = {
 /* 10: Attribute AAsCastExpr::_if_false_flow_ctx */
 /* 11: Attribute AAsCastExpr::_n_expr */
 /* 12: Attribute AAsCastExpr::_n_kwas */
-/* 13: Attribute AAsCastExpr::_n_type */
+/* 13: Attribute AAsCastExpr::_n_opar */
+/* 14: Attribute AAsCastExpr::_n_type */
+/* 15: Attribute AAsCastExpr::_n_cpar */
 void INIT_ATTRIBUTES__parser___parser_nodes___AAsCastExpr(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -78424,7 +73966,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AAsCastExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -78432,7 +73974,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AAsCastExpr(val_t p0){
 val_t NEW_parser___parser_nodes___AAsCastExpr(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 14);
+  obj = alloc(sizeof(val_t) * 16);
   obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AAsCastExpr;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
@@ -78466,11 +74008,21 @@ void CHECKNEW_parser___parser_nodes___AAsCastExpr(val_t p0){
   } else {
     nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_nitc, 0);
   }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_nitc, 0);
+  }
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_nitc, 0);
   }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_nitc, 0);
+  }
   stack_frame_head = fra.me.prev;
 }
 val_t NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___empty_init(void){
@@ -78479,13 +74031,13 @@ val_t NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___empty_init(void){
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7034;
+  fra.me.line = 7109;
   fra.me.meth = LOCATE_NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7034 */
+  /* parser/parser_prod.nit:7109 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AAsCastExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AAsCastExpr(fra.me.REG[0]);
   parser___parser_prod___AAsCastExpr___empty_init(fra.me.REG[0], init_table);
@@ -78493,63 +74045,67 @@ val_t NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___empty_init(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+val_t NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7036;
+  fra.me.line = 7111;
   fra.me.meth = LOCATE_NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___init_aascastexpr;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
+  fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7036 */
-  fra.me.REG[3] = NEW_parser___parser_nodes___AAsCastExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAsCastExpr(fra.me.REG[3]);
-  parser___parser_prod___AAsCastExpr___init_aascastexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  CHECKNEW_parser___parser_nodes___AAsCastExpr(fra.me.REG[3]);
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  /* parser/parser_prod.nit:7111 */
+  fra.me.REG[5] = NEW_parser___parser_nodes___AAsCastExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AAsCastExpr(fra.me.REG[5]);
+  parser___parser_prod___AAsCastExpr___init_aascastexpr(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
+  CHECKNEW_parser___parser_nodes___AAsCastExpr(fra.me.REG[5]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[3];
+  return fra.me.REG[5];
 }
-val_t NEW_AAsCastExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AAsCastExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AAsCastExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AAsCastExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAsCastExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AAsCastExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AAsCastExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AAsCastExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AAsCastExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AAsNotnullExpr[89] = {
-  {(bigint) 3511 /* 0: Identity */},
-  {(bigint) 15 /* 1: Object size (-1 if a NativeArray)*/},
+const classtable_elt_t VFT_parser___parser_nodes___AAsNotnullExpr[97] = {
+  {(bigint) 3591 /* 0: Identity */},
+  {(bigint) 17 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AAsNotnullExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AAsNotnullExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AAsNotnullExpr < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AAsNotnullExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AAsNotnullExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: AAsNotnullExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3591 /* 8: AAsNotnullExpr < AAsNotnullExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AAsNotnullExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AAsNotnullExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3511 /* 8: AAsNotnullExpr < AAsNotnullExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78559,7 +74115,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AAsNotnullExpr[89] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AAsNotnullExpr < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AAsNotnullExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -78575,6 +74131,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AAsNotnullExpr[89] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -78601,35 +74159,40 @@ const classtable_elt_t VFT_parser___parser_nodes___AAsNotnullExpr[89] = {
   {(bigint) parser___parser_prod___AAsNotnullExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AAsNotnullExpr___visit_all},
-  {(bigint) 1 /* 60: AAsNotnullExpr < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AAsNotnullExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AAsNotnullExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AAsNotnullExpr < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AAsNotnullExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AAsNotnullExpr < AExpr: superclass init_table position */},
+  {(bigint) 0 /* 80: AAsNotnullExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AAsNotnullExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {(bigint) parser___parser_prod___AAsNotnullExpr___empty_init},
   {(bigint) parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr},
-  {(bigint) 4 /* 84: AAsNotnullExpr < AAsNotnullExpr: superclass init_table position */},
+  {(bigint) 4 /* 90: AAsNotnullExpr < AAsNotnullExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AAsNotnullExpr___n_expr},
   {(bigint) parser___parser_nodes___AAsNotnullExpr___n_kwas},
+  {(bigint) parser___parser_nodes___AAsNotnullExpr___n_opar},
   {(bigint) parser___parser_nodes___AAsNotnullExpr___n_kwnot},
   {(bigint) parser___parser_nodes___AAsNotnullExpr___n_kwnull},
+  {(bigint) parser___parser_nodes___AAsNotnullExpr___n_cpar},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -78644,8 +74207,10 @@ const classtable_elt_t VFT_parser___parser_nodes___AAsNotnullExpr[89] = {
 /* 10: Attribute AAsNotnullExpr::_if_false_flow_ctx */
 /* 11: Attribute AAsNotnullExpr::_n_expr */
 /* 12: Attribute AAsNotnullExpr::_n_kwas */
-/* 13: Attribute AAsNotnullExpr::_n_kwnot */
-/* 14: Attribute AAsNotnullExpr::_n_kwnull */
+/* 13: Attribute AAsNotnullExpr::_n_opar */
+/* 14: Attribute AAsNotnullExpr::_n_kwnot */
+/* 15: Attribute AAsNotnullExpr::_n_kwnull */
+/* 16: Attribute AAsNotnullExpr::_n_cpar */
 void INIT_ATTRIBUTES__parser___parser_nodes___AAsNotnullExpr(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -78659,7 +74224,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AAsNotnullExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -78667,7 +74232,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AAsNotnullExpr(val_t p0){
 val_t NEW_parser___parser_nodes___AAsNotnullExpr(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 15);
+  obj = alloc(sizeof(val_t) * 17);
   obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AAsNotnullExpr;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
@@ -78701,6 +74266,11 @@ void CHECKNEW_parser___parser_nodes___AAsNotnullExpr(val_t p0){
   } else {
     nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_nitc, 0);
   }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_nitc, 0);
+  }
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -78711,6 +74281,11 @@ void CHECKNEW_parser___parser_nodes___AAsNotnullExpr(val_t p0){
   } else {
     nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_nitc, 0);
   }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_nitc, 0);
+  }
   stack_frame_head = fra.me.prev;
 }
 val_t NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___empty_init(void){
@@ -78719,13 +74294,13 @@ val_t NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___empty_init(void
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7093;
+  fra.me.line = 7196;
   fra.me.meth = LOCATE_NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7093 */
+  /* parser/parser_prod.nit:7196 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AAsNotnullExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AAsNotnullExpr(fra.me.REG[0]);
   parser___parser_prod___AAsNotnullExpr___empty_init(fra.me.REG[0], init_table);
@@ -78733,65 +74308,69 @@ val_t NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___empty_init(void
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+val_t NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7095;
+  fra.me.line = 7198;
   fra.me.meth = LOCATE_NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
+  fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:7095 */
-  fra.me.REG[4] = NEW_parser___parser_nodes___AAsNotnullExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAsNotnullExpr(fra.me.REG[4]);
-  parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
-  CHECKNEW_parser___parser_nodes___AAsNotnullExpr(fra.me.REG[4]);
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = p5;
+  /* parser/parser_prod.nit:7198 */
+  fra.me.REG[6] = NEW_parser___parser_nodes___AAsNotnullExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AAsNotnullExpr(fra.me.REG[6]);
+  parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(fra.me.REG[6], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], init_table);
+  CHECKNEW_parser___parser_nodes___AAsNotnullExpr(fra.me.REG[6]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[4];
+  return fra.me.REG[6];
 }
-val_t NEW_AAsNotnullExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AAsNotnullExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AAsNotnullExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AAsNotnullExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAsNotnullExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AAsNotnullExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AAsNotnullExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AAsNotnullExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AAsNotnullExpr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AIssetAttrExpr[100] = {
-  {(bigint) 3635 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AIssetAttrExpr[106] = {
+  {(bigint) 3715 /* 0: Identity */},
   {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AIssetAttrExpr" /* 2: Class Name */},
   {(bigint) 3 /* 3: AIssetAttrExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AIssetAttrExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3495 /* 5: AIssetAttrExpr < AAttrFormExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AIssetAttrExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AIssetAttrExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3635 /* 8: AIssetAttrExpr < AIssetAttrExpr: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AIssetAttrExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AIssetAttrExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3575 /* 6: AIssetAttrExpr < AAttrFormExpr: superclass typecheck marker */},
+  {(bigint) 2875 /* 7: AIssetAttrExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3715 /* 8: AIssetAttrExpr < AIssetAttrExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78801,7 +74380,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AIssetAttrExpr[100] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AIssetAttrExpr < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: AIssetAttrExpr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -78817,6 +74396,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AIssetAttrExpr[100] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -78843,28 +74424,31 @@ const classtable_elt_t VFT_parser___parser_nodes___AIssetAttrExpr[100] = {
   {(bigint) parser___parser_prod___AIssetAttrExpr___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AIssetAttrExpr___visit_all},
-  {(bigint) 1 /* 60: AIssetAttrExpr < ANode: superclass init_table position */},
+  {(bigint) 3 /* 63: AIssetAttrExpr < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___AIssetAttrExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AIssetAttrExpr < Prod: superclass init_table position */},
+  {(bigint) 2 /* 72: AIssetAttrExpr < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
   {(bigint) syntax___typing___AExpr___is_typed},
   {(bigint) syntax___typing___AExpr___is_statement},
   {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AIssetAttrExpr < AExpr: superclass init_table position */},
+  {(bigint) 1 /* 80: AIssetAttrExpr < AExpr: superclass init_table position */},
   {(bigint) syntax___icode_generation___AIssetAttrExpr___generate_icode},
   {(bigint) syntax___typing___AExpr___is_implicit_self},
   {(bigint) syntax___typing___AExpr___is_self},
   {(bigint) syntax___typing___AExpr___its_variable},
   {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
   {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78876,12 +74460,12 @@ const classtable_elt_t VFT_parser___parser_nodes___AIssetAttrExpr[100] = {
   {(bigint) syntax___typing___AAttrFormExpr___do_typing},
   {(bigint) syntax___typing___AAttrFormExpr___prop},
   {(bigint) syntax___typing___AAttrFormExpr___attr_type},
-  {(bigint) 4 /* 93: AIssetAttrExpr < AAttrFormExpr: superclass init_table position */},
+  {(bigint) 0 /* 99: AIssetAttrExpr < AAttrFormExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AAttrFormExpr___n_expr},
   {(bigint) parser___parser_nodes___AAttrFormExpr___n_id},
   {(bigint) parser___parser_prod___AIssetAttrExpr___empty_init},
   {(bigint) parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr},
-  {(bigint) 5 /* 98: AIssetAttrExpr < AIssetAttrExpr: superclass init_table position */},
+  {(bigint) 5 /* 104: AIssetAttrExpr < AIssetAttrExpr: superclass init_table position */},
   {(bigint) parser___parser_nodes___AIssetAttrExpr___n_kwisset},
 };
 /* 0: Pointer to the classtable */
@@ -78918,7 +74502,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AIssetAttrExpr(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -78973,13 +74557,13 @@ val_t NEW_AIssetAttrExpr_parser___parser_prod___AIssetAttrExpr___empty_init(void
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7166;
+  fra.me.line = 7297;
   fra.me.meth = LOCATE_NEW_AIssetAttrExpr_parser___parser_prod___AIssetAttrExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7166 */
+  /* parser/parser_prod.nit:7297 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AIssetAttrExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AIssetAttrExpr(fra.me.REG[0]);
   parser___parser_prod___AIssetAttrExpr___empty_init(fra.me.REG[0], init_table);
@@ -78993,7 +74577,7 @@ val_t NEW_AIssetAttrExpr_parser___parser_prod___AIssetAttrExpr___init_aissetattr
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7168;
+  fra.me.line = 7299;
   fra.me.meth = LOCATE_NEW_AIssetAttrExpr_parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -79005,7 +74589,7 @@ val_t NEW_AIssetAttrExpr_parser___parser_prod___AIssetAttrExpr___init_aissetattr
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7168 */
+  /* parser/parser_prod.nit:7299 */
   fra.me.REG[3] = NEW_parser___parser_nodes___AIssetAttrExpr();
   INIT_ATTRIBUTES__parser___parser_nodes___AIssetAttrExpr(fra.me.REG[3]);
   parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -79013,36 +74597,697 @@ val_t NEW_AIssetAttrExpr_parser___parser_prod___AIssetAttrExpr___init_aissetattr
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-val_t NEW_AIssetAttrExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AIssetAttrExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[6] = {0, 0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AIssetAttrExpr_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AIssetAttrExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___AIssetAttrExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AIssetAttrExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___parser_nodes___ADebugTypeExpr[95] = {
+  {(bigint) 3527 /* 0: Identity */},
+  {(bigint) 15 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ADebugTypeExpr" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ADebugTypeExpr < Object: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ADebugTypeExpr < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ADebugTypeExpr < Prod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2875 /* 7: ADebugTypeExpr < AExpr: superclass typecheck marker */},
+  {(bigint) 3527 /* 8: ADebugTypeExpr < ADebugTypeExpr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) standard___time___Object___get_time},
+  {(bigint) 3 /* 19: ADebugTypeExpr < Object: superclass init_table position */},
+  {(bigint) standard___kernel___Object___object_id},
+  {(bigint) standard___kernel___Object___is_same_type},
+  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) standard___kernel___Object_____neq},
+  {(bigint) standard___kernel___Object___output},
+  {(bigint) standard___kernel___Object___output_class_name},
+  {(bigint) standard___kernel___Object___exit},
+  {(bigint) standard___kernel___Object___sys},
+  {(bigint) standard___file___Object___printn},
+  {(bigint) standard___file___Object___print},
+  {(bigint) standard___file___Object___getc},
+  {(bigint) standard___file___Object___gets},
+  {(bigint) standard___file___Object___stdin},
+  {(bigint) standard___file___Object___stdout},
+  {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
+  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
+  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
+  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser___parser_prod___ANode___parent},
+  {(bigint) parser___parser_prod___ANode___parent__eq},
+  {(bigint) parser___parser_prod___ANode___remove_child},
+  {(bigint) parser___parser_prod___ADebugTypeExpr___replace_child},
+  {(bigint) parser___parser_prod___Prod___replace_with},
+  {(bigint) parser___parser_prod___ADebugTypeExpr___visit_all},
+  {(bigint) 2 /* 63: ADebugTypeExpr < ANode: superclass init_table position */},
+  {(bigint) parser___parser_nodes___ANode___location},
+  {(bigint) parser___parser_nodes___ANode___hot_location},
+  {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
+  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
+  {(bigint) syntax___typing___ANode___accept_typing},
+  {(bigint) syntax___typing___ADebugTypeExpr___after_typing},
+  {(bigint) parser___parser_prod___ANode___replace_with},
+  {(bigint) 1 /* 72: ADebugTypeExpr < Prod: superclass init_table position */},
+  {(bigint) parser___parser_nodes___Prod___location__eq},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) syntax___mmbuilder___AExpr___get_easy_stype},
+  {(bigint) syntax___typing___AExpr___is_typed},
+  {(bigint) syntax___typing___AExpr___is_statement},
+  {(bigint) syntax___typing___AExpr___stype},
+  {(bigint) 0 /* 80: ADebugTypeExpr < AExpr: superclass init_table position */},
+  {(bigint) syntax___icode_generation___ADebugTypeExpr___generate_icode},
+  {(bigint) syntax___typing___AExpr___is_implicit_self},
+  {(bigint) syntax___typing___AExpr___is_self},
+  {(bigint) syntax___typing___AExpr___its_variable},
+  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
+  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
+  {(bigint) syntax___typing___AExpr___warn_parentheses},
+  {(bigint) parser___parser_prod___ADebugTypeExpr___empty_init},
+  {(bigint) parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr},
+  {(bigint) 4 /* 90: ADebugTypeExpr < ADebugTypeExpr: superclass init_table position */},
+  {(bigint) parser___parser_nodes___ADebugTypeExpr___n_kwdebug},
+  {(bigint) parser___parser_nodes___ADebugTypeExpr___n_kwtype},
+  {(bigint) parser___parser_nodes___ADebugTypeExpr___n_expr},
+  {(bigint) parser___parser_nodes___ADebugTypeExpr___n_type},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ADebugTypeExpr::_parent */
+/* 3: Attribute ADebugTypeExpr::_location */
+/* 4: Attribute ADebugTypeExpr::_first_location */
+/* 5: Attribute ADebugTypeExpr::_last_location */
+/* Instance Hole :( */
+/* 7: Attribute ADebugTypeExpr::_is_typed */
+/* 8: Attribute ADebugTypeExpr::_stype */
+/* 9: Attribute ADebugTypeExpr::_if_true_flow_ctx */
+/* 10: Attribute ADebugTypeExpr::_if_false_flow_ctx */
+/* 11: Attribute ADebugTypeExpr::_n_kwdebug */
+/* 12: Attribute ADebugTypeExpr::_n_kwtype */
+/* 13: Attribute ADebugTypeExpr::_n_expr */
+/* 14: Attribute ADebugTypeExpr::_n_type */
+void INIT_ATTRIBUTES__parser___parser_nodes___ADebugTypeExpr(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ADebugTypeExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* syntax/typing.nit:365 */
+  REGB0 = TAG_Bool(false);
+  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_parser___parser_nodes___ADebugTypeExpr(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 15);
+  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___ADebugTypeExpr;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_parser___parser_nodes___ADebugTypeExpr(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___ADebugTypeExpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_kwdebug", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ADebugTypeExpr_parser___parser_prod___ADebugTypeExpr___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7356;
+  fra.me.meth = LOCATE_NEW_ADebugTypeExpr_parser___parser_prod___ADebugTypeExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_prod.nit:7356 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ADebugTypeExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ADebugTypeExpr(fra.me.REG[0]);
+  parser___parser_prod___ADebugTypeExpr___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ADebugTypeExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ADebugTypeExpr_parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr(val_t p0, val_t p1, val_t p2, val_t p3){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7358;
+  fra.me.meth = LOCATE_NEW_ADebugTypeExpr_parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 5;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  /* parser/parser_prod.nit:7358 */
+  fra.me.REG[4] = NEW_parser___parser_nodes___ADebugTypeExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ADebugTypeExpr(fra.me.REG[4]);
+  parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
+  CHECKNEW_parser___parser_nodes___ADebugTypeExpr(fra.me.REG[4]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[4];
+}
+val_t NEW_ADebugTypeExpr_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_ADebugTypeExpr_parser___parser_nodes___ANode___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ADebugTypeExpr();
+  INIT_ATTRIBUTES__parser___parser_nodes___ADebugTypeExpr(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ADebugTypeExpr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___parser_nodes___AListExprs[80] = {
+  {(bigint) 3459 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "AListExprs" /* 2: Class Name */},
+  {(bigint) 3 /* 3: AListExprs < Object: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AListExprs < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AListExprs < Prod: superclass typecheck marker */},
+  {(bigint) 2871 /* 6: AListExprs < AExprs: superclass typecheck marker */},
+  {(bigint) 3459 /* 7: AListExprs < AListExprs: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) standard___time___Object___get_time},
+  {(bigint) 3 /* 19: AListExprs < Object: superclass init_table position */},
+  {(bigint) standard___kernel___Object___object_id},
+  {(bigint) standard___kernel___Object___is_same_type},
+  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) standard___kernel___Object_____neq},
+  {(bigint) standard___kernel___Object___output},
+  {(bigint) standard___kernel___Object___output_class_name},
+  {(bigint) standard___kernel___Object___exit},
+  {(bigint) standard___kernel___Object___sys},
+  {(bigint) standard___file___Object___printn},
+  {(bigint) standard___file___Object___print},
+  {(bigint) standard___file___Object___getc},
+  {(bigint) standard___file___Object___gets},
+  {(bigint) standard___file___Object___stdin},
+  {(bigint) standard___file___Object___stdout},
+  {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
+  {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser___parser_prod___ANode___parent},
+  {(bigint) parser___parser_prod___ANode___parent__eq},
+  {(bigint) parser___parser_prod___ANode___remove_child},
+  {(bigint) parser___parser_prod___AListExprs___replace_child},
+  {(bigint) parser___parser_prod___Prod___replace_with},
+  {(bigint) parser___parser_prod___AListExprs___visit_all},
+  {(bigint) 2 /* 63: AListExprs < ANode: superclass init_table position */},
+  {(bigint) parser___parser_nodes___ANode___location},
+  {(bigint) parser___parser_nodes___ANode___hot_location},
+  {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
+  {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
+  {(bigint) syntax___typing___ANode___accept_typing},
+  {(bigint) syntax___typing___ANode___after_typing},
+  {(bigint) parser___parser_prod___ANode___replace_with},
+  {(bigint) 1 /* 72: AListExprs < Prod: superclass init_table position */},
+  {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___syntax_base___AExprs___to_a},
+  {(bigint) 0 /* 75: AListExprs < AExprs: superclass init_table position */},
+  {(bigint) parser___parser_nodes___AExprs___n_exprs},
+  {(bigint) parser___parser_prod___AListExprs___empty_init},
+  {(bigint) parser___parser_prod___AListExprs___init_alistexprs},
+  {(bigint) 4 /* 79: AListExprs < AListExprs: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AListExprs::_parent */
+/* 3: Attribute AListExprs::_location */
+/* 4: Attribute AListExprs::_first_location */
+/* 5: Attribute AListExprs::_last_location */
+/* 6: Attribute AListExprs::_n_exprs */
+void INIT_ATTRIBUTES__parser___parser_nodes___AListExprs(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AListExprs;
+  fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AIssetAttrExpr();
-  INIT_ATTRIBUTES__parser___parser_nodes___AIssetAttrExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AIssetAttrExpr(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:1130 */
+  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
+  ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_parser___parser_nodes___AListExprs(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AListExprs;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_parser___parser_nodes___AListExprs(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AListExprs;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AListExprs_parser___parser_prod___AListExprs___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7429;
+  fra.me.meth = LOCATE_NEW_AListExprs_parser___parser_prod___AListExprs___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_prod.nit:7429 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AListExprs();
+  INIT_ATTRIBUTES__parser___parser_nodes___AListExprs(fra.me.REG[0]);
+  parser___parser_prod___AListExprs___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AListExprs(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AListExprs_parser___parser_prod___AListExprs___init_alistexprs(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7431;
+  fra.me.meth = LOCATE_NEW_AListExprs_parser___parser_prod___AListExprs___init_alistexprs;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_prod.nit:7431 */
+  fra.me.REG[1] = NEW_parser___parser_nodes___AListExprs();
+  INIT_ATTRIBUTES__parser___parser_nodes___AListExprs(fra.me.REG[1]);
+  parser___parser_prod___AListExprs___init_alistexprs(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AListExprs(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AAssignOp[74] = {
-  {(bigint) 3135 /* 0: Identity */},
-  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AAssignOp" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AAssignOp < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AAssignOp < ANode: superclass typecheck marker */},
+val_t NEW_AListExprs_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_AListExprs_parser___parser_nodes___ANode___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AListExprs();
+  INIT_ATTRIBUTES__parser___parser_nodes___AListExprs(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AListExprs(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___parser_nodes___AParExprs[82] = {
+  {(bigint) 3419 /* 0: Identity */},
+  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "AParExprs" /* 2: Class Name */},
+  {(bigint) 3 /* 3: AParExprs < Object: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AParExprs < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AParExprs < Prod: superclass typecheck marker */},
+  {(bigint) 2871 /* 6: AParExprs < AExprs: superclass typecheck marker */},
+  {(bigint) 3419 /* 7: AParExprs < AParExprs: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) standard___time___Object___get_time},
+  {(bigint) 3 /* 19: AParExprs < Object: superclass init_table position */},
+  {(bigint) standard___kernel___Object___object_id},
+  {(bigint) standard___kernel___Object___is_same_type},
+  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) standard___kernel___Object_____neq},
+  {(bigint) standard___kernel___Object___output},
+  {(bigint) standard___kernel___Object___output_class_name},
+  {(bigint) standard___kernel___Object___exit},
+  {(bigint) standard___kernel___Object___sys},
+  {(bigint) standard___file___Object___printn},
+  {(bigint) standard___file___Object___print},
+  {(bigint) standard___file___Object___getc},
+  {(bigint) standard___file___Object___gets},
+  {(bigint) standard___file___Object___stdin},
+  {(bigint) standard___file___Object___stdout},
+  {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
+  {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
+  {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
+  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
+  {(bigint) parser___parser_prod___ANode___parent},
+  {(bigint) parser___parser_prod___ANode___parent__eq},
+  {(bigint) parser___parser_prod___ANode___remove_child},
+  {(bigint) parser___parser_prod___AParExprs___replace_child},
+  {(bigint) parser___parser_prod___Prod___replace_with},
+  {(bigint) parser___parser_prod___AParExprs___visit_all},
+  {(bigint) 2 /* 63: AParExprs < ANode: superclass init_table position */},
+  {(bigint) parser___parser_nodes___ANode___location},
+  {(bigint) parser___parser_nodes___ANode___hot_location},
+  {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
+  {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
+  {(bigint) syntax___typing___ANode___accept_typing},
+  {(bigint) syntax___typing___AParExprs___after_typing},
+  {(bigint) parser___parser_prod___ANode___replace_with},
+  {(bigint) 1 /* 72: AParExprs < Prod: superclass init_table position */},
+  {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) syntax___syntax_base___AExprs___to_a},
+  {(bigint) 0 /* 75: AParExprs < AExprs: superclass init_table position */},
+  {(bigint) parser___parser_nodes___AExprs___n_exprs},
+  {(bigint) parser___parser_prod___AParExprs___empty_init},
+  {(bigint) parser___parser_prod___AParExprs___init_aparexprs},
+  {(bigint) 4 /* 79: AParExprs < AParExprs: superclass init_table position */},
+  {(bigint) parser___parser_nodes___AParExprs___n_opar},
+  {(bigint) parser___parser_nodes___AParExprs___n_cpar},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute AParExprs::_parent */
+/* 3: Attribute AParExprs::_location */
+/* 4: Attribute AParExprs::_first_location */
+/* 5: Attribute AParExprs::_last_location */
+/* 6: Attribute AParExprs::_n_exprs */
+/* 7: Attribute AParExprs::_n_opar */
+/* 8: Attribute AParExprs::_n_cpar */
+void INIT_ATTRIBUTES__parser___parser_nodes___AParExprs(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AParExprs;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1130 */
+  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
+  ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_parser___parser_nodes___AParExprs(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AParExprs;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_parser___parser_nodes___AParExprs(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AParExprs;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_AParExprs_parser___parser_prod___AParExprs___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7467;
+  fra.me.meth = LOCATE_NEW_AParExprs_parser___parser_prod___AParExprs___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_prod.nit:7467 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AParExprs();
+  INIT_ATTRIBUTES__parser___parser_nodes___AParExprs(fra.me.REG[0]);
+  parser___parser_prod___AParExprs___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AParExprs(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_AParExprs_parser___parser_prod___AParExprs___init_aparexprs(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7469;
+  fra.me.meth = LOCATE_NEW_AParExprs_parser___parser_prod___AParExprs___init_aparexprs;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  /* parser/parser_prod.nit:7469 */
+  fra.me.REG[3] = NEW_parser___parser_nodes___AParExprs();
+  INIT_ATTRIBUTES__parser___parser_nodes___AParExprs(fra.me.REG[3]);
+  parser___parser_prod___AParExprs___init_aparexprs(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_parser___parser_nodes___AParExprs(fra.me.REG[3]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[3];
+}
+val_t NEW_AParExprs_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_AParExprs_parser___parser_nodes___ANode___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AParExprs();
+  INIT_ATTRIBUTES__parser___parser_nodes___AParExprs(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AParExprs(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___parser_nodes___ABraExprs[82] = {
+  {(bigint) 3559 /* 0: Identity */},
+  {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ABraExprs" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ABraExprs < Object: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ABraExprs < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ABraExprs < Prod: superclass typecheck marker */},
+  {(bigint) 2871 /* 6: ABraExprs < AExprs: superclass typecheck marker */},
+  {(bigint) 3559 /* 7: ABraExprs < ABraExprs: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AAssignOp < Prod: superclass typecheck marker */},
-  {(bigint) 3135 /* 7: AAssignOp < AAssignOp: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79053,7 +75298,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AAssignOp[74] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AAssignOp < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ABraExprs < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -79069,6 +75314,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AAssignOp[74] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -79092,94 +75339,172 @@ const classtable_elt_t VFT_parser___parser_nodes___AAssignOp[74] = {
   {(bigint) parser___parser_prod___ANode___parent},
   {(bigint) parser___parser_prod___ANode___parent__eq},
   {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
+  {(bigint) parser___parser_prod___ABraExprs___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: AAssignOp < ANode: superclass init_table position */},
+  {(bigint) parser___parser_prod___ABraExprs___visit_all},
+  {(bigint) 2 /* 63: ABraExprs < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AAssignOp < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: ABraExprs < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AAssignOp___method_name},
-  {(bigint) 3 /* 73: AAssignOp < AAssignOp: superclass init_table position */},
+  {(bigint) syntax___syntax_base___AExprs___to_a},
+  {(bigint) 0 /* 75: ABraExprs < AExprs: superclass init_table position */},
+  {(bigint) parser___parser_nodes___AExprs___n_exprs},
+  {(bigint) parser___parser_prod___ABraExprs___empty_init},
+  {(bigint) parser___parser_prod___ABraExprs___init_abraexprs},
+  {(bigint) 4 /* 79: ABraExprs < ABraExprs: superclass init_table position */},
+  {(bigint) parser___parser_nodes___ABraExprs___n_obra},
+  {(bigint) parser___parser_nodes___ABraExprs___n_cbra},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute AAssignOp::_parent */
-/* 3: Attribute AAssignOp::_location */
-/* 4: Attribute AAssignOp::_first_location */
-/* 5: Attribute AAssignOp::_last_location */
-void INIT_ATTRIBUTES__parser___parser_nodes___AAssignOp(val_t p0){
-  struct {struct stack_frame_t me;} fra;
+/* 2: Attribute ABraExprs::_parent */
+/* 3: Attribute ABraExprs::_location */
+/* 4: Attribute ABraExprs::_first_location */
+/* 5: Attribute ABraExprs::_last_location */
+/* 6: Attribute ABraExprs::_n_exprs */
+/* 7: Attribute ABraExprs::_n_obra */
+/* 8: Attribute ABraExprs::_n_cbra */
+void INIT_ATTRIBUTES__parser___parser_nodes___ABraExprs(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AAssignOp;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___ABraExprs;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
+  fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1130 */
+  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
+  ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___parser_nodes___AAssignOp(void)
+val_t NEW_parser___parser_nodes___ABraExprs(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AAssignOp;
+  obj = alloc(sizeof(val_t) * 9);
+  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___ABraExprs;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___parser_nodes___AAssignOp(val_t p0){
+void CHECKNEW_parser___parser_nodes___ABraExprs(val_t p0){
   struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AAssignOp;
+  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___ABraExprs;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_nitc, 0);
+  }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_AAssignOp_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ABraExprs_parser___parser_prod___ABraExprs___empty_init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AAssignOp_parser___parser_nodes___ANode___init;
+  fra.me.line = 7533;
+  fra.me.meth = LOCATE_NEW_ABraExprs_parser___parser_prod___ABraExprs___empty_init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_prod.nit:7533 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ABraExprs();
+  INIT_ATTRIBUTES__parser___parser_nodes___ABraExprs(fra.me.REG[0]);
+  parser___parser_prod___ABraExprs___empty_init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ABraExprs(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t NEW_ABraExprs_parser___parser_prod___ABraExprs___init_abraexprs(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 7535;
+  fra.me.meth = LOCATE_NEW_ABraExprs_parser___parser_prod___ABraExprs___init_abraexprs;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AAssignOp();
-  INIT_ATTRIBUTES__parser___parser_nodes___AAssignOp(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AAssignOp(fra.me.REG[1]);
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  /* parser/parser_prod.nit:7535 */
+  fra.me.REG[3] = NEW_parser___parser_nodes___ABraExprs();
+  INIT_ATTRIBUTES__parser___parser_nodes___ABraExprs(fra.me.REG[3]);
+  parser___parser_prod___ABraExprs___init_abraexprs(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_parser___parser_nodes___ABraExprs(fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_parser___parser_nodes___APlusAssignOp[78] = {
-  {(bigint) 3347 /* 0: Identity */},
+val_t NEW_ABraExprs_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[5] = {0, 0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_NEW_ABraExprs_parser___parser_nodes___ANode___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ABraExprs();
+  INIT_ATTRIBUTES__parser___parser_nodes___ABraExprs(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ABraExprs(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___parser_nodes___APlusAssignOp[80] = {
+  {(bigint) 3411 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "APlusAssignOp" /* 2: Class Name */},
   {(bigint) 3 /* 3: APlusAssignOp < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: APlusAssignOp < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: APlusAssignOp < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: APlusAssignOp < Prod: superclass typecheck marker */},
+  {(bigint) 2899 /* 6: APlusAssignOp < AAssignOp: superclass typecheck marker */},
+  {(bigint) 3411 /* 7: APlusAssignOp < APlusAssignOp: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: APlusAssignOp < Prod: superclass typecheck marker */},
-  {(bigint) 3135 /* 7: APlusAssignOp < AAssignOp: superclass typecheck marker */},
-  {(bigint) 3347 /* 8: APlusAssignOp < APlusAssignOp: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79189,7 +75514,7 @@ const classtable_elt_t VFT_parser___parser_nodes___APlusAssignOp[78] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: APlusAssignOp < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: APlusAssignOp < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -79205,6 +75530,8 @@ const classtable_elt_t VFT_parser___parser_nodes___APlusAssignOp[78] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -79231,23 +75558,22 @@ const classtable_elt_t VFT_parser___parser_nodes___APlusAssignOp[78] = {
   {(bigint) parser___parser_prod___APlusAssignOp___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___APlusAssignOp___visit_all},
-  {(bigint) 1 /* 60: APlusAssignOp < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: APlusAssignOp < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: APlusAssignOp < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: APlusAssignOp < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___typing___APlusAssignOp___method_name},
-  {(bigint) 3 /* 73: APlusAssignOp < AAssignOp: superclass init_table position */},
+  {(bigint) 0 /* 75: APlusAssignOp < AAssignOp: superclass init_table position */},
   {(bigint) parser___parser_prod___APlusAssignOp___empty_init},
   {(bigint) parser___parser_prod___APlusAssignOp___init_aplusassignop},
-  {(bigint) 4 /* 76: APlusAssignOp < APlusAssignOp: superclass init_table position */},
+  {(bigint) 4 /* 78: APlusAssignOp < APlusAssignOp: superclass init_table position */},
   {(bigint) parser___parser_nodes___APlusAssignOp___n_pluseq},
 };
 /* 0: Pointer to the classtable */
@@ -79304,13 +75630,13 @@ val_t NEW_APlusAssignOp_parser___parser_prod___APlusAssignOp___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7225;
+  fra.me.line = 7599;
   fra.me.meth = LOCATE_NEW_APlusAssignOp_parser___parser_prod___APlusAssignOp___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7225 */
+  /* parser/parser_prod.nit:7599 */
   fra.me.REG[0] = NEW_parser___parser_nodes___APlusAssignOp();
   INIT_ATTRIBUTES__parser___parser_nodes___APlusAssignOp(fra.me.REG[0]);
   parser___parser_prod___APlusAssignOp___empty_init(fra.me.REG[0], init_table);
@@ -79324,7 +75650,7 @@ val_t NEW_APlusAssignOp_parser___parser_prod___APlusAssignOp___init_aplusassigno
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7227;
+  fra.me.line = 7601;
   fra.me.meth = LOCATE_NEW_APlusAssignOp_parser___parser_prod___APlusAssignOp___init_aplusassignop;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -79332,7 +75658,7 @@ val_t NEW_APlusAssignOp_parser___parser_prod___APlusAssignOp___init_aplusassigno
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:7227 */
+  /* parser/parser_prod.nit:7601 */
   fra.me.REG[1] = NEW_parser___parser_nodes___APlusAssignOp();
   INIT_ATTRIBUTES__parser___parser_nodes___APlusAssignOp(fra.me.REG[1]);
   parser___parser_prod___APlusAssignOp___init_aplusassignop(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -79340,37 +75666,37 @@ val_t NEW_APlusAssignOp_parser___parser_prod___APlusAssignOp___init_aplusassigno
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_APlusAssignOp_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_APlusAssignOp_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_APlusAssignOp_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___APlusAssignOp();
-  INIT_ATTRIBUTES__parser___parser_nodes___APlusAssignOp(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___APlusAssignOp(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___APlusAssignOp();
+  INIT_ATTRIBUTES__parser___parser_nodes___APlusAssignOp(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___APlusAssignOp(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AMinusAssignOp[78] = {
-  {(bigint) 3371 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AMinusAssignOp[80] = {
+  {(bigint) 3439 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AMinusAssignOp" /* 2: Class Name */},
   {(bigint) 3 /* 3: AMinusAssignOp < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AMinusAssignOp < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AMinusAssignOp < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AMinusAssignOp < Prod: superclass typecheck marker */},
+  {(bigint) 2899 /* 6: AMinusAssignOp < AAssignOp: superclass typecheck marker */},
+  {(bigint) 3439 /* 7: AMinusAssignOp < AMinusAssignOp: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AMinusAssignOp < Prod: superclass typecheck marker */},
-  {(bigint) 3135 /* 7: AMinusAssignOp < AAssignOp: superclass typecheck marker */},
-  {(bigint) 3371 /* 8: AMinusAssignOp < AMinusAssignOp: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79380,7 +75706,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AMinusAssignOp[78] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AMinusAssignOp < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AMinusAssignOp < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -79396,6 +75722,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AMinusAssignOp[78] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -79422,23 +75750,22 @@ const classtable_elt_t VFT_parser___parser_nodes___AMinusAssignOp[78] = {
   {(bigint) parser___parser_prod___AMinusAssignOp___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AMinusAssignOp___visit_all},
-  {(bigint) 1 /* 60: AMinusAssignOp < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AMinusAssignOp < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AMinusAssignOp < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AMinusAssignOp < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___typing___AMinusAssignOp___method_name},
-  {(bigint) 3 /* 73: AMinusAssignOp < AAssignOp: superclass init_table position */},
+  {(bigint) 0 /* 75: AMinusAssignOp < AAssignOp: superclass init_table position */},
   {(bigint) parser___parser_prod___AMinusAssignOp___empty_init},
   {(bigint) parser___parser_prod___AMinusAssignOp___init_aminusassignop},
-  {(bigint) 4 /* 76: AMinusAssignOp < AMinusAssignOp: superclass init_table position */},
+  {(bigint) 4 /* 78: AMinusAssignOp < AMinusAssignOp: superclass init_table position */},
   {(bigint) parser___parser_nodes___AMinusAssignOp___n_minuseq},
 };
 /* 0: Pointer to the classtable */
@@ -79495,13 +75822,13 @@ val_t NEW_AMinusAssignOp_parser___parser_prod___AMinusAssignOp___empty_init(void
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7256;
+  fra.me.line = 7630;
   fra.me.meth = LOCATE_NEW_AMinusAssignOp_parser___parser_prod___AMinusAssignOp___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7256 */
+  /* parser/parser_prod.nit:7630 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AMinusAssignOp();
   INIT_ATTRIBUTES__parser___parser_nodes___AMinusAssignOp(fra.me.REG[0]);
   parser___parser_prod___AMinusAssignOp___empty_init(fra.me.REG[0], init_table);
@@ -79515,7 +75842,7 @@ val_t NEW_AMinusAssignOp_parser___parser_prod___AMinusAssignOp___init_aminusassi
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7258;
+  fra.me.line = 7632;
   fra.me.meth = LOCATE_NEW_AMinusAssignOp_parser___parser_prod___AMinusAssignOp___init_aminusassignop;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -79523,7 +75850,7 @@ val_t NEW_AMinusAssignOp_parser___parser_prod___AMinusAssignOp___init_aminusassi
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:7258 */
+  /* parser/parser_prod.nit:7632 */
   fra.me.REG[1] = NEW_parser___parser_nodes___AMinusAssignOp();
   INIT_ATTRIBUTES__parser___parser_nodes___AMinusAssignOp(fra.me.REG[1]);
   parser___parser_prod___AMinusAssignOp___init_aminusassignop(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -79531,36 +75858,36 @@ val_t NEW_AMinusAssignOp_parser___parser_prod___AMinusAssignOp___init_aminusassi
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_AMinusAssignOp_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AMinusAssignOp_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AMinusAssignOp_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AMinusAssignOp();
-  INIT_ATTRIBUTES__parser___parser_nodes___AMinusAssignOp(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AMinusAssignOp(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AMinusAssignOp();
+  INIT_ATTRIBUTES__parser___parser_nodes___AMinusAssignOp(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AMinusAssignOp(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AClosureDef[87] = {
-  {(bigint) 3459 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AClosureDef[91] = {
+  {(bigint) 3535 /* 0: Identity */},
   {(bigint) 17 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AClosureDef" /* 2: Class Name */},
   {(bigint) 3 /* 3: AClosureDef < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AClosureDef < ANode: superclass typecheck marker */},
-  {(bigint) 3087 /* 5: AClosureDef < ALabelable: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AClosureDef < Prod: superclass typecheck marker */},
-  {(bigint) 3459 /* 7: AClosureDef < AClosureDef: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AClosureDef < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AClosureDef < Prod: superclass typecheck marker */},
+  {(bigint) 2847 /* 6: AClosureDef < ALabelable: superclass typecheck marker */},
+  {(bigint) 3535 /* 7: AClosureDef < AClosureDef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79571,7 +75898,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AClosureDef[87] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AClosureDef < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: AClosureDef < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -79587,6 +75914,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AClosureDef[87] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -79613,18 +75942,19 @@ const classtable_elt_t VFT_parser___parser_nodes___AClosureDef[87] = {
   {(bigint) parser___parser_prod___AClosureDef___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AClosureDef___visit_all},
-  {(bigint) 1 /* 60: AClosureDef < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: AClosureDef < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
+  {(bigint) parser___parser_nodes___AClosureDef___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___AClosureDef___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {(bigint) 3 /* 67: AClosureDef < ALabelable: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ALabelable___n_label},
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AClosureDef < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: AClosureDef < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
+  {(bigint) 0 /* 74: AClosureDef < ALabelable: superclass init_table position */},
+  {(bigint) parser___parser_nodes___ALabelable___n_label},
   {(bigint) syntax___icode_generation___AClosureDef___generate_iclosuredef},
   {(bigint) syntax___typing___AClosureDef___escapable},
   {(bigint) syntax___typing___ANode___accept_typing},
@@ -79634,7 +75964,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AClosureDef[87] = {
   {(bigint) syntax___syntax_base___AClosureDef___variables__eq},
   {(bigint) parser___parser_prod___AClosureDef___empty_init},
   {(bigint) parser___parser_prod___AClosureDef___init_aclosuredef},
-  {(bigint) 4 /* 81: AClosureDef < AClosureDef: superclass init_table position */},
+  {(bigint) 4 /* 85: AClosureDef < AClosureDef: superclass init_table position */},
   {(bigint) parser___parser_nodes___AClosureDef___n_bang},
   {(bigint) parser___parser_nodes___AClosureDef___n_id},
   {(bigint) parser___parser_nodes___AClosureDef___n_ids},
@@ -79672,19 +76002,19 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AClosureDef(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1947 */
+  /* syntax/typing.nit:1994 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___AClosureDef____accept_typing2(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser_nodes.nit:1055 */
+  /* parser/parser_nodes.nit:1165 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:1056 */
+  /* parser/parser_nodes.nit:1166 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:1057 */
+  /* parser/parser_nodes.nit:1167 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:689 */
+  /* parser/parser_nodes.nit:761 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -79739,13 +76069,13 @@ val_t NEW_AClosureDef_parser___parser_prod___AClosureDef___empty_init(void){
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7287;
+  fra.me.line = 7661;
   fra.me.meth = LOCATE_NEW_AClosureDef_parser___parser_prod___AClosureDef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7287 */
+  /* parser/parser_prod.nit:7661 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AClosureDef();
   INIT_ATTRIBUTES__parser___parser_nodes___AClosureDef(fra.me.REG[0]);
   parser___parser_prod___AClosureDef___empty_init(fra.me.REG[0], init_table);
@@ -79759,7 +76089,7 @@ val_t NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(val_
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7289;
+  fra.me.line = 7663;
   fra.me.meth = LOCATE_NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -79777,7 +76107,7 @@ val_t NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(val_
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
-  /* ./parser//parser_prod.nit:7289 */
+  /* parser/parser_prod.nit:7663 */
   fra.me.REG[6] = NEW_parser___parser_nodes___AClosureDef();
   INIT_ATTRIBUTES__parser___parser_nodes___AClosureDef(fra.me.REG[6]);
   parser___parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[6], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], init_table);
@@ -79785,173 +76115,37 @@ val_t NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(val_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[6];
 }
-val_t NEW_AClosureDef_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AClosureDef_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AClosureDef_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AClosureDef();
-  INIT_ATTRIBUTES__parser___parser_nodes___AClosureDef(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AClosureDef(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_parser___parser_nodes___AClosureId[74] = {
-  {(bigint) 3119 /* 0: Identity */},
-  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AClosureId" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AClosureId < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AClosureId < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AClosureId < Prod: superclass typecheck marker */},
-  {(bigint) 3119 /* 7: AClosureId < AClosureId: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AClosureId < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: AClosureId < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AClosureId < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AClosureId___to_symbol},
-  {(bigint) 3 /* 73: AClosureId < AClosureId: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AClosureId::_parent */
-/* 3: Attribute AClosureId::_location */
-/* 4: Attribute AClosureId::_first_location */
-/* 5: Attribute AClosureId::_last_location */
-void INIT_ATTRIBUTES__parser___parser_nodes___AClosureId(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_nodes___AClosureId;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___parser_nodes___AClosureId(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_nodes___AClosureId;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___parser_nodes___AClosureId(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_nodes___AClosureId;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AClosureId_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AClosureId_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AClosureId();
-  INIT_ATTRIBUTES__parser___parser_nodes___AClosureId(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AClosureId(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AClosureDef();
+  INIT_ATTRIBUTES__parser___parser_nodes___AClosureDef(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AClosureDef(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ASimpleClosureId[78] = {
-  {(bigint) 3299 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ASimpleClosureId[80] = {
+  {(bigint) 3363 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ASimpleClosureId" /* 2: Class Name */},
   {(bigint) 3 /* 3: ASimpleClosureId < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ASimpleClosureId < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ASimpleClosureId < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ASimpleClosureId < Prod: superclass typecheck marker */},
+  {(bigint) 2883 /* 6: ASimpleClosureId < AClosureId: superclass typecheck marker */},
+  {(bigint) 3363 /* 7: ASimpleClosureId < ASimpleClosureId: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ASimpleClosureId < Prod: superclass typecheck marker */},
-  {(bigint) 3119 /* 7: ASimpleClosureId < AClosureId: superclass typecheck marker */},
-  {(bigint) 3299 /* 8: ASimpleClosureId < ASimpleClosureId: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79961,7 +76155,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ASimpleClosureId[78] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ASimpleClosureId < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ASimpleClosureId < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -79977,6 +76171,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ASimpleClosureId[78] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -80003,23 +76199,22 @@ const classtable_elt_t VFT_parser___parser_nodes___ASimpleClosureId[78] = {
   {(bigint) parser___parser_prod___ASimpleClosureId___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ASimpleClosureId___visit_all},
-  {(bigint) 1 /* 60: ASimpleClosureId < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: ASimpleClosureId < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ASimpleClosureId < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: ASimpleClosureId < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___typing___ASimpleClosureId___to_symbol},
-  {(bigint) 3 /* 73: ASimpleClosureId < AClosureId: superclass init_table position */},
+  {(bigint) 0 /* 75: ASimpleClosureId < AClosureId: superclass init_table position */},
   {(bigint) parser___parser_prod___ASimpleClosureId___empty_init},
   {(bigint) parser___parser_prod___ASimpleClosureId___init_asimpleclosureid},
-  {(bigint) 4 /* 76: ASimpleClosureId < ASimpleClosureId: superclass init_table position */},
+  {(bigint) 4 /* 78: ASimpleClosureId < ASimpleClosureId: superclass init_table position */},
   {(bigint) parser___parser_nodes___ASimpleClosureId___n_id},
 };
 /* 0: Pointer to the classtable */
@@ -80076,13 +76271,13 @@ val_t NEW_ASimpleClosureId_parser___parser_prod___ASimpleClosureId___empty_init(
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7407;
+  fra.me.line = 7781;
   fra.me.meth = LOCATE_NEW_ASimpleClosureId_parser___parser_prod___ASimpleClosureId___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7407 */
+  /* parser/parser_prod.nit:7781 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ASimpleClosureId();
   INIT_ATTRIBUTES__parser___parser_nodes___ASimpleClosureId(fra.me.REG[0]);
   parser___parser_prod___ASimpleClosureId___empty_init(fra.me.REG[0], init_table);
@@ -80096,7 +76291,7 @@ val_t NEW_ASimpleClosureId_parser___parser_prod___ASimpleClosureId___init_asimpl
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7409;
+  fra.me.line = 7783;
   fra.me.meth = LOCATE_NEW_ASimpleClosureId_parser___parser_prod___ASimpleClosureId___init_asimpleclosureid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -80104,7 +76299,7 @@ val_t NEW_ASimpleClosureId_parser___parser_prod___ASimpleClosureId___init_asimpl
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:7409 */
+  /* parser/parser_prod.nit:7783 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ASimpleClosureId();
   INIT_ATTRIBUTES__parser___parser_nodes___ASimpleClosureId(fra.me.REG[1]);
   parser___parser_prod___ASimpleClosureId___init_asimpleclosureid(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -80112,37 +76307,37 @@ val_t NEW_ASimpleClosureId_parser___parser_prod___ASimpleClosureId___init_asimpl
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_ASimpleClosureId_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ASimpleClosureId_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ASimpleClosureId_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ASimpleClosureId();
-  INIT_ATTRIBUTES__parser___parser_nodes___ASimpleClosureId(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ASimpleClosureId(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ASimpleClosureId();
+  INIT_ATTRIBUTES__parser___parser_nodes___ASimpleClosureId(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ASimpleClosureId(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ABreakClosureId[78] = {
-  {(bigint) 3471 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ABreakClosureId[80] = {
+  {(bigint) 3547 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ABreakClosureId" /* 2: Class Name */},
   {(bigint) 3 /* 3: ABreakClosureId < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ABreakClosureId < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ABreakClosureId < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ABreakClosureId < Prod: superclass typecheck marker */},
+  {(bigint) 2883 /* 6: ABreakClosureId < AClosureId: superclass typecheck marker */},
+  {(bigint) 3547 /* 7: ABreakClosureId < ABreakClosureId: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ABreakClosureId < Prod: superclass typecheck marker */},
-  {(bigint) 3119 /* 7: ABreakClosureId < AClosureId: superclass typecheck marker */},
-  {(bigint) 3471 /* 8: ABreakClosureId < ABreakClosureId: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80152,7 +76347,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ABreakClosureId[78] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ABreakClosureId < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ABreakClosureId < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -80168,6 +76363,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ABreakClosureId[78] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -80194,23 +76391,22 @@ const classtable_elt_t VFT_parser___parser_nodes___ABreakClosureId[78] = {
   {(bigint) parser___parser_prod___ABreakClosureId___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ABreakClosureId___visit_all},
-  {(bigint) 1 /* 60: ABreakClosureId < ANode: superclass init_table position */},
+  {(bigint) 2 /* 63: ABreakClosureId < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ABreakClosureId < Prod: superclass init_table position */},
+  {(bigint) 1 /* 72: ABreakClosureId < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) syntax___typing___ABreakClosureId___to_symbol},
-  {(bigint) 3 /* 73: ABreakClosureId < AClosureId: superclass init_table position */},
+  {(bigint) 0 /* 75: ABreakClosureId < AClosureId: superclass init_table position */},
   {(bigint) parser___parser_prod___ABreakClosureId___empty_init},
   {(bigint) parser___parser_prod___ABreakClosureId___init_abreakclosureid},
-  {(bigint) 4 /* 76: ABreakClosureId < ABreakClosureId: superclass init_table position */},
+  {(bigint) 4 /* 78: ABreakClosureId < ABreakClosureId: superclass init_table position */},
   {(bigint) parser___parser_nodes___ABreakClosureId___n_kwbreak},
 };
 /* 0: Pointer to the classtable */
@@ -80267,13 +76463,13 @@ val_t NEW_ABreakClosureId_parser___parser_prod___ABreakClosureId___empty_init(vo
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7438;
+  fra.me.line = 7812;
   fra.me.meth = LOCATE_NEW_ABreakClosureId_parser___parser_prod___ABreakClosureId___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7438 */
+  /* parser/parser_prod.nit:7812 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ABreakClosureId();
   INIT_ATTRIBUTES__parser___parser_nodes___ABreakClosureId(fra.me.REG[0]);
   parser___parser_prod___ABreakClosureId___empty_init(fra.me.REG[0], init_table);
@@ -80287,7 +76483,7 @@ val_t NEW_ABreakClosureId_parser___parser_prod___ABreakClosureId___init_abreakcl
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7440;
+  fra.me.line = 7814;
   fra.me.meth = LOCATE_NEW_ABreakClosureId_parser___parser_prod___ABreakClosureId___init_abreakclosureid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -80295,7 +76491,7 @@ val_t NEW_ABreakClosureId_parser___parser_prod___ABreakClosureId___init_abreakcl
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:7440 */
+  /* parser/parser_prod.nit:7814 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ABreakClosureId();
   INIT_ATTRIBUTES__parser___parser_nodes___ABreakClosureId(fra.me.REG[1]);
   parser___parser_prod___ABreakClosureId___init_abreakclosureid(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -80303,36 +76499,36 @@ val_t NEW_ABreakClosureId_parser___parser_prod___ABreakClosureId___init_abreakcl
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_ABreakClosureId_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ABreakClosureId_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[5] = {0, 0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ABreakClosureId_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ABreakClosureId();
-  INIT_ATTRIBUTES__parser___parser_nodes___ABreakClosureId(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ABreakClosureId(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ABreakClosureId();
+  INIT_ATTRIBUTES__parser___parser_nodes___ABreakClosureId(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ABreakClosureId(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AModuleName[78] = {
-  {(bigint) 3075 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AModuleName[80] = {
+  {(bigint) 2835 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AModuleName" /* 2: Class Name */},
   {(bigint) 3 /* 3: AModuleName < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AModuleName < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AModuleName < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AModuleName < Prod: superclass typecheck marker */},
+  {(bigint) 2835 /* 6: AModuleName < AModuleName: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AModuleName < Prod: superclass typecheck marker */},
-  {(bigint) 3075 /* 7: AModuleName < AModuleName: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80343,7 +76539,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AModuleName[78] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AModuleName < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: AModuleName < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -80359,6 +76555,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AModuleName[78] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -80385,21 +76583,20 @@ const classtable_elt_t VFT_parser___parser_nodes___AModuleName[78] = {
   {(bigint) parser___parser_prod___AModuleName___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AModuleName___visit_all},
-  {(bigint) 1 /* 60: AModuleName < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: AModuleName < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AModuleName < Prod: superclass init_table position */},
+  {(bigint) 0 /* 72: AModuleName < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) parser___parser_prod___AModuleName___empty_init},
   {(bigint) parser___parser_prod___AModuleName___init_amodulename},
-  {(bigint) 3 /* 74: AModuleName < AModuleName: superclass init_table position */},
+  {(bigint) 3 /* 76: AModuleName < AModuleName: superclass init_table position */},
   {(bigint) parser___parser_nodes___AModuleName___n_quad},
   {(bigint) parser___parser_nodes___AModuleName___n_path},
   {(bigint) parser___parser_nodes___AModuleName___n_id},
@@ -80426,10 +76623,10 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AModuleName(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1072 */
+  /* parser/parser_nodes.nit:1183 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:1073 */
+  /* parser/parser_nodes.nit:1184 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -80474,13 +76671,13 @@ val_t NEW_AModuleName_parser___parser_prod___AModuleName___empty_init(void){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7469;
+  fra.me.line = 7843;
   fra.me.meth = LOCATE_NEW_AModuleName_parser___parser_prod___AModuleName___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7469 */
+  /* parser/parser_prod.nit:7843 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AModuleName();
   INIT_ATTRIBUTES__parser___parser_nodes___AModuleName(fra.me.REG[0]);
   parser___parser_prod___AModuleName___empty_init(fra.me.REG[0], init_table);
@@ -80494,7 +76691,7 @@ val_t NEW_AModuleName_parser___parser_prod___AModuleName___init_amodulename(val_
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7471;
+  fra.me.line = 7845;
   fra.me.meth = LOCATE_NEW_AModuleName_parser___parser_prod___AModuleName___init_amodulename;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -80506,7 +76703,7 @@ val_t NEW_AModuleName_parser___parser_prod___AModuleName___init_amodulename(val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7471 */
+  /* parser/parser_prod.nit:7845 */
   fra.me.REG[3] = NEW_parser___parser_nodes___AModuleName();
   INIT_ATTRIBUTES__parser___parser_nodes___AModuleName(fra.me.REG[3]);
   parser___parser_prod___AModuleName___init_amodulename(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -80514,36 +76711,36 @@ val_t NEW_AModuleName_parser___parser_prod___AModuleName___init_amodulename(val_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-val_t NEW_AModuleName_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AModuleName_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AModuleName_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AModuleName();
-  INIT_ATTRIBUTES__parser___parser_nodes___AModuleName(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AModuleName(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AModuleName();
+  INIT_ATTRIBUTES__parser___parser_nodes___AModuleName(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AModuleName(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___AQualified[78] = {
-  {(bigint) 3059 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___AQualified[80] = {
+  {(bigint) 2819 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AQualified" /* 2: Class Name */},
   {(bigint) 3 /* 3: AQualified < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AQualified < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: AQualified < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: AQualified < Prod: superclass typecheck marker */},
+  {(bigint) 2819 /* 6: AQualified < AQualified: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AQualified < Prod: superclass typecheck marker */},
-  {(bigint) 3059 /* 7: AQualified < AQualified: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80554,7 +76751,7 @@ const classtable_elt_t VFT_parser___parser_nodes___AQualified[78] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AQualified < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: AQualified < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -80570,6 +76767,8 @@ const classtable_elt_t VFT_parser___parser_nodes___AQualified[78] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -80596,21 +76795,20 @@ const classtable_elt_t VFT_parser___parser_nodes___AQualified[78] = {
   {(bigint) parser___parser_prod___AQualified___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___AQualified___visit_all},
-  {(bigint) 1 /* 60: AQualified < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: AQualified < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AQualified < Prod: superclass init_table position */},
+  {(bigint) 0 /* 72: AQualified < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) parser___parser_prod___AQualified___empty_init},
   {(bigint) parser___parser_prod___AQualified___init_aqualified},
-  {(bigint) 3 /* 74: AQualified < AQualified: superclass init_table position */},
+  {(bigint) 3 /* 76: AQualified < AQualified: superclass init_table position */},
   {(bigint) parser___parser_nodes___AQualified___n_quad},
   {(bigint) parser___parser_nodes___AQualified___n_id},
   {(bigint) parser___parser_nodes___AQualified___n_classid},
@@ -80637,13 +76835,13 @@ void INIT_ATTRIBUTES__parser___parser_nodes___AQualified(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1079 */
+  /* parser/parser_nodes.nit:1190 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:1080 */
+  /* parser/parser_nodes.nit:1191 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_nodes.nit:1078 */
+  /* parser/parser_nodes.nit:1189 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_nodes___AQualified____n_quad(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -80683,13 +76881,13 @@ val_t NEW_AQualified_parser___parser_prod___AQualified___empty_init(void){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7954;
+  fra.me.line = 8328;
   fra.me.meth = LOCATE_NEW_AQualified_parser___parser_prod___AQualified___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:7954 */
+  /* parser/parser_prod.nit:8328 */
   fra.me.REG[0] = NEW_parser___parser_nodes___AQualified();
   INIT_ATTRIBUTES__parser___parser_nodes___AQualified(fra.me.REG[0]);
   parser___parser_prod___AQualified___empty_init(fra.me.REG[0], init_table);
@@ -80703,7 +76901,7 @@ val_t NEW_AQualified_parser___parser_prod___AQualified___init_aqualified(val_t p
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 7956;
+  fra.me.line = 8330;
   fra.me.meth = LOCATE_NEW_AQualified_parser___parser_prod___AQualified___init_aqualified;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -80713,7 +76911,7 @@ val_t NEW_AQualified_parser___parser_prod___AQualified___init_aqualified(val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7956 */
+  /* parser/parser_prod.nit:8330 */
   fra.me.REG[2] = NEW_parser___parser_nodes___AQualified();
   INIT_ATTRIBUTES__parser___parser_nodes___AQualified(fra.me.REG[2]);
   parser___parser_prod___AQualified___init_aqualified(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -80721,36 +76919,36 @@ val_t NEW_AQualified_parser___parser_prod___AQualified___init_aqualified(val_t p
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-val_t NEW_AQualified_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AQualified_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_AQualified_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___AQualified();
-  INIT_ATTRIBUTES__parser___parser_nodes___AQualified(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___AQualified(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___AQualified();
+  INIT_ATTRIBUTES__parser___parser_nodes___AQualified(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___AQualified(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___ADoc[76] = {
-  {(bigint) 3115 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___ADoc[78] = {
+  {(bigint) 2879 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ADoc" /* 2: Class Name */},
   {(bigint) 3 /* 3: ADoc < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ADoc < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: ADoc < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: ADoc < Prod: superclass typecheck marker */},
+  {(bigint) 2879 /* 6: ADoc < ADoc: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: ADoc < Prod: superclass typecheck marker */},
-  {(bigint) 3115 /* 7: ADoc < ADoc: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80761,7 +76959,7 @@ const classtable_elt_t VFT_parser___parser_nodes___ADoc[76] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ADoc < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: ADoc < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -80777,6 +76975,8 @@ const classtable_elt_t VFT_parser___parser_nodes___ADoc[76] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -80803,21 +77003,20 @@ const classtable_elt_t VFT_parser___parser_nodes___ADoc[76] = {
   {(bigint) parser___parser_prod___ADoc___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___ADoc___visit_all},
-  {(bigint) 1 /* 60: ADoc < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: ADoc < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ADoc < Prod: superclass init_table position */},
+  {(bigint) 0 /* 72: ADoc < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
   {(bigint) parser___parser_prod___ADoc___empty_init},
   {(bigint) parser___parser_prod___ADoc___init_adoc},
-  {(bigint) 3 /* 74: ADoc < ADoc: superclass init_table position */},
+  {(bigint) 3 /* 76: ADoc < ADoc: superclass init_table position */},
   {(bigint) parser___parser_nodes___ADoc___n_comment},
 };
 /* 0: Pointer to the classtable */
@@ -80840,7 +77039,7 @@ void INIT_ATTRIBUTES__parser___parser_nodes___ADoc(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1084 */
+  /* parser/parser_nodes.nit:1195 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -80880,13 +77079,13 @@ val_t NEW_ADoc_parser___parser_prod___ADoc___empty_init(void){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 8010;
+  fra.me.line = 8384;
   fra.me.meth = LOCATE_NEW_ADoc_parser___parser_prod___ADoc___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:8010 */
+  /* parser/parser_prod.nit:8384 */
   fra.me.REG[0] = NEW_parser___parser_nodes___ADoc();
   INIT_ATTRIBUTES__parser___parser_nodes___ADoc(fra.me.REG[0]);
   parser___parser_prod___ADoc___empty_init(fra.me.REG[0], init_table);
@@ -80900,7 +77099,7 @@ val_t NEW_ADoc_parser___parser_prod___ADoc___init_adoc(val_t p0){
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 8012;
+  fra.me.line = 8386;
   fra.me.meth = LOCATE_NEW_ADoc_parser___parser_prod___ADoc___init_adoc;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -80908,7 +77107,7 @@ val_t NEW_ADoc_parser___parser_prod___ADoc___init_adoc(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:8012 */
+  /* parser/parser_prod.nit:8386 */
   fra.me.REG[1] = NEW_parser___parser_nodes___ADoc();
   INIT_ATTRIBUTES__parser___parser_nodes___ADoc(fra.me.REG[1]);
   parser___parser_prod___ADoc___init_adoc(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -80916,36 +77115,36 @@ val_t NEW_ADoc_parser___parser_prod___ADoc___init_adoc(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-val_t NEW_ADoc_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ADoc_parser___parser_nodes___ANode___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_NEW_ADoc_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___ADoc();
-  INIT_ATTRIBUTES__parser___parser_nodes___ADoc(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___ADoc(fra.me.REG[1]);
+  /* parser/parser_nodes.nit:32 */
+  fra.me.REG[0] = NEW_parser___parser_nodes___ADoc();
+  INIT_ATTRIBUTES__parser___parser_nodes___ADoc(fra.me.REG[0]);
+  parser___parser_nodes___ANode___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___parser_nodes___ADoc(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___parser_nodes___Start[76] = {
-  {(bigint) 2775 /* 0: Identity */},
+const classtable_elt_t VFT_parser___parser_nodes___Start[78] = {
+  {(bigint) 2535 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "Start" /* 2: Class Name */},
   {(bigint) 3 /* 3: Start < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: Start < ANode: superclass typecheck marker */},
+  {(bigint) 303 /* 4: Start < ANode: superclass typecheck marker */},
+  {(bigint) 2111 /* 5: Start < Prod: superclass typecheck marker */},
+  {(bigint) 2535 /* 6: Start < Start: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: Start < Prod: superclass typecheck marker */},
-  {(bigint) 2775 /* 7: Start < Start: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80956,7 +77155,7 @@ const classtable_elt_t VFT_parser___parser_nodes___Start[76] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: Start < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: Start < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -80972,6 +77171,8 @@ const classtable_elt_t VFT_parser___parser_nodes___Start[76] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -80998,22 +77199,21 @@ const classtable_elt_t VFT_parser___parser_nodes___Start[76] = {
   {(bigint) parser___parser_prod___Start___replace_child},
   {(bigint) parser___parser_prod___Prod___replace_with},
   {(bigint) parser___parser_prod___Start___visit_all},
-  {(bigint) 1 /* 60: Start < ANode: superclass init_table position */},
+  {(bigint) 1 /* 63: Start < ANode: superclass init_table position */},
   {(bigint) parser___parser_nodes___ANode___location},
   {(bigint) parser___parser_nodes___ANode___hot_location},
   {(bigint) parser___parser_nodes___ANode___init},
+  {(bigint) parser___parser_nodes___ANode___debug},
   {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
   {(bigint) syntax___typing___ANode___accept_typing},
   {(bigint) syntax___typing___ANode___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: Start < Prod: superclass init_table position */},
+  {(bigint) 0 /* 72: Start < Prod: superclass init_table position */},
   {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) parser___parser_prod___Start___init},
-  {(bigint) 3 /* 73: Start < Start: superclass init_table position */},
+  {(bigint) 3 /* 74: Start < Start: superclass init_table position */},
   {(bigint) parser___parser_nodes___Start___n_base},
   {(bigint) parser___parser_nodes___Start___n_eof},
+  {(bigint) parser___parser_nodes___Start___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -81064,35 +77264,14 @@ void CHECKNEW_parser___parser_nodes___Start(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_Start_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_Start_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_parser___parser_nodes___Start();
-  INIT_ATTRIBUTES__parser___parser_nodes___Start(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_nodes___Start(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-val_t NEW_Start_parser___parser_prod___Start___init(val_t p0, val_t p1){
+val_t NEW_Start_parser___parser_nodes___Start___init(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 8049;
-  fra.me.meth = LOCATE_NEW_Start_parser___parser_prod___Start___init;
+  fra.me.line = 1202;
+  fra.me.meth = LOCATE_NEW_Start_parser___parser_nodes___Start___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
@@ -81101,21 +77280,22 @@ val_t NEW_Start_parser___parser_prod___Start___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:8049 */
+  /* parser/parser_nodes.nit:1202 */
   fra.me.REG[2] = NEW_parser___parser_nodes___Start();
   INIT_ATTRIBUTES__parser___parser_nodes___Start(fra.me.REG[2]);
-  parser___parser_prod___Start___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  parser___parser_nodes___Start___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
   CHECKNEW_parser___parser_nodes___Start(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_parser___lexer___Lexer[59] = {
-  {(bigint) 2203 /* 0: Identity */},
+const classtable_elt_t VFT_parser___lexer___Lexer[62] = {
+  {(bigint) 2239 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "Lexer" /* 2: Class Name */},
   {(bigint) 3 /* 3: Lexer < Object: superclass typecheck marker */},
   {(bigint) 23 /* 4: Lexer < TablesCapable: superclass typecheck marker */},
-  {(bigint) 2203 /* 5: Lexer < Lexer: superclass typecheck marker */},
+  {(bigint) 2239 /* 5: Lexer < Lexer: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81128,7 +77308,7 @@ const classtable_elt_t VFT_parser___lexer___Lexer[59] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: Lexer < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: Lexer < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -81144,6 +77324,8 @@ const classtable_elt_t VFT_parser___lexer___Lexer[59] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -81157,12 +77339,12 @@ const classtable_elt_t VFT_parser___lexer___Lexer[59] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: Lexer < TablesCapable: superclass init_table position */},
+  {(bigint) 0 /* 50: Lexer < TablesCapable: superclass init_table position */},
   {(bigint) parser___tables___TablesCapable___lexer_goto},
   {(bigint) parser___tables___TablesCapable___lexer_accept},
   {(bigint) parser___tables___TablesCapable___parser_goto},
   {(bigint) parser___tables___TablesCapable___parser_action},
-  {(bigint) 2 /* 52: Lexer < Lexer: superclass init_table position */},
+  {(bigint) 2 /* 55: Lexer < Lexer: superclass init_table position */},
   {(bigint) parser___lexer___Lexer___file},
   {(bigint) parser___lexer___Lexer___state_initial},
   {(bigint) parser___lexer___Lexer___init},
@@ -81192,19 +77374,19 @@ void INIT_ATTRIBUTES__parser___lexer___Lexer(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1208 */
+  /* parser/lexer.nit:1243 */
   REGB0 = TAG_Int(0);
   ATTR_parser___lexer___Lexer____state(fra.me.REG[0]) = REGB0;
-  /* ./parser//lexer.nit:1214 */
+  /* parser/lexer.nit:1249 */
   REGB0 = TAG_Int(0);
   ATTR_parser___lexer___Lexer____stream_pos(fra.me.REG[0]) = REGB0;
-  /* ./parser//lexer.nit:1217 */
+  /* parser/lexer.nit:1252 */
   REGB0 = TAG_Int(0);
   ATTR_parser___lexer___Lexer____line(fra.me.REG[0]) = REGB0;
-  /* ./parser//lexer.nit:1220 */
+  /* parser/lexer.nit:1255 */
   REGB0 = TAG_Int(0);
   ATTR_parser___lexer___Lexer____pos(fra.me.REG[0]) = REGB0;
-  /* ./parser//lexer.nit:1223 */
+  /* parser/lexer.nit:1258 */
   REGB0 = TAG_Bool(false);
   ATTR_parser___lexer___Lexer____cr(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -81269,7 +77451,7 @@ val_t NEW_Lexer_parser___lexer___Lexer___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1228;
+  fra.me.line = 1263;
   fra.me.meth = LOCATE_NEW_Lexer_parser___lexer___Lexer___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -81277,7 +77459,7 @@ val_t NEW_Lexer_parser___lexer___Lexer___init(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1228 */
+  /* parser/lexer.nit:1263 */
   fra.me.REG[1] = NEW_parser___lexer___Lexer();
   INIT_ATTRIBUTES__parser___lexer___Lexer(fra.me.REG[1]);
   parser___lexer___Lexer___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -81285,12 +77467,289 @@ val_t NEW_Lexer_parser___lexer___Lexer___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_parser___parser_prod___Visitor[52] = {
-  {(bigint) 15 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "Visitor" /* 2: Class Name */},
-  {(bigint) 3 /* 3: Visitor < Object: superclass typecheck marker */},
-  {(bigint) 15 /* 4: Visitor < Visitor: superclass typecheck marker */},
+const classtable_elt_t VFT_parser___State[56] = {
+  {(bigint) 39 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "State" /* 2: Class Name */},
+  {(bigint) 3 /* 3: State < Object: superclass typecheck marker */},
+  {(bigint) 39 /* 4: State < State: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) standard___time___Object___get_time},
+  {(bigint) 0 /* 19: State < Object: superclass init_table position */},
+  {(bigint) standard___kernel___Object___object_id},
+  {(bigint) standard___kernel___Object___is_same_type},
+  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) standard___kernel___Object_____neq},
+  {(bigint) standard___kernel___Object___output},
+  {(bigint) standard___kernel___Object___output_class_name},
+  {(bigint) standard___kernel___Object___exit},
+  {(bigint) standard___kernel___Object___sys},
+  {(bigint) standard___file___Object___printn},
+  {(bigint) standard___file___Object___print},
+  {(bigint) standard___file___Object___getc},
+  {(bigint) standard___file___Object___gets},
+  {(bigint) standard___file___Object___stdin},
+  {(bigint) standard___file___Object___stdout},
+  {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 50: State < State: superclass init_table position */},
+  {(bigint) parser___State___state},
+  {(bigint) parser___State___state__eq},
+  {(bigint) parser___State___nodes},
+  {(bigint) parser___State___nodes__eq},
+  {(bigint) parser___State___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute State::_state */
+/* 3: Attribute State::_nodes */
+void INIT_ATTRIBUTES__parser___State(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___State;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_parser___State(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_parser___State;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_parser___State(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_parser___State;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___State____state(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_state", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_State_parser___State___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[2] = {0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 15;
+  fra.me.meth = LOCATE_NEW_State_parser___State___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  REGB0 = p0;
+  fra.me.REG[0] = p1;
+  /* parser/parser.nit:15 */
+  fra.me.REG[1] = NEW_parser___State();
+  INIT_ATTRIBUTES__parser___State(fra.me.REG[1]);
+  parser___State___init(fra.me.REG[1], REGB0, fra.me.REG[0], init_table);
+  CHECKNEW_parser___State(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_parser___Parser[63] = {
+  {(bigint) 2119 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "Parser" /* 2: Class Name */},
+  {(bigint) 3 /* 3: Parser < Object: superclass typecheck marker */},
+  {(bigint) 23 /* 4: Parser < TablesCapable: superclass typecheck marker */},
+  {(bigint) 2119 /* 5: Parser < Parser: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) standard___time___Object___get_time},
+  {(bigint) 1 /* 19: Parser < Object: superclass init_table position */},
+  {(bigint) standard___kernel___Object___object_id},
+  {(bigint) standard___kernel___Object___is_same_type},
+  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) standard___kernel___Object_____neq},
+  {(bigint) standard___kernel___Object___output},
+  {(bigint) standard___kernel___Object___output_class_name},
+  {(bigint) standard___kernel___Object___exit},
+  {(bigint) standard___kernel___Object___sys},
+  {(bigint) standard___file___Object___printn},
+  {(bigint) standard___file___Object___print},
+  {(bigint) standard___file___Object___getc},
+  {(bigint) standard___file___Object___gets},
+  {(bigint) standard___file___Object___stdin},
+  {(bigint) standard___file___Object___stdout},
+  {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 0 /* 50: Parser < TablesCapable: superclass init_table position */},
+  {(bigint) parser___tables___TablesCapable___lexer_goto},
+  {(bigint) parser___tables___TablesCapable___lexer_accept},
+  {(bigint) parser___tables___TablesCapable___parser_goto},
+  {(bigint) parser___tables___TablesCapable___parser_action},
+  {(bigint) 2 /* 55: Parser < Parser: superclass init_table position */},
+  {(bigint) parser___Parser___init},
+  {(bigint) parser___Parser___go_to},
+  {(bigint) parser___Parser___push},
+  {(bigint) parser___Parser___state},
+  {(bigint) parser___Parser___pop},
+  {(bigint) parser___Parser___parse},
+  {(bigint) parser___Parser___build_reduce_table},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute Parser::_lexer */
+/* 3: Attribute Parser::_stack */
+/* 4: Attribute Parser::_stack_pos */
+/* 5: Attribute Parser::_reduce_table */
+void INIT_ATTRIBUTES__parser___Parser(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___Parser;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_parser___Parser(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_parser___Parser;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_parser___Parser(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_parser___Parser;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___Parser____lexer(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_lexer", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___Parser____stack(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_stack", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___Parser____stack_pos(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_stack_pos", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___Parser____reduce_table(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_reduce_table", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_Parser_parser___Parser___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 33;
+  fra.me.meth = LOCATE_NEW_Parser_parser___Parser___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser.nit:33 */
+  fra.me.REG[1] = NEW_parser___Parser();
+  INIT_ATTRIBUTES__parser___Parser(fra.me.REG[1]);
+  parser___Parser___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_parser___Parser(fra.me.REG[1]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+const classtable_elt_t VFT_parser___ComputeProdLocationVisitor[57] = {
+  {(bigint) 2363 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ComputeProdLocationVisitor" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ComputeProdLocationVisitor < Object: superclass typecheck marker */},
+  {(bigint) 15 /* 4: ComputeProdLocationVisitor < Visitor: superclass typecheck marker */},
+  {(bigint) 2363 /* 5: ComputeProdLocationVisitor < ComputeProdLocationVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81304,7 +77763,7 @@ const classtable_elt_t VFT_parser___parser_prod___Visitor[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: Visitor < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ComputeProdLocationVisitor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -81320,6 +77779,8 @@ const classtable_elt_t VFT_parser___parser_prod___Visitor[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -81333,79 +77794,486 @@ const classtable_elt_t VFT_parser___parser_prod___Visitor[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: Visitor < Visitor: superclass init_table position */},
-  {(bigint) parser___parser_prod___Visitor___visit},
+  {(bigint) 0 /* 50: ComputeProdLocationVisitor < Visitor: superclass init_table position */},
+  {(bigint) parser___ComputeProdLocationVisitor___visit},
   {(bigint) parser___parser_prod___Visitor___enter_visit},
   {(bigint) parser___parser_prod___Visitor___current_node},
   {(bigint) parser___parser_prod___Visitor___init},
+  {(bigint) 2 /* 55: ComputeProdLocationVisitor < ComputeProdLocationVisitor: superclass init_table position */},
+  {(bigint) parser___ComputeProdLocationVisitor___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute Visitor::_current_node */
-void INIT_ATTRIBUTES__parser___parser_prod___Visitor(val_t p0){
+/* 2: Attribute ComputeProdLocationVisitor::_current_node */
+/* 3: Attribute ComputeProdLocationVisitor::_need_first_prods */
+/* 4: Attribute ComputeProdLocationVisitor::_need_after_epsilons */
+/* 5: Attribute ComputeProdLocationVisitor::_need_before_epsilons */
+/* 6: Attribute ComputeProdLocationVisitor::_last_location */
+void INIT_ATTRIBUTES__parser___ComputeProdLocationVisitor(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___parser_prod___Visitor;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ComputeProdLocationVisitor;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:66 */
+  /* parser/parser.nit:928 */
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0]) = fra.me.REG[1];
+  /* parser/parser.nit:931 */
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0]) = fra.me.REG[1];
+  /* parser/parser.nit:934 */
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0]) = fra.me.REG[1];
+  /* parser/parser.nit:936 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_parser___ComputeProdLocationVisitor____last_location(fra.me.REG[0]) = fra.me.REG[1];
+  /* parser/parser_prod.nit:66 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___parser_prod___Visitor(void)
+val_t NEW_parser___ComputeProdLocationVisitor(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_parser___ComputeProdLocationVisitor;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_parser___ComputeProdLocationVisitor(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ComputeProdLocationVisitor;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_need_first_prods", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_need_before_epsilons", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ComputeProdLocationVisitor_parser___ComputeProdLocationVisitor___init(void){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1007;
+  fra.me.meth = LOCATE_NEW_ComputeProdLocationVisitor_parser___ComputeProdLocationVisitor___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  /* parser/parser.nit:1007 */
+  fra.me.REG[0] = NEW_parser___ComputeProdLocationVisitor();
+  INIT_ATTRIBUTES__parser___ComputeProdLocationVisitor(fra.me.REG[0]);
+  parser___ComputeProdLocationVisitor___init(fra.me.REG[0], init_table);
+  CHECKNEW_parser___ComputeProdLocationVisitor(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___ReduceAction0[55] = {
+  {(bigint) 2087 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReduceAction0" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction0 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction0 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2087 /* 5: ReduceAction0 < ReduceAction0: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) standard___time___Object___get_time},
+  {(bigint) 1 /* 19: ReduceAction0 < Object: superclass init_table position */},
+  {(bigint) standard___kernel___Object___object_id},
+  {(bigint) standard___kernel___Object___is_same_type},
+  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) standard___kernel___Object_____neq},
+  {(bigint) standard___kernel___Object___output},
+  {(bigint) standard___kernel___Object___output_class_name},
+  {(bigint) standard___kernel___Object___exit},
+  {(bigint) standard___kernel___Object___sys},
+  {(bigint) standard___file___Object___printn},
+  {(bigint) standard___file___Object___print},
+  {(bigint) standard___file___Object___getc},
+  {(bigint) standard___file___Object___gets},
+  {(bigint) standard___file___Object___stdin},
+  {(bigint) standard___file___Object___stdout},
+  {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 0 /* 50: ReduceAction0 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction0___action},
+  {(bigint) parser___ReduceAction___concat},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 54: ReduceAction0 < ReduceAction0: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ReduceAction0::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction0(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction0;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_parser___ReduceAction0(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction0;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_parser___ReduceAction0(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction0;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction0_parser___ReduceAction___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction0_parser___ReduceAction___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  REGB0 = p0;
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction0();
+  INIT_ATTRIBUTES__parser___ReduceAction0(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_parser___ReduceAction0(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___ReduceAction1[55] = {
+  {(bigint) 2083 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReduceAction1" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction1 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction1 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2083 /* 5: ReduceAction1 < ReduceAction1: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) standard___time___Object___get_time},
+  {(bigint) 1 /* 19: ReduceAction1 < Object: superclass init_table position */},
+  {(bigint) standard___kernel___Object___object_id},
+  {(bigint) standard___kernel___Object___is_same_type},
+  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) standard___kernel___Object_____neq},
+  {(bigint) standard___kernel___Object___output},
+  {(bigint) standard___kernel___Object___output_class_name},
+  {(bigint) standard___kernel___Object___exit},
+  {(bigint) standard___kernel___Object___sys},
+  {(bigint) standard___file___Object___printn},
+  {(bigint) standard___file___Object___print},
+  {(bigint) standard___file___Object___getc},
+  {(bigint) standard___file___Object___gets},
+  {(bigint) standard___file___Object___stdin},
+  {(bigint) standard___file___Object___stdout},
+  {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 0 /* 50: ReduceAction1 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction1___action},
+  {(bigint) parser___ReduceAction___concat},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 54: ReduceAction1 < ReduceAction1: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ReduceAction1::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction1(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction1;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_parser___ReduceAction1(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___parser_prod___Visitor;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction1;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___parser_prod___Visitor(val_t p0){
+void CHECKNEW_parser___ReduceAction1(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction1;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction1_parser___ReduceAction___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction1_parser___ReduceAction___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  REGB0 = p0;
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction1();
+  INIT_ATTRIBUTES__parser___ReduceAction1(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_parser___ReduceAction1(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___ReduceAction2[55] = {
+  {(bigint) 1639 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReduceAction2" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction2 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction2 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1639 /* 5: ReduceAction2 < ReduceAction2: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) standard___time___Object___get_time},
+  {(bigint) 1 /* 19: ReduceAction2 < Object: superclass init_table position */},
+  {(bigint) standard___kernel___Object___object_id},
+  {(bigint) standard___kernel___Object___is_same_type},
+  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) standard___kernel___Object_____neq},
+  {(bigint) standard___kernel___Object___output},
+  {(bigint) standard___kernel___Object___output_class_name},
+  {(bigint) standard___kernel___Object___exit},
+  {(bigint) standard___kernel___Object___sys},
+  {(bigint) standard___file___Object___printn},
+  {(bigint) standard___file___Object___print},
+  {(bigint) standard___file___Object___getc},
+  {(bigint) standard___file___Object___gets},
+  {(bigint) standard___file___Object___stdin},
+  {(bigint) standard___file___Object___stdout},
+  {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 0 /* 50: ReduceAction2 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction2___action},
+  {(bigint) parser___ReduceAction___concat},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 54: ReduceAction2 < ReduceAction2: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ReduceAction2::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction2(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___parser_prod___Visitor;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction2;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_Visitor_parser___parser_prod___Visitor___init(void){
+val_t NEW_parser___ReduceAction2(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction2;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_parser___ReduceAction2(val_t p0){
   struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
-  int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_Visitor_parser___parser_prod___Visitor___init;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction2;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_parser___parser_prod___Visitor();
-  INIT_ATTRIBUTES__parser___parser_prod___Visitor(fra.me.REG[0]);
-  parser___parser_prod___Visitor___init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___parser_prod___Visitor(fra.me.REG[0]);
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction2_parser___ReduceAction___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction2_parser___ReduceAction___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  REGB0 = p0;
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction2();
+  INIT_ATTRIBUTES__parser___ReduceAction2(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_parser___ReduceAction2(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___State[53] = {
-  {(bigint) 39 /* 0: Identity */},
-  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "State" /* 2: Class Name */},
-  {(bigint) 3 /* 3: State < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 4: State < State: superclass typecheck marker */},
+const classtable_elt_t VFT_parser___ReduceAction3[55] = {
+  {(bigint) 1239 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReduceAction3" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction3 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction3 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1239 /* 5: ReduceAction3 < ReduceAction3: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81419,7 +78287,7 @@ const classtable_elt_t VFT_parser___State[53] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: State < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction3 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -81435,6 +78303,8 @@ const classtable_elt_t VFT_parser___State[53] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -81448,89 +78318,332 @@ const classtable_elt_t VFT_parser___State[53] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: State < State: superclass init_table position */},
-  {(bigint) parser___State___state},
-  {(bigint) parser___State___state__eq},
-  {(bigint) parser___State___nodes},
-  {(bigint) parser___State___nodes__eq},
-  {(bigint) parser___State___init},
+  {(bigint) 0 /* 50: ReduceAction3 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction3___action},
+  {(bigint) parser___ReduceAction___concat},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 54: ReduceAction3 < ReduceAction3: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute State::_state */
-/* 3: Attribute State::_nodes */
-void INIT_ATTRIBUTES__parser___State(val_t p0){
+/* 2: Attribute ReduceAction3::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction3(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___State;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction3;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___State(void)
+val_t NEW_parser___ReduceAction3(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_parser___State;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction3;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___State(val_t p0){
+void CHECKNEW_parser___ReduceAction3(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___State;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction3;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___State____state(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_state", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_State_parser___State___init(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ReduceAction3_parser___ReduceAction___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
-  int init_table[2] = {0, 0};
+  int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 15;
-  fra.me.meth = LOCATE_NEW_State_parser___State___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction3_parser___ReduceAction___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
   REGB0 = p0;
-  fra.me.REG[0] = p1;
-  /* ./parser//parser.nit:15 */
-  fra.me.REG[1] = NEW_parser___State();
-  INIT_ATTRIBUTES__parser___State(fra.me.REG[1]);
-  parser___State___init(fra.me.REG[1], REGB0, fra.me.REG[0], init_table);
-  CHECKNEW_parser___State(fra.me.REG[1]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction3();
+  INIT_ATTRIBUTES__parser___ReduceAction3(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_parser___ReduceAction3(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___Parser[60] = {
-  {(bigint) 2083 /* 0: Identity */},
-  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "Parser" /* 2: Class Name */},
-  {(bigint) 3 /* 3: Parser < Object: superclass typecheck marker */},
-  {(bigint) 23 /* 4: Parser < TablesCapable: superclass typecheck marker */},
-  {(bigint) 2083 /* 5: Parser < Parser: superclass typecheck marker */},
+const classtable_elt_t VFT_parser___ReduceAction4[55] = {
+  {(bigint) 879 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReduceAction4" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction4 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction4 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 879 /* 5: ReduceAction4 < ReduceAction4: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) standard___time___Object___get_time},
+  {(bigint) 1 /* 19: ReduceAction4 < Object: superclass init_table position */},
+  {(bigint) standard___kernel___Object___object_id},
+  {(bigint) standard___kernel___Object___is_same_type},
+  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) standard___kernel___Object_____neq},
+  {(bigint) standard___kernel___Object___output},
+  {(bigint) standard___kernel___Object___output_class_name},
+  {(bigint) standard___kernel___Object___exit},
+  {(bigint) standard___kernel___Object___sys},
+  {(bigint) standard___file___Object___printn},
+  {(bigint) standard___file___Object___print},
+  {(bigint) standard___file___Object___getc},
+  {(bigint) standard___file___Object___gets},
+  {(bigint) standard___file___Object___stdin},
+  {(bigint) standard___file___Object___stdout},
+  {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 0 /* 50: ReduceAction4 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction4___action},
+  {(bigint) parser___ReduceAction___concat},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 54: ReduceAction4 < ReduceAction4: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ReduceAction4::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction4(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction4;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_parser___ReduceAction4(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction4;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_parser___ReduceAction4(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction4;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction4_parser___ReduceAction___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction4_parser___ReduceAction___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  REGB0 = p0;
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction4();
+  INIT_ATTRIBUTES__parser___ReduceAction4(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_parser___ReduceAction4(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___ReduceAction5[55] = {
+  {(bigint) 703 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReduceAction5" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction5 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction5 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 703 /* 5: ReduceAction5 < ReduceAction5: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) standard___time___Object___get_time},
+  {(bigint) 1 /* 19: ReduceAction5 < Object: superclass init_table position */},
+  {(bigint) standard___kernel___Object___object_id},
+  {(bigint) standard___kernel___Object___is_same_type},
+  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) standard___kernel___Object_____neq},
+  {(bigint) standard___kernel___Object___output},
+  {(bigint) standard___kernel___Object___output_class_name},
+  {(bigint) standard___kernel___Object___exit},
+  {(bigint) standard___kernel___Object___sys},
+  {(bigint) standard___file___Object___printn},
+  {(bigint) standard___file___Object___print},
+  {(bigint) standard___file___Object___getc},
+  {(bigint) standard___file___Object___gets},
+  {(bigint) standard___file___Object___stdin},
+  {(bigint) standard___file___Object___stdout},
+  {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 0 /* 50: ReduceAction5 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction5___action},
+  {(bigint) parser___ReduceAction___concat},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 54: ReduceAction5 < ReduceAction5: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ReduceAction5::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction5(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction5;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_parser___ReduceAction5(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction5;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_parser___ReduceAction5(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction5;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction5_parser___ReduceAction___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction5_parser___ReduceAction___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  REGB0 = p0;
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction5();
+  INIT_ATTRIBUTES__parser___ReduceAction5(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_parser___ReduceAction5(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___ReduceAction6[55] = {
+  {(bigint) 659 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReduceAction6" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction6 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction6 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 659 /* 5: ReduceAction6 < ReduceAction6: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81543,7 +78656,7 @@ const classtable_elt_t VFT_parser___Parser[60] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: Parser < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction6 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -81559,6 +78672,8 @@ const classtable_elt_t VFT_parser___Parser[60] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -81572,111 +78687,86 @@ const classtable_elt_t VFT_parser___Parser[60] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: Parser < TablesCapable: superclass init_table position */},
-  {(bigint) parser___tables___TablesCapable___lexer_goto},
-  {(bigint) parser___tables___TablesCapable___lexer_accept},
-  {(bigint) parser___tables___TablesCapable___parser_goto},
-  {(bigint) parser___tables___TablesCapable___parser_action},
-  {(bigint) 2 /* 52: Parser < Parser: superclass init_table position */},
-  {(bigint) parser___Parser___init},
-  {(bigint) parser___Parser___go_to},
-  {(bigint) parser___Parser___push},
-  {(bigint) parser___Parser___state},
-  {(bigint) parser___Parser___pop},
-  {(bigint) parser___Parser___parse},
-  {(bigint) parser___Parser___build_reduce_table},
+  {(bigint) 0 /* 50: ReduceAction6 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction6___action},
+  {(bigint) parser___ReduceAction___concat},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 54: ReduceAction6 < ReduceAction6: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute Parser::_lexer */
-/* 3: Attribute Parser::_stack */
-/* 4: Attribute Parser::_stack_pos */
-/* 5: Attribute Parser::_reduce_table */
-void INIT_ATTRIBUTES__parser___Parser(val_t p0){
+/* 2: Attribute ReduceAction6::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction6(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___Parser;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction6;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___Parser(void)
+val_t NEW_parser___ReduceAction6(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_parser___Parser;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction6;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___Parser(val_t p0){
+void CHECKNEW_parser___ReduceAction6(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___Parser;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction6;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___Parser____lexer(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_lexer", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___Parser____stack(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_stack", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___Parser____stack_pos(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_stack_pos", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___Parser____reduce_table(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_reduce_table", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_Parser_parser___Parser___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ReduceAction6_parser___ReduceAction___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 33;
-  fra.me.meth = LOCATE_NEW_Parser_parser___Parser___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction6_parser___ReduceAction___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser.nit:33 */
-  fra.me.REG[1] = NEW_parser___Parser();
-  INIT_ATTRIBUTES__parser___Parser(fra.me.REG[1]);
-  parser___Parser___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_parser___Parser(fra.me.REG[1]);
+  REGB0 = p0;
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction6();
+  INIT_ATTRIBUTES__parser___ReduceAction6(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_parser___ReduceAction6(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ComputeProdLocationVisitor[54] = {
-  {(bigint) 2327 /* 0: Identity */},
-  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ComputeProdLocationVisitor" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ComputeProdLocationVisitor < Object: superclass typecheck marker */},
-  {(bigint) 15 /* 4: ComputeProdLocationVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 2327 /* 5: ComputeProdLocationVisitor < ComputeProdLocationVisitor: superclass typecheck marker */},
+const classtable_elt_t VFT_parser___ReduceAction7[55] = {
+  {(bigint) 607 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReduceAction7" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction7 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction7 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 607 /* 5: ReduceAction7 < ReduceAction7: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81689,7 +78779,7 @@ const classtable_elt_t VFT_parser___ComputeProdLocationVisitor[54] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ComputeProdLocationVisitor < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction7 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -81705,6 +78795,8 @@ const classtable_elt_t VFT_parser___ComputeProdLocationVisitor[54] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -81718,117 +78810,86 @@ const classtable_elt_t VFT_parser___ComputeProdLocationVisitor[54] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ComputeProdLocationVisitor < Visitor: superclass init_table position */},
-  {(bigint) parser___ComputeProdLocationVisitor___visit},
-  {(bigint) parser___parser_prod___Visitor___enter_visit},
-  {(bigint) parser___parser_prod___Visitor___current_node},
-  {(bigint) parser___parser_prod___Visitor___init},
-  {(bigint) 2 /* 52: ComputeProdLocationVisitor < ComputeProdLocationVisitor: superclass init_table position */},
-  {(bigint) parser___ComputeProdLocationVisitor___init},
+  {(bigint) 0 /* 50: ReduceAction7 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction7___action},
+  {(bigint) parser___ReduceAction___concat},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 54: ReduceAction7 < ReduceAction7: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ComputeProdLocationVisitor::_current_node */
-/* 3: Attribute ComputeProdLocationVisitor::_need_first_prods */
-/* 4: Attribute ComputeProdLocationVisitor::_need_after_epsilons */
-/* 5: Attribute ComputeProdLocationVisitor::_need_before_epsilons */
-/* 6: Attribute ComputeProdLocationVisitor::_last_location */
-void INIT_ATTRIBUTES__parser___ComputeProdLocationVisitor(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+/* 2: Attribute ReduceAction7::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction7(val_t p0){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ComputeProdLocationVisitor;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction7;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser.nit:918 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser.nit:921 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser.nit:924 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser.nit:926 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___ComputeProdLocationVisitor____last_location(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:66 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ComputeProdLocationVisitor(void)
+val_t NEW_parser___ReduceAction7(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_parser___ComputeProdLocationVisitor;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction7;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ComputeProdLocationVisitor(val_t p0){
+void CHECKNEW_parser___ReduceAction7(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ComputeProdLocationVisitor;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction7;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_need_first_prods", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_need_before_epsilons", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ComputeProdLocationVisitor_parser___ComputeProdLocationVisitor___init(void){
+val_t NEW_ReduceAction7_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 997;
-  fra.me.meth = LOCATE_NEW_ComputeProdLocationVisitor_parser___ComputeProdLocationVisitor___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction7_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser.nit:997 */
-  fra.me.REG[0] = NEW_parser___ComputeProdLocationVisitor();
-  INIT_ATTRIBUTES__parser___ComputeProdLocationVisitor(fra.me.REG[0]);
-  parser___ComputeProdLocationVisitor___init(fra.me.REG[0], init_table);
-  CHECKNEW_parser___ComputeProdLocationVisitor(fra.me.REG[0]);
+  REGB0 = p0;
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction7();
+  INIT_ATTRIBUTES__parser___ReduceAction7(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_parser___ReduceAction7(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction0[52] = {
-  {(bigint) 2051 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction8[55] = {
+  {(bigint) 447 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction0" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction0 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction0 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2051 /* 5: ReduceAction0 < ReduceAction0: superclass typecheck marker */},
+  {(bigint) "ReduceAction8" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction8 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction8 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 447 /* 5: ReduceAction8 < ReduceAction8: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81841,7 +78902,7 @@ const classtable_elt_t VFT_parser___ReduceAction0[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction0 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction8 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -81857,6 +78918,8 @@ const classtable_elt_t VFT_parser___ReduceAction0[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -81870,44 +78933,44 @@ const classtable_elt_t VFT_parser___ReduceAction0[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction0 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction0___action},
+  {(bigint) 0 /* 50: ReduceAction8 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction8___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction0 < ReduceAction0: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction8 < ReduceAction8: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction0::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction0(val_t p0){
+/* 2: Attribute ReduceAction8::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction8(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction8;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction0(void)
+val_t NEW_parser___ReduceAction8(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction0;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction8;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction0(val_t p0){
+void CHECKNEW_parser___ReduceAction8(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction0;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction8;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -81920,35 +78983,36 @@ void CHECKNEW_parser___ReduceAction0(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction0_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction8_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction0_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction8_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction0();
-  INIT_ATTRIBUTES__parser___ReduceAction0(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction8();
+  INIT_ATTRIBUTES__parser___ReduceAction8(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction0(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction8(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction1[52] = {
-  {(bigint) 2047 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction9[55] = {
+  {(bigint) 403 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction1" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction1 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction1 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2047 /* 5: ReduceAction1 < ReduceAction1: superclass typecheck marker */},
+  {(bigint) "ReduceAction9" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction9 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction9 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 403 /* 5: ReduceAction9 < ReduceAction9: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81961,7 +79025,7 @@ const classtable_elt_t VFT_parser___ReduceAction1[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction1 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction9 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -81977,6 +79041,8 @@ const classtable_elt_t VFT_parser___ReduceAction1[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -81990,44 +79056,44 @@ const classtable_elt_t VFT_parser___ReduceAction1[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction1 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction1___action},
+  {(bigint) 0 /* 50: ReduceAction9 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction9___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction1 < ReduceAction1: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction9 < ReduceAction9: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction1::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction1(val_t p0){
+/* 2: Attribute ReduceAction9::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction9(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction1;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction9;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction1(void)
+val_t NEW_parser___ReduceAction9(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction1;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction9;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction1(val_t p0){
+void CHECKNEW_parser___ReduceAction9(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction1;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction9;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -82040,35 +79106,36 @@ void CHECKNEW_parser___ReduceAction1(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction1_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction9_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction1_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction9_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction1();
-  INIT_ATTRIBUTES__parser___ReduceAction1(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction9();
+  INIT_ATTRIBUTES__parser___ReduceAction9(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction1(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction9(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction2[52] = {
-  {(bigint) 1603 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction10[55] = {
+  {(bigint) 2079 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction2" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction2 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction2 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1603 /* 5: ReduceAction2 < ReduceAction2: superclass typecheck marker */},
+  {(bigint) "ReduceAction10" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction10 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction10 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2079 /* 5: ReduceAction10 < ReduceAction10: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82081,7 +79148,7 @@ const classtable_elt_t VFT_parser___ReduceAction2[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction2 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction10 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -82097,6 +79164,8 @@ const classtable_elt_t VFT_parser___ReduceAction2[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -82110,44 +79179,44 @@ const classtable_elt_t VFT_parser___ReduceAction2[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction2 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction2___action},
+  {(bigint) 0 /* 50: ReduceAction10 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction10___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction2 < ReduceAction2: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction10 < ReduceAction10: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction2::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction2(val_t p0){
+/* 2: Attribute ReduceAction10::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction10(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction2;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction10;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction2(void)
+val_t NEW_parser___ReduceAction10(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction2;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction10;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction2(val_t p0){
+void CHECKNEW_parser___ReduceAction10(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction2;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction10;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -82160,35 +79229,36 @@ void CHECKNEW_parser___ReduceAction2(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction2_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction10_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction2_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction10_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction2();
-  INIT_ATTRIBUTES__parser___ReduceAction2(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction10();
+  INIT_ATTRIBUTES__parser___ReduceAction10(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction2(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction10(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction3[52] = {
-  {(bigint) 1199 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction11[55] = {
+  {(bigint) 2035 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction3" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction3 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction3 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1199 /* 5: ReduceAction3 < ReduceAction3: superclass typecheck marker */},
+  {(bigint) "ReduceAction11" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction11 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction11 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2035 /* 5: ReduceAction11 < ReduceAction11: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82201,7 +79271,7 @@ const classtable_elt_t VFT_parser___ReduceAction3[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction3 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction11 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -82217,6 +79287,8 @@ const classtable_elt_t VFT_parser___ReduceAction3[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -82230,44 +79302,44 @@ const classtable_elt_t VFT_parser___ReduceAction3[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction3 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction3___action},
+  {(bigint) 0 /* 50: ReduceAction11 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction11___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction3 < ReduceAction3: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction11 < ReduceAction11: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction3::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction3(val_t p0){
+/* 2: Attribute ReduceAction11::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction11(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction3;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction11;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction3(void)
+val_t NEW_parser___ReduceAction11(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction3;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction11;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction3(val_t p0){
+void CHECKNEW_parser___ReduceAction11(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction3;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction11;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -82280,35 +79352,36 @@ void CHECKNEW_parser___ReduceAction3(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction3_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction11_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction3_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction11_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction3();
-  INIT_ATTRIBUTES__parser___ReduceAction3(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction11();
+  INIT_ATTRIBUTES__parser___ReduceAction11(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction3(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction11(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction4[52] = {
-  {(bigint) 847 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction12[55] = {
+  {(bigint) 1991 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction4" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction4 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction4 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 847 /* 5: ReduceAction4 < ReduceAction4: superclass typecheck marker */},
+  {(bigint) "ReduceAction12" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction12 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction12 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1991 /* 5: ReduceAction12 < ReduceAction12: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82321,7 +79394,7 @@ const classtable_elt_t VFT_parser___ReduceAction4[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction4 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction12 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -82337,6 +79410,8 @@ const classtable_elt_t VFT_parser___ReduceAction4[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -82350,44 +79425,44 @@ const classtable_elt_t VFT_parser___ReduceAction4[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction4 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction4___action},
+  {(bigint) 0 /* 50: ReduceAction12 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction12___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction4 < ReduceAction4: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction12 < ReduceAction12: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction4::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction4(val_t p0){
+/* 2: Attribute ReduceAction12::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction12(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction4;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction12;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction4(void)
+val_t NEW_parser___ReduceAction12(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction4;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction12;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction4(val_t p0){
+void CHECKNEW_parser___ReduceAction12(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction4;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction12;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -82400,35 +79475,36 @@ void CHECKNEW_parser___ReduceAction4(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction4_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction12_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction4_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction12_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction4();
-  INIT_ATTRIBUTES__parser___ReduceAction4(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction12();
+  INIT_ATTRIBUTES__parser___ReduceAction12(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction4(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction12(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction5[52] = {
-  {(bigint) 711 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction13[55] = {
+  {(bigint) 1947 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction5" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction5 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction5 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 711 /* 5: ReduceAction5 < ReduceAction5: superclass typecheck marker */},
+  {(bigint) "ReduceAction13" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction13 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction13 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1947 /* 5: ReduceAction13 < ReduceAction13: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82441,7 +79517,7 @@ const classtable_elt_t VFT_parser___ReduceAction5[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction5 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction13 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -82457,6 +79533,8 @@ const classtable_elt_t VFT_parser___ReduceAction5[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -82470,44 +79548,44 @@ const classtable_elt_t VFT_parser___ReduceAction5[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction5 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction5___action},
+  {(bigint) 0 /* 50: ReduceAction13 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction13___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction5 < ReduceAction5: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction13 < ReduceAction13: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction5::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction5(val_t p0){
+/* 2: Attribute ReduceAction13::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction13(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction5;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction13;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction5(void)
+val_t NEW_parser___ReduceAction13(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction5;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction13;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction5(val_t p0){
+void CHECKNEW_parser___ReduceAction13(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction5;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction13;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -82520,35 +79598,36 @@ void CHECKNEW_parser___ReduceAction5(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction5_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction13_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction5_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction13_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction5();
-  INIT_ATTRIBUTES__parser___ReduceAction5(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction13();
+  INIT_ATTRIBUTES__parser___ReduceAction13(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction5(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction13(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction6[52] = {
-  {(bigint) 667 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction14[55] = {
+  {(bigint) 1903 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction6" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction6 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction6 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 667 /* 5: ReduceAction6 < ReduceAction6: superclass typecheck marker */},
+  {(bigint) "ReduceAction14" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction14 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction14 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1903 /* 5: ReduceAction14 < ReduceAction14: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82561,7 +79640,7 @@ const classtable_elt_t VFT_parser___ReduceAction6[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction6 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction14 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -82577,6 +79656,8 @@ const classtable_elt_t VFT_parser___ReduceAction6[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -82590,44 +79671,44 @@ const classtable_elt_t VFT_parser___ReduceAction6[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction6 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction6___action},
+  {(bigint) 0 /* 50: ReduceAction14 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction14___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction6 < ReduceAction6: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction14 < ReduceAction14: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction6::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction6(val_t p0){
+/* 2: Attribute ReduceAction14::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction14(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction6;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction14;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction6(void)
+val_t NEW_parser___ReduceAction14(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction6;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction14;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction6(val_t p0){
+void CHECKNEW_parser___ReduceAction14(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction6;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction14;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -82640,35 +79721,36 @@ void CHECKNEW_parser___ReduceAction6(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction6_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction14_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction6_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction14_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction6();
-  INIT_ATTRIBUTES__parser___ReduceAction6(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction14();
+  INIT_ATTRIBUTES__parser___ReduceAction14(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction6(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction14(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction7[52] = {
-  {(bigint) 607 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction15[55] = {
+  {(bigint) 1859 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction7" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction7 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction7 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 607 /* 5: ReduceAction7 < ReduceAction7: superclass typecheck marker */},
+  {(bigint) "ReduceAction15" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction15 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction15 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1859 /* 5: ReduceAction15 < ReduceAction15: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82681,7 +79763,7 @@ const classtable_elt_t VFT_parser___ReduceAction7[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction7 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction15 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -82697,6 +79779,8 @@ const classtable_elt_t VFT_parser___ReduceAction7[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -82710,44 +79794,44 @@ const classtable_elt_t VFT_parser___ReduceAction7[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction7 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction7___action},
+  {(bigint) 0 /* 50: ReduceAction15 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction15___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction7 < ReduceAction7: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction15 < ReduceAction15: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction7::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction7(val_t p0){
+/* 2: Attribute ReduceAction15::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction15(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction7;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction15;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction7(void)
+val_t NEW_parser___ReduceAction15(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction7;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction15;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction7(val_t p0){
+void CHECKNEW_parser___ReduceAction15(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction7;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction15;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -82760,35 +79844,36 @@ void CHECKNEW_parser___ReduceAction7(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction7_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction15_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction7_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction15_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction7();
-  INIT_ATTRIBUTES__parser___ReduceAction7(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction15();
+  INIT_ATTRIBUTES__parser___ReduceAction15(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction7(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction15(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction8[52] = {
-  {(bigint) 455 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction16[55] = {
+  {(bigint) 1815 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction8" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction8 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction8 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 455 /* 5: ReduceAction8 < ReduceAction8: superclass typecheck marker */},
+  {(bigint) "ReduceAction16" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction16 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction16 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1815 /* 5: ReduceAction16 < ReduceAction16: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82801,7 +79886,7 @@ const classtable_elt_t VFT_parser___ReduceAction8[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction8 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction16 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -82817,6 +79902,8 @@ const classtable_elt_t VFT_parser___ReduceAction8[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -82830,44 +79917,44 @@ const classtable_elt_t VFT_parser___ReduceAction8[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction8 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction8___action},
+  {(bigint) 0 /* 50: ReduceAction16 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction16___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction8 < ReduceAction8: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction16 < ReduceAction16: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction8::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction8(val_t p0){
+/* 2: Attribute ReduceAction16::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction16(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction8;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction16;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction8(void)
+val_t NEW_parser___ReduceAction16(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction8;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction16;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction8(val_t p0){
+void CHECKNEW_parser___ReduceAction16(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction8;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction16;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -82880,35 +79967,36 @@ void CHECKNEW_parser___ReduceAction8(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction8_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction16_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction8_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction16_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction8();
-  INIT_ATTRIBUTES__parser___ReduceAction8(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction16();
+  INIT_ATTRIBUTES__parser___ReduceAction16(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction8(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction16(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction9[52] = {
-  {(bigint) 411 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction17[55] = {
+  {(bigint) 1771 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction9" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction9 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction9 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 411 /* 5: ReduceAction9 < ReduceAction9: superclass typecheck marker */},
+  {(bigint) "ReduceAction17" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction17 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction17 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1771 /* 5: ReduceAction17 < ReduceAction17: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82921,7 +80009,7 @@ const classtable_elt_t VFT_parser___ReduceAction9[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction9 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction17 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -82937,6 +80025,8 @@ const classtable_elt_t VFT_parser___ReduceAction9[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -82950,44 +80040,44 @@ const classtable_elt_t VFT_parser___ReduceAction9[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction9 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction9___action},
+  {(bigint) 0 /* 50: ReduceAction17 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction17___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction9 < ReduceAction9: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction17 < ReduceAction17: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction9::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction9(val_t p0){
+/* 2: Attribute ReduceAction17::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction17(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction9;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction17;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction9(void)
+val_t NEW_parser___ReduceAction17(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction9;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction17;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction9(val_t p0){
+void CHECKNEW_parser___ReduceAction17(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction9;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction17;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -83000,35 +80090,36 @@ void CHECKNEW_parser___ReduceAction9(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction9_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction17_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction9_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction17_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction9();
-  INIT_ATTRIBUTES__parser___ReduceAction9(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction17();
+  INIT_ATTRIBUTES__parser___ReduceAction17(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction9(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction17(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction10[52] = {
-  {(bigint) 2043 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction18[55] = {
+  {(bigint) 1727 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction10" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction10 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction10 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2043 /* 5: ReduceAction10 < ReduceAction10: superclass typecheck marker */},
+  {(bigint) "ReduceAction18" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction18 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction18 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1727 /* 5: ReduceAction18 < ReduceAction18: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83041,7 +80132,7 @@ const classtable_elt_t VFT_parser___ReduceAction10[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction10 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction18 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -83057,6 +80148,8 @@ const classtable_elt_t VFT_parser___ReduceAction10[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -83070,44 +80163,44 @@ const classtable_elt_t VFT_parser___ReduceAction10[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction10 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction10___action},
+  {(bigint) 0 /* 50: ReduceAction18 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction18___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction10 < ReduceAction10: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction18 < ReduceAction18: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction10::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction10(val_t p0){
+/* 2: Attribute ReduceAction18::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction18(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction10;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction18;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction10(void)
+val_t NEW_parser___ReduceAction18(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction10;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction18;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction10(val_t p0){
+void CHECKNEW_parser___ReduceAction18(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction10;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction18;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -83120,35 +80213,36 @@ void CHECKNEW_parser___ReduceAction10(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction10_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction18_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction10_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction18_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction10();
-  INIT_ATTRIBUTES__parser___ReduceAction10(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction18();
+  INIT_ATTRIBUTES__parser___ReduceAction18(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction10(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction18(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction11[52] = {
-  {(bigint) 1999 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction19[55] = {
+  {(bigint) 1683 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction11" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction11 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction11 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1999 /* 5: ReduceAction11 < ReduceAction11: superclass typecheck marker */},
+  {(bigint) "ReduceAction19" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction19 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction19 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1683 /* 5: ReduceAction19 < ReduceAction19: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83161,7 +80255,7 @@ const classtable_elt_t VFT_parser___ReduceAction11[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction11 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction19 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -83177,6 +80271,8 @@ const classtable_elt_t VFT_parser___ReduceAction11[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -83190,44 +80286,44 @@ const classtable_elt_t VFT_parser___ReduceAction11[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction11 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction11___action},
+  {(bigint) 0 /* 50: ReduceAction19 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction19___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction11 < ReduceAction11: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction19 < ReduceAction19: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction11::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction11(val_t p0){
+/* 2: Attribute ReduceAction19::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction19(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction11;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction19;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction11(void)
+val_t NEW_parser___ReduceAction19(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction11;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction19;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction11(val_t p0){
+void CHECKNEW_parser___ReduceAction19(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction11;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction19;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -83240,35 +80336,36 @@ void CHECKNEW_parser___ReduceAction11(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction11_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction19_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction11_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction19_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction11();
-  INIT_ATTRIBUTES__parser___ReduceAction11(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction19();
+  INIT_ATTRIBUTES__parser___ReduceAction19(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction11(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction19(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction12[52] = {
-  {(bigint) 1955 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction20[55] = {
+  {(bigint) 1635 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction12" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction12 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction12 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1955 /* 5: ReduceAction12 < ReduceAction12: superclass typecheck marker */},
+  {(bigint) "ReduceAction20" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction20 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction20 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1635 /* 5: ReduceAction20 < ReduceAction20: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83281,7 +80378,7 @@ const classtable_elt_t VFT_parser___ReduceAction12[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction12 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction20 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -83297,6 +80394,8 @@ const classtable_elt_t VFT_parser___ReduceAction12[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -83310,44 +80409,44 @@ const classtable_elt_t VFT_parser___ReduceAction12[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction12 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction12___action},
+  {(bigint) 0 /* 50: ReduceAction20 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction20___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction12 < ReduceAction12: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction20 < ReduceAction20: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction12::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction12(val_t p0){
+/* 2: Attribute ReduceAction20::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction20(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction12;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction20;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction12(void)
+val_t NEW_parser___ReduceAction20(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction12;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction20;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction12(val_t p0){
+void CHECKNEW_parser___ReduceAction20(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction12;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction20;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -83360,35 +80459,36 @@ void CHECKNEW_parser___ReduceAction12(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction12_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction20_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction12_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction20_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction12();
-  INIT_ATTRIBUTES__parser___ReduceAction12(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction20();
+  INIT_ATTRIBUTES__parser___ReduceAction20(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction12(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction20(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction13[52] = {
-  {(bigint) 1911 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction21[55] = {
+  {(bigint) 1591 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction13" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction13 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction13 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1911 /* 5: ReduceAction13 < ReduceAction13: superclass typecheck marker */},
+  {(bigint) "ReduceAction21" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction21 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction21 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1591 /* 5: ReduceAction21 < ReduceAction21: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83401,7 +80501,7 @@ const classtable_elt_t VFT_parser___ReduceAction13[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction13 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction21 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -83417,6 +80517,8 @@ const classtable_elt_t VFT_parser___ReduceAction13[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -83430,44 +80532,44 @@ const classtable_elt_t VFT_parser___ReduceAction13[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction13 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction13___action},
+  {(bigint) 0 /* 50: ReduceAction21 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction21___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction13 < ReduceAction13: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction21 < ReduceAction21: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction13::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction13(val_t p0){
+/* 2: Attribute ReduceAction21::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction21(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction13;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction21;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction13(void)
+val_t NEW_parser___ReduceAction21(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction13;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction21;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction13(val_t p0){
+void CHECKNEW_parser___ReduceAction21(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction13;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction21;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -83480,35 +80582,36 @@ void CHECKNEW_parser___ReduceAction13(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction13_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction21_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction13_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction21_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction13();
-  INIT_ATTRIBUTES__parser___ReduceAction13(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction21();
+  INIT_ATTRIBUTES__parser___ReduceAction21(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction13(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction21(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction14[52] = {
-  {(bigint) 1867 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction22[55] = {
+  {(bigint) 1547 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction14" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction14 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction14 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1867 /* 5: ReduceAction14 < ReduceAction14: superclass typecheck marker */},
+  {(bigint) "ReduceAction22" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction22 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction22 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1547 /* 5: ReduceAction22 < ReduceAction22: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83521,7 +80624,7 @@ const classtable_elt_t VFT_parser___ReduceAction14[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction14 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction22 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -83537,6 +80640,8 @@ const classtable_elt_t VFT_parser___ReduceAction14[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -83550,44 +80655,44 @@ const classtable_elt_t VFT_parser___ReduceAction14[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction14 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction14___action},
+  {(bigint) 0 /* 50: ReduceAction22 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction22___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction14 < ReduceAction14: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction22 < ReduceAction22: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction14::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction14(val_t p0){
+/* 2: Attribute ReduceAction22::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction22(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction14;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction22;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction14(void)
+val_t NEW_parser___ReduceAction22(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction14;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction22;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction14(val_t p0){
+void CHECKNEW_parser___ReduceAction22(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction14;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction22;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -83600,35 +80705,36 @@ void CHECKNEW_parser___ReduceAction14(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction14_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction22_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction14_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction22_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction14();
-  INIT_ATTRIBUTES__parser___ReduceAction14(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction22();
+  INIT_ATTRIBUTES__parser___ReduceAction22(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction14(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction22(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction15[52] = {
-  {(bigint) 1823 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction23[55] = {
+  {(bigint) 1507 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction15" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction15 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction15 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1823 /* 5: ReduceAction15 < ReduceAction15: superclass typecheck marker */},
+  {(bigint) "ReduceAction23" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction23 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction23 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1507 /* 5: ReduceAction23 < ReduceAction23: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83641,7 +80747,7 @@ const classtable_elt_t VFT_parser___ReduceAction15[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction15 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction23 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -83657,6 +80763,8 @@ const classtable_elt_t VFT_parser___ReduceAction15[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -83670,44 +80778,44 @@ const classtable_elt_t VFT_parser___ReduceAction15[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction15 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction15___action},
+  {(bigint) 0 /* 50: ReduceAction23 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction23___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction15 < ReduceAction15: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction23 < ReduceAction23: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction15::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction15(val_t p0){
+/* 2: Attribute ReduceAction23::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction23(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction15;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction23;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction15(void)
+val_t NEW_parser___ReduceAction23(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction15;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction23;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction15(val_t p0){
+void CHECKNEW_parser___ReduceAction23(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction15;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction23;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -83720,35 +80828,36 @@ void CHECKNEW_parser___ReduceAction15(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction15_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction23_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction15_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction23_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction15();
-  INIT_ATTRIBUTES__parser___ReduceAction15(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction23();
+  INIT_ATTRIBUTES__parser___ReduceAction23(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction15(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction23(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction16[52] = {
-  {(bigint) 1779 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction24[55] = {
+  {(bigint) 1467 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction16" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction16 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction16 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1779 /* 5: ReduceAction16 < ReduceAction16: superclass typecheck marker */},
+  {(bigint) "ReduceAction24" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction24 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction24 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1467 /* 5: ReduceAction24 < ReduceAction24: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83761,7 +80870,7 @@ const classtable_elt_t VFT_parser___ReduceAction16[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction16 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction24 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -83777,6 +80886,8 @@ const classtable_elt_t VFT_parser___ReduceAction16[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -83790,44 +80901,44 @@ const classtable_elt_t VFT_parser___ReduceAction16[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction16 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction16___action},
+  {(bigint) 0 /* 50: ReduceAction24 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction24___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction16 < ReduceAction16: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction24 < ReduceAction24: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction16::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction16(val_t p0){
+/* 2: Attribute ReduceAction24::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction24(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction16;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction24;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction16(void)
+val_t NEW_parser___ReduceAction24(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction16;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction24;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction16(val_t p0){
+void CHECKNEW_parser___ReduceAction24(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction16;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction24;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -83840,35 +80951,36 @@ void CHECKNEW_parser___ReduceAction16(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction16_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction24_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction16_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction24_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction16();
-  INIT_ATTRIBUTES__parser___ReduceAction16(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction24();
+  INIT_ATTRIBUTES__parser___ReduceAction24(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction16(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction24(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction17[52] = {
-  {(bigint) 1735 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction25[55] = {
+  {(bigint) 1423 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction17" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction17 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction17 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1735 /* 5: ReduceAction17 < ReduceAction17: superclass typecheck marker */},
+  {(bigint) "ReduceAction25" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction25 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction25 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1423 /* 5: ReduceAction25 < ReduceAction25: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83881,7 +80993,7 @@ const classtable_elt_t VFT_parser___ReduceAction17[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction17 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction25 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -83897,6 +81009,8 @@ const classtable_elt_t VFT_parser___ReduceAction17[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -83910,44 +81024,44 @@ const classtable_elt_t VFT_parser___ReduceAction17[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction17 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction17___action},
+  {(bigint) 0 /* 50: ReduceAction25 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction25___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction17 < ReduceAction17: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction25 < ReduceAction25: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction17::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction17(val_t p0){
+/* 2: Attribute ReduceAction25::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction25(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction17;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction25;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction17(void)
+val_t NEW_parser___ReduceAction25(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction17;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction25;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction17(val_t p0){
+void CHECKNEW_parser___ReduceAction25(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction17;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction25;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -83960,35 +81074,36 @@ void CHECKNEW_parser___ReduceAction17(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction17_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction25_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction17_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction25_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction17();
-  INIT_ATTRIBUTES__parser___ReduceAction17(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction25();
+  INIT_ATTRIBUTES__parser___ReduceAction25(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction17(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction25(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction18[52] = {
-  {(bigint) 1691 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction26[55] = {
+  {(bigint) 1391 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction18" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction18 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction18 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1691 /* 5: ReduceAction18 < ReduceAction18: superclass typecheck marker */},
+  {(bigint) "ReduceAction26" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction26 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction26 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1391 /* 5: ReduceAction26 < ReduceAction26: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84001,7 +81116,7 @@ const classtable_elt_t VFT_parser___ReduceAction18[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction18 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction26 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -84017,6 +81132,8 @@ const classtable_elt_t VFT_parser___ReduceAction18[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -84030,44 +81147,44 @@ const classtable_elt_t VFT_parser___ReduceAction18[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction18 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction18___action},
+  {(bigint) 0 /* 50: ReduceAction26 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction26___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction18 < ReduceAction18: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction26 < ReduceAction26: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction18::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction18(val_t p0){
+/* 2: Attribute ReduceAction26::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction26(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction18;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction26;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction18(void)
+val_t NEW_parser___ReduceAction26(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction18;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction26;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction18(val_t p0){
+void CHECKNEW_parser___ReduceAction26(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction18;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction26;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -84080,35 +81197,36 @@ void CHECKNEW_parser___ReduceAction18(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction18_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction26_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction18_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction26_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction18();
-  INIT_ATTRIBUTES__parser___ReduceAction18(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction26();
+  INIT_ATTRIBUTES__parser___ReduceAction26(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction18(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction26(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction19[52] = {
-  {(bigint) 1647 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction27[55] = {
+  {(bigint) 1371 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction19" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction19 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction19 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1647 /* 5: ReduceAction19 < ReduceAction19: superclass typecheck marker */},
+  {(bigint) "ReduceAction27" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction27 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction27 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1371 /* 5: ReduceAction27 < ReduceAction27: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84121,7 +81239,7 @@ const classtable_elt_t VFT_parser___ReduceAction19[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction19 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction27 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -84137,6 +81255,8 @@ const classtable_elt_t VFT_parser___ReduceAction19[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -84150,44 +81270,44 @@ const classtable_elt_t VFT_parser___ReduceAction19[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction19 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction19___action},
+  {(bigint) 0 /* 50: ReduceAction27 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction27___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction19 < ReduceAction19: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction27 < ReduceAction27: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction19::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction19(val_t p0){
+/* 2: Attribute ReduceAction27::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction27(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction19;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction27;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction19(void)
+val_t NEW_parser___ReduceAction27(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction19;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction27;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction19(val_t p0){
+void CHECKNEW_parser___ReduceAction27(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction19;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction27;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -84200,35 +81320,36 @@ void CHECKNEW_parser___ReduceAction19(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction19_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction27_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction19_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction27_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction19();
-  INIT_ATTRIBUTES__parser___ReduceAction19(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction27();
+  INIT_ATTRIBUTES__parser___ReduceAction27(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction19(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction27(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction20[52] = {
-  {(bigint) 1599 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction28[55] = {
+  {(bigint) 1327 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction20" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction20 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction20 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1599 /* 5: ReduceAction20 < ReduceAction20: superclass typecheck marker */},
+  {(bigint) "ReduceAction28" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction28 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction28 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1327 /* 5: ReduceAction28 < ReduceAction28: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84241,7 +81362,7 @@ const classtable_elt_t VFT_parser___ReduceAction20[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction20 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction28 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -84257,6 +81378,8 @@ const classtable_elt_t VFT_parser___ReduceAction20[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -84270,44 +81393,44 @@ const classtable_elt_t VFT_parser___ReduceAction20[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction20 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction20___action},
+  {(bigint) 0 /* 50: ReduceAction28 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction28___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction20 < ReduceAction20: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction28 < ReduceAction28: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction20::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction20(val_t p0){
+/* 2: Attribute ReduceAction28::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction28(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction20;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction28;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction20(void)
+val_t NEW_parser___ReduceAction28(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction20;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction28;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction20(val_t p0){
+void CHECKNEW_parser___ReduceAction28(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction20;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction28;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -84320,35 +81443,36 @@ void CHECKNEW_parser___ReduceAction20(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction20_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction28_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction20_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction28_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction20();
-  INIT_ATTRIBUTES__parser___ReduceAction20(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction28();
+  INIT_ATTRIBUTES__parser___ReduceAction28(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction20(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction28(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction21[52] = {
-  {(bigint) 1555 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction29[55] = {
+  {(bigint) 1283 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction21" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction21 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction21 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1555 /* 5: ReduceAction21 < ReduceAction21: superclass typecheck marker */},
+  {(bigint) "ReduceAction29" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction29 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction29 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1283 /* 5: ReduceAction29 < ReduceAction29: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84361,7 +81485,7 @@ const classtable_elt_t VFT_parser___ReduceAction21[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction21 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction29 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -84377,6 +81501,8 @@ const classtable_elt_t VFT_parser___ReduceAction21[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -84390,44 +81516,44 @@ const classtable_elt_t VFT_parser___ReduceAction21[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction21 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction21___action},
+  {(bigint) 0 /* 50: ReduceAction29 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction29___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction21 < ReduceAction21: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction29 < ReduceAction29: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction21::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction21(val_t p0){
+/* 2: Attribute ReduceAction29::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction29(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction21;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction29;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction21(void)
+val_t NEW_parser___ReduceAction29(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction21;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction29;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction21(val_t p0){
+void CHECKNEW_parser___ReduceAction29(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction21;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction29;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -84440,35 +81566,36 @@ void CHECKNEW_parser___ReduceAction21(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction21_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction29_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction21_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction29_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction21();
-  INIT_ATTRIBUTES__parser___ReduceAction21(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction29();
+  INIT_ATTRIBUTES__parser___ReduceAction29(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction21(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction29(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction22[52] = {
-  {(bigint) 1515 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction30[55] = {
+  {(bigint) 1235 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction22" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction22 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction22 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1515 /* 5: ReduceAction22 < ReduceAction22: superclass typecheck marker */},
+  {(bigint) "ReduceAction30" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction30 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction30 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1235 /* 5: ReduceAction30 < ReduceAction30: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84481,7 +81608,7 @@ const classtable_elt_t VFT_parser___ReduceAction22[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction22 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction30 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -84497,6 +81624,8 @@ const classtable_elt_t VFT_parser___ReduceAction22[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -84510,44 +81639,44 @@ const classtable_elt_t VFT_parser___ReduceAction22[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction22 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction22___action},
+  {(bigint) 0 /* 50: ReduceAction30 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction30___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction22 < ReduceAction22: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction30 < ReduceAction30: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction22::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction22(val_t p0){
+/* 2: Attribute ReduceAction30::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction30(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction22;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction30;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction22(void)
+val_t NEW_parser___ReduceAction30(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction22;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction30;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction22(val_t p0){
+void CHECKNEW_parser___ReduceAction30(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction22;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction30;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -84560,35 +81689,36 @@ void CHECKNEW_parser___ReduceAction22(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction22_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction30_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction22_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction30_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction22();
-  INIT_ATTRIBUTES__parser___ReduceAction22(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction30();
+  INIT_ATTRIBUTES__parser___ReduceAction30(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction22(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction30(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction23[52] = {
-  {(bigint) 1471 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction31[55] = {
+  {(bigint) 1191 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction23" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction23 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction23 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1471 /* 5: ReduceAction23 < ReduceAction23: superclass typecheck marker */},
+  {(bigint) "ReduceAction31" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction31 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction31 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1191 /* 5: ReduceAction31 < ReduceAction31: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84601,7 +81731,7 @@ const classtable_elt_t VFT_parser___ReduceAction23[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction23 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction31 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -84617,6 +81747,8 @@ const classtable_elt_t VFT_parser___ReduceAction23[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -84630,44 +81762,44 @@ const classtable_elt_t VFT_parser___ReduceAction23[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction23 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction23___action},
+  {(bigint) 0 /* 50: ReduceAction31 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction31___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction23 < ReduceAction23: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction31 < ReduceAction31: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction23::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction23(val_t p0){
+/* 2: Attribute ReduceAction31::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction31(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction23;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction31;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction23(void)
+val_t NEW_parser___ReduceAction31(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction23;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction31;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction23(val_t p0){
+void CHECKNEW_parser___ReduceAction31(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction23;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction31;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -84680,35 +81812,36 @@ void CHECKNEW_parser___ReduceAction23(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction23_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction31_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction23_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction31_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction23();
-  INIT_ATTRIBUTES__parser___ReduceAction23(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction31();
+  INIT_ATTRIBUTES__parser___ReduceAction31(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction23(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction31(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction24[52] = {
-  {(bigint) 1431 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction32[55] = {
+  {(bigint) 1147 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction24" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction24 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction24 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1431 /* 5: ReduceAction24 < ReduceAction24: superclass typecheck marker */},
+  {(bigint) "ReduceAction32" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction32 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction32 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1147 /* 5: ReduceAction32 < ReduceAction32: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84721,7 +81854,7 @@ const classtable_elt_t VFT_parser___ReduceAction24[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction24 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction32 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -84737,6 +81870,8 @@ const classtable_elt_t VFT_parser___ReduceAction24[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -84750,44 +81885,44 @@ const classtable_elt_t VFT_parser___ReduceAction24[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction24 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction24___action},
+  {(bigint) 0 /* 50: ReduceAction32 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction32___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction24 < ReduceAction24: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction32 < ReduceAction32: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction24::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction24(val_t p0){
+/* 2: Attribute ReduceAction32::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction32(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction24;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction32;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction24(void)
+val_t NEW_parser___ReduceAction32(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction24;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction32;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction24(val_t p0){
+void CHECKNEW_parser___ReduceAction32(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction24;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction32;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -84800,35 +81935,36 @@ void CHECKNEW_parser___ReduceAction24(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction24_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction32_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction24_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction32_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction24();
-  INIT_ATTRIBUTES__parser___ReduceAction24(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction32();
+  INIT_ATTRIBUTES__parser___ReduceAction32(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction24(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction32(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction25[52] = {
-  {(bigint) 1395 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction33[55] = {
+  {(bigint) 1111 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction25" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction25 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction25 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1395 /* 5: ReduceAction25 < ReduceAction25: superclass typecheck marker */},
+  {(bigint) "ReduceAction33" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction33 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction33 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1111 /* 5: ReduceAction33 < ReduceAction33: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84841,7 +81977,7 @@ const classtable_elt_t VFT_parser___ReduceAction25[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction25 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction33 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -84857,6 +81993,8 @@ const classtable_elt_t VFT_parser___ReduceAction25[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -84870,44 +82008,44 @@ const classtable_elt_t VFT_parser___ReduceAction25[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction25 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction25___action},
+  {(bigint) 0 /* 50: ReduceAction33 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction33___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction25 < ReduceAction25: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction33 < ReduceAction33: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction25::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction25(val_t p0){
+/* 2: Attribute ReduceAction33::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction33(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction25;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction33;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction25(void)
+val_t NEW_parser___ReduceAction33(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction25;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction33;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction25(val_t p0){
+void CHECKNEW_parser___ReduceAction33(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction25;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction33;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -84920,35 +82058,36 @@ void CHECKNEW_parser___ReduceAction25(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction25_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction33_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction25_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction33_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction25();
-  INIT_ATTRIBUTES__parser___ReduceAction25(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction33();
+  INIT_ATTRIBUTES__parser___ReduceAction33(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction25(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction33(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction26[52] = {
-  {(bigint) 1363 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction34[55] = {
+  {(bigint) 1075 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction26" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction26 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction26 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1363 /* 5: ReduceAction26 < ReduceAction26: superclass typecheck marker */},
+  {(bigint) "ReduceAction34" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction34 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction34 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1075 /* 5: ReduceAction34 < ReduceAction34: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84961,7 +82100,7 @@ const classtable_elt_t VFT_parser___ReduceAction26[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction26 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction34 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -84977,6 +82116,8 @@ const classtable_elt_t VFT_parser___ReduceAction26[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -84990,44 +82131,44 @@ const classtable_elt_t VFT_parser___ReduceAction26[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction26 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction26___action},
+  {(bigint) 0 /* 50: ReduceAction34 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction34___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction26 < ReduceAction26: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction34 < ReduceAction34: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction26::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction26(val_t p0){
+/* 2: Attribute ReduceAction34::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction34(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction26;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction34;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction26(void)
+val_t NEW_parser___ReduceAction34(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction26;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction34;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction26(val_t p0){
+void CHECKNEW_parser___ReduceAction34(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction26;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction34;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -85040,35 +82181,36 @@ void CHECKNEW_parser___ReduceAction26(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction26_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction34_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction26_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction34_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction26();
-  INIT_ATTRIBUTES__parser___ReduceAction26(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction34();
+  INIT_ATTRIBUTES__parser___ReduceAction34(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction26(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction34(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction27[52] = {
-  {(bigint) 1331 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction35[55] = {
+  {(bigint) 1047 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction27" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction27 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction27 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1331 /* 5: ReduceAction27 < ReduceAction27: superclass typecheck marker */},
+  {(bigint) "ReduceAction35" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction35 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction35 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1047 /* 5: ReduceAction35 < ReduceAction35: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85081,7 +82223,7 @@ const classtable_elt_t VFT_parser___ReduceAction27[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction27 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction35 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -85097,6 +82239,8 @@ const classtable_elt_t VFT_parser___ReduceAction27[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -85110,44 +82254,44 @@ const classtable_elt_t VFT_parser___ReduceAction27[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction27 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction27___action},
+  {(bigint) 0 /* 50: ReduceAction35 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction35___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction27 < ReduceAction27: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction35 < ReduceAction35: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction27::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction27(val_t p0){
+/* 2: Attribute ReduceAction35::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction35(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction27;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction35;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction27(void)
+val_t NEW_parser___ReduceAction35(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction27;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction35;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction27(val_t p0){
+void CHECKNEW_parser___ReduceAction35(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction27;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction35;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -85160,35 +82304,36 @@ void CHECKNEW_parser___ReduceAction27(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction27_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction35_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction27_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction35_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction27();
-  INIT_ATTRIBUTES__parser___ReduceAction27(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction35();
+  INIT_ATTRIBUTES__parser___ReduceAction35(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction27(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction35(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction28[52] = {
-  {(bigint) 1287 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction36[55] = {
+  {(bigint) 1007 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction28" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction28 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction28 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1287 /* 5: ReduceAction28 < ReduceAction28: superclass typecheck marker */},
+  {(bigint) "ReduceAction36" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction36 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction36 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1007 /* 5: ReduceAction36 < ReduceAction36: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85201,7 +82346,7 @@ const classtable_elt_t VFT_parser___ReduceAction28[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction28 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction36 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -85217,6 +82362,8 @@ const classtable_elt_t VFT_parser___ReduceAction28[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -85230,44 +82377,44 @@ const classtable_elt_t VFT_parser___ReduceAction28[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction28 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction28___action},
+  {(bigint) 0 /* 50: ReduceAction36 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction36___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction28 < ReduceAction28: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction36 < ReduceAction36: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction28::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction28(val_t p0){
+/* 2: Attribute ReduceAction36::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction36(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction28;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction36;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction28(void)
+val_t NEW_parser___ReduceAction36(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction28;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction36;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction28(val_t p0){
+void CHECKNEW_parser___ReduceAction36(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction28;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction36;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -85280,35 +82427,36 @@ void CHECKNEW_parser___ReduceAction28(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction28_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction36_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction28_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction36_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction28();
-  INIT_ATTRIBUTES__parser___ReduceAction28(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction36();
+  INIT_ATTRIBUTES__parser___ReduceAction36(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction28(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction36(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction29[52] = {
-  {(bigint) 1243 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction37[55] = {
+  {(bigint) 975 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction29" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction29 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction29 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1243 /* 5: ReduceAction29 < ReduceAction29: superclass typecheck marker */},
+  {(bigint) "ReduceAction37" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction37 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction37 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 975 /* 5: ReduceAction37 < ReduceAction37: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85321,7 +82469,7 @@ const classtable_elt_t VFT_parser___ReduceAction29[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction29 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction37 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -85337,6 +82485,8 @@ const classtable_elt_t VFT_parser___ReduceAction29[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -85350,44 +82500,44 @@ const classtable_elt_t VFT_parser___ReduceAction29[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction29 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction29___action},
+  {(bigint) 0 /* 50: ReduceAction37 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction37___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction29 < ReduceAction29: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction37 < ReduceAction37: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction29::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction29(val_t p0){
+/* 2: Attribute ReduceAction37::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction37(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction29;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction37;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction29(void)
+val_t NEW_parser___ReduceAction37(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction29;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction37;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction29(val_t p0){
+void CHECKNEW_parser___ReduceAction37(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction29;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction37;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -85400,35 +82550,36 @@ void CHECKNEW_parser___ReduceAction29(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction29_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction37_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction29_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction37_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction29();
-  INIT_ATTRIBUTES__parser___ReduceAction29(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction37();
+  INIT_ATTRIBUTES__parser___ReduceAction37(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction29(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction37(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction30[52] = {
-  {(bigint) 1195 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction39[55] = {
+  {(bigint) 919 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction30" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction30 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction30 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1195 /* 5: ReduceAction30 < ReduceAction30: superclass typecheck marker */},
+  {(bigint) "ReduceAction39" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction39 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction39 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 919 /* 5: ReduceAction39 < ReduceAction39: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85441,7 +82592,7 @@ const classtable_elt_t VFT_parser___ReduceAction30[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction30 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction39 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -85457,6 +82608,8 @@ const classtable_elt_t VFT_parser___ReduceAction30[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -85470,44 +82623,44 @@ const classtable_elt_t VFT_parser___ReduceAction30[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction30 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction30___action},
+  {(bigint) 0 /* 50: ReduceAction39 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction39___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction30 < ReduceAction30: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction39 < ReduceAction39: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction30::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction30(val_t p0){
+/* 2: Attribute ReduceAction39::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction39(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction30;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction39;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction30(void)
+val_t NEW_parser___ReduceAction39(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction30;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction39;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction30(val_t p0){
+void CHECKNEW_parser___ReduceAction39(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction30;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction39;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -85520,35 +82673,36 @@ void CHECKNEW_parser___ReduceAction30(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction30_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction39_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction30_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction39_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction30();
-  INIT_ATTRIBUTES__parser___ReduceAction30(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction39();
+  INIT_ATTRIBUTES__parser___ReduceAction39(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction30(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction39(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction31[52] = {
-  {(bigint) 1151 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction40[55] = {
+  {(bigint) 875 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction31" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction31 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction31 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1151 /* 5: ReduceAction31 < ReduceAction31: superclass typecheck marker */},
+  {(bigint) "ReduceAction40" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction40 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction40 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 875 /* 5: ReduceAction40 < ReduceAction40: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85561,7 +82715,7 @@ const classtable_elt_t VFT_parser___ReduceAction31[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction31 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction40 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -85577,6 +82731,8 @@ const classtable_elt_t VFT_parser___ReduceAction31[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -85590,44 +82746,44 @@ const classtable_elt_t VFT_parser___ReduceAction31[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction31 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction31___action},
+  {(bigint) 0 /* 50: ReduceAction40 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction40___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction31 < ReduceAction31: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction40 < ReduceAction40: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction31::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction31(val_t p0){
+/* 2: Attribute ReduceAction40::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction40(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction31;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction40;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction31(void)
+val_t NEW_parser___ReduceAction40(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction31;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction40;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction31(val_t p0){
+void CHECKNEW_parser___ReduceAction40(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction31;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction40;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -85640,35 +82796,36 @@ void CHECKNEW_parser___ReduceAction31(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction31_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction40_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction31_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction40_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction31();
-  INIT_ATTRIBUTES__parser___ReduceAction31(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction40();
+  INIT_ATTRIBUTES__parser___ReduceAction40(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction31(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction40(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction32[52] = {
-  {(bigint) 1115 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction41[55] = {
+  {(bigint) 835 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction32" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction32 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction32 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1115 /* 5: ReduceAction32 < ReduceAction32: superclass typecheck marker */},
+  {(bigint) "ReduceAction41" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction41 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction41 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 835 /* 5: ReduceAction41 < ReduceAction41: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85681,7 +82838,7 @@ const classtable_elt_t VFT_parser___ReduceAction32[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction32 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction41 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -85697,6 +82854,8 @@ const classtable_elt_t VFT_parser___ReduceAction32[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -85710,44 +82869,44 @@ const classtable_elt_t VFT_parser___ReduceAction32[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction32 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction32___action},
+  {(bigint) 0 /* 50: ReduceAction41 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction41___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction32 < ReduceAction32: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction41 < ReduceAction41: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction32::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction32(val_t p0){
+/* 2: Attribute ReduceAction41::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction41(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction32;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction41;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction32(void)
+val_t NEW_parser___ReduceAction41(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction32;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction41;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction32(val_t p0){
+void CHECKNEW_parser___ReduceAction41(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction32;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction41;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -85760,35 +82919,36 @@ void CHECKNEW_parser___ReduceAction32(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction32_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction41_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction32_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction41_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction32();
-  INIT_ATTRIBUTES__parser___ReduceAction32(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction41();
+  INIT_ATTRIBUTES__parser___ReduceAction41(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction32(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction41(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction33[52] = {
-  {(bigint) 1071 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction42[55] = {
+  {(bigint) 803 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction33" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction33 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction33 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1071 /* 5: ReduceAction33 < ReduceAction33: superclass typecheck marker */},
+  {(bigint) "ReduceAction42" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction42 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction42 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 803 /* 5: ReduceAction42 < ReduceAction42: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85801,7 +82961,7 @@ const classtable_elt_t VFT_parser___ReduceAction33[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction33 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction42 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -85817,6 +82977,8 @@ const classtable_elt_t VFT_parser___ReduceAction33[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -85830,44 +82992,44 @@ const classtable_elt_t VFT_parser___ReduceAction33[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction33 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction33___action},
+  {(bigint) 0 /* 50: ReduceAction42 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction42___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction33 < ReduceAction33: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction42 < ReduceAction42: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction33::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction33(val_t p0){
+/* 2: Attribute ReduceAction42::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction42(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction33;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction42;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction33(void)
+val_t NEW_parser___ReduceAction42(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction33;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction42;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction33(val_t p0){
+void CHECKNEW_parser___ReduceAction42(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction33;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction42;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -85880,35 +83042,36 @@ void CHECKNEW_parser___ReduceAction33(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction33_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction42_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction33_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction42_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction33();
-  INIT_ATTRIBUTES__parser___ReduceAction33(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction42();
+  INIT_ATTRIBUTES__parser___ReduceAction42(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction33(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction42(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction34[52] = {
-  {(bigint) 1047 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction43[55] = {
+  {(bigint) 759 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction34" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction34 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction34 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1047 /* 5: ReduceAction34 < ReduceAction34: superclass typecheck marker */},
+  {(bigint) "ReduceAction43" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction43 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction43 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 759 /* 5: ReduceAction43 < ReduceAction43: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85921,7 +83084,7 @@ const classtable_elt_t VFT_parser___ReduceAction34[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction34 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction43 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -85937,6 +83100,8 @@ const classtable_elt_t VFT_parser___ReduceAction34[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -85950,44 +83115,44 @@ const classtable_elt_t VFT_parser___ReduceAction34[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction34 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction34___action},
+  {(bigint) 0 /* 50: ReduceAction43 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction43___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction34 < ReduceAction34: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction43 < ReduceAction43: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction34::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction34(val_t p0){
+/* 2: Attribute ReduceAction43::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction43(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction34;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction43;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction34(void)
+val_t NEW_parser___ReduceAction43(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction34;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction43;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction34(val_t p0){
+void CHECKNEW_parser___ReduceAction43(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction34;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction43;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -86000,35 +83165,36 @@ void CHECKNEW_parser___ReduceAction34(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction34_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction43_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction34_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction43_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction34();
-  INIT_ATTRIBUTES__parser___ReduceAction34(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction43();
+  INIT_ATTRIBUTES__parser___ReduceAction43(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction34(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction43(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction35[52] = {
-  {(bigint) 1011 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction44[55] = {
+  {(bigint) 727 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction35" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction35 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction35 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1011 /* 5: ReduceAction35 < ReduceAction35: superclass typecheck marker */},
+  {(bigint) "ReduceAction44" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction44 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction44 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 727 /* 5: ReduceAction44 < ReduceAction44: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86041,7 +83207,7 @@ const classtable_elt_t VFT_parser___ReduceAction35[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction35 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction44 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -86057,6 +83223,8 @@ const classtable_elt_t VFT_parser___ReduceAction35[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -86070,44 +83238,44 @@ const classtable_elt_t VFT_parser___ReduceAction35[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction35 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction35___action},
+  {(bigint) 0 /* 50: ReduceAction44 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction44___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction35 < ReduceAction35: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction44 < ReduceAction44: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction35::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction35(val_t p0){
+/* 2: Attribute ReduceAction44::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction44(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction35;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction44;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction35(void)
+val_t NEW_parser___ReduceAction44(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction35;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction44;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction35(val_t p0){
+void CHECKNEW_parser___ReduceAction44(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction35;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction44;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -86120,35 +83288,36 @@ void CHECKNEW_parser___ReduceAction35(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction35_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction44_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction35_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction44_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction35();
-  INIT_ATTRIBUTES__parser___ReduceAction35(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction44();
+  INIT_ATTRIBUTES__parser___ReduceAction44(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction35(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction44(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction36[52] = {
-  {(bigint) 975 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction45[55] = {
+  {(bigint) 723 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction36" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction36 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction36 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 975 /* 5: ReduceAction36 < ReduceAction36: superclass typecheck marker */},
+  {(bigint) "ReduceAction45" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction45 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction45 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 723 /* 5: ReduceAction45 < ReduceAction45: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86161,7 +83330,7 @@ const classtable_elt_t VFT_parser___ReduceAction36[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction36 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction45 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -86177,6 +83346,8 @@ const classtable_elt_t VFT_parser___ReduceAction36[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -86190,44 +83361,44 @@ const classtable_elt_t VFT_parser___ReduceAction36[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction36 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction36___action},
+  {(bigint) 0 /* 50: ReduceAction45 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction45___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction36 < ReduceAction36: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction45 < ReduceAction45: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction36::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction36(val_t p0){
+/* 2: Attribute ReduceAction45::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction45(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction36;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction45;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction36(void)
+val_t NEW_parser___ReduceAction45(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction36;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction45;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction36(val_t p0){
+void CHECKNEW_parser___ReduceAction45(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction36;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction45;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -86240,35 +83411,36 @@ void CHECKNEW_parser___ReduceAction36(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction36_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction45_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction36_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction45_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction36();
-  INIT_ATTRIBUTES__parser___ReduceAction36(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction45();
+  INIT_ATTRIBUTES__parser___ReduceAction45(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction36(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction45(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction37[52] = {
-  {(bigint) 939 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction46[55] = {
+  {(bigint) 719 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction37" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction37 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction37 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 939 /* 5: ReduceAction37 < ReduceAction37: superclass typecheck marker */},
+  {(bigint) "ReduceAction46" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction46 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction46 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 719 /* 5: ReduceAction46 < ReduceAction46: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86281,7 +83453,7 @@ const classtable_elt_t VFT_parser___ReduceAction37[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction37 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction46 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -86297,6 +83469,8 @@ const classtable_elt_t VFT_parser___ReduceAction37[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -86310,44 +83484,44 @@ const classtable_elt_t VFT_parser___ReduceAction37[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction37 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction37___action},
+  {(bigint) 0 /* 50: ReduceAction46 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction46___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction37 < ReduceAction37: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction46 < ReduceAction46: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction37::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction37(val_t p0){
+/* 2: Attribute ReduceAction46::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction46(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction37;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction46;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction37(void)
+val_t NEW_parser___ReduceAction46(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction37;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction46;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction37(val_t p0){
+void CHECKNEW_parser___ReduceAction46(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction37;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction46;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -86360,35 +83534,36 @@ void CHECKNEW_parser___ReduceAction37(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction37_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction46_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction37_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction46_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction37();
-  INIT_ATTRIBUTES__parser___ReduceAction37(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction46();
+  INIT_ATTRIBUTES__parser___ReduceAction46(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction37(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction46(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction39[52] = {
-  {(bigint) 883 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction47[55] = {
+  {(bigint) 715 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction39" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction39 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction39 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 883 /* 5: ReduceAction39 < ReduceAction39: superclass typecheck marker */},
+  {(bigint) "ReduceAction47" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction47 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction47 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 715 /* 5: ReduceAction47 < ReduceAction47: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86401,7 +83576,7 @@ const classtable_elt_t VFT_parser___ReduceAction39[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction39 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction47 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -86417,6 +83592,8 @@ const classtable_elt_t VFT_parser___ReduceAction39[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -86430,44 +83607,44 @@ const classtable_elt_t VFT_parser___ReduceAction39[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction39 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction39___action},
+  {(bigint) 0 /* 50: ReduceAction47 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction47___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction39 < ReduceAction39: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction47 < ReduceAction47: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction39::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction39(val_t p0){
+/* 2: Attribute ReduceAction47::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction47(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction39;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction47;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction39(void)
+val_t NEW_parser___ReduceAction47(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction39;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction47;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction39(val_t p0){
+void CHECKNEW_parser___ReduceAction47(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction39;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction47;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -86480,35 +83657,36 @@ void CHECKNEW_parser___ReduceAction39(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction39_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction47_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction39_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction47_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction39();
-  INIT_ATTRIBUTES__parser___ReduceAction39(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction47();
+  INIT_ATTRIBUTES__parser___ReduceAction47(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction39(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction47(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction40[52] = {
-  {(bigint) 843 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction48[55] = {
+  {(bigint) 711 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction40" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction40 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction40 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 843 /* 5: ReduceAction40 < ReduceAction40: superclass typecheck marker */},
+  {(bigint) "ReduceAction48" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction48 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction48 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 711 /* 5: ReduceAction48 < ReduceAction48: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86521,7 +83699,7 @@ const classtable_elt_t VFT_parser___ReduceAction40[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction40 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction48 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -86537,6 +83715,8 @@ const classtable_elt_t VFT_parser___ReduceAction40[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -86550,44 +83730,44 @@ const classtable_elt_t VFT_parser___ReduceAction40[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction40 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction40___action},
+  {(bigint) 0 /* 50: ReduceAction48 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction48___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction40 < ReduceAction40: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction48 < ReduceAction48: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction40::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction40(val_t p0){
+/* 2: Attribute ReduceAction48::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction48(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction40;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction48;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction40(void)
+val_t NEW_parser___ReduceAction48(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction40;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction48;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction40(val_t p0){
+void CHECKNEW_parser___ReduceAction48(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction40;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction48;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -86600,35 +83780,36 @@ void CHECKNEW_parser___ReduceAction40(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction40_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction48_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction40_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction48_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction40();
-  INIT_ATTRIBUTES__parser___ReduceAction40(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction48();
+  INIT_ATTRIBUTES__parser___ReduceAction48(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction40(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction48(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction41[52] = {
-  {(bigint) 823 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction49[55] = {
+  {(bigint) 707 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction41" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction41 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction41 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 823 /* 5: ReduceAction41 < ReduceAction41: superclass typecheck marker */},
+  {(bigint) "ReduceAction49" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction49 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction49 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 707 /* 5: ReduceAction49 < ReduceAction49: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86641,7 +83822,7 @@ const classtable_elt_t VFT_parser___ReduceAction41[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction41 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction49 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -86657,6 +83838,8 @@ const classtable_elt_t VFT_parser___ReduceAction41[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -86670,44 +83853,44 @@ const classtable_elt_t VFT_parser___ReduceAction41[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction41 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction41___action},
+  {(bigint) 0 /* 50: ReduceAction49 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction49___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction41 < ReduceAction41: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction49 < ReduceAction49: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction41::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction41(val_t p0){
+/* 2: Attribute ReduceAction49::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction49(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction41;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction49;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction41(void)
+val_t NEW_parser___ReduceAction49(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction41;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction49;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction41(val_t p0){
+void CHECKNEW_parser___ReduceAction49(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction41;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction49;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -86720,35 +83903,36 @@ void CHECKNEW_parser___ReduceAction41(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction41_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction49_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction41_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction49_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction41();
-  INIT_ATTRIBUTES__parser___ReduceAction41(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction49();
+  INIT_ATTRIBUTES__parser___ReduceAction49(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction41(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction49(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction42[52] = {
-  {(bigint) 783 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction50[55] = {
+  {(bigint) 699 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction42" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction42 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction42 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 783 /* 5: ReduceAction42 < ReduceAction42: superclass typecheck marker */},
+  {(bigint) "ReduceAction50" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction50 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction50 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 699 /* 5: ReduceAction50 < ReduceAction50: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86761,7 +83945,7 @@ const classtable_elt_t VFT_parser___ReduceAction42[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction42 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction50 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -86777,6 +83961,8 @@ const classtable_elt_t VFT_parser___ReduceAction42[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -86790,44 +83976,44 @@ const classtable_elt_t VFT_parser___ReduceAction42[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction42 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction42___action},
+  {(bigint) 0 /* 50: ReduceAction50 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction50___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction42 < ReduceAction42: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction50 < ReduceAction50: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction42::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction42(val_t p0){
+/* 2: Attribute ReduceAction50::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction50(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction42;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction50;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction42(void)
+val_t NEW_parser___ReduceAction50(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction42;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction50;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction42(val_t p0){
+void CHECKNEW_parser___ReduceAction50(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction42;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction50;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -86840,35 +84026,36 @@ void CHECKNEW_parser___ReduceAction42(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction42_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction50_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction42_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction50_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction42();
-  INIT_ATTRIBUTES__parser___ReduceAction42(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction50();
+  INIT_ATTRIBUTES__parser___ReduceAction50(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction42(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction50(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction43[52] = {
-  {(bigint) 747 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction51[55] = {
+  {(bigint) 695 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction43" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction43 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction43 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 747 /* 5: ReduceAction43 < ReduceAction43: superclass typecheck marker */},
+  {(bigint) "ReduceAction51" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction51 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction51 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 695 /* 5: ReduceAction51 < ReduceAction51: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86881,7 +84068,7 @@ const classtable_elt_t VFT_parser___ReduceAction43[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction43 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction51 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -86897,6 +84084,8 @@ const classtable_elt_t VFT_parser___ReduceAction43[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -86910,44 +84099,44 @@ const classtable_elt_t VFT_parser___ReduceAction43[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction43 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction43___action},
+  {(bigint) 0 /* 50: ReduceAction51 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction51___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction43 < ReduceAction43: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction51 < ReduceAction51: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction43::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction43(val_t p0){
+/* 2: Attribute ReduceAction51::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction51(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction43;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction51;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction43(void)
+val_t NEW_parser___ReduceAction51(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction43;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction51;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction43(val_t p0){
+void CHECKNEW_parser___ReduceAction51(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction43;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction51;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -86960,35 +84149,36 @@ void CHECKNEW_parser___ReduceAction43(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction43_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction51_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction43_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction51_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction43();
-  INIT_ATTRIBUTES__parser___ReduceAction43(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction51();
+  INIT_ATTRIBUTES__parser___ReduceAction51(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction43(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction51(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction44[52] = {
-  {(bigint) 735 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction52[55] = {
+  {(bigint) 691 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction44" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction44 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction44 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 735 /* 5: ReduceAction44 < ReduceAction44: superclass typecheck marker */},
+  {(bigint) "ReduceAction52" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction52 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction52 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 691 /* 5: ReduceAction52 < ReduceAction52: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87001,7 +84191,7 @@ const classtable_elt_t VFT_parser___ReduceAction44[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction44 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction52 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -87017,6 +84207,8 @@ const classtable_elt_t VFT_parser___ReduceAction44[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -87030,44 +84222,44 @@ const classtable_elt_t VFT_parser___ReduceAction44[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction44 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction44___action},
+  {(bigint) 0 /* 50: ReduceAction52 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction52___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction44 < ReduceAction44: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction52 < ReduceAction52: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction44::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction44(val_t p0){
+/* 2: Attribute ReduceAction52::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction52(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction44;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction52;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction44(void)
+val_t NEW_parser___ReduceAction52(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction44;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction52;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction44(val_t p0){
+void CHECKNEW_parser___ReduceAction52(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction44;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction52;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -87080,35 +84272,36 @@ void CHECKNEW_parser___ReduceAction44(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction44_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction52_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction44_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction52_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction44();
-  INIT_ATTRIBUTES__parser___ReduceAction44(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction52();
+  INIT_ATTRIBUTES__parser___ReduceAction52(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction44(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction52(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction45[52] = {
-  {(bigint) 731 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction53[55] = {
+  {(bigint) 687 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction45" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction45 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction45 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 731 /* 5: ReduceAction45 < ReduceAction45: superclass typecheck marker */},
+  {(bigint) "ReduceAction53" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction53 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction53 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 687 /* 5: ReduceAction53 < ReduceAction53: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87121,7 +84314,7 @@ const classtable_elt_t VFT_parser___ReduceAction45[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction45 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction53 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -87137,6 +84330,8 @@ const classtable_elt_t VFT_parser___ReduceAction45[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -87150,44 +84345,44 @@ const classtable_elt_t VFT_parser___ReduceAction45[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction45 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction45___action},
+  {(bigint) 0 /* 50: ReduceAction53 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction53___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction45 < ReduceAction45: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction53 < ReduceAction53: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction45::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction45(val_t p0){
+/* 2: Attribute ReduceAction53::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction53(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction45;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction53;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction45(void)
+val_t NEW_parser___ReduceAction53(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction45;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction53;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction45(val_t p0){
+void CHECKNEW_parser___ReduceAction53(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction45;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction53;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -87200,35 +84395,36 @@ void CHECKNEW_parser___ReduceAction45(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction45_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction53_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction45_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction53_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction45();
-  INIT_ATTRIBUTES__parser___ReduceAction45(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction53();
+  INIT_ATTRIBUTES__parser___ReduceAction53(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction45(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction53(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction46[52] = {
-  {(bigint) 727 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction54[55] = {
+  {(bigint) 683 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction46" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction46 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction46 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 727 /* 5: ReduceAction46 < ReduceAction46: superclass typecheck marker */},
+  {(bigint) "ReduceAction54" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction54 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction54 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 683 /* 5: ReduceAction54 < ReduceAction54: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87241,7 +84437,7 @@ const classtable_elt_t VFT_parser___ReduceAction46[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction46 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction54 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -87257,6 +84453,8 @@ const classtable_elt_t VFT_parser___ReduceAction46[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -87270,44 +84468,44 @@ const classtable_elt_t VFT_parser___ReduceAction46[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction46 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction46___action},
+  {(bigint) 0 /* 50: ReduceAction54 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction54___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction46 < ReduceAction46: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction54 < ReduceAction54: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction46::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction46(val_t p0){
+/* 2: Attribute ReduceAction54::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction54(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction46;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction54;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction46(void)
+val_t NEW_parser___ReduceAction54(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction46;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction54;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction46(val_t p0){
+void CHECKNEW_parser___ReduceAction54(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction46;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction54;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -87320,35 +84518,36 @@ void CHECKNEW_parser___ReduceAction46(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction46_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction54_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction46_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction54_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction46();
-  INIT_ATTRIBUTES__parser___ReduceAction46(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction54();
+  INIT_ATTRIBUTES__parser___ReduceAction54(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction46(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction54(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction47[52] = {
-  {(bigint) 723 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction55[55] = {
+  {(bigint) 679 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction47" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction47 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction47 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 723 /* 5: ReduceAction47 < ReduceAction47: superclass typecheck marker */},
+  {(bigint) "ReduceAction55" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction55 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction55 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 679 /* 5: ReduceAction55 < ReduceAction55: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87361,7 +84560,7 @@ const classtable_elt_t VFT_parser___ReduceAction47[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction47 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction55 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -87377,6 +84576,8 @@ const classtable_elt_t VFT_parser___ReduceAction47[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -87390,44 +84591,44 @@ const classtable_elt_t VFT_parser___ReduceAction47[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction47 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction47___action},
+  {(bigint) 0 /* 50: ReduceAction55 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction55___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction47 < ReduceAction47: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction55 < ReduceAction55: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction47::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction47(val_t p0){
+/* 2: Attribute ReduceAction55::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction55(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction47;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction55;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction47(void)
+val_t NEW_parser___ReduceAction55(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction47;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction55;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction47(val_t p0){
+void CHECKNEW_parser___ReduceAction55(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction47;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction55;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -87440,35 +84641,36 @@ void CHECKNEW_parser___ReduceAction47(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction47_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction55_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction47_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction55_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction47();
-  INIT_ATTRIBUTES__parser___ReduceAction47(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction55();
+  INIT_ATTRIBUTES__parser___ReduceAction55(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction47(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction55(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction48[52] = {
-  {(bigint) 719 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction56[55] = {
+  {(bigint) 675 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction48" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction48 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction48 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 719 /* 5: ReduceAction48 < ReduceAction48: superclass typecheck marker */},
+  {(bigint) "ReduceAction56" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction56 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction56 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 675 /* 5: ReduceAction56 < ReduceAction56: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87481,7 +84683,7 @@ const classtable_elt_t VFT_parser___ReduceAction48[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction48 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction56 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -87497,6 +84699,8 @@ const classtable_elt_t VFT_parser___ReduceAction48[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -87510,44 +84714,44 @@ const classtable_elt_t VFT_parser___ReduceAction48[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction48 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction48___action},
+  {(bigint) 0 /* 50: ReduceAction56 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction56___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction48 < ReduceAction48: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction56 < ReduceAction56: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction48::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction48(val_t p0){
+/* 2: Attribute ReduceAction56::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction56(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction48;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction56;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction48(void)
+val_t NEW_parser___ReduceAction56(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction48;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction56;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction48(val_t p0){
+void CHECKNEW_parser___ReduceAction56(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction48;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction56;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -87560,35 +84764,36 @@ void CHECKNEW_parser___ReduceAction48(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction48_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction56_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction48_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction56_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction48();
-  INIT_ATTRIBUTES__parser___ReduceAction48(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction56();
+  INIT_ATTRIBUTES__parser___ReduceAction56(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction48(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction56(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction49[52] = {
-  {(bigint) 715 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction57[55] = {
+  {(bigint) 671 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction49" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction49 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction49 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 715 /* 5: ReduceAction49 < ReduceAction49: superclass typecheck marker */},
+  {(bigint) "ReduceAction57" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction57 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction57 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 671 /* 5: ReduceAction57 < ReduceAction57: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87601,7 +84806,7 @@ const classtable_elt_t VFT_parser___ReduceAction49[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction49 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction57 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -87617,6 +84822,8 @@ const classtable_elt_t VFT_parser___ReduceAction49[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -87630,44 +84837,44 @@ const classtable_elt_t VFT_parser___ReduceAction49[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction49 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction49___action},
+  {(bigint) 0 /* 50: ReduceAction57 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction57___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction49 < ReduceAction49: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction57 < ReduceAction57: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction49::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction49(val_t p0){
+/* 2: Attribute ReduceAction57::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction57(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction49;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction57;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction49(void)
+val_t NEW_parser___ReduceAction57(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction49;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction57;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction49(val_t p0){
+void CHECKNEW_parser___ReduceAction57(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction49;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction57;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -87680,35 +84887,36 @@ void CHECKNEW_parser___ReduceAction49(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction49_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction57_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction49_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction57_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction49();
-  INIT_ATTRIBUTES__parser___ReduceAction49(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction57();
+  INIT_ATTRIBUTES__parser___ReduceAction57(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction49(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction57(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction50[52] = {
-  {(bigint) 707 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction58[55] = {
+  {(bigint) 667 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction50" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction50 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction50 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 707 /* 5: ReduceAction50 < ReduceAction50: superclass typecheck marker */},
+  {(bigint) "ReduceAction58" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction58 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction58 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 667 /* 5: ReduceAction58 < ReduceAction58: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87721,7 +84929,7 @@ const classtable_elt_t VFT_parser___ReduceAction50[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction50 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction58 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -87737,6 +84945,8 @@ const classtable_elt_t VFT_parser___ReduceAction50[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -87750,44 +84960,44 @@ const classtable_elt_t VFT_parser___ReduceAction50[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction50 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction50___action},
+  {(bigint) 0 /* 50: ReduceAction58 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction58___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction50 < ReduceAction50: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction58 < ReduceAction58: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction50::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction50(val_t p0){
+/* 2: Attribute ReduceAction58::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction58(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction50;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction58;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction50(void)
+val_t NEW_parser___ReduceAction58(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction50;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction58;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction50(val_t p0){
+void CHECKNEW_parser___ReduceAction58(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction50;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction58;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -87800,35 +85010,36 @@ void CHECKNEW_parser___ReduceAction50(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction50_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction58_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction50_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction58_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction50();
-  INIT_ATTRIBUTES__parser___ReduceAction50(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction58();
+  INIT_ATTRIBUTES__parser___ReduceAction58(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction50(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction58(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction51[52] = {
-  {(bigint) 703 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction59[55] = {
+  {(bigint) 663 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction51" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction51 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction51 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 703 /* 5: ReduceAction51 < ReduceAction51: superclass typecheck marker */},
+  {(bigint) "ReduceAction59" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction59 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction59 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 663 /* 5: ReduceAction59 < ReduceAction59: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87841,7 +85052,7 @@ const classtable_elt_t VFT_parser___ReduceAction51[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction51 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction59 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -87857,6 +85068,8 @@ const classtable_elt_t VFT_parser___ReduceAction51[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -87870,44 +85083,44 @@ const classtable_elt_t VFT_parser___ReduceAction51[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction51 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction51___action},
+  {(bigint) 0 /* 50: ReduceAction59 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction59___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction51 < ReduceAction51: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction59 < ReduceAction59: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction51::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction51(val_t p0){
+/* 2: Attribute ReduceAction59::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction59(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction51;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction59;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction51(void)
+val_t NEW_parser___ReduceAction59(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction51;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction59;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction51(val_t p0){
+void CHECKNEW_parser___ReduceAction59(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction51;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction59;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -87920,35 +85133,36 @@ void CHECKNEW_parser___ReduceAction51(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction51_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction59_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction51_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction59_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction51();
-  INIT_ATTRIBUTES__parser___ReduceAction51(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction59();
+  INIT_ATTRIBUTES__parser___ReduceAction59(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction51(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction59(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction52[52] = {
-  {(bigint) 699 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction60[55] = {
+  {(bigint) 655 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction52" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction52 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction52 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 699 /* 5: ReduceAction52 < ReduceAction52: superclass typecheck marker */},
+  {(bigint) "ReduceAction60" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction60 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction60 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 655 /* 5: ReduceAction60 < ReduceAction60: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87961,7 +85175,7 @@ const classtable_elt_t VFT_parser___ReduceAction52[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction52 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction60 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -87977,6 +85191,8 @@ const classtable_elt_t VFT_parser___ReduceAction52[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -87990,44 +85206,44 @@ const classtable_elt_t VFT_parser___ReduceAction52[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction52 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction52___action},
+  {(bigint) 0 /* 50: ReduceAction60 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction60___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction52 < ReduceAction52: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction60 < ReduceAction60: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction52::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction52(val_t p0){
+/* 2: Attribute ReduceAction60::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction60(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction52;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction60;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction52(void)
+val_t NEW_parser___ReduceAction60(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction52;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction60;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction52(val_t p0){
+void CHECKNEW_parser___ReduceAction60(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction52;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction60;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -88040,35 +85256,36 @@ void CHECKNEW_parser___ReduceAction52(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction52_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction60_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction52_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction60_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction52();
-  INIT_ATTRIBUTES__parser___ReduceAction52(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction60();
+  INIT_ATTRIBUTES__parser___ReduceAction60(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction52(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction60(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction53[52] = {
-  {(bigint) 695 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction61[55] = {
+  {(bigint) 651 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction53" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction53 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction53 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 695 /* 5: ReduceAction53 < ReduceAction53: superclass typecheck marker */},
+  {(bigint) "ReduceAction61" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction61 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction61 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 651 /* 5: ReduceAction61 < ReduceAction61: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -88081,7 +85298,7 @@ const classtable_elt_t VFT_parser___ReduceAction53[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction53 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction61 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -88097,6 +85314,8 @@ const classtable_elt_t VFT_parser___ReduceAction53[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -88110,44 +85329,44 @@ const classtable_elt_t VFT_parser___ReduceAction53[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction53 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction53___action},
+  {(bigint) 0 /* 50: ReduceAction61 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction61___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction53 < ReduceAction53: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction61 < ReduceAction61: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction53::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction53(val_t p0){
+/* 2: Attribute ReduceAction61::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction61(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction53;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction61;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction53(void)
+val_t NEW_parser___ReduceAction61(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction53;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction61;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction53(val_t p0){
+void CHECKNEW_parser___ReduceAction61(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction53;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction61;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -88160,35 +85379,36 @@ void CHECKNEW_parser___ReduceAction53(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction53_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction61_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction53_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction61_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction53();
-  INIT_ATTRIBUTES__parser___ReduceAction53(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction61();
+  INIT_ATTRIBUTES__parser___ReduceAction61(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction53(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction61(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction54[52] = {
-  {(bigint) 691 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction62[55] = {
+  {(bigint) 647 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction54" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction54 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction54 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 691 /* 5: ReduceAction54 < ReduceAction54: superclass typecheck marker */},
+  {(bigint) "ReduceAction62" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction62 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction62 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 647 /* 5: ReduceAction62 < ReduceAction62: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -88201,7 +85421,7 @@ const classtable_elt_t VFT_parser___ReduceAction54[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction54 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction62 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -88217,6 +85437,8 @@ const classtable_elt_t VFT_parser___ReduceAction54[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -88230,44 +85452,44 @@ const classtable_elt_t VFT_parser___ReduceAction54[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction54 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction54___action},
+  {(bigint) 0 /* 50: ReduceAction62 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction62___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction54 < ReduceAction54: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction62 < ReduceAction62: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction54::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction54(val_t p0){
+/* 2: Attribute ReduceAction62::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction62(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction54;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction62;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction54(void)
+val_t NEW_parser___ReduceAction62(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction54;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction62;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction54(val_t p0){
+void CHECKNEW_parser___ReduceAction62(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction54;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction62;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -88280,35 +85502,36 @@ void CHECKNEW_parser___ReduceAction54(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction54_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction62_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction54_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction62_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction54();
-  INIT_ATTRIBUTES__parser___ReduceAction54(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction62();
+  INIT_ATTRIBUTES__parser___ReduceAction62(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction54(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction62(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction55[52] = {
-  {(bigint) 687 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction63[55] = {
+  {(bigint) 643 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction55" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction55 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction55 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 687 /* 5: ReduceAction55 < ReduceAction55: superclass typecheck marker */},
+  {(bigint) "ReduceAction63" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction63 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction63 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 643 /* 5: ReduceAction63 < ReduceAction63: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -88321,7 +85544,7 @@ const classtable_elt_t VFT_parser___ReduceAction55[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction55 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction63 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -88337,6 +85560,8 @@ const classtable_elt_t VFT_parser___ReduceAction55[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -88350,44 +85575,44 @@ const classtable_elt_t VFT_parser___ReduceAction55[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction55 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction55___action},
+  {(bigint) 0 /* 50: ReduceAction63 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction63___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction55 < ReduceAction55: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction63 < ReduceAction63: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction55::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction55(val_t p0){
+/* 2: Attribute ReduceAction63::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction63(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction55;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction63;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction55(void)
+val_t NEW_parser___ReduceAction63(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction55;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction63;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction55(val_t p0){
+void CHECKNEW_parser___ReduceAction63(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction55;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction63;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -88400,35 +85625,36 @@ void CHECKNEW_parser___ReduceAction55(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction55_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction63_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction55_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction63_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction55();
-  INIT_ATTRIBUTES__parser___ReduceAction55(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction63();
+  INIT_ATTRIBUTES__parser___ReduceAction63(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction55(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction63(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction56[52] = {
-  {(bigint) 683 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction64[55] = {
+  {(bigint) 639 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction56" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction56 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction56 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 683 /* 5: ReduceAction56 < ReduceAction56: superclass typecheck marker */},
+  {(bigint) "ReduceAction64" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction64 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction64 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 639 /* 5: ReduceAction64 < ReduceAction64: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -88441,7 +85667,7 @@ const classtable_elt_t VFT_parser___ReduceAction56[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction56 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction64 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -88457,6 +85683,8 @@ const classtable_elt_t VFT_parser___ReduceAction56[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -88470,44 +85698,44 @@ const classtable_elt_t VFT_parser___ReduceAction56[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction56 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction56___action},
+  {(bigint) 0 /* 50: ReduceAction64 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction64___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction56 < ReduceAction56: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction64 < ReduceAction64: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction56::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction56(val_t p0){
+/* 2: Attribute ReduceAction64::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction64(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction56;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction64;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction56(void)
+val_t NEW_parser___ReduceAction64(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction56;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction64;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction56(val_t p0){
+void CHECKNEW_parser___ReduceAction64(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction56;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction64;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -88520,35 +85748,36 @@ void CHECKNEW_parser___ReduceAction56(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction56_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction64_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction56_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction64_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction56();
-  INIT_ATTRIBUTES__parser___ReduceAction56(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction64();
+  INIT_ATTRIBUTES__parser___ReduceAction64(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction56(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction64(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction57[52] = {
-  {(bigint) 679 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction65[55] = {
+  {(bigint) 635 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction57" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction57 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction57 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 679 /* 5: ReduceAction57 < ReduceAction57: superclass typecheck marker */},
+  {(bigint) "ReduceAction65" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction65 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction65 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 635 /* 5: ReduceAction65 < ReduceAction65: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -88561,7 +85790,7 @@ const classtable_elt_t VFT_parser___ReduceAction57[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction57 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction65 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -88577,6 +85806,8 @@ const classtable_elt_t VFT_parser___ReduceAction57[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -88590,44 +85821,44 @@ const classtable_elt_t VFT_parser___ReduceAction57[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction57 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction57___action},
+  {(bigint) 0 /* 50: ReduceAction65 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction65___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction57 < ReduceAction57: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction65 < ReduceAction65: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction57::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction57(val_t p0){
+/* 2: Attribute ReduceAction65::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction65(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction57;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction65;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction57(void)
+val_t NEW_parser___ReduceAction65(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction57;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction65;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction57(val_t p0){
+void CHECKNEW_parser___ReduceAction65(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction57;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction65;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -88640,35 +85871,36 @@ void CHECKNEW_parser___ReduceAction57(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction57_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction65_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction57_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction65_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction57();
-  INIT_ATTRIBUTES__parser___ReduceAction57(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction65();
+  INIT_ATTRIBUTES__parser___ReduceAction65(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction57(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction65(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction58[52] = {
-  {(bigint) 675 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction66[55] = {
+  {(bigint) 631 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction58" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction58 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction58 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 675 /* 5: ReduceAction58 < ReduceAction58: superclass typecheck marker */},
+  {(bigint) "ReduceAction66" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction66 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction66 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 631 /* 5: ReduceAction66 < ReduceAction66: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -88681,7 +85913,7 @@ const classtable_elt_t VFT_parser___ReduceAction58[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction58 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction66 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -88697,6 +85929,8 @@ const classtable_elt_t VFT_parser___ReduceAction58[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -88710,44 +85944,44 @@ const classtable_elt_t VFT_parser___ReduceAction58[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction58 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction58___action},
+  {(bigint) 0 /* 50: ReduceAction66 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction66___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction58 < ReduceAction58: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction66 < ReduceAction66: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction58::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction58(val_t p0){
+/* 2: Attribute ReduceAction66::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction66(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction58;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction66;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction58(void)
+val_t NEW_parser___ReduceAction66(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction58;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction66;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction58(val_t p0){
+void CHECKNEW_parser___ReduceAction66(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction58;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction66;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -88760,35 +85994,36 @@ void CHECKNEW_parser___ReduceAction58(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction58_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction66_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction58_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction66_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction58();
-  INIT_ATTRIBUTES__parser___ReduceAction58(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction66();
+  INIT_ATTRIBUTES__parser___ReduceAction66(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction58(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction66(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction59[52] = {
-  {(bigint) 671 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction67[55] = {
+  {(bigint) 627 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction59" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction59 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction59 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 671 /* 5: ReduceAction59 < ReduceAction59: superclass typecheck marker */},
+  {(bigint) "ReduceAction67" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction67 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction67 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 627 /* 5: ReduceAction67 < ReduceAction67: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -88801,7 +86036,7 @@ const classtable_elt_t VFT_parser___ReduceAction59[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction59 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction67 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -88817,6 +86052,8 @@ const classtable_elt_t VFT_parser___ReduceAction59[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -88830,44 +86067,44 @@ const classtable_elt_t VFT_parser___ReduceAction59[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction59 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction59___action},
+  {(bigint) 0 /* 50: ReduceAction67 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction67___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction59 < ReduceAction59: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction67 < ReduceAction67: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction59::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction59(val_t p0){
+/* 2: Attribute ReduceAction67::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction67(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction59;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction67;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction59(void)
+val_t NEW_parser___ReduceAction67(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction59;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction67;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction59(val_t p0){
+void CHECKNEW_parser___ReduceAction67(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction59;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction67;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -88880,35 +86117,36 @@ void CHECKNEW_parser___ReduceAction59(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction59_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction67_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction59_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction67_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction59();
-  INIT_ATTRIBUTES__parser___ReduceAction59(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction67();
+  INIT_ATTRIBUTES__parser___ReduceAction67(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction59(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction67(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction60[52] = {
-  {(bigint) 663 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction68[55] = {
+  {(bigint) 623 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction60" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction60 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction60 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 663 /* 5: ReduceAction60 < ReduceAction60: superclass typecheck marker */},
+  {(bigint) "ReduceAction68" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction68 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction68 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 623 /* 5: ReduceAction68 < ReduceAction68: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -88921,7 +86159,7 @@ const classtable_elt_t VFT_parser___ReduceAction60[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction60 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction68 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -88937,6 +86175,8 @@ const classtable_elt_t VFT_parser___ReduceAction60[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -88950,44 +86190,44 @@ const classtable_elt_t VFT_parser___ReduceAction60[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction60 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction60___action},
+  {(bigint) 0 /* 50: ReduceAction68 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction68___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction60 < ReduceAction60: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction68 < ReduceAction68: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction60::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction60(val_t p0){
+/* 2: Attribute ReduceAction68::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction68(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction60;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction68;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction60(void)
+val_t NEW_parser___ReduceAction68(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction60;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction68;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction60(val_t p0){
+void CHECKNEW_parser___ReduceAction68(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction60;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction68;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -89000,35 +86240,36 @@ void CHECKNEW_parser___ReduceAction60(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction60_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction68_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction60_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction68_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction60();
-  INIT_ATTRIBUTES__parser___ReduceAction60(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction68();
+  INIT_ATTRIBUTES__parser___ReduceAction68(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction60(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction68(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction61[52] = {
-  {(bigint) 659 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction69[55] = {
+  {(bigint) 619 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction61" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction61 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction61 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 659 /* 5: ReduceAction61 < ReduceAction61: superclass typecheck marker */},
+  {(bigint) "ReduceAction69" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction69 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction69 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 619 /* 5: ReduceAction69 < ReduceAction69: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -89041,7 +86282,7 @@ const classtable_elt_t VFT_parser___ReduceAction61[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction61 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction69 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -89057,6 +86298,8 @@ const classtable_elt_t VFT_parser___ReduceAction61[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -89070,44 +86313,44 @@ const classtable_elt_t VFT_parser___ReduceAction61[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction61 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction61___action},
+  {(bigint) 0 /* 50: ReduceAction69 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction69___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction61 < ReduceAction61: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction69 < ReduceAction69: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction61::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction61(val_t p0){
+/* 2: Attribute ReduceAction69::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction69(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction61;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction69;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction61(void)
+val_t NEW_parser___ReduceAction69(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction61;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction69;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction61(val_t p0){
+void CHECKNEW_parser___ReduceAction69(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction61;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction69;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -89120,35 +86363,36 @@ void CHECKNEW_parser___ReduceAction61(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction61_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction69_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction61_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction69_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction61();
-  INIT_ATTRIBUTES__parser___ReduceAction61(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction69();
+  INIT_ATTRIBUTES__parser___ReduceAction69(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction61(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction69(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction62[52] = {
-  {(bigint) 655 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction70[55] = {
+  {(bigint) 603 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction62" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction62 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction62 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 655 /* 5: ReduceAction62 < ReduceAction62: superclass typecheck marker */},
+  {(bigint) "ReduceAction70" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction70 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction70 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 603 /* 5: ReduceAction70 < ReduceAction70: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -89161,7 +86405,7 @@ const classtable_elt_t VFT_parser___ReduceAction62[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction62 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction70 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -89177,6 +86421,8 @@ const classtable_elt_t VFT_parser___ReduceAction62[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -89190,44 +86436,44 @@ const classtable_elt_t VFT_parser___ReduceAction62[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction62 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction62___action},
+  {(bigint) 0 /* 50: ReduceAction70 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction70___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction62 < ReduceAction62: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction70 < ReduceAction70: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction62::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction62(val_t p0){
+/* 2: Attribute ReduceAction70::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction70(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction62;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction70;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction62(void)
+val_t NEW_parser___ReduceAction70(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction62;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction70;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction62(val_t p0){
+void CHECKNEW_parser___ReduceAction70(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction62;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction70;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -89240,35 +86486,36 @@ void CHECKNEW_parser___ReduceAction62(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction62_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction70_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction62_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction70_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction62();
-  INIT_ATTRIBUTES__parser___ReduceAction62(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction70();
+  INIT_ATTRIBUTES__parser___ReduceAction70(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction62(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction70(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction63[52] = {
-  {(bigint) 651 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction71[55] = {
+  {(bigint) 591 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction63" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction63 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction63 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 651 /* 5: ReduceAction63 < ReduceAction63: superclass typecheck marker */},
+  {(bigint) "ReduceAction71" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction71 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction71 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 591 /* 5: ReduceAction71 < ReduceAction71: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -89281,7 +86528,7 @@ const classtable_elt_t VFT_parser___ReduceAction63[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction63 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction71 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -89297,6 +86544,8 @@ const classtable_elt_t VFT_parser___ReduceAction63[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -89310,44 +86559,44 @@ const classtable_elt_t VFT_parser___ReduceAction63[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction63 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction63___action},
+  {(bigint) 0 /* 50: ReduceAction71 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction71___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction63 < ReduceAction63: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction71 < ReduceAction71: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction63::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction63(val_t p0){
+/* 2: Attribute ReduceAction71::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction71(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction63;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction71;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction63(void)
+val_t NEW_parser___ReduceAction71(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction63;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction71;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction63(val_t p0){
+void CHECKNEW_parser___ReduceAction71(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction63;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction71;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -89360,35 +86609,36 @@ void CHECKNEW_parser___ReduceAction63(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction63_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction71_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction63_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction71_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction63();
-  INIT_ATTRIBUTES__parser___ReduceAction63(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction71();
+  INIT_ATTRIBUTES__parser___ReduceAction71(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction63(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction71(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction64[52] = {
-  {(bigint) 647 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction72[55] = {
+  {(bigint) 579 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction64" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction64 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction64 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 647 /* 5: ReduceAction64 < ReduceAction64: superclass typecheck marker */},
+  {(bigint) "ReduceAction72" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction72 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction72 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 579 /* 5: ReduceAction72 < ReduceAction72: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -89401,7 +86651,7 @@ const classtable_elt_t VFT_parser___ReduceAction64[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction64 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction72 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -89417,6 +86667,8 @@ const classtable_elt_t VFT_parser___ReduceAction64[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -89430,44 +86682,44 @@ const classtable_elt_t VFT_parser___ReduceAction64[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction64 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction64___action},
+  {(bigint) 0 /* 50: ReduceAction72 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction72___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction64 < ReduceAction64: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction72 < ReduceAction72: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction64::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction64(val_t p0){
+/* 2: Attribute ReduceAction72::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction72(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction64;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction72;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction64(void)
+val_t NEW_parser___ReduceAction72(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction64;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction72;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction64(val_t p0){
+void CHECKNEW_parser___ReduceAction72(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction64;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction72;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -89480,35 +86732,36 @@ void CHECKNEW_parser___ReduceAction64(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction64_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction72_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction64_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction72_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction64();
-  INIT_ATTRIBUTES__parser___ReduceAction64(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction72();
+  INIT_ATTRIBUTES__parser___ReduceAction72(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction64(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction72(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction65[52] = {
-  {(bigint) 643 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction73[55] = {
+  {(bigint) 551 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction65" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction65 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction65 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 643 /* 5: ReduceAction65 < ReduceAction65: superclass typecheck marker */},
+  {(bigint) "ReduceAction73" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction73 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction73 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 551 /* 5: ReduceAction73 < ReduceAction73: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -89521,7 +86774,7 @@ const classtable_elt_t VFT_parser___ReduceAction65[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction65 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction73 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -89537,6 +86790,8 @@ const classtable_elt_t VFT_parser___ReduceAction65[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -89550,44 +86805,44 @@ const classtable_elt_t VFT_parser___ReduceAction65[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction65 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction65___action},
+  {(bigint) 0 /* 50: ReduceAction73 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction73___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction65 < ReduceAction65: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction73 < ReduceAction73: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction65::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction65(val_t p0){
+/* 2: Attribute ReduceAction73::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction73(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction65;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction73;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction65(void)
+val_t NEW_parser___ReduceAction73(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction65;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction73;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction65(val_t p0){
+void CHECKNEW_parser___ReduceAction73(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction65;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction73;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -89600,35 +86855,36 @@ void CHECKNEW_parser___ReduceAction65(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction65_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction73_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction65_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction73_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction65();
-  INIT_ATTRIBUTES__parser___ReduceAction65(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction73();
+  INIT_ATTRIBUTES__parser___ReduceAction73(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction65(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction73(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction66[52] = {
-  {(bigint) 639 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction74[55] = {
+  {(bigint) 515 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction66" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction66 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction66 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 639 /* 5: ReduceAction66 < ReduceAction66: superclass typecheck marker */},
+  {(bigint) "ReduceAction74" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction74 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction74 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 515 /* 5: ReduceAction74 < ReduceAction74: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -89641,7 +86897,7 @@ const classtable_elt_t VFT_parser___ReduceAction66[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction66 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction74 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -89657,6 +86913,8 @@ const classtable_elt_t VFT_parser___ReduceAction66[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -89670,44 +86928,44 @@ const classtable_elt_t VFT_parser___ReduceAction66[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction66 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction66___action},
+  {(bigint) 0 /* 50: ReduceAction74 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction74___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction66 < ReduceAction66: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction74 < ReduceAction74: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction66::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction66(val_t p0){
+/* 2: Attribute ReduceAction74::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction74(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction66;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction74;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction66(void)
+val_t NEW_parser___ReduceAction74(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction66;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction74;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction66(val_t p0){
+void CHECKNEW_parser___ReduceAction74(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction66;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction74;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -89720,35 +86978,36 @@ void CHECKNEW_parser___ReduceAction66(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction66_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction74_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction66_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction74_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction66();
-  INIT_ATTRIBUTES__parser___ReduceAction66(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction74();
+  INIT_ATTRIBUTES__parser___ReduceAction74(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction66(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction74(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction67[52] = {
-  {(bigint) 635 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction75[55] = {
+  {(bigint) 487 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction67" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction67 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction67 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 635 /* 5: ReduceAction67 < ReduceAction67: superclass typecheck marker */},
+  {(bigint) "ReduceAction75" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction75 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction75 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 487 /* 5: ReduceAction75 < ReduceAction75: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -89761,7 +87020,7 @@ const classtable_elt_t VFT_parser___ReduceAction67[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction67 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction75 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -89777,6 +87036,8 @@ const classtable_elt_t VFT_parser___ReduceAction67[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -89790,44 +87051,44 @@ const classtable_elt_t VFT_parser___ReduceAction67[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction67 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction67___action},
+  {(bigint) 0 /* 50: ReduceAction75 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction75___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction67 < ReduceAction67: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction75 < ReduceAction75: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction67::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction67(val_t p0){
+/* 2: Attribute ReduceAction75::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction75(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction67;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction75;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction67(void)
+val_t NEW_parser___ReduceAction75(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction67;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction75;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction67(val_t p0){
+void CHECKNEW_parser___ReduceAction75(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction67;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction75;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -89840,35 +87101,36 @@ void CHECKNEW_parser___ReduceAction67(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction67_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction75_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction67_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction75_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction67();
-  INIT_ATTRIBUTES__parser___ReduceAction67(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction75();
+  INIT_ATTRIBUTES__parser___ReduceAction75(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction67(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction75(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction68[52] = {
-  {(bigint) 631 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction76[55] = {
+  {(bigint) 463 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction68" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction68 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction68 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 631 /* 5: ReduceAction68 < ReduceAction68: superclass typecheck marker */},
+  {(bigint) "ReduceAction76" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction76 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction76 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 463 /* 5: ReduceAction76 < ReduceAction76: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -89881,7 +87143,7 @@ const classtable_elt_t VFT_parser___ReduceAction68[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction68 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction76 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -89897,6 +87159,8 @@ const classtable_elt_t VFT_parser___ReduceAction68[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -89910,44 +87174,44 @@ const classtable_elt_t VFT_parser___ReduceAction68[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction68 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction68___action},
+  {(bigint) 0 /* 50: ReduceAction76 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction76___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction68 < ReduceAction68: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction76 < ReduceAction76: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction68::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction68(val_t p0){
+/* 2: Attribute ReduceAction76::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction76(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction68;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction76;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction68(void)
+val_t NEW_parser___ReduceAction76(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction68;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction76;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction68(val_t p0){
+void CHECKNEW_parser___ReduceAction76(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction68;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction76;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -89960,35 +87224,36 @@ void CHECKNEW_parser___ReduceAction68(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction68_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction76_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction68_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction76_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction68();
-  INIT_ATTRIBUTES__parser___ReduceAction68(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction76();
+  INIT_ATTRIBUTES__parser___ReduceAction76(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction68(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction76(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction69[52] = {
-  {(bigint) 619 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction77[55] = {
+  {(bigint) 459 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction69" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction69 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction69 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 619 /* 5: ReduceAction69 < ReduceAction69: superclass typecheck marker */},
+  {(bigint) "ReduceAction77" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction77 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction77 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 459 /* 5: ReduceAction77 < ReduceAction77: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90001,7 +87266,7 @@ const classtable_elt_t VFT_parser___ReduceAction69[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction69 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction77 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -90017,6 +87282,8 @@ const classtable_elt_t VFT_parser___ReduceAction69[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -90030,44 +87297,44 @@ const classtable_elt_t VFT_parser___ReduceAction69[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction69 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction69___action},
+  {(bigint) 0 /* 50: ReduceAction77 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction77___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction69 < ReduceAction69: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction77 < ReduceAction77: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction69::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction69(val_t p0){
+/* 2: Attribute ReduceAction77::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction77(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction69;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction77;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction69(void)
+val_t NEW_parser___ReduceAction77(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction69;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction77;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction69(val_t p0){
+void CHECKNEW_parser___ReduceAction77(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction69;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction77;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -90080,35 +87347,36 @@ void CHECKNEW_parser___ReduceAction69(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction69_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction77_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction69_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction77_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction69();
-  INIT_ATTRIBUTES__parser___ReduceAction69(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction77();
+  INIT_ATTRIBUTES__parser___ReduceAction77(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction69(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction77(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction70[52] = {
-  {(bigint) 603 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction78[55] = {
+  {(bigint) 455 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction70" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction70 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction70 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 603 /* 5: ReduceAction70 < ReduceAction70: superclass typecheck marker */},
+  {(bigint) "ReduceAction78" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction78 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction78 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 455 /* 5: ReduceAction78 < ReduceAction78: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90121,7 +87389,7 @@ const classtable_elt_t VFT_parser___ReduceAction70[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction70 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction78 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -90137,6 +87405,8 @@ const classtable_elt_t VFT_parser___ReduceAction70[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -90150,44 +87420,44 @@ const classtable_elt_t VFT_parser___ReduceAction70[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction70 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction70___action},
+  {(bigint) 0 /* 50: ReduceAction78 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction78___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction70 < ReduceAction70: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction78 < ReduceAction78: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction70::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction70(val_t p0){
+/* 2: Attribute ReduceAction78::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction78(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction70;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction78;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction70(void)
+val_t NEW_parser___ReduceAction78(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction70;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction78;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction70(val_t p0){
+void CHECKNEW_parser___ReduceAction78(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction70;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction78;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -90200,35 +87470,36 @@ void CHECKNEW_parser___ReduceAction70(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction70_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction78_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction70_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction78_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction70();
-  INIT_ATTRIBUTES__parser___ReduceAction70(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction78();
+  INIT_ATTRIBUTES__parser___ReduceAction78(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction70(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction78(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction71[52] = {
-  {(bigint) 591 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction79[55] = {
+  {(bigint) 451 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction71" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction71 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction71 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 591 /* 5: ReduceAction71 < ReduceAction71: superclass typecheck marker */},
+  {(bigint) "ReduceAction79" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction79 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction79 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 451 /* 5: ReduceAction79 < ReduceAction79: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90241,7 +87512,7 @@ const classtable_elt_t VFT_parser___ReduceAction71[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction71 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction79 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -90257,6 +87528,8 @@ const classtable_elt_t VFT_parser___ReduceAction71[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -90270,44 +87543,44 @@ const classtable_elt_t VFT_parser___ReduceAction71[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction71 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction71___action},
+  {(bigint) 0 /* 50: ReduceAction79 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction79___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction71 < ReduceAction71: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction79 < ReduceAction79: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction71::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction71(val_t p0){
+/* 2: Attribute ReduceAction79::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction79(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction71;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction79;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction71(void)
+val_t NEW_parser___ReduceAction79(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction71;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction79;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction71(val_t p0){
+void CHECKNEW_parser___ReduceAction79(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction71;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction79;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -90320,35 +87593,36 @@ void CHECKNEW_parser___ReduceAction71(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction71_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction79_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction71_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction79_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction71();
-  INIT_ATTRIBUTES__parser___ReduceAction71(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction79();
+  INIT_ATTRIBUTES__parser___ReduceAction79(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction71(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction79(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction72[52] = {
-  {(bigint) 563 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction80[55] = {
+  {(bigint) 443 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction72" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction72 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction72 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 563 /* 5: ReduceAction72 < ReduceAction72: superclass typecheck marker */},
+  {(bigint) "ReduceAction80" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction80 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction80 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 443 /* 5: ReduceAction80 < ReduceAction80: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90361,7 +87635,7 @@ const classtable_elt_t VFT_parser___ReduceAction72[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction72 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction80 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -90377,6 +87651,8 @@ const classtable_elt_t VFT_parser___ReduceAction72[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -90390,44 +87666,44 @@ const classtable_elt_t VFT_parser___ReduceAction72[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction72 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction72___action},
+  {(bigint) 0 /* 50: ReduceAction80 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction80___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction72 < ReduceAction72: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction80 < ReduceAction80: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction72::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction72(val_t p0){
+/* 2: Attribute ReduceAction80::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction80(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction72;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction80;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction72(void)
+val_t NEW_parser___ReduceAction80(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction72;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction80;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction72(val_t p0){
+void CHECKNEW_parser___ReduceAction80(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction72;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction80;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -90440,35 +87716,36 @@ void CHECKNEW_parser___ReduceAction72(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction72_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction80_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction72_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction80_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction72();
-  INIT_ATTRIBUTES__parser___ReduceAction72(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction80();
+  INIT_ATTRIBUTES__parser___ReduceAction80(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction72(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction80(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction73[52] = {
-  {(bigint) 527 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction81[55] = {
+  {(bigint) 439 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction73" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction73 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction73 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 527 /* 5: ReduceAction73 < ReduceAction73: superclass typecheck marker */},
+  {(bigint) "ReduceAction81" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction81 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction81 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 439 /* 5: ReduceAction81 < ReduceAction81: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90481,7 +87758,7 @@ const classtable_elt_t VFT_parser___ReduceAction73[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction73 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction81 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -90497,6 +87774,8 @@ const classtable_elt_t VFT_parser___ReduceAction73[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -90510,44 +87789,44 @@ const classtable_elt_t VFT_parser___ReduceAction73[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction73 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction73___action},
+  {(bigint) 0 /* 50: ReduceAction81 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction81___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction73 < ReduceAction73: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction81 < ReduceAction81: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction73::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction73(val_t p0){
+/* 2: Attribute ReduceAction81::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction81(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction73;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction81;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction73(void)
+val_t NEW_parser___ReduceAction81(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction73;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction81;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction73(val_t p0){
+void CHECKNEW_parser___ReduceAction81(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction73;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction81;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -90560,35 +87839,36 @@ void CHECKNEW_parser___ReduceAction73(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction73_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction81_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction73_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction81_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction73();
-  INIT_ATTRIBUTES__parser___ReduceAction73(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction81();
+  INIT_ATTRIBUTES__parser___ReduceAction81(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction73(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction81(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction74[52] = {
-  {(bigint) 499 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction82[55] = {
+  {(bigint) 435 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction74" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction74 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction74 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 499 /* 5: ReduceAction74 < ReduceAction74: superclass typecheck marker */},
+  {(bigint) "ReduceAction82" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction82 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction82 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 435 /* 5: ReduceAction82 < ReduceAction82: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90601,7 +87881,7 @@ const classtable_elt_t VFT_parser___ReduceAction74[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction74 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction82 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -90617,6 +87897,8 @@ const classtable_elt_t VFT_parser___ReduceAction74[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -90630,44 +87912,44 @@ const classtable_elt_t VFT_parser___ReduceAction74[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction74 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction74___action},
+  {(bigint) 0 /* 50: ReduceAction82 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction82___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction74 < ReduceAction74: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction82 < ReduceAction82: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction74::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction74(val_t p0){
+/* 2: Attribute ReduceAction82::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction82(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction74;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction82;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction74(void)
+val_t NEW_parser___ReduceAction82(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction74;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction82;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction74(val_t p0){
+void CHECKNEW_parser___ReduceAction82(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction74;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction82;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -90680,35 +87962,36 @@ void CHECKNEW_parser___ReduceAction74(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction74_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction82_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction74_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction82_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction74();
-  INIT_ATTRIBUTES__parser___ReduceAction74(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction82();
+  INIT_ATTRIBUTES__parser___ReduceAction82(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction74(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction82(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction75[52] = {
-  {(bigint) 475 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction83[55] = {
+  {(bigint) 431 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction75" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction75 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction75 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 475 /* 5: ReduceAction75 < ReduceAction75: superclass typecheck marker */},
+  {(bigint) "ReduceAction83" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction83 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction83 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 431 /* 5: ReduceAction83 < ReduceAction83: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90721,7 +88004,7 @@ const classtable_elt_t VFT_parser___ReduceAction75[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction75 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction83 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -90737,6 +88020,8 @@ const classtable_elt_t VFT_parser___ReduceAction75[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -90750,44 +88035,44 @@ const classtable_elt_t VFT_parser___ReduceAction75[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction75 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction75___action},
+  {(bigint) 0 /* 50: ReduceAction83 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction83___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction75 < ReduceAction75: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction83 < ReduceAction83: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction75::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction75(val_t p0){
+/* 2: Attribute ReduceAction83::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction83(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction75;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction83;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction75(void)
+val_t NEW_parser___ReduceAction83(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction75;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction83;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction75(val_t p0){
+void CHECKNEW_parser___ReduceAction83(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction75;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction83;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -90800,35 +88085,36 @@ void CHECKNEW_parser___ReduceAction75(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction75_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction83_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction75_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction83_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction75();
-  INIT_ATTRIBUTES__parser___ReduceAction75(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction83();
+  INIT_ATTRIBUTES__parser___ReduceAction83(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction75(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction83(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction76[52] = {
-  {(bigint) 471 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction84[55] = {
+  {(bigint) 427 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction76" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction76 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction76 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 471 /* 5: ReduceAction76 < ReduceAction76: superclass typecheck marker */},
+  {(bigint) "ReduceAction84" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction84 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction84 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 427 /* 5: ReduceAction84 < ReduceAction84: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90841,7 +88127,7 @@ const classtable_elt_t VFT_parser___ReduceAction76[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction76 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction84 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -90857,6 +88143,8 @@ const classtable_elt_t VFT_parser___ReduceAction76[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -90870,44 +88158,44 @@ const classtable_elt_t VFT_parser___ReduceAction76[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction76 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction76___action},
+  {(bigint) 0 /* 50: ReduceAction84 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction84___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction76 < ReduceAction76: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction84 < ReduceAction84: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction76::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction76(val_t p0){
+/* 2: Attribute ReduceAction84::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction84(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction76;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction84;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction76(void)
+val_t NEW_parser___ReduceAction84(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction76;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction84;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction76(val_t p0){
+void CHECKNEW_parser___ReduceAction84(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction76;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction84;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -90920,35 +88208,36 @@ void CHECKNEW_parser___ReduceAction76(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction76_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction84_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction76_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction84_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction76();
-  INIT_ATTRIBUTES__parser___ReduceAction76(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction84();
+  INIT_ATTRIBUTES__parser___ReduceAction84(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction76(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction84(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction77[52] = {
-  {(bigint) 467 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction85[55] = {
+  {(bigint) 423 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction77" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction77 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction77 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 467 /* 5: ReduceAction77 < ReduceAction77: superclass typecheck marker */},
+  {(bigint) "ReduceAction85" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction85 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction85 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 423 /* 5: ReduceAction85 < ReduceAction85: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90961,7 +88250,7 @@ const classtable_elt_t VFT_parser___ReduceAction77[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction77 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction85 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -90977,6 +88266,8 @@ const classtable_elt_t VFT_parser___ReduceAction77[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -90990,44 +88281,44 @@ const classtable_elt_t VFT_parser___ReduceAction77[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction77 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction77___action},
+  {(bigint) 0 /* 50: ReduceAction85 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction85___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction77 < ReduceAction77: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction85 < ReduceAction85: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction77::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction77(val_t p0){
+/* 2: Attribute ReduceAction85::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction85(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction77;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction85;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction77(void)
+val_t NEW_parser___ReduceAction85(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction77;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction85;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction77(val_t p0){
+void CHECKNEW_parser___ReduceAction85(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction77;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction85;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -91040,35 +88331,36 @@ void CHECKNEW_parser___ReduceAction77(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction77_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction85_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction77_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction85_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction77();
-  INIT_ATTRIBUTES__parser___ReduceAction77(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction85();
+  INIT_ATTRIBUTES__parser___ReduceAction85(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction77(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction85(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction78[52] = {
-  {(bigint) 463 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction86[55] = {
+  {(bigint) 419 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction78" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction78 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction78 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 463 /* 5: ReduceAction78 < ReduceAction78: superclass typecheck marker */},
+  {(bigint) "ReduceAction86" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction86 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction86 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 419 /* 5: ReduceAction86 < ReduceAction86: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -91081,7 +88373,7 @@ const classtable_elt_t VFT_parser___ReduceAction78[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction78 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction86 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -91097,6 +88389,8 @@ const classtable_elt_t VFT_parser___ReduceAction78[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -91110,44 +88404,44 @@ const classtable_elt_t VFT_parser___ReduceAction78[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction78 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction78___action},
+  {(bigint) 0 /* 50: ReduceAction86 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction86___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction78 < ReduceAction78: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction86 < ReduceAction86: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction78::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction78(val_t p0){
+/* 2: Attribute ReduceAction86::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction86(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction78;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction86;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction78(void)
+val_t NEW_parser___ReduceAction86(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction78;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction86;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction78(val_t p0){
+void CHECKNEW_parser___ReduceAction86(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction78;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction86;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -91160,35 +88454,36 @@ void CHECKNEW_parser___ReduceAction78(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction78_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction86_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction78_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction86_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction78();
-  INIT_ATTRIBUTES__parser___ReduceAction78(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction86();
+  INIT_ATTRIBUTES__parser___ReduceAction86(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction78(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction86(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction79[52] = {
-  {(bigint) 459 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction87[55] = {
+  {(bigint) 415 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction79" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction79 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction79 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 459 /* 5: ReduceAction79 < ReduceAction79: superclass typecheck marker */},
+  {(bigint) "ReduceAction87" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction87 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction87 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 415 /* 5: ReduceAction87 < ReduceAction87: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -91201,7 +88496,7 @@ const classtable_elt_t VFT_parser___ReduceAction79[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction79 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction87 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -91217,6 +88512,8 @@ const classtable_elt_t VFT_parser___ReduceAction79[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -91230,44 +88527,44 @@ const classtable_elt_t VFT_parser___ReduceAction79[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction79 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction79___action},
+  {(bigint) 0 /* 50: ReduceAction87 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction87___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction79 < ReduceAction79: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction87 < ReduceAction87: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction79::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction79(val_t p0){
+/* 2: Attribute ReduceAction87::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction87(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction79;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction87;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction79(void)
+val_t NEW_parser___ReduceAction87(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction79;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction87;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction79(val_t p0){
+void CHECKNEW_parser___ReduceAction87(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction79;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction87;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -91280,35 +88577,36 @@ void CHECKNEW_parser___ReduceAction79(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction79_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction87_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction79_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction87_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction79();
-  INIT_ATTRIBUTES__parser___ReduceAction79(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction87();
+  INIT_ATTRIBUTES__parser___ReduceAction87(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction79(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction87(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction80[52] = {
-  {(bigint) 451 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction88[55] = {
+  {(bigint) 411 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction80" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction80 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction80 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 451 /* 5: ReduceAction80 < ReduceAction80: superclass typecheck marker */},
+  {(bigint) "ReduceAction88" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction88 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction88 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 411 /* 5: ReduceAction88 < ReduceAction88: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -91321,7 +88619,7 @@ const classtable_elt_t VFT_parser___ReduceAction80[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction80 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction88 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -91337,6 +88635,8 @@ const classtable_elt_t VFT_parser___ReduceAction80[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -91350,44 +88650,44 @@ const classtable_elt_t VFT_parser___ReduceAction80[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction80 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction80___action},
+  {(bigint) 0 /* 50: ReduceAction88 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction88___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction80 < ReduceAction80: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction88 < ReduceAction88: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction80::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction80(val_t p0){
+/* 2: Attribute ReduceAction88::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction88(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction80;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction88;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction80(void)
+val_t NEW_parser___ReduceAction88(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction80;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction88;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction80(val_t p0){
+void CHECKNEW_parser___ReduceAction88(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction80;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction88;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -91400,35 +88700,36 @@ void CHECKNEW_parser___ReduceAction80(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction80_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction88_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction80_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction88_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction80();
-  INIT_ATTRIBUTES__parser___ReduceAction80(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction88();
+  INIT_ATTRIBUTES__parser___ReduceAction88(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction80(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction88(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction81[52] = {
-  {(bigint) 447 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction89[55] = {
+  {(bigint) 407 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction81" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction81 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction81 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 447 /* 5: ReduceAction81 < ReduceAction81: superclass typecheck marker */},
+  {(bigint) "ReduceAction89" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction89 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction89 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 407 /* 5: ReduceAction89 < ReduceAction89: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -91441,7 +88742,7 @@ const classtable_elt_t VFT_parser___ReduceAction81[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction81 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction89 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -91457,6 +88758,8 @@ const classtable_elt_t VFT_parser___ReduceAction81[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -91470,44 +88773,44 @@ const classtable_elt_t VFT_parser___ReduceAction81[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction81 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction81___action},
+  {(bigint) 0 /* 50: ReduceAction89 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction89___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction81 < ReduceAction81: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction89 < ReduceAction89: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction81::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction81(val_t p0){
+/* 2: Attribute ReduceAction89::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction89(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction81;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction89;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction81(void)
+val_t NEW_parser___ReduceAction89(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction81;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction89;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction81(val_t p0){
+void CHECKNEW_parser___ReduceAction89(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction81;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction89;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -91520,35 +88823,36 @@ void CHECKNEW_parser___ReduceAction81(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction81_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction89_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction81_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction89_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction81();
-  INIT_ATTRIBUTES__parser___ReduceAction81(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction89();
+  INIT_ATTRIBUTES__parser___ReduceAction89(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction81(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction89(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction82[52] = {
-  {(bigint) 443 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction90[55] = {
+  {(bigint) 399 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction82" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction82 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction82 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 443 /* 5: ReduceAction82 < ReduceAction82: superclass typecheck marker */},
+  {(bigint) "ReduceAction90" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction90 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction90 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 399 /* 5: ReduceAction90 < ReduceAction90: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -91561,7 +88865,7 @@ const classtable_elt_t VFT_parser___ReduceAction82[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction82 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction90 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -91577,6 +88881,8 @@ const classtable_elt_t VFT_parser___ReduceAction82[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -91590,44 +88896,44 @@ const classtable_elt_t VFT_parser___ReduceAction82[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction82 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction82___action},
+  {(bigint) 0 /* 50: ReduceAction90 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction90___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction82 < ReduceAction82: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction90 < ReduceAction90: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction82::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction82(val_t p0){
+/* 2: Attribute ReduceAction90::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction90(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction82;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction90;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction82(void)
+val_t NEW_parser___ReduceAction90(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction82;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction90;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction82(val_t p0){
+void CHECKNEW_parser___ReduceAction90(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction82;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction90;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -91640,35 +88946,36 @@ void CHECKNEW_parser___ReduceAction82(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction82_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction90_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction82_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction90_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction82();
-  INIT_ATTRIBUTES__parser___ReduceAction82(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction90();
+  INIT_ATTRIBUTES__parser___ReduceAction90(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction82(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction90(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction83[52] = {
-  {(bigint) 439 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction91[55] = {
+  {(bigint) 395 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction83" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction83 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction83 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 439 /* 5: ReduceAction83 < ReduceAction83: superclass typecheck marker */},
+  {(bigint) "ReduceAction91" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction91 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction91 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 395 /* 5: ReduceAction91 < ReduceAction91: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -91681,7 +88988,7 @@ const classtable_elt_t VFT_parser___ReduceAction83[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction83 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction91 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -91697,6 +89004,8 @@ const classtable_elt_t VFT_parser___ReduceAction83[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -91710,44 +89019,44 @@ const classtable_elt_t VFT_parser___ReduceAction83[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction83 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction83___action},
+  {(bigint) 0 /* 50: ReduceAction91 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction91___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction83 < ReduceAction83: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction91 < ReduceAction91: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction83::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction83(val_t p0){
+/* 2: Attribute ReduceAction91::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction91(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction83;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction91;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction83(void)
+val_t NEW_parser___ReduceAction91(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction83;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction91;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction83(val_t p0){
+void CHECKNEW_parser___ReduceAction91(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction83;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction91;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -91760,35 +89069,36 @@ void CHECKNEW_parser___ReduceAction83(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction83_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction91_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction83_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction91_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction83();
-  INIT_ATTRIBUTES__parser___ReduceAction83(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction91();
+  INIT_ATTRIBUTES__parser___ReduceAction91(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction83(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction91(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction84[52] = {
-  {(bigint) 435 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction92[55] = {
+  {(bigint) 391 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction84" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction84 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction84 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 435 /* 5: ReduceAction84 < ReduceAction84: superclass typecheck marker */},
+  {(bigint) "ReduceAction92" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction92 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction92 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 391 /* 5: ReduceAction92 < ReduceAction92: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -91801,7 +89111,7 @@ const classtable_elt_t VFT_parser___ReduceAction84[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction84 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction92 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -91817,6 +89127,8 @@ const classtable_elt_t VFT_parser___ReduceAction84[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -91830,44 +89142,44 @@ const classtable_elt_t VFT_parser___ReduceAction84[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction84 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction84___action},
+  {(bigint) 0 /* 50: ReduceAction92 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction92___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction84 < ReduceAction84: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction92 < ReduceAction92: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction84::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction84(val_t p0){
+/* 2: Attribute ReduceAction92::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction92(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction84;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction92;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction84(void)
+val_t NEW_parser___ReduceAction92(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction84;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction92;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction84(val_t p0){
+void CHECKNEW_parser___ReduceAction92(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction84;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction92;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -91880,35 +89192,36 @@ void CHECKNEW_parser___ReduceAction84(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction84_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction92_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction84_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction92_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction84();
-  INIT_ATTRIBUTES__parser___ReduceAction84(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction92();
+  INIT_ATTRIBUTES__parser___ReduceAction92(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction84(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction92(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction85[52] = {
-  {(bigint) 431 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction93[55] = {
+  {(bigint) 387 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction85" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction85 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction85 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 431 /* 5: ReduceAction85 < ReduceAction85: superclass typecheck marker */},
+  {(bigint) "ReduceAction93" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction93 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction93 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 387 /* 5: ReduceAction93 < ReduceAction93: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -91921,7 +89234,7 @@ const classtable_elt_t VFT_parser___ReduceAction85[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction85 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction93 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -91937,6 +89250,8 @@ const classtable_elt_t VFT_parser___ReduceAction85[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -91950,44 +89265,44 @@ const classtable_elt_t VFT_parser___ReduceAction85[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction85 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction85___action},
+  {(bigint) 0 /* 50: ReduceAction93 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction93___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction85 < ReduceAction85: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction93 < ReduceAction93: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction85::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction85(val_t p0){
+/* 2: Attribute ReduceAction93::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction93(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction85;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction93;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction85(void)
+val_t NEW_parser___ReduceAction93(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction85;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction93;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction85(val_t p0){
+void CHECKNEW_parser___ReduceAction93(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction85;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction93;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -92000,35 +89315,36 @@ void CHECKNEW_parser___ReduceAction85(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction85_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction93_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction85_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction93_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction85();
-  INIT_ATTRIBUTES__parser___ReduceAction85(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction93();
+  INIT_ATTRIBUTES__parser___ReduceAction93(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction85(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction93(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction86[52] = {
-  {(bigint) 427 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction94[55] = {
+  {(bigint) 383 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction86" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction86 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction86 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 427 /* 5: ReduceAction86 < ReduceAction86: superclass typecheck marker */},
+  {(bigint) "ReduceAction94" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction94 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction94 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 383 /* 5: ReduceAction94 < ReduceAction94: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -92041,7 +89357,7 @@ const classtable_elt_t VFT_parser___ReduceAction86[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction86 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction94 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -92057,6 +89373,8 @@ const classtable_elt_t VFT_parser___ReduceAction86[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -92070,44 +89388,44 @@ const classtable_elt_t VFT_parser___ReduceAction86[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction86 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction86___action},
+  {(bigint) 0 /* 50: ReduceAction94 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction94___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction86 < ReduceAction86: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction94 < ReduceAction94: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction86::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction86(val_t p0){
+/* 2: Attribute ReduceAction94::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction94(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction86;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction94;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction86(void)
+val_t NEW_parser___ReduceAction94(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction86;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction94;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction86(val_t p0){
+void CHECKNEW_parser___ReduceAction94(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction86;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction94;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -92120,35 +89438,36 @@ void CHECKNEW_parser___ReduceAction86(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction86_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction94_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction86_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction94_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction86();
-  INIT_ATTRIBUTES__parser___ReduceAction86(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction94();
+  INIT_ATTRIBUTES__parser___ReduceAction94(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction86(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction94(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction87[52] = {
-  {(bigint) 423 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction95[55] = {
+  {(bigint) 379 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction87" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction87 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction87 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 423 /* 5: ReduceAction87 < ReduceAction87: superclass typecheck marker */},
+  {(bigint) "ReduceAction95" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction95 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction95 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 379 /* 5: ReduceAction95 < ReduceAction95: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -92161,7 +89480,7 @@ const classtable_elt_t VFT_parser___ReduceAction87[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction87 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction95 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -92177,6 +89496,8 @@ const classtable_elt_t VFT_parser___ReduceAction87[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -92190,44 +89511,44 @@ const classtable_elt_t VFT_parser___ReduceAction87[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction87 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction87___action},
+  {(bigint) 0 /* 50: ReduceAction95 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction95___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction87 < ReduceAction87: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction95 < ReduceAction95: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction87::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction87(val_t p0){
+/* 2: Attribute ReduceAction95::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction95(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction87;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction95;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction87(void)
+val_t NEW_parser___ReduceAction95(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction87;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction95;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction87(val_t p0){
+void CHECKNEW_parser___ReduceAction95(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction87;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction95;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -92240,35 +89561,36 @@ void CHECKNEW_parser___ReduceAction87(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction87_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction95_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction87_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction95_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction87();
-  INIT_ATTRIBUTES__parser___ReduceAction87(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction95();
+  INIT_ATTRIBUTES__parser___ReduceAction95(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction87(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction95(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction88[52] = {
-  {(bigint) 419 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction96[55] = {
+  {(bigint) 375 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction88" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction88 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction88 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 419 /* 5: ReduceAction88 < ReduceAction88: superclass typecheck marker */},
+  {(bigint) "ReduceAction96" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction96 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction96 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 375 /* 5: ReduceAction96 < ReduceAction96: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -92281,7 +89603,7 @@ const classtable_elt_t VFT_parser___ReduceAction88[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction88 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction96 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -92297,6 +89619,8 @@ const classtable_elt_t VFT_parser___ReduceAction88[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -92310,44 +89634,44 @@ const classtable_elt_t VFT_parser___ReduceAction88[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction88 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction88___action},
+  {(bigint) 0 /* 50: ReduceAction96 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction96___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction88 < ReduceAction88: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction96 < ReduceAction96: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction88::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction88(val_t p0){
+/* 2: Attribute ReduceAction96::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction96(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction88;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction96;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction88(void)
+val_t NEW_parser___ReduceAction96(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction88;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction96;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction88(val_t p0){
+void CHECKNEW_parser___ReduceAction96(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction88;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction96;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -92360,35 +89684,36 @@ void CHECKNEW_parser___ReduceAction88(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction88_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction96_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction88_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction96_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction88();
-  INIT_ATTRIBUTES__parser___ReduceAction88(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction96();
+  INIT_ATTRIBUTES__parser___ReduceAction96(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction88(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction96(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction89[52] = {
-  {(bigint) 415 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction97[55] = {
+  {(bigint) 371 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction89" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction89 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction89 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 415 /* 5: ReduceAction89 < ReduceAction89: superclass typecheck marker */},
+  {(bigint) "ReduceAction97" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction97 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction97 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 371 /* 5: ReduceAction97 < ReduceAction97: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -92401,7 +89726,7 @@ const classtable_elt_t VFT_parser___ReduceAction89[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction89 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction97 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -92417,6 +89742,8 @@ const classtable_elt_t VFT_parser___ReduceAction89[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -92430,44 +89757,44 @@ const classtable_elt_t VFT_parser___ReduceAction89[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction89 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction89___action},
+  {(bigint) 0 /* 50: ReduceAction97 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction97___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction89 < ReduceAction89: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction97 < ReduceAction97: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction89::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction89(val_t p0){
+/* 2: Attribute ReduceAction97::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction97(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction89;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction97;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction89(void)
+val_t NEW_parser___ReduceAction97(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction89;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction97;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction89(val_t p0){
+void CHECKNEW_parser___ReduceAction97(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction89;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction97;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -92480,35 +89807,36 @@ void CHECKNEW_parser___ReduceAction89(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction89_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction97_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction89_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction97_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction89();
-  INIT_ATTRIBUTES__parser___ReduceAction89(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction97();
+  INIT_ATTRIBUTES__parser___ReduceAction97(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction89(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction97(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction90[52] = {
-  {(bigint) 407 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction98[55] = {
+  {(bigint) 367 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction90" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction90 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction90 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 407 /* 5: ReduceAction90 < ReduceAction90: superclass typecheck marker */},
+  {(bigint) "ReduceAction98" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction98 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction98 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 367 /* 5: ReduceAction98 < ReduceAction98: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -92521,7 +89849,7 @@ const classtable_elt_t VFT_parser___ReduceAction90[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction90 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction98 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -92537,6 +89865,8 @@ const classtable_elt_t VFT_parser___ReduceAction90[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -92550,44 +89880,44 @@ const classtable_elt_t VFT_parser___ReduceAction90[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction90 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction90___action},
+  {(bigint) 0 /* 50: ReduceAction98 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction98___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction90 < ReduceAction90: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction98 < ReduceAction98: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction90::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction90(val_t p0){
+/* 2: Attribute ReduceAction98::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction98(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction90;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction98;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction90(void)
+val_t NEW_parser___ReduceAction98(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction90;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction98;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction90(val_t p0){
+void CHECKNEW_parser___ReduceAction98(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction90;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction98;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -92600,35 +89930,36 @@ void CHECKNEW_parser___ReduceAction90(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction90_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction98_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction90_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction98_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction90();
-  INIT_ATTRIBUTES__parser___ReduceAction90(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction98();
+  INIT_ATTRIBUTES__parser___ReduceAction98(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction90(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction98(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction91[52] = {
-  {(bigint) 403 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction99[55] = {
+  {(bigint) 363 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction91" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction91 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction91 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 403 /* 5: ReduceAction91 < ReduceAction91: superclass typecheck marker */},
+  {(bigint) "ReduceAction99" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction99 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction99 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 363 /* 5: ReduceAction99 < ReduceAction99: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -92641,7 +89972,7 @@ const classtable_elt_t VFT_parser___ReduceAction91[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction91 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction99 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -92657,6 +89988,8 @@ const classtable_elt_t VFT_parser___ReduceAction91[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -92670,44 +90003,44 @@ const classtable_elt_t VFT_parser___ReduceAction91[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction91 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction91___action},
+  {(bigint) 0 /* 50: ReduceAction99 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction99___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction91 < ReduceAction91: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction99 < ReduceAction99: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction91::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction91(val_t p0){
+/* 2: Attribute ReduceAction99::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction99(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction91;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction99;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction91(void)
+val_t NEW_parser___ReduceAction99(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction91;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction99;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction91(val_t p0){
+void CHECKNEW_parser___ReduceAction99(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction91;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction99;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -92720,35 +90053,36 @@ void CHECKNEW_parser___ReduceAction91(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction91_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction99_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction91_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction99_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction91();
-  INIT_ATTRIBUTES__parser___ReduceAction91(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction99();
+  INIT_ATTRIBUTES__parser___ReduceAction99(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction91(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction99(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction92[52] = {
-  {(bigint) 399 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction100[55] = {
+  {(bigint) 2075 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction92" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction92 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction92 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 399 /* 5: ReduceAction92 < ReduceAction92: superclass typecheck marker */},
+  {(bigint) "ReduceAction100" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction100 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction100 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2075 /* 5: ReduceAction100 < ReduceAction100: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -92761,7 +90095,7 @@ const classtable_elt_t VFT_parser___ReduceAction92[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction92 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction100 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -92777,6 +90111,8 @@ const classtable_elt_t VFT_parser___ReduceAction92[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -92790,44 +90126,44 @@ const classtable_elt_t VFT_parser___ReduceAction92[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction92 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction92___action},
+  {(bigint) 0 /* 50: ReduceAction100 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction100___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction92 < ReduceAction92: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction100 < ReduceAction100: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction92::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction92(val_t p0){
+/* 2: Attribute ReduceAction100::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction100(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction92;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction100;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction92(void)
+val_t NEW_parser___ReduceAction100(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction92;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction100;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction92(val_t p0){
+void CHECKNEW_parser___ReduceAction100(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction92;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction100;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -92840,35 +90176,36 @@ void CHECKNEW_parser___ReduceAction92(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction92_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction100_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction92_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction100_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction92();
-  INIT_ATTRIBUTES__parser___ReduceAction92(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction100();
+  INIT_ATTRIBUTES__parser___ReduceAction100(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction92(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction100(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction93[52] = {
-  {(bigint) 395 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction101[55] = {
+  {(bigint) 2071 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction93" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction93 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction93 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 395 /* 5: ReduceAction93 < ReduceAction93: superclass typecheck marker */},
+  {(bigint) "ReduceAction101" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction101 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction101 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2071 /* 5: ReduceAction101 < ReduceAction101: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -92881,7 +90218,7 @@ const classtable_elt_t VFT_parser___ReduceAction93[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction93 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction101 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -92897,6 +90234,8 @@ const classtable_elt_t VFT_parser___ReduceAction93[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -92910,44 +90249,44 @@ const classtable_elt_t VFT_parser___ReduceAction93[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction93 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction93___action},
+  {(bigint) 0 /* 50: ReduceAction101 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction101___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction93 < ReduceAction93: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction101 < ReduceAction101: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction93::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction93(val_t p0){
+/* 2: Attribute ReduceAction101::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction101(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction93;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction101;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction93(void)
+val_t NEW_parser___ReduceAction101(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction93;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction101;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction93(val_t p0){
+void CHECKNEW_parser___ReduceAction101(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction93;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction101;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -92960,35 +90299,36 @@ void CHECKNEW_parser___ReduceAction93(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction93_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction101_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction93_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction101_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction93();
-  INIT_ATTRIBUTES__parser___ReduceAction93(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction101();
+  INIT_ATTRIBUTES__parser___ReduceAction101(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction93(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction101(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction94[52] = {
-  {(bigint) 391 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction102[55] = {
+  {(bigint) 2067 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction94" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction94 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction94 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 391 /* 5: ReduceAction94 < ReduceAction94: superclass typecheck marker */},
+  {(bigint) "ReduceAction102" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction102 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction102 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2067 /* 5: ReduceAction102 < ReduceAction102: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93001,7 +90341,7 @@ const classtable_elt_t VFT_parser___ReduceAction94[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction94 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction102 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -93017,6 +90357,8 @@ const classtable_elt_t VFT_parser___ReduceAction94[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -93030,44 +90372,44 @@ const classtable_elt_t VFT_parser___ReduceAction94[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction94 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction94___action},
+  {(bigint) 0 /* 50: ReduceAction102 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction102___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction94 < ReduceAction94: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction102 < ReduceAction102: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction94::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction94(val_t p0){
+/* 2: Attribute ReduceAction102::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction102(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction94;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction102;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction94(void)
+val_t NEW_parser___ReduceAction102(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction94;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction102;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction94(val_t p0){
+void CHECKNEW_parser___ReduceAction102(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction94;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction102;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -93080,35 +90422,36 @@ void CHECKNEW_parser___ReduceAction94(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction94_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction102_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction94_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction102_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction94();
-  INIT_ATTRIBUTES__parser___ReduceAction94(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction102();
+  INIT_ATTRIBUTES__parser___ReduceAction102(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction94(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction102(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction95[52] = {
-  {(bigint) 387 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction103[55] = {
+  {(bigint) 2063 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction95" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction95 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction95 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 387 /* 5: ReduceAction95 < ReduceAction95: superclass typecheck marker */},
+  {(bigint) "ReduceAction103" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction103 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction103 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2063 /* 5: ReduceAction103 < ReduceAction103: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93121,7 +90464,7 @@ const classtable_elt_t VFT_parser___ReduceAction95[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction95 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction103 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -93137,6 +90480,8 @@ const classtable_elt_t VFT_parser___ReduceAction95[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -93150,44 +90495,44 @@ const classtable_elt_t VFT_parser___ReduceAction95[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction95 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction95___action},
+  {(bigint) 0 /* 50: ReduceAction103 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction103___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction95 < ReduceAction95: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction103 < ReduceAction103: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction95::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction95(val_t p0){
+/* 2: Attribute ReduceAction103::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction103(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction95;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction103;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction95(void)
+val_t NEW_parser___ReduceAction103(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction95;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction103;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction95(val_t p0){
+void CHECKNEW_parser___ReduceAction103(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction95;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction103;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -93200,35 +90545,36 @@ void CHECKNEW_parser___ReduceAction95(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction95_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction103_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction95_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction103_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction95();
-  INIT_ATTRIBUTES__parser___ReduceAction95(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction103();
+  INIT_ATTRIBUTES__parser___ReduceAction103(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction95(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction103(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction96[52] = {
-  {(bigint) 383 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction104[55] = {
+  {(bigint) 2059 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction96" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction96 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction96 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 383 /* 5: ReduceAction96 < ReduceAction96: superclass typecheck marker */},
+  {(bigint) "ReduceAction104" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction104 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction104 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2059 /* 5: ReduceAction104 < ReduceAction104: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93241,7 +90587,7 @@ const classtable_elt_t VFT_parser___ReduceAction96[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction96 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction104 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -93257,6 +90603,8 @@ const classtable_elt_t VFT_parser___ReduceAction96[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -93270,44 +90618,44 @@ const classtable_elt_t VFT_parser___ReduceAction96[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction96 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction96___action},
+  {(bigint) 0 /* 50: ReduceAction104 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction104___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction96 < ReduceAction96: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction104 < ReduceAction104: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction96::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction96(val_t p0){
+/* 2: Attribute ReduceAction104::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction104(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction96;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction104;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction96(void)
+val_t NEW_parser___ReduceAction104(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction96;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction104;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction96(val_t p0){
+void CHECKNEW_parser___ReduceAction104(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction96;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction104;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -93320,35 +90668,36 @@ void CHECKNEW_parser___ReduceAction96(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction96_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction104_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction96_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction104_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction96();
-  INIT_ATTRIBUTES__parser___ReduceAction96(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction104();
+  INIT_ATTRIBUTES__parser___ReduceAction104(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction96(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction104(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction97[52] = {
-  {(bigint) 379 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction105[55] = {
+  {(bigint) 2055 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction97" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction97 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction97 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 379 /* 5: ReduceAction97 < ReduceAction97: superclass typecheck marker */},
+  {(bigint) "ReduceAction105" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction105 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction105 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2055 /* 5: ReduceAction105 < ReduceAction105: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93361,7 +90710,7 @@ const classtable_elt_t VFT_parser___ReduceAction97[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction97 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction105 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -93377,6 +90726,8 @@ const classtable_elt_t VFT_parser___ReduceAction97[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -93390,44 +90741,44 @@ const classtable_elt_t VFT_parser___ReduceAction97[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction97 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction97___action},
+  {(bigint) 0 /* 50: ReduceAction105 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction105___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction97 < ReduceAction97: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction105 < ReduceAction105: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction97::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction97(val_t p0){
+/* 2: Attribute ReduceAction105::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction105(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction97;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction105;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction97(void)
+val_t NEW_parser___ReduceAction105(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction97;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction105;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction97(val_t p0){
+void CHECKNEW_parser___ReduceAction105(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction97;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction105;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -93440,35 +90791,36 @@ void CHECKNEW_parser___ReduceAction97(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction97_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction105_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction97_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction105_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction97();
-  INIT_ATTRIBUTES__parser___ReduceAction97(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction105();
+  INIT_ATTRIBUTES__parser___ReduceAction105(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction97(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction105(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction98[52] = {
-  {(bigint) 375 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction106[55] = {
+  {(bigint) 2051 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction98" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction98 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction98 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 375 /* 5: ReduceAction98 < ReduceAction98: superclass typecheck marker */},
+  {(bigint) "ReduceAction106" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction106 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction106 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2051 /* 5: ReduceAction106 < ReduceAction106: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93481,7 +90833,7 @@ const classtable_elt_t VFT_parser___ReduceAction98[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction98 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction106 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -93497,6 +90849,8 @@ const classtable_elt_t VFT_parser___ReduceAction98[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -93510,44 +90864,44 @@ const classtable_elt_t VFT_parser___ReduceAction98[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction98 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction98___action},
+  {(bigint) 0 /* 50: ReduceAction106 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction106___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction98 < ReduceAction98: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction106 < ReduceAction106: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction98::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction98(val_t p0){
+/* 2: Attribute ReduceAction106::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction106(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction98;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction106;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction98(void)
+val_t NEW_parser___ReduceAction106(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction98;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction106;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction98(val_t p0){
+void CHECKNEW_parser___ReduceAction106(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction98;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction106;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -93560,35 +90914,36 @@ void CHECKNEW_parser___ReduceAction98(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction98_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction106_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction98_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction106_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction98();
-  INIT_ATTRIBUTES__parser___ReduceAction98(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction106();
+  INIT_ATTRIBUTES__parser___ReduceAction106(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction98(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction106(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction99[52] = {
-  {(bigint) 371 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction107[55] = {
+  {(bigint) 2047 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction99" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction99 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction99 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 371 /* 5: ReduceAction99 < ReduceAction99: superclass typecheck marker */},
+  {(bigint) "ReduceAction107" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction107 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction107 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2047 /* 5: ReduceAction107 < ReduceAction107: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93601,7 +90956,7 @@ const classtable_elt_t VFT_parser___ReduceAction99[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction99 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction107 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -93617,6 +90972,8 @@ const classtable_elt_t VFT_parser___ReduceAction99[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -93630,44 +90987,44 @@ const classtable_elt_t VFT_parser___ReduceAction99[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction99 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction99___action},
+  {(bigint) 0 /* 50: ReduceAction107 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction107___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction99 < ReduceAction99: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction107 < ReduceAction107: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction99::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction99(val_t p0){
+/* 2: Attribute ReduceAction107::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction107(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction99;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction107;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction99(void)
+val_t NEW_parser___ReduceAction107(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction99;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction107;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction99(val_t p0){
+void CHECKNEW_parser___ReduceAction107(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction99;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction107;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -93680,35 +91037,36 @@ void CHECKNEW_parser___ReduceAction99(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction99_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction107_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction99_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction107_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction99();
-  INIT_ATTRIBUTES__parser___ReduceAction99(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction107();
+  INIT_ATTRIBUTES__parser___ReduceAction107(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction99(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction107(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction100[52] = {
-  {(bigint) 2039 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction108[55] = {
+  {(bigint) 2043 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction100" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction100 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction100 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2039 /* 5: ReduceAction100 < ReduceAction100: superclass typecheck marker */},
+  {(bigint) "ReduceAction108" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction108 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction108 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2043 /* 5: ReduceAction108 < ReduceAction108: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93721,7 +91079,7 @@ const classtable_elt_t VFT_parser___ReduceAction100[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction100 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction108 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -93737,6 +91095,8 @@ const classtable_elt_t VFT_parser___ReduceAction100[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -93750,44 +91110,44 @@ const classtable_elt_t VFT_parser___ReduceAction100[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction100 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction100___action},
+  {(bigint) 0 /* 50: ReduceAction108 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction108___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction100 < ReduceAction100: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction108 < ReduceAction108: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction100::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction100(val_t p0){
+/* 2: Attribute ReduceAction108::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction108(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction100;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction108;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction100(void)
+val_t NEW_parser___ReduceAction108(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction100;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction108;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction100(val_t p0){
+void CHECKNEW_parser___ReduceAction108(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction100;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction108;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -93800,35 +91160,36 @@ void CHECKNEW_parser___ReduceAction100(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction100_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction108_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction100_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction108_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction100();
-  INIT_ATTRIBUTES__parser___ReduceAction100(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction108();
+  INIT_ATTRIBUTES__parser___ReduceAction108(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction100(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction108(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction101[52] = {
-  {(bigint) 2035 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction109[55] = {
+  {(bigint) 2039 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction101" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction101 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction101 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2035 /* 5: ReduceAction101 < ReduceAction101: superclass typecheck marker */},
+  {(bigint) "ReduceAction109" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction109 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction109 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2039 /* 5: ReduceAction109 < ReduceAction109: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93841,7 +91202,7 @@ const classtable_elt_t VFT_parser___ReduceAction101[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction101 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction109 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -93857,6 +91218,8 @@ const classtable_elt_t VFT_parser___ReduceAction101[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -93870,44 +91233,44 @@ const classtable_elt_t VFT_parser___ReduceAction101[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction101 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction101___action},
+  {(bigint) 0 /* 50: ReduceAction109 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction109___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction101 < ReduceAction101: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction109 < ReduceAction109: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction101::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction101(val_t p0){
+/* 2: Attribute ReduceAction109::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction109(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction101;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction109;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction101(void)
+val_t NEW_parser___ReduceAction109(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction101;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction109;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction101(val_t p0){
+void CHECKNEW_parser___ReduceAction109(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction101;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction109;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -93920,35 +91283,36 @@ void CHECKNEW_parser___ReduceAction101(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction101_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction109_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction101_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction109_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction101();
-  INIT_ATTRIBUTES__parser___ReduceAction101(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction109();
+  INIT_ATTRIBUTES__parser___ReduceAction109(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction101(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction109(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction102[52] = {
+const classtable_elt_t VFT_parser___ReduceAction110[55] = {
   {(bigint) 2031 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction102" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction102 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction102 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2031 /* 5: ReduceAction102 < ReduceAction102: superclass typecheck marker */},
+  {(bigint) "ReduceAction110" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction110 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction110 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2031 /* 5: ReduceAction110 < ReduceAction110: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93961,7 +91325,7 @@ const classtable_elt_t VFT_parser___ReduceAction102[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction102 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction110 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -93977,6 +91341,8 @@ const classtable_elt_t VFT_parser___ReduceAction102[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -93990,44 +91356,44 @@ const classtable_elt_t VFT_parser___ReduceAction102[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction102 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction102___action},
+  {(bigint) 0 /* 50: ReduceAction110 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction110___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction102 < ReduceAction102: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction110 < ReduceAction110: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction102::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction102(val_t p0){
+/* 2: Attribute ReduceAction110::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction110(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction102;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction110;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction102(void)
+val_t NEW_parser___ReduceAction110(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction102;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction110;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction102(val_t p0){
+void CHECKNEW_parser___ReduceAction110(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction102;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction110;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -94040,35 +91406,36 @@ void CHECKNEW_parser___ReduceAction102(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction102_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction110_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction102_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction110_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction102();
-  INIT_ATTRIBUTES__parser___ReduceAction102(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction110();
+  INIT_ATTRIBUTES__parser___ReduceAction110(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction102(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction110(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction103[52] = {
+const classtable_elt_t VFT_parser___ReduceAction111[55] = {
   {(bigint) 2027 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction103" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction103 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction103 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2027 /* 5: ReduceAction103 < ReduceAction103: superclass typecheck marker */},
+  {(bigint) "ReduceAction111" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction111 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction111 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2027 /* 5: ReduceAction111 < ReduceAction111: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -94081,7 +91448,7 @@ const classtable_elt_t VFT_parser___ReduceAction103[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction103 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction111 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -94097,6 +91464,8 @@ const classtable_elt_t VFT_parser___ReduceAction103[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -94110,44 +91479,44 @@ const classtable_elt_t VFT_parser___ReduceAction103[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction103 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction103___action},
+  {(bigint) 0 /* 50: ReduceAction111 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction111___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction103 < ReduceAction103: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction111 < ReduceAction111: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction103::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction103(val_t p0){
+/* 2: Attribute ReduceAction111::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction111(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction103;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction111;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction103(void)
+val_t NEW_parser___ReduceAction111(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction103;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction111;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction103(val_t p0){
+void CHECKNEW_parser___ReduceAction111(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction103;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction111;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -94160,35 +91529,36 @@ void CHECKNEW_parser___ReduceAction103(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction103_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction111_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction103_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction111_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction103();
-  INIT_ATTRIBUTES__parser___ReduceAction103(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction111();
+  INIT_ATTRIBUTES__parser___ReduceAction111(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction103(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction111(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction104[52] = {
+const classtable_elt_t VFT_parser___ReduceAction112[55] = {
   {(bigint) 2023 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction104" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction104 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction104 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2023 /* 5: ReduceAction104 < ReduceAction104: superclass typecheck marker */},
+  {(bigint) "ReduceAction112" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction112 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction112 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2023 /* 5: ReduceAction112 < ReduceAction112: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -94201,7 +91571,7 @@ const classtable_elt_t VFT_parser___ReduceAction104[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction104 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction112 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -94217,6 +91587,8 @@ const classtable_elt_t VFT_parser___ReduceAction104[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -94230,44 +91602,44 @@ const classtable_elt_t VFT_parser___ReduceAction104[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction104 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction104___action},
+  {(bigint) 0 /* 50: ReduceAction112 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction112___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction104 < ReduceAction104: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction112 < ReduceAction112: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction104::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction104(val_t p0){
+/* 2: Attribute ReduceAction112::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction112(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction104;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction112;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction104(void)
+val_t NEW_parser___ReduceAction112(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction104;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction112;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction104(val_t p0){
+void CHECKNEW_parser___ReduceAction112(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction104;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction112;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -94280,35 +91652,36 @@ void CHECKNEW_parser___ReduceAction104(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction104_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction112_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction104_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction112_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction104();
-  INIT_ATTRIBUTES__parser___ReduceAction104(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction112();
+  INIT_ATTRIBUTES__parser___ReduceAction112(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction104(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction112(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction105[52] = {
+const classtable_elt_t VFT_parser___ReduceAction113[55] = {
   {(bigint) 2019 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction105" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction105 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction105 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2019 /* 5: ReduceAction105 < ReduceAction105: superclass typecheck marker */},
+  {(bigint) "ReduceAction113" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction113 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction113 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2019 /* 5: ReduceAction113 < ReduceAction113: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -94321,7 +91694,7 @@ const classtable_elt_t VFT_parser___ReduceAction105[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction105 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction113 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -94337,6 +91710,8 @@ const classtable_elt_t VFT_parser___ReduceAction105[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -94350,44 +91725,44 @@ const classtable_elt_t VFT_parser___ReduceAction105[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction105 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction105___action},
+  {(bigint) 0 /* 50: ReduceAction113 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction113___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction105 < ReduceAction105: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction113 < ReduceAction113: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction105::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction105(val_t p0){
+/* 2: Attribute ReduceAction113::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction113(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction105;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction113;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction105(void)
+val_t NEW_parser___ReduceAction113(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction105;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction113;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction105(val_t p0){
+void CHECKNEW_parser___ReduceAction113(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction105;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction113;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -94400,35 +91775,36 @@ void CHECKNEW_parser___ReduceAction105(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction105_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction113_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction105_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction113_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction105();
-  INIT_ATTRIBUTES__parser___ReduceAction105(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction113();
+  INIT_ATTRIBUTES__parser___ReduceAction113(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction105(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction113(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction106[52] = {
+const classtable_elt_t VFT_parser___ReduceAction114[55] = {
   {(bigint) 2015 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction106" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction106 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction106 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2015 /* 5: ReduceAction106 < ReduceAction106: superclass typecheck marker */},
+  {(bigint) "ReduceAction114" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction114 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction114 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2015 /* 5: ReduceAction114 < ReduceAction114: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -94441,7 +91817,7 @@ const classtable_elt_t VFT_parser___ReduceAction106[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction106 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction114 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -94457,6 +91833,8 @@ const classtable_elt_t VFT_parser___ReduceAction106[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -94470,44 +91848,44 @@ const classtable_elt_t VFT_parser___ReduceAction106[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction106 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction106___action},
+  {(bigint) 0 /* 50: ReduceAction114 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction114___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction106 < ReduceAction106: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction114 < ReduceAction114: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction106::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction106(val_t p0){
+/* 2: Attribute ReduceAction114::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction114(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction106;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction114;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction106(void)
+val_t NEW_parser___ReduceAction114(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction106;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction114;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction106(val_t p0){
+void CHECKNEW_parser___ReduceAction114(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction106;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction114;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -94520,35 +91898,36 @@ void CHECKNEW_parser___ReduceAction106(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction106_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction114_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction106_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction114_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction106();
-  INIT_ATTRIBUTES__parser___ReduceAction106(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction114();
+  INIT_ATTRIBUTES__parser___ReduceAction114(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction106(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction114(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction107[52] = {
+const classtable_elt_t VFT_parser___ReduceAction115[55] = {
   {(bigint) 2011 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction107" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction107 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction107 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2011 /* 5: ReduceAction107 < ReduceAction107: superclass typecheck marker */},
+  {(bigint) "ReduceAction115" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction115 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction115 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2011 /* 5: ReduceAction115 < ReduceAction115: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -94561,7 +91940,7 @@ const classtable_elt_t VFT_parser___ReduceAction107[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction107 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction115 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -94577,6 +91956,8 @@ const classtable_elt_t VFT_parser___ReduceAction107[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -94590,44 +91971,44 @@ const classtable_elt_t VFT_parser___ReduceAction107[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction107 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction107___action},
+  {(bigint) 0 /* 50: ReduceAction115 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction115___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction107 < ReduceAction107: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction115 < ReduceAction115: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction107::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction107(val_t p0){
+/* 2: Attribute ReduceAction115::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction115(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction107;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction115;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction107(void)
+val_t NEW_parser___ReduceAction115(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction107;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction115;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction107(val_t p0){
+void CHECKNEW_parser___ReduceAction115(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction107;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction115;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -94640,35 +92021,36 @@ void CHECKNEW_parser___ReduceAction107(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction107_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction115_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction107_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction115_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction107();
-  INIT_ATTRIBUTES__parser___ReduceAction107(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction115();
+  INIT_ATTRIBUTES__parser___ReduceAction115(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction107(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction115(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction108[52] = {
+const classtable_elt_t VFT_parser___ReduceAction116[55] = {
   {(bigint) 2007 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction108" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction108 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction108 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2007 /* 5: ReduceAction108 < ReduceAction108: superclass typecheck marker */},
+  {(bigint) "ReduceAction116" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction116 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction116 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2007 /* 5: ReduceAction116 < ReduceAction116: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -94681,7 +92063,7 @@ const classtable_elt_t VFT_parser___ReduceAction108[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction108 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction116 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -94697,6 +92079,8 @@ const classtable_elt_t VFT_parser___ReduceAction108[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -94710,44 +92094,44 @@ const classtable_elt_t VFT_parser___ReduceAction108[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction108 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction108___action},
+  {(bigint) 0 /* 50: ReduceAction116 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction116___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction108 < ReduceAction108: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction116 < ReduceAction116: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction108::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction108(val_t p0){
+/* 2: Attribute ReduceAction116::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction116(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction108;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction116;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction108(void)
+val_t NEW_parser___ReduceAction116(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction108;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction116;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction108(val_t p0){
+void CHECKNEW_parser___ReduceAction116(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction108;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction116;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -94760,35 +92144,36 @@ void CHECKNEW_parser___ReduceAction108(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction108_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction116_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction108_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction116_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction108();
-  INIT_ATTRIBUTES__parser___ReduceAction108(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction116();
+  INIT_ATTRIBUTES__parser___ReduceAction116(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction108(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction116(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction109[52] = {
+const classtable_elt_t VFT_parser___ReduceAction117[55] = {
   {(bigint) 2003 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction109" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction109 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction109 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2003 /* 5: ReduceAction109 < ReduceAction109: superclass typecheck marker */},
+  {(bigint) "ReduceAction117" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction117 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction117 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2003 /* 5: ReduceAction117 < ReduceAction117: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -94801,7 +92186,7 @@ const classtable_elt_t VFT_parser___ReduceAction109[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction109 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction117 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -94817,6 +92202,8 @@ const classtable_elt_t VFT_parser___ReduceAction109[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -94830,44 +92217,44 @@ const classtable_elt_t VFT_parser___ReduceAction109[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction109 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction109___action},
+  {(bigint) 0 /* 50: ReduceAction117 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction117___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction109 < ReduceAction109: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction117 < ReduceAction117: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction109::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction109(val_t p0){
+/* 2: Attribute ReduceAction117::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction117(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction109;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction117;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction109(void)
+val_t NEW_parser___ReduceAction117(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction109;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction117;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction109(val_t p0){
+void CHECKNEW_parser___ReduceAction117(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction109;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction117;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -94880,35 +92267,36 @@ void CHECKNEW_parser___ReduceAction109(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction109_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction117_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction109_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction117_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction109();
-  INIT_ATTRIBUTES__parser___ReduceAction109(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction117();
+  INIT_ATTRIBUTES__parser___ReduceAction117(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction109(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction117(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction110[52] = {
-  {(bigint) 1995 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction118[55] = {
+  {(bigint) 1999 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction110" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction110 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction110 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1995 /* 5: ReduceAction110 < ReduceAction110: superclass typecheck marker */},
+  {(bigint) "ReduceAction118" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction118 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction118 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1999 /* 5: ReduceAction118 < ReduceAction118: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -94921,7 +92309,7 @@ const classtable_elt_t VFT_parser___ReduceAction110[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction110 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction118 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -94937,6 +92325,8 @@ const classtable_elt_t VFT_parser___ReduceAction110[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -94950,44 +92340,44 @@ const classtable_elt_t VFT_parser___ReduceAction110[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction110 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction110___action},
+  {(bigint) 0 /* 50: ReduceAction118 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction118___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction110 < ReduceAction110: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction118 < ReduceAction118: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction110::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction110(val_t p0){
+/* 2: Attribute ReduceAction118::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction118(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction110;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction118;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction110(void)
+val_t NEW_parser___ReduceAction118(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction110;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction118;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction110(val_t p0){
+void CHECKNEW_parser___ReduceAction118(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction110;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction118;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -95000,35 +92390,36 @@ void CHECKNEW_parser___ReduceAction110(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction110_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction118_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction110_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction118_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction110();
-  INIT_ATTRIBUTES__parser___ReduceAction110(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction118();
+  INIT_ATTRIBUTES__parser___ReduceAction118(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction110(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction118(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction111[52] = {
-  {(bigint) 1991 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction119[55] = {
+  {(bigint) 1995 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction111" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction111 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction111 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1991 /* 5: ReduceAction111 < ReduceAction111: superclass typecheck marker */},
+  {(bigint) "ReduceAction119" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction119 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction119 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1995 /* 5: ReduceAction119 < ReduceAction119: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95041,7 +92432,7 @@ const classtable_elt_t VFT_parser___ReduceAction111[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction111 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction119 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -95057,6 +92448,8 @@ const classtable_elt_t VFT_parser___ReduceAction111[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -95070,44 +92463,44 @@ const classtable_elt_t VFT_parser___ReduceAction111[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction111 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction111___action},
+  {(bigint) 0 /* 50: ReduceAction119 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction119___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction111 < ReduceAction111: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction119 < ReduceAction119: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction111::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction111(val_t p0){
+/* 2: Attribute ReduceAction119::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction119(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction111;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction119;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction111(void)
+val_t NEW_parser___ReduceAction119(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction111;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction119;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction111(val_t p0){
+void CHECKNEW_parser___ReduceAction119(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction111;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction119;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -95120,35 +92513,36 @@ void CHECKNEW_parser___ReduceAction111(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction111_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction119_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction111_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction119_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction111();
-  INIT_ATTRIBUTES__parser___ReduceAction111(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction119();
+  INIT_ATTRIBUTES__parser___ReduceAction119(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction111(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction119(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction112[52] = {
+const classtable_elt_t VFT_parser___ReduceAction120[55] = {
   {(bigint) 1987 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction112" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction112 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction112 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1987 /* 5: ReduceAction112 < ReduceAction112: superclass typecheck marker */},
+  {(bigint) "ReduceAction120" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction120 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction120 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1987 /* 5: ReduceAction120 < ReduceAction120: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95161,7 +92555,7 @@ const classtable_elt_t VFT_parser___ReduceAction112[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction112 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction120 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -95177,6 +92571,8 @@ const classtable_elt_t VFT_parser___ReduceAction112[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -95190,44 +92586,44 @@ const classtable_elt_t VFT_parser___ReduceAction112[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction112 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction112___action},
+  {(bigint) 0 /* 50: ReduceAction120 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction120___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction112 < ReduceAction112: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction120 < ReduceAction120: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction112::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction112(val_t p0){
+/* 2: Attribute ReduceAction120::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction120(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction112;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction120;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction112(void)
+val_t NEW_parser___ReduceAction120(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction112;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction120;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction112(val_t p0){
+void CHECKNEW_parser___ReduceAction120(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction112;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction120;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -95240,35 +92636,36 @@ void CHECKNEW_parser___ReduceAction112(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction112_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction120_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction112_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction120_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction112();
-  INIT_ATTRIBUTES__parser___ReduceAction112(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction120();
+  INIT_ATTRIBUTES__parser___ReduceAction120(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction112(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction120(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction113[52] = {
+const classtable_elt_t VFT_parser___ReduceAction121[55] = {
   {(bigint) 1983 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction113" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction113 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction113 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1983 /* 5: ReduceAction113 < ReduceAction113: superclass typecheck marker */},
+  {(bigint) "ReduceAction121" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction121 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction121 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1983 /* 5: ReduceAction121 < ReduceAction121: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95281,7 +92678,7 @@ const classtable_elt_t VFT_parser___ReduceAction113[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction113 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction121 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -95297,6 +92694,8 @@ const classtable_elt_t VFT_parser___ReduceAction113[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -95310,44 +92709,44 @@ const classtable_elt_t VFT_parser___ReduceAction113[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction113 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction113___action},
+  {(bigint) 0 /* 50: ReduceAction121 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction121___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction113 < ReduceAction113: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction121 < ReduceAction121: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction113::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction113(val_t p0){
+/* 2: Attribute ReduceAction121::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction121(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction113;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction121;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction113(void)
+val_t NEW_parser___ReduceAction121(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction113;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction121;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction113(val_t p0){
+void CHECKNEW_parser___ReduceAction121(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction113;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction121;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -95360,35 +92759,36 @@ void CHECKNEW_parser___ReduceAction113(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction113_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction121_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction113_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction121_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction113();
-  INIT_ATTRIBUTES__parser___ReduceAction113(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction121();
+  INIT_ATTRIBUTES__parser___ReduceAction121(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction113(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction121(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction114[52] = {
+const classtable_elt_t VFT_parser___ReduceAction122[55] = {
   {(bigint) 1979 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction114" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction114 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction114 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1979 /* 5: ReduceAction114 < ReduceAction114: superclass typecheck marker */},
+  {(bigint) "ReduceAction122" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction122 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction122 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1979 /* 5: ReduceAction122 < ReduceAction122: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95401,7 +92801,7 @@ const classtable_elt_t VFT_parser___ReduceAction114[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction114 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction122 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -95417,6 +92817,8 @@ const classtable_elt_t VFT_parser___ReduceAction114[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -95430,44 +92832,44 @@ const classtable_elt_t VFT_parser___ReduceAction114[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction114 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction114___action},
+  {(bigint) 0 /* 50: ReduceAction122 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction122___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction114 < ReduceAction114: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction122 < ReduceAction122: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction114::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction114(val_t p0){
+/* 2: Attribute ReduceAction122::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction122(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction114;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction122;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction114(void)
+val_t NEW_parser___ReduceAction122(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction114;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction122;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction114(val_t p0){
+void CHECKNEW_parser___ReduceAction122(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction114;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction122;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -95480,35 +92882,36 @@ void CHECKNEW_parser___ReduceAction114(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction114_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction122_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction114_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction122_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction114();
-  INIT_ATTRIBUTES__parser___ReduceAction114(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction122();
+  INIT_ATTRIBUTES__parser___ReduceAction122(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction114(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction122(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction115[52] = {
+const classtable_elt_t VFT_parser___ReduceAction123[55] = {
   {(bigint) 1975 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction115" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction115 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction115 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1975 /* 5: ReduceAction115 < ReduceAction115: superclass typecheck marker */},
+  {(bigint) "ReduceAction123" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction123 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction123 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1975 /* 5: ReduceAction123 < ReduceAction123: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95521,7 +92924,7 @@ const classtable_elt_t VFT_parser___ReduceAction115[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction115 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction123 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -95537,6 +92940,8 @@ const classtable_elt_t VFT_parser___ReduceAction115[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -95550,44 +92955,44 @@ const classtable_elt_t VFT_parser___ReduceAction115[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction115 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction115___action},
+  {(bigint) 0 /* 50: ReduceAction123 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction123___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction115 < ReduceAction115: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction123 < ReduceAction123: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction115::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction115(val_t p0){
+/* 2: Attribute ReduceAction123::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction123(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction115;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction123;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction115(void)
+val_t NEW_parser___ReduceAction123(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction115;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction123;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction115(val_t p0){
+void CHECKNEW_parser___ReduceAction123(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction115;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction123;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -95600,35 +93005,36 @@ void CHECKNEW_parser___ReduceAction115(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction115_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction123_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction115_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction123_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction115();
-  INIT_ATTRIBUTES__parser___ReduceAction115(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction123();
+  INIT_ATTRIBUTES__parser___ReduceAction123(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction115(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction123(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction116[52] = {
+const classtable_elt_t VFT_parser___ReduceAction124[55] = {
   {(bigint) 1971 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction116" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction116 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction116 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1971 /* 5: ReduceAction116 < ReduceAction116: superclass typecheck marker */},
+  {(bigint) "ReduceAction124" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction124 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction124 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1971 /* 5: ReduceAction124 < ReduceAction124: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95641,7 +93047,7 @@ const classtable_elt_t VFT_parser___ReduceAction116[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction116 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction124 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -95657,6 +93063,8 @@ const classtable_elt_t VFT_parser___ReduceAction116[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -95670,44 +93078,44 @@ const classtable_elt_t VFT_parser___ReduceAction116[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction116 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction116___action},
+  {(bigint) 0 /* 50: ReduceAction124 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction124___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction116 < ReduceAction116: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction124 < ReduceAction124: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction116::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction116(val_t p0){
+/* 2: Attribute ReduceAction124::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction124(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction116;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction124;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction116(void)
+val_t NEW_parser___ReduceAction124(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction116;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction124;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction116(val_t p0){
+void CHECKNEW_parser___ReduceAction124(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction116;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction124;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -95720,35 +93128,36 @@ void CHECKNEW_parser___ReduceAction116(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction116_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction124_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction116_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction124_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction116();
-  INIT_ATTRIBUTES__parser___ReduceAction116(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction124();
+  INIT_ATTRIBUTES__parser___ReduceAction124(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction116(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction124(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction117[52] = {
+const classtable_elt_t VFT_parser___ReduceAction125[55] = {
   {(bigint) 1967 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction117" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction117 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction117 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1967 /* 5: ReduceAction117 < ReduceAction117: superclass typecheck marker */},
+  {(bigint) "ReduceAction125" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction125 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction125 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1967 /* 5: ReduceAction125 < ReduceAction125: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95761,7 +93170,7 @@ const classtable_elt_t VFT_parser___ReduceAction117[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction117 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction125 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -95777,6 +93186,8 @@ const classtable_elt_t VFT_parser___ReduceAction117[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -95790,44 +93201,44 @@ const classtable_elt_t VFT_parser___ReduceAction117[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction117 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction117___action},
+  {(bigint) 0 /* 50: ReduceAction125 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction125___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction117 < ReduceAction117: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction125 < ReduceAction125: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction117::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction117(val_t p0){
+/* 2: Attribute ReduceAction125::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction125(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction117;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction125;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction117(void)
+val_t NEW_parser___ReduceAction125(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction117;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction125;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction117(val_t p0){
+void CHECKNEW_parser___ReduceAction125(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction117;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction125;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -95840,35 +93251,36 @@ void CHECKNEW_parser___ReduceAction117(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction117_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction125_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction117_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction125_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction117();
-  INIT_ATTRIBUTES__parser___ReduceAction117(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction125();
+  INIT_ATTRIBUTES__parser___ReduceAction125(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction117(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction125(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction118[52] = {
+const classtable_elt_t VFT_parser___ReduceAction126[55] = {
   {(bigint) 1963 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction118" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction118 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction118 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1963 /* 5: ReduceAction118 < ReduceAction118: superclass typecheck marker */},
+  {(bigint) "ReduceAction126" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction126 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction126 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1963 /* 5: ReduceAction126 < ReduceAction126: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95881,7 +93293,7 @@ const classtable_elt_t VFT_parser___ReduceAction118[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction118 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction126 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -95897,6 +93309,8 @@ const classtable_elt_t VFT_parser___ReduceAction118[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -95910,44 +93324,44 @@ const classtable_elt_t VFT_parser___ReduceAction118[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction118 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction118___action},
+  {(bigint) 0 /* 50: ReduceAction126 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction126___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction118 < ReduceAction118: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction126 < ReduceAction126: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction118::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction118(val_t p0){
+/* 2: Attribute ReduceAction126::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction126(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction118;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction126;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction118(void)
+val_t NEW_parser___ReduceAction126(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction118;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction126;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction118(val_t p0){
+void CHECKNEW_parser___ReduceAction126(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction118;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction126;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -95960,35 +93374,36 @@ void CHECKNEW_parser___ReduceAction118(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction118_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction126_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction118_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction126_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction118();
-  INIT_ATTRIBUTES__parser___ReduceAction118(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction126();
+  INIT_ATTRIBUTES__parser___ReduceAction126(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction118(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction126(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction119[52] = {
+const classtable_elt_t VFT_parser___ReduceAction127[55] = {
   {(bigint) 1959 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction119" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction119 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction119 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1959 /* 5: ReduceAction119 < ReduceAction119: superclass typecheck marker */},
+  {(bigint) "ReduceAction127" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction127 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction127 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1959 /* 5: ReduceAction127 < ReduceAction127: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96001,7 +93416,7 @@ const classtable_elt_t VFT_parser___ReduceAction119[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction119 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction127 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -96017,6 +93432,8 @@ const classtable_elt_t VFT_parser___ReduceAction119[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -96030,44 +93447,44 @@ const classtable_elt_t VFT_parser___ReduceAction119[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction119 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction119___action},
+  {(bigint) 0 /* 50: ReduceAction127 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction127___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction119 < ReduceAction119: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction127 < ReduceAction127: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction119::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction119(val_t p0){
+/* 2: Attribute ReduceAction127::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction127(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction119;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction127;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction119(void)
+val_t NEW_parser___ReduceAction127(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction119;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction127;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction119(val_t p0){
+void CHECKNEW_parser___ReduceAction127(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction119;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction127;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -96080,35 +93497,36 @@ void CHECKNEW_parser___ReduceAction119(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction119_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction127_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction119_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction127_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction119();
-  INIT_ATTRIBUTES__parser___ReduceAction119(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction127();
+  INIT_ATTRIBUTES__parser___ReduceAction127(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction119(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction127(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction120[52] = {
-  {(bigint) 1951 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction128[55] = {
+  {(bigint) 1955 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction120" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction120 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction120 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1951 /* 5: ReduceAction120 < ReduceAction120: superclass typecheck marker */},
+  {(bigint) "ReduceAction128" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction128 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction128 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1955 /* 5: ReduceAction128 < ReduceAction128: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96121,7 +93539,7 @@ const classtable_elt_t VFT_parser___ReduceAction120[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction120 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction128 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -96137,6 +93555,8 @@ const classtable_elt_t VFT_parser___ReduceAction120[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -96150,44 +93570,44 @@ const classtable_elt_t VFT_parser___ReduceAction120[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction120 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction120___action},
+  {(bigint) 0 /* 50: ReduceAction128 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction128___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction120 < ReduceAction120: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction128 < ReduceAction128: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction120::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction120(val_t p0){
+/* 2: Attribute ReduceAction128::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction128(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction120;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction128;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction120(void)
+val_t NEW_parser___ReduceAction128(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction120;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction128;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction120(val_t p0){
+void CHECKNEW_parser___ReduceAction128(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction120;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction128;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -96200,35 +93620,36 @@ void CHECKNEW_parser___ReduceAction120(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction120_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction128_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction120_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction128_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction120();
-  INIT_ATTRIBUTES__parser___ReduceAction120(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction128();
+  INIT_ATTRIBUTES__parser___ReduceAction128(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction120(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction128(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction121[52] = {
-  {(bigint) 1947 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction129[55] = {
+  {(bigint) 1951 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction121" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction121 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction121 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1947 /* 5: ReduceAction121 < ReduceAction121: superclass typecheck marker */},
+  {(bigint) "ReduceAction129" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction129 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction129 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1951 /* 5: ReduceAction129 < ReduceAction129: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96241,7 +93662,7 @@ const classtable_elt_t VFT_parser___ReduceAction121[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction121 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction129 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -96257,6 +93678,8 @@ const classtable_elt_t VFT_parser___ReduceAction121[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -96270,44 +93693,44 @@ const classtable_elt_t VFT_parser___ReduceAction121[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction121 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction121___action},
+  {(bigint) 0 /* 50: ReduceAction129 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction129___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction121 < ReduceAction121: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction129 < ReduceAction129: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction121::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction121(val_t p0){
+/* 2: Attribute ReduceAction129::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction129(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction121;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction129;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction121(void)
+val_t NEW_parser___ReduceAction129(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction121;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction129;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction121(val_t p0){
+void CHECKNEW_parser___ReduceAction129(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction121;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction129;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -96320,35 +93743,36 @@ void CHECKNEW_parser___ReduceAction121(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction121_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction129_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction121_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction129_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction121();
-  INIT_ATTRIBUTES__parser___ReduceAction121(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction129();
+  INIT_ATTRIBUTES__parser___ReduceAction129(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction121(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction129(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction122[52] = {
+const classtable_elt_t VFT_parser___ReduceAction130[55] = {
   {(bigint) 1943 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction122" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction122 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction122 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1943 /* 5: ReduceAction122 < ReduceAction122: superclass typecheck marker */},
+  {(bigint) "ReduceAction130" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction130 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction130 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1943 /* 5: ReduceAction130 < ReduceAction130: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96361,7 +93785,7 @@ const classtable_elt_t VFT_parser___ReduceAction122[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction122 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction130 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -96377,6 +93801,8 @@ const classtable_elt_t VFT_parser___ReduceAction122[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -96390,44 +93816,44 @@ const classtable_elt_t VFT_parser___ReduceAction122[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction122 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction122___action},
+  {(bigint) 0 /* 50: ReduceAction130 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction130___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction122 < ReduceAction122: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction130 < ReduceAction130: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction122::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction122(val_t p0){
+/* 2: Attribute ReduceAction130::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction130(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction122;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction130;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction122(void)
+val_t NEW_parser___ReduceAction130(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction122;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction130;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction122(val_t p0){
+void CHECKNEW_parser___ReduceAction130(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction122;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction130;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -96440,35 +93866,36 @@ void CHECKNEW_parser___ReduceAction122(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction122_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction130_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction122_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction130_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction122();
-  INIT_ATTRIBUTES__parser___ReduceAction122(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction130();
+  INIT_ATTRIBUTES__parser___ReduceAction130(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction122(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction130(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction123[52] = {
+const classtable_elt_t VFT_parser___ReduceAction131[55] = {
   {(bigint) 1939 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction123" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction123 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction123 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1939 /* 5: ReduceAction123 < ReduceAction123: superclass typecheck marker */},
+  {(bigint) "ReduceAction131" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction131 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction131 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1939 /* 5: ReduceAction131 < ReduceAction131: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96481,7 +93908,7 @@ const classtable_elt_t VFT_parser___ReduceAction123[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction123 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction131 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -96497,6 +93924,8 @@ const classtable_elt_t VFT_parser___ReduceAction123[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -96510,44 +93939,44 @@ const classtable_elt_t VFT_parser___ReduceAction123[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction123 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction123___action},
+  {(bigint) 0 /* 50: ReduceAction131 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction131___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction123 < ReduceAction123: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction131 < ReduceAction131: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction123::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction123(val_t p0){
+/* 2: Attribute ReduceAction131::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction131(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction123;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction131;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction123(void)
+val_t NEW_parser___ReduceAction131(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction123;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction131;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction123(val_t p0){
+void CHECKNEW_parser___ReduceAction131(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction123;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction131;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -96560,35 +93989,36 @@ void CHECKNEW_parser___ReduceAction123(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction123_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction131_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction123_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction131_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction123();
-  INIT_ATTRIBUTES__parser___ReduceAction123(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction131();
+  INIT_ATTRIBUTES__parser___ReduceAction131(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction123(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction131(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction124[52] = {
+const classtable_elt_t VFT_parser___ReduceAction132[55] = {
   {(bigint) 1935 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction124" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction124 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction124 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1935 /* 5: ReduceAction124 < ReduceAction124: superclass typecheck marker */},
+  {(bigint) "ReduceAction132" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction132 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction132 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1935 /* 5: ReduceAction132 < ReduceAction132: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96601,7 +94031,7 @@ const classtable_elt_t VFT_parser___ReduceAction124[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction124 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction132 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -96617,6 +94047,8 @@ const classtable_elt_t VFT_parser___ReduceAction124[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -96630,44 +94062,44 @@ const classtable_elt_t VFT_parser___ReduceAction124[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction124 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction124___action},
+  {(bigint) 0 /* 50: ReduceAction132 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction132___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction124 < ReduceAction124: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction132 < ReduceAction132: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction124::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction124(val_t p0){
+/* 2: Attribute ReduceAction132::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction132(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction124;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction132;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction124(void)
+val_t NEW_parser___ReduceAction132(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction124;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction132;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction124(val_t p0){
+void CHECKNEW_parser___ReduceAction132(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction124;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction132;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -96680,35 +94112,36 @@ void CHECKNEW_parser___ReduceAction124(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction124_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction132_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction124_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction132_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction124();
-  INIT_ATTRIBUTES__parser___ReduceAction124(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction132();
+  INIT_ATTRIBUTES__parser___ReduceAction132(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction124(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction132(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction125[52] = {
+const classtable_elt_t VFT_parser___ReduceAction133[55] = {
   {(bigint) 1931 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction125" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction125 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction125 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1931 /* 5: ReduceAction125 < ReduceAction125: superclass typecheck marker */},
+  {(bigint) "ReduceAction133" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction133 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction133 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1931 /* 5: ReduceAction133 < ReduceAction133: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96721,7 +94154,7 @@ const classtable_elt_t VFT_parser___ReduceAction125[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction125 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction133 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -96737,6 +94170,8 @@ const classtable_elt_t VFT_parser___ReduceAction125[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -96750,44 +94185,44 @@ const classtable_elt_t VFT_parser___ReduceAction125[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction125 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction125___action},
+  {(bigint) 0 /* 50: ReduceAction133 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction133___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction125 < ReduceAction125: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction133 < ReduceAction133: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction125::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction125(val_t p0){
+/* 2: Attribute ReduceAction133::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction133(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction125;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction133;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction125(void)
+val_t NEW_parser___ReduceAction133(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction125;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction133;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction125(val_t p0){
+void CHECKNEW_parser___ReduceAction133(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction125;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction133;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -96800,35 +94235,36 @@ void CHECKNEW_parser___ReduceAction125(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction125_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction133_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction125_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction133_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction125();
-  INIT_ATTRIBUTES__parser___ReduceAction125(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction133();
+  INIT_ATTRIBUTES__parser___ReduceAction133(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction125(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction133(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction126[52] = {
+const classtable_elt_t VFT_parser___ReduceAction134[55] = {
   {(bigint) 1927 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction126" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction126 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction126 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1927 /* 5: ReduceAction126 < ReduceAction126: superclass typecheck marker */},
+  {(bigint) "ReduceAction134" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction134 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction134 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1927 /* 5: ReduceAction134 < ReduceAction134: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96841,7 +94277,7 @@ const classtable_elt_t VFT_parser___ReduceAction126[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction126 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction134 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -96857,6 +94293,8 @@ const classtable_elt_t VFT_parser___ReduceAction126[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -96870,44 +94308,44 @@ const classtable_elt_t VFT_parser___ReduceAction126[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction126 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction126___action},
+  {(bigint) 0 /* 50: ReduceAction134 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction134___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction126 < ReduceAction126: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction134 < ReduceAction134: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction126::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction126(val_t p0){
+/* 2: Attribute ReduceAction134::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction134(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction126;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction134;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction126(void)
+val_t NEW_parser___ReduceAction134(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction126;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction134;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction126(val_t p0){
+void CHECKNEW_parser___ReduceAction134(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction126;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction134;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -96920,35 +94358,36 @@ void CHECKNEW_parser___ReduceAction126(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction126_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction134_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction126_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction134_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction126();
-  INIT_ATTRIBUTES__parser___ReduceAction126(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction134();
+  INIT_ATTRIBUTES__parser___ReduceAction134(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction126(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction134(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction127[52] = {
+const classtable_elt_t VFT_parser___ReduceAction135[55] = {
   {(bigint) 1923 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction127" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction127 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction127 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1923 /* 5: ReduceAction127 < ReduceAction127: superclass typecheck marker */},
+  {(bigint) "ReduceAction135" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction135 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction135 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1923 /* 5: ReduceAction135 < ReduceAction135: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96961,7 +94400,7 @@ const classtable_elt_t VFT_parser___ReduceAction127[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction127 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction135 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -96977,6 +94416,8 @@ const classtable_elt_t VFT_parser___ReduceAction127[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -96990,44 +94431,44 @@ const classtable_elt_t VFT_parser___ReduceAction127[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction127 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction127___action},
+  {(bigint) 0 /* 50: ReduceAction135 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction135___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction127 < ReduceAction127: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction135 < ReduceAction135: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction127::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction127(val_t p0){
+/* 2: Attribute ReduceAction135::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction135(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction127;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction135;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction127(void)
+val_t NEW_parser___ReduceAction135(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction127;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction135;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction127(val_t p0){
+void CHECKNEW_parser___ReduceAction135(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction127;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction135;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -97040,35 +94481,36 @@ void CHECKNEW_parser___ReduceAction127(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction127_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction135_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction127_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction135_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction127();
-  INIT_ATTRIBUTES__parser___ReduceAction127(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction135();
+  INIT_ATTRIBUTES__parser___ReduceAction135(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction127(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction135(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction128[52] = {
+const classtable_elt_t VFT_parser___ReduceAction136[55] = {
   {(bigint) 1919 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction128" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction128 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction128 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1919 /* 5: ReduceAction128 < ReduceAction128: superclass typecheck marker */},
+  {(bigint) "ReduceAction136" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction136 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction136 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1919 /* 5: ReduceAction136 < ReduceAction136: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -97081,7 +94523,7 @@ const classtable_elt_t VFT_parser___ReduceAction128[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction128 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction136 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -97097,6 +94539,8 @@ const classtable_elt_t VFT_parser___ReduceAction128[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -97110,44 +94554,44 @@ const classtable_elt_t VFT_parser___ReduceAction128[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction128 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction128___action},
+  {(bigint) 0 /* 50: ReduceAction136 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction136___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction128 < ReduceAction128: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction136 < ReduceAction136: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction128::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction128(val_t p0){
+/* 2: Attribute ReduceAction136::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction136(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction128;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction136;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction128(void)
+val_t NEW_parser___ReduceAction136(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction128;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction136;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction128(val_t p0){
+void CHECKNEW_parser___ReduceAction136(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction128;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction136;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -97160,35 +94604,36 @@ void CHECKNEW_parser___ReduceAction128(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction128_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction136_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction128_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction136_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction128();
-  INIT_ATTRIBUTES__parser___ReduceAction128(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction136();
+  INIT_ATTRIBUTES__parser___ReduceAction136(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction128(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction136(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction129[52] = {
+const classtable_elt_t VFT_parser___ReduceAction137[55] = {
   {(bigint) 1915 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction129" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction129 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction129 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1915 /* 5: ReduceAction129 < ReduceAction129: superclass typecheck marker */},
+  {(bigint) "ReduceAction137" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction137 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction137 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1915 /* 5: ReduceAction137 < ReduceAction137: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -97201,7 +94646,7 @@ const classtable_elt_t VFT_parser___ReduceAction129[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction129 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction137 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -97217,6 +94662,8 @@ const classtable_elt_t VFT_parser___ReduceAction129[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -97230,44 +94677,44 @@ const classtable_elt_t VFT_parser___ReduceAction129[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction129 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction129___action},
+  {(bigint) 0 /* 50: ReduceAction137 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction137___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction129 < ReduceAction129: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction137 < ReduceAction137: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction129::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction129(val_t p0){
+/* 2: Attribute ReduceAction137::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction137(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction129;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction137;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction129(void)
+val_t NEW_parser___ReduceAction137(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction129;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction137;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction129(val_t p0){
+void CHECKNEW_parser___ReduceAction137(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction129;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction137;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -97280,35 +94727,36 @@ void CHECKNEW_parser___ReduceAction129(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction129_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction137_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction129_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction137_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction129();
-  INIT_ATTRIBUTES__parser___ReduceAction129(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction137();
+  INIT_ATTRIBUTES__parser___ReduceAction137(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction129(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction137(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction130[52] = {
-  {(bigint) 1907 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction138[55] = {
+  {(bigint) 1911 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction130" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction130 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction130 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1907 /* 5: ReduceAction130 < ReduceAction130: superclass typecheck marker */},
+  {(bigint) "ReduceAction138" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction138 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction138 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1911 /* 5: ReduceAction138 < ReduceAction138: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -97321,7 +94769,7 @@ const classtable_elt_t VFT_parser___ReduceAction130[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction130 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction138 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -97337,6 +94785,8 @@ const classtable_elt_t VFT_parser___ReduceAction130[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -97350,44 +94800,44 @@ const classtable_elt_t VFT_parser___ReduceAction130[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction130 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction130___action},
+  {(bigint) 0 /* 50: ReduceAction138 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction138___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction130 < ReduceAction130: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction138 < ReduceAction138: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction130::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction130(val_t p0){
+/* 2: Attribute ReduceAction138::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction138(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction130;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction138;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction130(void)
+val_t NEW_parser___ReduceAction138(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction130;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction138;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction130(val_t p0){
+void CHECKNEW_parser___ReduceAction138(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction130;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction138;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -97400,35 +94850,36 @@ void CHECKNEW_parser___ReduceAction130(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction130_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction138_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction130_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction138_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction130();
-  INIT_ATTRIBUTES__parser___ReduceAction130(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction138();
+  INIT_ATTRIBUTES__parser___ReduceAction138(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction130(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction138(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction131[52] = {
-  {(bigint) 1903 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction139[55] = {
+  {(bigint) 1907 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction131" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction131 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction131 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1903 /* 5: ReduceAction131 < ReduceAction131: superclass typecheck marker */},
+  {(bigint) "ReduceAction139" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction139 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction139 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1907 /* 5: ReduceAction139 < ReduceAction139: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -97441,7 +94892,7 @@ const classtable_elt_t VFT_parser___ReduceAction131[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction131 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction139 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -97457,6 +94908,8 @@ const classtable_elt_t VFT_parser___ReduceAction131[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -97470,44 +94923,44 @@ const classtable_elt_t VFT_parser___ReduceAction131[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction131 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction131___action},
+  {(bigint) 0 /* 50: ReduceAction139 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction139___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction131 < ReduceAction131: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction139 < ReduceAction139: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction131::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction131(val_t p0){
+/* 2: Attribute ReduceAction139::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction139(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction131;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction139;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction131(void)
+val_t NEW_parser___ReduceAction139(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction131;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction139;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction131(val_t p0){
+void CHECKNEW_parser___ReduceAction139(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction131;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction139;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -97520,35 +94973,36 @@ void CHECKNEW_parser___ReduceAction131(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction131_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction139_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction131_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction139_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction131();
-  INIT_ATTRIBUTES__parser___ReduceAction131(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction139();
+  INIT_ATTRIBUTES__parser___ReduceAction139(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction131(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction139(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction132[52] = {
+const classtable_elt_t VFT_parser___ReduceAction140[55] = {
   {(bigint) 1899 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction132" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction132 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction132 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1899 /* 5: ReduceAction132 < ReduceAction132: superclass typecheck marker */},
+  {(bigint) "ReduceAction140" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction140 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction140 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1899 /* 5: ReduceAction140 < ReduceAction140: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -97561,7 +95015,7 @@ const classtable_elt_t VFT_parser___ReduceAction132[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction132 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction140 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -97577,6 +95031,8 @@ const classtable_elt_t VFT_parser___ReduceAction132[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -97590,44 +95046,44 @@ const classtable_elt_t VFT_parser___ReduceAction132[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction132 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction132___action},
+  {(bigint) 0 /* 50: ReduceAction140 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction140___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction132 < ReduceAction132: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction140 < ReduceAction140: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction132::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction132(val_t p0){
+/* 2: Attribute ReduceAction140::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction140(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction132;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction140;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction132(void)
+val_t NEW_parser___ReduceAction140(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction132;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction140;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction132(val_t p0){
+void CHECKNEW_parser___ReduceAction140(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction132;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction140;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -97640,35 +95096,36 @@ void CHECKNEW_parser___ReduceAction132(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction132_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction140_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction132_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction140_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction132();
-  INIT_ATTRIBUTES__parser___ReduceAction132(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction140();
+  INIT_ATTRIBUTES__parser___ReduceAction140(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction132(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction140(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction133[52] = {
+const classtable_elt_t VFT_parser___ReduceAction141[55] = {
   {(bigint) 1895 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction133" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction133 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction133 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1895 /* 5: ReduceAction133 < ReduceAction133: superclass typecheck marker */},
+  {(bigint) "ReduceAction141" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction141 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction141 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1895 /* 5: ReduceAction141 < ReduceAction141: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -97681,7 +95138,7 @@ const classtable_elt_t VFT_parser___ReduceAction133[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction133 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction141 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -97697,6 +95154,8 @@ const classtable_elt_t VFT_parser___ReduceAction133[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -97710,44 +95169,44 @@ const classtable_elt_t VFT_parser___ReduceAction133[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction133 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction133___action},
+  {(bigint) 0 /* 50: ReduceAction141 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction141___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction133 < ReduceAction133: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction141 < ReduceAction141: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction133::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction133(val_t p0){
+/* 2: Attribute ReduceAction141::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction141(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction133;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction141;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction133(void)
+val_t NEW_parser___ReduceAction141(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction133;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction141;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction133(val_t p0){
+void CHECKNEW_parser___ReduceAction141(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction133;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction141;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -97760,35 +95219,36 @@ void CHECKNEW_parser___ReduceAction133(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction133_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction141_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction133_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction141_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction133();
-  INIT_ATTRIBUTES__parser___ReduceAction133(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction141();
+  INIT_ATTRIBUTES__parser___ReduceAction141(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction133(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction141(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction134[52] = {
+const classtable_elt_t VFT_parser___ReduceAction142[55] = {
   {(bigint) 1891 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction134" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction134 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction134 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1891 /* 5: ReduceAction134 < ReduceAction134: superclass typecheck marker */},
+  {(bigint) "ReduceAction142" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction142 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction142 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1891 /* 5: ReduceAction142 < ReduceAction142: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -97801,7 +95261,7 @@ const classtable_elt_t VFT_parser___ReduceAction134[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction134 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction142 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -97817,6 +95277,8 @@ const classtable_elt_t VFT_parser___ReduceAction134[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -97830,44 +95292,44 @@ const classtable_elt_t VFT_parser___ReduceAction134[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction134 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction134___action},
+  {(bigint) 0 /* 50: ReduceAction142 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction142___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction134 < ReduceAction134: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction142 < ReduceAction142: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction134::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction134(val_t p0){
+/* 2: Attribute ReduceAction142::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction142(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction134;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction142;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction134(void)
+val_t NEW_parser___ReduceAction142(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction134;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction142;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction134(val_t p0){
+void CHECKNEW_parser___ReduceAction142(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction134;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction142;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -97880,35 +95342,36 @@ void CHECKNEW_parser___ReduceAction134(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction134_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction142_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction134_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction142_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction134();
-  INIT_ATTRIBUTES__parser___ReduceAction134(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction142();
+  INIT_ATTRIBUTES__parser___ReduceAction142(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction134(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction142(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction135[52] = {
+const classtable_elt_t VFT_parser___ReduceAction143[55] = {
   {(bigint) 1887 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction135" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction135 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction135 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1887 /* 5: ReduceAction135 < ReduceAction135: superclass typecheck marker */},
+  {(bigint) "ReduceAction143" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction143 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction143 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1887 /* 5: ReduceAction143 < ReduceAction143: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -97921,7 +95384,7 @@ const classtable_elt_t VFT_parser___ReduceAction135[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction135 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction143 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -97937,6 +95400,8 @@ const classtable_elt_t VFT_parser___ReduceAction135[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -97950,44 +95415,44 @@ const classtable_elt_t VFT_parser___ReduceAction135[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction135 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction135___action},
+  {(bigint) 0 /* 50: ReduceAction143 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction143___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction135 < ReduceAction135: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction143 < ReduceAction143: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction135::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction135(val_t p0){
+/* 2: Attribute ReduceAction143::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction143(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction135;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction143;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction135(void)
+val_t NEW_parser___ReduceAction143(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction135;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction143;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction135(val_t p0){
+void CHECKNEW_parser___ReduceAction143(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction135;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction143;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -98000,35 +95465,36 @@ void CHECKNEW_parser___ReduceAction135(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction135_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction143_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction135_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction143_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction135();
-  INIT_ATTRIBUTES__parser___ReduceAction135(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction143();
+  INIT_ATTRIBUTES__parser___ReduceAction143(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction135(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction143(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction136[52] = {
+const classtable_elt_t VFT_parser___ReduceAction144[55] = {
   {(bigint) 1883 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction136" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction136 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction136 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1883 /* 5: ReduceAction136 < ReduceAction136: superclass typecheck marker */},
+  {(bigint) "ReduceAction144" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction144 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction144 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1883 /* 5: ReduceAction144 < ReduceAction144: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -98041,7 +95507,7 @@ const classtable_elt_t VFT_parser___ReduceAction136[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction136 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction144 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -98057,6 +95523,8 @@ const classtable_elt_t VFT_parser___ReduceAction136[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -98070,44 +95538,44 @@ const classtable_elt_t VFT_parser___ReduceAction136[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction136 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction136___action},
+  {(bigint) 0 /* 50: ReduceAction144 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction144___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction136 < ReduceAction136: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction144 < ReduceAction144: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction136::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction136(val_t p0){
+/* 2: Attribute ReduceAction144::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction144(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction136;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction144;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction136(void)
+val_t NEW_parser___ReduceAction144(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction136;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction144;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction136(val_t p0){
+void CHECKNEW_parser___ReduceAction144(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction136;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction144;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -98120,35 +95588,36 @@ void CHECKNEW_parser___ReduceAction136(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction136_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction144_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction136_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction144_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction136();
-  INIT_ATTRIBUTES__parser___ReduceAction136(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction144();
+  INIT_ATTRIBUTES__parser___ReduceAction144(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction136(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction144(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction137[52] = {
+const classtable_elt_t VFT_parser___ReduceAction145[55] = {
   {(bigint) 1879 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction137" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction137 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction137 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1879 /* 5: ReduceAction137 < ReduceAction137: superclass typecheck marker */},
+  {(bigint) "ReduceAction145" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction145 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction145 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1879 /* 5: ReduceAction145 < ReduceAction145: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -98161,7 +95630,7 @@ const classtable_elt_t VFT_parser___ReduceAction137[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction137 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction145 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -98177,6 +95646,8 @@ const classtable_elt_t VFT_parser___ReduceAction137[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -98190,44 +95661,44 @@ const classtable_elt_t VFT_parser___ReduceAction137[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction137 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction137___action},
+  {(bigint) 0 /* 50: ReduceAction145 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction145___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction137 < ReduceAction137: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction145 < ReduceAction145: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction137::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction137(val_t p0){
+/* 2: Attribute ReduceAction145::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction145(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction137;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction145;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction137(void)
+val_t NEW_parser___ReduceAction145(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction137;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction145;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction137(val_t p0){
+void CHECKNEW_parser___ReduceAction145(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction137;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction145;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -98240,35 +95711,36 @@ void CHECKNEW_parser___ReduceAction137(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction137_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction145_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction137_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction145_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction137();
-  INIT_ATTRIBUTES__parser___ReduceAction137(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction145();
+  INIT_ATTRIBUTES__parser___ReduceAction145(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction137(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction145(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction138[52] = {
+const classtable_elt_t VFT_parser___ReduceAction146[55] = {
   {(bigint) 1875 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction138" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction138 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction138 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1875 /* 5: ReduceAction138 < ReduceAction138: superclass typecheck marker */},
+  {(bigint) "ReduceAction146" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction146 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction146 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1875 /* 5: ReduceAction146 < ReduceAction146: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -98281,7 +95753,7 @@ const classtable_elt_t VFT_parser___ReduceAction138[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction138 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction146 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -98297,6 +95769,8 @@ const classtable_elt_t VFT_parser___ReduceAction138[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -98310,44 +95784,44 @@ const classtable_elt_t VFT_parser___ReduceAction138[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction138 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction138___action},
+  {(bigint) 0 /* 50: ReduceAction146 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction146___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction138 < ReduceAction138: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction146 < ReduceAction146: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction138::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction138(val_t p0){
+/* 2: Attribute ReduceAction146::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction146(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction138;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction146;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction138(void)
+val_t NEW_parser___ReduceAction146(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction138;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction146;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction138(val_t p0){
+void CHECKNEW_parser___ReduceAction146(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction138;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction146;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -98360,35 +95834,36 @@ void CHECKNEW_parser___ReduceAction138(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction138_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction146_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction138_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction146_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction138();
-  INIT_ATTRIBUTES__parser___ReduceAction138(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction146();
+  INIT_ATTRIBUTES__parser___ReduceAction146(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction138(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction146(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction139[52] = {
+const classtable_elt_t VFT_parser___ReduceAction147[55] = {
   {(bigint) 1871 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction139" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction139 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction139 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1871 /* 5: ReduceAction139 < ReduceAction139: superclass typecheck marker */},
+  {(bigint) "ReduceAction147" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction147 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction147 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1871 /* 5: ReduceAction147 < ReduceAction147: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -98401,7 +95876,7 @@ const classtable_elt_t VFT_parser___ReduceAction139[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction139 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction147 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -98417,6 +95892,8 @@ const classtable_elt_t VFT_parser___ReduceAction139[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -98430,44 +95907,44 @@ const classtable_elt_t VFT_parser___ReduceAction139[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction139 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction139___action},
+  {(bigint) 0 /* 50: ReduceAction147 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction147___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction139 < ReduceAction139: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction147 < ReduceAction147: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction139::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction139(val_t p0){
+/* 2: Attribute ReduceAction147::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction147(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction139;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction147;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction139(void)
+val_t NEW_parser___ReduceAction147(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction139;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction147;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction139(val_t p0){
+void CHECKNEW_parser___ReduceAction147(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction139;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction147;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -98480,35 +95957,36 @@ void CHECKNEW_parser___ReduceAction139(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction139_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction147_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction139_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction147_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction139();
-  INIT_ATTRIBUTES__parser___ReduceAction139(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction147();
+  INIT_ATTRIBUTES__parser___ReduceAction147(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction139(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction147(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction140[52] = {
-  {(bigint) 1863 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction148[55] = {
+  {(bigint) 1867 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction140" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction140 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction140 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1863 /* 5: ReduceAction140 < ReduceAction140: superclass typecheck marker */},
+  {(bigint) "ReduceAction148" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction148 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction148 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1867 /* 5: ReduceAction148 < ReduceAction148: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -98521,7 +95999,7 @@ const classtable_elt_t VFT_parser___ReduceAction140[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction140 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction148 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -98537,6 +96015,8 @@ const classtable_elt_t VFT_parser___ReduceAction140[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -98550,44 +96030,44 @@ const classtable_elt_t VFT_parser___ReduceAction140[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction140 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction140___action},
+  {(bigint) 0 /* 50: ReduceAction148 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction148___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction140 < ReduceAction140: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction148 < ReduceAction148: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction140::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction140(val_t p0){
+/* 2: Attribute ReduceAction148::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction148(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction140;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction148;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction140(void)
+val_t NEW_parser___ReduceAction148(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction140;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction148;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction140(val_t p0){
+void CHECKNEW_parser___ReduceAction148(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction140;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction148;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -98600,35 +96080,36 @@ void CHECKNEW_parser___ReduceAction140(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction140_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction148_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction140_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction148_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction140();
-  INIT_ATTRIBUTES__parser___ReduceAction140(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction148();
+  INIT_ATTRIBUTES__parser___ReduceAction148(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction140(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction148(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction141[52] = {
-  {(bigint) 1859 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction149[55] = {
+  {(bigint) 1863 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction141" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction141 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction141 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1859 /* 5: ReduceAction141 < ReduceAction141: superclass typecheck marker */},
+  {(bigint) "ReduceAction149" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction149 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction149 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1863 /* 5: ReduceAction149 < ReduceAction149: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -98641,7 +96122,7 @@ const classtable_elt_t VFT_parser___ReduceAction141[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction141 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction149 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -98657,6 +96138,8 @@ const classtable_elt_t VFT_parser___ReduceAction141[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -98670,44 +96153,44 @@ const classtable_elt_t VFT_parser___ReduceAction141[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction141 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction141___action},
+  {(bigint) 0 /* 50: ReduceAction149 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction149___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction141 < ReduceAction141: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction149 < ReduceAction149: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction141::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction141(val_t p0){
+/* 2: Attribute ReduceAction149::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction149(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction141;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction149;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction141(void)
+val_t NEW_parser___ReduceAction149(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction141;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction149;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction141(val_t p0){
+void CHECKNEW_parser___ReduceAction149(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction141;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction149;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -98720,35 +96203,36 @@ void CHECKNEW_parser___ReduceAction141(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction141_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction149_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction141_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction149_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction141();
-  INIT_ATTRIBUTES__parser___ReduceAction141(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction149();
+  INIT_ATTRIBUTES__parser___ReduceAction149(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction141(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction149(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction142[52] = {
+const classtable_elt_t VFT_parser___ReduceAction150[55] = {
   {(bigint) 1855 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction142" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction142 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction142 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1855 /* 5: ReduceAction142 < ReduceAction142: superclass typecheck marker */},
+  {(bigint) "ReduceAction150" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction150 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction150 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1855 /* 5: ReduceAction150 < ReduceAction150: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -98761,7 +96245,7 @@ const classtable_elt_t VFT_parser___ReduceAction142[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction142 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction150 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -98777,6 +96261,8 @@ const classtable_elt_t VFT_parser___ReduceAction142[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -98790,44 +96276,44 @@ const classtable_elt_t VFT_parser___ReduceAction142[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction142 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction142___action},
+  {(bigint) 0 /* 50: ReduceAction150 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction150___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction142 < ReduceAction142: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction150 < ReduceAction150: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction142::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction142(val_t p0){
+/* 2: Attribute ReduceAction150::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction150(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction142;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction150;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction142(void)
+val_t NEW_parser___ReduceAction150(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction142;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction150;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction142(val_t p0){
+void CHECKNEW_parser___ReduceAction150(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction142;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction150;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -98840,35 +96326,36 @@ void CHECKNEW_parser___ReduceAction142(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction142_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction150_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction142_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction150_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction142();
-  INIT_ATTRIBUTES__parser___ReduceAction142(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction150();
+  INIT_ATTRIBUTES__parser___ReduceAction150(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction142(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction150(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction143[52] = {
+const classtable_elt_t VFT_parser___ReduceAction151[55] = {
   {(bigint) 1851 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction143" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction143 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction143 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1851 /* 5: ReduceAction143 < ReduceAction143: superclass typecheck marker */},
+  {(bigint) "ReduceAction151" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction151 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction151 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1851 /* 5: ReduceAction151 < ReduceAction151: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -98881,7 +96368,7 @@ const classtable_elt_t VFT_parser___ReduceAction143[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction143 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction151 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -98897,6 +96384,8 @@ const classtable_elt_t VFT_parser___ReduceAction143[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -98910,44 +96399,44 @@ const classtable_elt_t VFT_parser___ReduceAction143[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction143 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction143___action},
+  {(bigint) 0 /* 50: ReduceAction151 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction151___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction143 < ReduceAction143: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction151 < ReduceAction151: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction143::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction143(val_t p0){
+/* 2: Attribute ReduceAction151::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction151(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction143;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction151;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction143(void)
+val_t NEW_parser___ReduceAction151(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction143;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction151;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction143(val_t p0){
+void CHECKNEW_parser___ReduceAction151(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction143;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction151;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -98960,35 +96449,36 @@ void CHECKNEW_parser___ReduceAction143(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction143_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction151_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction143_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction151_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction143();
-  INIT_ATTRIBUTES__parser___ReduceAction143(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction151();
+  INIT_ATTRIBUTES__parser___ReduceAction151(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction143(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction151(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction144[52] = {
+const classtable_elt_t VFT_parser___ReduceAction152[55] = {
   {(bigint) 1847 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction144" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction144 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction144 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1847 /* 5: ReduceAction144 < ReduceAction144: superclass typecheck marker */},
+  {(bigint) "ReduceAction152" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction152 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction152 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1847 /* 5: ReduceAction152 < ReduceAction152: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -99001,7 +96491,7 @@ const classtable_elt_t VFT_parser___ReduceAction144[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction144 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction152 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -99017,6 +96507,8 @@ const classtable_elt_t VFT_parser___ReduceAction144[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -99030,44 +96522,44 @@ const classtable_elt_t VFT_parser___ReduceAction144[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction144 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction144___action},
+  {(bigint) 0 /* 50: ReduceAction152 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction152___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction144 < ReduceAction144: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction152 < ReduceAction152: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction144::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction144(val_t p0){
+/* 2: Attribute ReduceAction152::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction152(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction144;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction152;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction144(void)
+val_t NEW_parser___ReduceAction152(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction144;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction152;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction144(val_t p0){
+void CHECKNEW_parser___ReduceAction152(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction144;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction152;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -99080,35 +96572,36 @@ void CHECKNEW_parser___ReduceAction144(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction144_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction152_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction144_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction152_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction144();
-  INIT_ATTRIBUTES__parser___ReduceAction144(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction152();
+  INIT_ATTRIBUTES__parser___ReduceAction152(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction144(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction152(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction145[52] = {
+const classtable_elt_t VFT_parser___ReduceAction153[55] = {
   {(bigint) 1843 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction145" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction145 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction145 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1843 /* 5: ReduceAction145 < ReduceAction145: superclass typecheck marker */},
+  {(bigint) "ReduceAction153" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction153 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction153 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1843 /* 5: ReduceAction153 < ReduceAction153: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -99121,7 +96614,7 @@ const classtable_elt_t VFT_parser___ReduceAction145[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction145 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction153 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -99137,6 +96630,8 @@ const classtable_elt_t VFT_parser___ReduceAction145[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -99150,44 +96645,44 @@ const classtable_elt_t VFT_parser___ReduceAction145[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction145 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction145___action},
+  {(bigint) 0 /* 50: ReduceAction153 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction153___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction145 < ReduceAction145: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction153 < ReduceAction153: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction145::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction145(val_t p0){
+/* 2: Attribute ReduceAction153::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction153(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction145;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction153;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction145(void)
+val_t NEW_parser___ReduceAction153(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction145;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction153;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction145(val_t p0){
+void CHECKNEW_parser___ReduceAction153(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction145;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction153;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -99200,35 +96695,36 @@ void CHECKNEW_parser___ReduceAction145(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction145_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction153_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction145_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction153_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction145();
-  INIT_ATTRIBUTES__parser___ReduceAction145(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction153();
+  INIT_ATTRIBUTES__parser___ReduceAction153(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction145(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction153(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction146[52] = {
+const classtable_elt_t VFT_parser___ReduceAction154[55] = {
   {(bigint) 1839 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction146" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction146 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction146 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1839 /* 5: ReduceAction146 < ReduceAction146: superclass typecheck marker */},
+  {(bigint) "ReduceAction154" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction154 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction154 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1839 /* 5: ReduceAction154 < ReduceAction154: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -99241,7 +96737,7 @@ const classtable_elt_t VFT_parser___ReduceAction146[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction146 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction154 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -99257,6 +96753,8 @@ const classtable_elt_t VFT_parser___ReduceAction146[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -99270,44 +96768,44 @@ const classtable_elt_t VFT_parser___ReduceAction146[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction146 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction146___action},
+  {(bigint) 0 /* 50: ReduceAction154 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction154___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction146 < ReduceAction146: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction154 < ReduceAction154: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction146::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction146(val_t p0){
+/* 2: Attribute ReduceAction154::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction154(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction146;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction154;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction146(void)
+val_t NEW_parser___ReduceAction154(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction146;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction154;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction146(val_t p0){
+void CHECKNEW_parser___ReduceAction154(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction146;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction154;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -99320,35 +96818,36 @@ void CHECKNEW_parser___ReduceAction146(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction146_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction154_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction146_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction154_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction146();
-  INIT_ATTRIBUTES__parser___ReduceAction146(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction154();
+  INIT_ATTRIBUTES__parser___ReduceAction154(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction146(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction154(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction147[52] = {
+const classtable_elt_t VFT_parser___ReduceAction155[55] = {
   {(bigint) 1835 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction147" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction147 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction147 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1835 /* 5: ReduceAction147 < ReduceAction147: superclass typecheck marker */},
+  {(bigint) "ReduceAction155" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction155 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction155 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1835 /* 5: ReduceAction155 < ReduceAction155: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -99361,7 +96860,7 @@ const classtable_elt_t VFT_parser___ReduceAction147[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction147 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction155 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -99377,6 +96876,8 @@ const classtable_elt_t VFT_parser___ReduceAction147[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -99390,44 +96891,44 @@ const classtable_elt_t VFT_parser___ReduceAction147[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction147 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction147___action},
+  {(bigint) 0 /* 50: ReduceAction155 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction155___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction147 < ReduceAction147: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction155 < ReduceAction155: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction147::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction147(val_t p0){
+/* 2: Attribute ReduceAction155::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction155(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction147;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction155;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction147(void)
+val_t NEW_parser___ReduceAction155(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction147;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction155;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction147(val_t p0){
+void CHECKNEW_parser___ReduceAction155(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction147;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction155;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -99440,35 +96941,36 @@ void CHECKNEW_parser___ReduceAction147(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction147_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction155_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction147_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction155_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction147();
-  INIT_ATTRIBUTES__parser___ReduceAction147(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction155();
+  INIT_ATTRIBUTES__parser___ReduceAction155(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction147(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction155(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction148[52] = {
+const classtable_elt_t VFT_parser___ReduceAction156[55] = {
   {(bigint) 1831 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction148" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction148 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction148 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1831 /* 5: ReduceAction148 < ReduceAction148: superclass typecheck marker */},
+  {(bigint) "ReduceAction156" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction156 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction156 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1831 /* 5: ReduceAction156 < ReduceAction156: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -99481,7 +96983,7 @@ const classtable_elt_t VFT_parser___ReduceAction148[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction148 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction156 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -99497,6 +96999,8 @@ const classtable_elt_t VFT_parser___ReduceAction148[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -99510,44 +97014,44 @@ const classtable_elt_t VFT_parser___ReduceAction148[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction148 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction148___action},
+  {(bigint) 0 /* 50: ReduceAction156 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction156___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction148 < ReduceAction148: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction156 < ReduceAction156: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction148::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction148(val_t p0){
+/* 2: Attribute ReduceAction156::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction156(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction148;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction156;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction148(void)
+val_t NEW_parser___ReduceAction156(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction148;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction156;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction148(val_t p0){
+void CHECKNEW_parser___ReduceAction156(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction148;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction156;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -99560,35 +97064,36 @@ void CHECKNEW_parser___ReduceAction148(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction148_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction156_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction148_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction156_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction148();
-  INIT_ATTRIBUTES__parser___ReduceAction148(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction156();
+  INIT_ATTRIBUTES__parser___ReduceAction156(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction148(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction156(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction149[52] = {
+const classtable_elt_t VFT_parser___ReduceAction157[55] = {
   {(bigint) 1827 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction149" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction149 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction149 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1827 /* 5: ReduceAction149 < ReduceAction149: superclass typecheck marker */},
+  {(bigint) "ReduceAction157" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction157 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction157 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1827 /* 5: ReduceAction157 < ReduceAction157: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -99601,7 +97106,7 @@ const classtable_elt_t VFT_parser___ReduceAction149[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction149 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction157 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -99617,6 +97122,8 @@ const classtable_elt_t VFT_parser___ReduceAction149[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -99630,44 +97137,44 @@ const classtable_elt_t VFT_parser___ReduceAction149[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction149 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction149___action},
+  {(bigint) 0 /* 50: ReduceAction157 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction157___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction149 < ReduceAction149: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction157 < ReduceAction157: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction149::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction149(val_t p0){
+/* 2: Attribute ReduceAction157::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction157(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction149;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction157;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction149(void)
+val_t NEW_parser___ReduceAction157(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction149;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction157;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction149(val_t p0){
+void CHECKNEW_parser___ReduceAction157(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction149;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction157;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -99680,35 +97187,36 @@ void CHECKNEW_parser___ReduceAction149(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction149_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction157_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction149_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction157_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction149();
-  INIT_ATTRIBUTES__parser___ReduceAction149(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction157();
+  INIT_ATTRIBUTES__parser___ReduceAction157(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction149(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction157(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction150[52] = {
-  {(bigint) 1819 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction158[55] = {
+  {(bigint) 1823 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction150" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction150 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction150 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1819 /* 5: ReduceAction150 < ReduceAction150: superclass typecheck marker */},
+  {(bigint) "ReduceAction158" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction158 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction158 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1823 /* 5: ReduceAction158 < ReduceAction158: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -99721,7 +97229,7 @@ const classtable_elt_t VFT_parser___ReduceAction150[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction150 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction158 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -99737,6 +97245,8 @@ const classtable_elt_t VFT_parser___ReduceAction150[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -99750,44 +97260,44 @@ const classtable_elt_t VFT_parser___ReduceAction150[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction150 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction150___action},
+  {(bigint) 0 /* 50: ReduceAction158 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction158___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction150 < ReduceAction150: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction158 < ReduceAction158: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction150::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction150(val_t p0){
+/* 2: Attribute ReduceAction158::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction158(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction150;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction158;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction150(void)
+val_t NEW_parser___ReduceAction158(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction150;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction158;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction150(val_t p0){
+void CHECKNEW_parser___ReduceAction158(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction150;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction158;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -99800,35 +97310,36 @@ void CHECKNEW_parser___ReduceAction150(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction150_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction158_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction150_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction158_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction150();
-  INIT_ATTRIBUTES__parser___ReduceAction150(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction158();
+  INIT_ATTRIBUTES__parser___ReduceAction158(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction150(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction158(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction151[52] = {
-  {(bigint) 1815 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction159[55] = {
+  {(bigint) 1819 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction151" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction151 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction151 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1815 /* 5: ReduceAction151 < ReduceAction151: superclass typecheck marker */},
+  {(bigint) "ReduceAction159" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction159 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction159 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1819 /* 5: ReduceAction159 < ReduceAction159: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -99841,7 +97352,7 @@ const classtable_elt_t VFT_parser___ReduceAction151[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction151 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction159 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -99857,6 +97368,8 @@ const classtable_elt_t VFT_parser___ReduceAction151[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -99870,44 +97383,44 @@ const classtable_elt_t VFT_parser___ReduceAction151[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction151 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction151___action},
+  {(bigint) 0 /* 50: ReduceAction159 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction159___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction151 < ReduceAction151: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction159 < ReduceAction159: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction151::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction151(val_t p0){
+/* 2: Attribute ReduceAction159::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction159(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction151;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction159;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction151(void)
+val_t NEW_parser___ReduceAction159(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction151;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction159;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction151(val_t p0){
+void CHECKNEW_parser___ReduceAction159(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction151;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction159;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -99920,35 +97433,36 @@ void CHECKNEW_parser___ReduceAction151(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction151_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction159_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction151_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction159_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction151();
-  INIT_ATTRIBUTES__parser___ReduceAction151(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction159();
+  INIT_ATTRIBUTES__parser___ReduceAction159(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction151(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction159(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction152[52] = {
+const classtable_elt_t VFT_parser___ReduceAction160[55] = {
   {(bigint) 1811 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction152" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction152 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction152 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1811 /* 5: ReduceAction152 < ReduceAction152: superclass typecheck marker */},
+  {(bigint) "ReduceAction160" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction160 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction160 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1811 /* 5: ReduceAction160 < ReduceAction160: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -99961,7 +97475,7 @@ const classtable_elt_t VFT_parser___ReduceAction152[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction152 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction160 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -99977,6 +97491,8 @@ const classtable_elt_t VFT_parser___ReduceAction152[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -99990,44 +97506,44 @@ const classtable_elt_t VFT_parser___ReduceAction152[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction152 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction152___action},
+  {(bigint) 0 /* 50: ReduceAction160 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction160___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction152 < ReduceAction152: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction160 < ReduceAction160: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction152::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction152(val_t p0){
+/* 2: Attribute ReduceAction160::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction160(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction152;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction160;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction152(void)
+val_t NEW_parser___ReduceAction160(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction152;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction160;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction152(val_t p0){
+void CHECKNEW_parser___ReduceAction160(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction152;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction160;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -100040,35 +97556,36 @@ void CHECKNEW_parser___ReduceAction152(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction152_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction160_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction152_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction160_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction152();
-  INIT_ATTRIBUTES__parser___ReduceAction152(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction160();
+  INIT_ATTRIBUTES__parser___ReduceAction160(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction152(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction160(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction153[52] = {
+const classtable_elt_t VFT_parser___ReduceAction161[55] = {
   {(bigint) 1807 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction153" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction153 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction153 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1807 /* 5: ReduceAction153 < ReduceAction153: superclass typecheck marker */},
+  {(bigint) "ReduceAction161" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction161 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction161 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1807 /* 5: ReduceAction161 < ReduceAction161: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -100081,7 +97598,7 @@ const classtable_elt_t VFT_parser___ReduceAction153[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction153 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction161 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -100097,6 +97614,8 @@ const classtable_elt_t VFT_parser___ReduceAction153[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -100110,44 +97629,44 @@ const classtable_elt_t VFT_parser___ReduceAction153[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction153 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction153___action},
+  {(bigint) 0 /* 50: ReduceAction161 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction161___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction153 < ReduceAction153: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction161 < ReduceAction161: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction153::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction153(val_t p0){
+/* 2: Attribute ReduceAction161::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction161(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction153;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction161;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction153(void)
+val_t NEW_parser___ReduceAction161(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction153;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction161;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction153(val_t p0){
+void CHECKNEW_parser___ReduceAction161(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction153;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction161;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -100160,35 +97679,36 @@ void CHECKNEW_parser___ReduceAction153(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction153_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction161_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction153_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction161_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction153();
-  INIT_ATTRIBUTES__parser___ReduceAction153(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction161();
+  INIT_ATTRIBUTES__parser___ReduceAction161(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction153(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction161(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction154[52] = {
+const classtable_elt_t VFT_parser___ReduceAction162[55] = {
   {(bigint) 1803 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction154" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction154 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction154 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1803 /* 5: ReduceAction154 < ReduceAction154: superclass typecheck marker */},
+  {(bigint) "ReduceAction162" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction162 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction162 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1803 /* 5: ReduceAction162 < ReduceAction162: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -100201,7 +97721,7 @@ const classtable_elt_t VFT_parser___ReduceAction154[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction154 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction162 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -100217,6 +97737,8 @@ const classtable_elt_t VFT_parser___ReduceAction154[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -100230,44 +97752,44 @@ const classtable_elt_t VFT_parser___ReduceAction154[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction154 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction154___action},
+  {(bigint) 0 /* 50: ReduceAction162 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction162___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction154 < ReduceAction154: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction162 < ReduceAction162: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction154::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction154(val_t p0){
+/* 2: Attribute ReduceAction162::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction162(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction154;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction162;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction154(void)
+val_t NEW_parser___ReduceAction162(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction154;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction162;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction154(val_t p0){
+void CHECKNEW_parser___ReduceAction162(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction154;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction162;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -100280,35 +97802,36 @@ void CHECKNEW_parser___ReduceAction154(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction154_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction162_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction154_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction162_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction154();
-  INIT_ATTRIBUTES__parser___ReduceAction154(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction162();
+  INIT_ATTRIBUTES__parser___ReduceAction162(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction154(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction162(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction155[52] = {
+const classtable_elt_t VFT_parser___ReduceAction163[55] = {
   {(bigint) 1799 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction155" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction155 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction155 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1799 /* 5: ReduceAction155 < ReduceAction155: superclass typecheck marker */},
+  {(bigint) "ReduceAction163" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction163 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction163 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1799 /* 5: ReduceAction163 < ReduceAction163: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -100321,7 +97844,7 @@ const classtable_elt_t VFT_parser___ReduceAction155[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction155 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction163 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -100337,6 +97860,8 @@ const classtable_elt_t VFT_parser___ReduceAction155[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -100350,44 +97875,44 @@ const classtable_elt_t VFT_parser___ReduceAction155[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction155 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction155___action},
+  {(bigint) 0 /* 50: ReduceAction163 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction163___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction155 < ReduceAction155: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction163 < ReduceAction163: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction155::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction155(val_t p0){
+/* 2: Attribute ReduceAction163::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction163(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction155;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction163;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction155(void)
+val_t NEW_parser___ReduceAction163(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction155;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction163;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction155(val_t p0){
+void CHECKNEW_parser___ReduceAction163(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction155;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction163;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -100400,35 +97925,36 @@ void CHECKNEW_parser___ReduceAction155(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction155_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction163_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction155_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction163_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction155();
-  INIT_ATTRIBUTES__parser___ReduceAction155(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction163();
+  INIT_ATTRIBUTES__parser___ReduceAction163(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction155(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction163(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction156[52] = {
+const classtable_elt_t VFT_parser___ReduceAction164[55] = {
   {(bigint) 1795 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction156" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction156 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction156 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1795 /* 5: ReduceAction156 < ReduceAction156: superclass typecheck marker */},
+  {(bigint) "ReduceAction164" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction164 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction164 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1795 /* 5: ReduceAction164 < ReduceAction164: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -100441,7 +97967,7 @@ const classtable_elt_t VFT_parser___ReduceAction156[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction156 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction164 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -100457,6 +97983,8 @@ const classtable_elt_t VFT_parser___ReduceAction156[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -100470,44 +97998,44 @@ const classtable_elt_t VFT_parser___ReduceAction156[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction156 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction156___action},
+  {(bigint) 0 /* 50: ReduceAction164 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction164___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction156 < ReduceAction156: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction164 < ReduceAction164: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction156::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction156(val_t p0){
+/* 2: Attribute ReduceAction164::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction164(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction156;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction164;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction156(void)
+val_t NEW_parser___ReduceAction164(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction156;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction164;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction156(val_t p0){
+void CHECKNEW_parser___ReduceAction164(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction156;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction164;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -100520,35 +98048,36 @@ void CHECKNEW_parser___ReduceAction156(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction156_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction164_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction156_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction164_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction156();
-  INIT_ATTRIBUTES__parser___ReduceAction156(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction164();
+  INIT_ATTRIBUTES__parser___ReduceAction164(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction156(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction164(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction157[52] = {
+const classtable_elt_t VFT_parser___ReduceAction165[55] = {
   {(bigint) 1791 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction157" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction157 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction157 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1791 /* 5: ReduceAction157 < ReduceAction157: superclass typecheck marker */},
+  {(bigint) "ReduceAction165" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction165 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction165 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1791 /* 5: ReduceAction165 < ReduceAction165: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -100561,7 +98090,7 @@ const classtable_elt_t VFT_parser___ReduceAction157[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction157 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction165 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -100577,6 +98106,8 @@ const classtable_elt_t VFT_parser___ReduceAction157[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -100590,44 +98121,44 @@ const classtable_elt_t VFT_parser___ReduceAction157[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction157 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction157___action},
+  {(bigint) 0 /* 50: ReduceAction165 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction165___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction157 < ReduceAction157: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction165 < ReduceAction165: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction157::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction157(val_t p0){
+/* 2: Attribute ReduceAction165::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction165(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction157;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction165;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction157(void)
+val_t NEW_parser___ReduceAction165(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction157;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction165;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction157(val_t p0){
+void CHECKNEW_parser___ReduceAction165(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction157;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction165;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -100640,35 +98171,36 @@ void CHECKNEW_parser___ReduceAction157(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction157_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction165_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction157_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction165_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction157();
-  INIT_ATTRIBUTES__parser___ReduceAction157(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction165();
+  INIT_ATTRIBUTES__parser___ReduceAction165(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction157(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction165(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction158[52] = {
+const classtable_elt_t VFT_parser___ReduceAction166[55] = {
   {(bigint) 1787 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction158" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction158 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction158 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1787 /* 5: ReduceAction158 < ReduceAction158: superclass typecheck marker */},
+  {(bigint) "ReduceAction166" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction166 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction166 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1787 /* 5: ReduceAction166 < ReduceAction166: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -100681,7 +98213,7 @@ const classtable_elt_t VFT_parser___ReduceAction158[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction158 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction166 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -100697,6 +98229,8 @@ const classtable_elt_t VFT_parser___ReduceAction158[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -100710,44 +98244,44 @@ const classtable_elt_t VFT_parser___ReduceAction158[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction158 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction158___action},
+  {(bigint) 0 /* 50: ReduceAction166 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction166___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction158 < ReduceAction158: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction166 < ReduceAction166: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction158::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction158(val_t p0){
+/* 2: Attribute ReduceAction166::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction166(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction158;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction166;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction158(void)
+val_t NEW_parser___ReduceAction166(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction158;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction166;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction158(val_t p0){
+void CHECKNEW_parser___ReduceAction166(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction158;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction166;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -100760,35 +98294,36 @@ void CHECKNEW_parser___ReduceAction158(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction158_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction166_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction158_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction166_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction158();
-  INIT_ATTRIBUTES__parser___ReduceAction158(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction166();
+  INIT_ATTRIBUTES__parser___ReduceAction166(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction158(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction166(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction159[52] = {
+const classtable_elt_t VFT_parser___ReduceAction167[55] = {
   {(bigint) 1783 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction159" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction159 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction159 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1783 /* 5: ReduceAction159 < ReduceAction159: superclass typecheck marker */},
+  {(bigint) "ReduceAction167" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction167 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction167 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1783 /* 5: ReduceAction167 < ReduceAction167: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -100801,7 +98336,7 @@ const classtable_elt_t VFT_parser___ReduceAction159[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction159 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction167 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -100817,6 +98352,8 @@ const classtable_elt_t VFT_parser___ReduceAction159[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -100830,44 +98367,44 @@ const classtable_elt_t VFT_parser___ReduceAction159[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction159 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction159___action},
+  {(bigint) 0 /* 50: ReduceAction167 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction167___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction159 < ReduceAction159: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction167 < ReduceAction167: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction159::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction159(val_t p0){
+/* 2: Attribute ReduceAction167::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction167(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction159;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction167;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction159(void)
+val_t NEW_parser___ReduceAction167(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction159;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction167;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction159(val_t p0){
+void CHECKNEW_parser___ReduceAction167(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction159;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction167;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -100880,35 +98417,36 @@ void CHECKNEW_parser___ReduceAction159(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction159_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction167_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction159_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction167_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction159();
-  INIT_ATTRIBUTES__parser___ReduceAction159(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction167();
+  INIT_ATTRIBUTES__parser___ReduceAction167(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction159(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction167(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction160[52] = {
-  {(bigint) 1775 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction168[55] = {
+  {(bigint) 1779 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction160" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction160 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction160 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1775 /* 5: ReduceAction160 < ReduceAction160: superclass typecheck marker */},
+  {(bigint) "ReduceAction168" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction168 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction168 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1779 /* 5: ReduceAction168 < ReduceAction168: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -100921,7 +98459,7 @@ const classtable_elt_t VFT_parser___ReduceAction160[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction160 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction168 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -100937,6 +98475,8 @@ const classtable_elt_t VFT_parser___ReduceAction160[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -100950,44 +98490,44 @@ const classtable_elt_t VFT_parser___ReduceAction160[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction160 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction160___action},
+  {(bigint) 0 /* 50: ReduceAction168 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction168___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction160 < ReduceAction160: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction168 < ReduceAction168: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction160::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction160(val_t p0){
+/* 2: Attribute ReduceAction168::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction168(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction160;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction168;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction160(void)
+val_t NEW_parser___ReduceAction168(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction160;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction168;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction160(val_t p0){
+void CHECKNEW_parser___ReduceAction168(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction160;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction168;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -101000,35 +98540,36 @@ void CHECKNEW_parser___ReduceAction160(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction160_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction168_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction160_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction168_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction160();
-  INIT_ATTRIBUTES__parser___ReduceAction160(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction168();
+  INIT_ATTRIBUTES__parser___ReduceAction168(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction160(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction168(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction161[52] = {
-  {(bigint) 1771 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction169[55] = {
+  {(bigint) 1775 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction161" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction161 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction161 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1771 /* 5: ReduceAction161 < ReduceAction161: superclass typecheck marker */},
+  {(bigint) "ReduceAction169" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction169 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction169 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1775 /* 5: ReduceAction169 < ReduceAction169: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -101041,7 +98582,7 @@ const classtable_elt_t VFT_parser___ReduceAction161[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction161 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction169 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -101057,6 +98598,8 @@ const classtable_elt_t VFT_parser___ReduceAction161[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -101070,44 +98613,44 @@ const classtable_elt_t VFT_parser___ReduceAction161[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction161 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction161___action},
+  {(bigint) 0 /* 50: ReduceAction169 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction169___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction161 < ReduceAction161: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction169 < ReduceAction169: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction161::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction161(val_t p0){
+/* 2: Attribute ReduceAction169::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction169(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction161;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction169;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction161(void)
+val_t NEW_parser___ReduceAction169(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction161;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction169;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction161(val_t p0){
+void CHECKNEW_parser___ReduceAction169(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction161;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction169;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -101120,35 +98663,36 @@ void CHECKNEW_parser___ReduceAction161(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction161_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction169_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction161_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction169_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction161();
-  INIT_ATTRIBUTES__parser___ReduceAction161(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction169();
+  INIT_ATTRIBUTES__parser___ReduceAction169(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction161(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction169(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction162[52] = {
+const classtable_elt_t VFT_parser___ReduceAction170[55] = {
   {(bigint) 1767 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction162" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction162 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction162 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1767 /* 5: ReduceAction162 < ReduceAction162: superclass typecheck marker */},
+  {(bigint) "ReduceAction170" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction170 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction170 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1767 /* 5: ReduceAction170 < ReduceAction170: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -101161,7 +98705,7 @@ const classtable_elt_t VFT_parser___ReduceAction162[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction162 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction170 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -101177,6 +98721,8 @@ const classtable_elt_t VFT_parser___ReduceAction162[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -101190,44 +98736,44 @@ const classtable_elt_t VFT_parser___ReduceAction162[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction162 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction162___action},
+  {(bigint) 0 /* 50: ReduceAction170 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction170___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction162 < ReduceAction162: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction170 < ReduceAction170: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction162::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction162(val_t p0){
+/* 2: Attribute ReduceAction170::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction170(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction162;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction170;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction162(void)
+val_t NEW_parser___ReduceAction170(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction162;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction170;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction162(val_t p0){
+void CHECKNEW_parser___ReduceAction170(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction162;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction170;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -101240,35 +98786,36 @@ void CHECKNEW_parser___ReduceAction162(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction162_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction170_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction162_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction170_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction162();
-  INIT_ATTRIBUTES__parser___ReduceAction162(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction170();
+  INIT_ATTRIBUTES__parser___ReduceAction170(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction162(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction170(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction163[52] = {
+const classtable_elt_t VFT_parser___ReduceAction171[55] = {
   {(bigint) 1763 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction163" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction163 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction163 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1763 /* 5: ReduceAction163 < ReduceAction163: superclass typecheck marker */},
+  {(bigint) "ReduceAction171" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction171 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction171 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1763 /* 5: ReduceAction171 < ReduceAction171: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -101281,7 +98828,7 @@ const classtable_elt_t VFT_parser___ReduceAction163[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction163 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction171 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -101297,6 +98844,8 @@ const classtable_elt_t VFT_parser___ReduceAction163[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -101310,44 +98859,44 @@ const classtable_elt_t VFT_parser___ReduceAction163[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction163 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction163___action},
+  {(bigint) 0 /* 50: ReduceAction171 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction171___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction163 < ReduceAction163: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction171 < ReduceAction171: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction163::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction163(val_t p0){
+/* 2: Attribute ReduceAction171::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction171(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction163;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction171;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction163(void)
+val_t NEW_parser___ReduceAction171(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction163;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction171;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction163(val_t p0){
+void CHECKNEW_parser___ReduceAction171(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction163;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction171;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -101360,35 +98909,36 @@ void CHECKNEW_parser___ReduceAction163(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction163_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction171_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction163_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction171_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction163();
-  INIT_ATTRIBUTES__parser___ReduceAction163(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction171();
+  INIT_ATTRIBUTES__parser___ReduceAction171(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction163(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction171(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction164[52] = {
+const classtable_elt_t VFT_parser___ReduceAction172[55] = {
   {(bigint) 1759 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction164" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction164 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction164 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1759 /* 5: ReduceAction164 < ReduceAction164: superclass typecheck marker */},
+  {(bigint) "ReduceAction172" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction172 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction172 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1759 /* 5: ReduceAction172 < ReduceAction172: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -101401,7 +98951,7 @@ const classtable_elt_t VFT_parser___ReduceAction164[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction164 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction172 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -101417,6 +98967,8 @@ const classtable_elt_t VFT_parser___ReduceAction164[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -101430,44 +98982,44 @@ const classtable_elt_t VFT_parser___ReduceAction164[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction164 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction164___action},
+  {(bigint) 0 /* 50: ReduceAction172 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction172___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction164 < ReduceAction164: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction172 < ReduceAction172: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction164::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction164(val_t p0){
+/* 2: Attribute ReduceAction172::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction172(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction164;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction172;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction164(void)
+val_t NEW_parser___ReduceAction172(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction164;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction172;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction164(val_t p0){
+void CHECKNEW_parser___ReduceAction172(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction164;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction172;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -101480,35 +99032,36 @@ void CHECKNEW_parser___ReduceAction164(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction164_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction172_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction164_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction172_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction164();
-  INIT_ATTRIBUTES__parser___ReduceAction164(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction172();
+  INIT_ATTRIBUTES__parser___ReduceAction172(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction164(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction172(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction165[52] = {
+const classtable_elt_t VFT_parser___ReduceAction173[55] = {
   {(bigint) 1755 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction165" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction165 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction165 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1755 /* 5: ReduceAction165 < ReduceAction165: superclass typecheck marker */},
+  {(bigint) "ReduceAction173" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction173 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction173 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1755 /* 5: ReduceAction173 < ReduceAction173: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -101521,7 +99074,7 @@ const classtable_elt_t VFT_parser___ReduceAction165[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction165 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction173 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -101537,6 +99090,8 @@ const classtable_elt_t VFT_parser___ReduceAction165[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -101550,44 +99105,44 @@ const classtable_elt_t VFT_parser___ReduceAction165[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction165 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction165___action},
+  {(bigint) 0 /* 50: ReduceAction173 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction173___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction165 < ReduceAction165: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction173 < ReduceAction173: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction165::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction165(val_t p0){
+/* 2: Attribute ReduceAction173::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction173(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction165;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction173;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction165(void)
+val_t NEW_parser___ReduceAction173(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction165;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction173;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction165(val_t p0){
+void CHECKNEW_parser___ReduceAction173(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction165;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction173;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -101600,35 +99155,36 @@ void CHECKNEW_parser___ReduceAction165(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction165_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction173_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction165_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction173_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction165();
-  INIT_ATTRIBUTES__parser___ReduceAction165(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction173();
+  INIT_ATTRIBUTES__parser___ReduceAction173(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction165(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction173(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction166[52] = {
+const classtable_elt_t VFT_parser___ReduceAction174[55] = {
   {(bigint) 1751 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction166" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction166 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction166 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1751 /* 5: ReduceAction166 < ReduceAction166: superclass typecheck marker */},
+  {(bigint) "ReduceAction174" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction174 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction174 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1751 /* 5: ReduceAction174 < ReduceAction174: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -101641,7 +99197,7 @@ const classtable_elt_t VFT_parser___ReduceAction166[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction166 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction174 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -101657,6 +99213,8 @@ const classtable_elt_t VFT_parser___ReduceAction166[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -101670,44 +99228,44 @@ const classtable_elt_t VFT_parser___ReduceAction166[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction166 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction166___action},
+  {(bigint) 0 /* 50: ReduceAction174 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction174___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction166 < ReduceAction166: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction174 < ReduceAction174: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction166::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction166(val_t p0){
+/* 2: Attribute ReduceAction174::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction174(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction166;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction174;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction166(void)
+val_t NEW_parser___ReduceAction174(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction166;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction174;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction166(val_t p0){
+void CHECKNEW_parser___ReduceAction174(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction166;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction174;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -101720,35 +99278,36 @@ void CHECKNEW_parser___ReduceAction166(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction166_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction174_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction166_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction174_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction166();
-  INIT_ATTRIBUTES__parser___ReduceAction166(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction174();
+  INIT_ATTRIBUTES__parser___ReduceAction174(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction166(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction174(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction167[52] = {
+const classtable_elt_t VFT_parser___ReduceAction175[55] = {
   {(bigint) 1747 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction167" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction167 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction167 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1747 /* 5: ReduceAction167 < ReduceAction167: superclass typecheck marker */},
+  {(bigint) "ReduceAction175" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction175 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction175 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1747 /* 5: ReduceAction175 < ReduceAction175: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -101761,7 +99320,7 @@ const classtable_elt_t VFT_parser___ReduceAction167[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction167 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction175 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -101777,6 +99336,8 @@ const classtable_elt_t VFT_parser___ReduceAction167[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -101790,44 +99351,44 @@ const classtable_elt_t VFT_parser___ReduceAction167[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction167 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction167___action},
+  {(bigint) 0 /* 50: ReduceAction175 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction175___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction167 < ReduceAction167: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction175 < ReduceAction175: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction167::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction167(val_t p0){
+/* 2: Attribute ReduceAction175::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction175(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction167;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction175;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction167(void)
+val_t NEW_parser___ReduceAction175(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction167;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction175;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction167(val_t p0){
+void CHECKNEW_parser___ReduceAction175(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction167;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction175;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -101840,35 +99401,36 @@ void CHECKNEW_parser___ReduceAction167(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction167_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction175_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction167_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction175_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction167();
-  INIT_ATTRIBUTES__parser___ReduceAction167(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction175();
+  INIT_ATTRIBUTES__parser___ReduceAction175(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction167(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction175(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction168[52] = {
+const classtable_elt_t VFT_parser___ReduceAction176[55] = {
   {(bigint) 1743 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction168" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction168 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction168 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1743 /* 5: ReduceAction168 < ReduceAction168: superclass typecheck marker */},
+  {(bigint) "ReduceAction176" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction176 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction176 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1743 /* 5: ReduceAction176 < ReduceAction176: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -101881,7 +99443,7 @@ const classtable_elt_t VFT_parser___ReduceAction168[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction168 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction176 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -101897,6 +99459,8 @@ const classtable_elt_t VFT_parser___ReduceAction168[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -101910,44 +99474,44 @@ const classtable_elt_t VFT_parser___ReduceAction168[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction168 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction168___action},
+  {(bigint) 0 /* 50: ReduceAction176 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction176___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction168 < ReduceAction168: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction176 < ReduceAction176: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction168::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction168(val_t p0){
+/* 2: Attribute ReduceAction176::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction176(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction168;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction176;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction168(void)
+val_t NEW_parser___ReduceAction176(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction168;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction176;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction168(val_t p0){
+void CHECKNEW_parser___ReduceAction176(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction168;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction176;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -101960,35 +99524,36 @@ void CHECKNEW_parser___ReduceAction168(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction168_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction176_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction168_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction176_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction168();
-  INIT_ATTRIBUTES__parser___ReduceAction168(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction176();
+  INIT_ATTRIBUTES__parser___ReduceAction176(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction168(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction176(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction169[52] = {
+const classtable_elt_t VFT_parser___ReduceAction177[55] = {
   {(bigint) 1739 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction169" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction169 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction169 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1739 /* 5: ReduceAction169 < ReduceAction169: superclass typecheck marker */},
+  {(bigint) "ReduceAction177" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction177 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction177 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1739 /* 5: ReduceAction177 < ReduceAction177: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -102001,7 +99566,7 @@ const classtable_elt_t VFT_parser___ReduceAction169[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction169 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction177 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -102017,6 +99582,8 @@ const classtable_elt_t VFT_parser___ReduceAction169[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -102030,44 +99597,44 @@ const classtable_elt_t VFT_parser___ReduceAction169[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction169 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction169___action},
+  {(bigint) 0 /* 50: ReduceAction177 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction177___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction169 < ReduceAction169: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction177 < ReduceAction177: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction169::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction169(val_t p0){
+/* 2: Attribute ReduceAction177::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction177(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction169;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction177;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction169(void)
+val_t NEW_parser___ReduceAction177(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction169;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction177;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction169(val_t p0){
+void CHECKNEW_parser___ReduceAction177(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction169;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction177;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -102080,35 +99647,36 @@ void CHECKNEW_parser___ReduceAction169(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction169_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction177_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction169_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction177_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction169();
-  INIT_ATTRIBUTES__parser___ReduceAction169(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction177();
+  INIT_ATTRIBUTES__parser___ReduceAction177(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction169(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction177(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction170[52] = {
-  {(bigint) 1731 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction178[55] = {
+  {(bigint) 1735 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction170" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction170 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction170 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1731 /* 5: ReduceAction170 < ReduceAction170: superclass typecheck marker */},
+  {(bigint) "ReduceAction178" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction178 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction178 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1735 /* 5: ReduceAction178 < ReduceAction178: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -102121,7 +99689,7 @@ const classtable_elt_t VFT_parser___ReduceAction170[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction170 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction178 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -102137,6 +99705,8 @@ const classtable_elt_t VFT_parser___ReduceAction170[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -102150,44 +99720,44 @@ const classtable_elt_t VFT_parser___ReduceAction170[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction170 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction170___action},
+  {(bigint) 0 /* 50: ReduceAction178 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction178___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction170 < ReduceAction170: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction178 < ReduceAction178: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction170::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction170(val_t p0){
+/* 2: Attribute ReduceAction178::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction178(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction170;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction178;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction170(void)
+val_t NEW_parser___ReduceAction178(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction170;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction178;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction170(val_t p0){
+void CHECKNEW_parser___ReduceAction178(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction170;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction178;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -102200,35 +99770,36 @@ void CHECKNEW_parser___ReduceAction170(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction170_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction178_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction170_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction178_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction170();
-  INIT_ATTRIBUTES__parser___ReduceAction170(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction178();
+  INIT_ATTRIBUTES__parser___ReduceAction178(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction170(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction178(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction171[52] = {
-  {(bigint) 1727 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction179[55] = {
+  {(bigint) 1731 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction171" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction171 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction171 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1727 /* 5: ReduceAction171 < ReduceAction171: superclass typecheck marker */},
+  {(bigint) "ReduceAction179" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction179 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction179 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1731 /* 5: ReduceAction179 < ReduceAction179: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -102241,7 +99812,7 @@ const classtable_elt_t VFT_parser___ReduceAction171[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction171 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction179 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -102257,6 +99828,8 @@ const classtable_elt_t VFT_parser___ReduceAction171[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -102270,44 +99843,44 @@ const classtable_elt_t VFT_parser___ReduceAction171[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction171 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction171___action},
+  {(bigint) 0 /* 50: ReduceAction179 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction179___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction171 < ReduceAction171: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction179 < ReduceAction179: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction171::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction171(val_t p0){
+/* 2: Attribute ReduceAction179::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction179(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction171;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction179;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction171(void)
+val_t NEW_parser___ReduceAction179(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction171;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction179;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction171(val_t p0){
+void CHECKNEW_parser___ReduceAction179(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction171;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction179;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -102320,35 +99893,36 @@ void CHECKNEW_parser___ReduceAction171(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction171_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction179_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction171_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction179_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction171();
-  INIT_ATTRIBUTES__parser___ReduceAction171(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction179();
+  INIT_ATTRIBUTES__parser___ReduceAction179(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction171(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction179(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction172[52] = {
+const classtable_elt_t VFT_parser___ReduceAction180[55] = {
   {(bigint) 1723 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction172" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction172 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction172 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1723 /* 5: ReduceAction172 < ReduceAction172: superclass typecheck marker */},
+  {(bigint) "ReduceAction180" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction180 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction180 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1723 /* 5: ReduceAction180 < ReduceAction180: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -102361,7 +99935,7 @@ const classtable_elt_t VFT_parser___ReduceAction172[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction172 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction180 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -102377,6 +99951,8 @@ const classtable_elt_t VFT_parser___ReduceAction172[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -102390,44 +99966,44 @@ const classtable_elt_t VFT_parser___ReduceAction172[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction172 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction172___action},
+  {(bigint) 0 /* 50: ReduceAction180 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction180___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction172 < ReduceAction172: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction180 < ReduceAction180: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction172::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction172(val_t p0){
+/* 2: Attribute ReduceAction180::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction180(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction172;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction180;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction172(void)
+val_t NEW_parser___ReduceAction180(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction172;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction180;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction172(val_t p0){
+void CHECKNEW_parser___ReduceAction180(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction172;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction180;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -102440,35 +100016,36 @@ void CHECKNEW_parser___ReduceAction172(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction172_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction180_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction172_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction180_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction172();
-  INIT_ATTRIBUTES__parser___ReduceAction172(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction180();
+  INIT_ATTRIBUTES__parser___ReduceAction180(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction172(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction180(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction173[52] = {
+const classtable_elt_t VFT_parser___ReduceAction181[55] = {
   {(bigint) 1719 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction173" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction173 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction173 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1719 /* 5: ReduceAction173 < ReduceAction173: superclass typecheck marker */},
+  {(bigint) "ReduceAction181" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction181 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction181 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1719 /* 5: ReduceAction181 < ReduceAction181: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -102481,7 +100058,7 @@ const classtable_elt_t VFT_parser___ReduceAction173[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction173 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction181 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -102497,6 +100074,8 @@ const classtable_elt_t VFT_parser___ReduceAction173[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -102510,44 +100089,44 @@ const classtable_elt_t VFT_parser___ReduceAction173[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction173 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction173___action},
+  {(bigint) 0 /* 50: ReduceAction181 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction181___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction173 < ReduceAction173: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction181 < ReduceAction181: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction173::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction173(val_t p0){
+/* 2: Attribute ReduceAction181::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction181(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction173;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction181;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction173(void)
+val_t NEW_parser___ReduceAction181(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction173;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction181;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction173(val_t p0){
+void CHECKNEW_parser___ReduceAction181(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction173;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction181;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -102560,35 +100139,36 @@ void CHECKNEW_parser___ReduceAction173(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction173_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction181_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction173_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction181_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction173();
-  INIT_ATTRIBUTES__parser___ReduceAction173(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction181();
+  INIT_ATTRIBUTES__parser___ReduceAction181(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction173(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction181(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction174[52] = {
+const classtable_elt_t VFT_parser___ReduceAction182[55] = {
   {(bigint) 1715 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction174" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction174 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction174 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1715 /* 5: ReduceAction174 < ReduceAction174: superclass typecheck marker */},
+  {(bigint) "ReduceAction182" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction182 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction182 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1715 /* 5: ReduceAction182 < ReduceAction182: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -102601,7 +100181,7 @@ const classtable_elt_t VFT_parser___ReduceAction174[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction174 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction182 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -102617,6 +100197,8 @@ const classtable_elt_t VFT_parser___ReduceAction174[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -102630,44 +100212,44 @@ const classtable_elt_t VFT_parser___ReduceAction174[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction174 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction174___action},
+  {(bigint) 0 /* 50: ReduceAction182 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction182___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction174 < ReduceAction174: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction182 < ReduceAction182: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction174::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction174(val_t p0){
+/* 2: Attribute ReduceAction182::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction182(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction174;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction182;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction174(void)
+val_t NEW_parser___ReduceAction182(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction174;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction182;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction174(val_t p0){
+void CHECKNEW_parser___ReduceAction182(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction174;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction182;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -102680,35 +100262,36 @@ void CHECKNEW_parser___ReduceAction174(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction174_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction182_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction174_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction182_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction174();
-  INIT_ATTRIBUTES__parser___ReduceAction174(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction182();
+  INIT_ATTRIBUTES__parser___ReduceAction182(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction174(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction182(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction175[52] = {
+const classtable_elt_t VFT_parser___ReduceAction183[55] = {
   {(bigint) 1711 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction175" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction175 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction175 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1711 /* 5: ReduceAction175 < ReduceAction175: superclass typecheck marker */},
+  {(bigint) "ReduceAction183" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction183 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction183 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1711 /* 5: ReduceAction183 < ReduceAction183: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -102721,7 +100304,7 @@ const classtable_elt_t VFT_parser___ReduceAction175[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction175 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction183 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -102737,6 +100320,8 @@ const classtable_elt_t VFT_parser___ReduceAction175[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -102750,44 +100335,44 @@ const classtable_elt_t VFT_parser___ReduceAction175[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction175 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction175___action},
+  {(bigint) 0 /* 50: ReduceAction183 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction183___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction175 < ReduceAction175: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction183 < ReduceAction183: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction175::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction175(val_t p0){
+/* 2: Attribute ReduceAction183::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction183(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction175;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction183;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction175(void)
+val_t NEW_parser___ReduceAction183(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction175;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction183;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction175(val_t p0){
+void CHECKNEW_parser___ReduceAction183(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction175;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction183;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -102800,35 +100385,36 @@ void CHECKNEW_parser___ReduceAction175(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction175_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction183_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction175_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction183_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction175();
-  INIT_ATTRIBUTES__parser___ReduceAction175(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction183();
+  INIT_ATTRIBUTES__parser___ReduceAction183(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction175(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction183(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction176[52] = {
+const classtable_elt_t VFT_parser___ReduceAction184[55] = {
   {(bigint) 1707 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction176" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction176 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction176 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1707 /* 5: ReduceAction176 < ReduceAction176: superclass typecheck marker */},
+  {(bigint) "ReduceAction184" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction184 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction184 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1707 /* 5: ReduceAction184 < ReduceAction184: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -102841,7 +100427,7 @@ const classtable_elt_t VFT_parser___ReduceAction176[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction176 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction184 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -102857,6 +100443,8 @@ const classtable_elt_t VFT_parser___ReduceAction176[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -102870,44 +100458,44 @@ const classtable_elt_t VFT_parser___ReduceAction176[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction176 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction176___action},
+  {(bigint) 0 /* 50: ReduceAction184 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction184___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction176 < ReduceAction176: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction184 < ReduceAction184: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction176::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction176(val_t p0){
+/* 2: Attribute ReduceAction184::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction184(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction176;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction184;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction176(void)
+val_t NEW_parser___ReduceAction184(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction176;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction184;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction176(val_t p0){
+void CHECKNEW_parser___ReduceAction184(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction176;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction184;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -102920,35 +100508,36 @@ void CHECKNEW_parser___ReduceAction176(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction176_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction184_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction176_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction184_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction176();
-  INIT_ATTRIBUTES__parser___ReduceAction176(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction184();
+  INIT_ATTRIBUTES__parser___ReduceAction184(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction176(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction184(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction177[52] = {
+const classtable_elt_t VFT_parser___ReduceAction185[55] = {
   {(bigint) 1703 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction177" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction177 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction177 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1703 /* 5: ReduceAction177 < ReduceAction177: superclass typecheck marker */},
+  {(bigint) "ReduceAction185" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction185 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction185 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1703 /* 5: ReduceAction185 < ReduceAction185: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -102961,7 +100550,7 @@ const classtable_elt_t VFT_parser___ReduceAction177[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction177 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction185 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -102977,6 +100566,8 @@ const classtable_elt_t VFT_parser___ReduceAction177[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -102990,44 +100581,44 @@ const classtable_elt_t VFT_parser___ReduceAction177[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction177 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction177___action},
+  {(bigint) 0 /* 50: ReduceAction185 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction185___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction177 < ReduceAction177: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction185 < ReduceAction185: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction177::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction177(val_t p0){
+/* 2: Attribute ReduceAction185::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction185(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction177;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction185;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction177(void)
+val_t NEW_parser___ReduceAction185(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction177;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction185;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction177(val_t p0){
+void CHECKNEW_parser___ReduceAction185(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction177;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction185;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -103040,35 +100631,36 @@ void CHECKNEW_parser___ReduceAction177(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction177_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction185_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction177_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction185_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction177();
-  INIT_ATTRIBUTES__parser___ReduceAction177(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction185();
+  INIT_ATTRIBUTES__parser___ReduceAction185(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction177(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction185(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction178[52] = {
+const classtable_elt_t VFT_parser___ReduceAction186[55] = {
   {(bigint) 1699 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction178" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction178 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction178 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1699 /* 5: ReduceAction178 < ReduceAction178: superclass typecheck marker */},
+  {(bigint) "ReduceAction186" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction186 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction186 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1699 /* 5: ReduceAction186 < ReduceAction186: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -103081,7 +100673,7 @@ const classtable_elt_t VFT_parser___ReduceAction178[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction178 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction186 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -103097,6 +100689,8 @@ const classtable_elt_t VFT_parser___ReduceAction178[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -103110,44 +100704,44 @@ const classtable_elt_t VFT_parser___ReduceAction178[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction178 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction178___action},
+  {(bigint) 0 /* 50: ReduceAction186 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction186___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction178 < ReduceAction178: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction186 < ReduceAction186: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction178::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction178(val_t p0){
+/* 2: Attribute ReduceAction186::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction186(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction178;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction186;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction178(void)
+val_t NEW_parser___ReduceAction186(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction178;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction186;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction178(val_t p0){
+void CHECKNEW_parser___ReduceAction186(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction178;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction186;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -103160,35 +100754,36 @@ void CHECKNEW_parser___ReduceAction178(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction178_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction186_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction178_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction186_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction178();
-  INIT_ATTRIBUTES__parser___ReduceAction178(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction186();
+  INIT_ATTRIBUTES__parser___ReduceAction186(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction178(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction186(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction179[52] = {
+const classtable_elt_t VFT_parser___ReduceAction187[55] = {
   {(bigint) 1695 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction179" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction179 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction179 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1695 /* 5: ReduceAction179 < ReduceAction179: superclass typecheck marker */},
+  {(bigint) "ReduceAction187" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction187 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction187 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1695 /* 5: ReduceAction187 < ReduceAction187: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -103201,7 +100796,7 @@ const classtable_elt_t VFT_parser___ReduceAction179[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction179 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction187 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -103217,6 +100812,8 @@ const classtable_elt_t VFT_parser___ReduceAction179[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -103230,44 +100827,44 @@ const classtable_elt_t VFT_parser___ReduceAction179[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction179 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction179___action},
+  {(bigint) 0 /* 50: ReduceAction187 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction187___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction179 < ReduceAction179: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction187 < ReduceAction187: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction179::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction179(val_t p0){
+/* 2: Attribute ReduceAction187::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction187(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction179;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction187;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction179(void)
+val_t NEW_parser___ReduceAction187(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction179;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction187;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction179(val_t p0){
+void CHECKNEW_parser___ReduceAction187(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction179;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction187;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -103280,35 +100877,36 @@ void CHECKNEW_parser___ReduceAction179(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction179_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction187_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction179_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction187_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction179();
-  INIT_ATTRIBUTES__parser___ReduceAction179(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction187();
+  INIT_ATTRIBUTES__parser___ReduceAction187(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction179(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction187(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction180[52] = {
-  {(bigint) 1687 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction188[55] = {
+  {(bigint) 1691 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction180" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction180 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction180 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1687 /* 5: ReduceAction180 < ReduceAction180: superclass typecheck marker */},
+  {(bigint) "ReduceAction188" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction188 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction188 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1691 /* 5: ReduceAction188 < ReduceAction188: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -103321,7 +100919,7 @@ const classtable_elt_t VFT_parser___ReduceAction180[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction180 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction188 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -103337,6 +100935,8 @@ const classtable_elt_t VFT_parser___ReduceAction180[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -103350,44 +100950,44 @@ const classtable_elt_t VFT_parser___ReduceAction180[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction180 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction180___action},
+  {(bigint) 0 /* 50: ReduceAction188 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction188___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction180 < ReduceAction180: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction188 < ReduceAction188: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction180::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction180(val_t p0){
+/* 2: Attribute ReduceAction188::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction188(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction180;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction188;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction180(void)
+val_t NEW_parser___ReduceAction188(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction180;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction188;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction180(val_t p0){
+void CHECKNEW_parser___ReduceAction188(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction180;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction188;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -103400,35 +101000,36 @@ void CHECKNEW_parser___ReduceAction180(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction180_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction188_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction180_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction188_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction180();
-  INIT_ATTRIBUTES__parser___ReduceAction180(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction188();
+  INIT_ATTRIBUTES__parser___ReduceAction188(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction180(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction188(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction181[52] = {
-  {(bigint) 1683 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction189[55] = {
+  {(bigint) 1687 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction181" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction181 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction181 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1683 /* 5: ReduceAction181 < ReduceAction181: superclass typecheck marker */},
+  {(bigint) "ReduceAction189" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction189 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction189 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1687 /* 5: ReduceAction189 < ReduceAction189: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -103441,7 +101042,7 @@ const classtable_elt_t VFT_parser___ReduceAction181[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction181 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction189 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -103457,6 +101058,8 @@ const classtable_elt_t VFT_parser___ReduceAction181[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -103470,44 +101073,44 @@ const classtable_elt_t VFT_parser___ReduceAction181[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction181 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction181___action},
+  {(bigint) 0 /* 50: ReduceAction189 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction189___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction181 < ReduceAction181: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction189 < ReduceAction189: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction181::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction181(val_t p0){
+/* 2: Attribute ReduceAction189::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction189(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction181;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction189;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction181(void)
+val_t NEW_parser___ReduceAction189(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction181;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction189;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction181(val_t p0){
+void CHECKNEW_parser___ReduceAction189(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction181;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction189;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -103520,35 +101123,36 @@ void CHECKNEW_parser___ReduceAction181(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction181_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction189_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction181_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction189_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction181();
-  INIT_ATTRIBUTES__parser___ReduceAction181(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction189();
+  INIT_ATTRIBUTES__parser___ReduceAction189(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction181(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction189(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction182[52] = {
+const classtable_elt_t VFT_parser___ReduceAction190[55] = {
   {(bigint) 1679 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction182" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction182 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction182 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1679 /* 5: ReduceAction182 < ReduceAction182: superclass typecheck marker */},
+  {(bigint) "ReduceAction190" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction190 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction190 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1679 /* 5: ReduceAction190 < ReduceAction190: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -103561,7 +101165,7 @@ const classtable_elt_t VFT_parser___ReduceAction182[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction182 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction190 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -103577,6 +101181,8 @@ const classtable_elt_t VFT_parser___ReduceAction182[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -103590,44 +101196,44 @@ const classtable_elt_t VFT_parser___ReduceAction182[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction182 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction182___action},
+  {(bigint) 0 /* 50: ReduceAction190 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction190___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction182 < ReduceAction182: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction190 < ReduceAction190: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction182::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction182(val_t p0){
+/* 2: Attribute ReduceAction190::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction190(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction182;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction190;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction182(void)
+val_t NEW_parser___ReduceAction190(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction182;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction190;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction182(val_t p0){
+void CHECKNEW_parser___ReduceAction190(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction182;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction190;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -103640,35 +101246,36 @@ void CHECKNEW_parser___ReduceAction182(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction182_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction190_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction182_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction190_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction182();
-  INIT_ATTRIBUTES__parser___ReduceAction182(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction190();
+  INIT_ATTRIBUTES__parser___ReduceAction190(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction182(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction190(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction183[52] = {
+const classtable_elt_t VFT_parser___ReduceAction191[55] = {
   {(bigint) 1675 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction183" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction183 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction183 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1675 /* 5: ReduceAction183 < ReduceAction183: superclass typecheck marker */},
+  {(bigint) "ReduceAction191" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction191 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction191 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1675 /* 5: ReduceAction191 < ReduceAction191: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -103681,7 +101288,7 @@ const classtable_elt_t VFT_parser___ReduceAction183[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction183 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction191 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -103697,6 +101304,8 @@ const classtable_elt_t VFT_parser___ReduceAction183[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -103710,44 +101319,44 @@ const classtable_elt_t VFT_parser___ReduceAction183[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction183 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction183___action},
+  {(bigint) 0 /* 50: ReduceAction191 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction191___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction183 < ReduceAction183: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction191 < ReduceAction191: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction183::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction183(val_t p0){
+/* 2: Attribute ReduceAction191::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction191(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction183;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction191;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction183(void)
+val_t NEW_parser___ReduceAction191(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction183;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction191;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction183(val_t p0){
+void CHECKNEW_parser___ReduceAction191(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction183;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction191;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -103760,35 +101369,36 @@ void CHECKNEW_parser___ReduceAction183(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction183_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction191_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction183_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction191_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction183();
-  INIT_ATTRIBUTES__parser___ReduceAction183(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction191();
+  INIT_ATTRIBUTES__parser___ReduceAction191(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction183(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction191(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction184[52] = {
+const classtable_elt_t VFT_parser___ReduceAction192[55] = {
   {(bigint) 1671 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction184" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction184 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction184 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1671 /* 5: ReduceAction184 < ReduceAction184: superclass typecheck marker */},
+  {(bigint) "ReduceAction192" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction192 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction192 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1671 /* 5: ReduceAction192 < ReduceAction192: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -103801,7 +101411,7 @@ const classtable_elt_t VFT_parser___ReduceAction184[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction184 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction192 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -103817,6 +101427,8 @@ const classtable_elt_t VFT_parser___ReduceAction184[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -103830,44 +101442,44 @@ const classtable_elt_t VFT_parser___ReduceAction184[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction184 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction184___action},
+  {(bigint) 0 /* 50: ReduceAction192 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction192___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction184 < ReduceAction184: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction192 < ReduceAction192: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction184::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction184(val_t p0){
+/* 2: Attribute ReduceAction192::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction192(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction184;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction192;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction184(void)
+val_t NEW_parser___ReduceAction192(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction184;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction192;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction184(val_t p0){
+void CHECKNEW_parser___ReduceAction192(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction184;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction192;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -103880,155 +101492,36 @@ void CHECKNEW_parser___ReduceAction184(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction184_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction192_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction184_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction192_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction184();
-  INIT_ATTRIBUTES__parser___ReduceAction184(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction192();
+  INIT_ATTRIBUTES__parser___ReduceAction192(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction184(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction192(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction185[52] = {
+const classtable_elt_t VFT_parser___ReduceAction193[55] = {
   {(bigint) 1667 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction185" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction185 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction185 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1667 /* 5: ReduceAction185 < ReduceAction185: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) "ReduceAction193" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction193 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction193 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1667 /* 5: ReduceAction193 < ReduceAction193: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction185 < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction185 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction185___action},
-  {(bigint) parser___ReduceAction___concat},
-  {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction185 < ReduceAction185: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute ReduceAction185::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction185(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction185;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___ReduceAction185(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction185;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___ReduceAction185(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction185;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_ReduceAction185_parser___ReduceAction___init(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction185_parser___ReduceAction___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction185();
-  INIT_ATTRIBUTES__parser___ReduceAction185(fra.me.REG[0]);
-  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction185(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_parser___ReduceAction186[52] = {
-  {(bigint) 1663 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction186" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction186 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction186 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1663 /* 5: ReduceAction186 < ReduceAction186: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -104041,7 +101534,7 @@ const classtable_elt_t VFT_parser___ReduceAction186[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction186 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction193 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -104057,6 +101550,8 @@ const classtable_elt_t VFT_parser___ReduceAction186[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -104070,44 +101565,44 @@ const classtable_elt_t VFT_parser___ReduceAction186[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction186 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction186___action},
+  {(bigint) 0 /* 50: ReduceAction193 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction193___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction186 < ReduceAction186: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction193 < ReduceAction193: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction186::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction186(val_t p0){
+/* 2: Attribute ReduceAction193::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction193(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction186;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction193;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction186(void)
+val_t NEW_parser___ReduceAction193(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction186;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction193;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction186(val_t p0){
+void CHECKNEW_parser___ReduceAction193(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction186;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction193;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -104120,35 +101615,36 @@ void CHECKNEW_parser___ReduceAction186(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction186_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction193_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction186_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction193_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction186();
-  INIT_ATTRIBUTES__parser___ReduceAction186(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction193();
+  INIT_ATTRIBUTES__parser___ReduceAction193(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction186(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction193(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction187[52] = {
-  {(bigint) 1659 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction194[55] = {
+  {(bigint) 1663 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction187" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction187 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction187 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1659 /* 5: ReduceAction187 < ReduceAction187: superclass typecheck marker */},
+  {(bigint) "ReduceAction194" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction194 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction194 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1663 /* 5: ReduceAction194 < ReduceAction194: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -104161,7 +101657,7 @@ const classtable_elt_t VFT_parser___ReduceAction187[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction187 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction194 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -104177,6 +101673,8 @@ const classtable_elt_t VFT_parser___ReduceAction187[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -104190,44 +101688,44 @@ const classtable_elt_t VFT_parser___ReduceAction187[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction187 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction187___action},
+  {(bigint) 0 /* 50: ReduceAction194 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction194___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction187 < ReduceAction187: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction194 < ReduceAction194: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction187::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction187(val_t p0){
+/* 2: Attribute ReduceAction194::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction194(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction187;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction194;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction187(void)
+val_t NEW_parser___ReduceAction194(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction187;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction194;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction187(val_t p0){
+void CHECKNEW_parser___ReduceAction194(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction187;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction194;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -104240,35 +101738,36 @@ void CHECKNEW_parser___ReduceAction187(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction187_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction194_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction187_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction194_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction187();
-  INIT_ATTRIBUTES__parser___ReduceAction187(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction194();
+  INIT_ATTRIBUTES__parser___ReduceAction194(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction187(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction194(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction188[52] = {
-  {(bigint) 1655 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction195[55] = {
+  {(bigint) 1659 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction188" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction188 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction188 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1655 /* 5: ReduceAction188 < ReduceAction188: superclass typecheck marker */},
+  {(bigint) "ReduceAction195" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction195 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction195 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1659 /* 5: ReduceAction195 < ReduceAction195: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -104281,7 +101780,7 @@ const classtable_elt_t VFT_parser___ReduceAction188[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction188 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction195 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -104297,6 +101796,8 @@ const classtable_elt_t VFT_parser___ReduceAction188[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -104310,44 +101811,44 @@ const classtable_elt_t VFT_parser___ReduceAction188[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction188 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction188___action},
+  {(bigint) 0 /* 50: ReduceAction195 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction195___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction188 < ReduceAction188: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction195 < ReduceAction195: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction188::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction188(val_t p0){
+/* 2: Attribute ReduceAction195::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction195(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction188;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction195;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction188(void)
+val_t NEW_parser___ReduceAction195(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction188;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction195;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction188(val_t p0){
+void CHECKNEW_parser___ReduceAction195(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction188;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction195;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -104360,35 +101861,36 @@ void CHECKNEW_parser___ReduceAction188(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction188_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction195_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction188_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction195_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction188();
-  INIT_ATTRIBUTES__parser___ReduceAction188(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction195();
+  INIT_ATTRIBUTES__parser___ReduceAction195(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction188(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction195(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction189[52] = {
-  {(bigint) 1651 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction196[55] = {
+  {(bigint) 1655 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction189" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction189 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction189 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1651 /* 5: ReduceAction189 < ReduceAction189: superclass typecheck marker */},
+  {(bigint) "ReduceAction196" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction196 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction196 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1655 /* 5: ReduceAction196 < ReduceAction196: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -104401,7 +101903,7 @@ const classtable_elt_t VFT_parser___ReduceAction189[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction189 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction196 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -104417,6 +101919,8 @@ const classtable_elt_t VFT_parser___ReduceAction189[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -104430,44 +101934,44 @@ const classtable_elt_t VFT_parser___ReduceAction189[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction189 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction189___action},
+  {(bigint) 0 /* 50: ReduceAction196 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction196___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction189 < ReduceAction189: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction196 < ReduceAction196: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction189::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction189(val_t p0){
+/* 2: Attribute ReduceAction196::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction196(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction189;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction196;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction189(void)
+val_t NEW_parser___ReduceAction196(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction189;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction196;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction189(val_t p0){
+void CHECKNEW_parser___ReduceAction196(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction189;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction196;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -104480,35 +101984,36 @@ void CHECKNEW_parser___ReduceAction189(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction189_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction196_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction189_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction196_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction189();
-  INIT_ATTRIBUTES__parser___ReduceAction189(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction196();
+  INIT_ATTRIBUTES__parser___ReduceAction196(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction189(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction196(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction190[52] = {
-  {(bigint) 1643 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction197[55] = {
+  {(bigint) 1651 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction190" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction190 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction190 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1643 /* 5: ReduceAction190 < ReduceAction190: superclass typecheck marker */},
+  {(bigint) "ReduceAction197" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction197 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction197 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1651 /* 5: ReduceAction197 < ReduceAction197: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -104521,7 +102026,7 @@ const classtable_elt_t VFT_parser___ReduceAction190[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction190 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction197 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -104537,6 +102042,8 @@ const classtable_elt_t VFT_parser___ReduceAction190[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -104550,44 +102057,44 @@ const classtable_elt_t VFT_parser___ReduceAction190[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction190 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction190___action},
+  {(bigint) 0 /* 50: ReduceAction197 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction197___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction190 < ReduceAction190: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction197 < ReduceAction197: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction190::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction190(val_t p0){
+/* 2: Attribute ReduceAction197::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction197(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction190;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction197;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction190(void)
+val_t NEW_parser___ReduceAction197(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction190;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction197;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction190(val_t p0){
+void CHECKNEW_parser___ReduceAction197(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction190;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction197;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -104600,35 +102107,36 @@ void CHECKNEW_parser___ReduceAction190(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction190_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction197_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction190_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction197_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction190();
-  INIT_ATTRIBUTES__parser___ReduceAction190(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction197();
+  INIT_ATTRIBUTES__parser___ReduceAction197(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction190(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction197(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction191[52] = {
-  {(bigint) 1639 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction198[55] = {
+  {(bigint) 1647 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction191" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction191 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction191 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1639 /* 5: ReduceAction191 < ReduceAction191: superclass typecheck marker */},
+  {(bigint) "ReduceAction198" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction198 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction198 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1647 /* 5: ReduceAction198 < ReduceAction198: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -104641,7 +102149,7 @@ const classtable_elt_t VFT_parser___ReduceAction191[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction191 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction198 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -104657,6 +102165,8 @@ const classtable_elt_t VFT_parser___ReduceAction191[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -104670,44 +102180,44 @@ const classtable_elt_t VFT_parser___ReduceAction191[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction191 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction191___action},
+  {(bigint) 0 /* 50: ReduceAction198 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction198___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction191 < ReduceAction191: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction198 < ReduceAction198: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction191::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction191(val_t p0){
+/* 2: Attribute ReduceAction198::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction198(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction191;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction198;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction191(void)
+val_t NEW_parser___ReduceAction198(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction191;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction198;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction191(val_t p0){
+void CHECKNEW_parser___ReduceAction198(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction191;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction198;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -104720,35 +102230,36 @@ void CHECKNEW_parser___ReduceAction191(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction191_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction198_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction191_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction198_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction191();
-  INIT_ATTRIBUTES__parser___ReduceAction191(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction198();
+  INIT_ATTRIBUTES__parser___ReduceAction198(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction191(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction198(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction192[52] = {
-  {(bigint) 1635 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction199[55] = {
+  {(bigint) 1643 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction192" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction192 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction192 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1635 /* 5: ReduceAction192 < ReduceAction192: superclass typecheck marker */},
+  {(bigint) "ReduceAction199" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction199 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction199 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1643 /* 5: ReduceAction199 < ReduceAction199: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -104761,7 +102272,7 @@ const classtable_elt_t VFT_parser___ReduceAction192[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction192 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction199 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -104777,6 +102288,8 @@ const classtable_elt_t VFT_parser___ReduceAction192[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -104790,44 +102303,44 @@ const classtable_elt_t VFT_parser___ReduceAction192[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction192 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction192___action},
+  {(bigint) 0 /* 50: ReduceAction199 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction199___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction192 < ReduceAction192: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction199 < ReduceAction199: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction192::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction192(val_t p0){
+/* 2: Attribute ReduceAction199::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction199(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction192;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction199;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction192(void)
+val_t NEW_parser___ReduceAction199(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction192;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction199;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction192(val_t p0){
+void CHECKNEW_parser___ReduceAction199(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction192;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction199;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -104840,35 +102353,36 @@ void CHECKNEW_parser___ReduceAction192(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction192_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction199_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction192_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction199_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction192();
-  INIT_ATTRIBUTES__parser___ReduceAction192(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction199();
+  INIT_ATTRIBUTES__parser___ReduceAction199(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction192(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction199(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction193[52] = {
+const classtable_elt_t VFT_parser___ReduceAction200[55] = {
   {(bigint) 1631 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction193" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction193 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction193 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1631 /* 5: ReduceAction193 < ReduceAction193: superclass typecheck marker */},
+  {(bigint) "ReduceAction200" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction200 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction200 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1631 /* 5: ReduceAction200 < ReduceAction200: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -104881,7 +102395,7 @@ const classtable_elt_t VFT_parser___ReduceAction193[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction193 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction200 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -104897,6 +102411,8 @@ const classtable_elt_t VFT_parser___ReduceAction193[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -104910,44 +102426,44 @@ const classtable_elt_t VFT_parser___ReduceAction193[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction193 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction193___action},
+  {(bigint) 0 /* 50: ReduceAction200 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction200___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction193 < ReduceAction193: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction200 < ReduceAction200: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction193::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction193(val_t p0){
+/* 2: Attribute ReduceAction200::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction200(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction193;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction200;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction193(void)
+val_t NEW_parser___ReduceAction200(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction193;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction200;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction193(val_t p0){
+void CHECKNEW_parser___ReduceAction200(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction193;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction200;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -104960,35 +102476,36 @@ void CHECKNEW_parser___ReduceAction193(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction193_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction200_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction193_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction200_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction193();
-  INIT_ATTRIBUTES__parser___ReduceAction193(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction200();
+  INIT_ATTRIBUTES__parser___ReduceAction200(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction193(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction200(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction194[52] = {
+const classtable_elt_t VFT_parser___ReduceAction201[55] = {
   {(bigint) 1627 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction194" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction194 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction194 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1627 /* 5: ReduceAction194 < ReduceAction194: superclass typecheck marker */},
+  {(bigint) "ReduceAction201" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction201 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction201 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1627 /* 5: ReduceAction201 < ReduceAction201: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -105001,7 +102518,7 @@ const classtable_elt_t VFT_parser___ReduceAction194[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction194 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction201 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -105017,6 +102534,8 @@ const classtable_elt_t VFT_parser___ReduceAction194[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -105030,44 +102549,44 @@ const classtable_elt_t VFT_parser___ReduceAction194[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction194 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction194___action},
+  {(bigint) 0 /* 50: ReduceAction201 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction201___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction194 < ReduceAction194: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction201 < ReduceAction201: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction194::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction194(val_t p0){
+/* 2: Attribute ReduceAction201::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction201(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction194;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction201;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction194(void)
+val_t NEW_parser___ReduceAction201(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction194;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction201;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction194(val_t p0){
+void CHECKNEW_parser___ReduceAction201(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction194;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction201;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -105080,35 +102599,36 @@ void CHECKNEW_parser___ReduceAction194(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction194_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction201_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction194_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction201_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction194();
-  INIT_ATTRIBUTES__parser___ReduceAction194(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction201();
+  INIT_ATTRIBUTES__parser___ReduceAction201(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction194(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction201(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction195[52] = {
+const classtable_elt_t VFT_parser___ReduceAction202[55] = {
   {(bigint) 1623 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction195" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction195 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction195 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1623 /* 5: ReduceAction195 < ReduceAction195: superclass typecheck marker */},
+  {(bigint) "ReduceAction202" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction202 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction202 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1623 /* 5: ReduceAction202 < ReduceAction202: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -105121,7 +102641,7 @@ const classtable_elt_t VFT_parser___ReduceAction195[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction195 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction202 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -105137,6 +102657,8 @@ const classtable_elt_t VFT_parser___ReduceAction195[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -105150,44 +102672,44 @@ const classtable_elt_t VFT_parser___ReduceAction195[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction195 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction195___action},
+  {(bigint) 0 /* 50: ReduceAction202 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction202___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction195 < ReduceAction195: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction202 < ReduceAction202: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction195::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction195(val_t p0){
+/* 2: Attribute ReduceAction202::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction202(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction195;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction202;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction195(void)
+val_t NEW_parser___ReduceAction202(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction195;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction202;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction195(val_t p0){
+void CHECKNEW_parser___ReduceAction202(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction195;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction202;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -105200,35 +102722,36 @@ void CHECKNEW_parser___ReduceAction195(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction195_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction202_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction195_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction202_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction195();
-  INIT_ATTRIBUTES__parser___ReduceAction195(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction202();
+  INIT_ATTRIBUTES__parser___ReduceAction202(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction195(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction202(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction196[52] = {
+const classtable_elt_t VFT_parser___ReduceAction203[55] = {
   {(bigint) 1619 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction196" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction196 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction196 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1619 /* 5: ReduceAction196 < ReduceAction196: superclass typecheck marker */},
+  {(bigint) "ReduceAction203" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction203 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction203 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1619 /* 5: ReduceAction203 < ReduceAction203: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -105241,7 +102764,7 @@ const classtable_elt_t VFT_parser___ReduceAction196[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction196 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction203 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -105257,6 +102780,8 @@ const classtable_elt_t VFT_parser___ReduceAction196[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -105270,44 +102795,44 @@ const classtable_elt_t VFT_parser___ReduceAction196[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction196 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction196___action},
+  {(bigint) 0 /* 50: ReduceAction203 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction203___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction196 < ReduceAction196: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction203 < ReduceAction203: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction196::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction196(val_t p0){
+/* 2: Attribute ReduceAction203::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction203(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction196;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction203;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction196(void)
+val_t NEW_parser___ReduceAction203(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction196;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction203;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction196(val_t p0){
+void CHECKNEW_parser___ReduceAction203(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction196;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction203;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -105320,35 +102845,36 @@ void CHECKNEW_parser___ReduceAction196(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction196_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction203_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction196_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction203_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction196();
-  INIT_ATTRIBUTES__parser___ReduceAction196(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction203();
+  INIT_ATTRIBUTES__parser___ReduceAction203(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction196(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction203(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction197[52] = {
+const classtable_elt_t VFT_parser___ReduceAction204[55] = {
   {(bigint) 1615 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction197" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction197 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction197 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1615 /* 5: ReduceAction197 < ReduceAction197: superclass typecheck marker */},
+  {(bigint) "ReduceAction204" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction204 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction204 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1615 /* 5: ReduceAction204 < ReduceAction204: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -105361,7 +102887,7 @@ const classtable_elt_t VFT_parser___ReduceAction197[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction197 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction204 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -105377,6 +102903,8 @@ const classtable_elt_t VFT_parser___ReduceAction197[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -105390,44 +102918,44 @@ const classtable_elt_t VFT_parser___ReduceAction197[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction197 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction197___action},
+  {(bigint) 0 /* 50: ReduceAction204 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction204___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction197 < ReduceAction197: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction204 < ReduceAction204: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction197::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction197(val_t p0){
+/* 2: Attribute ReduceAction204::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction204(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction197;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction204;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction197(void)
+val_t NEW_parser___ReduceAction204(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction197;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction204;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction197(val_t p0){
+void CHECKNEW_parser___ReduceAction204(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction197;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction204;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -105440,35 +102968,36 @@ void CHECKNEW_parser___ReduceAction197(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction197_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction204_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction197_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction204_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction197();
-  INIT_ATTRIBUTES__parser___ReduceAction197(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction204();
+  INIT_ATTRIBUTES__parser___ReduceAction204(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction197(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction204(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction198[52] = {
+const classtable_elt_t VFT_parser___ReduceAction205[55] = {
   {(bigint) 1611 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction198" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction198 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction198 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1611 /* 5: ReduceAction198 < ReduceAction198: superclass typecheck marker */},
+  {(bigint) "ReduceAction205" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction205 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction205 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1611 /* 5: ReduceAction205 < ReduceAction205: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -105481,7 +103010,7 @@ const classtable_elt_t VFT_parser___ReduceAction198[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction198 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction205 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -105497,6 +103026,8 @@ const classtable_elt_t VFT_parser___ReduceAction198[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -105510,44 +103041,44 @@ const classtable_elt_t VFT_parser___ReduceAction198[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction198 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction198___action},
+  {(bigint) 0 /* 50: ReduceAction205 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction205___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction198 < ReduceAction198: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction205 < ReduceAction205: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction198::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction198(val_t p0){
+/* 2: Attribute ReduceAction205::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction205(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction198;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction205;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction198(void)
+val_t NEW_parser___ReduceAction205(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction198;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction205;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction198(val_t p0){
+void CHECKNEW_parser___ReduceAction205(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction198;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction205;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -105560,155 +103091,36 @@ void CHECKNEW_parser___ReduceAction198(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction198_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction205_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction198_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction205_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction198();
-  INIT_ATTRIBUTES__parser___ReduceAction198(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction205();
+  INIT_ATTRIBUTES__parser___ReduceAction205(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction198(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction205(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction199[52] = {
+const classtable_elt_t VFT_parser___ReduceAction206[55] = {
   {(bigint) 1607 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction199" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction199 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction199 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1607 /* 5: ReduceAction199 < ReduceAction199: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) "ReduceAction206" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction206 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction206 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1607 /* 5: ReduceAction206 < ReduceAction206: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction199 < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction199 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction199___action},
-  {(bigint) parser___ReduceAction___concat},
-  {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction199 < ReduceAction199: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute ReduceAction199::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction199(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction199;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___ReduceAction199(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction199;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___ReduceAction199(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction199;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_ReduceAction199_parser___ReduceAction___init(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction199_parser___ReduceAction___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction199();
-  INIT_ATTRIBUTES__parser___ReduceAction199(fra.me.REG[0]);
-  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction199(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_parser___ReduceAction200[52] = {
-  {(bigint) 1595 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction200" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction200 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction200 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1595 /* 5: ReduceAction200 < ReduceAction200: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -105721,7 +103133,7 @@ const classtable_elt_t VFT_parser___ReduceAction200[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction200 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction206 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -105737,6 +103149,8 @@ const classtable_elt_t VFT_parser___ReduceAction200[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -105750,44 +103164,44 @@ const classtable_elt_t VFT_parser___ReduceAction200[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction200 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction200___action},
+  {(bigint) 0 /* 50: ReduceAction206 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction206___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction200 < ReduceAction200: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction206 < ReduceAction206: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction200::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction200(val_t p0){
+/* 2: Attribute ReduceAction206::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction206(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction200;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction206;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction200(void)
+val_t NEW_parser___ReduceAction206(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction200;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction206;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction200(val_t p0){
+void CHECKNEW_parser___ReduceAction206(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction200;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction206;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -105800,35 +103214,36 @@ void CHECKNEW_parser___ReduceAction200(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction200_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction206_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction200_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction206_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction200();
-  INIT_ATTRIBUTES__parser___ReduceAction200(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction206();
+  INIT_ATTRIBUTES__parser___ReduceAction206(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction200(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction206(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction201[52] = {
-  {(bigint) 1591 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction207[55] = {
+  {(bigint) 1603 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction201" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction201 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction201 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1591 /* 5: ReduceAction201 < ReduceAction201: superclass typecheck marker */},
+  {(bigint) "ReduceAction207" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction207 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction207 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1603 /* 5: ReduceAction207 < ReduceAction207: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -105841,7 +103256,7 @@ const classtable_elt_t VFT_parser___ReduceAction201[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction201 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction207 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -105857,6 +103272,8 @@ const classtable_elt_t VFT_parser___ReduceAction201[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -105870,44 +103287,44 @@ const classtable_elt_t VFT_parser___ReduceAction201[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction201 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction201___action},
+  {(bigint) 0 /* 50: ReduceAction207 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction207___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction201 < ReduceAction201: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction207 < ReduceAction207: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction201::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction201(val_t p0){
+/* 2: Attribute ReduceAction207::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction207(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction201;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction207;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction201(void)
+val_t NEW_parser___ReduceAction207(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction201;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction207;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction201(val_t p0){
+void CHECKNEW_parser___ReduceAction207(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction201;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction207;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -105920,35 +103337,36 @@ void CHECKNEW_parser___ReduceAction201(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction201_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction207_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction201_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction207_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction201();
-  INIT_ATTRIBUTES__parser___ReduceAction201(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction207();
+  INIT_ATTRIBUTES__parser___ReduceAction207(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction201(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction207(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction202[52] = {
-  {(bigint) 1587 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction208[55] = {
+  {(bigint) 1599 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction202" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction202 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction202 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1587 /* 5: ReduceAction202 < ReduceAction202: superclass typecheck marker */},
+  {(bigint) "ReduceAction208" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction208 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction208 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1599 /* 5: ReduceAction208 < ReduceAction208: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -105961,7 +103379,7 @@ const classtable_elt_t VFT_parser___ReduceAction202[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction202 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction208 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -105977,6 +103395,8 @@ const classtable_elt_t VFT_parser___ReduceAction202[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -105990,44 +103410,44 @@ const classtable_elt_t VFT_parser___ReduceAction202[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction202 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction202___action},
+  {(bigint) 0 /* 50: ReduceAction208 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction208___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction202 < ReduceAction202: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction208 < ReduceAction208: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction202::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction202(val_t p0){
+/* 2: Attribute ReduceAction208::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction208(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction202;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction208;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction202(void)
+val_t NEW_parser___ReduceAction208(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction202;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction208;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction202(val_t p0){
+void CHECKNEW_parser___ReduceAction208(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction202;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction208;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -106040,35 +103460,36 @@ void CHECKNEW_parser___ReduceAction202(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction202_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction208_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction202_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction208_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction202();
-  INIT_ATTRIBUTES__parser___ReduceAction202(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction208();
+  INIT_ATTRIBUTES__parser___ReduceAction208(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction202(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction208(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction203[52] = {
-  {(bigint) 1583 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction209[55] = {
+  {(bigint) 1595 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction203" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction203 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction203 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1583 /* 5: ReduceAction203 < ReduceAction203: superclass typecheck marker */},
+  {(bigint) "ReduceAction209" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction209 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction209 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1595 /* 5: ReduceAction209 < ReduceAction209: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -106081,7 +103502,7 @@ const classtable_elt_t VFT_parser___ReduceAction203[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction203 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction209 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -106097,6 +103518,8 @@ const classtable_elt_t VFT_parser___ReduceAction203[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -106110,44 +103533,44 @@ const classtable_elt_t VFT_parser___ReduceAction203[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction203 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction203___action},
+  {(bigint) 0 /* 50: ReduceAction209 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction209___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction203 < ReduceAction203: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction209 < ReduceAction209: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction203::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction203(val_t p0){
+/* 2: Attribute ReduceAction209::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction209(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction203;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction209;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction203(void)
+val_t NEW_parser___ReduceAction209(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction203;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction209;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction203(val_t p0){
+void CHECKNEW_parser___ReduceAction209(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction203;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction209;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -106160,35 +103583,36 @@ void CHECKNEW_parser___ReduceAction203(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction203_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction209_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction203_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction209_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction203();
-  INIT_ATTRIBUTES__parser___ReduceAction203(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction209();
+  INIT_ATTRIBUTES__parser___ReduceAction209(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction203(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction209(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction204[52] = {
-  {(bigint) 1579 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction210[55] = {
+  {(bigint) 1587 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction204" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction204 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction204 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1579 /* 5: ReduceAction204 < ReduceAction204: superclass typecheck marker */},
+  {(bigint) "ReduceAction210" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction210 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction210 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1587 /* 5: ReduceAction210 < ReduceAction210: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -106201,7 +103625,7 @@ const classtable_elt_t VFT_parser___ReduceAction204[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction204 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction210 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -106217,6 +103641,8 @@ const classtable_elt_t VFT_parser___ReduceAction204[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -106230,44 +103656,44 @@ const classtable_elt_t VFT_parser___ReduceAction204[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction204 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction204___action},
+  {(bigint) 0 /* 50: ReduceAction210 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction210___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction204 < ReduceAction204: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction210 < ReduceAction210: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction204::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction204(val_t p0){
+/* 2: Attribute ReduceAction210::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction210(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction204;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction210;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction204(void)
+val_t NEW_parser___ReduceAction210(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction204;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction210;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction204(val_t p0){
+void CHECKNEW_parser___ReduceAction210(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction204;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction210;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -106280,35 +103706,36 @@ void CHECKNEW_parser___ReduceAction204(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction204_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction210_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction204_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction210_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction204();
-  INIT_ATTRIBUTES__parser___ReduceAction204(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction210();
+  INIT_ATTRIBUTES__parser___ReduceAction210(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction204(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction210(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction205[52] = {
-  {(bigint) 1575 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction211[55] = {
+  {(bigint) 1583 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction205" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction205 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction205 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1575 /* 5: ReduceAction205 < ReduceAction205: superclass typecheck marker */},
+  {(bigint) "ReduceAction211" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction211 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction211 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1583 /* 5: ReduceAction211 < ReduceAction211: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -106321,7 +103748,7 @@ const classtable_elt_t VFT_parser___ReduceAction205[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction205 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction211 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -106337,6 +103764,8 @@ const classtable_elt_t VFT_parser___ReduceAction205[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -106350,44 +103779,44 @@ const classtable_elt_t VFT_parser___ReduceAction205[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction205 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction205___action},
+  {(bigint) 0 /* 50: ReduceAction211 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction211___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction205 < ReduceAction205: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction211 < ReduceAction211: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction205::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction205(val_t p0){
+/* 2: Attribute ReduceAction211::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction211(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction205;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction211;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction205(void)
+val_t NEW_parser___ReduceAction211(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction205;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction211;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction205(val_t p0){
+void CHECKNEW_parser___ReduceAction211(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction205;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction211;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -106400,35 +103829,36 @@ void CHECKNEW_parser___ReduceAction205(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction205_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction211_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction205_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction211_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction205();
-  INIT_ATTRIBUTES__parser___ReduceAction205(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction211();
+  INIT_ATTRIBUTES__parser___ReduceAction211(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction205(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction211(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction206[52] = {
-  {(bigint) 1571 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction212[55] = {
+  {(bigint) 1579 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction206" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction206 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction206 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1571 /* 5: ReduceAction206 < ReduceAction206: superclass typecheck marker */},
+  {(bigint) "ReduceAction212" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction212 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction212 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1579 /* 5: ReduceAction212 < ReduceAction212: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -106441,7 +103871,7 @@ const classtable_elt_t VFT_parser___ReduceAction206[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction206 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction212 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -106457,6 +103887,8 @@ const classtable_elt_t VFT_parser___ReduceAction206[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -106470,44 +103902,44 @@ const classtable_elt_t VFT_parser___ReduceAction206[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction206 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction206___action},
+  {(bigint) 0 /* 50: ReduceAction212 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction212___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction206 < ReduceAction206: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction212 < ReduceAction212: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction206::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction206(val_t p0){
+/* 2: Attribute ReduceAction212::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction212(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction206;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction212;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction206(void)
+val_t NEW_parser___ReduceAction212(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction206;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction212;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction206(val_t p0){
+void CHECKNEW_parser___ReduceAction212(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction206;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction212;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -106520,35 +103952,36 @@ void CHECKNEW_parser___ReduceAction206(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction206_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction212_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction206_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction212_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction206();
-  INIT_ATTRIBUTES__parser___ReduceAction206(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction212();
+  INIT_ATTRIBUTES__parser___ReduceAction212(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction206(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction212(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction207[52] = {
-  {(bigint) 1567 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction213[55] = {
+  {(bigint) 1575 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction207" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction207 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction207 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1567 /* 5: ReduceAction207 < ReduceAction207: superclass typecheck marker */},
+  {(bigint) "ReduceAction213" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction213 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction213 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1575 /* 5: ReduceAction213 < ReduceAction213: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -106561,7 +103994,7 @@ const classtable_elt_t VFT_parser___ReduceAction207[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction207 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction213 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -106577,6 +104010,8 @@ const classtable_elt_t VFT_parser___ReduceAction207[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -106590,44 +104025,44 @@ const classtable_elt_t VFT_parser___ReduceAction207[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction207 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction207___action},
+  {(bigint) 0 /* 50: ReduceAction213 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction213___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction207 < ReduceAction207: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction213 < ReduceAction213: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction207::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction207(val_t p0){
+/* 2: Attribute ReduceAction213::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction213(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction207;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction213;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction207(void)
+val_t NEW_parser___ReduceAction213(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction207;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction213;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction207(val_t p0){
+void CHECKNEW_parser___ReduceAction213(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction207;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction213;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -106640,35 +104075,36 @@ void CHECKNEW_parser___ReduceAction207(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction207_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction213_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction207_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction213_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction207();
-  INIT_ATTRIBUTES__parser___ReduceAction207(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction213();
+  INIT_ATTRIBUTES__parser___ReduceAction213(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction207(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction213(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction208[52] = {
-  {(bigint) 1563 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction214[55] = {
+  {(bigint) 1571 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction208" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction208 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction208 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1563 /* 5: ReduceAction208 < ReduceAction208: superclass typecheck marker */},
+  {(bigint) "ReduceAction214" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction214 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction214 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1571 /* 5: ReduceAction214 < ReduceAction214: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -106681,7 +104117,7 @@ const classtable_elt_t VFT_parser___ReduceAction208[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction208 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction214 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -106697,6 +104133,8 @@ const classtable_elt_t VFT_parser___ReduceAction208[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -106710,44 +104148,44 @@ const classtable_elt_t VFT_parser___ReduceAction208[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction208 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction208___action},
+  {(bigint) 0 /* 50: ReduceAction214 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction214___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction208 < ReduceAction208: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction214 < ReduceAction214: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction208::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction208(val_t p0){
+/* 2: Attribute ReduceAction214::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction214(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction208;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction214;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction208(void)
+val_t NEW_parser___ReduceAction214(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction208;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction214;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction208(val_t p0){
+void CHECKNEW_parser___ReduceAction214(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction208;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction214;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -106760,35 +104198,36 @@ void CHECKNEW_parser___ReduceAction208(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction208_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction214_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction208_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction214_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction208();
-  INIT_ATTRIBUTES__parser___ReduceAction208(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction214();
+  INIT_ATTRIBUTES__parser___ReduceAction214(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction208(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction214(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction209[52] = {
-  {(bigint) 1559 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction215[55] = {
+  {(bigint) 1567 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction209" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction209 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction209 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1559 /* 5: ReduceAction209 < ReduceAction209: superclass typecheck marker */},
+  {(bigint) "ReduceAction215" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction215 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction215 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1567 /* 5: ReduceAction215 < ReduceAction215: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -106801,7 +104240,7 @@ const classtable_elt_t VFT_parser___ReduceAction209[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction209 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction215 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -106817,6 +104256,8 @@ const classtable_elt_t VFT_parser___ReduceAction209[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -106830,44 +104271,44 @@ const classtable_elt_t VFT_parser___ReduceAction209[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction209 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction209___action},
+  {(bigint) 0 /* 50: ReduceAction215 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction215___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction209 < ReduceAction209: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction215 < ReduceAction215: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction209::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction209(val_t p0){
+/* 2: Attribute ReduceAction215::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction215(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction209;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction215;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction209(void)
+val_t NEW_parser___ReduceAction215(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction209;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction215;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction209(val_t p0){
+void CHECKNEW_parser___ReduceAction215(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction209;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction215;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -106880,35 +104321,36 @@ void CHECKNEW_parser___ReduceAction209(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction209_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction215_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction209_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction215_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction209();
-  INIT_ATTRIBUTES__parser___ReduceAction209(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction215();
+  INIT_ATTRIBUTES__parser___ReduceAction215(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction209(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction215(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction210[52] = {
-  {(bigint) 1551 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction216[55] = {
+  {(bigint) 1563 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction210" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction210 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction210 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1551 /* 5: ReduceAction210 < ReduceAction210: superclass typecheck marker */},
+  {(bigint) "ReduceAction216" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction216 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction216 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1563 /* 5: ReduceAction216 < ReduceAction216: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -106921,7 +104363,7 @@ const classtable_elt_t VFT_parser___ReduceAction210[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction210 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction216 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -106937,6 +104379,8 @@ const classtable_elt_t VFT_parser___ReduceAction210[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -106950,44 +104394,44 @@ const classtable_elt_t VFT_parser___ReduceAction210[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction210 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction210___action},
+  {(bigint) 0 /* 50: ReduceAction216 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction216___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction210 < ReduceAction210: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction216 < ReduceAction216: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction210::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction210(val_t p0){
+/* 2: Attribute ReduceAction216::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction216(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction210;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction216;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction210(void)
+val_t NEW_parser___ReduceAction216(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction210;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction216;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction210(val_t p0){
+void CHECKNEW_parser___ReduceAction216(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction210;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction216;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -107000,35 +104444,36 @@ void CHECKNEW_parser___ReduceAction210(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction210_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction216_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction210_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction216_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction210();
-  INIT_ATTRIBUTES__parser___ReduceAction210(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction216();
+  INIT_ATTRIBUTES__parser___ReduceAction216(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction210(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction216(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction211[52] = {
-  {(bigint) 1547 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction217[55] = {
+  {(bigint) 1559 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction211" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction211 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction211 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1547 /* 5: ReduceAction211 < ReduceAction211: superclass typecheck marker */},
+  {(bigint) "ReduceAction217" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction217 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction217 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1559 /* 5: ReduceAction217 < ReduceAction217: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -107041,7 +104486,7 @@ const classtable_elt_t VFT_parser___ReduceAction211[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction211 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction217 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -107057,6 +104502,8 @@ const classtable_elt_t VFT_parser___ReduceAction211[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -107070,44 +104517,44 @@ const classtable_elt_t VFT_parser___ReduceAction211[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction211 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction211___action},
+  {(bigint) 0 /* 50: ReduceAction217 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction217___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction211 < ReduceAction211: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction217 < ReduceAction217: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction211::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction211(val_t p0){
+/* 2: Attribute ReduceAction217::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction217(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction211;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction217;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction211(void)
+val_t NEW_parser___ReduceAction217(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction211;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction217;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction211(val_t p0){
+void CHECKNEW_parser___ReduceAction217(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction211;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction217;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -107120,35 +104567,36 @@ void CHECKNEW_parser___ReduceAction211(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction211_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction217_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction211_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction217_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction211();
-  INIT_ATTRIBUTES__parser___ReduceAction211(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction217();
+  INIT_ATTRIBUTES__parser___ReduceAction217(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction211(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction217(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction212[52] = {
-  {(bigint) 1543 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction218[55] = {
+  {(bigint) 1555 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction212" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction212 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction212 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1543 /* 5: ReduceAction212 < ReduceAction212: superclass typecheck marker */},
+  {(bigint) "ReduceAction218" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction218 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction218 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1555 /* 5: ReduceAction218 < ReduceAction218: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -107161,7 +104609,7 @@ const classtable_elt_t VFT_parser___ReduceAction212[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction212 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction218 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -107177,6 +104625,8 @@ const classtable_elt_t VFT_parser___ReduceAction212[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -107190,44 +104640,44 @@ const classtable_elt_t VFT_parser___ReduceAction212[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction212 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction212___action},
+  {(bigint) 0 /* 50: ReduceAction218 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction218___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction212 < ReduceAction212: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction218 < ReduceAction218: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction212::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction212(val_t p0){
+/* 2: Attribute ReduceAction218::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction218(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction212;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction218;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction212(void)
+val_t NEW_parser___ReduceAction218(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction212;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction218;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction212(val_t p0){
+void CHECKNEW_parser___ReduceAction218(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction212;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction218;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -107240,35 +104690,36 @@ void CHECKNEW_parser___ReduceAction212(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction212_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction218_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction212_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction218_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction212();
-  INIT_ATTRIBUTES__parser___ReduceAction212(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction218();
+  INIT_ATTRIBUTES__parser___ReduceAction218(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction212(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction218(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction213[52] = {
-  {(bigint) 1539 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction219[55] = {
+  {(bigint) 1551 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction213" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction213 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction213 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1539 /* 5: ReduceAction213 < ReduceAction213: superclass typecheck marker */},
+  {(bigint) "ReduceAction219" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction219 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction219 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1551 /* 5: ReduceAction219 < ReduceAction219: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -107281,7 +104732,7 @@ const classtable_elt_t VFT_parser___ReduceAction213[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction213 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction219 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -107297,6 +104748,8 @@ const classtable_elt_t VFT_parser___ReduceAction213[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -107310,44 +104763,44 @@ const classtable_elt_t VFT_parser___ReduceAction213[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction213 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction213___action},
+  {(bigint) 0 /* 50: ReduceAction219 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction219___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction213 < ReduceAction213: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction219 < ReduceAction219: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction213::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction213(val_t p0){
+/* 2: Attribute ReduceAction219::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction219(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction213;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction219;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction213(void)
+val_t NEW_parser___ReduceAction219(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction213;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction219;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction213(val_t p0){
+void CHECKNEW_parser___ReduceAction219(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction213;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction219;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -107360,35 +104813,36 @@ void CHECKNEW_parser___ReduceAction213(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction213_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction219_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction213_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction219_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction213();
-  INIT_ATTRIBUTES__parser___ReduceAction213(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction219();
+  INIT_ATTRIBUTES__parser___ReduceAction219(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction213(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction219(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction214[52] = {
-  {(bigint) 1535 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction220[55] = {
+  {(bigint) 1543 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction214" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction214 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction214 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1535 /* 5: ReduceAction214 < ReduceAction214: superclass typecheck marker */},
+  {(bigint) "ReduceAction220" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction220 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction220 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1543 /* 5: ReduceAction220 < ReduceAction220: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -107401,7 +104855,7 @@ const classtable_elt_t VFT_parser___ReduceAction214[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction214 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction220 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -107417,6 +104871,8 @@ const classtable_elt_t VFT_parser___ReduceAction214[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -107430,44 +104886,44 @@ const classtable_elt_t VFT_parser___ReduceAction214[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction214 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction214___action},
+  {(bigint) 0 /* 50: ReduceAction220 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction220___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction214 < ReduceAction214: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction220 < ReduceAction220: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction214::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction214(val_t p0){
+/* 2: Attribute ReduceAction220::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction220(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction214;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction220;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction214(void)
+val_t NEW_parser___ReduceAction220(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction214;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction220;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction214(val_t p0){
+void CHECKNEW_parser___ReduceAction220(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction214;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction220;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -107480,35 +104936,36 @@ void CHECKNEW_parser___ReduceAction214(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction214_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction220_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction214_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction220_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction214();
-  INIT_ATTRIBUTES__parser___ReduceAction214(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction220();
+  INIT_ATTRIBUTES__parser___ReduceAction220(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction214(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction220(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction215[52] = {
-  {(bigint) 1531 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction221[55] = {
+  {(bigint) 1539 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction215" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction215 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction215 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1531 /* 5: ReduceAction215 < ReduceAction215: superclass typecheck marker */},
+  {(bigint) "ReduceAction221" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction221 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction221 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1539 /* 5: ReduceAction221 < ReduceAction221: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -107521,7 +104978,7 @@ const classtable_elt_t VFT_parser___ReduceAction215[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction215 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction221 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -107537,6 +104994,8 @@ const classtable_elt_t VFT_parser___ReduceAction215[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -107550,44 +105009,44 @@ const classtable_elt_t VFT_parser___ReduceAction215[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction215 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction215___action},
+  {(bigint) 0 /* 50: ReduceAction221 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction221___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction215 < ReduceAction215: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction221 < ReduceAction221: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction215::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction215(val_t p0){
+/* 2: Attribute ReduceAction221::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction221(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction215;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction221;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction215(void)
+val_t NEW_parser___ReduceAction221(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction215;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction221;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction215(val_t p0){
+void CHECKNEW_parser___ReduceAction221(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction215;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction221;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -107600,35 +105059,36 @@ void CHECKNEW_parser___ReduceAction215(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction215_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction221_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction215_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction221_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction215();
-  INIT_ATTRIBUTES__parser___ReduceAction215(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction221();
+  INIT_ATTRIBUTES__parser___ReduceAction221(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction215(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction221(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction216[52] = {
-  {(bigint) 1527 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction222[55] = {
+  {(bigint) 1535 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction216" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction216 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction216 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1527 /* 5: ReduceAction216 < ReduceAction216: superclass typecheck marker */},
+  {(bigint) "ReduceAction222" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction222 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction222 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1535 /* 5: ReduceAction222 < ReduceAction222: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -107641,7 +105101,7 @@ const classtable_elt_t VFT_parser___ReduceAction216[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction216 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction222 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -107657,6 +105117,8 @@ const classtable_elt_t VFT_parser___ReduceAction216[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -107670,44 +105132,44 @@ const classtable_elt_t VFT_parser___ReduceAction216[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction216 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction216___action},
+  {(bigint) 0 /* 50: ReduceAction222 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction222___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction216 < ReduceAction216: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction222 < ReduceAction222: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction216::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction216(val_t p0){
+/* 2: Attribute ReduceAction222::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction222(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction216;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction222;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction216(void)
+val_t NEW_parser___ReduceAction222(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction216;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction222;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction216(val_t p0){
+void CHECKNEW_parser___ReduceAction222(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction216;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction222;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -107720,35 +105182,36 @@ void CHECKNEW_parser___ReduceAction216(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction216_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction222_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction216_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction222_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction216();
-  INIT_ATTRIBUTES__parser___ReduceAction216(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction222();
+  INIT_ATTRIBUTES__parser___ReduceAction222(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction216(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction222(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction217[52] = {
-  {(bigint) 1523 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction223[55] = {
+  {(bigint) 1531 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction217" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction217 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction217 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1523 /* 5: ReduceAction217 < ReduceAction217: superclass typecheck marker */},
+  {(bigint) "ReduceAction223" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction223 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction223 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1531 /* 5: ReduceAction223 < ReduceAction223: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -107761,7 +105224,7 @@ const classtable_elt_t VFT_parser___ReduceAction217[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction217 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction223 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -107777,6 +105240,8 @@ const classtable_elt_t VFT_parser___ReduceAction217[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -107790,44 +105255,44 @@ const classtable_elt_t VFT_parser___ReduceAction217[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction217 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction217___action},
+  {(bigint) 0 /* 50: ReduceAction223 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction223___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction217 < ReduceAction217: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction223 < ReduceAction223: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction217::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction217(val_t p0){
+/* 2: Attribute ReduceAction223::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction223(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction217;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction223;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction217(void)
+val_t NEW_parser___ReduceAction223(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction217;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction223;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction217(val_t p0){
+void CHECKNEW_parser___ReduceAction223(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction217;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction223;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -107840,35 +105305,36 @@ void CHECKNEW_parser___ReduceAction217(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction217_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction223_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction217_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction223_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction217();
-  INIT_ATTRIBUTES__parser___ReduceAction217(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction223();
+  INIT_ATTRIBUTES__parser___ReduceAction223(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction217(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction223(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction218[52] = {
-  {(bigint) 1519 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction225[55] = {
+  {(bigint) 1527 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction218" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction218 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction218 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1519 /* 5: ReduceAction218 < ReduceAction218: superclass typecheck marker */},
+  {(bigint) "ReduceAction225" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction225 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction225 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1527 /* 5: ReduceAction225 < ReduceAction225: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -107881,7 +105347,7 @@ const classtable_elt_t VFT_parser___ReduceAction218[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction218 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction225 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -107897,6 +105363,8 @@ const classtable_elt_t VFT_parser___ReduceAction218[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -107910,44 +105378,44 @@ const classtable_elt_t VFT_parser___ReduceAction218[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction218 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction218___action},
+  {(bigint) 0 /* 50: ReduceAction225 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction225___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction218 < ReduceAction218: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction225 < ReduceAction225: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction218::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction218(val_t p0){
+/* 2: Attribute ReduceAction225::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction225(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction218;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction225;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction218(void)
+val_t NEW_parser___ReduceAction225(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction218;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction225;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction218(val_t p0){
+void CHECKNEW_parser___ReduceAction225(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction218;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction225;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -107960,35 +105428,36 @@ void CHECKNEW_parser___ReduceAction218(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction218_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction225_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction218_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction225_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction218();
-  INIT_ATTRIBUTES__parser___ReduceAction218(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction225();
+  INIT_ATTRIBUTES__parser___ReduceAction225(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction218(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction225(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction220[52] = {
-  {(bigint) 1511 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction226[55] = {
+  {(bigint) 1523 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction220" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction220 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction220 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1511 /* 5: ReduceAction220 < ReduceAction220: superclass typecheck marker */},
+  {(bigint) "ReduceAction226" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction226 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction226 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1523 /* 5: ReduceAction226 < ReduceAction226: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -108001,7 +105470,7 @@ const classtable_elt_t VFT_parser___ReduceAction220[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction220 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction226 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -108017,6 +105486,8 @@ const classtable_elt_t VFT_parser___ReduceAction220[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -108030,44 +105501,44 @@ const classtable_elt_t VFT_parser___ReduceAction220[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction220 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction220___action},
+  {(bigint) 0 /* 50: ReduceAction226 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction226___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction220 < ReduceAction220: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction226 < ReduceAction226: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction220::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction220(val_t p0){
+/* 2: Attribute ReduceAction226::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction226(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction220;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction226;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction220(void)
+val_t NEW_parser___ReduceAction226(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction220;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction226;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction220(val_t p0){
+void CHECKNEW_parser___ReduceAction226(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction220;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction226;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -108080,35 +105551,36 @@ void CHECKNEW_parser___ReduceAction220(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction220_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction226_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction220_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction226_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction220();
-  INIT_ATTRIBUTES__parser___ReduceAction220(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction226();
+  INIT_ATTRIBUTES__parser___ReduceAction226(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction220(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction226(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction221[52] = {
-  {(bigint) 1507 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction227[55] = {
+  {(bigint) 1519 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction221" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction221 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction221 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1507 /* 5: ReduceAction221 < ReduceAction221: superclass typecheck marker */},
+  {(bigint) "ReduceAction227" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction227 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction227 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1519 /* 5: ReduceAction227 < ReduceAction227: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -108121,7 +105593,7 @@ const classtable_elt_t VFT_parser___ReduceAction221[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction221 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction227 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -108137,6 +105609,8 @@ const classtable_elt_t VFT_parser___ReduceAction221[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -108150,44 +105624,44 @@ const classtable_elt_t VFT_parser___ReduceAction221[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction221 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction221___action},
+  {(bigint) 0 /* 50: ReduceAction227 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction227___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction221 < ReduceAction221: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction227 < ReduceAction227: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction221::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction221(val_t p0){
+/* 2: Attribute ReduceAction227::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction227(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction221;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction227;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction221(void)
+val_t NEW_parser___ReduceAction227(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction221;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction227;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction221(val_t p0){
+void CHECKNEW_parser___ReduceAction227(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction221;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction227;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -108200,35 +105674,36 @@ void CHECKNEW_parser___ReduceAction221(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction221_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction227_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction221_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction227_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction221();
-  INIT_ATTRIBUTES__parser___ReduceAction221(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction227();
+  INIT_ATTRIBUTES__parser___ReduceAction227(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction221(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction227(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction222[52] = {
-  {(bigint) 1503 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction228[55] = {
+  {(bigint) 1515 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction222" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction222 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction222 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1503 /* 5: ReduceAction222 < ReduceAction222: superclass typecheck marker */},
+  {(bigint) "ReduceAction228" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction228 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction228 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1515 /* 5: ReduceAction228 < ReduceAction228: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -108241,7 +105716,7 @@ const classtable_elt_t VFT_parser___ReduceAction222[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction222 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction228 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -108257,6 +105732,8 @@ const classtable_elt_t VFT_parser___ReduceAction222[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -108270,44 +105747,44 @@ const classtable_elt_t VFT_parser___ReduceAction222[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction222 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction222___action},
+  {(bigint) 0 /* 50: ReduceAction228 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction228___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction222 < ReduceAction222: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction228 < ReduceAction228: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction222::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction222(val_t p0){
+/* 2: Attribute ReduceAction228::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction228(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction222;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction228;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction222(void)
+val_t NEW_parser___ReduceAction228(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction222;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction228;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction222(val_t p0){
+void CHECKNEW_parser___ReduceAction228(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction222;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction228;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -108320,35 +105797,36 @@ void CHECKNEW_parser___ReduceAction222(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction222_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction228_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction222_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction228_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction222();
-  INIT_ATTRIBUTES__parser___ReduceAction222(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction228();
+  INIT_ATTRIBUTES__parser___ReduceAction228(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction222(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction228(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction223[52] = {
-  {(bigint) 1499 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction229[55] = {
+  {(bigint) 1511 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction223" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction223 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction223 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1499 /* 5: ReduceAction223 < ReduceAction223: superclass typecheck marker */},
+  {(bigint) "ReduceAction229" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction229 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction229 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1511 /* 5: ReduceAction229 < ReduceAction229: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -108361,7 +105839,7 @@ const classtable_elt_t VFT_parser___ReduceAction223[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction223 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction229 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -108377,6 +105855,8 @@ const classtable_elt_t VFT_parser___ReduceAction223[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -108390,44 +105870,44 @@ const classtable_elt_t VFT_parser___ReduceAction223[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction223 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction223___action},
+  {(bigint) 0 /* 50: ReduceAction229 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction229___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction223 < ReduceAction223: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction229 < ReduceAction229: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction223::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction223(val_t p0){
+/* 2: Attribute ReduceAction229::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction229(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction223;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction229;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction223(void)
+val_t NEW_parser___ReduceAction229(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction223;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction229;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction223(val_t p0){
+void CHECKNEW_parser___ReduceAction229(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction223;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction229;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -108440,35 +105920,36 @@ void CHECKNEW_parser___ReduceAction223(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction223_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction229_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction223_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction229_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction223();
-  INIT_ATTRIBUTES__parser___ReduceAction223(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction229();
+  INIT_ATTRIBUTES__parser___ReduceAction229(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction223(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction229(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction224[52] = {
-  {(bigint) 1495 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction230[55] = {
+  {(bigint) 1503 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction224" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction224 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction224 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1495 /* 5: ReduceAction224 < ReduceAction224: superclass typecheck marker */},
+  {(bigint) "ReduceAction230" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction230 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction230 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1503 /* 5: ReduceAction230 < ReduceAction230: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -108481,7 +105962,7 @@ const classtable_elt_t VFT_parser___ReduceAction224[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction224 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction230 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -108497,6 +105978,8 @@ const classtable_elt_t VFT_parser___ReduceAction224[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -108510,44 +105993,44 @@ const classtable_elt_t VFT_parser___ReduceAction224[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction224 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction224___action},
+  {(bigint) 0 /* 50: ReduceAction230 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction230___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction224 < ReduceAction224: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction230 < ReduceAction230: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction224::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction224(val_t p0){
+/* 2: Attribute ReduceAction230::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction230(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction224;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction230;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction224(void)
+val_t NEW_parser___ReduceAction230(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction224;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction230;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction224(val_t p0){
+void CHECKNEW_parser___ReduceAction230(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction224;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction230;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -108560,35 +106043,36 @@ void CHECKNEW_parser___ReduceAction224(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction224_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction230_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction224_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction230_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction224();
-  INIT_ATTRIBUTES__parser___ReduceAction224(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction230();
+  INIT_ATTRIBUTES__parser___ReduceAction230(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction224(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction230(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction225[52] = {
-  {(bigint) 1491 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction231[55] = {
+  {(bigint) 1499 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction225" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction225 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction225 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1491 /* 5: ReduceAction225 < ReduceAction225: superclass typecheck marker */},
+  {(bigint) "ReduceAction231" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction231 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction231 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1499 /* 5: ReduceAction231 < ReduceAction231: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -108601,7 +106085,7 @@ const classtable_elt_t VFT_parser___ReduceAction225[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction225 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction231 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -108617,6 +106101,8 @@ const classtable_elt_t VFT_parser___ReduceAction225[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -108630,44 +106116,44 @@ const classtable_elt_t VFT_parser___ReduceAction225[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction225 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction225___action},
+  {(bigint) 0 /* 50: ReduceAction231 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction231___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction225 < ReduceAction225: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction231 < ReduceAction231: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction225::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction225(val_t p0){
+/* 2: Attribute ReduceAction231::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction231(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction225;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction231;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction225(void)
+val_t NEW_parser___ReduceAction231(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction225;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction231;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction225(val_t p0){
+void CHECKNEW_parser___ReduceAction231(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction225;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction231;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -108680,35 +106166,36 @@ void CHECKNEW_parser___ReduceAction225(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction225_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction231_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction225_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction231_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction225();
-  INIT_ATTRIBUTES__parser___ReduceAction225(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction231();
+  INIT_ATTRIBUTES__parser___ReduceAction231(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction225(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction231(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction226[52] = {
-  {(bigint) 1487 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction232[55] = {
+  {(bigint) 1495 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction226" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction226 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction226 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1487 /* 5: ReduceAction226 < ReduceAction226: superclass typecheck marker */},
+  {(bigint) "ReduceAction232" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction232 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction232 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1495 /* 5: ReduceAction232 < ReduceAction232: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -108721,7 +106208,7 @@ const classtable_elt_t VFT_parser___ReduceAction226[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction226 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction232 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -108737,6 +106224,8 @@ const classtable_elt_t VFT_parser___ReduceAction226[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -108750,44 +106239,44 @@ const classtable_elt_t VFT_parser___ReduceAction226[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction226 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction226___action},
+  {(bigint) 0 /* 50: ReduceAction232 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction232___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction226 < ReduceAction226: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction232 < ReduceAction232: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction226::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction226(val_t p0){
+/* 2: Attribute ReduceAction232::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction232(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction226;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction232;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction226(void)
+val_t NEW_parser___ReduceAction232(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction226;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction232;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction226(val_t p0){
+void CHECKNEW_parser___ReduceAction232(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction226;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction232;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -108800,35 +106289,36 @@ void CHECKNEW_parser___ReduceAction226(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction226_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction232_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction226_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction232_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction226();
-  INIT_ATTRIBUTES__parser___ReduceAction226(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction232();
+  INIT_ATTRIBUTES__parser___ReduceAction232(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction226(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction232(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction227[52] = {
-  {(bigint) 1483 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction233[55] = {
+  {(bigint) 1491 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction227" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction227 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction227 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1483 /* 5: ReduceAction227 < ReduceAction227: superclass typecheck marker */},
+  {(bigint) "ReduceAction233" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction233 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction233 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1491 /* 5: ReduceAction233 < ReduceAction233: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -108841,7 +106331,7 @@ const classtable_elt_t VFT_parser___ReduceAction227[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction227 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction233 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -108857,6 +106347,8 @@ const classtable_elt_t VFT_parser___ReduceAction227[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -108870,44 +106362,44 @@ const classtable_elt_t VFT_parser___ReduceAction227[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction227 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction227___action},
+  {(bigint) 0 /* 50: ReduceAction233 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction233___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction227 < ReduceAction227: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction233 < ReduceAction233: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction227::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction227(val_t p0){
+/* 2: Attribute ReduceAction233::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction233(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction227;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction233;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction227(void)
+val_t NEW_parser___ReduceAction233(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction227;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction233;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction227(val_t p0){
+void CHECKNEW_parser___ReduceAction233(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction227;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction233;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -108920,35 +106412,36 @@ void CHECKNEW_parser___ReduceAction227(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction227_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction233_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction227_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction233_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction227();
-  INIT_ATTRIBUTES__parser___ReduceAction227(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction233();
+  INIT_ATTRIBUTES__parser___ReduceAction233(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction227(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction233(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction228[52] = {
-  {(bigint) 1479 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction234[55] = {
+  {(bigint) 1487 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction228" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction228 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction228 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1479 /* 5: ReduceAction228 < ReduceAction228: superclass typecheck marker */},
+  {(bigint) "ReduceAction234" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction234 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction234 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1487 /* 5: ReduceAction234 < ReduceAction234: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -108961,7 +106454,7 @@ const classtable_elt_t VFT_parser___ReduceAction228[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction228 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction234 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -108977,6 +106470,8 @@ const classtable_elt_t VFT_parser___ReduceAction228[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -108990,44 +106485,44 @@ const classtable_elt_t VFT_parser___ReduceAction228[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction228 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction228___action},
+  {(bigint) 0 /* 50: ReduceAction234 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction234___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction228 < ReduceAction228: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction234 < ReduceAction234: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction228::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction228(val_t p0){
+/* 2: Attribute ReduceAction234::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction234(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction228;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction234;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction228(void)
+val_t NEW_parser___ReduceAction234(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction228;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction234;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction228(val_t p0){
+void CHECKNEW_parser___ReduceAction234(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction228;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction234;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -109040,35 +106535,36 @@ void CHECKNEW_parser___ReduceAction228(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction228_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction234_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction228_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction234_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction228();
-  INIT_ATTRIBUTES__parser___ReduceAction228(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction234();
+  INIT_ATTRIBUTES__parser___ReduceAction234(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction228(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction234(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction229[52] = {
-  {(bigint) 1475 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction235[55] = {
+  {(bigint) 1483 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction229" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction229 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction229 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1475 /* 5: ReduceAction229 < ReduceAction229: superclass typecheck marker */},
+  {(bigint) "ReduceAction235" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction235 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction235 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1483 /* 5: ReduceAction235 < ReduceAction235: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -109081,7 +106577,7 @@ const classtable_elt_t VFT_parser___ReduceAction229[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction229 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction235 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -109097,6 +106593,8 @@ const classtable_elt_t VFT_parser___ReduceAction229[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -109110,44 +106608,44 @@ const classtable_elt_t VFT_parser___ReduceAction229[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction229 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction229___action},
+  {(bigint) 0 /* 50: ReduceAction235 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction235___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction229 < ReduceAction229: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction235 < ReduceAction235: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction229::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction229(val_t p0){
+/* 2: Attribute ReduceAction235::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction235(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction229;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction235;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction229(void)
+val_t NEW_parser___ReduceAction235(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction229;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction235;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction229(val_t p0){
+void CHECKNEW_parser___ReduceAction235(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction229;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction235;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -109160,35 +106658,36 @@ void CHECKNEW_parser___ReduceAction229(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction229_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction235_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction229_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction235_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction229();
-  INIT_ATTRIBUTES__parser___ReduceAction229(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction235();
+  INIT_ATTRIBUTES__parser___ReduceAction235(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction229(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction235(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction230[52] = {
-  {(bigint) 1467 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction236[55] = {
+  {(bigint) 1479 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction230" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction230 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction230 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1467 /* 5: ReduceAction230 < ReduceAction230: superclass typecheck marker */},
+  {(bigint) "ReduceAction236" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction236 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction236 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1479 /* 5: ReduceAction236 < ReduceAction236: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -109201,7 +106700,7 @@ const classtable_elt_t VFT_parser___ReduceAction230[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction230 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction236 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -109217,6 +106716,8 @@ const classtable_elt_t VFT_parser___ReduceAction230[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -109230,44 +106731,44 @@ const classtable_elt_t VFT_parser___ReduceAction230[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction230 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction230___action},
+  {(bigint) 0 /* 50: ReduceAction236 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction236___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction230 < ReduceAction230: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction236 < ReduceAction236: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction230::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction230(val_t p0){
+/* 2: Attribute ReduceAction236::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction236(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction230;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction236;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction230(void)
+val_t NEW_parser___ReduceAction236(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction230;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction236;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction230(val_t p0){
+void CHECKNEW_parser___ReduceAction236(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction230;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction236;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -109280,35 +106781,36 @@ void CHECKNEW_parser___ReduceAction230(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction230_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction236_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction230_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction236_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction230();
-  INIT_ATTRIBUTES__parser___ReduceAction230(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction236();
+  INIT_ATTRIBUTES__parser___ReduceAction236(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction230(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction236(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction231[52] = {
-  {(bigint) 1463 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction237[55] = {
+  {(bigint) 1475 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction231" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction231 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction231 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1463 /* 5: ReduceAction231 < ReduceAction231: superclass typecheck marker */},
+  {(bigint) "ReduceAction237" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction237 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction237 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1475 /* 5: ReduceAction237 < ReduceAction237: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -109321,7 +106823,7 @@ const classtable_elt_t VFT_parser___ReduceAction231[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction231 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction237 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -109337,6 +106839,8 @@ const classtable_elt_t VFT_parser___ReduceAction231[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -109350,44 +106854,44 @@ const classtable_elt_t VFT_parser___ReduceAction231[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction231 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction231___action},
+  {(bigint) 0 /* 50: ReduceAction237 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction237___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction231 < ReduceAction231: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction237 < ReduceAction237: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction231::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction231(val_t p0){
+/* 2: Attribute ReduceAction237::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction237(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction231;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction237;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction231(void)
+val_t NEW_parser___ReduceAction237(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction231;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction237;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction231(val_t p0){
+void CHECKNEW_parser___ReduceAction237(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction231;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction237;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -109400,35 +106904,36 @@ void CHECKNEW_parser___ReduceAction231(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction231_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction237_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction231_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction237_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction231();
-  INIT_ATTRIBUTES__parser___ReduceAction231(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction237();
+  INIT_ATTRIBUTES__parser___ReduceAction237(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction231(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction237(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction232[52] = {
-  {(bigint) 1459 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction238[55] = {
+  {(bigint) 1471 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction232" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction232 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction232 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1459 /* 5: ReduceAction232 < ReduceAction232: superclass typecheck marker */},
+  {(bigint) "ReduceAction238" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction238 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction238 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1471 /* 5: ReduceAction238 < ReduceAction238: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -109441,7 +106946,7 @@ const classtable_elt_t VFT_parser___ReduceAction232[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction232 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction238 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -109457,6 +106962,8 @@ const classtable_elt_t VFT_parser___ReduceAction232[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -109470,44 +106977,44 @@ const classtable_elt_t VFT_parser___ReduceAction232[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction232 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction232___action},
+  {(bigint) 0 /* 50: ReduceAction238 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction238___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction232 < ReduceAction232: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction238 < ReduceAction238: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction232::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction232(val_t p0){
+/* 2: Attribute ReduceAction238::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction238(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction232;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction238;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction232(void)
+val_t NEW_parser___ReduceAction238(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction232;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction238;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction232(val_t p0){
+void CHECKNEW_parser___ReduceAction238(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction232;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction238;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -109520,35 +107027,36 @@ void CHECKNEW_parser___ReduceAction232(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction232_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction238_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction232_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction238_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction232();
-  INIT_ATTRIBUTES__parser___ReduceAction232(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction238();
+  INIT_ATTRIBUTES__parser___ReduceAction238(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction232(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction238(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction233[52] = {
-  {(bigint) 1455 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction240[55] = {
+  {(bigint) 1463 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction233" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction233 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction233 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1455 /* 5: ReduceAction233 < ReduceAction233: superclass typecheck marker */},
+  {(bigint) "ReduceAction240" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction240 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction240 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1463 /* 5: ReduceAction240 < ReduceAction240: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -109561,7 +107069,7 @@ const classtable_elt_t VFT_parser___ReduceAction233[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction233 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction240 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -109577,6 +107085,8 @@ const classtable_elt_t VFT_parser___ReduceAction233[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -109590,44 +107100,44 @@ const classtable_elt_t VFT_parser___ReduceAction233[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction233 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction233___action},
+  {(bigint) 0 /* 50: ReduceAction240 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction240___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction233 < ReduceAction233: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction240 < ReduceAction240: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction233::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction233(val_t p0){
+/* 2: Attribute ReduceAction240::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction240(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction233;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction240;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction233(void)
+val_t NEW_parser___ReduceAction240(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction233;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction240;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction233(val_t p0){
+void CHECKNEW_parser___ReduceAction240(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction233;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction240;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -109640,35 +107150,36 @@ void CHECKNEW_parser___ReduceAction233(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction233_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction240_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction233_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction240_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction233();
-  INIT_ATTRIBUTES__parser___ReduceAction233(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction240();
+  INIT_ATTRIBUTES__parser___ReduceAction240(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction233(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction240(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction235[52] = {
-  {(bigint) 1451 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction241[55] = {
+  {(bigint) 1459 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction235" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction235 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction235 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1451 /* 5: ReduceAction235 < ReduceAction235: superclass typecheck marker */},
+  {(bigint) "ReduceAction241" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction241 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction241 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1459 /* 5: ReduceAction241 < ReduceAction241: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -109681,7 +107192,7 @@ const classtable_elt_t VFT_parser___ReduceAction235[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction235 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction241 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -109697,6 +107208,8 @@ const classtable_elt_t VFT_parser___ReduceAction235[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -109710,44 +107223,44 @@ const classtable_elt_t VFT_parser___ReduceAction235[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction235 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction235___action},
+  {(bigint) 0 /* 50: ReduceAction241 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction241___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction235 < ReduceAction235: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction241 < ReduceAction241: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction235::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction235(val_t p0){
+/* 2: Attribute ReduceAction241::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction241(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction235;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction241;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction235(void)
+val_t NEW_parser___ReduceAction241(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction235;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction241;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction235(val_t p0){
+void CHECKNEW_parser___ReduceAction241(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction235;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction241;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -109760,35 +107273,36 @@ void CHECKNEW_parser___ReduceAction235(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction235_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction241_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction235_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction241_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction235();
-  INIT_ATTRIBUTES__parser___ReduceAction235(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction241();
+  INIT_ATTRIBUTES__parser___ReduceAction241(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction235(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction241(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction236[52] = {
-  {(bigint) 1447 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction242[55] = {
+  {(bigint) 1455 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction236" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction236 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction236 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1447 /* 5: ReduceAction236 < ReduceAction236: superclass typecheck marker */},
+  {(bigint) "ReduceAction242" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction242 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction242 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1455 /* 5: ReduceAction242 < ReduceAction242: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -109801,7 +107315,7 @@ const classtable_elt_t VFT_parser___ReduceAction236[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction236 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction242 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -109817,6 +107331,8 @@ const classtable_elt_t VFT_parser___ReduceAction236[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -109830,44 +107346,44 @@ const classtable_elt_t VFT_parser___ReduceAction236[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction236 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction236___action},
+  {(bigint) 0 /* 50: ReduceAction242 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction242___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction236 < ReduceAction236: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction242 < ReduceAction242: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction236::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction236(val_t p0){
+/* 2: Attribute ReduceAction242::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction242(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction236;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction242;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction236(void)
+val_t NEW_parser___ReduceAction242(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction236;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction242;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction236(val_t p0){
+void CHECKNEW_parser___ReduceAction242(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction236;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction242;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -109880,35 +107396,36 @@ void CHECKNEW_parser___ReduceAction236(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction236_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction242_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction236_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction242_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction236();
-  INIT_ATTRIBUTES__parser___ReduceAction236(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction242();
+  INIT_ATTRIBUTES__parser___ReduceAction242(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction236(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction242(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction237[52] = {
-  {(bigint) 1443 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction243[55] = {
+  {(bigint) 1451 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction237" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction237 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction237 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1443 /* 5: ReduceAction237 < ReduceAction237: superclass typecheck marker */},
+  {(bigint) "ReduceAction243" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction243 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction243 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1451 /* 5: ReduceAction243 < ReduceAction243: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -109921,7 +107438,7 @@ const classtable_elt_t VFT_parser___ReduceAction237[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction237 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction243 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -109937,6 +107454,8 @@ const classtable_elt_t VFT_parser___ReduceAction237[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -109950,44 +107469,44 @@ const classtable_elt_t VFT_parser___ReduceAction237[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction237 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction237___action},
+  {(bigint) 0 /* 50: ReduceAction243 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction243___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction237 < ReduceAction237: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction243 < ReduceAction243: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction237::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction237(val_t p0){
+/* 2: Attribute ReduceAction243::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction243(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction237;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction243;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction237(void)
+val_t NEW_parser___ReduceAction243(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction237;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction243;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction237(val_t p0){
+void CHECKNEW_parser___ReduceAction243(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction237;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction243;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -110000,35 +107519,36 @@ void CHECKNEW_parser___ReduceAction237(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction237_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction243_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction237_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction243_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction237();
-  INIT_ATTRIBUTES__parser___ReduceAction237(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction243();
+  INIT_ATTRIBUTES__parser___ReduceAction243(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction237(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction243(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction238[52] = {
-  {(bigint) 1439 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction244[55] = {
+  {(bigint) 1447 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction238" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction238 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction238 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1439 /* 5: ReduceAction238 < ReduceAction238: superclass typecheck marker */},
+  {(bigint) "ReduceAction244" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction244 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction244 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1447 /* 5: ReduceAction244 < ReduceAction244: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -110041,7 +107561,7 @@ const classtable_elt_t VFT_parser___ReduceAction238[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction238 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction244 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -110057,6 +107577,8 @@ const classtable_elt_t VFT_parser___ReduceAction238[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -110070,44 +107592,44 @@ const classtable_elt_t VFT_parser___ReduceAction238[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction238 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction238___action},
+  {(bigint) 0 /* 50: ReduceAction244 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction244___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction238 < ReduceAction238: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction244 < ReduceAction244: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction238::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction238(val_t p0){
+/* 2: Attribute ReduceAction244::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction244(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction238;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction244;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction238(void)
+val_t NEW_parser___ReduceAction244(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction238;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction244;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction238(val_t p0){
+void CHECKNEW_parser___ReduceAction244(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction238;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction244;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -110120,35 +107642,36 @@ void CHECKNEW_parser___ReduceAction238(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction238_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction244_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction238_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction244_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction238();
-  INIT_ATTRIBUTES__parser___ReduceAction238(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction244();
+  INIT_ATTRIBUTES__parser___ReduceAction244(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction238(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction244(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction239[52] = {
-  {(bigint) 1435 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction245[55] = {
+  {(bigint) 1443 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction239" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction239 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction239 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1435 /* 5: ReduceAction239 < ReduceAction239: superclass typecheck marker */},
+  {(bigint) "ReduceAction245" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction245 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction245 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1443 /* 5: ReduceAction245 < ReduceAction245: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -110161,7 +107684,7 @@ const classtable_elt_t VFT_parser___ReduceAction239[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction239 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction245 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -110177,6 +107700,8 @@ const classtable_elt_t VFT_parser___ReduceAction239[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -110190,44 +107715,44 @@ const classtable_elt_t VFT_parser___ReduceAction239[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction239 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction239___action},
+  {(bigint) 0 /* 50: ReduceAction245 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction245___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction239 < ReduceAction239: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction245 < ReduceAction245: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction239::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction239(val_t p0){
+/* 2: Attribute ReduceAction245::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction245(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction239;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction245;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction239(void)
+val_t NEW_parser___ReduceAction245(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction239;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction245;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction239(val_t p0){
+void CHECKNEW_parser___ReduceAction245(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction239;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction245;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -110240,35 +107765,36 @@ void CHECKNEW_parser___ReduceAction239(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction239_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction245_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction239_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction245_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction239();
-  INIT_ATTRIBUTES__parser___ReduceAction239(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction245();
+  INIT_ATTRIBUTES__parser___ReduceAction245(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction239(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction245(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction240[52] = {
-  {(bigint) 1427 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction246[55] = {
+  {(bigint) 1439 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction240" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction240 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction240 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1427 /* 5: ReduceAction240 < ReduceAction240: superclass typecheck marker */},
+  {(bigint) "ReduceAction246" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction246 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction246 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1439 /* 5: ReduceAction246 < ReduceAction246: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -110281,7 +107807,7 @@ const classtable_elt_t VFT_parser___ReduceAction240[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction240 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction246 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -110297,6 +107823,8 @@ const classtable_elt_t VFT_parser___ReduceAction240[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -110310,44 +107838,44 @@ const classtable_elt_t VFT_parser___ReduceAction240[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction240 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction240___action},
+  {(bigint) 0 /* 50: ReduceAction246 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction246___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction240 < ReduceAction240: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction246 < ReduceAction246: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction240::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction240(val_t p0){
+/* 2: Attribute ReduceAction246::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction246(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction240;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction246;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction240(void)
+val_t NEW_parser___ReduceAction246(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction240;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction246;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction240(val_t p0){
+void CHECKNEW_parser___ReduceAction246(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction240;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction246;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -110360,35 +107888,36 @@ void CHECKNEW_parser___ReduceAction240(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction240_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction246_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction240_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction246_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction240();
-  INIT_ATTRIBUTES__parser___ReduceAction240(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction246();
+  INIT_ATTRIBUTES__parser___ReduceAction246(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction240(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction246(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction241[52] = {
-  {(bigint) 1423 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction247[55] = {
+  {(bigint) 1435 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction241" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction241 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction241 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1423 /* 5: ReduceAction241 < ReduceAction241: superclass typecheck marker */},
+  {(bigint) "ReduceAction247" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction247 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction247 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1435 /* 5: ReduceAction247 < ReduceAction247: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -110401,7 +107930,7 @@ const classtable_elt_t VFT_parser___ReduceAction241[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction241 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction247 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -110417,6 +107946,8 @@ const classtable_elt_t VFT_parser___ReduceAction241[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -110430,44 +107961,44 @@ const classtable_elt_t VFT_parser___ReduceAction241[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction241 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction241___action},
+  {(bigint) 0 /* 50: ReduceAction247 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction247___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction241 < ReduceAction241: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction247 < ReduceAction247: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction241::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction241(val_t p0){
+/* 2: Attribute ReduceAction247::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction247(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction241;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction247;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction241(void)
+val_t NEW_parser___ReduceAction247(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction241;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction247;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction241(val_t p0){
+void CHECKNEW_parser___ReduceAction247(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction241;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction247;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -110480,35 +108011,36 @@ void CHECKNEW_parser___ReduceAction241(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction241_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction247_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction241_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction247_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction241();
-  INIT_ATTRIBUTES__parser___ReduceAction241(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction247();
+  INIT_ATTRIBUTES__parser___ReduceAction247(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction241(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction247(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction242[52] = {
-  {(bigint) 1419 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction248[55] = {
+  {(bigint) 1431 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction242" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction242 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction242 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1419 /* 5: ReduceAction242 < ReduceAction242: superclass typecheck marker */},
+  {(bigint) "ReduceAction248" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction248 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction248 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1431 /* 5: ReduceAction248 < ReduceAction248: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -110521,7 +108053,7 @@ const classtable_elt_t VFT_parser___ReduceAction242[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction242 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction248 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -110537,6 +108069,8 @@ const classtable_elt_t VFT_parser___ReduceAction242[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -110550,44 +108084,44 @@ const classtable_elt_t VFT_parser___ReduceAction242[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction242 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction242___action},
+  {(bigint) 0 /* 50: ReduceAction248 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction248___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction242 < ReduceAction242: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction248 < ReduceAction248: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction242::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction242(val_t p0){
+/* 2: Attribute ReduceAction248::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction248(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction242;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction248;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction242(void)
+val_t NEW_parser___ReduceAction248(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction242;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction248;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction242(val_t p0){
+void CHECKNEW_parser___ReduceAction248(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction242;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction248;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -110600,35 +108134,36 @@ void CHECKNEW_parser___ReduceAction242(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction242_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction248_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction242_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction248_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction242();
-  INIT_ATTRIBUTES__parser___ReduceAction242(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction248();
+  INIT_ATTRIBUTES__parser___ReduceAction248(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction242(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction248(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction243[52] = {
-  {(bigint) 1415 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction249[55] = {
+  {(bigint) 1427 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction243" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction243 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction243 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1415 /* 5: ReduceAction243 < ReduceAction243: superclass typecheck marker */},
+  {(bigint) "ReduceAction249" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction249 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction249 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1427 /* 5: ReduceAction249 < ReduceAction249: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -110641,7 +108176,7 @@ const classtable_elt_t VFT_parser___ReduceAction243[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction243 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction249 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -110657,6 +108192,8 @@ const classtable_elt_t VFT_parser___ReduceAction243[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -110670,44 +108207,44 @@ const classtable_elt_t VFT_parser___ReduceAction243[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction243 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction243___action},
+  {(bigint) 0 /* 50: ReduceAction249 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction249___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction243 < ReduceAction243: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction249 < ReduceAction249: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction243::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction243(val_t p0){
+/* 2: Attribute ReduceAction249::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction249(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction243;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction249;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction243(void)
+val_t NEW_parser___ReduceAction249(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction243;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction249;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction243(val_t p0){
+void CHECKNEW_parser___ReduceAction249(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction243;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction249;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -110720,35 +108257,36 @@ void CHECKNEW_parser___ReduceAction243(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction243_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction249_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction243_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction249_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction243();
-  INIT_ATTRIBUTES__parser___ReduceAction243(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction249();
+  INIT_ATTRIBUTES__parser___ReduceAction249(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction243(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction249(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction246[52] = {
-  {(bigint) 1411 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction253[55] = {
+  {(bigint) 1419 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction246" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction246 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction246 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1411 /* 5: ReduceAction246 < ReduceAction246: superclass typecheck marker */},
+  {(bigint) "ReduceAction253" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction253 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction253 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1419 /* 5: ReduceAction253 < ReduceAction253: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -110761,7 +108299,7 @@ const classtable_elt_t VFT_parser___ReduceAction246[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction246 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction253 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -110777,6 +108315,8 @@ const classtable_elt_t VFT_parser___ReduceAction246[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -110790,44 +108330,44 @@ const classtable_elt_t VFT_parser___ReduceAction246[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction246 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction246___action},
+  {(bigint) 0 /* 50: ReduceAction253 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction253___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction246 < ReduceAction246: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction253 < ReduceAction253: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction246::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction246(val_t p0){
+/* 2: Attribute ReduceAction253::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction253(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction246;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction253;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction246(void)
+val_t NEW_parser___ReduceAction253(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction246;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction253;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction246(val_t p0){
+void CHECKNEW_parser___ReduceAction253(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction246;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction253;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -110840,35 +108380,36 @@ void CHECKNEW_parser___ReduceAction246(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction246_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction253_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction246_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction253_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction246();
-  INIT_ATTRIBUTES__parser___ReduceAction246(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction253();
+  INIT_ATTRIBUTES__parser___ReduceAction253(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction246(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction253(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction247[52] = {
-  {(bigint) 1407 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction254[55] = {
+  {(bigint) 1415 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction247" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction247 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction247 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1407 /* 5: ReduceAction247 < ReduceAction247: superclass typecheck marker */},
+  {(bigint) "ReduceAction254" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction254 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction254 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1415 /* 5: ReduceAction254 < ReduceAction254: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -110881,7 +108422,7 @@ const classtable_elt_t VFT_parser___ReduceAction247[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction247 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction254 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -110897,6 +108438,8 @@ const classtable_elt_t VFT_parser___ReduceAction247[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -110910,44 +108453,44 @@ const classtable_elt_t VFT_parser___ReduceAction247[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction247 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction247___action},
+  {(bigint) 0 /* 50: ReduceAction254 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction254___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction247 < ReduceAction247: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction254 < ReduceAction254: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction247::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction247(val_t p0){
+/* 2: Attribute ReduceAction254::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction254(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction247;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction254;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction247(void)
+val_t NEW_parser___ReduceAction254(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction247;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction254;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction247(val_t p0){
+void CHECKNEW_parser___ReduceAction254(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction247;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction254;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -110960,35 +108503,36 @@ void CHECKNEW_parser___ReduceAction247(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction247_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction254_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction247_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction254_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction247();
-  INIT_ATTRIBUTES__parser___ReduceAction247(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction254();
+  INIT_ATTRIBUTES__parser___ReduceAction254(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction247(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction254(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction248[52] = {
-  {(bigint) 1403 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction255[55] = {
+  {(bigint) 1411 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction248" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction248 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction248 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1403 /* 5: ReduceAction248 < ReduceAction248: superclass typecheck marker */},
+  {(bigint) "ReduceAction255" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction255 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction255 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1411 /* 5: ReduceAction255 < ReduceAction255: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -111001,7 +108545,7 @@ const classtable_elt_t VFT_parser___ReduceAction248[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction248 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction255 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -111017,6 +108561,8 @@ const classtable_elt_t VFT_parser___ReduceAction248[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -111030,44 +108576,44 @@ const classtable_elt_t VFT_parser___ReduceAction248[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction248 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction248___action},
+  {(bigint) 0 /* 50: ReduceAction255 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction255___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction248 < ReduceAction248: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction255 < ReduceAction255: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction248::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction248(val_t p0){
+/* 2: Attribute ReduceAction255::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction255(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction248;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction255;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction248(void)
+val_t NEW_parser___ReduceAction255(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction248;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction255;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction248(val_t p0){
+void CHECKNEW_parser___ReduceAction255(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction248;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction255;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -111080,35 +108626,36 @@ void CHECKNEW_parser___ReduceAction248(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction248_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction255_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction248_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction255_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction248();
-  INIT_ATTRIBUTES__parser___ReduceAction248(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction255();
+  INIT_ATTRIBUTES__parser___ReduceAction255(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction248(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction255(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction249[52] = {
-  {(bigint) 1399 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction256[55] = {
+  {(bigint) 1407 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction249" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction249 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction249 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1399 /* 5: ReduceAction249 < ReduceAction249: superclass typecheck marker */},
+  {(bigint) "ReduceAction256" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction256 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction256 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1407 /* 5: ReduceAction256 < ReduceAction256: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -111121,7 +108668,7 @@ const classtable_elt_t VFT_parser___ReduceAction249[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction249 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction256 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -111137,6 +108684,8 @@ const classtable_elt_t VFT_parser___ReduceAction249[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -111150,44 +108699,44 @@ const classtable_elt_t VFT_parser___ReduceAction249[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction249 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction249___action},
+  {(bigint) 0 /* 50: ReduceAction256 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction256___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction249 < ReduceAction249: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction256 < ReduceAction256: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction249::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction249(val_t p0){
+/* 2: Attribute ReduceAction256::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction256(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction249;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction256;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction249(void)
+val_t NEW_parser___ReduceAction256(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction249;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction256;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction249(val_t p0){
+void CHECKNEW_parser___ReduceAction256(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction249;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction256;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -111200,35 +108749,36 @@ void CHECKNEW_parser___ReduceAction249(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction249_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction256_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction249_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction256_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction249();
-  INIT_ATTRIBUTES__parser___ReduceAction249(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction256();
+  INIT_ATTRIBUTES__parser___ReduceAction256(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction249(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction256(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction250[52] = {
-  {(bigint) 1391 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction257[55] = {
+  {(bigint) 1403 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction250" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction250 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction250 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1391 /* 5: ReduceAction250 < ReduceAction250: superclass typecheck marker */},
+  {(bigint) "ReduceAction257" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction257 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction257 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1403 /* 5: ReduceAction257 < ReduceAction257: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -111241,7 +108791,7 @@ const classtable_elt_t VFT_parser___ReduceAction250[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction250 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction257 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -111257,6 +108807,8 @@ const classtable_elt_t VFT_parser___ReduceAction250[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -111270,44 +108822,44 @@ const classtable_elt_t VFT_parser___ReduceAction250[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction250 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction250___action},
+  {(bigint) 0 /* 50: ReduceAction257 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction257___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction250 < ReduceAction250: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction257 < ReduceAction257: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction250::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction250(val_t p0){
+/* 2: Attribute ReduceAction257::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction257(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction250;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction257;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction250(void)
+val_t NEW_parser___ReduceAction257(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction250;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction257;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction250(val_t p0){
+void CHECKNEW_parser___ReduceAction257(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction250;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction257;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -111320,35 +108872,36 @@ void CHECKNEW_parser___ReduceAction250(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction250_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction257_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction250_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction257_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction250();
-  INIT_ATTRIBUTES__parser___ReduceAction250(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction257();
+  INIT_ATTRIBUTES__parser___ReduceAction257(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction250(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction257(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction251[52] = {
-  {(bigint) 1387 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction258[55] = {
+  {(bigint) 1399 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction251" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction251 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction251 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1387 /* 5: ReduceAction251 < ReduceAction251: superclass typecheck marker */},
+  {(bigint) "ReduceAction258" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction258 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction258 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1399 /* 5: ReduceAction258 < ReduceAction258: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -111361,7 +108914,7 @@ const classtable_elt_t VFT_parser___ReduceAction251[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction251 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction258 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -111377,6 +108930,8 @@ const classtable_elt_t VFT_parser___ReduceAction251[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -111390,44 +108945,44 @@ const classtable_elt_t VFT_parser___ReduceAction251[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction251 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction251___action},
+  {(bigint) 0 /* 50: ReduceAction258 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction258___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction251 < ReduceAction251: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction258 < ReduceAction258: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction251::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction251(val_t p0){
+/* 2: Attribute ReduceAction258::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction258(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction251;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction258;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction251(void)
+val_t NEW_parser___ReduceAction258(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction251;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction258;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction251(val_t p0){
+void CHECKNEW_parser___ReduceAction258(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction251;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction258;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -111440,35 +108995,36 @@ void CHECKNEW_parser___ReduceAction251(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction251_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction258_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction251_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction258_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction251();
-  INIT_ATTRIBUTES__parser___ReduceAction251(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction258();
+  INIT_ATTRIBUTES__parser___ReduceAction258(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction251(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction258(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction252[52] = {
-  {(bigint) 1383 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction259[55] = {
+  {(bigint) 1395 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction252" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction252 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction252 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1383 /* 5: ReduceAction252 < ReduceAction252: superclass typecheck marker */},
+  {(bigint) "ReduceAction259" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction259 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction259 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1395 /* 5: ReduceAction259 < ReduceAction259: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -111481,7 +109037,7 @@ const classtable_elt_t VFT_parser___ReduceAction252[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction252 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction259 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -111497,6 +109053,8 @@ const classtable_elt_t VFT_parser___ReduceAction252[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -111510,44 +109068,44 @@ const classtable_elt_t VFT_parser___ReduceAction252[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction252 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction252___action},
+  {(bigint) 0 /* 50: ReduceAction259 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction259___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction252 < ReduceAction252: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction259 < ReduceAction259: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction252::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction252(val_t p0){
+/* 2: Attribute ReduceAction259::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction259(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction252;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction259;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction252(void)
+val_t NEW_parser___ReduceAction259(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction252;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction259;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction252(val_t p0){
+void CHECKNEW_parser___ReduceAction259(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction252;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction259;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -111560,35 +109118,36 @@ void CHECKNEW_parser___ReduceAction252(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction252_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction259_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction252_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction259_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction252();
-  INIT_ATTRIBUTES__parser___ReduceAction252(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction259();
+  INIT_ATTRIBUTES__parser___ReduceAction259(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction252(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction259(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction253[52] = {
-  {(bigint) 1379 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction260[55] = {
+  {(bigint) 1387 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction253" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction253 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction253 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1379 /* 5: ReduceAction253 < ReduceAction253: superclass typecheck marker */},
+  {(bigint) "ReduceAction260" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction260 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction260 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1387 /* 5: ReduceAction260 < ReduceAction260: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -111601,7 +109160,7 @@ const classtable_elt_t VFT_parser___ReduceAction253[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction253 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction260 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -111617,6 +109176,8 @@ const classtable_elt_t VFT_parser___ReduceAction253[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -111630,44 +109191,44 @@ const classtable_elt_t VFT_parser___ReduceAction253[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction253 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction253___action},
+  {(bigint) 0 /* 50: ReduceAction260 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction260___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction253 < ReduceAction253: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction260 < ReduceAction260: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction253::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction253(val_t p0){
+/* 2: Attribute ReduceAction260::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction260(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction253;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction260;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction253(void)
+val_t NEW_parser___ReduceAction260(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction253;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction260;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction253(val_t p0){
+void CHECKNEW_parser___ReduceAction260(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction253;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction260;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -111680,35 +109241,36 @@ void CHECKNEW_parser___ReduceAction253(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction253_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction260_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction253_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction260_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction253();
-  INIT_ATTRIBUTES__parser___ReduceAction253(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction260();
+  INIT_ATTRIBUTES__parser___ReduceAction260(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction253(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction260(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction254[52] = {
-  {(bigint) 1375 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction261[55] = {
+  {(bigint) 1383 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction254" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction254 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction254 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1375 /* 5: ReduceAction254 < ReduceAction254: superclass typecheck marker */},
+  {(bigint) "ReduceAction261" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction261 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction261 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1383 /* 5: ReduceAction261 < ReduceAction261: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -111721,7 +109283,7 @@ const classtable_elt_t VFT_parser___ReduceAction254[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction254 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction261 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -111737,6 +109299,8 @@ const classtable_elt_t VFT_parser___ReduceAction254[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -111750,44 +109314,44 @@ const classtable_elt_t VFT_parser___ReduceAction254[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction254 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction254___action},
+  {(bigint) 0 /* 50: ReduceAction261 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction261___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction254 < ReduceAction254: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction261 < ReduceAction261: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction254::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction254(val_t p0){
+/* 2: Attribute ReduceAction261::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction261(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction254;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction261;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction254(void)
+val_t NEW_parser___ReduceAction261(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction254;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction261;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction254(val_t p0){
+void CHECKNEW_parser___ReduceAction261(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction254;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction261;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -111800,35 +109364,36 @@ void CHECKNEW_parser___ReduceAction254(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction254_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction261_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction254_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction261_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction254();
-  INIT_ATTRIBUTES__parser___ReduceAction254(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction261();
+  INIT_ATTRIBUTES__parser___ReduceAction261(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction254(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction261(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction255[52] = {
-  {(bigint) 1371 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction262[55] = {
+  {(bigint) 1379 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction255" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction255 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction255 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1371 /* 5: ReduceAction255 < ReduceAction255: superclass typecheck marker */},
+  {(bigint) "ReduceAction262" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction262 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction262 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1379 /* 5: ReduceAction262 < ReduceAction262: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -111841,7 +109406,7 @@ const classtable_elt_t VFT_parser___ReduceAction255[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction255 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction262 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -111857,6 +109422,8 @@ const classtable_elt_t VFT_parser___ReduceAction255[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -111870,44 +109437,44 @@ const classtable_elt_t VFT_parser___ReduceAction255[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction255 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction255___action},
+  {(bigint) 0 /* 50: ReduceAction262 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction262___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction255 < ReduceAction255: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction262 < ReduceAction262: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction255::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction255(val_t p0){
+/* 2: Attribute ReduceAction262::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction262(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction255;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction262;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction255(void)
+val_t NEW_parser___ReduceAction262(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction255;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction262;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction255(val_t p0){
+void CHECKNEW_parser___ReduceAction262(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction255;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction262;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -111920,35 +109487,36 @@ void CHECKNEW_parser___ReduceAction255(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction255_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction262_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction255_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction262_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction255();
-  INIT_ATTRIBUTES__parser___ReduceAction255(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction262();
+  INIT_ATTRIBUTES__parser___ReduceAction262(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction255(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction262(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction256[52] = {
-  {(bigint) 1367 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction263[55] = {
+  {(bigint) 1375 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction256" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction256 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction256 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1367 /* 5: ReduceAction256 < ReduceAction256: superclass typecheck marker */},
+  {(bigint) "ReduceAction263" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction263 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction263 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1375 /* 5: ReduceAction263 < ReduceAction263: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -111961,7 +109529,7 @@ const classtable_elt_t VFT_parser___ReduceAction256[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction256 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction263 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -111977,6 +109545,8 @@ const classtable_elt_t VFT_parser___ReduceAction256[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -111990,44 +109560,44 @@ const classtable_elt_t VFT_parser___ReduceAction256[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction256 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction256___action},
+  {(bigint) 0 /* 50: ReduceAction263 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction263___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction256 < ReduceAction256: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction263 < ReduceAction263: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction256::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction256(val_t p0){
+/* 2: Attribute ReduceAction263::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction263(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction256;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction263;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction256(void)
+val_t NEW_parser___ReduceAction263(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction256;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction263;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction256(val_t p0){
+void CHECKNEW_parser___ReduceAction263(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction256;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction263;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -112040,35 +109610,36 @@ void CHECKNEW_parser___ReduceAction256(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction256_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction263_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction256_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction263_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction256();
-  INIT_ATTRIBUTES__parser___ReduceAction256(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction263();
+  INIT_ATTRIBUTES__parser___ReduceAction263(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction256(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction263(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction263[52] = {
-  {(bigint) 1359 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction270[55] = {
+  {(bigint) 1367 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction263" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction263 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction263 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1359 /* 5: ReduceAction263 < ReduceAction263: superclass typecheck marker */},
+  {(bigint) "ReduceAction270" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction270 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction270 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1367 /* 5: ReduceAction270 < ReduceAction270: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -112081,7 +109652,7 @@ const classtable_elt_t VFT_parser___ReduceAction263[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction263 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction270 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -112097,6 +109668,8 @@ const classtable_elt_t VFT_parser___ReduceAction263[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -112110,44 +109683,44 @@ const classtable_elt_t VFT_parser___ReduceAction263[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction263 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction263___action},
+  {(bigint) 0 /* 50: ReduceAction270 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction270___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction263 < ReduceAction263: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction270 < ReduceAction270: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction263::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction263(val_t p0){
+/* 2: Attribute ReduceAction270::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction270(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction263;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction270;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction263(void)
+val_t NEW_parser___ReduceAction270(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction263;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction270;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction263(val_t p0){
+void CHECKNEW_parser___ReduceAction270(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction263;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction270;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -112160,155 +109733,36 @@ void CHECKNEW_parser___ReduceAction263(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction263_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction270_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction263_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction270_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction263();
-  INIT_ATTRIBUTES__parser___ReduceAction263(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction270();
+  INIT_ATTRIBUTES__parser___ReduceAction270(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction263(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction270(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction264[52] = {
-  {(bigint) 1355 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction271[55] = {
+  {(bigint) 1363 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction264" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction264 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction264 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1355 /* 5: ReduceAction264 < ReduceAction264: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) "ReduceAction271" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction271 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction271 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1363 /* 5: ReduceAction271 < ReduceAction271: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction264 < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction264 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction264___action},
-  {(bigint) parser___ReduceAction___concat},
-  {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction264 < ReduceAction264: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute ReduceAction264::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction264(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction264;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___ReduceAction264(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction264;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___ReduceAction264(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction264;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_ReduceAction264_parser___ReduceAction___init(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction264_parser___ReduceAction___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction264();
-  INIT_ATTRIBUTES__parser___ReduceAction264(fra.me.REG[0]);
-  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction264(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_parser___ReduceAction265[52] = {
-  {(bigint) 1351 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction265" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction265 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction265 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1351 /* 5: ReduceAction265 < ReduceAction265: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -112321,7 +109775,7 @@ const classtable_elt_t VFT_parser___ReduceAction265[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction265 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction271 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -112337,6 +109791,8 @@ const classtable_elt_t VFT_parser___ReduceAction265[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -112350,44 +109806,44 @@ const classtable_elt_t VFT_parser___ReduceAction265[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction265 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction265___action},
+  {(bigint) 0 /* 50: ReduceAction271 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction271___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction265 < ReduceAction265: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction271 < ReduceAction271: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction265::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction265(val_t p0){
+/* 2: Attribute ReduceAction271::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction271(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction265;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction271;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction265(void)
+val_t NEW_parser___ReduceAction271(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction265;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction271;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction265(val_t p0){
+void CHECKNEW_parser___ReduceAction271(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction265;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction271;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -112400,35 +109856,36 @@ void CHECKNEW_parser___ReduceAction265(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction265_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction271_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction265_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction271_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction265();
-  INIT_ATTRIBUTES__parser___ReduceAction265(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction271();
+  INIT_ATTRIBUTES__parser___ReduceAction271(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction265(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction271(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction266[52] = {
-  {(bigint) 1347 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction272[55] = {
+  {(bigint) 1359 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction266" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction266 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction266 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1347 /* 5: ReduceAction266 < ReduceAction266: superclass typecheck marker */},
+  {(bigint) "ReduceAction272" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction272 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction272 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1359 /* 5: ReduceAction272 < ReduceAction272: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -112441,7 +109898,7 @@ const classtable_elt_t VFT_parser___ReduceAction266[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction266 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction272 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -112457,6 +109914,8 @@ const classtable_elt_t VFT_parser___ReduceAction266[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -112470,44 +109929,44 @@ const classtable_elt_t VFT_parser___ReduceAction266[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction266 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction266___action},
+  {(bigint) 0 /* 50: ReduceAction272 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction272___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction266 < ReduceAction266: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction272 < ReduceAction272: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction266::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction266(val_t p0){
+/* 2: Attribute ReduceAction272::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction272(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction266;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction272;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction266(void)
+val_t NEW_parser___ReduceAction272(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction266;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction272;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction266(val_t p0){
+void CHECKNEW_parser___ReduceAction272(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction266;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction272;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -112520,35 +109979,36 @@ void CHECKNEW_parser___ReduceAction266(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction266_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction272_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction266_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction272_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction266();
-  INIT_ATTRIBUTES__parser___ReduceAction266(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction272();
+  INIT_ATTRIBUTES__parser___ReduceAction272(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction266(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction272(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction267[52] = {
-  {(bigint) 1343 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction273[55] = {
+  {(bigint) 1355 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction267" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction267 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction267 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1343 /* 5: ReduceAction267 < ReduceAction267: superclass typecheck marker */},
+  {(bigint) "ReduceAction273" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction273 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction273 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1355 /* 5: ReduceAction273 < ReduceAction273: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -112561,7 +110021,7 @@ const classtable_elt_t VFT_parser___ReduceAction267[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction267 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction273 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -112577,6 +110037,8 @@ const classtable_elt_t VFT_parser___ReduceAction267[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -112590,44 +110052,44 @@ const classtable_elt_t VFT_parser___ReduceAction267[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction267 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction267___action},
+  {(bigint) 0 /* 50: ReduceAction273 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction273___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction267 < ReduceAction267: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction273 < ReduceAction273: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction267::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction267(val_t p0){
+/* 2: Attribute ReduceAction273::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction273(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction267;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction273;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction267(void)
+val_t NEW_parser___ReduceAction273(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction267;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction273;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction267(val_t p0){
+void CHECKNEW_parser___ReduceAction273(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction267;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction273;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -112640,35 +110102,36 @@ void CHECKNEW_parser___ReduceAction267(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction267_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction273_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction267_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction273_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction267();
-  INIT_ATTRIBUTES__parser___ReduceAction267(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction273();
+  INIT_ATTRIBUTES__parser___ReduceAction273(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction267(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction273(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction268[52] = {
-  {(bigint) 1339 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction274[55] = {
+  {(bigint) 1351 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction268" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction268 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction268 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1339 /* 5: ReduceAction268 < ReduceAction268: superclass typecheck marker */},
+  {(bigint) "ReduceAction274" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction274 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction274 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1351 /* 5: ReduceAction274 < ReduceAction274: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -112681,7 +110144,7 @@ const classtable_elt_t VFT_parser___ReduceAction268[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction268 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction274 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -112697,6 +110160,8 @@ const classtable_elt_t VFT_parser___ReduceAction268[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -112710,44 +110175,44 @@ const classtable_elt_t VFT_parser___ReduceAction268[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction268 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction268___action},
+  {(bigint) 0 /* 50: ReduceAction274 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction274___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction268 < ReduceAction268: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction274 < ReduceAction274: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction268::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction268(val_t p0){
+/* 2: Attribute ReduceAction274::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction274(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction268;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction274;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction268(void)
+val_t NEW_parser___ReduceAction274(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction268;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction274;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction268(val_t p0){
+void CHECKNEW_parser___ReduceAction274(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction268;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction274;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -112760,35 +110225,36 @@ void CHECKNEW_parser___ReduceAction268(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction268_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction274_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction268_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction274_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction268();
-  INIT_ATTRIBUTES__parser___ReduceAction268(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction274();
+  INIT_ATTRIBUTES__parser___ReduceAction274(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction268(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction274(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction269[52] = {
-  {(bigint) 1335 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction275[55] = {
+  {(bigint) 1347 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction269" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction269 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction269 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1335 /* 5: ReduceAction269 < ReduceAction269: superclass typecheck marker */},
+  {(bigint) "ReduceAction275" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction275 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction275 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1347 /* 5: ReduceAction275 < ReduceAction275: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -112801,7 +110267,7 @@ const classtable_elt_t VFT_parser___ReduceAction269[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction269 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction275 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -112817,6 +110283,8 @@ const classtable_elt_t VFT_parser___ReduceAction269[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -112830,44 +110298,44 @@ const classtable_elt_t VFT_parser___ReduceAction269[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction269 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction269___action},
+  {(bigint) 0 /* 50: ReduceAction275 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction275___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction269 < ReduceAction269: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction275 < ReduceAction275: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction269::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction269(val_t p0){
+/* 2: Attribute ReduceAction275::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction275(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction269;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction275;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction269(void)
+val_t NEW_parser___ReduceAction275(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction269;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction275;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction269(val_t p0){
+void CHECKNEW_parser___ReduceAction275(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction269;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction275;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -112880,35 +110348,36 @@ void CHECKNEW_parser___ReduceAction269(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction269_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction275_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction269_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction275_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction269();
-  INIT_ATTRIBUTES__parser___ReduceAction269(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction275();
+  INIT_ATTRIBUTES__parser___ReduceAction275(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction269(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction275(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction270[52] = {
-  {(bigint) 1327 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction276[55] = {
+  {(bigint) 1343 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction270" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction270 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction270 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1327 /* 5: ReduceAction270 < ReduceAction270: superclass typecheck marker */},
+  {(bigint) "ReduceAction276" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction276 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction276 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1343 /* 5: ReduceAction276 < ReduceAction276: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -112921,7 +110390,7 @@ const classtable_elt_t VFT_parser___ReduceAction270[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction270 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction276 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -112937,6 +110406,8 @@ const classtable_elt_t VFT_parser___ReduceAction270[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -112950,44 +110421,44 @@ const classtable_elt_t VFT_parser___ReduceAction270[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction270 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction270___action},
+  {(bigint) 0 /* 50: ReduceAction276 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction276___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction270 < ReduceAction270: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction276 < ReduceAction276: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction270::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction270(val_t p0){
+/* 2: Attribute ReduceAction276::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction276(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction270;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction276;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction270(void)
+val_t NEW_parser___ReduceAction276(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction270;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction276;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction270(val_t p0){
+void CHECKNEW_parser___ReduceAction276(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction270;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction276;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -113000,35 +110471,36 @@ void CHECKNEW_parser___ReduceAction270(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction270_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction276_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction270_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction276_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction270();
-  INIT_ATTRIBUTES__parser___ReduceAction270(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction276();
+  INIT_ATTRIBUTES__parser___ReduceAction276(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction270(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction276(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction271[52] = {
-  {(bigint) 1323 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction277[55] = {
+  {(bigint) 1339 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction271" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction271 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction271 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1323 /* 5: ReduceAction271 < ReduceAction271: superclass typecheck marker */},
+  {(bigint) "ReduceAction277" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction277 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction277 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1339 /* 5: ReduceAction277 < ReduceAction277: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -113041,7 +110513,7 @@ const classtable_elt_t VFT_parser___ReduceAction271[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction271 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction277 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -113057,6 +110529,8 @@ const classtable_elt_t VFT_parser___ReduceAction271[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -113070,44 +110544,44 @@ const classtable_elt_t VFT_parser___ReduceAction271[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction271 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction271___action},
+  {(bigint) 0 /* 50: ReduceAction277 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction277___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction271 < ReduceAction271: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction277 < ReduceAction277: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction271::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction271(val_t p0){
+/* 2: Attribute ReduceAction277::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction277(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction271;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction277;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction271(void)
+val_t NEW_parser___ReduceAction277(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction271;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction277;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction271(val_t p0){
+void CHECKNEW_parser___ReduceAction277(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction271;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction277;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -113120,35 +110594,36 @@ void CHECKNEW_parser___ReduceAction271(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction271_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction277_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction271_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction277_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction271();
-  INIT_ATTRIBUTES__parser___ReduceAction271(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction277();
+  INIT_ATTRIBUTES__parser___ReduceAction277(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction271(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction277(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction272[52] = {
-  {(bigint) 1319 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction278[55] = {
+  {(bigint) 1335 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction272" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction272 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction272 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1319 /* 5: ReduceAction272 < ReduceAction272: superclass typecheck marker */},
+  {(bigint) "ReduceAction278" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction278 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction278 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1335 /* 5: ReduceAction278 < ReduceAction278: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -113161,7 +110636,7 @@ const classtable_elt_t VFT_parser___ReduceAction272[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction272 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction278 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -113177,6 +110652,8 @@ const classtable_elt_t VFT_parser___ReduceAction272[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -113190,44 +110667,44 @@ const classtable_elt_t VFT_parser___ReduceAction272[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction272 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction272___action},
+  {(bigint) 0 /* 50: ReduceAction278 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction278___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction272 < ReduceAction272: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction278 < ReduceAction278: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction272::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction272(val_t p0){
+/* 2: Attribute ReduceAction278::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction278(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction272;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction278;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction272(void)
+val_t NEW_parser___ReduceAction278(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction272;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction278;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction272(val_t p0){
+void CHECKNEW_parser___ReduceAction278(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction272;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction278;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -113240,35 +110717,36 @@ void CHECKNEW_parser___ReduceAction272(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction272_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction278_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction272_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction278_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction272();
-  INIT_ATTRIBUTES__parser___ReduceAction272(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction278();
+  INIT_ATTRIBUTES__parser___ReduceAction278(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction272(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction278(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction273[52] = {
-  {(bigint) 1315 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction279[55] = {
+  {(bigint) 1331 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction273" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction273 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction273 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1315 /* 5: ReduceAction273 < ReduceAction273: superclass typecheck marker */},
+  {(bigint) "ReduceAction279" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction279 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction279 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1331 /* 5: ReduceAction279 < ReduceAction279: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -113281,7 +110759,7 @@ const classtable_elt_t VFT_parser___ReduceAction273[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction273 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction279 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -113297,6 +110775,8 @@ const classtable_elt_t VFT_parser___ReduceAction273[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -113310,44 +110790,44 @@ const classtable_elt_t VFT_parser___ReduceAction273[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction273 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction273___action},
+  {(bigint) 0 /* 50: ReduceAction279 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction279___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction273 < ReduceAction273: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction279 < ReduceAction279: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction273::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction273(val_t p0){
+/* 2: Attribute ReduceAction279::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction279(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction273;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction279;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction273(void)
+val_t NEW_parser___ReduceAction279(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction273;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction279;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction273(val_t p0){
+void CHECKNEW_parser___ReduceAction279(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction273;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction279;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -113360,35 +110840,36 @@ void CHECKNEW_parser___ReduceAction273(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction273_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction279_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction273_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction279_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction273();
-  INIT_ATTRIBUTES__parser___ReduceAction273(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction279();
+  INIT_ATTRIBUTES__parser___ReduceAction279(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction273(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction279(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction274[52] = {
-  {(bigint) 1311 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction280[55] = {
+  {(bigint) 1323 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction274" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction274 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction274 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1311 /* 5: ReduceAction274 < ReduceAction274: superclass typecheck marker */},
+  {(bigint) "ReduceAction280" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction280 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction280 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1323 /* 5: ReduceAction280 < ReduceAction280: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -113401,7 +110882,7 @@ const classtable_elt_t VFT_parser___ReduceAction274[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction274 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction280 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -113417,6 +110898,8 @@ const classtable_elt_t VFT_parser___ReduceAction274[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -113430,44 +110913,44 @@ const classtable_elt_t VFT_parser___ReduceAction274[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction274 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction274___action},
+  {(bigint) 0 /* 50: ReduceAction280 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction280___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction274 < ReduceAction274: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction280 < ReduceAction280: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction274::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction274(val_t p0){
+/* 2: Attribute ReduceAction280::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction280(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction274;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction280;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction274(void)
+val_t NEW_parser___ReduceAction280(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction274;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction280;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction274(val_t p0){
+void CHECKNEW_parser___ReduceAction280(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction274;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction280;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -113480,35 +110963,36 @@ void CHECKNEW_parser___ReduceAction274(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction274_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction280_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction274_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction280_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction274();
-  INIT_ATTRIBUTES__parser___ReduceAction274(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction280();
+  INIT_ATTRIBUTES__parser___ReduceAction280(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction274(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction280(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction275[52] = {
-  {(bigint) 1307 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction281[55] = {
+  {(bigint) 1319 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction275" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction275 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction275 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1307 /* 5: ReduceAction275 < ReduceAction275: superclass typecheck marker */},
+  {(bigint) "ReduceAction281" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction281 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction281 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1319 /* 5: ReduceAction281 < ReduceAction281: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -113521,7 +111005,7 @@ const classtable_elt_t VFT_parser___ReduceAction275[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction275 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction281 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -113537,6 +111021,8 @@ const classtable_elt_t VFT_parser___ReduceAction275[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -113550,44 +111036,44 @@ const classtable_elt_t VFT_parser___ReduceAction275[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction275 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction275___action},
+  {(bigint) 0 /* 50: ReduceAction281 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction281___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction275 < ReduceAction275: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction281 < ReduceAction281: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction275::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction275(val_t p0){
+/* 2: Attribute ReduceAction281::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction281(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction275;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction281;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction275(void)
+val_t NEW_parser___ReduceAction281(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction275;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction281;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction275(val_t p0){
+void CHECKNEW_parser___ReduceAction281(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction275;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction281;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -113600,35 +111086,36 @@ void CHECKNEW_parser___ReduceAction275(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction275_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction281_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction275_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction281_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction275();
-  INIT_ATTRIBUTES__parser___ReduceAction275(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction281();
+  INIT_ATTRIBUTES__parser___ReduceAction281(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction275(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction281(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction276[52] = {
-  {(bigint) 1303 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction282[55] = {
+  {(bigint) 1315 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction276" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction276 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction276 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1303 /* 5: ReduceAction276 < ReduceAction276: superclass typecheck marker */},
+  {(bigint) "ReduceAction282" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction282 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction282 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1315 /* 5: ReduceAction282 < ReduceAction282: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -113641,7 +111128,7 @@ const classtable_elt_t VFT_parser___ReduceAction276[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction276 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction282 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -113657,6 +111144,8 @@ const classtable_elt_t VFT_parser___ReduceAction276[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -113670,44 +111159,44 @@ const classtable_elt_t VFT_parser___ReduceAction276[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction276 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction276___action},
+  {(bigint) 0 /* 50: ReduceAction282 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction282___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction276 < ReduceAction276: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction282 < ReduceAction282: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction276::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction276(val_t p0){
+/* 2: Attribute ReduceAction282::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction282(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction276;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction282;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction276(void)
+val_t NEW_parser___ReduceAction282(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction276;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction282;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction276(val_t p0){
+void CHECKNEW_parser___ReduceAction282(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction276;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction282;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -113720,35 +111209,36 @@ void CHECKNEW_parser___ReduceAction276(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction276_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction282_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction276_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction282_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction276();
-  INIT_ATTRIBUTES__parser___ReduceAction276(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction282();
+  INIT_ATTRIBUTES__parser___ReduceAction282(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction276(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction282(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction277[52] = {
-  {(bigint) 1299 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction283[55] = {
+  {(bigint) 1311 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction277" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction277 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction277 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1299 /* 5: ReduceAction277 < ReduceAction277: superclass typecheck marker */},
+  {(bigint) "ReduceAction283" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction283 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction283 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1311 /* 5: ReduceAction283 < ReduceAction283: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -113761,7 +111251,7 @@ const classtable_elt_t VFT_parser___ReduceAction277[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction277 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction283 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -113777,6 +111267,8 @@ const classtable_elt_t VFT_parser___ReduceAction277[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -113790,44 +111282,44 @@ const classtable_elt_t VFT_parser___ReduceAction277[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction277 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction277___action},
+  {(bigint) 0 /* 50: ReduceAction283 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction283___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction277 < ReduceAction277: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction283 < ReduceAction283: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction277::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction277(val_t p0){
+/* 2: Attribute ReduceAction283::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction283(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction277;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction283;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction277(void)
+val_t NEW_parser___ReduceAction283(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction277;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction283;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction277(val_t p0){
+void CHECKNEW_parser___ReduceAction283(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction277;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction283;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -113840,35 +111332,36 @@ void CHECKNEW_parser___ReduceAction277(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction277_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction283_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction277_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction283_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction277();
-  INIT_ATTRIBUTES__parser___ReduceAction277(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction283();
+  INIT_ATTRIBUTES__parser___ReduceAction283(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction277(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction283(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction278[52] = {
-  {(bigint) 1295 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction284[55] = {
+  {(bigint) 1307 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction278" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction278 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction278 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1295 /* 5: ReduceAction278 < ReduceAction278: superclass typecheck marker */},
+  {(bigint) "ReduceAction284" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction284 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction284 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1307 /* 5: ReduceAction284 < ReduceAction284: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -113881,7 +111374,7 @@ const classtable_elt_t VFT_parser___ReduceAction278[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction278 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction284 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -113897,6 +111390,8 @@ const classtable_elt_t VFT_parser___ReduceAction278[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -113910,44 +111405,44 @@ const classtable_elt_t VFT_parser___ReduceAction278[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction278 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction278___action},
+  {(bigint) 0 /* 50: ReduceAction284 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction284___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction278 < ReduceAction278: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction284 < ReduceAction284: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction278::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction278(val_t p0){
+/* 2: Attribute ReduceAction284::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction284(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction278;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction284;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction278(void)
+val_t NEW_parser___ReduceAction284(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction278;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction284;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction278(val_t p0){
+void CHECKNEW_parser___ReduceAction284(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction278;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction284;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -113960,35 +111455,36 @@ void CHECKNEW_parser___ReduceAction278(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction278_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction284_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction278_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction284_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction278();
-  INIT_ATTRIBUTES__parser___ReduceAction278(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction284();
+  INIT_ATTRIBUTES__parser___ReduceAction284(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction278(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction284(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction279[52] = {
-  {(bigint) 1291 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction285[55] = {
+  {(bigint) 1303 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction279" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction279 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction279 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1291 /* 5: ReduceAction279 < ReduceAction279: superclass typecheck marker */},
+  {(bigint) "ReduceAction285" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction285 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction285 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1303 /* 5: ReduceAction285 < ReduceAction285: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -114001,7 +111497,7 @@ const classtable_elt_t VFT_parser___ReduceAction279[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction279 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction285 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -114017,6 +111513,8 @@ const classtable_elt_t VFT_parser___ReduceAction279[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -114030,44 +111528,44 @@ const classtable_elt_t VFT_parser___ReduceAction279[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction279 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction279___action},
+  {(bigint) 0 /* 50: ReduceAction285 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction285___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction279 < ReduceAction279: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction285 < ReduceAction285: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction279::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction279(val_t p0){
+/* 2: Attribute ReduceAction285::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction285(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction279;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction285;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction279(void)
+val_t NEW_parser___ReduceAction285(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction279;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction285;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction279(val_t p0){
+void CHECKNEW_parser___ReduceAction285(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction279;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction285;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -114080,35 +111578,36 @@ void CHECKNEW_parser___ReduceAction279(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction279_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction285_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction279_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction285_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction279();
-  INIT_ATTRIBUTES__parser___ReduceAction279(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction285();
+  INIT_ATTRIBUTES__parser___ReduceAction285(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction279(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction285(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction280[52] = {
-  {(bigint) 1283 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction286[55] = {
+  {(bigint) 1299 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction280" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction280 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction280 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1283 /* 5: ReduceAction280 < ReduceAction280: superclass typecheck marker */},
+  {(bigint) "ReduceAction286" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction286 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction286 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1299 /* 5: ReduceAction286 < ReduceAction286: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -114121,7 +111620,7 @@ const classtable_elt_t VFT_parser___ReduceAction280[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction280 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction286 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -114137,6 +111636,8 @@ const classtable_elt_t VFT_parser___ReduceAction280[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -114150,44 +111651,44 @@ const classtable_elt_t VFT_parser___ReduceAction280[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction280 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction280___action},
+  {(bigint) 0 /* 50: ReduceAction286 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction286___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction280 < ReduceAction280: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction286 < ReduceAction286: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction280::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction280(val_t p0){
+/* 2: Attribute ReduceAction286::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction286(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction280;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction286;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction280(void)
+val_t NEW_parser___ReduceAction286(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction280;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction286;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction280(val_t p0){
+void CHECKNEW_parser___ReduceAction286(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction280;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction286;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -114200,35 +111701,36 @@ void CHECKNEW_parser___ReduceAction280(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction280_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction286_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction280_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction286_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction280();
-  INIT_ATTRIBUTES__parser___ReduceAction280(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction286();
+  INIT_ATTRIBUTES__parser___ReduceAction286(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction280(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction286(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction281[52] = {
-  {(bigint) 1279 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction287[55] = {
+  {(bigint) 1295 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction281" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction281 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction281 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1279 /* 5: ReduceAction281 < ReduceAction281: superclass typecheck marker */},
+  {(bigint) "ReduceAction287" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction287 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction287 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1295 /* 5: ReduceAction287 < ReduceAction287: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -114241,7 +111743,7 @@ const classtable_elt_t VFT_parser___ReduceAction281[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction281 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction287 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -114257,6 +111759,8 @@ const classtable_elt_t VFT_parser___ReduceAction281[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -114270,44 +111774,44 @@ const classtable_elt_t VFT_parser___ReduceAction281[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction281 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction281___action},
+  {(bigint) 0 /* 50: ReduceAction287 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction287___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction281 < ReduceAction281: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction287 < ReduceAction287: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction281::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction281(val_t p0){
+/* 2: Attribute ReduceAction287::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction287(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction281;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction287;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction281(void)
+val_t NEW_parser___ReduceAction287(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction281;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction287;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction281(val_t p0){
+void CHECKNEW_parser___ReduceAction287(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction281;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction287;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -114320,35 +111824,36 @@ void CHECKNEW_parser___ReduceAction281(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction281_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction287_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction281_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction287_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction281();
-  INIT_ATTRIBUTES__parser___ReduceAction281(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction287();
+  INIT_ATTRIBUTES__parser___ReduceAction287(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction281(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction287(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction282[52] = {
-  {(bigint) 1275 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction288[55] = {
+  {(bigint) 1291 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction282" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction282 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction282 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1275 /* 5: ReduceAction282 < ReduceAction282: superclass typecheck marker */},
+  {(bigint) "ReduceAction288" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction288 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction288 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1291 /* 5: ReduceAction288 < ReduceAction288: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -114361,7 +111866,7 @@ const classtable_elt_t VFT_parser___ReduceAction282[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction282 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction288 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -114377,6 +111882,8 @@ const classtable_elt_t VFT_parser___ReduceAction282[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -114390,44 +111897,44 @@ const classtable_elt_t VFT_parser___ReduceAction282[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction282 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction282___action},
+  {(bigint) 0 /* 50: ReduceAction288 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction288___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction282 < ReduceAction282: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction288 < ReduceAction288: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction282::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction282(val_t p0){
+/* 2: Attribute ReduceAction288::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction288(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction282;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction288;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction282(void)
+val_t NEW_parser___ReduceAction288(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction282;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction288;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction282(val_t p0){
+void CHECKNEW_parser___ReduceAction288(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction282;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction288;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -114440,35 +111947,36 @@ void CHECKNEW_parser___ReduceAction282(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction282_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction288_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction282_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction288_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction282();
-  INIT_ATTRIBUTES__parser___ReduceAction282(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction288();
+  INIT_ATTRIBUTES__parser___ReduceAction288(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction282(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction288(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction283[52] = {
-  {(bigint) 1271 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction289[55] = {
+  {(bigint) 1287 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction283" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction283 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction283 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1271 /* 5: ReduceAction283 < ReduceAction283: superclass typecheck marker */},
+  {(bigint) "ReduceAction289" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction289 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction289 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1287 /* 5: ReduceAction289 < ReduceAction289: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -114481,7 +111989,7 @@ const classtable_elt_t VFT_parser___ReduceAction283[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction283 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction289 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -114497,6 +112005,8 @@ const classtable_elt_t VFT_parser___ReduceAction283[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -114510,44 +112020,44 @@ const classtable_elt_t VFT_parser___ReduceAction283[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction283 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction283___action},
+  {(bigint) 0 /* 50: ReduceAction289 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction289___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction283 < ReduceAction283: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction289 < ReduceAction289: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction283::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction283(val_t p0){
+/* 2: Attribute ReduceAction289::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction289(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction283;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction289;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction283(void)
+val_t NEW_parser___ReduceAction289(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction283;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction289;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction283(val_t p0){
+void CHECKNEW_parser___ReduceAction289(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction283;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction289;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -114560,35 +112070,36 @@ void CHECKNEW_parser___ReduceAction283(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction283_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction289_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction283_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction289_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction283();
-  INIT_ATTRIBUTES__parser___ReduceAction283(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction289();
+  INIT_ATTRIBUTES__parser___ReduceAction289(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction283(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction289(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction284[52] = {
-  {(bigint) 1267 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction290[55] = {
+  {(bigint) 1279 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction284" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction284 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction284 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1267 /* 5: ReduceAction284 < ReduceAction284: superclass typecheck marker */},
+  {(bigint) "ReduceAction290" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction290 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction290 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1279 /* 5: ReduceAction290 < ReduceAction290: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -114601,7 +112112,7 @@ const classtable_elt_t VFT_parser___ReduceAction284[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction284 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction290 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -114617,6 +112128,8 @@ const classtable_elt_t VFT_parser___ReduceAction284[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -114630,44 +112143,44 @@ const classtable_elt_t VFT_parser___ReduceAction284[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction284 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction284___action},
+  {(bigint) 0 /* 50: ReduceAction290 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction290___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction284 < ReduceAction284: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction290 < ReduceAction290: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction284::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction284(val_t p0){
+/* 2: Attribute ReduceAction290::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction290(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction284;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction290;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction284(void)
+val_t NEW_parser___ReduceAction290(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction284;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction290;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction284(val_t p0){
+void CHECKNEW_parser___ReduceAction290(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction284;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction290;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -114680,35 +112193,36 @@ void CHECKNEW_parser___ReduceAction284(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction284_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction290_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction284_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction290_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction284();
-  INIT_ATTRIBUTES__parser___ReduceAction284(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction290();
+  INIT_ATTRIBUTES__parser___ReduceAction290(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction284(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction290(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction285[52] = {
-  {(bigint) 1263 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction291[55] = {
+  {(bigint) 1275 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction285" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction285 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction285 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1263 /* 5: ReduceAction285 < ReduceAction285: superclass typecheck marker */},
+  {(bigint) "ReduceAction291" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction291 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction291 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1275 /* 5: ReduceAction291 < ReduceAction291: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -114721,7 +112235,7 @@ const classtable_elt_t VFT_parser___ReduceAction285[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction285 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction291 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -114737,6 +112251,8 @@ const classtable_elt_t VFT_parser___ReduceAction285[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -114750,44 +112266,44 @@ const classtable_elt_t VFT_parser___ReduceAction285[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction285 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction285___action},
+  {(bigint) 0 /* 50: ReduceAction291 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction291___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction285 < ReduceAction285: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction291 < ReduceAction291: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction285::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction285(val_t p0){
+/* 2: Attribute ReduceAction291::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction291(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction285;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction291;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction285(void)
+val_t NEW_parser___ReduceAction291(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction285;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction291;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction285(val_t p0){
+void CHECKNEW_parser___ReduceAction291(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction285;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction291;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -114800,35 +112316,36 @@ void CHECKNEW_parser___ReduceAction285(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction285_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction291_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction285_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction291_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction285();
-  INIT_ATTRIBUTES__parser___ReduceAction285(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction291();
+  INIT_ATTRIBUTES__parser___ReduceAction291(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction285(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction291(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction286[52] = {
-  {(bigint) 1259 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction292[55] = {
+  {(bigint) 1271 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction286" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction286 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction286 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1259 /* 5: ReduceAction286 < ReduceAction286: superclass typecheck marker */},
+  {(bigint) "ReduceAction292" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction292 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction292 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1271 /* 5: ReduceAction292 < ReduceAction292: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -114841,7 +112358,7 @@ const classtable_elt_t VFT_parser___ReduceAction286[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction286 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction292 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -114857,6 +112374,8 @@ const classtable_elt_t VFT_parser___ReduceAction286[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -114870,44 +112389,44 @@ const classtable_elt_t VFT_parser___ReduceAction286[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction286 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction286___action},
+  {(bigint) 0 /* 50: ReduceAction292 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction292___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction286 < ReduceAction286: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction292 < ReduceAction292: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction286::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction286(val_t p0){
+/* 2: Attribute ReduceAction292::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction292(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction286;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction292;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction286(void)
+val_t NEW_parser___ReduceAction292(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction286;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction292;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction286(val_t p0){
+void CHECKNEW_parser___ReduceAction292(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction286;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction292;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -114920,35 +112439,36 @@ void CHECKNEW_parser___ReduceAction286(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction286_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction292_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction286_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction292_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction286();
-  INIT_ATTRIBUTES__parser___ReduceAction286(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction292();
+  INIT_ATTRIBUTES__parser___ReduceAction292(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction286(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction292(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction287[52] = {
-  {(bigint) 1255 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction293[55] = {
+  {(bigint) 1267 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction287" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction287 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction287 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1255 /* 5: ReduceAction287 < ReduceAction287: superclass typecheck marker */},
+  {(bigint) "ReduceAction293" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction293 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction293 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1267 /* 5: ReduceAction293 < ReduceAction293: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -114961,7 +112481,7 @@ const classtable_elt_t VFT_parser___ReduceAction287[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction287 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction293 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -114977,6 +112497,8 @@ const classtable_elt_t VFT_parser___ReduceAction287[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -114990,44 +112512,44 @@ const classtable_elt_t VFT_parser___ReduceAction287[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction287 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction287___action},
+  {(bigint) 0 /* 50: ReduceAction293 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction293___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction287 < ReduceAction287: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction293 < ReduceAction293: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction287::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction287(val_t p0){
+/* 2: Attribute ReduceAction293::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction293(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction287;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction293;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction287(void)
+val_t NEW_parser___ReduceAction293(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction287;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction293;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction287(val_t p0){
+void CHECKNEW_parser___ReduceAction293(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction287;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction293;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -115040,35 +112562,36 @@ void CHECKNEW_parser___ReduceAction287(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction287_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction293_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction287_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction293_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction287();
-  INIT_ATTRIBUTES__parser___ReduceAction287(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction293();
+  INIT_ATTRIBUTES__parser___ReduceAction293(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction287(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction293(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction288[52] = {
-  {(bigint) 1251 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction294[55] = {
+  {(bigint) 1263 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction288" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction288 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction288 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1251 /* 5: ReduceAction288 < ReduceAction288: superclass typecheck marker */},
+  {(bigint) "ReduceAction294" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction294 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction294 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1263 /* 5: ReduceAction294 < ReduceAction294: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -115081,7 +112604,7 @@ const classtable_elt_t VFT_parser___ReduceAction288[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction288 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction294 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -115097,6 +112620,8 @@ const classtable_elt_t VFT_parser___ReduceAction288[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -115110,44 +112635,44 @@ const classtable_elt_t VFT_parser___ReduceAction288[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction288 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction288___action},
+  {(bigint) 0 /* 50: ReduceAction294 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction294___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction288 < ReduceAction288: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction294 < ReduceAction294: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction288::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction288(val_t p0){
+/* 2: Attribute ReduceAction294::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction294(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction288;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction294;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction288(void)
+val_t NEW_parser___ReduceAction294(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction288;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction294;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction288(val_t p0){
+void CHECKNEW_parser___ReduceAction294(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction288;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction294;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -115160,35 +112685,36 @@ void CHECKNEW_parser___ReduceAction288(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction288_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction294_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction288_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction294_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction288();
-  INIT_ATTRIBUTES__parser___ReduceAction288(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction294();
+  INIT_ATTRIBUTES__parser___ReduceAction294(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction288(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction294(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction289[52] = {
-  {(bigint) 1247 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction295[55] = {
+  {(bigint) 1259 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction289" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction289 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction289 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1247 /* 5: ReduceAction289 < ReduceAction289: superclass typecheck marker */},
+  {(bigint) "ReduceAction295" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction295 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction295 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1259 /* 5: ReduceAction295 < ReduceAction295: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -115201,7 +112727,7 @@ const classtable_elt_t VFT_parser___ReduceAction289[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction289 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction295 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -115217,6 +112743,8 @@ const classtable_elt_t VFT_parser___ReduceAction289[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -115230,44 +112758,44 @@ const classtable_elt_t VFT_parser___ReduceAction289[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction289 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction289___action},
+  {(bigint) 0 /* 50: ReduceAction295 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction295___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction289 < ReduceAction289: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction295 < ReduceAction295: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction289::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction289(val_t p0){
+/* 2: Attribute ReduceAction295::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction295(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction289;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction295;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction289(void)
+val_t NEW_parser___ReduceAction295(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction289;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction295;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction289(val_t p0){
+void CHECKNEW_parser___ReduceAction295(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction289;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction295;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -115280,35 +112808,36 @@ void CHECKNEW_parser___ReduceAction289(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction289_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction295_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction289_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction295_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction289();
-  INIT_ATTRIBUTES__parser___ReduceAction289(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction295();
+  INIT_ATTRIBUTES__parser___ReduceAction295(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction289(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction295(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction290[52] = {
-  {(bigint) 1239 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction296[55] = {
+  {(bigint) 1255 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction290" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction290 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction290 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1239 /* 5: ReduceAction290 < ReduceAction290: superclass typecheck marker */},
+  {(bigint) "ReduceAction296" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction296 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction296 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1255 /* 5: ReduceAction296 < ReduceAction296: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -115321,7 +112850,7 @@ const classtable_elt_t VFT_parser___ReduceAction290[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction290 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction296 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -115337,6 +112866,8 @@ const classtable_elt_t VFT_parser___ReduceAction290[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -115350,44 +112881,44 @@ const classtable_elt_t VFT_parser___ReduceAction290[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction290 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction290___action},
+  {(bigint) 0 /* 50: ReduceAction296 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction296___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction290 < ReduceAction290: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction296 < ReduceAction296: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction290::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction290(val_t p0){
+/* 2: Attribute ReduceAction296::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction296(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction290;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction296;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction290(void)
+val_t NEW_parser___ReduceAction296(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction290;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction296;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction290(val_t p0){
+void CHECKNEW_parser___ReduceAction296(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction290;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction296;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -115400,35 +112931,36 @@ void CHECKNEW_parser___ReduceAction290(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction290_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction296_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction290_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction296_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction290();
-  INIT_ATTRIBUTES__parser___ReduceAction290(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction296();
+  INIT_ATTRIBUTES__parser___ReduceAction296(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction290(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction296(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction291[52] = {
-  {(bigint) 1235 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction297[55] = {
+  {(bigint) 1251 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction291" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction291 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction291 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1235 /* 5: ReduceAction291 < ReduceAction291: superclass typecheck marker */},
+  {(bigint) "ReduceAction297" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction297 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction297 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1251 /* 5: ReduceAction297 < ReduceAction297: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -115441,7 +112973,7 @@ const classtable_elt_t VFT_parser___ReduceAction291[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction291 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction297 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -115457,6 +112989,8 @@ const classtable_elt_t VFT_parser___ReduceAction291[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -115470,44 +113004,44 @@ const classtable_elt_t VFT_parser___ReduceAction291[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction291 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction291___action},
+  {(bigint) 0 /* 50: ReduceAction297 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction297___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction291 < ReduceAction291: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction297 < ReduceAction297: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction291::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction291(val_t p0){
+/* 2: Attribute ReduceAction297::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction297(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction291;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction297;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction291(void)
+val_t NEW_parser___ReduceAction297(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction291;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction297;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction291(val_t p0){
+void CHECKNEW_parser___ReduceAction297(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction291;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction297;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -115520,35 +113054,36 @@ void CHECKNEW_parser___ReduceAction291(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction291_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction297_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction291_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction297_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction291();
-  INIT_ATTRIBUTES__parser___ReduceAction291(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction297();
+  INIT_ATTRIBUTES__parser___ReduceAction297(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction291(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction297(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction292[52] = {
-  {(bigint) 1231 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction298[55] = {
+  {(bigint) 1247 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction292" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction292 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction292 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1231 /* 5: ReduceAction292 < ReduceAction292: superclass typecheck marker */},
+  {(bigint) "ReduceAction298" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction298 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction298 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1247 /* 5: ReduceAction298 < ReduceAction298: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -115561,7 +113096,7 @@ const classtable_elt_t VFT_parser___ReduceAction292[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction292 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction298 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -115577,6 +113112,8 @@ const classtable_elt_t VFT_parser___ReduceAction292[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -115590,44 +113127,44 @@ const classtable_elt_t VFT_parser___ReduceAction292[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction292 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction292___action},
+  {(bigint) 0 /* 50: ReduceAction298 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction298___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction292 < ReduceAction292: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction298 < ReduceAction298: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction292::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction292(val_t p0){
+/* 2: Attribute ReduceAction298::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction298(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction292;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction298;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction292(void)
+val_t NEW_parser___ReduceAction298(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction292;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction298;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction292(val_t p0){
+void CHECKNEW_parser___ReduceAction298(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction292;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction298;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -115640,35 +113177,36 @@ void CHECKNEW_parser___ReduceAction292(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction292_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction298_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction292_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction298_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction292();
-  INIT_ATTRIBUTES__parser___ReduceAction292(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction298();
+  INIT_ATTRIBUTES__parser___ReduceAction298(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction292(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction298(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction293[52] = {
-  {(bigint) 1227 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction299[55] = {
+  {(bigint) 1243 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction293" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction293 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction293 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1227 /* 5: ReduceAction293 < ReduceAction293: superclass typecheck marker */},
+  {(bigint) "ReduceAction299" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction299 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction299 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1243 /* 5: ReduceAction299 < ReduceAction299: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -115681,7 +113219,7 @@ const classtable_elt_t VFT_parser___ReduceAction293[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction293 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction299 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -115697,6 +113235,8 @@ const classtable_elt_t VFT_parser___ReduceAction293[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -115710,44 +113250,44 @@ const classtable_elt_t VFT_parser___ReduceAction293[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction293 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction293___action},
+  {(bigint) 0 /* 50: ReduceAction299 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction299___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction293 < ReduceAction293: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction299 < ReduceAction299: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction293::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction293(val_t p0){
+/* 2: Attribute ReduceAction299::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction299(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction293;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction299;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction293(void)
+val_t NEW_parser___ReduceAction299(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction293;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction299;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction293(val_t p0){
+void CHECKNEW_parser___ReduceAction299(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction293;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction299;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -115760,35 +113300,36 @@ void CHECKNEW_parser___ReduceAction293(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction293_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction299_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction293_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction299_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction293();
-  INIT_ATTRIBUTES__parser___ReduceAction293(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction299();
+  INIT_ATTRIBUTES__parser___ReduceAction299(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction293(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction299(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction294[52] = {
-  {(bigint) 1223 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction300[55] = {
+  {(bigint) 1231 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction294" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction294 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction294 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1223 /* 5: ReduceAction294 < ReduceAction294: superclass typecheck marker */},
+  {(bigint) "ReduceAction300" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction300 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction300 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1231 /* 5: ReduceAction300 < ReduceAction300: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -115801,7 +113342,7 @@ const classtable_elt_t VFT_parser___ReduceAction294[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction294 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction300 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -115817,6 +113358,8 @@ const classtable_elt_t VFT_parser___ReduceAction294[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -115830,44 +113373,44 @@ const classtable_elt_t VFT_parser___ReduceAction294[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction294 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction294___action},
+  {(bigint) 0 /* 50: ReduceAction300 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction300___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction294 < ReduceAction294: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction300 < ReduceAction300: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction294::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction294(val_t p0){
+/* 2: Attribute ReduceAction300::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction300(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction294;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction300;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction294(void)
+val_t NEW_parser___ReduceAction300(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction294;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction300;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction294(val_t p0){
+void CHECKNEW_parser___ReduceAction300(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction294;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction300;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -115880,35 +113423,36 @@ void CHECKNEW_parser___ReduceAction294(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction294_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction300_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction294_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction300_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction294();
-  INIT_ATTRIBUTES__parser___ReduceAction294(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction300();
+  INIT_ATTRIBUTES__parser___ReduceAction300(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction294(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction300(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction295[52] = {
-  {(bigint) 1219 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction301[55] = {
+  {(bigint) 1227 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction295" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction295 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction295 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1219 /* 5: ReduceAction295 < ReduceAction295: superclass typecheck marker */},
+  {(bigint) "ReduceAction301" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction301 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction301 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1227 /* 5: ReduceAction301 < ReduceAction301: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -115921,7 +113465,7 @@ const classtable_elt_t VFT_parser___ReduceAction295[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction295 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction301 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -115937,6 +113481,8 @@ const classtable_elt_t VFT_parser___ReduceAction295[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -115950,44 +113496,44 @@ const classtable_elt_t VFT_parser___ReduceAction295[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction295 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction295___action},
+  {(bigint) 0 /* 50: ReduceAction301 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction301___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction295 < ReduceAction295: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction301 < ReduceAction301: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction295::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction295(val_t p0){
+/* 2: Attribute ReduceAction301::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction301(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction295;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction301;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction295(void)
+val_t NEW_parser___ReduceAction301(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction295;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction301;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction295(val_t p0){
+void CHECKNEW_parser___ReduceAction301(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction295;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction301;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -116000,35 +113546,36 @@ void CHECKNEW_parser___ReduceAction295(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction295_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction301_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction295_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction301_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction295();
-  INIT_ATTRIBUTES__parser___ReduceAction295(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction301();
+  INIT_ATTRIBUTES__parser___ReduceAction301(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction295(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction301(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction296[52] = {
-  {(bigint) 1215 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction302[55] = {
+  {(bigint) 1223 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction296" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction296 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction296 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1215 /* 5: ReduceAction296 < ReduceAction296: superclass typecheck marker */},
+  {(bigint) "ReduceAction302" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction302 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction302 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1223 /* 5: ReduceAction302 < ReduceAction302: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -116041,7 +113588,7 @@ const classtable_elt_t VFT_parser___ReduceAction296[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction296 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction302 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -116057,6 +113604,8 @@ const classtable_elt_t VFT_parser___ReduceAction296[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -116070,44 +113619,44 @@ const classtable_elt_t VFT_parser___ReduceAction296[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction296 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction296___action},
+  {(bigint) 0 /* 50: ReduceAction302 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction302___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction296 < ReduceAction296: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction302 < ReduceAction302: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction296::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction296(val_t p0){
+/* 2: Attribute ReduceAction302::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction302(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction296;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction302;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction296(void)
+val_t NEW_parser___ReduceAction302(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction296;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction302;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction296(val_t p0){
+void CHECKNEW_parser___ReduceAction302(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction296;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction302;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -116120,35 +113669,36 @@ void CHECKNEW_parser___ReduceAction296(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction296_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction302_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction296_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction302_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction296();
-  INIT_ATTRIBUTES__parser___ReduceAction296(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction302();
+  INIT_ATTRIBUTES__parser___ReduceAction302(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction296(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction302(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction297[52] = {
-  {(bigint) 1211 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction303[55] = {
+  {(bigint) 1219 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction297" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction297 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction297 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1211 /* 5: ReduceAction297 < ReduceAction297: superclass typecheck marker */},
+  {(bigint) "ReduceAction303" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction303 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction303 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1219 /* 5: ReduceAction303 < ReduceAction303: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -116161,7 +113711,7 @@ const classtable_elt_t VFT_parser___ReduceAction297[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction297 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction303 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -116177,6 +113727,8 @@ const classtable_elt_t VFT_parser___ReduceAction297[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -116190,44 +113742,44 @@ const classtable_elt_t VFT_parser___ReduceAction297[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction297 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction297___action},
+  {(bigint) 0 /* 50: ReduceAction303 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction303___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction297 < ReduceAction297: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction303 < ReduceAction303: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction297::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction297(val_t p0){
+/* 2: Attribute ReduceAction303::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction303(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction297;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction303;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction297(void)
+val_t NEW_parser___ReduceAction303(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction297;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction303;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction297(val_t p0){
+void CHECKNEW_parser___ReduceAction303(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction297;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction303;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -116240,35 +113792,36 @@ void CHECKNEW_parser___ReduceAction297(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction297_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction303_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction297_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction303_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction297();
-  INIT_ATTRIBUTES__parser___ReduceAction297(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction303();
+  INIT_ATTRIBUTES__parser___ReduceAction303(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction297(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction303(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction298[52] = {
-  {(bigint) 1207 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction304[55] = {
+  {(bigint) 1215 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction298" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction298 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction298 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1207 /* 5: ReduceAction298 < ReduceAction298: superclass typecheck marker */},
+  {(bigint) "ReduceAction304" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction304 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction304 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1215 /* 5: ReduceAction304 < ReduceAction304: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -116281,7 +113834,7 @@ const classtable_elt_t VFT_parser___ReduceAction298[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction298 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction304 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -116297,6 +113850,8 @@ const classtable_elt_t VFT_parser___ReduceAction298[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -116310,44 +113865,44 @@ const classtable_elt_t VFT_parser___ReduceAction298[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction298 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction298___action},
+  {(bigint) 0 /* 50: ReduceAction304 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction304___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction298 < ReduceAction298: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction304 < ReduceAction304: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction298::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction298(val_t p0){
+/* 2: Attribute ReduceAction304::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction304(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction298;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction304;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction298(void)
+val_t NEW_parser___ReduceAction304(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction298;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction304;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction298(val_t p0){
+void CHECKNEW_parser___ReduceAction304(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction298;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction304;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -116360,35 +113915,36 @@ void CHECKNEW_parser___ReduceAction298(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction298_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction304_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction298_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction304_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction298();
-  INIT_ATTRIBUTES__parser___ReduceAction298(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction304();
+  INIT_ATTRIBUTES__parser___ReduceAction304(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction298(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction304(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction299[52] = {
-  {(bigint) 1203 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction305[55] = {
+  {(bigint) 1211 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction299" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction299 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction299 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1203 /* 5: ReduceAction299 < ReduceAction299: superclass typecheck marker */},
+  {(bigint) "ReduceAction305" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction305 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction305 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1211 /* 5: ReduceAction305 < ReduceAction305: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -116401,7 +113957,7 @@ const classtable_elt_t VFT_parser___ReduceAction299[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction299 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction305 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -116417,6 +113973,8 @@ const classtable_elt_t VFT_parser___ReduceAction299[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -116430,44 +113988,44 @@ const classtable_elt_t VFT_parser___ReduceAction299[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction299 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction299___action},
+  {(bigint) 0 /* 50: ReduceAction305 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction305___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction299 < ReduceAction299: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction305 < ReduceAction305: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction299::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction299(val_t p0){
+/* 2: Attribute ReduceAction305::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction305(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction299;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction305;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction299(void)
+val_t NEW_parser___ReduceAction305(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction299;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction305;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction299(val_t p0){
+void CHECKNEW_parser___ReduceAction305(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction299;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction305;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -116480,35 +114038,36 @@ void CHECKNEW_parser___ReduceAction299(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction299_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction305_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction299_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction305_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction299();
-  INIT_ATTRIBUTES__parser___ReduceAction299(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction305();
+  INIT_ATTRIBUTES__parser___ReduceAction305(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction299(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction305(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction300[52] = {
-  {(bigint) 1191 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction306[55] = {
+  {(bigint) 1207 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction300" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction300 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction300 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1191 /* 5: ReduceAction300 < ReduceAction300: superclass typecheck marker */},
+  {(bigint) "ReduceAction306" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction306 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction306 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1207 /* 5: ReduceAction306 < ReduceAction306: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -116521,7 +114080,7 @@ const classtable_elt_t VFT_parser___ReduceAction300[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction300 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction306 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -116537,6 +114096,8 @@ const classtable_elt_t VFT_parser___ReduceAction300[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -116550,44 +114111,44 @@ const classtable_elt_t VFT_parser___ReduceAction300[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction300 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction300___action},
+  {(bigint) 0 /* 50: ReduceAction306 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction306___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction300 < ReduceAction300: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction306 < ReduceAction306: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction300::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction300(val_t p0){
+/* 2: Attribute ReduceAction306::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction306(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction300;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction306;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction300(void)
+val_t NEW_parser___ReduceAction306(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction300;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction306;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction300(val_t p0){
+void CHECKNEW_parser___ReduceAction306(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction300;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction306;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -116600,35 +114161,36 @@ void CHECKNEW_parser___ReduceAction300(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction300_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction306_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction300_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction306_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction300();
-  INIT_ATTRIBUTES__parser___ReduceAction300(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction306();
+  INIT_ATTRIBUTES__parser___ReduceAction306(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction300(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction306(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction301[52] = {
-  {(bigint) 1187 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction307[55] = {
+  {(bigint) 1203 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction301" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction301 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction301 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1187 /* 5: ReduceAction301 < ReduceAction301: superclass typecheck marker */},
+  {(bigint) "ReduceAction307" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction307 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction307 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1203 /* 5: ReduceAction307 < ReduceAction307: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -116641,7 +114203,7 @@ const classtable_elt_t VFT_parser___ReduceAction301[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction301 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction307 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -116657,6 +114219,8 @@ const classtable_elt_t VFT_parser___ReduceAction301[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -116670,44 +114234,44 @@ const classtable_elt_t VFT_parser___ReduceAction301[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction301 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction301___action},
+  {(bigint) 0 /* 50: ReduceAction307 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction307___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction301 < ReduceAction301: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction307 < ReduceAction307: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction301::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction301(val_t p0){
+/* 2: Attribute ReduceAction307::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction307(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction301;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction307;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction301(void)
+val_t NEW_parser___ReduceAction307(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction301;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction307;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction301(val_t p0){
+void CHECKNEW_parser___ReduceAction307(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction301;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction307;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -116720,35 +114284,36 @@ void CHECKNEW_parser___ReduceAction301(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction301_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction307_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction301_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction307_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction301();
-  INIT_ATTRIBUTES__parser___ReduceAction301(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction307();
+  INIT_ATTRIBUTES__parser___ReduceAction307(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction301(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction307(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction302[52] = {
-  {(bigint) 1183 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction308[55] = {
+  {(bigint) 1199 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction302" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction302 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction302 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1183 /* 5: ReduceAction302 < ReduceAction302: superclass typecheck marker */},
+  {(bigint) "ReduceAction308" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction308 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction308 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1199 /* 5: ReduceAction308 < ReduceAction308: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -116761,7 +114326,7 @@ const classtable_elt_t VFT_parser___ReduceAction302[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction302 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction308 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -116777,6 +114342,8 @@ const classtable_elt_t VFT_parser___ReduceAction302[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -116790,44 +114357,44 @@ const classtable_elt_t VFT_parser___ReduceAction302[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction302 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction302___action},
+  {(bigint) 0 /* 50: ReduceAction308 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction308___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction302 < ReduceAction302: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction308 < ReduceAction308: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction302::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction302(val_t p0){
+/* 2: Attribute ReduceAction308::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction308(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction302;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction308;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction302(void)
+val_t NEW_parser___ReduceAction308(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction302;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction308;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction302(val_t p0){
+void CHECKNEW_parser___ReduceAction308(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction302;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction308;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -116840,35 +114407,36 @@ void CHECKNEW_parser___ReduceAction302(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction302_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction308_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction302_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction308_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction302();
-  INIT_ATTRIBUTES__parser___ReduceAction302(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction308();
+  INIT_ATTRIBUTES__parser___ReduceAction308(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction302(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction308(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction303[52] = {
-  {(bigint) 1179 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction309[55] = {
+  {(bigint) 1195 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction303" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction303 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction303 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1179 /* 5: ReduceAction303 < ReduceAction303: superclass typecheck marker */},
+  {(bigint) "ReduceAction309" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction309 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction309 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1195 /* 5: ReduceAction309 < ReduceAction309: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -116881,7 +114449,7 @@ const classtable_elt_t VFT_parser___ReduceAction303[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction303 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction309 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -116897,6 +114465,8 @@ const classtable_elt_t VFT_parser___ReduceAction303[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -116910,44 +114480,44 @@ const classtable_elt_t VFT_parser___ReduceAction303[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction303 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction303___action},
+  {(bigint) 0 /* 50: ReduceAction309 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction309___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction303 < ReduceAction303: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction309 < ReduceAction309: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction303::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction303(val_t p0){
+/* 2: Attribute ReduceAction309::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction309(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction303;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction309;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction303(void)
+val_t NEW_parser___ReduceAction309(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction303;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction309;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction303(val_t p0){
+void CHECKNEW_parser___ReduceAction309(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction303;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction309;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -116960,35 +114530,36 @@ void CHECKNEW_parser___ReduceAction303(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction303_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction309_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction303_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction309_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction303();
-  INIT_ATTRIBUTES__parser___ReduceAction303(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction309();
+  INIT_ATTRIBUTES__parser___ReduceAction309(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction303(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction309(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction304[52] = {
-  {(bigint) 1175 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction310[55] = {
+  {(bigint) 1187 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction304" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction304 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction304 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1175 /* 5: ReduceAction304 < ReduceAction304: superclass typecheck marker */},
+  {(bigint) "ReduceAction310" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction310 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction310 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1187 /* 5: ReduceAction310 < ReduceAction310: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -117001,7 +114572,7 @@ const classtable_elt_t VFT_parser___ReduceAction304[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction304 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction310 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -117017,6 +114588,8 @@ const classtable_elt_t VFT_parser___ReduceAction304[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -117030,44 +114603,44 @@ const classtable_elt_t VFT_parser___ReduceAction304[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction304 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction304___action},
+  {(bigint) 0 /* 50: ReduceAction310 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction310___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction304 < ReduceAction304: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction310 < ReduceAction310: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction304::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction304(val_t p0){
+/* 2: Attribute ReduceAction310::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction310(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction304;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction310;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction304(void)
+val_t NEW_parser___ReduceAction310(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction304;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction310;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction304(val_t p0){
+void CHECKNEW_parser___ReduceAction310(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction304;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction310;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -117080,35 +114653,36 @@ void CHECKNEW_parser___ReduceAction304(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction304_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction310_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction304_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction310_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction304();
-  INIT_ATTRIBUTES__parser___ReduceAction304(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction310();
+  INIT_ATTRIBUTES__parser___ReduceAction310(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction304(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction310(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction305[52] = {
-  {(bigint) 1171 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction311[55] = {
+  {(bigint) 1183 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction305" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction305 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction305 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1171 /* 5: ReduceAction305 < ReduceAction305: superclass typecheck marker */},
+  {(bigint) "ReduceAction311" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction311 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction311 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1183 /* 5: ReduceAction311 < ReduceAction311: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -117121,7 +114695,7 @@ const classtable_elt_t VFT_parser___ReduceAction305[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction305 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction311 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -117137,6 +114711,8 @@ const classtable_elt_t VFT_parser___ReduceAction305[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -117150,44 +114726,44 @@ const classtable_elt_t VFT_parser___ReduceAction305[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction305 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction305___action},
+  {(bigint) 0 /* 50: ReduceAction311 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction311___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction305 < ReduceAction305: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction311 < ReduceAction311: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction305::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction305(val_t p0){
+/* 2: Attribute ReduceAction311::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction311(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction305;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction311;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction305(void)
+val_t NEW_parser___ReduceAction311(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction305;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction311;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction305(val_t p0){
+void CHECKNEW_parser___ReduceAction311(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction305;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction311;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -117200,35 +114776,36 @@ void CHECKNEW_parser___ReduceAction305(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction305_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction311_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction305_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction311_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction305();
-  INIT_ATTRIBUTES__parser___ReduceAction305(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction311();
+  INIT_ATTRIBUTES__parser___ReduceAction311(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction305(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction311(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction306[52] = {
-  {(bigint) 1167 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction312[55] = {
+  {(bigint) 1179 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction306" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction306 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction306 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1167 /* 5: ReduceAction306 < ReduceAction306: superclass typecheck marker */},
+  {(bigint) "ReduceAction312" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction312 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction312 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1179 /* 5: ReduceAction312 < ReduceAction312: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -117241,7 +114818,7 @@ const classtable_elt_t VFT_parser___ReduceAction306[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction306 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction312 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -117257,6 +114834,8 @@ const classtable_elt_t VFT_parser___ReduceAction306[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -117270,44 +114849,44 @@ const classtable_elt_t VFT_parser___ReduceAction306[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction306 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction306___action},
+  {(bigint) 0 /* 50: ReduceAction312 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction312___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction306 < ReduceAction306: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction312 < ReduceAction312: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction306::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction306(val_t p0){
+/* 2: Attribute ReduceAction312::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction312(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction306;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction312;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction306(void)
+val_t NEW_parser___ReduceAction312(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction306;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction312;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction306(val_t p0){
+void CHECKNEW_parser___ReduceAction312(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction306;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction312;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -117320,35 +114899,36 @@ void CHECKNEW_parser___ReduceAction306(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction306_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction312_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction306_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction312_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction306();
-  INIT_ATTRIBUTES__parser___ReduceAction306(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction312();
+  INIT_ATTRIBUTES__parser___ReduceAction312(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction306(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction312(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction307[52] = {
-  {(bigint) 1163 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction313[55] = {
+  {(bigint) 1175 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction307" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction307 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction307 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1163 /* 5: ReduceAction307 < ReduceAction307: superclass typecheck marker */},
+  {(bigint) "ReduceAction313" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction313 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction313 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1175 /* 5: ReduceAction313 < ReduceAction313: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -117361,7 +114941,7 @@ const classtable_elt_t VFT_parser___ReduceAction307[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction307 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction313 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -117377,6 +114957,8 @@ const classtable_elt_t VFT_parser___ReduceAction307[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -117390,44 +114972,44 @@ const classtable_elt_t VFT_parser___ReduceAction307[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction307 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction307___action},
+  {(bigint) 0 /* 50: ReduceAction313 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction313___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction307 < ReduceAction307: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction313 < ReduceAction313: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction307::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction307(val_t p0){
+/* 2: Attribute ReduceAction313::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction313(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction307;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction313;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction307(void)
+val_t NEW_parser___ReduceAction313(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction307;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction313;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction307(val_t p0){
+void CHECKNEW_parser___ReduceAction313(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction307;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction313;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -117440,35 +115022,36 @@ void CHECKNEW_parser___ReduceAction307(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction307_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction313_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction307_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction313_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction307();
-  INIT_ATTRIBUTES__parser___ReduceAction307(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction313();
+  INIT_ATTRIBUTES__parser___ReduceAction313(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction307(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction313(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction308[52] = {
-  {(bigint) 1159 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction314[55] = {
+  {(bigint) 1171 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction308" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction308 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction308 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1159 /* 5: ReduceAction308 < ReduceAction308: superclass typecheck marker */},
+  {(bigint) "ReduceAction314" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction314 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction314 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1171 /* 5: ReduceAction314 < ReduceAction314: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -117481,7 +115064,7 @@ const classtable_elt_t VFT_parser___ReduceAction308[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction308 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction314 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -117497,6 +115080,8 @@ const classtable_elt_t VFT_parser___ReduceAction308[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -117510,44 +115095,44 @@ const classtable_elt_t VFT_parser___ReduceAction308[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction308 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction308___action},
+  {(bigint) 0 /* 50: ReduceAction314 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction314___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction308 < ReduceAction308: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction314 < ReduceAction314: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction308::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction308(val_t p0){
+/* 2: Attribute ReduceAction314::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction314(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction308;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction314;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction308(void)
+val_t NEW_parser___ReduceAction314(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction308;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction314;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction308(val_t p0){
+void CHECKNEW_parser___ReduceAction314(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction308;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction314;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -117560,35 +115145,36 @@ void CHECKNEW_parser___ReduceAction308(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction308_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction314_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction308_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction314_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction308();
-  INIT_ATTRIBUTES__parser___ReduceAction308(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction314();
+  INIT_ATTRIBUTES__parser___ReduceAction314(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction308(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction314(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction309[52] = {
-  {(bigint) 1155 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction315[55] = {
+  {(bigint) 1167 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction309" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction309 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction309 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1155 /* 5: ReduceAction309 < ReduceAction309: superclass typecheck marker */},
+  {(bigint) "ReduceAction315" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction315 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction315 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1167 /* 5: ReduceAction315 < ReduceAction315: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -117601,7 +115187,7 @@ const classtable_elt_t VFT_parser___ReduceAction309[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction309 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction315 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -117617,6 +115203,8 @@ const classtable_elt_t VFT_parser___ReduceAction309[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -117630,44 +115218,44 @@ const classtable_elt_t VFT_parser___ReduceAction309[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction309 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction309___action},
+  {(bigint) 0 /* 50: ReduceAction315 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction315___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction309 < ReduceAction309: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction315 < ReduceAction315: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction309::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction309(val_t p0){
+/* 2: Attribute ReduceAction315::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction315(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction309;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction315;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction309(void)
+val_t NEW_parser___ReduceAction315(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction309;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction315;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction309(val_t p0){
+void CHECKNEW_parser___ReduceAction315(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction309;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction315;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -117680,35 +115268,36 @@ void CHECKNEW_parser___ReduceAction309(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction309_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction315_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction309_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction315_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction309();
-  INIT_ATTRIBUTES__parser___ReduceAction309(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction315();
+  INIT_ATTRIBUTES__parser___ReduceAction315(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction309(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction315(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction310[52] = {
-  {(bigint) 1147 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction316[55] = {
+  {(bigint) 1163 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction310" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction310 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction310 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1147 /* 5: ReduceAction310 < ReduceAction310: superclass typecheck marker */},
+  {(bigint) "ReduceAction316" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction316 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction316 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1163 /* 5: ReduceAction316 < ReduceAction316: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -117721,7 +115310,7 @@ const classtable_elt_t VFT_parser___ReduceAction310[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction310 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction316 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -117737,6 +115326,8 @@ const classtable_elt_t VFT_parser___ReduceAction310[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -117750,44 +115341,44 @@ const classtable_elt_t VFT_parser___ReduceAction310[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction310 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction310___action},
+  {(bigint) 0 /* 50: ReduceAction316 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction316___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction310 < ReduceAction310: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction316 < ReduceAction316: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction310::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction310(val_t p0){
+/* 2: Attribute ReduceAction316::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction316(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction310;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction316;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction310(void)
+val_t NEW_parser___ReduceAction316(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction310;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction316;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction310(val_t p0){
+void CHECKNEW_parser___ReduceAction316(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction310;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction316;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -117800,35 +115391,36 @@ void CHECKNEW_parser___ReduceAction310(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction310_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction316_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction310_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction316_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction310();
-  INIT_ATTRIBUTES__parser___ReduceAction310(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction316();
+  INIT_ATTRIBUTES__parser___ReduceAction316(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction310(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction316(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction311[52] = {
-  {(bigint) 1143 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction317[55] = {
+  {(bigint) 1159 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction311" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction311 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction311 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1143 /* 5: ReduceAction311 < ReduceAction311: superclass typecheck marker */},
+  {(bigint) "ReduceAction317" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction317 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction317 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1159 /* 5: ReduceAction317 < ReduceAction317: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -117841,7 +115433,7 @@ const classtable_elt_t VFT_parser___ReduceAction311[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction311 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction317 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -117857,6 +115449,8 @@ const classtable_elt_t VFT_parser___ReduceAction311[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -117870,44 +115464,44 @@ const classtable_elt_t VFT_parser___ReduceAction311[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction311 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction311___action},
+  {(bigint) 0 /* 50: ReduceAction317 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction317___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction311 < ReduceAction311: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction317 < ReduceAction317: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction311::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction311(val_t p0){
+/* 2: Attribute ReduceAction317::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction317(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction311;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction317;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction311(void)
+val_t NEW_parser___ReduceAction317(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction311;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction317;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction311(val_t p0){
+void CHECKNEW_parser___ReduceAction317(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction311;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction317;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -117920,35 +115514,36 @@ void CHECKNEW_parser___ReduceAction311(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction311_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction317_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction311_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction317_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction311();
-  INIT_ATTRIBUTES__parser___ReduceAction311(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction317();
+  INIT_ATTRIBUTES__parser___ReduceAction317(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction311(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction317(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction312[52] = {
-  {(bigint) 1139 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction318[55] = {
+  {(bigint) 1155 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction312" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction312 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction312 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1139 /* 5: ReduceAction312 < ReduceAction312: superclass typecheck marker */},
+  {(bigint) "ReduceAction318" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction318 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction318 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1155 /* 5: ReduceAction318 < ReduceAction318: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -117961,7 +115556,7 @@ const classtable_elt_t VFT_parser___ReduceAction312[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction312 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction318 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -117977,6 +115572,8 @@ const classtable_elt_t VFT_parser___ReduceAction312[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -117990,44 +115587,44 @@ const classtable_elt_t VFT_parser___ReduceAction312[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction312 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction312___action},
+  {(bigint) 0 /* 50: ReduceAction318 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction318___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction312 < ReduceAction312: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction318 < ReduceAction318: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction312::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction312(val_t p0){
+/* 2: Attribute ReduceAction318::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction318(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction312;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction318;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction312(void)
+val_t NEW_parser___ReduceAction318(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction312;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction318;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction312(val_t p0){
+void CHECKNEW_parser___ReduceAction318(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction312;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction318;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -118040,35 +115637,36 @@ void CHECKNEW_parser___ReduceAction312(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction312_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction318_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction312_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction318_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction312();
-  INIT_ATTRIBUTES__parser___ReduceAction312(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction318();
+  INIT_ATTRIBUTES__parser___ReduceAction318(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction312(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction318(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction313[52] = {
-  {(bigint) 1135 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction319[55] = {
+  {(bigint) 1151 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction313" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction313 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction313 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1135 /* 5: ReduceAction313 < ReduceAction313: superclass typecheck marker */},
+  {(bigint) "ReduceAction319" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction319 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction319 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1151 /* 5: ReduceAction319 < ReduceAction319: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -118081,7 +115679,7 @@ const classtable_elt_t VFT_parser___ReduceAction313[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction313 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction319 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -118097,6 +115695,8 @@ const classtable_elt_t VFT_parser___ReduceAction313[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -118110,44 +115710,44 @@ const classtable_elt_t VFT_parser___ReduceAction313[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction313 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction313___action},
+  {(bigint) 0 /* 50: ReduceAction319 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction319___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction313 < ReduceAction313: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction319 < ReduceAction319: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction313::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction313(val_t p0){
+/* 2: Attribute ReduceAction319::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction319(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction313;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction319;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction313(void)
+val_t NEW_parser___ReduceAction319(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction313;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction319;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction313(val_t p0){
+void CHECKNEW_parser___ReduceAction319(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction313;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction319;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -118160,35 +115760,36 @@ void CHECKNEW_parser___ReduceAction313(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction313_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction319_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction313_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction319_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction313();
-  INIT_ATTRIBUTES__parser___ReduceAction313(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction319();
+  INIT_ATTRIBUTES__parser___ReduceAction319(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction313(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction319(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction314[52] = {
-  {(bigint) 1131 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction320[55] = {
+  {(bigint) 1143 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction314" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction314 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction314 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1131 /* 5: ReduceAction314 < ReduceAction314: superclass typecheck marker */},
+  {(bigint) "ReduceAction320" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction320 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction320 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1143 /* 5: ReduceAction320 < ReduceAction320: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -118201,7 +115802,7 @@ const classtable_elt_t VFT_parser___ReduceAction314[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction314 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction320 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -118217,6 +115818,8 @@ const classtable_elt_t VFT_parser___ReduceAction314[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -118230,44 +115833,44 @@ const classtable_elt_t VFT_parser___ReduceAction314[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction314 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction314___action},
+  {(bigint) 0 /* 50: ReduceAction320 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction320___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction314 < ReduceAction314: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction320 < ReduceAction320: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction314::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction314(val_t p0){
+/* 2: Attribute ReduceAction320::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction320(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction314;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction320;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction314(void)
+val_t NEW_parser___ReduceAction320(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction314;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction320;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction314(val_t p0){
+void CHECKNEW_parser___ReduceAction320(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction314;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction320;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -118280,35 +115883,36 @@ void CHECKNEW_parser___ReduceAction314(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction314_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction320_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction314_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction320_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction314();
-  INIT_ATTRIBUTES__parser___ReduceAction314(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction320();
+  INIT_ATTRIBUTES__parser___ReduceAction320(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction314(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction320(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction317[52] = {
-  {(bigint) 1127 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction321[55] = {
+  {(bigint) 1139 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction317" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction317 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction317 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1127 /* 5: ReduceAction317 < ReduceAction317: superclass typecheck marker */},
+  {(bigint) "ReduceAction321" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction321 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction321 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1139 /* 5: ReduceAction321 < ReduceAction321: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -118321,7 +115925,7 @@ const classtable_elt_t VFT_parser___ReduceAction317[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction317 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction321 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -118337,6 +115941,8 @@ const classtable_elt_t VFT_parser___ReduceAction317[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -118350,44 +115956,44 @@ const classtable_elt_t VFT_parser___ReduceAction317[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction317 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction317___action},
+  {(bigint) 0 /* 50: ReduceAction321 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction321___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction317 < ReduceAction317: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction321 < ReduceAction321: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction317::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction317(val_t p0){
+/* 2: Attribute ReduceAction321::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction321(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction317;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction321;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction317(void)
+val_t NEW_parser___ReduceAction321(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction317;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction321;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction317(val_t p0){
+void CHECKNEW_parser___ReduceAction321(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction317;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction321;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -118400,35 +116006,36 @@ void CHECKNEW_parser___ReduceAction317(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction317_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction321_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction317_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction321_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction317();
-  INIT_ATTRIBUTES__parser___ReduceAction317(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction321();
+  INIT_ATTRIBUTES__parser___ReduceAction321(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction317(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction321(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction318[52] = {
-  {(bigint) 1123 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction322[55] = {
+  {(bigint) 1135 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction318" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction318 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction318 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1123 /* 5: ReduceAction318 < ReduceAction318: superclass typecheck marker */},
+  {(bigint) "ReduceAction322" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction322 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction322 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1135 /* 5: ReduceAction322 < ReduceAction322: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -118441,7 +116048,7 @@ const classtable_elt_t VFT_parser___ReduceAction318[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction318 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction322 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -118457,6 +116064,8 @@ const classtable_elt_t VFT_parser___ReduceAction318[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -118470,44 +116079,44 @@ const classtable_elt_t VFT_parser___ReduceAction318[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction318 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction318___action},
+  {(bigint) 0 /* 50: ReduceAction322 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction322___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction318 < ReduceAction318: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction322 < ReduceAction322: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction318::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction318(val_t p0){
+/* 2: Attribute ReduceAction322::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction322(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction318;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction322;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction318(void)
+val_t NEW_parser___ReduceAction322(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction318;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction322;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction318(val_t p0){
+void CHECKNEW_parser___ReduceAction322(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction318;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction322;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -118520,35 +116129,36 @@ void CHECKNEW_parser___ReduceAction318(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction318_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction322_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction318_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction322_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction318();
-  INIT_ATTRIBUTES__parser___ReduceAction318(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction322();
+  INIT_ATTRIBUTES__parser___ReduceAction322(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction318(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction322(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction319[52] = {
-  {(bigint) 1119 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction325[55] = {
+  {(bigint) 1131 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction319" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction319 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction319 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1119 /* 5: ReduceAction319 < ReduceAction319: superclass typecheck marker */},
+  {(bigint) "ReduceAction325" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction325 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction325 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1131 /* 5: ReduceAction325 < ReduceAction325: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -118561,7 +116171,7 @@ const classtable_elt_t VFT_parser___ReduceAction319[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction319 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction325 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -118577,6 +116187,8 @@ const classtable_elt_t VFT_parser___ReduceAction319[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -118590,44 +116202,44 @@ const classtable_elt_t VFT_parser___ReduceAction319[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction319 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction319___action},
+  {(bigint) 0 /* 50: ReduceAction325 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction325___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction319 < ReduceAction319: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction325 < ReduceAction325: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction319::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction319(val_t p0){
+/* 2: Attribute ReduceAction325::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction325(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction319;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction325;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction319(void)
+val_t NEW_parser___ReduceAction325(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction319;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction325;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction319(val_t p0){
+void CHECKNEW_parser___ReduceAction325(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction319;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction325;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -118640,35 +116252,36 @@ void CHECKNEW_parser___ReduceAction319(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction319_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction325_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction319_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction325_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction319();
-  INIT_ATTRIBUTES__parser___ReduceAction319(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction325();
+  INIT_ATTRIBUTES__parser___ReduceAction325(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction319(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction325(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction320[52] = {
-  {(bigint) 1111 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction326[55] = {
+  {(bigint) 1127 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction320" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction320 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction320 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1111 /* 5: ReduceAction320 < ReduceAction320: superclass typecheck marker */},
+  {(bigint) "ReduceAction326" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction326 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction326 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1127 /* 5: ReduceAction326 < ReduceAction326: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -118681,7 +116294,7 @@ const classtable_elt_t VFT_parser___ReduceAction320[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction320 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction326 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -118697,6 +116310,8 @@ const classtable_elt_t VFT_parser___ReduceAction320[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -118710,44 +116325,44 @@ const classtable_elt_t VFT_parser___ReduceAction320[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction320 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction320___action},
+  {(bigint) 0 /* 50: ReduceAction326 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction326___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction320 < ReduceAction320: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction326 < ReduceAction326: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction320::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction320(val_t p0){
+/* 2: Attribute ReduceAction326::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction326(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction320;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction326;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction320(void)
+val_t NEW_parser___ReduceAction326(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction320;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction326;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction320(val_t p0){
+void CHECKNEW_parser___ReduceAction326(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction320;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction326;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -118760,35 +116375,36 @@ void CHECKNEW_parser___ReduceAction320(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction320_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction326_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction320_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction326_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction320();
-  INIT_ATTRIBUTES__parser___ReduceAction320(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction326();
+  INIT_ATTRIBUTES__parser___ReduceAction326(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction320(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction326(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction321[52] = {
-  {(bigint) 1107 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction327[55] = {
+  {(bigint) 1123 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction321" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction321 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction321 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1107 /* 5: ReduceAction321 < ReduceAction321: superclass typecheck marker */},
+  {(bigint) "ReduceAction327" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction327 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction327 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1123 /* 5: ReduceAction327 < ReduceAction327: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -118801,7 +116417,7 @@ const classtable_elt_t VFT_parser___ReduceAction321[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction321 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction327 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -118817,6 +116433,8 @@ const classtable_elt_t VFT_parser___ReduceAction321[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -118830,44 +116448,44 @@ const classtable_elt_t VFT_parser___ReduceAction321[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction321 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction321___action},
+  {(bigint) 0 /* 50: ReduceAction327 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction327___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction321 < ReduceAction321: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction327 < ReduceAction327: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction321::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction321(val_t p0){
+/* 2: Attribute ReduceAction327::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction327(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction321;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction327;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction321(void)
+val_t NEW_parser___ReduceAction327(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction321;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction327;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction321(val_t p0){
+void CHECKNEW_parser___ReduceAction327(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction321;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction327;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -118880,35 +116498,36 @@ void CHECKNEW_parser___ReduceAction321(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction321_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction327_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction321_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction327_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction321();
-  INIT_ATTRIBUTES__parser___ReduceAction321(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction327();
+  INIT_ATTRIBUTES__parser___ReduceAction327(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction321(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction327(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction322[52] = {
-  {(bigint) 1103 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction328[55] = {
+  {(bigint) 1119 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction322" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction322 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction322 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1103 /* 5: ReduceAction322 < ReduceAction322: superclass typecheck marker */},
+  {(bigint) "ReduceAction328" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction328 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction328 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1119 /* 5: ReduceAction328 < ReduceAction328: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -118921,7 +116540,7 @@ const classtable_elt_t VFT_parser___ReduceAction322[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction322 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction328 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -118937,6 +116556,8 @@ const classtable_elt_t VFT_parser___ReduceAction322[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -118950,44 +116571,44 @@ const classtable_elt_t VFT_parser___ReduceAction322[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction322 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction322___action},
+  {(bigint) 0 /* 50: ReduceAction328 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction328___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction322 < ReduceAction322: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction328 < ReduceAction328: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction322::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction322(val_t p0){
+/* 2: Attribute ReduceAction328::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction328(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction322;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction328;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction322(void)
+val_t NEW_parser___ReduceAction328(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction322;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction328;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction322(val_t p0){
+void CHECKNEW_parser___ReduceAction328(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction322;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction328;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -119000,155 +116621,36 @@ void CHECKNEW_parser___ReduceAction322(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction322_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction328_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction322_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction328_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction322();
-  INIT_ATTRIBUTES__parser___ReduceAction322(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction328();
+  INIT_ATTRIBUTES__parser___ReduceAction328(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction322(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction328(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction323[52] = {
-  {(bigint) 1099 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction329[55] = {
+  {(bigint) 1115 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction323" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction323 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction323 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1099 /* 5: ReduceAction323 < ReduceAction323: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) "ReduceAction329" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction329 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction329 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1115 /* 5: ReduceAction329 < ReduceAction329: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction323 < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction323 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction323___action},
-  {(bigint) parser___ReduceAction___concat},
-  {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction323 < ReduceAction323: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute ReduceAction323::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction323(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction323;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___ReduceAction323(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction323;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___ReduceAction323(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction323;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_ReduceAction323_parser___ReduceAction___init(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction323_parser___ReduceAction___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction323();
-  INIT_ATTRIBUTES__parser___ReduceAction323(fra.me.REG[0]);
-  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction323(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_parser___ReduceAction324[52] = {
-  {(bigint) 1095 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction324" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction324 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction324 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1095 /* 5: ReduceAction324 < ReduceAction324: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -119161,7 +116663,7 @@ const classtable_elt_t VFT_parser___ReduceAction324[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction324 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction329 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -119177,6 +116679,8 @@ const classtable_elt_t VFT_parser___ReduceAction324[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -119190,44 +116694,44 @@ const classtable_elt_t VFT_parser___ReduceAction324[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction324 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction324___action},
+  {(bigint) 0 /* 50: ReduceAction329 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction329___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction324 < ReduceAction324: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction329 < ReduceAction329: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction324::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction324(val_t p0){
+/* 2: Attribute ReduceAction329::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction329(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction324;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction329;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction324(void)
+val_t NEW_parser___ReduceAction329(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction324;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction329;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction324(val_t p0){
+void CHECKNEW_parser___ReduceAction329(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction324;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction329;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -119240,35 +116744,36 @@ void CHECKNEW_parser___ReduceAction324(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction324_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction329_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction324_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction329_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction324();
-  INIT_ATTRIBUTES__parser___ReduceAction324(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction329();
+  INIT_ATTRIBUTES__parser___ReduceAction329(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction324(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction329(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction325[52] = {
-  {(bigint) 1091 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction330[55] = {
+  {(bigint) 1107 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction325" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction325 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction325 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1091 /* 5: ReduceAction325 < ReduceAction325: superclass typecheck marker */},
+  {(bigint) "ReduceAction330" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction330 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction330 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1107 /* 5: ReduceAction330 < ReduceAction330: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -119281,7 +116786,7 @@ const classtable_elt_t VFT_parser___ReduceAction325[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction325 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction330 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -119297,6 +116802,8 @@ const classtable_elt_t VFT_parser___ReduceAction325[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -119310,44 +116817,44 @@ const classtable_elt_t VFT_parser___ReduceAction325[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction325 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction325___action},
+  {(bigint) 0 /* 50: ReduceAction330 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction330___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction325 < ReduceAction325: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction330 < ReduceAction330: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction325::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction325(val_t p0){
+/* 2: Attribute ReduceAction330::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction330(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction325;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction330;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction325(void)
+val_t NEW_parser___ReduceAction330(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction325;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction330;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction325(val_t p0){
+void CHECKNEW_parser___ReduceAction330(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction325;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction330;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -119360,35 +116867,36 @@ void CHECKNEW_parser___ReduceAction325(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction325_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction330_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction325_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction330_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction325();
-  INIT_ATTRIBUTES__parser___ReduceAction325(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction330();
+  INIT_ATTRIBUTES__parser___ReduceAction330(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction325(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction330(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction326[52] = {
-  {(bigint) 1087 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction331[55] = {
+  {(bigint) 1103 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction326" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction326 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction326 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1087 /* 5: ReduceAction326 < ReduceAction326: superclass typecheck marker */},
+  {(bigint) "ReduceAction331" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction331 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction331 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1103 /* 5: ReduceAction331 < ReduceAction331: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -119401,7 +116909,7 @@ const classtable_elt_t VFT_parser___ReduceAction326[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction326 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction331 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -119417,6 +116925,8 @@ const classtable_elt_t VFT_parser___ReduceAction326[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -119430,44 +116940,44 @@ const classtable_elt_t VFT_parser___ReduceAction326[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction326 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction326___action},
+  {(bigint) 0 /* 50: ReduceAction331 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction331___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction326 < ReduceAction326: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction331 < ReduceAction331: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction326::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction326(val_t p0){
+/* 2: Attribute ReduceAction331::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction331(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction326;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction331;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction326(void)
+val_t NEW_parser___ReduceAction331(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction326;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction331;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction326(val_t p0){
+void CHECKNEW_parser___ReduceAction331(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction326;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction331;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -119480,35 +116990,36 @@ void CHECKNEW_parser___ReduceAction326(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction326_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction331_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction326_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction331_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction326();
-  INIT_ATTRIBUTES__parser___ReduceAction326(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction331();
+  INIT_ATTRIBUTES__parser___ReduceAction331(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction326(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction331(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction327[52] = {
-  {(bigint) 1083 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction332[55] = {
+  {(bigint) 1099 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction327" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction327 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction327 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1083 /* 5: ReduceAction327 < ReduceAction327: superclass typecheck marker */},
+  {(bigint) "ReduceAction332" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction332 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction332 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1099 /* 5: ReduceAction332 < ReduceAction332: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -119521,7 +117032,7 @@ const classtable_elt_t VFT_parser___ReduceAction327[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction327 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction332 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -119537,6 +117048,8 @@ const classtable_elt_t VFT_parser___ReduceAction327[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -119550,44 +117063,44 @@ const classtable_elt_t VFT_parser___ReduceAction327[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction327 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction327___action},
+  {(bigint) 0 /* 50: ReduceAction332 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction332___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction327 < ReduceAction327: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction332 < ReduceAction332: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction327::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction327(val_t p0){
+/* 2: Attribute ReduceAction332::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction332(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction327;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction332;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction327(void)
+val_t NEW_parser___ReduceAction332(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction327;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction332;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction327(val_t p0){
+void CHECKNEW_parser___ReduceAction332(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction327;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction332;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -119600,35 +117113,36 @@ void CHECKNEW_parser___ReduceAction327(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction327_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction332_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction327_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction332_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction327();
-  INIT_ATTRIBUTES__parser___ReduceAction327(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction332();
+  INIT_ATTRIBUTES__parser___ReduceAction332(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction327(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction332(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction328[52] = {
-  {(bigint) 1079 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction333[55] = {
+  {(bigint) 1095 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction328" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction328 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction328 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1079 /* 5: ReduceAction328 < ReduceAction328: superclass typecheck marker */},
+  {(bigint) "ReduceAction333" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction333 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction333 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1095 /* 5: ReduceAction333 < ReduceAction333: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -119641,7 +117155,7 @@ const classtable_elt_t VFT_parser___ReduceAction328[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction328 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction333 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -119657,6 +117171,8 @@ const classtable_elt_t VFT_parser___ReduceAction328[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -119670,44 +117186,44 @@ const classtable_elt_t VFT_parser___ReduceAction328[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction328 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction328___action},
+  {(bigint) 0 /* 50: ReduceAction333 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction333___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction328 < ReduceAction328: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction333 < ReduceAction333: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction328::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction328(val_t p0){
+/* 2: Attribute ReduceAction333::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction333(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction328;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction333;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction328(void)
+val_t NEW_parser___ReduceAction333(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction328;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction333;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction328(val_t p0){
+void CHECKNEW_parser___ReduceAction333(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction328;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction333;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -119720,35 +117236,36 @@ void CHECKNEW_parser___ReduceAction328(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction328_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction333_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction328_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction333_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction328();
-  INIT_ATTRIBUTES__parser___ReduceAction328(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction333();
+  INIT_ATTRIBUTES__parser___ReduceAction333(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction328(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction333(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction329[52] = {
-  {(bigint) 1075 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction334[55] = {
+  {(bigint) 1091 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction329" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction329 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction329 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1075 /* 5: ReduceAction329 < ReduceAction329: superclass typecheck marker */},
+  {(bigint) "ReduceAction334" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction334 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction334 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1091 /* 5: ReduceAction334 < ReduceAction334: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -119761,7 +117278,7 @@ const classtable_elt_t VFT_parser___ReduceAction329[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction329 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction334 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -119777,6 +117294,8 @@ const classtable_elt_t VFT_parser___ReduceAction329[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -119790,44 +117309,44 @@ const classtable_elt_t VFT_parser___ReduceAction329[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction329 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction329___action},
+  {(bigint) 0 /* 50: ReduceAction334 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction334___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction329 < ReduceAction329: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction334 < ReduceAction334: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction329::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction329(val_t p0){
+/* 2: Attribute ReduceAction334::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction334(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction329;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction334;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction329(void)
+val_t NEW_parser___ReduceAction334(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction329;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction334;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction329(val_t p0){
+void CHECKNEW_parser___ReduceAction334(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction329;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction334;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -119840,35 +117359,36 @@ void CHECKNEW_parser___ReduceAction329(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction329_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction334_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction329_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction334_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction329();
-  INIT_ATTRIBUTES__parser___ReduceAction329(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction334();
+  INIT_ATTRIBUTES__parser___ReduceAction334(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction329(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction334(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction333[52] = {
-  {(bigint) 1067 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction335[55] = {
+  {(bigint) 1087 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction333" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction333 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction333 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1067 /* 5: ReduceAction333 < ReduceAction333: superclass typecheck marker */},
+  {(bigint) "ReduceAction335" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction335 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction335 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1087 /* 5: ReduceAction335 < ReduceAction335: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -119881,7 +117401,7 @@ const classtable_elt_t VFT_parser___ReduceAction333[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction333 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction335 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -119897,6 +117417,8 @@ const classtable_elt_t VFT_parser___ReduceAction333[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -119910,44 +117432,44 @@ const classtable_elt_t VFT_parser___ReduceAction333[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction333 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction333___action},
+  {(bigint) 0 /* 50: ReduceAction335 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction335___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction333 < ReduceAction333: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction335 < ReduceAction335: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction333::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction333(val_t p0){
+/* 2: Attribute ReduceAction335::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction335(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction333;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction335;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction333(void)
+val_t NEW_parser___ReduceAction335(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction333;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction335;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction333(val_t p0){
+void CHECKNEW_parser___ReduceAction335(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction333;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction335;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -119960,35 +117482,36 @@ void CHECKNEW_parser___ReduceAction333(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction333_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction335_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction333_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction335_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction333();
-  INIT_ATTRIBUTES__parser___ReduceAction333(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction335();
+  INIT_ATTRIBUTES__parser___ReduceAction335(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction333(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction335(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction335[52] = {
-  {(bigint) 1063 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction336[55] = {
+  {(bigint) 1083 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction335" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction335 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction335 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1063 /* 5: ReduceAction335 < ReduceAction335: superclass typecheck marker */},
+  {(bigint) "ReduceAction336" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction336 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction336 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1083 /* 5: ReduceAction336 < ReduceAction336: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -120001,7 +117524,7 @@ const classtable_elt_t VFT_parser___ReduceAction335[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction335 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction336 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -120017,6 +117540,8 @@ const classtable_elt_t VFT_parser___ReduceAction335[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -120030,44 +117555,44 @@ const classtable_elt_t VFT_parser___ReduceAction335[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction335 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction335___action},
+  {(bigint) 0 /* 50: ReduceAction336 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction336___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction335 < ReduceAction335: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction336 < ReduceAction336: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction335::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction335(val_t p0){
+/* 2: Attribute ReduceAction336::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction336(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction335;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction336;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction335(void)
+val_t NEW_parser___ReduceAction336(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction335;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction336;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction335(val_t p0){
+void CHECKNEW_parser___ReduceAction336(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction335;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction336;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -120080,35 +117605,36 @@ void CHECKNEW_parser___ReduceAction335(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction335_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction336_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction335_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction336_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction335();
-  INIT_ATTRIBUTES__parser___ReduceAction335(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction336();
+  INIT_ATTRIBUTES__parser___ReduceAction336(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction335(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction336(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction337[52] = {
-  {(bigint) 1059 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction337[55] = {
+  {(bigint) 1079 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction337" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction337 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction337 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1059 /* 5: ReduceAction337 < ReduceAction337: superclass typecheck marker */},
+  {(bigint) 1079 /* 5: ReduceAction337 < ReduceAction337: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -120121,7 +117647,7 @@ const classtable_elt_t VFT_parser___ReduceAction337[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction337 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction337 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -120137,6 +117663,8 @@ const classtable_elt_t VFT_parser___ReduceAction337[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -120150,11 +117678,11 @@ const classtable_elt_t VFT_parser___ReduceAction337[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction337 < ReduceAction: superclass init_table position */},
+  {(bigint) 0 /* 50: ReduceAction337 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction337___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction337 < ReduceAction337: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction337 < ReduceAction337: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -120207,14 +117735,14 @@ val_t NEW_ReduceAction337_parser___ReduceAction___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_NEW_ReduceAction337_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   fra.me.REG[0] = NEW_parser___ReduceAction337();
   INIT_ATTRIBUTES__parser___ReduceAction337(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
@@ -120222,13 +117750,14 @@ val_t NEW_ReduceAction337_parser___ReduceAction___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction338[52] = {
-  {(bigint) 1055 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction341[55] = {
+  {(bigint) 1071 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction338" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction338 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction338 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1055 /* 5: ReduceAction338 < ReduceAction338: superclass typecheck marker */},
+  {(bigint) "ReduceAction341" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction341 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction341 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1071 /* 5: ReduceAction341 < ReduceAction341: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -120241,7 +117770,7 @@ const classtable_elt_t VFT_parser___ReduceAction338[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction338 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction341 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -120257,6 +117786,8 @@ const classtable_elt_t VFT_parser___ReduceAction338[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -120270,44 +117801,44 @@ const classtable_elt_t VFT_parser___ReduceAction338[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction338 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction338___action},
+  {(bigint) 0 /* 50: ReduceAction341 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction341___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction338 < ReduceAction338: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction341 < ReduceAction341: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction338::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction338(val_t p0){
+/* 2: Attribute ReduceAction341::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction341(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction338;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction341;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction338(void)
+val_t NEW_parser___ReduceAction341(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction338;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction341;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction338(val_t p0){
+void CHECKNEW_parser___ReduceAction341(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction338;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction341;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -120320,35 +117851,36 @@ void CHECKNEW_parser___ReduceAction338(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction338_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction341_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction338_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction341_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction338();
-  INIT_ATTRIBUTES__parser___ReduceAction338(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction341();
+  INIT_ATTRIBUTES__parser___ReduceAction341(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction338(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction341(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction339[52] = {
-  {(bigint) 1051 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction343[55] = {
+  {(bigint) 1067 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction339" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction339 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction339 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1051 /* 5: ReduceAction339 < ReduceAction339: superclass typecheck marker */},
+  {(bigint) "ReduceAction343" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction343 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction343 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1067 /* 5: ReduceAction343 < ReduceAction343: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -120361,7 +117893,7 @@ const classtable_elt_t VFT_parser___ReduceAction339[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction339 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction343 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -120377,6 +117909,8 @@ const classtable_elt_t VFT_parser___ReduceAction339[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -120390,44 +117924,44 @@ const classtable_elt_t VFT_parser___ReduceAction339[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction339 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction339___action},
+  {(bigint) 0 /* 50: ReduceAction343 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction343___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction339 < ReduceAction339: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction343 < ReduceAction343: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction339::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction339(val_t p0){
+/* 2: Attribute ReduceAction343::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction343(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction339;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction343;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction339(void)
+val_t NEW_parser___ReduceAction343(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction339;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction343;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction339(val_t p0){
+void CHECKNEW_parser___ReduceAction343(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction339;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction343;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -120440,35 +117974,36 @@ void CHECKNEW_parser___ReduceAction339(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction339_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction343_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction339_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction343_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction339();
-  INIT_ATTRIBUTES__parser___ReduceAction339(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction343();
+  INIT_ATTRIBUTES__parser___ReduceAction343(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction339(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction343(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction341[52] = {
-  {(bigint) 1043 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction345[55] = {
+  {(bigint) 1063 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction341" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction341 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction341 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1043 /* 5: ReduceAction341 < ReduceAction341: superclass typecheck marker */},
+  {(bigint) "ReduceAction345" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction345 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction345 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1063 /* 5: ReduceAction345 < ReduceAction345: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -120481,7 +118016,7 @@ const classtable_elt_t VFT_parser___ReduceAction341[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction341 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction345 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -120497,6 +118032,8 @@ const classtable_elt_t VFT_parser___ReduceAction341[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -120510,44 +118047,44 @@ const classtable_elt_t VFT_parser___ReduceAction341[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction341 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction341___action},
+  {(bigint) 0 /* 50: ReduceAction345 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction345___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction341 < ReduceAction341: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction345 < ReduceAction345: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction341::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction341(val_t p0){
+/* 2: Attribute ReduceAction345::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction345(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction341;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction345;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction341(void)
+val_t NEW_parser___ReduceAction345(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction341;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction345;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction341(val_t p0){
+void CHECKNEW_parser___ReduceAction345(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction341;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction345;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -120560,35 +118097,36 @@ void CHECKNEW_parser___ReduceAction341(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction341_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction345_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction341_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction345_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction341();
-  INIT_ATTRIBUTES__parser___ReduceAction341(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction345();
+  INIT_ATTRIBUTES__parser___ReduceAction345(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction341(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction345(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction343[52] = {
-  {(bigint) 1039 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction346[55] = {
+  {(bigint) 1059 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction343" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction343 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction343 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1039 /* 5: ReduceAction343 < ReduceAction343: superclass typecheck marker */},
+  {(bigint) "ReduceAction346" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction346 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction346 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1059 /* 5: ReduceAction346 < ReduceAction346: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -120601,7 +118139,7 @@ const classtable_elt_t VFT_parser___ReduceAction343[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction343 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction346 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -120617,6 +118155,8 @@ const classtable_elt_t VFT_parser___ReduceAction343[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -120630,44 +118170,44 @@ const classtable_elt_t VFT_parser___ReduceAction343[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction343 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction343___action},
+  {(bigint) 0 /* 50: ReduceAction346 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction346___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction343 < ReduceAction343: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction346 < ReduceAction346: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction343::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction343(val_t p0){
+/* 2: Attribute ReduceAction346::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction346(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction343;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction346;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction343(void)
+val_t NEW_parser___ReduceAction346(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction343;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction346;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction343(val_t p0){
+void CHECKNEW_parser___ReduceAction346(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction343;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction346;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -120680,35 +118220,159 @@ void CHECKNEW_parser___ReduceAction343(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction343_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction346_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction343_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction346_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction343();
-  INIT_ATTRIBUTES__parser___ReduceAction343(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction346();
+  INIT_ATTRIBUTES__parser___ReduceAction346(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction343(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction346(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction344[52] = {
-  {(bigint) 1035 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction347[55] = {
+  {(bigint) 1055 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReduceAction347" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction347 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction347 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1055 /* 5: ReduceAction347 < ReduceAction347: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) standard___time___Object___get_time},
+  {(bigint) 1 /* 19: ReduceAction347 < Object: superclass init_table position */},
+  {(bigint) standard___kernel___Object___object_id},
+  {(bigint) standard___kernel___Object___is_same_type},
+  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) standard___kernel___Object_____neq},
+  {(bigint) standard___kernel___Object___output},
+  {(bigint) standard___kernel___Object___output_class_name},
+  {(bigint) standard___kernel___Object___exit},
+  {(bigint) standard___kernel___Object___sys},
+  {(bigint) standard___file___Object___printn},
+  {(bigint) standard___file___Object___print},
+  {(bigint) standard___file___Object___getc},
+  {(bigint) standard___file___Object___gets},
+  {(bigint) standard___file___Object___stdin},
+  {(bigint) standard___file___Object___stdout},
+  {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 0 /* 50: ReduceAction347 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction347___action},
+  {(bigint) parser___ReduceAction___concat},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 54: ReduceAction347 < ReduceAction347: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ReduceAction347::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction347(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction347;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_parser___ReduceAction347(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction347;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_parser___ReduceAction347(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction347;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction347_parser___ReduceAction___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction347_parser___ReduceAction___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  REGB0 = p0;
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction347();
+  INIT_ATTRIBUTES__parser___ReduceAction347(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_parser___ReduceAction347(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___ReduceAction349[55] = {
+  {(bigint) 1051 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction344" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction344 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction344 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1035 /* 5: ReduceAction344 < ReduceAction344: superclass typecheck marker */},
+  {(bigint) "ReduceAction349" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction349 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction349 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1051 /* 5: ReduceAction349 < ReduceAction349: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -120721,7 +118385,7 @@ const classtable_elt_t VFT_parser___ReduceAction344[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction344 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction349 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -120737,6 +118401,8 @@ const classtable_elt_t VFT_parser___ReduceAction344[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -120750,44 +118416,44 @@ const classtable_elt_t VFT_parser___ReduceAction344[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction344 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction344___action},
+  {(bigint) 0 /* 50: ReduceAction349 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction349___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction344 < ReduceAction344: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction349 < ReduceAction349: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction344::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction344(val_t p0){
+/* 2: Attribute ReduceAction349::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction349(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction344;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction349;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction344(void)
+val_t NEW_parser___ReduceAction349(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction344;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction349;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction344(val_t p0){
+void CHECKNEW_parser___ReduceAction349(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction344;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction349;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -120800,155 +118466,36 @@ void CHECKNEW_parser___ReduceAction344(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction344_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction349_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction344_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction349_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction344();
-  INIT_ATTRIBUTES__parser___ReduceAction344(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction349();
+  INIT_ATTRIBUTES__parser___ReduceAction349(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction344(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction349(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction345[52] = {
-  {(bigint) 1031 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction351[55] = {
+  {(bigint) 1043 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction345" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction345 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction345 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1031 /* 5: ReduceAction345 < ReduceAction345: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) "ReduceAction351" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction351 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction351 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1043 /* 5: ReduceAction351 < ReduceAction351: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction345 < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction345 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction345___action},
-  {(bigint) parser___ReduceAction___concat},
-  {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction345 < ReduceAction345: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute ReduceAction345::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction345(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction345;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___ReduceAction345(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction345;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___ReduceAction345(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction345;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_ReduceAction345_parser___ReduceAction___init(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction345_parser___ReduceAction___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction345();
-  INIT_ATTRIBUTES__parser___ReduceAction345(fra.me.REG[0]);
-  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction345(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_parser___ReduceAction346[52] = {
-  {(bigint) 1027 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction346" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction346 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction346 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1027 /* 5: ReduceAction346 < ReduceAction346: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -120961,7 +118508,7 @@ const classtable_elt_t VFT_parser___ReduceAction346[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction346 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction351 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -120977,6 +118524,8 @@ const classtable_elt_t VFT_parser___ReduceAction346[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -120990,44 +118539,44 @@ const classtable_elt_t VFT_parser___ReduceAction346[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction346 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction346___action},
+  {(bigint) 0 /* 50: ReduceAction351 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction351___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction346 < ReduceAction346: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction351 < ReduceAction351: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction346::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction346(val_t p0){
+/* 2: Attribute ReduceAction351::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction351(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction346;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction351;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction346(void)
+val_t NEW_parser___ReduceAction351(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction346;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction351;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction346(val_t p0){
+void CHECKNEW_parser___ReduceAction351(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction346;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction351;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -121040,35 +118589,36 @@ void CHECKNEW_parser___ReduceAction346(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction346_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction351_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction346_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction351_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction346();
-  INIT_ATTRIBUTES__parser___ReduceAction346(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction351();
+  INIT_ATTRIBUTES__parser___ReduceAction351(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction346(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction351(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction347[52] = {
-  {(bigint) 1023 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction352[55] = {
+  {(bigint) 1039 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction347" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction347 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction347 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1023 /* 5: ReduceAction347 < ReduceAction347: superclass typecheck marker */},
+  {(bigint) "ReduceAction352" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction352 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction352 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1039 /* 5: ReduceAction352 < ReduceAction352: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -121081,7 +118631,7 @@ const classtable_elt_t VFT_parser___ReduceAction347[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction347 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction352 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -121097,6 +118647,8 @@ const classtable_elt_t VFT_parser___ReduceAction347[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -121110,44 +118662,44 @@ const classtable_elt_t VFT_parser___ReduceAction347[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction347 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction347___action},
+  {(bigint) 0 /* 50: ReduceAction352 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction352___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction347 < ReduceAction347: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction352 < ReduceAction352: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction347::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction347(val_t p0){
+/* 2: Attribute ReduceAction352::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction352(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction347;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction352;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction347(void)
+val_t NEW_parser___ReduceAction352(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction347;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction352;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction347(val_t p0){
+void CHECKNEW_parser___ReduceAction352(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction347;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction352;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -121160,35 +118712,36 @@ void CHECKNEW_parser___ReduceAction347(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction347_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction352_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction347_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction352_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction347();
-  INIT_ATTRIBUTES__parser___ReduceAction347(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction352();
+  INIT_ATTRIBUTES__parser___ReduceAction352(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction347(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction352(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction348[52] = {
-  {(bigint) 1019 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction353[55] = {
+  {(bigint) 1035 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction348" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction348 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction348 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1019 /* 5: ReduceAction348 < ReduceAction348: superclass typecheck marker */},
+  {(bigint) "ReduceAction353" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction353 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction353 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1035 /* 5: ReduceAction353 < ReduceAction353: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -121201,7 +118754,7 @@ const classtable_elt_t VFT_parser___ReduceAction348[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction348 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction353 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -121217,6 +118770,8 @@ const classtable_elt_t VFT_parser___ReduceAction348[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -121230,44 +118785,44 @@ const classtable_elt_t VFT_parser___ReduceAction348[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction348 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction348___action},
+  {(bigint) 0 /* 50: ReduceAction353 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction353___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction348 < ReduceAction348: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction353 < ReduceAction353: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction348::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction348(val_t p0){
+/* 2: Attribute ReduceAction353::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction353(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction348;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction353;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction348(void)
+val_t NEW_parser___ReduceAction353(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction348;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction353;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction348(val_t p0){
+void CHECKNEW_parser___ReduceAction353(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction348;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction353;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -121280,35 +118835,36 @@ void CHECKNEW_parser___ReduceAction348(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction348_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction353_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction348_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction353_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction348();
-  INIT_ATTRIBUTES__parser___ReduceAction348(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction353();
+  INIT_ATTRIBUTES__parser___ReduceAction353(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction348(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction353(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction349[52] = {
-  {(bigint) 1015 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction354[55] = {
+  {(bigint) 1031 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction349" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction349 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction349 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1015 /* 5: ReduceAction349 < ReduceAction349: superclass typecheck marker */},
+  {(bigint) "ReduceAction354" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction354 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction354 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1031 /* 5: ReduceAction354 < ReduceAction354: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -121321,7 +118877,7 @@ const classtable_elt_t VFT_parser___ReduceAction349[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction349 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction354 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -121337,6 +118893,8 @@ const classtable_elt_t VFT_parser___ReduceAction349[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -121350,44 +118908,44 @@ const classtable_elt_t VFT_parser___ReduceAction349[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction349 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction349___action},
+  {(bigint) 0 /* 50: ReduceAction354 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction354___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction349 < ReduceAction349: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction354 < ReduceAction354: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction349::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction349(val_t p0){
+/* 2: Attribute ReduceAction354::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction354(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction349;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction354;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction349(void)
+val_t NEW_parser___ReduceAction354(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction349;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction354;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction349(val_t p0){
+void CHECKNEW_parser___ReduceAction354(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction349;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction354;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -121400,35 +118958,36 @@ void CHECKNEW_parser___ReduceAction349(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction349_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction354_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction349_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction354_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction349();
-  INIT_ATTRIBUTES__parser___ReduceAction349(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction354();
+  INIT_ATTRIBUTES__parser___ReduceAction354(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction349(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction354(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction350[52] = {
-  {(bigint) 1007 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction355[55] = {
+  {(bigint) 1027 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction350" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction350 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction350 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1007 /* 5: ReduceAction350 < ReduceAction350: superclass typecheck marker */},
+  {(bigint) "ReduceAction355" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction355 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction355 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1027 /* 5: ReduceAction355 < ReduceAction355: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -121441,7 +119000,7 @@ const classtable_elt_t VFT_parser___ReduceAction350[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction350 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction355 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -121457,6 +119016,8 @@ const classtable_elt_t VFT_parser___ReduceAction350[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -121470,44 +119031,44 @@ const classtable_elt_t VFT_parser___ReduceAction350[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction350 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction350___action},
+  {(bigint) 0 /* 50: ReduceAction355 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction355___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction350 < ReduceAction350: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction355 < ReduceAction355: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction350::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction350(val_t p0){
+/* 2: Attribute ReduceAction355::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction355(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction350;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction355;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction350(void)
+val_t NEW_parser___ReduceAction355(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction350;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction355;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction350(val_t p0){
+void CHECKNEW_parser___ReduceAction355(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction350;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction355;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -121520,35 +119081,36 @@ void CHECKNEW_parser___ReduceAction350(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction350_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction355_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction350_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction355_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction350();
-  INIT_ATTRIBUTES__parser___ReduceAction350(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction355();
+  INIT_ATTRIBUTES__parser___ReduceAction355(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction350(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction355(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction351[52] = {
-  {(bigint) 1003 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction356[55] = {
+  {(bigint) 1023 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction351" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction351 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction351 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1003 /* 5: ReduceAction351 < ReduceAction351: superclass typecheck marker */},
+  {(bigint) "ReduceAction356" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction356 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction356 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1023 /* 5: ReduceAction356 < ReduceAction356: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -121561,7 +119123,7 @@ const classtable_elt_t VFT_parser___ReduceAction351[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction351 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction356 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -121577,6 +119139,8 @@ const classtable_elt_t VFT_parser___ReduceAction351[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -121590,44 +119154,44 @@ const classtable_elt_t VFT_parser___ReduceAction351[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction351 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction351___action},
+  {(bigint) 0 /* 50: ReduceAction356 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction356___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction351 < ReduceAction351: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction356 < ReduceAction356: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction351::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction351(val_t p0){
+/* 2: Attribute ReduceAction356::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction356(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction351;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction356;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction351(void)
+val_t NEW_parser___ReduceAction356(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction351;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction356;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction351(val_t p0){
+void CHECKNEW_parser___ReduceAction356(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction351;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction356;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -121640,35 +119204,35 @@ void CHECKNEW_parser___ReduceAction351(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction351_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction356_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction351_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction356_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction351();
-  INIT_ATTRIBUTES__parser___ReduceAction351(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction356();
+  INIT_ATTRIBUTES__parser___ReduceAction356(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction351(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction356(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction352[52] = {
-  {(bigint) 999 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction357[55] = {
+  {(bigint) 1019 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction352" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction352 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction352 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 999 /* 5: ReduceAction352 < ReduceAction352: superclass typecheck marker */},
+  {(bigint) "ReduceAction357" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction357 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction357 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1019 /* 5: ReduceAction357 < ReduceAction357: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -121679,129 +119243,10 @@ const classtable_elt_t VFT_parser___ReduceAction352[52] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction352 < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction352 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction352___action},
-  {(bigint) parser___ReduceAction___concat},
-  {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction352 < ReduceAction352: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute ReduceAction352::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction352(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction352;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___ReduceAction352(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction352;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___ReduceAction352(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction352;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_ReduceAction352_parser___ReduceAction___init(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction352_parser___ReduceAction___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction352();
-  INIT_ATTRIBUTES__parser___ReduceAction352(fra.me.REG[0]);
-  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction352(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_parser___ReduceAction353[52] = {
-  {(bigint) 995 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction353" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction353 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction353 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 995 /* 5: ReduceAction353 < ReduceAction353: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction353 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction357 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -121817,6 +119262,8 @@ const classtable_elt_t VFT_parser___ReduceAction353[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -121830,44 +119277,44 @@ const classtable_elt_t VFT_parser___ReduceAction353[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction353 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction353___action},
+  {(bigint) 0 /* 50: ReduceAction357 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction357___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction353 < ReduceAction353: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction357 < ReduceAction357: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction353::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction353(val_t p0){
+/* 2: Attribute ReduceAction357::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction357(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction353;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction357;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction353(void)
+val_t NEW_parser___ReduceAction357(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction353;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction357;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction353(val_t p0){
+void CHECKNEW_parser___ReduceAction357(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction353;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction357;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -121880,35 +119327,36 @@ void CHECKNEW_parser___ReduceAction353(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction353_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction357_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction353_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction357_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction353();
-  INIT_ATTRIBUTES__parser___ReduceAction353(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction357();
+  INIT_ATTRIBUTES__parser___ReduceAction357(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction353(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction357(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction355[52] = {
-  {(bigint) 991 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction358[55] = {
+  {(bigint) 1015 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction355" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction355 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction355 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 991 /* 5: ReduceAction355 < ReduceAction355: superclass typecheck marker */},
+  {(bigint) "ReduceAction358" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction358 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction358 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1015 /* 5: ReduceAction358 < ReduceAction358: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -121921,7 +119369,7 @@ const classtable_elt_t VFT_parser___ReduceAction355[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction355 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction358 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -121937,6 +119385,8 @@ const classtable_elt_t VFT_parser___ReduceAction355[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -121950,44 +119400,44 @@ const classtable_elt_t VFT_parser___ReduceAction355[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction355 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction355___action},
+  {(bigint) 0 /* 50: ReduceAction358 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction358___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction355 < ReduceAction355: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction358 < ReduceAction358: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction355::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction355(val_t p0){
+/* 2: Attribute ReduceAction358::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction358(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction355;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction358;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction355(void)
+val_t NEW_parser___ReduceAction358(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction355;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction358;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction355(val_t p0){
+void CHECKNEW_parser___ReduceAction358(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction355;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction358;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -122000,35 +119450,36 @@ void CHECKNEW_parser___ReduceAction355(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction355_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction358_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction355_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction358_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction355();
-  INIT_ATTRIBUTES__parser___ReduceAction355(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction358();
+  INIT_ATTRIBUTES__parser___ReduceAction358(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction355(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction358(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction356[52] = {
-  {(bigint) 987 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction359[55] = {
+  {(bigint) 1011 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction356" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction356 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction356 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 987 /* 5: ReduceAction356 < ReduceAction356: superclass typecheck marker */},
+  {(bigint) "ReduceAction359" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction359 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction359 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1011 /* 5: ReduceAction359 < ReduceAction359: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -122041,7 +119492,7 @@ const classtable_elt_t VFT_parser___ReduceAction356[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction356 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction359 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -122057,6 +119508,8 @@ const classtable_elt_t VFT_parser___ReduceAction356[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -122070,44 +119523,44 @@ const classtable_elt_t VFT_parser___ReduceAction356[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction356 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction356___action},
+  {(bigint) 0 /* 50: ReduceAction359 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction359___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction356 < ReduceAction356: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction359 < ReduceAction359: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction356::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction356(val_t p0){
+/* 2: Attribute ReduceAction359::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction359(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction356;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction359;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction356(void)
+val_t NEW_parser___ReduceAction359(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction356;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction359;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction356(val_t p0){
+void CHECKNEW_parser___ReduceAction359(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction356;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction359;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -122120,35 +119573,36 @@ void CHECKNEW_parser___ReduceAction356(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction356_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction359_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction356_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction359_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction356();
-  INIT_ATTRIBUTES__parser___ReduceAction356(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction359();
+  INIT_ATTRIBUTES__parser___ReduceAction359(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction356(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction359(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction358[52] = {
-  {(bigint) 983 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction360[55] = {
+  {(bigint) 1003 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction358" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction358 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction358 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 983 /* 5: ReduceAction358 < ReduceAction358: superclass typecheck marker */},
+  {(bigint) "ReduceAction360" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction360 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction360 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1003 /* 5: ReduceAction360 < ReduceAction360: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -122161,7 +119615,7 @@ const classtable_elt_t VFT_parser___ReduceAction358[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction358 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction360 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -122177,6 +119631,8 @@ const classtable_elt_t VFT_parser___ReduceAction358[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -122190,44 +119646,44 @@ const classtable_elt_t VFT_parser___ReduceAction358[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction358 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction358___action},
+  {(bigint) 0 /* 50: ReduceAction360 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction360___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction358 < ReduceAction358: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction360 < ReduceAction360: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction358::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction358(val_t p0){
+/* 2: Attribute ReduceAction360::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction360(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction358;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction360;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction358(void)
+val_t NEW_parser___ReduceAction360(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction358;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction360;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction358(val_t p0){
+void CHECKNEW_parser___ReduceAction360(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction358;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction360;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -122240,35 +119696,36 @@ void CHECKNEW_parser___ReduceAction358(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction358_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction360_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction358_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction360_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction358();
-  INIT_ATTRIBUTES__parser___ReduceAction358(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction360();
+  INIT_ATTRIBUTES__parser___ReduceAction360(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction358(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction360(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction359[52] = {
-  {(bigint) 979 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction361[55] = {
+  {(bigint) 999 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction359" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction359 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction359 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 979 /* 5: ReduceAction359 < ReduceAction359: superclass typecheck marker */},
+  {(bigint) "ReduceAction361" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction361 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction361 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 999 /* 5: ReduceAction361 < ReduceAction361: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -122281,7 +119738,7 @@ const classtable_elt_t VFT_parser___ReduceAction359[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction359 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction361 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -122297,6 +119754,8 @@ const classtable_elt_t VFT_parser___ReduceAction359[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -122310,44 +119769,44 @@ const classtable_elt_t VFT_parser___ReduceAction359[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction359 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction359___action},
+  {(bigint) 0 /* 50: ReduceAction361 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction361___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction359 < ReduceAction359: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction361 < ReduceAction361: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction359::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction359(val_t p0){
+/* 2: Attribute ReduceAction361::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction361(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction359;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction361;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction359(void)
+val_t NEW_parser___ReduceAction361(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction359;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction361;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction359(val_t p0){
+void CHECKNEW_parser___ReduceAction361(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction359;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction361;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -122360,35 +119819,36 @@ void CHECKNEW_parser___ReduceAction359(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction359_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction361_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction359_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction361_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction359();
-  INIT_ATTRIBUTES__parser___ReduceAction359(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction361();
+  INIT_ATTRIBUTES__parser___ReduceAction361(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction359(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction361(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction360[52] = {
-  {(bigint) 971 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction363[55] = {
+  {(bigint) 995 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction360" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction360 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction360 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 971 /* 5: ReduceAction360 < ReduceAction360: superclass typecheck marker */},
+  {(bigint) "ReduceAction363" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction363 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction363 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 995 /* 5: ReduceAction363 < ReduceAction363: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -122401,7 +119861,7 @@ const classtable_elt_t VFT_parser___ReduceAction360[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction360 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction363 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -122417,6 +119877,8 @@ const classtable_elt_t VFT_parser___ReduceAction360[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -122430,44 +119892,44 @@ const classtable_elt_t VFT_parser___ReduceAction360[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction360 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction360___action},
+  {(bigint) 0 /* 50: ReduceAction363 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction363___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction360 < ReduceAction360: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction363 < ReduceAction363: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction360::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction360(val_t p0){
+/* 2: Attribute ReduceAction363::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction363(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction360;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction363;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction360(void)
+val_t NEW_parser___ReduceAction363(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction360;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction363;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction360(val_t p0){
+void CHECKNEW_parser___ReduceAction363(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction360;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction363;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -122480,35 +119942,36 @@ void CHECKNEW_parser___ReduceAction360(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction360_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction363_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction360_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction363_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction360();
-  INIT_ATTRIBUTES__parser___ReduceAction360(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction363();
+  INIT_ATTRIBUTES__parser___ReduceAction363(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction360(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction363(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction362[52] = {
-  {(bigint) 967 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction364[55] = {
+  {(bigint) 991 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction362" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction362 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction362 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 967 /* 5: ReduceAction362 < ReduceAction362: superclass typecheck marker */},
+  {(bigint) "ReduceAction364" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction364 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction364 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 991 /* 5: ReduceAction364 < ReduceAction364: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -122521,7 +119984,7 @@ const classtable_elt_t VFT_parser___ReduceAction362[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction362 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction364 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -122537,6 +120000,8 @@ const classtable_elt_t VFT_parser___ReduceAction362[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -122550,44 +120015,44 @@ const classtable_elt_t VFT_parser___ReduceAction362[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction362 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction362___action},
+  {(bigint) 0 /* 50: ReduceAction364 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction364___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction362 < ReduceAction362: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction364 < ReduceAction364: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction362::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction362(val_t p0){
+/* 2: Attribute ReduceAction364::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction364(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction362;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction364;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction362(void)
+val_t NEW_parser___ReduceAction364(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction362;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction364;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction362(val_t p0){
+void CHECKNEW_parser___ReduceAction364(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction362;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction364;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -122600,35 +120065,36 @@ void CHECKNEW_parser___ReduceAction362(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction362_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction364_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction362_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction364_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction362();
-  INIT_ATTRIBUTES__parser___ReduceAction362(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction364();
+  INIT_ATTRIBUTES__parser___ReduceAction364(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction362(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction364(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction363[52] = {
-  {(bigint) 963 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction366[55] = {
+  {(bigint) 987 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction363" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction363 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction363 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 963 /* 5: ReduceAction363 < ReduceAction363: superclass typecheck marker */},
+  {(bigint) "ReduceAction366" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction366 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction366 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 987 /* 5: ReduceAction366 < ReduceAction366: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -122641,7 +120107,7 @@ const classtable_elt_t VFT_parser___ReduceAction363[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction363 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction366 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -122657,6 +120123,8 @@ const classtable_elt_t VFT_parser___ReduceAction363[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -122670,44 +120138,44 @@ const classtable_elt_t VFT_parser___ReduceAction363[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction363 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction363___action},
+  {(bigint) 0 /* 50: ReduceAction366 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction366___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction363 < ReduceAction363: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction366 < ReduceAction366: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction363::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction363(val_t p0){
+/* 2: Attribute ReduceAction366::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction366(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction363;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction366;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction363(void)
+val_t NEW_parser___ReduceAction366(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction363;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction366;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction363(val_t p0){
+void CHECKNEW_parser___ReduceAction366(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction363;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction366;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -122720,35 +120188,36 @@ void CHECKNEW_parser___ReduceAction363(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction363_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction366_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction363_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction366_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction363();
-  INIT_ATTRIBUTES__parser___ReduceAction363(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction366();
+  INIT_ATTRIBUTES__parser___ReduceAction366(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction363(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction366(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction365[52] = {
-  {(bigint) 959 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction367[55] = {
+  {(bigint) 983 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction365" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction365 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction365 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 959 /* 5: ReduceAction365 < ReduceAction365: superclass typecheck marker */},
+  {(bigint) "ReduceAction367" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction367 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction367 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 983 /* 5: ReduceAction367 < ReduceAction367: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -122761,7 +120230,7 @@ const classtable_elt_t VFT_parser___ReduceAction365[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction365 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction367 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -122777,6 +120246,8 @@ const classtable_elt_t VFT_parser___ReduceAction365[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -122790,44 +120261,44 @@ const classtable_elt_t VFT_parser___ReduceAction365[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction365 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction365___action},
+  {(bigint) 0 /* 50: ReduceAction367 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction367___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction365 < ReduceAction365: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction367 < ReduceAction367: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction365::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction365(val_t p0){
+/* 2: Attribute ReduceAction367::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction367(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction365;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction367;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction365(void)
+val_t NEW_parser___ReduceAction367(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction365;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction367;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction365(val_t p0){
+void CHECKNEW_parser___ReduceAction367(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction365;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction367;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -122840,35 +120311,36 @@ void CHECKNEW_parser___ReduceAction365(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction365_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction367_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction365_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction367_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction365();
-  INIT_ATTRIBUTES__parser___ReduceAction365(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction367();
+  INIT_ATTRIBUTES__parser___ReduceAction367(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction365(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction367(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction366[52] = {
-  {(bigint) 955 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction368[55] = {
+  {(bigint) 979 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction366" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction366 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction366 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 955 /* 5: ReduceAction366 < ReduceAction366: superclass typecheck marker */},
+  {(bigint) "ReduceAction368" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction368 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction368 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 979 /* 5: ReduceAction368 < ReduceAction368: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -122881,7 +120353,7 @@ const classtable_elt_t VFT_parser___ReduceAction366[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction366 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction368 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -122897,6 +120369,8 @@ const classtable_elt_t VFT_parser___ReduceAction366[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -122910,44 +120384,44 @@ const classtable_elt_t VFT_parser___ReduceAction366[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction366 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction366___action},
+  {(bigint) 0 /* 50: ReduceAction368 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction368___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction366 < ReduceAction366: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction368 < ReduceAction368: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction366::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction366(val_t p0){
+/* 2: Attribute ReduceAction368::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction368(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction366;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction368;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction366(void)
+val_t NEW_parser___ReduceAction368(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction366;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction368;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction366(val_t p0){
+void CHECKNEW_parser___ReduceAction368(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction366;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction368;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -122960,35 +120434,36 @@ void CHECKNEW_parser___ReduceAction366(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction366_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction368_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction366_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction368_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction366();
-  INIT_ATTRIBUTES__parser___ReduceAction366(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction368();
+  INIT_ATTRIBUTES__parser___ReduceAction368(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction366(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction368(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction367[52] = {
-  {(bigint) 951 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction370[55] = {
+  {(bigint) 971 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction367" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction367 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction367 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 951 /* 5: ReduceAction367 < ReduceAction367: superclass typecheck marker */},
+  {(bigint) "ReduceAction370" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction370 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction370 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 971 /* 5: ReduceAction370 < ReduceAction370: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -123001,7 +120476,7 @@ const classtable_elt_t VFT_parser___ReduceAction367[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction367 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction370 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -123017,6 +120492,8 @@ const classtable_elt_t VFT_parser___ReduceAction367[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -123030,44 +120507,44 @@ const classtable_elt_t VFT_parser___ReduceAction367[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction367 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction367___action},
+  {(bigint) 0 /* 50: ReduceAction370 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction370___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction367 < ReduceAction367: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction370 < ReduceAction370: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction367::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction367(val_t p0){
+/* 2: Attribute ReduceAction370::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction370(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction367;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction370;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction367(void)
+val_t NEW_parser___ReduceAction370(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction367;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction370;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction367(val_t p0){
+void CHECKNEW_parser___ReduceAction370(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction367;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction370;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -123080,35 +120557,159 @@ void CHECKNEW_parser___ReduceAction367(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction367_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction370_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction367_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction370_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction367();
-  INIT_ATTRIBUTES__parser___ReduceAction367(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction370();
+  INIT_ATTRIBUTES__parser___ReduceAction370(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction367(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction370(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction368[52] = {
-  {(bigint) 947 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction371[55] = {
+  {(bigint) 967 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction368" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction368 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction368 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 947 /* 5: ReduceAction368 < ReduceAction368: superclass typecheck marker */},
+  {(bigint) "ReduceAction371" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction371 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction371 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 967 /* 5: ReduceAction371 < ReduceAction371: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) standard___time___Object___get_time},
+  {(bigint) 1 /* 19: ReduceAction371 < Object: superclass init_table position */},
+  {(bigint) standard___kernel___Object___object_id},
+  {(bigint) standard___kernel___Object___is_same_type},
+  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) standard___kernel___Object_____neq},
+  {(bigint) standard___kernel___Object___output},
+  {(bigint) standard___kernel___Object___output_class_name},
+  {(bigint) standard___kernel___Object___exit},
+  {(bigint) standard___kernel___Object___sys},
+  {(bigint) standard___file___Object___printn},
+  {(bigint) standard___file___Object___print},
+  {(bigint) standard___file___Object___getc},
+  {(bigint) standard___file___Object___gets},
+  {(bigint) standard___file___Object___stdin},
+  {(bigint) standard___file___Object___stdout},
+  {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 0 /* 50: ReduceAction371 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction371___action},
+  {(bigint) parser___ReduceAction___concat},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 54: ReduceAction371 < ReduceAction371: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ReduceAction371::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction371(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction371;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_parser___ReduceAction371(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction371;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_parser___ReduceAction371(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction371;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction371_parser___ReduceAction___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction371_parser___ReduceAction___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  REGB0 = p0;
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction371();
+  INIT_ATTRIBUTES__parser___ReduceAction371(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_parser___ReduceAction371(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___ReduceAction373[55] = {
+  {(bigint) 963 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReduceAction373" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction373 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction373 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 963 /* 5: ReduceAction373 < ReduceAction373: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -123121,7 +120722,7 @@ const classtable_elt_t VFT_parser___ReduceAction368[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction368 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction373 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -123137,6 +120738,8 @@ const classtable_elt_t VFT_parser___ReduceAction368[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -123150,44 +120753,44 @@ const classtable_elt_t VFT_parser___ReduceAction368[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction368 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction368___action},
+  {(bigint) 0 /* 50: ReduceAction373 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction373___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction368 < ReduceAction368: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction373 < ReduceAction373: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction368::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction368(val_t p0){
+/* 2: Attribute ReduceAction373::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction373(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction368;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction373;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction368(void)
+val_t NEW_parser___ReduceAction373(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction368;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction373;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction368(val_t p0){
+void CHECKNEW_parser___ReduceAction373(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction368;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction373;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -123200,35 +120803,36 @@ void CHECKNEW_parser___ReduceAction368(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction368_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction373_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction368_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction373_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction368();
-  INIT_ATTRIBUTES__parser___ReduceAction368(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction373();
+  INIT_ATTRIBUTES__parser___ReduceAction373(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction368(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction373(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction369[52] = {
-  {(bigint) 943 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction374[55] = {
+  {(bigint) 959 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction369" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction369 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction369 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 943 /* 5: ReduceAction369 < ReduceAction369: superclass typecheck marker */},
+  {(bigint) "ReduceAction374" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction374 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction374 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 959 /* 5: ReduceAction374 < ReduceAction374: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -123241,7 +120845,7 @@ const classtable_elt_t VFT_parser___ReduceAction369[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction369 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction374 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -123257,6 +120861,8 @@ const classtable_elt_t VFT_parser___ReduceAction369[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -123270,44 +120876,44 @@ const classtable_elt_t VFT_parser___ReduceAction369[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction369 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction369___action},
+  {(bigint) 0 /* 50: ReduceAction374 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction374___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction369 < ReduceAction369: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction374 < ReduceAction374: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction369::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction369(val_t p0){
+/* 2: Attribute ReduceAction374::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction374(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction369;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction374;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction369(void)
+val_t NEW_parser___ReduceAction374(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction369;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction374;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction369(val_t p0){
+void CHECKNEW_parser___ReduceAction374(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction369;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction374;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -123320,35 +120926,36 @@ void CHECKNEW_parser___ReduceAction369(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction369_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction374_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction369_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction374_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction369();
-  INIT_ATTRIBUTES__parser___ReduceAction369(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction374();
+  INIT_ATTRIBUTES__parser___ReduceAction374(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction369(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction374(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction376[52] = {
-  {(bigint) 935 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction375[55] = {
+  {(bigint) 955 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction376" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction376 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction376 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 935 /* 5: ReduceAction376 < ReduceAction376: superclass typecheck marker */},
+  {(bigint) "ReduceAction375" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction375 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction375 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 955 /* 5: ReduceAction375 < ReduceAction375: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -123361,7 +120968,7 @@ const classtable_elt_t VFT_parser___ReduceAction376[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction376 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction375 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -123377,6 +120984,8 @@ const classtable_elt_t VFT_parser___ReduceAction376[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -123390,44 +120999,44 @@ const classtable_elt_t VFT_parser___ReduceAction376[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction376 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction376___action},
+  {(bigint) 0 /* 50: ReduceAction375 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction375___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction376 < ReduceAction376: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction375 < ReduceAction375: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction376::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction376(val_t p0){
+/* 2: Attribute ReduceAction375::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction375(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction376;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction375;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction376(void)
+val_t NEW_parser___ReduceAction375(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction376;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction375;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction376(val_t p0){
+void CHECKNEW_parser___ReduceAction375(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction376;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction375;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -123440,35 +121049,36 @@ void CHECKNEW_parser___ReduceAction376(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction376_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction375_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction376_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction375_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction376();
-  INIT_ATTRIBUTES__parser___ReduceAction376(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction375();
+  INIT_ATTRIBUTES__parser___ReduceAction375(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction376(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction375(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction377[52] = {
-  {(bigint) 931 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction376[55] = {
+  {(bigint) 951 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction377" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction377 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction377 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 931 /* 5: ReduceAction377 < ReduceAction377: superclass typecheck marker */},
+  {(bigint) "ReduceAction376" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction376 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction376 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 951 /* 5: ReduceAction376 < ReduceAction376: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -123481,7 +121091,7 @@ const classtable_elt_t VFT_parser___ReduceAction377[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction377 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction376 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -123497,6 +121107,8 @@ const classtable_elt_t VFT_parser___ReduceAction377[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -123510,44 +121122,44 @@ const classtable_elt_t VFT_parser___ReduceAction377[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction377 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction377___action},
+  {(bigint) 0 /* 50: ReduceAction376 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction376___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction377 < ReduceAction377: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction376 < ReduceAction376: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction377::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction377(val_t p0){
+/* 2: Attribute ReduceAction376::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction376(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction377;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction376;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction377(void)
+val_t NEW_parser___ReduceAction376(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction377;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction376;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction377(val_t p0){
+void CHECKNEW_parser___ReduceAction376(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction377;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction376;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -123560,35 +121172,36 @@ void CHECKNEW_parser___ReduceAction377(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction377_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction376_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction377_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction376_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction377();
-  INIT_ATTRIBUTES__parser___ReduceAction377(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction376();
+  INIT_ATTRIBUTES__parser___ReduceAction376(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction377(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction376(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction378[52] = {
-  {(bigint) 927 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction377[55] = {
+  {(bigint) 947 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction378" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction378 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction378 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 927 /* 5: ReduceAction378 < ReduceAction378: superclass typecheck marker */},
+  {(bigint) "ReduceAction377" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction377 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction377 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 947 /* 5: ReduceAction377 < ReduceAction377: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -123601,7 +121214,7 @@ const classtable_elt_t VFT_parser___ReduceAction378[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction378 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction377 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -123617,6 +121230,8 @@ const classtable_elt_t VFT_parser___ReduceAction378[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -123630,44 +121245,44 @@ const classtable_elt_t VFT_parser___ReduceAction378[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction378 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction378___action},
+  {(bigint) 0 /* 50: ReduceAction377 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction377___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction378 < ReduceAction378: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction377 < ReduceAction377: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction378::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction378(val_t p0){
+/* 2: Attribute ReduceAction377::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction377(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction378;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction377;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction378(void)
+val_t NEW_parser___ReduceAction377(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction378;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction377;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction378(val_t p0){
+void CHECKNEW_parser___ReduceAction377(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction378;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction377;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -123680,35 +121295,36 @@ void CHECKNEW_parser___ReduceAction378(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction378_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction377_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction378_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction377_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction378();
-  INIT_ATTRIBUTES__parser___ReduceAction378(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction377();
+  INIT_ATTRIBUTES__parser___ReduceAction377(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction378(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction377(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction379[52] = {
-  {(bigint) 923 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction384[55] = {
+  {(bigint) 943 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction379" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction379 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction379 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 923 /* 5: ReduceAction379 < ReduceAction379: superclass typecheck marker */},
+  {(bigint) "ReduceAction384" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction384 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction384 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 943 /* 5: ReduceAction384 < ReduceAction384: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -123721,7 +121337,7 @@ const classtable_elt_t VFT_parser___ReduceAction379[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction379 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction384 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -123737,6 +121353,8 @@ const classtable_elt_t VFT_parser___ReduceAction379[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -123750,44 +121368,44 @@ const classtable_elt_t VFT_parser___ReduceAction379[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction379 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction379___action},
+  {(bigint) 0 /* 50: ReduceAction384 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction384___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction379 < ReduceAction379: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction384 < ReduceAction384: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction379::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction379(val_t p0){
+/* 2: Attribute ReduceAction384::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction384(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction379;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction384;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction379(void)
+val_t NEW_parser___ReduceAction384(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction379;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction384;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction379(val_t p0){
+void CHECKNEW_parser___ReduceAction384(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction379;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction384;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -123800,35 +121418,36 @@ void CHECKNEW_parser___ReduceAction379(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction379_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction384_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction379_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction384_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction379();
-  INIT_ATTRIBUTES__parser___ReduceAction379(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction384();
+  INIT_ATTRIBUTES__parser___ReduceAction384(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction379(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction384(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction380[52] = {
-  {(bigint) 919 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction385[55] = {
+  {(bigint) 939 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction380" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction380 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction380 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 919 /* 5: ReduceAction380 < ReduceAction380: superclass typecheck marker */},
+  {(bigint) "ReduceAction385" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction385 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction385 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 939 /* 5: ReduceAction385 < ReduceAction385: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -123841,7 +121460,7 @@ const classtable_elt_t VFT_parser___ReduceAction380[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction380 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction385 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -123857,6 +121476,8 @@ const classtable_elt_t VFT_parser___ReduceAction380[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -123870,44 +121491,44 @@ const classtable_elt_t VFT_parser___ReduceAction380[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction380 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction380___action},
+  {(bigint) 0 /* 50: ReduceAction385 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction385___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction380 < ReduceAction380: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction385 < ReduceAction385: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction380::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction380(val_t p0){
+/* 2: Attribute ReduceAction385::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction385(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction380;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction385;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction380(void)
+val_t NEW_parser___ReduceAction385(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction380;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction385;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction380(val_t p0){
+void CHECKNEW_parser___ReduceAction385(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction380;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction385;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -123920,35 +121541,36 @@ void CHECKNEW_parser___ReduceAction380(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction380_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction385_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction380_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction385_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction380();
-  INIT_ATTRIBUTES__parser___ReduceAction380(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction385();
+  INIT_ATTRIBUTES__parser___ReduceAction385(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction380(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction385(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction381[52] = {
-  {(bigint) 915 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction386[55] = {
+  {(bigint) 935 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction381" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction381 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction381 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 915 /* 5: ReduceAction381 < ReduceAction381: superclass typecheck marker */},
+  {(bigint) "ReduceAction386" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction386 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction386 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 935 /* 5: ReduceAction386 < ReduceAction386: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -123961,7 +121583,7 @@ const classtable_elt_t VFT_parser___ReduceAction381[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction381 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction386 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -123977,6 +121599,8 @@ const classtable_elt_t VFT_parser___ReduceAction381[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -123990,44 +121614,44 @@ const classtable_elt_t VFT_parser___ReduceAction381[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction381 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction381___action},
+  {(bigint) 0 /* 50: ReduceAction386 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction386___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction381 < ReduceAction381: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction386 < ReduceAction386: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction381::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction381(val_t p0){
+/* 2: Attribute ReduceAction386::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction386(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction381;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction386;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction381(void)
+val_t NEW_parser___ReduceAction386(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction381;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction386;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction381(val_t p0){
+void CHECKNEW_parser___ReduceAction386(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction381;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction386;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -124040,35 +121664,36 @@ void CHECKNEW_parser___ReduceAction381(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction381_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction386_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction381_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction386_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction381();
-  INIT_ATTRIBUTES__parser___ReduceAction381(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction386();
+  INIT_ATTRIBUTES__parser___ReduceAction386(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction381(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction386(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction382[52] = {
-  {(bigint) 911 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction387[55] = {
+  {(bigint) 931 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction382" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction382 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction382 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 911 /* 5: ReduceAction382 < ReduceAction382: superclass typecheck marker */},
+  {(bigint) "ReduceAction387" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction387 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction387 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 931 /* 5: ReduceAction387 < ReduceAction387: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -124081,7 +121706,7 @@ const classtable_elt_t VFT_parser___ReduceAction382[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction382 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction387 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -124097,6 +121722,8 @@ const classtable_elt_t VFT_parser___ReduceAction382[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -124110,44 +121737,44 @@ const classtable_elt_t VFT_parser___ReduceAction382[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction382 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction382___action},
+  {(bigint) 0 /* 50: ReduceAction387 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction387___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction382 < ReduceAction382: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction387 < ReduceAction387: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction382::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction382(val_t p0){
+/* 2: Attribute ReduceAction387::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction387(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction382;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction387;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction382(void)
+val_t NEW_parser___ReduceAction387(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction382;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction387;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction382(val_t p0){
+void CHECKNEW_parser___ReduceAction387(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction382;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction387;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -124160,35 +121787,36 @@ void CHECKNEW_parser___ReduceAction382(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction382_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction387_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction382_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction387_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction382();
-  INIT_ATTRIBUTES__parser___ReduceAction382(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction387();
+  INIT_ATTRIBUTES__parser___ReduceAction387(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction382(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction387(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction383[52] = {
-  {(bigint) 907 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction388[55] = {
+  {(bigint) 927 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction383" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction383 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction383 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 907 /* 5: ReduceAction383 < ReduceAction383: superclass typecheck marker */},
+  {(bigint) "ReduceAction388" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction388 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction388 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 927 /* 5: ReduceAction388 < ReduceAction388: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -124201,7 +121829,7 @@ const classtable_elt_t VFT_parser___ReduceAction383[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction383 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction388 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -124217,6 +121845,8 @@ const classtable_elt_t VFT_parser___ReduceAction383[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -124230,44 +121860,44 @@ const classtable_elt_t VFT_parser___ReduceAction383[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction383 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction383___action},
+  {(bigint) 0 /* 50: ReduceAction388 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction388___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction383 < ReduceAction383: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction388 < ReduceAction388: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction383::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction383(val_t p0){
+/* 2: Attribute ReduceAction388::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction388(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction383;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction388;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction383(void)
+val_t NEW_parser___ReduceAction388(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction383;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction388;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction383(val_t p0){
+void CHECKNEW_parser___ReduceAction388(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction383;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction388;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -124280,35 +121910,36 @@ void CHECKNEW_parser___ReduceAction383(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction383_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction388_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction383_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction388_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction383();
-  INIT_ATTRIBUTES__parser___ReduceAction383(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction388();
+  INIT_ATTRIBUTES__parser___ReduceAction388(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction383(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction388(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction384[52] = {
-  {(bigint) 903 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction389[55] = {
+  {(bigint) 923 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction384" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction384 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction384 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 903 /* 5: ReduceAction384 < ReduceAction384: superclass typecheck marker */},
+  {(bigint) "ReduceAction389" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction389 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction389 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 923 /* 5: ReduceAction389 < ReduceAction389: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -124321,7 +121952,7 @@ const classtable_elt_t VFT_parser___ReduceAction384[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction384 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction389 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -124337,6 +121968,8 @@ const classtable_elt_t VFT_parser___ReduceAction384[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -124350,44 +121983,44 @@ const classtable_elt_t VFT_parser___ReduceAction384[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction384 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction384___action},
+  {(bigint) 0 /* 50: ReduceAction389 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction389___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction384 < ReduceAction384: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction389 < ReduceAction389: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction384::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction384(val_t p0){
+/* 2: Attribute ReduceAction389::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction389(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction384;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction389;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction384(void)
+val_t NEW_parser___ReduceAction389(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction384;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction389;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction384(val_t p0){
+void CHECKNEW_parser___ReduceAction389(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction384;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction389;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -124400,35 +122033,36 @@ void CHECKNEW_parser___ReduceAction384(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction384_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction389_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction384_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction389_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction384();
-  INIT_ATTRIBUTES__parser___ReduceAction384(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction389();
+  INIT_ATTRIBUTES__parser___ReduceAction389(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction384(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction389(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction385[52] = {
-  {(bigint) 899 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction390[55] = {
+  {(bigint) 915 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction385" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction385 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction385 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 899 /* 5: ReduceAction385 < ReduceAction385: superclass typecheck marker */},
+  {(bigint) "ReduceAction390" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction390 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction390 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 915 /* 5: ReduceAction390 < ReduceAction390: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -124441,7 +122075,7 @@ const classtable_elt_t VFT_parser___ReduceAction385[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction385 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction390 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -124457,6 +122091,8 @@ const classtable_elt_t VFT_parser___ReduceAction385[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -124470,44 +122106,44 @@ const classtable_elt_t VFT_parser___ReduceAction385[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction385 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction385___action},
+  {(bigint) 0 /* 50: ReduceAction390 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction390___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction385 < ReduceAction385: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction390 < ReduceAction390: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction385::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction385(val_t p0){
+/* 2: Attribute ReduceAction390::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction390(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction385;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction390;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction385(void)
+val_t NEW_parser___ReduceAction390(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction385;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction390;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction385(val_t p0){
+void CHECKNEW_parser___ReduceAction390(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction385;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction390;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -124520,35 +122156,36 @@ void CHECKNEW_parser___ReduceAction385(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction385_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction390_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction385_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction390_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction385();
-  INIT_ATTRIBUTES__parser___ReduceAction385(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction390();
+  INIT_ATTRIBUTES__parser___ReduceAction390(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction385(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction390(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction386[52] = {
-  {(bigint) 895 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction391[55] = {
+  {(bigint) 911 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction386" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction386 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction386 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 895 /* 5: ReduceAction386 < ReduceAction386: superclass typecheck marker */},
+  {(bigint) "ReduceAction391" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction391 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction391 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 911 /* 5: ReduceAction391 < ReduceAction391: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -124561,7 +122198,7 @@ const classtable_elt_t VFT_parser___ReduceAction386[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction386 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction391 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -124577,6 +122214,8 @@ const classtable_elt_t VFT_parser___ReduceAction386[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -124590,44 +122229,44 @@ const classtable_elt_t VFT_parser___ReduceAction386[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction386 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction386___action},
+  {(bigint) 0 /* 50: ReduceAction391 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction391___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction386 < ReduceAction386: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction391 < ReduceAction391: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction386::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction386(val_t p0){
+/* 2: Attribute ReduceAction391::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction391(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction386;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction391;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction386(void)
+val_t NEW_parser___ReduceAction391(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction386;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction391;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction386(val_t p0){
+void CHECKNEW_parser___ReduceAction391(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction386;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction391;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -124640,35 +122279,36 @@ void CHECKNEW_parser___ReduceAction386(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction386_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction391_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction386_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction391_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction386();
-  INIT_ATTRIBUTES__parser___ReduceAction386(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction391();
+  INIT_ATTRIBUTES__parser___ReduceAction391(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction386(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction391(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction387[52] = {
-  {(bigint) 891 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction392[55] = {
+  {(bigint) 907 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction387" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction387 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction387 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 891 /* 5: ReduceAction387 < ReduceAction387: superclass typecheck marker */},
+  {(bigint) "ReduceAction392" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction392 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction392 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 907 /* 5: ReduceAction392 < ReduceAction392: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -124681,7 +122321,7 @@ const classtable_elt_t VFT_parser___ReduceAction387[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction387 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction392 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -124697,6 +122337,8 @@ const classtable_elt_t VFT_parser___ReduceAction387[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -124710,44 +122352,44 @@ const classtable_elt_t VFT_parser___ReduceAction387[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction387 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction387___action},
+  {(bigint) 0 /* 50: ReduceAction392 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction392___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction387 < ReduceAction387: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction392 < ReduceAction392: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction387::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction387(val_t p0){
+/* 2: Attribute ReduceAction392::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction392(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction387;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction392;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction387(void)
+val_t NEW_parser___ReduceAction392(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction387;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction392;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction387(val_t p0){
+void CHECKNEW_parser___ReduceAction392(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction387;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction392;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -124760,35 +122402,36 @@ void CHECKNEW_parser___ReduceAction387(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction387_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction392_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction387_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction392_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction387();
-  INIT_ATTRIBUTES__parser___ReduceAction387(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction392();
+  INIT_ATTRIBUTES__parser___ReduceAction392(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction387(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction392(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction388[52] = {
-  {(bigint) 887 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction393[55] = {
+  {(bigint) 903 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction388" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction388 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction388 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 887 /* 5: ReduceAction388 < ReduceAction388: superclass typecheck marker */},
+  {(bigint) "ReduceAction393" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction393 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction393 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 903 /* 5: ReduceAction393 < ReduceAction393: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -124801,7 +122444,7 @@ const classtable_elt_t VFT_parser___ReduceAction388[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction388 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction393 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -124817,6 +122460,8 @@ const classtable_elt_t VFT_parser___ReduceAction388[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -124830,44 +122475,44 @@ const classtable_elt_t VFT_parser___ReduceAction388[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction388 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction388___action},
+  {(bigint) 0 /* 50: ReduceAction393 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction393___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction388 < ReduceAction388: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction393 < ReduceAction393: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction388::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction388(val_t p0){
+/* 2: Attribute ReduceAction393::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction393(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction388;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction393;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction388(void)
+val_t NEW_parser___ReduceAction393(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction388;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction393;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction388(val_t p0){
+void CHECKNEW_parser___ReduceAction393(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction388;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction393;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -124880,35 +122525,36 @@ void CHECKNEW_parser___ReduceAction388(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction388_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction393_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction388_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction393_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction388();
-  INIT_ATTRIBUTES__parser___ReduceAction388(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction393();
+  INIT_ATTRIBUTES__parser___ReduceAction393(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction388(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction393(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction391[52] = {
-  {(bigint) 879 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction394[55] = {
+  {(bigint) 899 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction391" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction391 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction391 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 879 /* 5: ReduceAction391 < ReduceAction391: superclass typecheck marker */},
+  {(bigint) "ReduceAction394" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction394 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction394 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 899 /* 5: ReduceAction394 < ReduceAction394: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -124921,7 +122567,7 @@ const classtable_elt_t VFT_parser___ReduceAction391[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction391 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction394 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -124937,6 +122583,8 @@ const classtable_elt_t VFT_parser___ReduceAction391[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -124950,44 +122598,44 @@ const classtable_elt_t VFT_parser___ReduceAction391[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction391 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction391___action},
+  {(bigint) 0 /* 50: ReduceAction394 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction394___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction391 < ReduceAction391: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction394 < ReduceAction394: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction391::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction391(val_t p0){
+/* 2: Attribute ReduceAction394::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction394(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction391;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction394;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction391(void)
+val_t NEW_parser___ReduceAction394(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction391;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction394;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction391(val_t p0){
+void CHECKNEW_parser___ReduceAction394(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction391;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction394;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -125000,35 +122648,36 @@ void CHECKNEW_parser___ReduceAction391(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction391_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction394_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction391_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction394_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction391();
-  INIT_ATTRIBUTES__parser___ReduceAction391(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction394();
+  INIT_ATTRIBUTES__parser___ReduceAction394(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction391(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction394(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction392[52] = {
-  {(bigint) 875 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction395[55] = {
+  {(bigint) 895 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction392" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction392 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction392 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 875 /* 5: ReduceAction392 < ReduceAction392: superclass typecheck marker */},
+  {(bigint) "ReduceAction395" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction395 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction395 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 895 /* 5: ReduceAction395 < ReduceAction395: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -125041,7 +122690,7 @@ const classtable_elt_t VFT_parser___ReduceAction392[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction392 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction395 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -125057,6 +122706,8 @@ const classtable_elt_t VFT_parser___ReduceAction392[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -125070,44 +122721,44 @@ const classtable_elt_t VFT_parser___ReduceAction392[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction392 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction392___action},
+  {(bigint) 0 /* 50: ReduceAction395 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction395___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction392 < ReduceAction392: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction395 < ReduceAction395: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction392::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction392(val_t p0){
+/* 2: Attribute ReduceAction395::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction395(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction392;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction395;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction392(void)
+val_t NEW_parser___ReduceAction395(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction392;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction395;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction392(val_t p0){
+void CHECKNEW_parser___ReduceAction395(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction392;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction395;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -125120,35 +122771,36 @@ void CHECKNEW_parser___ReduceAction392(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction392_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction395_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction392_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction395_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction392();
-  INIT_ATTRIBUTES__parser___ReduceAction392(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction395();
+  INIT_ATTRIBUTES__parser___ReduceAction395(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction392(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction395(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction393[52] = {
-  {(bigint) 871 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction396[55] = {
+  {(bigint) 891 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction393" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction393 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction393 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 871 /* 5: ReduceAction393 < ReduceAction393: superclass typecheck marker */},
+  {(bigint) "ReduceAction396" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction396 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction396 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 891 /* 5: ReduceAction396 < ReduceAction396: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -125161,7 +122813,7 @@ const classtable_elt_t VFT_parser___ReduceAction393[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction393 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction396 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -125177,6 +122829,8 @@ const classtable_elt_t VFT_parser___ReduceAction393[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -125190,44 +122844,44 @@ const classtable_elt_t VFT_parser___ReduceAction393[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction393 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction393___action},
+  {(bigint) 0 /* 50: ReduceAction396 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction396___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction393 < ReduceAction393: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction396 < ReduceAction396: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction393::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction393(val_t p0){
+/* 2: Attribute ReduceAction396::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction396(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction393;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction396;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction393(void)
+val_t NEW_parser___ReduceAction396(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction393;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction396;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction393(val_t p0){
+void CHECKNEW_parser___ReduceAction396(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction393;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction396;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -125240,35 +122894,36 @@ void CHECKNEW_parser___ReduceAction393(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction393_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction396_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction393_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction396_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction393();
-  INIT_ATTRIBUTES__parser___ReduceAction393(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction396();
+  INIT_ATTRIBUTES__parser___ReduceAction396(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction393(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction396(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction394[52] = {
-  {(bigint) 867 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction398[55] = {
+  {(bigint) 887 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction394" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction394 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction394 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 867 /* 5: ReduceAction394 < ReduceAction394: superclass typecheck marker */},
+  {(bigint) "ReduceAction398" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction398 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction398 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 887 /* 5: ReduceAction398 < ReduceAction398: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -125281,7 +122936,7 @@ const classtable_elt_t VFT_parser___ReduceAction394[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction394 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction398 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -125297,6 +122952,8 @@ const classtable_elt_t VFT_parser___ReduceAction394[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -125310,44 +122967,44 @@ const classtable_elt_t VFT_parser___ReduceAction394[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction394 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction394___action},
+  {(bigint) 0 /* 50: ReduceAction398 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction398___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction394 < ReduceAction394: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction398 < ReduceAction398: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction394::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction394(val_t p0){
+/* 2: Attribute ReduceAction398::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction398(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction394;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction398;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction394(void)
+val_t NEW_parser___ReduceAction398(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction394;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction398;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction394(val_t p0){
+void CHECKNEW_parser___ReduceAction398(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction394;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction398;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -125360,35 +123017,36 @@ void CHECKNEW_parser___ReduceAction394(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction394_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction398_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction394_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction398_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction394();
-  INIT_ATTRIBUTES__parser___ReduceAction394(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction398();
+  INIT_ATTRIBUTES__parser___ReduceAction398(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction394(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction398(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction395[52] = {
-  {(bigint) 863 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction399[55] = {
+  {(bigint) 883 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction395" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction395 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction395 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 863 /* 5: ReduceAction395 < ReduceAction395: superclass typecheck marker */},
+  {(bigint) "ReduceAction399" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction399 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction399 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 883 /* 5: ReduceAction399 < ReduceAction399: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -125401,7 +123059,7 @@ const classtable_elt_t VFT_parser___ReduceAction395[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction395 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction399 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -125417,6 +123075,8 @@ const classtable_elt_t VFT_parser___ReduceAction395[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -125430,44 +123090,44 @@ const classtable_elt_t VFT_parser___ReduceAction395[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction395 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction395___action},
+  {(bigint) 0 /* 50: ReduceAction399 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction399___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction395 < ReduceAction395: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction399 < ReduceAction399: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction395::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction395(val_t p0){
+/* 2: Attribute ReduceAction399::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction399(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction395;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction399;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction395(void)
+val_t NEW_parser___ReduceAction399(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction395;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction399;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction395(val_t p0){
+void CHECKNEW_parser___ReduceAction399(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction395;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction399;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -125480,35 +123140,36 @@ void CHECKNEW_parser___ReduceAction395(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction395_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction399_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction395_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction399_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction395();
-  INIT_ATTRIBUTES__parser___ReduceAction395(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction399();
+  INIT_ATTRIBUTES__parser___ReduceAction399(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction395(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction399(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction396[52] = {
-  {(bigint) 859 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction400[55] = {
+  {(bigint) 871 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction396" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction396 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction396 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 859 /* 5: ReduceAction396 < ReduceAction396: superclass typecheck marker */},
+  {(bigint) "ReduceAction400" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction400 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction400 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 871 /* 5: ReduceAction400 < ReduceAction400: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -125521,7 +123182,7 @@ const classtable_elt_t VFT_parser___ReduceAction396[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction396 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction400 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -125537,6 +123198,8 @@ const classtable_elt_t VFT_parser___ReduceAction396[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -125550,44 +123213,44 @@ const classtable_elt_t VFT_parser___ReduceAction396[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction396 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction396___action},
+  {(bigint) 0 /* 50: ReduceAction400 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction400___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction396 < ReduceAction396: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction400 < ReduceAction400: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction396::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction396(val_t p0){
+/* 2: Attribute ReduceAction400::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction400(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction396;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction400;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction396(void)
+val_t NEW_parser___ReduceAction400(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction396;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction400;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction396(val_t p0){
+void CHECKNEW_parser___ReduceAction400(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction396;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction400;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -125600,35 +123263,36 @@ void CHECKNEW_parser___ReduceAction396(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction396_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction400_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction396_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction400_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction396();
-  INIT_ATTRIBUTES__parser___ReduceAction396(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction400();
+  INIT_ATTRIBUTES__parser___ReduceAction400(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction396(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction400(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction398[52] = {
-  {(bigint) 855 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction401[55] = {
+  {(bigint) 867 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction398" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction398 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction398 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 855 /* 5: ReduceAction398 < ReduceAction398: superclass typecheck marker */},
+  {(bigint) "ReduceAction401" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction401 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction401 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 867 /* 5: ReduceAction401 < ReduceAction401: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -125641,7 +123305,7 @@ const classtable_elt_t VFT_parser___ReduceAction398[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction398 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction401 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -125657,6 +123321,8 @@ const classtable_elt_t VFT_parser___ReduceAction398[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -125670,44 +123336,44 @@ const classtable_elt_t VFT_parser___ReduceAction398[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction398 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction398___action},
+  {(bigint) 0 /* 50: ReduceAction401 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction401___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction398 < ReduceAction398: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction401 < ReduceAction401: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction398::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction398(val_t p0){
+/* 2: Attribute ReduceAction401::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction401(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction398;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction401;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction398(void)
+val_t NEW_parser___ReduceAction401(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction398;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction401;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction398(val_t p0){
+void CHECKNEW_parser___ReduceAction401(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction398;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction401;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -125720,35 +123386,36 @@ void CHECKNEW_parser___ReduceAction398(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction398_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction401_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction398_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction401_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction398();
-  INIT_ATTRIBUTES__parser___ReduceAction398(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction401();
+  INIT_ATTRIBUTES__parser___ReduceAction401(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction398(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction401(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction399[52] = {
-  {(bigint) 851 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction402[55] = {
+  {(bigint) 863 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction399" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction399 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction399 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 851 /* 5: ReduceAction399 < ReduceAction399: superclass typecheck marker */},
+  {(bigint) "ReduceAction402" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction402 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction402 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 863 /* 5: ReduceAction402 < ReduceAction402: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -125761,7 +123428,7 @@ const classtable_elt_t VFT_parser___ReduceAction399[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction399 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction402 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -125777,6 +123444,8 @@ const classtable_elt_t VFT_parser___ReduceAction399[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -125790,44 +123459,44 @@ const classtable_elt_t VFT_parser___ReduceAction399[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction399 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction399___action},
+  {(bigint) 0 /* 50: ReduceAction402 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction402___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction399 < ReduceAction399: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction402 < ReduceAction402: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction399::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction399(val_t p0){
+/* 2: Attribute ReduceAction402::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction402(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction399;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction402;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction399(void)
+val_t NEW_parser___ReduceAction402(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction399;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction402;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction399(val_t p0){
+void CHECKNEW_parser___ReduceAction402(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction399;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction402;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -125840,35 +123509,36 @@ void CHECKNEW_parser___ReduceAction399(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction399_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction402_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction399_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction402_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction399();
-  INIT_ATTRIBUTES__parser___ReduceAction399(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction402();
+  INIT_ATTRIBUTES__parser___ReduceAction402(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction399(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction402(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction400[52] = {
-  {(bigint) 839 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction403[55] = {
+  {(bigint) 859 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction400" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction400 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction400 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 839 /* 5: ReduceAction400 < ReduceAction400: superclass typecheck marker */},
+  {(bigint) "ReduceAction403" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction403 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction403 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 859 /* 5: ReduceAction403 < ReduceAction403: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -125881,7 +123551,7 @@ const classtable_elt_t VFT_parser___ReduceAction400[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction400 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction403 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -125897,6 +123567,8 @@ const classtable_elt_t VFT_parser___ReduceAction400[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -125910,44 +123582,44 @@ const classtable_elt_t VFT_parser___ReduceAction400[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction400 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction400___action},
+  {(bigint) 0 /* 50: ReduceAction403 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction403___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction400 < ReduceAction400: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction403 < ReduceAction403: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction400::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction400(val_t p0){
+/* 2: Attribute ReduceAction403::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction403(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction400;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction403;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction400(void)
+val_t NEW_parser___ReduceAction403(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction400;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction403;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction400(val_t p0){
+void CHECKNEW_parser___ReduceAction403(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction400;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction403;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -125960,35 +123632,36 @@ void CHECKNEW_parser___ReduceAction400(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction400_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction403_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction400_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction403_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction400();
-  INIT_ATTRIBUTES__parser___ReduceAction400(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction403();
+  INIT_ATTRIBUTES__parser___ReduceAction403(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction400(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction403(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction401[52] = {
-  {(bigint) 835 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction404[55] = {
+  {(bigint) 855 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction401" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction401 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction401 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 835 /* 5: ReduceAction401 < ReduceAction401: superclass typecheck marker */},
+  {(bigint) "ReduceAction404" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction404 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction404 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 855 /* 5: ReduceAction404 < ReduceAction404: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -126001,7 +123674,7 @@ const classtable_elt_t VFT_parser___ReduceAction401[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction401 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction404 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -126017,6 +123690,8 @@ const classtable_elt_t VFT_parser___ReduceAction401[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -126030,44 +123705,44 @@ const classtable_elt_t VFT_parser___ReduceAction401[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction401 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction401___action},
+  {(bigint) 0 /* 50: ReduceAction404 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction404___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction401 < ReduceAction401: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction404 < ReduceAction404: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction401::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction401(val_t p0){
+/* 2: Attribute ReduceAction404::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction404(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction401;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction404;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction401(void)
+val_t NEW_parser___ReduceAction404(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction401;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction404;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction401(val_t p0){
+void CHECKNEW_parser___ReduceAction404(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction401;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction404;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -126080,35 +123755,36 @@ void CHECKNEW_parser___ReduceAction401(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction401_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction404_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction401_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction404_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction401();
-  INIT_ATTRIBUTES__parser___ReduceAction401(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction404();
+  INIT_ATTRIBUTES__parser___ReduceAction404(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction401(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction404(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction403[52] = {
-  {(bigint) 831 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction406[55] = {
+  {(bigint) 851 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction403" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction403 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction403 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 831 /* 5: ReduceAction403 < ReduceAction403: superclass typecheck marker */},
+  {(bigint) "ReduceAction406" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction406 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction406 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 851 /* 5: ReduceAction406 < ReduceAction406: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -126121,7 +123797,7 @@ const classtable_elt_t VFT_parser___ReduceAction403[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction403 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction406 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -126137,6 +123813,8 @@ const classtable_elt_t VFT_parser___ReduceAction403[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -126150,44 +123828,44 @@ const classtable_elt_t VFT_parser___ReduceAction403[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction403 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction403___action},
+  {(bigint) 0 /* 50: ReduceAction406 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction406___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction403 < ReduceAction403: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction406 < ReduceAction406: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction403::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction403(val_t p0){
+/* 2: Attribute ReduceAction406::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction406(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction403;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction406;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction403(void)
+val_t NEW_parser___ReduceAction406(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction403;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction406;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction403(val_t p0){
+void CHECKNEW_parser___ReduceAction406(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction403;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction406;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -126200,35 +123878,36 @@ void CHECKNEW_parser___ReduceAction403(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction403_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction406_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction403_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction406_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction403();
-  INIT_ATTRIBUTES__parser___ReduceAction403(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction406();
+  INIT_ATTRIBUTES__parser___ReduceAction406(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction403(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction406(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction406[52] = {
-  {(bigint) 827 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction407[55] = {
+  {(bigint) 847 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction406" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction406 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction406 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 827 /* 5: ReduceAction406 < ReduceAction406: superclass typecheck marker */},
+  {(bigint) "ReduceAction407" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction407 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction407 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 847 /* 5: ReduceAction407 < ReduceAction407: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -126241,7 +123920,7 @@ const classtable_elt_t VFT_parser___ReduceAction406[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction406 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction407 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -126257,6 +123936,8 @@ const classtable_elt_t VFT_parser___ReduceAction406[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -126270,44 +123951,44 @@ const classtable_elt_t VFT_parser___ReduceAction406[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction406 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction406___action},
+  {(bigint) 0 /* 50: ReduceAction407 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction407___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction406 < ReduceAction406: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction407 < ReduceAction407: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction406::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction406(val_t p0){
+/* 2: Attribute ReduceAction407::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction407(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction406;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction407;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction406(void)
+val_t NEW_parser___ReduceAction407(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction406;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction407;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction406(val_t p0){
+void CHECKNEW_parser___ReduceAction407(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction406;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction407;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -126320,35 +124001,36 @@ void CHECKNEW_parser___ReduceAction406(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction406_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction407_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction406_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction407_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction406();
-  INIT_ATTRIBUTES__parser___ReduceAction406(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction407();
+  INIT_ATTRIBUTES__parser___ReduceAction407(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction406(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction407(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction411[52] = {
-  {(bigint) 819 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction408[55] = {
+  {(bigint) 843 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction411" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction411 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction411 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 819 /* 5: ReduceAction411 < ReduceAction411: superclass typecheck marker */},
+  {(bigint) "ReduceAction408" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction408 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction408 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 843 /* 5: ReduceAction408 < ReduceAction408: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -126361,7 +124043,7 @@ const classtable_elt_t VFT_parser___ReduceAction411[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction411 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction408 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -126377,6 +124059,8 @@ const classtable_elt_t VFT_parser___ReduceAction411[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -126390,44 +124074,44 @@ const classtable_elt_t VFT_parser___ReduceAction411[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction411 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction411___action},
+  {(bigint) 0 /* 50: ReduceAction408 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction408___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction411 < ReduceAction411: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction408 < ReduceAction408: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction411::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction411(val_t p0){
+/* 2: Attribute ReduceAction408::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction408(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction411;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction408;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction411(void)
+val_t NEW_parser___ReduceAction408(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction411;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction408;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction411(val_t p0){
+void CHECKNEW_parser___ReduceAction408(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction411;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction408;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -126440,35 +124124,159 @@ void CHECKNEW_parser___ReduceAction411(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction411_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction408_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction411_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction408_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction411();
-  INIT_ATTRIBUTES__parser___ReduceAction411(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction408();
+  INIT_ATTRIBUTES__parser___ReduceAction408(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction411(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction408(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction412[52] = {
-  {(bigint) 815 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction409[55] = {
+  {(bigint) 839 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction412" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction412 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction412 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 815 /* 5: ReduceAction412 < ReduceAction412: superclass typecheck marker */},
+  {(bigint) "ReduceAction409" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction409 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction409 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 839 /* 5: ReduceAction409 < ReduceAction409: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) standard___time___Object___get_time},
+  {(bigint) 1 /* 19: ReduceAction409 < Object: superclass init_table position */},
+  {(bigint) standard___kernel___Object___object_id},
+  {(bigint) standard___kernel___Object___is_same_type},
+  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) standard___kernel___Object_____neq},
+  {(bigint) standard___kernel___Object___output},
+  {(bigint) standard___kernel___Object___output_class_name},
+  {(bigint) standard___kernel___Object___exit},
+  {(bigint) standard___kernel___Object___sys},
+  {(bigint) standard___file___Object___printn},
+  {(bigint) standard___file___Object___print},
+  {(bigint) standard___file___Object___getc},
+  {(bigint) standard___file___Object___gets},
+  {(bigint) standard___file___Object___stdin},
+  {(bigint) standard___file___Object___stdout},
+  {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 0 /* 50: ReduceAction409 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction409___action},
+  {(bigint) parser___ReduceAction___concat},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 54: ReduceAction409 < ReduceAction409: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ReduceAction409::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction409(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction409;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_parser___ReduceAction409(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction409;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_parser___ReduceAction409(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction409;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction409_parser___ReduceAction___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction409_parser___ReduceAction___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  REGB0 = p0;
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction409();
+  INIT_ATTRIBUTES__parser___ReduceAction409(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_parser___ReduceAction409(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___ReduceAction410[55] = {
+  {(bigint) 831 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReduceAction410" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction410 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction410 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 831 /* 5: ReduceAction410 < ReduceAction410: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -126481,7 +124289,7 @@ const classtable_elt_t VFT_parser___ReduceAction412[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction412 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction410 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -126497,6 +124305,8 @@ const classtable_elt_t VFT_parser___ReduceAction412[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -126510,44 +124320,44 @@ const classtable_elt_t VFT_parser___ReduceAction412[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction412 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction412___action},
+  {(bigint) 0 /* 50: ReduceAction410 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction410___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction412 < ReduceAction412: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction410 < ReduceAction410: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction412::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction412(val_t p0){
+/* 2: Attribute ReduceAction410::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction410(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction412;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction410;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction412(void)
+val_t NEW_parser___ReduceAction410(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction412;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction410;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction412(val_t p0){
+void CHECKNEW_parser___ReduceAction410(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction412;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction410;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -126560,35 +124370,35 @@ void CHECKNEW_parser___ReduceAction412(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction412_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction410_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction412_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction410_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction412();
-  INIT_ATTRIBUTES__parser___ReduceAction412(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction410();
+  INIT_ATTRIBUTES__parser___ReduceAction410(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction412(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction410(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction413[52] = {
-  {(bigint) 811 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction412[55] = {
+  {(bigint) 827 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction413" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction413 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction413 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 811 /* 5: ReduceAction413 < ReduceAction413: superclass typecheck marker */},
+  {(bigint) "ReduceAction412" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction412 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction412 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 827 /* 5: ReduceAction412 < ReduceAction412: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -126599,129 +124409,10 @@ const classtable_elt_t VFT_parser___ReduceAction413[52] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction413 < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction413 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction413___action},
-  {(bigint) parser___ReduceAction___concat},
-  {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction413 < ReduceAction413: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute ReduceAction413::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction413(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction413;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___ReduceAction413(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction413;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___ReduceAction413(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction413;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_ReduceAction413_parser___ReduceAction___init(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction413_parser___ReduceAction___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction413();
-  INIT_ATTRIBUTES__parser___ReduceAction413(fra.me.REG[0]);
-  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction413(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_parser___ReduceAction414[52] = {
-  {(bigint) 807 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction414" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction414 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction414 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 807 /* 5: ReduceAction414 < ReduceAction414: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction414 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction412 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -126737,6 +124428,8 @@ const classtable_elt_t VFT_parser___ReduceAction414[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -126750,44 +124443,44 @@ const classtable_elt_t VFT_parser___ReduceAction414[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction414 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction414___action},
+  {(bigint) 0 /* 50: ReduceAction412 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction412___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction414 < ReduceAction414: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction412 < ReduceAction412: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction414::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction414(val_t p0){
+/* 2: Attribute ReduceAction412::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction412(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction414;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction412;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction414(void)
+val_t NEW_parser___ReduceAction412(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction414;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction412;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction414(val_t p0){
+void CHECKNEW_parser___ReduceAction412(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction414;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction412;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -126800,35 +124493,36 @@ void CHECKNEW_parser___ReduceAction414(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction414_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction412_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction414_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction412_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction414();
-  INIT_ATTRIBUTES__parser___ReduceAction414(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction412();
+  INIT_ATTRIBUTES__parser___ReduceAction412(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction414(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction412(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction415[52] = {
-  {(bigint) 803 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction415[55] = {
+  {(bigint) 823 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction415" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction415 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction415 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 803 /* 5: ReduceAction415 < ReduceAction415: superclass typecheck marker */},
+  {(bigint) 823 /* 5: ReduceAction415 < ReduceAction415: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -126841,7 +124535,7 @@ const classtable_elt_t VFT_parser___ReduceAction415[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction415 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction415 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -126857,6 +124551,8 @@ const classtable_elt_t VFT_parser___ReduceAction415[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -126870,11 +124566,11 @@ const classtable_elt_t VFT_parser___ReduceAction415[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction415 < ReduceAction: superclass init_table position */},
+  {(bigint) 0 /* 50: ReduceAction415 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction415___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction415 < ReduceAction415: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction415 < ReduceAction415: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -126927,14 +124623,14 @@ val_t NEW_ReduceAction415_parser___ReduceAction___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_NEW_ReduceAction415_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   fra.me.REG[0] = NEW_parser___ReduceAction415();
   INIT_ATTRIBUTES__parser___ReduceAction415(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
@@ -126942,13 +124638,14 @@ val_t NEW_ReduceAction415_parser___ReduceAction___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction416[52] = {
-  {(bigint) 799 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction416[55] = {
+  {(bigint) 819 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction416" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction416 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction416 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 799 /* 5: ReduceAction416 < ReduceAction416: superclass typecheck marker */},
+  {(bigint) 819 /* 5: ReduceAction416 < ReduceAction416: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -126961,7 +124658,7 @@ const classtable_elt_t VFT_parser___ReduceAction416[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction416 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction416 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -126977,6 +124674,8 @@ const classtable_elt_t VFT_parser___ReduceAction416[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -126990,11 +124689,11 @@ const classtable_elt_t VFT_parser___ReduceAction416[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction416 < ReduceAction: superclass init_table position */},
+  {(bigint) 0 /* 50: ReduceAction416 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction416___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction416 < ReduceAction416: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction416 < ReduceAction416: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -127047,14 +124746,14 @@ val_t NEW_ReduceAction416_parser___ReduceAction___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_NEW_ReduceAction416_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   fra.me.REG[0] = NEW_parser___ReduceAction416();
   INIT_ATTRIBUTES__parser___ReduceAction416(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
@@ -127062,13 +124761,14 @@ val_t NEW_ReduceAction416_parser___ReduceAction___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction417[52] = {
-  {(bigint) 795 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction417[55] = {
+  {(bigint) 815 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction417" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction417 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction417 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 795 /* 5: ReduceAction417 < ReduceAction417: superclass typecheck marker */},
+  {(bigint) 815 /* 5: ReduceAction417 < ReduceAction417: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -127081,7 +124781,7 @@ const classtable_elt_t VFT_parser___ReduceAction417[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction417 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction417 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -127097,6 +124797,8 @@ const classtable_elt_t VFT_parser___ReduceAction417[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -127110,11 +124812,11 @@ const classtable_elt_t VFT_parser___ReduceAction417[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction417 < ReduceAction: superclass init_table position */},
+  {(bigint) 0 /* 50: ReduceAction417 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction417___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction417 < ReduceAction417: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction417 < ReduceAction417: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -127167,14 +124869,14 @@ val_t NEW_ReduceAction417_parser___ReduceAction___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_NEW_ReduceAction417_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   fra.me.REG[0] = NEW_parser___ReduceAction417();
   INIT_ATTRIBUTES__parser___ReduceAction417(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
@@ -127182,13 +124884,14 @@ val_t NEW_ReduceAction417_parser___ReduceAction___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction418[52] = {
-  {(bigint) 791 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction418[55] = {
+  {(bigint) 811 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction418" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction418 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction418 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 791 /* 5: ReduceAction418 < ReduceAction418: superclass typecheck marker */},
+  {(bigint) 811 /* 5: ReduceAction418 < ReduceAction418: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -127201,7 +124904,7 @@ const classtable_elt_t VFT_parser___ReduceAction418[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction418 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction418 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -127217,6 +124920,8 @@ const classtable_elt_t VFT_parser___ReduceAction418[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -127230,11 +124935,11 @@ const classtable_elt_t VFT_parser___ReduceAction418[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction418 < ReduceAction: superclass init_table position */},
+  {(bigint) 0 /* 50: ReduceAction418 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction418___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction418 < ReduceAction418: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction418 < ReduceAction418: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -127287,14 +124992,14 @@ val_t NEW_ReduceAction418_parser___ReduceAction___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_NEW_ReduceAction418_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   fra.me.REG[0] = NEW_parser___ReduceAction418();
   INIT_ATTRIBUTES__parser___ReduceAction418(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
@@ -127302,13 +125007,14 @@ val_t NEW_ReduceAction418_parser___ReduceAction___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction419[52] = {
-  {(bigint) 787 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction419[55] = {
+  {(bigint) 807 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction419" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction419 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction419 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 787 /* 5: ReduceAction419 < ReduceAction419: superclass typecheck marker */},
+  {(bigint) 807 /* 5: ReduceAction419 < ReduceAction419: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -127321,7 +125027,7 @@ const classtable_elt_t VFT_parser___ReduceAction419[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction419 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction419 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -127337,6 +125043,8 @@ const classtable_elt_t VFT_parser___ReduceAction419[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -127350,11 +125058,11 @@ const classtable_elt_t VFT_parser___ReduceAction419[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction419 < ReduceAction: superclass init_table position */},
+  {(bigint) 0 /* 50: ReduceAction419 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction419___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction419 < ReduceAction419: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction419 < ReduceAction419: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -127407,14 +125115,14 @@ val_t NEW_ReduceAction419_parser___ReduceAction___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_NEW_ReduceAction419_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   fra.me.REG[0] = NEW_parser___ReduceAction419();
   INIT_ATTRIBUTES__parser___ReduceAction419(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
@@ -127422,13 +125130,14 @@ val_t NEW_ReduceAction419_parser___ReduceAction___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction420[52] = {
-  {(bigint) 779 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction420[55] = {
+  {(bigint) 799 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction420" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction420 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction420 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 779 /* 5: ReduceAction420 < ReduceAction420: superclass typecheck marker */},
+  {(bigint) 799 /* 5: ReduceAction420 < ReduceAction420: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -127441,7 +125150,7 @@ const classtable_elt_t VFT_parser___ReduceAction420[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction420 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction420 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -127457,6 +125166,8 @@ const classtable_elt_t VFT_parser___ReduceAction420[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -127470,11 +125181,11 @@ const classtable_elt_t VFT_parser___ReduceAction420[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction420 < ReduceAction: superclass init_table position */},
+  {(bigint) 0 /* 50: ReduceAction420 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction420___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction420 < ReduceAction420: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction420 < ReduceAction420: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -127527,14 +125238,14 @@ val_t NEW_ReduceAction420_parser___ReduceAction___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_NEW_ReduceAction420_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   fra.me.REG[0] = NEW_parser___ReduceAction420();
   INIT_ATTRIBUTES__parser___ReduceAction420(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
@@ -127542,13 +125253,137 @@ val_t NEW_ReduceAction420_parser___ReduceAction___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction421[52] = {
-  {(bigint) 775 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction421[55] = {
+  {(bigint) 795 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction421" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction421 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction421 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 775 /* 5: ReduceAction421 < ReduceAction421: superclass typecheck marker */},
+  {(bigint) 795 /* 5: ReduceAction421 < ReduceAction421: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) standard___time___Object___get_time},
+  {(bigint) 1 /* 19: ReduceAction421 < Object: superclass init_table position */},
+  {(bigint) standard___kernel___Object___object_id},
+  {(bigint) standard___kernel___Object___is_same_type},
+  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) standard___kernel___Object_____neq},
+  {(bigint) standard___kernel___Object___output},
+  {(bigint) standard___kernel___Object___output_class_name},
+  {(bigint) standard___kernel___Object___exit},
+  {(bigint) standard___kernel___Object___sys},
+  {(bigint) standard___file___Object___printn},
+  {(bigint) standard___file___Object___print},
+  {(bigint) standard___file___Object___getc},
+  {(bigint) standard___file___Object___gets},
+  {(bigint) standard___file___Object___stdin},
+  {(bigint) standard___file___Object___stdout},
+  {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 0 /* 50: ReduceAction421 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction421___action},
+  {(bigint) parser___ReduceAction___concat},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 54: ReduceAction421 < ReduceAction421: superclass init_table position */},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute ReduceAction421::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction421(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction421;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_parser___ReduceAction421(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction421;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_parser___ReduceAction421(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction421;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
+  }
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_ReduceAction421_parser___ReduceAction___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  int init_table[3] = {0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction421_parser___ReduceAction___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  REGB0 = p0;
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction421();
+  INIT_ATTRIBUTES__parser___ReduceAction421(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_parser___ReduceAction421(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+const classtable_elt_t VFT_parser___ReduceAction422[55] = {
+  {(bigint) 791 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReduceAction422" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction422 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction422 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 791 /* 5: ReduceAction422 < ReduceAction422: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -127561,7 +125396,7 @@ const classtable_elt_t VFT_parser___ReduceAction421[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction421 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction422 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -127577,6 +125412,8 @@ const classtable_elt_t VFT_parser___ReduceAction421[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -127590,44 +125427,44 @@ const classtable_elt_t VFT_parser___ReduceAction421[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction421 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction421___action},
+  {(bigint) 0 /* 50: ReduceAction422 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction422___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction421 < ReduceAction421: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction422 < ReduceAction422: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction421::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction421(val_t p0){
+/* 2: Attribute ReduceAction422::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction422(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction421;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction422;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction421(void)
+val_t NEW_parser___ReduceAction422(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction421;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction422;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction421(val_t p0){
+void CHECKNEW_parser___ReduceAction422(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction421;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction422;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -127640,35 +125477,36 @@ void CHECKNEW_parser___ReduceAction421(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction421_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction422_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction421_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction422_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction421();
-  INIT_ATTRIBUTES__parser___ReduceAction421(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction422();
+  INIT_ATTRIBUTES__parser___ReduceAction422(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction421(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction422(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction422[52] = {
-  {(bigint) 771 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction423[55] = {
+  {(bigint) 787 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction422" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction422 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction422 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 771 /* 5: ReduceAction422 < ReduceAction422: superclass typecheck marker */},
+  {(bigint) "ReduceAction423" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction423 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction423 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 787 /* 5: ReduceAction423 < ReduceAction423: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -127681,7 +125519,7 @@ const classtable_elt_t VFT_parser___ReduceAction422[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction422 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction423 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -127697,6 +125535,8 @@ const classtable_elt_t VFT_parser___ReduceAction422[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -127710,44 +125550,44 @@ const classtable_elt_t VFT_parser___ReduceAction422[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction422 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction422___action},
+  {(bigint) 0 /* 50: ReduceAction423 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction423___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction422 < ReduceAction422: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction423 < ReduceAction423: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction422::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction422(val_t p0){
+/* 2: Attribute ReduceAction423::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction423(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction422;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction423;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction422(void)
+val_t NEW_parser___ReduceAction423(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction422;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction423;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction422(val_t p0){
+void CHECKNEW_parser___ReduceAction423(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction422;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction423;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -127760,35 +125600,36 @@ void CHECKNEW_parser___ReduceAction422(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction422_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction423_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction422_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction423_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction422();
-  INIT_ATTRIBUTES__parser___ReduceAction422(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction423();
+  INIT_ATTRIBUTES__parser___ReduceAction423(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction422(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction423(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction423[52] = {
-  {(bigint) 767 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction424[55] = {
+  {(bigint) 783 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction423" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction423 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction423 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 767 /* 5: ReduceAction423 < ReduceAction423: superclass typecheck marker */},
+  {(bigint) "ReduceAction424" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction424 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction424 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 783 /* 5: ReduceAction424 < ReduceAction424: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -127801,7 +125642,7 @@ const classtable_elt_t VFT_parser___ReduceAction423[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction423 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction424 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -127817,6 +125658,8 @@ const classtable_elt_t VFT_parser___ReduceAction423[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -127830,44 +125673,44 @@ const classtable_elt_t VFT_parser___ReduceAction423[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction423 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction423___action},
+  {(bigint) 0 /* 50: ReduceAction424 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction424___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction423 < ReduceAction423: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction424 < ReduceAction424: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction423::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction423(val_t p0){
+/* 2: Attribute ReduceAction424::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction424(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction423;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction424;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction423(void)
+val_t NEW_parser___ReduceAction424(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction423;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction424;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction423(val_t p0){
+void CHECKNEW_parser___ReduceAction424(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction423;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction424;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -127880,35 +125723,36 @@ void CHECKNEW_parser___ReduceAction423(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction423_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction424_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction423_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction424_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction423();
-  INIT_ATTRIBUTES__parser___ReduceAction423(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction424();
+  INIT_ATTRIBUTES__parser___ReduceAction424(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction423(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction424(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction425[52] = {
-  {(bigint) 763 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction425[55] = {
+  {(bigint) 779 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction425" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction425 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction425 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 763 /* 5: ReduceAction425 < ReduceAction425: superclass typecheck marker */},
+  {(bigint) 779 /* 5: ReduceAction425 < ReduceAction425: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -127921,7 +125765,7 @@ const classtable_elt_t VFT_parser___ReduceAction425[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction425 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction425 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -127937,6 +125781,8 @@ const classtable_elt_t VFT_parser___ReduceAction425[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -127950,11 +125796,11 @@ const classtable_elt_t VFT_parser___ReduceAction425[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction425 < ReduceAction: superclass init_table position */},
+  {(bigint) 0 /* 50: ReduceAction425 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction425___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction425 < ReduceAction425: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction425 < ReduceAction425: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -128007,14 +125853,14 @@ val_t NEW_ReduceAction425_parser___ReduceAction___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_NEW_ReduceAction425_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   fra.me.REG[0] = NEW_parser___ReduceAction425();
   INIT_ATTRIBUTES__parser___ReduceAction425(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
@@ -128022,13 +125868,14 @@ val_t NEW_ReduceAction425_parser___ReduceAction___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction426[52] = {
-  {(bigint) 759 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction426[55] = {
+  {(bigint) 775 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction426" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction426 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction426 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 759 /* 5: ReduceAction426 < ReduceAction426: superclass typecheck marker */},
+  {(bigint) 775 /* 5: ReduceAction426 < ReduceAction426: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -128041,7 +125888,7 @@ const classtable_elt_t VFT_parser___ReduceAction426[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction426 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction426 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -128057,6 +125904,8 @@ const classtable_elt_t VFT_parser___ReduceAction426[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -128070,11 +125919,11 @@ const classtable_elt_t VFT_parser___ReduceAction426[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction426 < ReduceAction: superclass init_table position */},
+  {(bigint) 0 /* 50: ReduceAction426 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction426___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction426 < ReduceAction426: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction426 < ReduceAction426: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -128127,14 +125976,14 @@ val_t NEW_ReduceAction426_parser___ReduceAction___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_NEW_ReduceAction426_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   fra.me.REG[0] = NEW_parser___ReduceAction426();
   INIT_ATTRIBUTES__parser___ReduceAction426(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
@@ -128142,13 +125991,13 @@ val_t NEW_ReduceAction426_parser___ReduceAction___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction428[52] = {
-  {(bigint) 755 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction427[55] = {
+  {(bigint) 771 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction428" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction428 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction428 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 755 /* 5: ReduceAction428 < ReduceAction428: superclass typecheck marker */},
+  {(bigint) "ReduceAction427" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction427 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction427 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 771 /* 5: ReduceAction427 < ReduceAction427: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -128159,129 +126008,10 @@ const classtable_elt_t VFT_parser___ReduceAction428[52] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction428 < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction428 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction428___action},
-  {(bigint) parser___ReduceAction___concat},
-  {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction428 < ReduceAction428: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute ReduceAction428::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction428(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction428;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___ReduceAction428(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction428;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___ReduceAction428(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction428;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_ReduceAction428_parser___ReduceAction___init(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction428_parser___ReduceAction___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction428();
-  INIT_ATTRIBUTES__parser___ReduceAction428(fra.me.REG[0]);
-  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction428(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_parser___ReduceAction429[52] = {
-  {(bigint) 751 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction429" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction429 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction429 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 751 /* 5: ReduceAction429 < ReduceAction429: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction429 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction427 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -128297,6 +126027,8 @@ const classtable_elt_t VFT_parser___ReduceAction429[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -128310,44 +126042,44 @@ const classtable_elt_t VFT_parser___ReduceAction429[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction429 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction429___action},
+  {(bigint) 0 /* 50: ReduceAction427 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction427___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction429 < ReduceAction429: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction427 < ReduceAction427: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction429::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction429(val_t p0){
+/* 2: Attribute ReduceAction427::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction427(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction429;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction427;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction429(void)
+val_t NEW_parser___ReduceAction427(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction429;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction427;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction429(val_t p0){
+void CHECKNEW_parser___ReduceAction427(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction429;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction427;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -128360,35 +126092,36 @@ void CHECKNEW_parser___ReduceAction429(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction429_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction427_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction429_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction427_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction429();
-  INIT_ATTRIBUTES__parser___ReduceAction429(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction427();
+  INIT_ATTRIBUTES__parser___ReduceAction427(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction429(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction427(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction430[52] = {
-  {(bigint) 743 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction428[55] = {
+  {(bigint) 767 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction430" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction430 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction430 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 743 /* 5: ReduceAction430 < ReduceAction430: superclass typecheck marker */},
+  {(bigint) "ReduceAction428" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction428 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction428 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 767 /* 5: ReduceAction428 < ReduceAction428: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -128401,7 +126134,7 @@ const classtable_elt_t VFT_parser___ReduceAction430[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction430 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction428 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -128417,6 +126150,8 @@ const classtable_elt_t VFT_parser___ReduceAction430[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -128430,44 +126165,44 @@ const classtable_elt_t VFT_parser___ReduceAction430[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction430 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction430___action},
+  {(bigint) 0 /* 50: ReduceAction428 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction428___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction430 < ReduceAction430: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction428 < ReduceAction428: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction430::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction430(val_t p0){
+/* 2: Attribute ReduceAction428::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction428(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction430;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction428;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction430(void)
+val_t NEW_parser___ReduceAction428(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction430;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction428;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction430(val_t p0){
+void CHECKNEW_parser___ReduceAction428(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction430;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction428;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -128480,35 +126215,36 @@ void CHECKNEW_parser___ReduceAction430(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction430_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction428_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction430_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction428_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction430();
-  INIT_ATTRIBUTES__parser___ReduceAction430(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction428();
+  INIT_ATTRIBUTES__parser___ReduceAction428(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction430(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction428(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction431[52] = {
-  {(bigint) 739 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction429[55] = {
+  {(bigint) 763 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction431" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction431 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction431 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 739 /* 5: ReduceAction431 < ReduceAction431: superclass typecheck marker */},
+  {(bigint) "ReduceAction429" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction429 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction429 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 763 /* 5: ReduceAction429 < ReduceAction429: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -128521,7 +126257,7 @@ const classtable_elt_t VFT_parser___ReduceAction431[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction431 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction429 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -128537,6 +126273,8 @@ const classtable_elt_t VFT_parser___ReduceAction431[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -128550,44 +126288,44 @@ const classtable_elt_t VFT_parser___ReduceAction431[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction431 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction431___action},
+  {(bigint) 0 /* 50: ReduceAction429 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction429___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction431 < ReduceAction431: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction429 < ReduceAction429: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction431::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction431(val_t p0){
+/* 2: Attribute ReduceAction429::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction429(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction431;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction429;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction431(void)
+val_t NEW_parser___ReduceAction429(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction431;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction429;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction431(val_t p0){
+void CHECKNEW_parser___ReduceAction429(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction431;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction429;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -128600,155 +126338,36 @@ void CHECKNEW_parser___ReduceAction431(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction431_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction429_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction431_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction429_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction431();
-  INIT_ATTRIBUTES__parser___ReduceAction431(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction429();
+  INIT_ATTRIBUTES__parser___ReduceAction429(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction431(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction429(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction688[52] = {
-  {(bigint) 627 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction430[55] = {
+  {(bigint) 755 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction688" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction688 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction688 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 627 /* 5: ReduceAction688 < ReduceAction688: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) "ReduceAction430" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction430 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction430 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 755 /* 5: ReduceAction430 < ReduceAction430: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction688 < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction688 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction688___action},
-  {(bigint) parser___ReduceAction___concat},
-  {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction688 < ReduceAction688: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute ReduceAction688::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction688(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction688;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_parser___ReduceAction688(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction688;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_parser___ReduceAction688(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction688;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_ReduceAction688_parser___ReduceAction___init(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction688_parser___ReduceAction___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction688();
-  INIT_ATTRIBUTES__parser___ReduceAction688(fra.me.REG[0]);
-  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction688(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_parser___ReduceAction689[52] = {
-  {(bigint) 623 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction689" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction689 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction689 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 623 /* 5: ReduceAction689 < ReduceAction689: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -128761,7 +126380,7 @@ const classtable_elt_t VFT_parser___ReduceAction689[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction689 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction430 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -128777,6 +126396,8 @@ const classtable_elt_t VFT_parser___ReduceAction689[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -128790,44 +126411,44 @@ const classtable_elt_t VFT_parser___ReduceAction689[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction689 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction689___action},
+  {(bigint) 0 /* 50: ReduceAction430 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction430___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction689 < ReduceAction689: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction430 < ReduceAction430: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction689::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction689(val_t p0){
+/* 2: Attribute ReduceAction430::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction430(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction689;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction430;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction689(void)
+val_t NEW_parser___ReduceAction430(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction689;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction430;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction689(val_t p0){
+void CHECKNEW_parser___ReduceAction430(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction689;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction430;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -128840,35 +126461,36 @@ void CHECKNEW_parser___ReduceAction689(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction689_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction430_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction689_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction430_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction689();
-  INIT_ATTRIBUTES__parser___ReduceAction689(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction430();
+  INIT_ATTRIBUTES__parser___ReduceAction430(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction689(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction430(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction690[52] = {
-  {(bigint) 615 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction432[55] = {
+  {(bigint) 751 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction690" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction690 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction690 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 615 /* 5: ReduceAction690 < ReduceAction690: superclass typecheck marker */},
+  {(bigint) "ReduceAction432" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction432 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction432 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 751 /* 5: ReduceAction432 < ReduceAction432: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -128881,7 +126503,7 @@ const classtable_elt_t VFT_parser___ReduceAction690[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction690 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction432 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -128897,6 +126519,8 @@ const classtable_elt_t VFT_parser___ReduceAction690[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -128910,44 +126534,44 @@ const classtable_elt_t VFT_parser___ReduceAction690[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction690 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction690___action},
+  {(bigint) 0 /* 50: ReduceAction432 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction432___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction690 < ReduceAction690: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction432 < ReduceAction432: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction690::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction690(val_t p0){
+/* 2: Attribute ReduceAction432::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction432(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction690;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction432;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction690(void)
+val_t NEW_parser___ReduceAction432(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction690;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction432;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction690(val_t p0){
+void CHECKNEW_parser___ReduceAction432(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction690;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction432;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -128960,35 +126584,36 @@ void CHECKNEW_parser___ReduceAction690(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction690_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction432_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction690_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction432_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction690();
-  INIT_ATTRIBUTES__parser___ReduceAction690(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction432();
+  INIT_ATTRIBUTES__parser___ReduceAction432(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction690(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction432(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction693[52] = {
-  {(bigint) 611 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction433[55] = {
+  {(bigint) 747 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction693" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction693 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction693 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 611 /* 5: ReduceAction693 < ReduceAction693: superclass typecheck marker */},
+  {(bigint) "ReduceAction433" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction433 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction433 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 747 /* 5: ReduceAction433 < ReduceAction433: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -129001,7 +126626,7 @@ const classtable_elt_t VFT_parser___ReduceAction693[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction693 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction433 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -129017,6 +126642,8 @@ const classtable_elt_t VFT_parser___ReduceAction693[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -129030,44 +126657,44 @@ const classtable_elt_t VFT_parser___ReduceAction693[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction693 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction693___action},
+  {(bigint) 0 /* 50: ReduceAction433 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction433___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction693 < ReduceAction693: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction433 < ReduceAction433: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction693::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction693(val_t p0){
+/* 2: Attribute ReduceAction433::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction433(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction693;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction433;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction693(void)
+val_t NEW_parser___ReduceAction433(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction693;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction433;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction693(val_t p0){
+void CHECKNEW_parser___ReduceAction433(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction693;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction433;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -129080,35 +126707,36 @@ void CHECKNEW_parser___ReduceAction693(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction693_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction433_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction693_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction433_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction693();
-  INIT_ATTRIBUTES__parser___ReduceAction693(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction433();
+  INIT_ATTRIBUTES__parser___ReduceAction433(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction693(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction433(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction706[52] = {
-  {(bigint) 599 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction435[55] = {
+  {(bigint) 743 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction706" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction706 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction706 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 599 /* 5: ReduceAction706 < ReduceAction706: superclass typecheck marker */},
+  {(bigint) "ReduceAction435" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction435 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction435 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 743 /* 5: ReduceAction435 < ReduceAction435: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -129121,7 +126749,7 @@ const classtable_elt_t VFT_parser___ReduceAction706[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction706 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction435 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -129137,6 +126765,8 @@ const classtable_elt_t VFT_parser___ReduceAction706[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -129150,44 +126780,44 @@ const classtable_elt_t VFT_parser___ReduceAction706[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction706 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction706___action},
+  {(bigint) 0 /* 50: ReduceAction435 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction435___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction706 < ReduceAction706: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction435 < ReduceAction435: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction706::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction706(val_t p0){
+/* 2: Attribute ReduceAction435::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction435(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction706;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction435;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction706(void)
+val_t NEW_parser___ReduceAction435(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction706;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction435;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction706(val_t p0){
+void CHECKNEW_parser___ReduceAction435(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction706;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction435;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -129200,35 +126830,36 @@ void CHECKNEW_parser___ReduceAction706(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction706_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction435_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction706_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction435_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction706();
-  INIT_ATTRIBUTES__parser___ReduceAction706(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction435();
+  INIT_ATTRIBUTES__parser___ReduceAction435(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction706(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction435(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction707[52] = {
-  {(bigint) 595 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction436[55] = {
+  {(bigint) 739 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction707" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction707 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction707 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 595 /* 5: ReduceAction707 < ReduceAction707: superclass typecheck marker */},
+  {(bigint) "ReduceAction436" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction436 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction436 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 739 /* 5: ReduceAction436 < ReduceAction436: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -129241,7 +126872,7 @@ const classtable_elt_t VFT_parser___ReduceAction707[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction707 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction436 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -129257,6 +126888,8 @@ const classtable_elt_t VFT_parser___ReduceAction707[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -129270,44 +126903,44 @@ const classtable_elt_t VFT_parser___ReduceAction707[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction707 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction707___action},
+  {(bigint) 0 /* 50: ReduceAction436 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction436___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction707 < ReduceAction707: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction436 < ReduceAction436: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction707::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction707(val_t p0){
+/* 2: Attribute ReduceAction436::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction436(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction707;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction436;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction707(void)
+val_t NEW_parser___ReduceAction436(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction707;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction436;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction707(val_t p0){
+void CHECKNEW_parser___ReduceAction436(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction707;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction436;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -129320,35 +126953,36 @@ void CHECKNEW_parser___ReduceAction707(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction707_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction436_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction707_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction436_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction707();
-  INIT_ATTRIBUTES__parser___ReduceAction707(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction436();
+  INIT_ATTRIBUTES__parser___ReduceAction436(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction707(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction436(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction714[52] = {
-  {(bigint) 587 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction437[55] = {
+  {(bigint) 735 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction714" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction714 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction714 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 587 /* 5: ReduceAction714 < ReduceAction714: superclass typecheck marker */},
+  {(bigint) "ReduceAction437" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction437 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction437 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 735 /* 5: ReduceAction437 < ReduceAction437: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -129361,7 +126995,7 @@ const classtable_elt_t VFT_parser___ReduceAction714[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction714 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction437 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -129377,6 +127011,8 @@ const classtable_elt_t VFT_parser___ReduceAction714[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -129390,44 +127026,44 @@ const classtable_elt_t VFT_parser___ReduceAction714[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction714 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction714___action},
+  {(bigint) 0 /* 50: ReduceAction437 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction437___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction714 < ReduceAction714: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction437 < ReduceAction437: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction714::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction714(val_t p0){
+/* 2: Attribute ReduceAction437::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction437(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction714;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction437;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction714(void)
+val_t NEW_parser___ReduceAction437(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction714;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction437;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction714(val_t p0){
+void CHECKNEW_parser___ReduceAction437(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction714;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction437;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -129440,35 +127076,36 @@ void CHECKNEW_parser___ReduceAction714(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction714_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction437_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction714_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction437_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction714();
-  INIT_ATTRIBUTES__parser___ReduceAction714(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction437();
+  INIT_ATTRIBUTES__parser___ReduceAction437(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction714(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction437(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction715[52] = {
-  {(bigint) 583 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction438[55] = {
+  {(bigint) 731 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction715" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction715 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction715 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 583 /* 5: ReduceAction715 < ReduceAction715: superclass typecheck marker */},
+  {(bigint) "ReduceAction438" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction438 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction438 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 731 /* 5: ReduceAction438 < ReduceAction438: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -129481,7 +127118,7 @@ const classtable_elt_t VFT_parser___ReduceAction715[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction715 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction438 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -129497,6 +127134,8 @@ const classtable_elt_t VFT_parser___ReduceAction715[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -129510,44 +127149,44 @@ const classtable_elt_t VFT_parser___ReduceAction715[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction715 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction715___action},
+  {(bigint) 0 /* 50: ReduceAction438 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction438___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction715 < ReduceAction715: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction438 < ReduceAction438: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction715::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction715(val_t p0){
+/* 2: Attribute ReduceAction438::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction438(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction715;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction438;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction715(void)
+val_t NEW_parser___ReduceAction438(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction715;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction438;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction715(val_t p0){
+void CHECKNEW_parser___ReduceAction438(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction715;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction438;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -129560,35 +127199,36 @@ void CHECKNEW_parser___ReduceAction715(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction715_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction438_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction715_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction438_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction715();
-  INIT_ATTRIBUTES__parser___ReduceAction715(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction438();
+  INIT_ATTRIBUTES__parser___ReduceAction438(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction715(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction438(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction716[52] = {
-  {(bigint) 579 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction698[55] = {
+  {(bigint) 615 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction716" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction716 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction716 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 579 /* 5: ReduceAction716 < ReduceAction716: superclass typecheck marker */},
+  {(bigint) "ReduceAction698" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction698 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction698 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 615 /* 5: ReduceAction698 < ReduceAction698: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -129601,7 +127241,7 @@ const classtable_elt_t VFT_parser___ReduceAction716[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction716 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction698 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -129617,6 +127257,8 @@ const classtable_elt_t VFT_parser___ReduceAction716[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -129630,44 +127272,44 @@ const classtable_elt_t VFT_parser___ReduceAction716[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction716 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction716___action},
+  {(bigint) 0 /* 50: ReduceAction698 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction698___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction716 < ReduceAction716: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction698 < ReduceAction698: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction716::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction716(val_t p0){
+/* 2: Attribute ReduceAction698::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction698(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction716;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction698;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction716(void)
+val_t NEW_parser___ReduceAction698(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction716;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction698;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction716(val_t p0){
+void CHECKNEW_parser___ReduceAction698(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction716;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction698;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -129680,35 +127322,36 @@ void CHECKNEW_parser___ReduceAction716(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction716_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction698_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction716_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction698_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction716();
-  INIT_ATTRIBUTES__parser___ReduceAction716(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction698();
+  INIT_ATTRIBUTES__parser___ReduceAction698(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction716(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction698(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction717[52] = {
-  {(bigint) 575 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction699[55] = {
+  {(bigint) 611 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction717" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction717 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction717 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 575 /* 5: ReduceAction717 < ReduceAction717: superclass typecheck marker */},
+  {(bigint) "ReduceAction699" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction699 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction699 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 611 /* 5: ReduceAction699 < ReduceAction699: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -129721,7 +127364,7 @@ const classtable_elt_t VFT_parser___ReduceAction717[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction717 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction699 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -129737,6 +127380,8 @@ const classtable_elt_t VFT_parser___ReduceAction717[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -129750,44 +127395,44 @@ const classtable_elt_t VFT_parser___ReduceAction717[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction717 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction717___action},
+  {(bigint) 0 /* 50: ReduceAction699 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction699___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction717 < ReduceAction717: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction699 < ReduceAction699: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction717::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction717(val_t p0){
+/* 2: Attribute ReduceAction699::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction699(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction717;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction699;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction717(void)
+val_t NEW_parser___ReduceAction699(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction717;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction699;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction717(val_t p0){
+void CHECKNEW_parser___ReduceAction699(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction717;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction699;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -129800,35 +127445,36 @@ void CHECKNEW_parser___ReduceAction717(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction717_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction699_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction717_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction699_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction717();
-  INIT_ATTRIBUTES__parser___ReduceAction717(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction699();
+  INIT_ATTRIBUTES__parser___ReduceAction699(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction717(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction699(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction718[52] = {
-  {(bigint) 571 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction700[55] = {
+  {(bigint) 599 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction718" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction718 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction718 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 571 /* 5: ReduceAction718 < ReduceAction718: superclass typecheck marker */},
+  {(bigint) "ReduceAction700" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction700 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction700 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 599 /* 5: ReduceAction700 < ReduceAction700: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -129841,7 +127487,7 @@ const classtable_elt_t VFT_parser___ReduceAction718[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction718 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction700 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -129857,6 +127503,8 @@ const classtable_elt_t VFT_parser___ReduceAction718[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -129870,44 +127518,44 @@ const classtable_elt_t VFT_parser___ReduceAction718[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction718 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction718___action},
+  {(bigint) 0 /* 50: ReduceAction700 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction700___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction718 < ReduceAction718: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction700 < ReduceAction700: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction718::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction718(val_t p0){
+/* 2: Attribute ReduceAction700::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction700(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction718;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction700;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction718(void)
+val_t NEW_parser___ReduceAction700(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction718;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction700;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction718(val_t p0){
+void CHECKNEW_parser___ReduceAction700(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction718;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction700;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -129920,35 +127568,36 @@ void CHECKNEW_parser___ReduceAction718(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction718_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction700_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction718_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction700_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction718();
-  INIT_ATTRIBUTES__parser___ReduceAction718(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction700();
+  INIT_ATTRIBUTES__parser___ReduceAction700(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction718(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction700(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction719[52] = {
-  {(bigint) 567 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction703[55] = {
+  {(bigint) 595 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction719" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction719 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction719 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 567 /* 5: ReduceAction719 < ReduceAction719: superclass typecheck marker */},
+  {(bigint) "ReduceAction703" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction703 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction703 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 595 /* 5: ReduceAction703 < ReduceAction703: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -129961,7 +127610,7 @@ const classtable_elt_t VFT_parser___ReduceAction719[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction719 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction703 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -129977,6 +127626,8 @@ const classtable_elt_t VFT_parser___ReduceAction719[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -129990,44 +127641,44 @@ const classtable_elt_t VFT_parser___ReduceAction719[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction719 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction719___action},
+  {(bigint) 0 /* 50: ReduceAction703 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction703___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction719 < ReduceAction719: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction703 < ReduceAction703: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction719::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction719(val_t p0){
+/* 2: Attribute ReduceAction703::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction703(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction719;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction703;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction719(void)
+val_t NEW_parser___ReduceAction703(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction719;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction703;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction719(val_t p0){
+void CHECKNEW_parser___ReduceAction703(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction719;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction703;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -130040,35 +127691,36 @@ void CHECKNEW_parser___ReduceAction719(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction719_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction703_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction719_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction703_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction719();
-  INIT_ATTRIBUTES__parser___ReduceAction719(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction703();
+  INIT_ATTRIBUTES__parser___ReduceAction703(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction719(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction703(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction720[52] = {
-  {(bigint) 559 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction716[55] = {
+  {(bigint) 587 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction720" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction720 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction720 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 559 /* 5: ReduceAction720 < ReduceAction720: superclass typecheck marker */},
+  {(bigint) "ReduceAction716" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction716 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction716 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 587 /* 5: ReduceAction716 < ReduceAction716: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -130081,7 +127733,7 @@ const classtable_elt_t VFT_parser___ReduceAction720[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction720 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction716 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -130097,6 +127749,8 @@ const classtable_elt_t VFT_parser___ReduceAction720[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -130110,44 +127764,44 @@ const classtable_elt_t VFT_parser___ReduceAction720[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction720 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction720___action},
+  {(bigint) 0 /* 50: ReduceAction716 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction716___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction720 < ReduceAction720: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction716 < ReduceAction716: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction720::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction720(val_t p0){
+/* 2: Attribute ReduceAction716::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction716(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction720;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction716;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction720(void)
+val_t NEW_parser___ReduceAction716(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction720;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction716;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction720(val_t p0){
+void CHECKNEW_parser___ReduceAction716(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction720;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction716;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -130160,35 +127814,36 @@ void CHECKNEW_parser___ReduceAction720(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction720_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction716_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction720_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction716_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction720();
-  INIT_ATTRIBUTES__parser___ReduceAction720(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction716();
+  INIT_ATTRIBUTES__parser___ReduceAction716(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction720(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction716(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction721[52] = {
-  {(bigint) 555 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction717[55] = {
+  {(bigint) 583 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction721" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction721 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction721 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 555 /* 5: ReduceAction721 < ReduceAction721: superclass typecheck marker */},
+  {(bigint) "ReduceAction717" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction717 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction717 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 583 /* 5: ReduceAction717 < ReduceAction717: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -130201,7 +127856,7 @@ const classtable_elt_t VFT_parser___ReduceAction721[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction721 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction717 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -130217,6 +127872,8 @@ const classtable_elt_t VFT_parser___ReduceAction721[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -130230,44 +127887,44 @@ const classtable_elt_t VFT_parser___ReduceAction721[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction721 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction721___action},
+  {(bigint) 0 /* 50: ReduceAction717 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction717___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction721 < ReduceAction721: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction717 < ReduceAction717: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction721::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction721(val_t p0){
+/* 2: Attribute ReduceAction717::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction717(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction721;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction717;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction721(void)
+val_t NEW_parser___ReduceAction717(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction721;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction717;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction721(val_t p0){
+void CHECKNEW_parser___ReduceAction717(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction721;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction717;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -130280,35 +127937,36 @@ void CHECKNEW_parser___ReduceAction721(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction721_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction717_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction721_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction717_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction721();
-  INIT_ATTRIBUTES__parser___ReduceAction721(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction717();
+  INIT_ATTRIBUTES__parser___ReduceAction717(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction721(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction717(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction724[52] = {
-  {(bigint) 551 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction724[55] = {
+  {(bigint) 575 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction724" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction724 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction724 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 551 /* 5: ReduceAction724 < ReduceAction724: superclass typecheck marker */},
+  {(bigint) 575 /* 5: ReduceAction724 < ReduceAction724: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -130321,7 +127979,7 @@ const classtable_elt_t VFT_parser___ReduceAction724[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction724 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction724 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -130337,6 +127995,8 @@ const classtable_elt_t VFT_parser___ReduceAction724[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -130350,11 +128010,11 @@ const classtable_elt_t VFT_parser___ReduceAction724[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction724 < ReduceAction: superclass init_table position */},
+  {(bigint) 0 /* 50: ReduceAction724 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction724___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction724 < ReduceAction724: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction724 < ReduceAction724: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -130407,14 +128067,14 @@ val_t NEW_ReduceAction724_parser___ReduceAction___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_NEW_ReduceAction724_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   fra.me.REG[0] = NEW_parser___ReduceAction724();
   INIT_ATTRIBUTES__parser___ReduceAction724(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
@@ -130422,13 +128082,14 @@ val_t NEW_ReduceAction724_parser___ReduceAction___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction725[52] = {
-  {(bigint) 547 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction725[55] = {
+  {(bigint) 571 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction725" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction725 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction725 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 547 /* 5: ReduceAction725 < ReduceAction725: superclass typecheck marker */},
+  {(bigint) 571 /* 5: ReduceAction725 < ReduceAction725: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -130441,7 +128102,7 @@ const classtable_elt_t VFT_parser___ReduceAction725[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction725 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction725 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -130457,6 +128118,8 @@ const classtable_elt_t VFT_parser___ReduceAction725[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -130470,11 +128133,11 @@ const classtable_elt_t VFT_parser___ReduceAction725[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction725 < ReduceAction: superclass init_table position */},
+  {(bigint) 0 /* 50: ReduceAction725 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction725___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction725 < ReduceAction725: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction725 < ReduceAction725: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -130527,14 +128190,14 @@ val_t NEW_ReduceAction725_parser___ReduceAction___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_NEW_ReduceAction725_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   fra.me.REG[0] = NEW_parser___ReduceAction725();
   INIT_ATTRIBUTES__parser___ReduceAction725(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
@@ -130542,13 +128205,14 @@ val_t NEW_ReduceAction725_parser___ReduceAction___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction726[52] = {
-  {(bigint) 543 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction726[55] = {
+  {(bigint) 567 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction726" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction726 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction726 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 543 /* 5: ReduceAction726 < ReduceAction726: superclass typecheck marker */},
+  {(bigint) 567 /* 5: ReduceAction726 < ReduceAction726: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -130561,7 +128225,7 @@ const classtable_elt_t VFT_parser___ReduceAction726[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction726 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction726 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -130577,6 +128241,8 @@ const classtable_elt_t VFT_parser___ReduceAction726[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -130590,11 +128256,11 @@ const classtable_elt_t VFT_parser___ReduceAction726[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction726 < ReduceAction: superclass init_table position */},
+  {(bigint) 0 /* 50: ReduceAction726 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction726___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction726 < ReduceAction726: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction726 < ReduceAction726: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -130647,14 +128313,14 @@ val_t NEW_ReduceAction726_parser___ReduceAction___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_NEW_ReduceAction726_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   fra.me.REG[0] = NEW_parser___ReduceAction726();
   INIT_ATTRIBUTES__parser___ReduceAction726(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
@@ -130662,13 +128328,14 @@ val_t NEW_ReduceAction726_parser___ReduceAction___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction727[52] = {
-  {(bigint) 539 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction727[55] = {
+  {(bigint) 563 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction727" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction727 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction727 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 539 /* 5: ReduceAction727 < ReduceAction727: superclass typecheck marker */},
+  {(bigint) 563 /* 5: ReduceAction727 < ReduceAction727: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -130681,7 +128348,7 @@ const classtable_elt_t VFT_parser___ReduceAction727[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction727 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction727 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -130697,6 +128364,8 @@ const classtable_elt_t VFT_parser___ReduceAction727[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -130710,11 +128379,11 @@ const classtable_elt_t VFT_parser___ReduceAction727[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction727 < ReduceAction: superclass init_table position */},
+  {(bigint) 0 /* 50: ReduceAction727 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction727___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction727 < ReduceAction727: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction727 < ReduceAction727: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -130767,14 +128436,14 @@ val_t NEW_ReduceAction727_parser___ReduceAction___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_NEW_ReduceAction727_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   fra.me.REG[0] = NEW_parser___ReduceAction727();
   INIT_ATTRIBUTES__parser___ReduceAction727(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
@@ -130782,13 +128451,14 @@ val_t NEW_ReduceAction727_parser___ReduceAction___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction728[52] = {
-  {(bigint) 535 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction728[55] = {
+  {(bigint) 559 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction728" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction728 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction728 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 535 /* 5: ReduceAction728 < ReduceAction728: superclass typecheck marker */},
+  {(bigint) 559 /* 5: ReduceAction728 < ReduceAction728: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -130801,7 +128471,7 @@ const classtable_elt_t VFT_parser___ReduceAction728[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction728 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction728 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -130817,6 +128487,8 @@ const classtable_elt_t VFT_parser___ReduceAction728[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -130830,11 +128502,11 @@ const classtable_elt_t VFT_parser___ReduceAction728[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction728 < ReduceAction: superclass init_table position */},
+  {(bigint) 0 /* 50: ReduceAction728 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction728___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction728 < ReduceAction728: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction728 < ReduceAction728: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -130887,14 +128559,14 @@ val_t NEW_ReduceAction728_parser___ReduceAction___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_NEW_ReduceAction728_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   fra.me.REG[0] = NEW_parser___ReduceAction728();
   INIT_ATTRIBUTES__parser___ReduceAction728(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
@@ -130902,13 +128574,14 @@ val_t NEW_ReduceAction728_parser___ReduceAction___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction729[52] = {
-  {(bigint) 531 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction729[55] = {
+  {(bigint) 555 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction729" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction729 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction729 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 531 /* 5: ReduceAction729 < ReduceAction729: superclass typecheck marker */},
+  {(bigint) 555 /* 5: ReduceAction729 < ReduceAction729: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -130921,7 +128594,7 @@ const classtable_elt_t VFT_parser___ReduceAction729[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction729 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction729 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -130937,6 +128610,8 @@ const classtable_elt_t VFT_parser___ReduceAction729[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -130950,11 +128625,11 @@ const classtable_elt_t VFT_parser___ReduceAction729[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction729 < ReduceAction: superclass init_table position */},
+  {(bigint) 0 /* 50: ReduceAction729 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction729___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction729 < ReduceAction729: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction729 < ReduceAction729: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -131007,14 +128682,14 @@ val_t NEW_ReduceAction729_parser___ReduceAction___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_NEW_ReduceAction729_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   fra.me.REG[0] = NEW_parser___ReduceAction729();
   INIT_ATTRIBUTES__parser___ReduceAction729(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
@@ -131022,13 +128697,14 @@ val_t NEW_ReduceAction729_parser___ReduceAction___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction730[52] = {
-  {(bigint) 523 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction730[55] = {
+  {(bigint) 547 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction730" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction730 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction730 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 523 /* 5: ReduceAction730 < ReduceAction730: superclass typecheck marker */},
+  {(bigint) 547 /* 5: ReduceAction730 < ReduceAction730: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -131041,7 +128717,7 @@ const classtable_elt_t VFT_parser___ReduceAction730[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction730 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction730 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -131057,6 +128733,8 @@ const classtable_elt_t VFT_parser___ReduceAction730[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -131070,11 +128748,11 @@ const classtable_elt_t VFT_parser___ReduceAction730[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction730 < ReduceAction: superclass init_table position */},
+  {(bigint) 0 /* 50: ReduceAction730 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction730___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction730 < ReduceAction730: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction730 < ReduceAction730: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -131127,14 +128805,14 @@ val_t NEW_ReduceAction730_parser___ReduceAction___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_NEW_ReduceAction730_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   fra.me.REG[0] = NEW_parser___ReduceAction730();
   INIT_ATTRIBUTES__parser___ReduceAction730(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
@@ -131142,13 +128820,14 @@ val_t NEW_ReduceAction730_parser___ReduceAction___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction731[52] = {
-  {(bigint) 519 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction731[55] = {
+  {(bigint) 543 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction731" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction731 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction731 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 519 /* 5: ReduceAction731 < ReduceAction731: superclass typecheck marker */},
+  {(bigint) 543 /* 5: ReduceAction731 < ReduceAction731: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -131161,7 +128840,7 @@ const classtable_elt_t VFT_parser___ReduceAction731[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction731 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction731 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -131177,6 +128856,8 @@ const classtable_elt_t VFT_parser___ReduceAction731[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -131190,11 +128871,11 @@ const classtable_elt_t VFT_parser___ReduceAction731[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction731 < ReduceAction: superclass init_table position */},
+  {(bigint) 0 /* 50: ReduceAction731 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction731___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction731 < ReduceAction731: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction731 < ReduceAction731: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -131247,14 +128928,14 @@ val_t NEW_ReduceAction731_parser___ReduceAction___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_NEW_ReduceAction731_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   fra.me.REG[0] = NEW_parser___ReduceAction731();
   INIT_ATTRIBUTES__parser___ReduceAction731(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
@@ -131262,13 +128943,14 @@ val_t NEW_ReduceAction731_parser___ReduceAction___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction733[52] = {
-  {(bigint) 515 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction734[55] = {
+  {(bigint) 539 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction733" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction733 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction733 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 515 /* 5: ReduceAction733 < ReduceAction733: superclass typecheck marker */},
+  {(bigint) "ReduceAction734" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction734 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction734 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 539 /* 5: ReduceAction734 < ReduceAction734: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -131281,7 +128963,7 @@ const classtable_elt_t VFT_parser___ReduceAction733[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction733 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction734 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -131297,6 +128979,8 @@ const classtable_elt_t VFT_parser___ReduceAction733[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -131310,44 +128994,44 @@ const classtable_elt_t VFT_parser___ReduceAction733[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction733 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction733___action},
+  {(bigint) 0 /* 50: ReduceAction734 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction734___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction733 < ReduceAction733: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction734 < ReduceAction734: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction733::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction733(val_t p0){
+/* 2: Attribute ReduceAction734::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction734(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction733;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction734;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction733(void)
+val_t NEW_parser___ReduceAction734(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction733;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction734;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction733(val_t p0){
+void CHECKNEW_parser___ReduceAction734(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction733;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction734;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -131360,35 +129044,36 @@ void CHECKNEW_parser___ReduceAction733(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction733_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction734_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction733_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction734_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction733();
-  INIT_ATTRIBUTES__parser___ReduceAction733(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction734();
+  INIT_ATTRIBUTES__parser___ReduceAction734(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction733(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction734(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction735[52] = {
-  {(bigint) 511 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction735[55] = {
+  {(bigint) 535 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction735" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction735 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction735 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 511 /* 5: ReduceAction735 < ReduceAction735: superclass typecheck marker */},
+  {(bigint) 535 /* 5: ReduceAction735 < ReduceAction735: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -131401,7 +129086,7 @@ const classtable_elt_t VFT_parser___ReduceAction735[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction735 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction735 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -131417,6 +129102,8 @@ const classtable_elt_t VFT_parser___ReduceAction735[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -131430,11 +129117,11 @@ const classtable_elt_t VFT_parser___ReduceAction735[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction735 < ReduceAction: superclass init_table position */},
+  {(bigint) 0 /* 50: ReduceAction735 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction735___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction735 < ReduceAction735: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction735 < ReduceAction735: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -131487,14 +129174,14 @@ val_t NEW_ReduceAction735_parser___ReduceAction___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_NEW_ReduceAction735_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   fra.me.REG[0] = NEW_parser___ReduceAction735();
   INIT_ATTRIBUTES__parser___ReduceAction735(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
@@ -131502,13 +129189,14 @@ val_t NEW_ReduceAction735_parser___ReduceAction___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction736[52] = {
-  {(bigint) 507 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction736[55] = {
+  {(bigint) 531 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction736" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction736 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction736 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 507 /* 5: ReduceAction736 < ReduceAction736: superclass typecheck marker */},
+  {(bigint) 531 /* 5: ReduceAction736 < ReduceAction736: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -131521,7 +129209,7 @@ const classtable_elt_t VFT_parser___ReduceAction736[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction736 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction736 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -131537,6 +129225,8 @@ const classtable_elt_t VFT_parser___ReduceAction736[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -131550,11 +129240,11 @@ const classtable_elt_t VFT_parser___ReduceAction736[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction736 < ReduceAction: superclass init_table position */},
+  {(bigint) 0 /* 50: ReduceAction736 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction736___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction736 < ReduceAction736: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction736 < ReduceAction736: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -131607,14 +129297,14 @@ val_t NEW_ReduceAction736_parser___ReduceAction___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_NEW_ReduceAction736_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   fra.me.REG[0] = NEW_parser___ReduceAction736();
   INIT_ATTRIBUTES__parser___ReduceAction736(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
@@ -131622,13 +129312,14 @@ val_t NEW_ReduceAction736_parser___ReduceAction___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction737[52] = {
-  {(bigint) 503 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction737[55] = {
+  {(bigint) 527 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ReduceAction737" /* 2: Class Name */},
   {(bigint) 3 /* 3: ReduceAction737 < Object: superclass typecheck marker */},
   {(bigint) 67 /* 4: ReduceAction737 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 503 /* 5: ReduceAction737 < ReduceAction737: superclass typecheck marker */},
+  {(bigint) 527 /* 5: ReduceAction737 < ReduceAction737: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -131641,7 +129332,7 @@ const classtable_elt_t VFT_parser___ReduceAction737[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction737 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction737 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -131657,6 +129348,8 @@ const classtable_elt_t VFT_parser___ReduceAction737[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -131670,11 +129363,11 @@ const classtable_elt_t VFT_parser___ReduceAction737[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction737 < ReduceAction: superclass init_table position */},
+  {(bigint) 0 /* 50: ReduceAction737 < ReduceAction: superclass init_table position */},
   {(bigint) parser___ReduceAction737___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction737 < ReduceAction737: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction737 < ReduceAction737: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -131727,14 +129420,14 @@ val_t NEW_ReduceAction737_parser___ReduceAction___init(val_t p0){
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_NEW_ReduceAction737_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   fra.me.REG[0] = NEW_parser___ReduceAction737();
   INIT_ATTRIBUTES__parser___ReduceAction737(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
@@ -131742,13 +129435,14 @@ val_t NEW_ReduceAction737_parser___ReduceAction___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction741[52] = {
-  {(bigint) 495 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction738[55] = {
+  {(bigint) 523 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction741" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction741 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction741 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 495 /* 5: ReduceAction741 < ReduceAction741: superclass typecheck marker */},
+  {(bigint) "ReduceAction738" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction738 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction738 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 523 /* 5: ReduceAction738 < ReduceAction738: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -131761,7 +129455,7 @@ const classtable_elt_t VFT_parser___ReduceAction741[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction741 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction738 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -131777,6 +129471,8 @@ const classtable_elt_t VFT_parser___ReduceAction741[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -131790,44 +129486,44 @@ const classtable_elt_t VFT_parser___ReduceAction741[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction741 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction741___action},
+  {(bigint) 0 /* 50: ReduceAction738 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction738___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction741 < ReduceAction741: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction738 < ReduceAction738: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction741::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction741(val_t p0){
+/* 2: Attribute ReduceAction738::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction738(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction741;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction738;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction741(void)
+val_t NEW_parser___ReduceAction738(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction741;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction738;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction741(val_t p0){
+void CHECKNEW_parser___ReduceAction738(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction741;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction738;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -131840,35 +129536,36 @@ void CHECKNEW_parser___ReduceAction741(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction741_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction738_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction741_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction738_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction741();
-  INIT_ATTRIBUTES__parser___ReduceAction741(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction738();
+  INIT_ATTRIBUTES__parser___ReduceAction738(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction741(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction738(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction742[52] = {
-  {(bigint) 491 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction739[55] = {
+  {(bigint) 519 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction742" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction742 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction742 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 491 /* 5: ReduceAction742 < ReduceAction742: superclass typecheck marker */},
+  {(bigint) "ReduceAction739" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction739 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction739 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 519 /* 5: ReduceAction739 < ReduceAction739: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -131881,7 +129578,7 @@ const classtable_elt_t VFT_parser___ReduceAction742[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction742 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction739 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -131897,6 +129594,8 @@ const classtable_elt_t VFT_parser___ReduceAction742[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -131910,44 +129609,44 @@ const classtable_elt_t VFT_parser___ReduceAction742[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction742 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction742___action},
+  {(bigint) 0 /* 50: ReduceAction739 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction739___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction742 < ReduceAction742: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction739 < ReduceAction739: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction742::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction742(val_t p0){
+/* 2: Attribute ReduceAction739::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction739(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction742;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction739;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction742(void)
+val_t NEW_parser___ReduceAction739(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction742;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction739;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction742(val_t p0){
+void CHECKNEW_parser___ReduceAction739(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction742;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction739;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -131960,35 +129659,36 @@ void CHECKNEW_parser___ReduceAction742(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction742_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction739_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction742_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction739_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction742();
-  INIT_ATTRIBUTES__parser___ReduceAction742(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction739();
+  INIT_ATTRIBUTES__parser___ReduceAction739(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction742(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction739(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction743[52] = {
-  {(bigint) 487 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction740[55] = {
+  {(bigint) 511 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction743" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction743 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction743 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 487 /* 5: ReduceAction743 < ReduceAction743: superclass typecheck marker */},
+  {(bigint) "ReduceAction740" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction740 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction740 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 511 /* 5: ReduceAction740 < ReduceAction740: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -132001,7 +129701,7 @@ const classtable_elt_t VFT_parser___ReduceAction743[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction743 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction740 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -132017,6 +129717,8 @@ const classtable_elt_t VFT_parser___ReduceAction743[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -132030,44 +129732,44 @@ const classtable_elt_t VFT_parser___ReduceAction743[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction743 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction743___action},
+  {(bigint) 0 /* 50: ReduceAction740 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction740___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction743 < ReduceAction743: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction740 < ReduceAction740: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction743::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction743(val_t p0){
+/* 2: Attribute ReduceAction740::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction740(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction743;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction740;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction743(void)
+val_t NEW_parser___ReduceAction740(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction743;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction740;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction743(val_t p0){
+void CHECKNEW_parser___ReduceAction740(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction743;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction740;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -132080,35 +129782,36 @@ void CHECKNEW_parser___ReduceAction743(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction743_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction740_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction743_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction740_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction743();
-  INIT_ATTRIBUTES__parser___ReduceAction743(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction740();
+  INIT_ATTRIBUTES__parser___ReduceAction740(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction743(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction740(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction744[52] = {
-  {(bigint) 483 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction741[55] = {
+  {(bigint) 507 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction744" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction744 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction744 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 483 /* 5: ReduceAction744 < ReduceAction744: superclass typecheck marker */},
+  {(bigint) "ReduceAction741" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction741 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction741 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 507 /* 5: ReduceAction741 < ReduceAction741: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -132121,7 +129824,7 @@ const classtable_elt_t VFT_parser___ReduceAction744[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction744 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction741 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -132137,6 +129840,8 @@ const classtable_elt_t VFT_parser___ReduceAction744[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -132150,44 +129855,44 @@ const classtable_elt_t VFT_parser___ReduceAction744[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction744 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction744___action},
+  {(bigint) 0 /* 50: ReduceAction741 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction741___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction744 < ReduceAction744: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction741 < ReduceAction741: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction744::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction744(val_t p0){
+/* 2: Attribute ReduceAction741::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction741(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction744;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction741;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction744(void)
+val_t NEW_parser___ReduceAction741(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction744;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction741;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction744(val_t p0){
+void CHECKNEW_parser___ReduceAction741(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction744;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction741;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -132200,35 +129905,36 @@ void CHECKNEW_parser___ReduceAction744(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction744_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction741_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction744_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction741_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction744();
-  INIT_ATTRIBUTES__parser___ReduceAction744(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction741();
+  INIT_ATTRIBUTES__parser___ReduceAction741(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction744(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction741(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_parser___ReduceAction745[52] = {
-  {(bigint) 479 /* 0: Identity */},
+const classtable_elt_t VFT_parser___ReduceAction743[55] = {
+  {(bigint) 503 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReduceAction745" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReduceAction745 < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 4: ReduceAction745 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 479 /* 5: ReduceAction745 < ReduceAction745: superclass typecheck marker */},
+  {(bigint) "ReduceAction743" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction743 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction743 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 503 /* 5: ReduceAction743 < ReduceAction743: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -132241,7 +129947,7 @@ const classtable_elt_t VFT_parser___ReduceAction745[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ReduceAction745 < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction743 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -132257,6 +129963,8 @@ const classtable_elt_t VFT_parser___ReduceAction745[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -132270,44 +129978,44 @@ const classtable_elt_t VFT_parser___ReduceAction745[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: ReduceAction745 < ReduceAction: superclass init_table position */},
-  {(bigint) parser___ReduceAction745___action},
+  {(bigint) 0 /* 50: ReduceAction743 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction743___action},
   {(bigint) parser___ReduceAction___concat},
   {(bigint) parser___ReduceAction___init},
-  {(bigint) 2 /* 51: ReduceAction745 < ReduceAction745: superclass init_table position */},
+  {(bigint) 2 /* 54: ReduceAction743 < ReduceAction743: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReduceAction745::_goto */
-void INIT_ATTRIBUTES__parser___ReduceAction745(val_t p0){
+/* 2: Attribute ReduceAction743::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction743(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction745;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction743;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_parser___ReduceAction745(void)
+val_t NEW_parser___ReduceAction743(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction745;
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction743;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_parser___ReduceAction745(val_t p0){
+void CHECKNEW_parser___ReduceAction743(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction745;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction743;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -132320,37 +130028,38 @@ void CHECKNEW_parser___ReduceAction745(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReduceAction745_parser___ReduceAction___init(val_t p0){
+val_t NEW_ReduceAction743_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 1010;
-  fra.me.meth = LOCATE_NEW_ReduceAction745_parser___ReduceAction___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction743_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./parser//parser.nit:1010 */
-  fra.me.REG[0] = NEW_parser___ReduceAction745();
-  INIT_ATTRIBUTES__parser___ReduceAction745(fra.me.REG[0]);
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction743();
+  INIT_ATTRIBUTES__parser___ReduceAction743(fra.me.REG[0]);
   parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
-  CHECKNEW_parser___ReduceAction745(fra.me.REG[0]);
+  CHECKNEW_parser___ReduceAction743(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_metamodel___partial_order___PartialOrder[89] = {
-  {(bigint) 2079 /* 0: Identity */},
-  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "PartialOrder" /* 2: Class Name */},
-  {(bigint) 3 /* 3: PartialOrder < Object: superclass typecheck marker */},
+const classtable_elt_t VFT_parser___ReduceAction744[55] = {
+  {(bigint) 499 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReduceAction744" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction744 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction744 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 499 /* 5: ReduceAction744 < ReduceAction744: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 283 /* 6: PartialOrder < Collection: superclass typecheck marker */},
-  {(bigint) 2079 /* 7: PartialOrder < PartialOrder: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -132361,7 +130070,7 @@ const classtable_elt_t VFT_metamodel___partial_order___PartialOrder[89] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: PartialOrder < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction744 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -132377,7 +130086,9 @@ const classtable_elt_t VFT_metamodel___partial_order___PartialOrder[89] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Collection___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -132390,131 +130101,85 @@ const classtable_elt_t VFT_metamodel___partial_order___PartialOrder[89] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) standard___string___Collection___join},
-  {(bigint) standard___collection___array___Collection___to_a},
-  {(bigint) 0 /* 65: PartialOrder < Collection: superclass init_table position */},
-  {(bigint) metamodel___partial_order___PartialOrder___iterator},
-  {(bigint) standard___collection___abstract_collection___Collection___iterate},
-  {(bigint) metamodel___partial_order___PartialOrder___is_empty},
-  {(bigint) metamodel___partial_order___PartialOrder___length},
-  {(bigint) metamodel___partial_order___PartialOrder___has},
-  {(bigint) metamodel___partial_order___PartialOrder___has_only},
-  {(bigint) metamodel___partial_order___PartialOrder___count},
-  {(bigint) metamodel___partial_order___PartialOrder___first},
-  {(bigint) standard___math___Collection___rand},
-  {(bigint) 2 /* 75: PartialOrder < PartialOrder: superclass init_table position */},
-  {(bigint) metamodel___partial_order___PartialOrder___roots},
-  {(bigint) metamodel___partial_order___PartialOrder_____bra},
-  {(bigint) metamodel___partial_order___PartialOrder___to_dot},
-  {(bigint) metamodel___partial_order___PartialOrder___to_dot_header},
-  {(bigint) metamodel___partial_order___PartialOrder___to_dot_node},
-  {(bigint) metamodel___partial_order___PartialOrder___to_dot_edge},
-  {(bigint) metamodel___partial_order___PartialOrder___select_smallests},
-  {(bigint) metamodel___partial_order___PartialOrder___add},
-  {(bigint) metamodel___partial_order___PartialOrder___has_all},
-  {(bigint) metamodel___partial_order___PartialOrder___new_poe},
-  {(bigint) metamodel___partial_order___PartialOrder___add_to_smallests},
-  {(bigint) metamodel___partial_order___PartialOrder___compute_smallers_for},
-  {(bigint) metamodel___partial_order___PartialOrder___init},
+  {(bigint) 0 /* 50: ReduceAction744 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction744___action},
+  {(bigint) parser___ReduceAction___concat},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 54: ReduceAction744 < ReduceAction744: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute PartialOrder::_elements */
-/* 3: Attribute PartialOrder::_elements_list */
-/* 4: Attribute PartialOrder::_roots */
-void INIT_ATTRIBUTES__metamodel___partial_order___PartialOrder(val_t p0){
+/* 2: Attribute ReduceAction744::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction744(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___partial_order___PartialOrder;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction744;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_metamodel___partial_order___PartialOrder(void)
+val_t NEW_parser___ReduceAction744(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_metamodel___partial_order___PartialOrder;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction744;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_metamodel___partial_order___PartialOrder(val_t p0){
+void CHECKNEW_parser___ReduceAction744(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_metamodel___partial_order___PartialOrder;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction744;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_elements", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements_list(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_elements_list", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____roots(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_roots", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_PartialOrder_metamodel___partial_order___PartialOrder___init(void){
+val_t NEW_ReduceAction744_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 181;
-  fra.me.meth = LOCATE_NEW_PartialOrder_metamodel___partial_order___PartialOrder___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction744_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./metamodel//partial_order.nit:181 */
-  fra.me.REG[0] = NEW_metamodel___partial_order___PartialOrder();
-  INIT_ATTRIBUTES__metamodel___partial_order___PartialOrder(fra.me.REG[0]);
-  metamodel___partial_order___PartialOrder___init(fra.me.REG[0], init_table);
-  CHECKNEW_metamodel___partial_order___PartialOrder(fra.me.REG[0]);
+  REGB0 = p0;
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction744();
+  INIT_ATTRIBUTES__parser___ReduceAction744(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_parser___ReduceAction744(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_metamodel___partial_order___PartialOrderElement[64] = {
-  {(bigint) 107 /* 0: Identity */},
-  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "PartialOrderElement" /* 2: Class Name */},
-  {(bigint) 3 /* 3: PartialOrderElement < Object: superclass typecheck marker */},
-  {(bigint) 107 /* 4: PartialOrderElement < PartialOrderElement: superclass typecheck marker */},
+const classtable_elt_t VFT_parser___ReduceAction745[55] = {
+  {(bigint) 495 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReduceAction745" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction745 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction745 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 495 /* 5: ReduceAction745 < ReduceAction745: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -132528,7 +130193,7 @@ const classtable_elt_t VFT_metamodel___partial_order___PartialOrderElement[64] =
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: PartialOrderElement < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction745 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -132544,6 +130209,8 @@ const classtable_elt_t VFT_metamodel___partial_order___PartialOrderElement[64] =
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -132557,151 +130224,85 @@ const classtable_elt_t VFT_metamodel___partial_order___PartialOrderElement[64] =
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: PartialOrderElement < PartialOrderElement: superclass init_table position */},
-  {(bigint) metamodel___partial_order___PartialOrderElement___order},
-  {(bigint) metamodel___partial_order___PartialOrderElement___value},
-  {(bigint) metamodel___partial_order___PartialOrderElement___rank},
-  {(bigint) metamodel___partial_order___PartialOrderElement___direct_greaters},
-  {(bigint) metamodel___partial_order___PartialOrderElement___direct_smallers},
-  {(bigint) metamodel___partial_order___PartialOrderElement___greaters},
-  {(bigint) metamodel___partial_order___PartialOrderElement___greaters_and_self},
-  {(bigint) metamodel___partial_order___PartialOrderElement___smallers},
-  {(bigint) metamodel___partial_order___PartialOrderElement___linear_extension},
-  {(bigint) metamodel___partial_order___PartialOrderElement___reverse_linear_extension},
-  {(bigint) metamodel___partial_order___PartialOrderElement_____l},
-  {(bigint) metamodel___partial_order___PartialOrderElement_____leq},
-  {(bigint) metamodel___partial_order___PartialOrderElement_____g},
-  {(bigint) metamodel___partial_order___PartialOrderElement_____geq},
-  {(bigint) metamodel___partial_order___PartialOrderElement___register_direct_smallers},
-  {(bigint) metamodel___partial_order___PartialOrderElement___init},
+  {(bigint) 0 /* 50: ReduceAction745 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction745___action},
+  {(bigint) parser___ReduceAction___concat},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 54: ReduceAction745 < ReduceAction745: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute PartialOrderElement::_order */
-/* 3: Attribute PartialOrderElement::_value */
-/* 4: Attribute PartialOrderElement::_rank */
-/* 5: Attribute PartialOrderElement::_direct_greaters */
-/* 6: Attribute PartialOrderElement::_direct_smallers */
-/* 7: Attribute PartialOrderElement::_greaters */
-/* 8: Attribute PartialOrderElement::_greaters_and_self_cache */
-/* 9: Attribute PartialOrderElement::_smallers_last_length */
-/* 10: Attribute PartialOrderElement::_smallers_cache */
-/* 11: Attribute PartialOrderElement::_linear_extension_cache */
-/* 12: Attribute PartialOrderElement::_reverse_linear_extension_cache */
-void INIT_ATTRIBUTES__metamodel___partial_order___PartialOrderElement(val_t p0){
+/* 2: Attribute ReduceAction745::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction745(val_t p0){
   struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___partial_order___PartialOrderElement;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction745;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./metamodel//partial_order.nit:225 */
-  REGB0 = TAG_Int(0);
-  ATTR_metamodel___partial_order___PartialOrderElement____smallers_last_length(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_metamodel___partial_order___PartialOrderElement(void)
+val_t NEW_parser___ReduceAction745(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
-  obj->vft = (classtable_elt_t*)VFT_metamodel___partial_order___PartialOrderElement;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction745;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_metamodel___partial_order___PartialOrderElement(val_t p0){
+void CHECKNEW_parser___ReduceAction745(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_metamodel___partial_order___PartialOrderElement;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction745;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_order", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____value(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_value", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____rank(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_rank", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____direct_greaters(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_direct_greaters", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____direct_smallers(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_direct_smallers", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____greaters(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_greaters", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____smallers_last_length(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_smallers_last_length", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____smallers_cache(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_smallers_cache", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_PartialOrderElement_metamodel___partial_order___PartialOrderElement___init(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+val_t NEW_ReduceAction745_parser___ReduceAction___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
-  int init_table[2] = {0, 0};
+  int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 316;
-  fra.me.meth = LOCATE_NEW_PartialOrderElement_metamodel___partial_order___PartialOrderElement___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction745_parser___ReduceAction___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* ./metamodel//partial_order.nit:316 */
-  fra.me.REG[3] = NEW_metamodel___partial_order___PartialOrderElement();
-  INIT_ATTRIBUTES__metamodel___partial_order___PartialOrderElement(fra.me.REG[3]);
-  metamodel___partial_order___PartialOrderElement___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  CHECKNEW_metamodel___partial_order___PartialOrderElement(fra.me.REG[3]);
+  REGB0 = p0;
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction745();
+  INIT_ATTRIBUTES__parser___ReduceAction745(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_parser___ReduceAction745(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[3];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_metamodel___abstractmetamodel___MMContext[56] = {
-  {(bigint) 187 /* 0: Identity */},
-  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMContext" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMContext < Object: superclass typecheck marker */},
-  {(bigint) 187 /* 4: MMContext < MMContext: superclass typecheck marker */},
+const classtable_elt_t VFT_parser___ReduceAction747[55] = {
+  {(bigint) 491 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReduceAction747" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction747 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction747 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 491 /* 5: ReduceAction747 < ReduceAction747: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -132715,7 +130316,7 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMContext[56] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMContext < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction747 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -132731,6 +130332,8 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMContext[56] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -132744,119 +130347,85 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMContext[56] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) metamodel___inheritance___MMContext___handle_property_conflict},
-  {(bigint) 1 /* 48: MMContext < MMContext: superclass init_table position */},
-  {(bigint) metamodel___abstractmetamodel___MMContext___init},
-  {(bigint) metamodel___abstractmetamodel___MMContext___module_hierarchy},
-  {(bigint) metamodel___abstractmetamodel___MMContext___class_hierarchy},
-  {(bigint) metamodel___abstractmetamodel___MMContext___modules},
-  {(bigint) metamodel___abstractmetamodel___MMContext___add_module},
-  {(bigint) metamodel___abstractmetamodel___MMContext___add_global_class},
-  {(bigint) metamodel___abstractmetamodel___MMContext___add_local_class},
+  {(bigint) 0 /* 50: ReduceAction747 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction747___action},
+  {(bigint) parser___ReduceAction___concat},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 54: ReduceAction747 < ReduceAction747: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute MMContext::_module_hierarchy */
-/* 3: Attribute MMContext::_class_hierarchy */
-/* 4: Attribute MMContext::_global_classes */
-/* 5: Attribute MMContext::_modules */
-void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMContext(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+/* 2: Attribute ReduceAction747::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction747(val_t p0){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMContext;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction747;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:30 */
-  fra.me.REG[1] = NEW_PartialOrder_metamodel___partial_order___PartialOrder___init();
-  ATTR_metamodel___abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:34 */
-  fra.me.REG[1] = NEW_PartialOrder_metamodel___partial_order___PartialOrder___init();
-  ATTR_metamodel___abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:37 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_metamodel___abstractmetamodel___MMContext____global_classes(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:40 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_metamodel___abstractmetamodel___MMContext____modules(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_metamodel___abstractmetamodel___MMContext(void)
+val_t NEW_parser___ReduceAction747(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_metamodel___abstractmetamodel___MMContext;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction747;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_metamodel___abstractmetamodel___MMContext(val_t p0){
+void CHECKNEW_parser___ReduceAction747(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMContext;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction747;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_module_hierarchy", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_class_hierarchy", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____global_classes(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_global_classes", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____modules(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_modules", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_MMContext_metamodel___abstractmetamodel___MMContext___init(void){
+val_t NEW_ReduceAction747_parser___ReduceAction___init(val_t p0){
   struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
-  int init_table[2] = {0, 0};
+  int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 27;
-  fra.me.meth = LOCATE_NEW_MMContext_metamodel___abstractmetamodel___MMContext___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction747_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./metamodel//abstractmetamodel.nit:27 */
-  fra.me.REG[0] = NEW_metamodel___abstractmetamodel___MMContext();
-  INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMContext(fra.me.REG[0]);
-  metamodel___abstractmetamodel___MMContext___init(fra.me.REG[0], init_table);
-  CHECKNEW_metamodel___abstractmetamodel___MMContext(fra.me.REG[0]);
+  REGB0 = p0;
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction747();
+  INIT_ATTRIBUTES__parser___ReduceAction747(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_parser___ReduceAction747(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_metamodel___abstractmetamodel___MMDirectory[57] = {
-  {(bigint) 183 /* 0: Identity */},
-  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMDirectory" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMDirectory < Object: superclass typecheck marker */},
-  {(bigint) 183 /* 4: MMDirectory < MMDirectory: superclass typecheck marker */},
+const classtable_elt_t VFT_parser___ReduceAction751[55] = {
+  {(bigint) 483 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReduceAction751" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction751 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction751 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 483 /* 5: ReduceAction751 < ReduceAction751: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -132870,7 +130439,7 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMDirectory[57] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMDirectory < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction751 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -132886,6 +130455,8 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMDirectory[57] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -132899,116 +130470,85 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMDirectory[57] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: MMDirectory < MMDirectory: superclass init_table position */},
-  {(bigint) metamodel___abstractmetamodel___MMDirectory___name},
-  {(bigint) metamodel___abstractmetamodel___MMDirectory___path},
-  {(bigint) metamodel___abstractmetamodel___MMDirectory___parent},
-  {(bigint) metamodel___abstractmetamodel___MMDirectory___owner},
-  {(bigint) metamodel___abstractmetamodel___MMDirectory___owner__eq},
-  {(bigint) metamodel___abstractmetamodel___MMDirectory___modules},
-  {(bigint) metamodel___abstractmetamodel___MMDirectory___add_module},
-  {(bigint) metamodel___abstractmetamodel___MMDirectory___init},
-  {(bigint) metamodel___abstractmetamodel___MMDirectory___full_name_for},
+  {(bigint) 0 /* 50: ReduceAction751 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction751___action},
+  {(bigint) parser___ReduceAction___concat},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 54: ReduceAction751 < ReduceAction751: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute MMDirectory::_name */
-/* 3: Attribute MMDirectory::_path */
-/* 4: Attribute MMDirectory::_parent */
-/* 5: Attribute MMDirectory::_owner */
-/* 6: Attribute MMDirectory::_modules */
-void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMDirectory(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+/* 2: Attribute ReduceAction751::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction751(val_t p0){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMDirectory;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction751;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:84 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_metamodel___abstractmetamodel___MMDirectory____owner(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:88 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_metamodel___abstractmetamodel___MMDirectory____modules(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_metamodel___abstractmetamodel___MMDirectory(void)
+val_t NEW_parser___ReduceAction751(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_metamodel___abstractmetamodel___MMDirectory;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction751;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_metamodel___abstractmetamodel___MMDirectory(val_t p0){
+void CHECKNEW_parser___ReduceAction751(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMDirectory;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction751;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMDirectory____name(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_name", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMDirectory____path(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_path", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMDirectory____modules(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_modules", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_MMDirectory_metamodel___abstractmetamodel___MMDirectory___init(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+val_t NEW_ReduceAction751_parser___ReduceAction___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
-  int init_table[2] = {0, 0};
+  int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 97;
-  fra.me.meth = LOCATE_NEW_MMDirectory_metamodel___abstractmetamodel___MMDirectory___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction751_parser___ReduceAction___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* ./metamodel//abstractmetamodel.nit:97 */
-  fra.me.REG[3] = NEW_metamodel___abstractmetamodel___MMDirectory();
-  INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMDirectory(fra.me.REG[3]);
-  metamodel___abstractmetamodel___MMDirectory___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  CHECKNEW_metamodel___abstractmetamodel___MMDirectory(fra.me.REG[3]);
+  REGB0 = p0;
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction751();
+  INIT_ATTRIBUTES__parser___ReduceAction751(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_parser___ReduceAction751(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[3];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_metamodel___abstractmetamodel___MMModule[85] = {
-  {(bigint) 155 /* 0: Identity */},
-  {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMModule" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMModule < Object: superclass typecheck marker */},
-  {(bigint) 155 /* 4: MMModule < MMModule: superclass typecheck marker */},
+const classtable_elt_t VFT_parser___ReduceAction752[55] = {
+  {(bigint) 479 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReduceAction752" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction752 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction752 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 479 /* 5: ReduceAction752 < ReduceAction752: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -133022,7 +130562,7 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMModule[85] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMModule < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction752 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -133038,7 +130578,9 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMModule[85] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) metamodel___abstractmetamodel___MMModule___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -133051,263 +130593,85 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMModule[85] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) abstracttool___MMModule___dump_module_info},
-  {(bigint) syntax___syntax_base___MMModule___nodes},
-  {(bigint) syntax___syntax_base___MMModule___nodes__eq},
-  {(bigint) metamodel___inheritance___MMModule___type_any},
-  {(bigint) metamodel___inheritance___MMModule___type_any_extern},
-  {(bigint) metamodel___inheritance___MMModule___import_global_classes},
-  {(bigint) metamodel___inheritance___MMModule___import_local_classes},
-  {(bigint) metamodel___static_type___MMModule___type_none},
-  {(bigint) metamodel___static_type___MMModule___type_bool},
-  {(bigint) 1 /* 56: MMModule < MMModule: superclass init_table position */},
-  {(bigint) metamodel___abstractmetamodel___MMModule___context},
-  {(bigint) metamodel___abstractmetamodel___MMModule___name},
-  {(bigint) metamodel___abstractmetamodel___MMModule___full_name},
-  {(bigint) metamodel___abstractmetamodel___MMModule___directory},
-  {(bigint) metamodel___abstractmetamodel___MMModule___location},
-  {(bigint) metamodel___abstractmetamodel___MMModule___mhe},
-  {(bigint) metamodel___abstractmetamodel___MMModule___global_classes},
-  {(bigint) metamodel___abstractmetamodel___MMModule___local_classes},
-  {(bigint) metamodel___abstractmetamodel___MMModule___class_specialization_hierarchy},
-  {(bigint) metamodel___abstractmetamodel___MMModule___explicit_imported_modules},
-  {(bigint) metamodel___abstractmetamodel___MMModule___is_extern_hybrid},
-  {(bigint) metamodel___abstractmetamodel___MMModule___is_extern_hybrid__eq},
-  {(bigint) metamodel___abstractmetamodel___MMModule___init},
-  {(bigint) metamodel___abstractmetamodel___MMModule___add_super_module},
-  {(bigint) metamodel___abstractmetamodel___MMModule___visibility_for},
-  {(bigint) metamodel___abstractmetamodel___MMModule_____bra},
-  {(bigint) metamodel___abstractmetamodel___MMModule___class_by_name},
-  {(bigint) metamodel___abstractmetamodel___MMModule___has_global_class_named},
-  {(bigint) metamodel___abstractmetamodel___MMModule___global_class_named},
-  {(bigint) metamodel___abstractmetamodel___MMModule___set_supers_class},
-  {(bigint) metamodel___abstractmetamodel___MMModule___register_global_class},
-  {(bigint) compiling___MMModule___compile_separate_module},
-  {(bigint) compiling___compiling_global___MMModule___declare_class_tables_to_c},
-  {(bigint) compiling___compiling_global___MMModule___compile_mod_to_c},
-  {(bigint) compiling___compiling_global___MMModule___compile_local_table_to_c},
-  {(bigint) compiling___table_computation___MMModule___local_table},
-  {(bigint) compiling___table_computation___MMModule___local_analysis},
-  {(bigint) compiling___compiling_base___MMModule___cname},
+  {(bigint) 0 /* 50: ReduceAction752 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction752___action},
+  {(bigint) parser___ReduceAction___concat},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 54: ReduceAction752 < ReduceAction752: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute MMModule::_type_none */
-/* 3: Attribute MMModule::_context */
-/* 4: Attribute MMModule::_name */
-/* 5: Attribute MMModule::_full_name */
-/* 6: Attribute MMModule::_directory */
-/* 7: Attribute MMModule::_location */
-/* 8: Attribute MMModule::_mhe */
-/* 9: Attribute MMModule::_global_classes */
-/* 10: Attribute MMModule::_local_classes */
-/* 11: Attribute MMModule::_class_specialization_hierarchy */
-/* 12: Attribute MMModule::_intrude_modules */
-/* 13: Attribute MMModule::_public_modules */
-/* 14: Attribute MMModule::_private_modules */
-/* 15: Attribute MMModule::_explicit_imported_modules */
-/* 16: Attribute MMModule::_local_class_by_global */
-/* 17: Attribute MMModule::_global_class_by_name */
-/* 18: Attribute MMModule::@is_extern_hybrid */
-/* 19: Attribute MMModule::_local_table */
-/* 20: Attribute MMModule::_cname_cache */
-void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMModule(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
+/* 2: Attribute ReduceAction752::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction752(val_t p0){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMModule;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction752;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:130 */
-  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_metamodel___abstractmetamodel___MMModule____global_classes(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:154 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_metamodel___abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:151 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_metamodel___abstractmetamodel___MMModule____local_class_by_global(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//static_type.nit:534 */
-  fra.me.REG[1] = fra.me.REG[0];
-  /* ./metamodel//static_type.nit:535 */
-  fra.me.REG[1] = NEW_MMTypeNone_metamodel___static_type___MMTypeNone___init(fra.me.REG[1]);
-  ATTR_metamodel___static_type___MMModule____type_none(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:133 */
-  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_metamodel___abstractmetamodel___MMModule____local_classes(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:136 */
-  fra.me.REG[1] = NEW_PartialOrder_metamodel___partial_order___PartialOrder___init();
-  ATTR_metamodel___abstractmetamodel___MMModule____class_specialization_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:139 */
-  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_metamodel___abstractmetamodel___MMModule____intrude_modules(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:142 */
-  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_metamodel___abstractmetamodel___MMModule____public_modules(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:145 */
-  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_metamodel___abstractmetamodel___MMModule____private_modules(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:148 */
-  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_metamodel___abstractmetamodel___MMModule____explicit_imported_modules(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:159 */
-  REGB0 = TAG_Bool(false);
-  ATTR_metamodel___abstractmetamodel___MMModule_____atis_extern_hybrid(fra.me.REG[0]) = REGB0;
-  /* ./compiling//table_computation.nit:398 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_compiling___table_computation___MMModule____local_table(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_metamodel___abstractmetamodel___MMModule(void)
+val_t NEW_parser___ReduceAction752(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 21);
-  obj->vft = (classtable_elt_t*)VFT_metamodel___abstractmetamodel___MMModule;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction752;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_metamodel___abstractmetamodel___MMModule(val_t p0){
+void CHECKNEW_parser___ReduceAction752(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMModule;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction752;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____global_classes(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_global_classes", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_global_class_by_name", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____local_class_by_global(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_local_class_by_global", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMModule____type_none(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_type_none", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____context(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_context", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____name(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_name", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____full_name(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_full_name", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____directory(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_directory", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____location(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_location", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____local_classes(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_local_classes", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____class_specialization_hierarchy(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_class_specialization_hierarchy", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____intrude_modules(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_intrude_modules", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____public_modules(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_public_modules", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____private_modules(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_private_modules", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____explicit_imported_modules(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_explicit_imported_modules", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule_____atis_extern_hybrid(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@is_extern_hybrid", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMModule____local_table(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_local_table", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_MMModule_metamodel___abstractmetamodel___MMModule___init(val_t p0, val_t p1, val_t p2, val_t p3){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+val_t NEW_ReduceAction752_parser___ReduceAction___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
-  int init_table[2] = {0, 0};
+  int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 161;
-  fra.me.meth = LOCATE_NEW_MMModule_metamodel___abstractmetamodel___MMModule___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction752_parser___ReduceAction___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  fra.me.REG[3] = p3;
-  /* ./metamodel//abstractmetamodel.nit:161 */
-  fra.me.REG[4] = NEW_metamodel___abstractmetamodel___MMModule();
-  INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMModule(fra.me.REG[4]);
-  metamodel___abstractmetamodel___MMModule___init(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
-  CHECKNEW_metamodel___abstractmetamodel___MMModule(fra.me.REG[4]);
+  REGB0 = p0;
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction752();
+  INIT_ATTRIBUTES__parser___ReduceAction752(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_parser___ReduceAction752(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[4];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_metamodel___abstractmetamodel___MMGlobalClass[72] = {
-  {(bigint) 175 /* 0: Identity */},
-  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMGlobalClass" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMGlobalClass < Object: superclass typecheck marker */},
-  {(bigint) 175 /* 4: MMGlobalClass < MMGlobalClass: superclass typecheck marker */},
+const classtable_elt_t VFT_parser___ReduceAction753[55] = {
+  {(bigint) 475 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReduceAction753" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction753 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction753 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 475 /* 5: ReduceAction753 < ReduceAction753: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -133321,7 +130685,7 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMGlobalClass[72] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMGlobalClass < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction753 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -133337,7 +130701,9 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMGlobalClass[72] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -133350,172 +130716,85 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMGlobalClass[72] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___syntax_base___MMGlobalClass___check_visibility},
-  {(bigint) 1 /* 48: MMGlobalClass < MMGlobalClass: superclass init_table position */},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___intro},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___class_refinement_hierarchy},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___init},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___name},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___mmmodule},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___register_local_class},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___is_interface},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___is_interface__eq},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___is_abstract},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___is_abstract__eq},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___is_enum},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___is_enum__eq},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___is_extern},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___is_extern__eq},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___visibility_level},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___visibility_level__eq},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___is_mixin},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___mixin_of},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___mixin_of__eq},
-  {(bigint) compiling___compiling_base___MMGlobalClass___cname},
-  {(bigint) compiling___compiling_base___MMGlobalClass___id_id},
-  {(bigint) compiling___compiling_base___MMGlobalClass___color_id},
-  {(bigint) compiling___compiling_base___MMGlobalClass___init_table_pos_id},
+  {(bigint) 0 /* 50: ReduceAction753 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction753___action},
+  {(bigint) parser___ReduceAction___concat},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 54: ReduceAction753 < ReduceAction753: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute MMGlobalClass::_intro */
-/* 3: Attribute MMGlobalClass::_class_refinement_hierarchy */
-/* 4: Attribute MMGlobalClass::_is_interface */
-/* 5: Attribute MMGlobalClass::_is_abstract */
-/* 6: Attribute MMGlobalClass::_is_enum */
-/* 7: Attribute MMGlobalClass::_is_extern */
-/* 8: Attribute MMGlobalClass::_visibility_level */
-/* 9: Attribute MMGlobalClass::_mixin_of */
-/* 10: Attribute MMGlobalClass::_cname_cache */
-void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMGlobalClass(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
+/* 2: Attribute ReduceAction753::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction753(val_t p0){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMGlobalClass;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction753;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:263 */
-  fra.me.REG[1] = NEW_PartialOrder_metamodel___partial_order___PartialOrder___init();
-  ATTR_metamodel___abstractmetamodel___MMGlobalClass____class_refinement_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:302 */
-  REGB0 = TAG_Bool(false);
-  ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_interface(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//abstractmetamodel.nit:305 */
-  REGB0 = TAG_Bool(false);
-  ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_abstract(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//abstractmetamodel.nit:308 */
-  REGB0 = TAG_Bool(false);
-  ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_enum(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//abstractmetamodel.nit:311 */
-  REGB0 = TAG_Bool(false);
-  ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_extern(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//abstractmetamodel.nit:316 */
-  REGB0 = TAG_Int(1);
-  ATTR_metamodel___abstractmetamodel___MMGlobalClass____visibility_level(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//abstractmetamodel.nit:325 */
-  fra.me.REG[1] = fra.me.REG[0];
-  ATTR_metamodel___abstractmetamodel___MMGlobalClass____mixin_of(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_metamodel___abstractmetamodel___MMGlobalClass(void)
+val_t NEW_parser___ReduceAction753(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 11);
-  obj->vft = (classtable_elt_t*)VFT_metamodel___abstractmetamodel___MMGlobalClass;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction753;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_metamodel___abstractmetamodel___MMGlobalClass(val_t p0){
+void CHECKNEW_parser___ReduceAction753(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMGlobalClass;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction753;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____intro(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_intro", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____class_refinement_hierarchy(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_class_refinement_hierarchy", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_interface(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_interface", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_abstract(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_abstract", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_enum(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_enum", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_extern(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_extern", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____visibility_level(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_visibility_level", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____mixin_of(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_mixin_of", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_MMGlobalClass_metamodel___abstractmetamodel___MMGlobalClass___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ReduceAction753_parser___ReduceAction___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
-  int init_table[2] = {0, 0};
+  int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 265;
-  fra.me.meth = LOCATE_NEW_MMGlobalClass_metamodel___abstractmetamodel___MMGlobalClass___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction753_parser___ReduceAction___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:265 */
-  fra.me.REG[1] = NEW_metamodel___abstractmetamodel___MMGlobalClass();
-  INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMGlobalClass(fra.me.REG[1]);
-  metamodel___abstractmetamodel___MMGlobalClass___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_metamodel___abstractmetamodel___MMGlobalClass(fra.me.REG[1]);
+  REGB0 = p0;
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction753();
+  INIT_ATTRIBUTES__parser___ReduceAction753(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_parser___ReduceAction753(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_metamodel___abstractmetamodel___MMLocalClass[117] = {
-  {(bigint) 163 /* 0: Identity */},
-  {(bigint) 25 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMLocalClass" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMLocalClass < Object: superclass typecheck marker */},
-  {(bigint) 163 /* 4: MMLocalClass < MMLocalClass: superclass typecheck marker */},
+const classtable_elt_t VFT_parser___ReduceAction754[55] = {
+  {(bigint) 471 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReduceAction754" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction754 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction754 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 471 /* 5: ReduceAction754 < ReduceAction754: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -133529,7 +130808,7 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMLocalClass[117] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMLocalClass < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction754 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -133545,7 +130824,9 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMLocalClass[117] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -133558,286 +130839,85 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMLocalClass[117] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) abstracttool___MMLocalClass___dump_properties},
-  {(bigint) syntax___mmbuilder___MMLocalClass___accept_class_visitor},
-  {(bigint) syntax___mmbuilder___MMLocalClass___accept_properties_visitor},
-  {(bigint) primitive_info___MMLocalClass___primitive_info},
-  {(bigint) primitive_info___MMLocalClass___primitive_ctypes},
-  {(bigint) metamodel___genericity___MMLocalClass___get_formal},
-  {(bigint) metamodel___genericity___MMLocalClass___register_formal},
-  {(bigint) metamodel___genericity___MMLocalClass___get_instantiate_type},
-  {(bigint) metamodel___genericity___MMLocalClass___formals_types},
-  {(bigint) metamodel___static_type___MMLocalClass___get_type},
-  {(bigint) metamodel___genericity___MMLocalClass___is_generic},
-  {(bigint) metamodel___inheritance___MMLocalClass___compute_super_classes},
-  {(bigint) metamodel___inheritance___MMLocalClass___compute_ancestors},
-  {(bigint) metamodel___inheritance___MMLocalClass___inherit_global_properties},
-  {(bigint) metamodel___inheritance___MMLocalClass___make_visible_an_inherited_global_property},
-  {(bigint) metamodel___inheritance___MMLocalClass___add_direct_parent},
-  {(bigint) metamodel___inheritance___MMLocalClass___computed_super_classes},
-  {(bigint) metamodel___inheritance___MMLocalClass___computed_ancestors},
-  {(bigint) metamodel___inheritance___MMLocalClass___ancestor_for},
-  {(bigint) metamodel___inheritance___MMLocalClass___add_default_any_class},
-  {(bigint) metamodel___inheritance___MMLocalClass___add_super_classes},
-  {(bigint) metamodel___inheritance___MMLocalClass___add_explicit_classes},
-  {(bigint) metamodel___inheritance___MMLocalClass___compute_super_parents},
-  {(bigint) metamodel___inheritance___MMLocalClass___build_ancestors},
-  {(bigint) metamodel___inheritance___MMLocalClass___group_ancestors},
-  {(bigint) metamodel___inheritance___MMLocalClass___merge_ancestors},
-  {(bigint) metamodel___inheritance___MMLocalClass___inherit_local_property},
-  {(bigint) metamodel___genericity___MMLocalClass___get_type},
-  {(bigint) metamodel___static_type___MMLocalClass___add_ancestor},
-  {(bigint) metamodel___static_type___MMLocalClass___ancestors},
-  {(bigint) metamodel___static_type___MMLocalClass___ancestor},
-  {(bigint) 1 /* 78: MMLocalClass < MMLocalClass: superclass init_table position */},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___arity},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___mmmodule},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___crhe},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___cshe},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___che},
-  {(bigint) metamodel___inheritance___MMLocalClass___global_properties},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___local_local_properties},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___init},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___for_module},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___new_global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___set_global},
-  {(bigint) metamodel___inheritance___MMLocalClass___has_global_property_by_name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___get_property_by_name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___attribute},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___method},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___select_method},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___select_attribute},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___super_methods_named},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___register_local_property},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___register_global_property},
-  {(bigint) metamodel___inheritance___MMLocalClass___has_global_property},
-  {(bigint) metamodel___inheritance___MMLocalClass_____bra},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___context},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___total_order_compare},
-  {(bigint) metamodel___virtualtype___MMLocalClass___virtual_type},
-  {(bigint) metamodel___virtualtype___MMLocalClass___select_virtual_type},
-  {(bigint) native_interface___frontier___MMLocalClass___compile_defaut_extern_type},
-  {(bigint) compiling___icode_generator___MMLocalClass___generate_icode_file},
-  {(bigint) compiling___compiling_base___MMLocalClass___cname},
-  {(bigint) program___MMLocalClass___init_var_iroutine},
-  {(bigint) program___MMLocalClass___init_var_iroutine__eq},
-  {(bigint) program___MMLocalClass___checknew_iroutine},
-  {(bigint) program___MMLocalClass___checknew_iroutine__eq},
-  {(bigint) program___MMLocalClass___new_instance_iroutine},
-  {(bigint) compiling___compiling_global___MMLocalClass___declare_tables_to_c},
-  {(bigint) compiling___compiling_global___MMLocalClass___compile_tables_to_c},
+  {(bigint) 0 /* 50: ReduceAction754 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction754___action},
+  {(bigint) parser___ReduceAction___concat},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 54: ReduceAction754 < ReduceAction754: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute MMLocalClass::_primitive_info_cache */
-/* 3: Attribute MMLocalClass::_primitive_info_b */
-/* 4: Attribute MMLocalClass::_types */
-/* 5: Attribute MMLocalClass::_formals_types */
-/* 6: Attribute MMLocalClass::_direct_parents */
-/* 7: Attribute MMLocalClass::_computing_super */
-/* 8: Attribute MMLocalClass::_are_global_properties_inherited */
-/* 9: Attribute MMLocalClass::_base_type_cache */
-/* 10: Attribute MMLocalClass::_ancestors */
-/* 11: Attribute MMLocalClass::_name */
-/* 12: Attribute MMLocalClass::_arity */
-/* 13: Attribute MMLocalClass::_mmmodule */
-/* 14: Attribute MMLocalClass::_global */
-/* 15: Attribute MMLocalClass::_crhe */
-/* 16: Attribute MMLocalClass::_cshe */
-/* 17: Attribute MMLocalClass::_che */
-/* 18: Attribute MMLocalClass::_local_property_by_global */
-/* 19: Attribute MMLocalClass::_global_properties */
-/* 20: Attribute MMLocalClass::_local_local_properties */
-/* 21: Attribute MMLocalClass::_properties_by_name */
-/* 22: Attribute MMLocalClass::_init_var_iroutine */
-/* 23: Attribute MMLocalClass::_checknew_iroutine */
-/* 24: Attribute MMLocalClass::_new_instance_iroutine */
-void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMLocalClass(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
+/* 2: Attribute ReduceAction754::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction754(val_t p0){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMLocalClass;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction754;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./primitive_info.nit:25 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./primitive_info.nit:29 */
-  REGB0 = TAG_Bool(false);
-  ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//genericity.nit:41 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_metamodel___genericity___MMLocalClass____types(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//genericity.nit:55 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_metamodel___genericity___MMLocalClass____formals_types(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//inheritance.nit:82 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_metamodel___inheritance___MMLocalClass____direct_parents(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//inheritance.nit:86 */
-  REGB0 = TAG_Bool(false);
-  ATTR_metamodel___inheritance___MMLocalClass____computing_super(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//inheritance.nit:133 */
-  REGB0 = TAG_Bool(false);
-  ATTR_metamodel___inheritance___MMLocalClass____are_global_properties_inherited(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//abstractmetamodel.nit:361 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:364 */
-  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:367 */
-  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_metamodel___abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:370 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./program.nit:227 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_program___MMLocalClass____init_var_iroutine(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./program.nit:229 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_program___MMLocalClass____checknew_iroutine(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./program.nit:234 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_program___MMLocalClass____new_instance_iroutine(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_metamodel___abstractmetamodel___MMLocalClass(void)
+val_t NEW_parser___ReduceAction754(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 25);
-  obj->vft = (classtable_elt_t*)VFT_metamodel___abstractmetamodel___MMLocalClass;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction754;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_metamodel___abstractmetamodel___MMLocalClass(val_t p0){
+void CHECKNEW_parser___ReduceAction754(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMLocalClass;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction754;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_primitive_info_b", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____types(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_types", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____formals_types(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_formals_types", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____direct_parents(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_direct_parents", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____computing_super(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_computing_super", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____are_global_properties_inherited(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_are_global_properties_inherited", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____name(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_name", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____arity(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_arity", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_local_property_by_global", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_global_properties", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_local_local_properties", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_program___MMLocalClass____new_instance_iroutine(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_new_instance_iroutine", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_MMLocalClass_metamodel___abstractmetamodel___MMLocalClass___init(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+val_t NEW_ReduceAction754_parser___ReduceAction___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
-  int init_table[2] = {0, 0};
+  int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 372;
-  fra.me.meth = LOCATE_NEW_MMLocalClass_metamodel___abstractmetamodel___MMLocalClass___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction754_parser___ReduceAction___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  REGB0 = p2;
-  /* ./metamodel//abstractmetamodel.nit:372 */
-  fra.me.REG[2] = NEW_metamodel___abstractmetamodel___MMLocalClass();
-  INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMLocalClass(fra.me.REG[2]);
-  metamodel___abstractmetamodel___MMLocalClass___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], REGB0, init_table);
-  CHECKNEW_metamodel___abstractmetamodel___MMLocalClass(fra.me.REG[2]);
+  REGB0 = p0;
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction754();
+  INIT_ATTRIBUTES__parser___ReduceAction754(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_parser___ReduceAction754(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_metamodel___abstractmetamodel___MMGlobalProperty[66] = {
-  {(bigint) 171 /* 0: Identity */},
-  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMGlobalProperty" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMGlobalProperty < Object: superclass typecheck marker */},
-  {(bigint) 171 /* 4: MMGlobalProperty < MMGlobalProperty: superclass typecheck marker */},
+const classtable_elt_t VFT_parser___ReduceAction755[55] = {
+  {(bigint) 467 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReduceAction755" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReduceAction755 < Object: superclass typecheck marker */},
+  {(bigint) 67 /* 4: ReduceAction755 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 467 /* 5: ReduceAction755 < ReduceAction755: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -133851,7 +130931,7 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMGlobalProperty[66]
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMGlobalProperty < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReduceAction755 < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -133867,144 +130947,102 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMGlobalProperty[66]
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___syntax_base___MMGlobalProperty___check_visibility},
-  {(bigint) metamodel___virtualtype___MMGlobalProperty___is_virtual_type},
-  {(bigint) 1 /* 49: MMGlobalProperty < MMGlobalProperty: superclass init_table position */},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___intro},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___local_class},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___property_hierarchy},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___init},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___add_local_property},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___is_attribute},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___is_method},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___is_init},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___is_init__eq},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___is_init_for},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___visibility_level},
-  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___visibility_level__eq},
-  {(bigint) compiling___compiling_base___MMGlobalProperty___meth_call},
-  {(bigint) compiling___compiling_base___MMGlobalProperty___attr_access},
-  {(bigint) compiling___compiling_base___MMGlobalProperty___vt_class_color},
-  {(bigint) compiling___compiling_base___MMGlobalProperty___vt_class_id},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 0 /* 50: ReduceAction755 < ReduceAction: superclass init_table position */},
+  {(bigint) parser___ReduceAction755___action},
+  {(bigint) parser___ReduceAction___concat},
+  {(bigint) parser___ReduceAction___init},
+  {(bigint) 2 /* 54: ReduceAction755 < ReduceAction755: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute MMGlobalProperty::_intro */
-/* 3: Attribute MMGlobalProperty::_property_hierarchy */
-/* 4: Attribute MMGlobalProperty::_is_init */
-/* 5: Attribute MMGlobalProperty::_visibility_level */
-void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMGlobalProperty(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
+/* 2: Attribute ReduceAction755::_goto */
+void INIT_ATTRIBUTES__parser___ReduceAction755(val_t p0){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMGlobalProperty;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__parser___ReduceAction755;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:554 */
-  fra.me.REG[1] = NEW_PartialOrder_metamodel___partial_order___PartialOrder___init();
-  ATTR_metamodel___abstractmetamodel___MMGlobalProperty____property_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:578 */
-  REGB0 = TAG_Bool(false);
-  ATTR_metamodel___abstractmetamodel___MMGlobalProperty____is_init(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//abstractmetamodel.nit:593 */
-  REGB0 = TAG_Int(1);
-  ATTR_metamodel___abstractmetamodel___MMGlobalProperty____visibility_level(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_metamodel___abstractmetamodel___MMGlobalProperty(void)
+val_t NEW_parser___ReduceAction755(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_metamodel___abstractmetamodel___MMGlobalProperty;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_parser___ReduceAction755;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_metamodel___abstractmetamodel___MMGlobalProperty(val_t p0){
+void CHECKNEW_parser___ReduceAction755(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMGlobalProperty;
+  fra.me.meth = LOCATE_CHECKNEW_parser___ReduceAction755;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalProperty____intro(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_intro", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalProperty____property_hierarchy(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_property_hierarchy", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalProperty____is_init(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_init", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalProperty____visibility_level(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_visibility_level", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_MMGlobalProperty_metamodel___abstractmetamodel___MMGlobalProperty___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ReduceAction755_parser___ReduceAction___init(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
-  int init_table[2] = {0, 0};
+  int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 556;
-  fra.me.meth = LOCATE_NEW_MMGlobalProperty_metamodel___abstractmetamodel___MMGlobalProperty___init;
+  fra.me.line = 1020;
+  fra.me.meth = LOCATE_NEW_ReduceAction755_parser___ReduceAction___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:556 */
-  fra.me.REG[1] = NEW_metamodel___abstractmetamodel___MMGlobalProperty();
-  INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMGlobalProperty(fra.me.REG[1]);
-  metamodel___abstractmetamodel___MMGlobalProperty___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_metamodel___abstractmetamodel___MMGlobalProperty(fra.me.REG[1]);
+  REGB0 = p0;
+  /* parser/parser.nit:1020 */
+  fra.me.REG[0] = NEW_parser___ReduceAction755();
+  INIT_ATTRIBUTES__parser___ReduceAction755(fra.me.REG[0]);
+  parser___ReduceAction___init(fra.me.REG[0], REGB0, init_table);
+  CHECKNEW_parser___ReduceAction755(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_metamodel___abstractmetamodel___MMLocalProperty[69] = {
-  {(bigint) 159 /* 0: Identity */},
-  {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMLocalProperty" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMLocalProperty < Object: superclass typecheck marker */},
-  {(bigint) 159 /* 4: MMLocalProperty < MMLocalProperty: superclass typecheck marker */},
+const classtable_elt_t VFT_metamodel___partial_order___PartialOrder[92] = {
+  {(bigint) 2115 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "PartialOrder" /* 2: Class Name */},
+  {(bigint) 3 /* 3: PartialOrder < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 279 /* 6: PartialOrder < Collection: superclass typecheck marker */},
+  {(bigint) 2115 /* 7: PartialOrder < PartialOrder: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -134016,7 +131054,7 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMLocalProperty[69] =
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMLocalProperty < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: PartialOrder < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -134032,7 +131070,9 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMLocalProperty[69] =
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Collection___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -134045,136 +131085,133 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMLocalProperty[69] =
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___MMLocalProperty___accept_property_visitor},
-  {(bigint) syntax___syntax_base___MMLocalProperty___node},
-  {(bigint) syntax___syntax_base___MMLocalProperty___is_init},
-  {(bigint) metamodel___inheritance___MMLocalProperty___inherit_global},
-  {(bigint) metamodel___static_type___MMLocalProperty___signature},
-  {(bigint) metamodel___static_type___MMLocalProperty___signature__eq},
-  {(bigint) metamodel___static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 54: MMLocalProperty < MMLocalProperty: superclass init_table position */},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___local_class},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___is_global_set},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___prhe},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___mmmodule},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___full_name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___set_global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___new_global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___need_super},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___need_super__eq},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___init},
-  {(bigint) compiling___compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling___compiling_base___MMLocalProperty___super_meth_call},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) standard___string___Collection___join},
+  {(bigint) standard___collection___array___Collection___to_a},
+  {(bigint) 0 /* 68: PartialOrder < Collection: superclass init_table position */},
+  {(bigint) metamodel___partial_order___PartialOrder___iterator},
+  {(bigint) standard___collection___abstract_collection___Collection___iterate},
+  {(bigint) metamodel___partial_order___PartialOrder___is_empty},
+  {(bigint) metamodel___partial_order___PartialOrder___length},
+  {(bigint) metamodel___partial_order___PartialOrder___has},
+  {(bigint) metamodel___partial_order___PartialOrder___has_only},
+  {(bigint) metamodel___partial_order___PartialOrder___count},
+  {(bigint) metamodel___partial_order___PartialOrder___first},
+  {(bigint) standard___math___Collection___rand},
+  {(bigint) 2 /* 78: PartialOrder < PartialOrder: superclass init_table position */},
+  {(bigint) metamodel___partial_order___PartialOrder___roots},
+  {(bigint) metamodel___partial_order___PartialOrder_____bra},
+  {(bigint) metamodel___partial_order___PartialOrder___to_dot},
+  {(bigint) metamodel___partial_order___PartialOrder___to_dot_header},
+  {(bigint) metamodel___partial_order___PartialOrder___to_dot_node},
+  {(bigint) metamodel___partial_order___PartialOrder___to_dot_edge},
+  {(bigint) metamodel___partial_order___PartialOrder___select_smallests},
+  {(bigint) metamodel___partial_order___PartialOrder___add},
+  {(bigint) metamodel___partial_order___PartialOrder___has_all},
+  {(bigint) metamodel___partial_order___PartialOrder___new_poe},
+  {(bigint) metamodel___partial_order___PartialOrder___add_to_smallests},
+  {(bigint) metamodel___partial_order___PartialOrder___compute_smallers_for},
+  {(bigint) metamodel___partial_order___PartialOrder___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute MMLocalProperty::_signature */
-/* 3: Attribute MMLocalProperty::_signatures_cache */
-/* 4: Attribute MMLocalProperty::_name */
-/* 5: Attribute MMLocalProperty::_local_class */
-/* 6: Attribute MMLocalProperty::_global */
-/* 7: Attribute MMLocalProperty::_prhe */
-/* 8: Attribute MMLocalProperty::_need_super */
-/* 9: Attribute MMLocalProperty::_cname_cache */
-void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMLocalProperty(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
+/* 2: Attribute PartialOrder::_elements */
+/* 3: Attribute PartialOrder::_elements_list */
+/* 4: Attribute PartialOrder::_roots */
+void INIT_ATTRIBUTES__metamodel___partial_order___PartialOrder(val_t p0){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMLocalProperty;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___partial_order___PartialOrder;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:56 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:649 */
-  REGB0 = TAG_Bool(false);
-  ATTR_metamodel___abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_metamodel___abstractmetamodel___MMLocalProperty(void)
+val_t NEW_metamodel___partial_order___PartialOrder(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 10);
-  obj->vft = (classtable_elt_t*)VFT_metamodel___abstractmetamodel___MMLocalProperty;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_metamodel___partial_order___PartialOrder;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_metamodel___abstractmetamodel___MMLocalProperty(val_t p0){
+void CHECKNEW_metamodel___partial_order___PartialOrder(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMLocalProperty;
+  fra.me.meth = LOCATE_CHECKNEW_metamodel___partial_order___PartialOrder;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_signatures_cache", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_name", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_elements", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements_list(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_elements_list", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____roots(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_need_super", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_roots", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_MMLocalProperty_metamodel___abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+val_t NEW_PartialOrder_metamodel___partial_order___PartialOrder___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[2] = {0, 0};
+  int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 651;
-  fra.me.meth = LOCATE_NEW_MMLocalProperty_metamodel___abstractmetamodel___MMLocalProperty___init;
+  fra.me.line = 181;
+  fra.me.meth = LOCATE_NEW_PartialOrder_metamodel___partial_order___PartialOrder___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:651 */
-  fra.me.REG[2] = NEW_metamodel___abstractmetamodel___MMLocalProperty();
-  INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMLocalProperty(fra.me.REG[2]);
-  metamodel___abstractmetamodel___MMLocalProperty___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_metamodel___abstractmetamodel___MMLocalProperty(fra.me.REG[2]);
+  /* metamodel/partial_order.nit:181 */
+  fra.me.REG[0] = NEW_metamodel___partial_order___PartialOrder();
+  INIT_ATTRIBUTES__metamodel___partial_order___PartialOrder(fra.me.REG[0]);
+  metamodel___partial_order___PartialOrder___init(fra.me.REG[0], init_table);
+  CHECKNEW_metamodel___partial_order___PartialOrder(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_metamodel___abstractmetamodel___MMAttribute[71] = {
-  {(bigint) 2195 /* 0: Identity */},
-  {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMAttribute" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMAttribute < Object: superclass typecheck marker */},
-  {(bigint) 159 /* 4: MMAttribute < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2195 /* 5: MMAttribute < MMAttribute: superclass typecheck marker */},
+const classtable_elt_t VFT_metamodel___partial_order___PartialOrderElement[67] = {
+  {(bigint) 107 /* 0: Identity */},
+  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "PartialOrderElement" /* 2: Class Name */},
+  {(bigint) 3 /* 3: PartialOrderElement < Object: superclass typecheck marker */},
+  {(bigint) 107 /* 4: PartialOrderElement < PartialOrderElement: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -134187,7 +131224,7 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMAttribute[71] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMAttribute < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: PartialOrderElement < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -134203,7 +131240,9 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMAttribute[71] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -134216,137 +131255,152 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMAttribute[71] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___MMLocalProperty___accept_property_visitor},
-  {(bigint) syntax___syntax_base___MMLocalProperty___node},
-  {(bigint) syntax___syntax_base___MMLocalProperty___is_init},
-  {(bigint) metamodel___inheritance___MMLocalProperty___inherit_global},
-  {(bigint) metamodel___static_type___MMLocalProperty___signature},
-  {(bigint) metamodel___static_type___MMLocalProperty___signature__eq},
-  {(bigint) metamodel___static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 54: MMAttribute < MMLocalProperty: superclass init_table position */},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___local_class},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___is_global_set},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___prhe},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___mmmodule},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___full_name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___set_global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___new_global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___need_super},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___need_super__eq},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___init},
-  {(bigint) compiling___compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling___compiling_base___MMLocalProperty___super_meth_call},
-  {(bigint) icode___icode_base___MMAttribute___iroutine},
-  {(bigint) 2 /* 70: MMAttribute < MMAttribute: superclass init_table position */},
+  {(bigint) 1 /* 50: PartialOrderElement < PartialOrderElement: superclass init_table position */},
+  {(bigint) metamodel___partial_order___PartialOrderElement___order},
+  {(bigint) metamodel___partial_order___PartialOrderElement___value},
+  {(bigint) metamodel___partial_order___PartialOrderElement___rank},
+  {(bigint) metamodel___partial_order___PartialOrderElement___direct_greaters},
+  {(bigint) metamodel___partial_order___PartialOrderElement___direct_smallers},
+  {(bigint) metamodel___partial_order___PartialOrderElement___greaters},
+  {(bigint) metamodel___partial_order___PartialOrderElement___greaters_and_self},
+  {(bigint) metamodel___partial_order___PartialOrderElement___smallers},
+  {(bigint) metamodel___partial_order___PartialOrderElement___linear_extension},
+  {(bigint) metamodel___partial_order___PartialOrderElement___reverse_linear_extension},
+  {(bigint) metamodel___partial_order___PartialOrderElement_____l},
+  {(bigint) metamodel___partial_order___PartialOrderElement_____leq},
+  {(bigint) metamodel___partial_order___PartialOrderElement_____g},
+  {(bigint) metamodel___partial_order___PartialOrderElement_____geq},
+  {(bigint) metamodel___partial_order___PartialOrderElement___register_direct_smallers},
+  {(bigint) metamodel___partial_order___PartialOrderElement___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute MMAttribute::_signature */
-/* 3: Attribute MMAttribute::_signatures_cache */
-/* 4: Attribute MMAttribute::_name */
-/* 5: Attribute MMAttribute::_local_class */
-/* 6: Attribute MMAttribute::_global */
-/* 7: Attribute MMAttribute::_prhe */
-/* 8: Attribute MMAttribute::_need_super */
-/* 9: Attribute MMAttribute::_cname_cache */
-void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMAttribute(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+/* 2: Attribute PartialOrderElement::_order */
+/* 3: Attribute PartialOrderElement::_value */
+/* 4: Attribute PartialOrderElement::_rank */
+/* 5: Attribute PartialOrderElement::_direct_greaters */
+/* 6: Attribute PartialOrderElement::_direct_smallers */
+/* 7: Attribute PartialOrderElement::_greaters */
+/* 8: Attribute PartialOrderElement::_greaters_and_self_cache */
+/* 9: Attribute PartialOrderElement::_smallers_last_length */
+/* 10: Attribute PartialOrderElement::_smallers_cache */
+/* 11: Attribute PartialOrderElement::_linear_extension_cache */
+/* 12: Attribute PartialOrderElement::_reverse_linear_extension_cache */
+void INIT_ATTRIBUTES__metamodel___partial_order___PartialOrderElement(val_t p0){
+  struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMAttribute;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___partial_order___PartialOrderElement;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:649 */
-  REGB0 = TAG_Bool(false);
-  ATTR_metamodel___abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//static_type.nit:56 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
+  /* metamodel/partial_order.nit:225 */
+  REGB0 = TAG_Int(0);
+  ATTR_metamodel___partial_order___PartialOrderElement____smallers_last_length(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_metamodel___abstractmetamodel___MMAttribute(void)
+val_t NEW_metamodel___partial_order___PartialOrderElement(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 10);
-  obj->vft = (classtable_elt_t*)VFT_metamodel___abstractmetamodel___MMAttribute;
+  obj = alloc(sizeof(val_t) * 13);
+  obj->vft = (classtable_elt_t*)VFT_metamodel___partial_order___PartialOrderElement;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_metamodel___abstractmetamodel___MMAttribute(val_t p0){
+void CHECKNEW_metamodel___partial_order___PartialOrderElement(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMAttribute;
+  fra.me.meth = LOCATE_CHECKNEW_metamodel___partial_order___PartialOrderElement;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_name", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_order", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_value", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____rank(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_need_super", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_rank", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____direct_greaters(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_signatures_cache", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_direct_greaters", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____direct_smallers(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_direct_smallers", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____greaters(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_greaters", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____smallers_last_length(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_smallers_last_length", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____smallers_cache(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_smallers_cache", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_MMAttribute_metamodel___abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+val_t NEW_PartialOrderElement_metamodel___partial_order___PartialOrderElement___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t tmp;
-  int init_table[3] = {0, 0, 0};
+  int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 651;
-  fra.me.meth = LOCATE_NEW_MMAttribute_metamodel___abstractmetamodel___MMLocalProperty___init;
+  fra.me.line = 316;
+  fra.me.meth = LOCATE_NEW_PartialOrderElement_metamodel___partial_order___PartialOrderElement___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
+  fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:651 */
-  fra.me.REG[2] = NEW_metamodel___abstractmetamodel___MMAttribute();
-  INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMAttribute(fra.me.REG[2]);
-  metamodel___abstractmetamodel___MMLocalProperty___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_metamodel___abstractmetamodel___MMAttribute(fra.me.REG[2]);
+  fra.me.REG[2] = p2;
+  /* metamodel/partial_order.nit:316 */
+  fra.me.REG[3] = NEW_metamodel___partial_order___PartialOrderElement();
+  INIT_ATTRIBUTES__metamodel___partial_order___PartialOrderElement(fra.me.REG[3]);
+  metamodel___partial_order___PartialOrderElement___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_metamodel___partial_order___PartialOrderElement(fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_metamodel___abstractmetamodel___MMExplicitImport[57] = {
+const classtable_elt_t VFT_metamodel___abstractmetamodel___MMDirectory[60] = {
   {(bigint) 179 /* 0: Identity */},
-  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMExplicitImport" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMExplicitImport < Object: superclass typecheck marker */},
-  {(bigint) 179 /* 4: MMExplicitImport < MMExplicitImport: superclass typecheck marker */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "MMDirectory" /* 2: Class Name */},
+  {(bigint) 3 /* 3: MMDirectory < Object: superclass typecheck marker */},
+  {(bigint) 179 /* 4: MMDirectory < MMDirectory: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -134360,10 +131414,10 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMExplicitImport[57]
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMExplicitImport < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: MMDirectory < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) native_interface___frontier___MMExplicitImport_____eqeq},
+  {(bigint) standard___kernel___Object_____eqeq},
   {(bigint) standard___kernel___Object_____neq},
   {(bigint) standard___kernel___Object___output},
   {(bigint) standard___kernel___Object___output_class_name},
@@ -134376,117 +131430,133 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMExplicitImport[57]
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
   {(bigint) standard___string___Object___inspect_head},
   {(bigint) standard___string___Object___args},
-  {(bigint) native_interface___frontier___MMExplicitImport___hash},
+  {(bigint) standard___hash___Object___hash},
   {(bigint) standard___math___Object___atan2},
   {(bigint) standard___math___Object___pi},
   {(bigint) standard___math___Object___srand_from},
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) native_interface___frontier___MMExplicitImport___compile_friendly_to_frontier},
-  {(bigint) metamodel___static_type___MMExplicitImport___signature},
-  {(bigint) metamodel___static_type___MMExplicitImport___signature__eq},
-  {(bigint) metamodel___abstractmetamodel___MMExplicitImport___init},
-  {(bigint) 1 /* 51: MMExplicitImport < MMExplicitImport: superclass init_table position */},
-  {(bigint) metamodel___abstractmetamodel___MMExplicitImport___local_class},
-  {(bigint) metamodel___abstractmetamodel___MMExplicitImport___local_class__eq},
-  {(bigint) metamodel___abstractmetamodel___MMExplicitImport___method},
-  {(bigint) metamodel___abstractmetamodel___MMExplicitImport___method__eq},
-  {(bigint) metamodel___static_type___MMExplicitImport___init},
+  {(bigint) 1 /* 50: MMDirectory < MMDirectory: superclass init_table position */},
+  {(bigint) metamodel___abstractmetamodel___MMDirectory___name},
+  {(bigint) metamodel___abstractmetamodel___MMDirectory___path},
+  {(bigint) metamodel___abstractmetamodel___MMDirectory___parent},
+  {(bigint) metamodel___abstractmetamodel___MMDirectory___owner},
+  {(bigint) metamodel___abstractmetamodel___MMDirectory___owner__eq},
+  {(bigint) metamodel___abstractmetamodel___MMDirectory___modules},
+  {(bigint) metamodel___abstractmetamodel___MMDirectory___add_module},
+  {(bigint) metamodel___abstractmetamodel___MMDirectory___init},
+  {(bigint) metamodel___abstractmetamodel___MMDirectory___full_name_for},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute MMExplicitImport::@signature */
-/* 3: Attribute MMExplicitImport::@local_class */
-/* 4: Attribute MMExplicitImport::@method */
-void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMExplicitImport(val_t p0){
-  struct {struct stack_frame_t me;} fra;
+/* 2: Attribute MMDirectory::_name */
+/* 3: Attribute MMDirectory::_path */
+/* 4: Attribute MMDirectory::_parent */
+/* 5: Attribute MMDirectory::_owner */
+/* 6: Attribute MMDirectory::_modules */
+void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMDirectory(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMExplicitImport;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMDirectory;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
+  fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* metamodel/abstractmetamodel.nit:84 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_metamodel___abstractmetamodel___MMDirectory____owner(fra.me.REG[0]) = fra.me.REG[1];
+  /* metamodel/abstractmetamodel.nit:88 */
+  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
+  ATTR_metamodel___abstractmetamodel___MMDirectory____modules(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_metamodel___abstractmetamodel___MMExplicitImport(void)
+val_t NEW_metamodel___abstractmetamodel___MMDirectory(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_metamodel___abstractmetamodel___MMExplicitImport;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_metamodel___abstractmetamodel___MMDirectory;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_metamodel___abstractmetamodel___MMExplicitImport(val_t p0){
+void CHECKNEW_metamodel___abstractmetamodel___MMDirectory(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMExplicitImport;
+  fra.me.meth = LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMDirectory;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMExplicitImport_____atsignature(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMDirectory____name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "@signature", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_name", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMExplicitImport_____atlocal_class(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMDirectory____path(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "@local_class", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_path", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMExplicitImport_____atmethod(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMDirectory____modules(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "@method", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_modules", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_MMExplicitImport_metamodel___abstractmetamodel___MMExplicitImport___init(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+val_t NEW_MMDirectory_metamodel___abstractmetamodel___MMDirectory___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t tmp;
   int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 253;
-  fra.me.meth = LOCATE_NEW_MMExplicitImport_metamodel___abstractmetamodel___MMExplicitImport___init;
+  fra.me.line = 97;
+  fra.me.meth = LOCATE_NEW_MMDirectory_metamodel___abstractmetamodel___MMDirectory___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
+  fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:253 */
-  fra.me.REG[2] = NEW_metamodel___abstractmetamodel___MMExplicitImport();
-  INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMExplicitImport(fra.me.REG[2]);
-  metamodel___static_type___MMExplicitImport___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_metamodel___abstractmetamodel___MMExplicitImport(fra.me.REG[2]);
+  fra.me.REG[2] = p2;
+  /* metamodel/abstractmetamodel.nit:97 */
+  fra.me.REG[3] = NEW_metamodel___abstractmetamodel___MMDirectory();
+  INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMDirectory(fra.me.REG[3]);
+  metamodel___abstractmetamodel___MMDirectory___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_metamodel___abstractmetamodel___MMDirectory(fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_metamodel___abstractmetamodel___MMMethod[94] = {
-  {(bigint) 2179 /* 0: Identity */},
-  {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMMethod" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMMethod < Object: superclass typecheck marker */},
-  {(bigint) 159 /* 4: MMMethod < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2179 /* 5: MMMethod < MMMethod: superclass typecheck marker */},
+const classtable_elt_t VFT_metamodel___abstractmetamodel___MMGlobalClass[75] = {
+  {(bigint) 171 /* 0: Identity */},
+  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "MMGlobalClass" /* 2: Class Name */},
+  {(bigint) 3 /* 3: MMGlobalClass < Object: superclass typecheck marker */},
+  {(bigint) 171 /* 4: MMGlobalClass < MMGlobalClass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -134499,7 +131569,7 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMMethod[94] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMMethod < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: MMGlobalClass < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -134515,7 +131585,9 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMMethod[94] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -134528,161 +131600,174 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMMethod[94] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___MMLocalProperty___accept_property_visitor},
-  {(bigint) syntax___syntax_base___MMLocalProperty___node},
-  {(bigint) syntax___syntax_base___MMLocalProperty___is_init},
-  {(bigint) metamodel___inheritance___MMLocalProperty___inherit_global},
-  {(bigint) metamodel___static_type___MMLocalProperty___signature},
-  {(bigint) metamodel___static_type___MMLocalProperty___signature__eq},
-  {(bigint) metamodel___static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 54: MMMethod < MMLocalProperty: superclass init_table position */},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___local_class},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___is_global_set},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___prhe},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___mmmodule},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___full_name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___set_global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___new_global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___need_super},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___need_super__eq},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___init},
-  {(bigint) compiling___compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling___compiling_base___MMLocalProperty___super_meth_call},
-  {(bigint) native_interface___ni_metamodel___MMMethod___local_friendly_name_from},
-  {(bigint) native_interface___ni_metamodel___MMMethod___friendly_super_cname},
-  {(bigint) native_interface___ni_metamodel___MMMethod___local_friendly_super_name_from},
-  {(bigint) native_interface___ni_metamodel___MMMethod___friendly_cparams},
-  {(bigint) native_interface___ni_metamodel___MMMethod___csignature_with_suffix},
-  {(bigint) native_interface___ni_metamodel___MMMethod___csignature_with_name},
-  {(bigint) native_interface___ni_metamodel___MMMethod___friendly_csignature},
-  {(bigint) native_interface___ni_metamodel___MMMethod___frontier_csignature_from},
-  {(bigint) native_interface___ni_metamodel___MMMethod___friendly_super_csignature},
-  {(bigint) native_interface___ni_metamodel___MMMethod___frontier_super_csignature_from},
-  {(bigint) native_interface___ni_metamodel___MMMethod___impl_csignature},
-  {(bigint) native_interface___ni_metamodel___MMMethod___cparams},
-  {(bigint) native_interface___ni_metamodel___MMMethod___out_csignature},
-  {(bigint) compiling___icode_generator___MMMethod___generate_icode},
-  {(bigint) primitive_info___MMMethod___default_extern_name},
-  {(bigint) primitive_info___MMMethod___friendly_extern_name},
-  {(bigint) metamodel___static_type___MMMethod___explicit_casts},
-  {(bigint) 2 /* 86: MMMethod < MMMethod: superclass init_table position */},
-  {(bigint) metamodel___abstractmetamodel___MMMethod___is_intern},
-  {(bigint) metamodel___abstractmetamodel___MMMethod___is_abstract},
-  {(bigint) metamodel___abstractmetamodel___MMMethod___is_extern},
-  {(bigint) metamodel___abstractmetamodel___MMMethod___extern_name},
-  {(bigint) metamodel___abstractmetamodel___MMMethod___explicit_imports},
-  {(bigint) icode___icode_base___MMMethod___iroutine},
-  {(bigint) compiling___compiling_global___MMMethod___compile_property_to_c},
+  {(bigint) syntax___syntax_base___MMGlobalClass___check_visibility},
+  {(bigint) 1 /* 51: MMGlobalClass < MMGlobalClass: superclass init_table position */},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___intro},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___class_refinement_hierarchy},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___init},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___name},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___mmmodule},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___register_local_class},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___is_interface},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___is_interface__eq},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___is_abstract},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___is_abstract__eq},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___is_enum},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___is_enum__eq},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___is_extern},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___is_extern__eq},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___visibility_level},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___visibility_level__eq},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___is_mixin},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___mixin_of},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalClass___mixin_of__eq},
+  {(bigint) compiling___compiling_base___MMGlobalClass___cname},
+  {(bigint) compiling___compiling_base___MMGlobalClass___id_id},
+  {(bigint) compiling___compiling_base___MMGlobalClass___color_id},
+  {(bigint) compiling___compiling_base___MMGlobalClass___init_table_pos_id},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute MMMethod::_signature */
-/* 3: Attribute MMMethod::_signatures_cache */
-/* 4: Attribute MMMethod::_name */
-/* 5: Attribute MMMethod::_local_class */
-/* 6: Attribute MMMethod::_global */
-/* 7: Attribute MMMethod::_prhe */
-/* 8: Attribute MMMethod::_need_super */
-/* 9: Attribute MMMethod::_cname_cache */
-void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMMethod(val_t p0){
+/* 2: Attribute MMGlobalClass::_intro */
+/* 3: Attribute MMGlobalClass::_class_refinement_hierarchy */
+/* 4: Attribute MMGlobalClass::_is_interface */
+/* 5: Attribute MMGlobalClass::_is_abstract */
+/* 6: Attribute MMGlobalClass::_is_enum */
+/* 7: Attribute MMGlobalClass::_is_extern */
+/* 8: Attribute MMGlobalClass::_visibility_level */
+/* 9: Attribute MMGlobalClass::_mixin_of */
+/* 10: Attribute MMGlobalClass::_cname_cache */
+void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMGlobalClass(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMMethod;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMGlobalClass;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:649 */
+  /* metamodel/abstractmetamodel.nit:263 */
+  fra.me.REG[1] = NEW_PartialOrder_metamodel___partial_order___PartialOrder___init();
+  ATTR_metamodel___abstractmetamodel___MMGlobalClass____class_refinement_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
+  /* metamodel/abstractmetamodel.nit:302 */
   REGB0 = TAG_Bool(false);
-  ATTR_metamodel___abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//static_type.nit:56 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
+  ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_interface(fra.me.REG[0]) = REGB0;
+  /* metamodel/abstractmetamodel.nit:305 */
+  REGB0 = TAG_Bool(false);
+  ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_abstract(fra.me.REG[0]) = REGB0;
+  /* metamodel/abstractmetamodel.nit:308 */
+  REGB0 = TAG_Bool(false);
+  ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_enum(fra.me.REG[0]) = REGB0;
+  /* metamodel/abstractmetamodel.nit:311 */
+  REGB0 = TAG_Bool(false);
+  ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_extern(fra.me.REG[0]) = REGB0;
+  /* metamodel/abstractmetamodel.nit:316 */
+  REGB0 = TAG_Int(1);
+  ATTR_metamodel___abstractmetamodel___MMGlobalClass____visibility_level(fra.me.REG[0]) = REGB0;
+  /* metamodel/abstractmetamodel.nit:325 */
+  fra.me.REG[1] = fra.me.REG[0];
+  ATTR_metamodel___abstractmetamodel___MMGlobalClass____mixin_of(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_metamodel___abstractmetamodel___MMMethod(void)
+val_t NEW_metamodel___abstractmetamodel___MMGlobalClass(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 10);
-  obj->vft = (classtable_elt_t*)VFT_metamodel___abstractmetamodel___MMMethod;
+  obj = alloc(sizeof(val_t) * 11);
+  obj->vft = (classtable_elt_t*)VFT_metamodel___abstractmetamodel___MMGlobalClass;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_metamodel___abstractmetamodel___MMMethod(val_t p0){
+void CHECKNEW_metamodel___abstractmetamodel___MMGlobalClass(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMMethod;
+  fra.me.meth = LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMGlobalClass;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____intro(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_name", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_intro", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____class_refinement_hierarchy(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_class_refinement_hierarchy", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_interface(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_need_super", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_is_interface", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_abstract(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_signatures_cache", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_is_abstract", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_enum(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_is_enum", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____is_extern(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_is_extern", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____visibility_level(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_visibility_level", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalClass____mixin_of(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_mixin_of", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_MMMethod_metamodel___abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+val_t NEW_MMGlobalClass_metamodel___abstractmetamodel___MMGlobalClass___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[3] = {0, 0, 0};
+  int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 651;
-  fra.me.meth = LOCATE_NEW_MMMethod_metamodel___abstractmetamodel___MMLocalProperty___init;
+  fra.me.line = 265;
+  fra.me.meth = LOCATE_NEW_MMGlobalClass_metamodel___abstractmetamodel___MMGlobalClass___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
+  fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:651 */
-  fra.me.REG[2] = NEW_metamodel___abstractmetamodel___MMMethod();
-  INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMMethod(fra.me.REG[2]);
-  metamodel___abstractmetamodel___MMLocalProperty___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_metamodel___abstractmetamodel___MMMethod(fra.me.REG[2]);
+  /* metamodel/abstractmetamodel.nit:265 */
+  fra.me.REG[1] = NEW_metamodel___abstractmetamodel___MMGlobalClass();
+  INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMGlobalClass(fra.me.REG[1]);
+  metamodel___abstractmetamodel___MMGlobalClass___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_metamodel___abstractmetamodel___MMGlobalClass(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_metamodel___abstractmetamodel___MMConcreteClass[122] = {
-  {(bigint) 2191 /* 0: Identity */},
-  {(bigint) 28 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMConcreteClass" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMConcreteClass < Object: superclass typecheck marker */},
-  {(bigint) 163 /* 4: MMConcreteClass < MMLocalClass: superclass typecheck marker */},
-  {(bigint) 2191 /* 5: MMConcreteClass < MMConcreteClass: superclass typecheck marker */},
+const classtable_elt_t VFT_metamodel___abstractmetamodel___MMGlobalProperty[69] = {
+  {(bigint) 167 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "MMGlobalProperty" /* 2: Class Name */},
+  {(bigint) 3 /* 3: MMGlobalProperty < Object: superclass typecheck marker */},
+  {(bigint) 167 /* 4: MMGlobalProperty < MMGlobalProperty: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -134695,7 +131780,7 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMConcreteClass[122]
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMConcreteClass < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: MMGlobalProperty < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -134711,7 +131796,9 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMConcreteClass[122]
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -134724,310 +131811,130 @@ const classtable_elt_t VFT_metamodel___abstractmetamodel___MMConcreteClass[122]
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) abstracttool___MMLocalClass___dump_properties},
-  {(bigint) syntax___mmbuilder___MMLocalClass___accept_class_visitor},
-  {(bigint) syntax___mmbuilder___MMLocalClass___accept_properties_visitor},
-  {(bigint) primitive_info___MMLocalClass___primitive_info},
-  {(bigint) primitive_info___MMLocalClass___primitive_ctypes},
-  {(bigint) metamodel___genericity___MMLocalClass___get_formal},
-  {(bigint) metamodel___genericity___MMLocalClass___register_formal},
-  {(bigint) metamodel___genericity___MMLocalClass___get_instantiate_type},
-  {(bigint) metamodel___genericity___MMLocalClass___formals_types},
-  {(bigint) metamodel___static_type___MMLocalClass___get_type},
-  {(bigint) metamodel___genericity___MMLocalClass___is_generic},
-  {(bigint) metamodel___inheritance___MMLocalClass___compute_super_classes},
-  {(bigint) metamodel___inheritance___MMLocalClass___compute_ancestors},
-  {(bigint) metamodel___inheritance___MMLocalClass___inherit_global_properties},
-  {(bigint) metamodel___inheritance___MMLocalClass___make_visible_an_inherited_global_property},
-  {(bigint) metamodel___inheritance___MMLocalClass___add_direct_parent},
-  {(bigint) metamodel___inheritance___MMLocalClass___computed_super_classes},
-  {(bigint) metamodel___inheritance___MMLocalClass___computed_ancestors},
-  {(bigint) metamodel___inheritance___MMLocalClass___ancestor_for},
-  {(bigint) metamodel___inheritance___MMLocalClass___add_default_any_class},
-  {(bigint) metamodel___inheritance___MMLocalClass___add_super_classes},
-  {(bigint) metamodel___inheritance___MMLocalClass___add_explicit_classes},
-  {(bigint) metamodel___inheritance___MMLocalClass___compute_super_parents},
-  {(bigint) metamodel___inheritance___MMLocalClass___build_ancestors},
-  {(bigint) metamodel___inheritance___MMLocalClass___group_ancestors},
-  {(bigint) metamodel___inheritance___MMLocalClass___merge_ancestors},
-  {(bigint) metamodel___inheritance___MMLocalClass___inherit_local_property},
-  {(bigint) metamodel___genericity___MMLocalClass___get_type},
-  {(bigint) metamodel___static_type___MMLocalClass___add_ancestor},
-  {(bigint) metamodel___static_type___MMLocalClass___ancestors},
-  {(bigint) metamodel___static_type___MMLocalClass___ancestor},
-  {(bigint) 1 /* 78: MMConcreteClass < MMLocalClass: superclass init_table position */},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___arity},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___mmmodule},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___crhe},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___cshe},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___che},
-  {(bigint) metamodel___inheritance___MMLocalClass___global_properties},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___local_local_properties},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___init},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___for_module},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___new_global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___set_global},
-  {(bigint) metamodel___inheritance___MMLocalClass___has_global_property_by_name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___get_property_by_name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___attribute},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___method},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___select_method},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___select_attribute},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___super_methods_named},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___register_local_property},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___register_global_property},
-  {(bigint) metamodel___inheritance___MMLocalClass___has_global_property},
-  {(bigint) metamodel___inheritance___MMLocalClass_____bra},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___context},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___total_order_compare},
-  {(bigint) metamodel___virtualtype___MMLocalClass___virtual_type},
-  {(bigint) metamodel___virtualtype___MMLocalClass___select_virtual_type},
-  {(bigint) native_interface___frontier___MMLocalClass___compile_defaut_extern_type},
-  {(bigint) compiling___icode_generator___MMLocalClass___generate_icode_file},
-  {(bigint) compiling___compiling_base___MMLocalClass___cname},
-  {(bigint) program___MMLocalClass___init_var_iroutine},
-  {(bigint) program___MMLocalClass___init_var_iroutine__eq},
-  {(bigint) program___MMLocalClass___checknew_iroutine},
-  {(bigint) program___MMLocalClass___checknew_iroutine__eq},
-  {(bigint) program___MMLocalClass___new_instance_iroutine},
-  {(bigint) compiling___compiling_global___MMLocalClass___declare_tables_to_c},
-  {(bigint) compiling___compiling_global___MMLocalClass___compile_tables_to_c},
-  {(bigint) compiling___table_computation___MMConcreteClass___class_color_pos},
-  {(bigint) compiling___table_computation___MMConcreteClass___class_layout},
-  {(bigint) compiling___table_computation___MMConcreteClass___instance_layout},
-  {(bigint) compiling___table_computation___MMConcreteClass___build_layout_in},
-  {(bigint) 2 /* 121: MMConcreteClass < MMConcreteClass: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute MMConcreteClass::_primitive_info_cache */
-/* 3: Attribute MMConcreteClass::_primitive_info_b */
-/* 4: Attribute MMConcreteClass::_types */
-/* 5: Attribute MMConcreteClass::_formals_types */
-/* 6: Attribute MMConcreteClass::_direct_parents */
-/* 7: Attribute MMConcreteClass::_computing_super */
-/* 8: Attribute MMConcreteClass::_are_global_properties_inherited */
-/* 9: Attribute MMConcreteClass::_base_type_cache */
-/* 10: Attribute MMConcreteClass::_ancestors */
-/* 11: Attribute MMConcreteClass::_name */
-/* 12: Attribute MMConcreteClass::_arity */
-/* 13: Attribute MMConcreteClass::_mmmodule */
-/* 14: Attribute MMConcreteClass::_global */
-/* 15: Attribute MMConcreteClass::_crhe */
-/* 16: Attribute MMConcreteClass::_cshe */
-/* 17: Attribute MMConcreteClass::_che */
-/* 18: Attribute MMConcreteClass::_local_property_by_global */
-/* 19: Attribute MMConcreteClass::_global_properties */
-/* 20: Attribute MMConcreteClass::_local_local_properties */
-/* 21: Attribute MMConcreteClass::_properties_by_name */
-/* 22: Attribute MMConcreteClass::_init_var_iroutine */
-/* 23: Attribute MMConcreteClass::_checknew_iroutine */
-/* 24: Attribute MMConcreteClass::_new_instance_iroutine */
-/* 25: Attribute MMConcreteClass::_class_color_pos */
-/* 26: Attribute MMConcreteClass::_class_layout */
-/* 27: Attribute MMConcreteClass::_instance_layout */
-void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMConcreteClass(val_t p0){
+  {(bigint) syntax___syntax_base___MMGlobalProperty___check_visibility},
+  {(bigint) metamodel___virtualtype___MMGlobalProperty___is_virtual_type},
+  {(bigint) 1 /* 52: MMGlobalProperty < MMGlobalProperty: superclass init_table position */},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___intro},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___local_class},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___property_hierarchy},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___init},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___add_local_property},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___is_attribute},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___is_method},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___is_init},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___is_init__eq},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___is_init_for},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___visibility_level},
+  {(bigint) metamodel___abstractmetamodel___MMGlobalProperty___visibility_level__eq},
+  {(bigint) compiling___compiling_base___MMGlobalProperty___meth_call},
+  {(bigint) compiling___compiling_base___MMGlobalProperty___attr_access},
+  {(bigint) compiling___compiling_base___MMGlobalProperty___vt_class_color},
+  {(bigint) compiling___compiling_base___MMGlobalProperty___vt_class_id},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute MMGlobalProperty::_intro */
+/* 3: Attribute MMGlobalProperty::_property_hierarchy */
+/* 4: Attribute MMGlobalProperty::_is_init */
+/* 5: Attribute MMGlobalProperty::_visibility_level */
+void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMGlobalProperty(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMConcreteClass;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMGlobalProperty;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:90 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_compiling___table_computation___MMConcreteClass____class_layout(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//table_computation.nit:93 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_compiling___table_computation___MMConcreteClass____instance_layout(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:361 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:364 */
-  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:367 */
-  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_metamodel___abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:370 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./program.nit:227 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_program___MMLocalClass____init_var_iroutine(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./program.nit:229 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_program___MMLocalClass____checknew_iroutine(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./program.nit:234 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_program___MMLocalClass____new_instance_iroutine(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./primitive_info.nit:25 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./primitive_info.nit:29 */
-  REGB0 = TAG_Bool(false);
-  ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//genericity.nit:41 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_metamodel___genericity___MMLocalClass____types(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//genericity.nit:55 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_metamodel___genericity___MMLocalClass____formals_types(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//inheritance.nit:82 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_metamodel___inheritance___MMLocalClass____direct_parents(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//inheritance.nit:86 */
-  REGB0 = TAG_Bool(false);
-  ATTR_metamodel___inheritance___MMLocalClass____computing_super(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//inheritance.nit:133 */
+  /* metamodel/abstractmetamodel.nit:554 */
+  fra.me.REG[1] = NEW_PartialOrder_metamodel___partial_order___PartialOrder___init();
+  ATTR_metamodel___abstractmetamodel___MMGlobalProperty____property_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
+  /* metamodel/abstractmetamodel.nit:578 */
   REGB0 = TAG_Bool(false);
-  ATTR_metamodel___inheritance___MMLocalClass____are_global_properties_inherited(fra.me.REG[0]) = REGB0;
+  ATTR_metamodel___abstractmetamodel___MMGlobalProperty____is_init(fra.me.REG[0]) = REGB0;
+  /* metamodel/abstractmetamodel.nit:593 */
+  REGB0 = TAG_Int(1);
+  ATTR_metamodel___abstractmetamodel___MMGlobalProperty____visibility_level(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_metamodel___abstractmetamodel___MMConcreteClass(void)
+val_t NEW_metamodel___abstractmetamodel___MMGlobalProperty(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 28);
-  obj->vft = (classtable_elt_t*)VFT_metamodel___abstractmetamodel___MMConcreteClass;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_metamodel___abstractmetamodel___MMGlobalProperty;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_metamodel___abstractmetamodel___MMConcreteClass(val_t p0){
+void CHECKNEW_metamodel___abstractmetamodel___MMGlobalProperty(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMConcreteClass;
+  fra.me.meth = LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMGlobalProperty;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMConcreteClass____class_layout(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_class_layout", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMConcreteClass____instance_layout(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_instance_layout", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____name(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_name", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____arity(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_arity", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_local_property_by_global", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_global_properties", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_local_local_properties", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_program___MMLocalClass____new_instance_iroutine(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_new_instance_iroutine", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_primitive_info_b", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____types(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_types", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____formals_types(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalProperty____intro(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_formals_types", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_intro", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____direct_parents(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalProperty____property_hierarchy(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_direct_parents", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_property_hierarchy", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____computing_super(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalProperty____is_init(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_computing_super", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_is_init", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____are_global_properties_inherited(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMGlobalProperty____visibility_level(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_are_global_properties_inherited", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_visibility_level", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_MMConcreteClass_metamodel___abstractmetamodel___MMLocalClass___init(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t REGB0;
+val_t NEW_MMGlobalProperty_metamodel___abstractmetamodel___MMGlobalProperty___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[3] = {0, 0, 0};
+  int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 372;
-  fra.me.meth = LOCATE_NEW_MMConcreteClass_metamodel___abstractmetamodel___MMLocalClass___init;
+  fra.me.line = 556;
+  fra.me.meth = LOCATE_NEW_MMGlobalProperty_metamodel___abstractmetamodel___MMGlobalProperty___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
+  fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  REGB0 = p2;
-  /* ./metamodel//abstractmetamodel.nit:372 */
-  fra.me.REG[2] = NEW_metamodel___abstractmetamodel___MMConcreteClass();
-  INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMConcreteClass(fra.me.REG[2]);
-  metamodel___abstractmetamodel___MMLocalClass___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], REGB0, init_table);
-  CHECKNEW_metamodel___abstractmetamodel___MMConcreteClass(fra.me.REG[2]);
+  /* metamodel/abstractmetamodel.nit:556 */
+  fra.me.REG[1] = NEW_metamodel___abstractmetamodel___MMGlobalProperty();
+  INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMGlobalProperty(fra.me.REG[1]);
+  metamodel___abstractmetamodel___MMGlobalProperty___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_metamodel___abstractmetamodel___MMGlobalProperty(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_metamodel___static_type___MMParam[53] = {
-  {(bigint) 151 /* 0: Identity */},
-  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMParam" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMParam < Object: superclass typecheck marker */},
-  {(bigint) 151 /* 4: MMParam < MMParam: superclass typecheck marker */},
+const classtable_elt_t VFT_metamodel___abstractmetamodel___MMExplicitImport[60] = {
+  {(bigint) 175 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "MMExplicitImport" /* 2: Class Name */},
+  {(bigint) 3 /* 3: MMExplicitImport < Object: superclass typecheck marker */},
+  {(bigint) 175 /* 4: MMExplicitImport < MMExplicitImport: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -135041,10 +131948,10 @@ const classtable_elt_t VFT_metamodel___static_type___MMParam[53] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMParam < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: MMExplicitImport < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) native_interface___frontier___MMExplicitImport_____eqeq},
   {(bigint) standard___kernel___Object_____neq},
   {(bigint) standard___kernel___Object___output},
   {(bigint) standard___kernel___Object___output_class_name},
@@ -135057,84 +131964,96 @@ const classtable_elt_t VFT_metamodel___static_type___MMParam[53] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) metamodel___static_type___MMParam___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
   {(bigint) standard___string___Object___inspect_head},
   {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
+  {(bigint) native_interface___frontier___MMExplicitImport___hash},
   {(bigint) standard___math___Object___atan2},
   {(bigint) standard___math___Object___pi},
   {(bigint) standard___math___Object___srand_from},
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: MMParam < MMParam: superclass init_table position */},
-  {(bigint) metamodel___static_type___MMParam___mmtype},
-  {(bigint) metamodel___static_type___MMParam___mmtype__eq},
-  {(bigint) metamodel___static_type___MMParam___name},
-  {(bigint) metamodel___static_type___MMParam___name__eq},
-  {(bigint) metamodel___static_type___MMParam___init},
+  {(bigint) native_interface___frontier___MMExplicitImport___compile_friendly_to_frontier},
+  {(bigint) metamodel___static_type___MMExplicitImport___signature},
+  {(bigint) metamodel___static_type___MMExplicitImport___signature__eq},
+  {(bigint) metamodel___abstractmetamodel___MMExplicitImport___init},
+  {(bigint) 1 /* 54: MMExplicitImport < MMExplicitImport: superclass init_table position */},
+  {(bigint) metamodel___abstractmetamodel___MMExplicitImport___local_class},
+  {(bigint) metamodel___abstractmetamodel___MMExplicitImport___local_class__eq},
+  {(bigint) metamodel___abstractmetamodel___MMExplicitImport___method},
+  {(bigint) metamodel___abstractmetamodel___MMExplicitImport___method__eq},
+  {(bigint) metamodel___static_type___MMExplicitImport___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute MMParam::@mmtype */
-/* 3: Attribute MMParam::@name */
-void INIT_ATTRIBUTES__metamodel___static_type___MMParam(val_t p0){
+/* 2: Attribute MMExplicitImport::@signature */
+/* 3: Attribute MMExplicitImport::@local_class */
+/* 4: Attribute MMExplicitImport::@method */
+void INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMExplicitImport(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___static_type___MMParam;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMExplicitImport;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_metamodel___static_type___MMParam(void)
+val_t NEW_metamodel___abstractmetamodel___MMExplicitImport(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_metamodel___static_type___MMParam;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_metamodel___abstractmetamodel___MMExplicitImport;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_metamodel___static_type___MMParam(val_t p0){
+void CHECKNEW_metamodel___abstractmetamodel___MMExplicitImport(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_metamodel___static_type___MMParam;
+  fra.me.meth = LOCATE_CHECKNEW_metamodel___abstractmetamodel___MMExplicitImport;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMParam_____atmmtype(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMExplicitImport_____atsignature(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "@mmtype", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "@signature", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMParam_____atname(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMExplicitImport_____atlocal_class(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "@name", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "@local_class", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMExplicitImport_____atmethod(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "@method", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_MMParam_metamodel___static_type___MMParam___init(val_t p0, val_t p1){
+val_t NEW_MMExplicitImport_metamodel___abstractmetamodel___MMExplicitImport___init(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
   int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 74;
-  fra.me.meth = LOCATE_NEW_MMParam_metamodel___static_type___MMParam___init;
+  fra.me.line = 253;
+  fra.me.meth = LOCATE_NEW_MMExplicitImport_metamodel___abstractmetamodel___MMExplicitImport___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
@@ -135143,20 +132062,21 @@ val_t NEW_MMParam_metamodel___static_type___MMParam___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//static_type.nit:74 */
-  fra.me.REG[2] = NEW_metamodel___static_type___MMParam();
-  INIT_ATTRIBUTES__metamodel___static_type___MMParam(fra.me.REG[2]);
-  metamodel___static_type___MMParam___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_metamodel___static_type___MMParam(fra.me.REG[2]);
+  /* metamodel/static_type.nit:253 */
+  fra.me.REG[2] = NEW_metamodel___abstractmetamodel___MMExplicitImport();
+  INIT_ATTRIBUTES__metamodel___abstractmetamodel___MMExplicitImport(fra.me.REG[2]);
+  metamodel___static_type___MMExplicitImport___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_metamodel___abstractmetamodel___MMExplicitImport(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_metamodel___static_type___MMSignature[68] = {
+const classtable_elt_t VFT_metamodel___static_type___MMParam[56] = {
   {(bigint) 147 /* 0: Identity */},
-  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMSignature" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMSignature < Object: superclass typecheck marker */},
-  {(bigint) 147 /* 4: MMSignature < MMSignature: superclass typecheck marker */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "MMParam" /* 2: Class Name */},
+  {(bigint) 3 /* 3: MMParam < Object: superclass typecheck marker */},
+  {(bigint) 147 /* 4: MMParam < MMParam: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -135170,7 +132090,7 @@ const classtable_elt_t VFT_metamodel___static_type___MMSignature[68] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMSignature < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: MMParam < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -135186,7 +132106,9 @@ const classtable_elt_t VFT_metamodel___static_type___MMSignature[68] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) metamodel___static_type___MMSignature___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) metamodel___static_type___MMParam___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -135199,133 +132121,94 @@ const classtable_elt_t VFT_metamodel___static_type___MMSignature[68] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) native_interface___frontier___MMSignature___compile_frontier},
-  {(bigint) icode___icode_builder___MMSignature___generate_empty_iroutine},
-  {(bigint) icode___icode_builder___MMSignature___generate_empty_iclosuredef},
-  {(bigint) metamodel___vararg___MMSignature___vararg_rank},
-  {(bigint) metamodel___vararg___MMSignature___vararg_rank__eq},
-  {(bigint) metamodel___vararg___MMSignature___has_vararg},
-  {(bigint) metamodel___static_type___MMSignature___adaptation_to},
-  {(bigint) metamodel___static_type___MMSignature___not_for_self},
-  {(bigint) metamodel___static_type___MMSignature___init},
-  {(bigint) 1 /* 56: MMSignature < MMSignature: superclass init_table position */},
-  {(bigint) metamodel___static_type___MMSignature___recv},
-  {(bigint) metamodel___static_type___MMSignature___params},
-  {(bigint) metamodel___static_type___MMSignature___return_type},
-  {(bigint) metamodel___static_type___MMSignature___closures},
-  {(bigint) metamodel___static_type___MMSignature___closure_named},
-  {(bigint) metamodel___static_type___MMSignature___arity},
-  {(bigint) metamodel___static_type___MMSignature_____l},
-  {(bigint) metamodel___static_type___MMSignature_____bra},
-  {(bigint) metamodel___vararg___MMSignature___adaptation_to},
-  {(bigint) metamodel___vararg___MMSignature___not_for_self},
-  {(bigint) metamodel___vararg___MMSignature___init},
+  {(bigint) 1 /* 50: MMParam < MMParam: superclass init_table position */},
+  {(bigint) metamodel___static_type___MMParam___mmtype},
+  {(bigint) metamodel___static_type___MMParam___mmtype__eq},
+  {(bigint) metamodel___static_type___MMParam___name},
+  {(bigint) metamodel___static_type___MMParam___name__eq},
+  {(bigint) metamodel___static_type___MMParam___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute MMSignature::_vararg_rank */
-/* 3: Attribute MMSignature::_recv */
-/* 4: Attribute MMSignature::_params */
-/* 5: Attribute MMSignature::_return_type */
-/* 6: Attribute MMSignature::_closures */
-/* 7: Attribute MMSignature::_not_for_self_cache */
-void INIT_ATTRIBUTES__metamodel___static_type___MMSignature(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+/* 2: Attribute MMParam::@mmtype */
+/* 3: Attribute MMParam::@name */
+void INIT_ATTRIBUTES__metamodel___static_type___MMParam(val_t p0){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___static_type___MMSignature;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___static_type___MMParam;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:95 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_metamodel___static_type___MMSignature____closures(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//static_type.nit:193 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_metamodel___static_type___MMSignature____not_for_self_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_metamodel___static_type___MMSignature(void)
+val_t NEW_metamodel___static_type___MMParam(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
-  obj->vft = (classtable_elt_t*)VFT_metamodel___static_type___MMSignature;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_metamodel___static_type___MMParam;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_metamodel___static_type___MMSignature(val_t p0){
+void CHECKNEW_metamodel___static_type___MMParam(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_metamodel___static_type___MMSignature;
+  fra.me.meth = LOCATE_CHECKNEW_metamodel___static_type___MMParam;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_metamodel___vararg___MMSignature____vararg_rank(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_vararg_rank", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____recv(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_recv", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMParam_____atmmtype(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_params", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "@mmtype", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____closures(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMParam_____atname(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_closures", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "@name", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_MMSignature_metamodel___static_type___MMSignature___init(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+val_t NEW_MMParam_metamodel___static_type___MMParam___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
   int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 47;
-  fra.me.meth = LOCATE_NEW_MMSignature_metamodel___static_type___MMSignature___init;
+  fra.me.line = 74;
+  fra.me.meth = LOCATE_NEW_MMParam_metamodel___static_type___MMParam___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
+  fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* ./metamodel//vararg.nit:47 */
-  fra.me.REG[3] = NEW_metamodel___static_type___MMSignature();
-  INIT_ATTRIBUTES__metamodel___static_type___MMSignature(fra.me.REG[3]);
-  metamodel___vararg___MMSignature___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  CHECKNEW_metamodel___static_type___MMSignature(fra.me.REG[3]);
+  /* metamodel/static_type.nit:74 */
+  fra.me.REG[2] = NEW_metamodel___static_type___MMParam();
+  INIT_ATTRIBUTES__metamodel___static_type___MMParam(fra.me.REG[2]);
+  metamodel___static_type___MMParam___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_metamodel___static_type___MMParam(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[3];
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_metamodel___static_type___MMClosure[56] = {
-  {(bigint) 191 /* 0: Identity */},
-  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMClosure" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMClosure < Object: superclass typecheck marker */},
-  {(bigint) 191 /* 4: MMClosure < MMClosure: superclass typecheck marker */},
+const classtable_elt_t VFT_metamodel___static_type___MMSignature[71] = {
+  {(bigint) 143 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "MMSignature" /* 2: Class Name */},
+  {(bigint) 3 /* 3: MMSignature < Object: superclass typecheck marker */},
+  {(bigint) 143 /* 4: MMSignature < MMSignature: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -135339,7 +132222,7 @@ const classtable_elt_t VFT_metamodel___static_type___MMClosure[56] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMClosure < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: MMSignature < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -135355,7 +132238,9 @@ const classtable_elt_t VFT_metamodel___static_type___MMClosure[56] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) metamodel___static_type___MMSignature___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -135368,113 +132253,135 @@ const classtable_elt_t VFT_metamodel___static_type___MMClosure[56] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: MMClosure < MMClosure: superclass init_table position */},
-  {(bigint) metamodel___static_type___MMClosure___name},
-  {(bigint) metamodel___static_type___MMClosure___signature},
-  {(bigint) metamodel___static_type___MMClosure___is_break},
-  {(bigint) metamodel___static_type___MMClosure___is_optional},
-  {(bigint) metamodel___static_type___MMClosure___adaptation_to},
-  {(bigint) metamodel___static_type___MMClosure___init},
-  {(bigint) metamodel___static_type___MMClosure___not_for_self},
-  {(bigint) metamodel___static_type___MMClosure_____l},
+  {(bigint) native_interface___frontier___MMSignature___compile_frontier},
+  {(bigint) icode___icode_builder___MMSignature___generate_empty_iroutine},
+  {(bigint) icode___icode_builder___MMSignature___generate_empty_iclosuredef},
+  {(bigint) metamodel___vararg___MMSignature___vararg_rank},
+  {(bigint) metamodel___vararg___MMSignature___vararg_rank__eq},
+  {(bigint) metamodel___vararg___MMSignature___has_vararg},
+  {(bigint) metamodel___static_type___MMSignature___adaptation_to},
+  {(bigint) metamodel___static_type___MMSignature___not_for_self},
+  {(bigint) metamodel___static_type___MMSignature___init},
+  {(bigint) 1 /* 59: MMSignature < MMSignature: superclass init_table position */},
+  {(bigint) metamodel___static_type___MMSignature___recv},
+  {(bigint) metamodel___static_type___MMSignature___params},
+  {(bigint) metamodel___static_type___MMSignature___return_type},
+  {(bigint) metamodel___static_type___MMSignature___closures},
+  {(bigint) metamodel___static_type___MMSignature___closure_named},
+  {(bigint) metamodel___static_type___MMSignature___arity},
+  {(bigint) metamodel___static_type___MMSignature_____l},
+  {(bigint) metamodel___static_type___MMSignature_____bra},
+  {(bigint) metamodel___vararg___MMSignature___adaptation_to},
+  {(bigint) metamodel___vararg___MMSignature___not_for_self},
+  {(bigint) metamodel___vararg___MMSignature___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute MMClosure::_name */
-/* 3: Attribute MMClosure::_signature */
-/* 4: Attribute MMClosure::_is_break */
-/* 5: Attribute MMClosure::_is_optional */
-void INIT_ATTRIBUTES__metamodel___static_type___MMClosure(val_t p0){
-  struct {struct stack_frame_t me;} fra;
+/* 2: Attribute MMSignature::_vararg_rank */
+/* 3: Attribute MMSignature::_recv */
+/* 4: Attribute MMSignature::_params */
+/* 5: Attribute MMSignature::_return_type */
+/* 6: Attribute MMSignature::_closures */
+/* 7: Attribute MMSignature::_not_for_self_cache */
+void INIT_ATTRIBUTES__metamodel___static_type___MMSignature(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___static_type___MMClosure;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___static_type___MMSignature;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
+  fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* metamodel/static_type.nit:95 */
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_metamodel___static_type___MMSignature____closures(fra.me.REG[0]) = fra.me.REG[1];
+  /* metamodel/static_type.nit:193 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_metamodel___static_type___MMSignature____not_for_self_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_metamodel___static_type___MMClosure(void)
+val_t NEW_metamodel___static_type___MMSignature(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_metamodel___static_type___MMClosure;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_metamodel___static_type___MMSignature;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_metamodel___static_type___MMClosure(val_t p0){
+void CHECKNEW_metamodel___static_type___MMSignature(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_metamodel___static_type___MMClosure;
+  fra.me.meth = LOCATE_CHECKNEW_metamodel___static_type___MMSignature;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____name(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___vararg___MMSignature____vararg_rank(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_name", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_vararg_rank", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____signature(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____recv(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_signature", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_recv", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____is_break(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_is_break", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_params", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____is_optional(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____closures(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_is_optional", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_closures", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_MMClosure_metamodel___static_type___MMClosure___init(val_t p0, val_t p1, val_t p2, val_t p3){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t REGB0;
-  val_t REGB1;
+val_t NEW_MMSignature_metamodel___static_type___MMSignature___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t tmp;
   int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 282;
-  fra.me.meth = LOCATE_NEW_MMClosure_metamodel___static_type___MMClosure___init;
+  fra.me.line = 47;
+  fra.me.meth = LOCATE_NEW_MMSignature_metamodel___static_type___MMSignature___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
+  fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  REGB0 = p2;
-  REGB1 = p3;
-  /* ./metamodel//static_type.nit:282 */
-  fra.me.REG[2] = NEW_metamodel___static_type___MMClosure();
-  INIT_ATTRIBUTES__metamodel___static_type___MMClosure(fra.me.REG[2]);
-  metamodel___static_type___MMClosure___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], REGB0, REGB1, init_table);
-  CHECKNEW_metamodel___static_type___MMClosure(fra.me.REG[2]);
+  fra.me.REG[2] = p2;
+  /* metamodel/vararg.nit:47 */
+  fra.me.REG[3] = NEW_metamodel___static_type___MMSignature();
+  INIT_ATTRIBUTES__metamodel___static_type___MMSignature(fra.me.REG[3]);
+  metamodel___vararg___MMSignature___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_metamodel___static_type___MMSignature(fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_metamodel___static_type___MMNullableType[82] = {
-  {(bigint) 2175 /* 0: Identity */},
-  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMNullableType" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMNullableType < Object: superclass typecheck marker */},
-  {(bigint) 143 /* 4: MMNullableType < MMType: superclass typecheck marker */},
-  {(bigint) 2175 /* 5: MMNullableType < MMNullableType: superclass typecheck marker */},
+const classtable_elt_t VFT_metamodel___static_type___MMClosure[59] = {
+  {(bigint) 187 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "MMClosure" /* 2: Class Name */},
+  {(bigint) 3 /* 3: MMClosure < Object: superclass typecheck marker */},
+  {(bigint) 187 /* 4: MMClosure < MMClosure: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -135487,7 +132394,7 @@ const classtable_elt_t VFT_metamodel___static_type___MMNullableType[82] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: MMNullableType < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: MMClosure < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -135503,7 +132410,9 @@ const classtable_elt_t VFT_metamodel___static_type___MMNullableType[82] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) metamodel___static_type___MMNullableType___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -135516,122 +132425,114 @@ const classtable_elt_t VFT_metamodel___static_type___MMNullableType[82] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) native_interface___frontier___MMType___compile_check_isa},
-  {(bigint) native_interface___frontier___MMType___compile_condition_isa},
-  {(bigint) native_interface___frontier___MMType___compile_to_frontier},
-  {(bigint) native_interface___frontier___MMType___compile_new_local_ref},
-  {(bigint) native_interface___ni_metamodel___MMType___friendly_extern_name},
-  {(bigint) native_interface___ni_metamodel___MMType___mangled_name},
-  {(bigint) native_interface___ni_metamodel___MMType___from_native},
-  {(bigint) native_interface___ni_metamodel___MMType___assign_to_friendly},
-  {(bigint) native_interface___ni_metamodel___MMType___assign_from_friendly},
-  {(bigint) native_interface___ni_metamodel___MMType___uses_nitni_ref},
-  {(bigint) native_interface___ni_metamodel___MMType___friendly_null_getter},
-  {(bigint) native_interface___ni_metamodel___MMType___local_friendly_null_getter_from},
-  {(bigint) primitive_info___MMType___cname},
-  {(bigint) primitive_info___MMType___is_tagged},
-  {(bigint) primitive_info___MMType___default_cvalue},
-  {(bigint) primitive_info___MMType___boxtype},
-  {(bigint) primitive_info___MMType___unboxtype},
-  {(bigint) metamodel___genericity___MMType___is_generic},
-  {(bigint) metamodel___type_formal___MMType___direct_type},
-  {(bigint) 0 /* 66: MMNullableType < MMType: superclass init_table position */},
-  {(bigint) metamodel___static_type___MMNullableType___mmmodule},
-  {(bigint) metamodel___static_type___MMNullableType___local_class},
-  {(bigint) metamodel___static_type___MMNullableType___is_valid},
-  {(bigint) metamodel___static_type___MMNullableType_____l},
-  {(bigint) metamodel___static_type___MMNullableType___is_supertype},
-  {(bigint) metamodel___static_type___MMNullableType___for_module},
-  {(bigint) metamodel___static_type___MMNullableType___adapt_to},
-  {(bigint) metamodel___static_type___MMNullableType___upcast_for},
-  {(bigint) metamodel___static_type___MMNullableType___not_for_self},
-  {(bigint) metamodel___static_type___MMNullableType___is_nullable},
-  {(bigint) metamodel___static_type___MMNullableType___as_nullable},
-  {(bigint) metamodel___static_type___MMNullableType___as_notnull},
-  {(bigint) metamodel___static_type___MMType___init},
-  {(bigint) 2 /* 80: MMNullableType < MMNullableType: superclass init_table position */},
-  {(bigint) metamodel___static_type___MMNullableType___init},
+  {(bigint) 1 /* 50: MMClosure < MMClosure: superclass init_table position */},
+  {(bigint) metamodel___static_type___MMClosure___name},
+  {(bigint) metamodel___static_type___MMClosure___signature},
+  {(bigint) metamodel___static_type___MMClosure___is_break},
+  {(bigint) metamodel___static_type___MMClosure___is_optional},
+  {(bigint) metamodel___static_type___MMClosure___adaptation_to},
+  {(bigint) metamodel___static_type___MMClosure___init},
+  {(bigint) metamodel___static_type___MMClosure___not_for_self},
+  {(bigint) metamodel___static_type___MMClosure_____l},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute MMNullableType::_as_nullable_cache */
-/* 3: Attribute MMNullableType::_base_type */
-void INIT_ATTRIBUTES__metamodel___static_type___MMNullableType(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+/* 2: Attribute MMClosure::_name */
+/* 3: Attribute MMClosure::_signature */
+/* 4: Attribute MMClosure::_is_break */
+/* 5: Attribute MMClosure::_is_optional */
+void INIT_ATTRIBUTES__metamodel___static_type___MMClosure(val_t p0){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___static_type___MMNullableType;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___static_type___MMClosure;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:397 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_metamodel___static_type___MMType____as_nullable_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_metamodel___static_type___MMNullableType(void)
+val_t NEW_metamodel___static_type___MMClosure(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_metamodel___static_type___MMNullableType;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_metamodel___static_type___MMClosure;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_metamodel___static_type___MMNullableType(val_t p0){
+void CHECKNEW_metamodel___static_type___MMClosure(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_metamodel___static_type___MMNullableType;
+  fra.me.meth = LOCATE_CHECKNEW_metamodel___static_type___MMClosure;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_name", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____signature(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_signature", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____is_break(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_is_break", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____is_optional(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_is_optional", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_MMNullableType_metamodel___static_type___MMNullableType___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_MMClosure_metamodel___static_type___MMClosure___init(val_t p0, val_t p1, val_t p2, val_t p3){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t REGB1;
   val_t tmp;
-  int init_table[3] = {0, 0, 0};
+  int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 425;
-  fra.me.meth = LOCATE_NEW_MMNullableType_metamodel___static_type___MMNullableType___init;
+  fra.me.line = 282;
+  fra.me.meth = LOCATE_NEW_MMClosure_metamodel___static_type___MMClosure___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:425 */
-  fra.me.REG[1] = NEW_metamodel___static_type___MMNullableType();
-  INIT_ATTRIBUTES__metamodel___static_type___MMNullableType(fra.me.REG[1]);
-  metamodel___static_type___MMNullableType___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_metamodel___static_type___MMNullableType(fra.me.REG[1]);
+  fra.me.REG[1] = p1;
+  REGB0 = p2;
+  REGB1 = p3;
+  /* metamodel/static_type.nit:282 */
+  fra.me.REG[2] = NEW_metamodel___static_type___MMClosure();
+  INIT_ATTRIBUTES__metamodel___static_type___MMClosure(fra.me.REG[2]);
+  metamodel___static_type___MMClosure___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], REGB0, REGB1, init_table);
+  CHECKNEW_metamodel___static_type___MMClosure(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_metamodel___static_type___MMTypeClass[82] = {
-  {(bigint) 2155 /* 0: Identity */},
+const classtable_elt_t VFT_metamodel___static_type___MMNullableType[85] = {
+  {(bigint) 2211 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMTypeClass" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMTypeClass < Object: superclass typecheck marker */},
-  {(bigint) 143 /* 4: MMTypeClass < MMType: superclass typecheck marker */},
-  {(bigint) 2155 /* 5: MMTypeClass < MMTypeClass: superclass typecheck marker */},
+  {(bigint) "MMNullableType" /* 2: Class Name */},
+  {(bigint) 3 /* 3: MMNullableType < Object: superclass typecheck marker */},
+  {(bigint) 139 /* 4: MMNullableType < MMType: superclass typecheck marker */},
+  {(bigint) 2211 /* 5: MMNullableType < MMNullableType: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -135644,7 +132545,7 @@ const classtable_elt_t VFT_metamodel___static_type___MMTypeClass[82] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: MMTypeClass < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: MMNullableType < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -135660,7 +132561,9 @@ const classtable_elt_t VFT_metamodel___static_type___MMTypeClass[82] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) metamodel___static_type___MMTypeClass___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) metamodel___static_type___MMNullableType___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -135692,104 +132595,105 @@ const classtable_elt_t VFT_metamodel___static_type___MMTypeClass[82] = {
   {(bigint) primitive_info___MMType___unboxtype},
   {(bigint) metamodel___genericity___MMType___is_generic},
   {(bigint) metamodel___type_formal___MMType___direct_type},
-  {(bigint) 0 /* 66: MMTypeClass < MMType: superclass init_table position */},
-  {(bigint) metamodel___static_type___MMTypeClass___mmmodule},
-  {(bigint) metamodel___static_type___MMTypeClass___local_class},
-  {(bigint) metamodel___static_type___MMType___is_valid},
-  {(bigint) metamodel___static_type___MMTypeClass_____l},
-  {(bigint) metamodel___static_type___MMType___is_supertype},
-  {(bigint) metamodel___static_type___MMType___for_module},
-  {(bigint) metamodel___static_type___MMType___adapt_to},
-  {(bigint) metamodel___static_type___MMTypeClass___upcast_for},
-  {(bigint) metamodel___static_type___MMType___not_for_self},
-  {(bigint) metamodel___static_type___MMType___is_nullable},
-  {(bigint) metamodel___static_type___MMType___as_nullable},
-  {(bigint) metamodel___static_type___MMType___as_notnull},
+  {(bigint) 0 /* 69: MMNullableType < MMType: superclass init_table position */},
+  {(bigint) metamodel___static_type___MMNullableType___mmmodule},
+  {(bigint) metamodel___static_type___MMNullableType___local_class},
+  {(bigint) metamodel___static_type___MMNullableType___is_valid},
+  {(bigint) metamodel___static_type___MMNullableType_____l},
+  {(bigint) metamodel___static_type___MMNullableType___is_supertype},
+  {(bigint) metamodel___static_type___MMNullableType___for_module},
+  {(bigint) metamodel___static_type___MMNullableType___adapt_to},
+  {(bigint) metamodel___static_type___MMNullableType___upcast_for},
+  {(bigint) metamodel___static_type___MMNullableType___not_for_self},
+  {(bigint) metamodel___static_type___MMNullableType___is_nullable},
+  {(bigint) metamodel___static_type___MMNullableType___as_nullable},
+  {(bigint) metamodel___static_type___MMNullableType___as_notnull},
   {(bigint) metamodel___static_type___MMType___init},
-  {(bigint) 2 /* 80: MMTypeClass < MMTypeClass: superclass init_table position */},
-  {(bigint) metamodel___static_type___MMTypeClass___init},
+  {(bigint) 2 /* 83: MMNullableType < MMNullableType: superclass init_table position */},
+  {(bigint) metamodel___static_type___MMNullableType___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute MMTypeClass::_as_nullable_cache */
-/* 3: Attribute MMTypeClass::_local_class */
-void INIT_ATTRIBUTES__metamodel___static_type___MMTypeClass(val_t p0){
+/* 2: Attribute MMNullableType::_as_nullable_cache */
+/* 3: Attribute MMNullableType::_base_type */
+void INIT_ATTRIBUTES__metamodel___static_type___MMNullableType(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___static_type___MMTypeClass;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___static_type___MMNullableType;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:397 */
+  /* metamodel/static_type.nit:397 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_metamodel___static_type___MMType____as_nullable_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_metamodel___static_type___MMTypeClass(void)
+val_t NEW_metamodel___static_type___MMNullableType(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_metamodel___static_type___MMTypeClass;
+  obj->vft = (classtable_elt_t*)VFT_metamodel___static_type___MMNullableType;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_metamodel___static_type___MMTypeClass(val_t p0){
+void CHECKNEW_metamodel___static_type___MMNullableType(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_metamodel___static_type___MMTypeClass;
+  fra.me.meth = LOCATE_CHECKNEW_metamodel___static_type___MMNullableType;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_MMTypeClass_metamodel___static_type___MMTypeClass___init(val_t p0){
+val_t NEW_MMNullableType_metamodel___static_type___MMNullableType___init(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 487;
-  fra.me.meth = LOCATE_NEW_MMTypeClass_metamodel___static_type___MMTypeClass___init;
+  fra.me.line = 425;
+  fra.me.meth = LOCATE_NEW_MMNullableType_metamodel___static_type___MMNullableType___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:487 */
-  fra.me.REG[1] = NEW_metamodel___static_type___MMTypeClass();
-  INIT_ATTRIBUTES__metamodel___static_type___MMTypeClass(fra.me.REG[1]);
-  metamodel___static_type___MMTypeClass___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_metamodel___static_type___MMTypeClass(fra.me.REG[1]);
+  /* metamodel/static_type.nit:425 */
+  fra.me.REG[1] = NEW_metamodel___static_type___MMNullableType();
+  INIT_ATTRIBUTES__metamodel___static_type___MMNullableType(fra.me.REG[1]);
+  metamodel___static_type___MMNullableType___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_metamodel___static_type___MMNullableType(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_metamodel___static_type___MMTypeSimpleClass[84] = {
-  {(bigint) 2823 /* 0: Identity */},
+const classtable_elt_t VFT_metamodel___static_type___MMTypeSimpleClass[87] = {
+  {(bigint) 2583 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MMTypeSimpleClass" /* 2: Class Name */},
   {(bigint) 3 /* 3: MMTypeSimpleClass < Object: superclass typecheck marker */},
-  {(bigint) 143 /* 4: MMTypeSimpleClass < MMType: superclass typecheck marker */},
-  {(bigint) 2155 /* 5: MMTypeSimpleClass < MMTypeClass: superclass typecheck marker */},
-  {(bigint) 2823 /* 6: MMTypeSimpleClass < MMTypeSimpleClass: superclass typecheck marker */},
+  {(bigint) 139 /* 4: MMTypeSimpleClass < MMType: superclass typecheck marker */},
+  {(bigint) 2191 /* 5: MMTypeSimpleClass < MMTypeClass: superclass typecheck marker */},
+  {(bigint) 2583 /* 6: MMTypeSimpleClass < MMTypeSimpleClass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -135801,7 +132705,7 @@ const classtable_elt_t VFT_metamodel___static_type___MMTypeSimpleClass[84] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: MMTypeSimpleClass < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: MMTypeSimpleClass < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -135817,6 +132721,8 @@ const classtable_elt_t VFT_metamodel___static_type___MMTypeSimpleClass[84] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) metamodel___static_type___MMTypeClass___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -135849,7 +132755,7 @@ const classtable_elt_t VFT_metamodel___static_type___MMTypeSimpleClass[84] = {
   {(bigint) primitive_info___MMType___unboxtype},
   {(bigint) metamodel___genericity___MMTypeSimpleClass___is_generic},
   {(bigint) metamodel___type_formal___MMType___direct_type},
-  {(bigint) 0 /* 66: MMTypeSimpleClass < MMType: superclass init_table position */},
+  {(bigint) 1 /* 69: MMTypeSimpleClass < MMType: superclass init_table position */},
   {(bigint) metamodel___static_type___MMTypeClass___mmmodule},
   {(bigint) metamodel___static_type___MMTypeClass___local_class},
   {(bigint) metamodel___static_type___MMType___is_valid},
@@ -135863,9 +132769,9 @@ const classtable_elt_t VFT_metamodel___static_type___MMTypeSimpleClass[84] = {
   {(bigint) metamodel___static_type___MMType___as_nullable},
   {(bigint) metamodel___static_type___MMType___as_notnull},
   {(bigint) metamodel___static_type___MMType___init},
-  {(bigint) 2 /* 80: MMTypeSimpleClass < MMTypeClass: superclass init_table position */},
+  {(bigint) 0 /* 83: MMTypeSimpleClass < MMTypeClass: superclass init_table position */},
   {(bigint) metamodel___static_type___MMTypeClass___init},
-  {(bigint) 3 /* 82: MMTypeSimpleClass < MMTypeSimpleClass: superclass init_table position */},
+  {(bigint) 3 /* 85: MMTypeSimpleClass < MMTypeSimpleClass: superclass init_table position */},
   {(bigint) metamodel___static_type___MMTypeSimpleClass___init},
 };
 /* 0: Pointer to the classtable */
@@ -135885,7 +132791,7 @@ void INIT_ATTRIBUTES__metamodel___static_type___MMTypeSimpleClass(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:397 */
+  /* metamodel/static_type.nit:397 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_metamodel___static_type___MMType____as_nullable_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -135933,7 +132839,7 @@ val_t NEW_MMTypeSimpleClass_metamodel___static_type___MMTypeSimpleClass___init(v
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:511 */
+  /* metamodel/static_type.nit:511 */
   fra.me.REG[1] = NEW_metamodel___static_type___MMTypeSimpleClass();
   INIT_ATTRIBUTES__metamodel___static_type___MMTypeSimpleClass(fra.me.REG[1]);
   metamodel___static_type___MMTypeSimpleClass___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -135941,13 +132847,14 @@ val_t NEW_MMTypeSimpleClass_metamodel___static_type___MMTypeSimpleClass___init(v
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_metamodel___static_type___MMTypeNone[82] = {
-  {(bigint) 2147 /* 0: Identity */},
+const classtable_elt_t VFT_metamodel___static_type___MMTypeNone[85] = {
+  {(bigint) 2183 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MMTypeNone" /* 2: Class Name */},
   {(bigint) 3 /* 3: MMTypeNone < Object: superclass typecheck marker */},
-  {(bigint) 143 /* 4: MMTypeNone < MMType: superclass typecheck marker */},
-  {(bigint) 2147 /* 5: MMTypeNone < MMTypeNone: superclass typecheck marker */},
+  {(bigint) 139 /* 4: MMTypeNone < MMType: superclass typecheck marker */},
+  {(bigint) 2183 /* 5: MMTypeNone < MMTypeNone: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -135960,7 +132867,7 @@ const classtable_elt_t VFT_metamodel___static_type___MMTypeNone[82] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: MMTypeNone < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: MMTypeNone < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -135976,6 +132883,8 @@ const classtable_elt_t VFT_metamodel___static_type___MMTypeNone[82] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) metamodel___static_type___MMTypeNone___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -136008,7 +132917,7 @@ const classtable_elt_t VFT_metamodel___static_type___MMTypeNone[82] = {
   {(bigint) primitive_info___MMType___unboxtype},
   {(bigint) metamodel___genericity___MMTypeNone___is_generic},
   {(bigint) metamodel___type_formal___MMType___direct_type},
-  {(bigint) 0 /* 66: MMTypeNone < MMType: superclass init_table position */},
+  {(bigint) 0 /* 69: MMTypeNone < MMType: superclass init_table position */},
   {(bigint) metamodel___static_type___MMTypeNone___mmmodule},
   {(bigint) metamodel___static_type___MMTypeNone___local_class},
   {(bigint) metamodel___static_type___MMType___is_valid},
@@ -136022,7 +132931,7 @@ const classtable_elt_t VFT_metamodel___static_type___MMTypeNone[82] = {
   {(bigint) metamodel___static_type___MMTypeNone___as_nullable},
   {(bigint) metamodel___static_type___MMTypeNone___as_notnull},
   {(bigint) metamodel___static_type___MMType___init},
-  {(bigint) 2 /* 80: MMTypeNone < MMTypeNone: superclass init_table position */},
+  {(bigint) 2 /* 83: MMTypeNone < MMTypeNone: superclass init_table position */},
   {(bigint) metamodel___static_type___MMTypeNone___init},
 };
 /* 0: Pointer to the classtable */
@@ -136042,7 +132951,7 @@ void INIT_ATTRIBUTES__metamodel___static_type___MMTypeNone(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:397 */
+  /* metamodel/static_type.nit:397 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_metamodel___static_type___MMType____as_nullable_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -136090,7 +132999,7 @@ val_t NEW_MMTypeNone_metamodel___static_type___MMTypeNone___init(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:530 */
+  /* metamodel/static_type.nit:530 */
   fra.me.REG[1] = NEW_metamodel___static_type___MMTypeNone();
   INIT_ATTRIBUTES__metamodel___static_type___MMTypeNone(fra.me.REG[1]);
   metamodel___static_type___MMTypeNone___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -136098,12 +133007,13 @@ val_t NEW_MMTypeNone_metamodel___static_type___MMTypeNone___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_metamodel___static_type___MMImportedCast[68] = {
-  {(bigint) 167 /* 0: Identity */},
+const classtable_elt_t VFT_metamodel___static_type___MMImportedCast[71] = {
+  {(bigint) 163 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MMImportedCast" /* 2: Class Name */},
   {(bigint) 3 /* 3: MMImportedCast < Object: superclass typecheck marker */},
-  {(bigint) 167 /* 4: MMImportedCast < MMImportedCast: superclass typecheck marker */},
+  {(bigint) 163 /* 4: MMImportedCast < MMImportedCast: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -136117,7 +133027,7 @@ const classtable_elt_t VFT_metamodel___static_type___MMImportedCast[68] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMImportedCast < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: MMImportedCast < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) native_interface___frontier___MMImportedCast_____eqeq},
@@ -136133,6 +133043,8 @@ const classtable_elt_t VFT_metamodel___static_type___MMImportedCast[68] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -136160,7 +133072,7 @@ const classtable_elt_t VFT_metamodel___static_type___MMImportedCast[68] = {
   {(bigint) native_interface___ni_metamodel___MMImportedCast___is_a_local_cname},
   {(bigint) native_interface___ni_metamodel___MMImportedCast___is_a_local_csignature},
   {(bigint) native_interface___ni_metamodel___MMImportedCast___is_a_friendly_csignature},
-  {(bigint) 1 /* 61: MMImportedCast < MMImportedCast: superclass init_table position */},
+  {(bigint) 1 /* 64: MMImportedCast < MMImportedCast: superclass init_table position */},
   {(bigint) metamodel___static_type___MMImportedCast___from},
   {(bigint) metamodel___static_type___MMImportedCast___to},
   {(bigint) metamodel___static_type___MMImportedCast___is_about_nullable_only},
@@ -136188,7 +133100,7 @@ void INIT_ATTRIBUTES__metamodel___static_type___MMImportedCast(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_metamodel.nit:238 */
+  /* native_interface/ni_metamodel.nit:238 */
   if (!once_value_1) {
     fra.me.REG[1] = BOX_NativeString("value");
     REGB0 = TAG_Int(5);
@@ -136262,13 +133174,14 @@ val_t NEW_MMImportedCast_metamodel___static_type___MMImportedCast___init(val_t p
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_metamodel___inheritance___MMImplicitLocalClass[119] = {
-  {(bigint) 2183 /* 0: Identity */},
+const classtable_elt_t VFT_metamodel___inheritance___MMImplicitLocalClass[122] = {
+  {(bigint) 2219 /* 0: Identity */},
   {(bigint) 25 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MMImplicitLocalClass" /* 2: Class Name */},
   {(bigint) 3 /* 3: MMImplicitLocalClass < Object: superclass typecheck marker */},
-  {(bigint) 163 /* 4: MMImplicitLocalClass < MMLocalClass: superclass typecheck marker */},
-  {(bigint) 2183 /* 5: MMImplicitLocalClass < MMImplicitLocalClass: superclass typecheck marker */},
+  {(bigint) 159 /* 4: MMImplicitLocalClass < MMLocalClass: superclass typecheck marker */},
+  {(bigint) 2219 /* 5: MMImplicitLocalClass < MMImplicitLocalClass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -136281,7 +133194,7 @@ const classtable_elt_t VFT_metamodel___inheritance___MMImplicitLocalClass[119] =
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMImplicitLocalClass < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: MMImplicitLocalClass < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -136297,6 +133210,8 @@ const classtable_elt_t VFT_metamodel___inheritance___MMImplicitLocalClass[119] =
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) metamodel___abstractmetamodel___MMLocalClass___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -136341,7 +133256,7 @@ const classtable_elt_t VFT_metamodel___inheritance___MMImplicitLocalClass[119] =
   {(bigint) metamodel___static_type___MMLocalClass___add_ancestor},
   {(bigint) metamodel___static_type___MMLocalClass___ancestors},
   {(bigint) metamodel___static_type___MMLocalClass___ancestor},
-  {(bigint) 1 /* 78: MMImplicitLocalClass < MMLocalClass: superclass init_table position */},
+  {(bigint) 0 /* 81: MMImplicitLocalClass < MMLocalClass: superclass init_table position */},
   {(bigint) metamodel___abstractmetamodel___MMLocalClass___name},
   {(bigint) metamodel___abstractmetamodel___MMLocalClass___arity},
   {(bigint) metamodel___abstractmetamodel___MMLocalClass___mmmodule},
@@ -136380,7 +133295,7 @@ const classtable_elt_t VFT_metamodel___inheritance___MMImplicitLocalClass[119] =
   {(bigint) program___MMLocalClass___new_instance_iroutine},
   {(bigint) compiling___compiling_global___MMLocalClass___declare_tables_to_c},
   {(bigint) compiling___compiling_global___MMLocalClass___compile_tables_to_c},
-  {(bigint) 2 /* 117: MMImplicitLocalClass < MMImplicitLocalClass: superclass init_table position */},
+  {(bigint) 2 /* 120: MMImplicitLocalClass < MMImplicitLocalClass: superclass init_table position */},
   {(bigint) metamodel___inheritance___MMImplicitLocalClass___init},
 };
 /* 0: Pointer to the classtable */
@@ -136422,46 +133337,46 @@ void INIT_ATTRIBUTES__metamodel___inheritance___MMImplicitLocalClass(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//inheritance.nit:82 */
+  /* metamodel/inheritance.nit:82 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_metamodel___inheritance___MMLocalClass____direct_parents(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//inheritance.nit:86 */
+  /* metamodel/inheritance.nit:86 */
   REGB0 = TAG_Bool(false);
   ATTR_metamodel___inheritance___MMLocalClass____computing_super(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//inheritance.nit:133 */
+  /* metamodel/inheritance.nit:133 */
   REGB0 = TAG_Bool(false);
   ATTR_metamodel___inheritance___MMLocalClass____are_global_properties_inherited(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//abstractmetamodel.nit:361 */
+  /* metamodel/abstractmetamodel.nit:361 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:364 */
+  /* metamodel/abstractmetamodel.nit:364 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:367 */
+  /* metamodel/abstractmetamodel.nit:367 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_metamodel___abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:370 */
+  /* metamodel/abstractmetamodel.nit:370 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./primitive_info.nit:25 */
+  /* primitive_info.nit:25 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./primitive_info.nit:29 */
+  /* primitive_info.nit:29 */
   REGB0 = TAG_Bool(false);
   ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//genericity.nit:41 */
+  /* metamodel/genericity.nit:41 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_metamodel___genericity___MMLocalClass____types(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//genericity.nit:55 */
+  /* metamodel/genericity.nit:55 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_metamodel___genericity___MMLocalClass____formals_types(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./program.nit:227 */
+  /* program.nit:227 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_program___MMLocalClass____init_var_iroutine(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./program.nit:229 */
+  /* program.nit:229 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_program___MMLocalClass____checknew_iroutine(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./program.nit:234 */
+  /* program.nit:234 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_program___MMLocalClass____new_instance_iroutine(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -136576,7 +133491,7 @@ val_t NEW_MMImplicitLocalClass_metamodel___inheritance___MMImplicitLocalClass___
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//inheritance.nit:517 */
+  /* metamodel/inheritance.nit:517 */
   fra.me.REG[2] = NEW_metamodel___inheritance___MMImplicitLocalClass();
   INIT_ATTRIBUTES__metamodel___inheritance___MMImplicitLocalClass(fra.me.REG[2]);
   metamodel___inheritance___MMImplicitLocalClass___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -136584,13 +133499,14 @@ val_t NEW_MMImplicitLocalClass_metamodel___inheritance___MMImplicitLocalClass___
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_metamodel___inheritance___MMRefineAncestor[59] = {
-  {(bigint) 2171 /* 0: Identity */},
+const classtable_elt_t VFT_metamodel___inheritance___MMRefineAncestor[62] = {
+  {(bigint) 2207 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MMRefineAncestor" /* 2: Class Name */},
   {(bigint) 3 /* 3: MMRefineAncestor < Object: superclass typecheck marker */},
-  {(bigint) 195 /* 4: MMRefineAncestor < MMAncestor: superclass typecheck marker */},
-  {(bigint) 2171 /* 5: MMRefineAncestor < MMRefineAncestor: superclass typecheck marker */},
+  {(bigint) 191 /* 4: MMRefineAncestor < MMAncestor: superclass typecheck marker */},
+  {(bigint) 2207 /* 5: MMRefineAncestor < MMRefineAncestor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -136603,7 +133519,7 @@ const classtable_elt_t VFT_metamodel___inheritance___MMRefineAncestor[59] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: MMRefineAncestor < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: MMRefineAncestor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -136619,6 +133535,8 @@ const classtable_elt_t VFT_metamodel___inheritance___MMRefineAncestor[59] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) metamodel___static_type___MMAncestor___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -136633,7 +133551,7 @@ const classtable_elt_t VFT_metamodel___inheritance___MMRefineAncestor[59] = {
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) metamodel___inheritance___MMAncestor___add_in},
-  {(bigint) 0 /* 48: MMRefineAncestor < MMAncestor: superclass init_table position */},
+  {(bigint) 0 /* 51: MMRefineAncestor < MMAncestor: superclass init_table position */},
   {(bigint) metamodel___static_type___MMAncestor___stype__eq},
   {(bigint) metamodel___static_type___MMAncestor___stype},
   {(bigint) metamodel___static_type___MMAncestor___inheriter__eq},
@@ -136642,7 +133560,7 @@ const classtable_elt_t VFT_metamodel___inheritance___MMRefineAncestor[59] = {
   {(bigint) metamodel___static_type___MMAncestor___is_specialisation},
   {(bigint) metamodel___inheritance___MMRefineAncestor___local_class},
   {(bigint) metamodel___static_type___MMAncestor___init},
-  {(bigint) 2 /* 57: MMRefineAncestor < MMRefineAncestor: superclass init_table position */},
+  {(bigint) 2 /* 60: MMRefineAncestor < MMRefineAncestor: superclass init_table position */},
   {(bigint) metamodel___inheritance___MMRefineAncestor___init},
 };
 /* 0: Pointer to the classtable */
@@ -136663,10 +133581,10 @@ void INIT_ATTRIBUTES__metamodel___inheritance___MMRefineAncestor(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:310 */
+  /* metamodel/static_type.nit:310 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_metamodel___static_type___MMAncestor____stype(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//static_type.nit:316 */
+  /* metamodel/static_type.nit:316 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_metamodel___static_type___MMAncestor____inheriter(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -136716,7 +133634,7 @@ val_t NEW_MMRefineAncestor_metamodel___inheritance___MMRefineAncestor___init(val
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//inheritance.nit:529 */
+  /* metamodel/inheritance.nit:529 */
   fra.me.REG[2] = NEW_metamodel___inheritance___MMRefineAncestor();
   INIT_ATTRIBUTES__metamodel___inheritance___MMRefineAncestor(fra.me.REG[2]);
   metamodel___inheritance___MMRefineAncestor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -136724,13 +133642,14 @@ val_t NEW_MMRefineAncestor_metamodel___inheritance___MMRefineAncestor___init(val
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_metamodel___inheritance___MMSpecAncestor[59] = {
-  {(bigint) 2167 /* 0: Identity */},
+const classtable_elt_t VFT_metamodel___inheritance___MMSpecAncestor[62] = {
+  {(bigint) 2203 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MMSpecAncestor" /* 2: Class Name */},
   {(bigint) 3 /* 3: MMSpecAncestor < Object: superclass typecheck marker */},
-  {(bigint) 195 /* 4: MMSpecAncestor < MMAncestor: superclass typecheck marker */},
-  {(bigint) 2167 /* 5: MMSpecAncestor < MMSpecAncestor: superclass typecheck marker */},
+  {(bigint) 191 /* 4: MMSpecAncestor < MMAncestor: superclass typecheck marker */},
+  {(bigint) 2203 /* 5: MMSpecAncestor < MMSpecAncestor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -136743,7 +133662,7 @@ const classtable_elt_t VFT_metamodel___inheritance___MMSpecAncestor[59] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: MMSpecAncestor < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: MMSpecAncestor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -136759,6 +133678,8 @@ const classtable_elt_t VFT_metamodel___inheritance___MMSpecAncestor[59] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) metamodel___static_type___MMAncestor___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -136773,7 +133694,7 @@ const classtable_elt_t VFT_metamodel___inheritance___MMSpecAncestor[59] = {
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) metamodel___inheritance___MMAncestor___add_in},
-  {(bigint) 0 /* 48: MMSpecAncestor < MMAncestor: superclass init_table position */},
+  {(bigint) 0 /* 51: MMSpecAncestor < MMAncestor: superclass init_table position */},
   {(bigint) metamodel___static_type___MMAncestor___stype__eq},
   {(bigint) metamodel___static_type___MMAncestor___stype},
   {(bigint) metamodel___static_type___MMAncestor___inheriter__eq},
@@ -136782,7 +133703,7 @@ const classtable_elt_t VFT_metamodel___inheritance___MMSpecAncestor[59] = {
   {(bigint) metamodel___static_type___MMAncestor___is_specialisation},
   {(bigint) metamodel___inheritance___MMSpecAncestor___local_class},
   {(bigint) metamodel___static_type___MMAncestor___init},
-  {(bigint) 2 /* 57: MMSpecAncestor < MMSpecAncestor: superclass init_table position */},
+  {(bigint) 2 /* 60: MMSpecAncestor < MMSpecAncestor: superclass init_table position */},
   {(bigint) metamodel___inheritance___MMSpecAncestor___init},
 };
 /* 0: Pointer to the classtable */
@@ -136802,10 +133723,10 @@ void INIT_ATTRIBUTES__metamodel___inheritance___MMSpecAncestor(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:310 */
+  /* metamodel/static_type.nit:310 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_metamodel___static_type___MMAncestor____stype(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//static_type.nit:316 */
+  /* metamodel/static_type.nit:316 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_metamodel___static_type___MMAncestor____inheriter(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -136847,7 +133768,7 @@ val_t NEW_MMSpecAncestor_metamodel___inheritance___MMSpecAncestor___init(val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//inheritance.nit:542 */
+  /* metamodel/inheritance.nit:542 */
   fra.me.REG[2] = NEW_metamodel___inheritance___MMSpecAncestor();
   INIT_ATTRIBUTES__metamodel___inheritance___MMSpecAncestor(fra.me.REG[2]);
   metamodel___inheritance___MMSpecAncestor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -136855,13 +133776,14 @@ val_t NEW_MMSpecAncestor_metamodel___inheritance___MMSpecAncestor___init(val_t p
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_metamodel___inheritance___MMDefaultAncestor[59] = {
-  {(bigint) 2187 /* 0: Identity */},
+const classtable_elt_t VFT_metamodel___inheritance___MMDefaultAncestor[62] = {
+  {(bigint) 2223 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MMDefaultAncestor" /* 2: Class Name */},
   {(bigint) 3 /* 3: MMDefaultAncestor < Object: superclass typecheck marker */},
-  {(bigint) 195 /* 4: MMDefaultAncestor < MMAncestor: superclass typecheck marker */},
-  {(bigint) 2187 /* 5: MMDefaultAncestor < MMDefaultAncestor: superclass typecheck marker */},
+  {(bigint) 191 /* 4: MMDefaultAncestor < MMAncestor: superclass typecheck marker */},
+  {(bigint) 2223 /* 5: MMDefaultAncestor < MMDefaultAncestor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -136874,7 +133796,7 @@ const classtable_elt_t VFT_metamodel___inheritance___MMDefaultAncestor[59] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: MMDefaultAncestor < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: MMDefaultAncestor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -136890,6 +133812,8 @@ const classtable_elt_t VFT_metamodel___inheritance___MMDefaultAncestor[59] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) metamodel___static_type___MMAncestor___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -136904,7 +133828,7 @@ const classtable_elt_t VFT_metamodel___inheritance___MMDefaultAncestor[59] = {
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) metamodel___inheritance___MMAncestor___add_in},
-  {(bigint) 0 /* 48: MMDefaultAncestor < MMAncestor: superclass init_table position */},
+  {(bigint) 0 /* 51: MMDefaultAncestor < MMAncestor: superclass init_table position */},
   {(bigint) metamodel___static_type___MMAncestor___stype__eq},
   {(bigint) metamodel___static_type___MMAncestor___stype},
   {(bigint) metamodel___static_type___MMAncestor___inheriter__eq},
@@ -136913,7 +133837,7 @@ const classtable_elt_t VFT_metamodel___inheritance___MMDefaultAncestor[59] = {
   {(bigint) metamodel___static_type___MMAncestor___is_specialisation},
   {(bigint) metamodel___inheritance___MMDefaultAncestor___local_class},
   {(bigint) metamodel___static_type___MMAncestor___init},
-  {(bigint) 2 /* 57: MMDefaultAncestor < MMDefaultAncestor: superclass init_table position */},
+  {(bigint) 2 /* 60: MMDefaultAncestor < MMDefaultAncestor: superclass init_table position */},
   {(bigint) metamodel___inheritance___MMDefaultAncestor___init},
 };
 /* 0: Pointer to the classtable */
@@ -136933,10 +133857,10 @@ void INIT_ATTRIBUTES__metamodel___inheritance___MMDefaultAncestor(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:310 */
+  /* metamodel/static_type.nit:310 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_metamodel___static_type___MMAncestor____stype(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//static_type.nit:316 */
+  /* metamodel/static_type.nit:316 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_metamodel___static_type___MMAncestor____inheriter(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -136978,7 +133902,7 @@ val_t NEW_MMDefaultAncestor_metamodel___inheritance___MMDefaultAncestor___init(v
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//inheritance.nit:553 */
+  /* metamodel/inheritance.nit:553 */
   fra.me.REG[2] = NEW_metamodel___inheritance___MMDefaultAncestor();
   INIT_ATTRIBUTES__metamodel___inheritance___MMDefaultAncestor(fra.me.REG[2]);
   metamodel___inheritance___MMDefaultAncestor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -136986,176 +133910,15 @@ val_t NEW_MMDefaultAncestor_metamodel___inheritance___MMDefaultAncestor___init(v
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_metamodel___type_formal___MMTypeFormal[84] = {
-  {(bigint) 2151 /* 0: Identity */},
-  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMTypeFormal" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMTypeFormal < Object: superclass typecheck marker */},
-  {(bigint) 143 /* 4: MMTypeFormal < MMType: superclass typecheck marker */},
-  {(bigint) 2151 /* 5: MMTypeFormal < MMTypeFormal: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: MMTypeFormal < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) metamodel___type_formal___MMTypeFormal___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) native_interface___frontier___MMType___compile_check_isa},
-  {(bigint) native_interface___frontier___MMType___compile_condition_isa},
-  {(bigint) native_interface___frontier___MMType___compile_to_frontier},
-  {(bigint) native_interface___frontier___MMType___compile_new_local_ref},
-  {(bigint) native_interface___ni_metamodel___MMType___friendly_extern_name},
-  {(bigint) native_interface___ni_metamodel___MMType___mangled_name},
-  {(bigint) native_interface___ni_metamodel___MMType___from_native},
-  {(bigint) native_interface___ni_metamodel___MMType___assign_to_friendly},
-  {(bigint) native_interface___ni_metamodel___MMType___assign_from_friendly},
-  {(bigint) native_interface___ni_metamodel___MMType___uses_nitni_ref},
-  {(bigint) native_interface___ni_metamodel___MMType___friendly_null_getter},
-  {(bigint) native_interface___ni_metamodel___MMType___local_friendly_null_getter_from},
-  {(bigint) primitive_info___MMType___cname},
-  {(bigint) primitive_info___MMType___is_tagged},
-  {(bigint) primitive_info___MMType___default_cvalue},
-  {(bigint) primitive_info___MMType___boxtype},
-  {(bigint) primitive_info___MMType___unboxtype},
-  {(bigint) metamodel___genericity___MMTypeFormal___is_generic},
-  {(bigint) metamodel___type_formal___MMTypeFormal___direct_type},
-  {(bigint) 0 /* 66: MMTypeFormal < MMType: superclass init_table position */},
-  {(bigint) metamodel___static_type___MMType___mmmodule},
-  {(bigint) metamodel___type_formal___MMTypeFormal___local_class},
-  {(bigint) metamodel___type_formal___MMTypeFormal___is_valid},
-  {(bigint) metamodel___type_formal___MMTypeFormal_____l},
-  {(bigint) metamodel___type_formal___MMTypeFormal___is_supertype},
-  {(bigint) metamodel___static_type___MMType___for_module},
-  {(bigint) metamodel___static_type___MMType___adapt_to},
-  {(bigint) metamodel___static_type___MMType___upcast_for},
-  {(bigint) metamodel___static_type___MMType___not_for_self},
-  {(bigint) metamodel___type_formal___MMTypeFormal___is_nullable},
-  {(bigint) metamodel___static_type___MMType___as_nullable},
-  {(bigint) metamodel___static_type___MMType___as_notnull},
-  {(bigint) metamodel___static_type___MMType___init},
-  {(bigint) 2 /* 80: MMTypeFormal < MMTypeFormal: superclass init_table position */},
-  {(bigint) metamodel___type_formal___MMTypeFormal___name},
-  {(bigint) metamodel___type_formal___MMTypeFormal___bound},
-  {(bigint) metamodel___type_formal___MMTypeFormal___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute MMTypeFormal::_as_nullable_cache */
-/* 3: Attribute MMTypeFormal::_name */
-/* 4: Attribute MMTypeFormal::_bound */
-void INIT_ATTRIBUTES__metamodel___type_formal___MMTypeFormal(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___type_formal___MMTypeFormal;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:397 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_metamodel___static_type___MMType____as_nullable_cache(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_metamodel___type_formal___MMTypeFormal(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_metamodel___type_formal___MMTypeFormal;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_metamodel___type_formal___MMTypeFormal(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_metamodel___type_formal___MMTypeFormal;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_metamodel___type_formal___MMTypeFormal____name(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_name", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_MMTypeFormal_metamodel___type_formal___MMTypeFormal___init(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 48;
-  fra.me.meth = LOCATE_NEW_MMTypeFormal_metamodel___type_formal___MMTypeFormal___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./metamodel//type_formal.nit:48 */
-  fra.me.REG[2] = NEW_metamodel___type_formal___MMTypeFormal();
-  INIT_ATTRIBUTES__metamodel___type_formal___MMTypeFormal(fra.me.REG[2]);
-  metamodel___type_formal___MMTypeFormal___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_metamodel___type_formal___MMTypeFormal(fra.me.REG[2]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
-}
-const classtable_elt_t VFT_metamodel___genericity___MMTypeGeneric[89] = {
-  {(bigint) 2827 /* 0: Identity */},
+const classtable_elt_t VFT_metamodel___genericity___MMTypeGeneric[92] = {
+  {(bigint) 2587 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MMTypeGeneric" /* 2: Class Name */},
   {(bigint) 3 /* 3: MMTypeGeneric < Object: superclass typecheck marker */},
-  {(bigint) 143 /* 4: MMTypeGeneric < MMType: superclass typecheck marker */},
-  {(bigint) 2155 /* 5: MMTypeGeneric < MMTypeClass: superclass typecheck marker */},
-  {(bigint) 2827 /* 6: MMTypeGeneric < MMTypeGeneric: superclass typecheck marker */},
+  {(bigint) 139 /* 4: MMTypeGeneric < MMType: superclass typecheck marker */},
+  {(bigint) 2191 /* 5: MMTypeGeneric < MMTypeClass: superclass typecheck marker */},
+  {(bigint) 2587 /* 6: MMTypeGeneric < MMTypeGeneric: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -137167,7 +133930,7 @@ const classtable_elt_t VFT_metamodel___genericity___MMTypeGeneric[89] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: MMTypeGeneric < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: MMTypeGeneric < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -137183,6 +133946,8 @@ const classtable_elt_t VFT_metamodel___genericity___MMTypeGeneric[89] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) metamodel___genericity___MMTypeGeneric___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -137215,7 +133980,7 @@ const classtable_elt_t VFT_metamodel___genericity___MMTypeGeneric[89] = {
   {(bigint) primitive_info___MMType___unboxtype},
   {(bigint) metamodel___genericity___MMTypeGeneric___is_generic},
   {(bigint) metamodel___type_formal___MMType___direct_type},
-  {(bigint) 0 /* 66: MMTypeGeneric < MMType: superclass init_table position */},
+  {(bigint) 1 /* 69: MMTypeGeneric < MMType: superclass init_table position */},
   {(bigint) metamodel___static_type___MMTypeClass___mmmodule},
   {(bigint) metamodel___static_type___MMTypeClass___local_class},
   {(bigint) metamodel___static_type___MMType___is_valid},
@@ -137229,9 +133994,9 @@ const classtable_elt_t VFT_metamodel___genericity___MMTypeGeneric[89] = {
   {(bigint) metamodel___static_type___MMType___as_nullable},
   {(bigint) metamodel___static_type___MMType___as_notnull},
   {(bigint) metamodel___static_type___MMType___init},
-  {(bigint) 2 /* 80: MMTypeGeneric < MMTypeClass: superclass init_table position */},
+  {(bigint) 0 /* 83: MMTypeGeneric < MMTypeClass: superclass init_table position */},
   {(bigint) metamodel___static_type___MMTypeClass___init},
-  {(bigint) 3 /* 82: MMTypeGeneric < MMTypeGeneric: superclass init_table position */},
+  {(bigint) 3 /* 85: MMTypeGeneric < MMTypeGeneric: superclass init_table position */},
   {(bigint) metamodel___genericity___MMTypeGeneric___params},
   {(bigint) metamodel___static_type___MMTypeClass___upcast_for},
   {(bigint) metamodel___genericity___MMTypeGeneric___params_equals},
@@ -137257,7 +134022,7 @@ void INIT_ATTRIBUTES__metamodel___genericity___MMTypeGeneric(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:397 */
+  /* metamodel/static_type.nit:397 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_metamodel___static_type___MMType____as_nullable_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -137312,7 +134077,7 @@ val_t NEW_MMTypeGeneric_metamodel___genericity___MMTypeGeneric___init(val_t p0,
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//genericity.nit:189 */
+  /* metamodel/genericity.nit:189 */
   fra.me.REG[2] = NEW_metamodel___genericity___MMTypeGeneric();
   INIT_ATTRIBUTES__metamodel___genericity___MMTypeGeneric(fra.me.REG[2]);
   metamodel___genericity___MMTypeGeneric___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -137320,14 +134085,15 @@ val_t NEW_MMTypeGeneric_metamodel___genericity___MMTypeGeneric___init(val_t p0,
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_metamodel___genericity___MMTypeFormalParameter[90] = {
-  {(bigint) 2831 /* 0: Identity */},
+const classtable_elt_t VFT_metamodel___genericity___MMTypeFormalParameter[93] = {
+  {(bigint) 2591 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MMTypeFormalParameter" /* 2: Class Name */},
   {(bigint) 3 /* 3: MMTypeFormalParameter < Object: superclass typecheck marker */},
-  {(bigint) 143 /* 4: MMTypeFormalParameter < MMType: superclass typecheck marker */},
-  {(bigint) 2151 /* 5: MMTypeFormalParameter < MMTypeFormal: superclass typecheck marker */},
-  {(bigint) 2831 /* 6: MMTypeFormalParameter < MMTypeFormalParameter: superclass typecheck marker */},
+  {(bigint) 139 /* 4: MMTypeFormalParameter < MMType: superclass typecheck marker */},
+  {(bigint) 2187 /* 5: MMTypeFormalParameter < MMTypeFormal: superclass typecheck marker */},
+  {(bigint) 2591 /* 6: MMTypeFormalParameter < MMTypeFormalParameter: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -137339,7 +134105,7 @@ const classtable_elt_t VFT_metamodel___genericity___MMTypeFormalParameter[90] =
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: MMTypeFormalParameter < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: MMTypeFormalParameter < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -137355,6 +134121,8 @@ const classtable_elt_t VFT_metamodel___genericity___MMTypeFormalParameter[90] =
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) metamodel___type_formal___MMTypeFormal___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -137387,7 +134155,7 @@ const classtable_elt_t VFT_metamodel___genericity___MMTypeFormalParameter[90] =
   {(bigint) primitive_info___MMType___unboxtype},
   {(bigint) metamodel___genericity___MMTypeFormal___is_generic},
   {(bigint) metamodel___type_formal___MMTypeFormal___direct_type},
-  {(bigint) 0 /* 66: MMTypeFormalParameter < MMType: superclass init_table position */},
+  {(bigint) 1 /* 69: MMTypeFormalParameter < MMType: superclass init_table position */},
   {(bigint) metamodel___genericity___MMTypeFormalParameter___mmmodule},
   {(bigint) metamodel___type_formal___MMTypeFormal___local_class},
   {(bigint) metamodel___type_formal___MMTypeFormal___is_valid},
@@ -137401,11 +134169,11 @@ const classtable_elt_t VFT_metamodel___genericity___MMTypeFormalParameter[90] =
   {(bigint) metamodel___static_type___MMType___as_nullable},
   {(bigint) metamodel___static_type___MMType___as_notnull},
   {(bigint) metamodel___static_type___MMType___init},
-  {(bigint) 2 /* 80: MMTypeFormalParameter < MMTypeFormal: superclass init_table position */},
+  {(bigint) 0 /* 83: MMTypeFormalParameter < MMTypeFormal: superclass init_table position */},
   {(bigint) metamodel___type_formal___MMTypeFormal___name},
   {(bigint) metamodel___type_formal___MMTypeFormal___bound},
   {(bigint) metamodel___type_formal___MMTypeFormal___init},
-  {(bigint) 3 /* 84: MMTypeFormalParameter < MMTypeFormalParameter: superclass init_table position */},
+  {(bigint) 3 /* 87: MMTypeFormalParameter < MMTypeFormalParameter: superclass init_table position */},
   {(bigint) metamodel___genericity___MMTypeFormalParameter___def_class},
   {(bigint) metamodel___genericity___MMTypeFormalParameter___position},
   {(bigint) metamodel___genericity___MMTypeFormalParameter___bound__eq},
@@ -137432,7 +134200,7 @@ void INIT_ATTRIBUTES__metamodel___genericity___MMTypeFormalParameter(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:397 */
+  /* metamodel/static_type.nit:397 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_metamodel___static_type___MMType____as_nullable_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -137496,7 +134264,7 @@ val_t NEW_MMTypeFormalParameter_metamodel___genericity___MMTypeFormalParameter__
   REGB0 = p1;
   fra.me.REG[1] = p2;
   fra.me.REG[2] = p3;
-  /* ./metamodel//genericity.nit:236 */
+  /* metamodel/genericity.nit:236 */
   fra.me.REG[3] = NEW_metamodel___genericity___MMTypeFormalParameter();
   INIT_ATTRIBUTES__metamodel___genericity___MMTypeFormalParameter(fra.me.REG[3]);
   metamodel___genericity___MMTypeFormalParameter___with_bound(fra.me.REG[3], fra.me.REG[0], REGB0, fra.me.REG[1], fra.me.REG[2], init_table);
@@ -137522,7 +134290,7 @@ val_t NEW_MMTypeFormalParameter_metamodel___genericity___MMTypeFormalParameter__
   fra.me.REG[0] = p0;
   REGB0 = p1;
   fra.me.REG[1] = p2;
-  /* ./metamodel//genericity.nit:242 */
+  /* metamodel/genericity.nit:242 */
   fra.me.REG[2] = NEW_metamodel___genericity___MMTypeFormalParameter();
   INIT_ATTRIBUTES__metamodel___genericity___MMTypeFormalParameter(fra.me.REG[2]);
   metamodel___genericity___MMTypeFormalParameter___init(fra.me.REG[2], fra.me.REG[0], REGB0, fra.me.REG[1], init_table);
@@ -137530,197 +134298,15 @@ val_t NEW_MMTypeFormalParameter_metamodel___genericity___MMTypeFormalParameter__
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_metamodel___virtualtype___MMTypeProperty[72] = {
-  {(bigint) 2143 /* 0: Identity */},
-  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMTypeProperty" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMTypeProperty < Object: superclass typecheck marker */},
-  {(bigint) 159 /* 4: MMTypeProperty < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2143 /* 5: MMTypeProperty < MMTypeProperty: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMTypeProperty < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___MMLocalProperty___accept_property_visitor},
-  {(bigint) syntax___syntax_base___MMLocalProperty___node},
-  {(bigint) syntax___syntax_base___MMLocalProperty___is_init},
-  {(bigint) metamodel___inheritance___MMLocalProperty___inherit_global},
-  {(bigint) metamodel___static_type___MMLocalProperty___signature},
-  {(bigint) metamodel___static_type___MMLocalProperty___signature__eq},
-  {(bigint) metamodel___static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 54: MMTypeProperty < MMLocalProperty: superclass init_table position */},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___local_class},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___is_global_set},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___prhe},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___mmmodule},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___full_name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___set_global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___new_global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___need_super},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___need_super__eq},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___init},
-  {(bigint) compiling___compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling___compiling_base___MMLocalProperty___super_meth_call},
-  {(bigint) 2 /* 69: MMTypeProperty < MMTypeProperty: superclass init_table position */},
-  {(bigint) metamodel___virtualtype___MMTypeProperty___stype_for},
-  {(bigint) metamodel___virtualtype___MMTypeProperty___real_stype_for},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute MMTypeProperty::_signature */
-/* 3: Attribute MMTypeProperty::_signatures_cache */
-/* 4: Attribute MMTypeProperty::_name */
-/* 5: Attribute MMTypeProperty::_local_class */
-/* 6: Attribute MMTypeProperty::_global */
-/* 7: Attribute MMTypeProperty::_prhe */
-/* 8: Attribute MMTypeProperty::_need_super */
-/* 9: Attribute MMTypeProperty::_cname_cache */
-/* 10: Attribute MMTypeProperty::_stypes_cache */
-void INIT_ATTRIBUTES__metamodel___virtualtype___MMTypeProperty(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__metamodel___virtualtype___MMTypeProperty;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./metamodel//virtualtype.nit:40 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//static_type.nit:56 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:649 */
-  REGB0 = TAG_Bool(false);
-  ATTR_metamodel___abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_metamodel___virtualtype___MMTypeProperty(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 11);
-  obj->vft = (classtable_elt_t*)VFT_metamodel___virtualtype___MMTypeProperty;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_metamodel___virtualtype___MMTypeProperty(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_metamodel___virtualtype___MMTypeProperty;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_stypes_cache", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_signatures_cache", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_name", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_need_super", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_MMTypeProperty_metamodel___abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 651;
-  fra.me.meth = LOCATE_NEW_MMTypeProperty_metamodel___abstractmetamodel___MMLocalProperty___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:651 */
-  fra.me.REG[2] = NEW_metamodel___virtualtype___MMTypeProperty();
-  INIT_ATTRIBUTES__metamodel___virtualtype___MMTypeProperty(fra.me.REG[2]);
-  metamodel___abstractmetamodel___MMLocalProperty___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_metamodel___virtualtype___MMTypeProperty(fra.me.REG[2]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
-}
-const classtable_elt_t VFT_metamodel___virtualtype___MMVirtualType[88] = {
-  {(bigint) 2819 /* 0: Identity */},
+const classtable_elt_t VFT_metamodel___virtualtype___MMVirtualType[91] = {
+  {(bigint) 2579 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MMVirtualType" /* 2: Class Name */},
   {(bigint) 3 /* 3: MMVirtualType < Object: superclass typecheck marker */},
-  {(bigint) 143 /* 4: MMVirtualType < MMType: superclass typecheck marker */},
-  {(bigint) 2151 /* 5: MMVirtualType < MMTypeFormal: superclass typecheck marker */},
-  {(bigint) 2819 /* 6: MMVirtualType < MMVirtualType: superclass typecheck marker */},
+  {(bigint) 139 /* 4: MMVirtualType < MMType: superclass typecheck marker */},
+  {(bigint) 2187 /* 5: MMVirtualType < MMTypeFormal: superclass typecheck marker */},
+  {(bigint) 2579 /* 6: MMVirtualType < MMVirtualType: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -137732,7 +134318,7 @@ const classtable_elt_t VFT_metamodel___virtualtype___MMVirtualType[88] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: MMVirtualType < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: MMVirtualType < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -137748,6 +134334,8 @@ const classtable_elt_t VFT_metamodel___virtualtype___MMVirtualType[88] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) metamodel___type_formal___MMTypeFormal___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -137780,7 +134368,7 @@ const classtable_elt_t VFT_metamodel___virtualtype___MMVirtualType[88] = {
   {(bigint) primitive_info___MMType___unboxtype},
   {(bigint) metamodel___genericity___MMTypeFormal___is_generic},
   {(bigint) metamodel___type_formal___MMTypeFormal___direct_type},
-  {(bigint) 0 /* 66: MMVirtualType < MMType: superclass init_table position */},
+  {(bigint) 1 /* 69: MMVirtualType < MMType: superclass init_table position */},
   {(bigint) metamodel___virtualtype___MMVirtualType___mmmodule},
   {(bigint) metamodel___type_formal___MMTypeFormal___local_class},
   {(bigint) metamodel___type_formal___MMTypeFormal___is_valid},
@@ -137794,11 +134382,11 @@ const classtable_elt_t VFT_metamodel___virtualtype___MMVirtualType[88] = {
   {(bigint) metamodel___static_type___MMType___as_nullable},
   {(bigint) metamodel___static_type___MMType___as_notnull},
   {(bigint) metamodel___static_type___MMType___init},
-  {(bigint) 2 /* 80: MMVirtualType < MMTypeFormal: superclass init_table position */},
+  {(bigint) 0 /* 83: MMVirtualType < MMTypeFormal: superclass init_table position */},
   {(bigint) metamodel___type_formal___MMTypeFormal___name},
   {(bigint) metamodel___type_formal___MMTypeFormal___bound},
   {(bigint) metamodel___type_formal___MMTypeFormal___init},
-  {(bigint) 3 /* 84: MMVirtualType < MMVirtualType: superclass init_table position */},
+  {(bigint) 3 /* 87: MMVirtualType < MMVirtualType: superclass init_table position */},
   {(bigint) metamodel___virtualtype___MMVirtualType___property},
   {(bigint) metamodel___virtualtype___MMVirtualType___recv},
   {(bigint) metamodel___virtualtype___MMVirtualType___init},
@@ -137823,7 +134411,7 @@ void INIT_ATTRIBUTES__metamodel___virtualtype___MMVirtualType(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:397 */
+  /* metamodel/static_type.nit:397 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_metamodel___static_type___MMType____as_nullable_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -137883,170 +134471,22 @@ val_t NEW_MMVirtualType_metamodel___virtualtype___MMVirtualType___init(val_t p0,
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//virtualtype.nit:64 */
+  /* metamodel/virtualtype.nit:64 */
   fra.me.REG[2] = NEW_metamodel___virtualtype___MMVirtualType();
   INIT_ATTRIBUTES__metamodel___virtualtype___MMVirtualType(fra.me.REG[2]);
-  metamodel___virtualtype___MMVirtualType___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_metamodel___virtualtype___MMVirtualType(fra.me.REG[2]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
-}
-const classtable_elt_t VFT_opts___Option[63] = {
-  {(bigint) 115 /* 0: Identity */},
-  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "Option" /* 2: Class Name */},
-  {(bigint) 3 /* 3: Option < Object: superclass typecheck marker */},
-  {(bigint) 115 /* 4: Option < Option: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: Option < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) opts___Option___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: Option < Option: superclass init_table position */},
-  {(bigint) opts___Option___names},
-  {(bigint) 3 /* 49: VT Option::VALUE : id of Object */},
-  {(bigint) 3 /* 50: VT Option::VALUE : color of Object */},
-  {(bigint) opts___Option___helptext},
-  {(bigint) opts___Option___mandatory},
-  {(bigint) opts___Option___mandatory__eq},
-  {(bigint) opts___Option___value__eq},
-  {(bigint) opts___Option___value},
-  {(bigint) opts___Option___default_value},
-  {(bigint) opts___Option___default_value__eq},
-  {(bigint) opts___Option___init_opt},
-  {(bigint) opts___Option___add_aliases},
-  {(bigint) opts___Option___pretty},
-  {(bigint) opts___Option___pretty_default},
-  {(bigint) opts___Option___read_param},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute Option::_names */
-/* 3: Attribute Option::_helptext */
-/* 4: Attribute Option::_mandatory */
-/* 5: Attribute Option::_value */
-/* 6: Attribute Option::_default_value */
-void INIT_ATTRIBUTES__opts___Option(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__opts___Option;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_opts___Option(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_opts___Option;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_opts___Option(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_opts___Option;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_names", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_opts___Option____helptext(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_helptext", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_opts___Option____mandatory(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_mandatory", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_Option_opts___Option___init_opt(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t tmp;
-  int init_table[2] = {0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 40;
-  fra.me.meth = LOCATE_NEW_Option_opts___Option___init_opt;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* ./../lib/opts.nit:40 */
-  fra.me.REG[3] = NEW_opts___Option();
-  INIT_ATTRIBUTES__opts___Option(fra.me.REG[3]);
-  opts___Option___init_opt(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  CHECKNEW_opts___Option(fra.me.REG[3]);
+  metamodel___virtualtype___MMVirtualType___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_metamodel___virtualtype___MMVirtualType(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[3];
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_opts___OptionText[65] = {
-  {(bigint) 2091 /* 0: Identity */},
+const classtable_elt_t VFT_opts___OptionText[68] = {
+  {(bigint) 2127 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "OptionText" /* 2: Class Name */},
   {(bigint) 3 /* 3: OptionText < Object: superclass typecheck marker */},
   {(bigint) 115 /* 4: OptionText < Option: superclass typecheck marker */},
-  {(bigint) 2091 /* 5: OptionText < OptionText: superclass typecheck marker */},
+  {(bigint) 2127 /* 5: OptionText < OptionText: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -138059,7 +134499,7 @@ const classtable_elt_t VFT_opts___OptionText[65] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: OptionText < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: OptionText < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -138075,6 +134515,8 @@ const classtable_elt_t VFT_opts___OptionText[65] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) opts___OptionText___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -138088,10 +134530,10 @@ const classtable_elt_t VFT_opts___OptionText[65] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: OptionText < Option: superclass init_table position */},
+  {(bigint) 0 /* 50: OptionText < Option: superclass init_table position */},
   {(bigint) opts___Option___names},
-  {(bigint) 3 /* 49: VT OptionText::VALUE : id of Object */},
-  {(bigint) 3 /* 50: VT OptionText::VALUE : color of Object */},
+  {(bigint) 3 /* 52: VT OptionText::VALUE : id of Object */},
+  {(bigint) 3 /* 53: VT OptionText::VALUE : color of Object */},
   {(bigint) opts___Option___helptext},
   {(bigint) opts___Option___mandatory},
   {(bigint) opts___Option___mandatory__eq},
@@ -138104,7 +134546,7 @@ const classtable_elt_t VFT_opts___OptionText[65] = {
   {(bigint) opts___OptionText___pretty},
   {(bigint) opts___Option___pretty_default},
   {(bigint) opts___Option___read_param},
-  {(bigint) 2 /* 63: OptionText < OptionText: superclass init_table position */},
+  {(bigint) 2 /* 66: OptionText < OptionText: superclass init_table position */},
   {(bigint) opts___OptionText___init},
 };
 /* 0: Pointer to the classtable */
@@ -138179,7 +134621,7 @@ val_t NEW_OptionText_opts___OptionText___init(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/opts.nit:86 */
+  /* ../lib/opts.nit:86 */
   fra.me.REG[1] = NEW_opts___OptionText();
   INIT_ATTRIBUTES__opts___OptionText(fra.me.REG[1]);
   opts___OptionText___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -138187,13 +134629,14 @@ val_t NEW_OptionText_opts___OptionText___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_opts___OptionBool[65] = {
-  {(bigint) 2103 /* 0: Identity */},
+const classtable_elt_t VFT_opts___OptionBool[68] = {
+  {(bigint) 2139 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "OptionBool" /* 2: Class Name */},
   {(bigint) 3 /* 3: OptionBool < Object: superclass typecheck marker */},
   {(bigint) 115 /* 4: OptionBool < Option: superclass typecheck marker */},
-  {(bigint) 2103 /* 5: OptionBool < OptionBool: superclass typecheck marker */},
+  {(bigint) 2139 /* 5: OptionBool < OptionBool: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -138206,7 +134649,7 @@ const classtable_elt_t VFT_opts___OptionBool[65] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: OptionBool < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: OptionBool < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -138222,6 +134665,8 @@ const classtable_elt_t VFT_opts___OptionBool[65] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) opts___Option___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -138235,10 +134680,10 @@ const classtable_elt_t VFT_opts___OptionBool[65] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: OptionBool < Option: superclass init_table position */},
+  {(bigint) 0 /* 50: OptionBool < Option: superclass init_table position */},
   {(bigint) opts___Option___names},
-  {(bigint) -13 /* 49: VT OptionBool::VALUE : id of Bool */},
-  {(bigint) 4 /* 50: VT OptionBool::VALUE : color of Bool */},
+  {(bigint) -13 /* 52: VT OptionBool::VALUE : id of Bool */},
+  {(bigint) 4 /* 53: VT OptionBool::VALUE : color of Bool */},
   {(bigint) opts___Option___helptext},
   {(bigint) opts___Option___mandatory},
   {(bigint) opts___Option___mandatory__eq},
@@ -138251,7 +134696,7 @@ const classtable_elt_t VFT_opts___OptionBool[65] = {
   {(bigint) opts___Option___pretty},
   {(bigint) opts___Option___pretty_default},
   {(bigint) opts___OptionBool___read_param},
-  {(bigint) 2 /* 63: OptionBool < OptionBool: superclass init_table position */},
+  {(bigint) 2 /* 66: OptionBool < OptionBool: superclass init_table position */},
   {(bigint) opts___OptionBool___init},
 };
 /* 0: Pointer to the classtable */
@@ -138328,7 +134773,7 @@ val_t NEW_OptionBool_opts___OptionBool___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/opts.nit:97 */
+  /* ../lib/opts.nit:97 */
   fra.me.REG[2] = NEW_opts___OptionBool();
   INIT_ATTRIBUTES__opts___OptionBool(fra.me.REG[2]);
   opts___OptionBool___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -138336,13 +134781,14 @@ val_t NEW_OptionBool_opts___OptionBool___init(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_opts___OptionCount[65] = {
-  {(bigint) 2099 /* 0: Identity */},
+const classtable_elt_t VFT_opts___OptionCount[68] = {
+  {(bigint) 2135 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "OptionCount" /* 2: Class Name */},
   {(bigint) 3 /* 3: OptionCount < Object: superclass typecheck marker */},
   {(bigint) 115 /* 4: OptionCount < Option: superclass typecheck marker */},
-  {(bigint) 2099 /* 5: OptionCount < OptionCount: superclass typecheck marker */},
+  {(bigint) 2135 /* 5: OptionCount < OptionCount: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -138355,7 +134801,7 @@ const classtable_elt_t VFT_opts___OptionCount[65] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: OptionCount < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: OptionCount < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -138371,6 +134817,8 @@ const classtable_elt_t VFT_opts___OptionCount[65] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) opts___Option___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -138384,10 +134832,10 @@ const classtable_elt_t VFT_opts___OptionCount[65] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: OptionCount < Option: superclass init_table position */},
+  {(bigint) 0 /* 50: OptionCount < Option: superclass init_table position */},
   {(bigint) opts___Option___names},
-  {(bigint) -29 /* 49: VT OptionCount::VALUE : id of Int */},
-  {(bigint) 7 /* 50: VT OptionCount::VALUE : color of Int */},
+  {(bigint) -29 /* 52: VT OptionCount::VALUE : id of Int */},
+  {(bigint) 7 /* 53: VT OptionCount::VALUE : color of Int */},
   {(bigint) opts___Option___helptext},
   {(bigint) opts___Option___mandatory},
   {(bigint) opts___Option___mandatory__eq},
@@ -138400,7 +134848,7 @@ const classtable_elt_t VFT_opts___OptionCount[65] = {
   {(bigint) opts___Option___pretty},
   {(bigint) opts___Option___pretty_default},
   {(bigint) opts___OptionCount___read_param},
-  {(bigint) 2 /* 63: OptionCount < OptionCount: superclass init_table position */},
+  {(bigint) 2 /* 66: OptionCount < OptionCount: superclass init_table position */},
   {(bigint) opts___OptionCount___init},
 };
 /* 0: Pointer to the classtable */
@@ -138477,7 +134925,7 @@ val_t NEW_OptionCount_opts___OptionCount___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/opts.nit:106 */
+  /* ../lib/opts.nit:106 */
   fra.me.REG[2] = NEW_opts___OptionCount();
   INIT_ATTRIBUTES__opts___OptionCount(fra.me.REG[2]);
   opts___OptionCount___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -138485,166 +134933,15 @@ val_t NEW_OptionCount_opts___OptionCount___init(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_opts___OptionParameter[66] = {
-  {(bigint) 2095 /* 0: Identity */},
-  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "OptionParameter" /* 2: Class Name */},
-  {(bigint) 3 /* 3: OptionParameter < Object: superclass typecheck marker */},
-  {(bigint) 115 /* 4: OptionParameter < Option: superclass typecheck marker */},
-  {(bigint) 2095 /* 5: OptionParameter < OptionParameter: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: OptionParameter < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) opts___Option___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: OptionParameter < Option: superclass init_table position */},
-  {(bigint) opts___Option___names},
-  {(bigint) 3 /* 49: VT OptionParameter::VALUE : id of Object */},
-  {(bigint) 3 /* 50: VT OptionParameter::VALUE : color of Object */},
-  {(bigint) opts___Option___helptext},
-  {(bigint) opts___Option___mandatory},
-  {(bigint) opts___Option___mandatory__eq},
-  {(bigint) opts___Option___value__eq},
-  {(bigint) opts___Option___value},
-  {(bigint) opts___Option___default_value},
-  {(bigint) opts___Option___default_value__eq},
-  {(bigint) opts___Option___init_opt},
-  {(bigint) opts___Option___add_aliases},
-  {(bigint) opts___Option___pretty},
-  {(bigint) opts___Option___pretty_default},
-  {(bigint) opts___OptionParameter___read_param},
-  {(bigint) 2 /* 63: OptionParameter < OptionParameter: superclass init_table position */},
-  {(bigint) opts___OptionParameter___convert},
-  {(bigint) opts___OptionParameter___init_opt},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute OptionParameter::_names */
-/* 3: Attribute OptionParameter::_helptext */
-/* 4: Attribute OptionParameter::_mandatory */
-/* 5: Attribute OptionParameter::_value */
-/* 6: Attribute OptionParameter::_default_value */
-void INIT_ATTRIBUTES__opts___OptionParameter(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__opts___OptionParameter;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_opts___OptionParameter(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_opts___OptionParameter;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_opts___OptionParameter(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_opts___OptionParameter;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_names", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_opts___Option____helptext(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_helptext", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_opts___Option____mandatory(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_mandatory", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_OptionParameter_opts___OptionParameter___init_opt(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 126;
-  fra.me.meth = LOCATE_NEW_OptionParameter_opts___OptionParameter___init_opt;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* ./../lib/opts.nit:126 */
-  fra.me.REG[3] = NEW_opts___OptionParameter();
-  INIT_ATTRIBUTES__opts___OptionParameter(fra.me.REG[3]);
-  opts___OptionParameter___init_opt(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  CHECKNEW_opts___OptionParameter(fra.me.REG[3]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[3];
-}
-const classtable_elt_t VFT_opts___OptionString[68] = {
-  {(bigint) 2791 /* 0: Identity */},
+const classtable_elt_t VFT_opts___OptionString[71] = {
+  {(bigint) 2551 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "OptionString" /* 2: Class Name */},
   {(bigint) 3 /* 3: OptionString < Object: superclass typecheck marker */},
   {(bigint) 115 /* 4: OptionString < Option: superclass typecheck marker */},
-  {(bigint) 2095 /* 5: OptionString < OptionParameter: superclass typecheck marker */},
-  {(bigint) 2791 /* 6: OptionString < OptionString: superclass typecheck marker */},
+  {(bigint) 2131 /* 5: OptionString < OptionParameter: superclass typecheck marker */},
+  {(bigint) 2551 /* 6: OptionString < OptionString: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -138656,7 +134953,7 @@ const classtable_elt_t VFT_opts___OptionString[68] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: OptionString < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: OptionString < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -138672,6 +134969,8 @@ const classtable_elt_t VFT_opts___OptionString[68] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) opts___Option___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -138685,10 +134984,10 @@ const classtable_elt_t VFT_opts___OptionString[68] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: OptionString < Option: superclass init_table position */},
+  {(bigint) 1 /* 50: OptionString < Option: superclass init_table position */},
   {(bigint) opts___Option___names},
-  {(bigint) 3535 /* 49: VT OptionString::VALUE : id of String */},
-  {(bigint) 8 /* 50: VT OptionString::VALUE : color of String */},
+  {(bigint) 3615 /* 52: VT OptionString::VALUE : id of String */},
+  {(bigint) 8 /* 53: VT OptionString::VALUE : color of String */},
   {(bigint) opts___Option___helptext},
   {(bigint) opts___Option___mandatory},
   {(bigint) opts___Option___mandatory__eq},
@@ -138701,10 +135000,10 @@ const classtable_elt_t VFT_opts___OptionString[68] = {
   {(bigint) opts___Option___pretty},
   {(bigint) opts___Option___pretty_default},
   {(bigint) opts___OptionParameter___read_param},
-  {(bigint) 2 /* 63: OptionString < OptionParameter: superclass init_table position */},
+  {(bigint) 0 /* 66: OptionString < OptionParameter: superclass init_table position */},
   {(bigint) opts___OptionString___convert},
   {(bigint) opts___OptionParameter___init_opt},
-  {(bigint) 3 /* 66: OptionString < OptionString: superclass init_table position */},
+  {(bigint) 3 /* 69: OptionString < OptionString: superclass init_table position */},
   {(bigint) opts___OptionString___init},
 };
 /* 0: Pointer to the classtable */
@@ -138781,7 +135080,7 @@ val_t NEW_OptionString_opts___OptionString___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/opts.nit:133 */
+  /* ../lib/opts.nit:133 */
   fra.me.REG[2] = NEW_opts___OptionString();
   INIT_ATTRIBUTES__opts___OptionString(fra.me.REG[2]);
   opts___OptionString___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -138789,14 +135088,15 @@ val_t NEW_OptionString_opts___OptionString___init(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_opts___OptionEnum[69] = {
-  {(bigint) 2799 /* 0: Identity */},
+const classtable_elt_t VFT_opts___OptionEnum[72] = {
+  {(bigint) 2559 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "OptionEnum" /* 2: Class Name */},
   {(bigint) 3 /* 3: OptionEnum < Object: superclass typecheck marker */},
   {(bigint) 115 /* 4: OptionEnum < Option: superclass typecheck marker */},
-  {(bigint) 2095 /* 5: OptionEnum < OptionParameter: superclass typecheck marker */},
-  {(bigint) 2799 /* 6: OptionEnum < OptionEnum: superclass typecheck marker */},
+  {(bigint) 2131 /* 5: OptionEnum < OptionParameter: superclass typecheck marker */},
+  {(bigint) 2559 /* 6: OptionEnum < OptionEnum: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -138808,7 +135108,7 @@ const classtable_elt_t VFT_opts___OptionEnum[69] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: OptionEnum < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: OptionEnum < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -138824,6 +135124,8 @@ const classtable_elt_t VFT_opts___OptionEnum[69] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) opts___Option___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -138837,10 +135139,10 @@ const classtable_elt_t VFT_opts___OptionEnum[69] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: OptionEnum < Option: superclass init_table position */},
+  {(bigint) 1 /* 50: OptionEnum < Option: superclass init_table position */},
   {(bigint) opts___Option___names},
-  {(bigint) -29 /* 49: VT OptionEnum::VALUE : id of Int */},
-  {(bigint) 7 /* 50: VT OptionEnum::VALUE : color of Int */},
+  {(bigint) -29 /* 52: VT OptionEnum::VALUE : id of Int */},
+  {(bigint) 7 /* 53: VT OptionEnum::VALUE : color of Int */},
   {(bigint) opts___Option___helptext},
   {(bigint) opts___Option___mandatory},
   {(bigint) opts___Option___mandatory__eq},
@@ -138853,10 +135155,10 @@ const classtable_elt_t VFT_opts___OptionEnum[69] = {
   {(bigint) opts___Option___pretty},
   {(bigint) opts___OptionEnum___pretty_default},
   {(bigint) opts___OptionParameter___read_param},
-  {(bigint) 2 /* 63: OptionEnum < OptionParameter: superclass init_table position */},
+  {(bigint) 0 /* 66: OptionEnum < OptionParameter: superclass init_table position */},
   {(bigint) opts___OptionEnum___convert},
   {(bigint) opts___OptionParameter___init_opt},
-  {(bigint) 3 /* 66: OptionEnum < OptionEnum: superclass init_table position */},
+  {(bigint) 3 /* 69: OptionEnum < OptionEnum: superclass init_table position */},
   {(bigint) opts___OptionEnum___init},
   {(bigint) opts___OptionEnum___value_name},
 };
@@ -138944,7 +135246,7 @@ val_t NEW_OptionEnum_opts___OptionEnum___init(val_t p0, val_t p1, val_t p2, val_
   fra.me.REG[1] = p1;
   REGB0 = p2;
   fra.me.REG[2] = p3;
-  /* ./../lib/opts.nit:143 */
+  /* ../lib/opts.nit:143 */
   fra.me.REG[3] = NEW_opts___OptionEnum();
   INIT_ATTRIBUTES__opts___OptionEnum(fra.me.REG[3]);
   opts___OptionEnum___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], REGB0, fra.me.REG[2], init_table);
@@ -138952,14 +135254,15 @@ val_t NEW_OptionEnum_opts___OptionEnum___init(val_t p0, val_t p1, val_t p2, val_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-const classtable_elt_t VFT_opts___OptionInt[68] = {
-  {(bigint) 2795 /* 0: Identity */},
+const classtable_elt_t VFT_opts___OptionInt[71] = {
+  {(bigint) 2555 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "OptionInt" /* 2: Class Name */},
   {(bigint) 3 /* 3: OptionInt < Object: superclass typecheck marker */},
   {(bigint) 115 /* 4: OptionInt < Option: superclass typecheck marker */},
-  {(bigint) 2095 /* 5: OptionInt < OptionParameter: superclass typecheck marker */},
-  {(bigint) 2795 /* 6: OptionInt < OptionInt: superclass typecheck marker */},
+  {(bigint) 2131 /* 5: OptionInt < OptionParameter: superclass typecheck marker */},
+  {(bigint) 2555 /* 6: OptionInt < OptionInt: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -138971,7 +135274,7 @@ const classtable_elt_t VFT_opts___OptionInt[68] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: OptionInt < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: OptionInt < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -138987,6 +135290,8 @@ const classtable_elt_t VFT_opts___OptionInt[68] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) opts___Option___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -139000,10 +135305,10 @@ const classtable_elt_t VFT_opts___OptionInt[68] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: OptionInt < Option: superclass init_table position */},
+  {(bigint) 1 /* 50: OptionInt < Option: superclass init_table position */},
   {(bigint) opts___Option___names},
-  {(bigint) -29 /* 49: VT OptionInt::VALUE : id of Int */},
-  {(bigint) 7 /* 50: VT OptionInt::VALUE : color of Int */},
+  {(bigint) -29 /* 52: VT OptionInt::VALUE : id of Int */},
+  {(bigint) 7 /* 53: VT OptionInt::VALUE : color of Int */},
   {(bigint) opts___Option___helptext},
   {(bigint) opts___Option___mandatory},
   {(bigint) opts___Option___mandatory__eq},
@@ -139016,10 +135321,10 @@ const classtable_elt_t VFT_opts___OptionInt[68] = {
   {(bigint) opts___Option___pretty},
   {(bigint) opts___Option___pretty_default},
   {(bigint) opts___OptionParameter___read_param},
-  {(bigint) 2 /* 63: OptionInt < OptionParameter: superclass init_table position */},
+  {(bigint) 0 /* 66: OptionInt < OptionParameter: superclass init_table position */},
   {(bigint) opts___OptionInt___convert},
   {(bigint) opts___OptionParameter___init_opt},
-  {(bigint) 3 /* 66: OptionInt < OptionInt: superclass init_table position */},
+  {(bigint) 3 /* 69: OptionInt < OptionInt: superclass init_table position */},
   {(bigint) opts___OptionInt___init},
 };
 /* 0: Pointer to the classtable */
@@ -139098,7 +135403,7 @@ val_t NEW_OptionInt_opts___OptionInt___init(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   REGB0 = p1;
   fra.me.REG[1] = p2;
-  /* ./../lib/opts.nit:172 */
+  /* ../lib/opts.nit:172 */
   fra.me.REG[2] = NEW_opts___OptionInt();
   INIT_ATTRIBUTES__opts___OptionInt(fra.me.REG[2]);
   opts___OptionInt___init(fra.me.REG[2], fra.me.REG[0], REGB0, fra.me.REG[1], init_table);
@@ -139106,1432 +135411,312 @@ val_t NEW_OptionInt_opts___OptionInt___init(val_t p0, val_t p1, val_t p2){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_opts___OptionArray[68] = {
-  {(bigint) 2803 /* 0: Identity */},
+const classtable_elt_t VFT_opts___OptionArray[71] = {
+  {(bigint) 2563 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "OptionArray" /* 2: Class Name */},
   {(bigint) 3 /* 3: OptionArray < Object: superclass typecheck marker */},
   {(bigint) 115 /* 4: OptionArray < Option: superclass typecheck marker */},
-  {(bigint) 2095 /* 5: OptionArray < OptionParameter: superclass typecheck marker */},
-  {(bigint) 2803 /* 6: OptionArray < OptionArray: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: OptionArray < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) opts___Option___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: OptionArray < Option: superclass init_table position */},
-  {(bigint) opts___Option___names},
-  {(bigint) 3747 /* 49: VT OptionArray::VALUE : id of Array */},
-  {(bigint) 4 /* 50: VT OptionArray::VALUE : color of Array */},
-  {(bigint) opts___Option___helptext},
-  {(bigint) opts___Option___mandatory},
-  {(bigint) opts___Option___mandatory__eq},
-  {(bigint) opts___Option___value__eq},
-  {(bigint) opts___Option___value},
-  {(bigint) opts___Option___default_value},
-  {(bigint) opts___Option___default_value__eq},
-  {(bigint) opts___Option___init_opt},
-  {(bigint) opts___Option___add_aliases},
-  {(bigint) opts___Option___pretty},
-  {(bigint) opts___Option___pretty_default},
-  {(bigint) opts___OptionParameter___read_param},
-  {(bigint) 2 /* 63: OptionArray < OptionParameter: superclass init_table position */},
-  {(bigint) opts___OptionArray___convert},
-  {(bigint) opts___OptionParameter___init_opt},
-  {(bigint) 3 /* 66: OptionArray < OptionArray: superclass init_table position */},
-  {(bigint) opts___OptionArray___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute OptionArray::_names */
-/* 3: Attribute OptionArray::_helptext */
-/* 4: Attribute OptionArray::_mandatory */
-/* 5: Attribute OptionArray::_value */
-/* 6: Attribute OptionArray::_default_value */
-/* 7: Attribute OptionArray::_values */
-void INIT_ATTRIBUTES__opts___OptionArray(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__opts___OptionArray;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_opts___OptionArray(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
-  obj->vft = (classtable_elt_t*)VFT_opts___OptionArray;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_opts___OptionArray(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_opts___OptionArray;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_opts___OptionArray____values(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_values", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_names", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_opts___Option____helptext(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_helptext", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_opts___Option____mandatory(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_mandatory", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_OptionArray_opts___OptionArray___init(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 181;
-  fra.me.meth = LOCATE_NEW_OptionArray_opts___OptionArray___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./../lib/opts.nit:181 */
-  fra.me.REG[2] = NEW_opts___OptionArray();
-  INIT_ATTRIBUTES__opts___OptionArray(fra.me.REG[2]);
-  opts___OptionArray___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_opts___OptionArray(fra.me.REG[2]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
-}
-const classtable_elt_t VFT_opts___OptionContext[56] = {
-  {(bigint) 111 /* 0: Identity */},
-  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "OptionContext" /* 2: Class Name */},
-  {(bigint) 3 /* 3: OptionContext < Object: superclass typecheck marker */},
-  {(bigint) 111 /* 4: OptionContext < OptionContext: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: OptionContext < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: OptionContext < OptionContext: superclass init_table position */},
-  {(bigint) opts___OptionContext___options},
-  {(bigint) opts___OptionContext___rest},
-  {(bigint) opts___OptionContext___usage},
-  {(bigint) opts___OptionContext___parse},
-  {(bigint) opts___OptionContext___parse_intern},
-  {(bigint) opts___OptionContext___add_option},
-  {(bigint) opts___OptionContext___init},
-  {(bigint) opts___OptionContext___build},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute OptionContext::_options */
-/* 3: Attribute OptionContext::_rest */
-/* 4: Attribute OptionContext::_optmap */
-void INIT_ATTRIBUTES__opts___OptionContext(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__opts___OptionContext;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_opts___OptionContext(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_opts___OptionContext;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_opts___OptionContext(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_opts___OptionContext;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_options", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_opts___OptionContext____rest(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_rest", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_opts___OptionContext____optmap(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_optmap", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_OptionContext_opts___OptionContext___init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[2] = {0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 256;
-  fra.me.meth = LOCATE_NEW_OptionContext_opts___OptionContext___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./../lib/opts.nit:256 */
-  fra.me.REG[0] = NEW_opts___OptionContext();
-  INIT_ATTRIBUTES__opts___OptionContext(fra.me.REG[0]);
-  opts___OptionContext___init(fra.me.REG[0], init_table);
-  CHECKNEW_opts___OptionContext(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_mmloader___Message[68] = {
-  {(bigint) 2123 /* 0: Identity */},
-  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "Message" /* 2: Class Name */},
-  {(bigint) 3 /* 3: Message < Object: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 275 /* 5: Message < Comparable: superclass typecheck marker */},
-  {(bigint) 2123 /* 6: Message < Message: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: Message < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) mmloader___Message___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 0 /* 52: Message < Comparable: superclass init_table position */},
-  {(bigint) 2123 /* 53: VT Message::OTHER : id of Message */},
-  {(bigint) 6 /* 54: VT Message::OTHER : color of Message */},
-  {(bigint) mmloader___Message_____l},
-  {(bigint) standard___kernel___Comparable_____leq},
-  {(bigint) standard___kernel___Comparable_____geq},
-  {(bigint) standard___kernel___Comparable_____g},
-  {(bigint) standard___kernel___Comparable_____leqg},
-  {(bigint) standard___kernel___Comparable___is_between},
-  {(bigint) standard___kernel___Comparable___max},
-  {(bigint) standard___kernel___Comparable___min},
-  {(bigint) 2 /* 63: Message < Message: superclass init_table position */},
-  {(bigint) mmloader___Message___location},
-  {(bigint) mmloader___Message___text},
-  {(bigint) mmloader___Message___to_color_string},
-  {(bigint) mmloader___Message___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute Message::_location */
-/* 3: Attribute Message::_text */
-void INIT_ATTRIBUTES__mmloader___Message(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__mmloader___Message;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_mmloader___Message(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_mmloader___Message;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_mmloader___Message(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_mmloader___Message;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_mmloader___Message____text(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_text", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_Message_mmloader___Message___init(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_Message_mmloader___Message___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = NEW_mmloader___Message();
-  INIT_ATTRIBUTES__mmloader___Message(fra.me.REG[2]);
-  mmloader___Message___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_mmloader___Message(fra.me.REG[2]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
-}
-const classtable_elt_t VFT_mmloader___ToolContext[134] = {
-  {(bigint) 327 /* 0: Identity */},
-  {(bigint) 51 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ToolContext" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ToolContext < Object: superclass typecheck marker */},
-  {(bigint) 187 /* 4: ToolContext < MMContext: superclass typecheck marker */},
-  {(bigint) 327 /* 5: ToolContext < ToolContext: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) 2131 /* 5: OptionArray < OptionParameter: superclass typecheck marker */},
+  {(bigint) 2563 /* 6: OptionArray < OptionArray: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ToolContext < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___ToolContext___handle_property_conflict},
-  {(bigint) 1 /* 48: ToolContext < MMContext: superclass init_table position */},
-  {(bigint) metamodel___abstractmetamodel___MMContext___init},
-  {(bigint) metamodel___abstractmetamodel___MMContext___module_hierarchy},
-  {(bigint) metamodel___abstractmetamodel___MMContext___class_hierarchy},
-  {(bigint) metamodel___abstractmetamodel___MMContext___modules},
-  {(bigint) metamodel___abstractmetamodel___MMContext___add_module},
-  {(bigint) metamodel___abstractmetamodel___MMContext___add_global_class},
-  {(bigint) metamodel___abstractmetamodel___MMContext___add_local_class},
-  {(bigint) separate_options___ToolContext___separate_options},
-  {(bigint) separate_options___ToolContext___separate_options__eq},
-  {(bigint) separate_options___ToolContext___opt_cc_lib_paths},
-  {(bigint) separate_options___ToolContext___opt_cc_lib_paths__eq},
-  {(bigint) separate_options___ToolContext___opt_cc_libs},
-  {(bigint) separate_options___ToolContext___opt_cc_libs__eq},
-  {(bigint) separate_options___ToolContext___opt_cc_include_paths},
-  {(bigint) separate_options___ToolContext___opt_cc_include_paths__eq},
-  {(bigint) mmloader___ToolContext___init},
-  {(bigint) separate_options___ToolContext___integrate_separate_options},
-  {(bigint) analysis___ToolContext___global_callgraph},
-  {(bigint) analysis___ToolContext___global_callgraph__eq},
-  {(bigint) analysis___ToolContext___no_dead_method_removal},
-  {(bigint) analysis___ToolContext___no_dead_method_removal__eq},
-  {(bigint) analysis___ToolContext___no_inline_get_set},
-  {(bigint) analysis___ToolContext___no_inline_get_set__eq},
-  {(bigint) analysis___ToolContext___no_callgraph_from_init},
-  {(bigint) analysis___ToolContext___no_callgraph_from_init__eq},
-  {(bigint) analysis___ToolContext___no_out_of_init_get_test_removal},
-  {(bigint) analysis___ToolContext___no_out_of_init_get_test_removal__eq},
-  {(bigint) syntax___ToolContext___keep_ast},
-  {(bigint) syntax___ToolContext___keep_ast__eq},
-  {(bigint) 2 /* 78: ToolContext < ToolContext: superclass init_table position */},
-  {(bigint) mmloader___ToolContext___error_count},
-  {(bigint) mmloader___ToolContext___warning_count},
-  {(bigint) mmloader___ToolContext___log_directory},
-  {(bigint) mmloader___ToolContext___check_errors},
-  {(bigint) mmloader___ToolContext___error},
-  {(bigint) mmloader___ToolContext___fatal_error},
-  {(bigint) mmloader___ToolContext___warning},
-  {(bigint) mmloader___ToolContext___info},
-  {(bigint) mmloader___ToolContext___paths},
-  {(bigint) mmloader___ToolContext___option_context},
-  {(bigint) mmloader___ToolContext___opt_warn},
-  {(bigint) mmloader___ToolContext___opt_path},
-  {(bigint) mmloader___ToolContext___opt_log},
-  {(bigint) mmloader___ToolContext___opt_log_dir},
-  {(bigint) mmloader___ToolContext___opt_only_metamodel},
-  {(bigint) mmloader___ToolContext___opt_only_parse},
-  {(bigint) mmloader___ToolContext___opt_help},
-  {(bigint) mmloader___ToolContext___opt_version},
-  {(bigint) mmloader___ToolContext___opt_verbose},
-  {(bigint) mmloader___ToolContext___opt_stop_on_first_error},
-  {(bigint) mmloader___ToolContext___opt_no_color},
-  {(bigint) mmloader___ToolContext___verbose_level},
-  {(bigint) separate_options___ToolContext___init},
-  {(bigint) mmloader___ToolContext___process_options},
-  {(bigint) mmloader___ToolContext___try_to_load},
-  {(bigint) mmloader___ToolContext___get_module_from_filename},
-  {(bigint) mmloader___ToolContext___get_module},
-  {(bigint) mmloader___ToolContext___directory_for},
-  {(bigint) mmloader___ToolContext___register_loader},
-  {(bigint) program___ToolContext___global},
-  {(bigint) program___ToolContext___global__eq},
-  {(bigint) program___ToolContext___use_SFT_optimization__eq},
-  {(bigint) program___ToolContext___use_SFT_optimization},
-  {(bigint) compiling___compiling_base___ToolContext___compdir},
-  {(bigint) compiling___compiling_base___ToolContext___compdir__eq},
-  {(bigint) compiling___compiling_base___ToolContext___clibdir},
-  {(bigint) compiling___compiling_base___ToolContext___clibdir__eq},
-  {(bigint) compiling___compiling_base___ToolContext___bindir},
-  {(bigint) compiling___compiling_base___ToolContext___bindir__eq},
-  {(bigint) compiling___compiling_base___ToolContext___output_file},
-  {(bigint) compiling___compiling_base___ToolContext___output_file__eq},
-  {(bigint) compiling___compiling_base___ToolContext___boost},
-  {(bigint) compiling___compiling_base___ToolContext___boost__eq},
-  {(bigint) compiling___compiling_base___ToolContext___no_cc},
-  {(bigint) compiling___compiling_base___ToolContext___no_cc__eq},
-  {(bigint) compiling___compiling_base___ToolContext___cc_link},
-  {(bigint) compiling___compiling_base___ToolContext___cc_link__eq},
-  {(bigint) compiling___compiling_base___ToolContext___cc_libs},
-  {(bigint) compiling___compiling_base___ToolContext___cc_libs__eq},
-  {(bigint) compiling___compiling_base___ToolContext___cc_lib_paths},
-  {(bigint) compiling___compiling_base___ToolContext___cc_lib_paths__eq},
-  {(bigint) compiling___compiling_base___ToolContext___cc_include_paths},
-  {(bigint) compiling___compiling_base___ToolContext___cc_include_paths__eq},
-  {(bigint) compiling___compiling_base___ToolContext___ext_prefix},
-  {(bigint) compiling___compiling_base___ToolContext___ext_prefix__eq},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute ToolContext::_module_hierarchy */
-/* 3: Attribute ToolContext::_class_hierarchy */
-/* 4: Attribute ToolContext::_global_classes */
-/* 5: Attribute ToolContext::_modules */
-/* 6: Attribute ToolContext::@separate_options */
-/* 7: Attribute ToolContext::@opt_cc_lib_paths */
-/* 8: Attribute ToolContext::@opt_cc_libs */
-/* 9: Attribute ToolContext::@opt_cc_include_paths */
-/* 10: Attribute ToolContext::_global_callgraph */
-/* 11: Attribute ToolContext::_no_dead_method_removal */
-/* 12: Attribute ToolContext::_no_inline_get_set */
-/* 13: Attribute ToolContext::_no_callgraph_from_init */
-/* 14: Attribute ToolContext::_no_out_of_init_get_test_removal */
-/* 15: Attribute ToolContext::_keep_ast */
-/* 16: Attribute ToolContext::_error_count */
-/* 17: Attribute ToolContext::_warning_count */
-/* 18: Attribute ToolContext::_log_directory */
-/* 19: Attribute ToolContext::_messages */
-/* 20: Attribute ToolContext::_message_sorter */
-/* 21: Attribute ToolContext::_paths */
-/* 22: Attribute ToolContext::_loaders */
-/* 23: Attribute ToolContext::_option_context */
-/* 24: Attribute ToolContext::_opt_warn */
-/* 25: Attribute ToolContext::_opt_path */
-/* 26: Attribute ToolContext::_opt_log */
-/* 27: Attribute ToolContext::_opt_log_dir */
-/* 28: Attribute ToolContext::_opt_only_metamodel */
-/* 29: Attribute ToolContext::_opt_only_parse */
-/* 30: Attribute ToolContext::_opt_help */
-/* 31: Attribute ToolContext::_opt_version */
-/* 32: Attribute ToolContext::_opt_verbose */
-/* 33: Attribute ToolContext::_opt_stop_on_first_error */
-/* 34: Attribute ToolContext::_opt_no_color */
-/* 35: Attribute ToolContext::_verbose_level */
-/* 36: Attribute ToolContext::_processing_modules */
-/* 37: Attribute ToolContext::_path_dirs */
-/* 38: Attribute ToolContext::_global */
-/* 39: Attribute ToolContext::_use_SFT_optimization */
-/* 40: Attribute ToolContext::_compdir */
-/* 41: Attribute ToolContext::_clibdir */
-/* 42: Attribute ToolContext::_bindir */
-/* 43: Attribute ToolContext::_output_file */
-/* 44: Attribute ToolContext::_boost */
-/* 45: Attribute ToolContext::_no_cc */
-/* 46: Attribute ToolContext::_cc_link */
-/* 47: Attribute ToolContext::_cc_libs */
-/* 48: Attribute ToolContext::_cc_lib_paths */
-/* 49: Attribute ToolContext::_cc_include_paths */
-/* 50: Attribute ToolContext::_ext_prefix */
-void INIT_ATTRIBUTES__mmloader___ToolContext(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-  static val_t once_value_4; /* Once value */
-  static val_t once_value_5; /* Once value */
-  static val_t once_value_6; /* Once value */
-  static val_t once_value_7; /* Once value */
-  static val_t once_value_8; /* Once value */
-  static val_t once_value_9; /* Once value */
-  static val_t once_value_10; /* Once value */
-  static val_t once_value_11; /* Once value */
-  static val_t once_value_12; /* Once value */
-  static val_t once_value_13; /* Once value */
-  static val_t once_value_14; /* Once value */
-  static val_t once_value_15; /* Once value */
-  static val_t once_value_16; /* Once value */
-  static val_t once_value_17; /* Once value */
-  static val_t once_value_18; /* Once value */
-  static val_t once_value_19; /* Once value */
-  static val_t once_value_20; /* Once value */
-  static val_t once_value_21; /* Once value */
-  static val_t once_value_22; /* Once value */
-  static val_t once_value_23; /* Once value */
-  static val_t once_value_24; /* Once value */
-  static val_t once_value_25; /* Once value */
-  static val_t once_value_26; /* Once value */
-  static val_t once_value_27; /* Once value */
-  static val_t once_value_28; /* Once value */
-  static val_t once_value_29; /* Once value */
-  static val_t once_value_30; /* Once value */
-  static val_t once_value_31; /* Once value */
-  static val_t once_value_32; /* Once value */
-  static val_t once_value_33; /* Once value */
-  static val_t once_value_34; /* Once value */
-  static val_t once_value_35; /* Once value */
-  static val_t once_value_36; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__mmloader___ToolContext;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./separate_options.nit:11 */
-  fra.me.REG[1] = NEW_OptionContext_opts___OptionContext___init();
-  ATTR_separate_options___ToolContext_____atseparate_options(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./separate_options.nit:12 */
-  if (!once_value_1) {
-    fra.me.REG[1] = BOX_NativeString("Path to libraries for C compiler");
-    REGB0 = TAG_Int(32);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_1 = fra.me.REG[1];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[1] = once_value_1;
-  fra.me.REG[1] = fra.me.REG[1];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_2) {
-    fra.me.REG[3] = BOX_NativeString("--cc-lib-path");
-    REGB0 = TAG_Int(13);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_2 = fra.me.REG[3];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[3] = once_value_2;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_separate_options___ToolContext_____atopt_cc_lib_paths(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./separate_options.nit:13 */
-  if (!once_value_3) {
-    fra.me.REG[2] = BOX_NativeString("Name of library to use for C compiler");
-    REGB0 = TAG_Int(37);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_3 = fra.me.REG[2];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[2] = once_value_3;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_4) {
-    fra.me.REG[3] = BOX_NativeString("--cc-lib-name");
-    REGB0 = TAG_Int(13);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_4 = fra.me.REG[3];
-    register_static_object(&once_value_4);
-  } else fra.me.REG[3] = once_value_4;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_separate_options___ToolContext_____atopt_cc_libs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./separate_options.nit:14 */
-  if (!once_value_5) {
-    fra.me.REG[1] = BOX_NativeString("Path to .h files for C compiler");
-    REGB0 = TAG_Int(31);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_5 = fra.me.REG[1];
-    register_static_object(&once_value_5);
-  } else fra.me.REG[1] = once_value_5;
-  fra.me.REG[1] = fra.me.REG[1];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_6) {
-    fra.me.REG[3] = BOX_NativeString("--cc-header-path");
-    REGB0 = TAG_Int(16);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_6 = fra.me.REG[3];
-    register_static_object(&once_value_6);
-  } else fra.me.REG[3] = once_value_6;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_separate_options___ToolContext_____atopt_cc_include_paths(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./analysis//analysis.nit:48 */
-  if (!once_value_7) {
-    fra.me.REG[2] = BOX_NativeString("rta");
-    REGB0 = TAG_Int(3);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_7 = fra.me.REG[2];
-    register_static_object(&once_value_7);
-  } else fra.me.REG[2] = once_value_7;
-  fra.me.REG[2] = fra.me.REG[2];
-  ATTR_analysis___ToolContext____global_callgraph(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./analysis//analysis.nit:49 */
-  REGB0 = TAG_Bool(false);
-  ATTR_analysis___ToolContext____no_dead_method_removal(fra.me.REG[0]) = REGB0;
-  /* ./analysis//analysis.nit:50 */
-  REGB0 = TAG_Bool(false);
-  ATTR_analysis___ToolContext____no_inline_get_set(fra.me.REG[0]) = REGB0;
-  /* ./analysis//analysis.nit:51 */
-  REGB0 = TAG_Bool(false);
-  ATTR_analysis___ToolContext____no_callgraph_from_init(fra.me.REG[0]) = REGB0;
-  /* ./analysis//analysis.nit:52 */
-  REGB0 = TAG_Bool(false);
-  ATTR_analysis___ToolContext____no_out_of_init_get_test_removal(fra.me.REG[0]) = REGB0;
-  /* ./syntax//syntax.nit:98 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0]) = REGB0;
-  /* ./mmloader.nit:98 */
-  REGB0 = TAG_Int(0);
-  ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]) = REGB0;
-  /* ./mmloader.nit:101 */
-  REGB0 = TAG_Int(0);
-  ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0]) = REGB0;
-  /* ./mmloader.nit:104 */
-  if (!once_value_8) {
-    fra.me.REG[2] = BOX_NativeString("logs");
-    REGB0 = TAG_Int(4);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_8 = fra.me.REG[2];
-    register_static_object(&once_value_8);
-  } else fra.me.REG[2] = once_value_8;
-  fra.me.REG[2] = fra.me.REG[2];
-  ATTR_mmloader___ToolContext____log_directory(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:107 */
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_mmloader___ToolContext____messages(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:108 */
-  fra.me.REG[2] = NEW_ComparableSorter_standard___collection___sorter___ComparableSorter___init();
-  ATTR_mmloader___ToolContext____message_sorter(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:166 */
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_mmloader___ToolContext____paths(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:169 */
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_mmloader___ToolContext____loaders(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:172 */
-  fra.me.REG[2] = NEW_OptionContext_opts___OptionContext___init();
-  ATTR_mmloader___ToolContext____option_context(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:175 */
-  if (!once_value_9) {
-    fra.me.REG[2] = BOX_NativeString("Show warnings");
-    REGB0 = TAG_Int(13);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_9 = fra.me.REG[2];
-    register_static_object(&once_value_9);
-  } else fra.me.REG[2] = once_value_9;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(1);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_10) {
-    fra.me.REG[3] = BOX_NativeString("-W");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_10 = fra.me.REG[3];
-    register_static_object(&once_value_10);
-  } else fra.me.REG[3] = once_value_10;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  if (!once_value_11) {
-    fra.me.REG[3] = BOX_NativeString("--warn");
-    REGB0 = TAG_Int(6);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_11 = fra.me.REG[3];
-    register_static_object(&once_value_11);
-  } else fra.me.REG[3] = once_value_11;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionCount_opts___OptionCount___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:178 */
-  if (!once_value_12) {
-    fra.me.REG[1] = BOX_NativeString("Set include path for loaders (may be used more than once)");
-    REGB0 = TAG_Int(57);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_12 = fra.me.REG[1];
-    register_static_object(&once_value_12);
-  } else fra.me.REG[1] = once_value_12;
-  fra.me.REG[1] = fra.me.REG[1];
-  REGB0 = TAG_Int(1);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_13) {
-    fra.me.REG[3] = BOX_NativeString("-I");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_13 = fra.me.REG[3];
-    register_static_object(&once_value_13);
-  } else fra.me.REG[3] = once_value_13;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  if (!once_value_14) {
-    fra.me.REG[3] = BOX_NativeString("--path");
-    REGB0 = TAG_Int(6);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_14 = fra.me.REG[3];
-    register_static_object(&once_value_14);
-  } else fra.me.REG[3] = once_value_14;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:181 */
-  if (!once_value_15) {
-    fra.me.REG[2] = BOX_NativeString("Generate various log files");
-    REGB0 = TAG_Int(26);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_15 = fra.me.REG[2];
-    register_static_object(&once_value_15);
-  } else fra.me.REG[2] = once_value_15;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_16) {
-    fra.me.REG[3] = BOX_NativeString("--log");
-    REGB0 = TAG_Int(5);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_16 = fra.me.REG[3];
-    register_static_object(&once_value_16);
-  } else fra.me.REG[3] = once_value_16;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:184 */
-  if (!once_value_17) {
-    fra.me.REG[1] = BOX_NativeString("Directory where to generate log files");
-    REGB0 = TAG_Int(37);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_17 = fra.me.REG[1];
-    register_static_object(&once_value_17);
-  } else fra.me.REG[1] = once_value_17;
-  fra.me.REG[1] = fra.me.REG[1];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_18) {
-    fra.me.REG[3] = BOX_NativeString("--log-dir");
-    REGB0 = TAG_Int(9);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_18 = fra.me.REG[3];
-    register_static_object(&once_value_18);
-  } else fra.me.REG[3] = once_value_18;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionString_opts___OptionString___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_mmloader___ToolContext____opt_log_dir(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:187 */
-  if (!once_value_19) {
-    fra.me.REG[2] = BOX_NativeString("Stop after meta-model processing");
-    REGB0 = TAG_Int(32);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_19 = fra.me.REG[2];
-    register_static_object(&once_value_19);
-  } else fra.me.REG[2] = once_value_19;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_20) {
-    fra.me.REG[3] = BOX_NativeString("--only-metamodel");
-    REGB0 = TAG_Int(16);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_20 = fra.me.REG[3];
-    register_static_object(&once_value_20);
-  } else fra.me.REG[3] = once_value_20;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:190 */
-  if (!once_value_21) {
-    fra.me.REG[1] = BOX_NativeString("Only proceed to parse step of loaders");
-    REGB0 = TAG_Int(37);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_21 = fra.me.REG[1];
-    register_static_object(&once_value_21);
-  } else fra.me.REG[1] = once_value_21;
-  fra.me.REG[1] = fra.me.REG[1];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_22) {
-    fra.me.REG[3] = BOX_NativeString("--only-parse");
-    REGB0 = TAG_Int(12);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_22 = fra.me.REG[3];
-    register_static_object(&once_value_22);
-  } else fra.me.REG[3] = once_value_22;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:193 */
-  if (!once_value_23) {
-    fra.me.REG[2] = BOX_NativeString("Show Help (This screen)");
-    REGB0 = TAG_Int(23);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_23 = fra.me.REG[2];
-    register_static_object(&once_value_23);
-  } else fra.me.REG[2] = once_value_23;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(2);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_24) {
-    fra.me.REG[3] = BOX_NativeString("-h");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_24 = fra.me.REG[3];
-    register_static_object(&once_value_24);
-  } else fra.me.REG[3] = once_value_24;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  if (!once_value_25) {
-    fra.me.REG[3] = BOX_NativeString("-?");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_25 = fra.me.REG[3];
-    register_static_object(&once_value_25);
-  } else fra.me.REG[3] = once_value_25;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  if (!once_value_26) {
-    fra.me.REG[3] = BOX_NativeString("--help");
-    REGB0 = TAG_Int(6);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_26 = fra.me.REG[3];
-    register_static_object(&once_value_26);
-  } else fra.me.REG[3] = once_value_26;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_mmloader___ToolContext____opt_help(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:196 */
-  if (!once_value_27) {
-    fra.me.REG[1] = BOX_NativeString("Show version and exit");
-    REGB0 = TAG_Int(21);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_27 = fra.me.REG[1];
-    register_static_object(&once_value_27);
-  } else fra.me.REG[1] = once_value_27;
-  fra.me.REG[1] = fra.me.REG[1];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_28) {
-    fra.me.REG[3] = BOX_NativeString("--version");
-    REGB0 = TAG_Int(9);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_28 = fra.me.REG[3];
-    register_static_object(&once_value_28);
-  } else fra.me.REG[3] = once_value_28;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_mmloader___ToolContext____opt_version(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:199 */
-  if (!once_value_29) {
-    fra.me.REG[2] = BOX_NativeString("Verbose");
-    REGB0 = TAG_Int(7);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_29 = fra.me.REG[2];
-    register_static_object(&once_value_29);
-  } else fra.me.REG[2] = once_value_29;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(1);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_30) {
-    fra.me.REG[3] = BOX_NativeString("-v");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_30 = fra.me.REG[3];
-    register_static_object(&once_value_30);
-  } else fra.me.REG[3] = once_value_30;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  if (!once_value_31) {
-    fra.me.REG[3] = BOX_NativeString("--verbose");
-    REGB0 = TAG_Int(9);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_31 = fra.me.REG[3];
-    register_static_object(&once_value_31);
-  } else fra.me.REG[3] = once_value_31;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionCount_opts___OptionCount___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_mmloader___ToolContext____opt_verbose(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:202 */
-  if (!once_value_32) {
-    fra.me.REG[1] = BOX_NativeString("Stop on first error");
-    REGB0 = TAG_Int(19);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_32 = fra.me.REG[1];
-    register_static_object(&once_value_32);
-  } else fra.me.REG[1] = once_value_32;
-  fra.me.REG[1] = fra.me.REG[1];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_33) {
-    fra.me.REG[3] = BOX_NativeString("--stop-on-first-error");
-    REGB0 = TAG_Int(21);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_33 = fra.me.REG[3];
-    register_static_object(&once_value_33);
-  } else fra.me.REG[3] = once_value_33;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_mmloader___ToolContext____opt_stop_on_first_error(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:205 */
-  if (!once_value_34) {
-    fra.me.REG[2] = BOX_NativeString("Do not use color to display errors and warnings");
-    REGB0 = TAG_Int(47);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_34 = fra.me.REG[2];
-    register_static_object(&once_value_34);
-  } else fra.me.REG[2] = once_value_34;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_35) {
-    fra.me.REG[3] = BOX_NativeString("--no-color");
-    REGB0 = TAG_Int(10);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_35 = fra.me.REG[3];
-    register_static_object(&once_value_35);
-  } else fra.me.REG[3] = once_value_35;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_mmloader___ToolContext____opt_no_color(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:208 */
-  REGB0 = TAG_Int(0);
-  ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0]) = REGB0;
-  /* ./mmloader.nit:291 */
-  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:358 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:30 */
-  fra.me.REG[1] = NEW_PartialOrder_metamodel___partial_order___PartialOrder___init();
-  ATTR_metamodel___abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:34 */
-  fra.me.REG[1] = NEW_PartialOrder_metamodel___partial_order___PartialOrder___init();
-  ATTR_metamodel___abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:37 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_metamodel___abstractmetamodel___MMContext____global_classes(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:40 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_metamodel___abstractmetamodel___MMContext____modules(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./program.nit:26 */
-  REGB0 = TAG_Bool(false);
-  ATTR_program___ToolContext____global(fra.me.REG[0]) = REGB0;
-  /* ./program.nit:27 */
-  REGB0 = TAG_Bool(true);
-  ATTR_program___ToolContext____use_SFT_optimization(fra.me.REG[0]) = REGB0;
-  /* ./compiling//compiling_base.nit:27 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_compiling___compiling_base___ToolContext____compdir(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:28 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_compiling___compiling_base___ToolContext____clibdir(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:29 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_compiling___compiling_base___ToolContext____bindir(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:30 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_compiling___compiling_base___ToolContext____output_file(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:31 */
-  REGB0 = TAG_Bool(false);
-  ATTR_compiling___compiling_base___ToolContext____boost(fra.me.REG[0]) = REGB0;
-  /* ./compiling//compiling_base.nit:32 */
-  REGB0 = TAG_Bool(false);
-  ATTR_compiling___compiling_base___ToolContext____no_cc(fra.me.REG[0]) = REGB0;
-  /* ./compiling//compiling_base.nit:33 */
-  REGB0 = TAG_Bool(false);
-  ATTR_compiling___compiling_base___ToolContext____cc_link(fra.me.REG[0]) = REGB0;
-  /* ./compiling//compiling_base.nit:34 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_compiling___compiling_base___ToolContext____cc_libs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:35 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_compiling___compiling_base___ToolContext____cc_lib_paths(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:36 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_compiling___compiling_base___ToolContext____cc_include_paths(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:37 */
-  if (!once_value_36) {
-    fra.me.REG[1] = BOX_NativeString("");
-    REGB0 = TAG_Int(0);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_36 = fra.me.REG[1];
-    register_static_object(&once_value_36);
-  } else fra.me.REG[1] = once_value_36;
-  fra.me.REG[1] = fra.me.REG[1];
-  ATTR_compiling___compiling_base___ToolContext____ext_prefix(fra.me.REG[0]) = fra.me.REG[1];
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) standard___time___Object___get_time},
+  {(bigint) 2 /* 19: OptionArray < Object: superclass init_table position */},
+  {(bigint) standard___kernel___Object___object_id},
+  {(bigint) standard___kernel___Object___is_same_type},
+  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) standard___kernel___Object_____neq},
+  {(bigint) standard___kernel___Object___output},
+  {(bigint) standard___kernel___Object___output_class_name},
+  {(bigint) standard___kernel___Object___exit},
+  {(bigint) standard___kernel___Object___sys},
+  {(bigint) standard___file___Object___printn},
+  {(bigint) standard___file___Object___print},
+  {(bigint) standard___file___Object___getc},
+  {(bigint) standard___file___Object___gets},
+  {(bigint) standard___file___Object___stdin},
+  {(bigint) standard___file___Object___stdout},
+  {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) opts___Option___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 50: OptionArray < Option: superclass init_table position */},
+  {(bigint) opts___Option___names},
+  {(bigint) 3831 /* 52: VT OptionArray::VALUE : id of Array */},
+  {(bigint) 4 /* 53: VT OptionArray::VALUE : color of Array */},
+  {(bigint) opts___Option___helptext},
+  {(bigint) opts___Option___mandatory},
+  {(bigint) opts___Option___mandatory__eq},
+  {(bigint) opts___Option___value__eq},
+  {(bigint) opts___Option___value},
+  {(bigint) opts___Option___default_value},
+  {(bigint) opts___Option___default_value__eq},
+  {(bigint) opts___Option___init_opt},
+  {(bigint) opts___Option___add_aliases},
+  {(bigint) opts___Option___pretty},
+  {(bigint) opts___Option___pretty_default},
+  {(bigint) opts___OptionParameter___read_param},
+  {(bigint) 0 /* 66: OptionArray < OptionParameter: superclass init_table position */},
+  {(bigint) opts___OptionArray___convert},
+  {(bigint) opts___OptionParameter___init_opt},
+  {(bigint) 3 /* 69: OptionArray < OptionArray: superclass init_table position */},
+  {(bigint) opts___OptionArray___init},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute OptionArray::_names */
+/* 3: Attribute OptionArray::_helptext */
+/* 4: Attribute OptionArray::_mandatory */
+/* 5: Attribute OptionArray::_value */
+/* 6: Attribute OptionArray::_default_value */
+/* 7: Attribute OptionArray::_values */
+void INIT_ATTRIBUTES__opts___OptionArray(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__opts___OptionArray;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_mmloader___ToolContext(void)
+val_t NEW_opts___OptionArray(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 51);
-  obj->vft = (classtable_elt_t*)VFT_mmloader___ToolContext;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_opts___OptionArray;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_mmloader___ToolContext(val_t p0){
+void CHECKNEW_opts___OptionArray(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_mmloader___ToolContext;
+  fra.me.meth = LOCATE_CHECKNEW_opts___OptionArray;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atseparate_options(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@separate_options", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atopt_cc_lib_paths(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@opt_cc_lib_paths", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atopt_cc_libs(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@opt_cc_libs", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atopt_cc_include_paths(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@opt_cc_include_paths", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___ToolContext____global_callgraph(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_global_callgraph", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___ToolContext____no_dead_method_removal(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_no_dead_method_removal", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___ToolContext____no_inline_get_set(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_no_inline_get_set", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___ToolContext____no_callgraph_from_init(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_no_callgraph_from_init", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___ToolContext____no_out_of_init_get_test_removal(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_no_out_of_init_get_test_removal", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_keep_ast", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_error_count", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_warning_count", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____log_directory(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_log_directory", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_messages", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____message_sorter(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_message_sorter", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____paths(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_paths", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____loaders(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_loaders", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____option_context(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_option_context", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_warn", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_path", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_log", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_log_dir(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_log_dir", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_only_metamodel", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_only_parse", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_help(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_help", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_version(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_version", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_verbose(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_verbose", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_stop_on_first_error(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_stop_on_first_error", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_no_color(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_no_color", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_verbose_level", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_module_hierarchy", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_class_hierarchy", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____global_classes(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_global_classes", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____modules(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_modules", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_program___ToolContext____global(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_global", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_program___ToolContext____use_SFT_optimization(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_use_SFT_optimization", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____boost(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_opts___OptionArray____values(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_boost", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_values", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____no_cc(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_no_cc", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_names", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____cc_link(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_opts___Option____helptext(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_cc_link", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_helptext", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____cc_libs(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_opts___Option____mandatory(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_cc_libs", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_mandatory", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____cc_lib_paths(fra.me.REG[0])!=NIT_NULL);
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_OptionArray_opts___OptionArray___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  int init_table[4] = {0, 0, 0, 0};
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 181;
+  fra.me.meth = LOCATE_NEW_OptionArray_opts___OptionArray___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* ../lib/opts.nit:181 */
+  fra.me.REG[2] = NEW_opts___OptionArray();
+  INIT_ATTRIBUTES__opts___OptionArray(fra.me.REG[2]);
+  opts___OptionArray___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_opts___OptionArray(fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+const classtable_elt_t VFT_opts___OptionContext[59] = {
+  {(bigint) 111 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "OptionContext" /* 2: Class Name */},
+  {(bigint) 3 /* 3: OptionContext < Object: superclass typecheck marker */},
+  {(bigint) 111 /* 4: OptionContext < OptionContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) nit_version___Object___nit_version},
+  {(bigint) standard___time___Object___get_time},
+  {(bigint) 0 /* 19: OptionContext < Object: superclass init_table position */},
+  {(bigint) standard___kernel___Object___object_id},
+  {(bigint) standard___kernel___Object___is_same_type},
+  {(bigint) standard___kernel___Object_____eqeq},
+  {(bigint) standard___kernel___Object_____neq},
+  {(bigint) standard___kernel___Object___output},
+  {(bigint) standard___kernel___Object___output_class_name},
+  {(bigint) standard___kernel___Object___exit},
+  {(bigint) standard___kernel___Object___sys},
+  {(bigint) standard___file___Object___printn},
+  {(bigint) standard___file___Object___print},
+  {(bigint) standard___file___Object___getc},
+  {(bigint) standard___file___Object___gets},
+  {(bigint) standard___file___Object___stdin},
+  {(bigint) standard___file___Object___stdout},
+  {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___string___Object___native_class_name},
+  {(bigint) standard___string___Object___class_name},
+  {(bigint) standard___string___Object___inspect},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) 1 /* 50: OptionContext < OptionContext: superclass init_table position */},
+  {(bigint) opts___OptionContext___options},
+  {(bigint) opts___OptionContext___rest},
+  {(bigint) opts___OptionContext___usage},
+  {(bigint) opts___OptionContext___parse},
+  {(bigint) opts___OptionContext___parse_intern},
+  {(bigint) opts___OptionContext___add_option},
+  {(bigint) opts___OptionContext___init},
+  {(bigint) opts___OptionContext___build},
+};
+/* 0: Pointer to the classtable */
+/* 1: Object_id */
+/* 2: Attribute OptionContext::_options */
+/* 3: Attribute OptionContext::_rest */
+/* 4: Attribute OptionContext::_optmap */
+void INIT_ATTRIBUTES__opts___OptionContext(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__opts___OptionContext;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+}
+val_t NEW_opts___OptionContext(void)
+{
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_opts___OptionContext;
+  obj[1].object_id = object_id_counter;
+  object_id_counter = object_id_counter + 1;
+  return OBJ2VAL(obj);
+}
+void CHECKNEW_opts___OptionContext(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_nitc;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_opts___OptionContext;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_cc_lib_paths", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_options", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____cc_include_paths(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_opts___OptionContext____rest(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_cc_include_paths", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_rest", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____ext_prefix(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_opts___OptionContext____optmap(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_ext_prefix", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_optmap", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ToolContext_mmloader___ToolContext___init(void){
+val_t NEW_OptionContext_opts___OptionContext___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[3] = {0, 0, 0};
+  int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 16;
-  fra.me.meth = LOCATE_NEW_ToolContext_mmloader___ToolContext___init;
+  fra.me.line = 256;
+  fra.me.meth = LOCATE_NEW_OptionContext_opts___OptionContext___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./separate_options.nit:16 */
-  fra.me.REG[0] = NEW_mmloader___ToolContext();
-  INIT_ATTRIBUTES__mmloader___ToolContext(fra.me.REG[0]);
-  separate_options___ToolContext___init(fra.me.REG[0], init_table);
-  CHECKNEW_mmloader___ToolContext(fra.me.REG[0]);
+  /* ../lib/opts.nit:256 */
+  fra.me.REG[0] = NEW_opts___OptionContext();
+  INIT_ATTRIBUTES__opts___OptionContext(fra.me.REG[0]);
+  opts___OptionContext___init(fra.me.REG[0], init_table);
+  CHECKNEW_opts___OptionContext(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_mmloader___ModuleLoader[58] = {
-  {(bigint) 127 /* 0: Identity */},
-  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ModuleLoader" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ModuleLoader < Object: superclass typecheck marker */},
-  {(bigint) 127 /* 4: ModuleLoader < ModuleLoader: superclass typecheck marker */},
+const classtable_elt_t VFT_toolcontext___Message[71] = {
+  {(bigint) 2159 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "Message" /* 2: Class Name */},
+  {(bigint) 3 /* 3: Message < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 271 /* 5: Message < Comparable: superclass typecheck marker */},
+  {(bigint) 2159 /* 6: Message < Message: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -140544,7 +135729,7 @@ const classtable_elt_t VFT_mmloader___ModuleLoader[58] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ModuleLoader < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: Message < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -140560,7 +135745,9 @@ const classtable_elt_t VFT_mmloader___ModuleLoader[58] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) toolcontext___Message___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -140573,79 +135760,104 @@ const classtable_elt_t VFT_mmloader___ModuleLoader[58] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ModuleLoader < ModuleLoader: superclass init_table position */},
-  {(bigint) 155 /* 48: VT ModuleLoader::MODULE : id of MMModule */},
-  {(bigint) 4 /* 49: VT ModuleLoader::MODULE : color of MMModule */},
-  {(bigint) mmloader___ModuleLoader___file_type},
-  {(bigint) mmloader___ModuleLoader___try_to_load_dir},
-  {(bigint) mmloader___ModuleLoader___can_handle},
-  {(bigint) mmloader___ModuleLoader___load_and_process_module},
-  {(bigint) mmloader___ModuleLoader___load_module},
-  {(bigint) mmloader___ModuleLoader___parse_file},
-  {(bigint) mmloader___ModuleLoader___process_metamodel},
-  {(bigint) mmloader___ModuleLoader___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 0 /* 55: Message < Comparable: superclass init_table position */},
+  {(bigint) 2159 /* 56: VT Message::OTHER : id of Message */},
+  {(bigint) 6 /* 57: VT Message::OTHER : color of Message */},
+  {(bigint) toolcontext___Message_____l},
+  {(bigint) standard___kernel___Comparable_____leq},
+  {(bigint) standard___kernel___Comparable_____geq},
+  {(bigint) standard___kernel___Comparable_____g},
+  {(bigint) standard___kernel___Comparable_____leqg},
+  {(bigint) standard___kernel___Comparable___is_between},
+  {(bigint) standard___kernel___Comparable___max},
+  {(bigint) standard___kernel___Comparable___min},
+  {(bigint) 2 /* 66: Message < Message: superclass init_table position */},
+  {(bigint) toolcontext___Message___location},
+  {(bigint) toolcontext___Message___text},
+  {(bigint) toolcontext___Message___to_color_string},
+  {(bigint) toolcontext___Message___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-void INIT_ATTRIBUTES__mmloader___ModuleLoader(val_t p0){
+/* 2: Attribute Message::_location */
+/* 3: Attribute Message::_text */
+void INIT_ATTRIBUTES__toolcontext___Message(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__mmloader___ModuleLoader;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__toolcontext___Message;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_mmloader___ModuleLoader(void)
+val_t NEW_toolcontext___Message(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_mmloader___ModuleLoader;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_toolcontext___Message;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_mmloader___ModuleLoader(val_t p0){
+void CHECKNEW_toolcontext___Message(val_t p0){
   struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_mmloader___ModuleLoader;
+  fra.me.meth = LOCATE_CHECKNEW_toolcontext___Message;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_toolcontext___Message____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_text", LOCATE_nitc, 0);
+  }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ModuleLoader_mmloader___ModuleLoader___init(void){
-  struct {struct stack_frame_t me;} fra;
+val_t NEW_Message_toolcontext___Message___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  int init_table[2] = {0, 0};
+  int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ModuleLoader_mmloader___ModuleLoader___init;
+  fra.me.meth = LOCATE_NEW_Message_toolcontext___Message___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
+  fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_mmloader___ModuleLoader();
-  INIT_ATTRIBUTES__mmloader___ModuleLoader(fra.me.REG[0]);
-  mmloader___ModuleLoader___init(fra.me.REG[0], init_table);
-  CHECKNEW_mmloader___ModuleLoader(fra.me.REG[0]);
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = NEW_toolcontext___Message();
+  INIT_ATTRIBUTES__toolcontext___Message(fra.me.REG[2]);
+  toolcontext___Message___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_toolcontext___Message(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_syntax___syntax_base___MMSrcModule[99] = {
-  {(bigint) 2159 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___syntax_base___MMSrcModule[102] = {
+  {(bigint) 2195 /* 0: Identity */},
   {(bigint) 23 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MMSrcModule" /* 2: Class Name */},
   {(bigint) 3 /* 3: MMSrcModule < Object: superclass typecheck marker */},
-  {(bigint) 155 /* 4: MMSrcModule < MMModule: superclass typecheck marker */},
-  {(bigint) 2159 /* 5: MMSrcModule < MMSrcModule: superclass typecheck marker */},
+  {(bigint) 151 /* 4: MMSrcModule < MMModule: superclass typecheck marker */},
+  {(bigint) 2195 /* 5: MMSrcModule < MMSrcModule: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -140658,7 +135870,7 @@ const classtable_elt_t VFT_syntax___syntax_base___MMSrcModule[99] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMSrcModule < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: MMSrcModule < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -140674,6 +135886,8 @@ const classtable_elt_t VFT_syntax___syntax_base___MMSrcModule[99] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) metamodel___abstractmetamodel___MMModule___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -140696,7 +135910,7 @@ const classtable_elt_t VFT_syntax___syntax_base___MMSrcModule[99] = {
   {(bigint) metamodel___inheritance___MMModule___import_local_classes},
   {(bigint) metamodel___static_type___MMModule___type_none},
   {(bigint) metamodel___static_type___MMModule___type_bool},
-  {(bigint) 1 /* 56: MMSrcModule < MMModule: superclass init_table position */},
+  {(bigint) 0 /* 59: MMSrcModule < MMModule: superclass init_table position */},
   {(bigint) metamodel___abstractmetamodel___MMModule___context},
   {(bigint) metamodel___abstractmetamodel___MMModule___name},
   {(bigint) metamodel___abstractmetamodel___MMModule___full_name},
@@ -140732,7 +135946,7 @@ const classtable_elt_t VFT_syntax___syntax_base___MMSrcModule[99] = {
   {(bigint) syntax___MMSrcModule___process_syntax},
   {(bigint) syntax___mmbuilder___MMSrcModule___do_mmbuilder},
   {(bigint) syntax___mmbuilder___MMSrcModule___process_default_classes},
-  {(bigint) 2 /* 92: MMSrcModule < MMSrcModule: superclass init_table position */},
+  {(bigint) 2 /* 95: MMSrcModule < MMSrcModule: superclass init_table position */},
   {(bigint) syntax___syntax_base___MMSrcModule___clear_ast},
   {(bigint) syntax___syntax_base___MMSrcModule___node},
   {(bigint) syntax___syntax_base___MMSrcModule___src_local_classes},
@@ -140777,45 +135991,45 @@ void INIT_ATTRIBUTES__syntax___syntax_base___MMSrcModule(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:29 */
+  /* syntax/syntax_base.nit:29 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_syntax___syntax_base___MMSrcModule____nodes(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:130 */
+  /* metamodel/abstractmetamodel.nit:130 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_metamodel___abstractmetamodel___MMModule____global_classes(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:154 */
+  /* metamodel/abstractmetamodel.nit:154 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_metamodel___abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:151 */
+  /* metamodel/abstractmetamodel.nit:151 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_metamodel___abstractmetamodel___MMModule____local_class_by_global(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//static_type.nit:534 */
+  /* metamodel/static_type.nit:534 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./metamodel//static_type.nit:535 */
+  /* metamodel/static_type.nit:535 */
   fra.me.REG[1] = NEW_MMTypeNone_metamodel___static_type___MMTypeNone___init(fra.me.REG[1]);
   ATTR_metamodel___static_type___MMModule____type_none(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:133 */
+  /* metamodel/abstractmetamodel.nit:133 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_metamodel___abstractmetamodel___MMModule____local_classes(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:136 */
+  /* metamodel/abstractmetamodel.nit:136 */
   fra.me.REG[1] = NEW_PartialOrder_metamodel___partial_order___PartialOrder___init();
   ATTR_metamodel___abstractmetamodel___MMModule____class_specialization_hierarchy(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:139 */
+  /* metamodel/abstractmetamodel.nit:139 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_metamodel___abstractmetamodel___MMModule____intrude_modules(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:142 */
+  /* metamodel/abstractmetamodel.nit:142 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_metamodel___abstractmetamodel___MMModule____public_modules(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:145 */
+  /* metamodel/abstractmetamodel.nit:145 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_metamodel___abstractmetamodel___MMModule____private_modules(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:148 */
+  /* metamodel/abstractmetamodel.nit:148 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_metamodel___abstractmetamodel___MMModule____explicit_imported_modules(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:159 */
+  /* metamodel/abstractmetamodel.nit:159 */
   REGB0 = TAG_Bool(false);
   ATTR_metamodel___abstractmetamodel___MMModule_____atis_extern_hybrid(fra.me.REG[0]) = REGB0;
-  /* ./compiling//table_computation.nit:398 */
+  /* compiling/table_computation.nit:398 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_compiling___table_computation___MMModule____local_table(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -140956,7 +136170,7 @@ val_t NEW_MMSrcModule_syntax___syntax_base___MMSrcModule___init(val_t p0, val_t
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./syntax//syntax_base.nit:40 */
+  /* syntax/syntax_base.nit:40 */
   fra.me.REG[5] = NEW_syntax___syntax_base___MMSrcModule();
   INIT_ATTRIBUTES__syntax___syntax_base___MMSrcModule(fra.me.REG[5]);
   syntax___syntax_base___MMSrcModule___init(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], init_table);
@@ -140964,576 +136178,27 @@ val_t NEW_MMSrcModule_syntax___syntax_base___MMSrcModule___init(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[5];
 }
-const classtable_elt_t VFT_syntax___syntax_base___MMSrcLocalClass[129] = {
-  {(bigint) 2843 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___syntax_base___MMSrcLocalClass[132] = {
+  {(bigint) 2603 /* 0: Identity */},
   {(bigint) 30 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MMSrcLocalClass" /* 2: Class Name */},
   {(bigint) 3 /* 3: MMSrcLocalClass < Object: superclass typecheck marker */},
-  {(bigint) 163 /* 4: MMSrcLocalClass < MMLocalClass: superclass typecheck marker */},
-  {(bigint) 2191 /* 5: MMSrcLocalClass < MMConcreteClass: superclass typecheck marker */},
-  {(bigint) 2843 /* 6: MMSrcLocalClass < MMSrcLocalClass: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMSrcLocalClass < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) abstracttool___MMLocalClass___dump_properties},
-  {(bigint) syntax___mmbuilder___MMSrcLocalClass___accept_class_visitor},
-  {(bigint) syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor},
-  {(bigint) primitive_info___MMLocalClass___primitive_info},
-  {(bigint) primitive_info___MMLocalClass___primitive_ctypes},
-  {(bigint) metamodel___genericity___MMLocalClass___get_formal},
-  {(bigint) metamodel___genericity___MMLocalClass___register_formal},
-  {(bigint) metamodel___genericity___MMLocalClass___get_instantiate_type},
-  {(bigint) metamodel___genericity___MMLocalClass___formals_types},
-  {(bigint) metamodel___static_type___MMLocalClass___get_type},
-  {(bigint) metamodel___genericity___MMLocalClass___is_generic},
-  {(bigint) metamodel___inheritance___MMLocalClass___compute_super_classes},
-  {(bigint) metamodel___inheritance___MMLocalClass___compute_ancestors},
-  {(bigint) metamodel___inheritance___MMLocalClass___inherit_global_properties},
-  {(bigint) metamodel___inheritance___MMLocalClass___make_visible_an_inherited_global_property},
-  {(bigint) metamodel___inheritance___MMLocalClass___add_direct_parent},
-  {(bigint) metamodel___inheritance___MMLocalClass___computed_super_classes},
-  {(bigint) metamodel___inheritance___MMLocalClass___computed_ancestors},
-  {(bigint) metamodel___inheritance___MMLocalClass___ancestor_for},
-  {(bigint) metamodel___inheritance___MMLocalClass___add_default_any_class},
-  {(bigint) metamodel___inheritance___MMLocalClass___add_super_classes},
-  {(bigint) metamodel___inheritance___MMLocalClass___add_explicit_classes},
-  {(bigint) metamodel___inheritance___MMLocalClass___compute_super_parents},
-  {(bigint) metamodel___inheritance___MMLocalClass___build_ancestors},
-  {(bigint) metamodel___inheritance___MMLocalClass___group_ancestors},
-  {(bigint) metamodel___inheritance___MMLocalClass___merge_ancestors},
-  {(bigint) metamodel___inheritance___MMLocalClass___inherit_local_property},
-  {(bigint) metamodel___genericity___MMLocalClass___get_type},
-  {(bigint) metamodel___static_type___MMLocalClass___add_ancestor},
-  {(bigint) metamodel___static_type___MMLocalClass___ancestors},
-  {(bigint) metamodel___static_type___MMLocalClass___ancestor},
-  {(bigint) 1 /* 78: MMSrcLocalClass < MMLocalClass: superclass init_table position */},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___arity},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___mmmodule},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___crhe},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___cshe},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___che},
-  {(bigint) metamodel___inheritance___MMLocalClass___global_properties},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___local_local_properties},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___init},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___for_module},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___new_global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___set_global},
-  {(bigint) metamodel___inheritance___MMLocalClass___has_global_property_by_name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___get_property_by_name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___attribute},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___method},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___select_method},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___select_attribute},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___super_methods_named},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___register_local_property},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___register_global_property},
-  {(bigint) metamodel___inheritance___MMLocalClass___has_global_property},
-  {(bigint) metamodel___inheritance___MMLocalClass_____bra},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___context},
-  {(bigint) metamodel___abstractmetamodel___MMLocalClass___total_order_compare},
-  {(bigint) metamodel___virtualtype___MMLocalClass___virtual_type},
-  {(bigint) metamodel___virtualtype___MMLocalClass___select_virtual_type},
-  {(bigint) native_interface___frontier___MMLocalClass___compile_defaut_extern_type},
-  {(bigint) compiling___icode_generator___MMLocalClass___generate_icode_file},
-  {(bigint) compiling___compiling_base___MMLocalClass___cname},
-  {(bigint) program___MMLocalClass___init_var_iroutine},
-  {(bigint) program___MMLocalClass___init_var_iroutine__eq},
-  {(bigint) program___MMLocalClass___checknew_iroutine},
-  {(bigint) program___MMLocalClass___checknew_iroutine__eq},
-  {(bigint) program___MMLocalClass___new_instance_iroutine},
-  {(bigint) compiling___compiling_global___MMLocalClass___declare_tables_to_c},
-  {(bigint) compiling___compiling_global___MMLocalClass___compile_tables_to_c},
-  {(bigint) compiling___table_computation___MMConcreteClass___class_color_pos},
-  {(bigint) compiling___table_computation___MMConcreteClass___class_layout},
-  {(bigint) compiling___table_computation___MMConcreteClass___instance_layout},
-  {(bigint) compiling___table_computation___MMConcreteClass___build_layout_in},
-  {(bigint) 2 /* 121: MMSrcLocalClass < MMConcreteClass: superclass init_table position */},
-  {(bigint) syntax___mmbuilder___MMSrcLocalClass___process_default_constructors},
-  {(bigint) syntax___mmbuilder___MMSrcLocalClass___add_src_local_property},
-  {(bigint) 3 /* 124: MMSrcLocalClass < MMSrcLocalClass: superclass init_table position */},
-  {(bigint) syntax___syntax_base___MMSrcLocalClass___node},
-  {(bigint) syntax___syntax_base___MMSrcLocalClass___formal_dict},
-  {(bigint) syntax___syntax_base___MMSrcLocalClass___src_local_properties},
-  {(bigint) syntax___syntax_base___MMSrcLocalClass___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute MMSrcLocalClass::_primitive_info_cache */
-/* 3: Attribute MMSrcLocalClass::_primitive_info_b */
-/* 4: Attribute MMSrcLocalClass::_types */
-/* 5: Attribute MMSrcLocalClass::_formals_types */
-/* 6: Attribute MMSrcLocalClass::_direct_parents */
-/* 7: Attribute MMSrcLocalClass::_computing_super */
-/* 8: Attribute MMSrcLocalClass::_are_global_properties_inherited */
-/* 9: Attribute MMSrcLocalClass::_base_type_cache */
-/* 10: Attribute MMSrcLocalClass::_ancestors */
-/* 11: Attribute MMSrcLocalClass::_name */
-/* 12: Attribute MMSrcLocalClass::_arity */
-/* 13: Attribute MMSrcLocalClass::_mmmodule */
-/* 14: Attribute MMSrcLocalClass::_global */
-/* 15: Attribute MMSrcLocalClass::_crhe */
-/* 16: Attribute MMSrcLocalClass::_cshe */
-/* 17: Attribute MMSrcLocalClass::_che */
-/* 18: Attribute MMSrcLocalClass::_local_property_by_global */
-/* 19: Attribute MMSrcLocalClass::_global_properties */
-/* 20: Attribute MMSrcLocalClass::_local_local_properties */
-/* 21: Attribute MMSrcLocalClass::_properties_by_name */
-/* 22: Attribute MMSrcLocalClass::_init_var_iroutine */
-/* 23: Attribute MMSrcLocalClass::_checknew_iroutine */
-/* 24: Attribute MMSrcLocalClass::_new_instance_iroutine */
-/* 25: Attribute MMSrcLocalClass::_class_color_pos */
-/* 26: Attribute MMSrcLocalClass::_class_layout */
-/* 27: Attribute MMSrcLocalClass::_instance_layout */
-/* 28: Attribute MMSrcLocalClass::_formal_dict */
-/* 29: Attribute MMSrcLocalClass::_src_local_properties */
-void INIT_ATTRIBUTES__syntax___syntax_base___MMSrcLocalClass(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___MMSrcLocalClass;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:91 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_syntax___syntax_base___MMSrcLocalClass____formal_dict(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:361 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:364 */
-  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:367 */
-  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_metamodel___abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:370 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//genericity.nit:41 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_metamodel___genericity___MMLocalClass____types(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//genericity.nit:55 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_metamodel___genericity___MMLocalClass____formals_types(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//inheritance.nit:82 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_metamodel___inheritance___MMLocalClass____direct_parents(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//inheritance.nit:86 */
-  REGB0 = TAG_Bool(false);
-  ATTR_metamodel___inheritance___MMLocalClass____computing_super(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//inheritance.nit:133 */
-  REGB0 = TAG_Bool(false);
-  ATTR_metamodel___inheritance___MMLocalClass____are_global_properties_inherited(fra.me.REG[0]) = REGB0;
-  /* ./primitive_info.nit:25 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./primitive_info.nit:29 */
-  REGB0 = TAG_Bool(false);
-  ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB0;
-  /* ./compiling//table_computation.nit:90 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_compiling___table_computation___MMConcreteClass____class_layout(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//table_computation.nit:93 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_compiling___table_computation___MMConcreteClass____instance_layout(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./program.nit:227 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_program___MMLocalClass____init_var_iroutine(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./program.nit:229 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_program___MMLocalClass____checknew_iroutine(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./program.nit:234 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_program___MMLocalClass____new_instance_iroutine(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_syntax___syntax_base___MMSrcLocalClass(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 30);
-  obj->vft = (classtable_elt_t*)VFT_syntax___syntax_base___MMSrcLocalClass;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_syntax___syntax_base___MMSrcLocalClass(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_syntax___syntax_base___MMSrcLocalClass;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMSrcLocalClass____formal_dict(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_formal_dict", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMSrcLocalClass____src_local_properties(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_src_local_properties", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____name(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_name", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____arity(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_arity", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_local_property_by_global", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_global_properties", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_local_local_properties", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____types(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_types", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____formals_types(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_formals_types", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____direct_parents(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_direct_parents", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____computing_super(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_computing_super", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____are_global_properties_inherited(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_are_global_properties_inherited", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_primitive_info_b", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMConcreteClass____class_layout(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_class_layout", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMConcreteClass____instance_layout(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_instance_layout", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_program___MMLocalClass____new_instance_iroutine(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_new_instance_iroutine", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(val_t p0, val_t p1, val_t p2, val_t p3){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t REGB0;
-  val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 96;
-  fra.me.meth = LOCATE_NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  REGB0 = p3;
-  /* ./syntax//syntax_base.nit:96 */
-  fra.me.REG[3] = NEW_syntax___syntax_base___MMSrcLocalClass();
-  INIT_ATTRIBUTES__syntax___syntax_base___MMSrcLocalClass(fra.me.REG[3]);
-  syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, init_table);
-  CHECKNEW_syntax___syntax_base___MMSrcLocalClass(fra.me.REG[3]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[3];
-}
-const classtable_elt_t VFT_syntax___syntax_base___MMSrcAttribute[75] = {
-  {(bigint) 2847 /* 0: Identity */},
-  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMSrcAttribute" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMSrcAttribute < Object: superclass typecheck marker */},
-  {(bigint) 159 /* 4: MMSrcAttribute < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2195 /* 5: MMSrcAttribute < MMAttribute: superclass typecheck marker */},
-  {(bigint) 2847 /* 6: MMSrcAttribute < MMSrcAttribute: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) 159 /* 4: MMSrcLocalClass < MMLocalClass: superclass typecheck marker */},
+  {(bigint) 2227 /* 5: MMSrcLocalClass < MMConcreteClass: superclass typecheck marker */},
+  {(bigint) 2603 /* 6: MMSrcLocalClass < MMSrcLocalClass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMSrcAttribute < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___MMLocalProperty___accept_property_visitor},
-  {(bigint) syntax___syntax_base___MMSrcAttribute___node},
-  {(bigint) syntax___syntax_base___MMLocalProperty___is_init},
-  {(bigint) metamodel___inheritance___MMLocalProperty___inherit_global},
-  {(bigint) metamodel___static_type___MMLocalProperty___signature},
-  {(bigint) metamodel___static_type___MMLocalProperty___signature__eq},
-  {(bigint) metamodel___static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 54: MMSrcAttribute < MMLocalProperty: superclass init_table position */},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___local_class},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___is_global_set},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___prhe},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___mmmodule},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___full_name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___set_global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___new_global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___need_super},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___need_super__eq},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___init},
-  {(bigint) compiling___compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling___compiling_base___MMLocalProperty___super_meth_call},
-  {(bigint) syntax___icode_generation___MMSrcAttribute___iroutine},
-  {(bigint) 2 /* 70: MMSrcAttribute < MMAttribute: superclass init_table position */},
-  {(bigint) syntax___icode_generation___MMSrcAttribute___iroutine__eq},
-  {(bigint) syntax___icode_generation___MMSrcAttribute___generate_iroutine},
-  {(bigint) 3 /* 73: MMSrcAttribute < MMSrcAttribute: superclass init_table position */},
-  {(bigint) syntax___syntax_base___MMSrcAttribute___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute MMSrcAttribute::_signature */
-/* 3: Attribute MMSrcAttribute::_signatures_cache */
-/* 4: Attribute MMSrcAttribute::_name */
-/* 5: Attribute MMSrcAttribute::_local_class */
-/* 6: Attribute MMSrcAttribute::_global */
-/* 7: Attribute MMSrcAttribute::_prhe */
-/* 8: Attribute MMSrcAttribute::_need_super */
-/* 9: Attribute MMSrcAttribute::_cname_cache */
-/* 10: Attribute MMSrcAttribute::_iroutine */
-void INIT_ATTRIBUTES__syntax___syntax_base___MMSrcAttribute(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___MMSrcAttribute;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:649 */
-  REGB0 = TAG_Bool(false);
-  ATTR_metamodel___abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//static_type.nit:56 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_syntax___syntax_base___MMSrcAttribute(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 11);
-  obj->vft = (classtable_elt_t*)VFT_syntax___syntax_base___MMSrcAttribute;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_syntax___syntax_base___MMSrcAttribute(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_syntax___syntax_base___MMSrcAttribute;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_name", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_need_super", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_signatures_cache", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_MMSrcAttribute_syntax___syntax_base___MMSrcAttribute___init(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 139;
-  fra.me.meth = LOCATE_NEW_MMSrcAttribute_syntax___syntax_base___MMSrcAttribute___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:139 */
-  fra.me.REG[3] = NEW_syntax___syntax_base___MMSrcAttribute();
-  INIT_ATTRIBUTES__syntax___syntax_base___MMSrcAttribute(fra.me.REG[3]);
-  syntax___syntax_base___MMSrcAttribute___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  CHECKNEW_syntax___syntax_base___MMSrcAttribute(fra.me.REG[3]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[3];
-}
-const classtable_elt_t VFT_syntax___syntax_base___MMSrcMethod[101] = {
-  {(bigint) 2839 /* 0: Identity */},
-  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMSrcMethod" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMSrcMethod < Object: superclass typecheck marker */},
-  {(bigint) 159 /* 4: MMSrcMethod < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2179 /* 5: MMSrcMethod < MMMethod: superclass typecheck marker */},
-  {(bigint) 2839 /* 6: MMSrcMethod < MMSrcMethod: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMSrcMethod < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: MMSrcLocalClass < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -141549,184 +136214,353 @@ const classtable_elt_t VFT_syntax___syntax_base___MMSrcMethod[101] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___MMLocalProperty___accept_property_visitor},
-  {(bigint) syntax___syntax_base___MMLocalProperty___node},
-  {(bigint) syntax___syntax_base___MMLocalProperty___is_init},
-  {(bigint) metamodel___inheritance___MMLocalProperty___inherit_global},
-  {(bigint) metamodel___static_type___MMLocalProperty___signature},
-  {(bigint) metamodel___static_type___MMLocalProperty___signature__eq},
-  {(bigint) metamodel___static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 54: MMSrcMethod < MMLocalProperty: superclass init_table position */},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___local_class},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___is_global_set},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___prhe},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___mmmodule},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___full_name},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___set_global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___new_global},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___need_super},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___need_super__eq},
-  {(bigint) metamodel___abstractmetamodel___MMLocalProperty___init},
-  {(bigint) compiling___compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling___compiling_base___MMLocalProperty___super_meth_call},
-  {(bigint) native_interface___ni_metamodel___MMMethod___local_friendly_name_from},
-  {(bigint) native_interface___ni_metamodel___MMMethod___friendly_super_cname},
-  {(bigint) native_interface___ni_metamodel___MMMethod___local_friendly_super_name_from},
-  {(bigint) native_interface___ni_metamodel___MMMethod___friendly_cparams},
-  {(bigint) native_interface___ni_metamodel___MMMethod___csignature_with_suffix},
-  {(bigint) native_interface___ni_metamodel___MMMethod___csignature_with_name},
-  {(bigint) native_interface___ni_metamodel___MMMethod___friendly_csignature},
-  {(bigint) native_interface___ni_metamodel___MMMethod___frontier_csignature_from},
-  {(bigint) native_interface___ni_metamodel___MMMethod___friendly_super_csignature},
-  {(bigint) native_interface___ni_metamodel___MMMethod___frontier_super_csignature_from},
-  {(bigint) native_interface___ni_metamodel___MMMethod___impl_csignature},
-  {(bigint) native_interface___ni_metamodel___MMMethod___cparams},
-  {(bigint) native_interface___ni_metamodel___MMMethod___out_csignature},
-  {(bigint) compiling___icode_generator___MMMethod___generate_icode},
-  {(bigint) primitive_info___MMMethod___default_extern_name},
-  {(bigint) primitive_info___MMMethod___friendly_extern_name},
-  {(bigint) metamodel___static_type___MMMethod___explicit_casts},
-  {(bigint) 2 /* 86: MMSrcMethod < MMMethod: superclass init_table position */},
-  {(bigint) syntax___syntax_base___MMSrcMethod___is_intern},
-  {(bigint) syntax___syntax_base___MMSrcMethod___is_abstract},
-  {(bigint) syntax___syntax_base___MMSrcMethod___is_extern},
-  {(bigint) syntax___syntax_base___MMSrcMethod___extern_name},
-  {(bigint) metamodel___abstractmetamodel___MMMethod___explicit_imports},
-  {(bigint) syntax___icode_generation___MMSrcMethod___iroutine},
-  {(bigint) compiling___compiling_global___MMMethod___compile_property_to_c},
-  {(bigint) native_interface___frontier___MMSrcMethod___compile_extern_to_frontier},
-  {(bigint) native_interface___frontier___MMSrcMethod___compile_super_to_frontier},
-  {(bigint) native_interface___frontier___MMSrcMethod___compile_out_to_frontier},
-  {(bigint) syntax___icode_generation___MMSrcMethod___iroutine__eq},
-  {(bigint) syntax___icode_generation___MMSrcMethod___generate_iroutine},
-  {(bigint) syntax___icode_generation___MMSrcMethod___inner_generate_iroutine},
-  {(bigint) 3 /* 100: MMSrcMethod < MMSrcMethod: superclass init_table position */},
+  {(bigint) standard___string___Object___inspect_head},
+  {(bigint) standard___string___Object___args},
+  {(bigint) standard___hash___Object___hash},
+  {(bigint) standard___math___Object___atan2},
+  {(bigint) standard___math___Object___pi},
+  {(bigint) standard___math___Object___srand_from},
+  {(bigint) standard___math___Object___srand},
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) abstracttool___MMLocalClass___dump_properties},
+  {(bigint) syntax___mmbuilder___MMSrcLocalClass___accept_class_visitor},
+  {(bigint) syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor},
+  {(bigint) primitive_info___MMLocalClass___primitive_info},
+  {(bigint) primitive_info___MMLocalClass___primitive_ctypes},
+  {(bigint) metamodel___genericity___MMLocalClass___get_formal},
+  {(bigint) metamodel___genericity___MMLocalClass___register_formal},
+  {(bigint) metamodel___genericity___MMLocalClass___get_instantiate_type},
+  {(bigint) metamodel___genericity___MMLocalClass___formals_types},
+  {(bigint) metamodel___static_type___MMLocalClass___get_type},
+  {(bigint) metamodel___genericity___MMLocalClass___is_generic},
+  {(bigint) metamodel___inheritance___MMLocalClass___compute_super_classes},
+  {(bigint) metamodel___inheritance___MMLocalClass___compute_ancestors},
+  {(bigint) metamodel___inheritance___MMLocalClass___inherit_global_properties},
+  {(bigint) metamodel___inheritance___MMLocalClass___make_visible_an_inherited_global_property},
+  {(bigint) metamodel___inheritance___MMLocalClass___add_direct_parent},
+  {(bigint) metamodel___inheritance___MMLocalClass___computed_super_classes},
+  {(bigint) metamodel___inheritance___MMLocalClass___computed_ancestors},
+  {(bigint) metamodel___inheritance___MMLocalClass___ancestor_for},
+  {(bigint) metamodel___inheritance___MMLocalClass___add_default_any_class},
+  {(bigint) metamodel___inheritance___MMLocalClass___add_super_classes},
+  {(bigint) metamodel___inheritance___MMLocalClass___add_explicit_classes},
+  {(bigint) metamodel___inheritance___MMLocalClass___compute_super_parents},
+  {(bigint) metamodel___inheritance___MMLocalClass___build_ancestors},
+  {(bigint) metamodel___inheritance___MMLocalClass___group_ancestors},
+  {(bigint) metamodel___inheritance___MMLocalClass___merge_ancestors},
+  {(bigint) metamodel___inheritance___MMLocalClass___inherit_local_property},
+  {(bigint) metamodel___genericity___MMLocalClass___get_type},
+  {(bigint) metamodel___static_type___MMLocalClass___add_ancestor},
+  {(bigint) metamodel___static_type___MMLocalClass___ancestors},
+  {(bigint) metamodel___static_type___MMLocalClass___ancestor},
+  {(bigint) 1 /* 81: MMSrcLocalClass < MMLocalClass: superclass init_table position */},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___name},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___arity},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___mmmodule},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___global},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___crhe},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___cshe},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___che},
+  {(bigint) metamodel___inheritance___MMLocalClass___global_properties},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___local_local_properties},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___init},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___for_module},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___new_global},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___set_global},
+  {(bigint) metamodel___inheritance___MMLocalClass___has_global_property_by_name},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___get_property_by_name},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___attribute},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___method},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___select_method},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___select_attribute},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___super_methods_named},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___register_local_property},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___register_global_property},
+  {(bigint) metamodel___inheritance___MMLocalClass___has_global_property},
+  {(bigint) metamodel___inheritance___MMLocalClass_____bra},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___context},
+  {(bigint) metamodel___abstractmetamodel___MMLocalClass___total_order_compare},
+  {(bigint) metamodel___virtualtype___MMLocalClass___virtual_type},
+  {(bigint) metamodel___virtualtype___MMLocalClass___select_virtual_type},
+  {(bigint) native_interface___frontier___MMLocalClass___compile_defaut_extern_type},
+  {(bigint) compiling___icode_generator___MMLocalClass___generate_icode_file},
+  {(bigint) compiling___compiling_base___MMLocalClass___cname},
+  {(bigint) program___MMLocalClass___init_var_iroutine},
+  {(bigint) program___MMLocalClass___init_var_iroutine__eq},
+  {(bigint) program___MMLocalClass___checknew_iroutine},
+  {(bigint) program___MMLocalClass___checknew_iroutine__eq},
+  {(bigint) program___MMLocalClass___new_instance_iroutine},
+  {(bigint) compiling___compiling_global___MMLocalClass___declare_tables_to_c},
+  {(bigint) compiling___compiling_global___MMLocalClass___compile_tables_to_c},
+  {(bigint) compiling___table_computation___MMConcreteClass___class_color_pos},
+  {(bigint) compiling___table_computation___MMConcreteClass___class_layout},
+  {(bigint) compiling___table_computation___MMConcreteClass___instance_layout},
+  {(bigint) compiling___table_computation___MMConcreteClass___build_layout_in},
+  {(bigint) 0 /* 124: MMSrcLocalClass < MMConcreteClass: superclass init_table position */},
+  {(bigint) syntax___mmbuilder___MMSrcLocalClass___process_default_constructors},
+  {(bigint) syntax___mmbuilder___MMSrcLocalClass___add_src_local_property},
+  {(bigint) 3 /* 127: MMSrcLocalClass < MMSrcLocalClass: superclass init_table position */},
+  {(bigint) syntax___syntax_base___MMSrcLocalClass___node},
+  {(bigint) syntax___syntax_base___MMSrcLocalClass___formal_dict},
+  {(bigint) syntax___syntax_base___MMSrcLocalClass___src_local_properties},
+  {(bigint) syntax___syntax_base___MMSrcLocalClass___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute MMSrcMethod::_signature */
-/* 3: Attribute MMSrcMethod::_signatures_cache */
-/* 4: Attribute MMSrcMethod::_name */
-/* 5: Attribute MMSrcMethod::_local_class */
-/* 6: Attribute MMSrcMethod::_global */
-/* 7: Attribute MMSrcMethod::_prhe */
-/* 8: Attribute MMSrcMethod::_need_super */
-/* 9: Attribute MMSrcMethod::_cname_cache */
-/* 10: Attribute MMSrcMethod::_iroutine */
-void INIT_ATTRIBUTES__syntax___syntax_base___MMSrcMethod(val_t p0){
+/* 2: Attribute MMSrcLocalClass::_primitive_info_cache */
+/* 3: Attribute MMSrcLocalClass::_primitive_info_b */
+/* 4: Attribute MMSrcLocalClass::_types */
+/* 5: Attribute MMSrcLocalClass::_formals_types */
+/* 6: Attribute MMSrcLocalClass::_direct_parents */
+/* 7: Attribute MMSrcLocalClass::_computing_super */
+/* 8: Attribute MMSrcLocalClass::_are_global_properties_inherited */
+/* 9: Attribute MMSrcLocalClass::_base_type_cache */
+/* 10: Attribute MMSrcLocalClass::_ancestors */
+/* 11: Attribute MMSrcLocalClass::_name */
+/* 12: Attribute MMSrcLocalClass::_arity */
+/* 13: Attribute MMSrcLocalClass::_mmmodule */
+/* 14: Attribute MMSrcLocalClass::_global */
+/* 15: Attribute MMSrcLocalClass::_crhe */
+/* 16: Attribute MMSrcLocalClass::_cshe */
+/* 17: Attribute MMSrcLocalClass::_che */
+/* 18: Attribute MMSrcLocalClass::_local_property_by_global */
+/* 19: Attribute MMSrcLocalClass::_global_properties */
+/* 20: Attribute MMSrcLocalClass::_local_local_properties */
+/* 21: Attribute MMSrcLocalClass::_properties_by_name */
+/* 22: Attribute MMSrcLocalClass::_init_var_iroutine */
+/* 23: Attribute MMSrcLocalClass::_checknew_iroutine */
+/* 24: Attribute MMSrcLocalClass::_new_instance_iroutine */
+/* 25: Attribute MMSrcLocalClass::_class_color_pos */
+/* 26: Attribute MMSrcLocalClass::_class_layout */
+/* 27: Attribute MMSrcLocalClass::_instance_layout */
+/* 28: Attribute MMSrcLocalClass::_formal_dict */
+/* 29: Attribute MMSrcLocalClass::_src_local_properties */
+void INIT_ATTRIBUTES__syntax___syntax_base___MMSrcLocalClass(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___MMSrcMethod;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___MMSrcLocalClass;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:649 */
+  /* syntax/syntax_base.nit:91 */
+  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
+  ATTR_syntax___syntax_base___MMSrcLocalClass____formal_dict(fra.me.REG[0]) = fra.me.REG[1];
+  /* metamodel/abstractmetamodel.nit:361 */
+  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
+  ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0]) = fra.me.REG[1];
+  /* metamodel/abstractmetamodel.nit:364 */
+  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
+  ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0]) = fra.me.REG[1];
+  /* metamodel/abstractmetamodel.nit:367 */
+  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
+  ATTR_metamodel___abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0]) = fra.me.REG[1];
+  /* metamodel/abstractmetamodel.nit:370 */
+  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
+  ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]) = fra.me.REG[1];
+  /* metamodel/genericity.nit:41 */
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_metamodel___genericity___MMLocalClass____types(fra.me.REG[0]) = fra.me.REG[1];
+  /* metamodel/genericity.nit:55 */
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_metamodel___genericity___MMLocalClass____formals_types(fra.me.REG[0]) = fra.me.REG[1];
+  /* metamodel/inheritance.nit:82 */
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_metamodel___inheritance___MMLocalClass____direct_parents(fra.me.REG[0]) = fra.me.REG[1];
+  /* metamodel/inheritance.nit:86 */
   REGB0 = TAG_Bool(false);
-  ATTR_metamodel___abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//static_type.nit:56 */
+  ATTR_metamodel___inheritance___MMLocalClass____computing_super(fra.me.REG[0]) = REGB0;
+  /* metamodel/inheritance.nit:133 */
+  REGB0 = TAG_Bool(false);
+  ATTR_metamodel___inheritance___MMLocalClass____are_global_properties_inherited(fra.me.REG[0]) = REGB0;
+  /* primitive_info.nit:25 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]) = fra.me.REG[1];
+  /* primitive_info.nit:29 */
+  REGB0 = TAG_Bool(false);
+  ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB0;
+  /* compiling/table_computation.nit:90 */
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_compiling___table_computation___MMConcreteClass____class_layout(fra.me.REG[0]) = fra.me.REG[1];
+  /* compiling/table_computation.nit:93 */
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_compiling___table_computation___MMConcreteClass____instance_layout(fra.me.REG[0]) = fra.me.REG[1];
+  /* program.nit:227 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_program___MMLocalClass____init_var_iroutine(fra.me.REG[0]) = fra.me.REG[1];
+  /* program.nit:229 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_program___MMLocalClass____checknew_iroutine(fra.me.REG[0]) = fra.me.REG[1];
+  /* program.nit:234 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
+  ATTR_program___MMLocalClass____new_instance_iroutine(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_syntax___syntax_base___MMSrcMethod(void)
+val_t NEW_syntax___syntax_base___MMSrcLocalClass(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 11);
-  obj->vft = (classtable_elt_t*)VFT_syntax___syntax_base___MMSrcMethod;
+  obj = alloc(sizeof(val_t) * 30);
+  obj->vft = (classtable_elt_t*)VFT_syntax___syntax_base___MMSrcLocalClass;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_syntax___syntax_base___MMSrcMethod(val_t p0){
+void CHECKNEW_syntax___syntax_base___MMSrcLocalClass(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_syntax___syntax_base___MMSrcMethod;
+  fra.me.meth = LOCATE_CHECKNEW_syntax___syntax_base___MMSrcLocalClass;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMSrcLocalClass____formal_dict(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_formal_dict", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMSrcLocalClass____src_local_properties(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_src_local_properties", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_name", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____arity(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_arity", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_need_super", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_signatures_cache", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_local_property_by_global", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_global_properties", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_local_local_properties", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____types(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_types", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____formals_types(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_formals_types", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____direct_parents(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_direct_parents", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____computing_super(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_computing_super", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____are_global_properties_inherited(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_are_global_properties_inherited", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_primitive_info_b", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMConcreteClass____class_layout(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_class_layout", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___table_computation___MMConcreteClass____instance_layout(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_instance_layout", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_program___MMLocalClass____new_instance_iroutine(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_new_instance_iroutine", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_MMSrcMethod_metamodel___abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+val_t NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(val_t p0, val_t p1, val_t p2, val_t p3){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 651;
-  fra.me.meth = LOCATE_NEW_MMSrcMethod_metamodel___abstractmetamodel___MMLocalProperty___init;
+  fra.me.line = 96;
+  fra.me.meth = LOCATE_NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
+  fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./metamodel//abstractmetamodel.nit:651 */
-  fra.me.REG[2] = NEW_syntax___syntax_base___MMSrcMethod();
-  INIT_ATTRIBUTES__syntax___syntax_base___MMSrcMethod(fra.me.REG[2]);
-  metamodel___abstractmetamodel___MMLocalProperty___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_syntax___syntax_base___MMSrcMethod(fra.me.REG[2]);
+  fra.me.REG[2] = p2;
+  REGB0 = p3;
+  /* syntax/syntax_base.nit:96 */
+  fra.me.REG[3] = NEW_syntax___syntax_base___MMSrcLocalClass();
+  INIT_ATTRIBUTES__syntax___syntax_base___MMSrcLocalClass(fra.me.REG[3]);
+  syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, init_table);
+  CHECKNEW_syntax___syntax_base___MMSrcLocalClass(fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_syntax___syntax_base___MMAttrImplementationMethod[103] = {
-  {(bigint) 3199 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___syntax_base___MMSrcAttribute[78] = {
+  {(bigint) 2607 /* 0: Identity */},
   {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "MMAttrImplementationMethod" /* 2: Class Name */},
-  {(bigint) 3 /* 3: MMAttrImplementationMethod < Object: superclass typecheck marker */},
-  {(bigint) 159 /* 4: MMAttrImplementationMethod < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2179 /* 5: MMAttrImplementationMethod < MMMethod: superclass typecheck marker */},
-  {(bigint) 2839 /* 6: MMAttrImplementationMethod < MMSrcMethod: superclass typecheck marker */},
-  {(bigint) 3199 /* 7: MMAttrImplementationMethod < MMAttrImplementationMethod: superclass typecheck marker */},
+  {(bigint) "MMSrcAttribute" /* 2: Class Name */},
+  {(bigint) 3 /* 3: MMSrcAttribute < Object: superclass typecheck marker */},
+  {(bigint) 155 /* 4: MMSrcAttribute < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 2231 /* 5: MMSrcAttribute < MMAttribute: superclass typecheck marker */},
+  {(bigint) 2607 /* 6: MMSrcAttribute < MMSrcAttribute: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -141737,7 +136571,7 @@ const classtable_elt_t VFT_syntax___syntax_base___MMAttrImplementationMethod[103
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMAttrImplementationMethod < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: MMSrcAttribute < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -141753,6 +136587,8 @@ const classtable_elt_t VFT_syntax___syntax_base___MMAttrImplementationMethod[103
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -141767,13 +136603,13 @@ const classtable_elt_t VFT_syntax___syntax_base___MMAttrImplementationMethod[103
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) syntax___mmbuilder___MMLocalProperty___accept_property_visitor},
-  {(bigint) syntax___syntax_base___MMAttrImplementationMethod___node},
+  {(bigint) syntax___syntax_base___MMSrcAttribute___node},
   {(bigint) syntax___syntax_base___MMLocalProperty___is_init},
   {(bigint) metamodel___inheritance___MMLocalProperty___inherit_global},
   {(bigint) metamodel___static_type___MMLocalProperty___signature},
   {(bigint) metamodel___static_type___MMLocalProperty___signature__eq},
   {(bigint) metamodel___static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 54: MMAttrImplementationMethod < MMLocalProperty: superclass init_table position */},
+  {(bigint) 1 /* 57: MMSrcAttribute < MMLocalProperty: superclass init_table position */},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___name},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___local_class},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___global},
@@ -141788,91 +136624,63 @@ const classtable_elt_t VFT_syntax___syntax_base___MMAttrImplementationMethod[103
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___init},
   {(bigint) compiling___compiling_base___MMLocalProperty___cname},
   {(bigint) compiling___compiling_base___MMLocalProperty___super_meth_call},
-  {(bigint) native_interface___ni_metamodel___MMMethod___local_friendly_name_from},
-  {(bigint) native_interface___ni_metamodel___MMMethod___friendly_super_cname},
-  {(bigint) native_interface___ni_metamodel___MMMethod___local_friendly_super_name_from},
-  {(bigint) native_interface___ni_metamodel___MMMethod___friendly_cparams},
-  {(bigint) native_interface___ni_metamodel___MMMethod___csignature_with_suffix},
-  {(bigint) native_interface___ni_metamodel___MMMethod___csignature_with_name},
-  {(bigint) native_interface___ni_metamodel___MMMethod___friendly_csignature},
-  {(bigint) native_interface___ni_metamodel___MMMethod___frontier_csignature_from},
-  {(bigint) native_interface___ni_metamodel___MMMethod___friendly_super_csignature},
-  {(bigint) native_interface___ni_metamodel___MMMethod___frontier_super_csignature_from},
-  {(bigint) native_interface___ni_metamodel___MMMethod___impl_csignature},
-  {(bigint) native_interface___ni_metamodel___MMMethod___cparams},
-  {(bigint) native_interface___ni_metamodel___MMMethod___out_csignature},
-  {(bigint) compiling___icode_generator___MMMethod___generate_icode},
-  {(bigint) primitive_info___MMMethod___default_extern_name},
-  {(bigint) primitive_info___MMMethod___friendly_extern_name},
-  {(bigint) metamodel___static_type___MMMethod___explicit_casts},
-  {(bigint) 2 /* 86: MMAttrImplementationMethod < MMMethod: superclass init_table position */},
-  {(bigint) syntax___syntax_base___MMSrcMethod___is_intern},
-  {(bigint) syntax___syntax_base___MMSrcMethod___is_abstract},
-  {(bigint) syntax___syntax_base___MMSrcMethod___is_extern},
-  {(bigint) syntax___syntax_base___MMSrcMethod___extern_name},
-  {(bigint) metamodel___abstractmetamodel___MMMethod___explicit_imports},
-  {(bigint) syntax___icode_generation___MMSrcMethod___iroutine},
-  {(bigint) compiling___compiling_global___MMMethod___compile_property_to_c},
-  {(bigint) native_interface___frontier___MMSrcMethod___compile_extern_to_frontier},
-  {(bigint) native_interface___frontier___MMSrcMethod___compile_super_to_frontier},
-  {(bigint) native_interface___frontier___MMSrcMethod___compile_out_to_frontier},
-  {(bigint) syntax___icode_generation___MMSrcMethod___iroutine__eq},
-  {(bigint) syntax___icode_generation___MMSrcMethod___generate_iroutine},
-  {(bigint) syntax___icode_generation___MMSrcMethod___inner_generate_iroutine},
-  {(bigint) 3 /* 100: MMAttrImplementationMethod < MMSrcMethod: superclass init_table position */},
-  {(bigint) 4 /* 101: MMAttrImplementationMethod < MMAttrImplementationMethod: superclass init_table position */},
-  {(bigint) syntax___syntax_base___MMAttrImplementationMethod___init},
+  {(bigint) syntax___icode_generation___MMSrcAttribute___iroutine},
+  {(bigint) 0 /* 73: MMSrcAttribute < MMAttribute: superclass init_table position */},
+  {(bigint) syntax___icode_generation___MMSrcAttribute___iroutine__eq},
+  {(bigint) syntax___icode_generation___MMSrcAttribute___generate_iroutine},
+  {(bigint) 3 /* 76: MMSrcAttribute < MMSrcAttribute: superclass init_table position */},
+  {(bigint) syntax___syntax_base___MMSrcAttribute___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute MMAttrImplementationMethod::_signature */
-/* 3: Attribute MMAttrImplementationMethod::_signatures_cache */
-/* 4: Attribute MMAttrImplementationMethod::_name */
-/* 5: Attribute MMAttrImplementationMethod::_local_class */
-/* 6: Attribute MMAttrImplementationMethod::_global */
-/* 7: Attribute MMAttrImplementationMethod::_prhe */
-/* 8: Attribute MMAttrImplementationMethod::_need_super */
-/* 9: Attribute MMAttrImplementationMethod::_cname_cache */
-/* 10: Attribute MMAttrImplementationMethod::_iroutine */
-void INIT_ATTRIBUTES__syntax___syntax_base___MMAttrImplementationMethod(val_t p0){
+/* 2: Attribute MMSrcAttribute::_signature */
+/* 3: Attribute MMSrcAttribute::_signatures_cache */
+/* 4: Attribute MMSrcAttribute::_name */
+/* 5: Attribute MMSrcAttribute::_local_class */
+/* 6: Attribute MMSrcAttribute::_global */
+/* 7: Attribute MMSrcAttribute::_prhe */
+/* 8: Attribute MMSrcAttribute::_need_super */
+/* 9: Attribute MMSrcAttribute::_cname_cache */
+/* 10: Attribute MMSrcAttribute::_iroutine */
+void INIT_ATTRIBUTES__syntax___syntax_base___MMSrcAttribute(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___MMAttrImplementationMethod;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___MMSrcAttribute;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:649 */
+  /* metamodel/abstractmetamodel.nit:649 */
   REGB0 = TAG_Bool(false);
   ATTR_metamodel___abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//static_type.nit:56 */
+  /* metamodel/static_type.nit:56 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_syntax___syntax_base___MMAttrImplementationMethod(void)
+val_t NEW_syntax___syntax_base___MMSrcAttribute(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 11);
-  obj->vft = (classtable_elt_t*)VFT_syntax___syntax_base___MMAttrImplementationMethod;
+  obj->vft = (classtable_elt_t*)VFT_syntax___syntax_base___MMSrcAttribute;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_syntax___syntax_base___MMAttrImplementationMethod(val_t p0){
+void CHECKNEW_syntax___syntax_base___MMSrcAttribute(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_syntax___syntax_base___MMAttrImplementationMethod;
+  fra.me.meth = LOCATE_CHECKNEW_syntax___syntax_base___MMSrcAttribute;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
@@ -141900,14 +136708,14 @@ void CHECKNEW_syntax___syntax_base___MMAttrImplementationMethod(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_MMAttrImplementationMethod_syntax___syntax_base___MMAttrImplementationMethod___init(val_t p0, val_t p1, val_t p2){
+val_t NEW_MMSrcAttribute_syntax___syntax_base___MMSrcAttribute___init(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
+  int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 159;
-  fra.me.meth = LOCATE_NEW_MMAttrImplementationMethod_syntax___syntax_base___MMAttrImplementationMethod___init;
+  fra.me.line = 139;
+  fra.me.meth = LOCATE_NEW_MMSrcAttribute_syntax___syntax_base___MMSrcAttribute___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -141918,24 +136726,25 @@ val_t NEW_MMAttrImplementationMethod_syntax___syntax_base___MMAttrImplementation
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:159 */
-  fra.me.REG[3] = NEW_syntax___syntax_base___MMAttrImplementationMethod();
-  INIT_ATTRIBUTES__syntax___syntax_base___MMAttrImplementationMethod(fra.me.REG[3]);
-  syntax___syntax_base___MMAttrImplementationMethod___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  CHECKNEW_syntax___syntax_base___MMAttrImplementationMethod(fra.me.REG[3]);
+  /* syntax/syntax_base.nit:139 */
+  fra.me.REG[3] = NEW_syntax___syntax_base___MMSrcAttribute();
+  INIT_ATTRIBUTES__syntax___syntax_base___MMSrcAttribute(fra.me.REG[3]);
+  syntax___syntax_base___MMSrcAttribute___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_syntax___syntax_base___MMSrcAttribute(fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-const classtable_elt_t VFT_syntax___syntax_base___MMReadImplementationMethod[105] = {
-  {(bigint) 3547 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___syntax_base___MMReadImplementationMethod[108] = {
+  {(bigint) 3627 /* 0: Identity */},
   {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MMReadImplementationMethod" /* 2: Class Name */},
   {(bigint) 3 /* 3: MMReadImplementationMethod < Object: superclass typecheck marker */},
-  {(bigint) 159 /* 4: MMReadImplementationMethod < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2179 /* 5: MMReadImplementationMethod < MMMethod: superclass typecheck marker */},
-  {(bigint) 2839 /* 6: MMReadImplementationMethod < MMSrcMethod: superclass typecheck marker */},
-  {(bigint) 3199 /* 7: MMReadImplementationMethod < MMAttrImplementationMethod: superclass typecheck marker */},
-  {(bigint) 3547 /* 8: MMReadImplementationMethod < MMReadImplementationMethod: superclass typecheck marker */},
+  {(bigint) 155 /* 4: MMReadImplementationMethod < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 2215 /* 5: MMReadImplementationMethod < MMMethod: superclass typecheck marker */},
+  {(bigint) 2599 /* 6: MMReadImplementationMethod < MMSrcMethod: superclass typecheck marker */},
+  {(bigint) 3263 /* 7: MMReadImplementationMethod < MMAttrImplementationMethod: superclass typecheck marker */},
+  {(bigint) 3627 /* 8: MMReadImplementationMethod < MMReadImplementationMethod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -141945,7 +136754,7 @@ const classtable_elt_t VFT_syntax___syntax_base___MMReadImplementationMethod[105
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMReadImplementationMethod < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: MMReadImplementationMethod < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -141961,6 +136770,8 @@ const classtable_elt_t VFT_syntax___syntax_base___MMReadImplementationMethod[105
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -141981,7 +136792,7 @@ const classtable_elt_t VFT_syntax___syntax_base___MMReadImplementationMethod[105
   {(bigint) metamodel___static_type___MMLocalProperty___signature},
   {(bigint) metamodel___static_type___MMLocalProperty___signature__eq},
   {(bigint) metamodel___static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 54: MMReadImplementationMethod < MMLocalProperty: superclass init_table position */},
+  {(bigint) 3 /* 57: MMReadImplementationMethod < MMLocalProperty: superclass init_table position */},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___name},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___local_class},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___global},
@@ -142013,7 +136824,7 @@ const classtable_elt_t VFT_syntax___syntax_base___MMReadImplementationMethod[105
   {(bigint) primitive_info___MMMethod___default_extern_name},
   {(bigint) primitive_info___MMMethod___friendly_extern_name},
   {(bigint) metamodel___static_type___MMMethod___explicit_casts},
-  {(bigint) 2 /* 86: MMReadImplementationMethod < MMMethod: superclass init_table position */},
+  {(bigint) 2 /* 89: MMReadImplementationMethod < MMMethod: superclass init_table position */},
   {(bigint) syntax___syntax_base___MMSrcMethod___is_intern},
   {(bigint) syntax___syntax_base___MMSrcMethod___is_abstract},
   {(bigint) syntax___syntax_base___MMSrcMethod___is_extern},
@@ -142027,10 +136838,10 @@ const classtable_elt_t VFT_syntax___syntax_base___MMReadImplementationMethod[105
   {(bigint) syntax___icode_generation___MMSrcMethod___iroutine__eq},
   {(bigint) syntax___icode_generation___MMSrcMethod___generate_iroutine},
   {(bigint) syntax___icode_generation___MMReadImplementationMethod___inner_generate_iroutine},
-  {(bigint) 3 /* 100: MMReadImplementationMethod < MMSrcMethod: superclass init_table position */},
-  {(bigint) 4 /* 101: MMReadImplementationMethod < MMAttrImplementationMethod: superclass init_table position */},
+  {(bigint) 1 /* 103: MMReadImplementationMethod < MMSrcMethod: superclass init_table position */},
+  {(bigint) 0 /* 104: MMReadImplementationMethod < MMAttrImplementationMethod: superclass init_table position */},
   {(bigint) syntax___syntax_base___MMAttrImplementationMethod___init},
-  {(bigint) 5 /* 103: MMReadImplementationMethod < MMReadImplementationMethod: superclass init_table position */},
+  {(bigint) 5 /* 106: MMReadImplementationMethod < MMReadImplementationMethod: superclass init_table position */},
   {(bigint) syntax___syntax_base___MMReadImplementationMethod___init},
 };
 /* 0: Pointer to the classtable */
@@ -142058,10 +136869,10 @@ void INIT_ATTRIBUTES__syntax___syntax_base___MMReadImplementationMethod(val_t p0
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:649 */
+  /* metamodel/abstractmetamodel.nit:649 */
   REGB0 = TAG_Bool(false);
   ATTR_metamodel___abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//static_type.nit:56 */
+  /* metamodel/static_type.nit:56 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -142128,7 +136939,7 @@ val_t NEW_MMReadImplementationMethod_syntax___syntax_base___MMReadImplementation
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:169 */
+  /* syntax/syntax_base.nit:169 */
   fra.me.REG[3] = NEW_syntax___syntax_base___MMReadImplementationMethod();
   INIT_ATTRIBUTES__syntax___syntax_base___MMReadImplementationMethod(fra.me.REG[3]);
   syntax___syntax_base___MMReadImplementationMethod___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -142136,16 +136947,17 @@ val_t NEW_MMReadImplementationMethod_syntax___syntax_base___MMReadImplementation
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-const classtable_elt_t VFT_syntax___syntax_base___MMWriteImplementationMethod[105] = {
-  {(bigint) 3543 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___syntax_base___MMWriteImplementationMethod[108] = {
+  {(bigint) 3623 /* 0: Identity */},
   {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MMWriteImplementationMethod" /* 2: Class Name */},
   {(bigint) 3 /* 3: MMWriteImplementationMethod < Object: superclass typecheck marker */},
-  {(bigint) 159 /* 4: MMWriteImplementationMethod < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2179 /* 5: MMWriteImplementationMethod < MMMethod: superclass typecheck marker */},
-  {(bigint) 2839 /* 6: MMWriteImplementationMethod < MMSrcMethod: superclass typecheck marker */},
-  {(bigint) 3199 /* 7: MMWriteImplementationMethod < MMAttrImplementationMethod: superclass typecheck marker */},
-  {(bigint) 3543 /* 8: MMWriteImplementationMethod < MMWriteImplementationMethod: superclass typecheck marker */},
+  {(bigint) 155 /* 4: MMWriteImplementationMethod < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 2215 /* 5: MMWriteImplementationMethod < MMMethod: superclass typecheck marker */},
+  {(bigint) 2599 /* 6: MMWriteImplementationMethod < MMSrcMethod: superclass typecheck marker */},
+  {(bigint) 3263 /* 7: MMWriteImplementationMethod < MMAttrImplementationMethod: superclass typecheck marker */},
+  {(bigint) 3623 /* 8: MMWriteImplementationMethod < MMWriteImplementationMethod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -142155,7 +136967,7 @@ const classtable_elt_t VFT_syntax___syntax_base___MMWriteImplementationMethod[10
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMWriteImplementationMethod < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: MMWriteImplementationMethod < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -142171,6 +136983,8 @@ const classtable_elt_t VFT_syntax___syntax_base___MMWriteImplementationMethod[10
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -142191,7 +137005,7 @@ const classtable_elt_t VFT_syntax___syntax_base___MMWriteImplementationMethod[10
   {(bigint) metamodel___static_type___MMLocalProperty___signature},
   {(bigint) metamodel___static_type___MMLocalProperty___signature__eq},
   {(bigint) metamodel___static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 54: MMWriteImplementationMethod < MMLocalProperty: superclass init_table position */},
+  {(bigint) 3 /* 57: MMWriteImplementationMethod < MMLocalProperty: superclass init_table position */},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___name},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___local_class},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___global},
@@ -142223,7 +137037,7 @@ const classtable_elt_t VFT_syntax___syntax_base___MMWriteImplementationMethod[10
   {(bigint) primitive_info___MMMethod___default_extern_name},
   {(bigint) primitive_info___MMMethod___friendly_extern_name},
   {(bigint) metamodel___static_type___MMMethod___explicit_casts},
-  {(bigint) 2 /* 86: MMWriteImplementationMethod < MMMethod: superclass init_table position */},
+  {(bigint) 2 /* 89: MMWriteImplementationMethod < MMMethod: superclass init_table position */},
   {(bigint) syntax___syntax_base___MMSrcMethod___is_intern},
   {(bigint) syntax___syntax_base___MMSrcMethod___is_abstract},
   {(bigint) syntax___syntax_base___MMSrcMethod___is_extern},
@@ -142237,10 +137051,10 @@ const classtable_elt_t VFT_syntax___syntax_base___MMWriteImplementationMethod[10
   {(bigint) syntax___icode_generation___MMSrcMethod___iroutine__eq},
   {(bigint) syntax___icode_generation___MMSrcMethod___generate_iroutine},
   {(bigint) syntax___icode_generation___MMWriteImplementationMethod___inner_generate_iroutine},
-  {(bigint) 3 /* 100: MMWriteImplementationMethod < MMSrcMethod: superclass init_table position */},
-  {(bigint) 4 /* 101: MMWriteImplementationMethod < MMAttrImplementationMethod: superclass init_table position */},
+  {(bigint) 1 /* 103: MMWriteImplementationMethod < MMSrcMethod: superclass init_table position */},
+  {(bigint) 0 /* 104: MMWriteImplementationMethod < MMAttrImplementationMethod: superclass init_table position */},
   {(bigint) syntax___syntax_base___MMAttrImplementationMethod___init},
-  {(bigint) 5 /* 103: MMWriteImplementationMethod < MMWriteImplementationMethod: superclass init_table position */},
+  {(bigint) 5 /* 106: MMWriteImplementationMethod < MMWriteImplementationMethod: superclass init_table position */},
   {(bigint) syntax___syntax_base___MMWriteImplementationMethod___init},
 };
 /* 0: Pointer to the classtable */
@@ -142268,10 +137082,10 @@ void INIT_ATTRIBUTES__syntax___syntax_base___MMWriteImplementationMethod(val_t p
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//abstractmetamodel.nit:649 */
+  /* metamodel/abstractmetamodel.nit:649 */
   REGB0 = TAG_Bool(false);
   ATTR_metamodel___abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//static_type.nit:56 */
+  /* metamodel/static_type.nit:56 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -142338,7 +137152,7 @@ val_t NEW_MMWriteImplementationMethod_syntax___syntax_base___MMWriteImplementati
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:178 */
+  /* syntax/syntax_base.nit:178 */
   fra.me.REG[3] = NEW_syntax___syntax_base___MMWriteImplementationMethod();
   INIT_ATTRIBUTES__syntax___syntax_base___MMWriteImplementationMethod(fra.me.REG[3]);
   syntax___syntax_base___MMWriteImplementationMethod___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -142346,15 +137160,16 @@ val_t NEW_MMWriteImplementationMethod_syntax___syntax_base___MMWriteImplementati
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-const classtable_elt_t VFT_syntax___syntax_base___MMMethSrcMethod[104] = {
-  {(bigint) 3195 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___syntax_base___MMMethSrcMethod[107] = {
+  {(bigint) 3259 /* 0: Identity */},
   {(bigint) 18 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MMMethSrcMethod" /* 2: Class Name */},
   {(bigint) 3 /* 3: MMMethSrcMethod < Object: superclass typecheck marker */},
-  {(bigint) 159 /* 4: MMMethSrcMethod < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2179 /* 5: MMMethSrcMethod < MMMethod: superclass typecheck marker */},
-  {(bigint) 2839 /* 6: MMMethSrcMethod < MMSrcMethod: superclass typecheck marker */},
-  {(bigint) 3195 /* 7: MMMethSrcMethod < MMMethSrcMethod: superclass typecheck marker */},
+  {(bigint) 155 /* 4: MMMethSrcMethod < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 2215 /* 5: MMMethSrcMethod < MMMethod: superclass typecheck marker */},
+  {(bigint) 2599 /* 6: MMMethSrcMethod < MMSrcMethod: superclass typecheck marker */},
+  {(bigint) 3259 /* 7: MMMethSrcMethod < MMMethSrcMethod: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -142365,7 +137180,7 @@ const classtable_elt_t VFT_syntax___syntax_base___MMMethSrcMethod[104] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMMethSrcMethod < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: MMMethSrcMethod < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -142381,6 +137196,8 @@ const classtable_elt_t VFT_syntax___syntax_base___MMMethSrcMethod[104] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -142401,7 +137218,7 @@ const classtable_elt_t VFT_syntax___syntax_base___MMMethSrcMethod[104] = {
   {(bigint) metamodel___static_type___MMLocalProperty___signature},
   {(bigint) metamodel___static_type___MMLocalProperty___signature__eq},
   {(bigint) metamodel___static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 54: MMMethSrcMethod < MMLocalProperty: superclass init_table position */},
+  {(bigint) 2 /* 57: MMMethSrcMethod < MMLocalProperty: superclass init_table position */},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___name},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___local_class},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___global},
@@ -142433,7 +137250,7 @@ const classtable_elt_t VFT_syntax___syntax_base___MMMethSrcMethod[104] = {
   {(bigint) primitive_info___MMMethod___default_extern_name},
   {(bigint) primitive_info___MMMethod___friendly_extern_name},
   {(bigint) syntax___syntax_base___MMMethSrcMethod___explicit_casts},
-  {(bigint) 2 /* 86: MMMethSrcMethod < MMMethod: superclass init_table position */},
+  {(bigint) 1 /* 89: MMMethSrcMethod < MMMethod: superclass init_table position */},
   {(bigint) syntax___syntax_base___MMMethSrcMethod___is_intern},
   {(bigint) syntax___syntax_base___MMMethSrcMethod___is_abstract},
   {(bigint) syntax___syntax_base___MMMethSrcMethod___is_extern},
@@ -142447,8 +137264,8 @@ const classtable_elt_t VFT_syntax___syntax_base___MMMethSrcMethod[104] = {
   {(bigint) syntax___icode_generation___MMSrcMethod___iroutine__eq},
   {(bigint) syntax___icode_generation___MMSrcMethod___generate_iroutine},
   {(bigint) syntax___icode_generation___MMMethSrcMethod___inner_generate_iroutine},
-  {(bigint) 3 /* 100: MMMethSrcMethod < MMSrcMethod: superclass init_table position */},
-  {(bigint) 4 /* 101: MMMethSrcMethod < MMMethSrcMethod: superclass init_table position */},
+  {(bigint) 0 /* 103: MMMethSrcMethod < MMSrcMethod: superclass init_table position */},
+  {(bigint) 4 /* 104: MMMethSrcMethod < MMMethSrcMethod: superclass init_table position */},
   {(bigint) syntax___syntax_base___MMMethSrcMethod___extern_name__eq},
   {(bigint) syntax___syntax_base___MMMethSrcMethod___init},
 };
@@ -142484,16 +137301,16 @@ void INIT_ATTRIBUTES__syntax___syntax_base___MMMethSrcMethod(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:192 */
+  /* syntax/syntax_base.nit:192 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_syntax___syntax_base___MMMethSrcMethod____explicit_casts(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//syntax_base.nit:193 */
+  /* syntax/syntax_base.nit:193 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_syntax___syntax_base___MMMethSrcMethod____explicit_imports(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:649 */
+  /* metamodel/abstractmetamodel.nit:649 */
   REGB0 = TAG_Bool(false);
   ATTR_metamodel___abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//static_type.nit:56 */
+  /* metamodel/static_type.nit:56 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -142590,7 +137407,7 @@ val_t NEW_MMMethSrcMethod_syntax___syntax_base___MMMethSrcMethod___init(val_t p0
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:195 */
+  /* syntax/syntax_base.nit:195 */
   fra.me.REG[3] = NEW_syntax___syntax_base___MMMethSrcMethod();
   INIT_ATTRIBUTES__syntax___syntax_base___MMMethSrcMethod(fra.me.REG[3]);
   syntax___syntax_base___MMMethSrcMethod___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -142598,14 +137415,15 @@ val_t NEW_MMMethSrcMethod_syntax___syntax_base___MMMethSrcMethod___init(val_t p0
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-const classtable_elt_t VFT_syntax___syntax_base___MMSrcTypeProperty[74] = {
-  {(bigint) 2835 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___syntax_base___MMSrcTypeProperty[77] = {
+  {(bigint) 2595 /* 0: Identity */},
   {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MMSrcTypeProperty" /* 2: Class Name */},
   {(bigint) 3 /* 3: MMSrcTypeProperty < Object: superclass typecheck marker */},
-  {(bigint) 159 /* 4: MMSrcTypeProperty < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2143 /* 5: MMSrcTypeProperty < MMTypeProperty: superclass typecheck marker */},
-  {(bigint) 2835 /* 6: MMSrcTypeProperty < MMSrcTypeProperty: superclass typecheck marker */},
+  {(bigint) 155 /* 4: MMSrcTypeProperty < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 2179 /* 5: MMSrcTypeProperty < MMTypeProperty: superclass typecheck marker */},
+  {(bigint) 2595 /* 6: MMSrcTypeProperty < MMSrcTypeProperty: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -142617,7 +137435,7 @@ const classtable_elt_t VFT_syntax___syntax_base___MMSrcTypeProperty[74] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMSrcTypeProperty < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: MMSrcTypeProperty < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -142633,6 +137451,8 @@ const classtable_elt_t VFT_syntax___syntax_base___MMSrcTypeProperty[74] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -142653,7 +137473,7 @@ const classtable_elt_t VFT_syntax___syntax_base___MMSrcTypeProperty[74] = {
   {(bigint) metamodel___static_type___MMLocalProperty___signature},
   {(bigint) metamodel___static_type___MMLocalProperty___signature__eq},
   {(bigint) metamodel___static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 54: MMSrcTypeProperty < MMLocalProperty: superclass init_table position */},
+  {(bigint) 1 /* 57: MMSrcTypeProperty < MMLocalProperty: superclass init_table position */},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___name},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___local_class},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___global},
@@ -142668,10 +137488,10 @@ const classtable_elt_t VFT_syntax___syntax_base___MMSrcTypeProperty[74] = {
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___init},
   {(bigint) compiling___compiling_base___MMLocalProperty___cname},
   {(bigint) compiling___compiling_base___MMLocalProperty___super_meth_call},
-  {(bigint) 2 /* 69: MMSrcTypeProperty < MMTypeProperty: superclass init_table position */},
+  {(bigint) 0 /* 72: MMSrcTypeProperty < MMTypeProperty: superclass init_table position */},
   {(bigint) metamodel___virtualtype___MMTypeProperty___stype_for},
   {(bigint) metamodel___virtualtype___MMTypeProperty___real_stype_for},
-  {(bigint) 3 /* 72: MMSrcTypeProperty < MMSrcTypeProperty: superclass init_table position */},
+  {(bigint) 3 /* 75: MMSrcTypeProperty < MMSrcTypeProperty: superclass init_table position */},
   {(bigint) syntax___syntax_base___MMSrcTypeProperty___init},
 };
 /* 0: Pointer to the classtable */
@@ -142699,13 +137519,13 @@ void INIT_ATTRIBUTES__syntax___syntax_base___MMSrcTypeProperty(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//virtualtype.nit:40 */
+  /* metamodel/virtualtype.nit:40 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//static_type.nit:56 */
+  /* metamodel/static_type.nit:56 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:649 */
+  /* metamodel/abstractmetamodel.nit:649 */
   REGB0 = TAG_Bool(false);
   ATTR_metamodel___abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -142777,7 +137597,7 @@ val_t NEW_MMSrcTypeProperty_syntax___syntax_base___MMSrcTypeProperty___init(val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:215 */
+  /* syntax/syntax_base.nit:215 */
   fra.me.REG[3] = NEW_syntax___syntax_base___MMSrcTypeProperty();
   INIT_ATTRIBUTES__syntax___syntax_base___MMSrcTypeProperty(fra.me.REG[3]);
   syntax___syntax_base___MMSrcTypeProperty___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -142785,16 +137605,17 @@ val_t NEW_MMSrcTypeProperty_syntax___syntax_base___MMSrcTypeProperty___init(val_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-const classtable_elt_t VFT_syntax___syntax_base___MMImplicitInit[109] = {
-  {(bigint) 3551 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___syntax_base___MMImplicitInit[112] = {
+  {(bigint) 3631 /* 0: Identity */},
   {(bigint) 21 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MMImplicitInit" /* 2: Class Name */},
   {(bigint) 3 /* 3: MMImplicitInit < Object: superclass typecheck marker */},
-  {(bigint) 159 /* 4: MMImplicitInit < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2179 /* 5: MMImplicitInit < MMMethod: superclass typecheck marker */},
-  {(bigint) 2839 /* 6: MMImplicitInit < MMSrcMethod: superclass typecheck marker */},
-  {(bigint) 3195 /* 7: MMImplicitInit < MMMethSrcMethod: superclass typecheck marker */},
-  {(bigint) 3551 /* 8: MMImplicitInit < MMImplicitInit: superclass typecheck marker */},
+  {(bigint) 155 /* 4: MMImplicitInit < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 2215 /* 5: MMImplicitInit < MMMethod: superclass typecheck marker */},
+  {(bigint) 2599 /* 6: MMImplicitInit < MMSrcMethod: superclass typecheck marker */},
+  {(bigint) 3259 /* 7: MMImplicitInit < MMMethSrcMethod: superclass typecheck marker */},
+  {(bigint) 3631 /* 8: MMImplicitInit < MMImplicitInit: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -142804,7 +137625,7 @@ const classtable_elt_t VFT_syntax___syntax_base___MMImplicitInit[109] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MMImplicitInit < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: MMImplicitInit < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -142820,6 +137641,8 @@ const classtable_elt_t VFT_syntax___syntax_base___MMImplicitInit[109] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -142840,7 +137663,7 @@ const classtable_elt_t VFT_syntax___syntax_base___MMImplicitInit[109] = {
   {(bigint) metamodel___static_type___MMLocalProperty___signature},
   {(bigint) metamodel___static_type___MMLocalProperty___signature__eq},
   {(bigint) metamodel___static_type___MMLocalProperty___signature_for},
-  {(bigint) 1 /* 54: MMImplicitInit < MMLocalProperty: superclass init_table position */},
+  {(bigint) 2 /* 57: MMImplicitInit < MMLocalProperty: superclass init_table position */},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___name},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___local_class},
   {(bigint) metamodel___abstractmetamodel___MMLocalProperty___global},
@@ -142872,7 +137695,7 @@ const classtable_elt_t VFT_syntax___syntax_base___MMImplicitInit[109] = {
   {(bigint) primitive_info___MMMethod___default_extern_name},
   {(bigint) primitive_info___MMMethod___friendly_extern_name},
   {(bigint) syntax___syntax_base___MMMethSrcMethod___explicit_casts},
-  {(bigint) 2 /* 86: MMImplicitInit < MMMethod: superclass init_table position */},
+  {(bigint) 1 /* 89: MMImplicitInit < MMMethod: superclass init_table position */},
   {(bigint) syntax___syntax_base___MMMethSrcMethod___is_intern},
   {(bigint) syntax___syntax_base___MMMethSrcMethod___is_abstract},
   {(bigint) syntax___syntax_base___MMMethSrcMethod___is_extern},
@@ -142886,11 +137709,11 @@ const classtable_elt_t VFT_syntax___syntax_base___MMImplicitInit[109] = {
   {(bigint) syntax___icode_generation___MMSrcMethod___iroutine__eq},
   {(bigint) syntax___icode_generation___MMSrcMethod___generate_iroutine},
   {(bigint) syntax___icode_generation___MMImplicitInit___inner_generate_iroutine},
-  {(bigint) 3 /* 100: MMImplicitInit < MMSrcMethod: superclass init_table position */},
-  {(bigint) 4 /* 101: MMImplicitInit < MMMethSrcMethod: superclass init_table position */},
+  {(bigint) 0 /* 103: MMImplicitInit < MMSrcMethod: superclass init_table position */},
+  {(bigint) 4 /* 104: MMImplicitInit < MMMethSrcMethod: superclass init_table position */},
   {(bigint) syntax___syntax_base___MMMethSrcMethod___extern_name__eq},
   {(bigint) syntax___syntax_base___MMMethSrcMethod___init},
-  {(bigint) 5 /* 104: MMImplicitInit < MMImplicitInit: superclass init_table position */},
+  {(bigint) 5 /* 107: MMImplicitInit < MMImplicitInit: superclass init_table position */},
   {(bigint) syntax___mmbuilder___MMImplicitInit___super_init},
   {(bigint) syntax___syntax_base___MMImplicitInit___unassigned_attributes},
   {(bigint) syntax___syntax_base___MMImplicitInit___super_inits},
@@ -142931,19 +137754,19 @@ void INIT_ATTRIBUTES__syntax___syntax_base___MMImplicitInit(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:297 */
+  /* syntax/mmbuilder.nit:297 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___mmbuilder___MMImplicitInit____super_init(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//syntax_base.nit:192 */
+  /* syntax/syntax_base.nit:192 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_syntax___syntax_base___MMMethSrcMethod____explicit_casts(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//syntax_base.nit:193 */
+  /* syntax/syntax_base.nit:193 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_syntax___syntax_base___MMMethSrcMethod____explicit_imports(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//abstractmetamodel.nit:649 */
+  /* metamodel/abstractmetamodel.nit:649 */
   REGB0 = TAG_Bool(false);
   ATTR_metamodel___abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
-  /* ./metamodel//static_type.nit:56 */
+  /* metamodel/static_type.nit:56 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -143050,7 +137873,7 @@ val_t NEW_MMImplicitInit_syntax___syntax_base___MMImplicitInit___init(val_t p0,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:228 */
+  /* syntax/syntax_base.nit:228 */
   fra.me.REG[3] = NEW_syntax___syntax_base___MMImplicitInit();
   INIT_ATTRIBUTES__syntax___syntax_base___MMImplicitInit(fra.me.REG[3]);
   syntax___syntax_base___MMImplicitInit___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -143058,13 +137881,14 @@ val_t NEW_MMImplicitInit_syntax___syntax_base___MMImplicitInit___init(val_t p0,
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-const classtable_elt_t VFT_syntax___syntax_base___VarVariable[57] = {
-  {(bigint) 323 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___syntax_base___VarVariable[60] = {
+  {(bigint) 315 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "VarVariable" /* 2: Class Name */},
   {(bigint) 3 /* 3: VarVariable < Object: superclass typecheck marker */},
   {(bigint) 19 /* 4: VarVariable < Variable: superclass typecheck marker */},
-  {(bigint) 323 /* 5: VarVariable < VarVariable: superclass typecheck marker */},
+  {(bigint) 315 /* 5: VarVariable < VarVariable: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -143077,7 +137901,7 @@ const classtable_elt_t VFT_syntax___syntax_base___VarVariable[57] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: VarVariable < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: VarVariable < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -143093,6 +137917,8 @@ const classtable_elt_t VFT_syntax___syntax_base___VarVariable[57] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) syntax___syntax_base___Variable___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -143107,14 +137933,14 @@ const classtable_elt_t VFT_syntax___syntax_base___VarVariable[57] = {
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) syntax___flow___VarVariable___must_be_set},
-  {(bigint) 0 /* 48: VarVariable < Variable: superclass init_table position */},
+  {(bigint) 0 /* 51: VarVariable < Variable: superclass init_table position */},
   {(bigint) syntax___syntax_base___Variable___name},
   {(bigint) syntax___syntax_base___Variable___decl},
   {(bigint) syntax___syntax_base___Variable___stype},
   {(bigint) syntax___syntax_base___Variable___stype__eq},
   {(bigint) syntax___syntax_base___VarVariable___kind},
   {(bigint) syntax___syntax_base___Variable___init},
-  {(bigint) 2 /* 55: VarVariable < VarVariable: superclass init_table position */},
+  {(bigint) 2 /* 58: VarVariable < VarVariable: superclass init_table position */},
   {(bigint) syntax___syntax_base___VarVariable___init},
 };
 /* 0: Pointer to the classtable */
@@ -143179,7 +138005,7 @@ val_t NEW_VarVariable_syntax___syntax_base___VarVariable___init(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:262 */
+  /* syntax/syntax_base.nit:262 */
   fra.me.REG[2] = NEW_syntax___syntax_base___VarVariable();
   INIT_ATTRIBUTES__syntax___syntax_base___VarVariable(fra.me.REG[2]);
   syntax___syntax_base___VarVariable___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -143187,13 +138013,14 @@ val_t NEW_VarVariable_syntax___syntax_base___VarVariable___init(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_syntax___syntax_base___ParamVariable[57] = {
-  {(bigint) 2087 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___syntax_base___ParamVariable[60] = {
+  {(bigint) 2123 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ParamVariable" /* 2: Class Name */},
   {(bigint) 3 /* 3: ParamVariable < Object: superclass typecheck marker */},
   {(bigint) 19 /* 4: ParamVariable < Variable: superclass typecheck marker */},
-  {(bigint) 2087 /* 5: ParamVariable < ParamVariable: superclass typecheck marker */},
+  {(bigint) 2123 /* 5: ParamVariable < ParamVariable: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -143206,7 +138033,7 @@ const classtable_elt_t VFT_syntax___syntax_base___ParamVariable[57] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ParamVariable < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ParamVariable < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -143222,6 +138049,8 @@ const classtable_elt_t VFT_syntax___syntax_base___ParamVariable[57] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) syntax___syntax_base___Variable___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -143236,14 +138065,14 @@ const classtable_elt_t VFT_syntax___syntax_base___ParamVariable[57] = {
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) syntax___flow___Variable___must_be_set},
-  {(bigint) 0 /* 48: ParamVariable < Variable: superclass init_table position */},
+  {(bigint) 0 /* 51: ParamVariable < Variable: superclass init_table position */},
   {(bigint) syntax___syntax_base___Variable___name},
   {(bigint) syntax___syntax_base___Variable___decl},
   {(bigint) syntax___syntax_base___Variable___stype},
   {(bigint) syntax___syntax_base___Variable___stype__eq},
   {(bigint) syntax___syntax_base___ParamVariable___kind},
   {(bigint) syntax___syntax_base___Variable___init},
-  {(bigint) 2 /* 55: ParamVariable < ParamVariable: superclass init_table position */},
+  {(bigint) 2 /* 58: ParamVariable < ParamVariable: superclass init_table position */},
   {(bigint) syntax___syntax_base___ParamVariable___init},
 };
 /* 0: Pointer to the classtable */
@@ -143308,7 +138137,7 @@ val_t NEW_ParamVariable_syntax___syntax_base___ParamVariable___init(val_t p0, va
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:269 */
+  /* syntax/syntax_base.nit:269 */
   fra.me.REG[2] = NEW_syntax___syntax_base___ParamVariable();
   INIT_ATTRIBUTES__syntax___syntax_base___ParamVariable(fra.me.REG[2]);
   syntax___syntax_base___ParamVariable___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -143316,830 +138145,19 @@ val_t NEW_ParamVariable_syntax___syntax_base___ParamVariable___init(val_t p0, va
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_syntax___syntax_base___AutoVariable[57] = {
-  {(bigint) 2359 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___syntax_base___AutoVariable[60] = {
+  {(bigint) 2395 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "AutoVariable" /* 2: Class Name */},
   {(bigint) 3 /* 3: AutoVariable < Object: superclass typecheck marker */},
   {(bigint) 19 /* 4: AutoVariable < Variable: superclass typecheck marker */},
-  {(bigint) 2359 /* 5: AutoVariable < AutoVariable: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: AutoVariable < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) syntax___syntax_base___Variable___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___flow___Variable___must_be_set},
-  {(bigint) 0 /* 48: AutoVariable < Variable: superclass init_table position */},
-  {(bigint) syntax___syntax_base___Variable___name},
-  {(bigint) syntax___syntax_base___Variable___decl},
-  {(bigint) syntax___syntax_base___Variable___stype},
-  {(bigint) syntax___syntax_base___Variable___stype__eq},
-  {(bigint) syntax___syntax_base___AutoVariable___kind},
-  {(bigint) syntax___syntax_base___Variable___init},
-  {(bigint) 2 /* 55: AutoVariable < AutoVariable: superclass init_table position */},
-  {(bigint) syntax___syntax_base___AutoVariable___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AutoVariable::_name */
-/* 3: Attribute AutoVariable::_decl */
-/* 4: Attribute AutoVariable::_stype */
-void INIT_ATTRIBUTES__syntax___syntax_base___AutoVariable(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___AutoVariable;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_syntax___syntax_base___AutoVariable(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_syntax___syntax_base___AutoVariable;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_syntax___syntax_base___AutoVariable(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_syntax___syntax_base___AutoVariable;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___syntax_base___Variable____name(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_name", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 276;
-  fra.me.meth = LOCATE_NEW_AutoVariable_syntax___syntax_base___AutoVariable___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:276 */
-  fra.me.REG[2] = NEW_syntax___syntax_base___AutoVariable();
-  INIT_ATTRIBUTES__syntax___syntax_base___AutoVariable(fra.me.REG[2]);
-  syntax___syntax_base___AutoVariable___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_syntax___syntax_base___AutoVariable(fra.me.REG[2]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
-}
-const classtable_elt_t VFT_syntax___syntax_base___ClosureVariable[58] = {
-  {(bigint) 2339 /* 0: Identity */},
-  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ClosureVariable" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ClosureVariable < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 4: ClosureVariable < Variable: superclass typecheck marker */},
-  {(bigint) 2339 /* 5: ClosureVariable < ClosureVariable: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: ClosureVariable < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) syntax___syntax_base___Variable___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___flow___Variable___must_be_set},
-  {(bigint) 0 /* 48: ClosureVariable < Variable: superclass init_table position */},
-  {(bigint) syntax___syntax_base___Variable___name},
-  {(bigint) syntax___syntax_base___Variable___decl},
-  {(bigint) syntax___syntax_base___Variable___stype},
-  {(bigint) syntax___syntax_base___Variable___stype__eq},
-  {(bigint) syntax___syntax_base___ClosureVariable___kind},
-  {(bigint) syntax___syntax_base___Variable___init},
-  {(bigint) 2 /* 55: ClosureVariable < ClosureVariable: superclass init_table position */},
-  {(bigint) syntax___syntax_base___ClosureVariable___closure},
-  {(bigint) syntax___syntax_base___ClosureVariable___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute ClosureVariable::_name */
-/* 3: Attribute ClosureVariable::_decl */
-/* 4: Attribute ClosureVariable::_stype */
-/* 5: Attribute ClosureVariable::_closure */
-void INIT_ATTRIBUTES__syntax___syntax_base___ClosureVariable(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___ClosureVariable;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_syntax___syntax_base___ClosureVariable(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_syntax___syntax_base___ClosureVariable;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_syntax___syntax_base___ClosureVariable(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_syntax___syntax_base___ClosureVariable;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___syntax_base___ClosureVariable____closure(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_closure", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_syntax___syntax_base___Variable____name(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_name", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_ClosureVariable_syntax___syntax_base___ClosureVariable___init(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 288;
-  fra.me.meth = LOCATE_NEW_ClosureVariable_syntax___syntax_base___ClosureVariable___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:288 */
-  fra.me.REG[3] = NEW_syntax___syntax_base___ClosureVariable();
-  INIT_ATTRIBUTES__syntax___syntax_base___ClosureVariable(fra.me.REG[3]);
-  syntax___syntax_base___ClosureVariable___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  CHECKNEW_syntax___syntax_base___ClosureVariable(fra.me.REG[3]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[3];
-}
-const classtable_elt_t VFT_syntax___syntax_base___AbsSyntaxVisitor[81] = {
-  {(bigint) 2371 /* 0: Identity */},
-  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AbsSyntaxVisitor" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AbsSyntaxVisitor < Object: superclass typecheck marker */},
-  {(bigint) 15 /* 4: AbsSyntaxVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 2371 /* 5: AbsSyntaxVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: AbsSyntaxVisitor < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: AbsSyntaxVisitor < Visitor: superclass init_table position */},
-  {(bigint) parser___parser_prod___Visitor___visit},
-  {(bigint) parser___parser_prod___Visitor___enter_visit},
-  {(bigint) parser___parser_prod___Visitor___current_node},
-  {(bigint) parser___parser_prod___Visitor___init},
-  {(bigint) 2 /* 52: AbsSyntaxVisitor < AbsSyntaxVisitor: superclass init_table position */},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___type_object},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___type_bool},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___type_int},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___type_float},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___type_char},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___type_string},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___type_nativestring},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___type_array},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___type_discrete},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___type_range},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___type_none},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___get_method},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___mmmodule},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___local_class},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___local_class__eq},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___local_property},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___local_property__eq},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___tc},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___error},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___fatal_error},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___warning},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___check_conform},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___check_expr},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr},
-  {(bigint) syntax___syntax_base___AbsSyntaxVisitor___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AbsSyntaxVisitor::_current_node */
-/* 3: Attribute AbsSyntaxVisitor::_mmmodule */
-/* 4: Attribute AbsSyntaxVisitor::_local_class */
-/* 5: Attribute AbsSyntaxVisitor::_local_property */
-/* 6: Attribute AbsSyntaxVisitor::_tc */
-void INIT_ATTRIBUTES__syntax___syntax_base___AbsSyntaxVisitor(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___AbsSyntaxVisitor;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:66 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_syntax___syntax_base___AbsSyntaxVisitor(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_syntax___syntax_base___AbsSyntaxVisitor;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_syntax___syntax_base___AbsSyntaxVisitor(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_syntax___syntax_base___AbsSyntaxVisitor;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_tc", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AbsSyntaxVisitor_syntax___syntax_base___AbsSyntaxVisitor___init(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 500;
-  fra.me.meth = LOCATE_NEW_AbsSyntaxVisitor_syntax___syntax_base___AbsSyntaxVisitor___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:500 */
-  fra.me.REG[2] = NEW_syntax___syntax_base___AbsSyntaxVisitor();
-  INIT_ATTRIBUTES__syntax___syntax_base___AbsSyntaxVisitor(fra.me.REG[2]);
-  syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_syntax___syntax_base___AbsSyntaxVisitor(fra.me.REG[2]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
-}
-const classtable_elt_t VFT_syntax___syntax_base___AAbsAbsSendExpr[97] = {
-  {(bigint) 3527 /* 0: Identity */},
-  {(bigint) 13 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AAbsAbsSendExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AAbsAbsSendExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AAbsAbsSendExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: AAbsAbsSendExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AAbsAbsSendExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AAbsAbsSendExpr < AExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AAbsAbsSendExpr < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: AAbsAbsSendExpr < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___AExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AAbsAbsSendExpr < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExpr___is_typed},
-  {(bigint) syntax___typing___AExpr___is_statement},
-  {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AAbsAbsSendExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___AExpr___generate_icode},
-  {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
-  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
-  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___compute_raw_arguments},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 4 /* 94: AAbsAbsSendExpr < AAbsAbsSendExpr: superclass init_table position */},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AAbsAbsSendExpr::_parent */
-/* 3: Attribute AAbsAbsSendExpr::_location */
-/* 4: Attribute AAbsAbsSendExpr::_first_location */
-/* 5: Attribute AAbsAbsSendExpr::_last_location */
-/* Instance Hole :( */
-/* 7: Attribute AAbsAbsSendExpr::_is_typed */
-/* 8: Attribute AAbsAbsSendExpr::_stype */
-/* 9: Attribute AAbsAbsSendExpr::_if_true_flow_ctx */
-/* 10: Attribute AAbsAbsSendExpr::_if_false_flow_ctx */
-/* 11: Attribute AAbsAbsSendExpr::_prop_signature */
-/* 12: Attribute AAbsAbsSendExpr::_raw_arguments_cache */
-void INIT_ATTRIBUTES__syntax___syntax_base___AAbsAbsSendExpr(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___AAbsAbsSendExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1388 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_syntax___syntax_base___AAbsAbsSendExpr(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 13);
-  obj->vft = (classtable_elt_t*)VFT_syntax___syntax_base___AAbsAbsSendExpr;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_syntax___syntax_base___AAbsAbsSendExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_syntax___syntax_base___AAbsAbsSendExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AAbsAbsSendExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AAbsAbsSendExpr_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_syntax___syntax_base___AAbsAbsSendExpr();
-  INIT_ATTRIBUTES__syntax___syntax_base___AAbsAbsSendExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_syntax___syntax_base___AAbsAbsSendExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_syntax___syntax_base___AAbsSendExpr[103] = {
-  {(bigint) 3739 /* 0: Identity */},
-  {(bigint) 18 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AAbsSendExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AAbsSendExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AAbsSendExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: AAbsSendExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AAbsSendExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AAbsSendExpr < AExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: AAbsSendExpr < AAbsSendExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AAbsSendExpr < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: AAbsSendExpr < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___AExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AAbsSendExpr < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExpr___is_typed},
-  {(bigint) syntax___typing___AExpr___is_statement},
-  {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AAbsSendExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___AExpr___generate_icode},
-  {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
-  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
-  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) 2395 /* 5: AutoVariable < AutoVariable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___compute_raw_arguments},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 4 /* 94: AAbsSendExpr < AAbsAbsSendExpr: superclass init_table position */},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
-  {(bigint) syntax___typing___AAbsSendExpr___do_typing},
-  {(bigint) syntax___typing___AAbsSendExpr___get_property},
-  {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 5 /* 100: AAbsSendExpr < AAbsSendExpr: superclass init_table position */},
-  {(bigint) syntax___typing___AAbsSendExpr___prop},
-  {(bigint) syntax___typing___AAbsSendExpr___return_type},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AAbsSendExpr::_parent */
-/* 3: Attribute AAbsSendExpr::_location */
-/* 4: Attribute AAbsSendExpr::_first_location */
-/* 5: Attribute AAbsSendExpr::_last_location */
-/* Instance Hole :( */
-/* 7: Attribute AAbsSendExpr::_is_typed */
-/* 8: Attribute AAbsSendExpr::_stype */
-/* 9: Attribute AAbsSendExpr::_if_true_flow_ctx */
-/* 10: Attribute AAbsSendExpr::_if_false_flow_ctx */
-/* 11: Attribute AAbsSendExpr::_prop_signature */
-/* 12: Attribute AAbsSendExpr::_raw_arguments_cache */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* 16: Attribute AAbsSendExpr::_prop */
-/* 17: Attribute AAbsSendExpr::_return_type */
-void INIT_ATTRIBUTES__syntax___syntax_base___AAbsSendExpr(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___AAbsSendExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_syntax___syntax_base___AAbsSendExpr(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 18);
-  obj->vft = (classtable_elt_t*)VFT_syntax___syntax_base___AAbsSendExpr;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_syntax___syntax_base___AAbsSendExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_syntax___syntax_base___AAbsSendExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AAbsSendExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[6] = {0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AAbsSendExpr_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_syntax___syntax_base___AAbsSendExpr();
-  INIT_ATTRIBUTES__syntax___syntax_base___AAbsSendExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_syntax___syntax_base___AAbsSendExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_syntax___syntax_base___ASuperInitCall[103] = {
-  {(bigint) 3751 /* 0: Identity */},
-  {(bigint) 18 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ASuperInitCall" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ASuperInitCall < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ASuperInitCall < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: ASuperInitCall < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ASuperInitCall < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ASuperInitCall < AExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3739 /* 9: ASuperInitCall < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: ASuperInitCall < ASuperInitCall: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -144147,7 +138165,7 @@ const classtable_elt_t VFT_syntax___syntax_base___ASuperInitCall[103] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ASuperInitCall < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: AutoVariable < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -144163,7 +138181,9 @@ const classtable_elt_t VFT_syntax___syntax_base___ASuperInitCall[103] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) syntax___syntax_base___Variable___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -144176,173 +138196,108 @@ const classtable_elt_t VFT_syntax___syntax_base___ASuperInitCall[103] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: ASuperInitCall < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___AExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 6 /* 68: ASuperInitCall < ASuperInitCall: superclass init_table position */},
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ASuperInitCall < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExpr___is_typed},
-  {(bigint) syntax___typing___AExpr___is_statement},
-  {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: ASuperInitCall < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___AExpr___generate_icode},
-  {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
-  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
-  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___compute_raw_arguments},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 4 /* 94: ASuperInitCall < AAbsAbsSendExpr: superclass init_table position */},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
-  {(bigint) syntax___typing___AAbsSendExpr___do_typing},
-  {(bigint) syntax___typing___AAbsSendExpr___get_property},
-  {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 5 /* 100: ASuperInitCall < AAbsSendExpr: superclass init_table position */},
-  {(bigint) syntax___typing___AAbsSendExpr___prop},
-  {(bigint) syntax___typing___AAbsSendExpr___return_type},
+  {(bigint) syntax___flow___Variable___must_be_set},
+  {(bigint) 0 /* 51: AutoVariable < Variable: superclass init_table position */},
+  {(bigint) syntax___syntax_base___Variable___name},
+  {(bigint) syntax___syntax_base___Variable___decl},
+  {(bigint) syntax___syntax_base___Variable___stype},
+  {(bigint) syntax___syntax_base___Variable___stype__eq},
+  {(bigint) syntax___syntax_base___AutoVariable___kind},
+  {(bigint) syntax___syntax_base___Variable___init},
+  {(bigint) 2 /* 58: AutoVariable < AutoVariable: superclass init_table position */},
+  {(bigint) syntax___syntax_base___AutoVariable___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ASuperInitCall::_parent */
-/* 3: Attribute ASuperInitCall::_location */
-/* 4: Attribute ASuperInitCall::_first_location */
-/* 5: Attribute ASuperInitCall::_last_location */
-/* Instance Hole :( */
-/* 7: Attribute ASuperInitCall::_is_typed */
-/* 8: Attribute ASuperInitCall::_stype */
-/* 9: Attribute ASuperInitCall::_if_true_flow_ctx */
-/* 10: Attribute ASuperInitCall::_if_false_flow_ctx */
-/* 11: Attribute ASuperInitCall::_prop_signature */
-/* 12: Attribute ASuperInitCall::_raw_arguments_cache */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* 16: Attribute ASuperInitCall::_prop */
-/* 17: Attribute ASuperInitCall::_return_type */
-void INIT_ATTRIBUTES__syntax___syntax_base___ASuperInitCall(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
+/* 2: Attribute AutoVariable::_name */
+/* 3: Attribute AutoVariable::_decl */
+/* 4: Attribute AutoVariable::_stype */
+void INIT_ATTRIBUTES__syntax___syntax_base___AutoVariable(val_t p0){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___ASuperInitCall;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___AutoVariable;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:1388 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_syntax___syntax_base___ASuperInitCall(void)
+val_t NEW_syntax___syntax_base___AutoVariable(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 18);
-  obj->vft = (classtable_elt_t*)VFT_syntax___syntax_base___ASuperInitCall;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_syntax___syntax_base___AutoVariable;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_syntax___syntax_base___ASuperInitCall(val_t p0){
+void CHECKNEW_syntax___syntax_base___AutoVariable(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_syntax___syntax_base___ASuperInitCall;
+  fra.me.meth = LOCATE_CHECKNEW_syntax___syntax_base___AutoVariable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_syntax___syntax_base___Variable____name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_name", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ASuperInitCall_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ASuperInitCall_parser___parser_nodes___ANode___init;
+  fra.me.line = 276;
+  fra.me.meth = LOCATE_NEW_AutoVariable_syntax___syntax_base___AutoVariable___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_syntax___syntax_base___ASuperInitCall();
-  INIT_ATTRIBUTES__syntax___syntax_base___ASuperInitCall(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_syntax___syntax_base___ASuperInitCall(fra.me.REG[1]);
+  fra.me.REG[1] = p1;
+  /* syntax/syntax_base.nit:276 */
+  fra.me.REG[2] = NEW_syntax___syntax_base___AutoVariable();
+  INIT_ATTRIBUTES__syntax___syntax_base___AutoVariable(fra.me.REG[2]);
+  syntax___syntax_base___AutoVariable___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_syntax___syntax_base___AutoVariable(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_syntax___syntax_base___ASendReassignExpr[111] = {
-  {(bigint) 3787 /* 0: Identity */},
-  {(bigint) 20 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ASendReassignExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ASendReassignExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ASendReassignExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3527 /* 5: ASendReassignExpr < AAbsAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ASendReassignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ASendReassignExpr < AExpr: superclass typecheck marker */},
-  {(bigint) 3311 /* 8: ASendReassignExpr < AReassignFormExpr: superclass typecheck marker */},
-  {(bigint) 3739 /* 9: ASendReassignExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 10: ASendReassignExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 3779 /* 11: ASendReassignExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 3787 /* 12: ASendReassignExpr < ASendReassignExpr: superclass typecheck marker */},
+const classtable_elt_t VFT_syntax___syntax_base___ClosureVariable[61] = {
+  {(bigint) 2375 /* 0: Identity */},
+  {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ClosureVariable" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ClosureVariable < Object: superclass typecheck marker */},
+  {(bigint) 19 /* 4: ClosureVariable < Variable: superclass typecheck marker */},
+  {(bigint) 2375 /* 5: ClosureVariable < ClosureVariable: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 5 /* 18: ASendReassignExpr < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ClosureVariable < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -144358,7 +138313,9 @@ const classtable_elt_t VFT_syntax___syntax_base___ASendReassignExpr[111] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
+  {(bigint) syntax___syntax_base___Variable___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
   {(bigint) standard___string___Object___inspect},
@@ -144371,229 +138328,97 @@ const classtable_elt_t VFT_syntax___syntax_base___ASendReassignExpr[111] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ASendExpr___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ASendExpr___visit_all},
-  {(bigint) 4 /* 60: ASendReassignExpr < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___ASendExpr___after_typing},
-  {(bigint) syntax___typing___ASuperInitCall___register_super_init_call},
-  {(bigint) 0 /* 68: ASendReassignExpr < ASuperInitCall: superclass init_table position */},
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 3 /* 70: ASendReassignExpr < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExpr___is_typed},
-  {(bigint) syntax___typing___AExpr___is_statement},
-  {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 6 /* 75: ASendReassignExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___ASendReassignExpr___generate_icode},
-  {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
-  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
-  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 9 /* 82: ASendReassignExpr < ASendReassignExpr: superclass init_table position */},
-  {(bigint) syntax___typing___ASendReassignExpr___read_prop},
-  {0} /* Class Hole :( */,
-  {(bigint) syntax___typing___AReassignFormExpr___do_rvalue_typing},
-  {(bigint) syntax___typing___AReassignFormExpr___assign_method},
-  {(bigint) 8 /* 87: ASendReassignExpr < AReassignFormExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___AReassignFormExpr___n_assign_op},
-  {(bigint) parser___parser_nodes___AReassignFormExpr___n_value},
-  {(bigint) syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___compute_raw_arguments},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___process_signature},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___process_closures},
-  {(bigint) 2 /* 94: ASendReassignExpr < AAbsAbsSendExpr: superclass init_table position */},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___prop_signature},
-  {(bigint) syntax___typing___AAbsAbsSendExpr___raw_arguments},
-  {(bigint) syntax___typing___AAbsSendExpr___do_typing},
-  {(bigint) syntax___typing___AAbsSendExpr___get_property},
-  {(bigint) syntax___typing___AAbsSendExpr___get_signature},
-  {(bigint) 1 /* 100: ASendReassignExpr < AAbsSendExpr: superclass init_table position */},
-  {(bigint) syntax___typing___AAbsSendExpr___prop},
-  {(bigint) syntax___typing___AAbsSendExpr___return_type},
-  {(bigint) syntax___typing___ASendExpr___name},
-  {(bigint) syntax___typing___ASendReassignExpr___do_all_typing},
-  {(bigint) syntax___typing___ASendExpr___closure_defs},
-  {(bigint) parser___parser_prod___ASendExpr___empty_init},
-  {(bigint) parser___parser_prod___ASendExpr___init_asendexpr},
-  {(bigint) 7 /* 108: ASendReassignExpr < ASendExpr: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ASendExpr___n_expr},
-  {(bigint) parser___parser_nodes___ASendExpr___n_closure_defs},
+  {(bigint) syntax___flow___Variable___must_be_set},
+  {(bigint) 0 /* 51: ClosureVariable < Variable: superclass init_table position */},
+  {(bigint) syntax___syntax_base___Variable___name},
+  {(bigint) syntax___syntax_base___Variable___decl},
+  {(bigint) syntax___syntax_base___Variable___stype},
+  {(bigint) syntax___syntax_base___Variable___stype__eq},
+  {(bigint) syntax___syntax_base___ClosureVariable___kind},
+  {(bigint) syntax___syntax_base___Variable___init},
+  {(bigint) 2 /* 58: ClosureVariable < ClosureVariable: superclass init_table position */},
+  {(bigint) syntax___syntax_base___ClosureVariable___closure},
+  {(bigint) syntax___syntax_base___ClosureVariable___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ASendReassignExpr::_parent */
-/* 3: Attribute ASendReassignExpr::_location */
-/* 4: Attribute ASendReassignExpr::_first_location */
-/* 5: Attribute ASendReassignExpr::_last_location */
-/* 6: Attribute ASendReassignExpr::_read_prop */
-/* 7: Attribute ASendReassignExpr::_is_typed */
-/* 8: Attribute ASendReassignExpr::_stype */
-/* 9: Attribute ASendReassignExpr::_if_true_flow_ctx */
-/* 10: Attribute ASendReassignExpr::_if_false_flow_ctx */
-/* 11: Attribute ASendReassignExpr::_prop_signature */
-/* 12: Attribute ASendReassignExpr::_raw_arguments_cache */
-/* 13: Attribute ASendReassignExpr::_assign_method */
-/* 14: Attribute ASendReassignExpr::_n_assign_op */
-/* 15: Attribute ASendReassignExpr::_n_value */
-/* 16: Attribute ASendReassignExpr::_prop */
-/* 17: Attribute ASendReassignExpr::_return_type */
-/* 18: Attribute ASendReassignExpr::_n_expr */
-/* 19: Attribute ASendReassignExpr::_n_closure_defs */
-void INIT_ATTRIBUTES__syntax___syntax_base___ASendReassignExpr(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
+/* 2: Attribute ClosureVariable::_name */
+/* 3: Attribute ClosureVariable::_decl */
+/* 4: Attribute ClosureVariable::_stype */
+/* 5: Attribute ClosureVariable::_closure */
+void INIT_ATTRIBUTES__syntax___syntax_base___ClosureVariable(val_t p0){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___ASendReassignExpr;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__syntax___syntax_base___ClosureVariable;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser_nodes.nit:776 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:1388 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_syntax___syntax_base___ASendReassignExpr(void)
+val_t NEW_syntax___syntax_base___ClosureVariable(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 20);
-  obj->vft = (classtable_elt_t*)VFT_syntax___syntax_base___ASendReassignExpr;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_syntax___syntax_base___ClosureVariable;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_syntax___syntax_base___ASendReassignExpr(val_t p0){
+void CHECKNEW_syntax___syntax_base___ClosureVariable(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_syntax___syntax_base___ASendReassignExpr;
+  fra.me.meth = LOCATE_CHECKNEW_syntax___syntax_base___ClosureVariable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_syntax___syntax_base___ClosureVariable____closure(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_closure", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_syntax___syntax_base___Variable____name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_name", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ASendReassignExpr_parser___parser_prod___ASendExpr___empty_init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 4273;
-  fra.me.meth = LOCATE_NEW_ASendReassignExpr_parser___parser_prod___ASendExpr___empty_init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./parser//parser_prod.nit:4273 */
-  fra.me.REG[0] = NEW_syntax___syntax_base___ASendReassignExpr();
-  INIT_ATTRIBUTES__syntax___syntax_base___ASendReassignExpr(fra.me.REG[0]);
-  parser___parser_prod___ASendExpr___empty_init(fra.me.REG[0], init_table);
-  CHECKNEW_syntax___syntax_base___ASendReassignExpr(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t NEW_ASendReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 4275;
-  fra.me.meth = LOCATE_NEW_ASendReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:4275 */
-  fra.me.REG[1] = NEW_syntax___syntax_base___ASendReassignExpr();
-  INIT_ATTRIBUTES__syntax___syntax_base___ASendReassignExpr(fra.me.REG[1]);
-  parser___parser_prod___ASendExpr___init_asendexpr(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_syntax___syntax_base___ASendReassignExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-val_t NEW_ASendReassignExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ClosureVariable_syntax___syntax_base___ClosureVariable___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t tmp;
-  int init_table[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ASendReassignExpr_parser___parser_nodes___ANode___init;
+  fra.me.line = 288;
+  fra.me.meth = LOCATE_NEW_ClosureVariable_syntax___syntax_base___ClosureVariable___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_syntax___syntax_base___ASendReassignExpr();
-  INIT_ATTRIBUTES__syntax___syntax_base___ASendReassignExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_syntax___syntax_base___ASendReassignExpr(fra.me.REG[1]);
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  /* syntax/syntax_base.nit:288 */
+  fra.me.REG[3] = NEW_syntax___syntax_base___ClosureVariable();
+  INIT_ATTRIBUTES__syntax___syntax_base___ClosureVariable(fra.me.REG[3]);
+  syntax___syntax_base___ClosureVariable___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_syntax___syntax_base___ClosureVariable(fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_primitive_info___PrimitiveInfo[52] = {
+const classtable_elt_t VFT_primitive_info___PrimitiveInfo[55] = {
   {(bigint) 99 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "PrimitiveInfo" /* 2: Class Name */},
@@ -144610,9 +138435,10 @@ const classtable_elt_t VFT_primitive_info___PrimitiveInfo[52] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: PrimitiveInfo < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: PrimitiveInfo < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -144628,6 +138454,8 @@ const classtable_elt_t VFT_primitive_info___PrimitiveInfo[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -144641,7 +138469,7 @@ const classtable_elt_t VFT_primitive_info___PrimitiveInfo[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: PrimitiveInfo < PrimitiveInfo: superclass init_table position */},
+  {(bigint) 1 /* 50: PrimitiveInfo < PrimitiveInfo: superclass init_table position */},
   {(bigint) primitive_info___PrimitiveInfo___name},
   {(bigint) primitive_info___PrimitiveInfo___tagged},
   {(bigint) primitive_info___PrimitiveInfo___cname},
@@ -144721,7 +138549,7 @@ val_t NEW_PrimitiveInfo_primitive_info___PrimitiveInfo___init(val_t p0, val_t p1
   fra.me.REG[0] = p0;
   REGB0 = p1;
   fra.me.REG[1] = p2;
-  /* ./primitive_info.nit:87 */
+  /* primitive_info.nit:87 */
   fra.me.REG[2] = NEW_primitive_info___PrimitiveInfo();
   INIT_ATTRIBUTES__primitive_info___PrimitiveInfo(fra.me.REG[2]);
   primitive_info___PrimitiveInfo___init(fra.me.REG[2], fra.me.REG[0], REGB0, fra.me.REG[1], init_table);
@@ -144729,13 +138557,14 @@ val_t NEW_PrimitiveInfo_primitive_info___PrimitiveInfo___init(val_t p0, val_t p1
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_syntax___mmbuilder___CSHSorter[56] = {
-  {(bigint) 2351 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___mmbuilder___CSHSorter[58] = {
+  {(bigint) 2387 /* 0: Identity */},
   {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "CSHSorter" /* 2: Class Name */},
   {(bigint) 3 /* 3: CSHSorter < Object: superclass typecheck marker */},
-  {(bigint) 299 /* 4: CSHSorter < AbstractSorter: superclass typecheck marker */},
-  {(bigint) 2351 /* 5: CSHSorter < CSHSorter: superclass typecheck marker */},
+  {(bigint) 295 /* 4: CSHSorter < AbstractSorter: superclass typecheck marker */},
+  {(bigint) 2387 /* 5: CSHSorter < CSHSorter: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -144748,7 +138577,7 @@ const classtable_elt_t VFT_syntax___mmbuilder___CSHSorter[56] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: CSHSorter < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: CSHSorter < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -144764,6 +138593,8 @@ const classtable_elt_t VFT_syntax___mmbuilder___CSHSorter[56] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -144777,14 +138608,13 @@ const classtable_elt_t VFT_syntax___mmbuilder___CSHSorter[56] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: CSHSorter < AbstractSorter: superclass init_table position */},
+  {(bigint) 0 /* 50: CSHSorter < AbstractSorter: superclass init_table position */},
   {(bigint) syntax___mmbuilder___CSHSorter___compare},
   {(bigint) standard___collection___sorter___AbstractSorter___sort},
   {(bigint) standard___collection___sorter___AbstractSorter___sub_sort},
   {(bigint) standard___collection___sorter___AbstractSorter___quick_sort},
   {(bigint) standard___collection___sorter___AbstractSorter___bubble_sort},
-  {(bigint) standard___collection___sorter___AbstractSorter___init},
-  {(bigint) 2 /* 54: CSHSorter < CSHSorter: superclass init_table position */},
+  {(bigint) 2 /* 56: CSHSorter < CSHSorter: superclass init_table position */},
   {(bigint) syntax___mmbuilder___CSHSorter___init},
 };
 /* 0: Pointer to the classtable */
@@ -144834,7 +138664,7 @@ val_t NEW_CSHSorter_syntax___mmbuilder___CSHSorter___init(void){
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./syntax//mmbuilder.nit:50 */
+  /* syntax/mmbuilder.nit:50 */
   fra.me.REG[0] = NEW_syntax___mmbuilder___CSHSorter();
   INIT_ATTRIBUTES__syntax___mmbuilder___CSHSorter(fra.me.REG[0]);
   syntax___mmbuilder___CSHSorter___init(fra.me.REG[0], init_table);
@@ -144842,13 +138672,14 @@ val_t NEW_CSHSorter_syntax___mmbuilder___CSHSorter___init(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_syntax___mmbuilder___MMSrcAncestor[59] = {
-  {(bigint) 2163 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___mmbuilder___MMSrcAncestor[62] = {
+  {(bigint) 2199 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MMSrcAncestor" /* 2: Class Name */},
   {(bigint) 3 /* 3: MMSrcAncestor < Object: superclass typecheck marker */},
-  {(bigint) 195 /* 4: MMSrcAncestor < MMAncestor: superclass typecheck marker */},
-  {(bigint) 2163 /* 5: MMSrcAncestor < MMSrcAncestor: superclass typecheck marker */},
+  {(bigint) 191 /* 4: MMSrcAncestor < MMAncestor: superclass typecheck marker */},
+  {(bigint) 2199 /* 5: MMSrcAncestor < MMSrcAncestor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -144861,7 +138692,7 @@ const classtable_elt_t VFT_syntax___mmbuilder___MMSrcAncestor[59] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: MMSrcAncestor < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: MMSrcAncestor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -144877,6 +138708,8 @@ const classtable_elt_t VFT_syntax___mmbuilder___MMSrcAncestor[59] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) metamodel___static_type___MMAncestor___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -144891,7 +138724,7 @@ const classtable_elt_t VFT_syntax___mmbuilder___MMSrcAncestor[59] = {
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) metamodel___inheritance___MMAncestor___add_in},
-  {(bigint) 0 /* 48: MMSrcAncestor < MMAncestor: superclass init_table position */},
+  {(bigint) 0 /* 51: MMSrcAncestor < MMAncestor: superclass init_table position */},
   {(bigint) metamodel___static_type___MMAncestor___stype__eq},
   {(bigint) metamodel___static_type___MMAncestor___stype},
   {(bigint) metamodel___static_type___MMAncestor___inheriter__eq},
@@ -144900,7 +138733,7 @@ const classtable_elt_t VFT_syntax___mmbuilder___MMSrcAncestor[59] = {
   {(bigint) metamodel___static_type___MMAncestor___is_specialisation},
   {(bigint) syntax___mmbuilder___MMSrcAncestor___local_class},
   {(bigint) metamodel___static_type___MMAncestor___init},
-  {(bigint) 2 /* 57: MMSrcAncestor < MMSrcAncestor: superclass init_table position */},
+  {(bigint) 2 /* 60: MMSrcAncestor < MMSrcAncestor: superclass init_table position */},
   {(bigint) syntax___mmbuilder___MMSrcAncestor___init},
 };
 /* 0: Pointer to the classtable */
@@ -144921,10 +138754,10 @@ void INIT_ATTRIBUTES__syntax___mmbuilder___MMSrcAncestor(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./metamodel//static_type.nit:310 */
+  /* metamodel/static_type.nit:310 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_metamodel___static_type___MMAncestor____stype(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./metamodel//static_type.nit:316 */
+  /* metamodel/static_type.nit:316 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_metamodel___static_type___MMAncestor____inheriter(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -144972,7 +138805,7 @@ val_t NEW_MMSrcAncestor_syntax___mmbuilder___MMSrcAncestor___init(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:339 */
+  /* syntax/mmbuilder.nit:339 */
   fra.me.REG[1] = NEW_syntax___mmbuilder___MMSrcAncestor();
   INIT_ATTRIBUTES__syntax___mmbuilder___MMSrcAncestor(fra.me.REG[1]);
   syntax___mmbuilder___MMSrcAncestor___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -144980,14 +138813,15 @@ val_t NEW_MMSrcAncestor_syntax___mmbuilder___MMSrcAncestor___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_syntax___mmbuilder___ClassBuilderVisitor[87] = {
-  {(bigint) 3003 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___mmbuilder___ClassBuilderVisitor[90] = {
+  {(bigint) 2763 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ClassBuilderVisitor" /* 2: Class Name */},
   {(bigint) 3 /* 3: ClassBuilderVisitor < Object: superclass typecheck marker */},
   {(bigint) 15 /* 4: ClassBuilderVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 2371 /* 5: ClassBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 3003 /* 6: ClassBuilderVisitor < ClassBuilderVisitor: superclass typecheck marker */},
+  {(bigint) 2407 /* 5: ClassBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 2763 /* 6: ClassBuilderVisitor < ClassBuilderVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -144999,7 +138833,7 @@ const classtable_elt_t VFT_syntax___mmbuilder___ClassBuilderVisitor[87] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ClassBuilderVisitor < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: ClassBuilderVisitor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -145015,6 +138849,8 @@ const classtable_elt_t VFT_syntax___mmbuilder___ClassBuilderVisitor[87] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -145028,12 +138864,12 @@ const classtable_elt_t VFT_syntax___mmbuilder___ClassBuilderVisitor[87] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ClassBuilderVisitor < Visitor: superclass init_table position */},
+  {(bigint) 1 /* 50: ClassBuilderVisitor < Visitor: superclass init_table position */},
   {(bigint) syntax___mmbuilder___ClassBuilderVisitor___visit},
   {(bigint) parser___parser_prod___Visitor___enter_visit},
   {(bigint) parser___parser_prod___Visitor___current_node},
   {(bigint) parser___parser_prod___Visitor___init},
-  {(bigint) 2 /* 52: ClassBuilderVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) 0 /* 55: ClassBuilderVisitor < AbsSyntaxVisitor: superclass init_table position */},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___type_object},
@@ -145062,7 +138898,7 @@ const classtable_elt_t VFT_syntax___mmbuilder___ClassBuilderVisitor[87] = {
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 81: ClassBuilderVisitor < ClassBuilderVisitor: superclass init_table position */},
+  {(bigint) 3 /* 84: ClassBuilderVisitor < ClassBuilderVisitor: superclass init_table position */},
   {(bigint) syntax___mmbuilder___ClassBuilderVisitor___local_class_arity},
   {(bigint) syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq},
   {(bigint) syntax___mmbuilder___ClassBuilderVisitor___formals},
@@ -145092,10 +138928,10 @@ void INIT_ATTRIBUTES__syntax___mmbuilder___ClassBuilderVisitor(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:353 */
+  /* syntax/mmbuilder.nit:353 */
   REGB0 = TAG_Int(0);
   ATTR_syntax___mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser_prod.nit:66 */
+  /* parser/parser_prod.nit:66 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -145155,7 +138991,7 @@ val_t NEW_ClassBuilderVisitor_syntax___mmbuilder___ClassBuilderVisitor___init(va
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:359 */
+  /* syntax/mmbuilder.nit:359 */
   fra.me.REG[2] = NEW_syntax___mmbuilder___ClassBuilderVisitor();
   INIT_ATTRIBUTES__syntax___mmbuilder___ClassBuilderVisitor(fra.me.REG[2]);
   syntax___mmbuilder___ClassBuilderVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -145163,14 +138999,15 @@ val_t NEW_ClassBuilderVisitor_syntax___mmbuilder___ClassBuilderVisitor___init(va
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_syntax___mmbuilder___ClassSpecializationBuilderVisitor[83] = {
-  {(bigint) 2999 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___mmbuilder___ClassSpecializationBuilderVisitor[86] = {
+  {(bigint) 2759 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ClassSpecializationBuilderVisitor" /* 2: Class Name */},
   {(bigint) 3 /* 3: ClassSpecializationBuilderVisitor < Object: superclass typecheck marker */},
   {(bigint) 15 /* 4: ClassSpecializationBuilderVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 2371 /* 5: ClassSpecializationBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 2999 /* 6: ClassSpecializationBuilderVisitor < ClassSpecializationBuilderVisitor: superclass typecheck marker */},
+  {(bigint) 2407 /* 5: ClassSpecializationBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 2759 /* 6: ClassSpecializationBuilderVisitor < ClassSpecializationBuilderVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -145182,7 +139019,7 @@ const classtable_elt_t VFT_syntax___mmbuilder___ClassSpecializationBuilderVisito
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ClassSpecializationBuilderVisitor < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: ClassSpecializationBuilderVisitor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -145198,6 +139035,8 @@ const classtable_elt_t VFT_syntax___mmbuilder___ClassSpecializationBuilderVisito
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -145211,12 +139050,12 @@ const classtable_elt_t VFT_syntax___mmbuilder___ClassSpecializationBuilderVisito
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ClassSpecializationBuilderVisitor < Visitor: superclass init_table position */},
+  {(bigint) 1 /* 50: ClassSpecializationBuilderVisitor < Visitor: superclass init_table position */},
   {(bigint) syntax___mmbuilder___ClassSpecializationBuilderVisitor___visit},
   {(bigint) parser___parser_prod___Visitor___enter_visit},
   {(bigint) parser___parser_prod___Visitor___current_node},
   {(bigint) parser___parser_prod___Visitor___init},
-  {(bigint) 2 /* 52: ClassSpecializationBuilderVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) 0 /* 55: ClassSpecializationBuilderVisitor < AbsSyntaxVisitor: superclass init_table position */},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___type_object},
@@ -145245,7 +139084,7 @@ const classtable_elt_t VFT_syntax___mmbuilder___ClassSpecializationBuilderVisito
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 81: ClassSpecializationBuilderVisitor < ClassSpecializationBuilderVisitor: superclass init_table position */},
+  {(bigint) 3 /* 84: ClassSpecializationBuilderVisitor < ClassSpecializationBuilderVisitor: superclass init_table position */},
   {(bigint) syntax___mmbuilder___ClassSpecializationBuilderVisitor___init},
 };
 /* 0: Pointer to the classtable */
@@ -145268,7 +139107,7 @@ void INIT_ATTRIBUTES__syntax___mmbuilder___ClassSpecializationBuilderVisitor(val
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:66 */
+  /* parser/parser_prod.nit:66 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -145323,7 +139162,7 @@ val_t NEW_ClassSpecializationBuilderVisitor_syntax___mmbuilder___ClassSpecializa
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:367 */
+  /* syntax/mmbuilder.nit:367 */
   fra.me.REG[2] = NEW_syntax___mmbuilder___ClassSpecializationBuilderVisitor();
   INIT_ATTRIBUTES__syntax___mmbuilder___ClassSpecializationBuilderVisitor(fra.me.REG[2]);
   syntax___mmbuilder___ClassSpecializationBuilderVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -145331,14 +139170,15 @@ val_t NEW_ClassSpecializationBuilderVisitor_syntax___mmbuilder___ClassSpecializa
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_syntax___mmbuilder___ClassAncestorBuilder[83] = {
-  {(bigint) 3007 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___mmbuilder___ClassAncestorBuilder[86] = {
+  {(bigint) 2767 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ClassAncestorBuilder" /* 2: Class Name */},
   {(bigint) 3 /* 3: ClassAncestorBuilder < Object: superclass typecheck marker */},
   {(bigint) 15 /* 4: ClassAncestorBuilder < Visitor: superclass typecheck marker */},
-  {(bigint) 2371 /* 5: ClassAncestorBuilder < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 3007 /* 6: ClassAncestorBuilder < ClassAncestorBuilder: superclass typecheck marker */},
+  {(bigint) 2407 /* 5: ClassAncestorBuilder < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 2767 /* 6: ClassAncestorBuilder < ClassAncestorBuilder: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -145350,7 +139190,7 @@ const classtable_elt_t VFT_syntax___mmbuilder___ClassAncestorBuilder[83] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ClassAncestorBuilder < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: ClassAncestorBuilder < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -145366,6 +139206,8 @@ const classtable_elt_t VFT_syntax___mmbuilder___ClassAncestorBuilder[83] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -145379,12 +139221,12 @@ const classtable_elt_t VFT_syntax___mmbuilder___ClassAncestorBuilder[83] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ClassAncestorBuilder < Visitor: superclass init_table position */},
+  {(bigint) 1 /* 50: ClassAncestorBuilder < Visitor: superclass init_table position */},
   {(bigint) syntax___mmbuilder___ClassAncestorBuilder___visit},
   {(bigint) parser___parser_prod___Visitor___enter_visit},
   {(bigint) parser___parser_prod___Visitor___current_node},
   {(bigint) parser___parser_prod___Visitor___init},
-  {(bigint) 2 /* 52: ClassAncestorBuilder < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) 0 /* 55: ClassAncestorBuilder < AbsSyntaxVisitor: superclass init_table position */},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___type_object},
@@ -145413,7 +139255,7 @@ const classtable_elt_t VFT_syntax___mmbuilder___ClassAncestorBuilder[83] = {
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 81: ClassAncestorBuilder < ClassAncestorBuilder: superclass init_table position */},
+  {(bigint) 3 /* 84: ClassAncestorBuilder < ClassAncestorBuilder: superclass init_table position */},
   {(bigint) syntax___mmbuilder___ClassAncestorBuilder___init},
 };
 /* 0: Pointer to the classtable */
@@ -145436,7 +139278,7 @@ void INIT_ATTRIBUTES__syntax___mmbuilder___ClassAncestorBuilder(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:66 */
+  /* parser/parser_prod.nit:66 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -145491,7 +139333,7 @@ val_t NEW_ClassAncestorBuilder_syntax___mmbuilder___ClassAncestorBuilder___init(
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:375 */
+  /* syntax/mmbuilder.nit:375 */
   fra.me.REG[2] = NEW_syntax___mmbuilder___ClassAncestorBuilder();
   INIT_ATTRIBUTES__syntax___mmbuilder___ClassAncestorBuilder(fra.me.REG[2]);
   syntax___mmbuilder___ClassAncestorBuilder___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -145499,14 +139341,15 @@ val_t NEW_ClassAncestorBuilder_syntax___mmbuilder___ClassAncestorBuilder___init(
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_syntax___mmbuilder___ClassVerifierVisitor[83] = {
-  {(bigint) 2995 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___mmbuilder___ClassVerifierVisitor[86] = {
+  {(bigint) 2755 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ClassVerifierVisitor" /* 2: Class Name */},
   {(bigint) 3 /* 3: ClassVerifierVisitor < Object: superclass typecheck marker */},
   {(bigint) 15 /* 4: ClassVerifierVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 2371 /* 5: ClassVerifierVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 2995 /* 6: ClassVerifierVisitor < ClassVerifierVisitor: superclass typecheck marker */},
+  {(bigint) 2407 /* 5: ClassVerifierVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 2755 /* 6: ClassVerifierVisitor < ClassVerifierVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -145518,7 +139361,7 @@ const classtable_elt_t VFT_syntax___mmbuilder___ClassVerifierVisitor[83] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ClassVerifierVisitor < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: ClassVerifierVisitor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -145534,6 +139377,8 @@ const classtable_elt_t VFT_syntax___mmbuilder___ClassVerifierVisitor[83] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -145547,12 +139392,12 @@ const classtable_elt_t VFT_syntax___mmbuilder___ClassVerifierVisitor[83] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ClassVerifierVisitor < Visitor: superclass init_table position */},
+  {(bigint) 1 /* 50: ClassVerifierVisitor < Visitor: superclass init_table position */},
   {(bigint) syntax___mmbuilder___ClassVerifierVisitor___visit},
   {(bigint) parser___parser_prod___Visitor___enter_visit},
   {(bigint) parser___parser_prod___Visitor___current_node},
   {(bigint) parser___parser_prod___Visitor___init},
-  {(bigint) 2 /* 52: ClassVerifierVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) 0 /* 55: ClassVerifierVisitor < AbsSyntaxVisitor: superclass init_table position */},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___type_object},
@@ -145581,7 +139426,7 @@ const classtable_elt_t VFT_syntax___mmbuilder___ClassVerifierVisitor[83] = {
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 81: ClassVerifierVisitor < ClassVerifierVisitor: superclass init_table position */},
+  {(bigint) 3 /* 84: ClassVerifierVisitor < ClassVerifierVisitor: superclass init_table position */},
   {(bigint) syntax___mmbuilder___ClassVerifierVisitor___init},
 };
 /* 0: Pointer to the classtable */
@@ -145604,7 +139449,7 @@ void INIT_ATTRIBUTES__syntax___mmbuilder___ClassVerifierVisitor(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:66 */
+  /* parser/parser_prod.nit:66 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -145659,7 +139504,7 @@ val_t NEW_ClassVerifierVisitor_syntax___mmbuilder___ClassVerifierVisitor___init(
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:383 */
+  /* syntax/mmbuilder.nit:383 */
   fra.me.REG[2] = NEW_syntax___mmbuilder___ClassVerifierVisitor();
   INIT_ATTRIBUTES__syntax___mmbuilder___ClassVerifierVisitor(fra.me.REG[2]);
   syntax___mmbuilder___ClassVerifierVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -145667,14 +139512,15 @@ val_t NEW_ClassVerifierVisitor_syntax___mmbuilder___ClassVerifierVisitor___init(
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_syntax___mmbuilder___PropertyBuilderVisitor[83] = {
-  {(bigint) 2787 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___mmbuilder___PropertyBuilderVisitor[86] = {
+  {(bigint) 2547 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "PropertyBuilderVisitor" /* 2: Class Name */},
   {(bigint) 3 /* 3: PropertyBuilderVisitor < Object: superclass typecheck marker */},
   {(bigint) 15 /* 4: PropertyBuilderVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 2371 /* 5: PropertyBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 2787 /* 6: PropertyBuilderVisitor < PropertyBuilderVisitor: superclass typecheck marker */},
+  {(bigint) 2407 /* 5: PropertyBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 2547 /* 6: PropertyBuilderVisitor < PropertyBuilderVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -145686,7 +139532,7 @@ const classtable_elt_t VFT_syntax___mmbuilder___PropertyBuilderVisitor[83] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: PropertyBuilderVisitor < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: PropertyBuilderVisitor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -145702,6 +139548,8 @@ const classtable_elt_t VFT_syntax___mmbuilder___PropertyBuilderVisitor[83] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -145715,12 +139563,12 @@ const classtable_elt_t VFT_syntax___mmbuilder___PropertyBuilderVisitor[83] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: PropertyBuilderVisitor < Visitor: superclass init_table position */},
+  {(bigint) 1 /* 50: PropertyBuilderVisitor < Visitor: superclass init_table position */},
   {(bigint) syntax___mmbuilder___PropertyBuilderVisitor___visit},
   {(bigint) parser___parser_prod___Visitor___enter_visit},
   {(bigint) parser___parser_prod___Visitor___current_node},
   {(bigint) parser___parser_prod___Visitor___init},
-  {(bigint) 2 /* 52: PropertyBuilderVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) 0 /* 55: PropertyBuilderVisitor < AbsSyntaxVisitor: superclass init_table position */},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___type_object},
@@ -145749,7 +139597,7 @@ const classtable_elt_t VFT_syntax___mmbuilder___PropertyBuilderVisitor[83] = {
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 81: PropertyBuilderVisitor < PropertyBuilderVisitor: superclass init_table position */},
+  {(bigint) 3 /* 84: PropertyBuilderVisitor < PropertyBuilderVisitor: superclass init_table position */},
   {(bigint) syntax___mmbuilder___PropertyBuilderVisitor___init},
 };
 /* 0: Pointer to the classtable */
@@ -145772,7 +139620,7 @@ void INIT_ATTRIBUTES__syntax___mmbuilder___PropertyBuilderVisitor(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:66 */
+  /* parser/parser_prod.nit:66 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -145827,7 +139675,7 @@ val_t NEW_PropertyBuilderVisitor_syntax___mmbuilder___PropertyBuilderVisitor___i
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:394 */
+  /* syntax/mmbuilder.nit:394 */
   fra.me.REG[2] = NEW_syntax___mmbuilder___PropertyBuilderVisitor();
   INIT_ATTRIBUTES__syntax___mmbuilder___PropertyBuilderVisitor(fra.me.REG[2]);
   syntax___mmbuilder___PropertyBuilderVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -145835,14 +139683,15 @@ val_t NEW_PropertyBuilderVisitor_syntax___mmbuilder___PropertyBuilderVisitor___i
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_syntax___mmbuilder___PropertyVerifierVisitor[85] = {
-  {(bigint) 2783 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___mmbuilder___PropertyVerifierVisitor[88] = {
+  {(bigint) 2543 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "PropertyVerifierVisitor" /* 2: Class Name */},
   {(bigint) 3 /* 3: PropertyVerifierVisitor < Object: superclass typecheck marker */},
   {(bigint) 15 /* 4: PropertyVerifierVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 2371 /* 5: PropertyVerifierVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 2783 /* 6: PropertyVerifierVisitor < PropertyVerifierVisitor: superclass typecheck marker */},
+  {(bigint) 2407 /* 5: PropertyVerifierVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 2543 /* 6: PropertyVerifierVisitor < PropertyVerifierVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -145854,7 +139703,7 @@ const classtable_elt_t VFT_syntax___mmbuilder___PropertyVerifierVisitor[85] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: PropertyVerifierVisitor < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: PropertyVerifierVisitor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -145870,6 +139719,8 @@ const classtable_elt_t VFT_syntax___mmbuilder___PropertyVerifierVisitor[85] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -145883,12 +139734,12 @@ const classtable_elt_t VFT_syntax___mmbuilder___PropertyVerifierVisitor[85] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: PropertyVerifierVisitor < Visitor: superclass init_table position */},
+  {(bigint) 1 /* 50: PropertyVerifierVisitor < Visitor: superclass init_table position */},
   {(bigint) syntax___mmbuilder___PropertyVerifierVisitor___visit},
   {(bigint) parser___parser_prod___Visitor___enter_visit},
   {(bigint) parser___parser_prod___Visitor___current_node},
   {(bigint) parser___parser_prod___Visitor___init},
-  {(bigint) 2 /* 52: PropertyVerifierVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) 0 /* 55: PropertyVerifierVisitor < AbsSyntaxVisitor: superclass init_table position */},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___type_object},
@@ -145917,7 +139768,7 @@ const classtable_elt_t VFT_syntax___mmbuilder___PropertyVerifierVisitor[85] = {
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 81: PropertyVerifierVisitor < PropertyVerifierVisitor: superclass init_table position */},
+  {(bigint) 3 /* 84: PropertyVerifierVisitor < PropertyVerifierVisitor: superclass init_table position */},
   {(bigint) syntax___mmbuilder___PropertyVerifierVisitor___signature_builder},
   {(bigint) syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq},
   {(bigint) syntax___mmbuilder___PropertyVerifierVisitor___init},
@@ -145943,7 +139794,7 @@ void INIT_ATTRIBUTES__syntax___mmbuilder___PropertyVerifierVisitor(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:66 */
+  /* parser/parser_prod.nit:66 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -146003,7 +139854,7 @@ val_t NEW_PropertyVerifierVisitor_syntax___mmbuilder___PropertyVerifierVisitor__
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:407 */
+  /* syntax/mmbuilder.nit:407 */
   fra.me.REG[2] = NEW_syntax___mmbuilder___PropertyVerifierVisitor();
   INIT_ATTRIBUTES__syntax___mmbuilder___PropertyVerifierVisitor(fra.me.REG[2]);
   syntax___mmbuilder___PropertyVerifierVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -146011,7 +139862,7 @@ val_t NEW_PropertyVerifierVisitor_syntax___mmbuilder___PropertyVerifierVisitor__
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_syntax___mmbuilder___SignatureBuilder[61] = {
+const classtable_elt_t VFT_syntax___mmbuilder___SignatureBuilder[64] = {
   {(bigint) 51 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "SignatureBuilder" /* 2: Class Name */},
@@ -146028,9 +139879,10 @@ const classtable_elt_t VFT_syntax___mmbuilder___SignatureBuilder[61] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: SignatureBuilder < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: SignatureBuilder < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -146046,6 +139898,8 @@ const classtable_elt_t VFT_syntax___mmbuilder___SignatureBuilder[61] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -146059,7 +139913,7 @@ const classtable_elt_t VFT_syntax___mmbuilder___SignatureBuilder[61] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: SignatureBuilder < SignatureBuilder: superclass init_table position */},
+  {(bigint) 1 /* 50: SignatureBuilder < SignatureBuilder: superclass init_table position */},
   {(bigint) syntax___mmbuilder___SignatureBuilder___params},
   {(bigint) syntax___mmbuilder___SignatureBuilder___params__eq},
   {(bigint) syntax___mmbuilder___SignatureBuilder___untyped_params},
@@ -146096,24 +139950,24 @@ void INIT_ATTRIBUTES__syntax___mmbuilder___SignatureBuilder(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:417 */
+  /* syntax/mmbuilder.nit:417 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:420 */
+  /* syntax/mmbuilder.nit:420 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:423 */
+  /* syntax/mmbuilder.nit:423 */
   REGB0 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:236 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB0 = TAG_Int(-UNTAG_Int(REGB0));
   ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]) = REGB0;
-  /* ./syntax//mmbuilder.nit:426 */
+  /* syntax/mmbuilder.nit:426 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:429 */
+  /* syntax/mmbuilder.nit:429 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]) = REGB0;
-  /* ./syntax//mmbuilder.nit:431 */
+  /* syntax/mmbuilder.nit:431 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___mmbuilder___SignatureBuilder____signature(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -146186,13 +140040,14 @@ val_t NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_syntax___mmbuilder___MethidAccumulator[54] = {
-  {(bigint) 2119 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___mmbuilder___MethidAccumulator[57] = {
+  {(bigint) 2155 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MethidAccumulator" /* 2: Class Name */},
   {(bigint) 3 /* 3: MethidAccumulator < Object: superclass typecheck marker */},
   {(bigint) 15 /* 4: MethidAccumulator < Visitor: superclass typecheck marker */},
-  {(bigint) 2119 /* 5: MethidAccumulator < MethidAccumulator: superclass typecheck marker */},
+  {(bigint) 2155 /* 5: MethidAccumulator < MethidAccumulator: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -146205,7 +140060,7 @@ const classtable_elt_t VFT_syntax___mmbuilder___MethidAccumulator[54] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: MethidAccumulator < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: MethidAccumulator < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -146221,6 +140076,8 @@ const classtable_elt_t VFT_syntax___mmbuilder___MethidAccumulator[54] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -146234,12 +140091,12 @@ const classtable_elt_t VFT_syntax___mmbuilder___MethidAccumulator[54] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: MethidAccumulator < Visitor: superclass init_table position */},
+  {(bigint) 0 /* 50: MethidAccumulator < Visitor: superclass init_table position */},
   {(bigint) syntax___mmbuilder___MethidAccumulator___visit},
   {(bigint) parser___parser_prod___Visitor___enter_visit},
   {(bigint) parser___parser_prod___Visitor___current_node},
   {(bigint) parser___parser_prod___Visitor___init},
-  {(bigint) 2 /* 52: MethidAccumulator < MethidAccumulator: superclass init_table position */},
+  {(bigint) 2 /* 55: MethidAccumulator < MethidAccumulator: superclass init_table position */},
   {(bigint) syntax___mmbuilder___MethidAccumulator___name},
 };
 /* 0: Pointer to the classtable */
@@ -146259,10 +140116,10 @@ void INIT_ATTRIBUTES__syntax___mmbuilder___MethidAccumulator(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:1251 */
+  /* syntax/mmbuilder.nit:1255 */
   fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___init();
   ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:66 */
+  /* parser/parser_prod.nit:66 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -146315,12 +140172,13 @@ val_t NEW_MethidAccumulator_parser___parser_prod___Visitor___init(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_icode___icode_base___IRegister[58] = {
-  {(bigint) 211 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IRegister[61] = {
+  {(bigint) 207 /* 0: Identity */},
   {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IRegister" /* 2: Class Name */},
   {(bigint) 3 /* 3: IRegister < Object: superclass typecheck marker */},
-  {(bigint) 211 /* 4: IRegister < IRegister: superclass typecheck marker */},
+  {(bigint) 207 /* 4: IRegister < IRegister: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -146334,7 +140192,7 @@ const classtable_elt_t VFT_icode___icode_base___IRegister[58] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: IRegister < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: IRegister < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -146350,6 +140208,8 @@ const classtable_elt_t VFT_icode___icode_base___IRegister[58] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -146371,7 +140231,7 @@ const classtable_elt_t VFT_icode___icode_base___IRegister[58] = {
   {(bigint) analysis___allocate_iregister_slots___IRegister___local_iroutine__eq},
   {(bigint) analysis___allocate_iregister_slots___IRegister___in_tag_slots},
   {(bigint) analysis___allocate_iregister_slots___IRegister___in_tag_slots__eq},
-  {(bigint) 1 /* 55: IRegister < IRegister: superclass init_table position */},
+  {(bigint) 1 /* 58: IRegister < IRegister: superclass init_table position */},
   {(bigint) icode___icode_base___IRegister___stype},
   {(bigint) icode___icode_base___IRegister___init},
 };
@@ -146399,19 +140259,19 @@ void INIT_ATTRIBUTES__icode___icode_base___IRegister(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//allocate_iregister_slots.nit:287 */
+  /* analysis/allocate_iregister_slots.nit:287 */
   REGB0 = TAG_Bool(true);
   ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra.me.REG[0]) = REGB0;
-  /* ./analysis//allocate_iregister_slots.nit:293 */
+  /* analysis/allocate_iregister_slots.nit:293 */
   REGB0 = TAG_Bool(false);
   ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra.me.REG[0]) = REGB0;
-  /* ./analysis//allocate_iregister_slots.nit:295 */
+  /* analysis/allocate_iregister_slots.nit:295 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_analysis___allocate_iregister_slots___IRegister____first(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./analysis//allocate_iregister_slots.nit:299 */
+  /* analysis/allocate_iregister_slots.nit:299 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_analysis___allocate_iregister_slots___IRegister____last(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./analysis//allocate_iregister_slots.nit:307 */
+  /* analysis/allocate_iregister_slots.nit:307 */
   REGB0 = TAG_Int(0);
   ATTR_analysis___allocate_iregister_slots___IRegister____born_rank(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -146474,7 +140334,7 @@ val_t NEW_IRegister_icode___icode_base___IRegister___init(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:28 */
+  /* icode/icode_base.nit:28 */
   fra.me.REG[1] = NEW_icode___icode_base___IRegister();
   INIT_ATTRIBUTES__icode___icode_base___IRegister(fra.me.REG[1]);
   icode___icode_base___IRegister___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -146482,12 +140342,13 @@ val_t NEW_IRegister_icode___icode_base___IRegister___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_icode___icode_base___IEscapeMark[49] = {
-  {(bigint) 219 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IEscapeMark[52] = {
+  {(bigint) 215 /* 0: Identity */},
   {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IEscapeMark" /* 2: Class Name */},
   {(bigint) 3 /* 3: IEscapeMark < Object: superclass typecheck marker */},
-  {(bigint) 219 /* 4: IEscapeMark < IEscapeMark: superclass typecheck marker */},
+  {(bigint) 215 /* 4: IEscapeMark < IEscapeMark: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -146501,7 +140362,7 @@ const classtable_elt_t VFT_icode___icode_base___IEscapeMark[49] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: IEscapeMark < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: IEscapeMark < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -146517,6 +140378,8 @@ const classtable_elt_t VFT_icode___icode_base___IEscapeMark[49] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -146530,7 +140393,7 @@ const classtable_elt_t VFT_icode___icode_base___IEscapeMark[49] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: IEscapeMark < IEscapeMark: superclass init_table position */},
+  {(bigint) 1 /* 50: IEscapeMark < IEscapeMark: superclass init_table position */},
   {(bigint) icode___icode_base___IEscapeMark___init},
 };
 /* 0: Pointer to the classtable */
@@ -146587,12 +140450,13 @@ val_t NEW_IEscapeMark_icode___icode_base___IEscapeMark___init(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_icode___icode_base___IClosureDecl[53] = {
-  {(bigint) 243 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IClosureDecl[56] = {
+  {(bigint) 239 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IClosureDecl" /* 2: Class Name */},
   {(bigint) 3 /* 3: IClosureDecl < Object: superclass typecheck marker */},
-  {(bigint) 243 /* 4: IClosureDecl < IClosureDecl: superclass typecheck marker */},
+  {(bigint) 239 /* 4: IClosureDecl < IClosureDecl: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -146606,7 +140470,7 @@ const classtable_elt_t VFT_icode___icode_base___IClosureDecl[53] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: IClosureDecl < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: IClosureDecl < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -146622,6 +140486,8 @@ const classtable_elt_t VFT_icode___icode_base___IClosureDecl[53] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -146636,7 +140502,7 @@ const classtable_elt_t VFT_icode___icode_base___IClosureDecl[53] = {
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) analysis___icode_dump___IClosureDecl___dump},
-  {(bigint) 1 /* 48: IClosureDecl < IClosureDecl: superclass init_table position */},
+  {(bigint) 1 /* 51: IClosureDecl < IClosureDecl: superclass init_table position */},
   {(bigint) icode___icode_base___IClosureDecl___closure},
   {(bigint) icode___icode_base___IClosureDecl___default},
   {(bigint) icode___icode_base___IClosureDecl___default__eq},
@@ -146701,7 +140567,7 @@ val_t NEW_IClosureDecl_icode___icode_base___IClosureDecl___init(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:46 */
+  /* icode/icode_base.nit:46 */
   fra.me.REG[1] = NEW_icode___icode_base___IClosureDecl();
   INIT_ATTRIBUTES__icode___icode_base___IClosureDecl(fra.me.REG[1]);
   icode___icode_base___IClosureDecl___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -146709,12 +140575,13 @@ val_t NEW_IClosureDecl_icode___icode_base___IClosureDecl___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_icode___icode_base___IRoutine[68] = {
-  {(bigint) 207 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IRoutine[71] = {
+  {(bigint) 203 /* 0: Identity */},
   {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IRoutine" /* 2: Class Name */},
   {(bigint) 3 /* 3: IRoutine < Object: superclass typecheck marker */},
-  {(bigint) 207 /* 4: IRoutine < IRoutine: superclass typecheck marker */},
+  {(bigint) 203 /* 4: IRoutine < IRoutine: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -146728,7 +140595,7 @@ const classtable_elt_t VFT_icode___icode_base___IRoutine[68] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: IRoutine < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: IRoutine < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -146744,6 +140611,8 @@ const classtable_elt_t VFT_icode___icode_base___IRoutine[68] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -146757,15 +140626,8 @@ const classtable_elt_t VFT_icode___icode_base___IRoutine[68] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) compiling___compiling_icode___IRoutine___compile_signature_to_c},
-  {(bigint) compiling___compiling_icode___IRoutine___compile_inside_to_c},
-  {(bigint) compiling___compiling_icode___IRoutine___compile_to_c},
-  {(bigint) analysis___IRoutine___optimize},
-  {(bigint) analysis___icode_dump___IRoutine___dump},
-  {(bigint) analysis___allocate_iregister_slots___IRoutine___std_slots_nb},
-  {(bigint) analysis___allocate_iregister_slots___IRoutine___tag_slots_nb},
-  {(bigint) analysis___allocate_iregister_slots___IRoutine___allocate_iregister_slots},
-  {(bigint) 1 /* 55: IRoutine < IRoutine: superclass init_table position */},
+  {(bigint) global___dead_method_removal___IRoutine___set_not_reachable},
+  {(bigint) 1 /* 51: IRoutine < IRoutine: superclass init_table position */},
   {(bigint) icode___icode_base___IRoutine___params},
   {(bigint) icode___icode_base___IRoutine___closure_decls},
   {(bigint) icode___icode_base___IRoutine___closure_decls__eq},
@@ -146776,20 +140638,27 @@ const classtable_elt_t VFT_icode___icode_base___IRoutine[68] = {
   {(bigint) icode___icode_base___IRoutine___location},
   {(bigint) icode___icode_base___IRoutine___location__eq},
   {(bigint) icode___icode_base___IRoutine___init},
+  {(bigint) compiling___compiling_icode___IRoutine___compile_signature_to_c},
+  {(bigint) compiling___compiling_icode___IRoutine___compile_inside_to_c},
+  {(bigint) compiling___compiling_icode___IRoutine___compile_to_c},
+  {(bigint) analysis___IRoutine___optimize},
+  {(bigint) analysis___icode_dump___IRoutine___dump},
+  {(bigint) analysis___allocate_iregister_slots___IRoutine___std_slots_nb},
+  {(bigint) analysis___allocate_iregister_slots___IRoutine___tag_slots_nb},
+  {(bigint) analysis___allocate_iregister_slots___IRoutine___allocate_iregister_slots},
   {(bigint) analysis___inline_methods___IRoutine___inline_methods},
-  {(bigint) analysis___dead_method_removal___IRoutine___set_not_reachable},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute IRoutine::_std_slots_nb */
-/* 3: Attribute IRoutine::_tag_slots_nb */
-/* 4: Attribute IRoutine::_params */
-/* 5: Attribute IRoutine::_closure_decls */
-/* 6: Attribute IRoutine::_registers */
-/* 7: Attribute IRoutine::_result */
-/* 8: Attribute IRoutine::_escape_marks */
-/* 9: Attribute IRoutine::_body */
-/* 10: Attribute IRoutine::_location */
+/* 2: Attribute IRoutine::_params */
+/* 3: Attribute IRoutine::_closure_decls */
+/* 4: Attribute IRoutine::_registers */
+/* 5: Attribute IRoutine::_result */
+/* 6: Attribute IRoutine::_escape_marks */
+/* 7: Attribute IRoutine::_body */
+/* 8: Attribute IRoutine::_location */
+/* 9: Attribute IRoutine::_std_slots_nb */
+/* 10: Attribute IRoutine::_tag_slots_nb */
 void INIT_ATTRIBUTES__icode___icode_base___IRoutine(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -146804,27 +140673,27 @@ void INIT_ATTRIBUTES__icode___icode_base___IRoutine(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//allocate_iregister_slots.nit:268 */
-  REGB0 = TAG_Int(0);
-  ATTR_analysis___allocate_iregister_slots___IRoutine____std_slots_nb(fra.me.REG[0]) = REGB0;
-  /* ./analysis//allocate_iregister_slots.nit:271 */
-  REGB0 = TAG_Int(0);
-  ATTR_analysis___allocate_iregister_slots___IRoutine____tag_slots_nb(fra.me.REG[0]) = REGB0;
-  /* ./icode//icode_base.nit:54 */
+  /* icode/icode_base.nit:54 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___IRoutine____closure_decls(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:58 */
+  /* icode/icode_base.nit:58 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_icode___icode_base___IRoutine____registers(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:64 */
+  /* icode/icode_base.nit:64 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_icode___icode_base___IRoutine____escape_marks(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:67 */
+  /* icode/icode_base.nit:67 */
   fra.me.REG[1] = NEW_ISeq_icode___icode_base___ISeq___init();
   ATTR_icode___icode_base___IRoutine____body(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:69 */
+  /* icode/icode_base.nit:69 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___IRoutine____location(fra.me.REG[0]) = fra.me.REG[1];
+  /* analysis/allocate_iregister_slots.nit:268 */
+  REGB0 = TAG_Int(0);
+  ATTR_analysis___allocate_iregister_slots___IRoutine____std_slots_nb(fra.me.REG[0]) = REGB0;
+  /* analysis/allocate_iregister_slots.nit:271 */
+  REGB0 = TAG_Int(0);
+  ATTR_analysis___allocate_iregister_slots___IRoutine____tag_slots_nb(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
 }
 val_t NEW_icode___icode_base___IRoutine(void)
@@ -146849,16 +140718,6 @@ void CHECKNEW_icode___icode_base___IRoutine(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRoutine____std_slots_nb(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_std_slots_nb", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRoutine____tag_slots_nb(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_tag_slots_nb", LOCATE_nitc, 0);
-  }
   REGB0 = TAG_Bool(ATTR_icode___icode_base___IRoutine____params(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -146879,6 +140738,16 @@ void CHECKNEW_icode___icode_base___IRoutine(val_t p0){
   } else {
     nit_abort("Uninitialized attribute %s", "_body", LOCATE_nitc, 0);
   }
+  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRoutine____std_slots_nb(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_std_slots_nb", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRoutine____tag_slots_nb(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_tag_slots_nb", LOCATE_nitc, 0);
+  }
   stack_frame_head = fra.me.prev;
 }
 val_t NEW_IRoutine_icode___icode_base___IRoutine___init(val_t p0, val_t p1){
@@ -146897,7 +140766,7 @@ val_t NEW_IRoutine_icode___icode_base___IRoutine___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:72 */
+  /* icode/icode_base.nit:72 */
   fra.me.REG[2] = NEW_icode___icode_base___IRoutine();
   INIT_ATTRIBUTES__icode___icode_base___IRoutine(fra.me.REG[2]);
   icode___icode_base___IRoutine___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -146905,13 +140774,14 @@ val_t NEW_IRoutine_icode___icode_base___IRoutine___init(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_icode___icode_base___IClosureDef[71] = {
-  {(bigint) 2251 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IClosureDef[74] = {
+  {(bigint) 2287 /* 0: Identity */},
   {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IClosureDef" /* 2: Class Name */},
   {(bigint) 3 /* 3: IClosureDef < Object: superclass typecheck marker */},
-  {(bigint) 207 /* 4: IClosureDef < IRoutine: superclass typecheck marker */},
-  {(bigint) 2251 /* 5: IClosureDef < IClosureDef: superclass typecheck marker */},
+  {(bigint) 203 /* 4: IClosureDef < IRoutine: superclass typecheck marker */},
+  {(bigint) 2287 /* 5: IClosureDef < IClosureDef: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -146924,7 +140794,7 @@ const classtable_elt_t VFT_icode___icode_base___IClosureDef[71] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: IClosureDef < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: IClosureDef < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -146940,6 +140810,8 @@ const classtable_elt_t VFT_icode___icode_base___IClosureDef[71] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -146953,15 +140825,8 @@ const classtable_elt_t VFT_icode___icode_base___IClosureDef[71] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) compiling___compiling_icode___IRoutine___compile_signature_to_c},
-  {(bigint) compiling___compiling_icode___IRoutine___compile_inside_to_c},
-  {(bigint) compiling___compiling_icode___IRoutine___compile_to_c},
-  {(bigint) analysis___IRoutine___optimize},
-  {(bigint) analysis___icode_dump___IRoutine___dump},
-  {(bigint) analysis___allocate_iregister_slots___IRoutine___std_slots_nb},
-  {(bigint) analysis___allocate_iregister_slots___IRoutine___tag_slots_nb},
-  {(bigint) analysis___allocate_iregister_slots___IRoutine___allocate_iregister_slots},
-  {(bigint) 1 /* 55: IClosureDef < IRoutine: superclass init_table position */},
+  {(bigint) global___dead_method_removal___IRoutine___set_not_reachable},
+  {(bigint) 1 /* 51: IClosureDef < IRoutine: superclass init_table position */},
   {(bigint) icode___icode_base___IRoutine___params},
   {(bigint) icode___icode_base___IRoutine___closure_decls},
   {(bigint) icode___icode_base___IRoutine___closure_decls__eq},
@@ -146972,23 +140837,30 @@ const classtable_elt_t VFT_icode___icode_base___IClosureDef[71] = {
   {(bigint) icode___icode_base___IRoutine___location},
   {(bigint) icode___icode_base___IRoutine___location__eq},
   {(bigint) icode___icode_base___IRoutine___init},
+  {(bigint) compiling___compiling_icode___IRoutine___compile_signature_to_c},
+  {(bigint) compiling___compiling_icode___IRoutine___compile_inside_to_c},
+  {(bigint) compiling___compiling_icode___IRoutine___compile_to_c},
+  {(bigint) analysis___IRoutine___optimize},
+  {(bigint) analysis___icode_dump___IRoutine___dump},
+  {(bigint) analysis___allocate_iregister_slots___IRoutine___std_slots_nb},
+  {(bigint) analysis___allocate_iregister_slots___IRoutine___tag_slots_nb},
+  {(bigint) analysis___allocate_iregister_slots___IRoutine___allocate_iregister_slots},
   {(bigint) analysis___inline_methods___IRoutine___inline_methods},
-  {(bigint) analysis___dead_method_removal___IRoutine___set_not_reachable},
   {(bigint) compiling___compiling_icode___IClosureDef___compile_closure},
-  {(bigint) 2 /* 69: IClosureDef < IClosureDef: superclass init_table position */},
+  {(bigint) 2 /* 72: IClosureDef < IClosureDef: superclass init_table position */},
   {(bigint) icode___icode_base___IClosureDef___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute IClosureDef::_std_slots_nb */
-/* 3: Attribute IClosureDef::_tag_slots_nb */
-/* 4: Attribute IClosureDef::_params */
-/* 5: Attribute IClosureDef::_closure_decls */
-/* 6: Attribute IClosureDef::_registers */
-/* 7: Attribute IClosureDef::_result */
-/* 8: Attribute IClosureDef::_escape_marks */
-/* 9: Attribute IClosureDef::_body */
-/* 10: Attribute IClosureDef::_location */
+/* 2: Attribute IClosureDef::_params */
+/* 3: Attribute IClosureDef::_closure_decls */
+/* 4: Attribute IClosureDef::_registers */
+/* 5: Attribute IClosureDef::_result */
+/* 6: Attribute IClosureDef::_escape_marks */
+/* 7: Attribute IClosureDef::_body */
+/* 8: Attribute IClosureDef::_location */
+/* 9: Attribute IClosureDef::_std_slots_nb */
+/* 10: Attribute IClosureDef::_tag_slots_nb */
 void INIT_ATTRIBUTES__icode___icode_base___IClosureDef(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -147003,25 +140875,25 @@ void INIT_ATTRIBUTES__icode___icode_base___IClosureDef(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:54 */
+  /* icode/icode_base.nit:54 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___IRoutine____closure_decls(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:58 */
+  /* icode/icode_base.nit:58 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_icode___icode_base___IRoutine____registers(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:64 */
+  /* icode/icode_base.nit:64 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_icode___icode_base___IRoutine____escape_marks(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:67 */
+  /* icode/icode_base.nit:67 */
   fra.me.REG[1] = NEW_ISeq_icode___icode_base___ISeq___init();
   ATTR_icode___icode_base___IRoutine____body(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:69 */
+  /* icode/icode_base.nit:69 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___IRoutine____location(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./analysis//allocate_iregister_slots.nit:268 */
+  /* analysis/allocate_iregister_slots.nit:268 */
   REGB0 = TAG_Int(0);
   ATTR_analysis___allocate_iregister_slots___IRoutine____std_slots_nb(fra.me.REG[0]) = REGB0;
-  /* ./analysis//allocate_iregister_slots.nit:271 */
+  /* analysis/allocate_iregister_slots.nit:271 */
   REGB0 = TAG_Int(0);
   ATTR_analysis___allocate_iregister_slots___IRoutine____tag_slots_nb(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -147096,7 +140968,7 @@ val_t NEW_IClosureDef_icode___icode_base___IClosureDef___init(val_t p0, val_t p1
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:82 */
+  /* icode/icode_base.nit:82 */
   fra.me.REG[2] = NEW_icode___icode_base___IClosureDef();
   INIT_ATTRIBUTES__icode___icode_base___IClosureDef(fra.me.REG[2]);
   icode___icode_base___IClosureDef___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -147104,14 +140976,15 @@ val_t NEW_IClosureDef_icode___icode_base___IClosureDef___init(val_t p0, val_t p1
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_icode___icode_base___ISeq[70] = {
-  {(bigint) 2867 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___ISeq[73] = {
+  {(bigint) 2627 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ISeq" /* 2: Class Name */},
   {(bigint) 3 /* 3: ISeq < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: ISeq < ICode: superclass typecheck marker */},
-  {(bigint) 2247 /* 5: ISeq < ICode0: superclass typecheck marker */},
-  {(bigint) 2867 /* 6: ISeq < ISeq: superclass typecheck marker */},
+  {(bigint) 235 /* 4: ISeq < ICode: superclass typecheck marker */},
+  {(bigint) 2283 /* 5: ISeq < ICode0: superclass typecheck marker */},
+  {(bigint) 2627 /* 6: ISeq < ISeq: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -147123,7 +140996,7 @@ const classtable_elt_t VFT_icode___icode_base___ISeq[70] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ISeq < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: ISeq < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -147139,6 +141012,8 @@ const classtable_elt_t VFT_icode___icode_base___ISeq[70] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -147160,7 +141035,7 @@ const classtable_elt_t VFT_icode___icode_base___ISeq[70] = {
   {(bigint) analysis___icode_dump___ICode___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___ISeq___inner_dup_with},
-  {(bigint) 1 /* 55: ISeq < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: ISeq < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode0___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -147168,9 +141043,9 @@ const classtable_elt_t VFT_icode___icode_base___ISeq[70] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___ICode___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: ISeq < ICode0: superclass init_table position */},
+  {(bigint) 0 /* 66: ISeq < ICode0: superclass init_table position */},
   {(bigint) icode___icode_tools___ISeq___dup_seq_to},
-  {(bigint) 3 /* 65: ISeq < ISeq: superclass init_table position */},
+  {(bigint) 3 /* 68: ISeq < ISeq: superclass init_table position */},
   {(bigint) icode___icode_base___ISeq___icodes},
   {(bigint) icode___icode_base___ISeq___iescape_mark},
   {(bigint) icode___icode_base___ISeq___iescape_mark__eq},
@@ -147195,13 +141070,13 @@ void INIT_ATTRIBUTES__icode___icode_base___ISeq(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:167 */
+  /* icode/icode_base.nit:167 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_icode___icode_base___ISeq____icodes(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -147247,7 +141122,7 @@ val_t NEW_ISeq_icode___icode_base___ISeq___init(void){
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./icode//icode_base.nit:172 */
+  /* icode/icode_base.nit:172 */
   fra.me.REG[0] = NEW_icode___icode_base___ISeq();
   INIT_ATTRIBUTES__icode___icode_base___ISeq(fra.me.REG[0]);
   icode___icode_base___ISeq___init(fra.me.REG[0], init_table);
@@ -147255,15 +141130,16 @@ val_t NEW_ISeq_icode___icode_base___ISeq___init(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_icode___icode_base___ILoop[72] = {
-  {(bigint) 3219 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___ILoop[75] = {
+  {(bigint) 3283 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ILoop" /* 2: Class Name */},
   {(bigint) 3 /* 3: ILoop < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: ILoop < ICode: superclass typecheck marker */},
-  {(bigint) 2247 /* 5: ILoop < ICode0: superclass typecheck marker */},
-  {(bigint) 2867 /* 6: ILoop < ISeq: superclass typecheck marker */},
-  {(bigint) 3219 /* 7: ILoop < ILoop: superclass typecheck marker */},
+  {(bigint) 235 /* 4: ILoop < ICode: superclass typecheck marker */},
+  {(bigint) 2283 /* 5: ILoop < ICode0: superclass typecheck marker */},
+  {(bigint) 2627 /* 6: ILoop < ISeq: superclass typecheck marker */},
+  {(bigint) 3283 /* 7: ILoop < ILoop: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -147274,7 +141150,7 @@ const classtable_elt_t VFT_icode___icode_base___ILoop[72] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ILoop < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: ILoop < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -147290,6 +141166,8 @@ const classtable_elt_t VFT_icode___icode_base___ILoop[72] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -147311,7 +141189,7 @@ const classtable_elt_t VFT_icode___icode_base___ILoop[72] = {
   {(bigint) analysis___icode_dump___ICode___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___ILoop___inner_dup_with},
-  {(bigint) 1 /* 55: ILoop < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: ILoop < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode0___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -147319,14 +141197,14 @@ const classtable_elt_t VFT_icode___icode_base___ILoop[72] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___ICode___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: ILoop < ICode0: superclass init_table position */},
+  {(bigint) 0 /* 66: ILoop < ICode0: superclass init_table position */},
   {(bigint) icode___icode_tools___ISeq___dup_seq_to},
-  {(bigint) 3 /* 65: ILoop < ISeq: superclass init_table position */},
+  {(bigint) 3 /* 68: ILoop < ISeq: superclass init_table position */},
   {(bigint) icode___icode_base___ISeq___icodes},
   {(bigint) icode___icode_base___ISeq___iescape_mark},
   {(bigint) icode___icode_base___ISeq___iescape_mark__eq},
   {(bigint) icode___icode_base___ISeq___init},
-  {(bigint) 4 /* 70: ILoop < ILoop: superclass init_table position */},
+  {(bigint) 4 /* 73: ILoop < ILoop: superclass init_table position */},
   {(bigint) icode___icode_base___ILoop___init},
 };
 /* 0: Pointer to the classtable */
@@ -147348,13 +141226,13 @@ void INIT_ATTRIBUTES__icode___icode_base___ILoop(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:167 */
+  /* icode/icode_base.nit:167 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
   ATTR_icode___icode_base___ISeq____icodes(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -147400,7 +141278,7 @@ val_t NEW_ILoop_icode___icode_base___ILoop___init(void){
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./icode//icode_base.nit:179 */
+  /* icode/icode_base.nit:179 */
   fra.me.REG[0] = NEW_icode___icode_base___ILoop();
   INIT_ATTRIBUTES__icode___icode_base___ILoop(fra.me.REG[0]);
   icode___icode_base___ILoop___init(fra.me.REG[0], init_table);
@@ -147408,14 +141286,15 @@ val_t NEW_ILoop_icode___icode_base___ILoop___init(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_icode___icode_base___IIf[70] = {
-  {(bigint) 2907 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IIf[73] = {
+  {(bigint) 2667 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IIf" /* 2: Class Name */},
   {(bigint) 3 /* 3: IIf < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: IIf < ICode: superclass typecheck marker */},
-  {(bigint) 2243 /* 5: IIf < ICode1: superclass typecheck marker */},
-  {(bigint) 2907 /* 6: IIf < IIf: superclass typecheck marker */},
+  {(bigint) 235 /* 4: IIf < ICode: superclass typecheck marker */},
+  {(bigint) 2279 /* 5: IIf < ICode1: superclass typecheck marker */},
+  {(bigint) 2667 /* 6: IIf < IIf: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -147427,7 +141306,7 @@ const classtable_elt_t VFT_icode___icode_base___IIf[70] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: IIf < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: IIf < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -147443,6 +141322,8 @@ const classtable_elt_t VFT_icode___icode_base___IIf[70] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -147464,7 +141345,7 @@ const classtable_elt_t VFT_icode___icode_base___IIf[70] = {
   {(bigint) analysis___icode_dump___ICode___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___IIf___inner_dup_with},
-  {(bigint) 1 /* 55: IIf < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: IIf < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode1___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -147472,10 +141353,10 @@ const classtable_elt_t VFT_icode___icode_base___IIf[70] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___ICode___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: IIf < ICode1: superclass init_table position */},
+  {(bigint) 0 /* 66: IIf < ICode1: superclass init_table position */},
   {(bigint) icode___icode_base___ICode1___expr},
   {(bigint) icode___icode_base___ICode1___init},
-  {(bigint) 3 /* 66: IIf < IIf: superclass init_table position */},
+  {(bigint) 3 /* 69: IIf < IIf: superclass init_table position */},
   {(bigint) icode___icode_base___IIf___then_seq},
   {(bigint) icode___icode_base___IIf___else_seq},
   {(bigint) icode___icode_base___IIf___init},
@@ -147500,16 +141381,16 @@ void INIT_ATTRIBUTES__icode___icode_base___IIf(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:187 */
+  /* icode/icode_base.nit:187 */
   fra.me.REG[1] = NEW_ISeq_icode___icode_base___ISeq___init();
   ATTR_icode___icode_base___IIf____then_seq(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:189 */
+  /* icode/icode_base.nit:189 */
   fra.me.REG[1] = NEW_ISeq_icode___icode_base___ISeq___init();
   ATTR_icode___icode_base___IIf____else_seq(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -147567,7 +141448,7 @@ val_t NEW_IIf_icode___icode_base___IIf___init(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:190 */
+  /* icode/icode_base.nit:190 */
   fra.me.REG[1] = NEW_icode___icode_base___IIf();
   INIT_ATTRIBUTES__icode___icode_base___IIf(fra.me.REG[1]);
   icode___icode_base___IIf___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -147575,14 +141456,15 @@ val_t NEW_IIf_icode___icode_base___IIf___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_icode___icode_base___IEscape[67] = {
-  {(bigint) 2919 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IEscape[70] = {
+  {(bigint) 2679 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IEscape" /* 2: Class Name */},
   {(bigint) 3 /* 3: IEscape < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: IEscape < ICode: superclass typecheck marker */},
-  {(bigint) 2247 /* 5: IEscape < ICode0: superclass typecheck marker */},
-  {(bigint) 2919 /* 6: IEscape < IEscape: superclass typecheck marker */},
+  {(bigint) 235 /* 4: IEscape < ICode: superclass typecheck marker */},
+  {(bigint) 2283 /* 5: IEscape < ICode0: superclass typecheck marker */},
+  {(bigint) 2679 /* 6: IEscape < IEscape: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -147594,7 +141476,7 @@ const classtable_elt_t VFT_icode___icode_base___IEscape[67] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: IEscape < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: IEscape < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -147610,6 +141492,8 @@ const classtable_elt_t VFT_icode___icode_base___IEscape[67] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -147631,7 +141515,7 @@ const classtable_elt_t VFT_icode___icode_base___IEscape[67] = {
   {(bigint) analysis___icode_dump___IEscape___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___IEscape___inner_dup_with},
-  {(bigint) 1 /* 55: IEscape < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: IEscape < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode0___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -147639,8 +141523,8 @@ const classtable_elt_t VFT_icode___icode_base___IEscape[67] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___ICode___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: IEscape < ICode0: superclass init_table position */},
-  {(bigint) 3 /* 64: IEscape < IEscape: superclass init_table position */},
+  {(bigint) 0 /* 66: IEscape < ICode0: superclass init_table position */},
+  {(bigint) 3 /* 67: IEscape < IEscape: superclass init_table position */},
   {(bigint) icode___icode_base___IEscape___iescape_mark},
   {(bigint) icode___icode_base___IEscape___init},
 };
@@ -147662,10 +141546,10 @@ void INIT_ATTRIBUTES__icode___icode_base___IEscape(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -147713,7 +141597,7 @@ val_t NEW_IEscape_icode___icode_base___IEscape___init(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:199 */
+  /* icode/icode_base.nit:199 */
   fra.me.REG[1] = NEW_icode___icode_base___IEscape();
   INIT_ATTRIBUTES__icode___icode_base___IEscape(fra.me.REG[1]);
   icode___icode_base___IEscape___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -147721,14 +141605,15 @@ val_t NEW_IEscape_icode___icode_base___IEscape___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_icode___icode_base___IAbort[68] = {
-  {(bigint) 2959 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IAbort[71] = {
+  {(bigint) 2719 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IAbort" /* 2: Class Name */},
   {(bigint) 3 /* 3: IAbort < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: IAbort < ICode: superclass typecheck marker */},
-  {(bigint) 2247 /* 5: IAbort < ICode0: superclass typecheck marker */},
-  {(bigint) 2959 /* 6: IAbort < IAbort: superclass typecheck marker */},
+  {(bigint) 235 /* 4: IAbort < ICode: superclass typecheck marker */},
+  {(bigint) 2283 /* 5: IAbort < ICode0: superclass typecheck marker */},
+  {(bigint) 2719 /* 6: IAbort < IAbort: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -147740,7 +141625,7 @@ const classtable_elt_t VFT_icode___icode_base___IAbort[68] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: IAbort < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: IAbort < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -147756,6 +141641,8 @@ const classtable_elt_t VFT_icode___icode_base___IAbort[68] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -147777,7 +141664,7 @@ const classtable_elt_t VFT_icode___icode_base___IAbort[68] = {
   {(bigint) analysis___icode_dump___IAbort___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___IAbort___inner_dup_with},
-  {(bigint) 1 /* 55: IAbort < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: IAbort < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode0___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -147785,8 +141672,8 @@ const classtable_elt_t VFT_icode___icode_base___IAbort[68] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___ICode___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: IAbort < ICode0: superclass init_table position */},
-  {(bigint) 3 /* 64: IAbort < IAbort: superclass init_table position */},
+  {(bigint) 0 /* 66: IAbort < ICode0: superclass init_table position */},
+  {(bigint) 3 /* 67: IAbort < IAbort: superclass init_table position */},
   {(bigint) icode___icode_base___IAbort___texts},
   {(bigint) icode___icode_base___IAbort___module_location},
   {(bigint) icode___icode_base___IAbort___init},
@@ -147810,10 +141697,10 @@ void INIT_ATTRIBUTES__icode___icode_base___IAbort(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -147868,7 +141755,7 @@ val_t NEW_IAbort_icode___icode_base___IAbort___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:210 */
+  /* icode/icode_base.nit:210 */
   fra.me.REG[2] = NEW_icode___icode_base___IAbort();
   INIT_ATTRIBUTES__icode___icode_base___IAbort(fra.me.REG[2]);
   icode___icode_base___IAbort___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -147876,15 +141763,16 @@ val_t NEW_IAbort_icode___icode_base___IAbort___init(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_icode___icode_base___ICall[78] = {
-  {(bigint) 3227 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___ICall[81] = {
+  {(bigint) 3291 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ICall" /* 2: Class Name */},
   {(bigint) 3 /* 3: ICall < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: ICall < ICode: superclass typecheck marker */},
-  {(bigint) 2235 /* 5: ICall < ICodeN: superclass typecheck marker */},
-  {(bigint) 2955 /* 6: ICall < IAbsCall: superclass typecheck marker */},
-  {(bigint) 3227 /* 7: ICall < ICall: superclass typecheck marker */},
+  {(bigint) 235 /* 4: ICall < ICode: superclass typecheck marker */},
+  {(bigint) 2271 /* 5: ICall < ICodeN: superclass typecheck marker */},
+  {(bigint) 2715 /* 6: ICall < IAbsCall: superclass typecheck marker */},
+  {(bigint) 3291 /* 7: ICall < ICall: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -147895,7 +141783,7 @@ const classtable_elt_t VFT_icode___icode_base___ICall[78] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: ICall < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ICall < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -147911,6 +141799,8 @@ const classtable_elt_t VFT_icode___icode_base___ICall[78] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -147932,7 +141822,7 @@ const classtable_elt_t VFT_icode___icode_base___ICall[78] = {
   {(bigint) analysis___icode_dump___ICall___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___ICall___inner_dup_with},
-  {(bigint) 2 /* 55: ICall < ICode: superclass init_table position */},
+  {(bigint) 2 /* 58: ICall < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICodeN___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -147941,18 +141831,18 @@ const classtable_elt_t VFT_icode___icode_base___ICall[78] = {
   {(bigint) icode___icode_base___ICode___is_pure},
   {(bigint) icode___icode_base___ICode___init},
   {(bigint) analysis___icode_dump___ICode___dump},
-  {(bigint) 1 /* 64: ICall < ICodeN: superclass init_table position */},
+  {(bigint) 1 /* 67: ICall < ICodeN: superclass init_table position */},
   {(bigint) icode___icode_base___ICodeN___exprs},
   {(bigint) icode___icode_base___ICodeN___closure_defs},
   {(bigint) icode___icode_base___ICodeN___closure_defs__eq},
   {(bigint) icode___icode_base___ICodeN___init},
   {(bigint) compiling___compiling_icode___ICall___compile_call_to_c},
-  {(bigint) 0 /* 70: ICall < IAbsCall: superclass init_table position */},
+  {(bigint) 0 /* 73: ICall < IAbsCall: superclass init_table position */},
   {(bigint) icode___icode_base___IAbsCall___property},
   {(bigint) icode___icode_base___IAbsCall___is_explicit_from_extern},
   {(bigint) icode___icode_base___IAbsCall___is_explicit_from_extern__eq},
   {(bigint) icode___icode_base___IAbsCall___init},
-  {(bigint) 4 /* 75: ICall < ICall: superclass init_table position */},
+  {(bigint) 4 /* 78: ICall < ICall: superclass init_table position */},
   {(bigint) icode___icode_base___ICall___init},
   {(bigint) analysis___inline_methods___ICall___is_inlinable},
 };
@@ -147978,13 +141868,13 @@ void INIT_ATTRIBUTES__icode___icode_base___ICall(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:226 */
+  /* icode/icode_base.nit:226 */
   REGB0 = TAG_Bool(false);
   ATTR_icode___icode_base___IAbsCall_____atis_explicit_from_extern(fra.me.REG[0]) = REGB0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -148044,7 +141934,7 @@ val_t NEW_ICall_icode___icode_base___ICall___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:239 */
+  /* icode/icode_base.nit:239 */
   fra.me.REG[2] = NEW_icode___icode_base___ICall();
   INIT_ATTRIBUTES__icode___icode_base___ICall(fra.me.REG[2]);
   icode___icode_base___ICall___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -148052,15 +141942,16 @@ val_t NEW_ICall_icode___icode_base___ICall___init(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_icode___icode_base___ISuper[77] = {
-  {(bigint) 3203 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___ISuper[80] = {
+  {(bigint) 3267 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ISuper" /* 2: Class Name */},
   {(bigint) 3 /* 3: ISuper < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: ISuper < ICode: superclass typecheck marker */},
-  {(bigint) 2235 /* 5: ISuper < ICodeN: superclass typecheck marker */},
-  {(bigint) 2955 /* 6: ISuper < IAbsCall: superclass typecheck marker */},
-  {(bigint) 3203 /* 7: ISuper < ISuper: superclass typecheck marker */},
+  {(bigint) 235 /* 4: ISuper < ICode: superclass typecheck marker */},
+  {(bigint) 2271 /* 5: ISuper < ICodeN: superclass typecheck marker */},
+  {(bigint) 2715 /* 6: ISuper < IAbsCall: superclass typecheck marker */},
+  {(bigint) 3267 /* 7: ISuper < ISuper: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -148071,7 +141962,7 @@ const classtable_elt_t VFT_icode___icode_base___ISuper[77] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: ISuper < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: ISuper < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -148087,6 +141978,8 @@ const classtable_elt_t VFT_icode___icode_base___ISuper[77] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -148108,7 +142001,7 @@ const classtable_elt_t VFT_icode___icode_base___ISuper[77] = {
   {(bigint) analysis___icode_dump___ISuper___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___ISuper___inner_dup_with},
-  {(bigint) 2 /* 55: ISuper < ICode: superclass init_table position */},
+  {(bigint) 2 /* 58: ISuper < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICodeN___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -148117,18 +142010,18 @@ const classtable_elt_t VFT_icode___icode_base___ISuper[77] = {
   {(bigint) icode___icode_base___ICode___is_pure},
   {(bigint) icode___icode_base___ICode___init},
   {(bigint) analysis___icode_dump___ICode___dump},
-  {(bigint) 1 /* 64: ISuper < ICodeN: superclass init_table position */},
+  {(bigint) 1 /* 67: ISuper < ICodeN: superclass init_table position */},
   {(bigint) icode___icode_base___ICodeN___exprs},
   {(bigint) icode___icode_base___ICodeN___closure_defs},
   {(bigint) icode___icode_base___ICodeN___closure_defs__eq},
   {(bigint) icode___icode_base___ICodeN___init},
   {(bigint) compiling___compiling_icode___ISuper___compile_call_to_c},
-  {(bigint) 0 /* 70: ISuper < IAbsCall: superclass init_table position */},
+  {(bigint) 0 /* 73: ISuper < IAbsCall: superclass init_table position */},
   {(bigint) icode___icode_base___IAbsCall___property},
   {(bigint) icode___icode_base___IAbsCall___is_explicit_from_extern},
   {(bigint) icode___icode_base___IAbsCall___is_explicit_from_extern__eq},
   {(bigint) icode___icode_base___IAbsCall___init},
-  {(bigint) 4 /* 75: ISuper < ISuper: superclass init_table position */},
+  {(bigint) 4 /* 78: ISuper < ISuper: superclass init_table position */},
   {(bigint) icode___icode_base___ISuper___init},
 };
 /* 0: Pointer to the classtable */
@@ -148153,13 +142046,13 @@ void INIT_ATTRIBUTES__icode___icode_base___ISuper(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:226 */
+  /* icode/icode_base.nit:226 */
   REGB0 = TAG_Bool(false);
   ATTR_icode___icode_base___IAbsCall_____atis_explicit_from_extern(fra.me.REG[0]) = REGB0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -148219,7 +142112,7 @@ val_t NEW_ISuper_icode___icode_base___ISuper___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:246 */
+  /* icode/icode_base.nit:246 */
   fra.me.REG[2] = NEW_icode___icode_base___ISuper();
   INIT_ATTRIBUTES__icode___icode_base___ISuper(fra.me.REG[2]);
   icode___icode_base___ISuper___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -148227,15 +142120,16 @@ val_t NEW_ISuper_icode___icode_base___ISuper___init(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_icode___icode_base___INew[78] = {
-  {(bigint) 3215 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___INew[81] = {
+  {(bigint) 3279 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "INew" /* 2: Class Name */},
   {(bigint) 3 /* 3: INew < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: INew < ICode: superclass typecheck marker */},
-  {(bigint) 2235 /* 5: INew < ICodeN: superclass typecheck marker */},
-  {(bigint) 2955 /* 6: INew < IAbsCall: superclass typecheck marker */},
-  {(bigint) 3215 /* 7: INew < INew: superclass typecheck marker */},
+  {(bigint) 235 /* 4: INew < ICode: superclass typecheck marker */},
+  {(bigint) 2271 /* 5: INew < ICodeN: superclass typecheck marker */},
+  {(bigint) 2715 /* 6: INew < IAbsCall: superclass typecheck marker */},
+  {(bigint) 3279 /* 7: INew < INew: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -148246,7 +142140,7 @@ const classtable_elt_t VFT_icode___icode_base___INew[78] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: INew < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: INew < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -148262,6 +142156,8 @@ const classtable_elt_t VFT_icode___icode_base___INew[78] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -148283,7 +142179,7 @@ const classtable_elt_t VFT_icode___icode_base___INew[78] = {
   {(bigint) analysis___icode_dump___INew___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___INew___inner_dup_with},
-  {(bigint) 2 /* 55: INew < ICode: superclass init_table position */},
+  {(bigint) 2 /* 58: INew < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICodeN___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -148292,18 +142188,18 @@ const classtable_elt_t VFT_icode___icode_base___INew[78] = {
   {(bigint) icode___icode_base___ICode___is_pure},
   {(bigint) icode___icode_base___ICode___init},
   {(bigint) analysis___icode_dump___ICode___dump},
-  {(bigint) 1 /* 64: INew < ICodeN: superclass init_table position */},
+  {(bigint) 1 /* 67: INew < ICodeN: superclass init_table position */},
   {(bigint) icode___icode_base___ICodeN___exprs},
   {(bigint) icode___icode_base___ICodeN___closure_defs},
   {(bigint) icode___icode_base___ICodeN___closure_defs__eq},
   {(bigint) icode___icode_base___ICodeN___init},
   {(bigint) compiling___compiling_icode___INew___compile_call_to_c},
-  {(bigint) 0 /* 70: INew < IAbsCall: superclass init_table position */},
+  {(bigint) 0 /* 73: INew < IAbsCall: superclass init_table position */},
   {(bigint) icode___icode_base___IAbsCall___property},
   {(bigint) icode___icode_base___IAbsCall___is_explicit_from_extern},
   {(bigint) icode___icode_base___IAbsCall___is_explicit_from_extern__eq},
   {(bigint) icode___icode_base___IAbsCall___init},
-  {(bigint) 4 /* 75: INew < INew: superclass init_table position */},
+  {(bigint) 4 /* 78: INew < INew: superclass init_table position */},
   {(bigint) icode___icode_base___INew___stype},
   {(bigint) icode___icode_base___INew___init},
 };
@@ -148330,13 +142226,13 @@ void INIT_ATTRIBUTES__icode___icode_base___INew(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:226 */
+  /* icode/icode_base.nit:226 */
   REGB0 = TAG_Bool(false);
   ATTR_icode___icode_base___IAbsCall_____atis_explicit_from_extern(fra.me.REG[0]) = REGB0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -148403,7 +142299,7 @@ val_t NEW_INew_icode___icode_base___INew___init(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_base.nit:260 */
+  /* icode/icode_base.nit:260 */
   fra.me.REG[3] = NEW_icode___icode_base___INew();
   INIT_ATTRIBUTES__icode___icode_base___INew(fra.me.REG[3]);
   icode___icode_base___INew___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -148411,14 +142307,15 @@ val_t NEW_INew_icode___icode_base___INew___init(val_t p0, val_t p1, val_t p2){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-const classtable_elt_t VFT_icode___icode_base___IAllocateInstance[67] = {
-  {(bigint) 2951 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IAllocateInstance[70] = {
+  {(bigint) 2711 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IAllocateInstance" /* 2: Class Name */},
   {(bigint) 3 /* 3: IAllocateInstance < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: IAllocateInstance < ICode: superclass typecheck marker */},
-  {(bigint) 2247 /* 5: IAllocateInstance < ICode0: superclass typecheck marker */},
-  {(bigint) 2951 /* 6: IAllocateInstance < IAllocateInstance: superclass typecheck marker */},
+  {(bigint) 235 /* 4: IAllocateInstance < ICode: superclass typecheck marker */},
+  {(bigint) 2283 /* 5: IAllocateInstance < ICode0: superclass typecheck marker */},
+  {(bigint) 2711 /* 6: IAllocateInstance < IAllocateInstance: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -148430,7 +142327,7 @@ const classtable_elt_t VFT_icode___icode_base___IAllocateInstance[67] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: IAllocateInstance < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: IAllocateInstance < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -148446,6 +142343,8 @@ const classtable_elt_t VFT_icode___icode_base___IAllocateInstance[67] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -148467,7 +142366,7 @@ const classtable_elt_t VFT_icode___icode_base___IAllocateInstance[67] = {
   {(bigint) analysis___icode_dump___IAllocateInstance___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___IAllocateInstance___inner_dup_with},
-  {(bigint) 1 /* 55: IAllocateInstance < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: IAllocateInstance < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode0___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -148475,8 +142374,8 @@ const classtable_elt_t VFT_icode___icode_base___IAllocateInstance[67] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___ICode___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: IAllocateInstance < ICode0: superclass init_table position */},
-  {(bigint) 3 /* 64: IAllocateInstance < IAllocateInstance: superclass init_table position */},
+  {(bigint) 0 /* 66: IAllocateInstance < ICode0: superclass init_table position */},
+  {(bigint) 3 /* 67: IAllocateInstance < IAllocateInstance: superclass init_table position */},
   {(bigint) icode___icode_base___IAllocateInstance___stype},
   {(bigint) icode___icode_base___IAllocateInstance___init},
 };
@@ -148498,10 +142397,10 @@ void INIT_ATTRIBUTES__icode___icode_base___IAllocateInstance(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -148549,7 +142448,7 @@ val_t NEW_IAllocateInstance_icode___icode_base___IAllocateInstance___init(val_t
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:274 */
+  /* icode/icode_base.nit:274 */
   fra.me.REG[1] = NEW_icode___icode_base___IAllocateInstance();
   INIT_ATTRIBUTES__icode___icode_base___IAllocateInstance(fra.me.REG[1]);
   icode___icode_base___IAllocateInstance___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -148557,15 +142456,16 @@ val_t NEW_IAllocateInstance_icode___icode_base___IAllocateInstance___init(val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_icode___icode_base___IStaticCall[77] = {
-  {(bigint) 3207 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IStaticCall[80] = {
+  {(bigint) 3271 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IStaticCall" /* 2: Class Name */},
   {(bigint) 3 /* 3: IStaticCall < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: IStaticCall < ICode: superclass typecheck marker */},
-  {(bigint) 2235 /* 5: IStaticCall < ICodeN: superclass typecheck marker */},
-  {(bigint) 2955 /* 6: IStaticCall < IAbsCall: superclass typecheck marker */},
-  {(bigint) 3207 /* 7: IStaticCall < IStaticCall: superclass typecheck marker */},
+  {(bigint) 235 /* 4: IStaticCall < ICode: superclass typecheck marker */},
+  {(bigint) 2271 /* 5: IStaticCall < ICodeN: superclass typecheck marker */},
+  {(bigint) 2715 /* 6: IStaticCall < IAbsCall: superclass typecheck marker */},
+  {(bigint) 3271 /* 7: IStaticCall < IStaticCall: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -148576,7 +142476,7 @@ const classtable_elt_t VFT_icode___icode_base___IStaticCall[77] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: IStaticCall < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: IStaticCall < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -148592,6 +142492,8 @@ const classtable_elt_t VFT_icode___icode_base___IStaticCall[77] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -148613,7 +142515,7 @@ const classtable_elt_t VFT_icode___icode_base___IStaticCall[77] = {
   {(bigint) analysis___icode_dump___IStaticCall___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___IStaticCall___inner_dup_with},
-  {(bigint) 2 /* 55: IStaticCall < ICode: superclass init_table position */},
+  {(bigint) 2 /* 58: IStaticCall < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICodeN___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -148622,18 +142524,18 @@ const classtable_elt_t VFT_icode___icode_base___IStaticCall[77] = {
   {(bigint) icode___icode_base___ICode___is_pure},
   {(bigint) icode___icode_base___ICode___init},
   {(bigint) analysis___icode_dump___ICode___dump},
-  {(bigint) 1 /* 64: IStaticCall < ICodeN: superclass init_table position */},
+  {(bigint) 1 /* 67: IStaticCall < ICodeN: superclass init_table position */},
   {(bigint) icode___icode_base___ICodeN___exprs},
   {(bigint) icode___icode_base___ICodeN___closure_defs},
   {(bigint) icode___icode_base___ICodeN___closure_defs__eq},
   {(bigint) icode___icode_base___ICodeN___init},
   {(bigint) compiling___compiling_icode___IStaticCall___compile_call_to_c},
-  {(bigint) 0 /* 70: IStaticCall < IAbsCall: superclass init_table position */},
+  {(bigint) 0 /* 73: IStaticCall < IAbsCall: superclass init_table position */},
   {(bigint) icode___icode_base___IAbsCall___property},
   {(bigint) icode___icode_base___IAbsCall___is_explicit_from_extern},
   {(bigint) icode___icode_base___IAbsCall___is_explicit_from_extern__eq},
   {(bigint) icode___icode_base___IAbsCall___init},
-  {(bigint) 4 /* 75: IStaticCall < IStaticCall: superclass init_table position */},
+  {(bigint) 4 /* 78: IStaticCall < IStaticCall: superclass init_table position */},
   {(bigint) icode___icode_base___IStaticCall___init},
 };
 /* 0: Pointer to the classtable */
@@ -148658,13 +142560,13 @@ void INIT_ATTRIBUTES__icode___icode_base___IStaticCall(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:226 */
+  /* icode/icode_base.nit:226 */
   REGB0 = TAG_Bool(false);
   ATTR_icode___icode_base___IAbsCall_____atis_explicit_from_extern(fra.me.REG[0]) = REGB0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -148724,7 +142626,7 @@ val_t NEW_IStaticCall_icode___icode_base___IStaticCall___init(val_t p0, val_t p1
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:283 */
+  /* icode/icode_base.nit:283 */
   fra.me.REG[2] = NEW_icode___icode_base___IStaticCall();
   INIT_ATTRIBUTES__icode___icode_base___IStaticCall(fra.me.REG[2]);
   icode___icode_base___IStaticCall___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -148732,14 +142634,15 @@ val_t NEW_IStaticCall_icode___icode_base___IStaticCall___init(val_t p0, val_t p1
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_icode___icode_base___ICheckInstance[69] = {
-  {(bigint) 2927 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___ICheckInstance[72] = {
+  {(bigint) 2687 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ICheckInstance" /* 2: Class Name */},
   {(bigint) 3 /* 3: ICheckInstance < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: ICheckInstance < ICode: superclass typecheck marker */},
-  {(bigint) 2243 /* 5: ICheckInstance < ICode1: superclass typecheck marker */},
-  {(bigint) 2927 /* 6: ICheckInstance < ICheckInstance: superclass typecheck marker */},
+  {(bigint) 235 /* 4: ICheckInstance < ICode: superclass typecheck marker */},
+  {(bigint) 2279 /* 5: ICheckInstance < ICode1: superclass typecheck marker */},
+  {(bigint) 2687 /* 6: ICheckInstance < ICheckInstance: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -148751,7 +142654,7 @@ const classtable_elt_t VFT_icode___icode_base___ICheckInstance[69] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ICheckInstance < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: ICheckInstance < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -148767,6 +142670,8 @@ const classtable_elt_t VFT_icode___icode_base___ICheckInstance[69] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -148788,7 +142693,7 @@ const classtable_elt_t VFT_icode___icode_base___ICheckInstance[69] = {
   {(bigint) analysis___icode_dump___ICheckInstance___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___ICheckInstance___inner_dup_with},
-  {(bigint) 1 /* 55: ICheckInstance < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: ICheckInstance < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode1___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -148796,10 +142701,10 @@ const classtable_elt_t VFT_icode___icode_base___ICheckInstance[69] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___ICode___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: ICheckInstance < ICode1: superclass init_table position */},
+  {(bigint) 0 /* 66: ICheckInstance < ICode1: superclass init_table position */},
   {(bigint) icode___icode_base___ICode1___expr},
   {(bigint) icode___icode_base___ICode1___init},
-  {(bigint) 3 /* 66: ICheckInstance < ICheckInstance: superclass init_table position */},
+  {(bigint) 3 /* 69: ICheckInstance < ICheckInstance: superclass init_table position */},
   {(bigint) icode___icode_base___ICheckInstance___stype},
   {(bigint) icode___icode_base___ICheckInstance___init},
 };
@@ -148822,10 +142727,10 @@ void INIT_ATTRIBUTES__icode___icode_base___ICheckInstance(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -148880,7 +142785,7 @@ val_t NEW_ICheckInstance_icode___icode_base___ICheckInstance___init(val_t p0, va
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:291 */
+  /* icode/icode_base.nit:291 */
   fra.me.REG[2] = NEW_icode___icode_base___ICheckInstance();
   INIT_ATTRIBUTES__icode___icode_base___ICheckInstance(fra.me.REG[2]);
   icode___icode_base___ICheckInstance___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -148888,14 +142793,15 @@ val_t NEW_ICheckInstance_icode___icode_base___ICheckInstance___init(val_t p0, va
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_icode___icode_base___IInitAttributes[69] = {
-  {(bigint) 2903 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IInitAttributes[72] = {
+  {(bigint) 2663 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IInitAttributes" /* 2: Class Name */},
   {(bigint) 3 /* 3: IInitAttributes < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: IInitAttributes < ICode: superclass typecheck marker */},
-  {(bigint) 2243 /* 5: IInitAttributes < ICode1: superclass typecheck marker */},
-  {(bigint) 2903 /* 6: IInitAttributes < IInitAttributes: superclass typecheck marker */},
+  {(bigint) 235 /* 4: IInitAttributes < ICode: superclass typecheck marker */},
+  {(bigint) 2279 /* 5: IInitAttributes < ICode1: superclass typecheck marker */},
+  {(bigint) 2663 /* 6: IInitAttributes < IInitAttributes: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -148907,7 +142813,7 @@ const classtable_elt_t VFT_icode___icode_base___IInitAttributes[69] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: IInitAttributes < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: IInitAttributes < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -148923,6 +142829,8 @@ const classtable_elt_t VFT_icode___icode_base___IInitAttributes[69] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -148944,7 +142852,7 @@ const classtable_elt_t VFT_icode___icode_base___IInitAttributes[69] = {
   {(bigint) analysis___icode_dump___IInitAttributes___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___IInitAttributes___inner_dup_with},
-  {(bigint) 1 /* 55: IInitAttributes < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: IInitAttributes < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode1___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -148952,10 +142860,10 @@ const classtable_elt_t VFT_icode___icode_base___IInitAttributes[69] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___ICode___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: IInitAttributes < ICode1: superclass init_table position */},
+  {(bigint) 0 /* 66: IInitAttributes < ICode1: superclass init_table position */},
   {(bigint) icode___icode_base___ICode1___expr},
   {(bigint) icode___icode_base___ICode1___init},
-  {(bigint) 3 /* 66: IInitAttributes < IInitAttributes: superclass init_table position */},
+  {(bigint) 3 /* 69: IInitAttributes < IInitAttributes: superclass init_table position */},
   {(bigint) icode___icode_base___IInitAttributes___stype},
   {(bigint) icode___icode_base___IInitAttributes___init},
 };
@@ -148978,10 +142886,10 @@ void INIT_ATTRIBUTES__icode___icode_base___IInitAttributes(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -149036,7 +142944,7 @@ val_t NEW_IInitAttributes_icode___icode_base___IInitAttributes___init(val_t p0,
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:303 */
+  /* icode/icode_base.nit:303 */
   fra.me.REG[2] = NEW_icode___icode_base___IInitAttributes();
   INIT_ATTRIBUTES__icode___icode_base___IInitAttributes(fra.me.REG[2]);
   icode___icode_base___IInitAttributes___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -149044,14 +142952,15 @@ val_t NEW_IInitAttributes_icode___icode_base___IInitAttributes___init(val_t p0,
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_icode___icode_base___IClosCall[75] = {
-  {(bigint) 2923 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IClosCall[78] = {
+  {(bigint) 2683 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IClosCall" /* 2: Class Name */},
   {(bigint) 3 /* 3: IClosCall < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: IClosCall < ICode: superclass typecheck marker */},
-  {(bigint) 2235 /* 5: IClosCall < ICodeN: superclass typecheck marker */},
-  {(bigint) 2923 /* 6: IClosCall < IClosCall: superclass typecheck marker */},
+  {(bigint) 235 /* 4: IClosCall < ICode: superclass typecheck marker */},
+  {(bigint) 2271 /* 5: IClosCall < ICodeN: superclass typecheck marker */},
+  {(bigint) 2683 /* 6: IClosCall < IClosCall: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -149063,7 +142972,7 @@ const classtable_elt_t VFT_icode___icode_base___IClosCall[75] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: IClosCall < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: IClosCall < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -149079,6 +142988,8 @@ const classtable_elt_t VFT_icode___icode_base___IClosCall[75] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -149100,7 +143011,7 @@ const classtable_elt_t VFT_icode___icode_base___IClosCall[75] = {
   {(bigint) analysis___icode_dump___IClosCall___dump_intern},
   {(bigint) icode___icode_tools___IClosCall___dup_with},
   {(bigint) icode___icode_tools___IClosCall___inner_dup_with},
-  {(bigint) 1 /* 55: IClosCall < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: IClosCall < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICodeN___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -149109,13 +143020,13 @@ const classtable_elt_t VFT_icode___icode_base___IClosCall[75] = {
   {(bigint) icode___icode_base___ICode___is_pure},
   {(bigint) icode___icode_base___ICode___init},
   {(bigint) analysis___icode_dump___ICode___dump},
-  {(bigint) 0 /* 64: IClosCall < ICodeN: superclass init_table position */},
+  {(bigint) 0 /* 67: IClosCall < ICodeN: superclass init_table position */},
   {(bigint) icode___icode_base___ICodeN___exprs},
   {(bigint) icode___icode_base___ICodeN___closure_defs},
   {(bigint) icode___icode_base___ICodeN___closure_defs__eq},
   {(bigint) icode___icode_base___ICodeN___init},
   {(bigint) icode___icode_tools___ICode___dup_with},
-  {(bigint) 3 /* 70: IClosCall < IClosCall: superclass init_table position */},
+  {(bigint) 3 /* 73: IClosCall < IClosCall: superclass init_table position */},
   {(bigint) icode___icode_base___IClosCall___closure_decl},
   {(bigint) icode___icode_base___IClosCall___break_seq},
   {(bigint) icode___icode_base___IClosCall___break_seq__eq},
@@ -149142,13 +143053,13 @@ void INIT_ATTRIBUTES__icode___icode_base___IClosCall(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:317 */
+  /* icode/icode_base.nit:317 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___IClosCall____break_seq(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -149203,7 +143114,7 @@ val_t NEW_IClosCall_icode___icode_base___IClosCall___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:320 */
+  /* icode/icode_base.nit:320 */
   fra.me.REG[2] = NEW_icode___icode_base___IClosCall();
   INIT_ATTRIBUTES__icode___icode_base___IClosCall(fra.me.REG[2]);
   icode___icode_base___IClosCall___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -149211,14 +143122,15 @@ val_t NEW_IClosCall_icode___icode_base___IClosCall___init(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_icode___icode_base___INative[75] = {
-  {(bigint) 2887 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___INative[78] = {
+  {(bigint) 2647 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "INative" /* 2: Class Name */},
   {(bigint) 3 /* 3: INative < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: INative < ICode: superclass typecheck marker */},
-  {(bigint) 2235 /* 5: INative < ICodeN: superclass typecheck marker */},
-  {(bigint) 2887 /* 6: INative < INative: superclass typecheck marker */},
+  {(bigint) 235 /* 4: INative < ICode: superclass typecheck marker */},
+  {(bigint) 2271 /* 5: INative < ICodeN: superclass typecheck marker */},
+  {(bigint) 2647 /* 6: INative < INative: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -149230,7 +143142,7 @@ const classtable_elt_t VFT_icode___icode_base___INative[75] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: INative < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: INative < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -149246,6 +143158,8 @@ const classtable_elt_t VFT_icode___icode_base___INative[75] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -149267,7 +143181,7 @@ const classtable_elt_t VFT_icode___icode_base___INative[75] = {
   {(bigint) analysis___icode_dump___INative___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___INative___inner_dup_with},
-  {(bigint) 1 /* 55: INative < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: INative < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICodeN___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -149276,14 +143190,14 @@ const classtable_elt_t VFT_icode___icode_base___INative[75] = {
   {(bigint) icode___icode_base___INative___is_pure},
   {(bigint) icode___icode_base___ICode___init},
   {(bigint) analysis___icode_dump___ICode___dump},
-  {(bigint) 0 /* 64: INative < ICodeN: superclass init_table position */},
+  {(bigint) 0 /* 67: INative < ICodeN: superclass init_table position */},
   {(bigint) icode___icode_base___ICodeN___exprs},
   {(bigint) icode___icode_base___ICodeN___closure_defs},
   {(bigint) icode___icode_base___ICodeN___closure_defs__eq},
   {(bigint) icode___icode_base___ICodeN___init},
   {(bigint) compiling___compiling_icode___INative___compile_extern_method_to_c},
   {(bigint) compiling___compiling_icode___INative___compile_intern_method_to_c},
-  {(bigint) 3 /* 71: INative < INative: superclass init_table position */},
+  {(bigint) 3 /* 74: INative < INative: superclass init_table position */},
   {(bigint) icode___icode_base___INative___method},
   {(bigint) icode___icode_base___INative___init},
   {(bigint) icode___icode_base___INative___is_pure__eq},
@@ -149310,13 +143224,13 @@ void INIT_ATTRIBUTES__icode___icode_base___INative(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:344 */
+  /* icode/icode_base.nit:344 */
   REGB0 = TAG_Bool(false);
   ATTR_icode___icode_base___INative____is_pure(fra.me.REG[0]) = REGB0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -149376,7 +143290,7 @@ val_t NEW_INative_icode___icode_base___INative___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:335 */
+  /* icode/icode_base.nit:335 */
   fra.me.REG[2] = NEW_icode___icode_base___INative();
   INIT_ATTRIBUTES__icode___icode_base___INative(fra.me.REG[2]);
   icode___icode_base___INative___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -149384,14 +143298,15 @@ val_t NEW_INative_icode___icode_base___INative___init(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_icode___icode_base___IIntValue[67] = {
-  {(bigint) 2899 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IIntValue[70] = {
+  {(bigint) 2659 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IIntValue" /* 2: Class Name */},
   {(bigint) 3 /* 3: IIntValue < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: IIntValue < ICode: superclass typecheck marker */},
-  {(bigint) 2247 /* 5: IIntValue < ICode0: superclass typecheck marker */},
-  {(bigint) 2899 /* 6: IIntValue < IIntValue: superclass typecheck marker */},
+  {(bigint) 235 /* 4: IIntValue < ICode: superclass typecheck marker */},
+  {(bigint) 2283 /* 5: IIntValue < ICode0: superclass typecheck marker */},
+  {(bigint) 2659 /* 6: IIntValue < IIntValue: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -149403,7 +143318,7 @@ const classtable_elt_t VFT_icode___icode_base___IIntValue[67] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: IIntValue < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: IIntValue < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -149419,6 +143334,8 @@ const classtable_elt_t VFT_icode___icode_base___IIntValue[67] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -149440,7 +143357,7 @@ const classtable_elt_t VFT_icode___icode_base___IIntValue[67] = {
   {(bigint) analysis___icode_dump___IIntValue___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___IIntValue___inner_dup_with},
-  {(bigint) 1 /* 55: IIntValue < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: IIntValue < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode0___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -149448,8 +143365,8 @@ const classtable_elt_t VFT_icode___icode_base___IIntValue[67] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___IIntValue___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: IIntValue < ICode0: superclass init_table position */},
-  {(bigint) 3 /* 64: IIntValue < IIntValue: superclass init_table position */},
+  {(bigint) 0 /* 66: IIntValue < ICode0: superclass init_table position */},
+  {(bigint) 3 /* 67: IIntValue < IIntValue: superclass init_table position */},
   {(bigint) icode___icode_base___IIntValue___value},
   {(bigint) icode___icode_base___IIntValue___init},
 };
@@ -149471,10 +143388,10 @@ void INIT_ATTRIBUTES__icode___icode_base___IIntValue(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -149522,7 +143439,7 @@ val_t NEW_IIntValue_icode___icode_base___IIntValue___init(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:353 */
+  /* icode/icode_base.nit:353 */
   fra.me.REG[1] = NEW_icode___icode_base___IIntValue();
   INIT_ATTRIBUTES__icode___icode_base___IIntValue(fra.me.REG[1]);
   icode___icode_base___IIntValue___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -149530,14 +143447,15 @@ val_t NEW_IIntValue_icode___icode_base___IIntValue___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_icode___icode_base___IBoolValue[67] = {
-  {(bigint) 2935 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IBoolValue[70] = {
+  {(bigint) 2695 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IBoolValue" /* 2: Class Name */},
   {(bigint) 3 /* 3: IBoolValue < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: IBoolValue < ICode: superclass typecheck marker */},
-  {(bigint) 2247 /* 5: IBoolValue < ICode0: superclass typecheck marker */},
-  {(bigint) 2935 /* 6: IBoolValue < IBoolValue: superclass typecheck marker */},
+  {(bigint) 235 /* 4: IBoolValue < ICode: superclass typecheck marker */},
+  {(bigint) 2283 /* 5: IBoolValue < ICode0: superclass typecheck marker */},
+  {(bigint) 2695 /* 6: IBoolValue < IBoolValue: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -149549,7 +143467,7 @@ const classtable_elt_t VFT_icode___icode_base___IBoolValue[67] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: IBoolValue < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: IBoolValue < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -149565,6 +143483,8 @@ const classtable_elt_t VFT_icode___icode_base___IBoolValue[67] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -149586,7 +143506,7 @@ const classtable_elt_t VFT_icode___icode_base___IBoolValue[67] = {
   {(bigint) analysis___icode_dump___IBoolValue___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___IBoolValue___inner_dup_with},
-  {(bigint) 1 /* 55: IBoolValue < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: IBoolValue < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode0___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -149594,8 +143514,8 @@ const classtable_elt_t VFT_icode___icode_base___IBoolValue[67] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___IBoolValue___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: IBoolValue < ICode0: superclass init_table position */},
-  {(bigint) 3 /* 64: IBoolValue < IBoolValue: superclass init_table position */},
+  {(bigint) 0 /* 66: IBoolValue < ICode0: superclass init_table position */},
+  {(bigint) 3 /* 67: IBoolValue < IBoolValue: superclass init_table position */},
   {(bigint) icode___icode_base___IBoolValue___value},
   {(bigint) icode___icode_base___IBoolValue___init},
 };
@@ -149617,10 +143537,10 @@ void INIT_ATTRIBUTES__icode___icode_base___IBoolValue(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -149668,7 +143588,7 @@ val_t NEW_IBoolValue_icode___icode_base___IBoolValue___init(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./icode//icode_base.nit:364 */
+  /* icode/icode_base.nit:364 */
   fra.me.REG[0] = NEW_icode___icode_base___IBoolValue();
   INIT_ATTRIBUTES__icode___icode_base___IBoolValue(fra.me.REG[0]);
   icode___icode_base___IBoolValue___init(fra.me.REG[0], REGB0, init_table);
@@ -149676,14 +143596,15 @@ val_t NEW_IBoolValue_icode___icode_base___IBoolValue___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_icode___icode_base___IStringValue[67] = {
-  {(bigint) 2863 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IStringValue[70] = {
+  {(bigint) 2623 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IStringValue" /* 2: Class Name */},
   {(bigint) 3 /* 3: IStringValue < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: IStringValue < ICode: superclass typecheck marker */},
-  {(bigint) 2247 /* 5: IStringValue < ICode0: superclass typecheck marker */},
-  {(bigint) 2863 /* 6: IStringValue < IStringValue: superclass typecheck marker */},
+  {(bigint) 235 /* 4: IStringValue < ICode: superclass typecheck marker */},
+  {(bigint) 2283 /* 5: IStringValue < ICode0: superclass typecheck marker */},
+  {(bigint) 2623 /* 6: IStringValue < IStringValue: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -149695,7 +143616,7 @@ const classtable_elt_t VFT_icode___icode_base___IStringValue[67] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: IStringValue < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: IStringValue < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -149711,6 +143632,8 @@ const classtable_elt_t VFT_icode___icode_base___IStringValue[67] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -149732,7 +143655,7 @@ const classtable_elt_t VFT_icode___icode_base___IStringValue[67] = {
   {(bigint) analysis___icode_dump___IStringValue___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___IStringValue___inner_dup_with},
-  {(bigint) 1 /* 55: IStringValue < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: IStringValue < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode0___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -149740,8 +143663,8 @@ const classtable_elt_t VFT_icode___icode_base___IStringValue[67] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___IStringValue___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: IStringValue < ICode0: superclass init_table position */},
-  {(bigint) 3 /* 64: IStringValue < IStringValue: superclass init_table position */},
+  {(bigint) 0 /* 66: IStringValue < ICode0: superclass init_table position */},
+  {(bigint) 3 /* 67: IStringValue < IStringValue: superclass init_table position */},
   {(bigint) icode___icode_base___IStringValue___value},
   {(bigint) icode___icode_base___IStringValue___init},
 };
@@ -149763,10 +143686,10 @@ void INIT_ATTRIBUTES__icode___icode_base___IStringValue(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -149814,7 +143737,7 @@ val_t NEW_IStringValue_icode___icode_base___IStringValue___init(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:375 */
+  /* icode/icode_base.nit:375 */
   fra.me.REG[1] = NEW_icode___icode_base___IStringValue();
   INIT_ATTRIBUTES__icode___icode_base___IStringValue(fra.me.REG[1]);
   icode___icode_base___IStringValue___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -149822,14 +143745,15 @@ val_t NEW_IStringValue_icode___icode_base___IStringValue___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_icode___icode_base___IFloatValue[67] = {
-  {(bigint) 2915 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IFloatValue[70] = {
+  {(bigint) 2675 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IFloatValue" /* 2: Class Name */},
   {(bigint) 3 /* 3: IFloatValue < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: IFloatValue < ICode: superclass typecheck marker */},
-  {(bigint) 2247 /* 5: IFloatValue < ICode0: superclass typecheck marker */},
-  {(bigint) 2915 /* 6: IFloatValue < IFloatValue: superclass typecheck marker */},
+  {(bigint) 235 /* 4: IFloatValue < ICode: superclass typecheck marker */},
+  {(bigint) 2283 /* 5: IFloatValue < ICode0: superclass typecheck marker */},
+  {(bigint) 2675 /* 6: IFloatValue < IFloatValue: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -149841,7 +143765,7 @@ const classtable_elt_t VFT_icode___icode_base___IFloatValue[67] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: IFloatValue < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: IFloatValue < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -149857,6 +143781,8 @@ const classtable_elt_t VFT_icode___icode_base___IFloatValue[67] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -149878,7 +143804,7 @@ const classtable_elt_t VFT_icode___icode_base___IFloatValue[67] = {
   {(bigint) analysis___icode_dump___IFloatValue___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___IFloatValue___inner_dup_with},
-  {(bigint) 1 /* 55: IFloatValue < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: IFloatValue < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode0___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -149886,8 +143812,8 @@ const classtable_elt_t VFT_icode___icode_base___IFloatValue[67] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___IFloatValue___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: IFloatValue < ICode0: superclass init_table position */},
-  {(bigint) 3 /* 64: IFloatValue < IFloatValue: superclass init_table position */},
+  {(bigint) 0 /* 66: IFloatValue < ICode0: superclass init_table position */},
+  {(bigint) 3 /* 67: IFloatValue < IFloatValue: superclass init_table position */},
   {(bigint) icode___icode_base___IFloatValue___value},
   {(bigint) icode___icode_base___IFloatValue___init},
 };
@@ -149909,10 +143835,10 @@ void INIT_ATTRIBUTES__icode___icode_base___IFloatValue(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -149960,7 +143886,7 @@ val_t NEW_IFloatValue_icode___icode_base___IFloatValue___init(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:386 */
+  /* icode/icode_base.nit:386 */
   fra.me.REG[1] = NEW_icode___icode_base___IFloatValue();
   INIT_ATTRIBUTES__icode___icode_base___IFloatValue(fra.me.REG[1]);
   icode___icode_base___IFloatValue___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -149968,14 +143894,15 @@ val_t NEW_IFloatValue_icode___icode_base___IFloatValue___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_icode___icode_base___ICharValue[67] = {
-  {(bigint) 2931 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___ICharValue[70] = {
+  {(bigint) 2691 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ICharValue" /* 2: Class Name */},
   {(bigint) 3 /* 3: ICharValue < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: ICharValue < ICode: superclass typecheck marker */},
-  {(bigint) 2247 /* 5: ICharValue < ICode0: superclass typecheck marker */},
-  {(bigint) 2931 /* 6: ICharValue < ICharValue: superclass typecheck marker */},
+  {(bigint) 235 /* 4: ICharValue < ICode: superclass typecheck marker */},
+  {(bigint) 2283 /* 5: ICharValue < ICode0: superclass typecheck marker */},
+  {(bigint) 2691 /* 6: ICharValue < ICharValue: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -149987,7 +143914,7 @@ const classtable_elt_t VFT_icode___icode_base___ICharValue[67] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ICharValue < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: ICharValue < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -150003,6 +143930,8 @@ const classtable_elt_t VFT_icode___icode_base___ICharValue[67] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -150024,7 +143953,7 @@ const classtable_elt_t VFT_icode___icode_base___ICharValue[67] = {
   {(bigint) analysis___icode_dump___ICharValue___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___ICharValue___inner_dup_with},
-  {(bigint) 1 /* 55: ICharValue < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: ICharValue < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode0___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -150032,8 +143961,8 @@ const classtable_elt_t VFT_icode___icode_base___ICharValue[67] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___ICharValue___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: ICharValue < ICode0: superclass init_table position */},
-  {(bigint) 3 /* 64: ICharValue < ICharValue: superclass init_table position */},
+  {(bigint) 0 /* 66: ICharValue < ICode0: superclass init_table position */},
+  {(bigint) 3 /* 67: ICharValue < ICharValue: superclass init_table position */},
   {(bigint) icode___icode_base___ICharValue___value},
   {(bigint) icode___icode_base___ICharValue___init},
 };
@@ -150055,10 +143984,10 @@ void INIT_ATTRIBUTES__icode___icode_base___ICharValue(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -150106,7 +144035,7 @@ val_t NEW_ICharValue_icode___icode_base___ICharValue___init(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:397 */
+  /* icode/icode_base.nit:397 */
   fra.me.REG[1] = NEW_icode___icode_base___ICharValue();
   INIT_ATTRIBUTES__icode___icode_base___ICharValue(fra.me.REG[1]);
   icode___icode_base___ICharValue___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -150114,14 +144043,15 @@ val_t NEW_ICharValue_icode___icode_base___ICharValue___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_icode___icode_base___IMove[68] = {
-  {(bigint) 2891 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IMove[71] = {
+  {(bigint) 2651 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IMove" /* 2: Class Name */},
   {(bigint) 3 /* 3: IMove < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: IMove < ICode: superclass typecheck marker */},
-  {(bigint) 2243 /* 5: IMove < ICode1: superclass typecheck marker */},
-  {(bigint) 2891 /* 6: IMove < IMove: superclass typecheck marker */},
+  {(bigint) 235 /* 4: IMove < ICode: superclass typecheck marker */},
+  {(bigint) 2279 /* 5: IMove < ICode1: superclass typecheck marker */},
+  {(bigint) 2651 /* 6: IMove < IMove: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -150133,7 +144063,7 @@ const classtable_elt_t VFT_icode___icode_base___IMove[68] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: IMove < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: IMove < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -150149,6 +144079,8 @@ const classtable_elt_t VFT_icode___icode_base___IMove[68] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -150170,7 +144102,7 @@ const classtable_elt_t VFT_icode___icode_base___IMove[68] = {
   {(bigint) analysis___icode_dump___IMove___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___IMove___inner_dup_with},
-  {(bigint) 1 /* 55: IMove < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: IMove < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode1___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -150178,10 +144110,10 @@ const classtable_elt_t VFT_icode___icode_base___IMove[68] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___IMove___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: IMove < ICode1: superclass init_table position */},
+  {(bigint) 0 /* 66: IMove < ICode1: superclass init_table position */},
   {(bigint) icode___icode_base___ICode1___expr},
   {(bigint) icode___icode_base___ICode1___init},
-  {(bigint) 3 /* 66: IMove < IMove: superclass init_table position */},
+  {(bigint) 3 /* 69: IMove < IMove: superclass init_table position */},
   {(bigint) icode___icode_base___IMove___init},
 };
 /* 0: Pointer to the classtable */
@@ -150202,10 +144134,10 @@ void INIT_ATTRIBUTES__icode___icode_base___IMove(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -150255,7 +144187,7 @@ val_t NEW_IMove_icode___icode_base___IMove___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:407 */
+  /* icode/icode_base.nit:407 */
   fra.me.REG[2] = NEW_icode___icode_base___IMove();
   INIT_ATTRIBUTES__icode___icode_base___IMove(fra.me.REG[2]);
   icode___icode_base___IMove___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -150263,14 +144195,15 @@ val_t NEW_IMove_icode___icode_base___IMove___init(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_icode___icode_base___IAttrRead[69] = {
-  {(bigint) 2943 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IAttrRead[72] = {
+  {(bigint) 2703 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IAttrRead" /* 2: Class Name */},
   {(bigint) 3 /* 3: IAttrRead < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: IAttrRead < ICode: superclass typecheck marker */},
-  {(bigint) 2243 /* 5: IAttrRead < ICode1: superclass typecheck marker */},
-  {(bigint) 2943 /* 6: IAttrRead < IAttrRead: superclass typecheck marker */},
+  {(bigint) 235 /* 4: IAttrRead < ICode: superclass typecheck marker */},
+  {(bigint) 2279 /* 5: IAttrRead < ICode1: superclass typecheck marker */},
+  {(bigint) 2703 /* 6: IAttrRead < IAttrRead: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -150282,7 +144215,7 @@ const classtable_elt_t VFT_icode___icode_base___IAttrRead[69] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: IAttrRead < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: IAttrRead < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -150298,6 +144231,8 @@ const classtable_elt_t VFT_icode___icode_base___IAttrRead[69] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -150319,7 +144254,7 @@ const classtable_elt_t VFT_icode___icode_base___IAttrRead[69] = {
   {(bigint) analysis___icode_dump___IAttrRead___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___IAttrRead___inner_dup_with},
-  {(bigint) 1 /* 55: IAttrRead < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: IAttrRead < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode1___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -150327,10 +144262,10 @@ const classtable_elt_t VFT_icode___icode_base___IAttrRead[69] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___IAttrRead___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: IAttrRead < ICode1: superclass init_table position */},
+  {(bigint) 0 /* 66: IAttrRead < ICode1: superclass init_table position */},
   {(bigint) icode___icode_base___ICode1___expr},
   {(bigint) icode___icode_base___ICode1___init},
-  {(bigint) 3 /* 66: IAttrRead < IAttrRead: superclass init_table position */},
+  {(bigint) 3 /* 69: IAttrRead < IAttrRead: superclass init_table position */},
   {(bigint) icode___icode_base___IAttrRead___property},
   {(bigint) icode___icode_base___IAttrRead___init},
 };
@@ -150353,10 +144288,10 @@ void INIT_ATTRIBUTES__icode___icode_base___IAttrRead(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -150411,7 +144346,7 @@ val_t NEW_IAttrRead_icode___icode_base___IAttrRead___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:423 */
+  /* icode/icode_base.nit:423 */
   fra.me.REG[2] = NEW_icode___icode_base___IAttrRead();
   INIT_ATTRIBUTES__icode___icode_base___IAttrRead(fra.me.REG[2]);
   icode___icode_base___IAttrRead___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -150419,14 +144354,15 @@ val_t NEW_IAttrRead_icode___icode_base___IAttrRead___init(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_icode___icode_base___IAttrWrite[70] = {
-  {(bigint) 2939 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IAttrWrite[73] = {
+  {(bigint) 2699 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IAttrWrite" /* 2: Class Name */},
   {(bigint) 3 /* 3: IAttrWrite < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: IAttrWrite < ICode: superclass typecheck marker */},
-  {(bigint) 2239 /* 5: IAttrWrite < ICode2: superclass typecheck marker */},
-  {(bigint) 2939 /* 6: IAttrWrite < IAttrWrite: superclass typecheck marker */},
+  {(bigint) 235 /* 4: IAttrWrite < ICode: superclass typecheck marker */},
+  {(bigint) 2275 /* 5: IAttrWrite < ICode2: superclass typecheck marker */},
+  {(bigint) 2699 /* 6: IAttrWrite < IAttrWrite: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -150438,7 +144374,7 @@ const classtable_elt_t VFT_icode___icode_base___IAttrWrite[70] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: IAttrWrite < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: IAttrWrite < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -150454,6 +144390,8 @@ const classtable_elt_t VFT_icode___icode_base___IAttrWrite[70] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -150475,7 +144413,7 @@ const classtable_elt_t VFT_icode___icode_base___IAttrWrite[70] = {
   {(bigint) analysis___icode_dump___IAttrWrite___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___IAttrWrite___inner_dup_with},
-  {(bigint) 1 /* 55: IAttrWrite < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: IAttrWrite < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode2___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -150483,11 +144421,11 @@ const classtable_elt_t VFT_icode___icode_base___IAttrWrite[70] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___ICode___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: IAttrWrite < ICode2: superclass init_table position */},
+  {(bigint) 0 /* 66: IAttrWrite < ICode2: superclass init_table position */},
   {(bigint) icode___icode_base___ICode2___expr1},
   {(bigint) icode___icode_base___ICode2___expr2},
   {(bigint) icode___icode_base___ICode2___init},
-  {(bigint) 3 /* 67: IAttrWrite < IAttrWrite: superclass init_table position */},
+  {(bigint) 3 /* 70: IAttrWrite < IAttrWrite: superclass init_table position */},
   {(bigint) icode___icode_base___IAttrWrite___property},
   {(bigint) icode___icode_base___IAttrWrite___init},
 };
@@ -150511,10 +144449,10 @@ void INIT_ATTRIBUTES__icode___icode_base___IAttrWrite(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -150576,7 +144514,7 @@ val_t NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_base.nit:439 */
+  /* icode/icode_base.nit:439 */
   fra.me.REG[3] = NEW_icode___icode_base___IAttrWrite();
   INIT_ATTRIBUTES__icode___icode_base___IAttrWrite(fra.me.REG[3]);
   icode___icode_base___IAttrWrite___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -150584,14 +144522,15 @@ val_t NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(val_t p0, val_t p1,
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-const classtable_elt_t VFT_icode___icode_base___IAttrIsset[69] = {
-  {(bigint) 2947 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IAttrIsset[72] = {
+  {(bigint) 2707 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IAttrIsset" /* 2: Class Name */},
   {(bigint) 3 /* 3: IAttrIsset < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: IAttrIsset < ICode: superclass typecheck marker */},
-  {(bigint) 2243 /* 5: IAttrIsset < ICode1: superclass typecheck marker */},
-  {(bigint) 2947 /* 6: IAttrIsset < IAttrIsset: superclass typecheck marker */},
+  {(bigint) 235 /* 4: IAttrIsset < ICode: superclass typecheck marker */},
+  {(bigint) 2279 /* 5: IAttrIsset < ICode1: superclass typecheck marker */},
+  {(bigint) 2707 /* 6: IAttrIsset < IAttrIsset: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -150603,7 +144542,7 @@ const classtable_elt_t VFT_icode___icode_base___IAttrIsset[69] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: IAttrIsset < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: IAttrIsset < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -150619,6 +144558,8 @@ const classtable_elt_t VFT_icode___icode_base___IAttrIsset[69] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -150640,7 +144581,7 @@ const classtable_elt_t VFT_icode___icode_base___IAttrIsset[69] = {
   {(bigint) analysis___icode_dump___IAttrIsset___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___IAttrIsset___inner_dup_with},
-  {(bigint) 1 /* 55: IAttrIsset < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: IAttrIsset < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode1___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -150648,10 +144589,10 @@ const classtable_elt_t VFT_icode___icode_base___IAttrIsset[69] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___IAttrIsset___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: IAttrIsset < ICode1: superclass init_table position */},
+  {(bigint) 0 /* 66: IAttrIsset < ICode1: superclass init_table position */},
   {(bigint) icode___icode_base___ICode1___expr},
   {(bigint) icode___icode_base___ICode1___init},
-  {(bigint) 3 /* 66: IAttrIsset < IAttrIsset: superclass init_table position */},
+  {(bigint) 3 /* 69: IAttrIsset < IAttrIsset: superclass init_table position */},
   {(bigint) icode___icode_base___IAttrIsset___property},
   {(bigint) icode___icode_base___IAttrIsset___init},
 };
@@ -150674,10 +144615,10 @@ void INIT_ATTRIBUTES__icode___icode_base___IAttrIsset(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -150732,7 +144673,7 @@ val_t NEW_IAttrIsset_icode___icode_base___IAttrIsset___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:454 */
+  /* icode/icode_base.nit:454 */
   fra.me.REG[2] = NEW_icode___icode_base___IAttrIsset();
   INIT_ATTRIBUTES__icode___icode_base___IAttrIsset(fra.me.REG[2]);
   icode___icode_base___IAttrIsset___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -150740,14 +144681,15 @@ val_t NEW_IAttrIsset_icode___icode_base___IAttrIsset___init(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_icode___icode_base___ITypeCheck[70] = {
-  {(bigint) 2859 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___ITypeCheck[73] = {
+  {(bigint) 2619 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ITypeCheck" /* 2: Class Name */},
   {(bigint) 3 /* 3: ITypeCheck < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: ITypeCheck < ICode: superclass typecheck marker */},
-  {(bigint) 2239 /* 5: ITypeCheck < ICode2: superclass typecheck marker */},
-  {(bigint) 2859 /* 6: ITypeCheck < ITypeCheck: superclass typecheck marker */},
+  {(bigint) 235 /* 4: ITypeCheck < ICode: superclass typecheck marker */},
+  {(bigint) 2275 /* 5: ITypeCheck < ICode2: superclass typecheck marker */},
+  {(bigint) 2619 /* 6: ITypeCheck < ITypeCheck: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -150759,7 +144701,7 @@ const classtable_elt_t VFT_icode___icode_base___ITypeCheck[70] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ITypeCheck < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: ITypeCheck < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -150775,6 +144717,8 @@ const classtable_elt_t VFT_icode___icode_base___ITypeCheck[70] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -150796,7 +144740,7 @@ const classtable_elt_t VFT_icode___icode_base___ITypeCheck[70] = {
   {(bigint) analysis___icode_dump___ITypeCheck___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___ITypeCheck___inner_dup_with},
-  {(bigint) 1 /* 55: ITypeCheck < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: ITypeCheck < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode2___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -150804,11 +144748,11 @@ const classtable_elt_t VFT_icode___icode_base___ITypeCheck[70] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___ITypeCheck___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: ITypeCheck < ICode2: superclass init_table position */},
+  {(bigint) 0 /* 66: ITypeCheck < ICode2: superclass init_table position */},
   {(bigint) icode___icode_base___ICode2___expr1},
   {(bigint) icode___icode_base___ICode2___expr2},
   {(bigint) icode___icode_base___ICode2___init},
-  {(bigint) 3 /* 67: ITypeCheck < ITypeCheck: superclass init_table position */},
+  {(bigint) 3 /* 70: ITypeCheck < ITypeCheck: superclass init_table position */},
   {(bigint) icode___icode_base___ITypeCheck___stype},
   {(bigint) icode___icode_base___ITypeCheck___init},
 };
@@ -150832,10 +144776,10 @@ void INIT_ATTRIBUTES__icode___icode_base___ITypeCheck(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -150897,7 +144841,7 @@ val_t NEW_ITypeCheck_icode___icode_base___ITypeCheck___init(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./icode//icode_base.nit:471 */
+  /* icode/icode_base.nit:471 */
   fra.me.REG[3] = NEW_icode___icode_base___ITypeCheck();
   INIT_ATTRIBUTES__icode___icode_base___ITypeCheck(fra.me.REG[3]);
   icode___icode_base___ITypeCheck___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -150905,14 +144849,15 @@ val_t NEW_ITypeCheck_icode___icode_base___ITypeCheck___init(val_t p0, val_t p1,
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-const classtable_elt_t VFT_icode___icode_base___IIs[69] = {
-  {(bigint) 2895 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IIs[72] = {
+  {(bigint) 2655 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IIs" /* 2: Class Name */},
   {(bigint) 3 /* 3: IIs < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: IIs < ICode: superclass typecheck marker */},
-  {(bigint) 2239 /* 5: IIs < ICode2: superclass typecheck marker */},
-  {(bigint) 2895 /* 6: IIs < IIs: superclass typecheck marker */},
+  {(bigint) 235 /* 4: IIs < ICode: superclass typecheck marker */},
+  {(bigint) 2275 /* 5: IIs < ICode2: superclass typecheck marker */},
+  {(bigint) 2655 /* 6: IIs < IIs: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -150924,7 +144869,7 @@ const classtable_elt_t VFT_icode___icode_base___IIs[69] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: IIs < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: IIs < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -150940,6 +144885,8 @@ const classtable_elt_t VFT_icode___icode_base___IIs[69] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -150961,7 +144908,7 @@ const classtable_elt_t VFT_icode___icode_base___IIs[69] = {
   {(bigint) analysis___icode_dump___IIs___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___IIs___inner_dup_with},
-  {(bigint) 1 /* 55: IIs < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: IIs < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode2___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -150969,11 +144916,11 @@ const classtable_elt_t VFT_icode___icode_base___IIs[69] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___IIs___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: IIs < ICode2: superclass init_table position */},
+  {(bigint) 0 /* 66: IIs < ICode2: superclass init_table position */},
   {(bigint) icode___icode_base___ICode2___expr1},
   {(bigint) icode___icode_base___ICode2___expr2},
   {(bigint) icode___icode_base___ICode2___init},
-  {(bigint) 3 /* 67: IIs < IIs: superclass init_table position */},
+  {(bigint) 3 /* 70: IIs < IIs: superclass init_table position */},
   {(bigint) icode___icode_base___IIs___init},
 };
 /* 0: Pointer to the classtable */
@@ -150995,10 +144942,10 @@ void INIT_ATTRIBUTES__icode___icode_base___IIs(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -151053,7 +145000,7 @@ val_t NEW_IIs_icode___icode_base___IIs___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./icode//icode_base.nit:484 */
+  /* icode/icode_base.nit:484 */
   fra.me.REG[2] = NEW_icode___icode_base___IIs();
   INIT_ATTRIBUTES__icode___icode_base___IIs(fra.me.REG[2]);
   icode___icode_base___IIs___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -151061,14 +145008,15 @@ val_t NEW_IIs_icode___icode_base___IIs___init(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_icode___icode_base___INot[68] = {
-  {(bigint) 2883 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___INot[71] = {
+  {(bigint) 2643 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "INot" /* 2: Class Name */},
   {(bigint) 3 /* 3: INot < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: INot < ICode: superclass typecheck marker */},
-  {(bigint) 2243 /* 5: INot < ICode1: superclass typecheck marker */},
-  {(bigint) 2883 /* 6: INot < INot: superclass typecheck marker */},
+  {(bigint) 235 /* 4: INot < ICode: superclass typecheck marker */},
+  {(bigint) 2279 /* 5: INot < ICode1: superclass typecheck marker */},
+  {(bigint) 2643 /* 6: INot < INot: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -151080,7 +145028,7 @@ const classtable_elt_t VFT_icode___icode_base___INot[68] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: INot < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: INot < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -151096,6 +145044,8 @@ const classtable_elt_t VFT_icode___icode_base___INot[68] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -151117,7 +145067,7 @@ const classtable_elt_t VFT_icode___icode_base___INot[68] = {
   {(bigint) analysis___icode_dump___INot___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___INot___inner_dup_with},
-  {(bigint) 1 /* 55: INot < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: INot < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode1___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -151125,10 +145075,10 @@ const classtable_elt_t VFT_icode___icode_base___INot[68] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___INot___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: INot < ICode1: superclass init_table position */},
+  {(bigint) 0 /* 66: INot < ICode1: superclass init_table position */},
   {(bigint) icode___icode_base___ICode1___expr},
   {(bigint) icode___icode_base___ICode1___init},
-  {(bigint) 3 /* 66: INot < INot: superclass init_table position */},
+  {(bigint) 3 /* 69: INot < INot: superclass init_table position */},
   {(bigint) icode___icode_base___INot___init},
 };
 /* 0: Pointer to the classtable */
@@ -151149,10 +145099,10 @@ void INIT_ATTRIBUTES__icode___icode_base___INot(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -151200,7 +145150,7 @@ val_t NEW_INot_icode___icode_base___INot___init(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:496 */
+  /* icode/icode_base.nit:496 */
   fra.me.REG[1] = NEW_icode___icode_base___INot();
   INIT_ATTRIBUTES__icode___icode_base___INot(fra.me.REG[1]);
   icode___icode_base___INot___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -151208,14 +145158,15 @@ val_t NEW_INot_icode___icode_base___INot___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_icode___icode_base___IOnce[67] = {
-  {(bigint) 2875 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IOnce[70] = {
+  {(bigint) 2635 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IOnce" /* 2: Class Name */},
   {(bigint) 3 /* 3: IOnce < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: IOnce < ICode: superclass typecheck marker */},
-  {(bigint) 2247 /* 5: IOnce < ICode0: superclass typecheck marker */},
-  {(bigint) 2875 /* 6: IOnce < IOnce: superclass typecheck marker */},
+  {(bigint) 235 /* 4: IOnce < ICode: superclass typecheck marker */},
+  {(bigint) 2283 /* 5: IOnce < ICode0: superclass typecheck marker */},
+  {(bigint) 2635 /* 6: IOnce < IOnce: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -151227,7 +145178,7 @@ const classtable_elt_t VFT_icode___icode_base___IOnce[67] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: IOnce < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: IOnce < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -151243,6 +145194,8 @@ const classtable_elt_t VFT_icode___icode_base___IOnce[67] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -151264,7 +145217,7 @@ const classtable_elt_t VFT_icode___icode_base___IOnce[67] = {
   {(bigint) analysis___icode_dump___ICode___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___IOnce___inner_dup_with},
-  {(bigint) 1 /* 55: IOnce < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: IOnce < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode0___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -151272,8 +145225,8 @@ const classtable_elt_t VFT_icode___icode_base___IOnce[67] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___ICode___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: IOnce < ICode0: superclass init_table position */},
-  {(bigint) 3 /* 64: IOnce < IOnce: superclass init_table position */},
+  {(bigint) 0 /* 66: IOnce < ICode0: superclass init_table position */},
+  {(bigint) 3 /* 67: IOnce < IOnce: superclass init_table position */},
   {(bigint) icode___icode_base___IOnce___body},
   {(bigint) icode___icode_base___IOnce___init},
 };
@@ -151295,13 +145248,13 @@ void INIT_ATTRIBUTES__icode___icode_base___IOnce(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:508 */
+  /* icode/icode_base.nit:508 */
   fra.me.REG[1] = NEW_ISeq_icode___icode_base___ISeq___init();
   ATTR_icode___icode_base___IOnce____body(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -151347,7 +145300,7 @@ val_t NEW_IOnce_icode___icode_base___IOnce___init(void){
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./icode//icode_base.nit:509 */
+  /* icode/icode_base.nit:509 */
   fra.me.REG[0] = NEW_icode___icode_base___IOnce();
   INIT_ATTRIBUTES__icode___icode_base___IOnce(fra.me.REG[0]);
   icode___icode_base___IOnce___init(fra.me.REG[0], init_table);
@@ -151355,14 +145308,15 @@ val_t NEW_IOnce_icode___icode_base___IOnce___init(void){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_icode___icode_base___IHasClos[67] = {
-  {(bigint) 2911 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_base___IHasClos[70] = {
+  {(bigint) 2671 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "IHasClos" /* 2: Class Name */},
   {(bigint) 3 /* 3: IHasClos < Object: superclass typecheck marker */},
-  {(bigint) 239 /* 4: IHasClos < ICode: superclass typecheck marker */},
-  {(bigint) 2247 /* 5: IHasClos < ICode0: superclass typecheck marker */},
-  {(bigint) 2911 /* 6: IHasClos < IHasClos: superclass typecheck marker */},
+  {(bigint) 235 /* 4: IHasClos < ICode: superclass typecheck marker */},
+  {(bigint) 2283 /* 5: IHasClos < ICode0: superclass typecheck marker */},
+  {(bigint) 2671 /* 6: IHasClos < IHasClos: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -151374,7 +145328,7 @@ const classtable_elt_t VFT_icode___icode_base___IHasClos[67] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: IHasClos < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: IHasClos < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -151390,6 +145344,8 @@ const classtable_elt_t VFT_icode___icode_base___IHasClos[67] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -151411,7 +145367,7 @@ const classtable_elt_t VFT_icode___icode_base___IHasClos[67] = {
   {(bigint) analysis___icode_dump___IHasClos___dump_intern},
   {(bigint) icode___icode_tools___ICode___dup_with},
   {(bigint) icode___icode_tools___IHasClos___inner_dup_with},
-  {(bigint) 1 /* 55: IHasClos < ICode: superclass init_table position */},
+  {(bigint) 1 /* 58: IHasClos < ICode: superclass init_table position */},
   {(bigint) icode___icode_base___ICode0___arity},
   {(bigint) icode___icode_base___ICode___result},
   {(bigint) icode___icode_base___ICode___result__eq},
@@ -151419,8 +145375,8 @@ const classtable_elt_t VFT_icode___icode_base___IHasClos[67] = {
   {(bigint) icode___icode_base___ICode___location__eq},
   {(bigint) icode___icode_base___IHasClos___is_pure},
   {(bigint) icode___icode_base___ICode___init},
-  {(bigint) 0 /* 63: IHasClos < ICode0: superclass init_table position */},
-  {(bigint) 3 /* 64: IHasClos < IHasClos: superclass init_table position */},
+  {(bigint) 0 /* 66: IHasClos < ICode0: superclass init_table position */},
+  {(bigint) 3 /* 67: IHasClos < IHasClos: superclass init_table position */},
   {(bigint) icode___icode_base___IHasClos___closure_decl},
   {(bigint) icode___icode_base___IHasClos___init},
 };
@@ -151442,10 +145398,10 @@ void INIT_ATTRIBUTES__icode___icode_base___IHasClos(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:95 */
+  /* icode/icode_base.nit:95 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_base.nit:98 */
+  /* icode/icode_base.nit:98 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -151493,7 +145449,7 @@ val_t NEW_IHasClos_icode___icode_base___IHasClos___init(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_base.nit:518 */
+  /* icode/icode_base.nit:518 */
   fra.me.REG[1] = NEW_icode___icode_base___IHasClos();
   INIT_ATTRIBUTES__icode___icode_base___IHasClos(fra.me.REG[1]);
   icode___icode_base___IHasClos___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -151501,13 +145457,12 @@ val_t NEW_IHasClos_icode___icode_base___IHasClos___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_icode___icode_builder___ICodeBuilder[71] = {
-  {(bigint) 235 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_builder___ICodeBuilder[74] = {
+  {(bigint) 231 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ICodeBuilder" /* 2: Class Name */},
   {(bigint) 3 /* 3: ICodeBuilder < Object: superclass typecheck marker */},
-  {(bigint) 235 /* 4: ICodeBuilder < ICodeBuilder: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
+  {(bigint) 231 /* 4: ICodeBuilder < ICodeBuilder: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -151518,169 +145473,11 @@ const classtable_elt_t VFT_icode___icode_builder___ICodeBuilder[71] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ICodeBuilder < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) icode___icode_tools___ICodeBuilder___inline_routine},
-  {(bigint) 1 /* 48: ICodeBuilder < ICodeBuilder: superclass init_table position */},
-  {(bigint) icode___icode_builder___ICodeBuilder___stmt},
-  {(bigint) icode___icode_builder___ICodeBuilder___expr},
-  {(bigint) icode___icode_builder___ICodeBuilder___add_assignment},
-  {(bigint) icode___icode_builder___ICodeBuilder___add_null_reciever_check},
-  {(bigint) icode___icode_builder___ICodeBuilder___add_type_cast},
-  {(bigint) icode___icode_builder___ICodeBuilder___add_attr_check},
-  {(bigint) icode___icode_builder___ICodeBuilder___add_attr_read},
-  {(bigint) icode___icode_builder___ICodeBuilder___add_abort},
-  {(bigint) icode___icode_builder___ICodeBuilder___add_return_value},
-  {(bigint) icode___icode_builder___ICodeBuilder___add_call},
-  {(bigint) icode___icode_builder___ICodeBuilder___add_escape},
-  {(bigint) icode___icode_builder___ICodeBuilder___lit_null_reg},
-  {(bigint) icode___icode_builder___ICodeBuilder___lit_true_reg},
-  {(bigint) icode___icode_builder___ICodeBuilder___lit_false_reg},
-  {(bigint) icode___icode_builder___ICodeBuilder___new_register},
-  {(bigint) icode___icode_builder___ICodeBuilder___mmmodule},
-  {(bigint) icode___icode_builder___ICodeBuilder___iroutine},
-  {(bigint) icode___icode_builder___ICodeBuilder___seq},
-  {(bigint) icode___icode_builder___ICodeBuilder___seq__eq},
-  {(bigint) icode___icode_builder___ICodeBuilder___init},
-  {(bigint) icode___icode_builder___ICodeBuilder___current_location},
-  {(bigint) icode___icode_builder___ICodeBuilder___current_location__eq},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute ICodeBuilder::_mmmodule */
-/* 3: Attribute ICodeBuilder::_iroutine */
-/* 4: Attribute ICodeBuilder::_seq */
-/* 5: Attribute ICodeBuilder::_current_location */
-void INIT_ATTRIBUTES__icode___icode_builder___ICodeBuilder(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__icode___icode_builder___ICodeBuilder;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./icode//icode_builder.nit:220 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_icode___icode_builder___ICodeBuilder____current_location(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_icode___icode_builder___ICodeBuilder(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
-  obj->vft = (classtable_elt_t*)VFT_icode___icode_builder___ICodeBuilder;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_icode___icode_builder___ICodeBuilder(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_icode___icode_builder___ICodeBuilder;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____mmmodule(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____iroutine(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_iroutine", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____seq(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_seq", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  int init_table[2] = {0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 212;
-  fra.me.meth = LOCATE_NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./icode//icode_builder.nit:212 */
-  fra.me.REG[2] = NEW_icode___icode_builder___ICodeBuilder();
-  INIT_ATTRIBUTES__icode___icode_builder___ICodeBuilder(fra.me.REG[2]);
-  icode___icode_builder___ICodeBuilder___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_icode___icode_builder___ICodeBuilder(fra.me.REG[2]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
-}
-const classtable_elt_t VFT_icode___icode_tools___ICodeVisitor[55] = {
-  {(bigint) 223 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ICodeVisitor" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ICodeVisitor < Object: superclass typecheck marker */},
-  {(bigint) 223 /* 4: ICodeVisitor < ICodeVisitor: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ICodeVisitor < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: ICodeBuilder < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -151696,6 +145493,8 @@ const classtable_elt_t VFT_icode___icode_tools___ICodeVisitor[55] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -151709,82 +145508,125 @@ const classtable_elt_t VFT_icode___icode_tools___ICodeVisitor[55] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ICodeVisitor < ICodeVisitor: superclass init_table position */},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_read},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_write},
-  {(bigint) icode___icode_tools___ICodeVisitor___current_icode},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_icode},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_closure_defs},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_iroutine},
-  {(bigint) icode___icode_tools___ICodeVisitor___init},
+  {(bigint) icode___icode_tools___ICodeBuilder___inline_routine},
+  {(bigint) 1 /* 51: ICodeBuilder < ICodeBuilder: superclass init_table position */},
+  {(bigint) icode___icode_builder___ICodeBuilder___stmt},
+  {(bigint) icode___icode_builder___ICodeBuilder___expr},
+  {(bigint) icode___icode_builder___ICodeBuilder___add_assignment},
+  {(bigint) icode___icode_builder___ICodeBuilder___add_null_reciever_check},
+  {(bigint) icode___icode_builder___ICodeBuilder___add_type_cast},
+  {(bigint) icode___icode_builder___ICodeBuilder___add_attr_check},
+  {(bigint) icode___icode_builder___ICodeBuilder___add_attr_read},
+  {(bigint) icode___icode_builder___ICodeBuilder___add_abort},
+  {(bigint) icode___icode_builder___ICodeBuilder___add_return_value},
+  {(bigint) icode___icode_builder___ICodeBuilder___add_call},
+  {(bigint) icode___icode_builder___ICodeBuilder___add_escape},
+  {(bigint) icode___icode_builder___ICodeBuilder___lit_null_reg},
+  {(bigint) icode___icode_builder___ICodeBuilder___lit_true_reg},
+  {(bigint) icode___icode_builder___ICodeBuilder___lit_false_reg},
+  {(bigint) icode___icode_builder___ICodeBuilder___new_register},
+  {(bigint) icode___icode_builder___ICodeBuilder___mmmodule},
+  {(bigint) icode___icode_builder___ICodeBuilder___iroutine},
+  {(bigint) icode___icode_builder___ICodeBuilder___seq},
+  {(bigint) icode___icode_builder___ICodeBuilder___seq__eq},
+  {(bigint) icode___icode_builder___ICodeBuilder___init},
+  {(bigint) icode___icode_builder___ICodeBuilder___current_location},
+  {(bigint) icode___icode_builder___ICodeBuilder___current_location__eq},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ICodeVisitor::_current_icode */
-void INIT_ATTRIBUTES__icode___icode_tools___ICodeVisitor(val_t p0){
+/* 2: Attribute ICodeBuilder::_mmmodule */
+/* 3: Attribute ICodeBuilder::_iroutine */
+/* 4: Attribute ICodeBuilder::_seq */
+/* 5: Attribute ICodeBuilder::_current_location */
+void INIT_ATTRIBUTES__icode___icode_builder___ICodeBuilder(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__icode___icode_tools___ICodeVisitor;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__icode___icode_builder___ICodeBuilder;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_tools.nit:29 */
+  /* icode/icode_builder.nit:220 */
   fra.me.REG[1] = NIT_NULL;
-  ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]) = fra.me.REG[1];
+  ATTR_icode___icode_builder___ICodeBuilder____current_location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_icode___icode_tools___ICodeVisitor(void)
+val_t NEW_icode___icode_builder___ICodeBuilder(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_icode___icode_tools___ICodeVisitor;
+  obj = alloc(sizeof(val_t) * 6);
+  obj->vft = (classtable_elt_t*)VFT_icode___icode_builder___ICodeBuilder;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_icode___icode_tools___ICodeVisitor(val_t p0){
+void CHECKNEW_icode___icode_builder___ICodeBuilder(val_t p0){
   struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_icode___icode_tools___ICodeVisitor;
+  fra.me.meth = LOCATE_CHECKNEW_icode___icode_builder___ICodeBuilder;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____mmmodule(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____iroutine(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_iroutine", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____seq(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_seq", LOCATE_nitc, 0);
+  }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ICodeVisitor_icode___icode_tools___ICodeVisitor___init(void){
-  struct {struct stack_frame_t me;} fra;
+val_t NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
   int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ICodeVisitor_icode___icode_tools___ICodeVisitor___init;
+  fra.me.line = 212;
+  fra.me.meth = LOCATE_NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
+  fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_icode___icode_tools___ICodeVisitor();
-  INIT_ATTRIBUTES__icode___icode_tools___ICodeVisitor(fra.me.REG[0]);
-  icode___icode_tools___ICodeVisitor___init(fra.me.REG[0], init_table);
-  CHECKNEW_icode___icode_tools___ICodeVisitor(fra.me.REG[0]);
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* icode/icode_builder.nit:212 */
+  fra.me.REG[2] = NEW_icode___icode_builder___ICodeBuilder();
+  INIT_ATTRIBUTES__icode___icode_builder___ICodeBuilder(fra.me.REG[2]);
+  icode___icode_builder___ICodeBuilder___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_icode___icode_builder___ICodeBuilder(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_icode___icode_tools___ICodeDupContext[52] = {
-  {(bigint) 227 /* 0: Identity */},
+const classtable_elt_t VFT_icode___icode_tools___ICodeDupContext[55] = {
+  {(bigint) 223 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ICodeDupContext" /* 2: Class Name */},
   {(bigint) 3 /* 3: ICodeDupContext < Object: superclass typecheck marker */},
-  {(bigint) 227 /* 4: ICodeDupContext < ICodeDupContext: superclass typecheck marker */},
+  {(bigint) 223 /* 4: ICodeDupContext < ICodeDupContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -151798,7 +145640,7 @@ const classtable_elt_t VFT_icode___icode_tools___ICodeDupContext[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ICodeDupContext < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: ICodeDupContext < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -151814,6 +145656,8 @@ const classtable_elt_t VFT_icode___icode_tools___ICodeDupContext[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -151827,7 +145671,7 @@ const classtable_elt_t VFT_icode___icode_tools___ICodeDupContext[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ICodeDupContext < ICodeDupContext: superclass init_table position */},
+  {(bigint) 1 /* 50: ICodeDupContext < ICodeDupContext: superclass init_table position */},
   {(bigint) icode___icode_tools___ICodeDupContext___dup_ireg},
   {(bigint) icode___icode_tools___ICodeDupContext___dup_iregs},
   {(bigint) icode___icode_tools___ICodeDupContext___dup_mark},
@@ -151852,13 +145696,13 @@ void INIT_ATTRIBUTES__icode___icode_tools___ICodeDupContext(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_tools.nit:178 */
+  /* icode/icode_tools.nit:178 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_icode___icode_tools___ICodeDupContext____registers(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_tools.nit:195 */
+  /* icode/icode_tools.nit:195 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_icode___icode_tools___ICodeDupContext____marks(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_tools.nit:198 */
+  /* icode/icode_tools.nit:198 */
   fra.me.REG[1] = NEW_ArrayMap_standard___collection___array___ArrayMap___init();
   ATTR_icode___icode_tools___ICodeDupContext____closures(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -151921,7 +145765,7 @@ val_t NEW_ICodeDupContext_icode___icode_tools___ICodeDupContext___init(val_t p0)
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_tools.nit:203 */
+  /* icode/icode_tools.nit:203 */
   fra.me.REG[1] = NEW_icode___icode_tools___ICodeDupContext();
   INIT_ATTRIBUTES__icode___icode_tools___ICodeDupContext(fra.me.REG[1]);
   icode___icode_tools___ICodeDupContext___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -151929,13 +145773,14 @@ val_t NEW_ICodeDupContext_icode___icode_tools___ICodeDupContext___init(val_t p0)
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_syntax___flow___RootFlowContext[64] = {
-  {(bigint) 363 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___flow___RootFlowContext[67] = {
+  {(bigint) 355 /* 0: Identity */},
   {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "RootFlowContext" /* 2: Class Name */},
   {(bigint) 3 /* 3: RootFlowContext < Object: superclass typecheck marker */},
-  {(bigint) 263 /* 4: RootFlowContext < FlowContext: superclass typecheck marker */},
-  {(bigint) 363 /* 5: RootFlowContext < RootFlowContext: superclass typecheck marker */},
+  {(bigint) 259 /* 4: RootFlowContext < FlowContext: superclass typecheck marker */},
+  {(bigint) 355 /* 5: RootFlowContext < RootFlowContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -151948,7 +145793,7 @@ const classtable_elt_t VFT_syntax___flow___RootFlowContext[64] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: RootFlowContext < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: RootFlowContext < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -151964,6 +145809,8 @@ const classtable_elt_t VFT_syntax___flow___RootFlowContext[64] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -151977,7 +145824,7 @@ const classtable_elt_t VFT_syntax___flow___RootFlowContext[64] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: RootFlowContext < FlowContext: superclass init_table position */},
+  {(bigint) 0 /* 50: RootFlowContext < FlowContext: superclass init_table position */},
   {(bigint) syntax___flow___FlowContext___check_is_set},
   {(bigint) syntax___flow___FlowContext___stype},
   {(bigint) syntax___flow___FlowContext___sub_setvariable},
@@ -151992,7 +145839,7 @@ const classtable_elt_t VFT_syntax___flow___RootFlowContext[64] = {
   {(bigint) syntax___flow___FlowContext___already_unreash__eq},
   {(bigint) syntax___flow___FlowContext___set_variables},
   {(bigint) syntax___flow___FlowContext___is_set},
-  {(bigint) 2 /* 62: RootFlowContext < RootFlowContext: superclass init_table position */},
+  {(bigint) 2 /* 65: RootFlowContext < RootFlowContext: superclass init_table position */},
   {(bigint) syntax___flow___RootFlowContext___init},
 };
 /* 0: Pointer to the classtable */
@@ -152016,13 +145863,13 @@ void INIT_ATTRIBUTES__syntax___flow___RootFlowContext(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//flow.nit:121 */
+  /* syntax/flow.nit:121 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___flow___FlowContext____unreash(fra.me.REG[0]) = REGB0;
-  /* ./syntax//flow.nit:125 */
+  /* syntax/flow.nit:125 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___flow___FlowContext____already_unreash(fra.me.REG[0]) = REGB0;
-  /* ./syntax//flow.nit:128 */
+  /* syntax/flow.nit:128 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -152092,7 +145939,7 @@ val_t NEW_RootFlowContext_syntax___flow___RootFlowContext___init(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//flow.nit:140 */
+  /* syntax/flow.nit:140 */
   fra.me.REG[2] = NEW_syntax___flow___RootFlowContext();
   INIT_ATTRIBUTES__syntax___flow___RootFlowContext(fra.me.REG[2]);
   syntax___flow___RootFlowContext___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -152100,13 +145947,14 @@ val_t NEW_RootFlowContext_syntax___flow___RootFlowContext___init(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_syntax___flow___SubFlowContext[65] = {
-  {(bigint) 343 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___flow___SubFlowContext[68] = {
+  {(bigint) 335 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "SubFlowContext" /* 2: Class Name */},
   {(bigint) 3 /* 3: SubFlowContext < Object: superclass typecheck marker */},
-  {(bigint) 263 /* 4: SubFlowContext < FlowContext: superclass typecheck marker */},
-  {(bigint) 343 /* 5: SubFlowContext < SubFlowContext: superclass typecheck marker */},
+  {(bigint) 259 /* 4: SubFlowContext < FlowContext: superclass typecheck marker */},
+  {(bigint) 335 /* 5: SubFlowContext < SubFlowContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -152119,7 +145967,7 @@ const classtable_elt_t VFT_syntax___flow___SubFlowContext[65] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: SubFlowContext < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: SubFlowContext < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -152135,6 +145983,8 @@ const classtable_elt_t VFT_syntax___flow___SubFlowContext[65] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -152148,7 +145998,7 @@ const classtable_elt_t VFT_syntax___flow___SubFlowContext[65] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: SubFlowContext < FlowContext: superclass init_table position */},
+  {(bigint) 0 /* 50: SubFlowContext < FlowContext: superclass init_table position */},
   {(bigint) syntax___flow___FlowContext___check_is_set},
   {(bigint) syntax___flow___SubFlowContext___stype},
   {(bigint) syntax___flow___FlowContext___sub_setvariable},
@@ -152163,7 +146013,7 @@ const classtable_elt_t VFT_syntax___flow___SubFlowContext[65] = {
   {(bigint) syntax___flow___FlowContext___already_unreash__eq},
   {(bigint) syntax___flow___FlowContext___set_variables},
   {(bigint) syntax___flow___SubFlowContext___is_set},
-  {(bigint) 2 /* 62: SubFlowContext < SubFlowContext: superclass init_table position */},
+  {(bigint) 2 /* 65: SubFlowContext < SubFlowContext: superclass init_table position */},
   {(bigint) syntax___flow___SubFlowContext___prev},
   {(bigint) syntax___flow___SubFlowContext___with_prev},
 };
@@ -152189,13 +146039,13 @@ void INIT_ATTRIBUTES__syntax___flow___SubFlowContext(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//flow.nit:121 */
+  /* syntax/flow.nit:121 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___flow___FlowContext____unreash(fra.me.REG[0]) = REGB0;
-  /* ./syntax//flow.nit:125 */
+  /* syntax/flow.nit:125 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___flow___FlowContext____already_unreash(fra.me.REG[0]) = REGB0;
-  /* ./syntax//flow.nit:128 */
+  /* syntax/flow.nit:128 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -152270,7 +146120,7 @@ val_t NEW_SubFlowContext_syntax___flow___SubFlowContext___with_prev(val_t p0, va
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//flow.nit:161 */
+  /* syntax/flow.nit:161 */
   fra.me.REG[2] = NEW_syntax___flow___SubFlowContext();
   INIT_ATTRIBUTES__syntax___flow___SubFlowContext(fra.me.REG[2]);
   syntax___flow___SubFlowContext___with_prev(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -152278,14 +146128,15 @@ val_t NEW_SubFlowContext_syntax___flow___SubFlowContext___with_prev(val_t p0, va
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_syntax___flow___CastFlowContext[67] = {
-  {(bigint) 3011 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___flow___CastFlowContext[70] = {
+  {(bigint) 2771 /* 0: Identity */},
   {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "CastFlowContext" /* 2: Class Name */},
   {(bigint) 3 /* 3: CastFlowContext < Object: superclass typecheck marker */},
-  {(bigint) 263 /* 4: CastFlowContext < FlowContext: superclass typecheck marker */},
-  {(bigint) 343 /* 5: CastFlowContext < SubFlowContext: superclass typecheck marker */},
-  {(bigint) 3011 /* 6: CastFlowContext < CastFlowContext: superclass typecheck marker */},
+  {(bigint) 259 /* 4: CastFlowContext < FlowContext: superclass typecheck marker */},
+  {(bigint) 335 /* 5: CastFlowContext < SubFlowContext: superclass typecheck marker */},
+  {(bigint) 2771 /* 6: CastFlowContext < CastFlowContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -152297,7 +146148,7 @@ const classtable_elt_t VFT_syntax___flow___CastFlowContext[67] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: CastFlowContext < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: CastFlowContext < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -152313,6 +146164,8 @@ const classtable_elt_t VFT_syntax___flow___CastFlowContext[67] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -152326,7 +146179,7 @@ const classtable_elt_t VFT_syntax___flow___CastFlowContext[67] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: CastFlowContext < FlowContext: superclass init_table position */},
+  {(bigint) 0 /* 50: CastFlowContext < FlowContext: superclass init_table position */},
   {(bigint) syntax___flow___FlowContext___check_is_set},
   {(bigint) syntax___flow___CastFlowContext___stype},
   {(bigint) syntax___flow___FlowContext___sub_setvariable},
@@ -152341,10 +146194,10 @@ const classtable_elt_t VFT_syntax___flow___CastFlowContext[67] = {
   {(bigint) syntax___flow___FlowContext___already_unreash__eq},
   {(bigint) syntax___flow___FlowContext___set_variables},
   {(bigint) syntax___flow___SubFlowContext___is_set},
-  {(bigint) 2 /* 62: CastFlowContext < SubFlowContext: superclass init_table position */},
+  {(bigint) 2 /* 65: CastFlowContext < SubFlowContext: superclass init_table position */},
   {(bigint) syntax___flow___SubFlowContext___prev},
   {(bigint) syntax___flow___SubFlowContext___with_prev},
-  {(bigint) 3 /* 65: CastFlowContext < CastFlowContext: superclass init_table position */},
+  {(bigint) 3 /* 68: CastFlowContext < CastFlowContext: superclass init_table position */},
   {(bigint) syntax___flow___CastFlowContext___init},
 };
 /* 0: Pointer to the classtable */
@@ -152371,13 +146224,13 @@ void INIT_ATTRIBUTES__syntax___flow___CastFlowContext(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//flow.nit:121 */
+  /* syntax/flow.nit:121 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___flow___FlowContext____unreash(fra.me.REG[0]) = REGB0;
-  /* ./syntax//flow.nit:125 */
+  /* syntax/flow.nit:125 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___flow___FlowContext____already_unreash(fra.me.REG[0]) = REGB0;
-  /* ./syntax//flow.nit:128 */
+  /* syntax/flow.nit:128 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -152461,7 +146314,7 @@ val_t NEW_CastFlowContext_syntax___flow___CastFlowContext___init(val_t p0, val_t
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./syntax//flow.nit:186 */
+  /* syntax/flow.nit:186 */
   fra.me.REG[4] = NEW_syntax___flow___CastFlowContext();
   INIT_ATTRIBUTES__syntax___flow___CastFlowContext(fra.me.REG[4]);
   syntax___flow___CastFlowContext___init(fra.me.REG[4], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
@@ -152469,13 +146322,14 @@ val_t NEW_CastFlowContext_syntax___flow___CastFlowContext___init(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[4];
 }
-const classtable_elt_t VFT_syntax___flow___MergeFlowContext[65] = {
-  {(bigint) 2127 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___flow___MergeFlowContext[68] = {
+  {(bigint) 2163 /* 0: Identity */},
   {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "MergeFlowContext" /* 2: Class Name */},
   {(bigint) 3 /* 3: MergeFlowContext < Object: superclass typecheck marker */},
-  {(bigint) 263 /* 4: MergeFlowContext < FlowContext: superclass typecheck marker */},
-  {(bigint) 2127 /* 5: MergeFlowContext < MergeFlowContext: superclass typecheck marker */},
+  {(bigint) 259 /* 4: MergeFlowContext < FlowContext: superclass typecheck marker */},
+  {(bigint) 2163 /* 5: MergeFlowContext < MergeFlowContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -152488,7 +146342,7 @@ const classtable_elt_t VFT_syntax___flow___MergeFlowContext[65] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: MergeFlowContext < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: MergeFlowContext < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -152504,6 +146358,8 @@ const classtable_elt_t VFT_syntax___flow___MergeFlowContext[65] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -152517,7 +146373,7 @@ const classtable_elt_t VFT_syntax___flow___MergeFlowContext[65] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: MergeFlowContext < FlowContext: superclass init_table position */},
+  {(bigint) 0 /* 50: MergeFlowContext < FlowContext: superclass init_table position */},
   {(bigint) syntax___flow___FlowContext___check_is_set},
   {(bigint) syntax___flow___MergeFlowContext___stype},
   {(bigint) syntax___flow___FlowContext___sub_setvariable},
@@ -152532,7 +146388,7 @@ const classtable_elt_t VFT_syntax___flow___MergeFlowContext[65] = {
   {(bigint) syntax___flow___FlowContext___already_unreash__eq},
   {(bigint) syntax___flow___FlowContext___set_variables},
   {(bigint) syntax___flow___MergeFlowContext___is_set},
-  {(bigint) 2 /* 62: MergeFlowContext < MergeFlowContext: superclass init_table position */},
+  {(bigint) 2 /* 65: MergeFlowContext < MergeFlowContext: superclass init_table position */},
   {(bigint) syntax___flow___MergeFlowContext___init},
   {(bigint) syntax___flow___MergeFlowContext___merge_stype},
 };
@@ -152560,16 +146416,16 @@ void INIT_ATTRIBUTES__syntax___flow___MergeFlowContext(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//flow.nit:202 */
+  /* syntax/flow.nit:202 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_syntax___flow___MergeFlowContext____stypes(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//flow.nit:121 */
+  /* syntax/flow.nit:121 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___flow___FlowContext____unreash(fra.me.REG[0]) = REGB0;
-  /* ./syntax//flow.nit:125 */
+  /* syntax/flow.nit:125 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___flow___FlowContext____already_unreash(fra.me.REG[0]) = REGB0;
-  /* ./syntax//flow.nit:128 */
+  /* syntax/flow.nit:128 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -152656,7 +146512,7 @@ val_t NEW_MergeFlowContext_syntax___flow___MergeFlowContext___init(val_t p0, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//flow.nit:204 */
+  /* syntax/flow.nit:204 */
   fra.me.REG[3] = NEW_syntax___flow___MergeFlowContext();
   INIT_ATTRIBUTES__syntax___flow___MergeFlowContext(fra.me.REG[3]);
   syntax___flow___MergeFlowContext___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -152664,7 +146520,7 @@ val_t NEW_MergeFlowContext_syntax___flow___MergeFlowContext___init(val_t p0, val
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-const classtable_elt_t VFT_syntax___scope___ScopeContext[57] = {
+const classtable_elt_t VFT_syntax___scope___ScopeContext[60] = {
   {(bigint) 55 /* 0: Identity */},
   {(bigint) 6 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ScopeContext" /* 2: Class Name */},
@@ -152681,9 +146537,10 @@ const classtable_elt_t VFT_syntax___scope___ScopeContext[57] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ScopeContext < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: ScopeContext < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -152699,6 +146556,8 @@ const classtable_elt_t VFT_syntax___scope___ScopeContext[57] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -152712,7 +146571,7 @@ const classtable_elt_t VFT_syntax___scope___ScopeContext[57] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ScopeContext < ScopeContext: superclass init_table position */},
+  {(bigint) 1 /* 50: ScopeContext < ScopeContext: superclass init_table position */},
   {(bigint) syntax___scope___ScopeContext_____bra},
   {(bigint) syntax___scope___ScopeContext___add_variable},
   {(bigint) syntax___scope___ScopeContext___push},
@@ -152742,13 +146601,13 @@ void INIT_ATTRIBUTES__syntax___scope___ScopeContext(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:33 */
+  /* syntax/scope.nit:33 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//scope.nit:38 */
+  /* syntax/scope.nit:38 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_syntax___scope___ScopeContext____variables(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//scope.nit:43 */
+  /* syntax/scope.nit:43 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_syntax___scope___ScopeContext____labels(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -152811,7 +146670,7 @@ val_t NEW_ScopeContext_syntax___scope___ScopeContext___init(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:129 */
+  /* syntax/scope.nit:129 */
   fra.me.REG[1] = NEW_syntax___scope___ScopeContext();
   INIT_ATTRIBUTES__syntax___scope___ScopeContext(fra.me.REG[1]);
   syntax___scope___ScopeContext___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -152819,7 +146678,7 @@ val_t NEW_ScopeContext_syntax___scope___ScopeContext___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_syntax___scope___ScopeBlock[52] = {
+const classtable_elt_t VFT_syntax___scope___ScopeBlock[55] = {
   {(bigint) 59 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ScopeBlock" /* 2: Class Name */},
@@ -152836,9 +146695,10 @@ const classtable_elt_t VFT_syntax___scope___ScopeBlock[52] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ScopeBlock < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: ScopeBlock < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -152854,6 +146714,8 @@ const classtable_elt_t VFT_syntax___scope___ScopeBlock[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -152867,7 +146729,7 @@ const classtable_elt_t VFT_syntax___scope___ScopeBlock[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ScopeBlock < ScopeBlock: superclass init_table position */},
+  {(bigint) 1 /* 50: ScopeBlock < ScopeBlock: superclass init_table position */},
   {(bigint) syntax___scope___ScopeBlock___node},
   {(bigint) syntax___scope___ScopeBlock___add_variable},
   {(bigint) syntax___scope___ScopeBlock___get_variable},
@@ -152890,7 +146752,7 @@ void INIT_ATTRIBUTES__syntax___scope___ScopeBlock(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:143 */
+  /* syntax/scope.nit:143 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___scope___ScopeBlock____dico(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -152938,7 +146800,7 @@ val_t NEW_ScopeBlock_syntax___scope___ScopeBlock___init(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:165 */
+  /* syntax/scope.nit:165 */
   fra.me.REG[1] = NEW_syntax___scope___ScopeBlock();
   INIT_ATTRIBUTES__syntax___scope___ScopeBlock(fra.me.REG[1]);
   syntax___scope___ScopeBlock___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -152946,13 +146808,14 @@ val_t NEW_ScopeBlock_syntax___scope___ScopeBlock___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_syntax___scope___EscapableBlock[67] = {
-  {(bigint) 2291 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___scope___EscapableBlock[70] = {
+  {(bigint) 2327 /* 0: Identity */},
   {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "EscapableBlock" /* 2: Class Name */},
   {(bigint) 3 /* 3: EscapableBlock < Object: superclass typecheck marker */},
   {(bigint) 59 /* 4: EscapableBlock < ScopeBlock: superclass typecheck marker */},
-  {(bigint) 2291 /* 5: EscapableBlock < EscapableBlock: superclass typecheck marker */},
+  {(bigint) 2327 /* 5: EscapableBlock < EscapableBlock: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -152965,7 +146828,7 @@ const classtable_elt_t VFT_syntax___scope___EscapableBlock[67] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: EscapableBlock < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: EscapableBlock < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -152981,6 +146844,8 @@ const classtable_elt_t VFT_syntax___scope___EscapableBlock[67] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -152994,7 +146859,7 @@ const classtable_elt_t VFT_syntax___scope___EscapableBlock[67] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: EscapableBlock < ScopeBlock: superclass init_table position */},
+  {(bigint) 1 /* 50: EscapableBlock < ScopeBlock: superclass init_table position */},
   {(bigint) syntax___scope___ScopeBlock___node},
   {(bigint) syntax___scope___ScopeBlock___add_variable},
   {(bigint) syntax___scope___ScopeBlock___get_variable},
@@ -153007,7 +146872,7 @@ const classtable_elt_t VFT_syntax___scope___EscapableBlock[67] = {
   {(bigint) syntax___icode_generation___EscapableBlock___break_value__eq},
   {(bigint) syntax___icode_generation___EscapableBlock___continue_value},
   {(bigint) syntax___icode_generation___EscapableBlock___continue_value__eq},
-  {(bigint) 2 /* 60: EscapableBlock < EscapableBlock: superclass init_table position */},
+  {(bigint) 2 /* 63: EscapableBlock < EscapableBlock: superclass init_table position */},
   {(bigint) syntax___scope___EscapableBlock___lab},
   {(bigint) syntax___scope___EscapableBlock___is_break_block},
   {(bigint) syntax___scope___EscapableBlock___break_list},
@@ -153038,10 +146903,10 @@ void INIT_ATTRIBUTES__syntax___scope___EscapableBlock(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:194 */
+  /* syntax/scope.nit:194 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_syntax___scope___EscapableBlock____break_flow_contexts(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//scope.nit:143 */
+  /* syntax/scope.nit:143 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___scope___ScopeBlock____dico(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -153094,7 +146959,7 @@ val_t NEW_EscapableBlock_syntax___scope___EscapableBlock___init(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:196 */
+  /* syntax/scope.nit:196 */
   fra.me.REG[1] = NEW_syntax___scope___EscapableBlock();
   INIT_ATTRIBUTES__syntax___scope___EscapableBlock(fra.me.REG[1]);
   syntax___scope___EscapableBlock___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -153102,14 +146967,15 @@ val_t NEW_EscapableBlock_syntax___scope___EscapableBlock___init(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_syntax___scope___BreakOnlyEscapableBlock[69] = {
-  {(bigint) 3019 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___scope___BreakOnlyEscapableBlock[72] = {
+  {(bigint) 2779 /* 0: Identity */},
   {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "BreakOnlyEscapableBlock" /* 2: Class Name */},
   {(bigint) 3 /* 3: BreakOnlyEscapableBlock < Object: superclass typecheck marker */},
   {(bigint) 59 /* 4: BreakOnlyEscapableBlock < ScopeBlock: superclass typecheck marker */},
-  {(bigint) 2291 /* 5: BreakOnlyEscapableBlock < EscapableBlock: superclass typecheck marker */},
-  {(bigint) 3019 /* 6: BreakOnlyEscapableBlock < BreakOnlyEscapableBlock: superclass typecheck marker */},
+  {(bigint) 2327 /* 5: BreakOnlyEscapableBlock < EscapableBlock: superclass typecheck marker */},
+  {(bigint) 2779 /* 6: BreakOnlyEscapableBlock < BreakOnlyEscapableBlock: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -153121,7 +146987,7 @@ const classtable_elt_t VFT_syntax___scope___BreakOnlyEscapableBlock[69] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: BreakOnlyEscapableBlock < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: BreakOnlyEscapableBlock < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -153137,6 +147003,8 @@ const classtable_elt_t VFT_syntax___scope___BreakOnlyEscapableBlock[69] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -153150,7 +147018,7 @@ const classtable_elt_t VFT_syntax___scope___BreakOnlyEscapableBlock[69] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: BreakOnlyEscapableBlock < ScopeBlock: superclass init_table position */},
+  {(bigint) 1 /* 50: BreakOnlyEscapableBlock < ScopeBlock: superclass init_table position */},
   {(bigint) syntax___scope___ScopeBlock___node},
   {(bigint) syntax___scope___ScopeBlock___add_variable},
   {(bigint) syntax___scope___ScopeBlock___get_variable},
@@ -153163,14 +147031,14 @@ const classtable_elt_t VFT_syntax___scope___BreakOnlyEscapableBlock[69] = {
   {(bigint) syntax___icode_generation___EscapableBlock___break_value__eq},
   {(bigint) syntax___icode_generation___EscapableBlock___continue_value},
   {(bigint) syntax___icode_generation___EscapableBlock___continue_value__eq},
-  {(bigint) 2 /* 60: BreakOnlyEscapableBlock < EscapableBlock: superclass init_table position */},
+  {(bigint) 2 /* 63: BreakOnlyEscapableBlock < EscapableBlock: superclass init_table position */},
   {(bigint) syntax___scope___EscapableBlock___lab},
   {(bigint) syntax___scope___BreakOnlyEscapableBlock___is_break_block},
   {(bigint) syntax___scope___EscapableBlock___break_list},
   {(bigint) syntax___scope___EscapableBlock___continue_stype},
   {(bigint) syntax___scope___EscapableBlock___break_flow_contexts},
   {(bigint) syntax___scope___EscapableBlock___init},
-  {(bigint) 3 /* 67: BreakOnlyEscapableBlock < BreakOnlyEscapableBlock: superclass init_table position */},
+  {(bigint) 3 /* 70: BreakOnlyEscapableBlock < BreakOnlyEscapableBlock: superclass init_table position */},
   {(bigint) syntax___scope___BreakOnlyEscapableBlock___init},
 };
 /* 0: Pointer to the classtable */
@@ -153196,10 +147064,10 @@ void INIT_ATTRIBUTES__syntax___scope___BreakOnlyEscapableBlock(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:194 */
+  /* syntax/scope.nit:194 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_syntax___scope___EscapableBlock____break_flow_contexts(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//scope.nit:143 */
+  /* syntax/scope.nit:143 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___scope___ScopeBlock____dico(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -153252,7 +147120,7 @@ val_t NEW_BreakOnlyEscapableBlock_syntax___scope___BreakOnlyEscapableBlock___ini
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:207 */
+  /* syntax/scope.nit:207 */
   fra.me.REG[1] = NEW_syntax___scope___BreakOnlyEscapableBlock();
   INIT_ATTRIBUTES__syntax___scope___BreakOnlyEscapableBlock(fra.me.REG[1]);
   syntax___scope___BreakOnlyEscapableBlock___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -153260,14 +147128,15 @@ val_t NEW_BreakOnlyEscapableBlock_syntax___scope___BreakOnlyEscapableBlock___ini
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_syntax___scope___EscapableClosure[70] = {
-  {(bigint) 2983 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___scope___EscapableClosure[73] = {
+  {(bigint) 2743 /* 0: Identity */},
   {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "EscapableClosure" /* 2: Class Name */},
   {(bigint) 3 /* 3: EscapableClosure < Object: superclass typecheck marker */},
   {(bigint) 59 /* 4: EscapableClosure < ScopeBlock: superclass typecheck marker */},
-  {(bigint) 2291 /* 5: EscapableClosure < EscapableBlock: superclass typecheck marker */},
-  {(bigint) 2983 /* 6: EscapableClosure < EscapableClosure: superclass typecheck marker */},
+  {(bigint) 2327 /* 5: EscapableClosure < EscapableBlock: superclass typecheck marker */},
+  {(bigint) 2743 /* 6: EscapableClosure < EscapableClosure: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -153279,7 +147148,7 @@ const classtable_elt_t VFT_syntax___scope___EscapableClosure[70] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: EscapableClosure < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: EscapableClosure < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -153295,6 +147164,8 @@ const classtable_elt_t VFT_syntax___scope___EscapableClosure[70] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -153308,7 +147179,7 @@ const classtable_elt_t VFT_syntax___scope___EscapableClosure[70] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: EscapableClosure < ScopeBlock: superclass init_table position */},
+  {(bigint) 1 /* 50: EscapableClosure < ScopeBlock: superclass init_table position */},
   {(bigint) syntax___scope___ScopeBlock___node},
   {(bigint) syntax___scope___ScopeBlock___add_variable},
   {(bigint) syntax___scope___ScopeBlock___get_variable},
@@ -153321,14 +147192,14 @@ const classtable_elt_t VFT_syntax___scope___EscapableClosure[70] = {
   {(bigint) syntax___icode_generation___EscapableBlock___break_value__eq},
   {(bigint) syntax___icode_generation___EscapableBlock___continue_value},
   {(bigint) syntax___icode_generation___EscapableBlock___continue_value__eq},
-  {(bigint) 2 /* 60: EscapableClosure < EscapableBlock: superclass init_table position */},
+  {(bigint) 2 /* 63: EscapableClosure < EscapableBlock: superclass init_table position */},
   {(bigint) syntax___scope___EscapableBlock___lab},
   {(bigint) syntax___scope___EscapableClosure___is_break_block},
   {(bigint) syntax___scope___EscapableClosure___break_list},
   {(bigint) syntax___scope___EscapableClosure___continue_stype},
   {(bigint) syntax___scope___EscapableBlock___break_flow_contexts},
   {(bigint) syntax___scope___EscapableBlock___init},
-  {(bigint) 3 /* 67: EscapableClosure < EscapableClosure: superclass init_table position */},
+  {(bigint) 3 /* 70: EscapableClosure < EscapableClosure: superclass init_table position */},
   {(bigint) syntax___scope___EscapableClosure___closure},
   {(bigint) syntax___scope___EscapableClosure___init},
 };
@@ -153357,10 +147228,10 @@ void INIT_ATTRIBUTES__syntax___scope___EscapableClosure(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:194 */
+  /* syntax/scope.nit:194 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_syntax___scope___EscapableBlock____break_flow_contexts(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//scope.nit:143 */
+  /* syntax/scope.nit:143 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___scope___ScopeBlock____dico(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -153381,223 +147252,64 @@ void CHECKNEW_syntax___scope___EscapableClosure(val_t p0){
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_syntax___scope___EscapableClosure;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___scope___EscapableClosure____closure(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_closure", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_syntax___scope___EscapableBlock____break_flow_contexts(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_break_flow_contexts", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeBlock____node(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_node", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_EscapableClosure_syntax___scope___EscapableClosure___init(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 222;
-  fra.me.meth = LOCATE_NEW_EscapableClosure_syntax___scope___EscapableClosure___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* ./syntax//scope.nit:222 */
-  fra.me.REG[3] = NEW_syntax___scope___EscapableClosure();
-  INIT_ATTRIBUTES__syntax___scope___EscapableClosure(fra.me.REG[3]);
-  syntax___scope___EscapableClosure___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  CHECKNEW_syntax___scope___EscapableClosure(fra.me.REG[3]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[3];
-}
-const classtable_elt_t VFT_syntax___scope___AEscapeExpr[86] = {
-  {(bigint) 3439 /* 0: Identity */},
-  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AEscapeExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AEscapeExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AEscapeExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3087 /* 5: AEscapeExpr < ALabelable: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: AEscapeExpr < Prod: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 3439 /* 8: AEscapeExpr < AEscapeExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AEscapeExpr < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: AEscapeExpr < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___ANode___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___ANode___after_typing},
-  {(bigint) 3 /* 67: AEscapeExpr < ALabelable: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ALabelable___n_label},
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AEscapeExpr < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 4 /* 82: AEscapeExpr < AEscapeExpr: superclass init_table position */},
-  {(bigint) syntax___scope___AEscapeExpr___escapable},
-  {(bigint) syntax___scope___AEscapeExpr___kwname},
-  {(bigint) syntax___scope___AEscapeExpr___compute_escapable_block},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AEscapeExpr::_parent */
-/* 3: Attribute AEscapeExpr::_location */
-/* 4: Attribute AEscapeExpr::_first_location */
-/* 5: Attribute AEscapeExpr::_last_location */
-/* 6: Attribute AEscapeExpr::_n_label */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* Instance Hole :( */
-/* 11: Attribute AEscapeExpr::_escapable */
-void INIT_ATTRIBUTES__syntax___scope___AEscapeExpr(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__syntax___scope___AEscapeExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:689 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_syntax___scope___AEscapeExpr(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 12);
-  obj->vft = (classtable_elt_t*)VFT_syntax___scope___AEscapeExpr;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_syntax___scope___AEscapeExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_syntax___scope___AEscapeExpr;
+  fra.me.meth = LOCATE_CHECKNEW_syntax___scope___EscapableClosure;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_syntax___scope___EscapableClosure____closure(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_closure", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax___scope___EscapableBlock____break_flow_contexts(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_break_flow_contexts", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeBlock____node(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_node", LOCATE_nitc, 0);
+  }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_AEscapeExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_EscapableClosure_syntax___scope___EscapableClosure___init(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
+  int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AEscapeExpr_parser___parser_nodes___ANode___init;
+  fra.me.line = 222;
+  fra.me.meth = LOCATE_NEW_EscapableClosure_syntax___scope___EscapableClosure___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_syntax___scope___AEscapeExpr();
-  INIT_ATTRIBUTES__syntax___scope___AEscapeExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_syntax___scope___AEscapeExpr(fra.me.REG[1]);
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  /* syntax/scope.nit:222 */
+  fra.me.REG[3] = NEW_syntax___scope___EscapableClosure();
+  INIT_ATTRIBUTES__syntax___scope___EscapableClosure(fra.me.REG[3]);
+  syntax___scope___EscapableClosure___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
+  CHECKNEW_syntax___scope___EscapableClosure(fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[3];
 }
-const classtable_elt_t VFT_syntax___typing___TypingVisitor[106] = {
-  {(bigint) 2379 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___typing___TypingVisitor[109] = {
+  {(bigint) 2415 /* 0: Identity */},
   {(bigint) 16 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TypingVisitor" /* 2: Class Name */},
   {(bigint) 3 /* 3: TypingVisitor < Object: superclass typecheck marker */},
   {(bigint) 15 /* 4: TypingVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 2371 /* 5: TypingVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 2379 /* 6: TypingVisitor < TypingVisitor: superclass typecheck marker */},
+  {(bigint) 2407 /* 5: TypingVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 2415 /* 6: TypingVisitor < TypingVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -153609,7 +147321,7 @@ const classtable_elt_t VFT_syntax___typing___TypingVisitor[106] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: TypingVisitor < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TypingVisitor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -153625,6 +147337,8 @@ const classtable_elt_t VFT_syntax___typing___TypingVisitor[106] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -153638,12 +147352,12 @@ const classtable_elt_t VFT_syntax___typing___TypingVisitor[106] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: TypingVisitor < Visitor: superclass init_table position */},
+  {(bigint) 1 /* 50: TypingVisitor < Visitor: superclass init_table position */},
   {(bigint) syntax___typing___TypingVisitor___visit},
   {(bigint) parser___parser_prod___Visitor___enter_visit},
   {(bigint) parser___parser_prod___Visitor___current_node},
   {(bigint) parser___parser_prod___Visitor___init},
-  {(bigint) 2 /* 52: TypingVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) 0 /* 55: TypingVisitor < AbsSyntaxVisitor: superclass init_table position */},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___type_object},
@@ -153672,7 +147386,7 @@ const classtable_elt_t VFT_syntax___typing___TypingVisitor[106] = {
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 81: TypingVisitor < TypingVisitor: superclass init_table position */},
+  {(bigint) 3 /* 84: TypingVisitor < TypingVisitor: superclass init_table position */},
   {(bigint) syntax___typing___TypingVisitor___scope_ctx},
   {(bigint) syntax___typing___TypingVisitor___flow_ctx},
   {(bigint) syntax___typing___TypingVisitor___flow_ctx__eq},
@@ -153728,21 +147442,21 @@ void INIT_ATTRIBUTES__syntax___typing___TypingVisitor(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:46 */
+  /* syntax/typing.nit:46 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./syntax//typing.nit:47 */
+  /* syntax/typing.nit:47 */
   fra.me.REG[1] = NEW_ScopeContext_syntax___scope___ScopeContext___init(fra.me.REG[1]);
   ATTR_syntax___typing___TypingVisitor____scope_ctx(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:90 */
+  /* syntax/typing.nit:90 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___TypingVisitor____explicit_other_init_call(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:107 */
+  /* syntax/typing.nit:107 */
   REGB0 = TAG_Bool(false);
   ATTR_syntax___typing___TypingVisitor____is_default_closure_definition(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:110 */
+  /* syntax/typing.nit:110 */
   REGB0 = TAG_Int(0);
   ATTR_syntax___typing___TypingVisitor____once_count(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser_prod.nit:66 */
+  /* parser/parser_prod.nit:66 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -153817,7 +147531,7 @@ val_t NEW_TypingVisitor_syntax___typing___TypingVisitor___init(val_t p0, val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:112 */
+  /* syntax/typing.nit:112 */
   fra.me.REG[2] = NEW_syntax___typing___TypingVisitor();
   INIT_ATTRIBUTES__syntax___typing___TypingVisitor(fra.me.REG[2]);
   syntax___typing___TypingVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -153825,344 +147539,14 @@ val_t NEW_TypingVisitor_syntax___typing___TypingVisitor___init(val_t p0, val_t p
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_syntax___typing___AAbsControl[86] = {
-  {(bigint) 3523 /* 0: Identity */},
-  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AAbsControl" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AAbsControl < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: AAbsControl < ANode: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2075 /* 6: AAbsControl < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: AAbsControl < AExpr: superclass typecheck marker */},
-  {(bigint) 3523 /* 8: AAbsControl < AAbsControl: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: AAbsControl < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: AAbsControl < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___AExpr___after_typing},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: AAbsControl < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExpr___is_typed},
-  {(bigint) syntax___typing___AExpr___is_statement},
-  {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: AAbsControl < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___AExpr___generate_icode},
-  {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
-  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
-  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-  {(bigint) 4 /* 82: AAbsControl < AAbsControl: superclass init_table position */},
-  {(bigint) syntax___typing___AAbsControl___escapable},
-  {(bigint) syntax___typing___AAbsControl___process_control},
-  {(bigint) syntax___typing___AAbsControl___process_control_inside},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AAbsControl::_parent */
-/* 3: Attribute AAbsControl::_location */
-/* 4: Attribute AAbsControl::_first_location */
-/* 5: Attribute AAbsControl::_last_location */
-/* Instance Hole :( */
-/* 7: Attribute AAbsControl::_is_typed */
-/* 8: Attribute AAbsControl::_stype */
-/* 9: Attribute AAbsControl::_if_true_flow_ctx */
-/* 10: Attribute AAbsControl::_if_false_flow_ctx */
-/* 11: Attribute AAbsControl::_escapable */
-void INIT_ATTRIBUTES__syntax___typing___AAbsControl(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__syntax___typing___AAbsControl;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_syntax___typing___AAbsControl(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 12);
-  obj->vft = (classtable_elt_t*)VFT_syntax___typing___AAbsControl;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_syntax___typing___AAbsControl(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_syntax___typing___AAbsControl;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AAbsControl_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_AAbsControl_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_syntax___typing___AAbsControl();
-  INIT_ATTRIBUTES__syntax___typing___AAbsControl(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_syntax___typing___AAbsControl(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_syntax___typing___ATypeCheckExpr[82] = {
-  {(bigint) 3259 /* 0: Identity */},
-  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ATypeCheckExpr" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ATypeCheckExpr < Object: superclass typecheck marker */},
-  {(bigint) 307 /* 4: ATypeCheckExpr < ANode: superclass typecheck marker */},
-  {(bigint) 3259 /* 5: ATypeCheckExpr < ATypeCheckExpr: superclass typecheck marker */},
-  {(bigint) 2075 /* 6: ATypeCheckExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3111 /* 7: ATypeCheckExpr < AExpr: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ATypeCheckExpr < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___AExpr___accept_class_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_specialization_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_ancestor_builder},
-  {(bigint) syntax___mmbuilder___ANode___accept_class_verifier},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_builder},
-  {(bigint) syntax___mmbuilder___AExpr___accept_property_verifier},
-  {(bigint) syntax___syntax_base___ANode___accept_abs_syntax_visitor},
-  {(bigint) parser___parser_prod___ANode___parent},
-  {(bigint) parser___parser_prod___ANode___parent__eq},
-  {(bigint) parser___parser_prod___ANode___remove_child},
-  {(bigint) parser___parser_prod___ANode___replace_child},
-  {(bigint) parser___parser_prod___Prod___replace_with},
-  {(bigint) parser___parser_prod___ANode___visit_all},
-  {(bigint) 1 /* 60: ATypeCheckExpr < ANode: superclass init_table position */},
-  {(bigint) parser___parser_nodes___ANode___location},
-  {(bigint) parser___parser_nodes___ANode___hot_location},
-  {(bigint) parser___parser_nodes___ANode___init},
-  {(bigint) syntax___icode_generation___AExpr___accept_icode_generation},
-  {(bigint) syntax___typing___ANode___accept_typing},
-  {(bigint) syntax___typing___AExpr___after_typing},
-  {(bigint) 4 /* 67: ATypeCheckExpr < ATypeCheckExpr: superclass init_table position */},
-  {(bigint) syntax___typing___ATypeCheckExpr___check_expr_cast},
-  {(bigint) parser___parser_prod___ANode___replace_with},
-  {(bigint) 0 /* 70: ATypeCheckExpr < Prod: superclass init_table position */},
-  {(bigint) parser___parser_nodes___Prod___location__eq},
-  {(bigint) syntax___typing___AExpr___is_typed},
-  {(bigint) syntax___typing___AExpr___is_statement},
-  {(bigint) syntax___typing___AExpr___stype},
-  {(bigint) 3 /* 75: ATypeCheckExpr < AExpr: superclass init_table position */},
-  {(bigint) syntax___icode_generation___AExpr___generate_icode},
-  {(bigint) syntax___typing___AExpr___is_implicit_self},
-  {(bigint) syntax___typing___AExpr___is_self},
-  {(bigint) syntax___typing___AExpr___its_variable},
-  {(bigint) syntax___typing___AExpr___if_true_flow_ctx},
-  {(bigint) syntax___typing___AExpr___if_false_flow_ctx},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute ATypeCheckExpr::_parent */
-/* 3: Attribute ATypeCheckExpr::_location */
-/* 4: Attribute ATypeCheckExpr::_first_location */
-/* 5: Attribute ATypeCheckExpr::_last_location */
-/* Instance Hole :( */
-/* 7: Attribute ATypeCheckExpr::_is_typed */
-/* 8: Attribute ATypeCheckExpr::_stype */
-/* 9: Attribute ATypeCheckExpr::_if_true_flow_ctx */
-/* 10: Attribute ATypeCheckExpr::_if_false_flow_ctx */
-void INIT_ATTRIBUTES__syntax___typing___ATypeCheckExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__syntax___typing___ATypeCheckExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_syntax___typing___ATypeCheckExpr(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 11);
-  obj->vft = (classtable_elt_t*)VFT_syntax___typing___ATypeCheckExpr;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_syntax___typing___ATypeCheckExpr(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_syntax___typing___ATypeCheckExpr;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_ATypeCheckExpr_parser___parser_nodes___ANode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ATypeCheckExpr_parser___parser_nodes___ANode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = NEW_syntax___typing___ATypeCheckExpr();
-  INIT_ATTRIBUTES__syntax___typing___ATypeCheckExpr(fra.me.REG[1]);
-  parser___parser_nodes___ANode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_syntax___typing___ATypeCheckExpr(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_syntax___icode_generation___A2IContext[89] = {
-  {(bigint) 2375 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___icode_generation___A2IContext[92] = {
+  {(bigint) 2411 /* 0: Identity */},
   {(bigint) 14 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "A2IContext" /* 2: Class Name */},
   {(bigint) 3 /* 3: A2IContext < Object: superclass typecheck marker */},
-  {(bigint) 235 /* 4: A2IContext < ICodeBuilder: superclass typecheck marker */},
-  {(bigint) 2375 /* 5: A2IContext < A2IContext: superclass typecheck marker */},
+  {(bigint) 231 /* 4: A2IContext < ICodeBuilder: superclass typecheck marker */},
+  {(bigint) 2411 /* 5: A2IContext < A2IContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -154175,7 +147559,7 @@ const classtable_elt_t VFT_syntax___icode_generation___A2IContext[89] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: A2IContext < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: A2IContext < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -154191,6 +147575,8 @@ const classtable_elt_t VFT_syntax___icode_generation___A2IContext[89] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -154205,7 +147591,7 @@ const classtable_elt_t VFT_syntax___icode_generation___A2IContext[89] = {
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) icode___icode_tools___ICodeBuilder___inline_routine},
-  {(bigint) 1 /* 48: A2IContext < ICodeBuilder: superclass init_table position */},
+  {(bigint) 1 /* 51: A2IContext < ICodeBuilder: superclass init_table position */},
   {(bigint) syntax___icode_generation___A2IContext___stmt},
   {(bigint) icode___icode_builder___ICodeBuilder___expr},
   {(bigint) icode___icode_builder___ICodeBuilder___add_assignment},
@@ -154228,7 +147614,7 @@ const classtable_elt_t VFT_syntax___icode_generation___A2IContext[89] = {
   {(bigint) icode___icode_builder___ICodeBuilder___init},
   {(bigint) icode___icode_builder___ICodeBuilder___current_location},
   {(bigint) icode___icode_builder___ICodeBuilder___current_location__eq},
-  {(bigint) 2 /* 71: A2IContext < A2IContext: superclass init_table position */},
+  {(bigint) 2 /* 74: A2IContext < A2IContext: superclass init_table position */},
   {(bigint) icode___icode_builder___ICodeBuilder___stmt},
   {(bigint) syntax___icode_generation___A2IContext___add_new_array},
   {(bigint) syntax___icode_generation___A2IContext___add_call_array_add},
@@ -154274,16 +147660,16 @@ void INIT_ATTRIBUTES__syntax___icode_generation___A2IContext(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//icode_generation.nit:68 */
+  /* syntax/icode_generation.nit:68 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_syntax___icode_generation___A2IContext____variables(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//icode_generation.nit:71 */
+  /* syntax/icode_generation.nit:71 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_syntax___icode_generation___A2IContext____closurevariables(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//icode_generation.nit:140 */
+  /* syntax/icode_generation.nit:140 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_syntax___icode_generation___A2IContext____current_node(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_builder.nit:220 */
+  /* icode/icode_builder.nit:220 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_builder___ICodeBuilder____current_location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -154360,7 +147746,7 @@ val_t NEW_A2IContext_syntax___icode_generation___A2IContext___init(val_t p0, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//icode_generation.nit:88 */
+  /* syntax/icode_generation.nit:88 */
   fra.me.REG[3] = NEW_syntax___icode_generation___A2IContext();
   INIT_ATTRIBUTES__syntax___icode_generation___A2IContext(fra.me.REG[3]);
   syntax___icode_generation___A2IContext___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -154368,14 +147754,15 @@ val_t NEW_A2IContext_syntax___icode_generation___A2IContext___init(val_t p0, val
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-const classtable_elt_t VFT_syntax___icode_generation___A2IVisitor[85] = {
-  {(bigint) 3143 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___icode_generation___A2IVisitor[88] = {
+  {(bigint) 2907 /* 0: Identity */},
   {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "A2IVisitor" /* 2: Class Name */},
   {(bigint) 3 /* 3: A2IVisitor < Object: superclass typecheck marker */},
   {(bigint) 15 /* 4: A2IVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 2371 /* 5: A2IVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 3143 /* 6: A2IVisitor < A2IVisitor: superclass typecheck marker */},
+  {(bigint) 2407 /* 5: A2IVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 2907 /* 6: A2IVisitor < A2IVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -154387,7 +147774,7 @@ const classtable_elt_t VFT_syntax___icode_generation___A2IVisitor[85] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: A2IVisitor < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: A2IVisitor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -154403,6 +147790,8 @@ const classtable_elt_t VFT_syntax___icode_generation___A2IVisitor[85] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -154416,12 +147805,12 @@ const classtable_elt_t VFT_syntax___icode_generation___A2IVisitor[85] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: A2IVisitor < Visitor: superclass init_table position */},
+  {(bigint) 1 /* 50: A2IVisitor < Visitor: superclass init_table position */},
   {(bigint) syntax___icode_generation___A2IVisitor___visit},
   {(bigint) parser___parser_prod___Visitor___enter_visit},
   {(bigint) parser___parser_prod___Visitor___current_node},
   {(bigint) parser___parser_prod___Visitor___init},
-  {(bigint) 2 /* 52: A2IVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) 0 /* 55: A2IVisitor < AbsSyntaxVisitor: superclass init_table position */},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___type_object},
@@ -154450,7 +147839,7 @@ const classtable_elt_t VFT_syntax___icode_generation___A2IVisitor[85] = {
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr},
   {(bigint) syntax___syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 81: A2IVisitor < A2IVisitor: superclass init_table position */},
+  {(bigint) 3 /* 84: A2IVisitor < A2IVisitor: superclass init_table position */},
   {(bigint) syntax___icode_generation___A2IVisitor___icode_ctx__eq},
   {(bigint) syntax___icode_generation___A2IVisitor___icode_ctx},
   {(bigint) syntax___icode_generation___A2IVisitor___init},
@@ -154476,7 +147865,7 @@ void INIT_ATTRIBUTES__syntax___icode_generation___A2IVisitor(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:66 */
+  /* parser/parser_prod.nit:66 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -154531,7 +147920,7 @@ val_t NEW_A2IVisitor_syntax___icode_generation___A2IVisitor___init(val_t p0, val
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:289 */
+  /* syntax/icode_generation.nit:289 */
   fra.me.REG[2] = NEW_syntax___icode_generation___A2IVisitor();
   INIT_ATTRIBUTES__syntax___icode_generation___A2IVisitor(fra.me.REG[2]);
   syntax___icode_generation___A2IVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -154539,13 +147928,14 @@ val_t NEW_A2IVisitor_syntax___icode_generation___A2IVisitor___init(val_t p0, val
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_syntax___SrcModuleLoader[60] = {
-  {(bigint) 347 /* 0: Identity */},
+const classtable_elt_t VFT_syntax___SrcModuleLoader[62] = {
+  {(bigint) 339 /* 0: Identity */},
   {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "SrcModuleLoader" /* 2: Class Name */},
   {(bigint) 3 /* 3: SrcModuleLoader < Object: superclass typecheck marker */},
-  {(bigint) 127 /* 4: SrcModuleLoader < ModuleLoader: superclass typecheck marker */},
-  {(bigint) 347 /* 5: SrcModuleLoader < SrcModuleLoader: superclass typecheck marker */},
+  {(bigint) 123 /* 4: SrcModuleLoader < ModuleLoader: superclass typecheck marker */},
+  {(bigint) 339 /* 5: SrcModuleLoader < SrcModuleLoader: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -154558,7 +147948,7 @@ const classtable_elt_t VFT_syntax___SrcModuleLoader[60] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: SrcModuleLoader < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: SrcModuleLoader < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -154574,6 +147964,8 @@ const classtable_elt_t VFT_syntax___SrcModuleLoader[60] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -154587,9 +147979,9 @@ const classtable_elt_t VFT_syntax___SrcModuleLoader[60] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: SrcModuleLoader < ModuleLoader: superclass init_table position */},
-  {(bigint) 2159 /* 48: VT SrcModuleLoader::MODULE : id of MMSrcModule */},
-  {(bigint) 5 /* 49: VT SrcModuleLoader::MODULE : color of MMSrcModule */},
+  {(bigint) 0 /* 50: SrcModuleLoader < ModuleLoader: superclass init_table position */},
+  {(bigint) 2195 /* 51: VT SrcModuleLoader::MODULE : id of MMSrcModule */},
+  {(bigint) 5 /* 52: VT SrcModuleLoader::MODULE : color of MMSrcModule */},
   {(bigint) syntax___SrcModuleLoader___file_type},
   {(bigint) mmloader___ModuleLoader___try_to_load_dir},
   {(bigint) mmloader___ModuleLoader___can_handle},
@@ -154597,8 +147989,7 @@ const classtable_elt_t VFT_syntax___SrcModuleLoader[60] = {
   {(bigint) mmloader___ModuleLoader___load_module},
   {(bigint) syntax___SrcModuleLoader___parse_file},
   {(bigint) syntax___SrcModuleLoader___process_metamodel},
-  {(bigint) mmloader___ModuleLoader___init},
-  {(bigint) 2 /* 58: SrcModuleLoader < SrcModuleLoader: superclass init_table position */},
+  {(bigint) 2 /* 60: SrcModuleLoader < SrcModuleLoader: superclass init_table position */},
   {(bigint) syntax___SrcModuleLoader___init},
 };
 /* 0: Pointer to the classtable */
@@ -154643,1023 +148034,20 @@ val_t NEW_SrcModuleLoader_syntax___SrcModuleLoader___init(void){
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 68;
-  fra.me.meth = LOCATE_NEW_SrcModuleLoader_syntax___SrcModuleLoader___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./syntax//syntax.nit:68 */
-  fra.me.REG[0] = NEW_syntax___SrcModuleLoader();
-  INIT_ATTRIBUTES__syntax___SrcModuleLoader(fra.me.REG[0]);
-  syntax___SrcModuleLoader___init(fra.me.REG[0], init_table);
-  CHECKNEW_syntax___SrcModuleLoader(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_abstracttool___AbstractCompiler[140] = {
-  {(bigint) 3035 /* 0: Identity */},
-  {(bigint) 52 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AbstractCompiler" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AbstractCompiler < Object: superclass typecheck marker */},
-  {(bigint) 187 /* 4: AbstractCompiler < MMContext: superclass typecheck marker */},
-  {(bigint) 327 /* 5: AbstractCompiler < ToolContext: superclass typecheck marker */},
-  {(bigint) 3035 /* 6: AbstractCompiler < AbstractCompiler: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: AbstractCompiler < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) syntax___mmbuilder___ToolContext___handle_property_conflict},
-  {(bigint) 1 /* 48: AbstractCompiler < MMContext: superclass init_table position */},
-  {(bigint) metamodel___abstractmetamodel___MMContext___init},
-  {(bigint) metamodel___abstractmetamodel___MMContext___module_hierarchy},
-  {(bigint) metamodel___abstractmetamodel___MMContext___class_hierarchy},
-  {(bigint) metamodel___abstractmetamodel___MMContext___modules},
-  {(bigint) metamodel___abstractmetamodel___MMContext___add_module},
-  {(bigint) metamodel___abstractmetamodel___MMContext___add_global_class},
-  {(bigint) metamodel___abstractmetamodel___MMContext___add_local_class},
-  {(bigint) separate_options___ToolContext___separate_options},
-  {(bigint) separate_options___ToolContext___separate_options__eq},
-  {(bigint) separate_options___ToolContext___opt_cc_lib_paths},
-  {(bigint) separate_options___ToolContext___opt_cc_lib_paths__eq},
-  {(bigint) separate_options___ToolContext___opt_cc_libs},
-  {(bigint) separate_options___ToolContext___opt_cc_libs__eq},
-  {(bigint) separate_options___ToolContext___opt_cc_include_paths},
-  {(bigint) separate_options___ToolContext___opt_cc_include_paths__eq},
-  {(bigint) mmloader___ToolContext___init},
-  {(bigint) separate_options___ToolContext___integrate_separate_options},
-  {(bigint) analysis___ToolContext___global_callgraph},
-  {(bigint) analysis___ToolContext___global_callgraph__eq},
-  {(bigint) analysis___ToolContext___no_dead_method_removal},
-  {(bigint) analysis___ToolContext___no_dead_method_removal__eq},
-  {(bigint) analysis___ToolContext___no_inline_get_set},
-  {(bigint) analysis___ToolContext___no_inline_get_set__eq},
-  {(bigint) analysis___ToolContext___no_callgraph_from_init},
-  {(bigint) analysis___ToolContext___no_callgraph_from_init__eq},
-  {(bigint) analysis___ToolContext___no_out_of_init_get_test_removal},
-  {(bigint) analysis___ToolContext___no_out_of_init_get_test_removal__eq},
-  {(bigint) syntax___ToolContext___keep_ast},
-  {(bigint) syntax___ToolContext___keep_ast__eq},
-  {(bigint) 2 /* 78: AbstractCompiler < ToolContext: superclass init_table position */},
-  {(bigint) mmloader___ToolContext___error_count},
-  {(bigint) mmloader___ToolContext___warning_count},
-  {(bigint) mmloader___ToolContext___log_directory},
-  {(bigint) mmloader___ToolContext___check_errors},
-  {(bigint) mmloader___ToolContext___error},
-  {(bigint) mmloader___ToolContext___fatal_error},
-  {(bigint) mmloader___ToolContext___warning},
-  {(bigint) mmloader___ToolContext___info},
-  {(bigint) mmloader___ToolContext___paths},
-  {(bigint) mmloader___ToolContext___option_context},
-  {(bigint) mmloader___ToolContext___opt_warn},
-  {(bigint) mmloader___ToolContext___opt_path},
-  {(bigint) mmloader___ToolContext___opt_log},
-  {(bigint) mmloader___ToolContext___opt_log_dir},
-  {(bigint) mmloader___ToolContext___opt_only_metamodel},
-  {(bigint) mmloader___ToolContext___opt_only_parse},
-  {(bigint) mmloader___ToolContext___opt_help},
-  {(bigint) mmloader___ToolContext___opt_version},
-  {(bigint) mmloader___ToolContext___opt_verbose},
-  {(bigint) mmloader___ToolContext___opt_stop_on_first_error},
-  {(bigint) mmloader___ToolContext___opt_no_color},
-  {(bigint) mmloader___ToolContext___verbose_level},
-  {(bigint) separate_options___ToolContext___init},
-  {(bigint) mmloader___ToolContext___process_options},
-  {(bigint) mmloader___ToolContext___try_to_load},
-  {(bigint) mmloader___ToolContext___get_module_from_filename},
-  {(bigint) mmloader___ToolContext___get_module},
-  {(bigint) mmloader___ToolContext___directory_for},
-  {(bigint) mmloader___ToolContext___register_loader},
-  {(bigint) program___ToolContext___global},
-  {(bigint) program___ToolContext___global__eq},
-  {(bigint) program___ToolContext___use_SFT_optimization__eq},
-  {(bigint) program___ToolContext___use_SFT_optimization},
-  {(bigint) compiling___compiling_base___ToolContext___compdir},
-  {(bigint) compiling___compiling_base___ToolContext___compdir__eq},
-  {(bigint) compiling___compiling_base___ToolContext___clibdir},
-  {(bigint) compiling___compiling_base___ToolContext___clibdir__eq},
-  {(bigint) compiling___compiling_base___ToolContext___bindir},
-  {(bigint) compiling___compiling_base___ToolContext___bindir__eq},
-  {(bigint) compiling___compiling_base___ToolContext___output_file},
-  {(bigint) compiling___compiling_base___ToolContext___output_file__eq},
-  {(bigint) compiling___compiling_base___ToolContext___boost},
-  {(bigint) compiling___compiling_base___ToolContext___boost__eq},
-  {(bigint) compiling___compiling_base___ToolContext___no_cc},
-  {(bigint) compiling___compiling_base___ToolContext___no_cc__eq},
-  {(bigint) compiling___compiling_base___ToolContext___cc_link},
-  {(bigint) compiling___compiling_base___ToolContext___cc_link__eq},
-  {(bigint) compiling___compiling_base___ToolContext___cc_libs},
-  {(bigint) compiling___compiling_base___ToolContext___cc_libs__eq},
-  {(bigint) compiling___compiling_base___ToolContext___cc_lib_paths},
-  {(bigint) compiling___compiling_base___ToolContext___cc_lib_paths__eq},
-  {(bigint) compiling___compiling_base___ToolContext___cc_include_paths},
-  {(bigint) compiling___compiling_base___ToolContext___cc_include_paths__eq},
-  {(bigint) compiling___compiling_base___ToolContext___ext_prefix},
-  {(bigint) compiling___compiling_base___ToolContext___ext_prefix__eq},
-  {(bigint) 3 /* 134: AbstractCompiler < AbstractCompiler: superclass init_table position */},
-  {(bigint) abstracttool___AbstractCompiler___init},
-  {(bigint) abstracttool___AbstractCompiler___tool_name},
-  {(bigint) abstracttool___AbstractCompiler___exec_cmd_line},
-  {(bigint) abstracttool___AbstractCompiler___perform_work},
-  {(bigint) abstracttool___AbstractCompiler___dump_context_info},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AbstractCompiler::_module_hierarchy */
-/* 3: Attribute AbstractCompiler::_class_hierarchy */
-/* 4: Attribute AbstractCompiler::_global_classes */
-/* 5: Attribute AbstractCompiler::_modules */
-/* 6: Attribute AbstractCompiler::@separate_options */
-/* 7: Attribute AbstractCompiler::@opt_cc_lib_paths */
-/* 8: Attribute AbstractCompiler::@opt_cc_libs */
-/* 9: Attribute AbstractCompiler::@opt_cc_include_paths */
-/* 10: Attribute AbstractCompiler::_global_callgraph */
-/* 11: Attribute AbstractCompiler::_no_dead_method_removal */
-/* 12: Attribute AbstractCompiler::_no_inline_get_set */
-/* 13: Attribute AbstractCompiler::_no_callgraph_from_init */
-/* 14: Attribute AbstractCompiler::_no_out_of_init_get_test_removal */
-/* 15: Attribute AbstractCompiler::_keep_ast */
-/* 16: Attribute AbstractCompiler::_error_count */
-/* 17: Attribute AbstractCompiler::_warning_count */
-/* 18: Attribute AbstractCompiler::_log_directory */
-/* 19: Attribute AbstractCompiler::_messages */
-/* 20: Attribute AbstractCompiler::_message_sorter */
-/* 21: Attribute AbstractCompiler::_paths */
-/* 22: Attribute AbstractCompiler::_loaders */
-/* 23: Attribute AbstractCompiler::_option_context */
-/* 24: Attribute AbstractCompiler::_opt_warn */
-/* 25: Attribute AbstractCompiler::_opt_path */
-/* 26: Attribute AbstractCompiler::_opt_log */
-/* 27: Attribute AbstractCompiler::_opt_log_dir */
-/* 28: Attribute AbstractCompiler::_opt_only_metamodel */
-/* 29: Attribute AbstractCompiler::_opt_only_parse */
-/* 30: Attribute AbstractCompiler::_opt_help */
-/* 31: Attribute AbstractCompiler::_opt_version */
-/* 32: Attribute AbstractCompiler::_opt_verbose */
-/* 33: Attribute AbstractCompiler::_opt_stop_on_first_error */
-/* 34: Attribute AbstractCompiler::_opt_no_color */
-/* 35: Attribute AbstractCompiler::_verbose_level */
-/* 36: Attribute AbstractCompiler::_processing_modules */
-/* 37: Attribute AbstractCompiler::_path_dirs */
-/* 38: Attribute AbstractCompiler::_global */
-/* 39: Attribute AbstractCompiler::_use_SFT_optimization */
-/* 40: Attribute AbstractCompiler::_compdir */
-/* 41: Attribute AbstractCompiler::_clibdir */
-/* 42: Attribute AbstractCompiler::_bindir */
-/* 43: Attribute AbstractCompiler::_output_file */
-/* 44: Attribute AbstractCompiler::_boost */
-/* 45: Attribute AbstractCompiler::_no_cc */
-/* 46: Attribute AbstractCompiler::_cc_link */
-/* 47: Attribute AbstractCompiler::_cc_libs */
-/* 48: Attribute AbstractCompiler::_cc_lib_paths */
-/* 49: Attribute AbstractCompiler::_cc_include_paths */
-/* 50: Attribute AbstractCompiler::_ext_prefix */
-/* 51: Attribute AbstractCompiler::_tool_name */
-void INIT_ATTRIBUTES__abstracttool___AbstractCompiler(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-  static val_t once_value_4; /* Once value */
-  static val_t once_value_5; /* Once value */
-  static val_t once_value_6; /* Once value */
-  static val_t once_value_7; /* Once value */
-  static val_t once_value_8; /* Once value */
-  static val_t once_value_9; /* Once value */
-  static val_t once_value_10; /* Once value */
-  static val_t once_value_11; /* Once value */
-  static val_t once_value_12; /* Once value */
-  static val_t once_value_13; /* Once value */
-  static val_t once_value_14; /* Once value */
-  static val_t once_value_15; /* Once value */
-  static val_t once_value_16; /* Once value */
-  static val_t once_value_17; /* Once value */
-  static val_t once_value_18; /* Once value */
-  static val_t once_value_19; /* Once value */
-  static val_t once_value_20; /* Once value */
-  static val_t once_value_21; /* Once value */
-  static val_t once_value_22; /* Once value */
-  static val_t once_value_23; /* Once value */
-  static val_t once_value_24; /* Once value */
-  static val_t once_value_25; /* Once value */
-  static val_t once_value_26; /* Once value */
-  static val_t once_value_27; /* Once value */
-  static val_t once_value_28; /* Once value */
-  static val_t once_value_29; /* Once value */
-  static val_t once_value_30; /* Once value */
-  static val_t once_value_31; /* Once value */
-  static val_t once_value_32; /* Once value */
-  static val_t once_value_33; /* Once value */
-  static val_t once_value_34; /* Once value */
-  static val_t once_value_35; /* Once value */
-  static val_t once_value_36; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__abstracttool___AbstractCompiler;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./syntax//syntax.nit:98 */
-  REGB0 = TAG_Bool(false);
-  ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0]) = REGB0;
-  /* ./mmloader.nit:98 */
-  REGB0 = TAG_Int(0);
-  ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]) = REGB0;
-  /* ./mmloader.nit:101 */
-  REGB0 = TAG_Int(0);
-  ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0]) = REGB0;
-  /* ./mmloader.nit:104 */
-  if (!once_value_1) {
-    fra.me.REG[1] = BOX_NativeString("logs");
-    REGB0 = TAG_Int(4);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_1 = fra.me.REG[1];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[1] = once_value_1;
-  fra.me.REG[1] = fra.me.REG[1];
-  ATTR_mmloader___ToolContext____log_directory(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:107 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_mmloader___ToolContext____messages(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:108 */
-  fra.me.REG[1] = NEW_ComparableSorter_standard___collection___sorter___ComparableSorter___init();
-  ATTR_mmloader___ToolContext____message_sorter(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:166 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_mmloader___ToolContext____paths(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:169 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_mmloader___ToolContext____loaders(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:172 */
-  fra.me.REG[1] = NEW_OptionContext_opts___OptionContext___init();
-  ATTR_mmloader___ToolContext____option_context(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:175 */
-  if (!once_value_2) {
-    fra.me.REG[1] = BOX_NativeString("Show warnings");
-    REGB0 = TAG_Int(13);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_2 = fra.me.REG[1];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[1] = once_value_2;
-  fra.me.REG[1] = fra.me.REG[1];
-  REGB0 = TAG_Int(1);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_3) {
-    fra.me.REG[3] = BOX_NativeString("-W");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_3 = fra.me.REG[3];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[3] = once_value_3;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  if (!once_value_4) {
-    fra.me.REG[3] = BOX_NativeString("--warn");
-    REGB0 = TAG_Int(6);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_4 = fra.me.REG[3];
-    register_static_object(&once_value_4);
-  } else fra.me.REG[3] = once_value_4;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionCount_opts___OptionCount___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:178 */
-  if (!once_value_5) {
-    fra.me.REG[2] = BOX_NativeString("Set include path for loaders (may be used more than once)");
-    REGB0 = TAG_Int(57);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_5 = fra.me.REG[2];
-    register_static_object(&once_value_5);
-  } else fra.me.REG[2] = once_value_5;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(1);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_6) {
-    fra.me.REG[3] = BOX_NativeString("-I");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_6 = fra.me.REG[3];
-    register_static_object(&once_value_6);
-  } else fra.me.REG[3] = once_value_6;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  if (!once_value_7) {
-    fra.me.REG[3] = BOX_NativeString("--path");
-    REGB0 = TAG_Int(6);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_7 = fra.me.REG[3];
-    register_static_object(&once_value_7);
-  } else fra.me.REG[3] = once_value_7;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:181 */
-  if (!once_value_8) {
-    fra.me.REG[1] = BOX_NativeString("Generate various log files");
-    REGB0 = TAG_Int(26);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_8 = fra.me.REG[1];
-    register_static_object(&once_value_8);
-  } else fra.me.REG[1] = once_value_8;
-  fra.me.REG[1] = fra.me.REG[1];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_9) {
-    fra.me.REG[3] = BOX_NativeString("--log");
-    REGB0 = TAG_Int(5);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_9 = fra.me.REG[3];
-    register_static_object(&once_value_9);
-  } else fra.me.REG[3] = once_value_9;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:184 */
-  if (!once_value_10) {
-    fra.me.REG[2] = BOX_NativeString("Directory where to generate log files");
-    REGB0 = TAG_Int(37);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_10 = fra.me.REG[2];
-    register_static_object(&once_value_10);
-  } else fra.me.REG[2] = once_value_10;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_11) {
-    fra.me.REG[3] = BOX_NativeString("--log-dir");
-    REGB0 = TAG_Int(9);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_11 = fra.me.REG[3];
-    register_static_object(&once_value_11);
-  } else fra.me.REG[3] = once_value_11;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionString_opts___OptionString___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_mmloader___ToolContext____opt_log_dir(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:187 */
-  if (!once_value_12) {
-    fra.me.REG[1] = BOX_NativeString("Stop after meta-model processing");
-    REGB0 = TAG_Int(32);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_12 = fra.me.REG[1];
-    register_static_object(&once_value_12);
-  } else fra.me.REG[1] = once_value_12;
-  fra.me.REG[1] = fra.me.REG[1];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_13) {
-    fra.me.REG[3] = BOX_NativeString("--only-metamodel");
-    REGB0 = TAG_Int(16);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_13 = fra.me.REG[3];
-    register_static_object(&once_value_13);
-  } else fra.me.REG[3] = once_value_13;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:190 */
-  if (!once_value_14) {
-    fra.me.REG[2] = BOX_NativeString("Only proceed to parse step of loaders");
-    REGB0 = TAG_Int(37);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_14 = fra.me.REG[2];
-    register_static_object(&once_value_14);
-  } else fra.me.REG[2] = once_value_14;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_15) {
-    fra.me.REG[3] = BOX_NativeString("--only-parse");
-    REGB0 = TAG_Int(12);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_15 = fra.me.REG[3];
-    register_static_object(&once_value_15);
-  } else fra.me.REG[3] = once_value_15;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:193 */
-  if (!once_value_16) {
-    fra.me.REG[1] = BOX_NativeString("Show Help (This screen)");
-    REGB0 = TAG_Int(23);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_16 = fra.me.REG[1];
-    register_static_object(&once_value_16);
-  } else fra.me.REG[1] = once_value_16;
-  fra.me.REG[1] = fra.me.REG[1];
-  REGB0 = TAG_Int(2);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_17) {
-    fra.me.REG[3] = BOX_NativeString("-h");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_17 = fra.me.REG[3];
-    register_static_object(&once_value_17);
-  } else fra.me.REG[3] = once_value_17;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  if (!once_value_18) {
-    fra.me.REG[3] = BOX_NativeString("-?");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_18 = fra.me.REG[3];
-    register_static_object(&once_value_18);
-  } else fra.me.REG[3] = once_value_18;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  if (!once_value_19) {
-    fra.me.REG[3] = BOX_NativeString("--help");
-    REGB0 = TAG_Int(6);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_19 = fra.me.REG[3];
-    register_static_object(&once_value_19);
-  } else fra.me.REG[3] = once_value_19;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_mmloader___ToolContext____opt_help(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:196 */
-  if (!once_value_20) {
-    fra.me.REG[2] = BOX_NativeString("Show version and exit");
-    REGB0 = TAG_Int(21);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_20 = fra.me.REG[2];
-    register_static_object(&once_value_20);
-  } else fra.me.REG[2] = once_value_20;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_21) {
-    fra.me.REG[3] = BOX_NativeString("--version");
-    REGB0 = TAG_Int(9);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_21 = fra.me.REG[3];
-    register_static_object(&once_value_21);
-  } else fra.me.REG[3] = once_value_21;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_mmloader___ToolContext____opt_version(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:199 */
-  if (!once_value_22) {
-    fra.me.REG[1] = BOX_NativeString("Verbose");
-    REGB0 = TAG_Int(7);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_22 = fra.me.REG[1];
-    register_static_object(&once_value_22);
-  } else fra.me.REG[1] = once_value_22;
-  fra.me.REG[1] = fra.me.REG[1];
-  REGB0 = TAG_Int(1);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_23) {
-    fra.me.REG[3] = BOX_NativeString("-v");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_23 = fra.me.REG[3];
-    register_static_object(&once_value_23);
-  } else fra.me.REG[3] = once_value_23;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  if (!once_value_24) {
-    fra.me.REG[3] = BOX_NativeString("--verbose");
-    REGB0 = TAG_Int(9);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_24 = fra.me.REG[3];
-    register_static_object(&once_value_24);
-  } else fra.me.REG[3] = once_value_24;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionCount_opts___OptionCount___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_mmloader___ToolContext____opt_verbose(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:202 */
-  if (!once_value_25) {
-    fra.me.REG[2] = BOX_NativeString("Stop on first error");
-    REGB0 = TAG_Int(19);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_25 = fra.me.REG[2];
-    register_static_object(&once_value_25);
-  } else fra.me.REG[2] = once_value_25;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_26) {
-    fra.me.REG[3] = BOX_NativeString("--stop-on-first-error");
-    REGB0 = TAG_Int(21);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_26 = fra.me.REG[3];
-    register_static_object(&once_value_26);
-  } else fra.me.REG[3] = once_value_26;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_mmloader___ToolContext____opt_stop_on_first_error(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./mmloader.nit:205 */
-  if (!once_value_27) {
-    fra.me.REG[1] = BOX_NativeString("Do not use color to display errors and warnings");
-    REGB0 = TAG_Int(47);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_27 = fra.me.REG[1];
-    register_static_object(&once_value_27);
-  } else fra.me.REG[1] = once_value_27;
-  fra.me.REG[1] = fra.me.REG[1];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_28) {
-    fra.me.REG[3] = BOX_NativeString("--no-color");
-    REGB0 = TAG_Int(10);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_28 = fra.me.REG[3];
-    register_static_object(&once_value_28);
-  } else fra.me.REG[3] = once_value_28;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionBool_opts___OptionBool___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_mmloader___ToolContext____opt_no_color(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:208 */
-  REGB0 = TAG_Int(0);
-  ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0]) = REGB0;
-  /* ./mmloader.nit:291 */
-  fra.me.REG[2] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./mmloader.nit:358 */
-  fra.me.REG[2] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./metamodel//abstractmetamodel.nit:30 */
-  fra.me.REG[2] = NEW_PartialOrder_metamodel___partial_order___PartialOrder___init();
-  ATTR_metamodel___abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./metamodel//abstractmetamodel.nit:34 */
-  fra.me.REG[2] = NEW_PartialOrder_metamodel___partial_order___PartialOrder___init();
-  ATTR_metamodel___abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./metamodel//abstractmetamodel.nit:37 */
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_metamodel___abstractmetamodel___MMContext____global_classes(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./metamodel//abstractmetamodel.nit:40 */
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_metamodel___abstractmetamodel___MMContext____modules(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./separate_options.nit:11 */
-  fra.me.REG[2] = NEW_OptionContext_opts___OptionContext___init();
-  ATTR_separate_options___ToolContext_____atseparate_options(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./separate_options.nit:12 */
-  if (!once_value_29) {
-    fra.me.REG[2] = BOX_NativeString("Path to libraries for C compiler");
-    REGB0 = TAG_Int(32);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_29 = fra.me.REG[2];
-    register_static_object(&once_value_29);
-  } else fra.me.REG[2] = once_value_29;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_30) {
-    fra.me.REG[3] = BOX_NativeString("--cc-lib-path");
-    REGB0 = TAG_Int(13);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_30 = fra.me.REG[3];
-    register_static_object(&once_value_30);
-  } else fra.me.REG[3] = once_value_30;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_separate_options___ToolContext_____atopt_cc_lib_paths(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./separate_options.nit:13 */
-  if (!once_value_31) {
-    fra.me.REG[1] = BOX_NativeString("Name of library to use for C compiler");
-    REGB0 = TAG_Int(37);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_31 = fra.me.REG[1];
-    register_static_object(&once_value_31);
-  } else fra.me.REG[1] = once_value_31;
-  fra.me.REG[1] = fra.me.REG[1];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_32) {
-    fra.me.REG[3] = BOX_NativeString("--cc-lib-name");
-    REGB0 = TAG_Int(13);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_32 = fra.me.REG[3];
-    register_static_object(&once_value_32);
-  } else fra.me.REG[3] = once_value_32;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  fra.me.REG[2] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[1], fra.me.REG[2]);
-  ATTR_separate_options___ToolContext_____atopt_cc_libs(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./separate_options.nit:14 */
-  if (!once_value_33) {
-    fra.me.REG[2] = BOX_NativeString("Path to .h files for C compiler");
-    REGB0 = TAG_Int(31);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_33 = fra.me.REG[2];
-    register_static_object(&once_value_33);
-  } else fra.me.REG[2] = once_value_33;
-  fra.me.REG[2] = fra.me.REG[2];
-  REGB0 = TAG_Int(0);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_34) {
-    fra.me.REG[3] = BOX_NativeString("--cc-header-path");
-    REGB0 = TAG_Int(16);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-    once_value_34 = fra.me.REG[3];
-    register_static_object(&once_value_34);
-  } else fra.me.REG[3] = once_value_34;
-  fra.me.REG[3] = fra.me.REG[3];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  fra.me.REG[1] = NEW_OptionArray_opts___OptionArray___init(fra.me.REG[2], fra.me.REG[1]);
-  ATTR_separate_options___ToolContext_____atopt_cc_include_paths(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./analysis//analysis.nit:48 */
-  if (!once_value_35) {
-    fra.me.REG[1] = BOX_NativeString("rta");
-    REGB0 = TAG_Int(3);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_35 = fra.me.REG[1];
-    register_static_object(&once_value_35);
-  } else fra.me.REG[1] = once_value_35;
-  fra.me.REG[1] = fra.me.REG[1];
-  ATTR_analysis___ToolContext____global_callgraph(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./analysis//analysis.nit:49 */
-  REGB0 = TAG_Bool(false);
-  ATTR_analysis___ToolContext____no_dead_method_removal(fra.me.REG[0]) = REGB0;
-  /* ./analysis//analysis.nit:50 */
-  REGB0 = TAG_Bool(false);
-  ATTR_analysis___ToolContext____no_inline_get_set(fra.me.REG[0]) = REGB0;
-  /* ./analysis//analysis.nit:51 */
-  REGB0 = TAG_Bool(false);
-  ATTR_analysis___ToolContext____no_callgraph_from_init(fra.me.REG[0]) = REGB0;
-  /* ./analysis//analysis.nit:52 */
-  REGB0 = TAG_Bool(false);
-  ATTR_analysis___ToolContext____no_out_of_init_get_test_removal(fra.me.REG[0]) = REGB0;
-  /* ./program.nit:26 */
-  REGB0 = TAG_Bool(false);
-  ATTR_program___ToolContext____global(fra.me.REG[0]) = REGB0;
-  /* ./program.nit:27 */
-  REGB0 = TAG_Bool(true);
-  ATTR_program___ToolContext____use_SFT_optimization(fra.me.REG[0]) = REGB0;
-  /* ./compiling//compiling_base.nit:27 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_compiling___compiling_base___ToolContext____compdir(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:28 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_compiling___compiling_base___ToolContext____clibdir(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:29 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_compiling___compiling_base___ToolContext____bindir(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:30 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_compiling___compiling_base___ToolContext____output_file(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:31 */
-  REGB0 = TAG_Bool(false);
-  ATTR_compiling___compiling_base___ToolContext____boost(fra.me.REG[0]) = REGB0;
-  /* ./compiling//compiling_base.nit:32 */
-  REGB0 = TAG_Bool(false);
-  ATTR_compiling___compiling_base___ToolContext____no_cc(fra.me.REG[0]) = REGB0;
-  /* ./compiling//compiling_base.nit:33 */
-  REGB0 = TAG_Bool(false);
-  ATTR_compiling___compiling_base___ToolContext____cc_link(fra.me.REG[0]) = REGB0;
-  /* ./compiling//compiling_base.nit:34 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_compiling___compiling_base___ToolContext____cc_libs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:35 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_compiling___compiling_base___ToolContext____cc_lib_paths(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:36 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_compiling___compiling_base___ToolContext____cc_include_paths(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:37 */
-  if (!once_value_36) {
-    fra.me.REG[1] = BOX_NativeString("");
-    REGB0 = TAG_Int(0);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_36 = fra.me.REG[1];
-    register_static_object(&once_value_36);
-  } else fra.me.REG[1] = once_value_36;
-  fra.me.REG[1] = fra.me.REG[1];
-  ATTR_compiling___compiling_base___ToolContext____ext_prefix(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_abstracttool___AbstractCompiler(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 52);
-  obj->vft = (classtable_elt_t*)VFT_abstracttool___AbstractCompiler;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_abstracttool___AbstractCompiler(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_abstracttool___AbstractCompiler;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_abstracttool___AbstractCompiler____tool_name(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_tool_name", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_keep_ast", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_error_count", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_warning_count", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____log_directory(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_log_directory", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_messages", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____message_sorter(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_message_sorter", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____paths(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_paths", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____loaders(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_loaders", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____option_context(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_option_context", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_warn", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_path", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_log", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_log_dir(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_log_dir", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_only_metamodel", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_only_parse", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_help(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_help", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_version(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_version", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_verbose(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_verbose", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_stop_on_first_error(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_stop_on_first_error", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_no_color(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_opt_no_color", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_verbose_level", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_processing_modules", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_path_dirs", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_module_hierarchy", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_class_hierarchy", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____global_classes(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_global_classes", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_metamodel___abstractmetamodel___MMContext____modules(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_modules", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atseparate_options(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@separate_options", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atopt_cc_lib_paths(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@opt_cc_lib_paths", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atopt_cc_libs(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@opt_cc_libs", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atopt_cc_include_paths(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@opt_cc_include_paths", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___ToolContext____global_callgraph(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_global_callgraph", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___ToolContext____no_dead_method_removal(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_no_dead_method_removal", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___ToolContext____no_inline_get_set(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_no_inline_get_set", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___ToolContext____no_callgraph_from_init(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_no_callgraph_from_init", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___ToolContext____no_out_of_init_get_test_removal(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_no_out_of_init_get_test_removal", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_program___ToolContext____global(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_global", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_program___ToolContext____use_SFT_optimization(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_use_SFT_optimization", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____boost(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_boost", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____no_cc(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_no_cc", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____cc_link(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_cc_link", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____cc_libs(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_cc_libs", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____cc_lib_paths(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_cc_lib_paths", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____cc_include_paths(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_cc_include_paths", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___ToolContext____ext_prefix(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_ext_prefix", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AbstractCompiler_abstracttool___AbstractCompiler___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 29;
-  fra.me.meth = LOCATE_NEW_AbstractCompiler_abstracttool___AbstractCompiler___init;
+  fra.me.meth = LOCATE_NEW_SrcModuleLoader_syntax___SrcModuleLoader___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./abstracttool.nit:29 */
-  fra.me.REG[1] = NEW_abstracttool___AbstractCompiler();
-  INIT_ATTRIBUTES__abstracttool___AbstractCompiler(fra.me.REG[1]);
-  abstracttool___AbstractCompiler___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_abstracttool___AbstractCompiler(fra.me.REG[1]);
+  /* syntax/syntax.nit:68 */
+  fra.me.REG[0] = NEW_syntax___SrcModuleLoader();
+  INIT_ATTRIBUTES__syntax___SrcModuleLoader(fra.me.REG[0]);
+  syntax___SrcModuleLoader___init(fra.me.REG[0], init_table);
+  CHECKNEW_syntax___SrcModuleLoader(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_program___Program[104] = {
+const classtable_elt_t VFT_program___Program[105] = {
   {(bigint) 91 /* 0: Identity */},
   {(bigint) 17 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "Program" /* 2: Class Name */},
@@ -155676,9 +148064,10 @@ const classtable_elt_t VFT_program___Program[104] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: Program < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: Program < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -155694,6 +148083,8 @@ const classtable_elt_t VFT_program___Program[104] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -155707,22 +148098,14 @@ const classtable_elt_t VFT_program___Program[104] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) compiling___Program___output_format},
-  {(bigint) compiling___Program___output_format__eq},
-  {(bigint) compiling___Program___compile_prog},
-  {(bigint) compiling___Program___compile_prog_to_c},
-  {(bigint) compiling___Program___compile_main},
-  {(bigint) compiling___icode_generator___Program___generate_icode_files},
-  {(bigint) analysis___Program___do_global_analysis},
-  {(bigint) analysis___Program___do_global_pre_analysis_optimizations},
-  {(bigint) analysis___Program___do_global_post_analysis_optimizations},
-  {(bigint) analysis___Program___dump_global_optimizations_information},
-  {(bigint) analysis___Program___dump_global_analysis_information},
-  {(bigint) analysis___instantiated_type_analysis___Program___ita},
-  {(bigint) analysis___instantiated_type_analysis___Program___ita__eq},
-  {(bigint) analysis___instantiated_type_analysis___Program___dump_instantiated_types},
-  {(bigint) analysis___instantiated_type_analysis___Program___dump_not_instantiated_types},
-  {(bigint) 1 /* 62: Program < Program: superclass init_table position */},
+  {(bigint) global___Program___do_global_analysis},
+  {(bigint) global___Program___dump_global_optimizations_information},
+  {(bigint) global___Program___dump_global_analysis_information},
+  {(bigint) global___instantiated_type_analysis___Program___ita},
+  {(bigint) global___instantiated_type_analysis___Program___ita__eq},
+  {(bigint) global___instantiated_type_analysis___Program___dump_instantiated_types},
+  {(bigint) global___instantiated_type_analysis___Program___dump_not_instantiated_types},
+  {(bigint) 1 /* 57: Program < Program: superclass init_table position */},
   {(bigint) program___Program___tc},
   {(bigint) program___Program___main_module},
   {(bigint) program___Program___main_method},
@@ -155732,28 +148115,34 @@ const classtable_elt_t VFT_program___Program[104] = {
   {(bigint) program___Program___generate_allocation_iroutines},
   {(bigint) program___Program___with_each_iroutines},
   {(bigint) program___Program___with_each_methods},
-  {(bigint) analysis___instantiated_type_analysis___Program___with_each_live_local_classes},
+  {(bigint) global___instantiated_type_analysis___Program___with_each_live_local_classes},
   {(bigint) program___Program___init},
-  {(bigint) analysis___reachable_as_init___Program___rai},
-  {(bigint) analysis___reachable_as_init___Program___rai__eq},
-  {(bigint) analysis___reachable_as_init___Program___dump_reachable_as_init_methods},
-  {(bigint) analysis___dead_method_removal___Program___nb_removed_iroutines},
-  {(bigint) analysis___dead_method_removal___Program___nb_not_removed_iroutines},
-  {(bigint) analysis___dead_method_removal___Program___optimize_dead_methods},
-  {(bigint) analysis___dead_method_removal___Program___dump_dead_method_optimization},
-  {(bigint) analysis___reachable_method_analysis___Program___rma},
-  {(bigint) analysis___reachable_method_analysis___Program___rma__eq},
-  {(bigint) analysis___reachable_method_analysis___Program___dump_reachable_methods},
-  {(bigint) analysis___reachable_method_analysis___Program___dump_unreachable_methods},
-  {(bigint) analysis___inline_get_and_set___Program___dump_inline_get_set},
-  {(bigint) analysis___inline_get_and_set___Program___inline_get_set},
-  {(bigint) analysis___remove_out_of_init_get_test___Program___nb_optimized_isset},
-  {(bigint) analysis___remove_out_of_init_get_test___Program___optimize_out_of_init_getters},
-  {(bigint) analysis___remove_out_of_init_get_test___Program___dump_out_of_init_information},
-  {(bigint) analysis___reachable_from_init_method_analysis___Program___rfima},
-  {(bigint) analysis___reachable_from_init_method_analysis___Program___rfima__eq},
-  {(bigint) analysis___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init},
-  {(bigint) analysis___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init},
+  {(bigint) global___reachable_as_init___Program___rai},
+  {(bigint) global___reachable_as_init___Program___rai__eq},
+  {(bigint) global___reachable_as_init___Program___dump_reachable_as_init_methods},
+  {(bigint) global___dead_method_removal___Program___nb_removed_iroutines},
+  {(bigint) global___dead_method_removal___Program___nb_not_removed_iroutines},
+  {(bigint) global___dead_method_removal___Program___optimize_dead_methods},
+  {(bigint) global___dead_method_removal___Program___dump_dead_method_optimization},
+  {(bigint) global___reachable_method_analysis___Program___rma},
+  {(bigint) global___reachable_method_analysis___Program___rma__eq},
+  {(bigint) global___reachable_method_analysis___Program___dump_reachable_methods},
+  {(bigint) global___reachable_method_analysis___Program___dump_unreachable_methods},
+  {(bigint) global___inline_get_and_set___Program___dump_inline_get_set},
+  {(bigint) global___inline_get_and_set___Program___inline_get_set},
+  {(bigint) global___remove_out_of_init_get_test___Program___nb_optimized_isset},
+  {(bigint) global___remove_out_of_init_get_test___Program___optimize_out_of_init_getters},
+  {(bigint) global___remove_out_of_init_get_test___Program___dump_out_of_init_information},
+  {(bigint) global___reachable_from_init_method_analysis___Program___rfima},
+  {(bigint) global___reachable_from_init_method_analysis___Program___rfima__eq},
+  {(bigint) global___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init},
+  {(bigint) global___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init},
+  {(bigint) compiling___Program___output_format},
+  {(bigint) compiling___Program___output_format__eq},
+  {(bigint) compiling___Program___compile_prog},
+  {(bigint) compiling___Program___compile_prog_to_c},
+  {(bigint) compiling___Program___compile_main},
+  {(bigint) compiling___icode_generator___Program___generate_icode_files},
   {(bigint) compiling___compiling_global___Program___compile_tables_to_c},
   {(bigint) compiling___compiling_global___Program___compile_main_part},
   {(bigint) compiling___table_computation___Program___table_information},
@@ -155767,19 +148156,19 @@ const classtable_elt_t VFT_program___Program[104] = {
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute Program::_output_format */
-/* 3: Attribute Program::_ita */
-/* 4: Attribute Program::_tc */
-/* 5: Attribute Program::_main_module */
-/* 6: Attribute Program::_main_method */
-/* 7: Attribute Program::_main_class */
-/* 8: Attribute Program::_rai */
-/* 9: Attribute Program::_nb_removed_iroutines */
-/* 10: Attribute Program::_nb_not_removed_iroutines */
-/* 11: Attribute Program::_rma */
-/* 12: Attribute Program::_number_getter_setter_inlined */
-/* 13: Attribute Program::_nb_optimized_isset */
-/* 14: Attribute Program::_rfima */
+/* 2: Attribute Program::_ita */
+/* 3: Attribute Program::_tc */
+/* 4: Attribute Program::_main_module */
+/* 5: Attribute Program::_main_method */
+/* 6: Attribute Program::_main_class */
+/* 7: Attribute Program::_rai */
+/* 8: Attribute Program::_nb_removed_iroutines */
+/* 9: Attribute Program::_nb_not_removed_iroutines */
+/* 10: Attribute Program::_rma */
+/* 11: Attribute Program::_number_getter_setter_inlined */
+/* 12: Attribute Program::_nb_optimized_isset */
+/* 13: Attribute Program::_rfima */
+/* 14: Attribute Program::_output_format */
 /* 15: Attribute Program::_table_information */
 /* 16: Attribute Program::_compiled_classes */
 void INIT_ATTRIBUTES__program___Program(val_t p0){
@@ -155797,50 +148186,50 @@ void INIT_ATTRIBUTES__program___Program(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling.nit:29 */
-  if (!once_value_1) {
-    fra.me.REG[1] = BOX_NativeString("none");
-    REGB0 = TAG_Int(4);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
-    once_value_1 = fra.me.REG[1];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[1] = once_value_1;
-  fra.me.REG[1] = fra.me.REG[1];
-  ATTR_compiling___Program____output_format(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./analysis//instantiated_type_analysis.nit:23 */
+  /* global/instantiated_type_analysis.nit:23 */
   fra.me.REG[1] = NIT_NULL;
-  ATTR_analysis___instantiated_type_analysis___Program____ita(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./program.nit:44 */
+  ATTR_global___instantiated_type_analysis___Program____ita(fra.me.REG[0]) = fra.me.REG[1];
+  /* program.nit:44 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_program___Program____main_method(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./program.nit:48 */
+  /* program.nit:48 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_program___Program____main_class(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./analysis//reachable_as_init.nit:24 */
+  /* global/reachable_as_init.nit:24 */
   fra.me.REG[1] = NIT_NULL;
-  ATTR_analysis___reachable_as_init___Program____rai(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./analysis//dead_method_removal.nit:23 */
+  ATTR_global___reachable_as_init___Program____rai(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/dead_method_removal.nit:23 */
   REGB0 = TAG_Int(0);
-  ATTR_analysis___dead_method_removal___Program____nb_removed_iroutines(fra.me.REG[0]) = REGB0;
-  /* ./analysis//dead_method_removal.nit:24 */
+  ATTR_global___dead_method_removal___Program____nb_removed_iroutines(fra.me.REG[0]) = REGB0;
+  /* global/dead_method_removal.nit:24 */
   REGB0 = TAG_Int(0);
-  ATTR_analysis___dead_method_removal___Program____nb_not_removed_iroutines(fra.me.REG[0]) = REGB0;
-  /* ./analysis//reachable_method_analysis.nit:24 */
+  ATTR_global___dead_method_removal___Program____nb_not_removed_iroutines(fra.me.REG[0]) = REGB0;
+  /* global/reachable_method_analysis.nit:24 */
   fra.me.REG[1] = NIT_NULL;
-  ATTR_analysis___reachable_method_analysis___Program____rma(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./analysis//inline_get_and_set.nit:26 */
+  ATTR_global___reachable_method_analysis___Program____rma(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/inline_get_and_set.nit:26 */
   REGB0 = TAG_Int(0);
-  ATTR_analysis___inline_get_and_set___Program____number_getter_setter_inlined(fra.me.REG[0]) = REGB0;
-  /* ./analysis//remove_out_of_init_get_test.nit:24 */
+  ATTR_global___inline_get_and_set___Program____number_getter_setter_inlined(fra.me.REG[0]) = REGB0;
+  /* global/remove_out_of_init_get_test.nit:24 */
   REGB0 = TAG_Int(0);
-  ATTR_analysis___remove_out_of_init_get_test___Program____nb_optimized_isset(fra.me.REG[0]) = REGB0;
-  /* ./analysis//reachable_from_init_method_analysis.nit:25 */
+  ATTR_global___remove_out_of_init_get_test___Program____nb_optimized_isset(fra.me.REG[0]) = REGB0;
+  /* global/reachable_from_init_method_analysis.nit:25 */
   fra.me.REG[1] = NIT_NULL;
-  ATTR_analysis___reachable_from_init_method_analysis___Program____rfima(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//table_computation.nit:141 */
+  ATTR_global___reachable_from_init_method_analysis___Program____rfima(fra.me.REG[0]) = fra.me.REG[1];
+  /* compiling/compiling.nit:29 */
+  if (!once_value_1) {
+    fra.me.REG[1] = BOX_NativeString("none");
+    REGB0 = TAG_Int(4);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_1 = fra.me.REG[1];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[1] = once_value_1;
+  fra.me.REG[1] = fra.me.REG[1];
+  ATTR_compiling___Program____output_format(fra.me.REG[0]) = fra.me.REG[1];
+  /* compiling/table_computation.nit:141 */
   fra.me.REG[1] = NEW_TableInformation_compiling___table_computation___ColorContext___init();
   ATTR_compiling___table_computation___Program____table_information(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//table_computation.nit:144 */
+  /* compiling/table_computation.nit:144 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_compiling___table_computation___Program____compiled_classes(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -155867,11 +148256,6 @@ void CHECKNEW_program___Program(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_compiling___Program____output_format(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_output_format", LOCATE_nitc, 0);
-  }
   REGB0 = TAG_Bool(ATTR_program___Program____tc(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -155882,26 +148266,31 @@ void CHECKNEW_program___Program(val_t p0){
   } else {
     nit_abort("Uninitialized attribute %s", "_main_module", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_analysis___dead_method_removal___Program____nb_removed_iroutines(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___dead_method_removal___Program____nb_removed_iroutines(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_nb_removed_iroutines", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_analysis___dead_method_removal___Program____nb_not_removed_iroutines(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___dead_method_removal___Program____nb_not_removed_iroutines(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_nb_not_removed_iroutines", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_analysis___inline_get_and_set___Program____number_getter_setter_inlined(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___inline_get_and_set___Program____number_getter_setter_inlined(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_number_getter_setter_inlined", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_analysis___remove_out_of_init_get_test___Program____nb_optimized_isset(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___remove_out_of_init_get_test___Program____nb_optimized_isset(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_nb_optimized_isset", LOCATE_nitc, 0);
   }
+  REGB0 = TAG_Bool(ATTR_compiling___Program____output_format(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_output_format", LOCATE_nitc, 0);
+  }
   REGB0 = TAG_Bool(ATTR_compiling___table_computation___Program____table_information(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -155930,7 +148319,7 @@ val_t NEW_Program_program___Program___init(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./program.nit:219 */
+  /* program.nit:219 */
   fra.me.REG[2] = NEW_program___Program();
   INIT_ATTRIBUTES__program___Program(fra.me.REG[2]);
   program___Program___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
@@ -155938,12 +148327,13 @@ val_t NEW_Program_program___Program___init(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-const classtable_elt_t VFT_compiling___compiling_writer___Writer[57] = {
-  {(bigint) 11 /* 0: Identity */},
-  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "Writer" /* 2: Class Name */},
-  {(bigint) 3 /* 3: Writer < Object: superclass typecheck marker */},
-  {(bigint) 11 /* 4: Writer < Writer: superclass typecheck marker */},
+const classtable_elt_t VFT_global___reachable_method_analysis___DefaultReachableMethodAnalysis[55] = {
+  {(bigint) 2335 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "DefaultReachableMethodAnalysis" /* 2: Class Name */},
+  {(bigint) 3 /* 3: DefaultReachableMethodAnalysis < Object: superclass typecheck marker */},
+  {(bigint) 71 /* 4: DefaultReachableMethodAnalysis < ReachableMethodAnalysis: superclass typecheck marker */},
+  {(bigint) 2335 /* 5: DefaultReachableMethodAnalysis < DefaultReachableMethodAnalysis: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -155957,7 +148347,7 @@ const classtable_elt_t VFT_compiling___compiling_writer___Writer[57] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: Writer < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: DefaultReachableMethodAnalysis < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -155973,6 +148363,8 @@ const classtable_elt_t VFT_compiling___compiling_writer___Writer[57] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -155986,116 +148378,75 @@ const classtable_elt_t VFT_compiling___compiling_writer___Writer[57] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: Writer < Writer: superclass init_table position */},
-  {(bigint) compiling___compiling_writer___Writer___add},
-  {(bigint) compiling___compiling_writer___Writer___add_all},
-  {(bigint) compiling___compiling_writer___Writer___append},
-  {(bigint) compiling___compiling_writer___Writer___internal_append},
-  {(bigint) compiling___compiling_writer___Writer___sub},
-  {(bigint) compiling___compiling_writer___Writer___write_to_stream},
-  {(bigint) compiling___compiling_writer___Writer___is_frozen},
-  {(bigint) compiling___compiling_writer___Writer___freeze},
-  {(bigint) compiling___compiling_writer___Writer___init},
+  {(bigint) 0 /* 50: DefaultReachableMethodAnalysis < ReachableMethodAnalysis: superclass init_table position */},
+  {(bigint) global___reachable_method_analysis___DefaultReachableMethodAnalysis___is_iroutine_reachable},
+  {(bigint) global___reachable_method_analysis___DefaultReachableMethodAnalysis___is_method_reachable},
+  {(bigint) 2 /* 53: DefaultReachableMethodAnalysis < DefaultReachableMethodAnalysis: superclass init_table position */},
+  {(bigint) global___reachable_method_analysis___DefaultReachableMethodAnalysis___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute Writer::_first_sub_writer */
-/* 3: Attribute Writer::_last_sub_writer */
-/* 4: Attribute Writer::_last_string */
-/* 5: Attribute Writer::_is_writing */
-/* 6: Attribute Writer::_is_frozen */
-void INIT_ATTRIBUTES__compiling___compiling_writer___Writer(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
+void INIT_ATTRIBUTES__global___reachable_method_analysis___DefaultReachableMethodAnalysis(val_t p0){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__compiling___compiling_writer___Writer;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__global___reachable_method_analysis___DefaultReachableMethodAnalysis;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./compiling//compiling_writer.nit:50 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_compiling___compiling_writer___Writer____first_sub_writer(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_writer.nit:51 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_compiling___compiling_writer___Writer____last_sub_writer(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_writer.nit:53 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_compiling___compiling_writer___Writer____last_string(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_writer.nit:82 */
-  REGB0 = TAG_Bool(false);
-  ATTR_compiling___compiling_writer___Writer____is_writing(fra.me.REG[0]) = REGB0;
-  /* ./compiling//compiling_writer.nit:98 */
-  REGB0 = TAG_Bool(false);
-  ATTR_compiling___compiling_writer___Writer____is_frozen(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_compiling___compiling_writer___Writer(void)
+val_t NEW_global___reachable_method_analysis___DefaultReachableMethodAnalysis(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_compiling___compiling_writer___Writer;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_global___reachable_method_analysis___DefaultReachableMethodAnalysis;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_compiling___compiling_writer___Writer(val_t p0){
+void CHECKNEW_global___reachable_method_analysis___DefaultReachableMethodAnalysis(val_t p0){
   struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_compiling___compiling_writer___Writer;
+  fra.me.meth = LOCATE_CHECKNEW_global___reachable_method_analysis___DefaultReachableMethodAnalysis;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_writer___Writer____is_writing(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_writing", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_writer___Writer____is_frozen(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_frozen", LOCATE_nitc, 0);
-  }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_Writer_compiling___compiling_writer___Writer___init(void){
+val_t NEW_DefaultReachableMethodAnalysis_global___reachable_method_analysis___DefaultReachableMethodAnalysis___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[2] = {0, 0};
+  int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 107;
-  fra.me.meth = LOCATE_NEW_Writer_compiling___compiling_writer___Writer___init;
+  fra.me.line = 64;
+  fra.me.meth = LOCATE_NEW_DefaultReachableMethodAnalysis_global___reachable_method_analysis___DefaultReachableMethodAnalysis___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./compiling//compiling_writer.nit:107 */
-  fra.me.REG[0] = NEW_compiling___compiling_writer___Writer();
-  INIT_ATTRIBUTES__compiling___compiling_writer___Writer(fra.me.REG[0]);
-  compiling___compiling_writer___Writer___init(fra.me.REG[0], init_table);
-  CHECKNEW_compiling___compiling_writer___Writer(fra.me.REG[0]);
+  /* global/reachable_method_analysis.nit:64 */
+  fra.me.REG[0] = NEW_global___reachable_method_analysis___DefaultReachableMethodAnalysis();
+  INIT_ATTRIBUTES__global___reachable_method_analysis___DefaultReachableMethodAnalysis(fra.me.REG[0]);
+  global___reachable_method_analysis___DefaultReachableMethodAnalysis___init(fra.me.REG[0], init_table);
+  CHECKNEW_global___reachable_method_analysis___DefaultReachableMethodAnalysis(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_compiling___compiling_writer___WriterCoreNode[52] = {
-  {(bigint) 319 /* 0: Identity */},
-  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "WriterCoreNode" /* 2: Class Name */},
-  {(bigint) 3 /* 3: WriterCoreNode < Object: superclass typecheck marker */},
-  {(bigint) 7 /* 4: WriterCoreNode < WriterNode: superclass typecheck marker */},
-  {(bigint) 319 /* 5: WriterCoreNode < WriterCoreNode: superclass typecheck marker */},
+const classtable_elt_t VFT_global___cha_analysis___ChaContext[56] = {
+  {(bigint) 2383 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ChaContext" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ChaContext < Object: superclass typecheck marker */},
+  {(bigint) 71 /* 4: ChaContext < ReachableMethodAnalysis: superclass typecheck marker */},
+  {(bigint) 2383 /* 5: ChaContext < ChaContext: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -156108,7 +148459,7 @@ const classtable_elt_t VFT_compiling___compiling_writer___WriterCoreNode[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: WriterCoreNode < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ChaContext < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -156124,6 +148475,8 @@ const classtable_elt_t VFT_compiling___compiling_writer___WriterCoreNode[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -156137,92 +148490,90 @@ const classtable_elt_t VFT_compiling___compiling_writer___WriterCoreNode[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: WriterCoreNode < WriterNode: superclass init_table position */},
-  {(bigint) compiling___compiling_writer___WriterCoreNode___internal_write_to_stream},
-  {(bigint) compiling___compiling_writer___WriterNode___init},
-  {(bigint) 2 /* 50: WriterCoreNode < WriterCoreNode: superclass init_table position */},
-  {(bigint) compiling___compiling_writer___WriterCoreNode___init},
+  {(bigint) 0 /* 50: ChaContext < ReachableMethodAnalysis: superclass init_table position */},
+  {(bigint) global___cha_analysis___ChaContext___is_iroutine_reachable},
+  {(bigint) global___cha_analysis___ChaContext___is_method_reachable},
+  {(bigint) 2 /* 53: ChaContext < ChaContext: superclass init_table position */},
+  {(bigint) global___cha_analysis___ChaContext___reachable_iroutines},
+  {(bigint) global___cha_analysis___ChaContext___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute WriterCoreNode::_next_writer */
-/* 3: Attribute WriterCoreNode::_writer */
-void INIT_ATTRIBUTES__compiling___compiling_writer___WriterCoreNode(val_t p0){
+/* 2: Attribute ChaContext::_reachable_iroutines */
+void INIT_ATTRIBUTES__global___cha_analysis___ChaContext(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__compiling___compiling_writer___WriterCoreNode;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__global___cha_analysis___ChaContext;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_writer.nit:112 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_compiling___compiling_writer___WriterNode____next_writer(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/cha_analysis.nit:26 */
+  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
+  ATTR_global___cha_analysis___ChaContext____reachable_iroutines(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_compiling___compiling_writer___WriterCoreNode(void)
+val_t NEW_global___cha_analysis___ChaContext(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_compiling___compiling_writer___WriterCoreNode;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_global___cha_analysis___ChaContext;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_compiling___compiling_writer___WriterCoreNode(val_t p0){
+void CHECKNEW_global___cha_analysis___ChaContext(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_compiling___compiling_writer___WriterCoreNode;
+  fra.me.meth = LOCATE_CHECKNEW_global___cha_analysis___ChaContext;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_writer___WriterCoreNode____writer(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___cha_analysis___ChaContext____reachable_iroutines(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_writer", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_reachable_iroutines", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_WriterCoreNode_compiling___compiling_writer___WriterCoreNode___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ChaContext_global___cha_analysis___ChaContext___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 126;
-  fra.me.meth = LOCATE_NEW_WriterCoreNode_compiling___compiling_writer___WriterCoreNode___init;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_ChaContext_global___cha_analysis___ChaContext___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./compiling//compiling_writer.nit:126 */
-  fra.me.REG[1] = NEW_compiling___compiling_writer___WriterCoreNode();
-  INIT_ATTRIBUTES__compiling___compiling_writer___WriterCoreNode(fra.me.REG[1]);
-  compiling___compiling_writer___WriterCoreNode___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_compiling___compiling_writer___WriterCoreNode(fra.me.REG[1]);
+  fra.me.REG[0] = NEW_global___cha_analysis___ChaContext();
+  INIT_ATTRIBUTES__global___cha_analysis___ChaContext(fra.me.REG[0]);
+  global___cha_analysis___ChaContext___init(fra.me.REG[0], init_table);
+  CHECKNEW_global___cha_analysis___ChaContext(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_compiling___compiling_writer___WriterStrings[52] = {
-  {(bigint) 315 /* 0: Identity */},
+const classtable_elt_t VFT_global___cha_analysis___ChaBuilder[57] = {
+  {(bigint) 283 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "WriterStrings" /* 2: Class Name */},
-  {(bigint) 3 /* 3: WriterStrings < Object: superclass typecheck marker */},
-  {(bigint) 7 /* 4: WriterStrings < WriterNode: superclass typecheck marker */},
-  {(bigint) 315 /* 5: WriterStrings < WriterStrings: superclass typecheck marker */},
+  {(bigint) "ChaBuilder" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ChaBuilder < Object: superclass typecheck marker */},
+  {(bigint) 283 /* 4: ChaBuilder < ChaBuilder: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -156235,7 +148586,7 @@ const classtable_elt_t VFT_compiling___compiling_writer___WriterStrings[52] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: WriterStrings < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: ChaBuilder < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -156251,6 +148602,8 @@ const classtable_elt_t VFT_compiling___compiling_writer___WriterStrings[52] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -156264,95 +148617,105 @@ const classtable_elt_t VFT_compiling___compiling_writer___WriterStrings[52] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 0 /* 47: WriterStrings < WriterNode: superclass init_table position */},
-  {(bigint) compiling___compiling_writer___WriterStrings___internal_write_to_stream},
-  {(bigint) compiling___compiling_writer___WriterNode___init},
-  {(bigint) 2 /* 50: WriterStrings < WriterStrings: superclass init_table position */},
-  {(bigint) compiling___compiling_writer___WriterStrings___init},
+  {(bigint) 1 /* 50: ChaBuilder < ChaBuilder: superclass init_table position */},
+  {(bigint) global___cha_analysis___ChaBuilder___iroutine_to_search},
+  {(bigint) global___cha_analysis___ChaBuilder___context},
+  {(bigint) global___cha_analysis___ChaBuilder___program},
+  {(bigint) global___cha_analysis___ChaBuilder___init},
+  {(bigint) global___cha_analysis___ChaBuilder___add_search},
+  {(bigint) global___cha_analysis___ChaBuilder___work},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute WriterStrings::_next_writer */
-/* 3: Attribute WriterStrings::_string */
-/* 4: Attribute WriterStrings::_next */
-void INIT_ATTRIBUTES__compiling___compiling_writer___WriterStrings(val_t p0){
+/* 2: Attribute ChaBuilder::_iroutine_to_search */
+/* 3: Attribute ChaBuilder::_context */
+/* 4: Attribute ChaBuilder::_program */
+void INIT_ATTRIBUTES__global___cha_analysis___ChaBuilder(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__compiling___compiling_writer___WriterStrings;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__global___cha_analysis___ChaBuilder;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_writer.nit:135 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_compiling___compiling_writer___WriterStrings____next(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_writer.nit:112 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_compiling___compiling_writer___WriterNode____next_writer(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/cha_analysis.nit:38 */
+  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
+  ATTR_global___cha_analysis___ChaBuilder____iroutine_to_search(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_compiling___compiling_writer___WriterStrings(void)
+val_t NEW_global___cha_analysis___ChaBuilder(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_compiling___compiling_writer___WriterStrings;
+  obj->vft = (classtable_elt_t*)VFT_global___cha_analysis___ChaBuilder;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_compiling___compiling_writer___WriterStrings(val_t p0){
+void CHECKNEW_global___cha_analysis___ChaBuilder(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_compiling___compiling_writer___WriterStrings;
+  fra.me.meth = LOCATE_CHECKNEW_global___cha_analysis___ChaBuilder;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_writer___WriterStrings____string(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___cha_analysis___ChaBuilder____iroutine_to_search(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_string", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_iroutine_to_search", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_global___cha_analysis___ChaBuilder____context(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_context", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_global___cha_analysis___ChaBuilder____program(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_program", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_WriterStrings_compiling___compiling_writer___WriterStrings___init(val_t p0){
+val_t NEW_ChaBuilder_global___cha_analysis___ChaBuilder___init(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[3] = {0, 0, 0};
+  int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 138;
-  fra.me.meth = LOCATE_NEW_WriterStrings_compiling___compiling_writer___WriterStrings___init;
+  fra.me.line = 42;
+  fra.me.meth = LOCATE_NEW_ChaBuilder_global___cha_analysis___ChaBuilder___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_writer.nit:138 */
-  fra.me.REG[1] = NEW_compiling___compiling_writer___WriterStrings();
-  INIT_ATTRIBUTES__compiling___compiling_writer___WriterStrings(fra.me.REG[1]);
-  compiling___compiling_writer___WriterStrings___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_compiling___compiling_writer___WriterStrings(fra.me.REG[1]);
+  /* global/cha_analysis.nit:42 */
+  fra.me.REG[1] = NEW_global___cha_analysis___ChaBuilder();
+  INIT_ATTRIBUTES__global___cha_analysis___ChaBuilder(fra.me.REG[1]);
+  global___cha_analysis___ChaBuilder___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_global___cha_analysis___ChaBuilder(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_compiling___compiling_base___CProgram[58] = {
-  {(bigint) 291 /* 0: Identity */},
-  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "CProgram" /* 2: Class Name */},
-  {(bigint) 3 /* 3: CProgram < Object: superclass typecheck marker */},
-  {(bigint) 291 /* 4: CProgram < CProgram: superclass typecheck marker */},
+const classtable_elt_t VFT_global___cha_analysis___ChaVisitor[62] = {
+  {(bigint) 2379 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ChaVisitor" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ChaVisitor < Object: superclass typecheck marker */},
+  {(bigint) 219 /* 4: ChaVisitor < ICodeVisitor: superclass typecheck marker */},
+  {(bigint) 2379 /* 5: ChaVisitor < ChaVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -156366,7 +148729,7 @@ const classtable_elt_t VFT_compiling___compiling_base___CProgram[58] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: CProgram < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ChaVisitor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -156382,6 +148745,8 @@ const classtable_elt_t VFT_compiling___compiling_base___CProgram[58] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -156395,133 +148760,100 @@ const classtable_elt_t VFT_compiling___compiling_base___CProgram[58] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: CProgram < CProgram: superclass init_table position */},
-  {(bigint) compiling___compiling_base___CProgram___init},
-  {(bigint) compiling___compiling_base___CProgram___program},
-  {(bigint) compiling___compiling_base___CProgram___files},
-  {(bigint) compiling___compiling_base___CProgram___include_dirs},
-  {(bigint) compiling___compiling_base___CProgram___build_file},
-  {(bigint) compiling___compiling_base___CProgram___compdir},
-  {(bigint) compiling___compiling_base___CProgram___module_header_name},
-  {(bigint) compiling___compiling_base___CProgram___get_file_ending},
-  {(bigint) compiling___compiling_base___CProgram___generate_build_file},
-  {(bigint) compiling___compiling_base___CProgram___run_c_compiler},
+  {(bigint) 0 /* 50: ChaVisitor < ICodeVisitor: superclass init_table position */},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_read},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_write},
+  {(bigint) icode___icode_tools___ICodeVisitor___current_icode},
+  {(bigint) global___cha_analysis___ChaVisitor___visit_icode},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_closure_defs},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_iroutine},
+  {(bigint) icode___icode_tools___ICodeVisitor___init},
+  {(bigint) 2 /* 58: ChaVisitor < ChaVisitor: superclass init_table position */},
+  {(bigint) global___cha_analysis___ChaVisitor___builder},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_icode},
+  {(bigint) global___cha_analysis___ChaVisitor___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute CProgram::_program */
-/* 3: Attribute CProgram::_files */
-/* 4: Attribute CProgram::_include_dirs */
-/* 5: Attribute CProgram::_build_file */
-/* 6: Attribute CProgram::_compdir */
-/* 7: Attribute CProgram::_module_include */
-void INIT_ATTRIBUTES__compiling___compiling_base___CProgram(val_t p0){
+/* 2: Attribute ChaVisitor::_current_icode */
+/* 3: Attribute ChaVisitor::_builder */
+void INIT_ATTRIBUTES__global___cha_analysis___ChaVisitor(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__compiling___compiling_base___CProgram;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__global___cha_analysis___ChaVisitor;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:53 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  ATTR_compiling___compiling_base___CProgram____files(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:56 */
-  fra.me.REG[1] = NEW_ArraySet_standard___collection___array___ArraySet___init();
-  ATTR_compiling___compiling_base___CProgram____include_dirs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_base.nit:76 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_compiling___compiling_base___CProgram____module_include(fra.me.REG[0]) = fra.me.REG[1];
+  /* icode/icode_tools.nit:29 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_compiling___compiling_base___CProgram(void)
+val_t NEW_global___cha_analysis___ChaVisitor(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
-  obj->vft = (classtable_elt_t*)VFT_compiling___compiling_base___CProgram;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_global___cha_analysis___ChaVisitor;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_compiling___compiling_base___CProgram(val_t p0){
+void CHECKNEW_global___cha_analysis___ChaVisitor(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_compiling___compiling_base___CProgram;
+  fra.me.meth = LOCATE_CHECKNEW_global___cha_analysis___ChaVisitor;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____program(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_program", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____files(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_files", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____include_dirs(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_include_dirs", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____build_file(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_build_file", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____compdir(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_compdir", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____module_include(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___cha_analysis___ChaVisitor____builder(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_module_include", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_builder", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_CProgram_compiling___compiling_base___CProgram___init(val_t p0){
+val_t NEW_ChaVisitor_global___cha_analysis___ChaVisitor___init(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[2] = {0, 0};
+  int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 42;
-  fra.me.meth = LOCATE_NEW_CProgram_compiling___compiling_base___CProgram___init;
+  fra.me.line = 126;
+  fra.me.meth = LOCATE_NEW_ChaVisitor_global___cha_analysis___ChaVisitor___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:42 */
-  fra.me.REG[1] = NEW_compiling___compiling_base___CProgram();
-  INIT_ATTRIBUTES__compiling___compiling_base___CProgram(fra.me.REG[1]);
-  compiling___compiling_base___CProgram___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_compiling___compiling_base___CProgram(fra.me.REG[1]);
+  /* global/cha_analysis.nit:126 */
+  fra.me.REG[1] = NEW_global___cha_analysis___ChaVisitor();
+  INIT_ATTRIBUTES__global___cha_analysis___ChaVisitor(fra.me.REG[1]);
+  global___cha_analysis___ChaVisitor___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_global___cha_analysis___ChaVisitor(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_compiling___compiling_base___CompilerVisitor[72] = {
-  {(bigint) 271 /* 0: Identity */},
-  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "CompilerVisitor" /* 2: Class Name */},
-  {(bigint) 3 /* 3: CompilerVisitor < Object: superclass typecheck marker */},
-  {(bigint) 271 /* 4: CompilerVisitor < CompilerVisitor: superclass typecheck marker */},
+const classtable_elt_t VFT_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis[57] = {
+  {(bigint) 2347 /* 0: Identity */},
+  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "DefaultInstantiatedTypeAnalysis" /* 2: Class Name */},
+  {(bigint) 3 /* 3: DefaultInstantiatedTypeAnalysis < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 199 /* 5: DefaultInstantiatedTypeAnalysis < InstantiatedTypeAnalysis: superclass typecheck marker */},
+  {(bigint) 2347 /* 6: DefaultInstantiatedTypeAnalysis < DefaultInstantiatedTypeAnalysis: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -156534,7 +148866,7 @@ const classtable_elt_t VFT_compiling___compiling_base___CompilerVisitor[72] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: CompilerVisitor < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: DefaultInstantiatedTypeAnalysis < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -156550,6 +148882,8 @@ const classtable_elt_t VFT_compiling___compiling_base___CompilerVisitor[72] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -156563,371 +148897,77 @@ const classtable_elt_t VFT_compiling___compiling_base___CompilerVisitor[72] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: CompilerVisitor < CompilerVisitor: superclass init_table position */},
-  {(bigint) compiling___compiling_base___CompilerVisitor___add_decl},
-  {(bigint) compiling___compiling_base___CompilerVisitor___add_instr},
-  {(bigint) compiling___compiling_base___CompilerVisitor___add_indent},
-  {(bigint) compiling___compiling_base___CompilerVisitor___add_line_to},
-  {(bigint) compiling___compiling_base___CompilerVisitor___add_assignment},
-  {(bigint) compiling___compiling_base___CompilerVisitor___new_number},
-  {(bigint) compiling___compiling_base___CompilerVisitor___indent},
-  {(bigint) compiling___compiling_base___CompilerVisitor___unindent},
-  {(bigint) compiling___compiling_base___CompilerVisitor___mmmodule},
-  {(bigint) compiling___compiling_base___CompilerVisitor___header_writer},
-  {(bigint) compiling___compiling_base___CompilerVisitor___header_writer__eq},
-  {(bigint) compiling___compiling_base___CompilerVisitor___writer},
-  {(bigint) compiling___compiling_base___CompilerVisitor___writer__eq},
-  {(bigint) compiling___compiling_base___CompilerVisitor___decl_writer},
-  {(bigint) compiling___compiling_base___CompilerVisitor___decl_writer__eq},
-  {(bigint) compiling___compiling_base___CompilerVisitor___top_writer},
-  {(bigint) compiling___compiling_base___CompilerVisitor___top_writer__eq},
-  {(bigint) compiling___compiling_base___CompilerVisitor___top_decl_writer},
-  {(bigint) compiling___compiling_base___CompilerVisitor___top_decl_writer__eq},
-  {(bigint) compiling___compiling_base___CompilerVisitor___indent_level},
-  {(bigint) compiling___compiling_base___CompilerVisitor___indent_level__eq},
-  {(bigint) compiling___compiling_base___CompilerVisitor___program},
-  {(bigint) compiling___compiling_base___CompilerVisitor___cprogram},
-  {(bigint) compiling___compiling_base___CompilerVisitor___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute CompilerVisitor::_number_cpt */
-/* 3: Attribute CompilerVisitor::_mmmodule */
-/* 4: Attribute CompilerVisitor::_header_writer */
-/* 5: Attribute CompilerVisitor::_writer */
-/* 6: Attribute CompilerVisitor::_decl_writer */
-/* 7: Attribute CompilerVisitor::_top_writer */
-/* 8: Attribute CompilerVisitor::_top_decl_writer */
-/* 9: Attribute CompilerVisitor::_indent_level */
-/* 10: Attribute CompilerVisitor::_program */
-/* 11: Attribute CompilerVisitor::_cprogram */
-void INIT_ATTRIBUTES__compiling___compiling_base___CompilerVisitor(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__compiling___compiling_base___CompilerVisitor;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./compiling//compiling_base.nit:184 */
-  REGB0 = TAG_Int(0);
-  ATTR_compiling___compiling_base___CompilerVisitor____number_cpt(fra.me.REG[0]) = REGB0;
-  /* ./compiling//compiling_base.nit:216 */
-  REGB0 = TAG_Int(0);
-  ATTR_compiling___compiling_base___CompilerVisitor____indent_level(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_compiling___compiling_base___CompilerVisitor(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 12);
-  obj->vft = (classtable_elt_t*)VFT_compiling___compiling_base___CompilerVisitor;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_compiling___compiling_base___CompilerVisitor(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_compiling___compiling_base___CompilerVisitor;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____number_cpt(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_number_cpt", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____mmmodule(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____header_writer(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_header_writer", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____writer(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_writer", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____decl_writer(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_decl_writer", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____top_writer(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_top_writer", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____top_decl_writer(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_top_decl_writer", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____indent_level(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_indent_level", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____program(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_program", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____cprogram(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_cprogram", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_CompilerVisitor_compiling___compiling_base___CompilerVisitor___init(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  int init_table[2] = {0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 224;
-  fra.me.meth = LOCATE_NEW_CompilerVisitor_compiling___compiling_base___CompilerVisitor___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./compiling//compiling_base.nit:224 */
-  fra.me.REG[2] = NEW_compiling___compiling_base___CompilerVisitor();
-  INIT_ATTRIBUTES__compiling___compiling_base___CompilerVisitor(fra.me.REG[2]);
-  compiling___compiling_base___CompilerVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_compiling___compiling_base___CompilerVisitor(fra.me.REG[2]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
-}
-const classtable_elt_t VFT_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor[65] = {
-  {(bigint) 2231 /* 0: Identity */},
-  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "IRegisterSlotAllocationVisitor" /* 2: Class Name */},
-  {(bigint) 3 /* 3: IRegisterSlotAllocationVisitor < Object: superclass typecheck marker */},
-  {(bigint) 223 /* 4: IRegisterSlotAllocationVisitor < ICodeVisitor: superclass typecheck marker */},
-  {(bigint) 2231 /* 5: IRegisterSlotAllocationVisitor < IRegisterSlotAllocationVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: IRegisterSlotAllocationVisitor < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: IRegisterSlotAllocationVisitor < ICodeVisitor: superclass init_table position */},
-  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_read},
-  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_write},
-  {(bigint) icode___icode_tools___ICodeVisitor___current_icode},
-  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode},
-  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs},
-  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine},
-  {(bigint) icode___icode_tools___ICodeVisitor___init},
-  {(bigint) 2 /* 55: IRegisterSlotAllocationVisitor < IRegisterSlotAllocationVisitor: superclass init_table position */},
-  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality},
-  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_icode},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_closure_defs},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_iroutine},
-  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___register},
-  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free},
-  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___iroutine_slot_allocation},
-  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___init},
+  {(bigint) 0 /* 53: DefaultInstantiatedTypeAnalysis < InstantiatedTypeAnalysis: superclass init_table position */},
+  {(bigint) global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___is_class_instantiated},
+  {(bigint) 2 /* 55: DefaultInstantiatedTypeAnalysis < DefaultInstantiatedTypeAnalysis: superclass init_table position */},
+  {(bigint) global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute IRegisterSlotAllocationVisitor::_current_icode */
-/* 3: Attribute IRegisterSlotAllocationVisitor::_pass */
-/* 4: Attribute IRegisterSlotAllocationVisitor::_current_rank */
-/* 5: Attribute IRegisterSlotAllocationVisitor::_max_rank */
-/* 6: Attribute IRegisterSlotAllocationVisitor::_deferred_list */
-/* 7: Attribute IRegisterSlotAllocationVisitor::_current_ir */
-/* 8: Attribute IRegisterSlotAllocationVisitor::_global_slots */
-/* 9: Attribute IRegisterSlotAllocationVisitor::_std_slots */
-/* 10: Attribute IRegisterSlotAllocationVisitor::_tag_slots */
-void INIT_ATTRIBUTES__analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
+void INIT_ATTRIBUTES__global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis(val_t p0){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./analysis//allocate_iregister_slots.nit:34 */
-  REGB0 = TAG_Int(0);
-  ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra.me.REG[0]) = REGB0;
-  /* ./analysis//allocate_iregister_slots.nit:85 */
-  REGB0 = TAG_Int(0);
-  ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra.me.REG[0]) = REGB0;
-  /* ./analysis//allocate_iregister_slots.nit:88 */
-  REGB0 = TAG_Int(0);
-  ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra.me.REG[0]) = REGB0;
-  /* ./analysis//allocate_iregister_slots.nit:92 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./analysis//allocate_iregister_slots.nit:178 */
-  fra.me.REG[1] = NEW_SlotGroup_analysis___allocate_iregister_slots___SlotGroup___init();
-  ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./analysis//allocate_iregister_slots.nit:185 */
-  fra.me.REG[1] = NEW_SlotGroup_analysis___allocate_iregister_slots___SlotGroup___init();
-  ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./icode//icode_tools.nit:29 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor(void)
+val_t NEW_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 11);
-  obj->vft = (classtable_elt_t*)VFT_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor(val_t p0){
+void CHECKNEW_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis(val_t p0){
   struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor;
+  fra.me.meth = LOCATE_CHECKNEW_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
+  fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_pass", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_max_rank", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_deferred_list", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_current_ir", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_global_slots", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_std_slots", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_tag_slots", LOCATE_nitc, 0);
-  }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_IRegisterSlotAllocationVisitor_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_DefaultInstantiatedTypeAnalysis_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 233;
-  fra.me.meth = LOCATE_NEW_IRegisterSlotAllocationVisitor_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___init;
+  fra.me.line = 69;
+  fra.me.meth = LOCATE_NEW_DefaultInstantiatedTypeAnalysis_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./analysis//allocate_iregister_slots.nit:233 */
-  fra.me.REG[1] = NEW_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor();
-  INIT_ATTRIBUTES__analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor(fra.me.REG[1]);
-  analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor(fra.me.REG[1]);
+  /* global/instantiated_type_analysis.nit:69 */
+  fra.me.REG[0] = NEW_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis();
+  INIT_ATTRIBUTES__global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis(fra.me.REG[0]);
+  global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init(fra.me.REG[0], init_table);
+  CHECKNEW_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_analysis___allocate_iregister_slots___SlotGroup[51] = {
-  {(bigint) 47 /* 0: Identity */},
+const classtable_elt_t VFT_global___rta_analysis___RtaContext[59] = {
+  {(bigint) 351 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "SlotGroup" /* 2: Class Name */},
-  {(bigint) 3 /* 3: SlotGroup < Object: superclass typecheck marker */},
-  {(bigint) 47 /* 4: SlotGroup < SlotGroup: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
+  {(bigint) "RtaContext" /* 2: Class Name */},
+  {(bigint) 3 /* 3: RtaContext < Object: superclass typecheck marker */},
+  {(bigint) 71 /* 4: RtaContext < ReachableMethodAnalysis: superclass typecheck marker */},
+  {(bigint) 199 /* 5: RtaContext < InstantiatedTypeAnalysis: superclass typecheck marker */},
+  {(bigint) 351 /* 6: RtaContext < RtaContext: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -156940,7 +148980,7 @@ const classtable_elt_t VFT_analysis___allocate_iregister_slots___SlotGroup[51] =
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: SlotGroup < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: RtaContext < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -156956,6 +148996,8 @@ const classtable_elt_t VFT_analysis___allocate_iregister_slots___SlotGroup[51] =
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -156969,96 +149011,102 @@ const classtable_elt_t VFT_analysis___allocate_iregister_slots___SlotGroup[51] =
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: SlotGroup < SlotGroup: superclass init_table position */},
-  {(bigint) analysis___allocate_iregister_slots___SlotGroup___register},
-  {(bigint) analysis___allocate_iregister_slots___SlotGroup___free},
-  {(bigint) analysis___allocate_iregister_slots___SlotGroup___init},
+  {(bigint) 0 /* 50: RtaContext < ReachableMethodAnalysis: superclass init_table position */},
+  {(bigint) global___rta_analysis___RtaContext___is_iroutine_reachable},
+  {(bigint) global___rta_analysis___RtaContext___is_method_reachable},
+  {(bigint) 2 /* 53: RtaContext < InstantiatedTypeAnalysis: superclass init_table position */},
+  {(bigint) global___rta_analysis___RtaContext___is_class_instantiated},
+  {(bigint) 3 /* 55: RtaContext < RtaContext: superclass init_table position */},
+  {(bigint) global___rta_analysis___RtaContext___init},
+  {(bigint) global___rta_analysis___RtaContext___instanciated_classes},
+  {(bigint) global___rta_analysis___RtaContext___reachable_iroutines},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute SlotGroup::_free */
-/* 3: Attribute SlotGroup::_next_index */
-void INIT_ATTRIBUTES__analysis___allocate_iregister_slots___SlotGroup(val_t p0){
+/* 2: Attribute RtaContext::_instanciated_classes */
+/* 3: Attribute RtaContext::_reachable_iroutines */
+void INIT_ATTRIBUTES__global___rta_analysis___RtaContext(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___allocate_iregister_slots___SlotGroup;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__global___rta_analysis___RtaContext;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//allocate_iregister_slots.nit:243 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./analysis//allocate_iregister_slots.nit:246 */
-  REGB0 = TAG_Int(0);
-  ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra.me.REG[0]) = REGB0;
+  /* global/rta_analysis.nit:29 */
+  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
+  ATTR_global___rta_analysis___RtaContext____instanciated_classes(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/rta_analysis.nit:33 */
+  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
+  ATTR_global___rta_analysis___RtaContext____reachable_iroutines(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___allocate_iregister_slots___SlotGroup(void)
+val_t NEW_global___rta_analysis___RtaContext(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_analysis___allocate_iregister_slots___SlotGroup;
+  obj->vft = (classtable_elt_t*)VFT_global___rta_analysis___RtaContext;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___allocate_iregister_slots___SlotGroup(val_t p0){
+void CHECKNEW_global___rta_analysis___RtaContext(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___allocate_iregister_slots___SlotGroup;
+  fra.me.meth = LOCATE_CHECKNEW_global___rta_analysis___RtaContext;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaContext____instanciated_classes(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_free", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_instanciated_classes", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaContext____reachable_iroutines(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_next_index", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_reachable_iroutines", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_SlotGroup_analysis___allocate_iregister_slots___SlotGroup___init(void){
+val_t NEW_RtaContext_global___rta_analysis___RtaContext___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[2] = {0, 0};
+  int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_SlotGroup_analysis___allocate_iregister_slots___SlotGroup___init;
+  fra.me.line = 28;
+  fra.me.meth = LOCATE_NEW_RtaContext_global___rta_analysis___RtaContext___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_analysis___allocate_iregister_slots___SlotGroup();
-  INIT_ATTRIBUTES__analysis___allocate_iregister_slots___SlotGroup(fra.me.REG[0]);
-  analysis___allocate_iregister_slots___SlotGroup___init(fra.me.REG[0], init_table);
-  CHECKNEW_analysis___allocate_iregister_slots___SlotGroup(fra.me.REG[0]);
+  /* global/rta_analysis.nit:28 */
+  fra.me.REG[0] = NEW_global___rta_analysis___RtaContext();
+  INIT_ATTRIBUTES__global___rta_analysis___RtaContext(fra.me.REG[0]);
+  global___rta_analysis___RtaContext___init(fra.me.REG[0], init_table);
+  CHECKNEW_global___rta_analysis___RtaContext(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_analysis___icode_dump___ICodeDumper[61] = {
-  {(bigint) 231 /* 0: Identity */},
-  {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ICodeDumper" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ICodeDumper < Object: superclass typecheck marker */},
-  {(bigint) 231 /* 4: ICodeDumper < ICodeDumper: superclass typecheck marker */},
+const classtable_elt_t VFT_global___rta_analysis___RtaBuilder[64] = {
+  {(bigint) 63 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "RtaBuilder" /* 2: Class Name */},
+  {(bigint) 3 /* 3: RtaBuilder < Object: superclass typecheck marker */},
+  {(bigint) 63 /* 4: RtaBuilder < RtaBuilder: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -157072,7 +149120,7 @@ const classtable_elt_t VFT_analysis___icode_dump___ICodeDumper[61] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ICodeDumper < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: RtaBuilder < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -157088,6 +149136,8 @@ const classtable_elt_t VFT_analysis___icode_dump___ICodeDumper[61] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -157101,160 +149151,131 @@ const classtable_elt_t VFT_analysis___icode_dump___ICodeDumper[61] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ICodeDumper < ICodeDumper: superclass init_table position */},
-  {(bigint) analysis___icode_dump___ICodeDumper___dump_locations},
-  {(bigint) analysis___icode_dump___ICodeDumper___dump_line_numbers},
-  {(bigint) analysis___icode_dump___ICodeDumper___init},
-  {(bigint) analysis___icode_dump___ICodeDumper___register},
-  {(bigint) analysis___icode_dump___ICodeDumper___register_all},
-  {(bigint) analysis___icode_dump___ICodeDumper___closdecl},
-  {(bigint) analysis___icode_dump___ICodeDumper___lab},
-  {(bigint) analysis___icode_dump___ICodeDumper___line},
-  {(bigint) analysis___icode_dump___ICodeDumper___has_lab},
-  {(bigint) analysis___icode_dump___ICodeDumper___write},
-  {(bigint) analysis___icode_dump___ICodeDumper___indent_level},
-  {(bigint) analysis___icode_dump___ICodeDumper___indent},
-  {(bigint) analysis___icode_dump___ICodeDumper___unindent},
+  {(bigint) 1 /* 50: RtaBuilder < RtaBuilder: superclass init_table position */},
+  {(bigint) global___rta_analysis___RtaBuilder___context},
+  {(bigint) global___rta_analysis___RtaBuilder___program},
+  {(bigint) global___rta_analysis___RtaBuilder___iroutine_to_search},
+  {(bigint) global___rta_analysis___RtaBuilder___call_sites},
+  {(bigint) global___rta_analysis___RtaBuilder___called_methods},
+  {(bigint) global___rta_analysis___RtaBuilder___init},
+  {(bigint) global___rta_analysis___RtaBuilder___check_method},
+  {(bigint) global___rta_analysis___RtaBuilder___check_call_sites},
+  {(bigint) global___rta_analysis___RtaBuilder___add_instantiated_class},
+  {(bigint) global___rta_analysis___RtaBuilder___add_reachable_call},
+  {(bigint) global___rta_analysis___RtaBuilder___add_reachable_iroutine},
+  {(bigint) global___rta_analysis___RtaBuilder___force_some_type_analysis},
+  {(bigint) global___rta_analysis___RtaBuilder___work},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ICodeDumper::_dump_locations */
-/* 3: Attribute ICodeDumper::_dump_line_numbers */
-/* 4: Attribute ICodeDumper::_ids */
-/* 5: Attribute ICodeDumper::_last_value */
-/* 6: Attribute ICodeDumper::_last_clos */
-/* 7: Attribute ICodeDumper::_last_label */
-/* 8: Attribute ICodeDumper::_last_line */
-/* 9: Attribute ICodeDumper::_indent_level */
-void INIT_ATTRIBUTES__analysis___icode_dump___ICodeDumper(val_t p0){
+/* 2: Attribute RtaBuilder::_context */
+/* 3: Attribute RtaBuilder::_program */
+/* 4: Attribute RtaBuilder::_iroutine_to_search */
+/* 5: Attribute RtaBuilder::_call_sites */
+/* 6: Attribute RtaBuilder::_called_methods */
+void INIT_ATTRIBUTES__global___rta_analysis___RtaBuilder(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___icode_dump___ICodeDumper;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__global___rta_analysis___RtaBuilder;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//icode_dump.nit:70 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./analysis//icode_dump.nit:71 */
-  REGB0 = TAG_Int(0);
-  ATTR_analysis___icode_dump___ICodeDumper____last_value(fra.me.REG[0]) = REGB0;
-  /* ./analysis//icode_dump.nit:118 */
-  REGB0 = TAG_Int(0);
-  ATTR_analysis___icode_dump___ICodeDumper____last_clos(fra.me.REG[0]) = REGB0;
-  /* ./analysis//icode_dump.nit:134 */
-  REGB0 = TAG_Int(0);
-  ATTR_analysis___icode_dump___ICodeDumper____last_label(fra.me.REG[0]) = REGB0;
-  /* ./analysis//icode_dump.nit:149 */
-  REGB0 = TAG_Int(0);
-  ATTR_analysis___icode_dump___ICodeDumper____last_line(fra.me.REG[0]) = REGB0;
-  /* ./analysis//icode_dump.nit:178 */
-  REGB0 = TAG_Int(0);
-  ATTR_analysis___icode_dump___ICodeDumper____indent_level(fra.me.REG[0]) = REGB0;
+  /* global/rta_analysis.nit:47 */
+  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
+  ATTR_global___rta_analysis___RtaBuilder____iroutine_to_search(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/rta_analysis.nit:48 */
+  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
+  ATTR_global___rta_analysis___RtaBuilder____call_sites(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/rta_analysis.nit:49 */
+  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
+  ATTR_global___rta_analysis___RtaBuilder____called_methods(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___icode_dump___ICodeDumper(void)
+val_t NEW_global___rta_analysis___RtaBuilder(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 10);
-  obj->vft = (classtable_elt_t*)VFT_analysis___icode_dump___ICodeDumper;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_global___rta_analysis___RtaBuilder;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___icode_dump___ICodeDumper(val_t p0){
+void CHECKNEW_global___rta_analysis___RtaBuilder(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___icode_dump___ICodeDumper;
+  fra.me.meth = LOCATE_CHECKNEW_global___rta_analysis___RtaBuilder;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____dump_locations(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_dump_locations", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____dump_line_numbers(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_dump_line_numbers", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_ids", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____last_value(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaBuilder____context(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_last_value", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_context", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____last_clos(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaBuilder____program(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_last_clos", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_program", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____last_label(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaBuilder____iroutine_to_search(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_last_label", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_iroutine_to_search", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____last_line(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaBuilder____call_sites(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_last_line", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_call_sites", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____indent_level(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaBuilder____called_methods(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_indent_level", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_called_methods", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ICodeDumper_analysis___icode_dump___ICodeDumper___init(val_t p0, val_t p1){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t REGB1;
+val_t NEW_RtaBuilder_global___rta_analysis___RtaBuilder___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 73;
-  fra.me.meth = LOCATE_NEW_ICodeDumper_analysis___icode_dump___ICodeDumper___init;
+  fra.me.line = 51;
+  fra.me.meth = LOCATE_NEW_RtaBuilder_global___rta_analysis___RtaBuilder___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
+  fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  REGB0 = p0;
-  REGB1 = p1;
-  /* ./analysis//icode_dump.nit:73 */
-  fra.me.REG[0] = NEW_analysis___icode_dump___ICodeDumper();
-  INIT_ATTRIBUTES__analysis___icode_dump___ICodeDumper(fra.me.REG[0]);
-  analysis___icode_dump___ICodeDumper___init(fra.me.REG[0], REGB0, REGB1, init_table);
-  CHECKNEW_analysis___icode_dump___ICodeDumper(fra.me.REG[0]);
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* global/rta_analysis.nit:51 */
+  fra.me.REG[1] = NEW_global___rta_analysis___RtaBuilder();
+  INIT_ATTRIBUTES__global___rta_analysis___RtaBuilder(fra.me.REG[1]);
+  global___rta_analysis___RtaBuilder___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_global___rta_analysis___RtaBuilder(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_analysis___inline_methods___InlineMethodVisitor[58] = {
-  {(bigint) 2215 /* 0: Identity */},
-  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "InlineMethodVisitor" /* 2: Class Name */},
-  {(bigint) 3 /* 3: InlineMethodVisitor < Object: superclass typecheck marker */},
-  {(bigint) 223 /* 4: InlineMethodVisitor < ICodeVisitor: superclass typecheck marker */},
-  {(bigint) 2215 /* 5: InlineMethodVisitor < InlineMethodVisitor: superclass typecheck marker */},
+const classtable_elt_t VFT_global___rta_analysis___RtaVisitor[62] = {
+  {(bigint) 347 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "RtaVisitor" /* 2: Class Name */},
+  {(bigint) 3 /* 3: RtaVisitor < Object: superclass typecheck marker */},
+  {(bigint) 219 /* 4: RtaVisitor < ICodeVisitor: superclass typecheck marker */},
+  {(bigint) 347 /* 5: RtaVisitor < RtaVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -157267,7 +149288,7 @@ const classtable_elt_t VFT_analysis___inline_methods___InlineMethodVisitor[58] =
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: InlineMethodVisitor < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: RtaVisitor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -157283,6 +149304,8 @@ const classtable_elt_t VFT_analysis___inline_methods___InlineMethodVisitor[58] =
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -157296,217 +149319,100 @@ const classtable_elt_t VFT_analysis___inline_methods___InlineMethodVisitor[58] =
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: InlineMethodVisitor < ICodeVisitor: superclass init_table position */},
+  {(bigint) 0 /* 50: RtaVisitor < ICodeVisitor: superclass init_table position */},
   {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_read},
   {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_write},
   {(bigint) icode___icode_tools___ICodeVisitor___current_icode},
-  {(bigint) analysis___inline_methods___InlineMethodVisitor___visit_icode},
+  {(bigint) global___rta_analysis___RtaVisitor___visit_icode},
   {(bigint) icode___icode_tools___ICodeVisitor___visit_closure_defs},
   {(bigint) icode___icode_tools___ICodeVisitor___visit_iroutine},
   {(bigint) icode___icode_tools___ICodeVisitor___init},
-  {(bigint) 2 /* 55: InlineMethodVisitor < InlineMethodVisitor: superclass init_table position */},
+  {(bigint) 2 /* 58: RtaVisitor < RtaVisitor: superclass init_table position */},
+  {(bigint) global___rta_analysis___RtaVisitor___builder},
   {(bigint) icode___icode_tools___ICodeVisitor___visit_icode},
-  {(bigint) analysis___inline_methods___InlineMethodVisitor___init},
+  {(bigint) global___rta_analysis___RtaVisitor___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute InlineMethodVisitor::_current_icode */
-/* 3: Attribute InlineMethodVisitor::_pass */
-/* 4: Attribute InlineMethodVisitor::_icb */
-void INIT_ATTRIBUTES__analysis___inline_methods___InlineMethodVisitor(val_t p0){
+/* 2: Attribute RtaVisitor::_current_icode */
+/* 3: Attribute RtaVisitor::_builder */
+void INIT_ATTRIBUTES__global___rta_analysis___RtaVisitor(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___inline_methods___InlineMethodVisitor;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__global___rta_analysis___RtaVisitor;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//inline_methods.nit:24 */
-  REGB0 = TAG_Int(0);
-  ATTR_analysis___inline_methods___InlineMethodVisitor____pass(fra.me.REG[0]) = REGB0;
-  /* ./icode//icode_tools.nit:29 */
+  /* icode/icode_tools.nit:29 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___inline_methods___InlineMethodVisitor(void)
+val_t NEW_global___rta_analysis___RtaVisitor(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_analysis___inline_methods___InlineMethodVisitor;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_global___rta_analysis___RtaVisitor;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___inline_methods___InlineMethodVisitor(val_t p0){
+void CHECKNEW_global___rta_analysis___RtaVisitor(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___inline_methods___InlineMethodVisitor;
+  fra.me.meth = LOCATE_CHECKNEW_global___rta_analysis___RtaVisitor;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_analysis___inline_methods___InlineMethodVisitor____pass(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_pass", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___inline_methods___InlineMethodVisitor____icb(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaVisitor____builder(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_icb", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_builder", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_InlineMethodVisitor_analysis___inline_methods___InlineMethodVisitor___init(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+val_t NEW_RtaVisitor_global___rta_analysis___RtaVisitor___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 63;
-  fra.me.meth = LOCATE_NEW_InlineMethodVisitor_analysis___inline_methods___InlineMethodVisitor___init;
+  fra.me.line = 238;
+  fra.me.meth = LOCATE_NEW_RtaVisitor_global___rta_analysis___RtaVisitor___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
+  fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./analysis//inline_methods.nit:63 */
-  fra.me.REG[2] = NEW_analysis___inline_methods___InlineMethodVisitor();
-  INIT_ATTRIBUTES__analysis___inline_methods___InlineMethodVisitor(fra.me.REG[2]);
-  analysis___inline_methods___InlineMethodVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_analysis___inline_methods___InlineMethodVisitor(fra.me.REG[2]);
+  /* global/rta_analysis.nit:238 */
+  fra.me.REG[1] = NEW_global___rta_analysis___RtaVisitor();
+  INIT_ATTRIBUTES__global___rta_analysis___RtaVisitor(fra.me.REG[1]);
+  global___rta_analysis___RtaVisitor___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_global___rta_analysis___RtaVisitor(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_analysis___reachable_method_analysis___ReachableMethodAnalysis[51] = {
-  {(bigint) 71 /* 0: Identity */},
+const classtable_elt_t VFT_global___reachable_as_init___DefaultReachableAsInitAnalysis[54] = {
+  {(bigint) 2343 /* 0: Identity */},
   {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReachableMethodAnalysis" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReachableMethodAnalysis < Object: superclass typecheck marker */},
-  {(bigint) 71 /* 4: ReachableMethodAnalysis < ReachableMethodAnalysis: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+  {(bigint) "DefaultReachableAsInitAnalysis" /* 2: Class Name */},
+  {(bigint) 3 /* 3: DefaultReachableAsInitAnalysis < Object: superclass typecheck marker */},
+  {(bigint) 83 /* 4: DefaultReachableAsInitAnalysis < ReachableAsInitAnalysis: superclass typecheck marker */},
+  {(bigint) 2343 /* 5: DefaultReachableAsInitAnalysis < DefaultReachableAsInitAnalysis: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ReachableMethodAnalysis < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ReachableMethodAnalysis < ReachableMethodAnalysis: superclass init_table position */},
-  {(bigint) analysis___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable},
-  {(bigint) analysis___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable},
-  {(bigint) analysis___reachable_method_analysis___ReachableMethodAnalysis___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-void INIT_ATTRIBUTES__analysis___reachable_method_analysis___ReachableMethodAnalysis(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___reachable_method_analysis___ReachableMethodAnalysis;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_analysis___reachable_method_analysis___ReachableMethodAnalysis(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_analysis___reachable_method_analysis___ReachableMethodAnalysis;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_analysis___reachable_method_analysis___ReachableMethodAnalysis(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___reachable_method_analysis___ReachableMethodAnalysis;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_ReachableMethodAnalysis_analysis___reachable_method_analysis___ReachableMethodAnalysis___init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[2] = {0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ReachableMethodAnalysis_analysis___reachable_method_analysis___ReachableMethodAnalysis___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_analysis___reachable_method_analysis___ReachableMethodAnalysis();
-  INIT_ATTRIBUTES__analysis___reachable_method_analysis___ReachableMethodAnalysis(fra.me.REG[0]);
-  analysis___reachable_method_analysis___ReachableMethodAnalysis___init(fra.me.REG[0], init_table);
-  CHECKNEW_analysis___reachable_method_analysis___ReachableMethodAnalysis(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis[53] = {
-  {(bigint) 2299 /* 0: Identity */},
-  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "DefaultReachableMethodAnalysis" /* 2: Class Name */},
-  {(bigint) 3 /* 3: DefaultReachableMethodAnalysis < Object: superclass typecheck marker */},
-  {(bigint) 71 /* 4: DefaultReachableMethodAnalysis < ReachableMethodAnalysis: superclass typecheck marker */},
-  {(bigint) 2299 /* 5: DefaultReachableMethodAnalysis < DefaultReachableMethodAnalysis: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -157519,7 +149425,7 @@ const classtable_elt_t VFT_analysis___reachable_method_analysis___DefaultReachab
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: DefaultReachableMethodAnalysis < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: DefaultReachableAsInitAnalysis < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -157535,6 +149441,8 @@ const classtable_elt_t VFT_analysis___reachable_method_analysis___DefaultReachab
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -157548,198 +149456,73 @@ const classtable_elt_t VFT_analysis___reachable_method_analysis___DefaultReachab
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: DefaultReachableMethodAnalysis < ReachableMethodAnalysis: superclass init_table position */},
-  {(bigint) analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___is_iroutine_reachable},
-  {(bigint) analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___is_method_reachable},
-  {(bigint) analysis___reachable_method_analysis___ReachableMethodAnalysis___init},
-  {(bigint) 2 /* 51: DefaultReachableMethodAnalysis < DefaultReachableMethodAnalysis: superclass init_table position */},
-  {(bigint) analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___init},
+  {(bigint) 0 /* 50: DefaultReachableAsInitAnalysis < ReachableAsInitAnalysis: superclass init_table position */},
+  {(bigint) global___reachable_as_init___DefaultReachableAsInitAnalysis___is_method_reachable_as_init},
+  {(bigint) 2 /* 52: DefaultReachableAsInitAnalysis < DefaultReachableAsInitAnalysis: superclass init_table position */},
+  {(bigint) global___reachable_as_init___DefaultReachableAsInitAnalysis___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-void INIT_ATTRIBUTES__analysis___reachable_method_analysis___DefaultReachableMethodAnalysis(val_t p0){
+void INIT_ATTRIBUTES__global___reachable_as_init___DefaultReachableAsInitAnalysis(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___reachable_method_analysis___DefaultReachableMethodAnalysis;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__global___reachable_as_init___DefaultReachableAsInitAnalysis;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis(void)
+val_t NEW_global___reachable_as_init___DefaultReachableAsInitAnalysis(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_DefaultReachableMethodAnalysis_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 64;
-  fra.me.meth = LOCATE_NEW_DefaultReachableMethodAnalysis_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  /* ./analysis//reachable_method_analysis.nit:64 */
-  fra.me.REG[0] = NEW_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis();
-  INIT_ATTRIBUTES__analysis___reachable_method_analysis___DefaultReachableMethodAnalysis(fra.me.REG[0]);
-  analysis___reachable_method_analysis___DefaultReachableMethodAnalysis___init(fra.me.REG[0], init_table);
-  CHECKNEW_analysis___reachable_method_analysis___DefaultReachableMethodAnalysis(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_analysis___cha_analysis___ChaContext[53] = {
-  {(bigint) 2347 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ChaContext" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ChaContext < Object: superclass typecheck marker */},
-  {(bigint) 71 /* 4: ChaContext < ReachableMethodAnalysis: superclass typecheck marker */},
-  {(bigint) 2347 /* 5: ChaContext < ChaContext: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ChaContext < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ChaContext < ReachableMethodAnalysis: superclass init_table position */},
-  {(bigint) analysis___cha_analysis___ChaContext___is_iroutine_reachable},
-  {(bigint) analysis___cha_analysis___ChaContext___is_method_reachable},
-  {(bigint) analysis___reachable_method_analysis___ReachableMethodAnalysis___init},
-  {(bigint) 2 /* 51: ChaContext < ChaContext: superclass init_table position */},
-  {(bigint) analysis___cha_analysis___ChaContext___reachable_iroutines},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute ChaContext::_reachable_iroutines */
-void INIT_ATTRIBUTES__analysis___cha_analysis___ChaContext(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___cha_analysis___ChaContext;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./analysis//cha_analysis.nit:26 */
-  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_analysis___cha_analysis___ChaContext____reachable_iroutines(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_analysis___cha_analysis___ChaContext(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_analysis___cha_analysis___ChaContext;
+  obj->vft = (classtable_elt_t*)VFT_global___reachable_as_init___DefaultReachableAsInitAnalysis;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___cha_analysis___ChaContext(val_t p0){
+void CHECKNEW_global___reachable_as_init___DefaultReachableAsInitAnalysis(val_t p0){
   struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___cha_analysis___ChaContext;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_analysis___cha_analysis___ChaContext____reachable_iroutines(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_reachable_iroutines", LOCATE_nitc, 0);
-  }
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_CHECKNEW_global___reachable_as_init___DefaultReachableAsInitAnalysis;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ChaContext_analysis___reachable_method_analysis___ReachableMethodAnalysis___init(void){
+val_t NEW_DefaultReachableAsInitAnalysis_global___reachable_as_init___DefaultReachableAsInitAnalysis___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ChaContext_analysis___reachable_method_analysis___ReachableMethodAnalysis___init;
+  fra.me.line = 60;
+  fra.me.meth = LOCATE_NEW_DefaultReachableAsInitAnalysis_global___reachable_as_init___DefaultReachableAsInitAnalysis___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_analysis___cha_analysis___ChaContext();
-  INIT_ATTRIBUTES__analysis___cha_analysis___ChaContext(fra.me.REG[0]);
-  analysis___reachable_method_analysis___ReachableMethodAnalysis___init(fra.me.REG[0], init_table);
-  CHECKNEW_analysis___cha_analysis___ChaContext(fra.me.REG[0]);
+  /* global/reachable_as_init.nit:60 */
+  fra.me.REG[0] = NEW_global___reachable_as_init___DefaultReachableAsInitAnalysis();
+  INIT_ATTRIBUTES__global___reachable_as_init___DefaultReachableAsInitAnalysis(fra.me.REG[0]);
+  global___reachable_as_init___DefaultReachableAsInitAnalysis___init(fra.me.REG[0], init_table);
+  CHECKNEW_global___reachable_as_init___DefaultReachableAsInitAnalysis(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_analysis___cha_analysis___ChaBuilder[54] = {
-  {(bigint) 287 /* 0: Identity */},
-  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ChaBuilder" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ChaBuilder < Object: superclass typecheck marker */},
-  {(bigint) 287 /* 4: ChaBuilder < ChaBuilder: superclass typecheck marker */},
+const classtable_elt_t VFT_global___reachable_as_init_impl___ReachableAsInitBuilder[55] = {
+  {(bigint) 79 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReachableAsInitBuilder" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReachableAsInitBuilder < Object: superclass typecheck marker */},
+  {(bigint) 79 /* 4: ReachableAsInitBuilder < ReachableAsInitBuilder: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -157753,7 +149536,7 @@ const classtable_elt_t VFT_analysis___cha_analysis___ChaBuilder[54] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ChaBuilder < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: ReachableAsInitBuilder < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -157769,6 +149552,8 @@ const classtable_elt_t VFT_analysis___cha_analysis___ChaBuilder[54] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -157782,105 +149567,98 @@ const classtable_elt_t VFT_analysis___cha_analysis___ChaBuilder[54] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ChaBuilder < ChaBuilder: superclass init_table position */},
-  {(bigint) analysis___cha_analysis___ChaBuilder___iroutine_to_search},
-  {(bigint) analysis___cha_analysis___ChaBuilder___context},
-  {(bigint) analysis___cha_analysis___ChaBuilder___program},
-  {(bigint) analysis___cha_analysis___ChaBuilder___init},
-  {(bigint) analysis___cha_analysis___ChaBuilder___add_search},
-  {(bigint) analysis___cha_analysis___ChaBuilder___work},
+  {(bigint) 1 /* 50: ReachableAsInitBuilder < ReachableAsInitBuilder: superclass init_table position */},
+  {(bigint) global___reachable_as_init_impl___ReachableAsInitBuilder___context},
+  {(bigint) global___reachable_as_init_impl___ReachableAsInitBuilder___program},
+  {(bigint) global___reachable_as_init_impl___ReachableAsInitBuilder___work},
+  {(bigint) global___reachable_as_init_impl___ReachableAsInitBuilder___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ChaBuilder::_iroutine_to_search */
-/* 3: Attribute ChaBuilder::_context */
-/* 4: Attribute ChaBuilder::_program */
-void INIT_ATTRIBUTES__analysis___cha_analysis___ChaBuilder(val_t p0){
+/* 2: Attribute ReachableAsInitBuilder::_context */
+/* 3: Attribute ReachableAsInitBuilder::_program */
+void INIT_ATTRIBUTES__global___reachable_as_init_impl___ReachableAsInitBuilder(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___cha_analysis___ChaBuilder;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__global___reachable_as_init_impl___ReachableAsInitBuilder;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//cha_analysis.nit:38 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_analysis___cha_analysis___ChaBuilder____iroutine_to_search(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/reachable_as_init_impl.nit:24 */
+  fra.me.REG[1] = NEW_ReachableAsInitAnalysisImpl_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init();
+  ATTR_global___reachable_as_init_impl___ReachableAsInitBuilder____context(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___cha_analysis___ChaBuilder(void)
+val_t NEW_global___reachable_as_init_impl___ReachableAsInitBuilder(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_analysis___cha_analysis___ChaBuilder;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_global___reachable_as_init_impl___ReachableAsInitBuilder;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___cha_analysis___ChaBuilder(val_t p0){
+void CHECKNEW_global___reachable_as_init_impl___ReachableAsInitBuilder(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___cha_analysis___ChaBuilder;
+  fra.me.meth = LOCATE_CHECKNEW_global___reachable_as_init_impl___ReachableAsInitBuilder;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_analysis___cha_analysis___ChaBuilder____iroutine_to_search(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_iroutine_to_search", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___cha_analysis___ChaBuilder____context(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitBuilder____context(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_context", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_analysis___cha_analysis___ChaBuilder____program(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitBuilder____program(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_program", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ChaBuilder_analysis___cha_analysis___ChaBuilder___init(val_t p0){
+val_t NEW_ReachableAsInitBuilder_global___reachable_as_init_impl___ReachableAsInitBuilder___init(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 42;
-  fra.me.meth = LOCATE_NEW_ChaBuilder_analysis___cha_analysis___ChaBuilder___init;
+  fra.me.line = 36;
+  fra.me.meth = LOCATE_NEW_ReachableAsInitBuilder_global___reachable_as_init_impl___ReachableAsInitBuilder___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//cha_analysis.nit:42 */
-  fra.me.REG[1] = NEW_analysis___cha_analysis___ChaBuilder();
-  INIT_ATTRIBUTES__analysis___cha_analysis___ChaBuilder(fra.me.REG[1]);
-  analysis___cha_analysis___ChaBuilder___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_analysis___cha_analysis___ChaBuilder(fra.me.REG[1]);
+  /* global/reachable_as_init_impl.nit:36 */
+  fra.me.REG[1] = NEW_global___reachable_as_init_impl___ReachableAsInitBuilder();
+  INIT_ATTRIBUTES__global___reachable_as_init_impl___ReachableAsInitBuilder(fra.me.REG[1]);
+  global___reachable_as_init_impl___ReachableAsInitBuilder___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_global___reachable_as_init_impl___ReachableAsInitBuilder(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_analysis___cha_analysis___ChaVisitor[59] = {
-  {(bigint) 2343 /* 0: Identity */},
-  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ChaVisitor" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ChaVisitor < Object: superclass typecheck marker */},
-  {(bigint) 223 /* 4: ChaVisitor < ICodeVisitor: superclass typecheck marker */},
-  {(bigint) 2343 /* 5: ChaVisitor < ChaVisitor: superclass typecheck marker */},
+const classtable_elt_t VFT_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl[54] = {
+  {(bigint) 2091 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ReachableAsInitAnalysisImpl" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ReachableAsInitAnalysisImpl < Object: superclass typecheck marker */},
+  {(bigint) 83 /* 4: ReachableAsInitAnalysisImpl < ReachableAsInitAnalysis: superclass typecheck marker */},
+  {(bigint) 2091 /* 5: ReachableAsInitAnalysisImpl < ReachableAsInitAnalysisImpl: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -157893,7 +149671,7 @@ const classtable_elt_t VFT_analysis___cha_analysis___ChaVisitor[59] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ChaVisitor < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: ReachableAsInitAnalysisImpl < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -157909,6 +149687,8 @@ const classtable_elt_t VFT_analysis___cha_analysis___ChaVisitor[59] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -157922,99 +149702,89 @@ const classtable_elt_t VFT_analysis___cha_analysis___ChaVisitor[59] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ChaVisitor < ICodeVisitor: superclass init_table position */},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_read},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_write},
-  {(bigint) icode___icode_tools___ICodeVisitor___current_icode},
-  {(bigint) analysis___cha_analysis___ChaVisitor___visit_icode},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_closure_defs},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_iroutine},
-  {(bigint) icode___icode_tools___ICodeVisitor___init},
-  {(bigint) 2 /* 55: ChaVisitor < ChaVisitor: superclass init_table position */},
-  {(bigint) analysis___cha_analysis___ChaVisitor___builder},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_icode},
-  {(bigint) analysis___cha_analysis___ChaVisitor___init},
+  {(bigint) 0 /* 50: ReachableAsInitAnalysisImpl < ReachableAsInitAnalysis: superclass init_table position */},
+  {(bigint) global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___is_method_reachable_as_init},
+  {(bigint) 2 /* 52: ReachableAsInitAnalysisImpl < ReachableAsInitAnalysisImpl: superclass init_table position */},
+  {(bigint) global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ChaVisitor::_current_icode */
-/* 3: Attribute ChaVisitor::_builder */
-void INIT_ATTRIBUTES__analysis___cha_analysis___ChaVisitor(val_t p0){
+/* 2: Attribute ReachableAsInitAnalysisImpl::_methods */
+void INIT_ATTRIBUTES__global___reachable_as_init_impl___ReachableAsInitAnalysisImpl(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___cha_analysis___ChaVisitor;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__global___reachable_as_init_impl___ReachableAsInitAnalysisImpl;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_tools.nit:29 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/reachable_as_init_impl.nit:45 */
+  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
+  ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___cha_analysis___ChaVisitor(void)
+val_t NEW_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_analysis___cha_analysis___ChaVisitor;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___cha_analysis___ChaVisitor(val_t p0){
+void CHECKNEW_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___cha_analysis___ChaVisitor;
+  fra.me.meth = LOCATE_CHECKNEW_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_analysis___cha_analysis___ChaVisitor____builder(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_builder", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_methods", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ChaVisitor_analysis___cha_analysis___ChaVisitor___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_ReachableAsInitAnalysisImpl_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 126;
-  fra.me.meth = LOCATE_NEW_ChaVisitor_analysis___cha_analysis___ChaVisitor___init;
+  fra.me.line = 52;
+  fra.me.meth = LOCATE_NEW_ReachableAsInitAnalysisImpl_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./analysis//cha_analysis.nit:126 */
-  fra.me.REG[1] = NEW_analysis___cha_analysis___ChaVisitor();
-  INIT_ATTRIBUTES__analysis___cha_analysis___ChaVisitor(fra.me.REG[1]);
-  analysis___cha_analysis___ChaVisitor___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_analysis___cha_analysis___ChaVisitor(fra.me.REG[1]);
+  /* global/reachable_as_init_impl.nit:52 */
+  fra.me.REG[0] = NEW_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl();
+  INIT_ATTRIBUTES__global___reachable_as_init_impl___ReachableAsInitAnalysisImpl(fra.me.REG[0]);
+  global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init(fra.me.REG[0], init_table);
+  CHECKNEW_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis[54] = {
-  {(bigint) 203 /* 0: Identity */},
-  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "InstantiatedTypeAnalysis" /* 2: Class Name */},
-  {(bigint) 3 /* 3: InstantiatedTypeAnalysis < Object: superclass typecheck marker */},
+const classtable_elt_t VFT_global___reachable_as_init_impl___RAIVisitor[62] = {
+  {(bigint) 2107 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "RAIVisitor" /* 2: Class Name */},
+  {(bigint) 3 /* 3: RAIVisitor < Object: superclass typecheck marker */},
+  {(bigint) 219 /* 4: RAIVisitor < ICodeVisitor: superclass typecheck marker */},
+  {(bigint) 2107 /* 5: RAIVisitor < RAIVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 203 /* 5: InstantiatedTypeAnalysis < InstantiatedTypeAnalysis: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -158027,7 +149797,7 @@ const classtable_elt_t VFT_analysis___instantiated_type_analysis___InstantiatedT
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: InstantiatedTypeAnalysis < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: RAIVisitor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -158043,6 +149813,8 @@ const classtable_elt_t VFT_analysis___instantiated_type_analysis___InstantiatedT
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -158056,76 +149828,101 @@ const classtable_elt_t VFT_analysis___instantiated_type_analysis___InstantiatedT
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 1 /* 51: InstantiatedTypeAnalysis < InstantiatedTypeAnalysis: superclass init_table position */},
-  {(bigint) analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated},
-  {(bigint) analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___init},
+  {(bigint) 0 /* 50: RAIVisitor < ICodeVisitor: superclass init_table position */},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_read},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_write},
+  {(bigint) icode___icode_tools___ICodeVisitor___current_icode},
+  {(bigint) global___reachable_as_init_impl___RAIVisitor___visit_icode},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_closure_defs},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_iroutine},
+  {(bigint) icode___icode_tools___ICodeVisitor___init},
+  {(bigint) 2 /* 58: RAIVisitor < RAIVisitor: superclass init_table position */},
+  {(bigint) global___reachable_as_init_impl___RAIVisitor___builder},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_icode},
+  {(bigint) global___reachable_as_init_impl___RAIVisitor___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-void INIT_ATTRIBUTES__analysis___instantiated_type_analysis___InstantiatedTypeAnalysis(val_t p0){
-  struct {struct stack_frame_t me;} fra;
+/* 2: Attribute RAIVisitor::_current_icode */
+/* 3: Attribute RAIVisitor::_builder */
+void INIT_ATTRIBUTES__global___reachable_as_init_impl___RAIVisitor(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___instantiated_type_analysis___InstantiatedTypeAnalysis;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__global___reachable_as_init_impl___RAIVisitor;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
+  fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* icode/icode_tools.nit:29 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis(void)
+val_t NEW_global___reachable_as_init_impl___RAIVisitor(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_global___reachable_as_init_impl___RAIVisitor;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis(val_t p0){
+void CHECKNEW_global___reachable_as_init_impl___RAIVisitor(val_t p0){
   struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis;
+  fra.me.meth = LOCATE_CHECKNEW_global___reachable_as_init_impl___RAIVisitor;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___RAIVisitor____builder(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_builder", LOCATE_nitc, 0);
+  }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_InstantiatedTypeAnalysis_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___init(void){
-  struct {struct stack_frame_t me;} fra;
+val_t NEW_RAIVisitor_global___reachable_as_init_impl___RAIVisitor___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[2] = {0, 0};
+  int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_InstantiatedTypeAnalysis_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___init;
+  fra.me.line = 73;
+  fra.me.meth = LOCATE_NEW_RAIVisitor_global___reachable_as_init_impl___RAIVisitor___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
+  fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis();
-  INIT_ATTRIBUTES__analysis___instantiated_type_analysis___InstantiatedTypeAnalysis(fra.me.REG[0]);
-  analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___init(fra.me.REG[0], init_table);
-  CHECKNEW_analysis___instantiated_type_analysis___InstantiatedTypeAnalysis(fra.me.REG[0]);
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* global/reachable_as_init_impl.nit:73 */
+  fra.me.REG[1] = NEW_global___reachable_as_init_impl___RAIVisitor();
+  INIT_ATTRIBUTES__global___reachable_as_init_impl___RAIVisitor(fra.me.REG[1]);
+  global___reachable_as_init_impl___RAIVisitor___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_global___reachable_as_init_impl___RAIVisitor(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis[56] = {
-  {(bigint) 2311 /* 0: Identity */},
+const classtable_elt_t VFT_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis[55] = {
+  {(bigint) 2339 /* 0: Identity */},
   {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "DefaultInstantiatedTypeAnalysis" /* 2: Class Name */},
-  {(bigint) 3 /* 3: DefaultInstantiatedTypeAnalysis < Object: superclass typecheck marker */},
+  {(bigint) "DefaultReachableFromInitMethodAnalysis" /* 2: Class Name */},
+  {(bigint) 3 /* 3: DefaultReachableFromInitMethodAnalysis < Object: superclass typecheck marker */},
+  {(bigint) 75 /* 4: DefaultReachableFromInitMethodAnalysis < ReachableFromInitMethodAnalysis: superclass typecheck marker */},
+  {(bigint) 2339 /* 5: DefaultReachableFromInitMethodAnalysis < DefaultReachableFromInitMethodAnalysis: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 203 /* 5: DefaultInstantiatedTypeAnalysis < InstantiatedTypeAnalysis: superclass typecheck marker */},
-  {(bigint) 2311 /* 6: DefaultInstantiatedTypeAnalysis < DefaultInstantiatedTypeAnalysis: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -158137,7 +149934,7 @@ const classtable_elt_t VFT_analysis___instantiated_type_analysis___DefaultInstan
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: DefaultInstantiatedTypeAnalysis < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: DefaultReachableFromInitMethodAnalysis < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -158153,6 +149950,8 @@ const classtable_elt_t VFT_analysis___instantiated_type_analysis___DefaultInstan
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -158166,79 +149965,76 @@ const classtable_elt_t VFT_analysis___instantiated_type_analysis___DefaultInstan
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 1 /* 51: DefaultInstantiatedTypeAnalysis < InstantiatedTypeAnalysis: superclass init_table position */},
-  {(bigint) analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___is_class_instantiated},
-  {(bigint) analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___init},
-  {(bigint) 2 /* 54: DefaultInstantiatedTypeAnalysis < DefaultInstantiatedTypeAnalysis: superclass init_table position */},
-  {(bigint) analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init},
+  {(bigint) 0 /* 50: DefaultReachableFromInitMethodAnalysis < ReachableFromInitMethodAnalysis: superclass init_table position */},
+  {(bigint) global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init},
+  {(bigint) global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_method_reachable_from_init},
+  {(bigint) 2 /* 53: DefaultReachableFromInitMethodAnalysis < DefaultReachableFromInitMethodAnalysis: superclass init_table position */},
+  {(bigint) global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-void INIT_ATTRIBUTES__analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis(val_t p0){
+void INIT_ATTRIBUTES__global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis(void)
+val_t NEW_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis;
+  obj->vft = (classtable_elt_t*)VFT_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis(val_t p0){
+void CHECKNEW_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis;
+  fra.me.meth = LOCATE_CHECKNEW_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_DefaultInstantiatedTypeAnalysis_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init(void){
+val_t NEW_DefaultReachableFromInitMethodAnalysis_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 69;
-  fra.me.meth = LOCATE_NEW_DefaultInstantiatedTypeAnalysis_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init;
+  fra.me.line = 68;
+  fra.me.meth = LOCATE_NEW_DefaultReachableFromInitMethodAnalysis_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./analysis//instantiated_type_analysis.nit:69 */
-  fra.me.REG[0] = NEW_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis();
-  INIT_ATTRIBUTES__analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis(fra.me.REG[0]);
-  analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init(fra.me.REG[0], init_table);
-  CHECKNEW_analysis___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis(fra.me.REG[0]);
+  /* global/reachable_from_init_method_analysis.nit:68 */
+  fra.me.REG[0] = NEW_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis();
+  INIT_ATTRIBUTES__global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis(fra.me.REG[0]);
+  global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init(fra.me.REG[0], init_table);
+  CHECKNEW_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_analysis___rta_analysis___RtaContext[58] = {
-  {(bigint) 359 /* 0: Identity */},
+const classtable_elt_t VFT_global___reachable_from_init_method_analysis_impl___RFIMABuilder[55] = {
+  {(bigint) 87 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "RtaContext" /* 2: Class Name */},
-  {(bigint) 3 /* 3: RtaContext < Object: superclass typecheck marker */},
-  {(bigint) 71 /* 4: RtaContext < ReachableMethodAnalysis: superclass typecheck marker */},
-  {(bigint) 203 /* 5: RtaContext < InstantiatedTypeAnalysis: superclass typecheck marker */},
-  {(bigint) 359 /* 6: RtaContext < RtaContext: superclass typecheck marker */},
+  {(bigint) "RFIMABuilder" /* 2: Class Name */},
+  {(bigint) 3 /* 3: RFIMABuilder < Object: superclass typecheck marker */},
+  {(bigint) 87 /* 4: RFIMABuilder < RFIMABuilder: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -158250,7 +150046,7 @@ const classtable_elt_t VFT_analysis___rta_analysis___RtaContext[58] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: RtaContext < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: RFIMABuilder < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -158266,6 +150062,8 @@ const classtable_elt_t VFT_analysis___rta_analysis___RtaContext[58] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -158279,103 +150077,97 @@ const classtable_elt_t VFT_analysis___rta_analysis___RtaContext[58] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: RtaContext < ReachableMethodAnalysis: superclass init_table position */},
-  {(bigint) analysis___rta_analysis___RtaContext___is_iroutine_reachable},
-  {(bigint) analysis___rta_analysis___RtaContext___is_method_reachable},
-  {(bigint) analysis___reachable_method_analysis___ReachableMethodAnalysis___init},
-  {(bigint) 2 /* 51: RtaContext < InstantiatedTypeAnalysis: superclass init_table position */},
-  {(bigint) analysis___rta_analysis___RtaContext___is_class_instantiated},
-  {(bigint) analysis___instantiated_type_analysis___InstantiatedTypeAnalysis___init},
-  {(bigint) 3 /* 54: RtaContext < RtaContext: superclass init_table position */},
-  {(bigint) analysis___rta_analysis___RtaContext___init},
-  {(bigint) analysis___rta_analysis___RtaContext___instanciated_classes},
-  {(bigint) analysis___rta_analysis___RtaContext___reachable_iroutines},
+  {(bigint) 1 /* 50: RFIMABuilder < RFIMABuilder: superclass init_table position */},
+  {(bigint) global___reachable_from_init_method_analysis_impl___RFIMABuilder___program},
+  {(bigint) global___reachable_from_init_method_analysis_impl___RFIMABuilder___context},
+  {(bigint) global___reachable_from_init_method_analysis_impl___RFIMABuilder___init},
+  {(bigint) global___reachable_from_init_method_analysis_impl___RFIMABuilder___work},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute RtaContext::_instanciated_classes */
-/* 3: Attribute RtaContext::_reachable_iroutines */
-void INIT_ATTRIBUTES__analysis___rta_analysis___RtaContext(val_t p0){
+/* 2: Attribute RFIMABuilder::_program */
+/* 3: Attribute RFIMABuilder::_context */
+void INIT_ATTRIBUTES__global___reachable_from_init_method_analysis_impl___RFIMABuilder(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___rta_analysis___RtaContext;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__global___reachable_from_init_method_analysis_impl___RFIMABuilder;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//rta_analysis.nit:29 */
-  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_analysis___rta_analysis___RtaContext____instanciated_classes(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./analysis//rta_analysis.nit:33 */
-  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_analysis___rta_analysis___RtaContext____reachable_iroutines(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/reachable_from_init_method_analysis_impl.nit:26 */
+  fra.me.REG[1] = NEW_RFIMAContext_global___reachable_from_init_method_analysis_impl___RFIMAContext___init();
+  ATTR_global___reachable_from_init_method_analysis_impl___RFIMABuilder____context(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___rta_analysis___RtaContext(void)
+val_t NEW_global___reachable_from_init_method_analysis_impl___RFIMABuilder(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_analysis___rta_analysis___RtaContext;
+  obj->vft = (classtable_elt_t*)VFT_global___reachable_from_init_method_analysis_impl___RFIMABuilder;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___rta_analysis___RtaContext(val_t p0){
+void CHECKNEW_global___reachable_from_init_method_analysis_impl___RFIMABuilder(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___rta_analysis___RtaContext;
+  fra.me.meth = LOCATE_CHECKNEW_global___reachable_from_init_method_analysis_impl___RFIMABuilder;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_analysis___rta_analysis___RtaContext____instanciated_classes(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_instanciated_classes", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_program", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_analysis___rta_analysis___RtaContext____reachable_iroutines(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___reachable_from_init_method_analysis_impl___RFIMABuilder____context(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_reachable_iroutines", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_context", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_RtaContext_analysis___rta_analysis___RtaContext___init(void){
-  struct {struct stack_frame_t me;} fra;
+val_t NEW_RFIMABuilder_global___reachable_from_init_method_analysis_impl___RFIMABuilder___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  int init_table[4] = {0, 0, 0, 0};
+  int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 28;
-  fra.me.meth = LOCATE_NEW_RtaContext_analysis___rta_analysis___RtaContext___init;
+  fra.me.meth = LOCATE_NEW_RFIMABuilder_global___reachable_from_init_method_analysis_impl___RFIMABuilder___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
+  fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./analysis//rta_analysis.nit:28 */
-  fra.me.REG[0] = NEW_analysis___rta_analysis___RtaContext();
-  INIT_ATTRIBUTES__analysis___rta_analysis___RtaContext(fra.me.REG[0]);
-  analysis___rta_analysis___RtaContext___init(fra.me.REG[0], init_table);
-  CHECKNEW_analysis___rta_analysis___RtaContext(fra.me.REG[0]);
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* global/reachable_from_init_method_analysis_impl.nit:28 */
+  fra.me.REG[1] = NEW_global___reachable_from_init_method_analysis_impl___RFIMABuilder();
+  INIT_ATTRIBUTES__global___reachable_from_init_method_analysis_impl___RFIMABuilder(fra.me.REG[1]);
+  global___reachable_from_init_method_analysis_impl___RFIMABuilder___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_global___reachable_from_init_method_analysis_impl___RFIMABuilder(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_analysis___rta_analysis___RtaBuilder[61] = {
-  {(bigint) 63 /* 0: Identity */},
-  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "RtaBuilder" /* 2: Class Name */},
-  {(bigint) 3 /* 3: RtaBuilder < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 4: RtaBuilder < RtaBuilder: superclass typecheck marker */},
+const classtable_elt_t VFT_global___reachable_from_init_method_analysis_impl___RFIMAContext[56] = {
+  {(bigint) 2103 /* 0: Identity */},
+  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "RFIMAContext" /* 2: Class Name */},
+  {(bigint) 3 /* 3: RFIMAContext < Object: superclass typecheck marker */},
+  {(bigint) 75 /* 4: RFIMAContext < ReachableFromInitMethodAnalysis: superclass typecheck marker */},
+  {(bigint) 2103 /* 5: RFIMAContext < RFIMAContext: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -158389,7 +150181,7 @@ const classtable_elt_t VFT_analysis___rta_analysis___RtaBuilder[61] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: RtaBuilder < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: RFIMAContext < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -158405,6 +150197,8 @@ const classtable_elt_t VFT_analysis___rta_analysis___RtaBuilder[61] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -158418,130 +150212,90 @@ const classtable_elt_t VFT_analysis___rta_analysis___RtaBuilder[61] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: RtaBuilder < RtaBuilder: superclass init_table position */},
-  {(bigint) analysis___rta_analysis___RtaBuilder___context},
-  {(bigint) analysis___rta_analysis___RtaBuilder___program},
-  {(bigint) analysis___rta_analysis___RtaBuilder___iroutine_to_search},
-  {(bigint) analysis___rta_analysis___RtaBuilder___call_sites},
-  {(bigint) analysis___rta_analysis___RtaBuilder___called_methods},
-  {(bigint) analysis___rta_analysis___RtaBuilder___init},
-  {(bigint) analysis___rta_analysis___RtaBuilder___check_method},
-  {(bigint) analysis___rta_analysis___RtaBuilder___check_call_sites},
-  {(bigint) analysis___rta_analysis___RtaBuilder___add_instantiated_class},
-  {(bigint) analysis___rta_analysis___RtaBuilder___add_reachable_call},
-  {(bigint) analysis___rta_analysis___RtaBuilder___add_reachable_iroutine},
-  {(bigint) analysis___rta_analysis___RtaBuilder___force_some_type_analysis},
-  {(bigint) analysis___rta_analysis___RtaBuilder___work},
+  {(bigint) 0 /* 50: RFIMAContext < ReachableFromInitMethodAnalysis: superclass init_table position */},
+  {(bigint) global___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init},
+  {(bigint) global___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init},
+  {(bigint) 2 /* 53: RFIMAContext < RFIMAContext: superclass init_table position */},
+  {(bigint) global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines},
+  {(bigint) global___reachable_from_init_method_analysis_impl___RFIMAContext___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute RtaBuilder::_context */
-/* 3: Attribute RtaBuilder::_program */
-/* 4: Attribute RtaBuilder::_iroutine_to_search */
-/* 5: Attribute RtaBuilder::_call_sites */
-/* 6: Attribute RtaBuilder::_called_methods */
-void INIT_ATTRIBUTES__analysis___rta_analysis___RtaBuilder(val_t p0){
+/* 2: Attribute RFIMAContext::_reachable_from_init_iroutines */
+void INIT_ATTRIBUTES__global___reachable_from_init_method_analysis_impl___RFIMAContext(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___rta_analysis___RtaBuilder;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__global___reachable_from_init_method_analysis_impl___RFIMAContext;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//rta_analysis.nit:47 */
-  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  ATTR_analysis___rta_analysis___RtaBuilder____iroutine_to_search(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./analysis//rta_analysis.nit:48 */
-  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_analysis___rta_analysis___RtaBuilder____call_sites(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./analysis//rta_analysis.nit:49 */
+  /* global/reachable_from_init_method_analysis_impl.nit:53 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_analysis___rta_analysis___RtaBuilder____called_methods(fra.me.REG[0]) = fra.me.REG[1];
+  ATTR_global___reachable_from_init_method_analysis_impl___RFIMAContext____reachable_from_init_iroutines(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___rta_analysis___RtaBuilder(void)
+val_t NEW_global___reachable_from_init_method_analysis_impl___RFIMAContext(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
-  obj->vft = (classtable_elt_t*)VFT_analysis___rta_analysis___RtaBuilder;
+  obj = alloc(sizeof(val_t) * 3);
+  obj->vft = (classtable_elt_t*)VFT_global___reachable_from_init_method_analysis_impl___RFIMAContext;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___rta_analysis___RtaBuilder(val_t p0){
+void CHECKNEW_global___reachable_from_init_method_analysis_impl___RFIMAContext(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___rta_analysis___RtaBuilder;
+  fra.me.meth = LOCATE_CHECKNEW_global___reachable_from_init_method_analysis_impl___RFIMAContext;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_analysis___rta_analysis___RtaBuilder____context(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_context", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___rta_analysis___RtaBuilder____program(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_program", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___rta_analysis___RtaBuilder____iroutine_to_search(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_iroutine_to_search", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___rta_analysis___RtaBuilder____call_sites(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_call_sites", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___rta_analysis___RtaBuilder____called_methods(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___reachable_from_init_method_analysis_impl___RFIMAContext____reachable_from_init_iroutines(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_called_methods", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_reachable_from_init_iroutines", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_RtaBuilder_analysis___rta_analysis___RtaBuilder___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_RFIMAContext_global___reachable_from_init_method_analysis_impl___RFIMAContext___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[2] = {0, 0};
+  int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 51;
-  fra.me.meth = LOCATE_NEW_RtaBuilder_analysis___rta_analysis___RtaBuilder___init;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_RFIMAContext_global___reachable_from_init_method_analysis_impl___RFIMAContext___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./analysis//rta_analysis.nit:51 */
-  fra.me.REG[1] = NEW_analysis___rta_analysis___RtaBuilder();
-  INIT_ATTRIBUTES__analysis___rta_analysis___RtaBuilder(fra.me.REG[1]);
-  analysis___rta_analysis___RtaBuilder___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_analysis___rta_analysis___RtaBuilder(fra.me.REG[1]);
+  fra.me.REG[0] = NEW_global___reachable_from_init_method_analysis_impl___RFIMAContext();
+  INIT_ATTRIBUTES__global___reachable_from_init_method_analysis_impl___RFIMAContext(fra.me.REG[0]);
+  global___reachable_from_init_method_analysis_impl___RFIMAContext___init(fra.me.REG[0], init_table);
+  CHECKNEW_global___reachable_from_init_method_analysis_impl___RFIMAContext(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_analysis___rta_analysis___RtaVisitor[59] = {
-  {(bigint) 355 /* 0: Identity */},
-  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "RtaVisitor" /* 2: Class Name */},
-  {(bigint) 3 /* 3: RtaVisitor < Object: superclass typecheck marker */},
-  {(bigint) 223 /* 4: RtaVisitor < ICodeVisitor: superclass typecheck marker */},
-  {(bigint) 355 /* 5: RtaVisitor < RtaVisitor: superclass typecheck marker */},
+const classtable_elt_t VFT_global___reachable_from_init_method_analysis_impl___RFIMAVisitor[64] = {
+  {(bigint) 2099 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "RFIMAVisitor" /* 2: Class Name */},
+  {(bigint) 3 /* 3: RFIMAVisitor < Object: superclass typecheck marker */},
+  {(bigint) 219 /* 4: RFIMAVisitor < ICodeVisitor: superclass typecheck marker */},
+  {(bigint) 2099 /* 5: RFIMAVisitor < RFIMAVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -158554,7 +150308,7 @@ const classtable_elt_t VFT_analysis___rta_analysis___RtaVisitor[59] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: RtaVisitor < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: RFIMAVisitor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -158570,6 +150324,8 @@ const classtable_elt_t VFT_analysis___rta_analysis___RtaVisitor[59] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -158583,98 +150339,109 @@ const classtable_elt_t VFT_analysis___rta_analysis___RtaVisitor[59] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: RtaVisitor < ICodeVisitor: superclass init_table position */},
+  {(bigint) 0 /* 50: RFIMAVisitor < ICodeVisitor: superclass init_table position */},
   {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_read},
   {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_write},
   {(bigint) icode___icode_tools___ICodeVisitor___current_icode},
-  {(bigint) analysis___rta_analysis___RtaVisitor___visit_icode},
+  {(bigint) global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode},
   {(bigint) icode___icode_tools___ICodeVisitor___visit_closure_defs},
   {(bigint) icode___icode_tools___ICodeVisitor___visit_iroutine},
   {(bigint) icode___icode_tools___ICodeVisitor___init},
-  {(bigint) 2 /* 55: RtaVisitor < RtaVisitor: superclass init_table position */},
-  {(bigint) analysis___rta_analysis___RtaVisitor___builder},
+  {(bigint) 2 /* 58: RFIMAVisitor < RFIMAVisitor: superclass init_table position */},
+  {(bigint) global___reachable_from_init_method_analysis_impl___RFIMAVisitor___context},
+  {(bigint) global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program},
+  {(bigint) global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init},
+  {(bigint) global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call},
   {(bigint) icode___icode_tools___ICodeVisitor___visit_icode},
-  {(bigint) analysis___rta_analysis___RtaVisitor___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute RtaVisitor::_current_icode */
-/* 3: Attribute RtaVisitor::_builder */
-void INIT_ATTRIBUTES__analysis___rta_analysis___RtaVisitor(val_t p0){
+/* 2: Attribute RFIMAVisitor::_current_icode */
+/* 3: Attribute RFIMAVisitor::_context */
+/* 4: Attribute RFIMAVisitor::_program */
+void INIT_ATTRIBUTES__global___reachable_from_init_method_analysis_impl___RFIMAVisitor(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___rta_analysis___RtaVisitor;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__global___reachable_from_init_method_analysis_impl___RFIMAVisitor;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_tools.nit:29 */
+  /* icode/icode_tools.nit:29 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___rta_analysis___RtaVisitor(void)
+val_t NEW_global___reachable_from_init_method_analysis_impl___RFIMAVisitor(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_analysis___rta_analysis___RtaVisitor;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_global___reachable_from_init_method_analysis_impl___RFIMAVisitor;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___rta_analysis___RtaVisitor(val_t p0){
+void CHECKNEW_global___reachable_from_init_method_analysis_impl___RFIMAVisitor(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___rta_analysis___RtaVisitor;
+  fra.me.meth = LOCATE_CHECKNEW_global___reachable_from_init_method_analysis_impl___RFIMAVisitor;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_analysis___rta_analysis___RtaVisitor____builder(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_builder", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_context", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_program", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_RtaVisitor_analysis___rta_analysis___RtaVisitor___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_RFIMAVisitor_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 247;
-  fra.me.meth = LOCATE_NEW_RtaVisitor_analysis___rta_analysis___RtaVisitor___init;
+  fra.me.line = 69;
+  fra.me.meth = LOCATE_NEW_RFIMAVisitor_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//rta_analysis.nit:247 */
-  fra.me.REG[1] = NEW_analysis___rta_analysis___RtaVisitor();
-  INIT_ATTRIBUTES__analysis___rta_analysis___RtaVisitor(fra.me.REG[1]);
-  analysis___rta_analysis___RtaVisitor___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_analysis___rta_analysis___RtaVisitor(fra.me.REG[1]);
+  fra.me.REG[1] = p1;
+  /* global/reachable_from_init_method_analysis_impl.nit:69 */
+  fra.me.REG[2] = NEW_global___reachable_from_init_method_analysis_impl___RFIMAVisitor();
+  INIT_ATTRIBUTES__global___reachable_from_init_method_analysis_impl___RFIMAVisitor(fra.me.REG[2]);
+  global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_global___reachable_from_init_method_analysis_impl___RFIMAVisitor(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_analysis___reachable_as_init___ReachableAsInitAnalysis[50] = {
-  {(bigint) 83 /* 0: Identity */},
-  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReachableAsInitAnalysis" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReachableAsInitAnalysis < Object: superclass typecheck marker */},
-  {(bigint) 83 /* 4: ReachableAsInitAnalysis < ReachableAsInitAnalysis: superclass typecheck marker */},
+const classtable_elt_t VFT_global___inline_get_and_set___InlineGetSetVisitor[62] = {
+  {(bigint) 2255 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "InlineGetSetVisitor" /* 2: Class Name */},
+  {(bigint) 3 /* 3: InlineGetSetVisitor < Object: superclass typecheck marker */},
+  {(bigint) 219 /* 4: InlineGetSetVisitor < ICodeVisitor: superclass typecheck marker */},
+  {(bigint) 2255 /* 5: InlineGetSetVisitor < InlineGetSetVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -158688,7 +150455,7 @@ const classtable_elt_t VFT_analysis___reachable_as_init___ReachableAsInitAnalysi
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ReachableAsInitAnalysis < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: InlineGetSetVisitor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -158704,6 +150471,8 @@ const classtable_elt_t VFT_analysis___reachable_as_init___ReachableAsInitAnalysi
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -158717,71 +150486,112 @@ const classtable_elt_t VFT_analysis___reachable_as_init___ReachableAsInitAnalysi
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ReachableAsInitAnalysis < ReachableAsInitAnalysis: superclass init_table position */},
-  {(bigint) analysis___reachable_as_init___ReachableAsInitAnalysis___is_method_reachable_as_init},
-  {(bigint) analysis___reachable_as_init___ReachableAsInitAnalysis___init},
+  {(bigint) 0 /* 50: InlineGetSetVisitor < ICodeVisitor: superclass init_table position */},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_read},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_write},
+  {(bigint) icode___icode_tools___ICodeVisitor___current_icode},
+  {(bigint) global___inline_get_and_set___InlineGetSetVisitor___visit_icode},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_closure_defs},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_iroutine},
+  {(bigint) icode___icode_tools___ICodeVisitor___init},
+  {(bigint) 2 /* 58: InlineGetSetVisitor < InlineGetSetVisitor: superclass init_table position */},
+  {(bigint) global___inline_get_and_set___InlineGetSetVisitor___number_inlined},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_icode},
+  {(bigint) global___inline_get_and_set___InlineGetSetVisitor___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-void INIT_ATTRIBUTES__analysis___reachable_as_init___ReachableAsInitAnalysis(val_t p0){
-  struct {struct stack_frame_t me;} fra;
+/* 2: Attribute InlineGetSetVisitor::_current_icode */
+/* 3: Attribute InlineGetSetVisitor::_icb */
+/* 4: Attribute InlineGetSetVisitor::_number_inlined */
+void INIT_ATTRIBUTES__global___inline_get_and_set___InlineGetSetVisitor(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___reachable_as_init___ReachableAsInitAnalysis;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__global___inline_get_and_set___InlineGetSetVisitor;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
+  fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* global/inline_get_and_set.nit:50 */
+  REGB0 = TAG_Int(0);
+  ATTR_global___inline_get_and_set___InlineGetSetVisitor____number_inlined(fra.me.REG[0]) = REGB0;
+  /* icode/icode_tools.nit:29 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___reachable_as_init___ReachableAsInitAnalysis(void)
+val_t NEW_global___inline_get_and_set___InlineGetSetVisitor(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_analysis___reachable_as_init___ReachableAsInitAnalysis;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_global___inline_get_and_set___InlineGetSetVisitor;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___reachable_as_init___ReachableAsInitAnalysis(val_t p0){
+void CHECKNEW_global___inline_get_and_set___InlineGetSetVisitor(val_t p0){
   struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___reachable_as_init___ReachableAsInitAnalysis;
+  fra.me.meth = LOCATE_CHECKNEW_global___inline_get_and_set___InlineGetSetVisitor;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_global___inline_get_and_set___InlineGetSetVisitor____icb(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_icb", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_global___inline_get_and_set___InlineGetSetVisitor____number_inlined(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_number_inlined", LOCATE_nitc, 0);
+  }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReachableAsInitAnalysis_analysis___reachable_as_init___ReachableAsInitAnalysis___init(void){
-  struct {struct stack_frame_t me;} fra;
+val_t NEW_InlineGetSetVisitor_global___inline_get_and_set___InlineGetSetVisitor___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  int init_table[2] = {0, 0};
+  int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ReachableAsInitAnalysis_analysis___reachable_as_init___ReachableAsInitAnalysis___init;
+  fra.me.line = 79;
+  fra.me.meth = LOCATE_NEW_InlineGetSetVisitor_global___inline_get_and_set___InlineGetSetVisitor___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
+  fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_analysis___reachable_as_init___ReachableAsInitAnalysis();
-  INIT_ATTRIBUTES__analysis___reachable_as_init___ReachableAsInitAnalysis(fra.me.REG[0]);
-  analysis___reachable_as_init___ReachableAsInitAnalysis___init(fra.me.REG[0], init_table);
-  CHECKNEW_analysis___reachable_as_init___ReachableAsInitAnalysis(fra.me.REG[0]);
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* global/inline_get_and_set.nit:79 */
+  fra.me.REG[2] = NEW_global___inline_get_and_set___InlineGetSetVisitor();
+  INIT_ATTRIBUTES__global___inline_get_and_set___InlineGetSetVisitor(fra.me.REG[2]);
+  global___inline_get_and_set___InlineGetSetVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_global___inline_get_and_set___InlineGetSetVisitor(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_analysis___reachable_as_init___DefaultReachableAsInitAnalysis[52] = {
-  {(bigint) 2307 /* 0: Identity */},
-  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "DefaultReachableAsInitAnalysis" /* 2: Class Name */},
-  {(bigint) 3 /* 3: DefaultReachableAsInitAnalysis < Object: superclass typecheck marker */},
-  {(bigint) 83 /* 4: DefaultReachableAsInitAnalysis < ReachableAsInitAnalysis: superclass typecheck marker */},
-  {(bigint) 2307 /* 5: DefaultReachableAsInitAnalysis < DefaultReachableAsInitAnalysis: superclass typecheck marker */},
+const classtable_elt_t VFT_global___remove_out_of_init_get_test___IssetCounter[61] = {
+  {(bigint) 2247 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "IssetCounter" /* 2: Class Name */},
+  {(bigint) 3 /* 3: IssetCounter < Object: superclass typecheck marker */},
+  {(bigint) 219 /* 4: IssetCounter < ICodeVisitor: superclass typecheck marker */},
+  {(bigint) 2247 /* 5: IssetCounter < IssetCounter: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -158794,7 +150604,7 @@ const classtable_elt_t VFT_analysis___reachable_as_init___DefaultReachableAsInit
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: DefaultReachableAsInitAnalysis < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: IssetCounter < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -158810,6 +150620,8 @@ const classtable_elt_t VFT_analysis___reachable_as_init___DefaultReachableAsInit
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -158823,73 +150635,99 @@ const classtable_elt_t VFT_analysis___reachable_as_init___DefaultReachableAsInit
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: DefaultReachableAsInitAnalysis < ReachableAsInitAnalysis: superclass init_table position */},
-  {(bigint) analysis___reachable_as_init___DefaultReachableAsInitAnalysis___is_method_reachable_as_init},
-  {(bigint) analysis___reachable_as_init___ReachableAsInitAnalysis___init},
-  {(bigint) 2 /* 50: DefaultReachableAsInitAnalysis < DefaultReachableAsInitAnalysis: superclass init_table position */},
-  {(bigint) analysis___reachable_as_init___DefaultReachableAsInitAnalysis___init},
+  {(bigint) 0 /* 50: IssetCounter < ICodeVisitor: superclass init_table position */},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_read},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_write},
+  {(bigint) icode___icode_tools___ICodeVisitor___current_icode},
+  {(bigint) global___remove_out_of_init_get_test___IssetCounter___visit_icode},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_closure_defs},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_iroutine},
+  {(bigint) icode___icode_tools___ICodeVisitor___init},
+  {(bigint) 2 /* 58: IssetCounter < IssetCounter: superclass init_table position */},
+  {(bigint) global___remove_out_of_init_get_test___IssetCounter___nb_isset},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_icode},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-void INIT_ATTRIBUTES__analysis___reachable_as_init___DefaultReachableAsInitAnalysis(val_t p0){
-  struct {struct stack_frame_t me;} fra;
+/* 2: Attribute IssetCounter::_current_icode */
+/* 3: Attribute IssetCounter::_nb_isset */
+void INIT_ATTRIBUTES__global___remove_out_of_init_get_test___IssetCounter(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___reachable_as_init___DefaultReachableAsInitAnalysis;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__global___remove_out_of_init_get_test___IssetCounter;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
+  fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* global/remove_out_of_init_get_test.nit:59 */
+  REGB0 = TAG_Int(0);
+  ATTR_global___remove_out_of_init_get_test___IssetCounter____nb_isset(fra.me.REG[0]) = REGB0;
+  /* icode/icode_tools.nit:29 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___reachable_as_init___DefaultReachableAsInitAnalysis(void)
+val_t NEW_global___remove_out_of_init_get_test___IssetCounter(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_analysis___reachable_as_init___DefaultReachableAsInitAnalysis;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_global___remove_out_of_init_get_test___IssetCounter;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___reachable_as_init___DefaultReachableAsInitAnalysis(val_t p0){
+void CHECKNEW_global___remove_out_of_init_get_test___IssetCounter(val_t p0){
   struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___reachable_as_init___DefaultReachableAsInitAnalysis;
+  fra.me.meth = LOCATE_CHECKNEW_global___remove_out_of_init_get_test___IssetCounter;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_global___remove_out_of_init_get_test___IssetCounter____nb_isset(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_nb_isset", LOCATE_nitc, 0);
+  }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_DefaultReachableAsInitAnalysis_analysis___reachable_as_init___DefaultReachableAsInitAnalysis___init(void){
+val_t NEW_IssetCounter_icode___icode_tools___ICodeVisitor___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 60;
-  fra.me.meth = LOCATE_NEW_DefaultReachableAsInitAnalysis_analysis___reachable_as_init___DefaultReachableAsInitAnalysis___init;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_IssetCounter_icode___icode_tools___ICodeVisitor___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./analysis//reachable_as_init.nit:60 */
-  fra.me.REG[0] = NEW_analysis___reachable_as_init___DefaultReachableAsInitAnalysis();
-  INIT_ATTRIBUTES__analysis___reachable_as_init___DefaultReachableAsInitAnalysis(fra.me.REG[0]);
-  analysis___reachable_as_init___DefaultReachableAsInitAnalysis___init(fra.me.REG[0], init_table);
-  CHECKNEW_analysis___reachable_as_init___DefaultReachableAsInitAnalysis(fra.me.REG[0]);
+  fra.me.REG[0] = NEW_global___remove_out_of_init_get_test___IssetCounter();
+  INIT_ATTRIBUTES__global___remove_out_of_init_get_test___IssetCounter(fra.me.REG[0]);
+  icode___icode_tools___ICodeVisitor___init(fra.me.REG[0], init_table);
+  CHECKNEW_global___remove_out_of_init_get_test___IssetCounter(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_analysis___reachable_as_init_impl___ReachableAsInitBuilder[52] = {
-  {(bigint) 79 /* 0: Identity */},
+const classtable_elt_t VFT_global___remove_out_of_init_get_test___GetterTestRemover[61] = {
+  {(bigint) 2311 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReachableAsInitBuilder" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReachableAsInitBuilder < Object: superclass typecheck marker */},
-  {(bigint) 79 /* 4: ReachableAsInitBuilder < ReachableAsInitBuilder: superclass typecheck marker */},
+  {(bigint) "GetterTestRemover" /* 2: Class Name */},
+  {(bigint) 3 /* 3: GetterTestRemover < Object: superclass typecheck marker */},
+  {(bigint) 219 /* 4: GetterTestRemover < ICodeVisitor: superclass typecheck marker */},
+  {(bigint) 2311 /* 5: GetterTestRemover < GetterTestRemover: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -158903,7 +150741,7 @@ const classtable_elt_t VFT_analysis___reachable_as_init_impl___ReachableAsInitBu
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ReachableAsInitBuilder < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: GetterTestRemover < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -158919,6 +150757,8 @@ const classtable_elt_t VFT_analysis___reachable_as_init_impl___ReachableAsInitBu
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -158932,97 +150772,100 @@ const classtable_elt_t VFT_analysis___reachable_as_init_impl___ReachableAsInitBu
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ReachableAsInitBuilder < ReachableAsInitBuilder: superclass init_table position */},
-  {(bigint) analysis___reachable_as_init_impl___ReachableAsInitBuilder___context},
-  {(bigint) analysis___reachable_as_init_impl___ReachableAsInitBuilder___program},
-  {(bigint) analysis___reachable_as_init_impl___ReachableAsInitBuilder___work},
-  {(bigint) analysis___reachable_as_init_impl___ReachableAsInitBuilder___init},
+  {(bigint) 0 /* 50: GetterTestRemover < ICodeVisitor: superclass init_table position */},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_read},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_write},
+  {(bigint) icode___icode_tools___ICodeVisitor___current_icode},
+  {(bigint) global___remove_out_of_init_get_test___GetterTestRemover___visit_icode},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_closure_defs},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_iroutine},
+  {(bigint) icode___icode_tools___ICodeVisitor___init},
+  {(bigint) 2 /* 58: GetterTestRemover < GetterTestRemover: superclass init_table position */},
+  {(bigint) global___remove_out_of_init_get_test___GetterTestRemover___nb_optimized_isset},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_icode},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReachableAsInitBuilder::_context */
-/* 3: Attribute ReachableAsInitBuilder::_program */
-void INIT_ATTRIBUTES__analysis___reachable_as_init_impl___ReachableAsInitBuilder(val_t p0){
+/* 2: Attribute GetterTestRemover::_current_icode */
+/* 3: Attribute GetterTestRemover::_nb_optimized_isset */
+void INIT_ATTRIBUTES__global___remove_out_of_init_get_test___GetterTestRemover(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___reachable_as_init_impl___ReachableAsInitBuilder;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__global___remove_out_of_init_get_test___GetterTestRemover;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//reachable_as_init_impl.nit:24 */
-  fra.me.REG[1] = NEW_ReachableAsInitAnalysisImpl_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init();
-  ATTR_analysis___reachable_as_init_impl___ReachableAsInitBuilder____context(fra.me.REG[0]) = fra.me.REG[1];
+  /* global/remove_out_of_init_get_test.nit:73 */
+  REGB0 = TAG_Int(0);
+  ATTR_global___remove_out_of_init_get_test___GetterTestRemover____nb_optimized_isset(fra.me.REG[0]) = REGB0;
+  /* icode/icode_tools.nit:29 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___reachable_as_init_impl___ReachableAsInitBuilder(void)
+val_t NEW_global___remove_out_of_init_get_test___GetterTestRemover(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_analysis___reachable_as_init_impl___ReachableAsInitBuilder;
+  obj->vft = (classtable_elt_t*)VFT_global___remove_out_of_init_get_test___GetterTestRemover;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___reachable_as_init_impl___ReachableAsInitBuilder(val_t p0){
+void CHECKNEW_global___remove_out_of_init_get_test___GetterTestRemover(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___reachable_as_init_impl___ReachableAsInitBuilder;
+  fra.me.meth = LOCATE_CHECKNEW_global___remove_out_of_init_get_test___GetterTestRemover;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_analysis___reachable_as_init_impl___ReachableAsInitBuilder____context(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_context", LOCATE_nitc, 0);
-  }
-  REGB0 = TAG_Bool(ATTR_analysis___reachable_as_init_impl___ReachableAsInitBuilder____program(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_global___remove_out_of_init_get_test___GetterTestRemover____nb_optimized_isset(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_program", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_nb_optimized_isset", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReachableAsInitBuilder_analysis___reachable_as_init_impl___ReachableAsInitBuilder___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t NEW_GetterTestRemover_icode___icode_tools___ICodeVisitor___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[2] = {0, 0};
+  int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 36;
-  fra.me.meth = LOCATE_NEW_ReachableAsInitBuilder_analysis___reachable_as_init_impl___ReachableAsInitBuilder___init;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_GetterTestRemover_icode___icode_tools___ICodeVisitor___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./analysis//reachable_as_init_impl.nit:36 */
-  fra.me.REG[1] = NEW_analysis___reachable_as_init_impl___ReachableAsInitBuilder();
-  INIT_ATTRIBUTES__analysis___reachable_as_init_impl___ReachableAsInitBuilder(fra.me.REG[1]);
-  analysis___reachable_as_init_impl___ReachableAsInitBuilder___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_analysis___reachable_as_init_impl___ReachableAsInitBuilder(fra.me.REG[1]);
+  fra.me.REG[0] = NEW_global___remove_out_of_init_get_test___GetterTestRemover();
+  INIT_ATTRIBUTES__global___remove_out_of_init_get_test___GetterTestRemover(fra.me.REG[0]);
+  icode___icode_tools___ICodeVisitor___init(fra.me.REG[0], init_table);
+  CHECKNEW_global___remove_out_of_init_get_test___GetterTestRemover(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl[52] = {
-  {(bigint) 2055 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReachableAsInitAnalysisImpl" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReachableAsInitAnalysisImpl < Object: superclass typecheck marker */},
-  {(bigint) 83 /* 4: ReachableAsInitAnalysisImpl < ReachableAsInitAnalysis: superclass typecheck marker */},
-  {(bigint) 2055 /* 5: ReachableAsInitAnalysisImpl < ReachableAsInitAnalysisImpl: superclass typecheck marker */},
+const classtable_elt_t VFT_compiling___compiling_writer___Writer[60] = {
+  {(bigint) 11 /* 0: Identity */},
+  {(bigint) 7 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "Writer" /* 2: Class Name */},
+  {(bigint) 3 /* 3: Writer < Object: superclass typecheck marker */},
+  {(bigint) 11 /* 4: Writer < Writer: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -159035,7 +150878,7 @@ const classtable_elt_t VFT_analysis___reachable_as_init_impl___ReachableAsInitAn
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ReachableAsInitAnalysisImpl < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: Writer < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -159051,6 +150894,8 @@ const classtable_elt_t VFT_analysis___reachable_as_init_impl___ReachableAsInitAn
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -159064,89 +150909,117 @@ const classtable_elt_t VFT_analysis___reachable_as_init_impl___ReachableAsInitAn
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ReachableAsInitAnalysisImpl < ReachableAsInitAnalysis: superclass init_table position */},
-  {(bigint) analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___is_method_reachable_as_init},
-  {(bigint) analysis___reachable_as_init___ReachableAsInitAnalysis___init},
-  {(bigint) 2 /* 50: ReachableAsInitAnalysisImpl < ReachableAsInitAnalysisImpl: superclass init_table position */},
-  {(bigint) analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init},
+  {(bigint) 1 /* 50: Writer < Writer: superclass init_table position */},
+  {(bigint) compiling___compiling_writer___Writer___add},
+  {(bigint) compiling___compiling_writer___Writer___add_all},
+  {(bigint) compiling___compiling_writer___Writer___append},
+  {(bigint) compiling___compiling_writer___Writer___internal_append},
+  {(bigint) compiling___compiling_writer___Writer___sub},
+  {(bigint) compiling___compiling_writer___Writer___write_to_stream},
+  {(bigint) compiling___compiling_writer___Writer___is_frozen},
+  {(bigint) compiling___compiling_writer___Writer___freeze},
+  {(bigint) compiling___compiling_writer___Writer___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute ReachableAsInitAnalysisImpl::_methods */
-void INIT_ATTRIBUTES__analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl(val_t p0){
+/* 2: Attribute Writer::_first_sub_writer */
+/* 3: Attribute Writer::_last_sub_writer */
+/* 4: Attribute Writer::_last_string */
+/* 5: Attribute Writer::_is_writing */
+/* 6: Attribute Writer::_is_frozen */
+void INIT_ATTRIBUTES__compiling___compiling_writer___Writer(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__compiling___compiling_writer___Writer;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//reachable_as_init_impl.nit:45 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[0]) = fra.me.REG[1];
+  /* compiling/compiling_writer.nit:50 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_compiling___compiling_writer___Writer____first_sub_writer(fra.me.REG[0]) = fra.me.REG[1];
+  /* compiling/compiling_writer.nit:51 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_compiling___compiling_writer___Writer____last_sub_writer(fra.me.REG[0]) = fra.me.REG[1];
+  /* compiling/compiling_writer.nit:53 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_compiling___compiling_writer___Writer____last_string(fra.me.REG[0]) = fra.me.REG[1];
+  /* compiling/compiling_writer.nit:82 */
+  REGB0 = TAG_Bool(false);
+  ATTR_compiling___compiling_writer___Writer____is_writing(fra.me.REG[0]) = REGB0;
+  /* compiling/compiling_writer.nit:98 */
+  REGB0 = TAG_Bool(false);
+  ATTR_compiling___compiling_writer___Writer____is_frozen(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl(void)
+val_t NEW_compiling___compiling_writer___Writer(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl;
+  obj = alloc(sizeof(val_t) * 7);
+  obj->vft = (classtable_elt_t*)VFT_compiling___compiling_writer___Writer;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl(val_t p0){
+void CHECKNEW_compiling___compiling_writer___Writer(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl;
+  fra.me.meth = LOCATE_CHECKNEW_compiling___compiling_writer___Writer;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_writer___Writer____is_writing(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_methods", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_is_writing", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_writer___Writer____is_frozen(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_is_frozen", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ReachableAsInitAnalysisImpl_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init(void){
+val_t NEW_Writer_compiling___compiling_writer___Writer___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[3] = {0, 0, 0};
+  int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 52;
-  fra.me.meth = LOCATE_NEW_ReachableAsInitAnalysisImpl_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init;
+  fra.me.line = 107;
+  fra.me.meth = LOCATE_NEW_Writer_compiling___compiling_writer___Writer___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./analysis//reachable_as_init_impl.nit:52 */
-  fra.me.REG[0] = NEW_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl();
-  INIT_ATTRIBUTES__analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl(fra.me.REG[0]);
-  analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init(fra.me.REG[0], init_table);
-  CHECKNEW_analysis___reachable_as_init_impl___ReachableAsInitAnalysisImpl(fra.me.REG[0]);
+  /* compiling/compiling_writer.nit:107 */
+  fra.me.REG[0] = NEW_compiling___compiling_writer___Writer();
+  INIT_ATTRIBUTES__compiling___compiling_writer___Writer(fra.me.REG[0]);
+  compiling___compiling_writer___Writer___init(fra.me.REG[0], init_table);
+  CHECKNEW_compiling___compiling_writer___Writer(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_analysis___reachable_as_init_impl___RAIVisitor[59] = {
-  {(bigint) 2071 /* 0: Identity */},
+const classtable_elt_t VFT_compiling___compiling_writer___WriterCoreNode[55] = {
+  {(bigint) 311 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "RAIVisitor" /* 2: Class Name */},
-  {(bigint) 3 /* 3: RAIVisitor < Object: superclass typecheck marker */},
-  {(bigint) 223 /* 4: RAIVisitor < ICodeVisitor: superclass typecheck marker */},
-  {(bigint) 2071 /* 5: RAIVisitor < RAIVisitor: superclass typecheck marker */},
+  {(bigint) "WriterCoreNode" /* 2: Class Name */},
+  {(bigint) 3 /* 3: WriterCoreNode < Object: superclass typecheck marker */},
+  {(bigint) 7 /* 4: WriterCoreNode < WriterNode: superclass typecheck marker */},
+  {(bigint) 311 /* 5: WriterCoreNode < WriterCoreNode: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -159159,7 +151032,7 @@ const classtable_elt_t VFT_analysis___reachable_as_init_impl___RAIVisitor[59] =
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: RAIVisitor < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: WriterCoreNode < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -159175,6 +151048,8 @@ const classtable_elt_t VFT_analysis___reachable_as_init_impl___RAIVisitor[59] =
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -159188,98 +151063,92 @@ const classtable_elt_t VFT_analysis___reachable_as_init_impl___RAIVisitor[59] =
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: RAIVisitor < ICodeVisitor: superclass init_table position */},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_read},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_write},
-  {(bigint) icode___icode_tools___ICodeVisitor___current_icode},
-  {(bigint) analysis___reachable_as_init_impl___RAIVisitor___visit_icode},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_closure_defs},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_iroutine},
-  {(bigint) icode___icode_tools___ICodeVisitor___init},
-  {(bigint) 2 /* 55: RAIVisitor < RAIVisitor: superclass init_table position */},
-  {(bigint) analysis___reachable_as_init_impl___RAIVisitor___builder},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_icode},
-  {(bigint) analysis___reachable_as_init_impl___RAIVisitor___init},
+  {(bigint) 0 /* 50: WriterCoreNode < WriterNode: superclass init_table position */},
+  {(bigint) compiling___compiling_writer___WriterCoreNode___internal_write_to_stream},
+  {(bigint) compiling___compiling_writer___WriterNode___init},
+  {(bigint) 2 /* 53: WriterCoreNode < WriterCoreNode: superclass init_table position */},
+  {(bigint) compiling___compiling_writer___WriterCoreNode___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute RAIVisitor::_current_icode */
-/* 3: Attribute RAIVisitor::_builder */
-void INIT_ATTRIBUTES__analysis___reachable_as_init_impl___RAIVisitor(val_t p0){
+/* 2: Attribute WriterCoreNode::_next_writer */
+/* 3: Attribute WriterCoreNode::_writer */
+void INIT_ATTRIBUTES__compiling___compiling_writer___WriterCoreNode(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___reachable_as_init_impl___RAIVisitor;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__compiling___compiling_writer___WriterCoreNode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_tools.nit:29 */
+  /* compiling/compiling_writer.nit:112 */
   fra.me.REG[1] = NIT_NULL;
-  ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]) = fra.me.REG[1];
+  ATTR_compiling___compiling_writer___WriterNode____next_writer(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___reachable_as_init_impl___RAIVisitor(void)
+val_t NEW_compiling___compiling_writer___WriterCoreNode(void)
 {
   obj_t obj;
   obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_analysis___reachable_as_init_impl___RAIVisitor;
+  obj->vft = (classtable_elt_t*)VFT_compiling___compiling_writer___WriterCoreNode;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___reachable_as_init_impl___RAIVisitor(val_t p0){
+void CHECKNEW_compiling___compiling_writer___WriterCoreNode(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___reachable_as_init_impl___RAIVisitor;
+  fra.me.meth = LOCATE_CHECKNEW_compiling___compiling_writer___WriterCoreNode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_analysis___reachable_as_init_impl___RAIVisitor____builder(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_writer___WriterCoreNode____writer(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_builder", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_writer", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_RAIVisitor_analysis___reachable_as_init_impl___RAIVisitor___init(val_t p0){
+val_t NEW_WriterCoreNode_compiling___compiling_writer___WriterCoreNode___init(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 73;
-  fra.me.meth = LOCATE_NEW_RAIVisitor_analysis___reachable_as_init_impl___RAIVisitor___init;
+  fra.me.line = 126;
+  fra.me.meth = LOCATE_NEW_WriterCoreNode_compiling___compiling_writer___WriterCoreNode___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//reachable_as_init_impl.nit:73 */
-  fra.me.REG[1] = NEW_analysis___reachable_as_init_impl___RAIVisitor();
-  INIT_ATTRIBUTES__analysis___reachable_as_init_impl___RAIVisitor(fra.me.REG[1]);
-  analysis___reachable_as_init_impl___RAIVisitor___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_analysis___reachable_as_init_impl___RAIVisitor(fra.me.REG[1]);
+  /* compiling/compiling_writer.nit:126 */
+  fra.me.REG[1] = NEW_compiling___compiling_writer___WriterCoreNode();
+  INIT_ATTRIBUTES__compiling___compiling_writer___WriterCoreNode(fra.me.REG[1]);
+  compiling___compiling_writer___WriterCoreNode___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_compiling___compiling_writer___WriterCoreNode(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis[51] = {
-  {(bigint) 75 /* 0: Identity */},
-  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ReachableFromInitMethodAnalysis" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ReachableFromInitMethodAnalysis < Object: superclass typecheck marker */},
-  {(bigint) 75 /* 4: ReachableFromInitMethodAnalysis < ReachableFromInitMethodAnalysis: superclass typecheck marker */},
+const classtable_elt_t VFT_compiling___compiling_writer___WriterStrings[55] = {
+  {(bigint) 307 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "WriterStrings" /* 2: Class Name */},
+  {(bigint) 3 /* 3: WriterStrings < Object: superclass typecheck marker */},
+  {(bigint) 7 /* 4: WriterStrings < WriterNode: superclass typecheck marker */},
+  {(bigint) 307 /* 5: WriterStrings < WriterStrings: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -159293,7 +151162,7 @@ const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis___Reac
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ReachableFromInitMethodAnalysis < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: WriterStrings < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -159309,6 +151178,8 @@ const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis___Reac
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -159322,181 +151193,96 @@ const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis___Reac
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ReachableFromInitMethodAnalysis < ReachableFromInitMethodAnalysis: superclass init_table position */},
-  {(bigint) analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init},
-  {(bigint) analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_method_reachable_from_init},
-  {(bigint) analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init},
+  {(bigint) 0 /* 50: WriterStrings < WriterNode: superclass init_table position */},
+  {(bigint) compiling___compiling_writer___WriterStrings___internal_write_to_stream},
+  {(bigint) compiling___compiling_writer___WriterNode___init},
+  {(bigint) 2 /* 53: WriterStrings < WriterStrings: superclass init_table position */},
+  {(bigint) compiling___compiling_writer___WriterStrings___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-void INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis(val_t p0){
-  struct {struct stack_frame_t me;} fra;
+/* 2: Attribute WriterStrings::_next_writer */
+/* 3: Attribute WriterStrings::_string */
+/* 4: Attribute WriterStrings::_next */
+void INIT_ATTRIBUTES__compiling___compiling_writer___WriterStrings(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__compiling___compiling_writer___WriterStrings;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
+  fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* compiling/compiling_writer.nit:135 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_compiling___compiling_writer___WriterStrings____next(fra.me.REG[0]) = fra.me.REG[1];
+  /* compiling/compiling_writer.nit:112 */
+  fra.me.REG[1] = NIT_NULL;
+  ATTR_compiling___compiling_writer___WriterNode____next_writer(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis(void)
+val_t NEW_compiling___compiling_writer___WriterStrings(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_compiling___compiling_writer___WriterStrings;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_ReachableFromInitMethodAnalysis_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init(void){
+void CHECKNEW_compiling___compiling_writer___WriterStrings(val_t p0){
   struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
-  int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ReachableFromInitMethodAnalysis_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init;
+  fra.me.meth = LOCATE_CHECKNEW_compiling___compiling_writer___WriterStrings;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis();
-  INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis(fra.me.REG[0]);
-  analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init(fra.me.REG[0], init_table);
-  CHECKNEW_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis[53] = {
-  {(bigint) 2303 /* 0: Identity */},
-  {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "DefaultReachableFromInitMethodAnalysis" /* 2: Class Name */},
-  {(bigint) 3 /* 3: DefaultReachableFromInitMethodAnalysis < Object: superclass typecheck marker */},
-  {(bigint) 75 /* 4: DefaultReachableFromInitMethodAnalysis < ReachableFromInitMethodAnalysis: superclass typecheck marker */},
-  {(bigint) 2303 /* 5: DefaultReachableFromInitMethodAnalysis < DefaultReachableFromInitMethodAnalysis: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: DefaultReachableFromInitMethodAnalysis < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: DefaultReachableFromInitMethodAnalysis < ReachableFromInitMethodAnalysis: superclass init_table position */},
-  {(bigint) analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init},
-  {(bigint) analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___is_method_reachable_from_init},
-  {(bigint) analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init},
-  {(bigint) 2 /* 51: DefaultReachableFromInitMethodAnalysis < DefaultReachableFromInitMethodAnalysis: superclass init_table position */},
-  {(bigint) analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-void INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_writer___WriterStrings____string(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_string", LOCATE_nitc, 0);
+  }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_DefaultReachableFromInitMethodAnalysis_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init(void){
-  struct {struct stack_frame_t me;} fra;
+val_t NEW_WriterStrings_compiling___compiling_writer___WriterStrings___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 68;
-  fra.me.meth = LOCATE_NEW_DefaultReachableFromInitMethodAnalysis_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init;
+  fra.me.line = 138;
+  fra.me.meth = LOCATE_NEW_WriterStrings_compiling___compiling_writer___WriterStrings___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
+  fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  /* ./analysis//reachable_from_init_method_analysis.nit:68 */
-  fra.me.REG[0] = NEW_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis();
-  INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis(fra.me.REG[0]);
-  analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init(fra.me.REG[0], init_table);
-  CHECKNEW_analysis___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis(fra.me.REG[0]);
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* compiling/compiling_writer.nit:138 */
+  fra.me.REG[1] = NEW_compiling___compiling_writer___WriterStrings();
+  INIT_ATTRIBUTES__compiling___compiling_writer___WriterStrings(fra.me.REG[1]);
+  compiling___compiling_writer___WriterStrings___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_compiling___compiling_writer___WriterStrings(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder[52] = {
-  {(bigint) 87 /* 0: Identity */},
-  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "RFIMABuilder" /* 2: Class Name */},
-  {(bigint) 3 /* 3: RFIMABuilder < Object: superclass typecheck marker */},
-  {(bigint) 87 /* 4: RFIMABuilder < RFIMABuilder: superclass typecheck marker */},
+const classtable_elt_t VFT_compiling___compiling_base___CProgram[61] = {
+  {(bigint) 287 /* 0: Identity */},
+  {(bigint) 8 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "CProgram" /* 2: Class Name */},
+  {(bigint) 3 /* 3: CProgram < Object: superclass typecheck marker */},
+  {(bigint) 287 /* 4: CProgram < CProgram: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -159510,7 +151296,7 @@ const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis_impl__
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: RFIMABuilder < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: CProgram < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -159526,6 +151312,8 @@ const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis_impl__
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -159539,97 +151327,134 @@ const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis_impl__
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: RFIMABuilder < RFIMABuilder: superclass init_table position */},
-  {(bigint) analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___program},
-  {(bigint) analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___context},
-  {(bigint) analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___init},
-  {(bigint) analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work},
+  {(bigint) 1 /* 50: CProgram < CProgram: superclass init_table position */},
+  {(bigint) compiling___compiling_base___CProgram___init},
+  {(bigint) compiling___compiling_base___CProgram___program},
+  {(bigint) compiling___compiling_base___CProgram___files},
+  {(bigint) compiling___compiling_base___CProgram___include_dirs},
+  {(bigint) compiling___compiling_base___CProgram___build_file},
+  {(bigint) compiling___compiling_base___CProgram___compdir},
+  {(bigint) compiling___compiling_base___CProgram___module_header_name},
+  {(bigint) compiling___compiling_base___CProgram___get_file_ending},
+  {(bigint) compiling___compiling_base___CProgram___generate_build_file},
+  {(bigint) compiling___compiling_base___CProgram___run_c_compiler},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute RFIMABuilder::_program */
-/* 3: Attribute RFIMABuilder::_context */
-void INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis_impl___RFIMABuilder(val_t p0){
+/* 2: Attribute CProgram::_program */
+/* 3: Attribute CProgram::_files */
+/* 4: Attribute CProgram::_include_dirs */
+/* 5: Attribute CProgram::_build_file */
+/* 6: Attribute CProgram::_compdir */
+/* 7: Attribute CProgram::_module_include */
+void INIT_ATTRIBUTES__compiling___compiling_base___CProgram(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis_impl___RFIMABuilder;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__compiling___compiling_base___CProgram;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:26 */
-  fra.me.REG[1] = NEW_RFIMAContext_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init();
-  ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder____context(fra.me.REG[0]) = fra.me.REG[1];
+  /* compiling/compiling_base.nit:53 */
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
+  ATTR_compiling___compiling_base___CProgram____files(fra.me.REG[0]) = fra.me.REG[1];
+  /* compiling/compiling_base.nit:56 */
+  fra.me.REG[1] = NEW_ArraySet_standard___collection___array___ArraySet___init();
+  ATTR_compiling___compiling_base___CProgram____include_dirs(fra.me.REG[0]) = fra.me.REG[1];
+  /* compiling/compiling_base.nit:76 */
+  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
+  ATTR_compiling___compiling_base___CProgram____module_include(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder(void)
+val_t NEW_compiling___compiling_base___CProgram(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder;
+  obj = alloc(sizeof(val_t) * 8);
+  obj->vft = (classtable_elt_t*)VFT_compiling___compiling_base___CProgram;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder(val_t p0){
+void CHECKNEW_compiling___compiling_base___CProgram(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder;
+  fra.me.meth = LOCATE_CHECKNEW_compiling___compiling_base___CProgram;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____program(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_program", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder____context(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____files(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_context", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_files", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____include_dirs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_include_dirs", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____build_file(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_build_file", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____compdir(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_compdir", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CProgram____module_include(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_module_include", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_RFIMABuilder_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___init(val_t p0){
+val_t NEW_CProgram_compiling___compiling_base___CProgram___init(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 28;
-  fra.me.meth = LOCATE_NEW_RFIMABuilder_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___init;
+  fra.me.line = 42;
+  fra.me.meth = LOCATE_NEW_CProgram_compiling___compiling_base___CProgram___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:28 */
-  fra.me.REG[1] = NEW_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder();
-  INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis_impl___RFIMABuilder(fra.me.REG[1]);
-  analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder(fra.me.REG[1]);
+  /* compiling/compiling_base.nit:42 */
+  fra.me.REG[1] = NEW_compiling___compiling_base___CProgram();
+  INIT_ATTRIBUTES__compiling___compiling_base___CProgram(fra.me.REG[1]);
+  compiling___compiling_base___CProgram___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_compiling___compiling_base___CProgram(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis_impl___RFIMAContext[53] = {
-  {(bigint) 2067 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "RFIMAContext" /* 2: Class Name */},
-  {(bigint) 3 /* 3: RFIMAContext < Object: superclass typecheck marker */},
-  {(bigint) 75 /* 4: RFIMAContext < ReachableFromInitMethodAnalysis: superclass typecheck marker */},
-  {(bigint) 2067 /* 5: RFIMAContext < RFIMAContext: superclass typecheck marker */},
+const classtable_elt_t VFT_compiling___compiling_base___CompilerVisitor[75] = {
+  {(bigint) 267 /* 0: Identity */},
+  {(bigint) 12 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "CompilerVisitor" /* 2: Class Name */},
+  {(bigint) 3 /* 3: CompilerVisitor < Object: superclass typecheck marker */},
+  {(bigint) 267 /* 4: CompilerVisitor < CompilerVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -159642,7 +151467,7 @@ const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis_impl__
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: RFIMAContext < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: CompilerVisitor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -159658,6 +151483,8 @@ const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis_impl__
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -159671,89 +151498,171 @@ const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis_impl__
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: RFIMAContext < ReachableFromInitMethodAnalysis: superclass init_table position */},
-  {(bigint) analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init},
-  {(bigint) analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init},
-  {(bigint) analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init},
-  {(bigint) 2 /* 51: RFIMAContext < RFIMAContext: superclass init_table position */},
-  {(bigint) analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines},
+  {(bigint) 1 /* 50: CompilerVisitor < CompilerVisitor: superclass init_table position */},
+  {(bigint) compiling___compiling_base___CompilerVisitor___add_decl},
+  {(bigint) compiling___compiling_base___CompilerVisitor___add_instr},
+  {(bigint) compiling___compiling_base___CompilerVisitor___add_indent},
+  {(bigint) compiling___compiling_base___CompilerVisitor___add_line_to},
+  {(bigint) compiling___compiling_base___CompilerVisitor___add_assignment},
+  {(bigint) compiling___compiling_base___CompilerVisitor___new_number},
+  {(bigint) compiling___compiling_base___CompilerVisitor___indent},
+  {(bigint) compiling___compiling_base___CompilerVisitor___unindent},
+  {(bigint) compiling___compiling_base___CompilerVisitor___mmmodule},
+  {(bigint) compiling___compiling_base___CompilerVisitor___header_writer},
+  {(bigint) compiling___compiling_base___CompilerVisitor___header_writer__eq},
+  {(bigint) compiling___compiling_base___CompilerVisitor___writer},
+  {(bigint) compiling___compiling_base___CompilerVisitor___writer__eq},
+  {(bigint) compiling___compiling_base___CompilerVisitor___decl_writer},
+  {(bigint) compiling___compiling_base___CompilerVisitor___decl_writer__eq},
+  {(bigint) compiling___compiling_base___CompilerVisitor___top_writer},
+  {(bigint) compiling___compiling_base___CompilerVisitor___top_writer__eq},
+  {(bigint) compiling___compiling_base___CompilerVisitor___top_decl_writer},
+  {(bigint) compiling___compiling_base___CompilerVisitor___top_decl_writer__eq},
+  {(bigint) compiling___compiling_base___CompilerVisitor___indent_level},
+  {(bigint) compiling___compiling_base___CompilerVisitor___indent_level__eq},
+  {(bigint) compiling___compiling_base___CompilerVisitor___program},
+  {(bigint) compiling___compiling_base___CompilerVisitor___cprogram},
+  {(bigint) compiling___compiling_base___CompilerVisitor___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute RFIMAContext::_reachable_from_init_iroutines */
-void INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis_impl___RFIMAContext(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+/* 2: Attribute CompilerVisitor::_number_cpt */
+/* 3: Attribute CompilerVisitor::_mmmodule */
+/* 4: Attribute CompilerVisitor::_header_writer */
+/* 5: Attribute CompilerVisitor::_writer */
+/* 6: Attribute CompilerVisitor::_decl_writer */
+/* 7: Attribute CompilerVisitor::_top_writer */
+/* 8: Attribute CompilerVisitor::_top_decl_writer */
+/* 9: Attribute CompilerVisitor::_indent_level */
+/* 10: Attribute CompilerVisitor::_program */
+/* 11: Attribute CompilerVisitor::_cprogram */
+void INIT_ATTRIBUTES__compiling___compiling_base___CompilerVisitor(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis_impl___RFIMAContext;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__compiling___compiling_base___CompilerVisitor;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:53 */
-  fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
-  ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAContext____reachable_from_init_iroutines(fra.me.REG[0]) = fra.me.REG[1];
+  /* compiling/compiling_base.nit:184 */
+  REGB0 = TAG_Int(0);
+  ATTR_compiling___compiling_base___CompilerVisitor____number_cpt(fra.me.REG[0]) = REGB0;
+  /* compiling/compiling_base.nit:216 */
+  REGB0 = TAG_Int(0);
+  ATTR_compiling___compiling_base___CompilerVisitor____indent_level(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___reachable_from_init_method_analysis_impl___RFIMAContext(void)
+val_t NEW_compiling___compiling_base___CompilerVisitor(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_analysis___reachable_from_init_method_analysis_impl___RFIMAContext;
+  obj = alloc(sizeof(val_t) * 12);
+  obj->vft = (classtable_elt_t*)VFT_compiling___compiling_base___CompilerVisitor;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___reachable_from_init_method_analysis_impl___RFIMAContext(val_t p0){
+void CHECKNEW_compiling___compiling_base___CompilerVisitor(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___reachable_from_init_method_analysis_impl___RFIMAContext;
+  fra.me.meth = LOCATE_CHECKNEW_compiling___compiling_base___CompilerVisitor;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAContext____reachable_from_init_iroutines(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____number_cpt(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_reachable_from_init_iroutines", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_number_cpt", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____mmmodule(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____header_writer(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_header_writer", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____writer(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_writer", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____decl_writer(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_decl_writer", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____top_writer(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_top_writer", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____top_decl_writer(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_top_decl_writer", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____indent_level(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_indent_level", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____program(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_program", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_compiling___compiling_base___CompilerVisitor____cprogram(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_cprogram", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_RFIMAContext_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init(void){
-  struct {struct stack_frame_t me;} fra;
+val_t NEW_CompilerVisitor_compiling___compiling_base___CompilerVisitor___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  int init_table[3] = {0, 0, 0};
+  int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_RFIMAContext_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init;
+  fra.me.line = 224;
+  fra.me.meth = LOCATE_NEW_CompilerVisitor_compiling___compiling_base___CompilerVisitor___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
+  fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_analysis___reachable_from_init_method_analysis_impl___RFIMAContext();
-  INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis_impl___RFIMAContext(fra.me.REG[0]);
-  analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___init(fra.me.REG[0], init_table);
-  CHECKNEW_analysis___reachable_from_init_method_analysis_impl___RFIMAContext(fra.me.REG[0]);
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* compiling/compiling_base.nit:224 */
+  fra.me.REG[2] = NEW_compiling___compiling_base___CompilerVisitor();
+  INIT_ATTRIBUTES__compiling___compiling_base___CompilerVisitor(fra.me.REG[2]);
+  compiling___compiling_base___CompilerVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_compiling___compiling_base___CompilerVisitor(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor[61] = {
-  {(bigint) 2063 /* 0: Identity */},
-  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "RFIMAVisitor" /* 2: Class Name */},
-  {(bigint) 3 /* 3: RFIMAVisitor < Object: superclass typecheck marker */},
-  {(bigint) 223 /* 4: RFIMAVisitor < ICodeVisitor: superclass typecheck marker */},
-  {(bigint) 2063 /* 5: RFIMAVisitor < RFIMAVisitor: superclass typecheck marker */},
+const classtable_elt_t VFT_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor[68] = {
+  {(bigint) 2267 /* 0: Identity */},
+  {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "IRegisterSlotAllocationVisitor" /* 2: Class Name */},
+  {(bigint) 3 /* 3: IRegisterSlotAllocationVisitor < Object: superclass typecheck marker */},
+  {(bigint) 219 /* 4: IRegisterSlotAllocationVisitor < ICodeVisitor: superclass typecheck marker */},
+  {(bigint) 2267 /* 5: IRegisterSlotAllocationVisitor < IRegisterSlotAllocationVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -159766,7 +151675,7 @@ const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis_impl__
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: RFIMAVisitor < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: IRegisterSlotAllocationVisitor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -159782,6 +151691,8 @@ const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis_impl__
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -159795,109 +151706,167 @@ const classtable_elt_t VFT_analysis___reachable_from_init_method_analysis_impl__
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: RFIMAVisitor < ICodeVisitor: superclass init_table position */},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_read},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_write},
+  {(bigint) 0 /* 50: IRegisterSlotAllocationVisitor < ICodeVisitor: superclass init_table position */},
+  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_read},
+  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_write},
   {(bigint) icode___icode_tools___ICodeVisitor___current_icode},
-  {(bigint) analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_closure_defs},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_iroutine},
+  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode},
+  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs},
+  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine},
   {(bigint) icode___icode_tools___ICodeVisitor___init},
-  {(bigint) 2 /* 55: RFIMAVisitor < RFIMAVisitor: superclass init_table position */},
-  {(bigint) analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___context},
-  {(bigint) analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program},
-  {(bigint) analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init},
-  {(bigint) analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call},
+  {(bigint) 2 /* 58: IRegisterSlotAllocationVisitor < IRegisterSlotAllocationVisitor: superclass init_table position */},
+  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality},
+  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free},
   {(bigint) icode___icode_tools___ICodeVisitor___visit_icode},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_closure_defs},
+  {(bigint) icode___icode_tools___ICodeVisitor___visit_iroutine},
+  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___register},
+  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free},
+  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___iroutine_slot_allocation},
+  {(bigint) analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute RFIMAVisitor::_current_icode */
-/* 3: Attribute RFIMAVisitor::_context */
-/* 4: Attribute RFIMAVisitor::_program */
-void INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor(val_t p0){
+/* 2: Attribute IRegisterSlotAllocationVisitor::_current_icode */
+/* 3: Attribute IRegisterSlotAllocationVisitor::_pass */
+/* 4: Attribute IRegisterSlotAllocationVisitor::_current_rank */
+/* 5: Attribute IRegisterSlotAllocationVisitor::_max_rank */
+/* 6: Attribute IRegisterSlotAllocationVisitor::_deferred_list */
+/* 7: Attribute IRegisterSlotAllocationVisitor::_current_ir */
+/* 8: Attribute IRegisterSlotAllocationVisitor::_global_slots */
+/* 9: Attribute IRegisterSlotAllocationVisitor::_std_slots */
+/* 10: Attribute IRegisterSlotAllocationVisitor::_tag_slots */
+void INIT_ATTRIBUTES__analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./icode//icode_tools.nit:29 */
+  /* analysis/allocate_iregister_slots.nit:34 */
+  REGB0 = TAG_Int(0);
+  ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra.me.REG[0]) = REGB0;
+  /* analysis/allocate_iregister_slots.nit:85 */
+  REGB0 = TAG_Int(0);
+  ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra.me.REG[0]) = REGB0;
+  /* analysis/allocate_iregister_slots.nit:88 */
+  REGB0 = TAG_Int(0);
+  ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra.me.REG[0]) = REGB0;
+  /* analysis/allocate_iregister_slots.nit:92 */
+  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
+  ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra.me.REG[0]) = fra.me.REG[1];
+  /* analysis/allocate_iregister_slots.nit:178 */
+  fra.me.REG[1] = NEW_SlotGroup_analysis___allocate_iregister_slots___SlotGroup___init();
+  ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra.me.REG[0]) = fra.me.REG[1];
+  /* analysis/allocate_iregister_slots.nit:185 */
+  fra.me.REG[1] = NEW_SlotGroup_analysis___allocate_iregister_slots___SlotGroup___init();
+  ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra.me.REG[0]) = fra.me.REG[1];
+  /* icode/icode_tools.nit:29 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor(void)
+val_t NEW_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor;
+  obj = alloc(sizeof(val_t) * 11);
+  obj->vft = (classtable_elt_t*)VFT_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor(val_t p0){
+void CHECKNEW_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor;
+  fra.me.meth = LOCATE_CHECKNEW_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_context", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_pass", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_program", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_max_rank", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_deferred_list", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_current_ir", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_global_slots", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_std_slots", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_tag_slots", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_RFIMAVisitor_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+val_t NEW_IRegisterSlotAllocationVisitor_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___init(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 69;
-  fra.me.meth = LOCATE_NEW_RFIMAVisitor_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init;
+  fra.me.line = 233;
+  fra.me.meth = LOCATE_NEW_IRegisterSlotAllocationVisitor_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
+  fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./analysis//reachable_from_init_method_analysis_impl.nit:69 */
-  fra.me.REG[2] = NEW_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor();
-  INIT_ATTRIBUTES__analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor(fra.me.REG[2]);
-  analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor(fra.me.REG[2]);
+  /* analysis/allocate_iregister_slots.nit:233 */
+  fra.me.REG[1] = NEW_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor();
+  INIT_ATTRIBUTES__analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor(fra.me.REG[1]);
+  analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___init(fra.me.REG[1], fra.me.REG[0], init_table);
+  CHECKNEW_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
+  return fra.me.REG[1];
 }
-const classtable_elt_t VFT_analysis___inline_get_and_set___InlineGetSetVisitor[59] = {
-  {(bigint) 2219 /* 0: Identity */},
-  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "InlineGetSetVisitor" /* 2: Class Name */},
-  {(bigint) 3 /* 3: InlineGetSetVisitor < Object: superclass typecheck marker */},
-  {(bigint) 223 /* 4: InlineGetSetVisitor < ICodeVisitor: superclass typecheck marker */},
-  {(bigint) 2219 /* 5: InlineGetSetVisitor < InlineGetSetVisitor: superclass typecheck marker */},
+const classtable_elt_t VFT_analysis___allocate_iregister_slots___SlotGroup[54] = {
+  {(bigint) 47 /* 0: Identity */},
+  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "SlotGroup" /* 2: Class Name */},
+  {(bigint) 3 /* 3: SlotGroup < Object: superclass typecheck marker */},
+  {(bigint) 47 /* 4: SlotGroup < SlotGroup: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -159910,7 +151879,7 @@ const classtable_elt_t VFT_analysis___inline_get_and_set___InlineGetSetVisitor[5
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: InlineGetSetVisitor < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: SlotGroup < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -159926,6 +151895,8 @@ const classtable_elt_t VFT_analysis___inline_get_and_set___InlineGetSetVisitor[5
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -159939,111 +151910,98 @@ const classtable_elt_t VFT_analysis___inline_get_and_set___InlineGetSetVisitor[5
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: InlineGetSetVisitor < ICodeVisitor: superclass init_table position */},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_read},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_write},
-  {(bigint) icode___icode_tools___ICodeVisitor___current_icode},
-  {(bigint) analysis___inline_get_and_set___InlineGetSetVisitor___visit_icode},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_closure_defs},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_iroutine},
-  {(bigint) icode___icode_tools___ICodeVisitor___init},
-  {(bigint) 2 /* 55: InlineGetSetVisitor < InlineGetSetVisitor: superclass init_table position */},
-  {(bigint) analysis___inline_get_and_set___InlineGetSetVisitor___number_inlined},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_icode},
-  {(bigint) analysis___inline_get_and_set___InlineGetSetVisitor___init},
+  {(bigint) 1 /* 50: SlotGroup < SlotGroup: superclass init_table position */},
+  {(bigint) analysis___allocate_iregister_slots___SlotGroup___register},
+  {(bigint) analysis___allocate_iregister_slots___SlotGroup___free},
+  {(bigint) analysis___allocate_iregister_slots___SlotGroup___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute InlineGetSetVisitor::_current_icode */
-/* 3: Attribute InlineGetSetVisitor::_icb */
-/* 4: Attribute InlineGetSetVisitor::_number_inlined */
-void INIT_ATTRIBUTES__analysis___inline_get_and_set___InlineGetSetVisitor(val_t p0){
+/* 2: Attribute SlotGroup::_free */
+/* 3: Attribute SlotGroup::_next_index */
+void INIT_ATTRIBUTES__analysis___allocate_iregister_slots___SlotGroup(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___inline_get_and_set___InlineGetSetVisitor;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___allocate_iregister_slots___SlotGroup;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//inline_get_and_set.nit:50 */
+  /* analysis/allocate_iregister_slots.nit:243 */
+  fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
+  ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra.me.REG[0]) = fra.me.REG[1];
+  /* analysis/allocate_iregister_slots.nit:246 */
   REGB0 = TAG_Int(0);
-  ATTR_analysis___inline_get_and_set___InlineGetSetVisitor____number_inlined(fra.me.REG[0]) = REGB0;
-  /* ./icode//icode_tools.nit:29 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]) = fra.me.REG[1];
+  ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___inline_get_and_set___InlineGetSetVisitor(void)
+val_t NEW_analysis___allocate_iregister_slots___SlotGroup(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 5);
-  obj->vft = (classtable_elt_t*)VFT_analysis___inline_get_and_set___InlineGetSetVisitor;
+  obj = alloc(sizeof(val_t) * 4);
+  obj->vft = (classtable_elt_t*)VFT_analysis___allocate_iregister_slots___SlotGroup;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___inline_get_and_set___InlineGetSetVisitor(val_t p0){
+void CHECKNEW_analysis___allocate_iregister_slots___SlotGroup(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___inline_get_and_set___InlineGetSetVisitor;
+  fra.me.meth = LOCATE_CHECKNEW_analysis___allocate_iregister_slots___SlotGroup;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_analysis___inline_get_and_set___InlineGetSetVisitor____icb(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_icb", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_free", LOCATE_nitc, 0);
   }
-  REGB0 = TAG_Bool(ATTR_analysis___inline_get_and_set___InlineGetSetVisitor____number_inlined(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_number_inlined", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_next_index", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_InlineGetSetVisitor_analysis___inline_get_and_set___InlineGetSetVisitor___init(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+val_t NEW_SlotGroup_analysis___allocate_iregister_slots___SlotGroup___init(void){
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  int init_table[3] = {0, 0, 0};
+  int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 79;
-  fra.me.meth = LOCATE_NEW_InlineGetSetVisitor_analysis___inline_get_and_set___InlineGetSetVisitor___init;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_NEW_SlotGroup_analysis___allocate_iregister_slots___SlotGroup___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./analysis//inline_get_and_set.nit:79 */
-  fra.me.REG[2] = NEW_analysis___inline_get_and_set___InlineGetSetVisitor();
-  INIT_ATTRIBUTES__analysis___inline_get_and_set___InlineGetSetVisitor(fra.me.REG[2]);
-  analysis___inline_get_and_set___InlineGetSetVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
-  CHECKNEW_analysis___inline_get_and_set___InlineGetSetVisitor(fra.me.REG[2]);
+  fra.me.REG[0] = NEW_analysis___allocate_iregister_slots___SlotGroup();
+  INIT_ATTRIBUTES__analysis___allocate_iregister_slots___SlotGroup(fra.me.REG[0]);
+  analysis___allocate_iregister_slots___SlotGroup___init(fra.me.REG[0], init_table);
+  CHECKNEW_analysis___allocate_iregister_slots___SlotGroup(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
+  return fra.me.REG[0];
 }
-const classtable_elt_t VFT_analysis___remove_out_of_init_get_test___IssetCounter[58] = {
-  {(bigint) 2211 /* 0: Identity */},
-  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "IssetCounter" /* 2: Class Name */},
-  {(bigint) 3 /* 3: IssetCounter < Object: superclass typecheck marker */},
-  {(bigint) 223 /* 4: IssetCounter < ICodeVisitor: superclass typecheck marker */},
-  {(bigint) 2211 /* 5: IssetCounter < IssetCounter: superclass typecheck marker */},
+const classtable_elt_t VFT_analysis___icode_dump___ICodeDumper[64] = {
+  {(bigint) 227 /* 0: Identity */},
+  {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "ICodeDumper" /* 2: Class Name */},
+  {(bigint) 3 /* 3: ICodeDumper < Object: superclass typecheck marker */},
+  {(bigint) 227 /* 4: ICodeDumper < ICodeDumper: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -160056,7 +152014,7 @@ const classtable_elt_t VFT_analysis___remove_out_of_init_get_test___IssetCounter
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: IssetCounter < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: ICodeDumper < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -160072,6 +152030,8 @@ const classtable_elt_t VFT_analysis___remove_out_of_init_get_test___IssetCounter
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -160085,99 +152045,161 @@ const classtable_elt_t VFT_analysis___remove_out_of_init_get_test___IssetCounter
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: IssetCounter < ICodeVisitor: superclass init_table position */},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_read},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_write},
-  {(bigint) icode___icode_tools___ICodeVisitor___current_icode},
-  {(bigint) analysis___remove_out_of_init_get_test___IssetCounter___visit_icode},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_closure_defs},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_iroutine},
-  {(bigint) icode___icode_tools___ICodeVisitor___init},
-  {(bigint) 2 /* 55: IssetCounter < IssetCounter: superclass init_table position */},
-  {(bigint) analysis___remove_out_of_init_get_test___IssetCounter___nb_isset},
-  {(bigint) icode___icode_tools___ICodeVisitor___visit_icode},
+  {(bigint) 1 /* 50: ICodeDumper < ICodeDumper: superclass init_table position */},
+  {(bigint) analysis___icode_dump___ICodeDumper___dump_locations},
+  {(bigint) analysis___icode_dump___ICodeDumper___dump_line_numbers},
+  {(bigint) analysis___icode_dump___ICodeDumper___init},
+  {(bigint) analysis___icode_dump___ICodeDumper___register},
+  {(bigint) analysis___icode_dump___ICodeDumper___register_all},
+  {(bigint) analysis___icode_dump___ICodeDumper___closdecl},
+  {(bigint) analysis___icode_dump___ICodeDumper___lab},
+  {(bigint) analysis___icode_dump___ICodeDumper___line},
+  {(bigint) analysis___icode_dump___ICodeDumper___has_lab},
+  {(bigint) analysis___icode_dump___ICodeDumper___write},
+  {(bigint) analysis___icode_dump___ICodeDumper___indent_level},
+  {(bigint) analysis___icode_dump___ICodeDumper___indent},
+  {(bigint) analysis___icode_dump___ICodeDumper___unindent},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute IssetCounter::_current_icode */
-/* 3: Attribute IssetCounter::_nb_isset */
-void INIT_ATTRIBUTES__analysis___remove_out_of_init_get_test___IssetCounter(val_t p0){
+/* 2: Attribute ICodeDumper::_dump_locations */
+/* 3: Attribute ICodeDumper::_dump_line_numbers */
+/* 4: Attribute ICodeDumper::_ids */
+/* 5: Attribute ICodeDumper::_last_value */
+/* 6: Attribute ICodeDumper::_last_clos */
+/* 7: Attribute ICodeDumper::_last_label */
+/* 8: Attribute ICodeDumper::_last_line */
+/* 9: Attribute ICodeDumper::_indent_level */
+void INIT_ATTRIBUTES__analysis___icode_dump___ICodeDumper(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___remove_out_of_init_get_test___IssetCounter;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___icode_dump___ICodeDumper;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//remove_out_of_init_get_test.nit:59 */
+  /* analysis/icode_dump.nit:70 */
+  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
+  ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0]) = fra.me.REG[1];
+  /* analysis/icode_dump.nit:71 */
   REGB0 = TAG_Int(0);
-  ATTR_analysis___remove_out_of_init_get_test___IssetCounter____nb_isset(fra.me.REG[0]) = REGB0;
-  /* ./icode//icode_tools.nit:29 */
-  fra.me.REG[1] = NIT_NULL;
-  ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]) = fra.me.REG[1];
+  ATTR_analysis___icode_dump___ICodeDumper____last_value(fra.me.REG[0]) = REGB0;
+  /* analysis/icode_dump.nit:118 */
+  REGB0 = TAG_Int(0);
+  ATTR_analysis___icode_dump___ICodeDumper____last_clos(fra.me.REG[0]) = REGB0;
+  /* analysis/icode_dump.nit:134 */
+  REGB0 = TAG_Int(0);
+  ATTR_analysis___icode_dump___ICodeDumper____last_label(fra.me.REG[0]) = REGB0;
+  /* analysis/icode_dump.nit:149 */
+  REGB0 = TAG_Int(0);
+  ATTR_analysis___icode_dump___ICodeDumper____last_line(fra.me.REG[0]) = REGB0;
+  /* analysis/icode_dump.nit:178 */
+  REGB0 = TAG_Int(0);
+  ATTR_analysis___icode_dump___ICodeDumper____indent_level(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___remove_out_of_init_get_test___IssetCounter(void)
+val_t NEW_analysis___icode_dump___ICodeDumper(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_analysis___remove_out_of_init_get_test___IssetCounter;
+  obj = alloc(sizeof(val_t) * 10);
+  obj->vft = (classtable_elt_t*)VFT_analysis___icode_dump___ICodeDumper;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___remove_out_of_init_get_test___IssetCounter(val_t p0){
+void CHECKNEW_analysis___icode_dump___ICodeDumper(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___remove_out_of_init_get_test___IssetCounter;
+  fra.me.meth = LOCATE_CHECKNEW_analysis___icode_dump___ICodeDumper;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_analysis___remove_out_of_init_get_test___IssetCounter____nb_isset(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____dump_locations(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_nb_isset", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_dump_locations", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____dump_line_numbers(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_dump_line_numbers", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_ids", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____last_value(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_last_value", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____last_clos(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_last_clos", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____last_label(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_last_label", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____last_line(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_last_line", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_analysis___icode_dump___ICodeDumper____indent_level(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_indent_level", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_IssetCounter_icode___icode_tools___ICodeVisitor___init(void){
+val_t NEW_ICodeDumper_analysis___icode_dump___ICodeDumper___init(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t REGB1;
   val_t tmp;
-  int init_table[3] = {0, 0, 0};
+  int init_table[2] = {0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_IssetCounter_icode___icode_tools___ICodeVisitor___init;
+  fra.me.line = 73;
+  fra.me.meth = LOCATE_NEW_ICodeDumper_analysis___icode_dump___ICodeDumper___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_analysis___remove_out_of_init_get_test___IssetCounter();
-  INIT_ATTRIBUTES__analysis___remove_out_of_init_get_test___IssetCounter(fra.me.REG[0]);
-  icode___icode_tools___ICodeVisitor___init(fra.me.REG[0], init_table);
-  CHECKNEW_analysis___remove_out_of_init_get_test___IssetCounter(fra.me.REG[0]);
+  REGB0 = p0;
+  REGB1 = p1;
+  /* analysis/icode_dump.nit:73 */
+  fra.me.REG[0] = NEW_analysis___icode_dump___ICodeDumper();
+  INIT_ATTRIBUTES__analysis___icode_dump___ICodeDumper(fra.me.REG[0]);
+  analysis___icode_dump___ICodeDumper___init(fra.me.REG[0], REGB0, REGB1, init_table);
+  CHECKNEW_analysis___icode_dump___ICodeDumper(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_analysis___remove_out_of_init_get_test___GetterTestRemover[58] = {
-  {(bigint) 2275 /* 0: Identity */},
-  {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "GetterTestRemover" /* 2: Class Name */},
-  {(bigint) 3 /* 3: GetterTestRemover < Object: superclass typecheck marker */},
-  {(bigint) 223 /* 4: GetterTestRemover < ICodeVisitor: superclass typecheck marker */},
-  {(bigint) 2275 /* 5: GetterTestRemover < GetterTestRemover: superclass typecheck marker */},
+const classtable_elt_t VFT_analysis___inline_methods___InlineMethodVisitor[61] = {
+  {(bigint) 2251 /* 0: Identity */},
+  {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
+  {(bigint) "InlineMethodVisitor" /* 2: Class Name */},
+  {(bigint) 3 /* 3: InlineMethodVisitor < Object: superclass typecheck marker */},
+  {(bigint) 219 /* 4: InlineMethodVisitor < ICodeVisitor: superclass typecheck marker */},
+  {(bigint) 2251 /* 5: InlineMethodVisitor < InlineMethodVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -160190,7 +152212,7 @@ const classtable_elt_t VFT_analysis___remove_out_of_init_get_test___GetterTestRe
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: GetterTestRemover < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: InlineMethodVisitor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -160206,6 +152228,8 @@ const classtable_elt_t VFT_analysis___remove_out_of_init_get_test___GetterTestRe
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -160219,99 +152243,111 @@ const classtable_elt_t VFT_analysis___remove_out_of_init_get_test___GetterTestRe
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: GetterTestRemover < ICodeVisitor: superclass init_table position */},
+  {(bigint) 0 /* 50: InlineMethodVisitor < ICodeVisitor: superclass init_table position */},
   {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_read},
   {(bigint) icode___icode_tools___ICodeVisitor___visit_iregister_write},
   {(bigint) icode___icode_tools___ICodeVisitor___current_icode},
-  {(bigint) analysis___remove_out_of_init_get_test___GetterTestRemover___visit_icode},
+  {(bigint) analysis___inline_methods___InlineMethodVisitor___visit_icode},
   {(bigint) icode___icode_tools___ICodeVisitor___visit_closure_defs},
   {(bigint) icode___icode_tools___ICodeVisitor___visit_iroutine},
   {(bigint) icode___icode_tools___ICodeVisitor___init},
-  {(bigint) 2 /* 55: GetterTestRemover < GetterTestRemover: superclass init_table position */},
-  {(bigint) analysis___remove_out_of_init_get_test___GetterTestRemover___nb_optimized_isset},
+  {(bigint) 2 /* 58: InlineMethodVisitor < InlineMethodVisitor: superclass init_table position */},
   {(bigint) icode___icode_tools___ICodeVisitor___visit_icode},
+  {(bigint) analysis___inline_methods___InlineMethodVisitor___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
-/* 2: Attribute GetterTestRemover::_current_icode */
-/* 3: Attribute GetterTestRemover::_nb_optimized_isset */
-void INIT_ATTRIBUTES__analysis___remove_out_of_init_get_test___GetterTestRemover(val_t p0){
+/* 2: Attribute InlineMethodVisitor::_current_icode */
+/* 3: Attribute InlineMethodVisitor::_pass */
+/* 4: Attribute InlineMethodVisitor::_icb */
+void INIT_ATTRIBUTES__analysis___inline_methods___InlineMethodVisitor(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___remove_out_of_init_get_test___GetterTestRemover;
+  fra.me.meth = LOCATE_INIT_ATTRIBUTES__analysis___inline_methods___InlineMethodVisitor;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//remove_out_of_init_get_test.nit:73 */
+  /* analysis/inline_methods.nit:24 */
   REGB0 = TAG_Int(0);
-  ATTR_analysis___remove_out_of_init_get_test___GetterTestRemover____nb_optimized_isset(fra.me.REG[0]) = REGB0;
-  /* ./icode//icode_tools.nit:29 */
+  ATTR_analysis___inline_methods___InlineMethodVisitor____pass(fra.me.REG[0]) = REGB0;
+  /* icode/icode_tools.nit:29 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_analysis___remove_out_of_init_get_test___GetterTestRemover(void)
+val_t NEW_analysis___inline_methods___InlineMethodVisitor(void)
 {
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 4);
-  obj->vft = (classtable_elt_t*)VFT_analysis___remove_out_of_init_get_test___GetterTestRemover;
+  obj = alloc(sizeof(val_t) * 5);
+  obj->vft = (classtable_elt_t*)VFT_analysis___inline_methods___InlineMethodVisitor;
   obj[1].object_id = object_id_counter;
   object_id_counter = object_id_counter + 1;
   return OBJ2VAL(obj);
 }
-void CHECKNEW_analysis___remove_out_of_init_get_test___GetterTestRemover(val_t p0){
+void CHECKNEW_analysis___inline_methods___InlineMethodVisitor(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_analysis___remove_out_of_init_get_test___GetterTestRemover;
+  fra.me.meth = LOCATE_CHECKNEW_analysis___inline_methods___InlineMethodVisitor;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_analysis___remove_out_of_init_get_test___GetterTestRemover____nb_optimized_isset(fra.me.REG[0])!=NIT_NULL);
+  REGB0 = TAG_Bool(ATTR_analysis___inline_methods___InlineMethodVisitor____pass(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_nb_optimized_isset", LOCATE_nitc, 0);
+    nit_abort("Uninitialized attribute %s", "_pass", LOCATE_nitc, 0);
+  }
+  REGB0 = TAG_Bool(ATTR_analysis___inline_methods___InlineMethodVisitor____icb(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_icb", LOCATE_nitc, 0);
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_GetterTestRemover_icode___icode_tools___ICodeVisitor___init(void){
-  struct {struct stack_frame_t me;} fra;
+val_t NEW_InlineMethodVisitor_analysis___inline_methods___InlineMethodVisitor___init(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
   int init_table[3] = {0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_GetterTestRemover_icode___icode_tools___ICodeVisitor___init;
+  fra.me.line = 63;
+  fra.me.meth = LOCATE_NEW_InlineMethodVisitor_analysis___inline_methods___InlineMethodVisitor___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
+  fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_analysis___remove_out_of_init_get_test___GetterTestRemover();
-  INIT_ATTRIBUTES__analysis___remove_out_of_init_get_test___GetterTestRemover(fra.me.REG[0]);
-  icode___icode_tools___ICodeVisitor___init(fra.me.REG[0], init_table);
-  CHECKNEW_analysis___remove_out_of_init_get_test___GetterTestRemover(fra.me.REG[0]);
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* analysis/inline_methods.nit:63 */
+  fra.me.REG[2] = NEW_analysis___inline_methods___InlineMethodVisitor();
+  INIT_ATTRIBUTES__analysis___inline_methods___InlineMethodVisitor(fra.me.REG[2]);
+  analysis___inline_methods___InlineMethodVisitor___init(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1], init_table);
+  CHECKNEW_analysis___inline_methods___InlineMethodVisitor(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
+  return fra.me.REG[2];
 }
-const classtable_elt_t VFT_compiling___icode_generator___FileICodeDumper[63] = {
-  {(bigint) 2279 /* 0: Identity */},
+const classtable_elt_t VFT_compiling___icode_generator___FileICodeDumper[66] = {
+  {(bigint) 2315 /* 0: Identity */},
   {(bigint) 11 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "FileICodeDumper" /* 2: Class Name */},
   {(bigint) 3 /* 3: FileICodeDumper < Object: superclass typecheck marker */},
-  {(bigint) 231 /* 4: FileICodeDumper < ICodeDumper: superclass typecheck marker */},
-  {(bigint) 2279 /* 5: FileICodeDumper < FileICodeDumper: superclass typecheck marker */},
+  {(bigint) 227 /* 4: FileICodeDumper < ICodeDumper: superclass typecheck marker */},
+  {(bigint) 2315 /* 5: FileICodeDumper < FileICodeDumper: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -160324,7 +152360,7 @@ const classtable_elt_t VFT_compiling___icode_generator___FileICodeDumper[63] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: FileICodeDumper < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: FileICodeDumper < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -160340,6 +152376,8 @@ const classtable_elt_t VFT_compiling___icode_generator___FileICodeDumper[63] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -160353,7 +152391,7 @@ const classtable_elt_t VFT_compiling___icode_generator___FileICodeDumper[63] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: FileICodeDumper < ICodeDumper: superclass init_table position */},
+  {(bigint) 1 /* 50: FileICodeDumper < ICodeDumper: superclass init_table position */},
   {(bigint) analysis___icode_dump___ICodeDumper___dump_locations},
   {(bigint) analysis___icode_dump___ICodeDumper___dump_line_numbers},
   {(bigint) analysis___icode_dump___ICodeDumper___init},
@@ -160367,7 +152405,7 @@ const classtable_elt_t VFT_compiling___icode_generator___FileICodeDumper[63] = {
   {(bigint) analysis___icode_dump___ICodeDumper___indent_level},
   {(bigint) analysis___icode_dump___ICodeDumper___indent},
   {(bigint) analysis___icode_dump___ICodeDumper___unindent},
-  {(bigint) 2 /* 61: FileICodeDumper < FileICodeDumper: superclass init_table position */},
+  {(bigint) 2 /* 64: FileICodeDumper < FileICodeDumper: superclass init_table position */},
   {(bigint) compiling___icode_generator___FileICodeDumper___init},
 };
 /* 0: Pointer to the classtable */
@@ -160395,22 +152433,22 @@ void INIT_ATTRIBUTES__compiling___icode_generator___FileICodeDumper(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./analysis//icode_dump.nit:70 */
+  /* analysis/icode_dump.nit:70 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_analysis___icode_dump___ICodeDumper____ids(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./analysis//icode_dump.nit:71 */
+  /* analysis/icode_dump.nit:71 */
   REGB0 = TAG_Int(0);
   ATTR_analysis___icode_dump___ICodeDumper____last_value(fra.me.REG[0]) = REGB0;
-  /* ./analysis//icode_dump.nit:118 */
+  /* analysis/icode_dump.nit:118 */
   REGB0 = TAG_Int(0);
   ATTR_analysis___icode_dump___ICodeDumper____last_clos(fra.me.REG[0]) = REGB0;
-  /* ./analysis//icode_dump.nit:134 */
+  /* analysis/icode_dump.nit:134 */
   REGB0 = TAG_Int(0);
   ATTR_analysis___icode_dump___ICodeDumper____last_label(fra.me.REG[0]) = REGB0;
-  /* ./analysis//icode_dump.nit:149 */
+  /* analysis/icode_dump.nit:149 */
   REGB0 = TAG_Int(0);
   ATTR_analysis___icode_dump___ICodeDumper____last_line(fra.me.REG[0]) = REGB0;
-  /* ./analysis//icode_dump.nit:178 */
+  /* analysis/icode_dump.nit:178 */
   REGB0 = TAG_Int(0);
   ATTR_analysis___icode_dump___ICodeDumper____indent_level(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -160498,7 +152536,7 @@ val_t NEW_FileICodeDumper_compiling___icode_generator___FileICodeDumper___init(v
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//icode_generator.nit:41 */
+  /* compiling/icode_generator.nit:41 */
   fra.me.REG[1] = NEW_compiling___icode_generator___FileICodeDumper();
   INIT_ATTRIBUTES__compiling___icode_generator___FileICodeDumper(fra.me.REG[1]);
   compiling___icode_generator___FileICodeDumper___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -160506,136 +152544,14 @@ val_t NEW_FileICodeDumper_compiling___icode_generator___FileICodeDumper___init(v
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_compiling___table_computation___ColorContext[52] = {
-  {(bigint) 279 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "ColorContext" /* 2: Class Name */},
-  {(bigint) 3 /* 3: ColorContext < Object: superclass typecheck marker */},
-  {(bigint) 279 /* 4: ColorContext < ColorContext: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: ColorContext < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: ColorContext < ColorContext: superclass init_table position */},
-  {(bigint) compiling___table_computation___ColorContext___color},
-  {(bigint) compiling___table_computation___ColorContext___has_color},
-  {(bigint) compiling___table_computation___ColorContext___color__eq},
-  {(bigint) compiling___table_computation___ColorContext___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute ColorContext::_colors */
-void INIT_ATTRIBUTES__compiling___table_computation___ColorContext(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__compiling___table_computation___ColorContext;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:27 */
-  fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_compiling___table_computation___ColorContext(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_compiling___table_computation___ColorContext;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_compiling___table_computation___ColorContext(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_compiling___table_computation___ColorContext;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_colors", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_ColorContext_compiling___table_computation___ColorContext___init(void){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  int init_table[2] = {0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ColorContext_compiling___table_computation___ColorContext___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = NEW_compiling___table_computation___ColorContext();
-  INIT_ATTRIBUTES__compiling___table_computation___ColorContext(fra.me.REG[0]);
-  compiling___table_computation___ColorContext___init(fra.me.REG[0], init_table);
-  CHECKNEW_compiling___table_computation___ColorContext(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-const classtable_elt_t VFT_compiling___table_computation___TableInformation[55] = {
-  {(bigint) 335 /* 0: Identity */},
+const classtable_elt_t VFT_compiling___table_computation___TableInformation[58] = {
+  {(bigint) 327 /* 0: Identity */},
   {(bigint) 4 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TableInformation" /* 2: Class Name */},
   {(bigint) 3 /* 3: TableInformation < Object: superclass typecheck marker */},
-  {(bigint) 279 /* 4: TableInformation < ColorContext: superclass typecheck marker */},
-  {(bigint) 335 /* 5: TableInformation < TableInformation: superclass typecheck marker */},
+  {(bigint) 275 /* 4: TableInformation < ColorContext: superclass typecheck marker */},
+  {(bigint) 327 /* 5: TableInformation < TableInformation: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -160648,7 +152564,7 @@ const classtable_elt_t VFT_compiling___table_computation___TableInformation[55]
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: TableInformation < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: TableInformation < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -160664,6 +152580,8 @@ const classtable_elt_t VFT_compiling___table_computation___TableInformation[55]
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -160677,12 +152595,12 @@ const classtable_elt_t VFT_compiling___table_computation___TableInformation[55]
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: TableInformation < ColorContext: superclass init_table position */},
+  {(bigint) 0 /* 50: TableInformation < ColorContext: superclass init_table position */},
   {(bigint) compiling___table_computation___ColorContext___color},
   {(bigint) compiling___table_computation___ColorContext___has_color},
   {(bigint) compiling___table_computation___ColorContext___color__eq},
   {(bigint) compiling___table_computation___ColorContext___init},
-  {(bigint) 2 /* 52: TableInformation < TableInformation: superclass init_table position */},
+  {(bigint) 2 /* 55: TableInformation < TableInformation: superclass init_table position */},
   {(bigint) compiling___table_computation___TableInformation___max_class_table_length},
   {(bigint) compiling___table_computation___TableInformation___max_class_table_length__eq},
 };
@@ -160704,10 +152622,10 @@ void INIT_ATTRIBUTES__compiling___table_computation___TableInformation(val_t p0)
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:57 */
+  /* compiling/table_computation.nit:57 */
   REGB0 = TAG_Int(0);
   ATTR_compiling___table_computation___TableInformation____max_class_table_length(fra.me.REG[0]) = REGB0;
-  /* ./compiling//table_computation.nit:27 */
+  /* compiling/table_computation.nit:27 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -160765,13 +152683,14 @@ val_t NEW_TableInformation_compiling___table_computation___ColorContext___init(v
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_compiling___table_computation___CompiledClass[63] = {
-  {(bigint) 2331 /* 0: Identity */},
+const classtable_elt_t VFT_compiling___table_computation___CompiledClass[66] = {
+  {(bigint) 2367 /* 0: Identity */},
   {(bigint) 9 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "CompiledClass" /* 2: Class Name */},
   {(bigint) 3 /* 3: CompiledClass < Object: superclass typecheck marker */},
-  {(bigint) 279 /* 4: CompiledClass < ColorContext: superclass typecheck marker */},
-  {(bigint) 2331 /* 5: CompiledClass < CompiledClass: superclass typecheck marker */},
+  {(bigint) 275 /* 4: CompiledClass < ColorContext: superclass typecheck marker */},
+  {(bigint) 2367 /* 5: CompiledClass < CompiledClass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -160784,7 +152703,7 @@ const classtable_elt_t VFT_compiling___table_computation___CompiledClass[63] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: CompiledClass < Object: superclass init_table position */},
+  {(bigint) 1 /* 19: CompiledClass < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -160800,6 +152719,8 @@ const classtable_elt_t VFT_compiling___table_computation___CompiledClass[63] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -160813,12 +152734,12 @@ const classtable_elt_t VFT_compiling___table_computation___CompiledClass[63] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: CompiledClass < ColorContext: superclass init_table position */},
+  {(bigint) 0 /* 50: CompiledClass < ColorContext: superclass init_table position */},
   {(bigint) compiling___table_computation___ColorContext___color},
   {(bigint) compiling___table_computation___ColorContext___has_color},
   {(bigint) compiling___table_computation___ColorContext___color__eq},
   {(bigint) compiling___table_computation___ColorContext___init},
-  {(bigint) 2 /* 52: CompiledClass < CompiledClass: superclass init_table position */},
+  {(bigint) 2 /* 55: CompiledClass < CompiledClass: superclass init_table position */},
   {(bigint) compiling___table_computation___CompiledClass___local_class},
   {(bigint) compiling___table_computation___CompiledClass___id},
   {(bigint) compiling___table_computation___CompiledClass___id__eq},
@@ -160853,26 +152774,26 @@ void INIT_ATTRIBUTES__compiling___table_computation___CompiledClass(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:67 */
+  /* compiling/table_computation.nit:67 */
   REGB0 = TAG_Int(0);
   ATTR_compiling___table_computation___CompiledClass____id(fra.me.REG[0]) = REGB0;
-  /* ./compiling//table_computation.nit:70 */
+  /* compiling/table_computation.nit:70 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_compiling___table_computation___CompiledClass____class_table(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//table_computation.nit:73 */
+  /* compiling/table_computation.nit:73 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_compiling___table_computation___CompiledClass____instance_table(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//table_computation.nit:75 */
+  /* compiling/table_computation.nit:75 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./compiling//table_computation.nit:76 */
+  /* compiling/table_computation.nit:76 */
   fra.me.REG[1] = NEW_TableEltComposite_compiling___table_computation___TableEltComposite___init(fra.me.REG[1]);
   ATTR_compiling___table_computation___CompiledClass____class_layout(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//table_computation.nit:78 */
+  /* compiling/table_computation.nit:78 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./compiling//table_computation.nit:79 */
+  /* compiling/table_computation.nit:79 */
   fra.me.REG[1] = NEW_TableEltComposite_compiling___table_computation___TableEltComposite___init(fra.me.REG[1]);
   ATTR_compiling___table_computation___CompiledClass____instance_layout(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//table_computation.nit:27 */
+  /* compiling/table_computation.nit:27 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_compiling___table_computation___ColorContext____colors(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -160950,7 +152871,7 @@ val_t NEW_CompiledClass_compiling___table_computation___CompiledClass___init(val
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:81 */
+  /* compiling/table_computation.nit:81 */
   fra.me.REG[1] = NEW_compiling___table_computation___CompiledClass();
   INIT_ATTRIBUTES__compiling___table_computation___CompiledClass(fra.me.REG[1]);
   compiling___table_computation___CompiledClass___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -160958,15 +152879,16 @@ val_t NEW_CompiledClass_compiling___table_computation___CompiledClass___init(val
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_compiling___table_computation___ModuleTableEltGroup[59] = {
-  {(bigint) 2815 /* 0: Identity */},
+const classtable_elt_t VFT_compiling___table_computation___ModuleTableEltGroup[62] = {
+  {(bigint) 2575 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "ModuleTableEltGroup" /* 2: Class Name */},
   {(bigint) 3 /* 3: ModuleTableEltGroup < Object: superclass typecheck marker */},
-  {(bigint) 303 /* 4: ModuleTableEltGroup < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 299 /* 4: ModuleTableEltGroup < AbsTableElt: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2151 /* 6: ModuleTableEltGroup < ModuleTableElt: superclass typecheck marker */},
+  {(bigint) 2575 /* 7: ModuleTableEltGroup < ModuleTableEltGroup: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2115 /* 6: ModuleTableEltGroup < ModuleTableElt: superclass typecheck marker */},
-  {(bigint) 2815 /* 7: ModuleTableEltGroup < ModuleTableEltGroup: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -160977,7 +152899,7 @@ const classtable_elt_t VFT_compiling___table_computation___ModuleTableEltGroup[5
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: ModuleTableEltGroup < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: ModuleTableEltGroup < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -160993,6 +152915,8 @@ const classtable_elt_t VFT_compiling___table_computation___ModuleTableEltGroup[5
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -161007,17 +152931,17 @@ const classtable_elt_t VFT_compiling___table_computation___ModuleTableEltGroup[5
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) compiling___compiling_global___ModuleTableEltGroup___compile_macros},
-  {(bigint) 1 /* 48: ModuleTableEltGroup < AbsTableElt: superclass init_table position */},
-  {(bigint) compiling___table_computation___AbsTableElt___init},
+  {(bigint) 1 /* 51: ModuleTableEltGroup < AbsTableElt: superclass init_table position */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) compiling___compiling_global___ModuleTableEltGroup___value},
-  {(bigint) 0 /* 56: ModuleTableEltGroup < ModuleTableElt: superclass init_table position */},
-  {(bigint) 3 /* 57: ModuleTableEltGroup < ModuleTableEltGroup: superclass init_table position */},
+  {(bigint) 0 /* 58: ModuleTableEltGroup < ModuleTableElt: superclass init_table position */},
+  {(bigint) 3 /* 59: ModuleTableEltGroup < ModuleTableEltGroup: superclass init_table position */},
   {(bigint) compiling___table_computation___ModuleTableEltGroup___elements},
+  {(bigint) compiling___table_computation___ModuleTableEltGroup___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -161035,7 +152959,7 @@ void INIT_ATTRIBUTES__compiling___table_computation___ModuleTableEltGroup(val_t
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:440 */
+  /* compiling/table_computation.nit:440 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_compiling___table_computation___ModuleTableEltGroup____elements(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -161069,34 +152993,35 @@ void CHECKNEW_compiling___table_computation___ModuleTableEltGroup(val_t p0){
   }
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_ModuleTableEltGroup_compiling___table_computation___AbsTableElt___init(void){
+val_t NEW_ModuleTableEltGroup_compiling___table_computation___ModuleTableEltGroup___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_ModuleTableEltGroup_compiling___table_computation___AbsTableElt___init;
+  fra.me.meth = LOCATE_NEW_ModuleTableEltGroup_compiling___table_computation___ModuleTableEltGroup___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = NEW_compiling___table_computation___ModuleTableEltGroup();
   INIT_ATTRIBUTES__compiling___table_computation___ModuleTableEltGroup(fra.me.REG[0]);
-  compiling___table_computation___AbsTableElt___init(fra.me.REG[0], init_table);
+  compiling___table_computation___ModuleTableEltGroup___init(fra.me.REG[0], init_table);
   CHECKNEW_compiling___table_computation___ModuleTableEltGroup(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_compiling___table_computation___TableEltMeth[59] = {
-  {(bigint) 3159 /* 0: Identity */},
+const classtable_elt_t VFT_compiling___table_computation___TableEltMeth[61] = {
+  {(bigint) 2923 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TableEltMeth" /* 2: Class Name */},
   {(bigint) 3 /* 3: TableEltMeth < Object: superclass typecheck marker */},
-  {(bigint) 303 /* 4: TableEltMeth < AbsTableElt: superclass typecheck marker */},
-  {(bigint) 339 /* 5: TableEltMeth < TableElt: superclass typecheck marker */},
-  {(bigint) 2387 /* 6: TableEltMeth < TableEltProp: superclass typecheck marker */},
-  {(bigint) 3159 /* 7: TableEltMeth < TableEltMeth: superclass typecheck marker */},
+  {(bigint) 299 /* 4: TableEltMeth < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 331 /* 5: TableEltMeth < TableElt: superclass typecheck marker */},
+  {(bigint) 2435 /* 6: TableEltMeth < TableEltProp: superclass typecheck marker */},
+  {(bigint) 2923 /* 7: TableEltMeth < TableEltMeth: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -161107,7 +153032,7 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltMeth[59] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: TableEltMeth < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TableEltMeth < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -161123,6 +153048,8 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltMeth[59] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -161137,17 +153064,16 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltMeth[59] = {
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) compiling___compiling_global___TableEltMeth___compile_macros},
-  {(bigint) 2 /* 48: TableEltMeth < AbsTableElt: superclass init_table position */},
-  {(bigint) compiling___table_computation___AbsTableElt___init},
+  {(bigint) 2 /* 51: TableEltMeth < AbsTableElt: superclass init_table position */},
   {(bigint) compiling___compiling_global___TableEltMeth___compile_to_c},
-  {(bigint) 1 /* 51: TableEltMeth < TableElt: superclass init_table position */},
+  {(bigint) 1 /* 53: TableEltMeth < TableElt: superclass init_table position */},
   {(bigint) compiling___table_computation___TableElt___is_related_to},
   {(bigint) compiling___table_computation___TableElt___length},
   {(bigint) compiling___table_computation___TableElt___item},
-  {(bigint) 0 /* 55: TableEltMeth < TableEltProp: superclass init_table position */},
+  {(bigint) 0 /* 57: TableEltMeth < TableEltProp: superclass init_table position */},
   {(bigint) compiling___table_computation___TableEltProp___property},
   {(bigint) compiling___table_computation___TableEltProp___init},
-  {(bigint) 4 /* 58: TableEltMeth < TableEltMeth: superclass init_table position */},
+  {(bigint) 4 /* 60: TableEltMeth < TableEltMeth: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -161207,7 +153133,7 @@ val_t NEW_TableEltMeth_compiling___table_computation___TableEltProp___init(val_t
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:448 */
+  /* compiling/table_computation.nit:448 */
   fra.me.REG[1] = NEW_compiling___table_computation___TableEltMeth();
   INIT_ATTRIBUTES__compiling___table_computation___TableEltMeth(fra.me.REG[1]);
   compiling___table_computation___TableEltProp___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -161215,15 +153141,16 @@ val_t NEW_TableEltMeth_compiling___table_computation___TableEltProp___init(val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_compiling___table_computation___TableEltVTClassColor[59] = {
-  {(bigint) 3151 /* 0: Identity */},
+const classtable_elt_t VFT_compiling___table_computation___TableEltVTClassColor[61] = {
+  {(bigint) 2915 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TableEltVTClassColor" /* 2: Class Name */},
   {(bigint) 3 /* 3: TableEltVTClassColor < Object: superclass typecheck marker */},
-  {(bigint) 303 /* 4: TableEltVTClassColor < AbsTableElt: superclass typecheck marker */},
-  {(bigint) 339 /* 5: TableEltVTClassColor < TableElt: superclass typecheck marker */},
-  {(bigint) 2387 /* 6: TableEltVTClassColor < TableEltProp: superclass typecheck marker */},
-  {(bigint) 3151 /* 7: TableEltVTClassColor < TableEltVTClassColor: superclass typecheck marker */},
+  {(bigint) 299 /* 4: TableEltVTClassColor < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 331 /* 5: TableEltVTClassColor < TableElt: superclass typecheck marker */},
+  {(bigint) 2435 /* 6: TableEltVTClassColor < TableEltProp: superclass typecheck marker */},
+  {(bigint) 2915 /* 7: TableEltVTClassColor < TableEltVTClassColor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -161234,7 +153161,7 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltVTClassColor[
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: TableEltVTClassColor < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TableEltVTClassColor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -161250,6 +153177,8 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltVTClassColor[
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -161264,17 +153193,16 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltVTClassColor[
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) compiling___compiling_global___TableEltVTClassColor___compile_macros},
-  {(bigint) 2 /* 48: TableEltVTClassColor < AbsTableElt: superclass init_table position */},
-  {(bigint) compiling___table_computation___AbsTableElt___init},
+  {(bigint) 2 /* 51: TableEltVTClassColor < AbsTableElt: superclass init_table position */},
   {(bigint) compiling___compiling_global___TableEltVTClassColor___compile_to_c},
-  {(bigint) 1 /* 51: TableEltVTClassColor < TableElt: superclass init_table position */},
+  {(bigint) 1 /* 53: TableEltVTClassColor < TableElt: superclass init_table position */},
   {(bigint) compiling___table_computation___TableElt___is_related_to},
   {(bigint) compiling___table_computation___TableElt___length},
   {(bigint) compiling___table_computation___TableElt___item},
-  {(bigint) 0 /* 55: TableEltVTClassColor < TableEltProp: superclass init_table position */},
+  {(bigint) 0 /* 57: TableEltVTClassColor < TableEltProp: superclass init_table position */},
   {(bigint) compiling___table_computation___TableEltProp___property},
   {(bigint) compiling___table_computation___TableEltProp___init},
-  {(bigint) 4 /* 58: TableEltVTClassColor < TableEltVTClassColor: superclass init_table position */},
+  {(bigint) 4 /* 60: TableEltVTClassColor < TableEltVTClassColor: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -161334,7 +153262,7 @@ val_t NEW_TableEltVTClassColor_compiling___table_computation___TableEltProp___in
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:448 */
+  /* compiling/table_computation.nit:448 */
   fra.me.REG[1] = NEW_compiling___table_computation___TableEltVTClassColor();
   INIT_ATTRIBUTES__compiling___table_computation___TableEltVTClassColor(fra.me.REG[1]);
   compiling___table_computation___TableEltProp___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -161342,15 +153270,16 @@ val_t NEW_TableEltVTClassColor_compiling___table_computation___TableEltProp___in
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_compiling___table_computation___TableEltVTClassId[59] = {
-  {(bigint) 3147 /* 0: Identity */},
+const classtable_elt_t VFT_compiling___table_computation___TableEltVTClassId[61] = {
+  {(bigint) 2911 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TableEltVTClassId" /* 2: Class Name */},
   {(bigint) 3 /* 3: TableEltVTClassId < Object: superclass typecheck marker */},
-  {(bigint) 303 /* 4: TableEltVTClassId < AbsTableElt: superclass typecheck marker */},
-  {(bigint) 339 /* 5: TableEltVTClassId < TableElt: superclass typecheck marker */},
-  {(bigint) 2387 /* 6: TableEltVTClassId < TableEltProp: superclass typecheck marker */},
-  {(bigint) 3147 /* 7: TableEltVTClassId < TableEltVTClassId: superclass typecheck marker */},
+  {(bigint) 299 /* 4: TableEltVTClassId < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 331 /* 5: TableEltVTClassId < TableElt: superclass typecheck marker */},
+  {(bigint) 2435 /* 6: TableEltVTClassId < TableEltProp: superclass typecheck marker */},
+  {(bigint) 2911 /* 7: TableEltVTClassId < TableEltVTClassId: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -161361,7 +153290,7 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltVTClassId[59]
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: TableEltVTClassId < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TableEltVTClassId < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -161377,6 +153306,8 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltVTClassId[59]
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -161391,17 +153322,16 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltVTClassId[59]
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) compiling___compiling_global___TableEltVTClassId___compile_macros},
-  {(bigint) 2 /* 48: TableEltVTClassId < AbsTableElt: superclass init_table position */},
-  {(bigint) compiling___table_computation___AbsTableElt___init},
+  {(bigint) 2 /* 51: TableEltVTClassId < AbsTableElt: superclass init_table position */},
   {(bigint) compiling___compiling_global___TableEltVTClassId___compile_to_c},
-  {(bigint) 1 /* 51: TableEltVTClassId < TableElt: superclass init_table position */},
+  {(bigint) 1 /* 53: TableEltVTClassId < TableElt: superclass init_table position */},
   {(bigint) compiling___table_computation___TableElt___is_related_to},
   {(bigint) compiling___table_computation___TableElt___length},
   {(bigint) compiling___table_computation___TableElt___item},
-  {(bigint) 0 /* 55: TableEltVTClassId < TableEltProp: superclass init_table position */},
+  {(bigint) 0 /* 57: TableEltVTClassId < TableEltProp: superclass init_table position */},
   {(bigint) compiling___table_computation___TableEltProp___property},
   {(bigint) compiling___table_computation___TableEltProp___init},
-  {(bigint) 4 /* 58: TableEltVTClassId < TableEltVTClassId: superclass init_table position */},
+  {(bigint) 4 /* 60: TableEltVTClassId < TableEltVTClassId: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -161461,7 +153391,7 @@ val_t NEW_TableEltVTClassId_compiling___table_computation___TableEltProp___init(
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:448 */
+  /* compiling/table_computation.nit:448 */
   fra.me.REG[1] = NEW_compiling___table_computation___TableEltVTClassId();
   INIT_ATTRIBUTES__compiling___table_computation___TableEltVTClassId(fra.me.REG[1]);
   compiling___table_computation___TableEltProp___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -161469,15 +153399,16 @@ val_t NEW_TableEltVTClassId_compiling___table_computation___TableEltProp___init(
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_compiling___table_computation___TableEltSuper[59] = {
-  {(bigint) 3155 /* 0: Identity */},
+const classtable_elt_t VFT_compiling___table_computation___TableEltSuper[61] = {
+  {(bigint) 2919 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TableEltSuper" /* 2: Class Name */},
   {(bigint) 3 /* 3: TableEltSuper < Object: superclass typecheck marker */},
-  {(bigint) 303 /* 4: TableEltSuper < AbsTableElt: superclass typecheck marker */},
-  {(bigint) 339 /* 5: TableEltSuper < TableElt: superclass typecheck marker */},
-  {(bigint) 2387 /* 6: TableEltSuper < TableEltProp: superclass typecheck marker */},
-  {(bigint) 3155 /* 7: TableEltSuper < TableEltSuper: superclass typecheck marker */},
+  {(bigint) 299 /* 4: TableEltSuper < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 331 /* 5: TableEltSuper < TableElt: superclass typecheck marker */},
+  {(bigint) 2435 /* 6: TableEltSuper < TableEltProp: superclass typecheck marker */},
+  {(bigint) 2919 /* 7: TableEltSuper < TableEltSuper: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -161488,7 +153419,7 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltSuper[59] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: TableEltSuper < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TableEltSuper < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -161504,6 +153435,8 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltSuper[59] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -161518,17 +153451,16 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltSuper[59] = {
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) compiling___compiling_global___TableEltSuper___compile_macros},
-  {(bigint) 2 /* 48: TableEltSuper < AbsTableElt: superclass init_table position */},
-  {(bigint) compiling___table_computation___AbsTableElt___init},
+  {(bigint) 2 /* 51: TableEltSuper < AbsTableElt: superclass init_table position */},
   {(bigint) compiling___compiling_global___TableEltSuper___compile_to_c},
-  {(bigint) 1 /* 51: TableEltSuper < TableElt: superclass init_table position */},
+  {(bigint) 1 /* 53: TableEltSuper < TableElt: superclass init_table position */},
   {(bigint) compiling___table_computation___TableElt___is_related_to},
   {(bigint) compiling___table_computation___TableElt___length},
   {(bigint) compiling___table_computation___TableElt___item},
-  {(bigint) 0 /* 55: TableEltSuper < TableEltProp: superclass init_table position */},
+  {(bigint) 0 /* 57: TableEltSuper < TableEltProp: superclass init_table position */},
   {(bigint) compiling___table_computation___TableEltProp___property},
   {(bigint) compiling___table_computation___TableEltProp___init},
-  {(bigint) 4 /* 58: TableEltSuper < TableEltSuper: superclass init_table position */},
+  {(bigint) 4 /* 60: TableEltSuper < TableEltSuper: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -161588,7 +153520,7 @@ val_t NEW_TableEltSuper_compiling___table_computation___TableEltProp___init(val_
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:448 */
+  /* compiling/table_computation.nit:448 */
   fra.me.REG[1] = NEW_compiling___table_computation___TableEltSuper();
   INIT_ATTRIBUTES__compiling___table_computation___TableEltSuper(fra.me.REG[1]);
   compiling___table_computation___TableEltProp___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -161596,15 +153528,16 @@ val_t NEW_TableEltSuper_compiling___table_computation___TableEltProp___init(val_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_compiling___table_computation___TableEltAttr[59] = {
-  {(bigint) 3171 /* 0: Identity */},
+const classtable_elt_t VFT_compiling___table_computation___TableEltAttr[61] = {
+  {(bigint) 2935 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TableEltAttr" /* 2: Class Name */},
   {(bigint) 3 /* 3: TableEltAttr < Object: superclass typecheck marker */},
-  {(bigint) 303 /* 4: TableEltAttr < AbsTableElt: superclass typecheck marker */},
-  {(bigint) 339 /* 5: TableEltAttr < TableElt: superclass typecheck marker */},
-  {(bigint) 2387 /* 6: TableEltAttr < TableEltProp: superclass typecheck marker */},
-  {(bigint) 3171 /* 7: TableEltAttr < TableEltAttr: superclass typecheck marker */},
+  {(bigint) 299 /* 4: TableEltAttr < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 331 /* 5: TableEltAttr < TableElt: superclass typecheck marker */},
+  {(bigint) 2435 /* 6: TableEltAttr < TableEltProp: superclass typecheck marker */},
+  {(bigint) 2935 /* 7: TableEltAttr < TableEltAttr: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -161615,7 +153548,7 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltAttr[59] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 3 /* 18: TableEltAttr < Object: superclass init_table position */},
+  {(bigint) 3 /* 19: TableEltAttr < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -161631,6 +153564,8 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltAttr[59] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -161645,17 +153580,16 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltAttr[59] = {
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) compiling___compiling_global___TableEltAttr___compile_macros},
-  {(bigint) 2 /* 48: TableEltAttr < AbsTableElt: superclass init_table position */},
-  {(bigint) compiling___table_computation___AbsTableElt___init},
+  {(bigint) 2 /* 51: TableEltAttr < AbsTableElt: superclass init_table position */},
   {(bigint) compiling___compiling_global___TableEltAttr___compile_to_c},
-  {(bigint) 1 /* 51: TableEltAttr < TableElt: superclass init_table position */},
+  {(bigint) 1 /* 53: TableEltAttr < TableElt: superclass init_table position */},
   {(bigint) compiling___table_computation___TableElt___is_related_to},
   {(bigint) compiling___table_computation___TableElt___length},
   {(bigint) compiling___table_computation___TableElt___item},
-  {(bigint) 0 /* 55: TableEltAttr < TableEltProp: superclass init_table position */},
+  {(bigint) 0 /* 57: TableEltAttr < TableEltProp: superclass init_table position */},
   {(bigint) compiling___table_computation___TableEltProp___property},
   {(bigint) compiling___table_computation___TableEltProp___init},
-  {(bigint) 4 /* 58: TableEltAttr < TableEltAttr: superclass init_table position */},
+  {(bigint) 4 /* 60: TableEltAttr < TableEltAttr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -161715,7 +153649,7 @@ val_t NEW_TableEltAttr_compiling___table_computation___TableEltProp___init(val_t
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:448 */
+  /* compiling/table_computation.nit:448 */
   fra.me.REG[1] = NEW_compiling___table_computation___TableEltAttr();
   INIT_ATTRIBUTES__compiling___table_computation___TableEltAttr(fra.me.REG[1]);
   compiling___table_computation___TableEltProp___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -161723,274 +153657,16 @@ val_t NEW_TableEltAttr_compiling___table_computation___TableEltProp___init(val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_compiling___table_computation___AbsTableEltClass[61] = {
-  {(bigint) 2367 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "AbsTableEltClass" /* 2: Class Name */},
-  {(bigint) 3 /* 3: AbsTableEltClass < Object: superclass typecheck marker */},
-  {(bigint) 303 /* 4: AbsTableEltClass < AbsTableElt: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) 2367 /* 7: AbsTableEltClass < AbsTableEltClass: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 1 /* 18: AbsTableEltClass < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) compiling___compiling_global___AbsTableEltClass___compile_macros},
-  {(bigint) 0 /* 48: AbsTableEltClass < AbsTableElt: superclass init_table position */},
-  {(bigint) compiling___table_computation___AbsTableElt___init},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) compiling___compiling_global___AbsTableEltClass___symbol},
-  {(bigint) 2 /* 58: AbsTableEltClass < AbsTableEltClass: superclass init_table position */},
-  {(bigint) compiling___table_computation___AbsTableEltClass___local_class},
-  {(bigint) compiling___table_computation___AbsTableEltClass___init},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute AbsTableEltClass::_local_class */
-void INIT_ATTRIBUTES__compiling___table_computation___AbsTableEltClass(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__compiling___table_computation___AbsTableEltClass;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_compiling___table_computation___AbsTableEltClass(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_compiling___table_computation___AbsTableEltClass;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_compiling___table_computation___AbsTableEltClass(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_compiling___table_computation___AbsTableEltClass;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_compiling___table_computation___AbsTableEltClass____local_class(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_AbsTableEltClass_compiling___table_computation___AbsTableEltClass___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[3] = {0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 485;
-  fra.me.meth = LOCATE_NEW_AbsTableEltClass_compiling___table_computation___AbsTableEltClass___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:485 */
-  fra.me.REG[1] = NEW_compiling___table_computation___AbsTableEltClass();
-  INIT_ATTRIBUTES__compiling___table_computation___AbsTableEltClass(fra.me.REG[1]);
-  compiling___table_computation___AbsTableEltClass___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_compiling___table_computation___AbsTableEltClass(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_compiling___table_computation___TableEltClass[62] = {
-  {(bigint) 2415 /* 0: Identity */},
-  {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
-  {(bigint) "TableEltClass" /* 2: Class Name */},
-  {(bigint) 3 /* 3: TableEltClass < Object: superclass typecheck marker */},
-  {(bigint) 303 /* 4: TableEltClass < AbsTableElt: superclass typecheck marker */},
-  {(bigint) 339 /* 5: TableEltClass < TableElt: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {(bigint) 2367 /* 7: TableEltClass < AbsTableEltClass: superclass typecheck marker */},
-  {(bigint) 2415 /* 8: TableEltClass < TableEltClass: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) nit_version___Object___nit_version},
-  {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TableEltClass < Object: superclass init_table position */},
-  {(bigint) standard___kernel___Object___object_id},
-  {(bigint) standard___kernel___Object___is_same_type},
-  {(bigint) standard___kernel___Object_____eqeq},
-  {(bigint) standard___kernel___Object_____neq},
-  {(bigint) standard___kernel___Object___output},
-  {(bigint) standard___kernel___Object___output_class_name},
-  {(bigint) standard___kernel___Object___exit},
-  {(bigint) standard___kernel___Object___sys},
-  {(bigint) standard___file___Object___printn},
-  {(bigint) standard___file___Object___print},
-  {(bigint) standard___file___Object___getc},
-  {(bigint) standard___file___Object___gets},
-  {(bigint) standard___file___Object___stdin},
-  {(bigint) standard___file___Object___stdout},
-  {(bigint) standard___file___Object___stderr},
-  {(bigint) standard___string___Object___to_s},
-  {(bigint) standard___string___Object___native_class_name},
-  {(bigint) standard___string___Object___class_name},
-  {(bigint) standard___string___Object___inspect},
-  {(bigint) standard___string___Object___inspect_head},
-  {(bigint) standard___string___Object___args},
-  {(bigint) standard___hash___Object___hash},
-  {(bigint) standard___math___Object___atan2},
-  {(bigint) standard___math___Object___pi},
-  {(bigint) standard___math___Object___srand_from},
-  {(bigint) standard___math___Object___srand},
-  {(bigint) utils___Object___cmangle},
-  {(bigint) utils___Object___cmangle_table},
-  {(bigint) compiling___compiling_global___AbsTableEltClass___compile_macros},
-  {(bigint) 1 /* 48: TableEltClass < AbsTableElt: superclass init_table position */},
-  {(bigint) compiling___table_computation___AbsTableElt___init},
-  {(bigint) compiling___compiling_global___TableElt___compile_to_c},
-  {(bigint) 0 /* 51: TableEltClass < TableElt: superclass init_table position */},
-  {(bigint) compiling___table_computation___TableEltClass___is_related_to},
-  {(bigint) compiling___table_computation___TableElt___length},
-  {(bigint) compiling___table_computation___TableElt___item},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {(bigint) compiling___compiling_global___AbsTableEltClass___symbol},
-  {(bigint) 3 /* 58: TableEltClass < AbsTableEltClass: superclass init_table position */},
-  {(bigint) compiling___table_computation___AbsTableEltClass___local_class},
-  {(bigint) compiling___table_computation___AbsTableEltClass___init},
-  {(bigint) 4 /* 61: TableEltClass < TableEltClass: superclass init_table position */},
-};
-/* 0: Pointer to the classtable */
-/* 1: Object_id */
-/* 2: Attribute TableEltClass::_local_class */
-void INIT_ATTRIBUTES__compiling___table_computation___TableEltClass(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_INIT_ATTRIBUTES__compiling___table_computation___TableEltClass;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_compiling___table_computation___TableEltClass(void)
-{
-  obj_t obj;
-  obj = alloc(sizeof(val_t) * 3);
-  obj->vft = (classtable_elt_t*)VFT_compiling___table_computation___TableEltClass;
-  obj[1].object_id = object_id_counter;
-  object_id_counter = object_id_counter + 1;
-  return OBJ2VAL(obj);
-}
-void CHECKNEW_compiling___table_computation___TableEltClass(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_CHECKNEW_compiling___table_computation___TableEltClass;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_compiling___table_computation___AbsTableEltClass____local_class(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_nitc, 0);
-  }
-  stack_frame_head = fra.me.prev;
-}
-val_t NEW_TableEltClass_compiling___table_computation___AbsTableEltClass___init(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  int init_table[5] = {0, 0, 0, 0, 0};
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_nitc;
-  fra.me.line = 485;
-  fra.me.meth = LOCATE_NEW_TableEltClass_compiling___table_computation___AbsTableEltClass___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:485 */
-  fra.me.REG[1] = NEW_compiling___table_computation___TableEltClass();
-  INIT_ATTRIBUTES__compiling___table_computation___TableEltClass(fra.me.REG[1]);
-  compiling___table_computation___AbsTableEltClass___init(fra.me.REG[1], fra.me.REG[0], init_table);
-  CHECKNEW_compiling___table_computation___TableEltClass(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-const classtable_elt_t VFT_compiling___table_computation___TableEltClassId[61] = {
-  {(bigint) 2411 /* 0: Identity */},
+const classtable_elt_t VFT_compiling___table_computation___TableEltClassId[63] = {
+  {(bigint) 2459 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TableEltClassId" /* 2: Class Name */},
   {(bigint) 3 /* 3: TableEltClassId < Object: superclass typecheck marker */},
-  {(bigint) 303 /* 4: TableEltClassId < AbsTableElt: superclass typecheck marker */},
-  {(bigint) 2411 /* 5: TableEltClassId < TableEltClassId: superclass typecheck marker */},
-  {(bigint) 2115 /* 6: TableEltClassId < ModuleTableElt: superclass typecheck marker */},
-  {(bigint) 2367 /* 7: TableEltClassId < AbsTableEltClass: superclass typecheck marker */},
+  {(bigint) 299 /* 4: TableEltClassId < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 2459 /* 5: TableEltClassId < TableEltClassId: superclass typecheck marker */},
+  {(bigint) 2151 /* 6: TableEltClassId < ModuleTableElt: superclass typecheck marker */},
+  {(bigint) 2403 /* 7: TableEltClassId < AbsTableEltClass: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -162001,7 +153677,7 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltClassId[61] =
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TableEltClassId < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TableEltClassId < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -162017,6 +153693,8 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltClassId[61] =
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -162031,17 +153709,16 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltClassId[61] =
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) compiling___compiling_global___AbsTableEltClass___compile_macros},
-  {(bigint) 1 /* 48: TableEltClassId < AbsTableElt: superclass init_table position */},
-  {(bigint) compiling___table_computation___AbsTableElt___init},
-  {(bigint) 4 /* 50: TableEltClassId < TableEltClassId: superclass init_table position */},
+  {(bigint) 1 /* 51: TableEltClassId < AbsTableElt: superclass init_table position */},
+  {(bigint) 4 /* 52: TableEltClassId < TableEltClassId: superclass init_table position */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) compiling___compiling_global___TableEltClassId___value},
-  {(bigint) 0 /* 56: TableEltClassId < ModuleTableElt: superclass init_table position */},
+  {(bigint) 0 /* 58: TableEltClassId < ModuleTableElt: superclass init_table position */},
   {(bigint) compiling___compiling_global___TableEltClassId___symbol},
-  {(bigint) 3 /* 58: TableEltClassId < AbsTableEltClass: superclass init_table position */},
+  {(bigint) 3 /* 60: TableEltClassId < AbsTableEltClass: superclass init_table position */},
   {(bigint) compiling___table_computation___AbsTableEltClass___local_class},
   {(bigint) compiling___table_computation___AbsTableEltClass___init},
 };
@@ -162103,7 +153780,7 @@ val_t NEW_TableEltClassId_compiling___table_computation___AbsTableEltClass___ini
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:485 */
+  /* compiling/table_computation.nit:485 */
   fra.me.REG[1] = NEW_compiling___table_computation___TableEltClassId();
   INIT_ATTRIBUTES__compiling___table_computation___TableEltClassId(fra.me.REG[1]);
   compiling___table_computation___AbsTableEltClass___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -162111,17 +153788,18 @@ val_t NEW_TableEltClassId_compiling___table_computation___AbsTableEltClass___ini
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_compiling___table_computation___TableEltClassInitTable[63] = {
-  {(bigint) 3163 /* 0: Identity */},
+const classtable_elt_t VFT_compiling___table_computation___TableEltClassInitTable[65] = {
+  {(bigint) 2927 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TableEltClassInitTable" /* 2: Class Name */},
   {(bigint) 3 /* 3: TableEltClassInitTable < Object: superclass typecheck marker */},
-  {(bigint) 303 /* 4: TableEltClassInitTable < AbsTableElt: superclass typecheck marker */},
-  {(bigint) 339 /* 5: TableEltClassInitTable < TableElt: superclass typecheck marker */},
+  {(bigint) 299 /* 4: TableEltClassInitTable < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 331 /* 5: TableEltClassInitTable < TableElt: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2403 /* 7: TableEltClassInitTable < AbsTableEltClass: superclass typecheck marker */},
+  {(bigint) 2463 /* 8: TableEltClassInitTable < TableEltClass: superclass typecheck marker */},
+  {(bigint) 2927 /* 9: TableEltClassInitTable < TableEltClassInitTable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2367 /* 7: TableEltClassInitTable < AbsTableEltClass: superclass typecheck marker */},
-  {(bigint) 2415 /* 8: TableEltClassInitTable < TableEltClass: superclass typecheck marker */},
-  {(bigint) 3163 /* 9: TableEltClassInitTable < TableEltClassInitTable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -162130,7 +153808,7 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltClassInitTabl
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TableEltClassInitTable < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: TableEltClassInitTable < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -162146,6 +153824,8 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltClassInitTabl
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -162160,21 +153840,20 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltClassInitTabl
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) compiling___compiling_global___AbsTableEltClass___compile_macros},
-  {(bigint) 1 /* 48: TableEltClassInitTable < AbsTableElt: superclass init_table position */},
-  {(bigint) compiling___table_computation___AbsTableElt___init},
+  {(bigint) 3 /* 51: TableEltClassInitTable < AbsTableElt: superclass init_table position */},
   {(bigint) compiling___compiling_global___TableEltClassInitTable___compile_to_c},
-  {(bigint) 0 /* 51: TableEltClassInitTable < TableElt: superclass init_table position */},
+  {(bigint) 1 /* 53: TableEltClassInitTable < TableElt: superclass init_table position */},
   {(bigint) compiling___table_computation___TableEltClass___is_related_to},
   {(bigint) compiling___table_computation___TableElt___length},
   {(bigint) compiling___table_computation___TableElt___item},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) compiling___compiling_global___TableEltClassInitTable___symbol},
-  {(bigint) 3 /* 58: TableEltClassInitTable < AbsTableEltClass: superclass init_table position */},
+  {(bigint) 2 /* 60: TableEltClassInitTable < AbsTableEltClass: superclass init_table position */},
   {(bigint) compiling___table_computation___AbsTableEltClass___local_class},
   {(bigint) compiling___table_computation___AbsTableEltClass___init},
-  {(bigint) 4 /* 61: TableEltClassInitTable < TableEltClass: superclass init_table position */},
-  {(bigint) 5 /* 62: TableEltClassInitTable < TableEltClassInitTable: superclass init_table position */},
+  {(bigint) 0 /* 63: TableEltClassInitTable < TableEltClass: superclass init_table position */},
+  {(bigint) 5 /* 64: TableEltClassInitTable < TableEltClassInitTable: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -162234,7 +153913,7 @@ val_t NEW_TableEltClassInitTable_compiling___table_computation___AbsTableEltClas
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:485 */
+  /* compiling/table_computation.nit:485 */
   fra.me.REG[1] = NEW_compiling___table_computation___TableEltClassInitTable();
   INIT_ATTRIBUTES__compiling___table_computation___TableEltClassInitTable(fra.me.REG[1]);
   compiling___table_computation___AbsTableEltClass___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -162242,17 +153921,18 @@ val_t NEW_TableEltClassInitTable_compiling___table_computation___AbsTableEltClas
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_compiling___table_computation___TableEltClassColor[63] = {
-  {(bigint) 3167 /* 0: Identity */},
+const classtable_elt_t VFT_compiling___table_computation___TableEltClassColor[65] = {
+  {(bigint) 2931 /* 0: Identity */},
   {(bigint) 3 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TableEltClassColor" /* 2: Class Name */},
   {(bigint) 3 /* 3: TableEltClassColor < Object: superclass typecheck marker */},
-  {(bigint) 303 /* 4: TableEltClassColor < AbsTableElt: superclass typecheck marker */},
-  {(bigint) 339 /* 5: TableEltClassColor < TableElt: superclass typecheck marker */},
-  {(bigint) 2115 /* 6: TableEltClassColor < ModuleTableElt: superclass typecheck marker */},
-  {(bigint) 2367 /* 7: TableEltClassColor < AbsTableEltClass: superclass typecheck marker */},
-  {(bigint) 2415 /* 8: TableEltClassColor < TableEltClass: superclass typecheck marker */},
-  {(bigint) 3167 /* 9: TableEltClassColor < TableEltClassColor: superclass typecheck marker */},
+  {(bigint) 299 /* 4: TableEltClassColor < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 331 /* 5: TableEltClassColor < TableElt: superclass typecheck marker */},
+  {(bigint) 2151 /* 6: TableEltClassColor < ModuleTableElt: superclass typecheck marker */},
+  {(bigint) 2403 /* 7: TableEltClassColor < AbsTableEltClass: superclass typecheck marker */},
+  {(bigint) 2463 /* 8: TableEltClassColor < TableEltClass: superclass typecheck marker */},
+  {(bigint) 2931 /* 9: TableEltClassColor < TableEltClassColor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -162261,7 +153941,7 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltClassColor[63
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TableEltClassColor < Object: superclass init_table position */},
+  {(bigint) 4 /* 19: TableEltClassColor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -162277,6 +153957,8 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltClassColor[63
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -162291,21 +153973,20 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltClassColor[63
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) compiling___compiling_global___AbsTableEltClass___compile_macros},
-  {(bigint) 1 /* 48: TableEltClassColor < AbsTableElt: superclass init_table position */},
-  {(bigint) compiling___table_computation___AbsTableElt___init},
+  {(bigint) 3 /* 51: TableEltClassColor < AbsTableElt: superclass init_table position */},
   {(bigint) compiling___compiling_global___TableEltClassColor___compile_to_c},
-  {(bigint) 0 /* 51: TableEltClassColor < TableElt: superclass init_table position */},
+  {(bigint) 1 /* 53: TableEltClassColor < TableElt: superclass init_table position */},
   {(bigint) compiling___table_computation___TableEltClass___is_related_to},
   {(bigint) compiling___table_computation___TableElt___length},
   {(bigint) compiling___table_computation___TableElt___item},
   {(bigint) compiling___compiling_global___TableEltClassColor___value},
-  {(bigint) 5 /* 56: TableEltClassColor < ModuleTableElt: superclass init_table position */},
+  {(bigint) 5 /* 58: TableEltClassColor < ModuleTableElt: superclass init_table position */},
   {(bigint) compiling___compiling_global___TableEltClassColor___symbol},
-  {(bigint) 3 /* 58: TableEltClassColor < AbsTableEltClass: superclass init_table position */},
+  {(bigint) 2 /* 60: TableEltClassColor < AbsTableEltClass: superclass init_table position */},
   {(bigint) compiling___table_computation___AbsTableEltClass___local_class},
   {(bigint) compiling___table_computation___AbsTableEltClass___init},
-  {(bigint) 4 /* 61: TableEltClassColor < TableEltClass: superclass init_table position */},
-  {(bigint) 6 /* 62: TableEltClassColor < TableEltClassColor: superclass init_table position */},
+  {(bigint) 0 /* 63: TableEltClassColor < TableEltClass: superclass init_table position */},
+  {(bigint) 6 /* 64: TableEltClassColor < TableEltClassColor: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -162365,7 +154046,7 @@ val_t NEW_TableEltClassColor_compiling___table_computation___AbsTableEltClass___
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:485 */
+  /* compiling/table_computation.nit:485 */
   fra.me.REG[1] = NEW_compiling___table_computation___TableEltClassColor();
   INIT_ATTRIBUTES__compiling___table_computation___TableEltClassColor(fra.me.REG[1]);
   compiling___table_computation___AbsTableEltClass___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -162373,14 +154054,15 @@ val_t NEW_TableEltClassColor_compiling___table_computation___AbsTableEltClass___
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_compiling___table_computation___TableEltComposite[58] = {
-  {(bigint) 2395 /* 0: Identity */},
+const classtable_elt_t VFT_compiling___table_computation___TableEltComposite[60] = {
+  {(bigint) 2443 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TableEltComposite" /* 2: Class Name */},
   {(bigint) 3 /* 3: TableEltComposite < Object: superclass typecheck marker */},
-  {(bigint) 303 /* 4: TableEltComposite < AbsTableElt: superclass typecheck marker */},
-  {(bigint) 339 /* 5: TableEltComposite < TableElt: superclass typecheck marker */},
-  {(bigint) 2395 /* 6: TableEltComposite < TableEltComposite: superclass typecheck marker */},
+  {(bigint) 299 /* 4: TableEltComposite < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 331 /* 5: TableEltComposite < TableElt: superclass typecheck marker */},
+  {(bigint) 2443 /* 6: TableEltComposite < TableEltComposite: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -162392,7 +154074,7 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltComposite[58]
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TableEltComposite < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TableEltComposite < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -162408,6 +154090,8 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltComposite[58]
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -162422,14 +154106,13 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltComposite[58]
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) compiling___compiling_global___AbsTableElt___compile_macros},
-  {(bigint) 1 /* 48: TableEltComposite < AbsTableElt: superclass init_table position */},
-  {(bigint) compiling___table_computation___AbsTableElt___init},
+  {(bigint) 1 /* 51: TableEltComposite < AbsTableElt: superclass init_table position */},
   {(bigint) compiling___compiling_global___TableEltComposite___compile_to_c},
-  {(bigint) 0 /* 51: TableEltComposite < TableElt: superclass init_table position */},
+  {(bigint) 0 /* 53: TableEltComposite < TableElt: superclass init_table position */},
   {(bigint) compiling___table_computation___TableEltComposite___is_related_to},
   {(bigint) compiling___table_computation___TableEltComposite___length},
   {(bigint) compiling___table_computation___TableEltComposite___item},
-  {(bigint) 3 /* 55: TableEltComposite < TableEltComposite: superclass init_table position */},
+  {(bigint) 3 /* 57: TableEltComposite < TableEltComposite: superclass init_table position */},
   {(bigint) compiling___table_computation___TableEltComposite___add},
   {(bigint) compiling___table_computation___TableEltComposite___init},
 };
@@ -162503,7 +154186,7 @@ val_t NEW_TableEltComposite_compiling___table_computation___TableEltComposite___
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//table_computation.nit:539 */
+  /* compiling/table_computation.nit:539 */
   fra.me.REG[1] = NEW_compiling___table_computation___TableEltComposite();
   INIT_ATTRIBUTES__compiling___table_computation___TableEltComposite(fra.me.REG[1]);
   compiling___table_computation___TableEltComposite___init(fra.me.REG[1], fra.me.REG[0], init_table);
@@ -162511,14 +154194,15 @@ val_t NEW_TableEltComposite_compiling___table_computation___TableEltComposite___
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_compiling___table_computation___TableEltClassSelfId[56] = {
-  {(bigint) 2403 /* 0: Identity */},
+const classtable_elt_t VFT_compiling___table_computation___TableEltClassSelfId[59] = {
+  {(bigint) 2451 /* 0: Identity */},
   {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TableEltClassSelfId" /* 2: Class Name */},
   {(bigint) 3 /* 3: TableEltClassSelfId < Object: superclass typecheck marker */},
-  {(bigint) 303 /* 4: TableEltClassSelfId < AbsTableElt: superclass typecheck marker */},
-  {(bigint) 339 /* 5: TableEltClassSelfId < TableElt: superclass typecheck marker */},
-  {(bigint) 2403 /* 6: TableEltClassSelfId < TableEltClassSelfId: superclass typecheck marker */},
+  {(bigint) 299 /* 4: TableEltClassSelfId < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 331 /* 5: TableEltClassSelfId < TableElt: superclass typecheck marker */},
+  {(bigint) 2451 /* 6: TableEltClassSelfId < TableEltClassSelfId: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -162530,7 +154214,7 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltClassSelfId[5
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TableEltClassSelfId < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TableEltClassSelfId < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -162546,6 +154230,8 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltClassSelfId[5
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -162560,14 +154246,14 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltClassSelfId[5
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) compiling___compiling_global___AbsTableElt___compile_macros},
-  {(bigint) 1 /* 48: TableEltClassSelfId < AbsTableElt: superclass init_table position */},
-  {(bigint) compiling___table_computation___AbsTableElt___init},
+  {(bigint) 1 /* 51: TableEltClassSelfId < AbsTableElt: superclass init_table position */},
   {(bigint) compiling___compiling_global___TableEltClassSelfId___compile_to_c},
-  {(bigint) 0 /* 51: TableEltClassSelfId < TableElt: superclass init_table position */},
+  {(bigint) 0 /* 53: TableEltClassSelfId < TableElt: superclass init_table position */},
   {(bigint) compiling___table_computation___TableEltClassSelfId___is_related_to},
   {(bigint) compiling___table_computation___TableElt___length},
   {(bigint) compiling___table_computation___TableElt___item},
-  {(bigint) 3 /* 55: TableEltClassSelfId < TableEltClassSelfId: superclass init_table position */},
+  {(bigint) 3 /* 57: TableEltClassSelfId < TableEltClassSelfId: superclass init_table position */},
+  {(bigint) compiling___table_computation___TableEltClassSelfId___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -162604,33 +154290,34 @@ void CHECKNEW_compiling___table_computation___TableEltClassSelfId(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_TableEltClassSelfId_compiling___table_computation___AbsTableElt___init(void){
+val_t NEW_TableEltClassSelfId_compiling___table_computation___TableEltClassSelfId___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_TableEltClassSelfId_compiling___table_computation___AbsTableElt___init;
+  fra.me.meth = LOCATE_NEW_TableEltClassSelfId_compiling___table_computation___TableEltClassSelfId___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = NEW_compiling___table_computation___TableEltClassSelfId();
   INIT_ATTRIBUTES__compiling___table_computation___TableEltClassSelfId(fra.me.REG[0]);
-  compiling___table_computation___AbsTableElt___init(fra.me.REG[0], init_table);
+  compiling___table_computation___TableEltClassSelfId___init(fra.me.REG[0], init_table);
   CHECKNEW_compiling___table_computation___TableEltClassSelfId(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_compiling___table_computation___TableEltClassSelfName[56] = {
-  {(bigint) 2399 /* 0: Identity */},
+const classtable_elt_t VFT_compiling___table_computation___TableEltClassSelfName[59] = {
+  {(bigint) 2447 /* 0: Identity */},
   {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TableEltClassSelfName" /* 2: Class Name */},
   {(bigint) 3 /* 3: TableEltClassSelfName < Object: superclass typecheck marker */},
-  {(bigint) 303 /* 4: TableEltClassSelfName < AbsTableElt: superclass typecheck marker */},
-  {(bigint) 339 /* 5: TableEltClassSelfName < TableElt: superclass typecheck marker */},
-  {(bigint) 2399 /* 6: TableEltClassSelfName < TableEltClassSelfName: superclass typecheck marker */},
+  {(bigint) 299 /* 4: TableEltClassSelfName < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 331 /* 5: TableEltClassSelfName < TableElt: superclass typecheck marker */},
+  {(bigint) 2447 /* 6: TableEltClassSelfName < TableEltClassSelfName: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -162642,7 +154329,7 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltClassSelfName
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TableEltClassSelfName < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TableEltClassSelfName < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -162658,6 +154345,8 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltClassSelfName
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -162672,14 +154361,14 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltClassSelfName
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) compiling___compiling_global___AbsTableElt___compile_macros},
-  {(bigint) 1 /* 48: TableEltClassSelfName < AbsTableElt: superclass init_table position */},
-  {(bigint) compiling___table_computation___AbsTableElt___init},
+  {(bigint) 1 /* 51: TableEltClassSelfName < AbsTableElt: superclass init_table position */},
   {(bigint) compiling___compiling_global___TableEltClassSelfName___compile_to_c},
-  {(bigint) 0 /* 51: TableEltClassSelfName < TableElt: superclass init_table position */},
+  {(bigint) 0 /* 53: TableEltClassSelfName < TableElt: superclass init_table position */},
   {(bigint) compiling___table_computation___TableEltClassSelfName___is_related_to},
   {(bigint) compiling___table_computation___TableElt___length},
   {(bigint) compiling___table_computation___TableElt___item},
-  {(bigint) 3 /* 55: TableEltClassSelfName < TableEltClassSelfName: superclass init_table position */},
+  {(bigint) 3 /* 57: TableEltClassSelfName < TableEltClassSelfName: superclass init_table position */},
+  {(bigint) compiling___table_computation___TableEltClassSelfName___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -162716,33 +154405,34 @@ void CHECKNEW_compiling___table_computation___TableEltClassSelfName(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_TableEltClassSelfName_compiling___table_computation___AbsTableElt___init(void){
+val_t NEW_TableEltClassSelfName_compiling___table_computation___TableEltClassSelfName___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_TableEltClassSelfName_compiling___table_computation___AbsTableElt___init;
+  fra.me.meth = LOCATE_NEW_TableEltClassSelfName_compiling___table_computation___TableEltClassSelfName___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = NEW_compiling___table_computation___TableEltClassSelfName();
   INIT_ATTRIBUTES__compiling___table_computation___TableEltClassSelfName(fra.me.REG[0]);
-  compiling___table_computation___AbsTableElt___init(fra.me.REG[0], init_table);
+  compiling___table_computation___TableEltClassSelfName___init(fra.me.REG[0], init_table);
   CHECKNEW_compiling___table_computation___TableEltClassSelfName(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_compiling___table_computation___TableEltClassObjectSize[56] = {
-  {(bigint) 2407 /* 0: Identity */},
+const classtable_elt_t VFT_compiling___table_computation___TableEltClassObjectSize[59] = {
+  {(bigint) 2455 /* 0: Identity */},
   {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TableEltClassObjectSize" /* 2: Class Name */},
   {(bigint) 3 /* 3: TableEltClassObjectSize < Object: superclass typecheck marker */},
-  {(bigint) 303 /* 4: TableEltClassObjectSize < AbsTableElt: superclass typecheck marker */},
-  {(bigint) 339 /* 5: TableEltClassObjectSize < TableElt: superclass typecheck marker */},
-  {(bigint) 2407 /* 6: TableEltClassObjectSize < TableEltClassObjectSize: superclass typecheck marker */},
+  {(bigint) 299 /* 4: TableEltClassObjectSize < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 331 /* 5: TableEltClassObjectSize < TableElt: superclass typecheck marker */},
+  {(bigint) 2455 /* 6: TableEltClassObjectSize < TableEltClassObjectSize: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -162754,7 +154444,7 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltClassObjectSi
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TableEltClassObjectSize < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TableEltClassObjectSize < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -162770,6 +154460,8 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltClassObjectSi
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -162784,14 +154476,14 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltClassObjectSi
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) compiling___compiling_global___AbsTableElt___compile_macros},
-  {(bigint) 1 /* 48: TableEltClassObjectSize < AbsTableElt: superclass init_table position */},
-  {(bigint) compiling___table_computation___AbsTableElt___init},
+  {(bigint) 1 /* 51: TableEltClassObjectSize < AbsTableElt: superclass init_table position */},
   {(bigint) compiling___compiling_global___TableEltClassObjectSize___compile_to_c},
-  {(bigint) 0 /* 51: TableEltClassObjectSize < TableElt: superclass init_table position */},
+  {(bigint) 0 /* 53: TableEltClassObjectSize < TableElt: superclass init_table position */},
   {(bigint) compiling___table_computation___TableEltClassObjectSize___is_related_to},
   {(bigint) compiling___table_computation___TableElt___length},
   {(bigint) compiling___table_computation___TableElt___item},
-  {(bigint) 3 /* 55: TableEltClassObjectSize < TableEltClassObjectSize: superclass init_table position */},
+  {(bigint) 3 /* 57: TableEltClassObjectSize < TableEltClassObjectSize: superclass init_table position */},
+  {(bigint) compiling___table_computation___TableEltClassObjectSize___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -162828,33 +154520,34 @@ void CHECKNEW_compiling___table_computation___TableEltClassObjectSize(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_TableEltClassObjectSize_compiling___table_computation___AbsTableElt___init(void){
+val_t NEW_TableEltClassObjectSize_compiling___table_computation___TableEltClassObjectSize___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_TableEltClassObjectSize_compiling___table_computation___AbsTableElt___init;
+  fra.me.meth = LOCATE_NEW_TableEltClassObjectSize_compiling___table_computation___TableEltClassObjectSize___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = NEW_compiling___table_computation___TableEltClassObjectSize();
   INIT_ATTRIBUTES__compiling___table_computation___TableEltClassObjectSize(fra.me.REG[0]);
-  compiling___table_computation___AbsTableElt___init(fra.me.REG[0], init_table);
+  compiling___table_computation___TableEltClassObjectSize___init(fra.me.REG[0], init_table);
   CHECKNEW_compiling___table_computation___TableEltClassObjectSize(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_compiling___table_computation___TableEltObjectId[56] = {
-  {(bigint) 2391 /* 0: Identity */},
+const classtable_elt_t VFT_compiling___table_computation___TableEltObjectId[59] = {
+  {(bigint) 2439 /* 0: Identity */},
   {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TableEltObjectId" /* 2: Class Name */},
   {(bigint) 3 /* 3: TableEltObjectId < Object: superclass typecheck marker */},
-  {(bigint) 303 /* 4: TableEltObjectId < AbsTableElt: superclass typecheck marker */},
-  {(bigint) 339 /* 5: TableEltObjectId < TableElt: superclass typecheck marker */},
-  {(bigint) 2391 /* 6: TableEltObjectId < TableEltObjectId: superclass typecheck marker */},
+  {(bigint) 299 /* 4: TableEltObjectId < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 331 /* 5: TableEltObjectId < TableElt: superclass typecheck marker */},
+  {(bigint) 2439 /* 6: TableEltObjectId < TableEltObjectId: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -162866,7 +154559,7 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltObjectId[56]
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TableEltObjectId < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TableEltObjectId < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -162882,6 +154575,8 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltObjectId[56]
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -162896,14 +154591,14 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltObjectId[56]
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) compiling___compiling_global___AbsTableElt___compile_macros},
-  {(bigint) 1 /* 48: TableEltObjectId < AbsTableElt: superclass init_table position */},
-  {(bigint) compiling___table_computation___AbsTableElt___init},
+  {(bigint) 1 /* 51: TableEltObjectId < AbsTableElt: superclass init_table position */},
   {(bigint) compiling___compiling_global___TableEltObjectId___compile_to_c},
-  {(bigint) 0 /* 51: TableEltObjectId < TableElt: superclass init_table position */},
+  {(bigint) 0 /* 53: TableEltObjectId < TableElt: superclass init_table position */},
   {(bigint) compiling___table_computation___TableEltObjectId___is_related_to},
   {(bigint) compiling___table_computation___TableElt___length},
   {(bigint) compiling___table_computation___TableElt___item},
-  {(bigint) 3 /* 55: TableEltObjectId < TableEltObjectId: superclass init_table position */},
+  {(bigint) 3 /* 57: TableEltObjectId < TableEltObjectId: superclass init_table position */},
+  {(bigint) compiling___table_computation___TableEltObjectId___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -162940,33 +154635,34 @@ void CHECKNEW_compiling___table_computation___TableEltObjectId(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_TableEltObjectId_compiling___table_computation___AbsTableElt___init(void){
+val_t NEW_TableEltObjectId_compiling___table_computation___TableEltObjectId___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_TableEltObjectId_compiling___table_computation___AbsTableElt___init;
+  fra.me.meth = LOCATE_NEW_TableEltObjectId_compiling___table_computation___TableEltObjectId___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = NEW_compiling___table_computation___TableEltObjectId();
   INIT_ATTRIBUTES__compiling___table_computation___TableEltObjectId(fra.me.REG[0]);
-  compiling___table_computation___AbsTableElt___init(fra.me.REG[0], init_table);
+  compiling___table_computation___TableEltObjectId___init(fra.me.REG[0], init_table);
   CHECKNEW_compiling___table_computation___TableEltObjectId(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_compiling___table_computation___TableEltVftPointer[56] = {
-  {(bigint) 2383 /* 0: Identity */},
+const classtable_elt_t VFT_compiling___table_computation___TableEltVftPointer[59] = {
+  {(bigint) 2431 /* 0: Identity */},
   {(bigint) 2 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "TableEltVftPointer" /* 2: Class Name */},
   {(bigint) 3 /* 3: TableEltVftPointer < Object: superclass typecheck marker */},
-  {(bigint) 303 /* 4: TableEltVftPointer < AbsTableElt: superclass typecheck marker */},
-  {(bigint) 339 /* 5: TableEltVftPointer < TableElt: superclass typecheck marker */},
-  {(bigint) 2383 /* 6: TableEltVftPointer < TableEltVftPointer: superclass typecheck marker */},
+  {(bigint) 299 /* 4: TableEltVftPointer < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 331 /* 5: TableEltVftPointer < TableElt: superclass typecheck marker */},
+  {(bigint) 2431 /* 6: TableEltVftPointer < TableEltVftPointer: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -162978,7 +154674,7 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltVftPointer[56
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 2 /* 18: TableEltVftPointer < Object: superclass init_table position */},
+  {(bigint) 2 /* 19: TableEltVftPointer < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -162994,6 +154690,8 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltVftPointer[56
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -163008,14 +154706,14 @@ const classtable_elt_t VFT_compiling___table_computation___TableEltVftPointer[56
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
   {(bigint) compiling___compiling_global___AbsTableElt___compile_macros},
-  {(bigint) 1 /* 48: TableEltVftPointer < AbsTableElt: superclass init_table position */},
-  {(bigint) compiling___table_computation___AbsTableElt___init},
+  {(bigint) 1 /* 51: TableEltVftPointer < AbsTableElt: superclass init_table position */},
   {(bigint) compiling___compiling_global___TableEltVftPointer___compile_to_c},
-  {(bigint) 0 /* 51: TableEltVftPointer < TableElt: superclass init_table position */},
+  {(bigint) 0 /* 53: TableEltVftPointer < TableElt: superclass init_table position */},
   {(bigint) compiling___table_computation___TableEltVftPointer___is_related_to},
   {(bigint) compiling___table_computation___TableElt___length},
   {(bigint) compiling___table_computation___TableElt___item},
-  {(bigint) 3 /* 55: TableEltVftPointer < TableEltVftPointer: superclass init_table position */},
+  {(bigint) 3 /* 57: TableEltVftPointer < TableEltVftPointer: superclass init_table position */},
+  {(bigint) compiling___table_computation___TableEltVftPointer___init},
 };
 /* 0: Pointer to the classtable */
 /* 1: Object_id */
@@ -163052,31 +154750,32 @@ void CHECKNEW_compiling___table_computation___TableEltVftPointer(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   stack_frame_head = fra.me.prev;
 }
-val_t NEW_TableEltVftPointer_compiling___table_computation___AbsTableElt___init(void){
+val_t NEW_TableEltVftPointer_compiling___table_computation___TableEltVftPointer___init(void){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   int init_table[4] = {0, 0, 0, 0};
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_nitc;
   fra.me.line = 0;
-  fra.me.meth = LOCATE_NEW_TableEltVftPointer_compiling___table_computation___AbsTableElt___init;
+  fra.me.meth = LOCATE_NEW_TableEltVftPointer_compiling___table_computation___TableEltVftPointer___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = NEW_compiling___table_computation___TableEltVftPointer();
   INIT_ATTRIBUTES__compiling___table_computation___TableEltVftPointer(fra.me.REG[0]);
-  compiling___table_computation___AbsTableElt___init(fra.me.REG[0], init_table);
+  compiling___table_computation___TableEltVftPointer___init(fra.me.REG[0], init_table);
   CHECKNEW_compiling___table_computation___TableEltVftPointer(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-const classtable_elt_t VFT_compiling___compiling_icode___I2CCompilerVisitor[77] = {
-  {(bigint) 247 /* 0: Identity */},
+const classtable_elt_t VFT_compiling___compiling_icode___I2CCompilerVisitor[80] = {
+  {(bigint) 243 /* 0: Identity */},
   {(bigint) 17 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "I2CCompilerVisitor" /* 2: Class Name */},
   {(bigint) 3 /* 3: I2CCompilerVisitor < Object: superclass typecheck marker */},
-  {(bigint) 247 /* 4: I2CCompilerVisitor < I2CCompilerVisitor: superclass typecheck marker */},
+  {(bigint) 243 /* 4: I2CCompilerVisitor < I2CCompilerVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -163090,7 +154789,7 @@ const classtable_elt_t VFT_compiling___compiling_icode___I2CCompilerVisitor[77]
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: I2CCompilerVisitor < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: I2CCompilerVisitor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -163106,6 +154805,8 @@ const classtable_elt_t VFT_compiling___compiling_icode___I2CCompilerVisitor[77]
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -163119,7 +154820,7 @@ const classtable_elt_t VFT_compiling___compiling_icode___I2CCompilerVisitor[77]
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: I2CCompilerVisitor < I2CCompilerVisitor: superclass init_table position */},
+  {(bigint) 1 /* 50: I2CCompilerVisitor < I2CCompilerVisitor: superclass init_table position */},
   {(bigint) compiling___compiling_icode___I2CCompilerVisitor___register},
   {(bigint) compiling___compiling_icode___I2CCompilerVisitor___registers},
   {(bigint) compiling___compiling_icode___I2CCompilerVisitor___new_number},
@@ -163181,40 +154882,40 @@ void INIT_ATTRIBUTES__compiling___compiling_icode___I2CCompilerVisitor(val_t p0)
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_icode.nit:28 */
+  /* compiling/compiling_icode.nit:28 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_icode.nit:30 */
+  /* compiling/compiling_icode.nit:30 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____ids2(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_icode.nit:77 */
+  /* compiling/compiling_icode.nit:77 */
   REGB0 = TAG_Int(0);
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_number(fra.me.REG[0]) = REGB0;
-  /* ./compiling//compiling_icode.nit:98 */
+  /* compiling/compiling_icode.nit:98 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____closures(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_icode.nit:101 */
+  /* compiling/compiling_icode.nit:101 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____clostypes(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_icode.nit:104 */
+  /* compiling/compiling_icode.nit:104 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____local_labels(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_icode.nit:108 */
+  /* compiling/compiling_icode.nit:108 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____escaped_labels(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_icode.nit:144 */
+  /* compiling/compiling_icode.nit:144 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____marks_to_seq(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_icode.nit:147 */
+  /* compiling/compiling_icode.nit:147 */
   REGB0 = TAG_Bool(false);
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____closure(fra.me.REG[0]) = REGB0;
-  /* ./compiling//compiling_icode.nit:155 */
+  /* compiling/compiling_icode.nit:155 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____return_label(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_icode.nit:202 */
+  /* compiling/compiling_icode.nit:202 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____last_location(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./compiling//compiling_icode.nit:203 */
+  /* compiling/compiling_icode.nit:203 */
   fra.me.REG[1] = NIT_NULL;
   ATTR_compiling___compiling_icode___I2CCompilerVisitor____next_location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -163321,7 +155022,7 @@ val_t NEW_I2CCompilerVisitor_compiling___compiling_icode___I2CCompilerVisitor___
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_icode.nit:222 */
+  /* compiling/compiling_icode.nit:222 */
   fra.me.REG[3] = NEW_compiling___compiling_icode___I2CCompilerVisitor();
   INIT_ATTRIBUTES__compiling___compiling_icode___I2CCompilerVisitor(fra.me.REG[3]);
   compiling___compiling_icode___I2CCompilerVisitor___init(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
@@ -163329,12 +155030,13 @@ val_t NEW_I2CCompilerVisitor_compiling___compiling_icode___I2CCompilerVisitor___
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
-const classtable_elt_t VFT_native_interface___ni_tools___FunctionCompiler[56] = {
-  {(bigint) 255 /* 0: Identity */},
+const classtable_elt_t VFT_native_interface___ni_tools___FunctionCompiler[59] = {
+  {(bigint) 251 /* 0: Identity */},
   {(bigint) 5 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "FunctionCompiler" /* 2: Class Name */},
   {(bigint) 3 /* 3: FunctionCompiler < Object: superclass typecheck marker */},
-  {(bigint) 255 /* 4: FunctionCompiler < FunctionCompiler: superclass typecheck marker */},
+  {(bigint) 251 /* 4: FunctionCompiler < FunctionCompiler: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -163348,7 +155050,7 @@ const classtable_elt_t VFT_native_interface___ni_tools___FunctionCompiler[56] =
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: FunctionCompiler < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: FunctionCompiler < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -163364,6 +155066,8 @@ const classtable_elt_t VFT_native_interface___ni_tools___FunctionCompiler[56] =
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -163377,7 +155081,7 @@ const classtable_elt_t VFT_native_interface___ni_tools___FunctionCompiler[56] =
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: FunctionCompiler < FunctionCompiler: superclass init_table position */},
+  {(bigint) 1 /* 50: FunctionCompiler < FunctionCompiler: superclass init_table position */},
   {(bigint) native_interface___ni_tools___FunctionCompiler___signature},
   {(bigint) native_interface___ni_tools___FunctionCompiler___signature__eq},
   {(bigint) native_interface___ni_tools___FunctionCompiler___decls},
@@ -163405,10 +155109,10 @@ void INIT_ATTRIBUTES__native_interface___ni_tools___FunctionCompiler(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//ni_tools.nit:25 */
+  /* native_interface/ni_tools.nit:25 */
   fra.me.REG[1] = NEW_Writer_compiling___compiling_writer___Writer___init();
   ATTR_native_interface___ni_tools___FunctionCompiler_____atdecls(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./native_interface//ni_tools.nit:26 */
+  /* native_interface/ni_tools.nit:26 */
   fra.me.REG[1] = NEW_Writer_compiling___compiling_writer___Writer___init();
   ATTR_native_interface___ni_tools___FunctionCompiler_____atexprs(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -163473,12 +155177,13 @@ val_t NEW_FunctionCompiler_native_interface___ni_tools___FunctionCompiler___init
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
-const classtable_elt_t VFT_native_interface___frontier___FrontierVisitor[67] = {
-  {(bigint) 259 /* 0: Identity */},
+const classtable_elt_t VFT_native_interface___frontier___FrontierVisitor[70] = {
+  {(bigint) 255 /* 0: Identity */},
   {(bigint) 10 /* 1: Object size (-1 if a NativeArray)*/},
   {(bigint) "FrontierVisitor" /* 2: Class Name */},
   {(bigint) 3 /* 3: FrontierVisitor < Object: superclass typecheck marker */},
-  {(bigint) 259 /* 4: FrontierVisitor < FrontierVisitor: superclass typecheck marker */},
+  {(bigint) 255 /* 4: FrontierVisitor < FrontierVisitor: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -163492,7 +155197,7 @@ const classtable_elt_t VFT_native_interface___frontier___FrontierVisitor[67] = {
   {0} /* Class Hole :( */,
   {(bigint) nit_version___Object___nit_version},
   {(bigint) standard___time___Object___get_time},
-  {(bigint) 0 /* 18: FrontierVisitor < Object: superclass init_table position */},
+  {(bigint) 0 /* 19: FrontierVisitor < Object: superclass init_table position */},
   {(bigint) standard___kernel___Object___object_id},
   {(bigint) standard___kernel___Object___is_same_type},
   {(bigint) standard___kernel___Object_____eqeq},
@@ -163508,6 +155213,8 @@ const classtable_elt_t VFT_native_interface___frontier___FrontierVisitor[67] = {
   {(bigint) standard___file___Object___stdin},
   {(bigint) standard___file___Object___stdout},
   {(bigint) standard___file___Object___stderr},
+  {(bigint) standard___stream___Object___poll},
+  {(bigint) standard___stream___Object___intern_poll},
   {(bigint) standard___string___Object___to_s},
   {(bigint) standard___string___Object___native_class_name},
   {(bigint) standard___string___Object___class_name},
@@ -163521,7 +155228,7 @@ const classtable_elt_t VFT_native_interface___frontier___FrontierVisitor[67] = {
   {(bigint) standard___math___Object___srand},
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
-  {(bigint) 1 /* 47: FrontierVisitor < FrontierVisitor: superclass init_table position */},
+  {(bigint) 1 /* 50: FrontierVisitor < FrontierVisitor: superclass init_table position */},
   {(bigint) native_interface___frontier___FrontierVisitor___header_top},
   {(bigint) native_interface___frontier___FrontierVisitor___header_top__eq},
   {(bigint) native_interface___frontier___FrontierVisitor___header},
@@ -163565,22 +155272,22 @@ void INIT_ATTRIBUTES__native_interface___frontier___FrontierVisitor(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./native_interface//frontier.nit:273 */
+  /* native_interface/frontier.nit:274 */
   fra.me.REG[1] = NEW_Writer_compiling___compiling_writer___Writer___init();
   ATTR_native_interface___frontier___FrontierVisitor_____atheader_top(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./native_interface//frontier.nit:276 */
+  /* native_interface/frontier.nit:277 */
   fra.me.REG[1] = NEW_Writer_compiling___compiling_writer___Writer___init();
   ATTR_native_interface___frontier___FrontierVisitor_____atheader(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./native_interface//frontier.nit:279 */
+  /* native_interface/frontier.nit:280 */
   fra.me.REG[1] = NEW_Writer_compiling___compiling_writer___Writer___init();
   ATTR_native_interface___frontier___FrontierVisitor_____atbody(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./native_interface//frontier.nit:282 */
+  /* native_interface/frontier.nit:283 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_native_interface___frontier___FrontierVisitor_____atfriendlys(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./native_interface//frontier.nit:285 */
+  /* native_interface/frontier.nit:286 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_native_interface___frontier___FrontierVisitor_____attypes(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./native_interface//frontier.nit:288 */
+  /* native_interface/frontier.nit:289 */
   fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
   ATTR_native_interface___frontier___FrontierVisitor_____atcasts(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
index 3c407b2..f3ab1bb 100644 (file)
@@ -13,7 +13,7 @@ val_t opts___Option___names(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/opts.nit:19 */
+  /* ../lib/opts.nit:19 */
   REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -36,7 +36,7 @@ val_t opts___Option___helptext(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/opts.nit:25 */
+  /* ../lib/opts.nit:25 */
   REGB0 = TAG_Bool(ATTR_opts___Option____helptext(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -59,7 +59,7 @@ val_t opts___Option___mandatory(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/opts.nit:28 */
+  /* ../lib/opts.nit:28 */
   REGB0 = TAG_Bool(ATTR_opts___Option____mandatory(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -83,7 +83,7 @@ void opts___Option___mandatory__eq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/opts.nit:28 */
+  /* ../lib/opts.nit:28 */
   ATTR_opts___Option____mandatory(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -102,7 +102,7 @@ void opts___Option___value__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/opts.nit:31 */
+  /* ../lib/opts.nit:31 */
   ATTR_opts___Option____value(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -121,9 +121,9 @@ val_t opts___Option___value(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/opts.nit:34 */
+  /* ../lib/opts.nit:34 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./../lib/opts.nit:35 */
+  /* ../lib/opts.nit:35 */
   fra.me.REG[1] = ATTR_opts___Option____value(fra.me.REG[1]);
   REGB0 = TAG_Bool((fra.me.REG[1]==NIT_NULL) || VAL_ISA(fra.me.REG[1], VTCOLOR_opts___Option___VALUE(fra.me.REG[0]), VTID_opts___Option___VALUE(fra.me.REG[0]))) /*cast VALUE*/;
   if (UNTAG_Bool(REGB0)) {
@@ -147,7 +147,7 @@ val_t opts___Option___default_value(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/opts.nit:37 */
+  /* ../lib/opts.nit:37 */
   fra.me.REG[0] = ATTR_opts___Option____default_value(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -166,7 +166,7 @@ void opts___Option___default_value__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/opts.nit:37 */
+  /* ../lib/opts.nit:37 */
   ATTR_opts___Option____default_value(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -194,7 +194,7 @@ void opts___Option___init_opt(val_t p0, val_t p1, val_t p2, val_t p3, int* init_
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./../lib/opts.nit:43 */
+  /* ../lib/opts.nit:43 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -208,11 +208,11 @@ void opts___Option___init_opt(val_t p0, val_t p1, val_t p2, val_t p3, int* init_
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/opts.nit:44 */
+    /* ../lib/opts.nit:44 */
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
     ATTR_opts___Option____names(fra.me.REG[0]) = fra.me.REG[4];
   } else {
-    /* ./../lib/opts.nit:46 */
+    /* ../lib/opts.nit:46 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_opts, 46);
@@ -220,14 +220,14 @@ void opts___Option___init_opt(val_t p0, val_t p1, val_t p2, val_t p3, int* init_
     fra.me.REG[3] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[3])(fra.me.REG[3]);
     ATTR_opts___Option____names(fra.me.REG[0]) = fra.me.REG[3];
   }
-  /* ./../lib/opts.nit:48 */
+  /* ../lib/opts.nit:48 */
   ATTR_opts___Option____helptext(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/opts.nit:49 */
+  /* ../lib/opts.nit:49 */
   REGB0 = TAG_Bool(false);
   ATTR_opts___Option____mandatory(fra.me.REG[0]) = REGB0;
-  /* ./../lib/opts.nit:50 */
+  /* ../lib/opts.nit:50 */
   ATTR_opts___Option____default_value(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./../lib/opts.nit:51 */
+  /* ../lib/opts.nit:51 */
   ATTR_opts___Option____value(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -249,14 +249,14 @@ void opts___Option___add_aliases(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/opts.nit:54 */
+  /* ../lib/opts.nit:54 */
   fra.me.REG[2] = fra.me.REG[0];
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[String]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_opts, 54);
   }
-  /* ./../lib/opts.nit:55 */
+  /* ../lib/opts.nit:55 */
   REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -280,7 +280,7 @@ val_t opts___Option___to_s(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/opts.nit:58 */
+  /* ../lib/opts.nit:58 */
   REGB0 = TAG_Int(2);
   fra.me.REG[0] = CALL_opts___Option___pretty(fra.me.REG[0])(fra.me.REG[0], REGB0);
   goto label1;
@@ -311,7 +311,7 @@ val_t opts___Option___pretty(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/opts.nit:63 */
+  /* ../lib/opts.nit:63 */
   if (!once_value_1) {
     fra.me.REG[1] = BOX_NativeString("  ");
     REGB1 = TAG_Int(2);
@@ -321,7 +321,7 @@ val_t opts___Option___pretty(val_t p0, val_t p1){
   } else fra.me.REG[1] = once_value_1;
   fra.me.REG[1] = fra.me.REG[1];
   fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___from(fra.me.REG[1]);
-  /* ./../lib/opts.nit:64 */
+  /* ../lib/opts.nit:64 */
   REGB1 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -338,7 +338,7 @@ val_t opts___Option___pretty(val_t p0, val_t p1){
   fra.me.REG[3] = fra.me.REG[3];
   fra.me.REG[3] = CALL_standard___string___Collection___join(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./../lib/opts.nit:65 */
+  /* ../lib/opts.nit:65 */
   if (!once_value_3) {
     fra.me.REG[3] = BOX_NativeString("  ");
     REGB1 = TAG_Int(2);
@@ -348,25 +348,25 @@ val_t opts___Option___pretty(val_t p0, val_t p1){
   } else fra.me.REG[3] = once_value_3;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./../lib/opts.nit:67 */
+  /* ../lib/opts.nit:67 */
   REGB0 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
-  /* ./../lib/opts.nit:67 */
+  /* ../lib/opts.nit:67 */
   if (UNTAG_Bool(REGB0)) {
     if (!once_value_4) {
       fra.me.REG[3] = BOX_NativeString(" ");
@@ -379,10 +379,10 @@ val_t opts___Option___pretty(val_t p0, val_t p1){
     fra.me.REG[3] = CALL_standard___string___String_____star(fra.me.REG[3])(fra.me.REG[3], REGB1);
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./../lib/opts.nit:68 */
+  /* ../lib/opts.nit:68 */
   fra.me.REG[0] = CALL_opts___Option___helptext(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./../lib/opts.nit:70 */
+  /* ../lib/opts.nit:70 */
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   goto label5;
   label5: while(0);
@@ -408,9 +408,9 @@ val_t opts___Option___pretty_default(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/opts.nit:75 */
+  /* ../lib/opts.nit:75 */
   fra.me.REG[0] = CALL_opts___Option___default_value(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/opts.nit:76 */
+  /* ../lib/opts.nit:76 */
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -450,7 +450,7 @@ val_t opts___Option___pretty_default(val_t p0){
     fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
     goto label3;
   }
-  /* ./../lib/opts.nit:77 */
+  /* ../lib/opts.nit:77 */
   if (!once_value_4) {
     fra.me.REG[0] = BOX_NativeString("");
     REGB0 = TAG_Int(0);
@@ -475,7 +475,7 @@ void opts___Option___read_param(val_t p0, val_t p1){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/opts.nit:80 */
+  /* ../lib/opts.nit:80 */
   nit_abort("Deferred method called", NULL, LOCATE_opts, 80);
   stack_frame_head = fra.me.prev;
   return;
@@ -496,7 +496,7 @@ void opts___OptionText___init(val_t p0, val_t p1, int* init_table){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/opts.nit:86 */
+  /* ../lib/opts.nit:86 */
   CALL_opts___Option___init_opt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], NIT_NULL, NIT_NULL, init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
@@ -516,7 +516,7 @@ val_t opts___OptionText___pretty(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/opts.nit:88 */
+  /* ../lib/opts.nit:88 */
   fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -535,7 +535,7 @@ val_t opts___OptionText___to_s(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/opts.nit:90 */
+  /* ../lib/opts.nit:90 */
   fra.me.REG[0] = CALL_opts___Option___helptext(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -562,7 +562,7 @@ void opts___OptionBool___init(val_t p0, val_t p1, val_t p2, int* init_table){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/opts.nit:97 */
+  /* ../lib/opts.nit:97 */
   fra.me.REG[3] = fra.me.REG[0];
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[String]*/;
   if (UNTAG_Bool(REGB0)) {
@@ -590,7 +590,7 @@ void opts___OptionBool___read_param(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/opts.nit:99 */
+  /* ../lib/opts.nit:99 */
   REGB0 = TAG_Bool(true);
   CALL_opts___Option___value__eq(fra.me.REG[0])(fra.me.REG[0], REGB0);
   stack_frame_head = fra.me.prev;
@@ -616,7 +616,7 @@ void opts___OptionCount___init(val_t p0, val_t p1, val_t p2, int* init_table){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/opts.nit:106 */
+  /* ../lib/opts.nit:106 */
   fra.me.REG[3] = fra.me.REG[0];
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[String]*/;
   if (UNTAG_Bool(REGB0)) {
@@ -644,12 +644,12 @@ void opts___OptionCount___read_param(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/opts.nit:108 */
+  /* ../lib/opts.nit:108 */
   fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB0 = TAG_Int(UNTAG_Int(fra.me.REG[1])+UNTAG_Int(REGB0));
-  /* ./../lib/opts.nit:108 */
+  /* ../lib/opts.nit:108 */
   CALL_opts___Option___value__eq(fra.me.REG[0])(fra.me.REG[0], REGB0);
   stack_frame_head = fra.me.prev;
   return;
@@ -664,7 +664,7 @@ val_t opts___OptionParameter___convert(val_t p0, val_t p1){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/opts.nit:114 */
+  /* ../lib/opts.nit:114 */
   nit_abort("Deferred method called", NULL, LOCATE_opts, 114);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -685,14 +685,14 @@ void opts___OptionParameter___read_param(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/opts.nit:118 */
+  /* ../lib/opts.nit:118 */
   REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/opts.nit:119 */
+    /* ../lib/opts.nit:119 */
     fra.me.REG[2] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[2] = CALL_opts___OptionParameter___convert(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
     CALL_opts___Option___value__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-    /* ./../lib/opts.nit:120 */
+    /* ../lib/opts.nit:120 */
     CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
   }
   stack_frame_head = fra.me.prev;
@@ -718,7 +718,7 @@ void opts___OptionParameter___init_opt(val_t p0, val_t p1, val_t p2, val_t p3, i
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./../lib/opts.nit:126 */
+  /* ../lib/opts.nit:126 */
   CALL_opts___Option___init_opt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos4] = 1;
@@ -744,7 +744,7 @@ void opts___OptionString___init(val_t p0, val_t p1, val_t p2, int* init_table){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/opts.nit:133 */
+  /* ../lib/opts.nit:133 */
   fra.me.REG[3] = fra.me.REG[0];
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[String]*/;
   if (UNTAG_Bool(REGB0)) {
@@ -770,7 +770,7 @@ val_t opts___OptionString___convert(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/opts.nit:135 */
+  /* ../lib/opts.nit:135 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -807,38 +807,38 @@ void opts___OptionEnum___init(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4,
   fra.me.REG[2] = p2;
   REGB0 = p3;
   fra.me.REG[3] = p4;
-  /* ./../lib/opts.nit:143 */
+  /* ../lib/opts.nit:143 */
   fra.me.REG[4] = fra.me.REG[0];
   REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[String]*/;
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_opts, 143);
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/opts.nit:145 */
+  /* ../lib/opts.nit:145 */
   REGB2 = TAG_Int(0);
   REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB3)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
-  /* ./../lib/opts.nit:145 */
+  /* ../lib/opts.nit:145 */
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_opts, 145);
   }
-  /* ./../lib/opts.nit:146 */
+  /* ../lib/opts.nit:146 */
   fra.me.REG[0] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[1])(fra.me.REG[1]);
   ATTR_opts___OptionEnum____values(fra.me.REG[4]) = fra.me.REG[0];
-  /* ./../lib/opts.nit:147 */
+  /* ../lib/opts.nit:147 */
   REGB2 = TAG_Int(5);
   fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
   if (!once_value_1) {
@@ -900,7 +900,7 @@ val_t opts___OptionEnum___convert(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/opts.nit:152 */
+  /* ../lib/opts.nit:152 */
   REGB0 = TAG_Bool(ATTR_opts___OptionEnum____values(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -908,7 +908,7 @@ val_t opts___OptionEnum___convert(val_t p0, val_t p1){
   }
   fra.me.REG[0] = ATTR_opts___OptionEnum____values(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___SequenceRead___index_of(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./../lib/opts.nit:153 */
+  /* ../lib/opts.nit:153 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -930,7 +930,7 @@ val_t opts___OptionEnum___value_name(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/opts.nit:156 */
+  /* ../lib/opts.nit:156 */
   REGB0 = TAG_Bool(ATTR_opts___OptionEnum____values(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -938,18 +938,18 @@ val_t opts___OptionEnum___value_name(val_t p0){
   }
   fra.me.REG[1] = ATTR_opts___OptionEnum____values(fra.me.REG[0]);
   fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:278 */
+  /* ../lib/standard/collection/array.nit:278 */
   REGB0 = fra.me.REG[0];
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -962,29 +962,29 @@ val_t opts___OptionEnum___value_name(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
   } else {
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB2 = TAG_Bool(false);
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+    nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
   }
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
   REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
   }
-  /* ./../lib/standard//collection//array.nit:718 */
+  /* ../lib/standard/collection/array.nit:718 */
   fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)];
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   goto label1;
   label1: while(0);
-  /* ./../lib/opts.nit:156 */
+  /* ../lib/opts.nit:156 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -1011,9 +1011,9 @@ val_t opts___OptionEnum___pretty_default(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/opts.nit:158 */
+  /* ../lib/opts.nit:158 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./../lib/opts.nit:160 */
+  /* ../lib/opts.nit:160 */
   fra.me.REG[2] = CALL_opts___Option___default_value(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1023,15 +1023,15 @@ val_t opts___OptionEnum___pretty_default(val_t p0){
       REGB1 = TAG_Bool(false);
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB1 = TAG_Bool((fra.me.REG[2])==(NIT_NULL));
-      /* ./../lib/opts.nit:160 */
+      /* ../lib/opts.nit:160 */
       REGB0 = REGB1;
     }
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/opts.nit:161 */
+    /* ../lib/opts.nit:161 */
     REGB0 = TAG_Int(3);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -1055,18 +1055,18 @@ val_t opts___OptionEnum___pretty_default(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_opts, 161);
     }
-    /* ./../lib/standard//collection//array.nit:278 */
+    /* ../lib/standard/collection/array.nit:278 */
     REGB0 = fra.me.REG[1];
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB1 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     if (UNTAG_Bool(REGB1)) {
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
@@ -1079,29 +1079,29 @@ val_t opts___OptionEnum___pretty_default(val_t p0){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
     } else {
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB2 = TAG_Bool(false);
       REGB1 = REGB2;
     }
     if (UNTAG_Bool(REGB1)) {
     } else {
-      nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+      nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
     }
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
     REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
     }
-    /* ./../lib/standard//collection//array.nit:718 */
+    /* ../lib/standard/collection/array.nit:718 */
     fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     goto label2;
     label2: while(0);
-    /* ./../lib/opts.nit:161 */
+    /* ../lib/opts.nit:161 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
     if (!once_value_3) {
       fra.me.REG[3] = BOX_NativeString(")");
@@ -1115,7 +1115,7 @@ val_t opts___OptionEnum___pretty_default(val_t p0){
     fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
     goto label4;
   } else {
-    /* ./../lib/opts.nit:163 */
+    /* ../lib/opts.nit:163 */
     if (!once_value_5) {
       fra.me.REG[3] = BOX_NativeString("");
       REGB0 = TAG_Int(0);
@@ -1153,7 +1153,7 @@ void opts___OptionInt___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_t
   fra.me.REG[1] = p1;
   REGB0 = p2;
   fra.me.REG[2] = p3;
-  /* ./../lib/opts.nit:172 */
+  /* ../lib/opts.nit:172 */
   fra.me.REG[3] = fra.me.REG[0];
   REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[String]*/;
   if (UNTAG_Bool(REGB1)) {
@@ -1180,7 +1180,7 @@ val_t opts___OptionInt___convert(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/opts.nit:174 */
+  /* ../lib/opts.nit:174 */
   REGB0 = CALL_standard___string___AbstractString___to_i(fra.me.REG[1])(fra.me.REG[1]);
   goto label1;
   label1: while(0);
@@ -1207,17 +1207,17 @@ void opts___OptionArray___init(val_t p0, val_t p1, val_t p2, int* init_table){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/opts.nit:181 */
+  /* ../lib/opts.nit:181 */
   fra.me.REG[3] = fra.me.REG[0];
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[String]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_opts, 181);
   }
-  /* ./../lib/opts.nit:183 */
+  /* ../lib/opts.nit:183 */
   fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
   ATTR_opts___OptionArray____values(fra.me.REG[3]) = fra.me.REG[0];
-  /* ./../lib/opts.nit:184 */
+  /* ../lib/opts.nit:184 */
   REGB0 = TAG_Bool(ATTR_opts___OptionArray____values(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1245,7 +1245,7 @@ val_t opts___OptionArray___convert(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/opts.nit:190 */
+  /* ../lib/opts.nit:190 */
   REGB0 = TAG_Bool(ATTR_opts___OptionArray____values(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1253,7 +1253,7 @@ val_t opts___OptionArray___convert(val_t p0, val_t p1){
   }
   fra.me.REG[2] = ATTR_opts___OptionArray____values(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./../lib/opts.nit:191 */
+  /* ../lib/opts.nit:191 */
   REGB0 = TAG_Bool(ATTR_opts___OptionArray____values(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1278,7 +1278,7 @@ val_t opts___OptionContext___options(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/opts.nit:196 */
+  /* ../lib/opts.nit:196 */
   REGB0 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1301,7 +1301,7 @@ val_t opts___OptionContext___rest(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/opts.nit:197 */
+  /* ../lib/opts.nit:197 */
   REGB0 = TAG_Bool(ATTR_opts___OptionContext____rest(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1334,29 +1334,29 @@ void opts___OptionContext___usage(val_t p0){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/opts.nit:203 */
+  /* ../lib/opts.nit:203 */
   REGB0 = TAG_Int(1);
-  /* ./../lib/opts.nit:204 */
+  /* ../lib/opts.nit:204 */
   REGB1 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_options", LOCATE_opts, 204);
   }
   fra.me.REG[1] = ATTR_opts___OptionContext____options(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -1368,35 +1368,35 @@ void opts___OptionContext___usage(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
-      /* ./../lib/opts.nit:205 */
+      /* ../lib/opts.nit:205 */
       REGB2 = TAG_Int(3);
-      /* ./../lib/opts.nit:206 */
+      /* ../lib/opts.nit:206 */
       fra.me.REG[3] = CALL_opts___Option___names(fra.me.REG[3])(fra.me.REG[3]);
-      /* ./../lib/standard//collection//array.nit:269 */
+      /* ../lib/standard/collection/array.nit:269 */
       REGB3 = TAG_Int(0);
-      /* ./../lib/standard//collection//array.nit:270 */
+      /* ../lib/standard/collection/array.nit:270 */
       REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
       if (UNTAG_Bool(REGB4)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
       }
       REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-      /* ./../lib/standard//collection//array.nit:271 */
+      /* ../lib/standard/collection/array.nit:271 */
       fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       while(1) {
-        /* ./../lib/standard//collection//array.nit:24 */
+        /* ../lib/standard/collection/array.nit:24 */
         REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
         if (UNTAG_Bool(REGB4)) {
         } else {
@@ -1408,39 +1408,39 @@ void opts___OptionContext___usage(val_t p0){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         if (UNTAG_Bool(REGB4)) {
-          /* ./../lib/standard//collection//array.nit:273 */
+          /* ../lib/standard/collection/array.nit:273 */
           REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
           if (UNTAG_Bool(REGB4)) {
             nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
           }
-          /* ./../lib/standard//collection//array.nit:718 */
+          /* ../lib/standard/collection/array.nit:718 */
           fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB3)];
-          /* ./../lib/standard//collection//array.nit:24 */
+          /* ../lib/standard/collection/array.nit:24 */
           REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
           if (UNTAG_Bool(REGB4)) {
           } else {
             nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
           }
           REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-          /* ./../lib/opts.nit:207 */
+          /* ../lib/opts.nit:207 */
           REGB5 = TAG_Int(2);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB5 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB5));
           REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
-          /* ./../lib/opts.nit:207 */
+          /* ../lib/opts.nit:207 */
           REGB2 = REGB5;
-          /* ./../lib/standard//collection//array.nit:274 */
+          /* ../lib/standard/collection/array.nit:274 */
           REGB5 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
-          /* ./../lib/standard//collection//array.nit:274 */
+          /* ../lib/standard/collection/array.nit:274 */
           REGB3 = REGB5;
         } else {
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           goto label1;
         }
       }
@@ -1450,45 +1450,45 @@ void opts___OptionContext___usage(val_t p0){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
-      /* ./../lib/opts.nit:209 */
+      /* ../lib/opts.nit:209 */
       if (UNTAG_Bool(REGB3)) {
         REGB0 = REGB2;
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/opts.nit:212 */
+  /* ../lib/opts.nit:212 */
   REGB1 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_options", LOCATE_opts, 212);
   }
   fra.me.REG[2] = ATTR_opts___OptionContext____options(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -1500,28 +1500,28 @@ void opts___OptionContext___usage(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB1)];
-      /* ./../lib/opts.nit:213 */
+      /* ../lib/opts.nit:213 */
       fra.me.REG[4] = CALL_opts___Option___pretty(fra.me.REG[4])(fra.me.REG[4], REGB0);
       CALL_standard___file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label3;
     }
   }
@@ -1543,9 +1543,9 @@ void opts___OptionContext___parse(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/opts.nit:220 */
+  /* ../lib/opts.nit:220 */
   fra.me.REG[1] = CALL_standard___collection___abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./../lib/opts.nit:221 */
+  /* ../lib/opts.nit:221 */
   CALL_opts___OptionContext___parse_intern(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -1571,18 +1571,18 @@ void opts___OptionContext___parse_intern(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/opts.nit:226 */
+  /* ../lib/opts.nit:226 */
   REGB0 = TAG_Bool(true);
-  /* ./../lib/opts.nit:227 */
+  /* ../lib/opts.nit:227 */
   CALL_opts___OptionContext___build(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/opts.nit:228 */
+  /* ../lib/opts.nit:228 */
   REGB1 = TAG_Bool(ATTR_opts___OptionContext____rest(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_rest", LOCATE_opts, 228);
   }
   fra.me.REG[2] = ATTR_opts___OptionContext____rest(fra.me.REG[0]);
-  /* ./../lib/opts.nit:230 */
+  /* ../lib/opts.nit:230 */
   while(1) {
     if (UNTAG_Bool(REGB0)) {
       REGB1 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
@@ -1591,9 +1591,9 @@ void opts___OptionContext___parse_intern(val_t p0, val_t p1){
       REGB1 = REGB2;
     }
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/opts.nit:231 */
+      /* ../lib/opts.nit:231 */
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./../lib/opts.nit:232 */
+      /* ../lib/opts.nit:232 */
       if (!once_value_1) {
         fra.me.REG[4] = BOX_NativeString("--");
         REGB1 = TAG_Int(2);
@@ -1609,16 +1609,16 @@ void opts___OptionContext___parse_intern(val_t p0, val_t p1){
         REGB1 = REGB2;
       }
       if (UNTAG_Bool(REGB1)) {
-        /* ./../lib/opts.nit:233 */
+        /* ../lib/opts.nit:233 */
         CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
-        /* ./../lib/opts.nit:234 */
+        /* ../lib/opts.nit:234 */
         fra.me.REG[4] = CALL_standard___collection___array___Iterator___to_a(fra.me.REG[1])(fra.me.REG[1]);
         CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-        /* ./../lib/opts.nit:235 */
+        /* ../lib/opts.nit:235 */
         REGB1 = TAG_Bool(false);
         REGB0 = REGB1;
       } else {
-        /* ./../lib/opts.nit:237 */
+        /* ../lib/opts.nit:237 */
         REGB1 = TAG_Bool(ATTR_opts___OptionContext____optmap(fra.me.REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
@@ -1627,7 +1627,7 @@ void opts___OptionContext___parse_intern(val_t p0, val_t p1){
         fra.me.REG[4] = ATTR_opts___OptionContext____optmap(fra.me.REG[0]);
         REGB1 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
         if (UNTAG_Bool(REGB1)) {
-          /* ./../lib/opts.nit:238 */
+          /* ../lib/opts.nit:238 */
           REGB1 = TAG_Bool(ATTR_opts___OptionContext____optmap(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
           } else {
@@ -1635,20 +1635,20 @@ void opts___OptionContext___parse_intern(val_t p0, val_t p1){
           }
           fra.me.REG[4] = ATTR_opts___OptionContext____optmap(fra.me.REG[0]);
           fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-          /* ./../lib/opts.nit:239 */
+          /* ../lib/opts.nit:239 */
           CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
-          /* ./../lib/opts.nit:240 */
+          /* ../lib/opts.nit:240 */
           CALL_opts___Option___read_param(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
         } else {
-          /* ./../lib/opts.nit:242 */
+          /* ../lib/opts.nit:242 */
           fra.me.REG[3] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-          /* ./../lib/opts.nit:243 */
+          /* ../lib/opts.nit:243 */
           CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
         }
       }
     } else {
-      /* ./../lib/opts.nit:230 */
+      /* ../lib/opts.nit:230 */
       goto label2;
     }
   }
@@ -1676,27 +1676,27 @@ void opts___OptionContext___add_option(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/opts.nit:249 */
+  /* ../lib/opts.nit:249 */
   fra.me.REG[2] = fra.me.REG[0];
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Option]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_opts, 249);
   }
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1708,18 +1708,18 @@ void opts___OptionContext___add_option(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
-      /* ./../lib/opts.nit:252 */
+      /* ../lib/opts.nit:252 */
       REGB1 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[2])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -1727,14 +1727,14 @@ void opts___OptionContext___add_option(val_t p0, val_t p1){
       }
       fra.me.REG[4] = ATTR_opts___OptionContext____options(fra.me.REG[2]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label1;
     }
   }
@@ -1757,13 +1757,13 @@ void opts___OptionContext___init(val_t p0, int* init_table){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/opts.nit:258 */
+  /* ../lib/opts.nit:258 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_opts___OptionContext____options(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/opts.nit:259 */
+  /* ../lib/opts.nit:259 */
   fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_opts___OptionContext____optmap(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/opts.nit:260 */
+  /* ../lib/opts.nit:260 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_opts___OptionContext____rest(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -1793,27 +1793,27 @@ void opts___OptionContext___build(val_t p0){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/opts.nit:265 */
+  /* ../lib/opts.nit:265 */
   REGB0 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_options", LOCATE_opts, 265);
   }
   fra.me.REG[1] = ATTR_opts___OptionContext____options(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1825,33 +1825,33 @@ void opts___OptionContext___build(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./../lib/opts.nit:266 */
+      /* ../lib/opts.nit:266 */
       fra.me.REG[4] = CALL_opts___Option___names(fra.me.REG[3])(fra.me.REG[3]);
-      /* ./../lib/standard//collection//array.nit:269 */
+      /* ../lib/standard/collection/array.nit:269 */
       REGB1 = TAG_Int(0);
-      /* ./../lib/standard//collection//array.nit:270 */
+      /* ../lib/standard/collection/array.nit:270 */
       REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
       }
       REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-      /* ./../lib/standard//collection//array.nit:271 */
+      /* ../lib/standard/collection/array.nit:271 */
       fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       while(1) {
-        /* ./../lib/standard//collection//array.nit:24 */
+        /* ../lib/standard/collection/array.nit:24 */
         REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
         } else {
@@ -1863,18 +1863,18 @@ void opts___OptionContext___build(val_t p0){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         if (UNTAG_Bool(REGB2)) {
-          /* ./../lib/standard//collection//array.nit:273 */
+          /* ../lib/standard/collection/array.nit:273 */
           REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
             nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
           }
-          /* ./../lib/standard//collection//array.nit:718 */
+          /* ../lib/standard/collection/array.nit:718 */
           fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
-          /* ./../lib/opts.nit:267 */
+          /* ../lib/opts.nit:267 */
           REGB2 = TAG_Bool(ATTR_opts___OptionContext____optmap(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
           } else {
@@ -1882,26 +1882,26 @@ void opts___OptionContext___build(val_t p0){
           }
           fra.me.REG[7] = ATTR_opts___OptionContext____optmap(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6], fra.me.REG[3]);
-          /* ./../lib/standard//collection//array.nit:274 */
+          /* ../lib/standard/collection/array.nit:274 */
           REGB2 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-          /* ./../lib/standard//collection//array.nit:274 */
+          /* ../lib/standard/collection/array.nit:274 */
           REGB1 = REGB2;
         } else {
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           goto label1;
         }
       }
       label1: while(0);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label2;
     }
   }
index 8d503dc..ad317e3 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/opts. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/opts. */
 #ifndef opts_sep
 #define opts_sep
 #include "standard._sep.h"
index a3578a4..ad6f818 100644 (file)
@@ -13,7 +13,7 @@ val_t parser___State___state(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser.nit:9 */
+  /* parser/parser.nit:9 */
   REGB0 = TAG_Bool(ATTR_parser___State____state(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -37,7 +37,7 @@ void parser___State___state__eq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./parser//parser.nit:9 */
+  /* parser/parser.nit:9 */
   ATTR_parser___State____state(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -54,7 +54,7 @@ val_t parser___State___nodes(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser.nit:12 */
+  /* parser/parser.nit:12 */
   fra.me.REG[0] = ATTR_parser___State____nodes(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -73,7 +73,7 @@ void parser___State___nodes__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:12 */
+  /* parser/parser.nit:12 */
   ATTR_parser___State____nodes(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -96,9 +96,9 @@ void parser___State___init(val_t p0, val_t p1, val_t p2, int* init_table){
   fra.me.REG[0] = p0;
   REGB0 = p1;
   fra.me.REG[1] = p2;
-  /* ./parser//parser.nit:17 */
+  /* parser/parser.nit:17 */
   ATTR_parser___State____state(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser.nit:18 */
+  /* parser/parser.nit:18 */
   ATTR_parser___State____nodes(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -121,18 +121,18 @@ void parser___Parser___init(val_t p0, val_t p1, int* init_table){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:36 */
+  /* parser/parser.nit:36 */
   ATTR_parser___Parser____lexer(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser.nit:37 */
+  /* parser/parser.nit:37 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_parser___Parser____stack(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser.nit:38 */
+  /* parser/parser.nit:38 */
   REGB0 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:236 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB0 = TAG_Int(-UNTAG_Int(REGB0));
-  /* ./parser//parser.nit:38 */
+  /* parser/parser.nit:38 */
   ATTR_parser___Parser____stack_pos(fra.me.REG[0]) = REGB0;
-  /* ./parser//parser.nit:39 */
+  /* parser/parser.nit:39 */
   CALL_parser___Parser___build_reduce_table(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
@@ -159,57 +159,57 @@ val_t parser___Parser___go_to(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./parser//parser.nit:45 */
+  /* parser/parser.nit:45 */
   REGB1 = CALL_parser___Parser___state(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./parser//parser.nit:46 */
+  /* parser/parser.nit:46 */
   REGB2 = TAG_Int(1);
-  /* ./parser//parser.nit:47 */
+  /* parser/parser.nit:47 */
   REGB3 = TAG_Int(0);
   REGB3 = CALL_parser___tables___TablesCapable___parser_goto(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB3);
   REGB4 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB4 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB4));
-  /* ./parser//parser.nit:49 */
+  /* parser/parser.nit:49 */
   while(1) {
     REGB3 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:231 */
+    /* ../lib/standard/kernel.nit:231 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB4));
-    /* ./parser//parser.nit:49 */
+    /* parser/parser.nit:49 */
     if (UNTAG_Bool(REGB3)) {
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
-      /* ./parser//parser.nit:50 */
+      /* parser/parser.nit:50 */
       REGB5 = TAG_Int(2);
-      /* ./../lib/standard//kernel.nit:239 */
+      /* ../lib/standard/kernel.nit:239 */
       REGB5 = TAG_Int(UNTAG_Int(REGB3)/UNTAG_Int(REGB5));
-      /* ./parser//parser.nit:51 */
+      /* parser/parser.nit:51 */
       REGB3 = TAG_Int(2);
-      /* ./../lib/standard//kernel.nit:238 */
+      /* ../lib/standard/kernel.nit:238 */
       REGB3 = TAG_Int(UNTAG_Int(REGB5)*UNTAG_Int(REGB3));
-      /* ./parser//parser.nit:51 */
+      /* parser/parser.nit:51 */
       REGB6 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB6 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB6));
-      /* ./parser//parser.nit:53 */
+      /* parser/parser.nit:53 */
       REGB3 = CALL_parser___tables___TablesCapable___parser_goto(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB6);
       REGB7 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB7)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB7 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB3));
-      /* ./parser//parser.nit:54 */
+      /* parser/parser.nit:54 */
       if (UNTAG_Bool(REGB7)) {
-        /* ./parser//parser.nit:55 */
+        /* parser/parser.nit:55 */
         REGB7 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:237 */
+        /* ../lib/standard/kernel.nit:237 */
         REGB7 = TAG_Int(UNTAG_Int(REGB5)-UNTAG_Int(REGB7));
-        /* ./parser//parser.nit:55 */
+        /* parser/parser.nit:55 */
         REGB4 = REGB7;
       } else {
         REGB7 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
@@ -217,33 +217,33 @@ val_t parser___Parser___go_to(val_t p0, val_t p1){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:234 */
+        /* ../lib/standard/kernel.nit:234 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB3));
-        /* ./parser//parser.nit:56 */
+        /* parser/parser.nit:56 */
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser.nit:57 */
+          /* parser/parser.nit:57 */
           REGB3 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB3 = TAG_Int(UNTAG_Int(REGB5)+UNTAG_Int(REGB3));
-          /* ./parser//parser.nit:57 */
+          /* parser/parser.nit:57 */
           REGB2 = REGB3;
         } else {
-          /* ./parser//parser.nit:59 */
+          /* parser/parser.nit:59 */
           REGB3 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB3 = TAG_Int(UNTAG_Int(REGB6)+UNTAG_Int(REGB3));
-          /* ./parser//parser.nit:59 */
+          /* parser/parser.nit:59 */
           REGB3 = CALL_parser___tables___TablesCapable___parser_goto(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB3);
           goto label1;
         }
       }
     } else {
-      /* ./parser//parser.nit:49 */
+      /* parser/parser.nit:49 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./parser//parser.nit:63 */
+  /* parser/parser.nit:63 */
   REGB2 = TAG_Int(2);
   REGB2 = CALL_parser___tables___TablesCapable___parser_goto(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB2);
   REGB3 = REGB2;
@@ -272,7 +272,7 @@ void parser___Parser___push(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   REGB0 = p1;
   fra.me.REG[1] = p2;
-  /* ./parser//parser.nit:69 */
+  /* parser/parser.nit:69 */
   REGB1 = TAG_Bool(ATTR_parser___Parser____stack_pos(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -280,18 +280,18 @@ void parser___Parser___push(val_t p0, val_t p1, val_t p2){
   }
   REGB1 = ATTR_parser___Parser____stack_pos(fra.me.REG[0]);
   REGB2 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-  /* ./parser//parser.nit:70 */
+  /* parser/parser.nit:70 */
   ATTR_parser___Parser____stack_pos(fra.me.REG[0]) = REGB2;
-  /* ./parser//parser.nit:71 */
+  /* parser/parser.nit:71 */
   REGB1 = TAG_Bool(ATTR_parser___Parser____stack(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_stack", LOCATE_parser, 71);
   }
   fra.me.REG[2] = ATTR_parser___Parser____stack(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -303,27 +303,27 @@ void parser___Parser___push(val_t p0, val_t p1, val_t p2){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
-  /* ./parser//parser.nit:71 */
+  /* parser/parser.nit:71 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./parser//parser.nit:72 */
+    /* parser/parser.nit:72 */
     REGB1 = TAG_Bool(ATTR_parser___Parser____stack(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_stack", LOCATE_parser, 72);
     }
     fra.me.REG[2] = ATTR_parser___Parser____stack(fra.me.REG[0]);
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB1 = TAG_Int(0);
     REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     if (UNTAG_Bool(REGB1)) {
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
@@ -336,34 +336,34 @@ void parser___Parser___push(val_t p0, val_t p1, val_t p2){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
     } else {
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB3 = TAG_Bool(false);
       REGB1 = REGB3;
     }
     if (UNTAG_Bool(REGB1)) {
     } else {
-      nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+      nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
     }
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
     REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
     }
-    /* ./../lib/standard//collection//array.nit:718 */
+    /* ../lib/standard/collection/array.nit:718 */
     fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB2)];
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     goto label1;
     label1: while(0);
-    /* ./parser//parser.nit:73 */
+    /* parser/parser.nit:73 */
     CALL_parser___State___state__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    /* ./parser//parser.nit:74 */
+    /* parser/parser.nit:74 */
     CALL_parser___State___nodes__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   } else {
-    /* ./parser//parser.nit:76 */
+    /* parser/parser.nit:76 */
     REGB2 = TAG_Bool(ATTR_parser___Parser____stack(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -392,7 +392,7 @@ val_t parser___Parser___state(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser.nit:83 */
+  /* parser/parser.nit:83 */
   REGB0 = TAG_Bool(ATTR_parser___Parser____stack(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -405,16 +405,16 @@ val_t parser___Parser___state(val_t p0){
     nit_abort("Uninitialized attribute %s", "_stack_pos", LOCATE_parser, 83);
   }
   REGB0 = ATTR_parser___Parser____stack_pos(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -427,29 +427,29 @@ val_t parser___Parser___state(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
   } else {
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB2 = TAG_Bool(false);
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+    nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
   }
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
   REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
   }
-  /* ./../lib/standard//collection//array.nit:718 */
+  /* ../lib/standard/collection/array.nit:718 */
   fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)];
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   goto label1;
   label1: while(0);
-  /* ./parser//parser.nit:83 */
+  /* parser/parser.nit:83 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_parser, 83);
@@ -476,7 +476,7 @@ val_t parser___Parser___pop(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser.nit:89 */
+  /* parser/parser.nit:89 */
   REGB0 = TAG_Bool(ATTR_parser___Parser____stack(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -489,16 +489,16 @@ val_t parser___Parser___pop(val_t p0){
     nit_abort("Uninitialized attribute %s", "_stack_pos", LOCATE_parser, 89);
   }
   REGB0 = ATTR_parser___Parser____stack_pos(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -511,35 +511,35 @@ val_t parser___Parser___pop(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
   } else {
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB2 = TAG_Bool(false);
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+    nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
   }
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
   REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
   }
-  /* ./../lib/standard//collection//array.nit:718 */
+  /* ../lib/standard/collection/array.nit:718 */
   fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)];
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   goto label1;
   label1: while(0);
-  /* ./parser//parser.nit:89 */
+  /* parser/parser.nit:89 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_parser, 89);
   }
   fra.me.REG[1] = CALL_parser___State___nodes(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:90 */
+  /* parser/parser.nit:90 */
   REGB0 = TAG_Bool(ATTR_parser___Parser____stack_pos(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -547,11 +547,11 @@ val_t parser___Parser___pop(val_t p0){
   }
   REGB0 = ATTR_parser___Parser____stack_pos(fra.me.REG[0]);
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./parser//parser.nit:90 */
+  /* parser/parser.nit:90 */
   ATTR_parser___Parser____stack_pos(fra.me.REG[0]) = REGB1;
-  /* ./parser//parser.nit:91 */
+  /* parser/parser.nit:91 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -570,6 +570,7 @@ val_t parser___Parser___parse(val_t p0){
   val_t REGB8;
   val_t tmp;
             static val_t once_value_4; /* Once value */
+            static val_t once_value_5; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
   fra.me.line = 94;
@@ -584,72 +585,72 @@ val_t parser___Parser___parse(val_t p0){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser.nit:97 */
+  /* parser/parser.nit:97 */
   REGB0 = TAG_Int(0);
   CALL_parser___Parser___push(fra.me.REG[0])(fra.me.REG[0], REGB0, NIT_NULL);
-  /* ./parser//parser.nit:99 */
+  /* parser/parser.nit:99 */
   REGB0 = TAG_Bool(ATTR_parser___Parser____lexer(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_lexer", LOCATE_parser, 99);
   }
   fra.me.REG[1] = ATTR_parser___Parser____lexer(fra.me.REG[0]);
-  /* ./parser//parser.nit:100 */
+  /* parser/parser.nit:100 */
   while(1) {
-    /* ./parser//parser.nit:101 */
+    /* parser/parser.nit:101 */
     fra.me.REG[2] = CALL_parser___lexer___Lexer___peek(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./parser//parser.nit:102 */
+    /* parser/parser.nit:102 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AError, ID_parser___parser_nodes___AError)) /*cast AError*/;
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser.nit:103 */
-      fra.me.REG[3] = NEW_Start_parser___parser_prod___Start___init(NIT_NULL, fra.me.REG[2]);
+      /* parser/parser.nit:103 */
+      fra.me.REG[3] = NEW_Start_parser___parser_nodes___Start___init(NIT_NULL, fra.me.REG[2]);
       goto label1;
     }
-    /* ./parser//parser.nit:106 */
+    /* parser/parser.nit:106 */
     REGB0 = CALL_parser___lexer___Token___parser_index(fra.me.REG[2])(fra.me.REG[2]);
-    /* ./parser//parser.nit:107 */
+    /* parser/parser.nit:107 */
     REGB1 = CALL_parser___Parser___state(fra.me.REG[0])(fra.me.REG[0]);
     REGB2 = TAG_Int(2);
     REGB2 = CALL_parser___tables___TablesCapable___parser_action(fra.me.REG[0])(fra.me.REG[0], REGB1, REGB2);
-    /* ./parser//parser.nit:108 */
+    /* parser/parser.nit:108 */
     REGB1 = CALL_parser___Parser___state(fra.me.REG[0])(fra.me.REG[0]);
     REGB3 = TAG_Int(3);
     REGB3 = CALL_parser___tables___TablesCapable___parser_action(fra.me.REG[0])(fra.me.REG[0], REGB1, REGB3);
-    /* ./parser//parser.nit:110 */
+    /* parser/parser.nit:110 */
     REGB1 = TAG_Int(1);
-    /* ./parser//parser.nit:111 */
+    /* parser/parser.nit:111 */
     REGB4 = CALL_parser___Parser___state(fra.me.REG[0])(fra.me.REG[0]);
     REGB5 = TAG_Int(0);
     REGB5 = CALL_parser___tables___TablesCapable___parser_action(fra.me.REG[0])(fra.me.REG[0], REGB4, REGB5);
     REGB4 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:237 */
+    /* ../lib/standard/kernel.nit:237 */
     REGB4 = TAG_Int(UNTAG_Int(REGB5)-UNTAG_Int(REGB4));
-    /* ./parser//parser.nit:113 */
+    /* parser/parser.nit:113 */
     while(1) {
       REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB5)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:231 */
+      /* ../lib/standard/kernel.nit:231 */
       REGB5 = TAG_Bool(UNTAG_Int(REGB1)<=UNTAG_Int(REGB4));
-      /* ./parser//parser.nit:113 */
+      /* parser/parser.nit:113 */
       if (UNTAG_Bool(REGB5)) {
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB5 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB4));
-        /* ./parser//parser.nit:114 */
+        /* parser/parser.nit:114 */
         REGB6 = TAG_Int(2);
-        /* ./../lib/standard//kernel.nit:239 */
+        /* ../lib/standard/kernel.nit:239 */
         REGB6 = TAG_Int(UNTAG_Int(REGB5)/UNTAG_Int(REGB6));
-        /* ./parser//parser.nit:115 */
+        /* parser/parser.nit:115 */
         REGB5 = TAG_Int(3);
-        /* ./../lib/standard//kernel.nit:238 */
+        /* ../lib/standard/kernel.nit:238 */
         REGB5 = TAG_Int(UNTAG_Int(REGB6)*UNTAG_Int(REGB5));
-        /* ./parser//parser.nit:115 */
+        /* parser/parser.nit:115 */
         REGB7 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB7 = TAG_Int(UNTAG_Int(REGB5)+UNTAG_Int(REGB7));
-        /* ./parser//parser.nit:117 */
+        /* parser/parser.nit:117 */
         REGB5 = CALL_parser___Parser___state(fra.me.REG[0])(fra.me.REG[0]);
         REGB5 = CALL_parser___tables___TablesCapable___parser_action(fra.me.REG[0])(fra.me.REG[0], REGB5, REGB7);
         REGB8 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -657,15 +658,15 @@ val_t parser___Parser___parse(val_t p0){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB8 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB5));
-        /* ./parser//parser.nit:118 */
+        /* parser/parser.nit:118 */
         if (UNTAG_Bool(REGB8)) {
-          /* ./parser//parser.nit:119 */
+          /* parser/parser.nit:119 */
           REGB8 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:237 */
+          /* ../lib/standard/kernel.nit:237 */
           REGB8 = TAG_Int(UNTAG_Int(REGB6)-UNTAG_Int(REGB8));
-          /* ./parser//parser.nit:119 */
+          /* parser/parser.nit:119 */
           REGB4 = REGB8;
         } else {
           REGB8 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -673,86 +674,86 @@ val_t parser___Parser___parse(val_t p0){
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:234 */
+          /* ../lib/standard/kernel.nit:234 */
           REGB5 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB5));
-          /* ./parser//parser.nit:120 */
+          /* parser/parser.nit:120 */
           if (UNTAG_Bool(REGB5)) {
-            /* ./parser//parser.nit:121 */
+            /* parser/parser.nit:121 */
             REGB5 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB5 = TAG_Int(UNTAG_Int(REGB6)+UNTAG_Int(REGB5));
-            /* ./parser//parser.nit:121 */
+            /* parser/parser.nit:121 */
             REGB1 = REGB5;
           } else {
-            /* ./parser//parser.nit:123 */
+            /* parser/parser.nit:123 */
             REGB5 = CALL_parser___Parser___state(fra.me.REG[0])(fra.me.REG[0]);
             REGB6 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB6 = TAG_Int(UNTAG_Int(REGB7)+UNTAG_Int(REGB6));
-            /* ./parser//parser.nit:123 */
+            /* parser/parser.nit:123 */
             REGB6 = CALL_parser___tables___TablesCapable___parser_action(fra.me.REG[0])(fra.me.REG[0], REGB5, REGB6);
             REGB2 = REGB6;
-            /* ./parser//parser.nit:124 */
+            /* parser/parser.nit:124 */
             REGB6 = CALL_parser___Parser___state(fra.me.REG[0])(fra.me.REG[0]);
             REGB5 = TAG_Int(2);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB5 = TAG_Int(UNTAG_Int(REGB7)+UNTAG_Int(REGB5));
-            /* ./parser//parser.nit:124 */
+            /* parser/parser.nit:124 */
             REGB5 = CALL_parser___tables___TablesCapable___parser_action(fra.me.REG[0])(fra.me.REG[0], REGB6, REGB5);
             REGB3 = REGB5;
-            /* ./parser//parser.nit:125 */
+            /* parser/parser.nit:125 */
             goto label2;
           }
         }
       } else {
-        /* ./parser//parser.nit:113 */
+        /* parser/parser.nit:113 */
         goto label2;
       }
     }
     label2: while(0);
-    /* ./parser//parser.nit:129 */
+    /* parser/parser.nit:129 */
     REGB1 = TAG_Int(0);
     REGB0 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
     if (UNTAG_Bool(REGB0)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB1 = TAG_Bool((REGB2)==(REGB1));
-      /* ./parser//parser.nit:129 */
+      /* parser/parser.nit:129 */
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser.nit:130 */
+      /* parser/parser.nit:130 */
       fra.me.REG[4] = CALL_parser___lexer___Lexer___next(fra.me.REG[1])(fra.me.REG[1]);
       CALL_parser___Parser___push(fra.me.REG[0])(fra.me.REG[0], REGB3, fra.me.REG[4]);
     } else {
-      /* ./parser//parser.nit:131 */
+      /* parser/parser.nit:131 */
       REGB0 = TAG_Int(1);
       REGB1 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB0));
       if (UNTAG_Bool(REGB1)) {
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB0 = TAG_Bool((REGB2)==(REGB0));
-        /* ./parser//parser.nit:131 */
+        /* parser/parser.nit:131 */
         REGB1 = REGB0;
       }
       if (UNTAG_Bool(REGB1)) {
-        /* ./parser//parser.nit:132 */
+        /* parser/parser.nit:132 */
         REGB1 = TAG_Bool(ATTR_parser___Parser____reduce_table(fra.me.REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_reduce_table", LOCATE_parser, 132);
         }
         fra.me.REG[4] = ATTR_parser___Parser____reduce_table(fra.me.REG[0]);
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB1 = TAG_Int(0);
         REGB0 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB0)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB1 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB1)) {
           REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
@@ -765,96 +766,111 @@ val_t parser___Parser___parse(val_t p0){
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB1 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB1));
         } else {
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB0 = TAG_Bool(false);
           REGB1 = REGB0;
         }
         if (UNTAG_Bool(REGB1)) {
         } else {
-          nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+          nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
         }
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
         REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB3)];
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         goto label3;
         label3: while(0);
-        /* ./parser//parser.nit:132 */
+        /* parser/parser.nit:132 */
         REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
           nit_abort("Reciever is null", NULL, LOCATE_parser, 132);
         }
         CALL_parser___ReduceAction___action(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
       } else {
-        /* ./parser//parser.nit:133 */
+        /* parser/parser.nit:133 */
         REGB3 = TAG_Int(2);
         REGB1 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB3));
         if (UNTAG_Bool(REGB1)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB3 = TAG_Bool((REGB2)==(REGB3));
-          /* ./parser//parser.nit:133 */
+          /* parser/parser.nit:133 */
           REGB1 = REGB3;
         }
         if (UNTAG_Bool(REGB1)) {
-          /* ./parser//parser.nit:134 */
+          /* parser/parser.nit:134 */
           fra.me.REG[4] = CALL_parser___lexer___Lexer___next(fra.me.REG[1])(fra.me.REG[1]);
-          /* ./parser//parser.nit:135 */
+          /* parser/parser.nit:135 */
           REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___EOF, ID_parser___parser_nodes___EOF)) /*cast EOF*/;
           if (UNTAG_Bool(REGB1)) {
           } else {
             nit_abort("Assert failed", NULL, LOCATE_parser, 135);
           }
-          /* ./parser//parser.nit:136 */
+          /* parser/parser.nit:136 */
           fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[0])(fra.me.REG[0]);
-          /* ./parser//parser.nit:137 */
+          /* parser/parser.nit:137 */
           REGB1 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AModule, ID_parser___parser_nodes___AModule)) /*cast AModule*/;
           if (UNTAG_Bool(REGB1)) {
           } else {
             nit_abort("Assert failed", NULL, LOCATE_parser, 137);
           }
-          /* ./parser//parser.nit:138 */
-          fra.me.REG[4] = NEW_Start_parser___parser_prod___Start___init(fra.me.REG[5], fra.me.REG[4]);
-          /* ./parser//parser.nit:139 */
+          /* parser/parser.nit:138 */
+          fra.me.REG[4] = NEW_Start_parser___parser_nodes___Start___init(fra.me.REG[5], fra.me.REG[4]);
+          /* parser/parser.nit:139 */
           fra.me.REG[5] = NEW_ComputeProdLocationVisitor_parser___ComputeProdLocationVisitor___init();
           CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-          /* ./parser//parser.nit:140 */
+          /* parser/parser.nit:140 */
           fra.me.REG[3] = fra.me.REG[4];
           goto label1;
         } else {
-          /* ./parser//parser.nit:141 */
+          /* parser/parser.nit:141 */
           REGB1 = TAG_Int(3);
           REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
           if (UNTAG_Bool(REGB3)) {
           } else {
-            /* ./../lib/standard//kernel.nit:227 */
+            /* ../lib/standard/kernel.nit:227 */
             REGB1 = TAG_Bool((REGB2)==(REGB1));
-            /* ./parser//parser.nit:141 */
+            /* parser/parser.nit:141 */
             REGB3 = REGB1;
           }
           if (UNTAG_Bool(REGB3)) {
-            /* ./parser//parser.nit:142 */
+            /* parser/parser.nit:142 */
+            REGB3 = TAG_Int(3);
+            fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
             if (!once_value_4) {
-              fra.me.REG[4] = BOX_NativeString("Syntax error: unexpected token.");
-              REGB3 = TAG_Int(31);
-              fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
-              once_value_4 = fra.me.REG[4];
+              fra.me.REG[5] = BOX_NativeString("Syntax error: unexpected ");
+              REGB3 = TAG_Int(25);
+              fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB3);
+              once_value_4 = fra.me.REG[5];
               register_static_object(&once_value_4);
-            } else fra.me.REG[4] = once_value_4;
-            fra.me.REG[4] = fra.me.REG[4];
+            } else fra.me.REG[5] = once_value_4;
+            fra.me.REG[5] = fra.me.REG[5];
+            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
+            fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
+            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
+            if (!once_value_5) {
+              fra.me.REG[5] = BOX_NativeString(".");
+              REGB3 = TAG_Int(1);
+              fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB3);
+              once_value_5 = fra.me.REG[5];
+              register_static_object(&once_value_5);
+            } else fra.me.REG[5] = once_value_5;
+            fra.me.REG[5] = fra.me.REG[5];
+            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
+            fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
             fra.me.REG[2] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[2])(fra.me.REG[2]);
             fra.me.REG[2] = NEW_AError_parser___lexer___AError___init_error(fra.me.REG[4], fra.me.REG[2]);
-            /* ./parser//parser.nit:143 */
-            fra.me.REG[2] = NEW_Start_parser___parser_prod___Start___init(NIT_NULL, fra.me.REG[2]);
-            /* ./parser//parser.nit:144 */
+            /* parser/parser.nit:143 */
+            fra.me.REG[2] = NEW_Start_parser___parser_nodes___Start___init(NIT_NULL, fra.me.REG[2]);
+            /* parser/parser.nit:144 */
             fra.me.REG[3] = fra.me.REG[2];
             goto label1;
           }
@@ -881,3738 +897,3788 @@ void parser___Parser___build_reduce_table(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser.nit:152 */
-  REGB0 = TAG_Int(745);
+  /* parser/parser.nit:152 */
+  REGB0 = TAG_Int(755);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  /* ./parser//parser.nit:153 */
+  /* parser/parser.nit:153 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction0_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:154 */
+  /* parser/parser.nit:154 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction1_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:155 */
+  /* parser/parser.nit:155 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction2_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:156 */
+  /* parser/parser.nit:156 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction3_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:157 */
+  /* parser/parser.nit:157 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction4_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:158 */
+  /* parser/parser.nit:158 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction5_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:159 */
+  /* parser/parser.nit:159 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction6_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:160 */
+  /* parser/parser.nit:160 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction7_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:161 */
+  /* parser/parser.nit:161 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction8_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:162 */
+  /* parser/parser.nit:162 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction9_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:163 */
+  /* parser/parser.nit:163 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction10_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:164 */
+  /* parser/parser.nit:164 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction11_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:165 */
+  /* parser/parser.nit:165 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction12_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:166 */
+  /* parser/parser.nit:166 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction13_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:167 */
+  /* parser/parser.nit:167 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction14_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:168 */
+  /* parser/parser.nit:168 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction15_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:169 */
+  /* parser/parser.nit:169 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction16_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:170 */
+  /* parser/parser.nit:170 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction17_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:171 */
+  /* parser/parser.nit:171 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction18_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:172 */
+  /* parser/parser.nit:172 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction19_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:173 */
+  /* parser/parser.nit:173 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction20_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:174 */
+  /* parser/parser.nit:174 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction21_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:175 */
+  /* parser/parser.nit:175 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction22_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:176 */
+  /* parser/parser.nit:176 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction23_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:177 */
+  /* parser/parser.nit:177 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction24_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:178 */
+  /* parser/parser.nit:178 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction25_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:179 */
+  /* parser/parser.nit:179 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction26_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:180 */
+  /* parser/parser.nit:180 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction27_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:181 */
+  /* parser/parser.nit:181 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction28_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:182 */
+  /* parser/parser.nit:182 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction29_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:183 */
+  /* parser/parser.nit:183 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction30_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:184 */
+  /* parser/parser.nit:184 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_ReduceAction31_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:185 */
+  /* parser/parser.nit:185 */
   REGB0 = TAG_Int(1);
   fra.me.REG[2] = NEW_ReduceAction32_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:186 */
+  /* parser/parser.nit:186 */
   REGB0 = TAG_Int(2);
   fra.me.REG[2] = NEW_ReduceAction33_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:187 */
+  /* parser/parser.nit:187 */
   REGB0 = TAG_Int(2);
   fra.me.REG[2] = NEW_ReduceAction34_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:188 */
+  /* parser/parser.nit:188 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_ReduceAction35_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:189 */
+  /* parser/parser.nit:189 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_ReduceAction36_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:190 */
+  /* parser/parser.nit:190 */
   REGB0 = TAG_Int(4);
   fra.me.REG[2] = NEW_ReduceAction37_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:191 */
+  /* parser/parser.nit:191 */
   REGB0 = TAG_Int(4);
   fra.me.REG[2] = NEW_ReduceAction37_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:192 */
+  /* parser/parser.nit:192 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_ReduceAction39_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:193 */
+  /* parser/parser.nit:193 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_ReduceAction40_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:194 */
+  /* parser/parser.nit:194 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_ReduceAction41_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:195 */
+  /* parser/parser.nit:195 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_ReduceAction42_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:196 */
+  /* parser/parser.nit:196 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_ReduceAction43_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:197 */
+  /* parser/parser.nit:197 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_ReduceAction44_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:198 */
+  /* parser/parser.nit:198 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_ReduceAction45_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:199 */
+  /* parser/parser.nit:199 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_ReduceAction46_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:200 */
+  /* parser/parser.nit:200 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_ReduceAction47_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:201 */
+  /* parser/parser.nit:201 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_ReduceAction48_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:202 */
+  /* parser/parser.nit:202 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_ReduceAction49_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:203 */
+  /* parser/parser.nit:203 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_ReduceAction50_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:204 */
+  /* parser/parser.nit:204 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_ReduceAction51_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:205 */
+  /* parser/parser.nit:205 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_ReduceAction52_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:206 */
+  /* parser/parser.nit:206 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_ReduceAction53_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:207 */
+  /* parser/parser.nit:207 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_ReduceAction54_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:208 */
+  /* parser/parser.nit:208 */
   REGB0 = TAG_Int(6);
   fra.me.REG[2] = NEW_ReduceAction55_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:209 */
+  /* parser/parser.nit:209 */
   REGB0 = TAG_Int(6);
   fra.me.REG[2] = NEW_ReduceAction56_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:210 */
+  /* parser/parser.nit:210 */
   REGB0 = TAG_Int(6);
   fra.me.REG[2] = NEW_ReduceAction57_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:211 */
+  /* parser/parser.nit:211 */
   REGB0 = TAG_Int(6);
   fra.me.REG[2] = NEW_ReduceAction58_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:212 */
+  /* parser/parser.nit:212 */
   REGB0 = TAG_Int(6);
   fra.me.REG[2] = NEW_ReduceAction59_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:213 */
+  /* parser/parser.nit:213 */
   REGB0 = TAG_Int(7);
   fra.me.REG[2] = NEW_ReduceAction60_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:214 */
+  /* parser/parser.nit:214 */
   REGB0 = TAG_Int(7);
   fra.me.REG[2] = NEW_ReduceAction61_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:215 */
+  /* parser/parser.nit:215 */
   REGB0 = TAG_Int(8);
   fra.me.REG[2] = NEW_ReduceAction62_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:216 */
+  /* parser/parser.nit:216 */
   REGB0 = TAG_Int(9);
   fra.me.REG[2] = NEW_ReduceAction63_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:217 */
+  /* parser/parser.nit:217 */
   REGB0 = TAG_Int(9);
   fra.me.REG[2] = NEW_ReduceAction64_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:218 */
+  /* parser/parser.nit:218 */
   REGB0 = TAG_Int(10);
   fra.me.REG[2] = NEW_ReduceAction65_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:219 */
+  /* parser/parser.nit:219 */
   REGB0 = TAG_Int(10);
   fra.me.REG[2] = NEW_ReduceAction66_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:220 */
+  /* parser/parser.nit:220 */
   REGB0 = TAG_Int(11);
   fra.me.REG[2] = NEW_ReduceAction67_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:221 */
+  /* parser/parser.nit:221 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction68_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:222 */
+  /* parser/parser.nit:222 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction69_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:223 */
+  /* parser/parser.nit:223 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction70_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:224 */
+  /* parser/parser.nit:224 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction71_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:225 */
+  /* parser/parser.nit:225 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction72_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:226 */
+  /* parser/parser.nit:226 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction73_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:227 */
+  /* parser/parser.nit:227 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction74_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:228 */
+  /* parser/parser.nit:228 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction75_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:229 */
+  /* parser/parser.nit:229 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction76_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:230 */
+  /* parser/parser.nit:230 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction77_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:231 */
+  /* parser/parser.nit:231 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction78_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:232 */
+  /* parser/parser.nit:232 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction79_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:233 */
+  /* parser/parser.nit:233 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction80_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:234 */
+  /* parser/parser.nit:234 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction81_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:235 */
+  /* parser/parser.nit:235 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction82_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:236 */
+  /* parser/parser.nit:236 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction83_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:237 */
+  /* parser/parser.nit:237 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction84_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:238 */
+  /* parser/parser.nit:238 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction85_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:239 */
+  /* parser/parser.nit:239 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction86_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:240 */
+  /* parser/parser.nit:240 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction87_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:241 */
+  /* parser/parser.nit:241 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction88_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:242 */
+  /* parser/parser.nit:242 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction89_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:243 */
+  /* parser/parser.nit:243 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction90_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:244 */
+  /* parser/parser.nit:244 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction91_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:245 */
+  /* parser/parser.nit:245 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction92_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:246 */
+  /* parser/parser.nit:246 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction93_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:247 */
+  /* parser/parser.nit:247 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction94_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:248 */
+  /* parser/parser.nit:248 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction95_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:249 */
+  /* parser/parser.nit:249 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction96_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:250 */
+  /* parser/parser.nit:250 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction97_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:251 */
+  /* parser/parser.nit:251 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction98_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:252 */
+  /* parser/parser.nit:252 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction99_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:253 */
+  /* parser/parser.nit:253 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction100_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:254 */
+  /* parser/parser.nit:254 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction101_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:255 */
+  /* parser/parser.nit:255 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction102_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:256 */
+  /* parser/parser.nit:256 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction103_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:257 */
+  /* parser/parser.nit:257 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction104_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:258 */
+  /* parser/parser.nit:258 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction105_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:259 */
+  /* parser/parser.nit:259 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction106_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:260 */
+  /* parser/parser.nit:260 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction107_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:261 */
+  /* parser/parser.nit:261 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction108_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:262 */
+  /* parser/parser.nit:262 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction109_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:263 */
+  /* parser/parser.nit:263 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction110_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:264 */
+  /* parser/parser.nit:264 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction111_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:265 */
+  /* parser/parser.nit:265 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction112_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:266 */
+  /* parser/parser.nit:266 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction113_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:267 */
+  /* parser/parser.nit:267 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction114_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:268 */
+  /* parser/parser.nit:268 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction115_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:269 */
+  /* parser/parser.nit:269 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction116_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:270 */
+  /* parser/parser.nit:270 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction117_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:271 */
+  /* parser/parser.nit:271 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction118_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:272 */
+  /* parser/parser.nit:272 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction119_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:273 */
+  /* parser/parser.nit:273 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction120_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:274 */
+  /* parser/parser.nit:274 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction121_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:275 */
+  /* parser/parser.nit:275 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction122_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:276 */
+  /* parser/parser.nit:276 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction123_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:277 */
+  /* parser/parser.nit:277 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction124_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:278 */
+  /* parser/parser.nit:278 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction125_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:279 */
+  /* parser/parser.nit:279 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction126_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:280 */
+  /* parser/parser.nit:280 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction127_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:281 */
+  /* parser/parser.nit:281 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction128_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:282 */
+  /* parser/parser.nit:282 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction129_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:283 */
+  /* parser/parser.nit:283 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction130_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:284 */
+  /* parser/parser.nit:284 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction131_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:285 */
+  /* parser/parser.nit:285 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction132_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:286 */
+  /* parser/parser.nit:286 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction133_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:287 */
+  /* parser/parser.nit:287 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction134_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:288 */
+  /* parser/parser.nit:288 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction135_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:289 */
+  /* parser/parser.nit:289 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction136_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:290 */
+  /* parser/parser.nit:290 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction137_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:291 */
+  /* parser/parser.nit:291 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction138_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:292 */
+  /* parser/parser.nit:292 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction139_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:293 */
+  /* parser/parser.nit:293 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction140_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:294 */
+  /* parser/parser.nit:294 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction141_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:295 */
+  /* parser/parser.nit:295 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction142_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:296 */
+  /* parser/parser.nit:296 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction143_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:297 */
+  /* parser/parser.nit:297 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction144_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:298 */
+  /* parser/parser.nit:298 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction145_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:299 */
+  /* parser/parser.nit:299 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction146_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:300 */
+  /* parser/parser.nit:300 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction147_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:301 */
+  /* parser/parser.nit:301 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction148_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:302 */
+  /* parser/parser.nit:302 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction149_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:303 */
+  /* parser/parser.nit:303 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction150_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:304 */
+  /* parser/parser.nit:304 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction151_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:305 */
+  /* parser/parser.nit:305 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction152_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:306 */
+  /* parser/parser.nit:306 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction153_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:307 */
+  /* parser/parser.nit:307 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction154_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:308 */
+  /* parser/parser.nit:308 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction155_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:309 */
+  /* parser/parser.nit:309 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction156_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:310 */
+  /* parser/parser.nit:310 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction157_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:311 */
+  /* parser/parser.nit:311 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction158_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:312 */
+  /* parser/parser.nit:312 */
   REGB0 = TAG_Int(12);
   fra.me.REG[2] = NEW_ReduceAction159_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:313 */
+  /* parser/parser.nit:313 */
   REGB0 = TAG_Int(13);
   fra.me.REG[2] = NEW_ReduceAction160_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:314 */
+  /* parser/parser.nit:314 */
   REGB0 = TAG_Int(13);
   fra.me.REG[2] = NEW_ReduceAction161_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:315 */
+  /* parser/parser.nit:315 */
   REGB0 = TAG_Int(14);
   fra.me.REG[2] = NEW_ReduceAction162_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:316 */
+  /* parser/parser.nit:316 */
   REGB0 = TAG_Int(14);
   fra.me.REG[2] = NEW_ReduceAction163_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:317 */
+  /* parser/parser.nit:317 */
   REGB0 = TAG_Int(15);
   fra.me.REG[2] = NEW_ReduceAction164_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:318 */
+  /* parser/parser.nit:318 */
   REGB0 = TAG_Int(15);
   fra.me.REG[2] = NEW_ReduceAction165_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:319 */
+  /* parser/parser.nit:319 */
   REGB0 = TAG_Int(16);
   fra.me.REG[2] = NEW_ReduceAction166_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:320 */
+  /* parser/parser.nit:320 */
   REGB0 = TAG_Int(16);
   fra.me.REG[2] = NEW_ReduceAction167_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:321 */
+  /* parser/parser.nit:321 */
   REGB0 = TAG_Int(16);
   fra.me.REG[2] = NEW_ReduceAction168_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:322 */
+  /* parser/parser.nit:322 */
   REGB0 = TAG_Int(16);
   fra.me.REG[2] = NEW_ReduceAction169_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:323 */
+  /* parser/parser.nit:323 */
   REGB0 = TAG_Int(17);
   fra.me.REG[2] = NEW_ReduceAction170_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:324 */
+  /* parser/parser.nit:324 */
   REGB0 = TAG_Int(17);
   fra.me.REG[2] = NEW_ReduceAction171_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:325 */
+  /* parser/parser.nit:325 */
   REGB0 = TAG_Int(17);
   fra.me.REG[2] = NEW_ReduceAction172_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:326 */
+  /* parser/parser.nit:326 */
   REGB0 = TAG_Int(17);
   fra.me.REG[2] = NEW_ReduceAction173_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:327 */
+  /* parser/parser.nit:327 */
   REGB0 = TAG_Int(17);
   fra.me.REG[2] = NEW_ReduceAction174_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:328 */
+  /* parser/parser.nit:328 */
   REGB0 = TAG_Int(17);
   fra.me.REG[2] = NEW_ReduceAction175_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:329 */
+  /* parser/parser.nit:329 */
   REGB0 = TAG_Int(17);
   fra.me.REG[2] = NEW_ReduceAction176_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:330 */
+  /* parser/parser.nit:330 */
   REGB0 = TAG_Int(17);
   fra.me.REG[2] = NEW_ReduceAction177_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:331 */
+  /* parser/parser.nit:331 */
   REGB0 = TAG_Int(17);
   fra.me.REG[2] = NEW_ReduceAction178_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:332 */
+  /* parser/parser.nit:332 */
   REGB0 = TAG_Int(17);
   fra.me.REG[2] = NEW_ReduceAction179_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:333 */
+  /* parser/parser.nit:333 */
   REGB0 = TAG_Int(17);
   fra.me.REG[2] = NEW_ReduceAction180_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:334 */
+  /* parser/parser.nit:334 */
   REGB0 = TAG_Int(17);
   fra.me.REG[2] = NEW_ReduceAction181_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:335 */
+  /* parser/parser.nit:335 */
   REGB0 = TAG_Int(17);
   fra.me.REG[2] = NEW_ReduceAction182_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:336 */
+  /* parser/parser.nit:336 */
   REGB0 = TAG_Int(17);
   fra.me.REG[2] = NEW_ReduceAction183_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:337 */
+  /* parser/parser.nit:337 */
   REGB0 = TAG_Int(17);
   fra.me.REG[2] = NEW_ReduceAction184_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:338 */
+  /* parser/parser.nit:338 */
   REGB0 = TAG_Int(17);
   fra.me.REG[2] = NEW_ReduceAction185_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:339 */
+  /* parser/parser.nit:339 */
   REGB0 = TAG_Int(17);
   fra.me.REG[2] = NEW_ReduceAction186_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:340 */
+  /* parser/parser.nit:340 */
   REGB0 = TAG_Int(17);
   fra.me.REG[2] = NEW_ReduceAction187_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:341 */
+  /* parser/parser.nit:341 */
   REGB0 = TAG_Int(18);
   fra.me.REG[2] = NEW_ReduceAction188_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:342 */
+  /* parser/parser.nit:342 */
   REGB0 = TAG_Int(18);
   fra.me.REG[2] = NEW_ReduceAction189_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:343 */
+  /* parser/parser.nit:343 */
   REGB0 = TAG_Int(18);
   fra.me.REG[2] = NEW_ReduceAction190_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:344 */
+  /* parser/parser.nit:344 */
   REGB0 = TAG_Int(18);
   fra.me.REG[2] = NEW_ReduceAction191_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:345 */
+  /* parser/parser.nit:345 */
   REGB0 = TAG_Int(18);
   fra.me.REG[2] = NEW_ReduceAction192_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:346 */
+  /* parser/parser.nit:346 */
   REGB0 = TAG_Int(18);
   fra.me.REG[2] = NEW_ReduceAction193_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:347 */
+  /* parser/parser.nit:347 */
   REGB0 = TAG_Int(18);
   fra.me.REG[2] = NEW_ReduceAction194_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:348 */
+  /* parser/parser.nit:348 */
   REGB0 = TAG_Int(18);
   fra.me.REG[2] = NEW_ReduceAction195_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:349 */
-  REGB0 = TAG_Int(19);
+  /* parser/parser.nit:349 */
+  REGB0 = TAG_Int(18);
   fra.me.REG[2] = NEW_ReduceAction196_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:350 */
-  REGB0 = TAG_Int(19);
+  /* parser/parser.nit:350 */
+  REGB0 = TAG_Int(18);
   fra.me.REG[2] = NEW_ReduceAction197_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:351 */
-  REGB0 = TAG_Int(19);
+  /* parser/parser.nit:351 */
+  REGB0 = TAG_Int(18);
   fra.me.REG[2] = NEW_ReduceAction198_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:352 */
-  REGB0 = TAG_Int(19);
+  /* parser/parser.nit:352 */
+  REGB0 = TAG_Int(18);
   fra.me.REG[2] = NEW_ReduceAction199_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:353 */
-  REGB0 = TAG_Int(20);
+  /* parser/parser.nit:353 */
+  REGB0 = TAG_Int(19);
   fra.me.REG[2] = NEW_ReduceAction200_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:354 */
-  REGB0 = TAG_Int(20);
+  /* parser/parser.nit:354 */
+  REGB0 = TAG_Int(19);
   fra.me.REG[2] = NEW_ReduceAction201_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:355 */
-  REGB0 = TAG_Int(20);
+  /* parser/parser.nit:355 */
+  REGB0 = TAG_Int(19);
   fra.me.REG[2] = NEW_ReduceAction202_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:356 */
-  REGB0 = TAG_Int(21);
+  /* parser/parser.nit:356 */
+  REGB0 = TAG_Int(19);
   fra.me.REG[2] = NEW_ReduceAction203_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:357 */
-  REGB0 = TAG_Int(22);
+  /* parser/parser.nit:357 */
+  REGB0 = TAG_Int(19);
   fra.me.REG[2] = NEW_ReduceAction204_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:358 */
-  REGB0 = TAG_Int(22);
+  /* parser/parser.nit:358 */
+  REGB0 = TAG_Int(19);
   fra.me.REG[2] = NEW_ReduceAction205_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:359 */
-  REGB0 = TAG_Int(22);
+  /* parser/parser.nit:359 */
+  REGB0 = TAG_Int(20);
   fra.me.REG[2] = NEW_ReduceAction206_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:360 */
-  REGB0 = TAG_Int(23);
+  /* parser/parser.nit:360 */
+  REGB0 = TAG_Int(20);
   fra.me.REG[2] = NEW_ReduceAction207_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:361 */
-  REGB0 = TAG_Int(24);
+  /* parser/parser.nit:361 */
+  REGB0 = TAG_Int(21);
   fra.me.REG[2] = NEW_ReduceAction208_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:362 */
-  REGB0 = TAG_Int(24);
+  /* parser/parser.nit:362 */
+  REGB0 = TAG_Int(22);
   fra.me.REG[2] = NEW_ReduceAction209_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:363 */
-  REGB0 = TAG_Int(24);
+  /* parser/parser.nit:363 */
+  REGB0 = TAG_Int(22);
   fra.me.REG[2] = NEW_ReduceAction210_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:364 */
-  REGB0 = TAG_Int(24);
+  /* parser/parser.nit:364 */
+  REGB0 = TAG_Int(22);
   fra.me.REG[2] = NEW_ReduceAction211_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:365 */
-  REGB0 = TAG_Int(24);
+  /* parser/parser.nit:365 */
+  REGB0 = TAG_Int(23);
   fra.me.REG[2] = NEW_ReduceAction212_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:366 */
+  /* parser/parser.nit:366 */
   REGB0 = TAG_Int(24);
   fra.me.REG[2] = NEW_ReduceAction213_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:367 */
-  REGB0 = TAG_Int(25);
+  /* parser/parser.nit:367 */
+  REGB0 = TAG_Int(24);
   fra.me.REG[2] = NEW_ReduceAction214_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:368 */
-  REGB0 = TAG_Int(26);
+  /* parser/parser.nit:368 */
+  REGB0 = TAG_Int(24);
   fra.me.REG[2] = NEW_ReduceAction215_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:369 */
-  REGB0 = TAG_Int(26);
+  /* parser/parser.nit:369 */
+  REGB0 = TAG_Int(24);
   fra.me.REG[2] = NEW_ReduceAction216_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:370 */
-  REGB0 = TAG_Int(27);
+  /* parser/parser.nit:370 */
+  REGB0 = TAG_Int(24);
   fra.me.REG[2] = NEW_ReduceAction217_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:371 */
-  REGB0 = TAG_Int(28);
+  /* parser/parser.nit:371 */
+  REGB0 = TAG_Int(24);
   fra.me.REG[2] = NEW_ReduceAction218_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:372 */
-  REGB0 = TAG_Int(28);
-  fra.me.REG[2] = NEW_ReduceAction218_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:372 */
+  REGB0 = TAG_Int(25);
+  fra.me.REG[2] = NEW_ReduceAction219_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:373 */
-  REGB0 = TAG_Int(28);
+  /* parser/parser.nit:373 */
+  REGB0 = TAG_Int(26);
   fra.me.REG[2] = NEW_ReduceAction220_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:374 */
-  REGB0 = TAG_Int(29);
+  /* parser/parser.nit:374 */
+  REGB0 = TAG_Int(26);
   fra.me.REG[2] = NEW_ReduceAction221_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:375 */
-  REGB0 = TAG_Int(29);
+  /* parser/parser.nit:375 */
+  REGB0 = TAG_Int(27);
   fra.me.REG[2] = NEW_ReduceAction222_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:376 */
-  REGB0 = TAG_Int(29);
+  /* parser/parser.nit:376 */
+  REGB0 = TAG_Int(28);
   fra.me.REG[2] = NEW_ReduceAction223_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:377 */
-  REGB0 = TAG_Int(30);
-  fra.me.REG[2] = NEW_ReduceAction224_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:377 */
+  REGB0 = TAG_Int(28);
+  fra.me.REG[2] = NEW_ReduceAction223_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:378 */
-  REGB0 = TAG_Int(30);
+  /* parser/parser.nit:378 */
+  REGB0 = TAG_Int(28);
   fra.me.REG[2] = NEW_ReduceAction225_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:379 */
-  REGB0 = TAG_Int(30);
+  /* parser/parser.nit:379 */
+  REGB0 = TAG_Int(29);
   fra.me.REG[2] = NEW_ReduceAction226_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:380 */
-  REGB0 = TAG_Int(31);
+  /* parser/parser.nit:380 */
+  REGB0 = TAG_Int(29);
   fra.me.REG[2] = NEW_ReduceAction227_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:381 */
-  REGB0 = TAG_Int(31);
+  /* parser/parser.nit:381 */
+  REGB0 = TAG_Int(29);
   fra.me.REG[2] = NEW_ReduceAction228_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:382 */
-  REGB0 = TAG_Int(31);
+  /* parser/parser.nit:382 */
+  REGB0 = TAG_Int(30);
   fra.me.REG[2] = NEW_ReduceAction229_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:383 */
-  REGB0 = TAG_Int(31);
+  /* parser/parser.nit:383 */
+  REGB0 = TAG_Int(30);
   fra.me.REG[2] = NEW_ReduceAction230_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:384 */
-  REGB0 = TAG_Int(32);
+  /* parser/parser.nit:384 */
+  REGB0 = TAG_Int(30);
   fra.me.REG[2] = NEW_ReduceAction231_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:385 */
-  REGB0 = TAG_Int(32);
+  /* parser/parser.nit:385 */
+  REGB0 = TAG_Int(31);
   fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:386 */
-  REGB0 = TAG_Int(33);
+  /* parser/parser.nit:386 */
+  REGB0 = TAG_Int(31);
   fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:387 */
-  REGB0 = TAG_Int(34);
-  fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:387 */
+  REGB0 = TAG_Int(31);
+  fra.me.REG[2] = NEW_ReduceAction234_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:388 */
-  REGB0 = TAG_Int(35);
+  /* parser/parser.nit:388 */
+  REGB0 = TAG_Int(31);
   fra.me.REG[2] = NEW_ReduceAction235_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:389 */
-  REGB0 = TAG_Int(35);
+  /* parser/parser.nit:389 */
+  REGB0 = TAG_Int(32);
   fra.me.REG[2] = NEW_ReduceAction236_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:390 */
-  REGB0 = TAG_Int(35);
+  /* parser/parser.nit:390 */
+  REGB0 = TAG_Int(32);
   fra.me.REG[2] = NEW_ReduceAction237_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:391 */
-  REGB0 = TAG_Int(35);
+  /* parser/parser.nit:391 */
+  REGB0 = TAG_Int(33);
   fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:392 */
-  REGB0 = TAG_Int(36);
-  fra.me.REG[2] = NEW_ReduceAction239_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:392 */
+  REGB0 = TAG_Int(34);
+  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:393 */
-  REGB0 = TAG_Int(36);
+  /* parser/parser.nit:393 */
+  REGB0 = TAG_Int(35);
   fra.me.REG[2] = NEW_ReduceAction240_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:394 */
-  REGB0 = TAG_Int(37);
+  /* parser/parser.nit:394 */
+  REGB0 = TAG_Int(35);
   fra.me.REG[2] = NEW_ReduceAction241_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:395 */
-  REGB0 = TAG_Int(37);
+  /* parser/parser.nit:395 */
+  REGB0 = TAG_Int(35);
   fra.me.REG[2] = NEW_ReduceAction242_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:396 */
-  REGB0 = TAG_Int(38);
+  /* parser/parser.nit:396 */
+  REGB0 = TAG_Int(35);
   fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:397 */
-  REGB0 = TAG_Int(39);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:397 */
+  REGB0 = TAG_Int(36);
+  fra.me.REG[2] = NEW_ReduceAction244_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:398 */
-  REGB0 = TAG_Int(39);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:398 */
+  REGB0 = TAG_Int(36);
+  fra.me.REG[2] = NEW_ReduceAction245_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:399 */
-  REGB0 = TAG_Int(39);
+  /* parser/parser.nit:399 */
+  REGB0 = TAG_Int(37);
   fra.me.REG[2] = NEW_ReduceAction246_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:400 */
-  REGB0 = TAG_Int(39);
+  /* parser/parser.nit:400 */
+  REGB0 = TAG_Int(37);
   fra.me.REG[2] = NEW_ReduceAction247_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:401 */
-  REGB0 = TAG_Int(39);
+  /* parser/parser.nit:401 */
+  REGB0 = TAG_Int(38);
   fra.me.REG[2] = NEW_ReduceAction248_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:402 */
-  REGB0 = TAG_Int(39);
+  /* parser/parser.nit:402 */
+  REGB0 = TAG_Int(38);
   fra.me.REG[2] = NEW_ReduceAction249_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:403 */
+  /* parser/parser.nit:403 */
   REGB0 = TAG_Int(39);
-  fra.me.REG[2] = NEW_ReduceAction250_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction240_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:404 */
-  REGB0 = TAG_Int(39);
-  fra.me.REG[2] = NEW_ReduceAction251_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:404 */
+  REGB0 = TAG_Int(40);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:405 */
-  REGB0 = TAG_Int(39);
-  fra.me.REG[2] = NEW_ReduceAction252_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:405 */
+  REGB0 = TAG_Int(40);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:406 */
-  REGB0 = TAG_Int(39);
+  /* parser/parser.nit:406 */
+  REGB0 = TAG_Int(40);
   fra.me.REG[2] = NEW_ReduceAction253_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:407 */
-  REGB0 = TAG_Int(39);
+  /* parser/parser.nit:407 */
+  REGB0 = TAG_Int(40);
   fra.me.REG[2] = NEW_ReduceAction254_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:408 */
-  REGB0 = TAG_Int(39);
+  /* parser/parser.nit:408 */
+  REGB0 = TAG_Int(40);
   fra.me.REG[2] = NEW_ReduceAction255_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:409 */
-  REGB0 = TAG_Int(39);
+  /* parser/parser.nit:409 */
+  REGB0 = TAG_Int(40);
   fra.me.REG[2] = NEW_ReduceAction256_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:410 */
-  REGB0 = TAG_Int(39);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:410 */
+  REGB0 = TAG_Int(40);
+  fra.me.REG[2] = NEW_ReduceAction257_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:411 */
-  REGB0 = TAG_Int(39);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:411 */
+  REGB0 = TAG_Int(40);
+  fra.me.REG[2] = NEW_ReduceAction258_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:412 */
-  REGB0 = TAG_Int(39);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:412 */
+  REGB0 = TAG_Int(40);
+  fra.me.REG[2] = NEW_ReduceAction259_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:413 */
-  REGB0 = TAG_Int(39);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:413 */
+  REGB0 = TAG_Int(40);
+  fra.me.REG[2] = NEW_ReduceAction260_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:414 */
-  REGB0 = TAG_Int(39);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:414 */
+  REGB0 = TAG_Int(40);
+  fra.me.REG[2] = NEW_ReduceAction261_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:415 */
-  REGB0 = TAG_Int(39);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:415 */
+  REGB0 = TAG_Int(40);
+  fra.me.REG[2] = NEW_ReduceAction262_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:416 */
-  REGB0 = TAG_Int(39);
+  /* parser/parser.nit:416 */
+  REGB0 = TAG_Int(40);
   fra.me.REG[2] = NEW_ReduceAction263_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:417 */
-  REGB0 = TAG_Int(39);
-  fra.me.REG[2] = NEW_ReduceAction264_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:417 */
+  REGB0 = TAG_Int(40);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:418 */
-  REGB0 = TAG_Int(39);
-  fra.me.REG[2] = NEW_ReduceAction265_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:418 */
+  REGB0 = TAG_Int(40);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:419 */
-  REGB0 = TAG_Int(39);
-  fra.me.REG[2] = NEW_ReduceAction266_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:419 */
+  REGB0 = TAG_Int(40);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:420 */
-  REGB0 = TAG_Int(39);
-  fra.me.REG[2] = NEW_ReduceAction267_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:420 */
+  REGB0 = TAG_Int(40);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:421 */
-  REGB0 = TAG_Int(39);
-  fra.me.REG[2] = NEW_ReduceAction268_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:421 */
+  REGB0 = TAG_Int(40);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:422 */
-  REGB0 = TAG_Int(39);
-  fra.me.REG[2] = NEW_ReduceAction269_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:422 */
+  REGB0 = TAG_Int(40);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:423 */
-  REGB0 = TAG_Int(39);
+  /* parser/parser.nit:423 */
+  REGB0 = TAG_Int(40);
   fra.me.REG[2] = NEW_ReduceAction270_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:424 */
+  /* parser/parser.nit:424 */
   REGB0 = TAG_Int(40);
   fra.me.REG[2] = NEW_ReduceAction271_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:425 */
-  REGB0 = TAG_Int(41);
+  /* parser/parser.nit:425 */
+  REGB0 = TAG_Int(40);
   fra.me.REG[2] = NEW_ReduceAction272_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:426 */
-  REGB0 = TAG_Int(41);
+  /* parser/parser.nit:426 */
+  REGB0 = TAG_Int(40);
   fra.me.REG[2] = NEW_ReduceAction273_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:427 */
-  REGB0 = TAG_Int(42);
+  /* parser/parser.nit:427 */
+  REGB0 = TAG_Int(40);
   fra.me.REG[2] = NEW_ReduceAction274_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:428 */
-  REGB0 = TAG_Int(42);
+  /* parser/parser.nit:428 */
+  REGB0 = TAG_Int(40);
   fra.me.REG[2] = NEW_ReduceAction275_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:429 */
-  REGB0 = TAG_Int(42);
+  /* parser/parser.nit:429 */
+  REGB0 = TAG_Int(40);
   fra.me.REG[2] = NEW_ReduceAction276_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:430 */
-  REGB0 = TAG_Int(42);
+  /* parser/parser.nit:430 */
+  REGB0 = TAG_Int(40);
   fra.me.REG[2] = NEW_ReduceAction277_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:431 */
-  REGB0 = TAG_Int(42);
+  /* parser/parser.nit:431 */
+  REGB0 = TAG_Int(40);
   fra.me.REG[2] = NEW_ReduceAction278_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:432 */
-  REGB0 = TAG_Int(42);
+  /* parser/parser.nit:432 */
+  REGB0 = TAG_Int(41);
   fra.me.REG[2] = NEW_ReduceAction279_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:433 */
+  /* parser/parser.nit:433 */
   REGB0 = TAG_Int(42);
   fra.me.REG[2] = NEW_ReduceAction280_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:434 */
+  /* parser/parser.nit:434 */
   REGB0 = TAG_Int(42);
   fra.me.REG[2] = NEW_ReduceAction281_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:435 */
-  REGB0 = TAG_Int(42);
+  /* parser/parser.nit:435 */
+  REGB0 = TAG_Int(43);
   fra.me.REG[2] = NEW_ReduceAction282_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:436 */
+  /* parser/parser.nit:436 */
   REGB0 = TAG_Int(43);
   fra.me.REG[2] = NEW_ReduceAction283_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:437 */
+  /* parser/parser.nit:437 */
   REGB0 = TAG_Int(43);
   fra.me.REG[2] = NEW_ReduceAction284_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:438 */
+  /* parser/parser.nit:438 */
   REGB0 = TAG_Int(43);
   fra.me.REG[2] = NEW_ReduceAction285_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:439 */
+  /* parser/parser.nit:439 */
   REGB0 = TAG_Int(43);
   fra.me.REG[2] = NEW_ReduceAction286_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:440 */
+  /* parser/parser.nit:440 */
   REGB0 = TAG_Int(43);
   fra.me.REG[2] = NEW_ReduceAction287_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:441 */
+  /* parser/parser.nit:441 */
   REGB0 = TAG_Int(43);
   fra.me.REG[2] = NEW_ReduceAction288_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:442 */
-  REGB0 = TAG_Int(44);
+  /* parser/parser.nit:442 */
+  REGB0 = TAG_Int(43);
   fra.me.REG[2] = NEW_ReduceAction289_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:443 */
-  REGB0 = TAG_Int(44);
+  /* parser/parser.nit:443 */
+  REGB0 = TAG_Int(43);
   fra.me.REG[2] = NEW_ReduceAction290_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:444 */
-  REGB0 = TAG_Int(45);
+  /* parser/parser.nit:444 */
+  REGB0 = TAG_Int(44);
   fra.me.REG[2] = NEW_ReduceAction291_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:445 */
-  REGB0 = TAG_Int(46);
+  /* parser/parser.nit:445 */
+  REGB0 = TAG_Int(44);
   fra.me.REG[2] = NEW_ReduceAction292_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:446 */
-  REGB0 = TAG_Int(46);
+  /* parser/parser.nit:446 */
+  REGB0 = TAG_Int(44);
   fra.me.REG[2] = NEW_ReduceAction293_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:447 */
-  REGB0 = TAG_Int(46);
+  /* parser/parser.nit:447 */
+  REGB0 = TAG_Int(44);
   fra.me.REG[2] = NEW_ReduceAction294_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:448 */
-  REGB0 = TAG_Int(46);
+  /* parser/parser.nit:448 */
+  REGB0 = TAG_Int(44);
   fra.me.REG[2] = NEW_ReduceAction295_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:449 */
-  REGB0 = TAG_Int(47);
+  /* parser/parser.nit:449 */
+  REGB0 = TAG_Int(44);
   fra.me.REG[2] = NEW_ReduceAction296_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:450 */
-  REGB0 = TAG_Int(47);
+  /* parser/parser.nit:450 */
+  REGB0 = TAG_Int(45);
   fra.me.REG[2] = NEW_ReduceAction297_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:451 */
-  REGB0 = TAG_Int(47);
+  /* parser/parser.nit:451 */
+  REGB0 = TAG_Int(45);
   fra.me.REG[2] = NEW_ReduceAction298_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:452 */
-  REGB0 = TAG_Int(47);
+  /* parser/parser.nit:452 */
+  REGB0 = TAG_Int(46);
   fra.me.REG[2] = NEW_ReduceAction299_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:453 */
+  /* parser/parser.nit:453 */
   REGB0 = TAG_Int(47);
   fra.me.REG[2] = NEW_ReduceAction300_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:454 */
+  /* parser/parser.nit:454 */
   REGB0 = TAG_Int(47);
   fra.me.REG[2] = NEW_ReduceAction301_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:455 */
+  /* parser/parser.nit:455 */
   REGB0 = TAG_Int(47);
   fra.me.REG[2] = NEW_ReduceAction302_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:456 */
+  /* parser/parser.nit:456 */
   REGB0 = TAG_Int(47);
   fra.me.REG[2] = NEW_ReduceAction303_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:457 */
-  REGB0 = TAG_Int(47);
+  /* parser/parser.nit:457 */
+  REGB0 = TAG_Int(48);
   fra.me.REG[2] = NEW_ReduceAction304_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:458 */
-  REGB0 = TAG_Int(47);
+  /* parser/parser.nit:458 */
+  REGB0 = TAG_Int(48);
   fra.me.REG[2] = NEW_ReduceAction305_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:459 */
+  /* parser/parser.nit:459 */
   REGB0 = TAG_Int(48);
   fra.me.REG[2] = NEW_ReduceAction306_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:460 */
+  /* parser/parser.nit:460 */
   REGB0 = TAG_Int(48);
   fra.me.REG[2] = NEW_ReduceAction307_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:461 */
-  REGB0 = TAG_Int(49);
+  /* parser/parser.nit:461 */
+  REGB0 = TAG_Int(48);
   fra.me.REG[2] = NEW_ReduceAction308_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:462 */
-  REGB0 = TAG_Int(49);
+  /* parser/parser.nit:462 */
+  REGB0 = TAG_Int(48);
   fra.me.REG[2] = NEW_ReduceAction309_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:463 */
-  REGB0 = TAG_Int(50);
+  /* parser/parser.nit:463 */
+  REGB0 = TAG_Int(48);
   fra.me.REG[2] = NEW_ReduceAction310_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:464 */
-  REGB0 = TAG_Int(50);
+  /* parser/parser.nit:464 */
+  REGB0 = TAG_Int(48);
   fra.me.REG[2] = NEW_ReduceAction311_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:465 */
-  REGB0 = TAG_Int(50);
+  /* parser/parser.nit:465 */
+  REGB0 = TAG_Int(48);
   fra.me.REG[2] = NEW_ReduceAction312_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:466 */
-  REGB0 = TAG_Int(50);
+  /* parser/parser.nit:466 */
+  REGB0 = TAG_Int(48);
   fra.me.REG[2] = NEW_ReduceAction313_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:467 */
-  REGB0 = TAG_Int(50);
+  /* parser/parser.nit:467 */
+  REGB0 = TAG_Int(49);
   fra.me.REG[2] = NEW_ReduceAction314_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:468 */
-  REGB0 = TAG_Int(51);
-  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:468 */
+  REGB0 = TAG_Int(49);
+  fra.me.REG[2] = NEW_ReduceAction315_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:469 */
-  REGB0 = TAG_Int(51);
-  fra.me.REG[2] = NEW_ReduceAction36_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:469 */
+  REGB0 = TAG_Int(50);
+  fra.me.REG[2] = NEW_ReduceAction316_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:470 */
-  REGB0 = TAG_Int(52);
+  /* parser/parser.nit:470 */
+  REGB0 = TAG_Int(50);
   fra.me.REG[2] = NEW_ReduceAction317_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:471 */
-  REGB0 = TAG_Int(52);
+  /* parser/parser.nit:471 */
+  REGB0 = TAG_Int(51);
   fra.me.REG[2] = NEW_ReduceAction318_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:472 */
-  REGB0 = TAG_Int(53);
+  /* parser/parser.nit:472 */
+  REGB0 = TAG_Int(51);
   fra.me.REG[2] = NEW_ReduceAction319_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:473 */
-  REGB0 = TAG_Int(53);
+  /* parser/parser.nit:473 */
+  REGB0 = TAG_Int(51);
   fra.me.REG[2] = NEW_ReduceAction320_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:474 */
-  REGB0 = TAG_Int(54);
+  /* parser/parser.nit:474 */
+  REGB0 = TAG_Int(51);
   fra.me.REG[2] = NEW_ReduceAction321_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:475 */
-  REGB0 = TAG_Int(54);
+  /* parser/parser.nit:475 */
+  REGB0 = TAG_Int(51);
   fra.me.REG[2] = NEW_ReduceAction322_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:476 */
-  REGB0 = TAG_Int(54);
-  fra.me.REG[2] = NEW_ReduceAction323_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:476 */
+  REGB0 = TAG_Int(52);
+  fra.me.REG[2] = NEW_ReduceAction240_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:477 */
-  REGB0 = TAG_Int(54);
-  fra.me.REG[2] = NEW_ReduceAction324_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:477 */
+  REGB0 = TAG_Int(52);
+  fra.me.REG[2] = NEW_ReduceAction242_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:478 */
-  REGB0 = TAG_Int(55);
+  /* parser/parser.nit:478 */
+  REGB0 = TAG_Int(53);
   fra.me.REG[2] = NEW_ReduceAction325_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:479 */
-  REGB0 = TAG_Int(55);
+  /* parser/parser.nit:479 */
+  REGB0 = TAG_Int(53);
   fra.me.REG[2] = NEW_ReduceAction326_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:480 */
-  REGB0 = TAG_Int(55);
+  /* parser/parser.nit:480 */
+  REGB0 = TAG_Int(54);
   fra.me.REG[2] = NEW_ReduceAction327_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:481 */
-  REGB0 = TAG_Int(55);
+  /* parser/parser.nit:481 */
+  REGB0 = TAG_Int(54);
   fra.me.REG[2] = NEW_ReduceAction328_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:482 */
-  REGB0 = TAG_Int(56);
+  /* parser/parser.nit:482 */
+  REGB0 = TAG_Int(55);
   fra.me.REG[2] = NEW_ReduceAction329_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:483 */
-  REGB0 = TAG_Int(57);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:483 */
+  REGB0 = TAG_Int(55);
+  fra.me.REG[2] = NEW_ReduceAction330_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:484 */
-  REGB0 = TAG_Int(57);
-  fra.me.REG[2] = NEW_ReduceAction265_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:484 */
+  REGB0 = TAG_Int(55);
+  fra.me.REG[2] = NEW_ReduceAction331_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:485 */
-  REGB0 = TAG_Int(57);
-  fra.me.REG[2] = NEW_ReduceAction266_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:485 */
+  REGB0 = TAG_Int(55);
+  fra.me.REG[2] = NEW_ReduceAction332_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:486 */
-  REGB0 = TAG_Int(57);
+  /* parser/parser.nit:486 */
+  REGB0 = TAG_Int(56);
   fra.me.REG[2] = NEW_ReduceAction333_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:487 */
-  REGB0 = TAG_Int(58);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:487 */
+  REGB0 = TAG_Int(56);
+  fra.me.REG[2] = NEW_ReduceAction334_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:488 */
-  REGB0 = TAG_Int(58);
+  /* parser/parser.nit:488 */
+  REGB0 = TAG_Int(56);
   fra.me.REG[2] = NEW_ReduceAction335_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:489 */
-  REGB0 = TAG_Int(59);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:489 */
+  REGB0 = TAG_Int(56);
+  fra.me.REG[2] = NEW_ReduceAction336_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:490 */
-  REGB0 = TAG_Int(59);
+  /* parser/parser.nit:490 */
+  REGB0 = TAG_Int(57);
   fra.me.REG[2] = NEW_ReduceAction337_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:491 */
-  REGB0 = TAG_Int(59);
-  fra.me.REG[2] = NEW_ReduceAction338_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:491 */
+  REGB0 = TAG_Int(58);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:492 */
-  REGB0 = TAG_Int(59);
-  fra.me.REG[2] = NEW_ReduceAction339_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:492 */
+  REGB0 = TAG_Int(58);
+  fra.me.REG[2] = NEW_ReduceAction272_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:493 */
-  REGB0 = TAG_Int(60);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:493 */
+  REGB0 = TAG_Int(58);
+  fra.me.REG[2] = NEW_ReduceAction273_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:494 */
-  REGB0 = TAG_Int(60);
+  /* parser/parser.nit:494 */
+  REGB0 = TAG_Int(58);
   fra.me.REG[2] = NEW_ReduceAction341_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:495 */
-  REGB0 = TAG_Int(61);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:495 */
+  REGB0 = TAG_Int(59);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:496 */
-  REGB0 = TAG_Int(61);
+  /* parser/parser.nit:496 */
+  REGB0 = TAG_Int(59);
   fra.me.REG[2] = NEW_ReduceAction343_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:497 */
-  REGB0 = TAG_Int(61);
-  fra.me.REG[2] = NEW_ReduceAction344_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:497 */
+  REGB0 = TAG_Int(60);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:498 */
-  REGB0 = TAG_Int(61);
+  /* parser/parser.nit:498 */
+  REGB0 = TAG_Int(60);
   fra.me.REG[2] = NEW_ReduceAction345_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:499 */
-  REGB0 = TAG_Int(61);
+  /* parser/parser.nit:499 */
+  REGB0 = TAG_Int(60);
   fra.me.REG[2] = NEW_ReduceAction346_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:500 */
-  REGB0 = TAG_Int(61);
+  /* parser/parser.nit:500 */
+  REGB0 = TAG_Int(60);
   fra.me.REG[2] = NEW_ReduceAction347_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:501 */
+  /* parser/parser.nit:501 */
   REGB0 = TAG_Int(61);
-  fra.me.REG[2] = NEW_ReduceAction348_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:502 */
+  /* parser/parser.nit:502 */
   REGB0 = TAG_Int(61);
   fra.me.REG[2] = NEW_ReduceAction349_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:503 */
-  REGB0 = TAG_Int(61);
-  fra.me.REG[2] = NEW_ReduceAction350_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:503 */
+  REGB0 = TAG_Int(62);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:504 */
-  REGB0 = TAG_Int(61);
+  /* parser/parser.nit:504 */
+  REGB0 = TAG_Int(62);
   fra.me.REG[2] = NEW_ReduceAction351_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:505 */
-  REGB0 = TAG_Int(61);
+  /* parser/parser.nit:505 */
+  REGB0 = TAG_Int(62);
   fra.me.REG[2] = NEW_ReduceAction352_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:506 */
-  REGB0 = TAG_Int(61);
+  /* parser/parser.nit:506 */
+  REGB0 = TAG_Int(62);
   fra.me.REG[2] = NEW_ReduceAction353_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:507 */
+  /* parser/parser.nit:507 */
   REGB0 = TAG_Int(62);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction354_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:508 */
+  /* parser/parser.nit:508 */
   REGB0 = TAG_Int(62);
   fra.me.REG[2] = NEW_ReduceAction355_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:509 */
+  /* parser/parser.nit:509 */
   REGB0 = TAG_Int(62);
   fra.me.REG[2] = NEW_ReduceAction356_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:510 */
-  REGB0 = TAG_Int(63);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:510 */
+  REGB0 = TAG_Int(62);
+  fra.me.REG[2] = NEW_ReduceAction357_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:511 */
-  REGB0 = TAG_Int(63);
+  /* parser/parser.nit:511 */
+  REGB0 = TAG_Int(62);
   fra.me.REG[2] = NEW_ReduceAction358_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:512 */
-  REGB0 = TAG_Int(63);
+  /* parser/parser.nit:512 */
+  REGB0 = TAG_Int(62);
   fra.me.REG[2] = NEW_ReduceAction359_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:513 */
-  REGB0 = TAG_Int(63);
+  /* parser/parser.nit:513 */
+  REGB0 = TAG_Int(62);
   fra.me.REG[2] = NEW_ReduceAction360_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:514 */
-  REGB0 = TAG_Int(64);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:514 */
+  REGB0 = TAG_Int(62);
+  fra.me.REG[2] = NEW_ReduceAction361_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:515 */
-  REGB0 = TAG_Int(64);
-  fra.me.REG[2] = NEW_ReduceAction362_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:515 */
+  REGB0 = TAG_Int(63);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:516 */
-  REGB0 = TAG_Int(64);
+  /* parser/parser.nit:516 */
+  REGB0 = TAG_Int(63);
   fra.me.REG[2] = NEW_ReduceAction363_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:517 */
-  REGB0 = TAG_Int(65);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:517 */
+  REGB0 = TAG_Int(63);
+  fra.me.REG[2] = NEW_ReduceAction364_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:518 */
-  REGB0 = TAG_Int(65);
-  fra.me.REG[2] = NEW_ReduceAction365_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:518 */
+  REGB0 = TAG_Int(64);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:519 */
-  REGB0 = TAG_Int(65);
+  /* parser/parser.nit:519 */
+  REGB0 = TAG_Int(64);
   fra.me.REG[2] = NEW_ReduceAction366_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:520 */
-  REGB0 = TAG_Int(65);
+  /* parser/parser.nit:520 */
+  REGB0 = TAG_Int(64);
   fra.me.REG[2] = NEW_ReduceAction367_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:521 */
-  REGB0 = TAG_Int(66);
+  /* parser/parser.nit:521 */
+  REGB0 = TAG_Int(64);
   fra.me.REG[2] = NEW_ReduceAction368_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:522 */
-  REGB0 = TAG_Int(66);
-  fra.me.REG[2] = NEW_ReduceAction369_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:522 */
+  REGB0 = TAG_Int(65);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:523 */
-  REGB0 = TAG_Int(66);
-  fra.me.REG[2] = NEW_ReduceAction263_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:523 */
+  REGB0 = TAG_Int(65);
+  fra.me.REG[2] = NEW_ReduceAction370_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:524 */
-  REGB0 = TAG_Int(66);
-  fra.me.REG[2] = NEW_ReduceAction264_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:524 */
+  REGB0 = TAG_Int(65);
+  fra.me.REG[2] = NEW_ReduceAction371_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:525 */
+  /* parser/parser.nit:525 */
   REGB0 = TAG_Int(66);
-  fra.me.REG[2] = NEW_ReduceAction267_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:526 */
+  /* parser/parser.nit:526 */
   REGB0 = TAG_Int(66);
-  fra.me.REG[2] = NEW_ReduceAction268_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction373_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:527 */
+  /* parser/parser.nit:527 */
   REGB0 = TAG_Int(66);
-  fra.me.REG[2] = NEW_ReduceAction269_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction374_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:528 */
+  /* parser/parser.nit:528 */
   REGB0 = TAG_Int(66);
-  fra.me.REG[2] = NEW_ReduceAction270_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction375_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:529 */
-  REGB0 = TAG_Int(66);
+  /* parser/parser.nit:529 */
+  REGB0 = TAG_Int(67);
   fra.me.REG[2] = NEW_ReduceAction376_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:530 */
-  REGB0 = TAG_Int(66);
+  /* parser/parser.nit:530 */
+  REGB0 = TAG_Int(67);
   fra.me.REG[2] = NEW_ReduceAction377_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:531 */
-  REGB0 = TAG_Int(66);
-  fra.me.REG[2] = NEW_ReduceAction378_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:531 */
+  REGB0 = TAG_Int(67);
+  fra.me.REG[2] = NEW_ReduceAction270_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:532 */
-  REGB0 = TAG_Int(66);
-  fra.me.REG[2] = NEW_ReduceAction379_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:532 */
+  REGB0 = TAG_Int(67);
+  fra.me.REG[2] = NEW_ReduceAction271_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:533 */
-  REGB0 = TAG_Int(66);
-  fra.me.REG[2] = NEW_ReduceAction380_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:533 */
+  REGB0 = TAG_Int(67);
+  fra.me.REG[2] = NEW_ReduceAction274_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:534 */
-  REGB0 = TAG_Int(66);
-  fra.me.REG[2] = NEW_ReduceAction381_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:534 */
+  REGB0 = TAG_Int(67);
+  fra.me.REG[2] = NEW_ReduceAction275_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:535 */
-  REGB0 = TAG_Int(66);
-  fra.me.REG[2] = NEW_ReduceAction382_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:535 */
+  REGB0 = TAG_Int(67);
+  fra.me.REG[2] = NEW_ReduceAction276_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:536 */
-  REGB0 = TAG_Int(66);
-  fra.me.REG[2] = NEW_ReduceAction383_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:536 */
+  REGB0 = TAG_Int(67);
+  fra.me.REG[2] = NEW_ReduceAction277_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:537 */
-  REGB0 = TAG_Int(66);
+  /* parser/parser.nit:537 */
+  REGB0 = TAG_Int(67);
   fra.me.REG[2] = NEW_ReduceAction384_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:538 */
-  REGB0 = TAG_Int(66);
+  /* parser/parser.nit:538 */
+  REGB0 = TAG_Int(67);
   fra.me.REG[2] = NEW_ReduceAction385_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:539 */
-  REGB0 = TAG_Int(66);
+  /* parser/parser.nit:539 */
+  REGB0 = TAG_Int(67);
   fra.me.REG[2] = NEW_ReduceAction386_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:540 */
-  REGB0 = TAG_Int(66);
+  /* parser/parser.nit:540 */
+  REGB0 = TAG_Int(67);
   fra.me.REG[2] = NEW_ReduceAction387_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:541 */
-  REGB0 = TAG_Int(66);
+  /* parser/parser.nit:541 */
+  REGB0 = TAG_Int(67);
   fra.me.REG[2] = NEW_ReduceAction388_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:542 */
-  REGB0 = TAG_Int(66);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:542 */
+  REGB0 = TAG_Int(67);
+  fra.me.REG[2] = NEW_ReduceAction389_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:543 */
-  REGB0 = TAG_Int(66);
-  fra.me.REG[2] = NEW_ReduceAction235_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:543 */
+  REGB0 = TAG_Int(67);
+  fra.me.REG[2] = NEW_ReduceAction390_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:544 */
-  REGB0 = TAG_Int(66);
+  /* parser/parser.nit:544 */
+  REGB0 = TAG_Int(67);
   fra.me.REG[2] = NEW_ReduceAction391_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:545 */
-  REGB0 = TAG_Int(66);
+  /* parser/parser.nit:545 */
+  REGB0 = TAG_Int(67);
   fra.me.REG[2] = NEW_ReduceAction392_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:546 */
+  /* parser/parser.nit:546 */
   REGB0 = TAG_Int(67);
   fra.me.REG[2] = NEW_ReduceAction393_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:547 */
+  /* parser/parser.nit:547 */
   REGB0 = TAG_Int(67);
   fra.me.REG[2] = NEW_ReduceAction394_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:548 */
-  REGB0 = TAG_Int(68);
+  /* parser/parser.nit:548 */
+  REGB0 = TAG_Int(67);
   fra.me.REG[2] = NEW_ReduceAction395_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:549 */
-  REGB0 = TAG_Int(69);
+  /* parser/parser.nit:549 */
+  REGB0 = TAG_Int(67);
   fra.me.REG[2] = NEW_ReduceAction396_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:550 */
-  REGB0 = TAG_Int(70);
-  fra.me.REG[2] = NEW_ReduceAction395_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:550 */
+  REGB0 = TAG_Int(67);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:551 */
-  REGB0 = TAG_Int(71);
+  /* parser/parser.nit:551 */
+  REGB0 = TAG_Int(67);
   fra.me.REG[2] = NEW_ReduceAction398_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:552 */
-  REGB0 = TAG_Int(72);
+  /* parser/parser.nit:552 */
+  REGB0 = TAG_Int(67);
   fra.me.REG[2] = NEW_ReduceAction399_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:553 */
-  REGB0 = TAG_Int(73);
+  /* parser/parser.nit:553 */
+  REGB0 = TAG_Int(67);
   fra.me.REG[2] = NEW_ReduceAction400_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:554 */
-  REGB0 = TAG_Int(73);
+  /* parser/parser.nit:554 */
+  REGB0 = TAG_Int(68);
   fra.me.REG[2] = NEW_ReduceAction401_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:555 */
-  REGB0 = TAG_Int(73);
-  fra.me.REG[2] = NEW_ReduceAction202_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:555 */
+  REGB0 = TAG_Int(68);
+  fra.me.REG[2] = NEW_ReduceAction402_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:556 */
-  REGB0 = TAG_Int(73);
+  /* parser/parser.nit:556 */
+  REGB0 = TAG_Int(69);
   fra.me.REG[2] = NEW_ReduceAction403_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:557 */
-  REGB0 = TAG_Int(74);
-  fra.me.REG[2] = NEW_ReduceAction400_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:557 */
+  REGB0 = TAG_Int(70);
+  fra.me.REG[2] = NEW_ReduceAction404_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:558 */
-  REGB0 = TAG_Int(74);
-  fra.me.REG[2] = NEW_ReduceAction401_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:558 */
+  REGB0 = TAG_Int(71);
+  fra.me.REG[2] = NEW_ReduceAction403_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:559 */
-  REGB0 = TAG_Int(74);
+  /* parser/parser.nit:559 */
+  REGB0 = TAG_Int(72);
   fra.me.REG[2] = NEW_ReduceAction406_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:560 */
+  REGB0 = TAG_Int(73);
+  fra.me.REG[2] = NEW_ReduceAction407_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:560 */
+  /* parser/parser.nit:561 */
   REGB0 = TAG_Int(74);
-  fra.me.REG[2] = NEW_ReduceAction202_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction408_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:561 */
+  /* parser/parser.nit:562 */
   REGB0 = TAG_Int(74);
-  fra.me.REG[2] = NEW_ReduceAction403_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction409_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:562 */
-  REGB0 = TAG_Int(75);
-  fra.me.REG[2] = NEW_ReduceAction400_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:563 */
+  REGB0 = TAG_Int(74);
+  fra.me.REG[2] = NEW_ReduceAction410_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:563 */
+  /* parser/parser.nit:564 */
   REGB0 = TAG_Int(75);
-  fra.me.REG[2] = NEW_ReduceAction401_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:564 */
-  REGB0 = TAG_Int(76);
-  fra.me.REG[2] = NEW_ReduceAction411_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction408_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:565 */
-  REGB0 = TAG_Int(77);
+  /* parser/parser.nit:565 */
+  REGB0 = TAG_Int(75);
   fra.me.REG[2] = NEW_ReduceAction412_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:566 */
-  REGB0 = TAG_Int(77);
-  fra.me.REG[2] = NEW_ReduceAction413_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:566 */
+  REGB0 = TAG_Int(75);
+  fra.me.REG[2] = NEW_ReduceAction409_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:567 */
-  REGB0 = TAG_Int(78);
-  fra.me.REG[2] = NEW_ReduceAction414_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:567 */
+  REGB0 = TAG_Int(75);
+  fra.me.REG[2] = NEW_ReduceAction410_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:568 */
-  REGB0 = TAG_Int(78);
+  /* parser/parser.nit:568 */
+  REGB0 = TAG_Int(76);
   fra.me.REG[2] = NEW_ReduceAction415_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:569 */
-  REGB0 = TAG_Int(78);
+  /* parser/parser.nit:569 */
+  REGB0 = TAG_Int(77);
   fra.me.REG[2] = NEW_ReduceAction416_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:570 */
-  REGB0 = TAG_Int(78);
+  /* parser/parser.nit:570 */
+  REGB0 = TAG_Int(77);
   fra.me.REG[2] = NEW_ReduceAction417_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:571 */
-  REGB0 = TAG_Int(79);
+  /* parser/parser.nit:571 */
+  REGB0 = TAG_Int(78);
   fra.me.REG[2] = NEW_ReduceAction418_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:572 */
+  /* parser/parser.nit:572 */
   REGB0 = TAG_Int(79);
   fra.me.REG[2] = NEW_ReduceAction419_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:573 */
+  /* parser/parser.nit:573 */
   REGB0 = TAG_Int(79);
   fra.me.REG[2] = NEW_ReduceAction420_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:574 */
+  /* parser/parser.nit:574 */
   REGB0 = TAG_Int(80);
   fra.me.REG[2] = NEW_ReduceAction421_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:575 */
-  REGB0 = TAG_Int(81);
+  /* parser/parser.nit:575 */
+  REGB0 = TAG_Int(80);
   fra.me.REG[2] = NEW_ReduceAction422_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:576 */
-  REGB0 = TAG_Int(82);
+  /* parser/parser.nit:576 */
+  REGB0 = TAG_Int(80);
   fra.me.REG[2] = NEW_ReduceAction423_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:577 */
-  REGB0 = TAG_Int(82);
-  fra.me.REG[2] = NEW_ReduceAction423_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:577 */
+  REGB0 = TAG_Int(80);
+  fra.me.REG[2] = NEW_ReduceAction424_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:578 */
-  REGB0 = TAG_Int(83);
+  /* parser/parser.nit:578 */
+  REGB0 = TAG_Int(81);
   fra.me.REG[2] = NEW_ReduceAction425_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:579 */
-  REGB0 = TAG_Int(83);
+  /* parser/parser.nit:579 */
+  REGB0 = TAG_Int(81);
   fra.me.REG[2] = NEW_ReduceAction426_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:580 */
+  REGB0 = TAG_Int(81);
+  fra.me.REG[2] = NEW_ReduceAction427_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:580 */
+  /* parser/parser.nit:581 */
+  REGB0 = TAG_Int(82);
+  fra.me.REG[2] = NEW_ReduceAction428_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:582 */
   REGB0 = TAG_Int(83);
-  fra.me.REG[2] = NEW_ReduceAction36_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction429_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:581 */
+  /* parser/parser.nit:583 */
   REGB0 = TAG_Int(84);
-  fra.me.REG[2] = NEW_ReduceAction428_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction430_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:582 */
+  /* parser/parser.nit:584 */
   REGB0 = TAG_Int(84);
-  fra.me.REG[2] = NEW_ReduceAction429_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction430_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:583 */
+  /* parser/parser.nit:585 */
   REGB0 = TAG_Int(85);
-  fra.me.REG[2] = NEW_ReduceAction430_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction432_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:584 */
+  /* parser/parser.nit:586 */
   REGB0 = TAG_Int(85);
-  fra.me.REG[2] = NEW_ReduceAction431_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction433_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:585 */
+  /* parser/parser.nit:587 */
   REGB0 = TAG_Int(85);
-  fra.me.REG[2] = NEW_ReduceAction423_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction36_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:586 */
+  /* parser/parser.nit:588 */
   REGB0 = TAG_Int(86);
-  fra.me.REG[2] = NEW_ReduceAction67_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction435_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:589 */
+  REGB0 = TAG_Int(86);
+  fra.me.REG[2] = NEW_ReduceAction436_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:587 */
+  /* parser/parser.nit:590 */
   REGB0 = TAG_Int(87);
-  fra.me.REG[2] = NEW_ReduceAction68_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction437_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:588 */
+  /* parser/parser.nit:591 */
   REGB0 = TAG_Int(87);
-  fra.me.REG[2] = NEW_ReduceAction69_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction438_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:589 */
+  /* parser/parser.nit:592 */
   REGB0 = TAG_Int(87);
+  fra.me.REG[2] = NEW_ReduceAction430_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:593 */
+  REGB0 = TAG_Int(88);
+  fra.me.REG[2] = NEW_ReduceAction67_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:594 */
+  REGB0 = TAG_Int(89);
+  fra.me.REG[2] = NEW_ReduceAction68_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:595 */
+  REGB0 = TAG_Int(89);
+  fra.me.REG[2] = NEW_ReduceAction69_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:596 */
+  REGB0 = TAG_Int(89);
   fra.me.REG[2] = NEW_ReduceAction70_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:590 */
-  REGB0 = TAG_Int(87);
+  /* parser/parser.nit:597 */
+  REGB0 = TAG_Int(89);
   fra.me.REG[2] = NEW_ReduceAction71_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:591 */
-  REGB0 = TAG_Int(87);
+  /* parser/parser.nit:598 */
+  REGB0 = TAG_Int(89);
   fra.me.REG[2] = NEW_ReduceAction72_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:592 */
-  REGB0 = TAG_Int(87);
+  /* parser/parser.nit:599 */
+  REGB0 = TAG_Int(89);
   fra.me.REG[2] = NEW_ReduceAction73_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:593 */
-  REGB0 = TAG_Int(87);
+  /* parser/parser.nit:600 */
+  REGB0 = TAG_Int(89);
   fra.me.REG[2] = NEW_ReduceAction78_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:594 */
-  REGB0 = TAG_Int(87);
+  /* parser/parser.nit:601 */
+  REGB0 = TAG_Int(89);
   fra.me.REG[2] = NEW_ReduceAction79_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:595 */
-  REGB0 = TAG_Int(87);
+  /* parser/parser.nit:602 */
+  REGB0 = TAG_Int(89);
   fra.me.REG[2] = NEW_ReduceAction80_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:596 */
-  REGB0 = TAG_Int(87);
+  /* parser/parser.nit:603 */
+  REGB0 = TAG_Int(89);
   fra.me.REG[2] = NEW_ReduceAction81_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:597 */
-  REGB0 = TAG_Int(87);
+  /* parser/parser.nit:604 */
+  REGB0 = TAG_Int(89);
   fra.me.REG[2] = NEW_ReduceAction82_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:598 */
-  REGB0 = TAG_Int(87);
+  /* parser/parser.nit:605 */
+  REGB0 = TAG_Int(89);
   fra.me.REG[2] = NEW_ReduceAction83_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:599 */
-  REGB0 = TAG_Int(87);
+  /* parser/parser.nit:606 */
+  REGB0 = TAG_Int(89);
   fra.me.REG[2] = NEW_ReduceAction84_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:600 */
-  REGB0 = TAG_Int(87);
+  /* parser/parser.nit:607 */
+  REGB0 = TAG_Int(89);
   fra.me.REG[2] = NEW_ReduceAction85_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:601 */
-  REGB0 = TAG_Int(88);
+  /* parser/parser.nit:608 */
+  REGB0 = TAG_Int(90);
   fra.me.REG[2] = NEW_ReduceAction188_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:602 */
-  REGB0 = TAG_Int(88);
+  /* parser/parser.nit:609 */
+  REGB0 = TAG_Int(90);
   fra.me.REG[2] = NEW_ReduceAction189_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:603 */
-  REGB0 = TAG_Int(88);
+  /* parser/parser.nit:610 */
+  REGB0 = TAG_Int(90);
   fra.me.REG[2] = NEW_ReduceAction190_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:604 */
-  REGB0 = TAG_Int(88);
-  fra.me.REG[2] = NEW_ReduceAction191_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:605 */
-  REGB0 = TAG_Int(89);
-  fra.me.REG[2] = NEW_ReduceAction227_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:606 */
-  REGB0 = TAG_Int(89);
-  fra.me.REG[2] = NEW_ReduceAction228_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:607 */
+  /* parser/parser.nit:611 */
   REGB0 = TAG_Int(90);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction191_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:608 */
+  /* parser/parser.nit:612 */
   REGB0 = TAG_Int(90);
-  fra.me.REG[2] = NEW_ReduceAction265_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction196_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:609 */
+  /* parser/parser.nit:613 */
   REGB0 = TAG_Int(90);
-  fra.me.REG[2] = NEW_ReduceAction266_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction197_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:610 */
+  /* parser/parser.nit:614 */
   REGB0 = TAG_Int(91);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction232_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:611 */
+  /* parser/parser.nit:615 */
   REGB0 = TAG_Int(91);
-  fra.me.REG[2] = NEW_ReduceAction335_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:612 */
-  REGB0 = TAG_Int(92);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction233_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:613 */
+  /* parser/parser.nit:616 */
   REGB0 = TAG_Int(92);
-  fra.me.REG[2] = NEW_ReduceAction337_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:614 */
+  /* parser/parser.nit:617 */
   REGB0 = TAG_Int(92);
-  fra.me.REG[2] = NEW_ReduceAction338_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction272_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:615 */
+  /* parser/parser.nit:618 */
   REGB0 = TAG_Int(92);
-  fra.me.REG[2] = NEW_ReduceAction339_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction273_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:616 */
+  /* parser/parser.nit:619 */
   REGB0 = TAG_Int(93);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:617 */
+  /* parser/parser.nit:620 */
   REGB0 = TAG_Int(93);
-  fra.me.REG[2] = NEW_ReduceAction341_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:618 */
-  REGB0 = TAG_Int(94);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:619 */
-  REGB0 = TAG_Int(94);
   fra.me.REG[2] = NEW_ReduceAction343_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:620 */
+  /* parser/parser.nit:621 */
   REGB0 = TAG_Int(94);
-  fra.me.REG[2] = NEW_ReduceAction344_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:621 */
+  /* parser/parser.nit:622 */
   REGB0 = TAG_Int(94);
   fra.me.REG[2] = NEW_ReduceAction345_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:622 */
+  /* parser/parser.nit:623 */
   REGB0 = TAG_Int(94);
   fra.me.REG[2] = NEW_ReduceAction346_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:623 */
+  /* parser/parser.nit:624 */
   REGB0 = TAG_Int(94);
   fra.me.REG[2] = NEW_ReduceAction347_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:624 */
-  REGB0 = TAG_Int(94);
-  fra.me.REG[2] = NEW_ReduceAction348_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:625 */
+  REGB0 = TAG_Int(95);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:625 */
-  REGB0 = TAG_Int(94);
+  /* parser/parser.nit:626 */
+  REGB0 = TAG_Int(95);
   fra.me.REG[2] = NEW_ReduceAction349_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:626 */
-  REGB0 = TAG_Int(94);
-  fra.me.REG[2] = NEW_ReduceAction350_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:627 */
+  REGB0 = TAG_Int(96);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:627 */
-  REGB0 = TAG_Int(94);
+  /* parser/parser.nit:628 */
+  REGB0 = TAG_Int(96);
   fra.me.REG[2] = NEW_ReduceAction351_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:628 */
-  REGB0 = TAG_Int(94);
+  /* parser/parser.nit:629 */
+  REGB0 = TAG_Int(96);
   fra.me.REG[2] = NEW_ReduceAction352_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:629 */
-  REGB0 = TAG_Int(94);
+  /* parser/parser.nit:630 */
+  REGB0 = TAG_Int(96);
   fra.me.REG[2] = NEW_ReduceAction353_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:630 */
-  REGB0 = TAG_Int(95);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:631 */
+  REGB0 = TAG_Int(96);
+  fra.me.REG[2] = NEW_ReduceAction354_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:631 */
-  REGB0 = TAG_Int(95);
+  /* parser/parser.nit:632 */
+  REGB0 = TAG_Int(96);
   fra.me.REG[2] = NEW_ReduceAction355_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:632 */
-  REGB0 = TAG_Int(95);
+  /* parser/parser.nit:633 */
+  REGB0 = TAG_Int(96);
   fra.me.REG[2] = NEW_ReduceAction356_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:633 */
+  /* parser/parser.nit:634 */
   REGB0 = TAG_Int(96);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction357_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:634 */
+  /* parser/parser.nit:635 */
   REGB0 = TAG_Int(96);
   fra.me.REG[2] = NEW_ReduceAction358_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:635 */
+  /* parser/parser.nit:636 */
   REGB0 = TAG_Int(96);
   fra.me.REG[2] = NEW_ReduceAction359_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:636 */
+  /* parser/parser.nit:637 */
   REGB0 = TAG_Int(96);
   fra.me.REG[2] = NEW_ReduceAction360_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:637 */
-  REGB0 = TAG_Int(97);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:638 */
+  REGB0 = TAG_Int(96);
+  fra.me.REG[2] = NEW_ReduceAction361_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:638 */
+  /* parser/parser.nit:639 */
   REGB0 = TAG_Int(97);
-  fra.me.REG[2] = NEW_ReduceAction362_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:639 */
+  /* parser/parser.nit:640 */
   REGB0 = TAG_Int(97);
   fra.me.REG[2] = NEW_ReduceAction363_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:640 */
-  REGB0 = TAG_Int(98);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:641 */
+  REGB0 = TAG_Int(97);
+  fra.me.REG[2] = NEW_ReduceAction364_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:641 */
+  /* parser/parser.nit:642 */
   REGB0 = TAG_Int(98);
-  fra.me.REG[2] = NEW_ReduceAction365_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:642 */
+  /* parser/parser.nit:643 */
   REGB0 = TAG_Int(98);
   fra.me.REG[2] = NEW_ReduceAction366_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:643 */
+  /* parser/parser.nit:644 */
   REGB0 = TAG_Int(98);
   fra.me.REG[2] = NEW_ReduceAction367_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:644 */
-  REGB0 = TAG_Int(99);
+  /* parser/parser.nit:645 */
+  REGB0 = TAG_Int(98);
   fra.me.REG[2] = NEW_ReduceAction368_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:645 */
+  /* parser/parser.nit:646 */
   REGB0 = TAG_Int(99);
-  fra.me.REG[2] = NEW_ReduceAction369_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:646 */
+  /* parser/parser.nit:647 */
   REGB0 = TAG_Int(99);
-  fra.me.REG[2] = NEW_ReduceAction263_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction370_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:647 */
+  /* parser/parser.nit:648 */
   REGB0 = TAG_Int(99);
-  fra.me.REG[2] = NEW_ReduceAction264_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction371_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:648 */
-  REGB0 = TAG_Int(99);
-  fra.me.REG[2] = NEW_ReduceAction267_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:649 */
+  REGB0 = TAG_Int(100);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:649 */
-  REGB0 = TAG_Int(99);
-  fra.me.REG[2] = NEW_ReduceAction268_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:650 */
+  REGB0 = TAG_Int(100);
+  fra.me.REG[2] = NEW_ReduceAction373_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:650 */
-  REGB0 = TAG_Int(99);
-  fra.me.REG[2] = NEW_ReduceAction269_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:651 */
+  REGB0 = TAG_Int(100);
+  fra.me.REG[2] = NEW_ReduceAction374_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:651 */
-  REGB0 = TAG_Int(99);
-  fra.me.REG[2] = NEW_ReduceAction270_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:652 */
+  REGB0 = TAG_Int(100);
+  fra.me.REG[2] = NEW_ReduceAction375_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:652 */
-  REGB0 = TAG_Int(99);
-  fra.me.REG[2] = NEW_ReduceAction377_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:653 */
+  REGB0 = TAG_Int(101);
+  fra.me.REG[2] = NEW_ReduceAction376_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:653 */
-  REGB0 = TAG_Int(99);
-  fra.me.REG[2] = NEW_ReduceAction381_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:654 */
+  REGB0 = TAG_Int(101);
+  fra.me.REG[2] = NEW_ReduceAction377_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:654 */
-  REGB0 = TAG_Int(99);
-  fra.me.REG[2] = NEW_ReduceAction382_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:655 */
+  REGB0 = TAG_Int(101);
+  fra.me.REG[2] = NEW_ReduceAction270_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:655 */
-  REGB0 = TAG_Int(99);
-  fra.me.REG[2] = NEW_ReduceAction383_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:656 */
+  REGB0 = TAG_Int(101);
+  fra.me.REG[2] = NEW_ReduceAction271_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:656 */
-  REGB0 = TAG_Int(99);
-  fra.me.REG[2] = NEW_ReduceAction384_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:657 */
+  REGB0 = TAG_Int(101);
+  fra.me.REG[2] = NEW_ReduceAction274_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:657 */
-  REGB0 = TAG_Int(99);
-  fra.me.REG[2] = NEW_ReduceAction385_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:658 */
+  REGB0 = TAG_Int(101);
+  fra.me.REG[2] = NEW_ReduceAction275_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:658 */
-  REGB0 = TAG_Int(99);
-  fra.me.REG[2] = NEW_ReduceAction386_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:659 */
+  REGB0 = TAG_Int(101);
+  fra.me.REG[2] = NEW_ReduceAction276_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:659 */
-  REGB0 = TAG_Int(99);
-  fra.me.REG[2] = NEW_ReduceAction387_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:660 */
+  REGB0 = TAG_Int(101);
+  fra.me.REG[2] = NEW_ReduceAction277_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:660 */
-  REGB0 = TAG_Int(99);
-  fra.me.REG[2] = NEW_ReduceAction388_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:661 */
+  REGB0 = TAG_Int(101);
+  fra.me.REG[2] = NEW_ReduceAction385_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:661 */
-  REGB0 = TAG_Int(99);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:662 */
+  REGB0 = TAG_Int(101);
+  fra.me.REG[2] = NEW_ReduceAction389_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:662 */
-  REGB0 = TAG_Int(99);
-  fra.me.REG[2] = NEW_ReduceAction235_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:663 */
+  REGB0 = TAG_Int(101);
+  fra.me.REG[2] = NEW_ReduceAction390_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:663 */
-  REGB0 = TAG_Int(99);
+  /* parser/parser.nit:664 */
+  REGB0 = TAG_Int(101);
   fra.me.REG[2] = NEW_ReduceAction391_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:664 */
-  REGB0 = TAG_Int(99);
+  /* parser/parser.nit:665 */
+  REGB0 = TAG_Int(101);
   fra.me.REG[2] = NEW_ReduceAction392_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:665 */
-  REGB0 = TAG_Int(100);
-  fra.me.REG[2] = NEW_ReduceAction235_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:666 */
-  REGB0 = TAG_Int(100);
-  fra.me.REG[2] = NEW_ReduceAction236_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:667 */
-  REGB0 = TAG_Int(100);
-  fra.me.REG[2] = NEW_ReduceAction237_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:668 */
-  REGB0 = TAG_Int(100);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:669 */
+  /* parser/parser.nit:666 */
   REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction393_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:670 */
+  /* parser/parser.nit:667 */
   REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction394_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:671 */
+  /* parser/parser.nit:668 */
   REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction246_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction395_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:672 */
+  /* parser/parser.nit:669 */
   REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction247_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction396_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:673 */
+  /* parser/parser.nit:670 */
   REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction248_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:674 */
+  /* parser/parser.nit:671 */
   REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction249_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction398_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:675 */
+  /* parser/parser.nit:672 */
   REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction250_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction399_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:676 */
+  /* parser/parser.nit:673 */
   REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction251_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction400_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:677 */
-  REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction252_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:674 */
+  REGB0 = TAG_Int(102);
+  fra.me.REG[2] = NEW_ReduceAction240_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:678 */
-  REGB0 = TAG_Int(101);
+  /* parser/parser.nit:675 */
+  REGB0 = TAG_Int(102);
+  fra.me.REG[2] = NEW_ReduceAction241_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:676 */
+  REGB0 = TAG_Int(102);
+  fra.me.REG[2] = NEW_ReduceAction242_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:677 */
+  REGB0 = TAG_Int(102);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:678 */
+  REGB0 = TAG_Int(103);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:679 */
+  REGB0 = TAG_Int(103);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:680 */
+  REGB0 = TAG_Int(103);
   fra.me.REG[2] = NEW_ReduceAction253_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:679 */
-  REGB0 = TAG_Int(101);
+  /* parser/parser.nit:681 */
+  REGB0 = TAG_Int(103);
   fra.me.REG[2] = NEW_ReduceAction254_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:680 */
-  REGB0 = TAG_Int(101);
+  /* parser/parser.nit:682 */
+  REGB0 = TAG_Int(103);
   fra.me.REG[2] = NEW_ReduceAction255_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:681 */
-  REGB0 = TAG_Int(101);
+  /* parser/parser.nit:683 */
+  REGB0 = TAG_Int(103);
   fra.me.REG[2] = NEW_ReduceAction256_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:682 */
-  REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:684 */
+  REGB0 = TAG_Int(103);
+  fra.me.REG[2] = NEW_ReduceAction257_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:683 */
-  REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:685 */
+  REGB0 = TAG_Int(103);
+  fra.me.REG[2] = NEW_ReduceAction258_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:684 */
-  REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:686 */
+  REGB0 = TAG_Int(103);
+  fra.me.REG[2] = NEW_ReduceAction259_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:685 */
-  REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:687 */
+  REGB0 = TAG_Int(103);
+  fra.me.REG[2] = NEW_ReduceAction260_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:686 */
-  REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:688 */
+  REGB0 = TAG_Int(103);
+  fra.me.REG[2] = NEW_ReduceAction261_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:687 */
-  REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:689 */
+  REGB0 = TAG_Int(103);
+  fra.me.REG[2] = NEW_ReduceAction262_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:688 */
-  REGB0 = TAG_Int(101);
+  /* parser/parser.nit:690 */
+  REGB0 = TAG_Int(103);
   fra.me.REG[2] = NEW_ReduceAction263_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:689 */
-  REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction264_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:691 */
+  REGB0 = TAG_Int(103);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:690 */
-  REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction265_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:692 */
+  REGB0 = TAG_Int(103);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:691 */
-  REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction266_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:693 */
+  REGB0 = TAG_Int(103);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:692 */
-  REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction267_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:694 */
+  REGB0 = TAG_Int(103);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:693 */
-  REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction268_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:695 */
+  REGB0 = TAG_Int(103);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:694 */
-  REGB0 = TAG_Int(101);
-  fra.me.REG[2] = NEW_ReduceAction269_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:696 */
+  REGB0 = TAG_Int(103);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:695 */
-  REGB0 = TAG_Int(101);
+  /* parser/parser.nit:697 */
+  REGB0 = TAG_Int(103);
   fra.me.REG[2] = NEW_ReduceAction270_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:696 */
-  REGB0 = TAG_Int(102);
+  /* parser/parser.nit:698 */
+  REGB0 = TAG_Int(103);
+  fra.me.REG[2] = NEW_ReduceAction271_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:699 */
+  REGB0 = TAG_Int(103);
   fra.me.REG[2] = NEW_ReduceAction272_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:697 */
-  REGB0 = TAG_Int(102);
+  /* parser/parser.nit:700 */
+  REGB0 = TAG_Int(103);
   fra.me.REG[2] = NEW_ReduceAction273_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:698 */
+  /* parser/parser.nit:701 */
   REGB0 = TAG_Int(103);
   fra.me.REG[2] = NEW_ReduceAction274_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:699 */
+  /* parser/parser.nit:702 */
   REGB0 = TAG_Int(103);
   fra.me.REG[2] = NEW_ReduceAction275_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:700 */
+  /* parser/parser.nit:703 */
   REGB0 = TAG_Int(103);
   fra.me.REG[2] = NEW_ReduceAction276_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:701 */
+  /* parser/parser.nit:704 */
   REGB0 = TAG_Int(103);
   fra.me.REG[2] = NEW_ReduceAction277_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:702 */
+  /* parser/parser.nit:705 */
   REGB0 = TAG_Int(103);
   fra.me.REG[2] = NEW_ReduceAction278_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:703 */
-  REGB0 = TAG_Int(103);
-  fra.me.REG[2] = NEW_ReduceAction279_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:704 */
-  REGB0 = TAG_Int(103);
+  /* parser/parser.nit:706 */
+  REGB0 = TAG_Int(104);
   fra.me.REG[2] = NEW_ReduceAction280_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:705 */
-  REGB0 = TAG_Int(103);
+  /* parser/parser.nit:707 */
+  REGB0 = TAG_Int(104);
   fra.me.REG[2] = NEW_ReduceAction281_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:706 */
-  REGB0 = TAG_Int(103);
+  /* parser/parser.nit:708 */
+  REGB0 = TAG_Int(105);
   fra.me.REG[2] = NEW_ReduceAction282_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:707 */
-  REGB0 = TAG_Int(104);
-  fra.me.REG[2] = NEW_ReduceAction291_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:709 */
+  REGB0 = TAG_Int(105);
+  fra.me.REG[2] = NEW_ReduceAction283_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:708 */
+  /* parser/parser.nit:710 */
   REGB0 = TAG_Int(105);
-  fra.me.REG[2] = NEW_ReduceAction292_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction284_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:709 */
+  /* parser/parser.nit:711 */
   REGB0 = TAG_Int(105);
-  fra.me.REG[2] = NEW_ReduceAction293_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction285_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:710 */
+  /* parser/parser.nit:712 */
   REGB0 = TAG_Int(105);
-  fra.me.REG[2] = NEW_ReduceAction294_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction286_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:711 */
+  /* parser/parser.nit:713 */
   REGB0 = TAG_Int(105);
-  fra.me.REG[2] = NEW_ReduceAction295_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction287_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:712 */
-  REGB0 = TAG_Int(106);
-  fra.me.REG[2] = NEW_ReduceAction296_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:714 */
+  REGB0 = TAG_Int(105);
+  fra.me.REG[2] = NEW_ReduceAction288_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:713 */
-  REGB0 = TAG_Int(106);
-  fra.me.REG[2] = NEW_ReduceAction297_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:715 */
+  REGB0 = TAG_Int(105);
+  fra.me.REG[2] = NEW_ReduceAction289_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:714 */
-  REGB0 = TAG_Int(106);
-  fra.me.REG[2] = NEW_ReduceAction298_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:716 */
+  REGB0 = TAG_Int(105);
+  fra.me.REG[2] = NEW_ReduceAction290_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:715 */
+  /* parser/parser.nit:717 */
   REGB0 = TAG_Int(106);
   fra.me.REG[2] = NEW_ReduceAction299_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:716 */
-  REGB0 = TAG_Int(106);
+  /* parser/parser.nit:718 */
+  REGB0 = TAG_Int(107);
   fra.me.REG[2] = NEW_ReduceAction300_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:717 */
-  REGB0 = TAG_Int(106);
+  /* parser/parser.nit:719 */
+  REGB0 = TAG_Int(107);
   fra.me.REG[2] = NEW_ReduceAction301_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:718 */
-  REGB0 = TAG_Int(106);
+  /* parser/parser.nit:720 */
+  REGB0 = TAG_Int(107);
   fra.me.REG[2] = NEW_ReduceAction302_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:719 */
-  REGB0 = TAG_Int(106);
+  /* parser/parser.nit:721 */
+  REGB0 = TAG_Int(107);
   fra.me.REG[2] = NEW_ReduceAction303_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:720 */
-  REGB0 = TAG_Int(106);
+  /* parser/parser.nit:722 */
+  REGB0 = TAG_Int(108);
   fra.me.REG[2] = NEW_ReduceAction304_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:721 */
-  REGB0 = TAG_Int(106);
+  /* parser/parser.nit:723 */
+  REGB0 = TAG_Int(108);
   fra.me.REG[2] = NEW_ReduceAction305_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:722 */
-  REGB0 = TAG_Int(107);
+  /* parser/parser.nit:724 */
+  REGB0 = TAG_Int(108);
+  fra.me.REG[2] = NEW_ReduceAction306_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:725 */
+  REGB0 = TAG_Int(108);
+  fra.me.REG[2] = NEW_ReduceAction307_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:726 */
+  REGB0 = TAG_Int(108);
   fra.me.REG[2] = NEW_ReduceAction308_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:723 */
-  REGB0 = TAG_Int(107);
+  /* parser/parser.nit:727 */
+  REGB0 = TAG_Int(108);
   fra.me.REG[2] = NEW_ReduceAction309_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:724 */
+  /* parser/parser.nit:728 */
   REGB0 = TAG_Int(108);
   fra.me.REG[2] = NEW_ReduceAction310_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:725 */
-  REGB0 = TAG_Int(109);
-  fra.me.REG[2] = NEW_ReduceAction317_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:729 */
+  REGB0 = TAG_Int(108);
+  fra.me.REG[2] = NEW_ReduceAction311_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:726 */
-  REGB0 = TAG_Int(109);
-  fra.me.REG[2] = NEW_ReduceAction318_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:730 */
+  REGB0 = TAG_Int(108);
+  fra.me.REG[2] = NEW_ReduceAction312_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:727 */
-  REGB0 = TAG_Int(110);
-  fra.me.REG[2] = NEW_ReduceAction319_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:731 */
+  REGB0 = TAG_Int(108);
+  fra.me.REG[2] = NEW_ReduceAction313_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:728 */
-  REGB0 = TAG_Int(110);
-  fra.me.REG[2] = NEW_ReduceAction320_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:732 */
+  REGB0 = TAG_Int(109);
+  fra.me.REG[2] = NEW_ReduceAction316_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:729 */
-  REGB0 = TAG_Int(111);
-  fra.me.REG[2] = NEW_ReduceAction321_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:733 */
+  REGB0 = TAG_Int(109);
+  fra.me.REG[2] = NEW_ReduceAction317_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:730 */
-  REGB0 = TAG_Int(111);
-  fra.me.REG[2] = NEW_ReduceAction322_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:734 */
+  REGB0 = TAG_Int(110);
+  fra.me.REG[2] = NEW_ReduceAction318_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:731 */
+  /* parser/parser.nit:735 */
   REGB0 = TAG_Int(111);
-  fra.me.REG[2] = NEW_ReduceAction323_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction325_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:732 */
+  /* parser/parser.nit:736 */
   REGB0 = TAG_Int(111);
-  fra.me.REG[2] = NEW_ReduceAction324_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction326_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:733 */
+  /* parser/parser.nit:737 */
   REGB0 = TAG_Int(112);
-  fra.me.REG[2] = NEW_ReduceAction325_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction327_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:734 */
+  /* parser/parser.nit:738 */
   REGB0 = TAG_Int(112);
-  fra.me.REG[2] = NEW_ReduceAction326_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction328_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:735 */
+  /* parser/parser.nit:739 */
   REGB0 = TAG_Int(113);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction329_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:736 */
+  /* parser/parser.nit:740 */
   REGB0 = TAG_Int(113);
-  fra.me.REG[2] = NEW_ReduceAction265_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction330_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:737 */
+  /* parser/parser.nit:741 */
   REGB0 = TAG_Int(113);
-  fra.me.REG[2] = NEW_ReduceAction266_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction331_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:738 */
+  /* parser/parser.nit:742 */
   REGB0 = TAG_Int(113);
-  fra.me.REG[2] = NEW_ReduceAction333_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction332_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:739 */
+  /* parser/parser.nit:743 */
   REGB0 = TAG_Int(114);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction333_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:740 */
+  /* parser/parser.nit:744 */
   REGB0 = TAG_Int(114);
-  fra.me.REG[2] = NEW_ReduceAction265_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction334_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:741 */
-  REGB0 = TAG_Int(114);
-  fra.me.REG[2] = NEW_ReduceAction266_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:745 */
+  REGB0 = TAG_Int(115);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:742 */
+  /* parser/parser.nit:746 */
   REGB0 = TAG_Int(115);
-  fra.me.REG[2] = NEW_ReduceAction235_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction272_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:743 */
+  /* parser/parser.nit:747 */
   REGB0 = TAG_Int(115);
-  fra.me.REG[2] = NEW_ReduceAction236_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction273_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:744 */
+  /* parser/parser.nit:748 */
   REGB0 = TAG_Int(115);
-  fra.me.REG[2] = NEW_ReduceAction237_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction341_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:745 */
+  /* parser/parser.nit:749 */
   REGB0 = TAG_Int(116);
-  fra.me.REG[2] = NEW_ReduceAction235_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:746 */
+  /* parser/parser.nit:750 */
   REGB0 = TAG_Int(116);
-  fra.me.REG[2] = NEW_ReduceAction236_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction272_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:747 */
+  /* parser/parser.nit:751 */
   REGB0 = TAG_Int(116);
-  fra.me.REG[2] = NEW_ReduceAction237_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction273_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:748 */
+  /* parser/parser.nit:752 */
   REGB0 = TAG_Int(117);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction240_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:749 */
+  /* parser/parser.nit:753 */
   REGB0 = TAG_Int(117);
-  fra.me.REG[2] = NEW_ReduceAction265_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction241_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:750 */
+  /* parser/parser.nit:754 */
   REGB0 = TAG_Int(117);
-  fra.me.REG[2] = NEW_ReduceAction266_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction242_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:751 */
+  /* parser/parser.nit:755 */
   REGB0 = TAG_Int(118);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction240_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:752 */
+  /* parser/parser.nit:756 */
   REGB0 = TAG_Int(118);
-  fra.me.REG[2] = NEW_ReduceAction335_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction241_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:753 */
-  REGB0 = TAG_Int(119);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:757 */
+  REGB0 = TAG_Int(118);
+  fra.me.REG[2] = NEW_ReduceAction242_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:754 */
+  /* parser/parser.nit:758 */
   REGB0 = TAG_Int(119);
-  fra.me.REG[2] = NEW_ReduceAction337_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:755 */
+  /* parser/parser.nit:759 */
   REGB0 = TAG_Int(119);
-  fra.me.REG[2] = NEW_ReduceAction338_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction272_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:756 */
+  /* parser/parser.nit:760 */
   REGB0 = TAG_Int(119);
-  fra.me.REG[2] = NEW_ReduceAction339_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction273_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:757 */
+  /* parser/parser.nit:761 */
   REGB0 = TAG_Int(120);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:758 */
+  /* parser/parser.nit:762 */
   REGB0 = TAG_Int(120);
-  fra.me.REG[2] = NEW_ReduceAction341_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:759 */
-  REGB0 = TAG_Int(121);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:760 */
-  REGB0 = TAG_Int(121);
   fra.me.REG[2] = NEW_ReduceAction343_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:761 */
+  /* parser/parser.nit:763 */
   REGB0 = TAG_Int(121);
-  fra.me.REG[2] = NEW_ReduceAction344_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:762 */
+  /* parser/parser.nit:764 */
   REGB0 = TAG_Int(121);
   fra.me.REG[2] = NEW_ReduceAction345_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:763 */
+  /* parser/parser.nit:765 */
   REGB0 = TAG_Int(121);
   fra.me.REG[2] = NEW_ReduceAction346_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:764 */
+  /* parser/parser.nit:766 */
   REGB0 = TAG_Int(121);
   fra.me.REG[2] = NEW_ReduceAction347_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:765 */
-  REGB0 = TAG_Int(121);
-  fra.me.REG[2] = NEW_ReduceAction348_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:767 */
+  REGB0 = TAG_Int(122);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:766 */
-  REGB0 = TAG_Int(121);
+  /* parser/parser.nit:768 */
+  REGB0 = TAG_Int(122);
   fra.me.REG[2] = NEW_ReduceAction349_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:767 */
-  REGB0 = TAG_Int(121);
-  fra.me.REG[2] = NEW_ReduceAction350_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:769 */
+  REGB0 = TAG_Int(123);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:768 */
-  REGB0 = TAG_Int(121);
+  /* parser/parser.nit:770 */
+  REGB0 = TAG_Int(123);
   fra.me.REG[2] = NEW_ReduceAction351_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:769 */
-  REGB0 = TAG_Int(121);
+  /* parser/parser.nit:771 */
+  REGB0 = TAG_Int(123);
   fra.me.REG[2] = NEW_ReduceAction352_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:770 */
-  REGB0 = TAG_Int(121);
+  /* parser/parser.nit:772 */
+  REGB0 = TAG_Int(123);
   fra.me.REG[2] = NEW_ReduceAction353_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:771 */
-  REGB0 = TAG_Int(122);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:773 */
+  REGB0 = TAG_Int(123);
+  fra.me.REG[2] = NEW_ReduceAction354_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:772 */
-  REGB0 = TAG_Int(122);
+  /* parser/parser.nit:774 */
+  REGB0 = TAG_Int(123);
   fra.me.REG[2] = NEW_ReduceAction355_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:773 */
-  REGB0 = TAG_Int(122);
+  /* parser/parser.nit:775 */
+  REGB0 = TAG_Int(123);
   fra.me.REG[2] = NEW_ReduceAction356_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:774 */
+  /* parser/parser.nit:776 */
   REGB0 = TAG_Int(123);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction357_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:775 */
+  /* parser/parser.nit:777 */
   REGB0 = TAG_Int(123);
   fra.me.REG[2] = NEW_ReduceAction358_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:776 */
+  /* parser/parser.nit:778 */
   REGB0 = TAG_Int(123);
   fra.me.REG[2] = NEW_ReduceAction359_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:777 */
+  /* parser/parser.nit:779 */
   REGB0 = TAG_Int(123);
   fra.me.REG[2] = NEW_ReduceAction360_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:778 */
-  REGB0 = TAG_Int(124);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:779 */
+  /* parser/parser.nit:780 */
+  REGB0 = TAG_Int(123);
+  fra.me.REG[2] = NEW_ReduceAction361_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:781 */
   REGB0 = TAG_Int(124);
-  fra.me.REG[2] = NEW_ReduceAction362_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:780 */
+  /* parser/parser.nit:782 */
   REGB0 = TAG_Int(124);
   fra.me.REG[2] = NEW_ReduceAction363_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:781 */
-  REGB0 = TAG_Int(125);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:783 */
+  REGB0 = TAG_Int(124);
+  fra.me.REG[2] = NEW_ReduceAction364_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:782 */
+  /* parser/parser.nit:784 */
   REGB0 = TAG_Int(125);
-  fra.me.REG[2] = NEW_ReduceAction365_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:783 */
+  /* parser/parser.nit:785 */
   REGB0 = TAG_Int(125);
   fra.me.REG[2] = NEW_ReduceAction366_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:784 */
+  /* parser/parser.nit:786 */
   REGB0 = TAG_Int(125);
   fra.me.REG[2] = NEW_ReduceAction367_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:785 */
-  REGB0 = TAG_Int(126);
+  /* parser/parser.nit:787 */
+  REGB0 = TAG_Int(125);
   fra.me.REG[2] = NEW_ReduceAction368_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:786 */
+  /* parser/parser.nit:788 */
   REGB0 = TAG_Int(126);
-  fra.me.REG[2] = NEW_ReduceAction369_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:787 */
+  /* parser/parser.nit:789 */
   REGB0 = TAG_Int(126);
-  fra.me.REG[2] = NEW_ReduceAction263_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction370_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:788 */
+  /* parser/parser.nit:790 */
   REGB0 = TAG_Int(126);
-  fra.me.REG[2] = NEW_ReduceAction264_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction371_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:789 */
-  REGB0 = TAG_Int(126);
-  fra.me.REG[2] = NEW_ReduceAction267_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:791 */
+  REGB0 = TAG_Int(127);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:790 */
-  REGB0 = TAG_Int(126);
-  fra.me.REG[2] = NEW_ReduceAction268_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:792 */
+  REGB0 = TAG_Int(127);
+  fra.me.REG[2] = NEW_ReduceAction373_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:791 */
-  REGB0 = TAG_Int(126);
-  fra.me.REG[2] = NEW_ReduceAction269_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:793 */
+  REGB0 = TAG_Int(127);
+  fra.me.REG[2] = NEW_ReduceAction374_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:792 */
-  REGB0 = TAG_Int(126);
-  fra.me.REG[2] = NEW_ReduceAction270_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:794 */
+  REGB0 = TAG_Int(127);
+  fra.me.REG[2] = NEW_ReduceAction375_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:793 */
-  REGB0 = TAG_Int(126);
+  /* parser/parser.nit:795 */
+  REGB0 = TAG_Int(128);
   fra.me.REG[2] = NEW_ReduceAction376_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:794 */
-  REGB0 = TAG_Int(126);
+  /* parser/parser.nit:796 */
+  REGB0 = TAG_Int(128);
   fra.me.REG[2] = NEW_ReduceAction377_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:795 */
-  REGB0 = TAG_Int(126);
-  fra.me.REG[2] = NEW_ReduceAction381_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:797 */
+  REGB0 = TAG_Int(128);
+  fra.me.REG[2] = NEW_ReduceAction270_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:796 */
-  REGB0 = TAG_Int(126);
-  fra.me.REG[2] = NEW_ReduceAction382_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:798 */
+  REGB0 = TAG_Int(128);
+  fra.me.REG[2] = NEW_ReduceAction271_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:797 */
-  REGB0 = TAG_Int(126);
-  fra.me.REG[2] = NEW_ReduceAction383_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:799 */
+  REGB0 = TAG_Int(128);
+  fra.me.REG[2] = NEW_ReduceAction274_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:798 */
-  REGB0 = TAG_Int(126);
-  fra.me.REG[2] = NEW_ReduceAction384_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:800 */
+  REGB0 = TAG_Int(128);
+  fra.me.REG[2] = NEW_ReduceAction275_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:799 */
-  REGB0 = TAG_Int(126);
-  fra.me.REG[2] = NEW_ReduceAction385_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:801 */
+  REGB0 = TAG_Int(128);
+  fra.me.REG[2] = NEW_ReduceAction276_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:800 */
-  REGB0 = TAG_Int(126);
-  fra.me.REG[2] = NEW_ReduceAction386_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:802 */
+  REGB0 = TAG_Int(128);
+  fra.me.REG[2] = NEW_ReduceAction277_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:801 */
-  REGB0 = TAG_Int(126);
-  fra.me.REG[2] = NEW_ReduceAction387_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:803 */
+  REGB0 = TAG_Int(128);
+  fra.me.REG[2] = NEW_ReduceAction384_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:802 */
-  REGB0 = TAG_Int(126);
-  fra.me.REG[2] = NEW_ReduceAction388_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:804 */
+  REGB0 = TAG_Int(128);
+  fra.me.REG[2] = NEW_ReduceAction385_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:803 */
-  REGB0 = TAG_Int(126);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:805 */
+  REGB0 = TAG_Int(128);
+  fra.me.REG[2] = NEW_ReduceAction389_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:804 */
-  REGB0 = TAG_Int(126);
+  /* parser/parser.nit:806 */
+  REGB0 = TAG_Int(128);
+  fra.me.REG[2] = NEW_ReduceAction390_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:807 */
+  REGB0 = TAG_Int(128);
   fra.me.REG[2] = NEW_ReduceAction391_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:805 */
-  REGB0 = TAG_Int(126);
+  /* parser/parser.nit:808 */
+  REGB0 = TAG_Int(128);
   fra.me.REG[2] = NEW_ReduceAction392_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:806 */
-  REGB0 = TAG_Int(127);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:809 */
+  REGB0 = TAG_Int(128);
+  fra.me.REG[2] = NEW_ReduceAction393_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:807 */
-  REGB0 = TAG_Int(127);
-  fra.me.REG[2] = NEW_ReduceAction265_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:810 */
+  REGB0 = TAG_Int(128);
+  fra.me.REG[2] = NEW_ReduceAction394_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:808 */
-  REGB0 = TAG_Int(127);
-  fra.me.REG[2] = NEW_ReduceAction266_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:811 */
+  REGB0 = TAG_Int(128);
+  fra.me.REG[2] = NEW_ReduceAction395_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:809 */
+  /* parser/parser.nit:812 */
   REGB0 = TAG_Int(128);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction396_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:810 */
+  /* parser/parser.nit:813 */
   REGB0 = TAG_Int(128);
-  fra.me.REG[2] = NEW_ReduceAction335_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:811 */
-  REGB0 = TAG_Int(129);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:814 */
+  REGB0 = TAG_Int(128);
+  fra.me.REG[2] = NEW_ReduceAction399_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:815 */
+  REGB0 = TAG_Int(128);
+  fra.me.REG[2] = NEW_ReduceAction400_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:812 */
+  /* parser/parser.nit:816 */
   REGB0 = TAG_Int(129);
-  fra.me.REG[2] = NEW_ReduceAction337_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:813 */
+  /* parser/parser.nit:817 */
   REGB0 = TAG_Int(129);
-  fra.me.REG[2] = NEW_ReduceAction338_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction272_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:814 */
+  /* parser/parser.nit:818 */
   REGB0 = TAG_Int(129);
-  fra.me.REG[2] = NEW_ReduceAction339_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction273_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:815 */
+  /* parser/parser.nit:819 */
   REGB0 = TAG_Int(130);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:816 */
+  /* parser/parser.nit:820 */
   REGB0 = TAG_Int(130);
-  fra.me.REG[2] = NEW_ReduceAction341_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:817 */
-  REGB0 = TAG_Int(131);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:818 */
-  REGB0 = TAG_Int(131);
   fra.me.REG[2] = NEW_ReduceAction343_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:819 */
+  /* parser/parser.nit:821 */
   REGB0 = TAG_Int(131);
-  fra.me.REG[2] = NEW_ReduceAction344_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:820 */
+  /* parser/parser.nit:822 */
   REGB0 = TAG_Int(131);
   fra.me.REG[2] = NEW_ReduceAction345_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:821 */
+  /* parser/parser.nit:823 */
   REGB0 = TAG_Int(131);
   fra.me.REG[2] = NEW_ReduceAction346_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:822 */
+  /* parser/parser.nit:824 */
   REGB0 = TAG_Int(131);
   fra.me.REG[2] = NEW_ReduceAction347_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:823 */
-  REGB0 = TAG_Int(131);
-  fra.me.REG[2] = NEW_ReduceAction348_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:825 */
+  REGB0 = TAG_Int(132);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:824 */
-  REGB0 = TAG_Int(131);
+  /* parser/parser.nit:826 */
+  REGB0 = TAG_Int(132);
   fra.me.REG[2] = NEW_ReduceAction349_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:825 */
-  REGB0 = TAG_Int(131);
-  fra.me.REG[2] = NEW_ReduceAction350_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:827 */
+  REGB0 = TAG_Int(133);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:826 */
-  REGB0 = TAG_Int(131);
+  /* parser/parser.nit:828 */
+  REGB0 = TAG_Int(133);
   fra.me.REG[2] = NEW_ReduceAction351_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:827 */
-  REGB0 = TAG_Int(131);
+  /* parser/parser.nit:829 */
+  REGB0 = TAG_Int(133);
   fra.me.REG[2] = NEW_ReduceAction352_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:828 */
-  REGB0 = TAG_Int(131);
+  /* parser/parser.nit:830 */
+  REGB0 = TAG_Int(133);
   fra.me.REG[2] = NEW_ReduceAction353_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:829 */
-  REGB0 = TAG_Int(132);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:831 */
+  REGB0 = TAG_Int(133);
+  fra.me.REG[2] = NEW_ReduceAction354_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:830 */
-  REGB0 = TAG_Int(132);
+  /* parser/parser.nit:832 */
+  REGB0 = TAG_Int(133);
   fra.me.REG[2] = NEW_ReduceAction355_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:831 */
-  REGB0 = TAG_Int(132);
+  /* parser/parser.nit:833 */
+  REGB0 = TAG_Int(133);
   fra.me.REG[2] = NEW_ReduceAction356_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:832 */
+  /* parser/parser.nit:834 */
   REGB0 = TAG_Int(133);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction357_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:833 */
+  /* parser/parser.nit:835 */
   REGB0 = TAG_Int(133);
   fra.me.REG[2] = NEW_ReduceAction358_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:834 */
+  /* parser/parser.nit:836 */
   REGB0 = TAG_Int(133);
   fra.me.REG[2] = NEW_ReduceAction359_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:835 */
+  /* parser/parser.nit:837 */
   REGB0 = TAG_Int(133);
   fra.me.REG[2] = NEW_ReduceAction360_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:836 */
-  REGB0 = TAG_Int(134);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:838 */
+  REGB0 = TAG_Int(133);
+  fra.me.REG[2] = NEW_ReduceAction361_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:837 */
+  /* parser/parser.nit:839 */
   REGB0 = TAG_Int(134);
-  fra.me.REG[2] = NEW_ReduceAction362_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:838 */
+  /* parser/parser.nit:840 */
   REGB0 = TAG_Int(134);
   fra.me.REG[2] = NEW_ReduceAction363_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:841 */
+  REGB0 = TAG_Int(134);
+  fra.me.REG[2] = NEW_ReduceAction364_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:839 */
+  /* parser/parser.nit:842 */
   REGB0 = TAG_Int(135);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:840 */
+  /* parser/parser.nit:843 */
   REGB0 = TAG_Int(135);
-  fra.me.REG[2] = NEW_ReduceAction365_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction366_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:841 */
+  /* parser/parser.nit:844 */
   REGB0 = TAG_Int(135);
-  fra.me.REG[2] = NEW_ReduceAction688_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction367_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:842 */
-  REGB0 = TAG_Int(136);
-  fra.me.REG[2] = NEW_ReduceAction689_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:845 */
+  REGB0 = TAG_Int(135);
+  fra.me.REG[2] = NEW_ReduceAction368_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:843 */
+  /* parser/parser.nit:846 */
   REGB0 = TAG_Int(136);
-  fra.me.REG[2] = NEW_ReduceAction690_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:844 */
+  /* parser/parser.nit:847 */
   REGB0 = TAG_Int(136);
-  fra.me.REG[2] = NEW_ReduceAction267_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction370_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:845 */
+  /* parser/parser.nit:848 */
   REGB0 = TAG_Int(136);
-  fra.me.REG[2] = NEW_ReduceAction268_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction371_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:846 */
-  REGB0 = TAG_Int(136);
-  fra.me.REG[2] = NEW_ReduceAction693_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:849 */
+  REGB0 = TAG_Int(137);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:847 */
-  REGB0 = TAG_Int(136);
-  fra.me.REG[2] = NEW_ReduceAction377_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:850 */
+  REGB0 = TAG_Int(137);
+  fra.me.REG[2] = NEW_ReduceAction373_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:848 */
-  REGB0 = TAG_Int(136);
-  fra.me.REG[2] = NEW_ReduceAction381_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:851 */
+  REGB0 = TAG_Int(137);
+  fra.me.REG[2] = NEW_ReduceAction698_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:849 */
-  REGB0 = TAG_Int(136);
-  fra.me.REG[2] = NEW_ReduceAction382_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:852 */
+  REGB0 = TAG_Int(138);
+  fra.me.REG[2] = NEW_ReduceAction699_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:850 */
-  REGB0 = TAG_Int(136);
-  fra.me.REG[2] = NEW_ReduceAction383_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:853 */
+  REGB0 = TAG_Int(138);
+  fra.me.REG[2] = NEW_ReduceAction700_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:851 */
-  REGB0 = TAG_Int(136);
-  fra.me.REG[2] = NEW_ReduceAction384_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:854 */
+  REGB0 = TAG_Int(138);
+  fra.me.REG[2] = NEW_ReduceAction274_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:852 */
-  REGB0 = TAG_Int(136);
-  fra.me.REG[2] = NEW_ReduceAction385_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:855 */
+  REGB0 = TAG_Int(138);
+  fra.me.REG[2] = NEW_ReduceAction275_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:853 */
-  REGB0 = TAG_Int(136);
-  fra.me.REG[2] = NEW_ReduceAction386_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:856 */
+  REGB0 = TAG_Int(138);
+  fra.me.REG[2] = NEW_ReduceAction703_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:854 */
-  REGB0 = TAG_Int(136);
-  fra.me.REG[2] = NEW_ReduceAction387_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:857 */
+  REGB0 = TAG_Int(138);
+  fra.me.REG[2] = NEW_ReduceAction385_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:855 */
-  REGB0 = TAG_Int(136);
-  fra.me.REG[2] = NEW_ReduceAction388_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:858 */
+  REGB0 = TAG_Int(138);
+  fra.me.REG[2] = NEW_ReduceAction389_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:856 */
-  REGB0 = TAG_Int(136);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:859 */
+  REGB0 = TAG_Int(138);
+  fra.me.REG[2] = NEW_ReduceAction390_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:857 */
-  REGB0 = TAG_Int(136);
+  /* parser/parser.nit:860 */
+  REGB0 = TAG_Int(138);
   fra.me.REG[2] = NEW_ReduceAction391_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:858 */
-  REGB0 = TAG_Int(136);
+  /* parser/parser.nit:861 */
+  REGB0 = TAG_Int(138);
   fra.me.REG[2] = NEW_ReduceAction392_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:859 */
-  REGB0 = TAG_Int(137);
-  fra.me.REG[2] = NEW_ReduceAction706_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:862 */
+  REGB0 = TAG_Int(138);
+  fra.me.REG[2] = NEW_ReduceAction393_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:860 */
-  REGB0 = TAG_Int(137);
-  fra.me.REG[2] = NEW_ReduceAction707_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:863 */
+  REGB0 = TAG_Int(138);
+  fra.me.REG[2] = NEW_ReduceAction394_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:861 */
+  /* parser/parser.nit:864 */
   REGB0 = TAG_Int(138);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction395_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:862 */
+  /* parser/parser.nit:865 */
   REGB0 = TAG_Int(138);
-  fra.me.REG[2] = NEW_ReduceAction265_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction396_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:863 */
+  /* parser/parser.nit:866 */
   REGB0 = TAG_Int(138);
-  fra.me.REG[2] = NEW_ReduceAction266_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:864 */
-  REGB0 = TAG_Int(139);
-  fra.me.REG[2] = NEW_ReduceAction238_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  /* parser/parser.nit:867 */
+  REGB0 = TAG_Int(138);
+  fra.me.REG[2] = NEW_ReduceAction399_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:865 */
+  /* parser/parser.nit:868 */
+  REGB0 = TAG_Int(138);
+  fra.me.REG[2] = NEW_ReduceAction400_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:869 */
   REGB0 = TAG_Int(139);
-  fra.me.REG[2] = NEW_ReduceAction265_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction716_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:866 */
+  /* parser/parser.nit:870 */
   REGB0 = TAG_Int(139);
-  fra.me.REG[2] = NEW_ReduceAction266_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction717_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:871 */
+  REGB0 = TAG_Int(140);
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:867 */
+  /* parser/parser.nit:872 */
   REGB0 = TAG_Int(140);
-  fra.me.REG[2] = NEW_ReduceAction714_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction272_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:868 */
+  /* parser/parser.nit:873 */
   REGB0 = TAG_Int(140);
-  fra.me.REG[2] = NEW_ReduceAction715_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction273_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:869 */
+  /* parser/parser.nit:874 */
   REGB0 = TAG_Int(141);
-  fra.me.REG[2] = NEW_ReduceAction716_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction243_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:870 */
+  /* parser/parser.nit:875 */
   REGB0 = TAG_Int(141);
-  fra.me.REG[2] = NEW_ReduceAction717_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction272_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:876 */
+  REGB0 = TAG_Int(141);
+  fra.me.REG[2] = NEW_ReduceAction273_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:871 */
+  /* parser/parser.nit:877 */
   REGB0 = TAG_Int(142);
-  fra.me.REG[2] = NEW_ReduceAction718_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction724_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:872 */
+  /* parser/parser.nit:878 */
   REGB0 = TAG_Int(142);
-  fra.me.REG[2] = NEW_ReduceAction719_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction725_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:873 */
+  /* parser/parser.nit:879 */
   REGB0 = TAG_Int(143);
-  fra.me.REG[2] = NEW_ReduceAction720_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction726_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:874 */
+  /* parser/parser.nit:880 */
   REGB0 = TAG_Int(143);
-  fra.me.REG[2] = NEW_ReduceAction721_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction727_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:875 */
+  /* parser/parser.nit:881 */
   REGB0 = TAG_Int(144);
-  fra.me.REG[2] = NEW_ReduceAction718_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction728_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:876 */
+  /* parser/parser.nit:882 */
   REGB0 = TAG_Int(144);
-  fra.me.REG[2] = NEW_ReduceAction719_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction729_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:877 */
+  /* parser/parser.nit:883 */
   REGB0 = TAG_Int(145);
-  fra.me.REG[2] = NEW_ReduceAction724_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction730_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:878 */
+  /* parser/parser.nit:884 */
   REGB0 = TAG_Int(145);
-  fra.me.REG[2] = NEW_ReduceAction725_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction731_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:879 */
+  /* parser/parser.nit:885 */
   REGB0 = TAG_Int(146);
-  fra.me.REG[2] = NEW_ReduceAction726_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction728_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:880 */
+  /* parser/parser.nit:886 */
   REGB0 = TAG_Int(146);
-  fra.me.REG[2] = NEW_ReduceAction727_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction729_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:881 */
+  /* parser/parser.nit:887 */
   REGB0 = TAG_Int(147);
-  fra.me.REG[2] = NEW_ReduceAction728_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction734_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:882 */
+  /* parser/parser.nit:888 */
   REGB0 = TAG_Int(147);
-  fra.me.REG[2] = NEW_ReduceAction729_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction735_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:883 */
+  /* parser/parser.nit:889 */
   REGB0 = TAG_Int(148);
-  fra.me.REG[2] = NEW_ReduceAction730_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction736_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:884 */
+  /* parser/parser.nit:890 */
   REGB0 = TAG_Int(148);
-  fra.me.REG[2] = NEW_ReduceAction731_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction737_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:885 */
+  /* parser/parser.nit:891 */
   REGB0 = TAG_Int(149);
-  fra.me.REG[2] = NEW_ReduceAction231_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction738_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:886 */
+  /* parser/parser.nit:892 */
   REGB0 = TAG_Int(149);
-  fra.me.REG[2] = NEW_ReduceAction733_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction739_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:887 */
+  /* parser/parser.nit:893 */
   REGB0 = TAG_Int(150);
-  fra.me.REG[2] = NEW_ReduceAction406_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction740_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:888 */
+  /* parser/parser.nit:894 */
   REGB0 = TAG_Int(150);
-  fra.me.REG[2] = NEW_ReduceAction735_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction741_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:889 */
+  /* parser/parser.nit:895 */
   REGB0 = TAG_Int(151);
-  fra.me.REG[2] = NEW_ReduceAction736_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction236_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:890 */
+  /* parser/parser.nit:896 */
   REGB0 = TAG_Int(151);
-  fra.me.REG[2] = NEW_ReduceAction737_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction743_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:891 */
+  /* parser/parser.nit:897 */
   REGB0 = TAG_Int(152);
-  fra.me.REG[2] = NEW_ReduceAction406_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction744_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:892 */
+  /* parser/parser.nit:898 */
   REGB0 = TAG_Int(152);
-  fra.me.REG[2] = NEW_ReduceAction735_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction745_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:893 */
+  /* parser/parser.nit:899 */
   REGB0 = TAG_Int(153);
-  fra.me.REG[2] = NEW_ReduceAction412_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction212_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:894 */
+  /* parser/parser.nit:900 */
   REGB0 = TAG_Int(153);
-  fra.me.REG[2] = NEW_ReduceAction741_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction747_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:895 */
+  /* parser/parser.nit:901 */
   REGB0 = TAG_Int(154);
-  fra.me.REG[2] = NEW_ReduceAction742_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction744_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:896 */
+  /* parser/parser.nit:902 */
   REGB0 = TAG_Int(154);
-  fra.me.REG[2] = NEW_ReduceAction743_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction745_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:897 */
+  /* parser/parser.nit:903 */
   REGB0 = TAG_Int(155);
-  fra.me.REG[2] = NEW_ReduceAction744_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction419_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:898 */
+  /* parser/parser.nit:904 */
   REGB0 = TAG_Int(155);
-  fra.me.REG[2] = NEW_ReduceAction745_parser___ReduceAction___init(REGB0);
-  /* ./parser//parser.nit:152 */
+  fra.me.REG[2] = NEW_ReduceAction751_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:905 */
+  REGB0 = TAG_Int(156);
+  fra.me.REG[2] = NEW_ReduceAction752_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:906 */
+  REGB0 = TAG_Int(156);
+  fra.me.REG[2] = NEW_ReduceAction753_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:907 */
+  REGB0 = TAG_Int(157);
+  fra.me.REG[2] = NEW_ReduceAction754_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser.nit:908 */
+  REGB0 = TAG_Int(157);
+  fra.me.REG[2] = NEW_ReduceAction755_parser___ReduceAction___init(REGB0);
+  /* parser/parser.nit:152 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_items(fra.me.REG[1]);
   ATTR_parser___Parser____reduce_table(fra.me.REG[0]) = fra.me.REG[1];
@@ -4629,7 +4695,7 @@ void parser___ComputeProdLocationVisitor___visit(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 929;
+  fra.me.line = 939;
   fra.me.meth = LOCATE_parser___ComputeProdLocationVisitor___visit;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -4645,7 +4711,7 @@ void parser___ComputeProdLocationVisitor___visit(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:931 */
+  /* parser/parser.nit:941 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -4659,41 +4725,41 @@ void parser___ComputeProdLocationVisitor___visit(val_t p0, val_t p1){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:932 */
+    /* parser/parser.nit:942 */
     goto label1;
   } else {
-    /* ./parser//parser.nit:933 */
+    /* parser/parser.nit:943 */
     REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_parser___parser_nodes___Token, ID_parser___parser_nodes___Token)) /*cast Token*/;
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser.nit:934 */
+      /* parser/parser.nit:944 */
       REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser, 934);
+        nit_abort("Reciever is null", NULL, LOCATE_parser, 944);
       }
       fra.me.REG[2] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./parser//parser.nit:935 */
+      /* parser/parser.nit:945 */
       ATTR_parser___ComputeProdLocationVisitor____last_location(fra.me.REG[0]) = fra.me.REG[2];
-      /* ./parser//parser.nit:938 */
+      /* parser/parser.nit:948 */
       REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_need_first_prods", LOCATE_parser, 938);
+        nit_abort("Uninitialized attribute %s", "_need_first_prods", LOCATE_parser, 948);
       }
       fra.me.REG[3] = ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0]);
-      /* ./../lib/standard//collection//array.nit:269 */
+      /* ../lib/standard/collection/array.nit:269 */
       REGB0 = TAG_Int(0);
-      /* ./../lib/standard//collection//array.nit:270 */
+      /* ../lib/standard/collection/array.nit:270 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
       }
       REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-      /* ./../lib/standard//collection//array.nit:271 */
+      /* ../lib/standard/collection/array.nit:271 */
       fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       while(1) {
-        /* ./../lib/standard//collection//array.nit:24 */
+        /* ../lib/standard/collection/array.nit:24 */
         REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
@@ -4705,60 +4771,60 @@ void parser___ComputeProdLocationVisitor___visit(val_t p0, val_t p1){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         if (UNTAG_Bool(REGB1)) {
-          /* ./../lib/standard//collection//array.nit:273 */
+          /* ../lib/standard/collection/array.nit:273 */
           REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
             nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
           }
-          /* ./../lib/standard//collection//array.nit:718 */
+          /* ../lib/standard/collection/array.nit:718 */
           fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-          /* ./parser//parser.nit:939 */
+          /* parser/parser.nit:949 */
           ATTR_parser___Prod____first_location(fra.me.REG[5]) = fra.me.REG[2];
-          /* ./../lib/standard//collection//array.nit:274 */
+          /* ../lib/standard/collection/array.nit:274 */
           REGB1 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-          /* ./../lib/standard//collection//array.nit:274 */
+          /* ../lib/standard/collection/array.nit:274 */
           REGB0 = REGB1;
         } else {
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           goto label2;
         }
       }
       label2: while(0);
-      /* ./parser//parser.nit:941 */
+      /* parser/parser.nit:951 */
       REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_need_first_prods", LOCATE_parser, 941);
+        nit_abort("Uninitialized attribute %s", "_need_first_prods", LOCATE_parser, 951);
       }
       fra.me.REG[4] = ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0]);
       CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[4])(fra.me.REG[4]);
-      /* ./parser//parser.nit:944 */
+      /* parser/parser.nit:954 */
       REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_parser, 944);
+        nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_parser, 954);
       }
       fra.me.REG[4] = ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0]);
-      /* ./../lib/standard//collection//array.nit:269 */
+      /* ../lib/standard/collection/array.nit:269 */
       REGB0 = TAG_Int(0);
-      /* ./../lib/standard//collection//array.nit:270 */
+      /* ../lib/standard/collection/array.nit:270 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
       }
       REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-      /* ./../lib/standard//collection//array.nit:271 */
+      /* ../lib/standard/collection/array.nit:271 */
       fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       while(1) {
-        /* ./../lib/standard//collection//array.nit:24 */
+        /* ../lib/standard/collection/array.nit:24 */
         REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
@@ -4770,85 +4836,85 @@ void parser___ComputeProdLocationVisitor___visit(val_t p0, val_t p1){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         if (UNTAG_Bool(REGB1)) {
-          /* ./../lib/standard//collection//array.nit:273 */
+          /* ../lib/standard/collection/array.nit:273 */
           REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
             nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
           }
-          /* ./../lib/standard//collection//array.nit:718 */
+          /* ../lib/standard/collection/array.nit:718 */
           fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
-          /* ./parser//parser.nit:947 */
+          /* parser/parser.nit:957 */
           fra.me.REG[6] = fra.me.REG[2];
-          /* ./parser//parser.nit:948 */
+          /* parser/parser.nit:958 */
           fra.me.REG[7] = ATTR_parser___Prod____last_location(fra.me.REG[5]);
-          /* ./parser//parser.nit:949 */
+          /* parser/parser.nit:959 */
           fra.me.REG[8] = CALL_location___Location___file(fra.me.REG[6])(fra.me.REG[6]);
           REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser, 949);
+            nit_abort("Reciever is null", NULL, LOCATE_parser, 959);
           }
           REGB1 = CALL_location___Location___line_end(fra.me.REG[7])(fra.me.REG[7]);
           REGB2 = CALL_location___Location___line_start(fra.me.REG[6])(fra.me.REG[6]);
           REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser, 949);
+            nit_abort("Reciever is null", NULL, LOCATE_parser, 959);
           }
           REGB3 = CALL_location___Location___column_end(fra.me.REG[7])(fra.me.REG[7]);
           REGB4 = CALL_location___Location___column_start(fra.me.REG[6])(fra.me.REG[6]);
           fra.me.REG[8] = NEW_Location_location___Location___init(fra.me.REG[8], REGB1, REGB2, REGB3, REGB4);
           CALL_parser___parser_nodes___Prod___location__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
-          /* ./../lib/standard//collection//array.nit:274 */
+          /* ../lib/standard/collection/array.nit:274 */
           REGB4 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB4 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB4));
-          /* ./../lib/standard//collection//array.nit:274 */
+          /* ../lib/standard/collection/array.nit:274 */
           REGB0 = REGB4;
         } else {
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           goto label3;
         }
       }
       label3: while(0);
-      /* ./parser//parser.nit:951 */
+      /* parser/parser.nit:961 */
       REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_parser, 951);
+        nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_parser, 961);
       }
       fra.me.REG[2] = ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0]);
       CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[2])(fra.me.REG[2]);
     } else {
-      /* ./parser//parser.nit:953 */
+      /* parser/parser.nit:963 */
       REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_parser___parser_nodes___Prod, ID_parser___parser_nodes___Prod)) /*cast Prod*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser, 953);
+        nit_abort("Assert failed", NULL, LOCATE_parser, 963);
       }
-      /* ./parser//parser.nit:954 */
+      /* parser/parser.nit:964 */
       REGB0 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_need_first_prods", LOCATE_parser, 954);
+        nit_abort("Uninitialized attribute %s", "_need_first_prods", LOCATE_parser, 964);
       }
       fra.me.REG[2] = ATTR_parser___ComputeProdLocationVisitor____need_first_prods(fra.me.REG[0]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-      /* ./parser//parser.nit:956 */
+      /* parser/parser.nit:966 */
       fra.me.REG[2] = ATTR_parser___ComputeProdLocationVisitor____last_location(fra.me.REG[0]);
-      /* ./parser//parser.nit:957 */
+      /* parser/parser.nit:967 */
       ATTR_parser___ComputeProdLocationVisitor____last_location(fra.me.REG[0]) = NIT_NULL;
-      /* ./parser//parser.nit:958 */
+      /* parser/parser.nit:968 */
       REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser, 958);
+        nit_abort("Reciever is null", NULL, LOCATE_parser, 968);
       }
       CALL_parser___parser_prod___ANode___visit_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-      /* ./parser//parser.nit:959 */
+      /* parser/parser.nit:969 */
       fra.me.REG[3] = ATTR_parser___ComputeProdLocationVisitor____last_location(fra.me.REG[0]);
-      /* ./parser//parser.nit:960 */
+      /* parser/parser.nit:970 */
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -4864,11 +4930,11 @@ void parser___ComputeProdLocationVisitor___visit(val_t p0, val_t p1){
       if (UNTAG_Bool(REGB0)) {
         ATTR_parser___ComputeProdLocationVisitor____last_location(fra.me.REG[0]) = fra.me.REG[2];
       }
-      /* ./parser//parser.nit:962 */
+      /* parser/parser.nit:972 */
       ATTR_parser___Prod____last_location(fra.me.REG[1]) = fra.me.REG[3];
-      /* ./parser//parser.nit:963 */
+      /* parser/parser.nit:973 */
       fra.me.REG[2] = ATTR_parser___Prod____first_location(fra.me.REG[1]);
-      /* ./parser//parser.nit:964 */
+      /* parser/parser.nit:974 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -4883,7 +4949,7 @@ void parser___ComputeProdLocationVisitor___visit(val_t p0, val_t p1){
       }
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
-        /* ./parser//parser.nit:966 */
+        /* parser/parser.nit:976 */
         REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
         } else {
@@ -4899,61 +4965,61 @@ void parser___ComputeProdLocationVisitor___visit(val_t p0, val_t p1){
         REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
         if (UNTAG_Bool(REGB0)) {
         } else {
-          nit_abort("Assert failed", NULL, LOCATE_parser, 966);
+          nit_abort("Assert failed", NULL, LOCATE_parser, 976);
         }
-        /* ./parser//parser.nit:968 */
+        /* parser/parser.nit:978 */
         REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
-          nit_abort("Reciever is null", NULL, LOCATE_parser, 968);
+          nit_abort("Reciever is null", NULL, LOCATE_parser, 978);
         }
         fra.me.REG[4] = CALL_location___Location___file(fra.me.REG[2])(fra.me.REG[2]);
         REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
-          nit_abort("Reciever is null", NULL, LOCATE_parser, 968);
+          nit_abort("Reciever is null", NULL, LOCATE_parser, 978);
         }
         REGB0 = CALL_location___Location___line_start(fra.me.REG[2])(fra.me.REG[2]);
         REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB4)) {
-          nit_abort("Reciever is null", NULL, LOCATE_parser, 968);
+          nit_abort("Reciever is null", NULL, LOCATE_parser, 978);
         }
         REGB4 = CALL_location___Location___line_end(fra.me.REG[3])(fra.me.REG[3]);
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
-          nit_abort("Reciever is null", NULL, LOCATE_parser, 968);
+          nit_abort("Reciever is null", NULL, LOCATE_parser, 978);
         }
         REGB3 = CALL_location___Location___column_start(fra.me.REG[2])(fra.me.REG[2]);
         REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
-          nit_abort("Reciever is null", NULL, LOCATE_parser, 968);
+          nit_abort("Reciever is null", NULL, LOCATE_parser, 978);
         }
         REGB2 = CALL_location___Location___column_end(fra.me.REG[3])(fra.me.REG[3]);
         fra.me.REG[4] = NEW_Location_location___Location___init(fra.me.REG[4], REGB0, REGB4, REGB3, REGB2);
         REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
-          nit_abort("Reciever is null", NULL, LOCATE_parser, 968);
+          nit_abort("Reciever is null", NULL, LOCATE_parser, 978);
         }
         CALL_parser___parser_nodes___Prod___location__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* ./parser//parser.nit:970 */
+        /* parser/parser.nit:980 */
         REGB2 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
         } else {
-          nit_abort("Uninitialized attribute %s", "_need_before_epsilons", LOCATE_parser, 970);
+          nit_abort("Uninitialized attribute %s", "_need_before_epsilons", LOCATE_parser, 980);
         }
         fra.me.REG[4] = ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0]);
-        /* ./../lib/standard//collection//array.nit:269 */
+        /* ../lib/standard/collection/array.nit:269 */
         REGB2 = TAG_Int(0);
-        /* ./../lib/standard//collection//array.nit:270 */
+        /* ../lib/standard/collection/array.nit:270 */
         REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
         }
         REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-        /* ./../lib/standard//collection//array.nit:271 */
+        /* ../lib/standard/collection/array.nit:271 */
         fra.me.REG[8] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         while(1) {
-          /* ./../lib/standard//collection//array.nit:24 */
+          /* ../lib/standard/collection/array.nit:24 */
           REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
@@ -4965,86 +5031,86 @@ void parser___ComputeProdLocationVisitor___visit(val_t p0, val_t p1){
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           if (UNTAG_Bool(REGB3)) {
-            /* ./../lib/standard//collection//array.nit:273 */
+            /* ../lib/standard/collection/array.nit:273 */
             REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
             if (UNTAG_Bool(REGB3)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[8])->val[UNTAG_Int(REGB2)];
-            /* ./parser//parser.nit:973 */
+            /* parser/parser.nit:983 */
             REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
             if (UNTAG_Bool(REGB3)) {
-              nit_abort("Reciever is null", NULL, LOCATE_parser, 973);
+              nit_abort("Reciever is null", NULL, LOCATE_parser, 983);
             }
             fra.me.REG[6] = CALL_location___Location___file(fra.me.REG[2])(fra.me.REG[2]);
             REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
             if (UNTAG_Bool(REGB3)) {
-              nit_abort("Reciever is null", NULL, LOCATE_parser, 973);
+              nit_abort("Reciever is null", NULL, LOCATE_parser, 983);
             }
             REGB3 = CALL_location___Location___line_start(fra.me.REG[2])(fra.me.REG[2]);
             REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
             if (UNTAG_Bool(REGB4)) {
-              nit_abort("Reciever is null", NULL, LOCATE_parser, 973);
+              nit_abort("Reciever is null", NULL, LOCATE_parser, 983);
             }
             REGB4 = CALL_location___Location___line_start(fra.me.REG[2])(fra.me.REG[2]);
             REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
             if (UNTAG_Bool(REGB0)) {
-              nit_abort("Reciever is null", NULL, LOCATE_parser, 973);
+              nit_abort("Reciever is null", NULL, LOCATE_parser, 983);
             }
             REGB0 = CALL_location___Location___column_start(fra.me.REG[2])(fra.me.REG[2]);
             REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
             if (UNTAG_Bool(REGB1)) {
-              nit_abort("Reciever is null", NULL, LOCATE_parser, 973);
+              nit_abort("Reciever is null", NULL, LOCATE_parser, 983);
             }
             REGB1 = CALL_location___Location___column_start(fra.me.REG[2])(fra.me.REG[2]);
             fra.me.REG[6] = NEW_Location_location___Location___init(fra.me.REG[6], REGB3, REGB4, REGB0, REGB1);
             CALL_parser___parser_nodes___Prod___location__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB1 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB1 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1));
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB2 = REGB1;
           } else {
-            /* ./../lib/standard//collection//array.nit:272 */
+            /* ../lib/standard/collection/array.nit:272 */
             goto label4;
           }
         }
         label4: while(0);
-        /* ./parser//parser.nit:975 */
+        /* parser/parser.nit:985 */
         REGB2 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
         } else {
-          nit_abort("Uninitialized attribute %s", "_need_before_epsilons", LOCATE_parser, 975);
+          nit_abort("Uninitialized attribute %s", "_need_before_epsilons", LOCATE_parser, 985);
         }
         fra.me.REG[2] = ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0]);
         CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[2])(fra.me.REG[2]);
-        /* ./parser//parser.nit:977 */
+        /* parser/parser.nit:987 */
         REGB2 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
         } else {
-          nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_parser, 977);
+          nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_parser, 987);
         }
         fra.me.REG[2] = ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0]);
-        /* ./../lib/standard//collection//array.nit:269 */
+        /* ../lib/standard/collection/array.nit:269 */
         REGB2 = TAG_Int(0);
-        /* ./../lib/standard//collection//array.nit:270 */
+        /* ../lib/standard/collection/array.nit:270 */
         REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
         }
         REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-        /* ./../lib/standard//collection//array.nit:271 */
+        /* ../lib/standard/collection/array.nit:271 */
         fra.me.REG[8] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         while(1) {
-          /* ./../lib/standard//collection//array.nit:24 */
+          /* ../lib/standard/collection/array.nit:24 */
           REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
           } else {
@@ -5056,67 +5122,67 @@ void parser___ComputeProdLocationVisitor___visit(val_t p0, val_t p1){
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           if (UNTAG_Bool(REGB1)) {
-            /* ./../lib/standard//collection//array.nit:273 */
+            /* ../lib/standard/collection/array.nit:273 */
             REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
             if (UNTAG_Bool(REGB1)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[8])->val[UNTAG_Int(REGB2)];
-            /* ./parser//parser.nit:980 */
+            /* parser/parser.nit:990 */
             REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
             if (UNTAG_Bool(REGB1)) {
-              nit_abort("Reciever is null", NULL, LOCATE_parser, 980);
+              nit_abort("Reciever is null", NULL, LOCATE_parser, 990);
             }
             fra.me.REG[6] = CALL_location___Location___file(fra.me.REG[3])(fra.me.REG[3]);
             REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
             if (UNTAG_Bool(REGB1)) {
-              nit_abort("Reciever is null", NULL, LOCATE_parser, 980);
+              nit_abort("Reciever is null", NULL, LOCATE_parser, 990);
             }
             REGB1 = CALL_location___Location___line_end(fra.me.REG[3])(fra.me.REG[3]);
             REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
             if (UNTAG_Bool(REGB0)) {
-              nit_abort("Reciever is null", NULL, LOCATE_parser, 980);
+              nit_abort("Reciever is null", NULL, LOCATE_parser, 990);
             }
             REGB0 = CALL_location___Location___line_end(fra.me.REG[3])(fra.me.REG[3]);
             REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
             if (UNTAG_Bool(REGB4)) {
-              nit_abort("Reciever is null", NULL, LOCATE_parser, 980);
+              nit_abort("Reciever is null", NULL, LOCATE_parser, 990);
             }
             REGB4 = CALL_location___Location___column_end(fra.me.REG[3])(fra.me.REG[3]);
             REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
             if (UNTAG_Bool(REGB3)) {
-              nit_abort("Reciever is null", NULL, LOCATE_parser, 980);
+              nit_abort("Reciever is null", NULL, LOCATE_parser, 990);
             }
             REGB3 = CALL_location___Location___column_end(fra.me.REG[3])(fra.me.REG[3]);
             fra.me.REG[6] = NEW_Location_location___Location___init(fra.me.REG[6], REGB1, REGB0, REGB4, REGB3);
             CALL_parser___parser_nodes___Prod___location__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB3 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB2 = REGB3;
           } else {
-            /* ./../lib/standard//collection//array.nit:272 */
+            /* ../lib/standard/collection/array.nit:272 */
             goto label5;
           }
         }
         label5: while(0);
-        /* ./parser//parser.nit:982 */
+        /* parser/parser.nit:992 */
         REGB2 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
         } else {
-          nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_parser, 982);
+          nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_parser, 992);
         }
         fra.me.REG[8] = ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0]);
         CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[8])(fra.me.REG[8]);
       } else {
-        /* ./parser//parser.nit:986 */
+        /* parser/parser.nit:996 */
         REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
         } else {
@@ -5130,20 +5196,20 @@ void parser___ComputeProdLocationVisitor___visit(val_t p0, val_t p1){
           }
         }
         if (UNTAG_Bool(REGB2)) {
-          /* ./parser//parser.nit:988 */
+          /* parser/parser.nit:998 */
           REGB2 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_need_before_epsilons", LOCATE_parser, 988);
+            nit_abort("Uninitialized attribute %s", "_need_before_epsilons", LOCATE_parser, 998);
           }
           fra.me.REG[3] = ATTR_parser___ComputeProdLocationVisitor____need_before_epsilons(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
         } else {
-          /* ./parser//parser.nit:991 */
+          /* parser/parser.nit:1001 */
           REGB2 = TAG_Bool(ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_parser, 991);
+            nit_abort("Uninitialized attribute %s", "_need_after_epsilons", LOCATE_parser, 1001);
           }
           fra.me.REG[0] = ATTR_parser___ComputeProdLocationVisitor____need_after_epsilons(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
@@ -5162,14 +5228,14 @@ void parser___ComputeProdLocationVisitor___init(val_t p0, int* init_table){
   if (init_table[itpos2]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 997;
+  fra.me.line = 1007;
   fra.me.meth = LOCATE_parser___ComputeProdLocationVisitor___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser.nit:997 */
+  /* parser/parser.nit:1007 */
   CALL_parser___parser_prod___Visitor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos2] = 1;
@@ -5180,13 +5246,13 @@ void parser___ReduceAction___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1002;
+  fra.me.line = 1012;
   fra.me.meth = LOCATE_parser___ReduceAction___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./parser//parser.nit:1002 */
-  nit_abort("Deferred method called", NULL, LOCATE_parser, 1002);
+  /* parser/parser.nit:1012 */
+  nit_abort("Deferred method called", NULL, LOCATE_parser, 1012);
   stack_frame_head = fra.me.prev;
   return;
 }
@@ -5196,7 +5262,7 @@ val_t parser___ReduceAction___concat(val_t p0, val_t p1, val_t p2){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1003;
+  fra.me.line = 1013;
   fra.me.meth = LOCATE_parser___ReduceAction___concat;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -5207,15 +5273,15 @@ val_t parser___ReduceAction___concat(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser.nit:1005 */
+  /* parser/parser.nit:1015 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
     fra.me.REG[0] = fra.me.REG[2];
     goto label1;
   }
-  /* ./parser//parser.nit:1006 */
+  /* parser/parser.nit:1016 */
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser.nit:1007 */
+  /* parser/parser.nit:1017 */
   fra.me.REG[0] = fra.me.REG[1];
   goto label1;
   label1: while(0);
@@ -5230,7 +5296,7 @@ void parser___ReduceAction___init(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos3]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1010;
+  fra.me.line = 1020;
   fra.me.meth = LOCATE_parser___ReduceAction___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -5238,7 +5304,7 @@ void parser___ReduceAction___init(val_t p0, val_t p1, int* init_table){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./parser//parser.nit:1010 */
+  /* parser/parser.nit:1020 */
   ATTR_parser___ReduceAction____goto(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   init_table[itpos3] = 1;
@@ -5250,7 +5316,7 @@ void parser___ReduceAction0___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1015;
+  fra.me.line = 1025;
   fra.me.meth = LOCATE_parser___ReduceAction0___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -5262,21 +5328,21 @@ void parser___ReduceAction0___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1017 */
+  /* parser/parser.nit:1027 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1018 */
+  /* parser/parser.nit:1028 */
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1019 */
+  /* parser/parser.nit:1029 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1020 */
+  /* parser/parser.nit:1030 */
   fra.me.REG[4] = NEW_AModule_parser___parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[3], fra.me.REG[4]);
-  /* ./parser//parser.nit:1025 */
+  /* parser/parser.nit:1035 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:1026 */
+  /* parser/parser.nit:1036 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1026);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1036);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -5290,7 +5356,7 @@ void parser___ReduceAction1___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1031;
+  fra.me.line = 1041;
   fra.me.meth = LOCATE_parser___ReduceAction1___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -5303,29 +5369,29 @@ void parser___ReduceAction1___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1033 */
+  /* parser/parser.nit:1043 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1034 */
+  /* parser/parser.nit:1044 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1035 */
+  /* parser/parser.nit:1045 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1036 */
+  /* parser/parser.nit:1046 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1038 */
+  /* parser/parser.nit:1048 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast nullable AModuledecl*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1038);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1048);
   }
-  /* ./parser//parser.nit:1039 */
+  /* parser/parser.nit:1049 */
   fra.me.REG[5] = NEW_AModule_parser___parser_prod___AModule___init_amodule(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
-  /* ./parser//parser.nit:1044 */
+  /* parser/parser.nit:1054 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:1045 */
+  /* parser/parser.nit:1055 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1045);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1055);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -5339,7 +5405,7 @@ void parser___ReduceAction2___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1050;
+  fra.me.line = 1060;
   fra.me.meth = LOCATE_parser___ReduceAction2___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -5352,32 +5418,32 @@ void parser___ReduceAction2___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1052 */
+  /* parser/parser.nit:1062 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1053 */
+  /* parser/parser.nit:1063 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1054 */
+  /* parser/parser.nit:1064 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1055 */
+  /* parser/parser.nit:1065 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1057 */
+  /* parser/parser.nit:1067 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1057);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1067);
   }
-  /* ./parser//parser.nit:1058 */
+  /* parser/parser.nit:1068 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
   fra.me.REG[4] = fra.me.REG[3];
-  /* ./parser//parser.nit:1059 */
+  /* parser/parser.nit:1069 */
   fra.me.REG[5] = NEW_AModule_parser___parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[4], fra.me.REG[5]);
-  /* ./parser//parser.nit:1064 */
+  /* parser/parser.nit:1074 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:1065 */
+  /* parser/parser.nit:1075 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1065);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1075);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -5391,7 +5457,7 @@ void parser___ReduceAction3___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1070;
+  fra.me.line = 1080;
   fra.me.meth = LOCATE_parser___ReduceAction3___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -5405,40 +5471,40 @@ void parser___ReduceAction3___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1072 */
+  /* parser/parser.nit:1082 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1073 */
+  /* parser/parser.nit:1083 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1074 */
+  /* parser/parser.nit:1084 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1075 */
+  /* parser/parser.nit:1085 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1076 */
+  /* parser/parser.nit:1086 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1078 */
+  /* parser/parser.nit:1088 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast nullable AModuledecl*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1078);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1088);
   }
-  /* ./parser//parser.nit:1080 */
+  /* parser/parser.nit:1090 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1080);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1090);
   }
-  /* ./parser//parser.nit:1081 */
+  /* parser/parser.nit:1091 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
   fra.me.REG[5] = fra.me.REG[3];
-  /* ./parser//parser.nit:1082 */
+  /* parser/parser.nit:1092 */
   fra.me.REG[6] = NEW_AModule_parser___parser_prod___AModule___init_amodule(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
-  /* ./parser//parser.nit:1087 */
+  /* parser/parser.nit:1097 */
   fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:1088 */
+  /* parser/parser.nit:1098 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1088);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1098);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -5452,7 +5518,7 @@ void parser___ReduceAction4___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1093;
+  fra.me.line = 1103;
   fra.me.meth = LOCATE_parser___ReduceAction4___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -5465,32 +5531,32 @@ void parser___ReduceAction4___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1095 */
+  /* parser/parser.nit:1105 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1096 */
+  /* parser/parser.nit:1106 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1097 */
+  /* parser/parser.nit:1107 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1098 */
+  /* parser/parser.nit:1108 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1100 */
+  /* parser/parser.nit:1110 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1100);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1110);
   }
-  /* ./parser//parser.nit:1101 */
+  /* parser/parser.nit:1111 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
   fra.me.REG[5] = fra.me.REG[3];
-  /* ./parser//parser.nit:1102 */
+  /* parser/parser.nit:1112 */
   fra.me.REG[5] = NEW_AModule_parser___parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[4], fra.me.REG[5]);
-  /* ./parser//parser.nit:1107 */
+  /* parser/parser.nit:1117 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:1108 */
+  /* parser/parser.nit:1118 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1108);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1118);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -5504,7 +5570,7 @@ void parser___ReduceAction5___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1113;
+  fra.me.line = 1123;
   fra.me.meth = LOCATE_parser___ReduceAction5___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -5518,40 +5584,40 @@ void parser___ReduceAction5___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1115 */
+  /* parser/parser.nit:1125 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1116 */
+  /* parser/parser.nit:1126 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1117 */
+  /* parser/parser.nit:1127 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1118 */
+  /* parser/parser.nit:1128 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1119 */
+  /* parser/parser.nit:1129 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1121 */
+  /* parser/parser.nit:1131 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast nullable AModuledecl*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1121);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1131);
   }
-  /* ./parser//parser.nit:1123 */
+  /* parser/parser.nit:1133 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1123);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1133);
   }
-  /* ./parser//parser.nit:1124 */
+  /* parser/parser.nit:1134 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
   fra.me.REG[6] = fra.me.REG[3];
-  /* ./parser//parser.nit:1125 */
+  /* parser/parser.nit:1135 */
   fra.me.REG[6] = NEW_AModule_parser___parser_prod___AModule___init_amodule(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
-  /* ./parser//parser.nit:1130 */
+  /* parser/parser.nit:1140 */
   fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:1131 */
+  /* parser/parser.nit:1141 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1131);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1141);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -5565,7 +5631,7 @@ void parser___ReduceAction6___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1136;
+  fra.me.line = 1146;
   fra.me.meth = LOCATE_parser___ReduceAction6___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -5579,43 +5645,43 @@ void parser___ReduceAction6___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1138 */
+  /* parser/parser.nit:1148 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1139 */
+  /* parser/parser.nit:1149 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1140 */
+  /* parser/parser.nit:1150 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1141 */
+  /* parser/parser.nit:1151 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1142 */
+  /* parser/parser.nit:1152 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1144 */
+  /* parser/parser.nit:1154 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1144);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1154);
   }
-  /* ./parser//parser.nit:1145 */
+  /* parser/parser.nit:1155 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:1147 */
+  /* parser/parser.nit:1157 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1147);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1157);
   }
-  /* ./parser//parser.nit:1148 */
+  /* parser/parser.nit:1158 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
   fra.me.REG[6] = fra.me.REG[3];
-  /* ./parser//parser.nit:1149 */
+  /* parser/parser.nit:1159 */
   fra.me.REG[6] = NEW_AModule_parser___parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[5], fra.me.REG[6]);
-  /* ./parser//parser.nit:1154 */
+  /* parser/parser.nit:1164 */
   fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:1155 */
+  /* parser/parser.nit:1165 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1155);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1165);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -5629,7 +5695,7 @@ void parser___ReduceAction7___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1160;
+  fra.me.line = 1170;
   fra.me.meth = LOCATE_parser___ReduceAction7___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -5644,51 +5710,51 @@ void parser___ReduceAction7___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1162 */
+  /* parser/parser.nit:1172 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1163 */
+  /* parser/parser.nit:1173 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1164 */
+  /* parser/parser.nit:1174 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1165 */
+  /* parser/parser.nit:1175 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1166 */
+  /* parser/parser.nit:1176 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1167 */
+  /* parser/parser.nit:1177 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1169 */
+  /* parser/parser.nit:1179 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast nullable AModuledecl*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1169);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1179);
   }
-  /* ./parser//parser.nit:1171 */
+  /* parser/parser.nit:1181 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1171);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1181);
   }
-  /* ./parser//parser.nit:1172 */
+  /* parser/parser.nit:1182 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
   fra.me.REG[6] = fra.me.REG[4];
-  /* ./parser//parser.nit:1174 */
+  /* parser/parser.nit:1184 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1174);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1184);
   }
-  /* ./parser//parser.nit:1175 */
+  /* parser/parser.nit:1185 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
   fra.me.REG[7] = fra.me.REG[3];
-  /* ./parser//parser.nit:1176 */
+  /* parser/parser.nit:1186 */
   fra.me.REG[7] = NEW_AModule_parser___parser_prod___AModule___init_amodule(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
-  /* ./parser//parser.nit:1181 */
+  /* parser/parser.nit:1191 */
   fra.me.REG[2] = fra.me.REG[7];
-  /* ./parser//parser.nit:1182 */
+  /* parser/parser.nit:1192 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1182);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1192);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -5703,7 +5769,7 @@ void parser___ReduceAction8___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1187;
+  fra.me.line = 1197;
   fra.me.meth = LOCATE_parser___ReduceAction8___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -5717,28 +5783,28 @@ void parser___ReduceAction8___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1189 */
+  /* parser/parser.nit:1199 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1190 */
+  /* parser/parser.nit:1200 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1191 */
+  /* parser/parser.nit:1201 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1192 */
+  /* parser/parser.nit:1202 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1193 */
+  /* parser/parser.nit:1203 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1195 */
+  /* parser/parser.nit:1205 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1195);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1205);
   }
-  /* ./parser//parser.nit:1196 */
+  /* parser/parser.nit:1206 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
   fra.me.REG[6] = fra.me.REG[3];
-  /* ./parser//parser.nit:1197 */
+  /* parser/parser.nit:1207 */
   fra.me.REG[6] = NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[6]);
-  /* ./parser//parser.nit:1200 */
+  /* parser/parser.nit:1210 */
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -5753,18 +5819,18 @@ void parser___ReduceAction8___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1201 */
+    /* parser/parser.nit:1211 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
   }
-  /* ./parser//parser.nit:1203 */
+  /* parser/parser.nit:1213 */
   fra.me.REG[5] = NEW_AModule_parser___parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[4], fra.me.REG[5]);
-  /* ./parser//parser.nit:1208 */
+  /* parser/parser.nit:1218 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:1209 */
+  /* parser/parser.nit:1219 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1209);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1219);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -5779,7 +5845,7 @@ void parser___ReduceAction9___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1214;
+  fra.me.line = 1224;
   fra.me.meth = LOCATE_parser___ReduceAction9___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -5794,36 +5860,36 @@ void parser___ReduceAction9___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1216 */
+  /* parser/parser.nit:1226 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1217 */
+  /* parser/parser.nit:1227 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1218 */
+  /* parser/parser.nit:1228 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1219 */
+  /* parser/parser.nit:1229 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1220 */
+  /* parser/parser.nit:1230 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1222 */
+  /* parser/parser.nit:1232 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast nullable AModuledecl*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1222);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1232);
   }
-  /* ./parser//parser.nit:1223 */
+  /* parser/parser.nit:1233 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1225 */
+  /* parser/parser.nit:1235 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1225);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1235);
   }
-  /* ./parser//parser.nit:1226 */
+  /* parser/parser.nit:1236 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
   fra.me.REG[7] = fra.me.REG[3];
-  /* ./parser//parser.nit:1227 */
+  /* parser/parser.nit:1237 */
   fra.me.REG[7] = NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[7]);
-  /* ./parser//parser.nit:1230 */
+  /* parser/parser.nit:1240 */
   REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -5838,18 +5904,18 @@ void parser___ReduceAction9___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1231 */
+    /* parser/parser.nit:1241 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
   }
-  /* ./parser//parser.nit:1233 */
+  /* parser/parser.nit:1243 */
   fra.me.REG[6] = NEW_AModule_parser___parser_prod___AModule___init_amodule(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
-  /* ./parser//parser.nit:1238 */
+  /* parser/parser.nit:1248 */
   fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:1239 */
+  /* parser/parser.nit:1249 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1239);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1249);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -5864,7 +5930,7 @@ void parser___ReduceAction10___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1244;
+  fra.me.line = 1254;
   fra.me.meth = LOCATE_parser___ReduceAction10___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -5878,39 +5944,39 @@ void parser___ReduceAction10___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1246 */
+  /* parser/parser.nit:1256 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1247 */
+  /* parser/parser.nit:1257 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1248 */
+  /* parser/parser.nit:1258 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1249 */
+  /* parser/parser.nit:1259 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1250 */
+  /* parser/parser.nit:1260 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1252 */
+  /* parser/parser.nit:1262 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1252);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1262);
   }
-  /* ./parser//parser.nit:1253 */
+  /* parser/parser.nit:1263 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:1254 */
+  /* parser/parser.nit:1264 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1256 */
+  /* parser/parser.nit:1266 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1256);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1266);
   }
-  /* ./parser//parser.nit:1257 */
+  /* parser/parser.nit:1267 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
   fra.me.REG[4] = fra.me.REG[3];
-  /* ./parser//parser.nit:1258 */
+  /* parser/parser.nit:1268 */
   fra.me.REG[4] = NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[4]);
-  /* ./parser//parser.nit:1261 */
+  /* parser/parser.nit:1271 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -5925,18 +5991,18 @@ void parser___ReduceAction10___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1262 */
+    /* parser/parser.nit:1272 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
   }
-  /* ./parser//parser.nit:1264 */
+  /* parser/parser.nit:1274 */
   fra.me.REG[6] = NEW_AModule_parser___parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[5], fra.me.REG[6]);
-  /* ./parser//parser.nit:1269 */
+  /* parser/parser.nit:1279 */
   fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:1270 */
+  /* parser/parser.nit:1280 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1270);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1280);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -5951,7 +6017,7 @@ void parser___ReduceAction11___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1275;
+  fra.me.line = 1285;
   fra.me.meth = LOCATE_parser___ReduceAction11___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -5966,47 +6032,47 @@ void parser___ReduceAction11___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1277 */
+  /* parser/parser.nit:1287 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1278 */
+  /* parser/parser.nit:1288 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1279 */
+  /* parser/parser.nit:1289 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1280 */
+  /* parser/parser.nit:1290 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1281 */
+  /* parser/parser.nit:1291 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1282 */
+  /* parser/parser.nit:1292 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1284 */
+  /* parser/parser.nit:1294 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast nullable AModuledecl*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1284);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1294);
   }
-  /* ./parser//parser.nit:1286 */
+  /* parser/parser.nit:1296 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1286);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1296);
   }
-  /* ./parser//parser.nit:1287 */
+  /* parser/parser.nit:1297 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
   fra.me.REG[6] = fra.me.REG[4];
-  /* ./parser//parser.nit:1288 */
+  /* parser/parser.nit:1298 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1290 */
+  /* parser/parser.nit:1300 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1290);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1300);
   }
-  /* ./parser//parser.nit:1291 */
+  /* parser/parser.nit:1301 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
   fra.me.REG[4] = fra.me.REG[3];
-  /* ./parser//parser.nit:1292 */
+  /* parser/parser.nit:1302 */
   fra.me.REG[4] = NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[4]);
-  /* ./parser//parser.nit:1295 */
+  /* parser/parser.nit:1305 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -6021,18 +6087,18 @@ void parser___ReduceAction11___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1296 */
+    /* parser/parser.nit:1306 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
   }
-  /* ./parser//parser.nit:1298 */
+  /* parser/parser.nit:1308 */
   fra.me.REG[7] = NEW_AModule_parser___parser_prod___AModule___init_amodule(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
-  /* ./parser//parser.nit:1303 */
+  /* parser/parser.nit:1313 */
   fra.me.REG[2] = fra.me.REG[7];
-  /* ./parser//parser.nit:1304 */
+  /* parser/parser.nit:1314 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1304);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1314);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -6047,7 +6113,7 @@ void parser___ReduceAction12___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1309;
+  fra.me.line = 1319;
   fra.me.meth = LOCATE_parser___ReduceAction12___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -6062,39 +6128,39 @@ void parser___ReduceAction12___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1311 */
+  /* parser/parser.nit:1321 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1312 */
+  /* parser/parser.nit:1322 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1313 */
+  /* parser/parser.nit:1323 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1314 */
+  /* parser/parser.nit:1324 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1315 */
+  /* parser/parser.nit:1325 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1317 */
+  /* parser/parser.nit:1327 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1317);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1327);
   }
-  /* ./parser//parser.nit:1318 */
+  /* parser/parser.nit:1328 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1320 */
+  /* parser/parser.nit:1330 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1320);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1330);
   }
-  /* ./parser//parser.nit:1321 */
+  /* parser/parser.nit:1331 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
   fra.me.REG[7] = fra.me.REG[3];
-  /* ./parser//parser.nit:1322 */
+  /* parser/parser.nit:1332 */
   fra.me.REG[7] = NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[7]);
-  /* ./parser//parser.nit:1325 */
+  /* parser/parser.nit:1335 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
   fra.me.REG[6] = fra.me.REG[4];
-  /* ./parser//parser.nit:1326 */
+  /* parser/parser.nit:1336 */
   REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -6109,18 +6175,18 @@ void parser___ReduceAction12___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1327 */
+    /* parser/parser.nit:1337 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
   }
-  /* ./parser//parser.nit:1329 */
+  /* parser/parser.nit:1339 */
   fra.me.REG[6] = NEW_AModule_parser___parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[5], fra.me.REG[6]);
-  /* ./parser//parser.nit:1334 */
+  /* parser/parser.nit:1344 */
   fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:1335 */
+  /* parser/parser.nit:1345 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1335);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1345);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -6135,7 +6201,7 @@ void parser___ReduceAction13___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1340;
+  fra.me.line = 1350;
   fra.me.meth = LOCATE_parser___ReduceAction13___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -6151,47 +6217,47 @@ void parser___ReduceAction13___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1342 */
+  /* parser/parser.nit:1352 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1343 */
+  /* parser/parser.nit:1353 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1344 */
+  /* parser/parser.nit:1354 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1345 */
+  /* parser/parser.nit:1355 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1346 */
+  /* parser/parser.nit:1356 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1347 */
+  /* parser/parser.nit:1357 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1349 */
+  /* parser/parser.nit:1359 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast nullable AModuledecl*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1349);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1359);
   }
-  /* ./parser//parser.nit:1351 */
+  /* parser/parser.nit:1361 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1351);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1361);
   }
-  /* ./parser//parser.nit:1352 */
+  /* parser/parser.nit:1362 */
   fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1354 */
+  /* parser/parser.nit:1364 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1354);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1364);
   }
-  /* ./parser//parser.nit:1355 */
+  /* parser/parser.nit:1365 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[3]);
   fra.me.REG[8] = fra.me.REG[3];
-  /* ./parser//parser.nit:1356 */
+  /* parser/parser.nit:1366 */
   fra.me.REG[8] = NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[8]);
-  /* ./parser//parser.nit:1359 */
+  /* parser/parser.nit:1369 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
   fra.me.REG[7] = fra.me.REG[4];
-  /* ./parser//parser.nit:1360 */
+  /* parser/parser.nit:1370 */
   REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -6206,18 +6272,18 @@ void parser___ReduceAction13___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1361 */
+    /* parser/parser.nit:1371 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
   }
-  /* ./parser//parser.nit:1363 */
+  /* parser/parser.nit:1373 */
   fra.me.REG[7] = NEW_AModule_parser___parser_prod___AModule___init_amodule(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
-  /* ./parser//parser.nit:1368 */
+  /* parser/parser.nit:1378 */
   fra.me.REG[2] = fra.me.REG[7];
-  /* ./parser//parser.nit:1369 */
+  /* parser/parser.nit:1379 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1369);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1379);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -6232,7 +6298,7 @@ void parser___ReduceAction14___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1374;
+  fra.me.line = 1384;
   fra.me.meth = LOCATE_parser___ReduceAction14___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -6247,50 +6313,50 @@ void parser___ReduceAction14___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1376 */
+  /* parser/parser.nit:1386 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1377 */
+  /* parser/parser.nit:1387 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1378 */
+  /* parser/parser.nit:1388 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1379 */
+  /* parser/parser.nit:1389 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1380 */
+  /* parser/parser.nit:1390 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1381 */
+  /* parser/parser.nit:1391 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1383 */
+  /* parser/parser.nit:1393 */
   REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1383);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1393);
   }
-  /* ./parser//parser.nit:1384 */
+  /* parser/parser.nit:1394 */
   fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[5]);
   fra.me.REG[6] = fra.me.REG[5];
-  /* ./parser//parser.nit:1386 */
+  /* parser/parser.nit:1396 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1386);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1396);
   }
-  /* ./parser//parser.nit:1387 */
+  /* parser/parser.nit:1397 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1389 */
+  /* parser/parser.nit:1399 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1389);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1399);
   }
-  /* ./parser//parser.nit:1390 */
+  /* parser/parser.nit:1400 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
   fra.me.REG[5] = fra.me.REG[3];
-  /* ./parser//parser.nit:1391 */
+  /* parser/parser.nit:1401 */
   fra.me.REG[5] = NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[5]);
-  /* ./parser//parser.nit:1394 */
+  /* parser/parser.nit:1404 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
   fra.me.REG[7] = fra.me.REG[4];
-  /* ./parser//parser.nit:1395 */
+  /* parser/parser.nit:1405 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -6305,18 +6371,18 @@ void parser___ReduceAction14___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1396 */
+    /* parser/parser.nit:1406 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
   }
-  /* ./parser//parser.nit:1398 */
+  /* parser/parser.nit:1408 */
   fra.me.REG[7] = NEW_AModule_parser___parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[6], fra.me.REG[7]);
-  /* ./parser//parser.nit:1403 */
+  /* parser/parser.nit:1413 */
   fra.me.REG[2] = fra.me.REG[7];
-  /* ./parser//parser.nit:1404 */
+  /* parser/parser.nit:1414 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1404);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1414);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -6331,7 +6397,7 @@ void parser___ReduceAction15___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1409;
+  fra.me.line = 1419;
   fra.me.meth = LOCATE_parser___ReduceAction15___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -6347,58 +6413,58 @@ void parser___ReduceAction15___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1411 */
+  /* parser/parser.nit:1421 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1412 */
+  /* parser/parser.nit:1422 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1413 */
+  /* parser/parser.nit:1423 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1414 */
+  /* parser/parser.nit:1424 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1415 */
+  /* parser/parser.nit:1425 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1416 */
+  /* parser/parser.nit:1426 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1417 */
+  /* parser/parser.nit:1427 */
   fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1419 */
+  /* parser/parser.nit:1429 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast nullable AModuledecl*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1419);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1429);
   }
-  /* ./parser//parser.nit:1421 */
+  /* parser/parser.nit:1431 */
   REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1421);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1431);
   }
-  /* ./parser//parser.nit:1422 */
+  /* parser/parser.nit:1432 */
   fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
   fra.me.REG[7] = fra.me.REG[5];
-  /* ./parser//parser.nit:1424 */
+  /* parser/parser.nit:1434 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1424);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1434);
   }
-  /* ./parser//parser.nit:1425 */
+  /* parser/parser.nit:1435 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1427 */
+  /* parser/parser.nit:1437 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1427);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1437);
   }
-  /* ./parser//parser.nit:1428 */
+  /* parser/parser.nit:1438 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
   fra.me.REG[5] = fra.me.REG[3];
-  /* ./parser//parser.nit:1429 */
+  /* parser/parser.nit:1439 */
   fra.me.REG[5] = NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[5]);
-  /* ./parser//parser.nit:1432 */
+  /* parser/parser.nit:1442 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[4]);
   fra.me.REG[8] = fra.me.REG[4];
-  /* ./parser//parser.nit:1433 */
+  /* parser/parser.nit:1443 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -6413,18 +6479,18 @@ void parser___ReduceAction15___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1434 */
+    /* parser/parser.nit:1444 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
   }
-  /* ./parser//parser.nit:1436 */
+  /* parser/parser.nit:1446 */
   fra.me.REG[8] = NEW_AModule_parser___parser_prod___AModule___init_amodule(fra.me.REG[6], fra.me.REG[7], fra.me.REG[8]);
-  /* ./parser//parser.nit:1441 */
+  /* parser/parser.nit:1451 */
   fra.me.REG[2] = fra.me.REG[8];
-  /* ./parser//parser.nit:1442 */
+  /* parser/parser.nit:1452 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1442);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1452);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -6439,7 +6505,7 @@ void parser___ReduceAction16___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1447;
+  fra.me.line = 1457;
   fra.me.meth = LOCATE_parser___ReduceAction16___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -6452,21 +6518,21 @@ void parser___ReduceAction16___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1449 */
+  /* parser/parser.nit:1459 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1450 */
+  /* parser/parser.nit:1460 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1451 */
+  /* parser/parser.nit:1461 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1452 */
+  /* parser/parser.nit:1462 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1454 */
+  /* parser/parser.nit:1464 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast nullable AClassdef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1454);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1464);
   }
-  /* ./parser//parser.nit:1455 */
+  /* parser/parser.nit:1465 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -6481,18 +6547,18 @@ void parser___ReduceAction16___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1456 */
+    /* parser/parser.nit:1466 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:1458 */
+  /* parser/parser.nit:1468 */
   fra.me.REG[5] = NEW_AModule_parser___parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[4], fra.me.REG[5]);
-  /* ./parser//parser.nit:1463 */
+  /* parser/parser.nit:1473 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:1464 */
+  /* parser/parser.nit:1474 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1464);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1474);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -6507,7 +6573,7 @@ void parser___ReduceAction17___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1469;
+  fra.me.line = 1479;
   fra.me.meth = LOCATE_parser___ReduceAction17___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -6521,29 +6587,29 @@ void parser___ReduceAction17___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1471 */
+  /* parser/parser.nit:1481 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1472 */
+  /* parser/parser.nit:1482 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1473 */
+  /* parser/parser.nit:1483 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1474 */
+  /* parser/parser.nit:1484 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1475 */
+  /* parser/parser.nit:1485 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1477 */
+  /* parser/parser.nit:1487 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast nullable AModuledecl*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1477);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1487);
   }
-  /* ./parser//parser.nit:1479 */
+  /* parser/parser.nit:1489 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast nullable AClassdef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1479);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1489);
   }
-  /* ./parser//parser.nit:1480 */
+  /* parser/parser.nit:1490 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -6558,18 +6624,18 @@ void parser___ReduceAction17___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1481 */
+    /* parser/parser.nit:1491 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:1483 */
+  /* parser/parser.nit:1493 */
   fra.me.REG[6] = NEW_AModule_parser___parser_prod___AModule___init_amodule(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
-  /* ./parser//parser.nit:1488 */
+  /* parser/parser.nit:1498 */
   fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:1489 */
+  /* parser/parser.nit:1499 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1489);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1499);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -6584,7 +6650,7 @@ void parser___ReduceAction18___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1494;
+  fra.me.line = 1504;
   fra.me.meth = LOCATE_parser___ReduceAction18___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -6598,32 +6664,32 @@ void parser___ReduceAction18___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1496 */
+  /* parser/parser.nit:1506 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1497 */
+  /* parser/parser.nit:1507 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1498 */
+  /* parser/parser.nit:1508 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1499 */
+  /* parser/parser.nit:1509 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1500 */
+  /* parser/parser.nit:1510 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1502 */
+  /* parser/parser.nit:1512 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1502);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1512);
   }
-  /* ./parser//parser.nit:1503 */
+  /* parser/parser.nit:1513 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:1505 */
+  /* parser/parser.nit:1515 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast nullable AClassdef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1505);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1515);
   }
-  /* ./parser//parser.nit:1506 */
+  /* parser/parser.nit:1516 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -6638,18 +6704,18 @@ void parser___ReduceAction18___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1507 */
+    /* parser/parser.nit:1517 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:1509 */
+  /* parser/parser.nit:1519 */
   fra.me.REG[6] = NEW_AModule_parser___parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[5], fra.me.REG[6]);
-  /* ./parser//parser.nit:1514 */
+  /* parser/parser.nit:1524 */
   fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:1515 */
+  /* parser/parser.nit:1525 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1515);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1525);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -6664,7 +6730,7 @@ void parser___ReduceAction19___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1520;
+  fra.me.line = 1530;
   fra.me.meth = LOCATE_parser___ReduceAction19___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -6679,40 +6745,40 @@ void parser___ReduceAction19___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1522 */
+  /* parser/parser.nit:1532 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1523 */
+  /* parser/parser.nit:1533 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1524 */
+  /* parser/parser.nit:1534 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1525 */
+  /* parser/parser.nit:1535 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1526 */
+  /* parser/parser.nit:1536 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1527 */
+  /* parser/parser.nit:1537 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1529 */
+  /* parser/parser.nit:1539 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast nullable AModuledecl*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1529);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1539);
   }
-  /* ./parser//parser.nit:1531 */
+  /* parser/parser.nit:1541 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1531);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1541);
   }
-  /* ./parser//parser.nit:1532 */
+  /* parser/parser.nit:1542 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
   fra.me.REG[6] = fra.me.REG[4];
-  /* ./parser//parser.nit:1534 */
+  /* parser/parser.nit:1544 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast nullable AClassdef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1534);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1544);
   }
-  /* ./parser//parser.nit:1535 */
+  /* parser/parser.nit:1545 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -6727,18 +6793,18 @@ void parser___ReduceAction19___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1536 */
+    /* parser/parser.nit:1546 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:1538 */
+  /* parser/parser.nit:1548 */
   fra.me.REG[7] = NEW_AModule_parser___parser_prod___AModule___init_amodule(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
-  /* ./parser//parser.nit:1543 */
+  /* parser/parser.nit:1553 */
   fra.me.REG[2] = fra.me.REG[7];
-  /* ./parser//parser.nit:1544 */
+  /* parser/parser.nit:1554 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1544);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1554);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -6753,7 +6819,7 @@ void parser___ReduceAction20___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1549;
+  fra.me.line = 1559;
   fra.me.meth = LOCATE_parser___ReduceAction20___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -6767,32 +6833,32 @@ void parser___ReduceAction20___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1551 */
+  /* parser/parser.nit:1561 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1552 */
+  /* parser/parser.nit:1562 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1553 */
+  /* parser/parser.nit:1563 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1554 */
+  /* parser/parser.nit:1564 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1555 */
+  /* parser/parser.nit:1565 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1557 */
+  /* parser/parser.nit:1567 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1557);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1567);
   }
-  /* ./parser//parser.nit:1559 */
+  /* parser/parser.nit:1569 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast nullable AClassdef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1559);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1569);
   }
-  /* ./parser//parser.nit:1560 */
+  /* parser/parser.nit:1570 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
   fra.me.REG[6] = fra.me.REG[4];
-  /* ./parser//parser.nit:1561 */
+  /* parser/parser.nit:1571 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -6807,18 +6873,18 @@ void parser___ReduceAction20___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1562 */
+    /* parser/parser.nit:1572 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:1564 */
+  /* parser/parser.nit:1574 */
   fra.me.REG[6] = NEW_AModule_parser___parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[5], fra.me.REG[6]);
-  /* ./parser//parser.nit:1569 */
+  /* parser/parser.nit:1579 */
   fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:1570 */
+  /* parser/parser.nit:1580 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1570);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1580);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -6833,7 +6899,7 @@ void parser___ReduceAction21___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1575;
+  fra.me.line = 1585;
   fra.me.meth = LOCATE_parser___ReduceAction21___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -6848,40 +6914,40 @@ void parser___ReduceAction21___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1577 */
+  /* parser/parser.nit:1587 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1578 */
+  /* parser/parser.nit:1588 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1579 */
+  /* parser/parser.nit:1589 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1580 */
+  /* parser/parser.nit:1590 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1581 */
+  /* parser/parser.nit:1591 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1582 */
+  /* parser/parser.nit:1592 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1584 */
+  /* parser/parser.nit:1594 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast nullable AModuledecl*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1584);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1594);
   }
-  /* ./parser//parser.nit:1586 */
+  /* parser/parser.nit:1596 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1586);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1596);
   }
-  /* ./parser//parser.nit:1588 */
+  /* parser/parser.nit:1598 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast nullable AClassdef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1588);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1598);
   }
-  /* ./parser//parser.nit:1589 */
+  /* parser/parser.nit:1599 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
   fra.me.REG[7] = fra.me.REG[4];
-  /* ./parser//parser.nit:1590 */
+  /* parser/parser.nit:1600 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -6896,18 +6962,18 @@ void parser___ReduceAction21___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1591 */
+    /* parser/parser.nit:1601 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:1593 */
+  /* parser/parser.nit:1603 */
   fra.me.REG[7] = NEW_AModule_parser___parser_prod___AModule___init_amodule(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
-  /* ./parser//parser.nit:1598 */
+  /* parser/parser.nit:1608 */
   fra.me.REG[2] = fra.me.REG[7];
-  /* ./parser//parser.nit:1599 */
+  /* parser/parser.nit:1609 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1599);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1609);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -6922,7 +6988,7 @@ void parser___ReduceAction22___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1604;
+  fra.me.line = 1614;
   fra.me.meth = LOCATE_parser___ReduceAction22___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -6937,43 +7003,43 @@ void parser___ReduceAction22___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1606 */
+  /* parser/parser.nit:1616 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1607 */
+  /* parser/parser.nit:1617 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1608 */
+  /* parser/parser.nit:1618 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1609 */
+  /* parser/parser.nit:1619 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1610 */
+  /* parser/parser.nit:1620 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1611 */
+  /* parser/parser.nit:1621 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1613 */
+  /* parser/parser.nit:1623 */
   REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1613);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1623);
   }
-  /* ./parser//parser.nit:1614 */
+  /* parser/parser.nit:1624 */
   fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[5]);
   fra.me.REG[6] = fra.me.REG[5];
-  /* ./parser//parser.nit:1616 */
+  /* parser/parser.nit:1626 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1616);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1626);
   }
-  /* ./parser//parser.nit:1618 */
+  /* parser/parser.nit:1628 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast nullable AClassdef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1618);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1628);
   }
-  /* ./parser//parser.nit:1619 */
+  /* parser/parser.nit:1629 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
   fra.me.REG[7] = fra.me.REG[4];
-  /* ./parser//parser.nit:1620 */
+  /* parser/parser.nit:1630 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -6988,18 +7054,18 @@ void parser___ReduceAction22___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1621 */
+    /* parser/parser.nit:1631 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:1623 */
+  /* parser/parser.nit:1633 */
   fra.me.REG[7] = NEW_AModule_parser___parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[6], fra.me.REG[7]);
-  /* ./parser//parser.nit:1628 */
+  /* parser/parser.nit:1638 */
   fra.me.REG[2] = fra.me.REG[7];
-  /* ./parser//parser.nit:1629 */
+  /* parser/parser.nit:1639 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1629);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1639);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -7014,7 +7080,7 @@ void parser___ReduceAction23___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1634;
+  fra.me.line = 1644;
   fra.me.meth = LOCATE_parser___ReduceAction23___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -7030,51 +7096,51 @@ void parser___ReduceAction23___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1636 */
+  /* parser/parser.nit:1646 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1637 */
+  /* parser/parser.nit:1647 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1638 */
+  /* parser/parser.nit:1648 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1639 */
+  /* parser/parser.nit:1649 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1640 */
+  /* parser/parser.nit:1650 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1641 */
+  /* parser/parser.nit:1651 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1642 */
+  /* parser/parser.nit:1652 */
   fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1644 */
+  /* parser/parser.nit:1654 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast nullable AModuledecl*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1644);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1654);
   }
-  /* ./parser//parser.nit:1646 */
+  /* parser/parser.nit:1656 */
   REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1646);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1656);
   }
-  /* ./parser//parser.nit:1647 */
+  /* parser/parser.nit:1657 */
   fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
   fra.me.REG[7] = fra.me.REG[5];
-  /* ./parser//parser.nit:1649 */
+  /* parser/parser.nit:1659 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1649);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1659);
   }
-  /* ./parser//parser.nit:1651 */
+  /* parser/parser.nit:1661 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast nullable AClassdef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1651);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1661);
   }
-  /* ./parser//parser.nit:1652 */
+  /* parser/parser.nit:1662 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[4]);
   fra.me.REG[8] = fra.me.REG[4];
-  /* ./parser//parser.nit:1653 */
+  /* parser/parser.nit:1663 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -7089,18 +7155,18 @@ void parser___ReduceAction23___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1654 */
+    /* parser/parser.nit:1664 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:1656 */
+  /* parser/parser.nit:1666 */
   fra.me.REG[8] = NEW_AModule_parser___parser_prod___AModule___init_amodule(fra.me.REG[6], fra.me.REG[7], fra.me.REG[8]);
-  /* ./parser//parser.nit:1661 */
+  /* parser/parser.nit:1671 */
   fra.me.REG[2] = fra.me.REG[8];
-  /* ./parser//parser.nit:1662 */
+  /* parser/parser.nit:1672 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1662);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1672);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -7115,7 +7181,7 @@ void parser___ReduceAction24___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1667;
+  fra.me.line = 1677;
   fra.me.meth = LOCATE_parser___ReduceAction24___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -7130,36 +7196,36 @@ void parser___ReduceAction24___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1669 */
+  /* parser/parser.nit:1679 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1670 */
+  /* parser/parser.nit:1680 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1671 */
+  /* parser/parser.nit:1681 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1672 */
+  /* parser/parser.nit:1682 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1673 */
+  /* parser/parser.nit:1683 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1674 */
+  /* parser/parser.nit:1684 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1676 */
+  /* parser/parser.nit:1686 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1676);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1686);
   }
-  /* ./parser//parser.nit:1677 */
+  /* parser/parser.nit:1687 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
   fra.me.REG[7] = fra.me.REG[4];
-  /* ./parser//parser.nit:1678 */
+  /* parser/parser.nit:1688 */
   fra.me.REG[7] = NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[7]);
-  /* ./parser//parser.nit:1682 */
+  /* parser/parser.nit:1692 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast nullable AClassdef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1682);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1692);
   }
-  /* ./parser//parser.nit:1683 */
+  /* parser/parser.nit:1693 */
   REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -7174,10 +7240,10 @@ void parser___ReduceAction24___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1684 */
+    /* parser/parser.nit:1694 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
   }
-  /* ./parser//parser.nit:1686 */
+  /* parser/parser.nit:1696 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -7192,18 +7258,18 @@ void parser___ReduceAction24___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1687 */
+    /* parser/parser.nit:1697 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:1689 */
+  /* parser/parser.nit:1699 */
   fra.me.REG[6] = NEW_AModule_parser___parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[5], fra.me.REG[6]);
-  /* ./parser//parser.nit:1694 */
+  /* parser/parser.nit:1704 */
   fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:1695 */
+  /* parser/parser.nit:1705 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1695);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1705);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -7218,7 +7284,7 @@ void parser___ReduceAction25___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1700;
+  fra.me.line = 1710;
   fra.me.meth = LOCATE_parser___ReduceAction25___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -7234,44 +7300,44 @@ void parser___ReduceAction25___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1702 */
+  /* parser/parser.nit:1712 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1703 */
+  /* parser/parser.nit:1713 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1704 */
+  /* parser/parser.nit:1714 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1705 */
+  /* parser/parser.nit:1715 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1706 */
+  /* parser/parser.nit:1716 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1707 */
+  /* parser/parser.nit:1717 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1709 */
+  /* parser/parser.nit:1719 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast nullable AModuledecl*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1709);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1719);
   }
-  /* ./parser//parser.nit:1710 */
+  /* parser/parser.nit:1720 */
   fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1712 */
+  /* parser/parser.nit:1722 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1712);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1722);
   }
-  /* ./parser//parser.nit:1713 */
+  /* parser/parser.nit:1723 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[4]);
   fra.me.REG[8] = fra.me.REG[4];
-  /* ./parser//parser.nit:1714 */
+  /* parser/parser.nit:1724 */
   fra.me.REG[8] = NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[8]);
-  /* ./parser//parser.nit:1718 */
+  /* parser/parser.nit:1728 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast nullable AClassdef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1718);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1728);
   }
-  /* ./parser//parser.nit:1719 */
+  /* parser/parser.nit:1729 */
   REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -7286,10 +7352,10 @@ void parser___ReduceAction25___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1720 */
+    /* parser/parser.nit:1730 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
   }
-  /* ./parser//parser.nit:1722 */
+  /* parser/parser.nit:1732 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -7304,18 +7370,18 @@ void parser___ReduceAction25___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1723 */
+    /* parser/parser.nit:1733 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:1725 */
+  /* parser/parser.nit:1735 */
   fra.me.REG[7] = NEW_AModule_parser___parser_prod___AModule___init_amodule(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
-  /* ./parser//parser.nit:1730 */
+  /* parser/parser.nit:1740 */
   fra.me.REG[2] = fra.me.REG[7];
-  /* ./parser//parser.nit:1731 */
+  /* parser/parser.nit:1741 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1731);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1741);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -7330,7 +7396,7 @@ void parser___ReduceAction26___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1736;
+  fra.me.line = 1746;
   fra.me.meth = LOCATE_parser___ReduceAction26___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -7345,47 +7411,47 @@ void parser___ReduceAction26___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1738 */
+  /* parser/parser.nit:1748 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1739 */
+  /* parser/parser.nit:1749 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1740 */
+  /* parser/parser.nit:1750 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1741 */
+  /* parser/parser.nit:1751 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1742 */
+  /* parser/parser.nit:1752 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1743 */
+  /* parser/parser.nit:1753 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1745 */
+  /* parser/parser.nit:1755 */
   REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1745);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1755);
   }
-  /* ./parser//parser.nit:1746 */
+  /* parser/parser.nit:1756 */
   fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[5]);
   fra.me.REG[6] = fra.me.REG[5];
-  /* ./parser//parser.nit:1747 */
+  /* parser/parser.nit:1757 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1749 */
+  /* parser/parser.nit:1759 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1749);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1759);
   }
-  /* ./parser//parser.nit:1750 */
+  /* parser/parser.nit:1760 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:1751 */
+  /* parser/parser.nit:1761 */
   fra.me.REG[5] = NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[5]);
-  /* ./parser//parser.nit:1755 */
+  /* parser/parser.nit:1765 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast nullable AClassdef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1755);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1765);
   }
-  /* ./parser//parser.nit:1756 */
+  /* parser/parser.nit:1766 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -7400,10 +7466,10 @@ void parser___ReduceAction26___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1757 */
+    /* parser/parser.nit:1767 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
   }
-  /* ./parser//parser.nit:1759 */
+  /* parser/parser.nit:1769 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -7418,18 +7484,18 @@ void parser___ReduceAction26___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1760 */
+    /* parser/parser.nit:1770 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:1762 */
+  /* parser/parser.nit:1772 */
   fra.me.REG[7] = NEW_AModule_parser___parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[6], fra.me.REG[7]);
-  /* ./parser//parser.nit:1767 */
+  /* parser/parser.nit:1777 */
   fra.me.REG[2] = fra.me.REG[7];
-  /* ./parser//parser.nit:1768 */
+  /* parser/parser.nit:1778 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1768);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1778);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -7444,7 +7510,7 @@ void parser___ReduceAction27___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1773;
+  fra.me.line = 1783;
   fra.me.meth = LOCATE_parser___ReduceAction27___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -7460,55 +7526,55 @@ void parser___ReduceAction27___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1775 */
+  /* parser/parser.nit:1785 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1776 */
+  /* parser/parser.nit:1786 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1777 */
+  /* parser/parser.nit:1787 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1778 */
+  /* parser/parser.nit:1788 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1779 */
+  /* parser/parser.nit:1789 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1780 */
+  /* parser/parser.nit:1790 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1781 */
+  /* parser/parser.nit:1791 */
   fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1783 */
+  /* parser/parser.nit:1793 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast nullable AModuledecl*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1783);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1793);
   }
-  /* ./parser//parser.nit:1785 */
+  /* parser/parser.nit:1795 */
   REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1785);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1795);
   }
-  /* ./parser//parser.nit:1786 */
+  /* parser/parser.nit:1796 */
   fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
   fra.me.REG[7] = fra.me.REG[5];
-  /* ./parser//parser.nit:1787 */
+  /* parser/parser.nit:1797 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1789 */
+  /* parser/parser.nit:1799 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1789);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1799);
   }
-  /* ./parser//parser.nit:1790 */
+  /* parser/parser.nit:1800 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:1791 */
+  /* parser/parser.nit:1801 */
   fra.me.REG[5] = NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[5]);
-  /* ./parser//parser.nit:1795 */
+  /* parser/parser.nit:1805 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast nullable AClassdef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1795);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1805);
   }
-  /* ./parser//parser.nit:1796 */
+  /* parser/parser.nit:1806 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -7523,10 +7589,10 @@ void parser___ReduceAction27___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1797 */
+    /* parser/parser.nit:1807 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
   }
-  /* ./parser//parser.nit:1799 */
+  /* parser/parser.nit:1809 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -7541,18 +7607,18 @@ void parser___ReduceAction27___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1800 */
+    /* parser/parser.nit:1810 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:1802 */
+  /* parser/parser.nit:1812 */
   fra.me.REG[8] = NEW_AModule_parser___parser_prod___AModule___init_amodule(fra.me.REG[6], fra.me.REG[7], fra.me.REG[8]);
-  /* ./parser//parser.nit:1807 */
+  /* parser/parser.nit:1817 */
   fra.me.REG[2] = fra.me.REG[8];
-  /* ./parser//parser.nit:1808 */
+  /* parser/parser.nit:1818 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1808);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1818);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -7567,7 +7633,7 @@ void parser___ReduceAction28___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1813;
+  fra.me.line = 1823;
   fra.me.meth = LOCATE_parser___ReduceAction28___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -7583,47 +7649,47 @@ void parser___ReduceAction28___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1815 */
+  /* parser/parser.nit:1825 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1816 */
+  /* parser/parser.nit:1826 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1817 */
+  /* parser/parser.nit:1827 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1818 */
+  /* parser/parser.nit:1828 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1819 */
+  /* parser/parser.nit:1829 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1820 */
+  /* parser/parser.nit:1830 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1822 */
+  /* parser/parser.nit:1832 */
   REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1822);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1832);
   }
-  /* ./parser//parser.nit:1823 */
+  /* parser/parser.nit:1833 */
   fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1825 */
+  /* parser/parser.nit:1835 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1825);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1835);
   }
-  /* ./parser//parser.nit:1826 */
+  /* parser/parser.nit:1836 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[4]);
   fra.me.REG[8] = fra.me.REG[4];
-  /* ./parser//parser.nit:1827 */
+  /* parser/parser.nit:1837 */
   fra.me.REG[8] = NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[8]);
-  /* ./parser//parser.nit:1831 */
+  /* parser/parser.nit:1841 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast nullable AClassdef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1831);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1841);
   }
-  /* ./parser//parser.nit:1832 */
+  /* parser/parser.nit:1842 */
   fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
   fra.me.REG[7] = fra.me.REG[5];
-  /* ./parser//parser.nit:1833 */
+  /* parser/parser.nit:1843 */
   REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -7638,10 +7704,10 @@ void parser___ReduceAction28___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1834 */
+    /* parser/parser.nit:1844 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
   }
-  /* ./parser//parser.nit:1836 */
+  /* parser/parser.nit:1846 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -7656,18 +7722,18 @@ void parser___ReduceAction28___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1837 */
+    /* parser/parser.nit:1847 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:1839 */
+  /* parser/parser.nit:1849 */
   fra.me.REG[7] = NEW_AModule_parser___parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[6], fra.me.REG[7]);
-  /* ./parser//parser.nit:1844 */
+  /* parser/parser.nit:1854 */
   fra.me.REG[2] = fra.me.REG[7];
-  /* ./parser//parser.nit:1845 */
+  /* parser/parser.nit:1855 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1845);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1855);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -7682,7 +7748,7 @@ void parser___ReduceAction29___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1850;
+  fra.me.line = 1860;
   fra.me.meth = LOCATE_parser___ReduceAction29___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -7699,55 +7765,55 @@ void parser___ReduceAction29___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1852 */
+  /* parser/parser.nit:1862 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1853 */
+  /* parser/parser.nit:1863 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1854 */
+  /* parser/parser.nit:1864 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1855 */
+  /* parser/parser.nit:1865 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1856 */
+  /* parser/parser.nit:1866 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1857 */
+  /* parser/parser.nit:1867 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1858 */
+  /* parser/parser.nit:1868 */
   fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1860 */
+  /* parser/parser.nit:1870 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast nullable AModuledecl*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1860);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1870);
   }
-  /* ./parser//parser.nit:1862 */
+  /* parser/parser.nit:1872 */
   REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1862);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1872);
   }
-  /* ./parser//parser.nit:1863 */
+  /* parser/parser.nit:1873 */
   fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1865 */
+  /* parser/parser.nit:1875 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1865);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1875);
   }
-  /* ./parser//parser.nit:1866 */
+  /* parser/parser.nit:1876 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[4]);
   fra.me.REG[9] = fra.me.REG[4];
-  /* ./parser//parser.nit:1867 */
+  /* parser/parser.nit:1877 */
   fra.me.REG[9] = NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[9]);
-  /* ./parser//parser.nit:1871 */
+  /* parser/parser.nit:1881 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast nullable AClassdef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1871);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1881);
   }
-  /* ./parser//parser.nit:1872 */
+  /* parser/parser.nit:1882 */
   fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[5]);
   fra.me.REG[8] = fra.me.REG[5];
-  /* ./parser//parser.nit:1873 */
+  /* parser/parser.nit:1883 */
   REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -7762,10 +7828,10 @@ void parser___ReduceAction29___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1874 */
+    /* parser/parser.nit:1884 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
   }
-  /* ./parser//parser.nit:1876 */
+  /* parser/parser.nit:1886 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -7780,18 +7846,18 @@ void parser___ReduceAction29___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1877 */
+    /* parser/parser.nit:1887 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:1879 */
+  /* parser/parser.nit:1889 */
   fra.me.REG[8] = NEW_AModule_parser___parser_prod___AModule___init_amodule(fra.me.REG[6], fra.me.REG[7], fra.me.REG[8]);
-  /* ./parser//parser.nit:1884 */
+  /* parser/parser.nit:1894 */
   fra.me.REG[2] = fra.me.REG[8];
-  /* ./parser//parser.nit:1885 */
+  /* parser/parser.nit:1895 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1885);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1895);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -7806,7 +7872,7 @@ void parser___ReduceAction30___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1890;
+  fra.me.line = 1900;
   fra.me.meth = LOCATE_parser___ReduceAction30___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -7822,58 +7888,58 @@ void parser___ReduceAction30___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1892 */
+  /* parser/parser.nit:1902 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1893 */
+  /* parser/parser.nit:1903 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1894 */
+  /* parser/parser.nit:1904 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1895 */
+  /* parser/parser.nit:1905 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1896 */
+  /* parser/parser.nit:1906 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1897 */
+  /* parser/parser.nit:1907 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1898 */
+  /* parser/parser.nit:1908 */
   fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1900 */
+  /* parser/parser.nit:1910 */
   REGB0 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1900);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1910);
   }
-  /* ./parser//parser.nit:1901 */
+  /* parser/parser.nit:1911 */
   fra.me.REG[6] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[6]);
   fra.me.REG[7] = fra.me.REG[6];
-  /* ./parser//parser.nit:1903 */
+  /* parser/parser.nit:1913 */
   REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1903);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1913);
   }
-  /* ./parser//parser.nit:1904 */
+  /* parser/parser.nit:1914 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1906 */
+  /* parser/parser.nit:1916 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1906);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1916);
   }
-  /* ./parser//parser.nit:1907 */
+  /* parser/parser.nit:1917 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
   fra.me.REG[6] = fra.me.REG[4];
-  /* ./parser//parser.nit:1908 */
+  /* parser/parser.nit:1918 */
   fra.me.REG[6] = NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[6]);
-  /* ./parser//parser.nit:1912 */
+  /* parser/parser.nit:1922 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast nullable AClassdef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1912);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1922);
   }
-  /* ./parser//parser.nit:1913 */
+  /* parser/parser.nit:1923 */
   fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[5]);
   fra.me.REG[8] = fra.me.REG[5];
-  /* ./parser//parser.nit:1914 */
+  /* parser/parser.nit:1924 */
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -7888,10 +7954,10 @@ void parser___ReduceAction30___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1915 */
+    /* parser/parser.nit:1925 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6]);
   }
-  /* ./parser//parser.nit:1917 */
+  /* parser/parser.nit:1927 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -7906,18 +7972,18 @@ void parser___ReduceAction30___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1918 */
+    /* parser/parser.nit:1928 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:1920 */
+  /* parser/parser.nit:1930 */
   fra.me.REG[8] = NEW_AModule_parser___parser_prod___AModule___init_amodule(NIT_NULL, fra.me.REG[7], fra.me.REG[8]);
-  /* ./parser//parser.nit:1925 */
+  /* parser/parser.nit:1935 */
   fra.me.REG[2] = fra.me.REG[8];
-  /* ./parser//parser.nit:1926 */
+  /* parser/parser.nit:1936 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1926);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1936);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -7932,7 +7998,7 @@ void parser___ReduceAction31___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1931;
+  fra.me.line = 1941;
   fra.me.meth = LOCATE_parser___ReduceAction31___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -7949,66 +8015,66 @@ void parser___ReduceAction31___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1933 */
+  /* parser/parser.nit:1943 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1934 */
+  /* parser/parser.nit:1944 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1935 */
+  /* parser/parser.nit:1945 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1936 */
+  /* parser/parser.nit:1946 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1937 */
+  /* parser/parser.nit:1947 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1938 */
+  /* parser/parser.nit:1948 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1939 */
+  /* parser/parser.nit:1949 */
   fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1940 */
+  /* parser/parser.nit:1950 */
   fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1942 */
+  /* parser/parser.nit:1952 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast nullable AModuledecl*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1942);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1952);
   }
-  /* ./parser//parser.nit:1944 */
+  /* parser/parser.nit:1954 */
   REGB0 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1944);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1954);
   }
-  /* ./parser//parser.nit:1945 */
+  /* parser/parser.nit:1955 */
   fra.me.REG[6] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[6]);
   fra.me.REG[8] = fra.me.REG[6];
-  /* ./parser//parser.nit:1947 */
+  /* parser/parser.nit:1957 */
   REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1947);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1957);
   }
-  /* ./parser//parser.nit:1948 */
+  /* parser/parser.nit:1958 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:1950 */
+  /* parser/parser.nit:1960 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1950);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1960);
   }
-  /* ./parser//parser.nit:1951 */
+  /* parser/parser.nit:1961 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
   fra.me.REG[6] = fra.me.REG[4];
-  /* ./parser//parser.nit:1952 */
+  /* parser/parser.nit:1962 */
   fra.me.REG[6] = NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(fra.me.REG[6]);
-  /* ./parser//parser.nit:1956 */
+  /* parser/parser.nit:1966 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast nullable AClassdef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1956);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1966);
   }
-  /* ./parser//parser.nit:1957 */
+  /* parser/parser.nit:1967 */
   fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[5]);
   fra.me.REG[9] = fra.me.REG[5];
-  /* ./parser//parser.nit:1958 */
+  /* parser/parser.nit:1968 */
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -8023,10 +8089,10 @@ void parser___ReduceAction31___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1959 */
+    /* parser/parser.nit:1969 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[6]);
   }
-  /* ./parser//parser.nit:1961 */
+  /* parser/parser.nit:1971 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -8041,18 +8107,18 @@ void parser___ReduceAction31___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:1962 */
+    /* parser/parser.nit:1972 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:1964 */
+  /* parser/parser.nit:1974 */
   fra.me.REG[9] = NEW_AModule_parser___parser_prod___AModule___init_amodule(fra.me.REG[7], fra.me.REG[8], fra.me.REG[9]);
-  /* ./parser//parser.nit:1969 */
+  /* parser/parser.nit:1979 */
   fra.me.REG[2] = fra.me.REG[9];
-  /* ./parser//parser.nit:1970 */
+  /* parser/parser.nit:1980 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1970);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1980);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -8066,7 +8132,7 @@ void parser___ReduceAction32___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 1975;
+  fra.me.line = 1985;
   fra.me.meth = LOCATE_parser___ReduceAction32___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -8079,45 +8145,45 @@ void parser___ReduceAction32___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:1977 */
+  /* parser/parser.nit:1987 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:1978 */
+  /* parser/parser.nit:1988 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1979 */
+  /* parser/parser.nit:1989 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1980 */
+  /* parser/parser.nit:1990 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1981 */
+  /* parser/parser.nit:1991 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1982 */
+  /* parser/parser.nit:1992 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:1984 */
+  /* parser/parser.nit:1994 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1984);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1994);
   }
-  /* ./parser//parser.nit:1986 */
+  /* parser/parser.nit:1996 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwmodule, ID_parser___parser_nodes___TKwmodule)) /*cast nullable TKwmodule*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1986);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1996);
   }
-  /* ./parser//parser.nit:1988 */
+  /* parser/parser.nit:1998 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AModuleName, ID_parser___parser_nodes___AModuleName)) /*cast nullable AModuleName*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 1988);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 1998);
   }
-  /* ./parser//parser.nit:1989 */
+  /* parser/parser.nit:1999 */
   fra.me.REG[3] = NEW_AModuledecl_parser___parser_prod___AModuledecl___init_amoduledecl(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:1994 */
+  /* parser/parser.nit:2004 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:1995 */
+  /* parser/parser.nit:2005 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 1995);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2005);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -8131,7 +8197,7 @@ void parser___ReduceAction33___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2000;
+  fra.me.line = 2010;
   fra.me.meth = LOCATE_parser___ReduceAction33___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -8145,47 +8211,47 @@ void parser___ReduceAction33___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2002 */
+  /* parser/parser.nit:2012 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2003 */
+  /* parser/parser.nit:2013 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2004 */
+  /* parser/parser.nit:2014 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2005 */
+  /* parser/parser.nit:2015 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2006 */
+  /* parser/parser.nit:2016 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2007 */
+  /* parser/parser.nit:2017 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2008 */
+  /* parser/parser.nit:2018 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2010 */
+  /* parser/parser.nit:2020 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2010);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2020);
   }
-  /* ./parser//parser.nit:2012 */
+  /* parser/parser.nit:2022 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwimport, ID_parser___parser_nodes___TKwimport)) /*cast nullable TKwimport*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2012);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2022);
   }
-  /* ./parser//parser.nit:2014 */
+  /* parser/parser.nit:2024 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AModuleName, ID_parser___parser_nodes___AModuleName)) /*cast nullable AModuleName*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2014);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2024);
   }
-  /* ./parser//parser.nit:2015 */
+  /* parser/parser.nit:2025 */
   fra.me.REG[3] = NEW_AStdImport_parser___parser_prod___AStdImport___init_astdimport(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:2020 */
+  /* parser/parser.nit:2030 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:2021 */
+  /* parser/parser.nit:2031 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2021);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2031);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -8199,7 +8265,7 @@ void parser___ReduceAction34___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2026;
+  fra.me.line = 2036;
   fra.me.meth = LOCATE_parser___ReduceAction34___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -8213,47 +8279,47 @@ void parser___ReduceAction34___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2028 */
+  /* parser/parser.nit:2038 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2029 */
+  /* parser/parser.nit:2039 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2030 */
+  /* parser/parser.nit:2040 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2031 */
+  /* parser/parser.nit:2041 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2032 */
+  /* parser/parser.nit:2042 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2033 */
+  /* parser/parser.nit:2043 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2034 */
+  /* parser/parser.nit:2044 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2036 */
+  /* parser/parser.nit:2046 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2036);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2046);
   }
-  /* ./parser//parser.nit:2038 */
+  /* parser/parser.nit:2048 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwimport, ID_parser___parser_nodes___TKwimport)) /*cast nullable TKwimport*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2038);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2048);
   }
-  /* ./parser//parser.nit:2040 */
+  /* parser/parser.nit:2050 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2040);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2050);
   }
-  /* ./parser//parser.nit:2041 */
+  /* parser/parser.nit:2051 */
   fra.me.REG[3] = NEW_ANoImport_parser___parser_prod___ANoImport___init_anoimport(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:2046 */
+  /* parser/parser.nit:2056 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:2047 */
+  /* parser/parser.nit:2057 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2047);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2057);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -8268,7 +8334,7 @@ void parser___ReduceAction35___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2052;
+  fra.me.line = 2062;
   fra.me.meth = LOCATE_parser___ReduceAction35___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -8280,19 +8346,19 @@ void parser___ReduceAction35___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2054 */
+  /* parser/parser.nit:2064 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2055 */
+  /* parser/parser.nit:2065 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2056 */
+  /* parser/parser.nit:2066 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2058 */
+  /* parser/parser.nit:2068 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast nullable APropdef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2058);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2068);
   }
-  /* ./parser//parser.nit:2059 */
+  /* parser/parser.nit:2069 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -8307,18 +8373,18 @@ void parser___ReduceAction35___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:2060 */
+    /* parser/parser.nit:2070 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:2062 */
+  /* parser/parser.nit:2072 */
   fra.me.REG[4] = NEW_AMainClassdef_parser___parser_prod___AMainClassdef___init_amainclassdef(fra.me.REG[4]);
-  /* ./parser//parser.nit:2065 */
+  /* parser/parser.nit:2075 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:2066 */
+  /* parser/parser.nit:2076 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2066);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2076);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -8332,7 +8398,7 @@ void parser___ReduceAction36___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2071;
+  fra.me.line = 2081;
   fra.me.meth = LOCATE_parser___ReduceAction36___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -8343,17 +8409,17 @@ void parser___ReduceAction36___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2073 */
+  /* parser/parser.nit:2083 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2074 */
+  /* parser/parser.nit:2084 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2075 */
+  /* parser/parser.nit:2085 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2076 */
+  /* parser/parser.nit:2086 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2076);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2086);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -8367,7 +8433,7 @@ void parser___ReduceAction37___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2081;
+  fra.me.line = 2091;
   fra.me.meth = LOCATE_parser___ReduceAction37___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -8379,27 +8445,27 @@ void parser___ReduceAction37___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2083 */
+  /* parser/parser.nit:2093 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2084 */
+  /* parser/parser.nit:2094 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2085 */
+  /* parser/parser.nit:2095 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2087 */
+  /* parser/parser.nit:2097 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2087);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2097);
   }
-  /* ./parser//parser.nit:2088 */
+  /* parser/parser.nit:2098 */
   fra.me.REG[3] = NEW_AMainMethPropdef_parser___parser_prod___AMainMethPropdef___init_amainmethpropdef(NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:2092 */
+  /* parser/parser.nit:2102 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:2093 */
+  /* parser/parser.nit:2103 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2093);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2103);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -8408,15 +8474,15 @@ void parser___ReduceAction37___action(val_t p0, val_t p1){
   return;
 }
 void parser___ReduceAction39___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2098;
+  fra.me.line = 2108;
   fra.me.meth = LOCATE_parser___ReduceAction39___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 10;
+  fra.me.REG_size = 11;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -8428,63 +8494,70 @@ void parser___ReduceAction39___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[9] = NIT_NULL;
+  fra.me.REG[10] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2100 */
+  /* parser/parser.nit:2110 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2101 */
+  /* parser/parser.nit:2111 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2102 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2103 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2104 */
+  /* parser/parser.nit:2112 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2105 */
+  /* parser/parser.nit:2113 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2106 */
+  /* parser/parser.nit:2114 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2107 */
+  /* parser/parser.nit:2115 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2116 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2108 */
-  fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2109 */
+  /* parser/parser.nit:2117 */
+  fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2118 */
   fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2110 */
+  /* parser/parser.nit:2119 */
   fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2112 */
-  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
+  /* parser/parser.nit:2120 */
+  fra.me.REG[10] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:2122 */
+  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2112);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2122);
   }
-  /* ./parser//parser.nit:2114 */
-  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
+  /* parser/parser.nit:2124 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2114);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2124);
   }
-  /* ./parser//parser.nit:2116 */
-  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
+  /* parser/parser.nit:2126 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2116);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2126);
   }
-  /* ./parser//parser.nit:2118 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
+  /* parser/parser.nit:2128 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2118);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2128);
   }
-  /* ./parser//parser.nit:2119 */
-  fra.me.REG[9] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[6], NIT_NULL, fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], fra.me.REG[7], fra.me.REG[8], fra.me.REG[9]);
-  /* ./parser//parser.nit:2129 */
-  fra.me.REG[2] = fra.me.REG[9];
-  /* ./parser//parser.nit:2130 */
+  /* parser/parser.nit:2130 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2130);
+  }
+  /* parser/parser.nit:2131 */
+  fra.me.REG[3] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[8], fra.me.REG[9], fra.me.REG[10], fra.me.REG[3]);
+  /* parser/parser.nit:2142 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:2143 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2130);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2143);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -8493,15 +8566,15 @@ void parser___ReduceAction39___action(val_t p0, val_t p1){
   return;
 }
 void parser___ReduceAction40___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2135;
+  fra.me.line = 2148;
   fra.me.meth = LOCATE_parser___ReduceAction40___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 11;
+  fra.me.REG_size = 12;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -8514,71 +8587,78 @@ void parser___ReduceAction40___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[10] = NIT_NULL;
+  fra.me.REG[11] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2137 */
+  /* parser/parser.nit:2150 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2138 */
+  /* parser/parser.nit:2151 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2139 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2140 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2141 */
+  /* parser/parser.nit:2152 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2142 */
+  /* parser/parser.nit:2153 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2143 */
+  /* parser/parser.nit:2154 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2144 */
+  /* parser/parser.nit:2155 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2156 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2145 */
+  /* parser/parser.nit:2157 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2146 */
-  fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2147 */
+  /* parser/parser.nit:2158 */
+  fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2159 */
   fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2148 */
+  /* parser/parser.nit:2160 */
   fra.me.REG[10] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2150 */
-  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
+  /* parser/parser.nit:2161 */
+  fra.me.REG[11] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:2163 */
+  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2150);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2163);
   }
-  /* ./parser//parser.nit:2152 */
-  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
+  /* parser/parser.nit:2165 */
+  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2152);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2165);
   }
-  /* ./parser//parser.nit:2154 */
-  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
+  /* parser/parser.nit:2167 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2154);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2167);
   }
-  /* ./parser//parser.nit:2156 */
-  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
+  /* parser/parser.nit:2169 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2156);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2169);
   }
-  /* ./parser//parser.nit:2158 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
+  /* parser/parser.nit:2171 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2171);
+  }
+  /* parser/parser.nit:2173 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2158);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2173);
   }
-  /* ./parser//parser.nit:2159 */
-  fra.me.REG[10] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], fra.me.REG[8], fra.me.REG[9], fra.me.REG[10]);
-  /* ./parser//parser.nit:2169 */
-  fra.me.REG[2] = fra.me.REG[10];
-  /* ./parser//parser.nit:2170 */
+  /* parser/parser.nit:2174 */
+  fra.me.REG[3] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[9], fra.me.REG[10], fra.me.REG[11], fra.me.REG[3]);
+  /* parser/parser.nit:2185 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:2186 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2170);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2186);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -8587,15 +8667,15 @@ void parser___ReduceAction40___action(val_t p0, val_t p1){
   return;
 }
 void parser___ReduceAction41___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2175;
+  fra.me.line = 2191;
   fra.me.meth = LOCATE_parser___ReduceAction41___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 11;
+  fra.me.REG_size = 12;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -8608,74 +8688,81 @@ void parser___ReduceAction41___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[10] = NIT_NULL;
+  fra.me.REG[11] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2177 */
+  /* parser/parser.nit:2193 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2178 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2179 */
+  /* parser/parser.nit:2194 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2180 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2181 */
+  /* parser/parser.nit:2195 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2182 */
-  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2183 */
+  /* parser/parser.nit:2196 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2197 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2184 */
+  /* parser/parser.nit:2198 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2199 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2185 */
+  /* parser/parser.nit:2200 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2186 */
-  fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2187 */
+  /* parser/parser.nit:2201 */
+  fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2202 */
   fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2188 */
+  /* parser/parser.nit:2203 */
   fra.me.REG[10] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2190 */
-  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
+  /* parser/parser.nit:2204 */
+  fra.me.REG[11] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:2206 */
+  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2190);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2206);
   }
-  /* ./parser//parser.nit:2192 */
-  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
+  /* parser/parser.nit:2208 */
+  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2192);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2208);
   }
-  /* ./parser//parser.nit:2194 */
-  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
+  /* parser/parser.nit:2210 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2194);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2210);
   }
-  /* ./parser//parser.nit:2196 */
-  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
+  /* parser/parser.nit:2212 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2196);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2212);
   }
-  /* ./parser//parser.nit:2198 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:2214 */
+  REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2198);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2214);
   }
-  /* ./parser//parser.nit:2199 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[3]);
-  fra.me.REG[8] = fra.me.REG[3];
-  /* ./parser//parser.nit:2200 */
-  fra.me.REG[10] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[8], fra.me.REG[9], fra.me.REG[10]);
-  /* ./parser//parser.nit:2210 */
-  fra.me.REG[2] = fra.me.REG[10];
-  /* ./parser//parser.nit:2211 */
+  /* parser/parser.nit:2215 */
+  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[4]);
+  fra.me.REG[9] = fra.me.REG[4];
+  /* parser/parser.nit:2217 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2217);
+  }
+  /* parser/parser.nit:2218 */
+  fra.me.REG[3] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[9], fra.me.REG[10], fra.me.REG[11], fra.me.REG[3]);
+  /* parser/parser.nit:2229 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:2230 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2211);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2230);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -8684,15 +8771,15 @@ void parser___ReduceAction41___action(val_t p0, val_t p1){
   return;
 }
 void parser___ReduceAction42___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2216;
+  fra.me.line = 2235;
   fra.me.meth = LOCATE_parser___ReduceAction42___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 12;
+  fra.me.REG_size = 13;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -8706,82 +8793,89 @@ void parser___ReduceAction42___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[11] = NIT_NULL;
+  fra.me.REG[12] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2218 */
+  /* parser/parser.nit:2237 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2219 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2220 */
+  /* parser/parser.nit:2238 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2221 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2222 */
+  /* parser/parser.nit:2239 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2223 */
-  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2224 */
+  /* parser/parser.nit:2240 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2241 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2225 */
+  /* parser/parser.nit:2242 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2243 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2226 */
+  /* parser/parser.nit:2244 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2227 */
+  /* parser/parser.nit:2245 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2228 */
-  fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2229 */
+  /* parser/parser.nit:2246 */
+  fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2247 */
   fra.me.REG[10] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2230 */
+  /* parser/parser.nit:2248 */
   fra.me.REG[11] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2232 */
-  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
+  /* parser/parser.nit:2249 */
+  fra.me.REG[12] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:2251 */
+  REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2232);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2251);
   }
-  /* ./parser//parser.nit:2234 */
-  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
+  /* parser/parser.nit:2253 */
+  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2234);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2253);
   }
-  /* ./parser//parser.nit:2236 */
-  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
+  /* parser/parser.nit:2255 */
+  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2236);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2255);
   }
-  /* ./parser//parser.nit:2238 */
-  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
+  /* parser/parser.nit:2257 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2238);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2257);
   }
-  /* ./parser//parser.nit:2240 */
-  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
+  /* parser/parser.nit:2259 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2240);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2259);
   }
-  /* ./parser//parser.nit:2242 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:2261 */
+  REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2242);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2261);
   }
-  /* ./parser//parser.nit:2243 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[3]);
-  fra.me.REG[9] = fra.me.REG[3];
-  /* ./parser//parser.nit:2244 */
-  fra.me.REG[11] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[9], fra.me.REG[10], fra.me.REG[11]);
-  /* ./parser//parser.nit:2254 */
-  fra.me.REG[2] = fra.me.REG[11];
-  /* ./parser//parser.nit:2255 */
+  /* parser/parser.nit:2262 */
+  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[4]);
+  fra.me.REG[10] = fra.me.REG[4];
+  /* parser/parser.nit:2264 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2264);
+  }
+  /* parser/parser.nit:2265 */
+  fra.me.REG[3] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[10], fra.me.REG[11], fra.me.REG[12], fra.me.REG[3]);
+  /* parser/parser.nit:2276 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:2277 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2255);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2277);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -8790,15 +8884,15 @@ void parser___ReduceAction42___action(val_t p0, val_t p1){
   return;
 }
 void parser___ReduceAction43___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2260;
+  fra.me.line = 2282;
   fra.me.meth = LOCATE_parser___ReduceAction43___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 11;
+  fra.me.REG_size = 12;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -8811,74 +8905,81 @@ void parser___ReduceAction43___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[10] = NIT_NULL;
+  fra.me.REG[11] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2262 */
+  /* parser/parser.nit:2284 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2263 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2264 */
+  /* parser/parser.nit:2285 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2265 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2266 */
+  /* parser/parser.nit:2286 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2267 */
-  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2268 */
+  /* parser/parser.nit:2287 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2288 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2269 */
+  /* parser/parser.nit:2289 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2290 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2270 */
+  /* parser/parser.nit:2291 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2271 */
-  fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2272 */
+  /* parser/parser.nit:2292 */
+  fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2293 */
   fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2273 */
+  /* parser/parser.nit:2294 */
   fra.me.REG[10] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2275 */
-  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
+  /* parser/parser.nit:2295 */
+  fra.me.REG[11] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:2297 */
+  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2275);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2297);
   }
-  /* ./parser//parser.nit:2277 */
-  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
+  /* parser/parser.nit:2299 */
+  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2277);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2299);
   }
-  /* ./parser//parser.nit:2279 */
-  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
+  /* parser/parser.nit:2301 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2279);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2301);
   }
-  /* ./parser//parser.nit:2281 */
-  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
+  /* parser/parser.nit:2303 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2281);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2303);
   }
-  /* ./parser//parser.nit:2283 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:2305 */
+  REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2283);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2305);
   }
-  /* ./parser//parser.nit:2284 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[3]);
-  fra.me.REG[9] = fra.me.REG[3];
-  /* ./parser//parser.nit:2285 */
-  fra.me.REG[10] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[8], fra.me.REG[9], fra.me.REG[10]);
-  /* ./parser//parser.nit:2295 */
-  fra.me.REG[2] = fra.me.REG[10];
-  /* ./parser//parser.nit:2296 */
+  /* parser/parser.nit:2306 */
+  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[4]);
+  fra.me.REG[10] = fra.me.REG[4];
+  /* parser/parser.nit:2308 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2308);
+  }
+  /* parser/parser.nit:2309 */
+  fra.me.REG[3] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[9], fra.me.REG[10], fra.me.REG[11], fra.me.REG[3]);
+  /* parser/parser.nit:2320 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:2321 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2296);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2321);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -8887,15 +8988,15 @@ void parser___ReduceAction43___action(val_t p0, val_t p1){
   return;
 }
 void parser___ReduceAction44___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2301;
+  fra.me.line = 2326;
   fra.me.meth = LOCATE_parser___ReduceAction44___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 12;
+  fra.me.REG_size = 13;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -8909,82 +9010,89 @@ void parser___ReduceAction44___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[11] = NIT_NULL;
+  fra.me.REG[12] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2303 */
+  /* parser/parser.nit:2328 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2304 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2305 */
+  /* parser/parser.nit:2329 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2306 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2307 */
+  /* parser/parser.nit:2330 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2308 */
-  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2309 */
+  /* parser/parser.nit:2331 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2332 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2310 */
+  /* parser/parser.nit:2333 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2334 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2311 */
+  /* parser/parser.nit:2335 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2312 */
+  /* parser/parser.nit:2336 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2313 */
-  fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2314 */
+  /* parser/parser.nit:2337 */
+  fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2338 */
   fra.me.REG[10] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2315 */
+  /* parser/parser.nit:2339 */
   fra.me.REG[11] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2317 */
-  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
+  /* parser/parser.nit:2340 */
+  fra.me.REG[12] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:2342 */
+  REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2317);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2342);
   }
-  /* ./parser//parser.nit:2319 */
-  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
+  /* parser/parser.nit:2344 */
+  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2319);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2344);
   }
-  /* ./parser//parser.nit:2321 */
-  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
+  /* parser/parser.nit:2346 */
+  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2321);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2346);
   }
-  /* ./parser//parser.nit:2323 */
-  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
+  /* parser/parser.nit:2348 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2323);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2348);
   }
-  /* ./parser//parser.nit:2325 */
-  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
+  /* parser/parser.nit:2350 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2325);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2350);
   }
-  /* ./parser//parser.nit:2327 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:2352 */
+  REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2352);
+  }
+  /* parser/parser.nit:2353 */
+  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[4]);
+  fra.me.REG[11] = fra.me.REG[4];
+  /* parser/parser.nit:2355 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2327);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2355);
   }
-  /* ./parser//parser.nit:2328 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[3]);
-  fra.me.REG[10] = fra.me.REG[3];
-  /* ./parser//parser.nit:2329 */
-  fra.me.REG[11] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[9], fra.me.REG[10], fra.me.REG[11]);
-  /* ./parser//parser.nit:2339 */
-  fra.me.REG[2] = fra.me.REG[11];
-  /* ./parser//parser.nit:2340 */
+  /* parser/parser.nit:2356 */
+  fra.me.REG[3] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[10], fra.me.REG[11], fra.me.REG[12], fra.me.REG[3]);
+  /* parser/parser.nit:2367 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:2368 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2340);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2368);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -8993,15 +9101,15 @@ void parser___ReduceAction44___action(val_t p0, val_t p1){
   return;
 }
 void parser___ReduceAction45___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2345;
+  fra.me.line = 2373;
   fra.me.meth = LOCATE_parser___ReduceAction45___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 12;
+  fra.me.REG_size = 13;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -9015,85 +9123,92 @@ void parser___ReduceAction45___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[11] = NIT_NULL;
+  fra.me.REG[12] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2347 */
+  /* parser/parser.nit:2375 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2348 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2349 */
+  /* parser/parser.nit:2376 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2350 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2351 */
+  /* parser/parser.nit:2377 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2378 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2352 */
+  /* parser/parser.nit:2379 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2353 */
+  /* parser/parser.nit:2380 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2354 */
-  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2355 */
+  /* parser/parser.nit:2381 */
+  fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2382 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2356 */
+  /* parser/parser.nit:2383 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2357 */
-  fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2358 */
+  /* parser/parser.nit:2384 */
+  fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2385 */
   fra.me.REG[10] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2359 */
+  /* parser/parser.nit:2386 */
   fra.me.REG[11] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2361 */
-  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
+  /* parser/parser.nit:2387 */
+  fra.me.REG[12] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:2389 */
+  REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2361);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2389);
   }
-  /* ./parser//parser.nit:2363 */
-  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
+  /* parser/parser.nit:2391 */
+  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2363);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2391);
   }
-  /* ./parser//parser.nit:2365 */
-  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
+  /* parser/parser.nit:2393 */
+  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2365);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2393);
   }
-  /* ./parser//parser.nit:2367 */
-  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
+  /* parser/parser.nit:2395 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2395);
+  }
+  /* parser/parser.nit:2397 */
+  REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2367);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2397);
   }
-  /* ./parser//parser.nit:2369 */
+  /* parser/parser.nit:2398 */
+  fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[5]);
+  fra.me.REG[10] = fra.me.REG[5];
+  /* parser/parser.nit:2400 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2369);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2400);
   }
-  /* ./parser//parser.nit:2370 */
-  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[4]);
-  fra.me.REG[9] = fra.me.REG[4];
-  /* ./parser//parser.nit:2372 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:2401 */
+  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[4]);
+  fra.me.REG[11] = fra.me.REG[4];
+  /* parser/parser.nit:2403 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2372);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2403);
   }
-  /* ./parser//parser.nit:2373 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[3]);
-  fra.me.REG[10] = fra.me.REG[3];
-  /* ./parser//parser.nit:2374 */
-  fra.me.REG[11] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[9], fra.me.REG[10], fra.me.REG[11]);
-  /* ./parser//parser.nit:2384 */
-  fra.me.REG[2] = fra.me.REG[11];
-  /* ./parser//parser.nit:2385 */
+  /* parser/parser.nit:2404 */
+  fra.me.REG[3] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[9], NIT_NULL, fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[10], fra.me.REG[11], fra.me.REG[12], fra.me.REG[3]);
+  /* parser/parser.nit:2415 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:2416 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2385);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2416);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -9102,15 +9217,15 @@ void parser___ReduceAction45___action(val_t p0, val_t p1){
   return;
 }
 void parser___ReduceAction46___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[13];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2390;
+  fra.me.line = 2421;
   fra.me.meth = LOCATE_parser___ReduceAction46___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 13;
+  fra.me.REG_size = 14;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -9125,93 +9240,100 @@ void parser___ReduceAction46___action(val_t p0, val_t p1){
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[11] = NIT_NULL;
   fra.me.REG[12] = NIT_NULL;
+  fra.me.REG[13] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2392 */
+  /* parser/parser.nit:2423 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2393 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2394 */
+  /* parser/parser.nit:2424 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2395 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2396 */
+  /* parser/parser.nit:2425 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2426 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2397 */
+  /* parser/parser.nit:2427 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2398 */
+  /* parser/parser.nit:2428 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2399 */
-  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2400 */
+  /* parser/parser.nit:2429 */
+  fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2430 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2401 */
+  /* parser/parser.nit:2431 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2402 */
+  /* parser/parser.nit:2432 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2403 */
-  fra.me.REG[10] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2404 */
+  /* parser/parser.nit:2433 */
+  fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2434 */
   fra.me.REG[11] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2405 */
+  /* parser/parser.nit:2435 */
   fra.me.REG[12] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2407 */
-  REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
+  /* parser/parser.nit:2436 */
+  fra.me.REG[13] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:2438 */
+  REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2407);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2438);
   }
-  /* ./parser//parser.nit:2409 */
-  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
+  /* parser/parser.nit:2440 */
+  REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2409);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2440);
   }
-  /* ./parser//parser.nit:2411 */
-  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
+  /* parser/parser.nit:2442 */
+  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2411);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2442);
   }
-  /* ./parser//parser.nit:2413 */
-  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
+  /* parser/parser.nit:2444 */
+  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2413);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2444);
   }
-  /* ./parser//parser.nit:2415 */
-  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
+  /* parser/parser.nit:2446 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2446);
+  }
+  /* parser/parser.nit:2448 */
+  REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2415);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2448);
   }
-  /* ./parser//parser.nit:2417 */
+  /* parser/parser.nit:2449 */
+  fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[5]);
+  fra.me.REG[11] = fra.me.REG[5];
+  /* parser/parser.nit:2451 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2417);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2451);
   }
-  /* ./parser//parser.nit:2418 */
-  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[4]);
-  fra.me.REG[10] = fra.me.REG[4];
-  /* ./parser//parser.nit:2420 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:2452 */
+  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[12], fra.me.REG[4]);
+  fra.me.REG[12] = fra.me.REG[4];
+  /* parser/parser.nit:2454 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2420);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2454);
   }
-  /* ./parser//parser.nit:2421 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[3]);
-  fra.me.REG[11] = fra.me.REG[3];
-  /* ./parser//parser.nit:2422 */
-  fra.me.REG[12] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[10], fra.me.REG[11], fra.me.REG[12]);
-  /* ./parser//parser.nit:2432 */
-  fra.me.REG[2] = fra.me.REG[12];
-  /* ./parser//parser.nit:2433 */
+  /* parser/parser.nit:2455 */
+  fra.me.REG[3] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[10], fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[11], fra.me.REG[12], fra.me.REG[13], fra.me.REG[3]);
+  /* parser/parser.nit:2466 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:2467 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2433);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2467);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -9220,15 +9342,15 @@ void parser___ReduceAction46___action(val_t p0, val_t p1){
   return;
 }
 void parser___ReduceAction47___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2438;
+  fra.me.line = 2472;
   fra.me.meth = LOCATE_parser___ReduceAction47___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 11;
+  fra.me.REG_size = 12;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -9241,74 +9363,81 @@ void parser___ReduceAction47___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[10] = NIT_NULL;
+  fra.me.REG[11] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2440 */
-  fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2441 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2442 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2443 */
+  /* parser/parser.nit:2474 */
+  fra.me.REG[2] = NIT_NULL;
+  /* parser/parser.nit:2475 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2444 */
+  /* parser/parser.nit:2476 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2445 */
-  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2446 */
+  /* parser/parser.nit:2477 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2478 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2447 */
+  /* parser/parser.nit:2479 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2480 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2448 */
+  /* parser/parser.nit:2481 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2449 */
-  fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2450 */
+  /* parser/parser.nit:2482 */
+  fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2483 */
   fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2451 */
+  /* parser/parser.nit:2484 */
   fra.me.REG[10] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2453 */
-  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
+  /* parser/parser.nit:2485 */
+  fra.me.REG[11] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:2487 */
+  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2453);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2487);
   }
-  /* ./parser//parser.nit:2455 */
-  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
+  /* parser/parser.nit:2489 */
+  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2455);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2489);
   }
-  /* ./parser//parser.nit:2457 */
-  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
+  /* parser/parser.nit:2491 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2457);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2491);
   }
-  /* ./parser//parser.nit:2459 */
-  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
+  /* parser/parser.nit:2493 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2459);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2493);
   }
-  /* ./parser//parser.nit:2461 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:2495 */
+  REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2495);
+  }
+  /* parser/parser.nit:2496 */
+  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[4]);
+  fra.me.REG[11] = fra.me.REG[4];
+  /* parser/parser.nit:2498 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2461);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2498);
   }
-  /* ./parser//parser.nit:2462 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[3]);
-  fra.me.REG[10] = fra.me.REG[3];
-  /* ./parser//parser.nit:2463 */
-  fra.me.REG[10] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[8], fra.me.REG[9], fra.me.REG[10]);
-  /* ./parser//parser.nit:2473 */
-  fra.me.REG[2] = fra.me.REG[10];
-  /* ./parser//parser.nit:2474 */
+  /* parser/parser.nit:2499 */
+  fra.me.REG[3] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[9], fra.me.REG[10], fra.me.REG[11], fra.me.REG[3]);
+  /* parser/parser.nit:2510 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:2511 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2474);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2511);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -9317,15 +9446,15 @@ void parser___ReduceAction47___action(val_t p0, val_t p1){
   return;
 }
 void parser___ReduceAction48___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2479;
+  fra.me.line = 2516;
   fra.me.meth = LOCATE_parser___ReduceAction48___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 12;
+  fra.me.REG_size = 13;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -9339,82 +9468,89 @@ void parser___ReduceAction48___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[11] = NIT_NULL;
+  fra.me.REG[12] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2481 */
+  /* parser/parser.nit:2518 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2482 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2483 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2484 */
+  /* parser/parser.nit:2519 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2485 */
+  /* parser/parser.nit:2520 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2486 */
-  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2487 */
+  /* parser/parser.nit:2521 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2522 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2488 */
+  /* parser/parser.nit:2523 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2489 */
+  /* parser/parser.nit:2524 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2525 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2490 */
+  /* parser/parser.nit:2526 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2491 */
-  fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2492 */
+  /* parser/parser.nit:2527 */
+  fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2528 */
   fra.me.REG[10] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2493 */
+  /* parser/parser.nit:2529 */
   fra.me.REG[11] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2495 */
-  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
+  /* parser/parser.nit:2530 */
+  fra.me.REG[12] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:2532 */
+  REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2495);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2532);
   }
-  /* ./parser//parser.nit:2497 */
-  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
+  /* parser/parser.nit:2534 */
+  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2497);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2534);
   }
-  /* ./parser//parser.nit:2499 */
-  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
+  /* parser/parser.nit:2536 */
+  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2499);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2536);
   }
-  /* ./parser//parser.nit:2501 */
-  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
+  /* parser/parser.nit:2538 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2501);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2538);
   }
-  /* ./parser//parser.nit:2503 */
-  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
+  /* parser/parser.nit:2540 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2503);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2540);
   }
-  /* ./parser//parser.nit:2505 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:2542 */
+  REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2542);
+  }
+  /* parser/parser.nit:2543 */
+  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[12], fra.me.REG[4]);
+  fra.me.REG[12] = fra.me.REG[4];
+  /* parser/parser.nit:2545 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2505);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2545);
   }
-  /* ./parser//parser.nit:2506 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[3]);
-  fra.me.REG[11] = fra.me.REG[3];
-  /* ./parser//parser.nit:2507 */
-  fra.me.REG[11] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[9], fra.me.REG[10], fra.me.REG[11]);
-  /* ./parser//parser.nit:2517 */
-  fra.me.REG[2] = fra.me.REG[11];
-  /* ./parser//parser.nit:2518 */
+  /* parser/parser.nit:2546 */
+  fra.me.REG[3] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[10], fra.me.REG[11], fra.me.REG[12], fra.me.REG[3]);
+  /* parser/parser.nit:2557 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:2558 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2518);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2558);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -9423,15 +9559,15 @@ void parser___ReduceAction48___action(val_t p0, val_t p1){
   return;
 }
 void parser___ReduceAction49___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2523;
+  fra.me.line = 2563;
   fra.me.meth = LOCATE_parser___ReduceAction49___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 12;
+  fra.me.REG_size = 13;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -9445,85 +9581,92 @@ void parser___ReduceAction49___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[11] = NIT_NULL;
+  fra.me.REG[12] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2525 */
+  /* parser/parser.nit:2565 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2526 */
+  /* parser/parser.nit:2566 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2527 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2528 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2529 */
+  /* parser/parser.nit:2567 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2530 */
+  /* parser/parser.nit:2568 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2569 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2531 */
-  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2532 */
+  /* parser/parser.nit:2570 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2533 */
+  /* parser/parser.nit:2571 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2534 */
+  /* parser/parser.nit:2572 */
+  fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2573 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2535 */
-  fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2536 */
+  /* parser/parser.nit:2574 */
+  fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2575 */
   fra.me.REG[10] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2537 */
+  /* parser/parser.nit:2576 */
   fra.me.REG[11] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2539 */
-  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
+  /* parser/parser.nit:2577 */
+  fra.me.REG[12] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:2579 */
+  REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2539);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2579);
   }
-  /* ./parser//parser.nit:2541 */
-  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
+  /* parser/parser.nit:2581 */
+  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2541);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2581);
   }
-  /* ./parser//parser.nit:2543 */
-  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
+  /* parser/parser.nit:2583 */
+  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2543);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2583);
   }
-  /* ./parser//parser.nit:2545 */
-  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
+  /* parser/parser.nit:2585 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2545);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2585);
+  }
+  /* parser/parser.nit:2587 */
+  REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2587);
   }
-  /* ./parser//parser.nit:2547 */
+  /* parser/parser.nit:2588 */
+  fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[5]);
+  fra.me.REG[10] = fra.me.REG[5];
+  /* parser/parser.nit:2590 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2547);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2590);
   }
-  /* ./parser//parser.nit:2548 */
-  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[4]);
-  fra.me.REG[9] = fra.me.REG[4];
-  /* ./parser//parser.nit:2550 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:2591 */
+  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[12], fra.me.REG[4]);
+  fra.me.REG[12] = fra.me.REG[4];
+  /* parser/parser.nit:2593 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2550);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2593);
   }
-  /* ./parser//parser.nit:2551 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[3]);
-  fra.me.REG[11] = fra.me.REG[3];
-  /* ./parser//parser.nit:2552 */
-  fra.me.REG[11] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[9], fra.me.REG[10], fra.me.REG[11]);
-  /* ./parser//parser.nit:2562 */
-  fra.me.REG[2] = fra.me.REG[11];
-  /* ./parser//parser.nit:2563 */
+  /* parser/parser.nit:2594 */
+  fra.me.REG[3] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[9], NIT_NULL, fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[10], fra.me.REG[11], fra.me.REG[12], fra.me.REG[3]);
+  /* parser/parser.nit:2605 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:2606 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2563);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2606);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -9532,15 +9675,15 @@ void parser___ReduceAction49___action(val_t p0, val_t p1){
   return;
 }
 void parser___ReduceAction50___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[13];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2568;
+  fra.me.line = 2611;
   fra.me.meth = LOCATE_parser___ReduceAction50___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 13;
+  fra.me.REG_size = 14;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -9555,93 +9698,100 @@ void parser___ReduceAction50___action(val_t p0, val_t p1){
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[11] = NIT_NULL;
   fra.me.REG[12] = NIT_NULL;
+  fra.me.REG[13] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2570 */
+  /* parser/parser.nit:2613 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2571 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2572 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2573 */
+  /* parser/parser.nit:2614 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2574 */
+  /* parser/parser.nit:2615 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2575 */
+  /* parser/parser.nit:2616 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2617 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2576 */
-  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2577 */
+  /* parser/parser.nit:2618 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2578 */
+  /* parser/parser.nit:2619 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2579 */
+  /* parser/parser.nit:2620 */
+  fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2621 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2580 */
+  /* parser/parser.nit:2622 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2581 */
-  fra.me.REG[10] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2582 */
+  /* parser/parser.nit:2623 */
+  fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2624 */
   fra.me.REG[11] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2583 */
+  /* parser/parser.nit:2625 */
   fra.me.REG[12] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2585 */
-  REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
+  /* parser/parser.nit:2626 */
+  fra.me.REG[13] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:2628 */
+  REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2585);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2628);
   }
-  /* ./parser//parser.nit:2587 */
-  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
+  /* parser/parser.nit:2630 */
+  REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2587);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2630);
   }
-  /* ./parser//parser.nit:2589 */
-  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
+  /* parser/parser.nit:2632 */
+  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2589);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2632);
   }
-  /* ./parser//parser.nit:2591 */
-  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
+  /* parser/parser.nit:2634 */
+  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2591);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2634);
   }
-  /* ./parser//parser.nit:2593 */
-  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
+  /* parser/parser.nit:2636 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2593);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2636);
+  }
+  /* parser/parser.nit:2638 */
+  REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2638);
   }
-  /* ./parser//parser.nit:2595 */
+  /* parser/parser.nit:2639 */
+  fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[5]);
+  fra.me.REG[11] = fra.me.REG[5];
+  /* parser/parser.nit:2641 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2595);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2641);
   }
-  /* ./parser//parser.nit:2596 */
-  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[4]);
-  fra.me.REG[10] = fra.me.REG[4];
-  /* ./parser//parser.nit:2598 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:2642 */
+  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[13], fra.me.REG[4]);
+  fra.me.REG[13] = fra.me.REG[4];
+  /* parser/parser.nit:2644 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2598);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2644);
   }
-  /* ./parser//parser.nit:2599 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[12], fra.me.REG[3]);
-  fra.me.REG[12] = fra.me.REG[3];
-  /* ./parser//parser.nit:2600 */
-  fra.me.REG[12] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[10], fra.me.REG[11], fra.me.REG[12]);
-  /* ./parser//parser.nit:2610 */
-  fra.me.REG[2] = fra.me.REG[12];
-  /* ./parser//parser.nit:2611 */
+  /* parser/parser.nit:2645 */
+  fra.me.REG[3] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[10], fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[11], fra.me.REG[12], fra.me.REG[13], fra.me.REG[3]);
+  /* parser/parser.nit:2656 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:2657 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2611);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2657);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -9650,15 +9800,15 @@ void parser___ReduceAction50___action(val_t p0, val_t p1){
   return;
 }
 void parser___ReduceAction51___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2616;
+  fra.me.line = 2662;
   fra.me.meth = LOCATE_parser___ReduceAction51___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 12;
+  fra.me.REG_size = 13;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -9672,85 +9822,92 @@ void parser___ReduceAction51___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[11] = NIT_NULL;
+  fra.me.REG[12] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2618 */
+  /* parser/parser.nit:2664 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2619 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2620 */
+  /* parser/parser.nit:2665 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2621 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2622 */
+  /* parser/parser.nit:2666 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2667 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2623 */
+  /* parser/parser.nit:2668 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2624 */
+  /* parser/parser.nit:2669 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2625 */
-  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2626 */
+  /* parser/parser.nit:2670 */
+  fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2671 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2627 */
+  /* parser/parser.nit:2672 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2628 */
-  fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2629 */
+  /* parser/parser.nit:2673 */
+  fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2674 */
   fra.me.REG[10] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2630 */
+  /* parser/parser.nit:2675 */
   fra.me.REG[11] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2632 */
-  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
+  /* parser/parser.nit:2676 */
+  fra.me.REG[12] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:2678 */
+  REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2632);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2678);
   }
-  /* ./parser//parser.nit:2634 */
-  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
+  /* parser/parser.nit:2680 */
+  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2634);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2680);
   }
-  /* ./parser//parser.nit:2636 */
-  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
+  /* parser/parser.nit:2682 */
+  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2636);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2682);
   }
-  /* ./parser//parser.nit:2638 */
-  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
+  /* parser/parser.nit:2684 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2638);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2684);
+  }
+  /* parser/parser.nit:2686 */
+  REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2686);
   }
-  /* ./parser//parser.nit:2640 */
+  /* parser/parser.nit:2687 */
+  fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[5]);
+  fra.me.REG[11] = fra.me.REG[5];
+  /* parser/parser.nit:2689 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2640);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2689);
   }
-  /* ./parser//parser.nit:2641 */
-  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[4]);
-  fra.me.REG[10] = fra.me.REG[4];
-  /* ./parser//parser.nit:2643 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:2690 */
+  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[12], fra.me.REG[4]);
+  fra.me.REG[12] = fra.me.REG[4];
+  /* parser/parser.nit:2692 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2643);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2692);
   }
-  /* ./parser//parser.nit:2644 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[3]);
-  fra.me.REG[11] = fra.me.REG[3];
-  /* ./parser//parser.nit:2645 */
-  fra.me.REG[11] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[9], fra.me.REG[10], fra.me.REG[11]);
-  /* ./parser//parser.nit:2655 */
-  fra.me.REG[2] = fra.me.REG[11];
-  /* ./parser//parser.nit:2656 */
+  /* parser/parser.nit:2693 */
+  fra.me.REG[3] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[9], NIT_NULL, fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[10], fra.me.REG[11], fra.me.REG[12], fra.me.REG[3]);
+  /* parser/parser.nit:2704 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:2705 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2656);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2705);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -9759,15 +9916,15 @@ void parser___ReduceAction51___action(val_t p0, val_t p1){
   return;
 }
 void parser___ReduceAction52___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[13];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2661;
+  fra.me.line = 2710;
   fra.me.meth = LOCATE_parser___ReduceAction52___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 13;
+  fra.me.REG_size = 14;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -9782,93 +9939,100 @@ void parser___ReduceAction52___action(val_t p0, val_t p1){
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[11] = NIT_NULL;
   fra.me.REG[12] = NIT_NULL;
+  fra.me.REG[13] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2663 */
+  /* parser/parser.nit:2712 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2664 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2665 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2666 */
+  /* parser/parser.nit:2713 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2667 */
+  /* parser/parser.nit:2714 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2668 */
+  /* parser/parser.nit:2715 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2716 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2669 */
-  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2670 */
+  /* parser/parser.nit:2717 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2671 */
+  /* parser/parser.nit:2718 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2672 */
+  /* parser/parser.nit:2719 */
+  fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2720 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2673 */
+  /* parser/parser.nit:2721 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2674 */
-  fra.me.REG[10] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2675 */
+  /* parser/parser.nit:2722 */
+  fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2723 */
   fra.me.REG[11] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2676 */
+  /* parser/parser.nit:2724 */
   fra.me.REG[12] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2678 */
-  REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
+  /* parser/parser.nit:2725 */
+  fra.me.REG[13] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:2727 */
+  REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2678);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2727);
   }
-  /* ./parser//parser.nit:2680 */
-  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
+  /* parser/parser.nit:2729 */
+  REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2680);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2729);
   }
-  /* ./parser//parser.nit:2682 */
-  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
+  /* parser/parser.nit:2731 */
+  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2682);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2731);
   }
-  /* ./parser//parser.nit:2684 */
-  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
+  /* parser/parser.nit:2733 */
+  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2684);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2733);
   }
-  /* ./parser//parser.nit:2686 */
-  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
+  /* parser/parser.nit:2735 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2686);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2735);
+  }
+  /* parser/parser.nit:2737 */
+  REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2737);
   }
-  /* ./parser//parser.nit:2688 */
+  /* parser/parser.nit:2738 */
+  fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[12], fra.me.REG[5]);
+  fra.me.REG[12] = fra.me.REG[5];
+  /* parser/parser.nit:2740 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2688);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2740);
   }
-  /* ./parser//parser.nit:2689 */
-  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[4]);
-  fra.me.REG[11] = fra.me.REG[4];
-  /* ./parser//parser.nit:2691 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:2741 */
+  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[13], fra.me.REG[4]);
+  fra.me.REG[13] = fra.me.REG[4];
+  /* parser/parser.nit:2743 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2691);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2743);
   }
-  /* ./parser//parser.nit:2692 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[12], fra.me.REG[3]);
-  fra.me.REG[12] = fra.me.REG[3];
-  /* ./parser//parser.nit:2693 */
-  fra.me.REG[12] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[10], fra.me.REG[11], fra.me.REG[12]);
-  /* ./parser//parser.nit:2703 */
-  fra.me.REG[2] = fra.me.REG[12];
-  /* ./parser//parser.nit:2704 */
+  /* parser/parser.nit:2744 */
+  fra.me.REG[3] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[10], fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[11], fra.me.REG[12], fra.me.REG[13], fra.me.REG[3]);
+  /* parser/parser.nit:2755 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:2756 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2704);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2756);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -9877,15 +10041,15 @@ void parser___ReduceAction52___action(val_t p0, val_t p1){
   return;
 }
 void parser___ReduceAction53___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[13];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2709;
+  fra.me.line = 2761;
   fra.me.meth = LOCATE_parser___ReduceAction53___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 13;
+  fra.me.REG_size = 14;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -9900,96 +10064,103 @@ void parser___ReduceAction53___action(val_t p0, val_t p1){
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[11] = NIT_NULL;
   fra.me.REG[12] = NIT_NULL;
+  fra.me.REG[13] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2711 */
+  /* parser/parser.nit:2763 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2712 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2713 */
+  /* parser/parser.nit:2764 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2714 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2715 */
+  /* parser/parser.nit:2765 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2766 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2716 */
+  /* parser/parser.nit:2767 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2717 */
+  /* parser/parser.nit:2768 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2718 */
+  /* parser/parser.nit:2769 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2719 */
-  fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2720 */
+  /* parser/parser.nit:2770 */
+  fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2771 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2721 */
+  /* parser/parser.nit:2772 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2722 */
-  fra.me.REG[10] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2723 */
+  /* parser/parser.nit:2773 */
+  fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2774 */
   fra.me.REG[11] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2724 */
+  /* parser/parser.nit:2775 */
   fra.me.REG[12] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2726 */
-  REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
+  /* parser/parser.nit:2776 */
+  fra.me.REG[13] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:2778 */
+  REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2726);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2778);
   }
-  /* ./parser//parser.nit:2728 */
-  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
+  /* parser/parser.nit:2780 */
+  REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2728);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2780);
   }
-  /* ./parser//parser.nit:2730 */
-  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
+  /* parser/parser.nit:2782 */
+  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2782);
+  }
+  /* parser/parser.nit:2784 */
+  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2730);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2784);
   }
-  /* ./parser//parser.nit:2732 */
-  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
+  /* parser/parser.nit:2786 */
+  REGB0 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2732);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2786);
   }
-  /* ./parser//parser.nit:2734 */
+  /* parser/parser.nit:2787 */
+  fra.me.REG[6] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[6]);
+  fra.me.REG[11] = fra.me.REG[6];
+  /* parser/parser.nit:2789 */
   REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2734);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2789);
   }
-  /* ./parser//parser.nit:2735 */
-  fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[10], fra.me.REG[5]);
-  fra.me.REG[10] = fra.me.REG[5];
-  /* ./parser//parser.nit:2737 */
+  /* parser/parser.nit:2790 */
+  fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[12], fra.me.REG[5]);
+  fra.me.REG[12] = fra.me.REG[5];
+  /* parser/parser.nit:2792 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2737);
-  }
-  /* ./parser//parser.nit:2738 */
-  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[4]);
-  fra.me.REG[11] = fra.me.REG[4];
-  /* ./parser//parser.nit:2740 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2792);
+  }
+  /* parser/parser.nit:2793 */
+  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[13], fra.me.REG[4]);
+  fra.me.REG[13] = fra.me.REG[4];
+  /* parser/parser.nit:2795 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2740);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2795);
   }
-  /* ./parser//parser.nit:2741 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[12], fra.me.REG[3]);
-  fra.me.REG[12] = fra.me.REG[3];
-  /* ./parser//parser.nit:2742 */
-  fra.me.REG[12] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[9], NIT_NULL, fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[10], fra.me.REG[11], fra.me.REG[12]);
-  /* ./parser//parser.nit:2752 */
-  fra.me.REG[2] = fra.me.REG[12];
-  /* ./parser//parser.nit:2753 */
+  /* parser/parser.nit:2796 */
+  fra.me.REG[3] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[10], NIT_NULL, fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[11], fra.me.REG[12], fra.me.REG[13], fra.me.REG[3]);
+  /* parser/parser.nit:2807 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:2808 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2753);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2808);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -9998,15 +10169,15 @@ void parser___ReduceAction53___action(val_t p0, val_t p1){
   return;
 }
 void parser___ReduceAction54___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[13];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[14];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2758;
+  fra.me.line = 2813;
   fra.me.meth = LOCATE_parser___ReduceAction54___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 14;
+  fra.me.REG_size = 15;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -10022,104 +10193,111 @@ void parser___ReduceAction54___action(val_t p0, val_t p1){
   fra.me.REG[11] = NIT_NULL;
   fra.me.REG[12] = NIT_NULL;
   fra.me.REG[13] = NIT_NULL;
+  fra.me.REG[14] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2760 */
+  /* parser/parser.nit:2815 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2761 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2762 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2763 */
+  /* parser/parser.nit:2816 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2764 */
+  /* parser/parser.nit:2817 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2765 */
+  /* parser/parser.nit:2818 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2819 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2766 */
+  /* parser/parser.nit:2820 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2767 */
-  fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2768 */
+  /* parser/parser.nit:2821 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2769 */
+  /* parser/parser.nit:2822 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2770 */
+  /* parser/parser.nit:2823 */
+  fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2824 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2771 */
+  /* parser/parser.nit:2825 */
   fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2772 */
-  fra.me.REG[11] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2773 */
+  /* parser/parser.nit:2826 */
+  fra.me.REG[11] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:2827 */
   fra.me.REG[12] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2774 */
+  /* parser/parser.nit:2828 */
   fra.me.REG[13] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2776 */
-  REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
+  /* parser/parser.nit:2829 */
+  fra.me.REG[14] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:2831 */
+  REGB0 = TAG_Bool((fra.me.REG[11]==NIT_NULL) || VAL_ISA(fra.me.REG[11], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2831);
+  }
+  /* parser/parser.nit:2833 */
+  REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2776);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2833);
   }
-  /* ./parser//parser.nit:2778 */
-  REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
+  /* parser/parser.nit:2835 */
+  REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2778);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2835);
   }
-  /* ./parser//parser.nit:2780 */
-  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
+  /* parser/parser.nit:2837 */
+  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2780);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2837);
   }
-  /* ./parser//parser.nit:2782 */
-  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast nullable AClasskind*/;
+  /* parser/parser.nit:2839 */
+  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2782);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2839);
   }
-  /* ./parser//parser.nit:2784 */
-  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
+  /* parser/parser.nit:2841 */
+  REGB0 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2784);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2841);
   }
-  /* ./parser//parser.nit:2786 */
+  /* parser/parser.nit:2842 */
+  fra.me.REG[6] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[12], fra.me.REG[6]);
+  fra.me.REG[12] = fra.me.REG[6];
+  /* parser/parser.nit:2844 */
   REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2786);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2844);
   }
-  /* ./parser//parser.nit:2787 */
-  fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[11], fra.me.REG[5]);
-  fra.me.REG[11] = fra.me.REG[5];
-  /* ./parser//parser.nit:2789 */
+  /* parser/parser.nit:2845 */
+  fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[13], fra.me.REG[5]);
+  fra.me.REG[13] = fra.me.REG[5];
+  /* parser/parser.nit:2847 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2789);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2847);
   }
-  /* ./parser//parser.nit:2790 */
-  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[12], fra.me.REG[4]);
-  fra.me.REG[12] = fra.me.REG[4];
-  /* ./parser//parser.nit:2792 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:2848 */
+  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[14], fra.me.REG[4]);
+  fra.me.REG[14] = fra.me.REG[4];
+  /* parser/parser.nit:2850 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2792);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2850);
   }
-  /* ./parser//parser.nit:2793 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[13], fra.me.REG[3]);
-  fra.me.REG[13] = fra.me.REG[3];
-  /* ./parser//parser.nit:2794 */
-  fra.me.REG[13] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[10], fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[11], fra.me.REG[12], fra.me.REG[13]);
-  /* ./parser//parser.nit:2804 */
-  fra.me.REG[2] = fra.me.REG[13];
-  /* ./parser//parser.nit:2805 */
+  /* parser/parser.nit:2851 */
+  fra.me.REG[3] = NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(fra.me.REG[11], fra.me.REG[10], fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[12], fra.me.REG[13], fra.me.REG[14], fra.me.REG[3]);
+  /* parser/parser.nit:2862 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:2863 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2805);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2863);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -10133,7 +10311,7 @@ void parser___ReduceAction55___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2810;
+  fra.me.line = 2868;
   fra.me.meth = LOCATE_parser___ReduceAction55___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -10144,25 +10322,25 @@ void parser___ReduceAction55___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2812 */
+  /* parser/parser.nit:2870 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2813 */
+  /* parser/parser.nit:2871 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2815 */
+  /* parser/parser.nit:2873 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwclass, ID_parser___parser_nodes___TKwclass)) /*cast nullable TKwclass*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2815);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2873);
   }
-  /* ./parser//parser.nit:2816 */
+  /* parser/parser.nit:2874 */
   fra.me.REG[3] = NEW_AConcreteClasskind_parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind(fra.me.REG[3]);
-  /* ./parser//parser.nit:2819 */
+  /* parser/parser.nit:2877 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:2820 */
+  /* parser/parser.nit:2878 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2820);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2878);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -10176,7 +10354,7 @@ void parser___ReduceAction56___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2825;
+  fra.me.line = 2883;
   fra.me.meth = LOCATE_parser___ReduceAction56___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -10188,33 +10366,33 @@ void parser___ReduceAction56___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2827 */
+  /* parser/parser.nit:2885 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2828 */
+  /* parser/parser.nit:2886 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2829 */
+  /* parser/parser.nit:2887 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2831 */
+  /* parser/parser.nit:2889 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwabstract, ID_parser___parser_nodes___TKwabstract)) /*cast nullable TKwabstract*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2831);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2889);
   }
-  /* ./parser//parser.nit:2833 */
+  /* parser/parser.nit:2891 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwclass, ID_parser___parser_nodes___TKwclass)) /*cast nullable TKwclass*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2833);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2891);
   }
-  /* ./parser//parser.nit:2834 */
+  /* parser/parser.nit:2892 */
   fra.me.REG[3] = NEW_AAbstractClasskind_parser___parser_prod___AAbstractClasskind___init_aabstractclasskind(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:2838 */
+  /* parser/parser.nit:2896 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:2839 */
+  /* parser/parser.nit:2897 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2839);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2897);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -10228,7 +10406,7 @@ void parser___ReduceAction57___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2844;
+  fra.me.line = 2902;
   fra.me.meth = LOCATE_parser___ReduceAction57___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -10239,25 +10417,25 @@ void parser___ReduceAction57___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2846 */
+  /* parser/parser.nit:2904 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2847 */
+  /* parser/parser.nit:2905 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2849 */
+  /* parser/parser.nit:2907 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwinterface, ID_parser___parser_nodes___TKwinterface)) /*cast nullable TKwinterface*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2849);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2907);
   }
-  /* ./parser//parser.nit:2850 */
+  /* parser/parser.nit:2908 */
   fra.me.REG[3] = NEW_AInterfaceClasskind_parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(fra.me.REG[3]);
-  /* ./parser//parser.nit:2853 */
+  /* parser/parser.nit:2911 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:2854 */
+  /* parser/parser.nit:2912 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2854);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2912);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -10271,7 +10449,7 @@ void parser___ReduceAction58___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2859;
+  fra.me.line = 2917;
   fra.me.meth = LOCATE_parser___ReduceAction58___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -10282,25 +10460,25 @@ void parser___ReduceAction58___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2861 */
+  /* parser/parser.nit:2919 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2862 */
+  /* parser/parser.nit:2920 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2864 */
+  /* parser/parser.nit:2922 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwenum, ID_parser___parser_nodes___TKwenum)) /*cast nullable TKwenum*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2864);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2922);
   }
-  /* ./parser//parser.nit:2865 */
+  /* parser/parser.nit:2923 */
   fra.me.REG[3] = NEW_AEnumClasskind_parser___parser_prod___AEnumClasskind___init_aenumclasskind(fra.me.REG[3]);
-  /* ./parser//parser.nit:2868 */
+  /* parser/parser.nit:2926 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:2869 */
+  /* parser/parser.nit:2927 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2869);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2927);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -10314,7 +10492,7 @@ void parser___ReduceAction59___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2874;
+  fra.me.line = 2932;
   fra.me.meth = LOCATE_parser___ReduceAction59___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -10325,25 +10503,25 @@ void parser___ReduceAction59___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2876 */
+  /* parser/parser.nit:2934 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2877 */
+  /* parser/parser.nit:2935 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2879 */
+  /* parser/parser.nit:2937 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwextern, ID_parser___parser_nodes___TKwextern)) /*cast nullable TKwextern*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2879);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2937);
   }
-  /* ./parser//parser.nit:2880 */
+  /* parser/parser.nit:2938 */
   fra.me.REG[3] = NEW_AExternClasskind_parser___parser_prod___AExternClasskind___init_aexternclasskind(fra.me.REG[3]);
-  /* ./parser//parser.nit:2883 */
+  /* parser/parser.nit:2941 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:2884 */
+  /* parser/parser.nit:2942 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2884);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2942);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -10358,7 +10536,7 @@ void parser___ReduceAction60___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2889;
+  fra.me.line = 2947;
   fra.me.meth = LOCATE_parser___ReduceAction60___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -10370,21 +10548,21 @@ void parser___ReduceAction60___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2891 */
+  /* parser/parser.nit:2949 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2892 */
+  /* parser/parser.nit:2950 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2893 */
+  /* parser/parser.nit:2951 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2894 */
+  /* parser/parser.nit:2952 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2895 */
+  /* parser/parser.nit:2953 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2896 */
+  /* parser/parser.nit:2954 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2897 */
+  /* parser/parser.nit:2955 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2899 */
+  /* parser/parser.nit:2957 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -10399,16 +10577,16 @@ void parser___ReduceAction60___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:2900 */
+    /* parser/parser.nit:2958 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:2902 */
+  /* parser/parser.nit:2960 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:2903 */
+  /* parser/parser.nit:2961 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2903);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2961);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -10423,7 +10601,7 @@ void parser___ReduceAction61___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2908;
+  fra.me.line = 2966;
   fra.me.meth = LOCATE_parser___ReduceAction61___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -10436,29 +10614,29 @@ void parser___ReduceAction61___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2910 */
+  /* parser/parser.nit:2968 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2911 */
+  /* parser/parser.nit:2969 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2912 */
+  /* parser/parser.nit:2970 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2913 */
+  /* parser/parser.nit:2971 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2914 */
+  /* parser/parser.nit:2972 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2915 */
+  /* parser/parser.nit:2973 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2916 */
+  /* parser/parser.nit:2974 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2917 */
+  /* parser/parser.nit:2975 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:2920 */
+  /* parser/parser.nit:2978 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2920);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 2978);
   }
-  /* ./parser//parser.nit:2921 */
+  /* parser/parser.nit:2979 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -10473,19 +10651,19 @@ void parser___ReduceAction61___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:2922 */
+    /* parser/parser.nit:2980 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
   }
-  /* ./parser//parser.nit:2924 */
+  /* parser/parser.nit:2982 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
   fra.me.REG[5] = fra.me.REG[3];
-  /* ./parser//parser.nit:2925 */
+  /* parser/parser.nit:2983 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:2926 */
+  /* parser/parser.nit:2984 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2926);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2984);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -10499,7 +10677,7 @@ void parser___ReduceAction62___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2931;
+  fra.me.line = 2989;
   fra.me.meth = LOCATE_parser___ReduceAction62___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -10511,21 +10689,21 @@ void parser___ReduceAction62___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2933 */
+  /* parser/parser.nit:2991 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2934 */
+  /* parser/parser.nit:2992 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2935 */
+  /* parser/parser.nit:2993 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2936 */
+  /* parser/parser.nit:2994 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2938 */
+  /* parser/parser.nit:2996 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:2939 */
+  /* parser/parser.nit:2997 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2939);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2997);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -10539,7 +10717,7 @@ void parser___ReduceAction63___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2944;
+  fra.me.line = 3002;
   fra.me.meth = LOCATE_parser___ReduceAction63___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -10550,25 +10728,25 @@ void parser___ReduceAction63___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2946 */
+  /* parser/parser.nit:3004 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2947 */
+  /* parser/parser.nit:3005 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2949 */
+  /* parser/parser.nit:3007 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2949);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3007);
   }
-  /* ./parser//parser.nit:2950 */
+  /* parser/parser.nit:3008 */
   fra.me.REG[3] = NEW_AFormaldef_parser___parser_prod___AFormaldef___init_aformaldef(fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:2954 */
+  /* parser/parser.nit:3012 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:2955 */
+  /* parser/parser.nit:3013 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2955);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3013);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -10582,7 +10760,7 @@ void parser___ReduceAction64___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2960;
+  fra.me.line = 3018;
   fra.me.meth = LOCATE_parser___ReduceAction64___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -10594,33 +10772,33 @@ void parser___ReduceAction64___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2962 */
+  /* parser/parser.nit:3020 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2963 */
+  /* parser/parser.nit:3021 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2964 */
+  /* parser/parser.nit:3022 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2966 */
+  /* parser/parser.nit:3024 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2966);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3024);
   }
-  /* ./parser//parser.nit:2968 */
+  /* parser/parser.nit:3026 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2968);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3026);
   }
-  /* ./parser//parser.nit:2969 */
+  /* parser/parser.nit:3027 */
   fra.me.REG[3] = NEW_AFormaldef_parser___parser_prod___AFormaldef___init_aformaldef(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:2973 */
+  /* parser/parser.nit:3031 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:2974 */
+  /* parser/parser.nit:3032 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2974);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3032);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -10634,7 +10812,7 @@ void parser___ReduceAction65___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 2979;
+  fra.me.line = 3037;
   fra.me.meth = LOCATE_parser___ReduceAction65___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -10647,37 +10825,37 @@ void parser___ReduceAction65___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:2981 */
+  /* parser/parser.nit:3039 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:2982 */
+  /* parser/parser.nit:3040 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2983 */
+  /* parser/parser.nit:3041 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2984 */
+  /* parser/parser.nit:3042 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2985 */
+  /* parser/parser.nit:3043 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:2987 */
+  /* parser/parser.nit:3045 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwspecial, ID_parser___parser_nodes___TKwspecial)) /*cast nullable TKwspecial*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2987);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3045);
   }
-  /* ./parser//parser.nit:2989 */
+  /* parser/parser.nit:3047 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 2989);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3047);
   }
-  /* ./parser//parser.nit:2990 */
+  /* parser/parser.nit:3048 */
   fra.me.REG[3] = NEW_ASuperclass_parser___parser_prod___ASuperclass___init_asuperclass(fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:2995 */
+  /* parser/parser.nit:3053 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:2996 */
+  /* parser/parser.nit:3054 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 2996);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3054);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -10691,7 +10869,7 @@ void parser___ReduceAction66___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3001;
+  fra.me.line = 3059;
   fra.me.meth = LOCATE_parser___ReduceAction66___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -10704,37 +10882,37 @@ void parser___ReduceAction66___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3003 */
+  /* parser/parser.nit:3061 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3004 */
+  /* parser/parser.nit:3062 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3005 */
+  /* parser/parser.nit:3063 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3006 */
+  /* parser/parser.nit:3064 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3007 */
+  /* parser/parser.nit:3065 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3009 */
+  /* parser/parser.nit:3067 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwsuper, ID_parser___parser_nodes___TKwsuper)) /*cast nullable TKwsuper*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3009);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3067);
   }
-  /* ./parser//parser.nit:3011 */
+  /* parser/parser.nit:3069 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3011);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3069);
   }
-  /* ./parser//parser.nit:3012 */
+  /* parser/parser.nit:3070 */
   fra.me.REG[3] = NEW_ASuperclass_parser___parser_prod___ASuperclass___init_asuperclass(NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:3017 */
+  /* parser/parser.nit:3075 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3018 */
+  /* parser/parser.nit:3076 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3018);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3076);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -10748,7 +10926,7 @@ void parser___ReduceAction67___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3023;
+  fra.me.line = 3081;
   fra.me.meth = LOCATE_parser___ReduceAction67___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -10759,19 +10937,19 @@ void parser___ReduceAction67___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3025 */
+  /* parser/parser.nit:3083 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3026 */
+  /* parser/parser.nit:3084 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3027 */
+  /* parser/parser.nit:3085 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3029 */
+  /* parser/parser.nit:3087 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3030 */
+  /* parser/parser.nit:3088 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3030);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3088);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -10785,7 +10963,7 @@ void parser___ReduceAction68___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3035;
+  fra.me.line = 3093;
   fra.me.meth = LOCATE_parser___ReduceAction68___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -10801,67 +10979,67 @@ void parser___ReduceAction68___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3037 */
+  /* parser/parser.nit:3095 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3038 */
+  /* parser/parser.nit:3096 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3039 */
+  /* parser/parser.nit:3097 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3040 */
+  /* parser/parser.nit:3098 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3041 */
+  /* parser/parser.nit:3099 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3042 */
+  /* parser/parser.nit:3100 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3043 */
+  /* parser/parser.nit:3101 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3044 */
+  /* parser/parser.nit:3102 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3046 */
+  /* parser/parser.nit:3104 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3046);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3104);
   }
-  /* ./parser//parser.nit:3048 */
+  /* parser/parser.nit:3106 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3048);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3106);
   }
-  /* ./parser//parser.nit:3050 */
+  /* parser/parser.nit:3108 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast nullable TKwmeth*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3050);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3108);
   }
-  /* ./parser//parser.nit:3052 */
+  /* parser/parser.nit:3110 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3052);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3110);
   }
-  /* ./parser//parser.nit:3054 */
+  /* parser/parser.nit:3112 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3054);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3112);
   }
-  /* ./parser//parser.nit:3056 */
+  /* parser/parser.nit:3114 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3056);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3114);
   }
-  /* ./parser//parser.nit:3057 */
+  /* parser/parser.nit:3115 */
   fra.me.REG[3] = NEW_AConcreteMethPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:3066 */
+  /* parser/parser.nit:3124 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3067 */
+  /* parser/parser.nit:3125 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3067);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3125);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -10875,7 +11053,7 @@ void parser___ReduceAction69___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3072;
+  fra.me.line = 3130;
   fra.me.meth = LOCATE_parser___ReduceAction69___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -10892,75 +11070,75 @@ void parser___ReduceAction69___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3074 */
+  /* parser/parser.nit:3132 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3075 */
+  /* parser/parser.nit:3133 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3076 */
+  /* parser/parser.nit:3134 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3077 */
+  /* parser/parser.nit:3135 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3078 */
+  /* parser/parser.nit:3136 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3079 */
+  /* parser/parser.nit:3137 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3080 */
+  /* parser/parser.nit:3138 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3081 */
+  /* parser/parser.nit:3139 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3082 */
+  /* parser/parser.nit:3140 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3084 */
+  /* parser/parser.nit:3142 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3084);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3142);
   }
-  /* ./parser//parser.nit:3086 */
+  /* parser/parser.nit:3144 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3086);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3144);
   }
-  /* ./parser//parser.nit:3088 */
+  /* parser/parser.nit:3146 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3088);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3146);
   }
-  /* ./parser//parser.nit:3090 */
+  /* parser/parser.nit:3148 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast nullable TKwmeth*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3090);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3148);
   }
-  /* ./parser//parser.nit:3092 */
+  /* parser/parser.nit:3150 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3092);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3150);
   }
-  /* ./parser//parser.nit:3094 */
+  /* parser/parser.nit:3152 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3094);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3152);
   }
-  /* ./parser//parser.nit:3096 */
+  /* parser/parser.nit:3154 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3096);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3154);
   }
-  /* ./parser//parser.nit:3097 */
+  /* parser/parser.nit:3155 */
   fra.me.REG[3] = NEW_AConcreteMethPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:3106 */
+  /* parser/parser.nit:3164 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3107 */
+  /* parser/parser.nit:3165 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3107);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3165);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -10974,7 +11152,7 @@ void parser___ReduceAction70___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3112;
+  fra.me.line = 3170;
   fra.me.meth = LOCATE_parser___ReduceAction70___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -10990,69 +11168,69 @@ void parser___ReduceAction70___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3114 */
+  /* parser/parser.nit:3172 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3115 */
+  /* parser/parser.nit:3173 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3116 */
+  /* parser/parser.nit:3174 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3117 */
+  /* parser/parser.nit:3175 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3118 */
+  /* parser/parser.nit:3176 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3119 */
+  /* parser/parser.nit:3177 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3120 */
+  /* parser/parser.nit:3178 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3121 */
+  /* parser/parser.nit:3179 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3122 */
+  /* parser/parser.nit:3180 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3124 */
+  /* parser/parser.nit:3182 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3124);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3182);
   }
-  /* ./parser//parser.nit:3126 */
+  /* parser/parser.nit:3184 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3126);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3184);
   }
-  /* ./parser//parser.nit:3128 */
+  /* parser/parser.nit:3186 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast nullable TKwmeth*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3128);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3186);
   }
-  /* ./parser//parser.nit:3130 */
+  /* parser/parser.nit:3188 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3130);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3188);
   }
-  /* ./parser//parser.nit:3132 */
+  /* parser/parser.nit:3190 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3132);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3190);
   }
-  /* ./parser//parser.nit:3134 */
+  /* parser/parser.nit:3192 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3134);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3192);
   }
-  /* ./parser//parser.nit:3135 */
+  /* parser/parser.nit:3193 */
   fra.me.REG[3] = NEW_AConcreteMethPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:3144 */
+  /* parser/parser.nit:3202 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3145 */
+  /* parser/parser.nit:3203 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3145);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3203);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -11066,7 +11244,7 @@ void parser___ReduceAction71___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3150;
+  fra.me.line = 3208;
   fra.me.meth = LOCATE_parser___ReduceAction71___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -11083,77 +11261,77 @@ void parser___ReduceAction71___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3152 */
+  /* parser/parser.nit:3210 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3153 */
+  /* parser/parser.nit:3211 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3154 */
+  /* parser/parser.nit:3212 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3155 */
+  /* parser/parser.nit:3213 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3156 */
+  /* parser/parser.nit:3214 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3157 */
+  /* parser/parser.nit:3215 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3158 */
+  /* parser/parser.nit:3216 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3159 */
+  /* parser/parser.nit:3217 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3160 */
+  /* parser/parser.nit:3218 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3161 */
+  /* parser/parser.nit:3219 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3163 */
+  /* parser/parser.nit:3221 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3163);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3221);
   }
-  /* ./parser//parser.nit:3165 */
+  /* parser/parser.nit:3223 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3165);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3223);
   }
-  /* ./parser//parser.nit:3167 */
+  /* parser/parser.nit:3225 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3167);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3225);
   }
-  /* ./parser//parser.nit:3169 */
+  /* parser/parser.nit:3227 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast nullable TKwmeth*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3169);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3227);
   }
-  /* ./parser//parser.nit:3171 */
+  /* parser/parser.nit:3229 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3171);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3229);
   }
-  /* ./parser//parser.nit:3173 */
+  /* parser/parser.nit:3231 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3173);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3231);
   }
-  /* ./parser//parser.nit:3175 */
+  /* parser/parser.nit:3233 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3175);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3233);
   }
-  /* ./parser//parser.nit:3176 */
+  /* parser/parser.nit:3234 */
   fra.me.REG[3] = NEW_AConcreteMethPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:3185 */
+  /* parser/parser.nit:3243 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3186 */
+  /* parser/parser.nit:3244 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3186);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3244);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -11167,7 +11345,7 @@ void parser___ReduceAction72___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3191;
+  fra.me.line = 3249;
   fra.me.meth = LOCATE_parser___ReduceAction72___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -11183,69 +11361,69 @@ void parser___ReduceAction72___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3193 */
+  /* parser/parser.nit:3251 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3194 */
+  /* parser/parser.nit:3252 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3195 */
+  /* parser/parser.nit:3253 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3196 */
+  /* parser/parser.nit:3254 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3197 */
+  /* parser/parser.nit:3255 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3198 */
+  /* parser/parser.nit:3256 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3199 */
+  /* parser/parser.nit:3257 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3200 */
+  /* parser/parser.nit:3258 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3201 */
+  /* parser/parser.nit:3259 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3203 */
+  /* parser/parser.nit:3261 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3203);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3261);
   }
-  /* ./parser//parser.nit:3205 */
+  /* parser/parser.nit:3263 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3205);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3263);
   }
-  /* ./parser//parser.nit:3207 */
+  /* parser/parser.nit:3265 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast nullable TKwmeth*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3207);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3265);
   }
-  /* ./parser//parser.nit:3209 */
+  /* parser/parser.nit:3267 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3209);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3267);
   }
-  /* ./parser//parser.nit:3211 */
+  /* parser/parser.nit:3269 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3211);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3269);
   }
-  /* ./parser//parser.nit:3213 */
+  /* parser/parser.nit:3271 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3213);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3271);
   }
-  /* ./parser//parser.nit:3214 */
+  /* parser/parser.nit:3272 */
   fra.me.REG[3] = NEW_AConcreteMethPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:3223 */
+  /* parser/parser.nit:3281 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3224 */
+  /* parser/parser.nit:3282 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3224);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3282);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -11259,7 +11437,7 @@ void parser___ReduceAction73___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3229;
+  fra.me.line = 3287;
   fra.me.meth = LOCATE_parser___ReduceAction73___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -11276,77 +11454,77 @@ void parser___ReduceAction73___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3231 */
+  /* parser/parser.nit:3289 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3232 */
+  /* parser/parser.nit:3290 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3233 */
+  /* parser/parser.nit:3291 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3234 */
+  /* parser/parser.nit:3292 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3235 */
+  /* parser/parser.nit:3293 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3236 */
+  /* parser/parser.nit:3294 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3237 */
+  /* parser/parser.nit:3295 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3238 */
+  /* parser/parser.nit:3296 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3239 */
+  /* parser/parser.nit:3297 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3240 */
+  /* parser/parser.nit:3298 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3242 */
+  /* parser/parser.nit:3300 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3242);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3300);
   }
-  /* ./parser//parser.nit:3244 */
+  /* parser/parser.nit:3302 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3244);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3302);
   }
-  /* ./parser//parser.nit:3246 */
+  /* parser/parser.nit:3304 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3246);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3304);
   }
-  /* ./parser//parser.nit:3248 */
+  /* parser/parser.nit:3306 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast nullable TKwmeth*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3248);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3306);
   }
-  /* ./parser//parser.nit:3250 */
+  /* parser/parser.nit:3308 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3250);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3308);
   }
-  /* ./parser//parser.nit:3252 */
+  /* parser/parser.nit:3310 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3252);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3310);
   }
-  /* ./parser//parser.nit:3254 */
+  /* parser/parser.nit:3312 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3254);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3312);
   }
-  /* ./parser//parser.nit:3255 */
+  /* parser/parser.nit:3313 */
   fra.me.REG[3] = NEW_AConcreteMethPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:3264 */
+  /* parser/parser.nit:3322 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3265 */
+  /* parser/parser.nit:3323 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3265);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3323);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -11360,7 +11538,7 @@ void parser___ReduceAction74___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3270;
+  fra.me.line = 3328;
   fra.me.meth = LOCATE_parser___ReduceAction74___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -11375,61 +11553,61 @@ void parser___ReduceAction74___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3272 */
+  /* parser/parser.nit:3330 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3273 */
+  /* parser/parser.nit:3331 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3274 */
+  /* parser/parser.nit:3332 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3275 */
+  /* parser/parser.nit:3333 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3276 */
+  /* parser/parser.nit:3334 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3277 */
+  /* parser/parser.nit:3335 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3278 */
+  /* parser/parser.nit:3336 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3279 */
+  /* parser/parser.nit:3337 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3281 */
+  /* parser/parser.nit:3339 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3281);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3339);
   }
-  /* ./parser//parser.nit:3283 */
+  /* parser/parser.nit:3341 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3283);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3341);
   }
-  /* ./parser//parser.nit:3285 */
+  /* parser/parser.nit:3343 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast nullable TKwmeth*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3285);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3343);
   }
-  /* ./parser//parser.nit:3287 */
+  /* parser/parser.nit:3345 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3287);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3345);
   }
-  /* ./parser//parser.nit:3289 */
+  /* parser/parser.nit:3347 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3289);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3347);
   }
-  /* ./parser//parser.nit:3290 */
+  /* parser/parser.nit:3348 */
   fra.me.REG[3] = NEW_ADeferredMethPropdef_parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:3298 */
+  /* parser/parser.nit:3356 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3299 */
+  /* parser/parser.nit:3357 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3299);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3357);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -11443,7 +11621,7 @@ void parser___ReduceAction75___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3304;
+  fra.me.line = 3362;
   fra.me.meth = LOCATE_parser___ReduceAction75___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -11459,69 +11637,69 @@ void parser___ReduceAction75___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3306 */
+  /* parser/parser.nit:3364 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3307 */
+  /* parser/parser.nit:3365 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3308 */
+  /* parser/parser.nit:3366 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3309 */
+  /* parser/parser.nit:3367 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3310 */
+  /* parser/parser.nit:3368 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3311 */
+  /* parser/parser.nit:3369 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3312 */
+  /* parser/parser.nit:3370 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3313 */
+  /* parser/parser.nit:3371 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3314 */
+  /* parser/parser.nit:3372 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3316 */
+  /* parser/parser.nit:3374 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3316);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3374);
   }
-  /* ./parser//parser.nit:3318 */
+  /* parser/parser.nit:3376 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3318);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3376);
   }
-  /* ./parser//parser.nit:3320 */
+  /* parser/parser.nit:3378 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3320);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3378);
   }
-  /* ./parser//parser.nit:3322 */
+  /* parser/parser.nit:3380 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast nullable TKwmeth*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3322);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3380);
   }
-  /* ./parser//parser.nit:3324 */
+  /* parser/parser.nit:3382 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3324);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3382);
   }
-  /* ./parser//parser.nit:3326 */
+  /* parser/parser.nit:3384 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3326);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3384);
   }
-  /* ./parser//parser.nit:3327 */
+  /* parser/parser.nit:3385 */
   fra.me.REG[3] = NEW_ADeferredMethPropdef_parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:3335 */
+  /* parser/parser.nit:3393 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3336 */
+  /* parser/parser.nit:3394 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3336);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3394);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -11535,7 +11713,7 @@ void parser___ReduceAction76___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3341;
+  fra.me.line = 3399;
   fra.me.meth = LOCATE_parser___ReduceAction76___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -11550,61 +11728,61 @@ void parser___ReduceAction76___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3343 */
+  /* parser/parser.nit:3401 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3344 */
+  /* parser/parser.nit:3402 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3345 */
+  /* parser/parser.nit:3403 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3346 */
+  /* parser/parser.nit:3404 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3347 */
+  /* parser/parser.nit:3405 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3348 */
+  /* parser/parser.nit:3406 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3349 */
+  /* parser/parser.nit:3407 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3350 */
+  /* parser/parser.nit:3408 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3352 */
+  /* parser/parser.nit:3410 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3352);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3410);
   }
-  /* ./parser//parser.nit:3354 */
+  /* parser/parser.nit:3412 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3354);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3412);
   }
-  /* ./parser//parser.nit:3356 */
+  /* parser/parser.nit:3414 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast nullable TKwmeth*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3356);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3414);
   }
-  /* ./parser//parser.nit:3358 */
+  /* parser/parser.nit:3416 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3358);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3416);
   }
-  /* ./parser//parser.nit:3360 */
+  /* parser/parser.nit:3418 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3360);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3418);
   }
-  /* ./parser//parser.nit:3361 */
+  /* parser/parser.nit:3419 */
   fra.me.REG[3] = NEW_AInternMethPropdef_parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:3369 */
+  /* parser/parser.nit:3427 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3370 */
+  /* parser/parser.nit:3428 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3370);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3428);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -11618,7 +11796,7 @@ void parser___ReduceAction77___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3375;
+  fra.me.line = 3433;
   fra.me.meth = LOCATE_parser___ReduceAction77___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -11634,69 +11812,69 @@ void parser___ReduceAction77___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3377 */
+  /* parser/parser.nit:3435 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3378 */
+  /* parser/parser.nit:3436 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3379 */
+  /* parser/parser.nit:3437 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3380 */
+  /* parser/parser.nit:3438 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3381 */
+  /* parser/parser.nit:3439 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3382 */
+  /* parser/parser.nit:3440 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3383 */
+  /* parser/parser.nit:3441 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3384 */
+  /* parser/parser.nit:3442 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3385 */
+  /* parser/parser.nit:3443 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3387 */
+  /* parser/parser.nit:3445 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3387);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3445);
   }
-  /* ./parser//parser.nit:3389 */
+  /* parser/parser.nit:3447 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3389);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3447);
   }
-  /* ./parser//parser.nit:3391 */
+  /* parser/parser.nit:3449 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3391);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3449);
   }
-  /* ./parser//parser.nit:3393 */
+  /* parser/parser.nit:3451 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast nullable TKwmeth*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3393);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3451);
   }
-  /* ./parser//parser.nit:3395 */
+  /* parser/parser.nit:3453 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3395);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3453);
   }
-  /* ./parser//parser.nit:3397 */
+  /* parser/parser.nit:3455 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3397);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3455);
   }
-  /* ./parser//parser.nit:3398 */
+  /* parser/parser.nit:3456 */
   fra.me.REG[3] = NEW_AInternMethPropdef_parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:3406 */
+  /* parser/parser.nit:3464 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3407 */
+  /* parser/parser.nit:3465 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3407);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3465);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -11710,7 +11888,7 @@ void parser___ReduceAction78___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3412;
+  fra.me.line = 3470;
   fra.me.meth = LOCATE_parser___ReduceAction78___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -11725,61 +11903,61 @@ void parser___ReduceAction78___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3414 */
+  /* parser/parser.nit:3472 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3415 */
+  /* parser/parser.nit:3473 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3416 */
+  /* parser/parser.nit:3474 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3417 */
+  /* parser/parser.nit:3475 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3418 */
+  /* parser/parser.nit:3476 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3419 */
+  /* parser/parser.nit:3477 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3420 */
+  /* parser/parser.nit:3478 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3421 */
+  /* parser/parser.nit:3479 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3423 */
+  /* parser/parser.nit:3481 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3423);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3481);
   }
-  /* ./parser//parser.nit:3425 */
+  /* parser/parser.nit:3483 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3425);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3483);
   }
-  /* ./parser//parser.nit:3427 */
+  /* parser/parser.nit:3485 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast nullable TKwmeth*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3427);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3485);
   }
-  /* ./parser//parser.nit:3429 */
+  /* parser/parser.nit:3487 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3429);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3487);
   }
-  /* ./parser//parser.nit:3431 */
+  /* parser/parser.nit:3489 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3431);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3489);
   }
-  /* ./parser//parser.nit:3432 */
+  /* parser/parser.nit:3490 */
   fra.me.REG[3] = NEW_AExternMethPropdef_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:3442 */
+  /* parser/parser.nit:3500 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3443 */
+  /* parser/parser.nit:3501 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3443);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3501);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -11793,7 +11971,7 @@ void parser___ReduceAction79___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3448;
+  fra.me.line = 3506;
   fra.me.meth = LOCATE_parser___ReduceAction79___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -11809,69 +11987,69 @@ void parser___ReduceAction79___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3450 */
+  /* parser/parser.nit:3508 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3451 */
+  /* parser/parser.nit:3509 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3452 */
+  /* parser/parser.nit:3510 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3453 */
+  /* parser/parser.nit:3511 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3454 */
+  /* parser/parser.nit:3512 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3455 */
+  /* parser/parser.nit:3513 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3456 */
+  /* parser/parser.nit:3514 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3457 */
+  /* parser/parser.nit:3515 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3458 */
+  /* parser/parser.nit:3516 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3460 */
+  /* parser/parser.nit:3518 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3460);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3518);
   }
-  /* ./parser//parser.nit:3462 */
+  /* parser/parser.nit:3520 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3462);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3520);
   }
-  /* ./parser//parser.nit:3464 */
+  /* parser/parser.nit:3522 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3464);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3522);
   }
-  /* ./parser//parser.nit:3466 */
+  /* parser/parser.nit:3524 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast nullable TKwmeth*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3466);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3524);
   }
-  /* ./parser//parser.nit:3468 */
+  /* parser/parser.nit:3526 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3468);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3526);
   }
-  /* ./parser//parser.nit:3470 */
+  /* parser/parser.nit:3528 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3470);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3528);
   }
-  /* ./parser//parser.nit:3471 */
+  /* parser/parser.nit:3529 */
   fra.me.REG[3] = NEW_AExternMethPropdef_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:3481 */
+  /* parser/parser.nit:3539 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3482 */
+  /* parser/parser.nit:3540 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3482);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3540);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -11885,7 +12063,7 @@ void parser___ReduceAction80___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3487;
+  fra.me.line = 3545;
   fra.me.meth = LOCATE_parser___ReduceAction80___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -11901,69 +12079,69 @@ void parser___ReduceAction80___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3489 */
+  /* parser/parser.nit:3547 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3490 */
+  /* parser/parser.nit:3548 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3491 */
+  /* parser/parser.nit:3549 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3492 */
+  /* parser/parser.nit:3550 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3493 */
+  /* parser/parser.nit:3551 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3494 */
+  /* parser/parser.nit:3552 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3495 */
+  /* parser/parser.nit:3553 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3496 */
+  /* parser/parser.nit:3554 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3497 */
+  /* parser/parser.nit:3555 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3499 */
+  /* parser/parser.nit:3557 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3499);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3557);
   }
-  /* ./parser//parser.nit:3501 */
+  /* parser/parser.nit:3559 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3501);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3559);
   }
-  /* ./parser//parser.nit:3503 */
+  /* parser/parser.nit:3561 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast nullable TKwmeth*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3503);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3561);
   }
-  /* ./parser//parser.nit:3505 */
+  /* parser/parser.nit:3563 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3505);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3563);
   }
-  /* ./parser//parser.nit:3507 */
+  /* parser/parser.nit:3565 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3507);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3565);
   }
-  /* ./parser//parser.nit:3509 */
+  /* parser/parser.nit:3567 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast nullable TString*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3509);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3567);
   }
-  /* ./parser//parser.nit:3510 */
+  /* parser/parser.nit:3568 */
   fra.me.REG[3] = NEW_AExternMethPropdef_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:3520 */
+  /* parser/parser.nit:3578 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3521 */
+  /* parser/parser.nit:3579 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3521);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3579);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -11977,7 +12155,7 @@ void parser___ReduceAction81___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3526;
+  fra.me.line = 3584;
   fra.me.meth = LOCATE_parser___ReduceAction81___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -11994,77 +12172,77 @@ void parser___ReduceAction81___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3528 */
+  /* parser/parser.nit:3586 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3529 */
+  /* parser/parser.nit:3587 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3530 */
+  /* parser/parser.nit:3588 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3531 */
+  /* parser/parser.nit:3589 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3532 */
+  /* parser/parser.nit:3590 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3533 */
+  /* parser/parser.nit:3591 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3534 */
+  /* parser/parser.nit:3592 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3535 */
+  /* parser/parser.nit:3593 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3536 */
+  /* parser/parser.nit:3594 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3537 */
+  /* parser/parser.nit:3595 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3539 */
+  /* parser/parser.nit:3597 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3539);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3597);
   }
-  /* ./parser//parser.nit:3541 */
+  /* parser/parser.nit:3599 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3541);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3599);
   }
-  /* ./parser//parser.nit:3543 */
+  /* parser/parser.nit:3601 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3543);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3601);
   }
-  /* ./parser//parser.nit:3545 */
+  /* parser/parser.nit:3603 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast nullable TKwmeth*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3545);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3603);
   }
-  /* ./parser//parser.nit:3547 */
+  /* parser/parser.nit:3605 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3547);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3605);
   }
-  /* ./parser//parser.nit:3549 */
+  /* parser/parser.nit:3607 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3549);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3607);
   }
-  /* ./parser//parser.nit:3551 */
+  /* parser/parser.nit:3609 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast nullable TString*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3551);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3609);
   }
-  /* ./parser//parser.nit:3552 */
+  /* parser/parser.nit:3610 */
   fra.me.REG[3] = NEW_AExternMethPropdef_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:3562 */
+  /* parser/parser.nit:3620 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3563 */
+  /* parser/parser.nit:3621 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3563);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3621);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -12078,7 +12256,7 @@ void parser___ReduceAction82___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3568;
+  fra.me.line = 3626;
   fra.me.meth = LOCATE_parser___ReduceAction82___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -12094,69 +12272,69 @@ void parser___ReduceAction82___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3570 */
+  /* parser/parser.nit:3628 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3571 */
+  /* parser/parser.nit:3629 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3572 */
+  /* parser/parser.nit:3630 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3573 */
+  /* parser/parser.nit:3631 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3574 */
+  /* parser/parser.nit:3632 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3575 */
+  /* parser/parser.nit:3633 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3576 */
+  /* parser/parser.nit:3634 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3577 */
+  /* parser/parser.nit:3635 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3578 */
+  /* parser/parser.nit:3636 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3580 */
+  /* parser/parser.nit:3638 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3580);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3638);
   }
-  /* ./parser//parser.nit:3582 */
+  /* parser/parser.nit:3640 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3582);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3640);
   }
-  /* ./parser//parser.nit:3584 */
+  /* parser/parser.nit:3642 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast nullable TKwmeth*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3584);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3642);
   }
-  /* ./parser//parser.nit:3586 */
+  /* parser/parser.nit:3644 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3586);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3644);
   }
-  /* ./parser//parser.nit:3588 */
+  /* parser/parser.nit:3646 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3588);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3646);
   }
-  /* ./parser//parser.nit:3590 */
+  /* parser/parser.nit:3648 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast nullable AExternCalls*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3590);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3648);
   }
-  /* ./parser//parser.nit:3591 */
+  /* parser/parser.nit:3649 */
   fra.me.REG[3] = NEW_AExternMethPropdef_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:3601 */
+  /* parser/parser.nit:3659 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3602 */
+  /* parser/parser.nit:3660 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3602);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3660);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -12170,7 +12348,7 @@ void parser___ReduceAction83___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3607;
+  fra.me.line = 3665;
   fra.me.meth = LOCATE_parser___ReduceAction83___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -12187,77 +12365,77 @@ void parser___ReduceAction83___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3609 */
+  /* parser/parser.nit:3667 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3610 */
+  /* parser/parser.nit:3668 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3611 */
+  /* parser/parser.nit:3669 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3612 */
+  /* parser/parser.nit:3670 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3613 */
+  /* parser/parser.nit:3671 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3614 */
+  /* parser/parser.nit:3672 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3615 */
+  /* parser/parser.nit:3673 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3616 */
+  /* parser/parser.nit:3674 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3617 */
+  /* parser/parser.nit:3675 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3618 */
+  /* parser/parser.nit:3676 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3620 */
+  /* parser/parser.nit:3678 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3620);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3678);
   }
-  /* ./parser//parser.nit:3622 */
+  /* parser/parser.nit:3680 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3622);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3680);
   }
-  /* ./parser//parser.nit:3624 */
+  /* parser/parser.nit:3682 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3624);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3682);
   }
-  /* ./parser//parser.nit:3626 */
+  /* parser/parser.nit:3684 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast nullable TKwmeth*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3626);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3684);
   }
-  /* ./parser//parser.nit:3628 */
+  /* parser/parser.nit:3686 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3628);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3686);
   }
-  /* ./parser//parser.nit:3630 */
+  /* parser/parser.nit:3688 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3630);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3688);
   }
-  /* ./parser//parser.nit:3632 */
+  /* parser/parser.nit:3690 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast nullable AExternCalls*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3632);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3690);
   }
-  /* ./parser//parser.nit:3633 */
+  /* parser/parser.nit:3691 */
   fra.me.REG[3] = NEW_AExternMethPropdef_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:3643 */
+  /* parser/parser.nit:3701 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3644 */
+  /* parser/parser.nit:3702 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3644);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3702);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -12271,7 +12449,7 @@ void parser___ReduceAction84___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3649;
+  fra.me.line = 3707;
   fra.me.meth = LOCATE_parser___ReduceAction84___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -12288,77 +12466,77 @@ void parser___ReduceAction84___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3651 */
+  /* parser/parser.nit:3709 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3652 */
+  /* parser/parser.nit:3710 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3653 */
+  /* parser/parser.nit:3711 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3654 */
+  /* parser/parser.nit:3712 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3655 */
+  /* parser/parser.nit:3713 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3656 */
+  /* parser/parser.nit:3714 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3657 */
+  /* parser/parser.nit:3715 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3658 */
+  /* parser/parser.nit:3716 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3659 */
+  /* parser/parser.nit:3717 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3660 */
+  /* parser/parser.nit:3718 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3662 */
+  /* parser/parser.nit:3720 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3662);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3720);
   }
-  /* ./parser//parser.nit:3664 */
+  /* parser/parser.nit:3722 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3664);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3722);
   }
-  /* ./parser//parser.nit:3666 */
+  /* parser/parser.nit:3724 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast nullable TKwmeth*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3666);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3724);
   }
-  /* ./parser//parser.nit:3668 */
+  /* parser/parser.nit:3726 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3668);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3726);
   }
-  /* ./parser//parser.nit:3670 */
+  /* parser/parser.nit:3728 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3670);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3728);
   }
-  /* ./parser//parser.nit:3672 */
+  /* parser/parser.nit:3730 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast nullable TString*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3672);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3730);
   }
-  /* ./parser//parser.nit:3674 */
+  /* parser/parser.nit:3732 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast nullable AExternCalls*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3674);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3732);
   }
-  /* ./parser//parser.nit:3675 */
+  /* parser/parser.nit:3733 */
   fra.me.REG[3] = NEW_AExternMethPropdef_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(fra.me.REG[9], NIT_NULL, fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:3685 */
+  /* parser/parser.nit:3743 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3686 */
+  /* parser/parser.nit:3744 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3686);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3744);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -12372,7 +12550,7 @@ void parser___ReduceAction85___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3691;
+  fra.me.line = 3749;
   fra.me.meth = LOCATE_parser___ReduceAction85___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 11;
@@ -12390,85 +12568,85 @@ void parser___ReduceAction85___action(val_t p0, val_t p1){
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3693 */
+  /* parser/parser.nit:3751 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3694 */
+  /* parser/parser.nit:3752 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3695 */
+  /* parser/parser.nit:3753 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3696 */
+  /* parser/parser.nit:3754 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3697 */
+  /* parser/parser.nit:3755 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3698 */
+  /* parser/parser.nit:3756 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3699 */
+  /* parser/parser.nit:3757 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3700 */
+  /* parser/parser.nit:3758 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3701 */
+  /* parser/parser.nit:3759 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3702 */
+  /* parser/parser.nit:3760 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3703 */
+  /* parser/parser.nit:3761 */
   fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3705 */
+  /* parser/parser.nit:3763 */
   REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3705);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3763);
   }
-  /* ./parser//parser.nit:3707 */
+  /* parser/parser.nit:3765 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3707);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3765);
   }
-  /* ./parser//parser.nit:3709 */
+  /* parser/parser.nit:3767 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3709);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3767);
   }
-  /* ./parser//parser.nit:3711 */
+  /* parser/parser.nit:3769 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast nullable TKwmeth*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3711);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3769);
   }
-  /* ./parser//parser.nit:3713 */
+  /* parser/parser.nit:3771 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3713);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3771);
   }
-  /* ./parser//parser.nit:3715 */
+  /* parser/parser.nit:3773 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3715);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3773);
   }
-  /* ./parser//parser.nit:3717 */
+  /* parser/parser.nit:3775 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast nullable TString*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3717);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3775);
   }
-  /* ./parser//parser.nit:3719 */
+  /* parser/parser.nit:3777 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast nullable AExternCalls*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3719);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3777);
   }
-  /* ./parser//parser.nit:3720 */
+  /* parser/parser.nit:3778 */
   fra.me.REG[3] = NEW_AExternMethPropdef_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(fra.me.REG[10], fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:3730 */
+  /* parser/parser.nit:3788 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3731 */
+  /* parser/parser.nit:3789 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3731);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3789);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -12482,7 +12660,7 @@ void parser___ReduceAction86___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3736;
+  fra.me.line = 3794;
   fra.me.meth = LOCATE_parser___ReduceAction86___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -12496,49 +12674,49 @@ void parser___ReduceAction86___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3738 */
+  /* parser/parser.nit:3796 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3739 */
+  /* parser/parser.nit:3797 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3740 */
+  /* parser/parser.nit:3798 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3741 */
+  /* parser/parser.nit:3799 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3742 */
+  /* parser/parser.nit:3800 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3744 */
+  /* parser/parser.nit:3802 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3744);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3802);
   }
-  /* ./parser//parser.nit:3746 */
+  /* parser/parser.nit:3804 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3746);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3804);
   }
-  /* ./parser//parser.nit:3748 */
+  /* parser/parser.nit:3806 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3748);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3806);
   }
-  /* ./parser//parser.nit:3750 */
+  /* parser/parser.nit:3808 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3750);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3808);
   }
-  /* ./parser//parser.nit:3751 */
+  /* parser/parser.nit:3809 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[6], NIT_NULL, NIT_NULL, NIT_NULL, fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:3763 */
+  /* parser/parser.nit:3821 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3764 */
+  /* parser/parser.nit:3822 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3764);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3822);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -12552,7 +12730,7 @@ void parser___ReduceAction87___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3769;
+  fra.me.line = 3827;
   fra.me.meth = LOCATE_parser___ReduceAction87___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -12567,57 +12745,57 @@ void parser___ReduceAction87___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3771 */
+  /* parser/parser.nit:3829 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3772 */
+  /* parser/parser.nit:3830 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3773 */
+  /* parser/parser.nit:3831 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3774 */
+  /* parser/parser.nit:3832 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3775 */
+  /* parser/parser.nit:3833 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3776 */
+  /* parser/parser.nit:3834 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3778 */
+  /* parser/parser.nit:3836 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3778);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3836);
   }
-  /* ./parser//parser.nit:3780 */
+  /* parser/parser.nit:3838 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3780);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3838);
   }
-  /* ./parser//parser.nit:3782 */
+  /* parser/parser.nit:3840 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3782);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3840);
   }
-  /* ./parser//parser.nit:3784 */
+  /* parser/parser.nit:3842 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3784);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3842);
   }
-  /* ./parser//parser.nit:3786 */
+  /* parser/parser.nit:3844 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3786);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3844);
   }
-  /* ./parser//parser.nit:3787 */
+  /* parser/parser.nit:3845 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[7], NIT_NULL, NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:3799 */
+  /* parser/parser.nit:3857 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3800 */
+  /* parser/parser.nit:3858 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3800);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3858);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -12631,7 +12809,7 @@ void parser___ReduceAction88___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3805;
+  fra.me.line = 3863;
   fra.me.meth = LOCATE_parser___ReduceAction88___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -12646,57 +12824,57 @@ void parser___ReduceAction88___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3807 */
+  /* parser/parser.nit:3865 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3808 */
+  /* parser/parser.nit:3866 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3809 */
+  /* parser/parser.nit:3867 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3810 */
+  /* parser/parser.nit:3868 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3811 */
+  /* parser/parser.nit:3869 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3812 */
+  /* parser/parser.nit:3870 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3814 */
+  /* parser/parser.nit:3872 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3814);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3872);
   }
-  /* ./parser//parser.nit:3816 */
+  /* parser/parser.nit:3874 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3816);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3874);
   }
-  /* ./parser//parser.nit:3818 */
+  /* parser/parser.nit:3876 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3818);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3876);
   }
-  /* ./parser//parser.nit:3820 */
+  /* parser/parser.nit:3878 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3820);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3878);
   }
-  /* ./parser//parser.nit:3822 */
+  /* parser/parser.nit:3880 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3822);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3880);
   }
-  /* ./parser//parser.nit:3823 */
+  /* parser/parser.nit:3881 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[7], fra.me.REG[6], NIT_NULL, NIT_NULL, fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:3835 */
+  /* parser/parser.nit:3893 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3836 */
+  /* parser/parser.nit:3894 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3836);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3894);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -12710,7 +12888,7 @@ void parser___ReduceAction89___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3841;
+  fra.me.line = 3899;
   fra.me.meth = LOCATE_parser___ReduceAction89___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -12726,65 +12904,65 @@ void parser___ReduceAction89___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3843 */
+  /* parser/parser.nit:3901 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3844 */
+  /* parser/parser.nit:3902 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3845 */
+  /* parser/parser.nit:3903 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3846 */
+  /* parser/parser.nit:3904 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3847 */
+  /* parser/parser.nit:3905 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3848 */
+  /* parser/parser.nit:3906 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3849 */
+  /* parser/parser.nit:3907 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3851 */
+  /* parser/parser.nit:3909 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3851);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3909);
   }
-  /* ./parser//parser.nit:3853 */
+  /* parser/parser.nit:3911 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3853);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3911);
   }
-  /* ./parser//parser.nit:3855 */
+  /* parser/parser.nit:3913 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3855);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3913);
   }
-  /* ./parser//parser.nit:3857 */
+  /* parser/parser.nit:3915 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3857);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3915);
   }
-  /* ./parser//parser.nit:3859 */
+  /* parser/parser.nit:3917 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3859);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3917);
   }
-  /* ./parser//parser.nit:3861 */
+  /* parser/parser.nit:3919 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3861);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3919);
   }
-  /* ./parser//parser.nit:3862 */
+  /* parser/parser.nit:3920 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:3874 */
+  /* parser/parser.nit:3932 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3875 */
+  /* parser/parser.nit:3933 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3875);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3933);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -12798,7 +12976,7 @@ void parser___ReduceAction90___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3880;
+  fra.me.line = 3938;
   fra.me.meth = LOCATE_parser___ReduceAction90___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -12813,57 +12991,57 @@ void parser___ReduceAction90___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3882 */
+  /* parser/parser.nit:3940 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3883 */
+  /* parser/parser.nit:3941 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3884 */
+  /* parser/parser.nit:3942 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3885 */
+  /* parser/parser.nit:3943 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3886 */
+  /* parser/parser.nit:3944 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3887 */
+  /* parser/parser.nit:3945 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3889 */
+  /* parser/parser.nit:3947 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3889);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3947);
   }
-  /* ./parser//parser.nit:3891 */
+  /* parser/parser.nit:3949 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3891);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3949);
   }
-  /* ./parser//parser.nit:3893 */
+  /* parser/parser.nit:3951 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3893);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3951);
   }
-  /* ./parser//parser.nit:3895 */
+  /* parser/parser.nit:3953 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3895);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3953);
   }
-  /* ./parser//parser.nit:3897 */
+  /* parser/parser.nit:3955 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3897);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3955);
   }
-  /* ./parser//parser.nit:3898 */
+  /* parser/parser.nit:3956 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], NIT_NULL, fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:3910 */
+  /* parser/parser.nit:3968 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3911 */
+  /* parser/parser.nit:3969 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3911);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3969);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -12877,7 +13055,7 @@ void parser___ReduceAction91___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3916;
+  fra.me.line = 3974;
   fra.me.meth = LOCATE_parser___ReduceAction91___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -12893,65 +13071,65 @@ void parser___ReduceAction91___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3918 */
+  /* parser/parser.nit:3976 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3919 */
+  /* parser/parser.nit:3977 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3920 */
+  /* parser/parser.nit:3978 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3921 */
+  /* parser/parser.nit:3979 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3922 */
+  /* parser/parser.nit:3980 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3923 */
+  /* parser/parser.nit:3981 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3924 */
+  /* parser/parser.nit:3982 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3926 */
+  /* parser/parser.nit:3984 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3926);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3984);
   }
-  /* ./parser//parser.nit:3928 */
+  /* parser/parser.nit:3986 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3928);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3986);
   }
-  /* ./parser//parser.nit:3930 */
+  /* parser/parser.nit:3988 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3930);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3988);
   }
-  /* ./parser//parser.nit:3932 */
+  /* parser/parser.nit:3990 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3932);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3990);
   }
-  /* ./parser//parser.nit:3934 */
+  /* parser/parser.nit:3992 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3934);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3992);
   }
-  /* ./parser//parser.nit:3936 */
+  /* parser/parser.nit:3994 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3936);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 3994);
   }
-  /* ./parser//parser.nit:3937 */
+  /* parser/parser.nit:3995 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:3949 */
+  /* parser/parser.nit:4007 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3950 */
+  /* parser/parser.nit:4008 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3950);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4008);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -12965,7 +13143,7 @@ void parser___ReduceAction92___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3955;
+  fra.me.line = 4013;
   fra.me.meth = LOCATE_parser___ReduceAction92___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -12981,65 +13159,65 @@ void parser___ReduceAction92___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3957 */
+  /* parser/parser.nit:4015 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3958 */
+  /* parser/parser.nit:4016 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3959 */
+  /* parser/parser.nit:4017 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3960 */
+  /* parser/parser.nit:4018 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3961 */
+  /* parser/parser.nit:4019 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3962 */
+  /* parser/parser.nit:4020 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3963 */
+  /* parser/parser.nit:4021 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3965 */
+  /* parser/parser.nit:4023 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3965);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4023);
   }
-  /* ./parser//parser.nit:3967 */
+  /* parser/parser.nit:4025 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3967);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4025);
   }
-  /* ./parser//parser.nit:3969 */
+  /* parser/parser.nit:4027 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3969);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4027);
   }
-  /* ./parser//parser.nit:3971 */
+  /* parser/parser.nit:4029 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3971);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4029);
   }
-  /* ./parser//parser.nit:3973 */
+  /* parser/parser.nit:4031 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3973);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4031);
   }
-  /* ./parser//parser.nit:3975 */
+  /* parser/parser.nit:4033 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 3975);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4033);
   }
-  /* ./parser//parser.nit:3976 */
+  /* parser/parser.nit:4034 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], NIT_NULL, fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:3988 */
+  /* parser/parser.nit:4046 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:3989 */
+  /* parser/parser.nit:4047 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 3989);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4047);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -13053,7 +13231,7 @@ void parser___ReduceAction93___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 3994;
+  fra.me.line = 4052;
   fra.me.meth = LOCATE_parser___ReduceAction93___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -13070,73 +13248,73 @@ void parser___ReduceAction93___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:3996 */
+  /* parser/parser.nit:4054 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:3997 */
+  /* parser/parser.nit:4055 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3998 */
+  /* parser/parser.nit:4056 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:3999 */
+  /* parser/parser.nit:4057 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4000 */
+  /* parser/parser.nit:4058 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4001 */
+  /* parser/parser.nit:4059 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4002 */
+  /* parser/parser.nit:4060 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4003 */
+  /* parser/parser.nit:4061 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4005 */
+  /* parser/parser.nit:4063 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4005);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4063);
   }
-  /* ./parser//parser.nit:4007 */
+  /* parser/parser.nit:4065 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4007);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4065);
   }
-  /* ./parser//parser.nit:4009 */
+  /* parser/parser.nit:4067 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4009);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4067);
   }
-  /* ./parser//parser.nit:4011 */
+  /* parser/parser.nit:4069 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4011);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4069);
   }
-  /* ./parser//parser.nit:4013 */
+  /* parser/parser.nit:4071 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4013);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4071);
   }
-  /* ./parser//parser.nit:4015 */
+  /* parser/parser.nit:4073 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4015);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4073);
   }
-  /* ./parser//parser.nit:4017 */
+  /* parser/parser.nit:4075 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4017);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4075);
   }
-  /* ./parser//parser.nit:4018 */
+  /* parser/parser.nit:4076 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:4030 */
+  /* parser/parser.nit:4088 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4031 */
+  /* parser/parser.nit:4089 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4031);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4089);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -13150,7 +13328,7 @@ void parser___ReduceAction94___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4036;
+  fra.me.line = 4094;
   fra.me.meth = LOCATE_parser___ReduceAction94___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -13165,57 +13343,57 @@ void parser___ReduceAction94___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4038 */
+  /* parser/parser.nit:4096 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4039 */
+  /* parser/parser.nit:4097 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4040 */
+  /* parser/parser.nit:4098 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4041 */
+  /* parser/parser.nit:4099 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4042 */
+  /* parser/parser.nit:4100 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4043 */
+  /* parser/parser.nit:4101 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4045 */
+  /* parser/parser.nit:4103 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4045);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4103);
   }
-  /* ./parser//parser.nit:4047 */
+  /* parser/parser.nit:4105 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4047);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4105);
   }
-  /* ./parser//parser.nit:4049 */
+  /* parser/parser.nit:4107 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4049);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4107);
   }
-  /* ./parser//parser.nit:4051 */
+  /* parser/parser.nit:4109 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4051);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4109);
   }
-  /* ./parser//parser.nit:4053 */
+  /* parser/parser.nit:4111 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4053);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4111);
   }
-  /* ./parser//parser.nit:4054 */
+  /* parser/parser.nit:4112 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[7], NIT_NULL, NIT_NULL, NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:4066 */
+  /* parser/parser.nit:4124 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4067 */
+  /* parser/parser.nit:4125 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4067);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4125);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -13229,7 +13407,7 @@ void parser___ReduceAction95___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4072;
+  fra.me.line = 4130;
   fra.me.meth = LOCATE_parser___ReduceAction95___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -13245,65 +13423,65 @@ void parser___ReduceAction95___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4074 */
+  /* parser/parser.nit:4132 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4075 */
+  /* parser/parser.nit:4133 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4076 */
+  /* parser/parser.nit:4134 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4077 */
+  /* parser/parser.nit:4135 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4078 */
+  /* parser/parser.nit:4136 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4079 */
+  /* parser/parser.nit:4137 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4080 */
+  /* parser/parser.nit:4138 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4082 */
+  /* parser/parser.nit:4140 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4082);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4140);
   }
-  /* ./parser//parser.nit:4084 */
+  /* parser/parser.nit:4142 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4084);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4142);
   }
-  /* ./parser//parser.nit:4086 */
+  /* parser/parser.nit:4144 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4086);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4144);
   }
-  /* ./parser//parser.nit:4088 */
+  /* parser/parser.nit:4146 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4088);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4146);
   }
-  /* ./parser//parser.nit:4090 */
+  /* parser/parser.nit:4148 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4090);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4148);
   }
-  /* ./parser//parser.nit:4092 */
+  /* parser/parser.nit:4150 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4092);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4150);
   }
-  /* ./parser//parser.nit:4093 */
+  /* parser/parser.nit:4151 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:4105 */
+  /* parser/parser.nit:4163 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4106 */
+  /* parser/parser.nit:4164 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4106);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4164);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -13317,7 +13495,7 @@ void parser___ReduceAction96___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4111;
+  fra.me.line = 4169;
   fra.me.meth = LOCATE_parser___ReduceAction96___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -13333,65 +13511,65 @@ void parser___ReduceAction96___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4113 */
+  /* parser/parser.nit:4171 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4114 */
+  /* parser/parser.nit:4172 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4115 */
+  /* parser/parser.nit:4173 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4116 */
+  /* parser/parser.nit:4174 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4117 */
+  /* parser/parser.nit:4175 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4118 */
+  /* parser/parser.nit:4176 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4119 */
+  /* parser/parser.nit:4177 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4121 */
+  /* parser/parser.nit:4179 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4121);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4179);
   }
-  /* ./parser//parser.nit:4123 */
+  /* parser/parser.nit:4181 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4123);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4181);
   }
-  /* ./parser//parser.nit:4125 */
+  /* parser/parser.nit:4183 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4125);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4183);
   }
-  /* ./parser//parser.nit:4127 */
+  /* parser/parser.nit:4185 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4127);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4185);
   }
-  /* ./parser//parser.nit:4129 */
+  /* parser/parser.nit:4187 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4129);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4187);
   }
-  /* ./parser//parser.nit:4131 */
+  /* parser/parser.nit:4189 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4131);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4189);
   }
-  /* ./parser//parser.nit:4132 */
+  /* parser/parser.nit:4190 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], fra.me.REG[7], NIT_NULL, NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:4144 */
+  /* parser/parser.nit:4202 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4145 */
+  /* parser/parser.nit:4203 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4145);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4203);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -13405,7 +13583,7 @@ void parser___ReduceAction97___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4150;
+  fra.me.line = 4208;
   fra.me.meth = LOCATE_parser___ReduceAction97___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -13422,73 +13600,73 @@ void parser___ReduceAction97___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4152 */
+  /* parser/parser.nit:4210 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4153 */
+  /* parser/parser.nit:4211 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4154 */
+  /* parser/parser.nit:4212 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4155 */
+  /* parser/parser.nit:4213 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4156 */
+  /* parser/parser.nit:4214 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4157 */
+  /* parser/parser.nit:4215 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4158 */
+  /* parser/parser.nit:4216 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4159 */
+  /* parser/parser.nit:4217 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4161 */
+  /* parser/parser.nit:4219 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4161);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4219);
   }
-  /* ./parser//parser.nit:4163 */
+  /* parser/parser.nit:4221 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4163);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4221);
   }
-  /* ./parser//parser.nit:4165 */
+  /* parser/parser.nit:4223 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4165);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4223);
   }
-  /* ./parser//parser.nit:4167 */
+  /* parser/parser.nit:4225 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4167);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4225);
   }
-  /* ./parser//parser.nit:4169 */
+  /* parser/parser.nit:4227 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4169);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4227);
   }
-  /* ./parser//parser.nit:4171 */
+  /* parser/parser.nit:4229 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4171);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4229);
   }
-  /* ./parser//parser.nit:4173 */
+  /* parser/parser.nit:4231 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4173);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4231);
   }
-  /* ./parser//parser.nit:4174 */
+  /* parser/parser.nit:4232 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:4186 */
+  /* parser/parser.nit:4244 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4187 */
+  /* parser/parser.nit:4245 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4187);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4245);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -13502,7 +13680,7 @@ void parser___ReduceAction98___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4192;
+  fra.me.line = 4250;
   fra.me.meth = LOCATE_parser___ReduceAction98___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -13518,65 +13696,65 @@ void parser___ReduceAction98___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4194 */
+  /* parser/parser.nit:4252 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4195 */
+  /* parser/parser.nit:4253 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4196 */
+  /* parser/parser.nit:4254 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4197 */
+  /* parser/parser.nit:4255 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4198 */
+  /* parser/parser.nit:4256 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4199 */
+  /* parser/parser.nit:4257 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4200 */
+  /* parser/parser.nit:4258 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4202 */
+  /* parser/parser.nit:4260 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4202);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4260);
   }
-  /* ./parser//parser.nit:4204 */
+  /* parser/parser.nit:4262 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4204);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4262);
   }
-  /* ./parser//parser.nit:4206 */
+  /* parser/parser.nit:4264 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4206);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4264);
   }
-  /* ./parser//parser.nit:4208 */
+  /* parser/parser.nit:4266 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4208);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4266);
   }
-  /* ./parser//parser.nit:4210 */
+  /* parser/parser.nit:4268 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4210);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4268);
   }
-  /* ./parser//parser.nit:4212 */
+  /* parser/parser.nit:4270 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4212);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4270);
   }
-  /* ./parser//parser.nit:4213 */
+  /* parser/parser.nit:4271 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:4225 */
+  /* parser/parser.nit:4283 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4226 */
+  /* parser/parser.nit:4284 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4226);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4284);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -13590,7 +13768,7 @@ void parser___ReduceAction99___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4231;
+  fra.me.line = 4289;
   fra.me.meth = LOCATE_parser___ReduceAction99___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -13607,73 +13785,73 @@ void parser___ReduceAction99___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4233 */
+  /* parser/parser.nit:4291 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4234 */
+  /* parser/parser.nit:4292 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4235 */
+  /* parser/parser.nit:4293 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4236 */
+  /* parser/parser.nit:4294 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4237 */
+  /* parser/parser.nit:4295 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4238 */
+  /* parser/parser.nit:4296 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4239 */
+  /* parser/parser.nit:4297 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4240 */
+  /* parser/parser.nit:4298 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4242 */
+  /* parser/parser.nit:4300 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4242);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4300);
   }
-  /* ./parser//parser.nit:4244 */
+  /* parser/parser.nit:4302 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4244);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4302);
   }
-  /* ./parser//parser.nit:4246 */
+  /* parser/parser.nit:4304 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4246);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4304);
   }
-  /* ./parser//parser.nit:4248 */
+  /* parser/parser.nit:4306 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4248);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4306);
   }
-  /* ./parser//parser.nit:4250 */
+  /* parser/parser.nit:4308 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4250);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4308);
   }
-  /* ./parser//parser.nit:4252 */
+  /* parser/parser.nit:4310 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4252);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4310);
   }
-  /* ./parser//parser.nit:4254 */
+  /* parser/parser.nit:4312 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4254);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4312);
   }
-  /* ./parser//parser.nit:4255 */
+  /* parser/parser.nit:4313 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], NIT_NULL, fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:4267 */
+  /* parser/parser.nit:4325 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4268 */
+  /* parser/parser.nit:4326 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4268);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4326);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -13687,7 +13865,7 @@ void parser___ReduceAction100___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4273;
+  fra.me.line = 4331;
   fra.me.meth = LOCATE_parser___ReduceAction100___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -13704,73 +13882,73 @@ void parser___ReduceAction100___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4275 */
+  /* parser/parser.nit:4333 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4276 */
+  /* parser/parser.nit:4334 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4277 */
+  /* parser/parser.nit:4335 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4278 */
+  /* parser/parser.nit:4336 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4279 */
+  /* parser/parser.nit:4337 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4280 */
+  /* parser/parser.nit:4338 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4281 */
+  /* parser/parser.nit:4339 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4282 */
+  /* parser/parser.nit:4340 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4284 */
+  /* parser/parser.nit:4342 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4284);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4342);
   }
-  /* ./parser//parser.nit:4286 */
+  /* parser/parser.nit:4344 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4286);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4344);
   }
-  /* ./parser//parser.nit:4288 */
+  /* parser/parser.nit:4346 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4288);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4346);
   }
-  /* ./parser//parser.nit:4290 */
+  /* parser/parser.nit:4348 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4290);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4348);
   }
-  /* ./parser//parser.nit:4292 */
+  /* parser/parser.nit:4350 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4292);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4350);
   }
-  /* ./parser//parser.nit:4294 */
+  /* parser/parser.nit:4352 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4294);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4352);
   }
-  /* ./parser//parser.nit:4296 */
+  /* parser/parser.nit:4354 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4296);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4354);
   }
-  /* ./parser//parser.nit:4297 */
+  /* parser/parser.nit:4355 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:4309 */
+  /* parser/parser.nit:4367 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4310 */
+  /* parser/parser.nit:4368 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4310);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4368);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -13784,7 +13962,7 @@ void parser___ReduceAction101___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4315;
+  fra.me.line = 4373;
   fra.me.meth = LOCATE_parser___ReduceAction101___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 11;
@@ -13802,81 +13980,81 @@ void parser___ReduceAction101___action(val_t p0, val_t p1){
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4317 */
+  /* parser/parser.nit:4375 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4318 */
+  /* parser/parser.nit:4376 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4319 */
+  /* parser/parser.nit:4377 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4320 */
+  /* parser/parser.nit:4378 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4321 */
+  /* parser/parser.nit:4379 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4322 */
+  /* parser/parser.nit:4380 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4323 */
+  /* parser/parser.nit:4381 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4324 */
+  /* parser/parser.nit:4382 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4325 */
+  /* parser/parser.nit:4383 */
   fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4327 */
+  /* parser/parser.nit:4385 */
   REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4327);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4385);
   }
-  /* ./parser//parser.nit:4329 */
+  /* parser/parser.nit:4387 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4329);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4387);
   }
-  /* ./parser//parser.nit:4331 */
+  /* parser/parser.nit:4389 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4331);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4389);
   }
-  /* ./parser//parser.nit:4333 */
+  /* parser/parser.nit:4391 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4333);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4391);
   }
-  /* ./parser//parser.nit:4335 */
+  /* parser/parser.nit:4393 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4335);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4393);
   }
-  /* ./parser//parser.nit:4337 */
+  /* parser/parser.nit:4395 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4337);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4395);
   }
-  /* ./parser//parser.nit:4339 */
+  /* parser/parser.nit:4397 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4339);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4397);
   }
-  /* ./parser//parser.nit:4341 */
+  /* parser/parser.nit:4399 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4341);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4399);
   }
-  /* ./parser//parser.nit:4342 */
+  /* parser/parser.nit:4400 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[10], fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:4354 */
+  /* parser/parser.nit:4412 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4355 */
+  /* parser/parser.nit:4413 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4355);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4413);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -13890,7 +14068,7 @@ void parser___ReduceAction102___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4360;
+  fra.me.line = 4418;
   fra.me.meth = LOCATE_parser___ReduceAction102___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -13905,61 +14083,61 @@ void parser___ReduceAction102___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4362 */
+  /* parser/parser.nit:4420 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4363 */
+  /* parser/parser.nit:4421 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4364 */
+  /* parser/parser.nit:4422 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4365 */
+  /* parser/parser.nit:4423 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4366 */
+  /* parser/parser.nit:4424 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4367 */
+  /* parser/parser.nit:4425 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4368 */
+  /* parser/parser.nit:4426 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4369 */
+  /* parser/parser.nit:4427 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4371 */
+  /* parser/parser.nit:4429 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4371);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4429);
   }
-  /* ./parser//parser.nit:4373 */
+  /* parser/parser.nit:4431 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4373);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4431);
   }
-  /* ./parser//parser.nit:4375 */
+  /* parser/parser.nit:4433 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4375);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4433);
   }
-  /* ./parser//parser.nit:4377 */
+  /* parser/parser.nit:4435 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4377);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4435);
   }
-  /* ./parser//parser.nit:4379 */
+  /* parser/parser.nit:4437 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4379);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4437);
   }
-  /* ./parser//parser.nit:4380 */
+  /* parser/parser.nit:4438 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[7], NIT_NULL, NIT_NULL, NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:4392 */
+  /* parser/parser.nit:4450 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4393 */
+  /* parser/parser.nit:4451 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4393);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4451);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -13973,7 +14151,7 @@ void parser___ReduceAction103___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4398;
+  fra.me.line = 4456;
   fra.me.meth = LOCATE_parser___ReduceAction103___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -13989,69 +14167,69 @@ void parser___ReduceAction103___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4400 */
+  /* parser/parser.nit:4458 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4401 */
+  /* parser/parser.nit:4459 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4402 */
+  /* parser/parser.nit:4460 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4403 */
+  /* parser/parser.nit:4461 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4404 */
+  /* parser/parser.nit:4462 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4405 */
+  /* parser/parser.nit:4463 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4406 */
+  /* parser/parser.nit:4464 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4407 */
+  /* parser/parser.nit:4465 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4408 */
+  /* parser/parser.nit:4466 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4410 */
+  /* parser/parser.nit:4468 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4410);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4468);
   }
-  /* ./parser//parser.nit:4412 */
+  /* parser/parser.nit:4470 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4412);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4470);
   }
-  /* ./parser//parser.nit:4414 */
+  /* parser/parser.nit:4472 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4414);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4472);
   }
-  /* ./parser//parser.nit:4416 */
+  /* parser/parser.nit:4474 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4416);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4474);
   }
-  /* ./parser//parser.nit:4418 */
+  /* parser/parser.nit:4476 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4418);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4476);
   }
-  /* ./parser//parser.nit:4420 */
+  /* parser/parser.nit:4478 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4420);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4478);
   }
-  /* ./parser//parser.nit:4421 */
+  /* parser/parser.nit:4479 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:4433 */
+  /* parser/parser.nit:4491 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4434 */
+  /* parser/parser.nit:4492 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4434);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4492);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -14065,7 +14243,7 @@ void parser___ReduceAction104___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4439;
+  fra.me.line = 4497;
   fra.me.meth = LOCATE_parser___ReduceAction104___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -14081,69 +14259,69 @@ void parser___ReduceAction104___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4441 */
+  /* parser/parser.nit:4499 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4442 */
+  /* parser/parser.nit:4500 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4443 */
+  /* parser/parser.nit:4501 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4444 */
+  /* parser/parser.nit:4502 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4445 */
+  /* parser/parser.nit:4503 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4446 */
+  /* parser/parser.nit:4504 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4447 */
+  /* parser/parser.nit:4505 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4448 */
+  /* parser/parser.nit:4506 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4449 */
+  /* parser/parser.nit:4507 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4451 */
+  /* parser/parser.nit:4509 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4451);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4509);
   }
-  /* ./parser//parser.nit:4453 */
+  /* parser/parser.nit:4511 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4453);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4511);
   }
-  /* ./parser//parser.nit:4455 */
+  /* parser/parser.nit:4513 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4455);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4513);
   }
-  /* ./parser//parser.nit:4457 */
+  /* parser/parser.nit:4515 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4457);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4515);
   }
-  /* ./parser//parser.nit:4459 */
+  /* parser/parser.nit:4517 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4459);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4517);
   }
-  /* ./parser//parser.nit:4461 */
+  /* parser/parser.nit:4519 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4461);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4519);
   }
-  /* ./parser//parser.nit:4462 */
+  /* parser/parser.nit:4520 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], fra.me.REG[7], NIT_NULL, NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:4474 */
+  /* parser/parser.nit:4532 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4475 */
+  /* parser/parser.nit:4533 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4475);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4533);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -14157,7 +14335,7 @@ void parser___ReduceAction105___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4480;
+  fra.me.line = 4538;
   fra.me.meth = LOCATE_parser___ReduceAction105___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -14174,77 +14352,77 @@ void parser___ReduceAction105___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4482 */
+  /* parser/parser.nit:4540 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4483 */
+  /* parser/parser.nit:4541 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4484 */
+  /* parser/parser.nit:4542 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4485 */
+  /* parser/parser.nit:4543 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4486 */
+  /* parser/parser.nit:4544 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4487 */
+  /* parser/parser.nit:4545 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4488 */
+  /* parser/parser.nit:4546 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4489 */
+  /* parser/parser.nit:4547 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4490 */
+  /* parser/parser.nit:4548 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4491 */
+  /* parser/parser.nit:4549 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4493 */
+  /* parser/parser.nit:4551 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4493);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4551);
   }
-  /* ./parser//parser.nit:4495 */
+  /* parser/parser.nit:4553 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4495);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4553);
   }
-  /* ./parser//parser.nit:4497 */
+  /* parser/parser.nit:4555 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4497);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4555);
   }
-  /* ./parser//parser.nit:4499 */
+  /* parser/parser.nit:4557 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4499);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4557);
   }
-  /* ./parser//parser.nit:4501 */
+  /* parser/parser.nit:4559 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4501);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4559);
   }
-  /* ./parser//parser.nit:4503 */
+  /* parser/parser.nit:4561 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4503);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4561);
   }
-  /* ./parser//parser.nit:4505 */
+  /* parser/parser.nit:4563 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4505);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4563);
   }
-  /* ./parser//parser.nit:4506 */
+  /* parser/parser.nit:4564 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:4518 */
+  /* parser/parser.nit:4576 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4519 */
+  /* parser/parser.nit:4577 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4519);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4577);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -14258,7 +14436,7 @@ void parser___ReduceAction106___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4524;
+  fra.me.line = 4582;
   fra.me.meth = LOCATE_parser___ReduceAction106___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -14274,69 +14452,69 @@ void parser___ReduceAction106___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4526 */
+  /* parser/parser.nit:4584 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4527 */
+  /* parser/parser.nit:4585 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4528 */
+  /* parser/parser.nit:4586 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4529 */
+  /* parser/parser.nit:4587 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4530 */
+  /* parser/parser.nit:4588 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4531 */
+  /* parser/parser.nit:4589 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4532 */
+  /* parser/parser.nit:4590 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4533 */
+  /* parser/parser.nit:4591 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4534 */
+  /* parser/parser.nit:4592 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4536 */
+  /* parser/parser.nit:4594 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4536);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4594);
   }
-  /* ./parser//parser.nit:4538 */
+  /* parser/parser.nit:4596 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4538);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4596);
   }
-  /* ./parser//parser.nit:4540 */
+  /* parser/parser.nit:4598 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4540);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4598);
   }
-  /* ./parser//parser.nit:4542 */
+  /* parser/parser.nit:4600 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4542);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4600);
   }
-  /* ./parser//parser.nit:4544 */
+  /* parser/parser.nit:4602 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4544);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4602);
   }
-  /* ./parser//parser.nit:4546 */
+  /* parser/parser.nit:4604 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4546);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4604);
   }
-  /* ./parser//parser.nit:4547 */
+  /* parser/parser.nit:4605 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:4559 */
+  /* parser/parser.nit:4617 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4560 */
+  /* parser/parser.nit:4618 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4560);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4618);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -14350,7 +14528,7 @@ void parser___ReduceAction107___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4565;
+  fra.me.line = 4623;
   fra.me.meth = LOCATE_parser___ReduceAction107___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -14367,77 +14545,77 @@ void parser___ReduceAction107___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4567 */
+  /* parser/parser.nit:4625 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4568 */
+  /* parser/parser.nit:4626 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4569 */
+  /* parser/parser.nit:4627 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4570 */
+  /* parser/parser.nit:4628 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4571 */
+  /* parser/parser.nit:4629 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4572 */
+  /* parser/parser.nit:4630 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4573 */
+  /* parser/parser.nit:4631 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4574 */
+  /* parser/parser.nit:4632 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4575 */
+  /* parser/parser.nit:4633 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4576 */
+  /* parser/parser.nit:4634 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4578 */
+  /* parser/parser.nit:4636 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4578);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4636);
   }
-  /* ./parser//parser.nit:4580 */
+  /* parser/parser.nit:4638 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4580);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4638);
   }
-  /* ./parser//parser.nit:4582 */
+  /* parser/parser.nit:4640 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4582);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4640);
   }
-  /* ./parser//parser.nit:4584 */
+  /* parser/parser.nit:4642 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4584);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4642);
   }
-  /* ./parser//parser.nit:4586 */
+  /* parser/parser.nit:4644 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4586);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4644);
   }
-  /* ./parser//parser.nit:4588 */
+  /* parser/parser.nit:4646 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4588);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4646);
   }
-  /* ./parser//parser.nit:4590 */
+  /* parser/parser.nit:4648 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4590);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4648);
   }
-  /* ./parser//parser.nit:4591 */
+  /* parser/parser.nit:4649 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], NIT_NULL, fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:4603 */
+  /* parser/parser.nit:4661 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4604 */
+  /* parser/parser.nit:4662 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4604);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4662);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -14451,7 +14629,7 @@ void parser___ReduceAction108___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4609;
+  fra.me.line = 4667;
   fra.me.meth = LOCATE_parser___ReduceAction108___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -14468,77 +14646,77 @@ void parser___ReduceAction108___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4611 */
+  /* parser/parser.nit:4669 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4612 */
+  /* parser/parser.nit:4670 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4613 */
+  /* parser/parser.nit:4671 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4614 */
+  /* parser/parser.nit:4672 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4615 */
+  /* parser/parser.nit:4673 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4616 */
+  /* parser/parser.nit:4674 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4617 */
+  /* parser/parser.nit:4675 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4618 */
+  /* parser/parser.nit:4676 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4619 */
+  /* parser/parser.nit:4677 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4620 */
+  /* parser/parser.nit:4678 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4622 */
+  /* parser/parser.nit:4680 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4622);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4680);
   }
-  /* ./parser//parser.nit:4624 */
+  /* parser/parser.nit:4682 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4624);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4682);
   }
-  /* ./parser//parser.nit:4626 */
+  /* parser/parser.nit:4684 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4626);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4684);
   }
-  /* ./parser//parser.nit:4628 */
+  /* parser/parser.nit:4686 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4628);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4686);
   }
-  /* ./parser//parser.nit:4630 */
+  /* parser/parser.nit:4688 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4630);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4688);
   }
-  /* ./parser//parser.nit:4632 */
+  /* parser/parser.nit:4690 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4632);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4690);
   }
-  /* ./parser//parser.nit:4634 */
+  /* parser/parser.nit:4692 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4634);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4692);
   }
-  /* ./parser//parser.nit:4635 */
+  /* parser/parser.nit:4693 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:4647 */
+  /* parser/parser.nit:4705 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4648 */
+  /* parser/parser.nit:4706 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4648);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4706);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -14552,7 +14730,7 @@ void parser___ReduceAction109___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4653;
+  fra.me.line = 4711;
   fra.me.meth = LOCATE_parser___ReduceAction109___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 11;
@@ -14570,85 +14748,85 @@ void parser___ReduceAction109___action(val_t p0, val_t p1){
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4655 */
+  /* parser/parser.nit:4713 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4656 */
+  /* parser/parser.nit:4714 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4657 */
+  /* parser/parser.nit:4715 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4658 */
+  /* parser/parser.nit:4716 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4659 */
+  /* parser/parser.nit:4717 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4660 */
+  /* parser/parser.nit:4718 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4661 */
+  /* parser/parser.nit:4719 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4662 */
+  /* parser/parser.nit:4720 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4663 */
+  /* parser/parser.nit:4721 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4664 */
+  /* parser/parser.nit:4722 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4665 */
+  /* parser/parser.nit:4723 */
   fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4667 */
+  /* parser/parser.nit:4725 */
   REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4667);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4725);
   }
-  /* ./parser//parser.nit:4669 */
+  /* parser/parser.nit:4727 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4669);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4727);
   }
-  /* ./parser//parser.nit:4671 */
+  /* parser/parser.nit:4729 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4671);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4729);
   }
-  /* ./parser//parser.nit:4673 */
+  /* parser/parser.nit:4731 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4673);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4731);
   }
-  /* ./parser//parser.nit:4675 */
+  /* parser/parser.nit:4733 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4675);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4733);
   }
-  /* ./parser//parser.nit:4677 */
+  /* parser/parser.nit:4735 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4677);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4735);
   }
-  /* ./parser//parser.nit:4679 */
+  /* parser/parser.nit:4737 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4679);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4737);
   }
-  /* ./parser//parser.nit:4681 */
+  /* parser/parser.nit:4739 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4681);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4739);
   }
-  /* ./parser//parser.nit:4682 */
+  /* parser/parser.nit:4740 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[10], fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:4694 */
+  /* parser/parser.nit:4752 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4695 */
+  /* parser/parser.nit:4753 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4695);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4753);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -14662,7 +14840,7 @@ void parser___ReduceAction110___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4700;
+  fra.me.line = 4758;
   fra.me.meth = LOCATE_parser___ReduceAction110___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -14678,69 +14856,69 @@ void parser___ReduceAction110___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4702 */
+  /* parser/parser.nit:4760 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4703 */
+  /* parser/parser.nit:4761 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4704 */
+  /* parser/parser.nit:4762 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4705 */
+  /* parser/parser.nit:4763 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4706 */
+  /* parser/parser.nit:4764 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4707 */
+  /* parser/parser.nit:4765 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4708 */
+  /* parser/parser.nit:4766 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4709 */
+  /* parser/parser.nit:4767 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4710 */
+  /* parser/parser.nit:4768 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4712 */
+  /* parser/parser.nit:4770 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4712);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4770);
   }
-  /* ./parser//parser.nit:4714 */
+  /* parser/parser.nit:4772 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4714);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4772);
   }
-  /* ./parser//parser.nit:4716 */
+  /* parser/parser.nit:4774 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4716);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4774);
   }
-  /* ./parser//parser.nit:4718 */
+  /* parser/parser.nit:4776 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4718);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4776);
   }
-  /* ./parser//parser.nit:4720 */
+  /* parser/parser.nit:4778 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4720);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4778);
   }
-  /* ./parser//parser.nit:4722 */
+  /* parser/parser.nit:4780 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4722);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4780);
   }
-  /* ./parser//parser.nit:4723 */
+  /* parser/parser.nit:4781 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, NIT_NULL, NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:4735 */
+  /* parser/parser.nit:4793 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4736 */
+  /* parser/parser.nit:4794 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4736);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4794);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -14754,7 +14932,7 @@ void parser___ReduceAction111___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4741;
+  fra.me.line = 4799;
   fra.me.meth = LOCATE_parser___ReduceAction111___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -14771,77 +14949,77 @@ void parser___ReduceAction111___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4743 */
+  /* parser/parser.nit:4801 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4744 */
+  /* parser/parser.nit:4802 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4745 */
+  /* parser/parser.nit:4803 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4746 */
+  /* parser/parser.nit:4804 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4747 */
+  /* parser/parser.nit:4805 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4748 */
+  /* parser/parser.nit:4806 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4749 */
+  /* parser/parser.nit:4807 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4750 */
+  /* parser/parser.nit:4808 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4751 */
+  /* parser/parser.nit:4809 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4752 */
+  /* parser/parser.nit:4810 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4754 */
+  /* parser/parser.nit:4812 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4754);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4812);
   }
-  /* ./parser//parser.nit:4756 */
+  /* parser/parser.nit:4814 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4756);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4814);
   }
-  /* ./parser//parser.nit:4758 */
+  /* parser/parser.nit:4816 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4758);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4816);
   }
-  /* ./parser//parser.nit:4760 */
+  /* parser/parser.nit:4818 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4760);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4818);
   }
-  /* ./parser//parser.nit:4762 */
+  /* parser/parser.nit:4820 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4762);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4820);
   }
-  /* ./parser//parser.nit:4764 */
+  /* parser/parser.nit:4822 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4764);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4822);
   }
-  /* ./parser//parser.nit:4766 */
+  /* parser/parser.nit:4824 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4766);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4824);
   }
-  /* ./parser//parser.nit:4767 */
+  /* parser/parser.nit:4825 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], NIT_NULL, NIT_NULL, fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:4779 */
+  /* parser/parser.nit:4837 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4780 */
+  /* parser/parser.nit:4838 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4780);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4838);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -14855,7 +15033,7 @@ void parser___ReduceAction112___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4785;
+  fra.me.line = 4843;
   fra.me.meth = LOCATE_parser___ReduceAction112___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -14872,77 +15050,77 @@ void parser___ReduceAction112___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4787 */
+  /* parser/parser.nit:4845 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4788 */
+  /* parser/parser.nit:4846 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4789 */
+  /* parser/parser.nit:4847 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4790 */
+  /* parser/parser.nit:4848 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4791 */
+  /* parser/parser.nit:4849 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4792 */
+  /* parser/parser.nit:4850 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4793 */
+  /* parser/parser.nit:4851 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4794 */
+  /* parser/parser.nit:4852 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4795 */
+  /* parser/parser.nit:4853 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4796 */
+  /* parser/parser.nit:4854 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4798 */
+  /* parser/parser.nit:4856 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4798);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4856);
   }
-  /* ./parser//parser.nit:4800 */
+  /* parser/parser.nit:4858 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4800);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4858);
   }
-  /* ./parser//parser.nit:4802 */
+  /* parser/parser.nit:4860 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4802);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4860);
   }
-  /* ./parser//parser.nit:4804 */
+  /* parser/parser.nit:4862 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4804);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4862);
   }
-  /* ./parser//parser.nit:4806 */
+  /* parser/parser.nit:4864 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4806);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4864);
   }
-  /* ./parser//parser.nit:4808 */
+  /* parser/parser.nit:4866 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4808);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4866);
   }
-  /* ./parser//parser.nit:4810 */
+  /* parser/parser.nit:4868 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4810);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4868);
   }
-  /* ./parser//parser.nit:4811 */
+  /* parser/parser.nit:4869 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], fra.me.REG[8], NIT_NULL, NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:4823 */
+  /* parser/parser.nit:4881 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4824 */
+  /* parser/parser.nit:4882 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4824);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4882);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -14956,7 +15134,7 @@ void parser___ReduceAction113___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4829;
+  fra.me.line = 4887;
   fra.me.meth = LOCATE_parser___ReduceAction113___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 11;
@@ -14974,85 +15152,85 @@ void parser___ReduceAction113___action(val_t p0, val_t p1){
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4831 */
+  /* parser/parser.nit:4889 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4832 */
+  /* parser/parser.nit:4890 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4833 */
+  /* parser/parser.nit:4891 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4834 */
+  /* parser/parser.nit:4892 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4835 */
+  /* parser/parser.nit:4893 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4836 */
+  /* parser/parser.nit:4894 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4837 */
+  /* parser/parser.nit:4895 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4838 */
+  /* parser/parser.nit:4896 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4839 */
+  /* parser/parser.nit:4897 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4840 */
+  /* parser/parser.nit:4898 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4841 */
+  /* parser/parser.nit:4899 */
   fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4843 */
+  /* parser/parser.nit:4901 */
   REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4843);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4901);
   }
-  /* ./parser//parser.nit:4845 */
+  /* parser/parser.nit:4903 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4845);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4903);
   }
-  /* ./parser//parser.nit:4847 */
+  /* parser/parser.nit:4905 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4847);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4905);
   }
-  /* ./parser//parser.nit:4849 */
+  /* parser/parser.nit:4907 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4849);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4907);
   }
-  /* ./parser//parser.nit:4851 */
+  /* parser/parser.nit:4909 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4851);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4909);
   }
-  /* ./parser//parser.nit:4853 */
+  /* parser/parser.nit:4911 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4853);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4911);
   }
-  /* ./parser//parser.nit:4855 */
+  /* parser/parser.nit:4913 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4855);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4913);
   }
-  /* ./parser//parser.nit:4857 */
+  /* parser/parser.nit:4915 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4857);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4915);
   }
-  /* ./parser//parser.nit:4858 */
+  /* parser/parser.nit:4916 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[10], fra.me.REG[9], NIT_NULL, fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:4870 */
+  /* parser/parser.nit:4928 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4871 */
+  /* parser/parser.nit:4929 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4871);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4929);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -15066,7 +15244,7 @@ void parser___ReduceAction114___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4876;
+  fra.me.line = 4934;
   fra.me.meth = LOCATE_parser___ReduceAction114___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -15083,77 +15261,77 @@ void parser___ReduceAction114___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4878 */
+  /* parser/parser.nit:4936 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4879 */
+  /* parser/parser.nit:4937 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4880 */
+  /* parser/parser.nit:4938 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4881 */
+  /* parser/parser.nit:4939 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4882 */
+  /* parser/parser.nit:4940 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4883 */
+  /* parser/parser.nit:4941 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4884 */
+  /* parser/parser.nit:4942 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4885 */
+  /* parser/parser.nit:4943 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4886 */
+  /* parser/parser.nit:4944 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4887 */
+  /* parser/parser.nit:4945 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4889 */
+  /* parser/parser.nit:4947 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4889);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4947);
   }
-  /* ./parser//parser.nit:4891 */
+  /* parser/parser.nit:4949 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4891);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4949);
   }
-  /* ./parser//parser.nit:4893 */
+  /* parser/parser.nit:4951 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4893);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4951);
   }
-  /* ./parser//parser.nit:4895 */
+  /* parser/parser.nit:4953 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4895);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4953);
   }
-  /* ./parser//parser.nit:4897 */
+  /* parser/parser.nit:4955 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4897);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4955);
   }
-  /* ./parser//parser.nit:4899 */
+  /* parser/parser.nit:4957 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4899);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4957);
   }
-  /* ./parser//parser.nit:4901 */
+  /* parser/parser.nit:4959 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4901);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4959);
   }
-  /* ./parser//parser.nit:4902 */
+  /* parser/parser.nit:4960 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], NIT_NULL, fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:4914 */
+  /* parser/parser.nit:4972 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4915 */
+  /* parser/parser.nit:4973 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4915);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4973);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -15167,7 +15345,7 @@ void parser___ReduceAction115___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4920;
+  fra.me.line = 4978;
   fra.me.meth = LOCATE_parser___ReduceAction115___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 11;
@@ -15185,85 +15363,85 @@ void parser___ReduceAction115___action(val_t p0, val_t p1){
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4922 */
+  /* parser/parser.nit:4980 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4923 */
+  /* parser/parser.nit:4981 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4924 */
+  /* parser/parser.nit:4982 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4925 */
+  /* parser/parser.nit:4983 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4926 */
+  /* parser/parser.nit:4984 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4927 */
+  /* parser/parser.nit:4985 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4928 */
+  /* parser/parser.nit:4986 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4929 */
+  /* parser/parser.nit:4987 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4930 */
+  /* parser/parser.nit:4988 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4931 */
+  /* parser/parser.nit:4989 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4932 */
+  /* parser/parser.nit:4990 */
   fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4934 */
+  /* parser/parser.nit:4992 */
   REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4934);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4992);
   }
-  /* ./parser//parser.nit:4936 */
+  /* parser/parser.nit:4994 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4936);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4994);
   }
-  /* ./parser//parser.nit:4938 */
+  /* parser/parser.nit:4996 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4938);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4996);
   }
-  /* ./parser//parser.nit:4940 */
+  /* parser/parser.nit:4998 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4940);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 4998);
   }
-  /* ./parser//parser.nit:4942 */
+  /* parser/parser.nit:5000 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4942);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5000);
   }
-  /* ./parser//parser.nit:4944 */
+  /* parser/parser.nit:5002 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4944);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5002);
   }
-  /* ./parser//parser.nit:4946 */
+  /* parser/parser.nit:5004 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4946);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5004);
   }
-  /* ./parser//parser.nit:4948 */
+  /* parser/parser.nit:5006 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4948);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5006);
   }
-  /* ./parser//parser.nit:4949 */
+  /* parser/parser.nit:5007 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[10], NIT_NULL, fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:4961 */
+  /* parser/parser.nit:5019 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:4962 */
+  /* parser/parser.nit:5020 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 4962);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5020);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -15277,7 +15455,7 @@ void parser___ReduceAction116___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 4967;
+  fra.me.line = 5025;
   fra.me.meth = LOCATE_parser___ReduceAction116___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 11;
@@ -15295,85 +15473,85 @@ void parser___ReduceAction116___action(val_t p0, val_t p1){
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:4969 */
+  /* parser/parser.nit:5027 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:4970 */
+  /* parser/parser.nit:5028 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4971 */
+  /* parser/parser.nit:5029 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4972 */
+  /* parser/parser.nit:5030 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4973 */
+  /* parser/parser.nit:5031 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4974 */
+  /* parser/parser.nit:5032 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4975 */
+  /* parser/parser.nit:5033 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4976 */
+  /* parser/parser.nit:5034 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4977 */
+  /* parser/parser.nit:5035 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4978 */
+  /* parser/parser.nit:5036 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4979 */
+  /* parser/parser.nit:5037 */
   fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:4981 */
+  /* parser/parser.nit:5039 */
   REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4981);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5039);
   }
-  /* ./parser//parser.nit:4983 */
+  /* parser/parser.nit:5041 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4983);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5041);
   }
-  /* ./parser//parser.nit:4985 */
+  /* parser/parser.nit:5043 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4985);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5043);
   }
-  /* ./parser//parser.nit:4987 */
+  /* parser/parser.nit:5045 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4987);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5045);
   }
-  /* ./parser//parser.nit:4989 */
+  /* parser/parser.nit:5047 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4989);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5047);
   }
-  /* ./parser//parser.nit:4991 */
+  /* parser/parser.nit:5049 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4991);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5049);
   }
-  /* ./parser//parser.nit:4993 */
+  /* parser/parser.nit:5051 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4993);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5051);
   }
-  /* ./parser//parser.nit:4995 */
+  /* parser/parser.nit:5053 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 4995);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5053);
   }
-  /* ./parser//parser.nit:4996 */
+  /* parser/parser.nit:5054 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[10], fra.me.REG[9], fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:5008 */
+  /* parser/parser.nit:5066 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5009 */
+  /* parser/parser.nit:5067 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5009);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5067);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -15387,7 +15565,7 @@ void parser___ReduceAction117___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5014;
+  fra.me.line = 5072;
   fra.me.meth = LOCATE_parser___ReduceAction117___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 12;
@@ -15406,93 +15584,93 @@ void parser___ReduceAction117___action(val_t p0, val_t p1){
   fra.me.REG[11] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5016 */
+  /* parser/parser.nit:5074 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5017 */
+  /* parser/parser.nit:5075 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5018 */
+  /* parser/parser.nit:5076 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5019 */
+  /* parser/parser.nit:5077 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5020 */
+  /* parser/parser.nit:5078 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5021 */
+  /* parser/parser.nit:5079 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5022 */
+  /* parser/parser.nit:5080 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5023 */
+  /* parser/parser.nit:5081 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5024 */
+  /* parser/parser.nit:5082 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5025 */
+  /* parser/parser.nit:5083 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5026 */
+  /* parser/parser.nit:5084 */
   fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5027 */
+  /* parser/parser.nit:5085 */
   fra.me.REG[11] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5029 */
+  /* parser/parser.nit:5087 */
   REGB0 = TAG_Bool((fra.me.REG[11]==NIT_NULL) || VAL_ISA(fra.me.REG[11], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5029);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5087);
   }
-  /* ./parser//parser.nit:5031 */
+  /* parser/parser.nit:5089 */
   REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5031);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5089);
   }
-  /* ./parser//parser.nit:5033 */
+  /* parser/parser.nit:5091 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5033);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5091);
   }
-  /* ./parser//parser.nit:5035 */
+  /* parser/parser.nit:5093 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5035);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5093);
   }
-  /* ./parser//parser.nit:5037 */
+  /* parser/parser.nit:5095 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5037);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5095);
   }
-  /* ./parser//parser.nit:5039 */
+  /* parser/parser.nit:5097 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5039);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5097);
   }
-  /* ./parser//parser.nit:5041 */
+  /* parser/parser.nit:5099 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5041);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5099);
   }
-  /* ./parser//parser.nit:5043 */
+  /* parser/parser.nit:5101 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5043);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5101);
   }
-  /* ./parser//parser.nit:5045 */
+  /* parser/parser.nit:5103 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5045);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5103);
   }
-  /* ./parser//parser.nit:5046 */
+  /* parser/parser.nit:5104 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[11], fra.me.REG[10], fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:5058 */
+  /* parser/parser.nit:5116 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5059 */
+  /* parser/parser.nit:5117 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5059);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5117);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -15506,7 +15684,7 @@ void parser___ReduceAction118___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5064;
+  fra.me.line = 5122;
   fra.me.meth = LOCATE_parser___ReduceAction118___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -15520,49 +15698,49 @@ void parser___ReduceAction118___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5066 */
+  /* parser/parser.nit:5124 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5067 */
+  /* parser/parser.nit:5125 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5068 */
+  /* parser/parser.nit:5126 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5069 */
+  /* parser/parser.nit:5127 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5070 */
+  /* parser/parser.nit:5128 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5072 */
+  /* parser/parser.nit:5130 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5072);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5130);
   }
-  /* ./parser//parser.nit:5074 */
+  /* parser/parser.nit:5132 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5074);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5132);
   }
-  /* ./parser//parser.nit:5076 */
+  /* parser/parser.nit:5134 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5076);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5134);
   }
-  /* ./parser//parser.nit:5078 */
+  /* parser/parser.nit:5136 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5078);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5136);
   }
-  /* ./parser//parser.nit:5079 */
+  /* parser/parser.nit:5137 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[6], NIT_NULL, NIT_NULL, NIT_NULL, fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:5091 */
+  /* parser/parser.nit:5149 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5092 */
+  /* parser/parser.nit:5150 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5092);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5150);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -15576,7 +15754,7 @@ void parser___ReduceAction119___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5097;
+  fra.me.line = 5155;
   fra.me.meth = LOCATE_parser___ReduceAction119___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -15591,57 +15769,57 @@ void parser___ReduceAction119___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5099 */
+  /* parser/parser.nit:5157 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5100 */
+  /* parser/parser.nit:5158 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5101 */
+  /* parser/parser.nit:5159 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5102 */
+  /* parser/parser.nit:5160 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5103 */
+  /* parser/parser.nit:5161 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5104 */
+  /* parser/parser.nit:5162 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5106 */
+  /* parser/parser.nit:5164 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5106);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5164);
   }
-  /* ./parser//parser.nit:5108 */
+  /* parser/parser.nit:5166 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5108);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5166);
   }
-  /* ./parser//parser.nit:5110 */
+  /* parser/parser.nit:5168 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5110);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5168);
   }
-  /* ./parser//parser.nit:5112 */
+  /* parser/parser.nit:5170 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5112);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5170);
   }
-  /* ./parser//parser.nit:5114 */
+  /* parser/parser.nit:5172 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5114);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5172);
   }
-  /* ./parser//parser.nit:5115 */
+  /* parser/parser.nit:5173 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[7], NIT_NULL, NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:5127 */
+  /* parser/parser.nit:5185 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5128 */
+  /* parser/parser.nit:5186 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5128);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5186);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -15655,7 +15833,7 @@ void parser___ReduceAction120___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5133;
+  fra.me.line = 5191;
   fra.me.meth = LOCATE_parser___ReduceAction120___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -15670,57 +15848,57 @@ void parser___ReduceAction120___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5135 */
+  /* parser/parser.nit:5193 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5136 */
+  /* parser/parser.nit:5194 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5137 */
+  /* parser/parser.nit:5195 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5138 */
+  /* parser/parser.nit:5196 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5139 */
+  /* parser/parser.nit:5197 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5140 */
+  /* parser/parser.nit:5198 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5142 */
+  /* parser/parser.nit:5200 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5142);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5200);
   }
-  /* ./parser//parser.nit:5144 */
+  /* parser/parser.nit:5202 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5144);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5202);
   }
-  /* ./parser//parser.nit:5146 */
+  /* parser/parser.nit:5204 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5146);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5204);
   }
-  /* ./parser//parser.nit:5148 */
+  /* parser/parser.nit:5206 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5148);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5206);
   }
-  /* ./parser//parser.nit:5150 */
+  /* parser/parser.nit:5208 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5150);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5208);
   }
-  /* ./parser//parser.nit:5151 */
+  /* parser/parser.nit:5209 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[7], NIT_NULL, NIT_NULL, NIT_NULL, fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:5163 */
+  /* parser/parser.nit:5221 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5164 */
+  /* parser/parser.nit:5222 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5164);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5222);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -15734,7 +15912,7 @@ void parser___ReduceAction121___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5169;
+  fra.me.line = 5227;
   fra.me.meth = LOCATE_parser___ReduceAction121___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -15750,65 +15928,65 @@ void parser___ReduceAction121___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5171 */
+  /* parser/parser.nit:5229 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5172 */
+  /* parser/parser.nit:5230 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5173 */
+  /* parser/parser.nit:5231 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5174 */
+  /* parser/parser.nit:5232 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5175 */
+  /* parser/parser.nit:5233 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5176 */
+  /* parser/parser.nit:5234 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5177 */
+  /* parser/parser.nit:5235 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5179 */
+  /* parser/parser.nit:5237 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5179);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5237);
   }
-  /* ./parser//parser.nit:5181 */
+  /* parser/parser.nit:5239 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5181);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5239);
   }
-  /* ./parser//parser.nit:5183 */
+  /* parser/parser.nit:5241 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5183);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5241);
   }
-  /* ./parser//parser.nit:5185 */
+  /* parser/parser.nit:5243 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5185);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5243);
   }
-  /* ./parser//parser.nit:5187 */
+  /* parser/parser.nit:5245 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5187);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5245);
   }
-  /* ./parser//parser.nit:5189 */
+  /* parser/parser.nit:5247 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5189);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5247);
   }
-  /* ./parser//parser.nit:5190 */
+  /* parser/parser.nit:5248 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:5202 */
+  /* parser/parser.nit:5260 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5203 */
+  /* parser/parser.nit:5261 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5203);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5261);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -15822,7 +16000,7 @@ void parser___ReduceAction122___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5208;
+  fra.me.line = 5266;
   fra.me.meth = LOCATE_parser___ReduceAction122___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -15837,57 +16015,57 @@ void parser___ReduceAction122___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5210 */
+  /* parser/parser.nit:5268 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5211 */
+  /* parser/parser.nit:5269 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5212 */
+  /* parser/parser.nit:5270 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5213 */
+  /* parser/parser.nit:5271 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5214 */
+  /* parser/parser.nit:5272 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5215 */
+  /* parser/parser.nit:5273 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5217 */
+  /* parser/parser.nit:5275 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5217);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5275);
   }
-  /* ./parser//parser.nit:5219 */
+  /* parser/parser.nit:5277 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5219);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5277);
   }
-  /* ./parser//parser.nit:5221 */
+  /* parser/parser.nit:5279 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5221);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5279);
   }
-  /* ./parser//parser.nit:5223 */
+  /* parser/parser.nit:5281 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5223);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5281);
   }
-  /* ./parser//parser.nit:5225 */
+  /* parser/parser.nit:5283 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5225);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5283);
   }
-  /* ./parser//parser.nit:5226 */
+  /* parser/parser.nit:5284 */
   fra.me.REG[4] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[7], NIT_NULL, fra.me.REG[3], NIT_NULL, fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:5238 */
+  /* parser/parser.nit:5296 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:5239 */
+  /* parser/parser.nit:5297 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5239);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5297);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -15901,7 +16079,7 @@ void parser___ReduceAction123___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5244;
+  fra.me.line = 5302;
   fra.me.meth = LOCATE_parser___ReduceAction123___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -15917,65 +16095,65 @@ void parser___ReduceAction123___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5246 */
+  /* parser/parser.nit:5304 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5247 */
+  /* parser/parser.nit:5305 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5248 */
+  /* parser/parser.nit:5306 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5249 */
+  /* parser/parser.nit:5307 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5250 */
+  /* parser/parser.nit:5308 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5251 */
+  /* parser/parser.nit:5309 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5252 */
+  /* parser/parser.nit:5310 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5254 */
+  /* parser/parser.nit:5312 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5254);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5312);
   }
-  /* ./parser//parser.nit:5256 */
+  /* parser/parser.nit:5314 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5256);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5314);
   }
-  /* ./parser//parser.nit:5258 */
+  /* parser/parser.nit:5316 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5258);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5316);
   }
-  /* ./parser//parser.nit:5260 */
+  /* parser/parser.nit:5318 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5260);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5318);
   }
-  /* ./parser//parser.nit:5262 */
+  /* parser/parser.nit:5320 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5262);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5320);
   }
-  /* ./parser//parser.nit:5264 */
+  /* parser/parser.nit:5322 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5264);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5322);
   }
-  /* ./parser//parser.nit:5265 */
+  /* parser/parser.nit:5323 */
   fra.me.REG[4] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[3], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:5277 */
+  /* parser/parser.nit:5335 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:5278 */
+  /* parser/parser.nit:5336 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5278);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5336);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -15989,7 +16167,7 @@ void parser___ReduceAction124___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5283;
+  fra.me.line = 5341;
   fra.me.meth = LOCATE_parser___ReduceAction124___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -16005,65 +16183,65 @@ void parser___ReduceAction124___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5285 */
+  /* parser/parser.nit:5343 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5286 */
+  /* parser/parser.nit:5344 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5287 */
+  /* parser/parser.nit:5345 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5288 */
+  /* parser/parser.nit:5346 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5289 */
+  /* parser/parser.nit:5347 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5290 */
+  /* parser/parser.nit:5348 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5291 */
+  /* parser/parser.nit:5349 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5293 */
+  /* parser/parser.nit:5351 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5293);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5351);
   }
-  /* ./parser//parser.nit:5295 */
+  /* parser/parser.nit:5353 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5295);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5353);
   }
-  /* ./parser//parser.nit:5297 */
+  /* parser/parser.nit:5355 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5297);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5355);
   }
-  /* ./parser//parser.nit:5299 */
+  /* parser/parser.nit:5357 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5299);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5357);
   }
-  /* ./parser//parser.nit:5301 */
+  /* parser/parser.nit:5359 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5301);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5359);
   }
-  /* ./parser//parser.nit:5303 */
+  /* parser/parser.nit:5361 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5303);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5361);
   }
-  /* ./parser//parser.nit:5304 */
+  /* parser/parser.nit:5362 */
   fra.me.REG[4] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[3], NIT_NULL, fra.me.REG[7], fra.me.REG[6], NIT_NULL, fra.me.REG[5], fra.me.REG[4], NIT_NULL);
-  /* ./parser//parser.nit:5316 */
+  /* parser/parser.nit:5374 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:5317 */
+  /* parser/parser.nit:5375 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5317);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5375);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -16077,7 +16255,7 @@ void parser___ReduceAction125___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5322;
+  fra.me.line = 5380;
   fra.me.meth = LOCATE_parser___ReduceAction125___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -16094,73 +16272,73 @@ void parser___ReduceAction125___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5324 */
+  /* parser/parser.nit:5382 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5325 */
+  /* parser/parser.nit:5383 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5326 */
+  /* parser/parser.nit:5384 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5327 */
+  /* parser/parser.nit:5385 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5328 */
+  /* parser/parser.nit:5386 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5329 */
+  /* parser/parser.nit:5387 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5330 */
+  /* parser/parser.nit:5388 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5331 */
+  /* parser/parser.nit:5389 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5333 */
+  /* parser/parser.nit:5391 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5333);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5391);
   }
-  /* ./parser//parser.nit:5335 */
+  /* parser/parser.nit:5393 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5335);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5393);
   }
-  /* ./parser//parser.nit:5337 */
+  /* parser/parser.nit:5395 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5337);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5395);
   }
-  /* ./parser//parser.nit:5339 */
+  /* parser/parser.nit:5397 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5339);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5397);
   }
-  /* ./parser//parser.nit:5341 */
+  /* parser/parser.nit:5399 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5341);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5399);
   }
-  /* ./parser//parser.nit:5343 */
+  /* parser/parser.nit:5401 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5343);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5401);
   }
-  /* ./parser//parser.nit:5345 */
+  /* parser/parser.nit:5403 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5345);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5403);
   }
-  /* ./parser//parser.nit:5346 */
+  /* parser/parser.nit:5404 */
   fra.me.REG[4] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], NIT_NULL, fra.me.REG[3], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], NIT_NULL, fra.me.REG[5], fra.me.REG[4], NIT_NULL);
-  /* ./parser//parser.nit:5358 */
+  /* parser/parser.nit:5416 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:5359 */
+  /* parser/parser.nit:5417 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5359);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5417);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -16174,7 +16352,7 @@ void parser___ReduceAction126___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5364;
+  fra.me.line = 5422;
   fra.me.meth = LOCATE_parser___ReduceAction126___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -16189,61 +16367,61 @@ void parser___ReduceAction126___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5366 */
+  /* parser/parser.nit:5424 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5367 */
+  /* parser/parser.nit:5425 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5368 */
+  /* parser/parser.nit:5426 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5369 */
+  /* parser/parser.nit:5427 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5370 */
+  /* parser/parser.nit:5428 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5371 */
+  /* parser/parser.nit:5429 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5372 */
+  /* parser/parser.nit:5430 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5373 */
+  /* parser/parser.nit:5431 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5375 */
+  /* parser/parser.nit:5433 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5375);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5433);
   }
-  /* ./parser//parser.nit:5377 */
+  /* parser/parser.nit:5435 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5377);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5435);
   }
-  /* ./parser//parser.nit:5379 */
+  /* parser/parser.nit:5437 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5379);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5437);
   }
-  /* ./parser//parser.nit:5381 */
+  /* parser/parser.nit:5439 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5381);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5439);
   }
-  /* ./parser//parser.nit:5383 */
+  /* parser/parser.nit:5441 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5383);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5441);
   }
-  /* ./parser//parser.nit:5384 */
+  /* parser/parser.nit:5442 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[7], NIT_NULL, NIT_NULL, NIT_NULL, fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:5396 */
+  /* parser/parser.nit:5454 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5397 */
+  /* parser/parser.nit:5455 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5397);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5455);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -16257,7 +16435,7 @@ void parser___ReduceAction127___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5402;
+  fra.me.line = 5460;
   fra.me.meth = LOCATE_parser___ReduceAction127___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -16273,69 +16451,69 @@ void parser___ReduceAction127___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5404 */
+  /* parser/parser.nit:5462 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5405 */
+  /* parser/parser.nit:5463 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5406 */
+  /* parser/parser.nit:5464 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5407 */
+  /* parser/parser.nit:5465 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5408 */
+  /* parser/parser.nit:5466 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5409 */
+  /* parser/parser.nit:5467 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5410 */
+  /* parser/parser.nit:5468 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5411 */
+  /* parser/parser.nit:5469 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5412 */
+  /* parser/parser.nit:5470 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5414 */
+  /* parser/parser.nit:5472 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5414);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5472);
   }
-  /* ./parser//parser.nit:5416 */
+  /* parser/parser.nit:5474 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5416);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5474);
   }
-  /* ./parser//parser.nit:5418 */
+  /* parser/parser.nit:5476 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5418);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5476);
   }
-  /* ./parser//parser.nit:5420 */
+  /* parser/parser.nit:5478 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5420);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5478);
   }
-  /* ./parser//parser.nit:5422 */
+  /* parser/parser.nit:5480 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5422);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5480);
   }
-  /* ./parser//parser.nit:5424 */
+  /* parser/parser.nit:5482 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5424);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5482);
   }
-  /* ./parser//parser.nit:5425 */
+  /* parser/parser.nit:5483 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:5437 */
+  /* parser/parser.nit:5495 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5438 */
+  /* parser/parser.nit:5496 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5438);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5496);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -16349,7 +16527,7 @@ void parser___ReduceAction128___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5443;
+  fra.me.line = 5501;
   fra.me.meth = LOCATE_parser___ReduceAction128___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -16365,69 +16543,69 @@ void parser___ReduceAction128___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5445 */
+  /* parser/parser.nit:5503 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5446 */
+  /* parser/parser.nit:5504 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5447 */
+  /* parser/parser.nit:5505 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5448 */
+  /* parser/parser.nit:5506 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5449 */
+  /* parser/parser.nit:5507 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5450 */
+  /* parser/parser.nit:5508 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5451 */
+  /* parser/parser.nit:5509 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5452 */
+  /* parser/parser.nit:5510 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5453 */
+  /* parser/parser.nit:5511 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5455 */
+  /* parser/parser.nit:5513 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5455);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5513);
   }
-  /* ./parser//parser.nit:5457 */
+  /* parser/parser.nit:5515 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5457);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5515);
   }
-  /* ./parser//parser.nit:5459 */
+  /* parser/parser.nit:5517 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5459);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5517);
   }
-  /* ./parser//parser.nit:5461 */
+  /* parser/parser.nit:5519 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5461);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5519);
   }
-  /* ./parser//parser.nit:5463 */
+  /* parser/parser.nit:5521 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5463);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5521);
   }
-  /* ./parser//parser.nit:5465 */
+  /* parser/parser.nit:5523 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5465);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5523);
   }
-  /* ./parser//parser.nit:5466 */
+  /* parser/parser.nit:5524 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, NIT_NULL, NIT_NULL, fra.me.REG[7], fra.me.REG[6], NIT_NULL, fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:5478 */
+  /* parser/parser.nit:5536 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5479 */
+  /* parser/parser.nit:5537 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5479);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5537);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -16441,7 +16619,7 @@ void parser___ReduceAction129___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5484;
+  fra.me.line = 5542;
   fra.me.meth = LOCATE_parser___ReduceAction129___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -16458,77 +16636,77 @@ void parser___ReduceAction129___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5486 */
+  /* parser/parser.nit:5544 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5487 */
+  /* parser/parser.nit:5545 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5488 */
+  /* parser/parser.nit:5546 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5489 */
+  /* parser/parser.nit:5547 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5490 */
+  /* parser/parser.nit:5548 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5491 */
+  /* parser/parser.nit:5549 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5492 */
+  /* parser/parser.nit:5550 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5493 */
+  /* parser/parser.nit:5551 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5494 */
+  /* parser/parser.nit:5552 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5495 */
+  /* parser/parser.nit:5553 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5497 */
+  /* parser/parser.nit:5555 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5497);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5555);
   }
-  /* ./parser//parser.nit:5499 */
+  /* parser/parser.nit:5557 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5499);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5557);
   }
-  /* ./parser//parser.nit:5501 */
+  /* parser/parser.nit:5559 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5501);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5559);
   }
-  /* ./parser//parser.nit:5503 */
+  /* parser/parser.nit:5561 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5503);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5561);
   }
-  /* ./parser//parser.nit:5505 */
+  /* parser/parser.nit:5563 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5505);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5563);
   }
-  /* ./parser//parser.nit:5507 */
+  /* parser/parser.nit:5565 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5507);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5565);
   }
-  /* ./parser//parser.nit:5509 */
+  /* parser/parser.nit:5567 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5509);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5567);
   }
-  /* ./parser//parser.nit:5510 */
+  /* parser/parser.nit:5568 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], NIT_NULL, NIT_NULL, fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], NIT_NULL, fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:5522 */
+  /* parser/parser.nit:5580 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5523 */
+  /* parser/parser.nit:5581 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5523);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5581);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -16542,7 +16720,7 @@ void parser___ReduceAction130___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5528;
+  fra.me.line = 5586;
   fra.me.meth = LOCATE_parser___ReduceAction130___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -16558,69 +16736,69 @@ void parser___ReduceAction130___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5530 */
+  /* parser/parser.nit:5588 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5531 */
+  /* parser/parser.nit:5589 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5532 */
+  /* parser/parser.nit:5590 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5533 */
+  /* parser/parser.nit:5591 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5534 */
+  /* parser/parser.nit:5592 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5535 */
+  /* parser/parser.nit:5593 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5536 */
+  /* parser/parser.nit:5594 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5537 */
+  /* parser/parser.nit:5595 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5538 */
+  /* parser/parser.nit:5596 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5540 */
+  /* parser/parser.nit:5598 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5540);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5598);
   }
-  /* ./parser//parser.nit:5542 */
+  /* parser/parser.nit:5600 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5542);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5600);
   }
-  /* ./parser//parser.nit:5544 */
+  /* parser/parser.nit:5602 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5544);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5602);
   }
-  /* ./parser//parser.nit:5546 */
+  /* parser/parser.nit:5604 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5546);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5604);
   }
-  /* ./parser//parser.nit:5548 */
+  /* parser/parser.nit:5606 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5548);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5606);
   }
-  /* ./parser//parser.nit:5550 */
+  /* parser/parser.nit:5608 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5550);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5608);
   }
-  /* ./parser//parser.nit:5551 */
+  /* parser/parser.nit:5609 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[4], NIT_NULL, fra.me.REG[7], fra.me.REG[6], NIT_NULL, fra.me.REG[5], NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:5563 */
+  /* parser/parser.nit:5621 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5564 */
+  /* parser/parser.nit:5622 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5564);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5622);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -16634,7 +16812,7 @@ void parser___ReduceAction131___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5569;
+  fra.me.line = 5627;
   fra.me.meth = LOCATE_parser___ReduceAction131___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -16651,77 +16829,77 @@ void parser___ReduceAction131___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5571 */
+  /* parser/parser.nit:5629 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5572 */
+  /* parser/parser.nit:5630 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5573 */
+  /* parser/parser.nit:5631 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5574 */
+  /* parser/parser.nit:5632 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5575 */
+  /* parser/parser.nit:5633 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5576 */
+  /* parser/parser.nit:5634 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5577 */
+  /* parser/parser.nit:5635 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5578 */
+  /* parser/parser.nit:5636 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5579 */
+  /* parser/parser.nit:5637 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5580 */
+  /* parser/parser.nit:5638 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5582 */
+  /* parser/parser.nit:5640 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5582);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5640);
   }
-  /* ./parser//parser.nit:5584 */
+  /* parser/parser.nit:5642 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5584);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5642);
   }
-  /* ./parser//parser.nit:5586 */
+  /* parser/parser.nit:5644 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5586);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5644);
   }
-  /* ./parser//parser.nit:5588 */
+  /* parser/parser.nit:5646 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5588);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5646);
   }
-  /* ./parser//parser.nit:5590 */
+  /* parser/parser.nit:5648 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5590);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5648);
   }
-  /* ./parser//parser.nit:5592 */
+  /* parser/parser.nit:5650 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5592);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5650);
   }
-  /* ./parser//parser.nit:5594 */
+  /* parser/parser.nit:5652 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5594);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5652);
   }
-  /* ./parser//parser.nit:5595 */
+  /* parser/parser.nit:5653 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], NIT_NULL, fra.me.REG[4], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], NIT_NULL, fra.me.REG[5], NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:5607 */
+  /* parser/parser.nit:5665 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5608 */
+  /* parser/parser.nit:5666 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5608);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5666);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -16735,7 +16913,7 @@ void parser___ReduceAction132___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5613;
+  fra.me.line = 5671;
   fra.me.meth = LOCATE_parser___ReduceAction132___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -16752,77 +16930,77 @@ void parser___ReduceAction132___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5615 */
+  /* parser/parser.nit:5673 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5616 */
+  /* parser/parser.nit:5674 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5617 */
+  /* parser/parser.nit:5675 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5618 */
+  /* parser/parser.nit:5676 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5619 */
+  /* parser/parser.nit:5677 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5620 */
+  /* parser/parser.nit:5678 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5621 */
+  /* parser/parser.nit:5679 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5622 */
+  /* parser/parser.nit:5680 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5623 */
+  /* parser/parser.nit:5681 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5624 */
+  /* parser/parser.nit:5682 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5626 */
+  /* parser/parser.nit:5684 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5626);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5684);
   }
-  /* ./parser//parser.nit:5628 */
+  /* parser/parser.nit:5686 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5628);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5686);
   }
-  /* ./parser//parser.nit:5630 */
+  /* parser/parser.nit:5688 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5630);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5688);
   }
-  /* ./parser//parser.nit:5632 */
+  /* parser/parser.nit:5690 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5632);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5690);
   }
-  /* ./parser//parser.nit:5634 */
+  /* parser/parser.nit:5692 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5634);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5692);
   }
-  /* ./parser//parser.nit:5636 */
+  /* parser/parser.nit:5694 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5636);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5694);
   }
-  /* ./parser//parser.nit:5638 */
+  /* parser/parser.nit:5696 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5638);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5696);
   }
-  /* ./parser//parser.nit:5639 */
+  /* parser/parser.nit:5697 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[9], NIT_NULL, fra.me.REG[4], NIT_NULL, fra.me.REG[8], fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[3]);
-  /* ./parser//parser.nit:5651 */
+  /* parser/parser.nit:5709 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5652 */
+  /* parser/parser.nit:5710 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5652);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5710);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -16836,7 +17014,7 @@ void parser___ReduceAction133___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5657;
+  fra.me.line = 5715;
   fra.me.meth = LOCATE_parser___ReduceAction133___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 11;
@@ -16854,85 +17032,85 @@ void parser___ReduceAction133___action(val_t p0, val_t p1){
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5659 */
+  /* parser/parser.nit:5717 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5660 */
+  /* parser/parser.nit:5718 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5661 */
+  /* parser/parser.nit:5719 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5662 */
+  /* parser/parser.nit:5720 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5663 */
+  /* parser/parser.nit:5721 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5664 */
+  /* parser/parser.nit:5722 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5665 */
+  /* parser/parser.nit:5723 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5666 */
+  /* parser/parser.nit:5724 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5667 */
+  /* parser/parser.nit:5725 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5668 */
+  /* parser/parser.nit:5726 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5669 */
+  /* parser/parser.nit:5727 */
   fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5671 */
+  /* parser/parser.nit:5729 */
   REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5671);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5729);
   }
-  /* ./parser//parser.nit:5673 */
+  /* parser/parser.nit:5731 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast nullable AAble*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5673);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5731);
   }
-  /* ./parser//parser.nit:5675 */
+  /* parser/parser.nit:5733 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5675);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5733);
   }
-  /* ./parser//parser.nit:5677 */
+  /* parser/parser.nit:5735 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5677);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5735);
   }
-  /* ./parser//parser.nit:5679 */
+  /* parser/parser.nit:5737 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5679);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5737);
   }
-  /* ./parser//parser.nit:5681 */
+  /* parser/parser.nit:5739 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5681);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5739);
   }
-  /* ./parser//parser.nit:5683 */
+  /* parser/parser.nit:5741 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5683);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5741);
   }
-  /* ./parser//parser.nit:5685 */
+  /* parser/parser.nit:5743 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5685);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5743);
   }
-  /* ./parser//parser.nit:5686 */
+  /* parser/parser.nit:5744 */
   fra.me.REG[3] = NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(fra.me.REG[10], NIT_NULL, fra.me.REG[4], fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[3]);
-  /* ./parser//parser.nit:5698 */
+  /* parser/parser.nit:5756 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5699 */
+  /* parser/parser.nit:5757 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5699);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5757);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -16946,7 +17124,7 @@ void parser___ReduceAction134___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5704;
+  fra.me.line = 5762;
   fra.me.meth = LOCATE_parser___ReduceAction134___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -16961,59 +17139,59 @@ void parser___ReduceAction134___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5706 */
+  /* parser/parser.nit:5764 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5707 */
+  /* parser/parser.nit:5765 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5708 */
+  /* parser/parser.nit:5766 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5709 */
+  /* parser/parser.nit:5767 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5710 */
+  /* parser/parser.nit:5768 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5711 */
+  /* parser/parser.nit:5769 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5712 */
+  /* parser/parser.nit:5770 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5714 */
+  /* parser/parser.nit:5772 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5714);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5772);
   }
-  /* ./parser//parser.nit:5716 */
+  /* parser/parser.nit:5774 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5716);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5774);
   }
-  /* ./parser//parser.nit:5718 */
+  /* parser/parser.nit:5776 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwinit, ID_parser___parser_nodes___TKwinit)) /*cast nullable TKwinit*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5718);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5776);
   }
-  /* ./parser//parser.nit:5720 */
+  /* parser/parser.nit:5778 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5720);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5778);
   }
-  /* ./parser//parser.nit:5722 */
+  /* parser/parser.nit:5780 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5722);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5780);
   }
-  /* ./parser//parser.nit:5723 */
+  /* parser/parser.nit:5781 */
   fra.me.REG[3] = NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:5732 */
+  /* parser/parser.nit:5790 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5733 */
+  /* parser/parser.nit:5791 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5733);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5791);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -17027,7 +17205,7 @@ void parser___ReduceAction135___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5738;
+  fra.me.line = 5796;
   fra.me.meth = LOCATE_parser___ReduceAction135___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -17043,67 +17221,67 @@ void parser___ReduceAction135___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5740 */
+  /* parser/parser.nit:5798 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5741 */
+  /* parser/parser.nit:5799 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5742 */
+  /* parser/parser.nit:5800 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5743 */
+  /* parser/parser.nit:5801 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5744 */
+  /* parser/parser.nit:5802 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5745 */
+  /* parser/parser.nit:5803 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5746 */
+  /* parser/parser.nit:5804 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5747 */
+  /* parser/parser.nit:5805 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5749 */
+  /* parser/parser.nit:5807 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5749);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5807);
   }
-  /* ./parser//parser.nit:5751 */
+  /* parser/parser.nit:5809 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5751);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5809);
   }
-  /* ./parser//parser.nit:5753 */
+  /* parser/parser.nit:5811 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5753);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5811);
   }
-  /* ./parser//parser.nit:5755 */
+  /* parser/parser.nit:5813 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwinit, ID_parser___parser_nodes___TKwinit)) /*cast nullable TKwinit*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5755);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5813);
   }
-  /* ./parser//parser.nit:5757 */
+  /* parser/parser.nit:5815 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5757);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5815);
   }
-  /* ./parser//parser.nit:5759 */
+  /* parser/parser.nit:5817 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5759);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5817);
   }
-  /* ./parser//parser.nit:5760 */
+  /* parser/parser.nit:5818 */
   fra.me.REG[3] = NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:5769 */
+  /* parser/parser.nit:5827 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5770 */
+  /* parser/parser.nit:5828 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5770);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5828);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -17117,7 +17295,7 @@ void parser___ReduceAction136___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5775;
+  fra.me.line = 5833;
   fra.me.meth = LOCATE_parser___ReduceAction136___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -17133,67 +17311,67 @@ void parser___ReduceAction136___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5777 */
+  /* parser/parser.nit:5835 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5778 */
+  /* parser/parser.nit:5836 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5779 */
+  /* parser/parser.nit:5837 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5780 */
+  /* parser/parser.nit:5838 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5781 */
+  /* parser/parser.nit:5839 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5782 */
+  /* parser/parser.nit:5840 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5783 */
+  /* parser/parser.nit:5841 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5784 */
+  /* parser/parser.nit:5842 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5786 */
+  /* parser/parser.nit:5844 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5786);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5844);
   }
-  /* ./parser//parser.nit:5788 */
+  /* parser/parser.nit:5846 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5788);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5846);
   }
-  /* ./parser//parser.nit:5790 */
+  /* parser/parser.nit:5848 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwinit, ID_parser___parser_nodes___TKwinit)) /*cast nullable TKwinit*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5790);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5848);
   }
-  /* ./parser//parser.nit:5792 */
+  /* parser/parser.nit:5850 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5792);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5850);
   }
-  /* ./parser//parser.nit:5794 */
+  /* parser/parser.nit:5852 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5794);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5852);
   }
-  /* ./parser//parser.nit:5796 */
+  /* parser/parser.nit:5854 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5796);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5854);
   }
-  /* ./parser//parser.nit:5797 */
+  /* parser/parser.nit:5855 */
   fra.me.REG[3] = NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:5806 */
+  /* parser/parser.nit:5864 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5807 */
+  /* parser/parser.nit:5865 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5807);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5865);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -17207,7 +17385,7 @@ void parser___ReduceAction137___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5812;
+  fra.me.line = 5870;
   fra.me.meth = LOCATE_parser___ReduceAction137___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -17224,75 +17402,75 @@ void parser___ReduceAction137___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5814 */
+  /* parser/parser.nit:5872 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5815 */
+  /* parser/parser.nit:5873 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5816 */
+  /* parser/parser.nit:5874 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5817 */
+  /* parser/parser.nit:5875 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5818 */
+  /* parser/parser.nit:5876 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5819 */
+  /* parser/parser.nit:5877 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5820 */
+  /* parser/parser.nit:5878 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5821 */
+  /* parser/parser.nit:5879 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5822 */
+  /* parser/parser.nit:5880 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5824 */
+  /* parser/parser.nit:5882 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5824);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5882);
   }
-  /* ./parser//parser.nit:5826 */
+  /* parser/parser.nit:5884 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5826);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5884);
   }
-  /* ./parser//parser.nit:5828 */
+  /* parser/parser.nit:5886 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5828);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5886);
   }
-  /* ./parser//parser.nit:5830 */
+  /* parser/parser.nit:5888 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwinit, ID_parser___parser_nodes___TKwinit)) /*cast nullable TKwinit*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5830);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5888);
   }
-  /* ./parser//parser.nit:5832 */
+  /* parser/parser.nit:5890 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5832);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5890);
   }
-  /* ./parser//parser.nit:5834 */
+  /* parser/parser.nit:5892 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5834);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5892);
   }
-  /* ./parser//parser.nit:5836 */
+  /* parser/parser.nit:5894 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5836);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5894);
   }
-  /* ./parser//parser.nit:5837 */
+  /* parser/parser.nit:5895 */
   fra.me.REG[3] = NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:5846 */
+  /* parser/parser.nit:5904 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5847 */
+  /* parser/parser.nit:5905 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5847);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5905);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -17306,7 +17484,7 @@ void parser___ReduceAction138___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5852;
+  fra.me.line = 5910;
   fra.me.meth = LOCATE_parser___ReduceAction138___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -17321,61 +17499,61 @@ void parser___ReduceAction138___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5854 */
+  /* parser/parser.nit:5912 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5855 */
+  /* parser/parser.nit:5913 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5856 */
+  /* parser/parser.nit:5914 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5857 */
+  /* parser/parser.nit:5915 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5858 */
+  /* parser/parser.nit:5916 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5859 */
+  /* parser/parser.nit:5917 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5860 */
+  /* parser/parser.nit:5918 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5861 */
+  /* parser/parser.nit:5919 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5863 */
+  /* parser/parser.nit:5921 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5863);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5921);
   }
-  /* ./parser//parser.nit:5865 */
+  /* parser/parser.nit:5923 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5865);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5923);
   }
-  /* ./parser//parser.nit:5867 */
+  /* parser/parser.nit:5925 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwinit, ID_parser___parser_nodes___TKwinit)) /*cast nullable TKwinit*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5867);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5925);
   }
-  /* ./parser//parser.nit:5869 */
+  /* parser/parser.nit:5927 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5869);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5927);
   }
-  /* ./parser//parser.nit:5871 */
+  /* parser/parser.nit:5929 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5871);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5929);
   }
-  /* ./parser//parser.nit:5872 */
+  /* parser/parser.nit:5930 */
   fra.me.REG[3] = NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:5881 */
+  /* parser/parser.nit:5939 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5882 */
+  /* parser/parser.nit:5940 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5882);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5940);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -17389,7 +17567,7 @@ void parser___ReduceAction139___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5887;
+  fra.me.line = 5945;
   fra.me.meth = LOCATE_parser___ReduceAction139___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -17405,69 +17583,69 @@ void parser___ReduceAction139___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5889 */
+  /* parser/parser.nit:5947 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5890 */
+  /* parser/parser.nit:5948 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5891 */
+  /* parser/parser.nit:5949 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5892 */
+  /* parser/parser.nit:5950 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5893 */
+  /* parser/parser.nit:5951 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5894 */
+  /* parser/parser.nit:5952 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5895 */
+  /* parser/parser.nit:5953 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5896 */
+  /* parser/parser.nit:5954 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5897 */
+  /* parser/parser.nit:5955 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5899 */
+  /* parser/parser.nit:5957 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5899);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5957);
   }
-  /* ./parser//parser.nit:5901 */
+  /* parser/parser.nit:5959 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5901);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5959);
   }
-  /* ./parser//parser.nit:5903 */
+  /* parser/parser.nit:5961 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5903);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5961);
   }
-  /* ./parser//parser.nit:5905 */
+  /* parser/parser.nit:5963 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwinit, ID_parser___parser_nodes___TKwinit)) /*cast nullable TKwinit*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5905);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5963);
   }
-  /* ./parser//parser.nit:5907 */
+  /* parser/parser.nit:5965 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5907);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5965);
   }
-  /* ./parser//parser.nit:5909 */
+  /* parser/parser.nit:5967 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5909);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5967);
   }
-  /* ./parser//parser.nit:5910 */
+  /* parser/parser.nit:5968 */
   fra.me.REG[3] = NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:5919 */
+  /* parser/parser.nit:5977 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5920 */
+  /* parser/parser.nit:5978 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5920);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5978);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -17481,7 +17659,7 @@ void parser___ReduceAction140___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5925;
+  fra.me.line = 5983;
   fra.me.meth = LOCATE_parser___ReduceAction140___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -17497,69 +17675,69 @@ void parser___ReduceAction140___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5927 */
+  /* parser/parser.nit:5985 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5928 */
+  /* parser/parser.nit:5986 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5929 */
+  /* parser/parser.nit:5987 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5930 */
+  /* parser/parser.nit:5988 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5931 */
+  /* parser/parser.nit:5989 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5932 */
+  /* parser/parser.nit:5990 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5933 */
+  /* parser/parser.nit:5991 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5934 */
+  /* parser/parser.nit:5992 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5935 */
+  /* parser/parser.nit:5993 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5937 */
+  /* parser/parser.nit:5995 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5937);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5995);
   }
-  /* ./parser//parser.nit:5939 */
+  /* parser/parser.nit:5997 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5939);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5997);
   }
-  /* ./parser//parser.nit:5941 */
+  /* parser/parser.nit:5999 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwinit, ID_parser___parser_nodes___TKwinit)) /*cast nullable TKwinit*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5941);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 5999);
   }
-  /* ./parser//parser.nit:5943 */
+  /* parser/parser.nit:6001 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5943);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6001);
   }
-  /* ./parser//parser.nit:5945 */
+  /* parser/parser.nit:6003 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5945);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6003);
   }
-  /* ./parser//parser.nit:5947 */
+  /* parser/parser.nit:6005 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5947);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6005);
   }
-  /* ./parser//parser.nit:5948 */
+  /* parser/parser.nit:6006 */
   fra.me.REG[3] = NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:5957 */
+  /* parser/parser.nit:6015 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5958 */
+  /* parser/parser.nit:6016 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5958);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6016);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -17573,7 +17751,7 @@ void parser___ReduceAction141___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 5963;
+  fra.me.line = 6021;
   fra.me.meth = LOCATE_parser___ReduceAction141___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -17590,77 +17768,77 @@ void parser___ReduceAction141___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:5965 */
+  /* parser/parser.nit:6023 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:5966 */
+  /* parser/parser.nit:6024 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5967 */
+  /* parser/parser.nit:6025 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5968 */
+  /* parser/parser.nit:6026 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5969 */
+  /* parser/parser.nit:6027 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5970 */
+  /* parser/parser.nit:6028 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5971 */
+  /* parser/parser.nit:6029 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5972 */
+  /* parser/parser.nit:6030 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5973 */
+  /* parser/parser.nit:6031 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5974 */
+  /* parser/parser.nit:6032 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:5976 */
+  /* parser/parser.nit:6034 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5976);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6034);
   }
-  /* ./parser//parser.nit:5978 */
+  /* parser/parser.nit:6036 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5978);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6036);
   }
-  /* ./parser//parser.nit:5980 */
+  /* parser/parser.nit:6038 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5980);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6038);
   }
-  /* ./parser//parser.nit:5982 */
+  /* parser/parser.nit:6040 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwinit, ID_parser___parser_nodes___TKwinit)) /*cast nullable TKwinit*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5982);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6040);
   }
-  /* ./parser//parser.nit:5984 */
+  /* parser/parser.nit:6042 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5984);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6042);
   }
-  /* ./parser//parser.nit:5986 */
+  /* parser/parser.nit:6044 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5986);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6044);
   }
-  /* ./parser//parser.nit:5988 */
+  /* parser/parser.nit:6046 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 5988);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6046);
   }
-  /* ./parser//parser.nit:5989 */
+  /* parser/parser.nit:6047 */
   fra.me.REG[3] = NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:5998 */
+  /* parser/parser.nit:6056 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:5999 */
+  /* parser/parser.nit:6057 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 5999);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6057);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -17674,7 +17852,7 @@ void parser___ReduceAction142___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6004;
+  fra.me.line = 6062;
   fra.me.meth = LOCATE_parser___ReduceAction142___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -17689,57 +17867,57 @@ void parser___ReduceAction142___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6006 */
+  /* parser/parser.nit:6064 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6007 */
+  /* parser/parser.nit:6065 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6008 */
+  /* parser/parser.nit:6066 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6009 */
+  /* parser/parser.nit:6067 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6010 */
+  /* parser/parser.nit:6068 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6011 */
+  /* parser/parser.nit:6069 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6013 */
+  /* parser/parser.nit:6071 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6013);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6071);
   }
-  /* ./parser//parser.nit:6015 */
+  /* parser/parser.nit:6073 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6015);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6073);
   }
-  /* ./parser//parser.nit:6017 */
+  /* parser/parser.nit:6075 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwtype, ID_parser___parser_nodes___TKwtype)) /*cast nullable TKwtype*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6017);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6075);
   }
-  /* ./parser//parser.nit:6019 */
+  /* parser/parser.nit:6077 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6019);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6077);
   }
-  /* ./parser//parser.nit:6021 */
+  /* parser/parser.nit:6079 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6021);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6079);
   }
-  /* ./parser//parser.nit:6022 */
+  /* parser/parser.nit:6080 */
   fra.me.REG[3] = NEW_ATypePropdef_parser___parser_prod___ATypePropdef___init_atypepropdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:6030 */
+  /* parser/parser.nit:6088 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6031 */
+  /* parser/parser.nit:6089 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6031);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6089);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -17753,7 +17931,7 @@ void parser___ReduceAction143___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6036;
+  fra.me.line = 6094;
   fra.me.meth = LOCATE_parser___ReduceAction143___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -17769,65 +17947,65 @@ void parser___ReduceAction143___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6038 */
+  /* parser/parser.nit:6096 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6039 */
+  /* parser/parser.nit:6097 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6040 */
+  /* parser/parser.nit:6098 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6041 */
+  /* parser/parser.nit:6099 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6042 */
+  /* parser/parser.nit:6100 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6043 */
+  /* parser/parser.nit:6101 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6044 */
+  /* parser/parser.nit:6102 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6046 */
+  /* parser/parser.nit:6104 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6046);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6104);
   }
-  /* ./parser//parser.nit:6048 */
+  /* parser/parser.nit:6106 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6048);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6106);
   }
-  /* ./parser//parser.nit:6050 */
+  /* parser/parser.nit:6108 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6050);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6108);
   }
-  /* ./parser//parser.nit:6052 */
+  /* parser/parser.nit:6110 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwtype, ID_parser___parser_nodes___TKwtype)) /*cast nullable TKwtype*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6052);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6110);
   }
-  /* ./parser//parser.nit:6054 */
+  /* parser/parser.nit:6112 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6054);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6112);
   }
-  /* ./parser//parser.nit:6056 */
+  /* parser/parser.nit:6114 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6056);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6114);
   }
-  /* ./parser//parser.nit:6057 */
+  /* parser/parser.nit:6115 */
   fra.me.REG[3] = NEW_ATypePropdef_parser___parser_prod___ATypePropdef___init_atypepropdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:6065 */
+  /* parser/parser.nit:6123 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6066 */
+  /* parser/parser.nit:6124 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6066);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6124);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -17841,7 +18019,7 @@ void parser___ReduceAction144___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6071;
+  fra.me.line = 6129;
   fra.me.meth = LOCATE_parser___ReduceAction144___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -17855,53 +18033,53 @@ void parser___ReduceAction144___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6073 */
+  /* parser/parser.nit:6131 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6074 */
+  /* parser/parser.nit:6132 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6075 */
+  /* parser/parser.nit:6133 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6076 */
+  /* parser/parser.nit:6134 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6077 */
+  /* parser/parser.nit:6135 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6078 */
+  /* parser/parser.nit:6136 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6079 */
+  /* parser/parser.nit:6137 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6081 */
+  /* parser/parser.nit:6139 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6081);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6139);
   }
-  /* ./parser//parser.nit:6083 */
+  /* parser/parser.nit:6141 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6083);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6141);
   }
-  /* ./parser//parser.nit:6085 */
+  /* parser/parser.nit:6143 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast nullable TKwnew*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6085);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6143);
   }
-  /* ./parser//parser.nit:6087 */
+  /* parser/parser.nit:6145 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6087);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6145);
   }
-  /* ./parser//parser.nit:6088 */
+  /* parser/parser.nit:6146 */
   fra.me.REG[3] = NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(fra.me.REG[6], NIT_NULL, fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:6098 */
+  /* parser/parser.nit:6156 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6099 */
+  /* parser/parser.nit:6157 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6099);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6157);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -17915,7 +18093,7 @@ void parser___ReduceAction145___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6104;
+  fra.me.line = 6162;
   fra.me.meth = LOCATE_parser___ReduceAction145___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -17930,61 +18108,61 @@ void parser___ReduceAction145___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6106 */
+  /* parser/parser.nit:6164 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6107 */
+  /* parser/parser.nit:6165 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6108 */
+  /* parser/parser.nit:6166 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6109 */
+  /* parser/parser.nit:6167 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6110 */
+  /* parser/parser.nit:6168 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6111 */
+  /* parser/parser.nit:6169 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6112 */
+  /* parser/parser.nit:6170 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6113 */
+  /* parser/parser.nit:6171 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6115 */
+  /* parser/parser.nit:6173 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6115);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6173);
   }
-  /* ./parser//parser.nit:6117 */
+  /* parser/parser.nit:6175 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6117);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6175);
   }
-  /* ./parser//parser.nit:6119 */
+  /* parser/parser.nit:6177 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6119);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6177);
   }
-  /* ./parser//parser.nit:6121 */
+  /* parser/parser.nit:6179 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast nullable TKwnew*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6121);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6179);
   }
-  /* ./parser//parser.nit:6123 */
+  /* parser/parser.nit:6181 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6123);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6181);
   }
-  /* ./parser//parser.nit:6124 */
+  /* parser/parser.nit:6182 */
   fra.me.REG[3] = NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:6134 */
+  /* parser/parser.nit:6192 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6135 */
+  /* parser/parser.nit:6193 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6135);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6193);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -17998,7 +18176,7 @@ void parser___ReduceAction146___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6140;
+  fra.me.line = 6198;
   fra.me.meth = LOCATE_parser___ReduceAction146___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -18013,61 +18191,61 @@ void parser___ReduceAction146___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6142 */
+  /* parser/parser.nit:6200 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6143 */
+  /* parser/parser.nit:6201 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6144 */
+  /* parser/parser.nit:6202 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6145 */
+  /* parser/parser.nit:6203 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6146 */
+  /* parser/parser.nit:6204 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6147 */
+  /* parser/parser.nit:6205 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6148 */
+  /* parser/parser.nit:6206 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6149 */
+  /* parser/parser.nit:6207 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6151 */
+  /* parser/parser.nit:6209 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6151);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6209);
   }
-  /* ./parser//parser.nit:6153 */
+  /* parser/parser.nit:6211 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6153);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6211);
   }
-  /* ./parser//parser.nit:6155 */
+  /* parser/parser.nit:6213 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast nullable TKwnew*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6155);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6213);
   }
-  /* ./parser//parser.nit:6157 */
+  /* parser/parser.nit:6215 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6157);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6215);
   }
-  /* ./parser//parser.nit:6159 */
+  /* parser/parser.nit:6217 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6159);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6217);
   }
-  /* ./parser//parser.nit:6160 */
+  /* parser/parser.nit:6218 */
   fra.me.REG[3] = NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:6170 */
+  /* parser/parser.nit:6228 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6171 */
+  /* parser/parser.nit:6229 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6171);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6229);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -18081,7 +18259,7 @@ void parser___ReduceAction147___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6176;
+  fra.me.line = 6234;
   fra.me.meth = LOCATE_parser___ReduceAction147___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -18097,69 +18275,69 @@ void parser___ReduceAction147___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6178 */
+  /* parser/parser.nit:6236 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6179 */
+  /* parser/parser.nit:6237 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6180 */
+  /* parser/parser.nit:6238 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6181 */
+  /* parser/parser.nit:6239 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6182 */
+  /* parser/parser.nit:6240 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6183 */
+  /* parser/parser.nit:6241 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6184 */
+  /* parser/parser.nit:6242 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6185 */
+  /* parser/parser.nit:6243 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6186 */
+  /* parser/parser.nit:6244 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6188 */
+  /* parser/parser.nit:6246 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6188);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6246);
   }
-  /* ./parser//parser.nit:6190 */
+  /* parser/parser.nit:6248 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6190);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6248);
   }
-  /* ./parser//parser.nit:6192 */
+  /* parser/parser.nit:6250 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6192);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6250);
   }
-  /* ./parser//parser.nit:6194 */
+  /* parser/parser.nit:6252 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast nullable TKwnew*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6194);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6252);
   }
-  /* ./parser//parser.nit:6196 */
+  /* parser/parser.nit:6254 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6196);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6254);
   }
-  /* ./parser//parser.nit:6198 */
+  /* parser/parser.nit:6256 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6198);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6256);
   }
-  /* ./parser//parser.nit:6199 */
+  /* parser/parser.nit:6257 */
   fra.me.REG[3] = NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:6209 */
+  /* parser/parser.nit:6267 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6210 */
+  /* parser/parser.nit:6268 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6210);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6268);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -18173,7 +18351,7 @@ void parser___ReduceAction148___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6215;
+  fra.me.line = 6273;
   fra.me.meth = LOCATE_parser___ReduceAction148___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -18188,61 +18366,61 @@ void parser___ReduceAction148___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6217 */
+  /* parser/parser.nit:6275 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6218 */
+  /* parser/parser.nit:6276 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6219 */
+  /* parser/parser.nit:6277 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6220 */
+  /* parser/parser.nit:6278 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6221 */
+  /* parser/parser.nit:6279 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6222 */
+  /* parser/parser.nit:6280 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6223 */
+  /* parser/parser.nit:6281 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6224 */
+  /* parser/parser.nit:6282 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6226 */
+  /* parser/parser.nit:6284 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6226);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6284);
   }
-  /* ./parser//parser.nit:6228 */
+  /* parser/parser.nit:6286 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6228);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6286);
   }
-  /* ./parser//parser.nit:6230 */
+  /* parser/parser.nit:6288 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast nullable TKwnew*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6230);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6288);
   }
-  /* ./parser//parser.nit:6232 */
+  /* parser/parser.nit:6290 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6232);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6290);
   }
-  /* ./parser//parser.nit:6234 */
+  /* parser/parser.nit:6292 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast nullable TString*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6234);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6292);
   }
-  /* ./parser//parser.nit:6235 */
+  /* parser/parser.nit:6293 */
   fra.me.REG[3] = NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:6245 */
+  /* parser/parser.nit:6303 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6246 */
+  /* parser/parser.nit:6304 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6246);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6304);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -18256,7 +18434,7 @@ void parser___ReduceAction149___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6251;
+  fra.me.line = 6309;
   fra.me.meth = LOCATE_parser___ReduceAction149___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -18272,69 +18450,69 @@ void parser___ReduceAction149___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6253 */
+  /* parser/parser.nit:6311 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6254 */
+  /* parser/parser.nit:6312 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6255 */
+  /* parser/parser.nit:6313 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6256 */
+  /* parser/parser.nit:6314 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6257 */
+  /* parser/parser.nit:6315 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6258 */
+  /* parser/parser.nit:6316 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6259 */
+  /* parser/parser.nit:6317 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6260 */
+  /* parser/parser.nit:6318 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6261 */
+  /* parser/parser.nit:6319 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6263 */
+  /* parser/parser.nit:6321 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6263);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6321);
   }
-  /* ./parser//parser.nit:6265 */
+  /* parser/parser.nit:6323 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6265);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6323);
   }
-  /* ./parser//parser.nit:6267 */
+  /* parser/parser.nit:6325 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6267);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6325);
   }
-  /* ./parser//parser.nit:6269 */
+  /* parser/parser.nit:6327 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast nullable TKwnew*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6269);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6327);
   }
-  /* ./parser//parser.nit:6271 */
+  /* parser/parser.nit:6329 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6271);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6329);
   }
-  /* ./parser//parser.nit:6273 */
+  /* parser/parser.nit:6331 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast nullable TString*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6273);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6331);
   }
-  /* ./parser//parser.nit:6274 */
+  /* parser/parser.nit:6332 */
   fra.me.REG[3] = NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:6284 */
+  /* parser/parser.nit:6342 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6285 */
+  /* parser/parser.nit:6343 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6285);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6343);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -18348,7 +18526,7 @@ void parser___ReduceAction150___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6290;
+  fra.me.line = 6348;
   fra.me.meth = LOCATE_parser___ReduceAction150___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -18364,69 +18542,69 @@ void parser___ReduceAction150___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6292 */
+  /* parser/parser.nit:6350 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6293 */
+  /* parser/parser.nit:6351 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6294 */
+  /* parser/parser.nit:6352 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6295 */
+  /* parser/parser.nit:6353 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6296 */
+  /* parser/parser.nit:6354 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6297 */
+  /* parser/parser.nit:6355 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6298 */
+  /* parser/parser.nit:6356 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6299 */
+  /* parser/parser.nit:6357 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6300 */
+  /* parser/parser.nit:6358 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6302 */
+  /* parser/parser.nit:6360 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6302);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6360);
   }
-  /* ./parser//parser.nit:6304 */
+  /* parser/parser.nit:6362 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6304);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6362);
   }
-  /* ./parser//parser.nit:6306 */
+  /* parser/parser.nit:6364 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast nullable TKwnew*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6306);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6364);
   }
-  /* ./parser//parser.nit:6308 */
+  /* parser/parser.nit:6366 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6308);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6366);
   }
-  /* ./parser//parser.nit:6310 */
+  /* parser/parser.nit:6368 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6310);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6368);
   }
-  /* ./parser//parser.nit:6312 */
+  /* parser/parser.nit:6370 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast nullable TString*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6312);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6370);
   }
-  /* ./parser//parser.nit:6313 */
+  /* parser/parser.nit:6371 */
   fra.me.REG[3] = NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:6323 */
+  /* parser/parser.nit:6381 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6324 */
+  /* parser/parser.nit:6382 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6324);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6382);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -18440,7 +18618,7 @@ void parser___ReduceAction151___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6329;
+  fra.me.line = 6387;
   fra.me.meth = LOCATE_parser___ReduceAction151___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -18457,77 +18635,77 @@ void parser___ReduceAction151___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6331 */
+  /* parser/parser.nit:6389 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6332 */
+  /* parser/parser.nit:6390 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6333 */
+  /* parser/parser.nit:6391 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6334 */
+  /* parser/parser.nit:6392 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6335 */
+  /* parser/parser.nit:6393 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6336 */
+  /* parser/parser.nit:6394 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6337 */
+  /* parser/parser.nit:6395 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6338 */
+  /* parser/parser.nit:6396 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6339 */
+  /* parser/parser.nit:6397 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6340 */
+  /* parser/parser.nit:6398 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6342 */
+  /* parser/parser.nit:6400 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6342);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6400);
   }
-  /* ./parser//parser.nit:6344 */
+  /* parser/parser.nit:6402 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6344);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6402);
   }
-  /* ./parser//parser.nit:6346 */
+  /* parser/parser.nit:6404 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6346);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6404);
   }
-  /* ./parser//parser.nit:6348 */
+  /* parser/parser.nit:6406 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast nullable TKwnew*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6348);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6406);
   }
-  /* ./parser//parser.nit:6350 */
+  /* parser/parser.nit:6408 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6350);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6408);
   }
-  /* ./parser//parser.nit:6352 */
+  /* parser/parser.nit:6410 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6352);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6410);
   }
-  /* ./parser//parser.nit:6354 */
+  /* parser/parser.nit:6412 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast nullable TString*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6354);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6412);
   }
-  /* ./parser//parser.nit:6355 */
+  /* parser/parser.nit:6413 */
   fra.me.REG[3] = NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:6365 */
+  /* parser/parser.nit:6423 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6366 */
+  /* parser/parser.nit:6424 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6366);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6424);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -18541,7 +18719,7 @@ void parser___ReduceAction152___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6371;
+  fra.me.line = 6429;
   fra.me.meth = LOCATE_parser___ReduceAction152___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -18556,61 +18734,61 @@ void parser___ReduceAction152___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6373 */
+  /* parser/parser.nit:6431 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6374 */
+  /* parser/parser.nit:6432 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6375 */
+  /* parser/parser.nit:6433 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6376 */
+  /* parser/parser.nit:6434 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6377 */
+  /* parser/parser.nit:6435 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6378 */
+  /* parser/parser.nit:6436 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6379 */
+  /* parser/parser.nit:6437 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6380 */
+  /* parser/parser.nit:6438 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6382 */
+  /* parser/parser.nit:6440 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6382);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6440);
   }
-  /* ./parser//parser.nit:6384 */
+  /* parser/parser.nit:6442 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6384);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6442);
   }
-  /* ./parser//parser.nit:6386 */
+  /* parser/parser.nit:6444 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast nullable TKwnew*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6386);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6444);
   }
-  /* ./parser//parser.nit:6388 */
+  /* parser/parser.nit:6446 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6388);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6446);
   }
-  /* ./parser//parser.nit:6390 */
+  /* parser/parser.nit:6448 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast nullable AExternCalls*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6390);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6448);
   }
-  /* ./parser//parser.nit:6391 */
+  /* parser/parser.nit:6449 */
   fra.me.REG[3] = NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(fra.me.REG[7], NIT_NULL, fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:6401 */
+  /* parser/parser.nit:6459 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6402 */
+  /* parser/parser.nit:6460 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6402);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6460);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -18624,7 +18802,7 @@ void parser___ReduceAction153___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6407;
+  fra.me.line = 6465;
   fra.me.meth = LOCATE_parser___ReduceAction153___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -18640,69 +18818,69 @@ void parser___ReduceAction153___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6409 */
+  /* parser/parser.nit:6467 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6410 */
+  /* parser/parser.nit:6468 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6411 */
+  /* parser/parser.nit:6469 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6412 */
+  /* parser/parser.nit:6470 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6413 */
+  /* parser/parser.nit:6471 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6414 */
+  /* parser/parser.nit:6472 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6415 */
+  /* parser/parser.nit:6473 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6416 */
+  /* parser/parser.nit:6474 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6417 */
+  /* parser/parser.nit:6475 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6419 */
+  /* parser/parser.nit:6477 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6419);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6477);
   }
-  /* ./parser//parser.nit:6421 */
+  /* parser/parser.nit:6479 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6421);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6479);
   }
-  /* ./parser//parser.nit:6423 */
+  /* parser/parser.nit:6481 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6423);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6481);
   }
-  /* ./parser//parser.nit:6425 */
+  /* parser/parser.nit:6483 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast nullable TKwnew*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6425);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6483);
   }
-  /* ./parser//parser.nit:6427 */
+  /* parser/parser.nit:6485 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6427);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6485);
   }
-  /* ./parser//parser.nit:6429 */
+  /* parser/parser.nit:6487 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast nullable AExternCalls*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6429);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6487);
   }
-  /* ./parser//parser.nit:6430 */
+  /* parser/parser.nit:6488 */
   fra.me.REG[3] = NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:6440 */
+  /* parser/parser.nit:6498 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6441 */
+  /* parser/parser.nit:6499 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6441);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6499);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -18716,7 +18894,7 @@ void parser___ReduceAction154___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6446;
+  fra.me.line = 6504;
   fra.me.meth = LOCATE_parser___ReduceAction154___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -18732,69 +18910,69 @@ void parser___ReduceAction154___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6448 */
+  /* parser/parser.nit:6506 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6449 */
+  /* parser/parser.nit:6507 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6450 */
+  /* parser/parser.nit:6508 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6451 */
+  /* parser/parser.nit:6509 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6452 */
+  /* parser/parser.nit:6510 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6453 */
+  /* parser/parser.nit:6511 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6454 */
+  /* parser/parser.nit:6512 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6455 */
+  /* parser/parser.nit:6513 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6456 */
+  /* parser/parser.nit:6514 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6458 */
+  /* parser/parser.nit:6516 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6458);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6516);
   }
-  /* ./parser//parser.nit:6460 */
+  /* parser/parser.nit:6518 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6460);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6518);
   }
-  /* ./parser//parser.nit:6462 */
+  /* parser/parser.nit:6520 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast nullable TKwnew*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6462);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6520);
   }
-  /* ./parser//parser.nit:6464 */
+  /* parser/parser.nit:6522 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6464);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6522);
   }
-  /* ./parser//parser.nit:6466 */
+  /* parser/parser.nit:6524 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6466);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6524);
   }
-  /* ./parser//parser.nit:6468 */
+  /* parser/parser.nit:6526 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast nullable AExternCalls*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6468);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6526);
   }
-  /* ./parser//parser.nit:6469 */
+  /* parser/parser.nit:6527 */
   fra.me.REG[3] = NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:6479 */
+  /* parser/parser.nit:6537 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6480 */
+  /* parser/parser.nit:6538 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6480);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6538);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -18808,7 +18986,7 @@ void parser___ReduceAction155___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6485;
+  fra.me.line = 6543;
   fra.me.meth = LOCATE_parser___ReduceAction155___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -18825,77 +19003,77 @@ void parser___ReduceAction155___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6487 */
+  /* parser/parser.nit:6545 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6488 */
+  /* parser/parser.nit:6546 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6489 */
+  /* parser/parser.nit:6547 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6490 */
+  /* parser/parser.nit:6548 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6491 */
+  /* parser/parser.nit:6549 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6492 */
+  /* parser/parser.nit:6550 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6493 */
+  /* parser/parser.nit:6551 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6494 */
+  /* parser/parser.nit:6552 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6495 */
+  /* parser/parser.nit:6553 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6496 */
+  /* parser/parser.nit:6554 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6498 */
+  /* parser/parser.nit:6556 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6498);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6556);
   }
-  /* ./parser//parser.nit:6500 */
+  /* parser/parser.nit:6558 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6500);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6558);
   }
-  /* ./parser//parser.nit:6502 */
+  /* parser/parser.nit:6560 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6502);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6560);
   }
-  /* ./parser//parser.nit:6504 */
+  /* parser/parser.nit:6562 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast nullable TKwnew*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6504);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6562);
   }
-  /* ./parser//parser.nit:6506 */
+  /* parser/parser.nit:6564 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6506);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6564);
   }
-  /* ./parser//parser.nit:6508 */
+  /* parser/parser.nit:6566 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6508);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6566);
   }
-  /* ./parser//parser.nit:6510 */
+  /* parser/parser.nit:6568 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast nullable AExternCalls*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6510);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6568);
   }
-  /* ./parser//parser.nit:6511 */
+  /* parser/parser.nit:6569 */
   fra.me.REG[3] = NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:6521 */
+  /* parser/parser.nit:6579 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6522 */
+  /* parser/parser.nit:6580 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6522);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6580);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -18909,7 +19087,7 @@ void parser___ReduceAction156___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6527;
+  fra.me.line = 6585;
   fra.me.meth = LOCATE_parser___ReduceAction156___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -18925,69 +19103,69 @@ void parser___ReduceAction156___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6529 */
+  /* parser/parser.nit:6587 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6530 */
+  /* parser/parser.nit:6588 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6531 */
+  /* parser/parser.nit:6589 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6532 */
+  /* parser/parser.nit:6590 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6533 */
+  /* parser/parser.nit:6591 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6534 */
+  /* parser/parser.nit:6592 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6535 */
+  /* parser/parser.nit:6593 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6536 */
+  /* parser/parser.nit:6594 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6537 */
+  /* parser/parser.nit:6595 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6539 */
+  /* parser/parser.nit:6597 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6539);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6597);
   }
-  /* ./parser//parser.nit:6541 */
+  /* parser/parser.nit:6599 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6541);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6599);
   }
-  /* ./parser//parser.nit:6543 */
+  /* parser/parser.nit:6601 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast nullable TKwnew*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6543);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6601);
   }
-  /* ./parser//parser.nit:6545 */
+  /* parser/parser.nit:6603 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6545);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6603);
   }
-  /* ./parser//parser.nit:6547 */
+  /* parser/parser.nit:6605 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast nullable TString*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6547);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6605);
   }
-  /* ./parser//parser.nit:6549 */
+  /* parser/parser.nit:6607 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast nullable AExternCalls*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6549);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6607);
   }
-  /* ./parser//parser.nit:6550 */
+  /* parser/parser.nit:6608 */
   fra.me.REG[3] = NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(fra.me.REG[8], NIT_NULL, fra.me.REG[7], fra.me.REG[6], NIT_NULL, fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:6560 */
+  /* parser/parser.nit:6618 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6561 */
+  /* parser/parser.nit:6619 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6561);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6619);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -19001,7 +19179,7 @@ void parser___ReduceAction157___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6566;
+  fra.me.line = 6624;
   fra.me.meth = LOCATE_parser___ReduceAction157___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -19018,77 +19196,77 @@ void parser___ReduceAction157___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6568 */
+  /* parser/parser.nit:6626 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6569 */
+  /* parser/parser.nit:6627 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6570 */
+  /* parser/parser.nit:6628 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6571 */
+  /* parser/parser.nit:6629 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6572 */
+  /* parser/parser.nit:6630 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6573 */
+  /* parser/parser.nit:6631 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6574 */
+  /* parser/parser.nit:6632 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6575 */
+  /* parser/parser.nit:6633 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6576 */
+  /* parser/parser.nit:6634 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6577 */
+  /* parser/parser.nit:6635 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6579 */
+  /* parser/parser.nit:6637 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6579);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6637);
   }
-  /* ./parser//parser.nit:6581 */
+  /* parser/parser.nit:6639 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6581);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6639);
   }
-  /* ./parser//parser.nit:6583 */
+  /* parser/parser.nit:6641 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6583);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6641);
   }
-  /* ./parser//parser.nit:6585 */
+  /* parser/parser.nit:6643 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast nullable TKwnew*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6585);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6643);
   }
-  /* ./parser//parser.nit:6587 */
+  /* parser/parser.nit:6645 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6587);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6645);
   }
-  /* ./parser//parser.nit:6589 */
+  /* parser/parser.nit:6647 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast nullable TString*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6589);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6647);
   }
-  /* ./parser//parser.nit:6591 */
+  /* parser/parser.nit:6649 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast nullable AExternCalls*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6591);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6649);
   }
-  /* ./parser//parser.nit:6592 */
+  /* parser/parser.nit:6650 */
   fra.me.REG[3] = NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], NIT_NULL, fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:6602 */
+  /* parser/parser.nit:6660 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6603 */
+  /* parser/parser.nit:6661 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6603);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6661);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -19102,7 +19280,7 @@ void parser___ReduceAction158___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6608;
+  fra.me.line = 6666;
   fra.me.meth = LOCATE_parser___ReduceAction158___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -19119,77 +19297,77 @@ void parser___ReduceAction158___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6610 */
+  /* parser/parser.nit:6668 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6611 */
+  /* parser/parser.nit:6669 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6612 */
+  /* parser/parser.nit:6670 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6613 */
+  /* parser/parser.nit:6671 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6614 */
+  /* parser/parser.nit:6672 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6615 */
+  /* parser/parser.nit:6673 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6616 */
+  /* parser/parser.nit:6674 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6617 */
+  /* parser/parser.nit:6675 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6618 */
+  /* parser/parser.nit:6676 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6619 */
+  /* parser/parser.nit:6677 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6621 */
+  /* parser/parser.nit:6679 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6621);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6679);
   }
-  /* ./parser//parser.nit:6623 */
+  /* parser/parser.nit:6681 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6623);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6681);
   }
-  /* ./parser//parser.nit:6625 */
+  /* parser/parser.nit:6683 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast nullable TKwnew*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6625);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6683);
   }
-  /* ./parser//parser.nit:6627 */
+  /* parser/parser.nit:6685 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6627);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6685);
   }
-  /* ./parser//parser.nit:6629 */
+  /* parser/parser.nit:6687 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6629);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6687);
   }
-  /* ./parser//parser.nit:6631 */
+  /* parser/parser.nit:6689 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast nullable TString*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6631);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6689);
   }
-  /* ./parser//parser.nit:6633 */
+  /* parser/parser.nit:6691 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast nullable AExternCalls*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6633);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6691);
   }
-  /* ./parser//parser.nit:6634 */
+  /* parser/parser.nit:6692 */
   fra.me.REG[3] = NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(fra.me.REG[9], NIT_NULL, fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:6644 */
+  /* parser/parser.nit:6702 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6645 */
+  /* parser/parser.nit:6703 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6645);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6703);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -19203,7 +19381,7 @@ void parser___ReduceAction159___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6650;
+  fra.me.line = 6708;
   fra.me.meth = LOCATE_parser___ReduceAction159___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 11;
@@ -19221,85 +19399,85 @@ void parser___ReduceAction159___action(val_t p0, val_t p1){
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6652 */
+  /* parser/parser.nit:6710 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6653 */
+  /* parser/parser.nit:6711 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6654 */
+  /* parser/parser.nit:6712 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6655 */
+  /* parser/parser.nit:6713 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6656 */
+  /* parser/parser.nit:6714 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6657 */
+  /* parser/parser.nit:6715 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6658 */
+  /* parser/parser.nit:6716 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6659 */
+  /* parser/parser.nit:6717 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6660 */
+  /* parser/parser.nit:6718 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6661 */
+  /* parser/parser.nit:6719 */
   fra.me.REG[9] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6662 */
+  /* parser/parser.nit:6720 */
   fra.me.REG[10] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6664 */
+  /* parser/parser.nit:6722 */
   REGB0 = TAG_Bool((fra.me.REG[10]==NIT_NULL) || VAL_ISA(fra.me.REG[10], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast nullable ADoc*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6664);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6722);
   }
-  /* ./parser//parser.nit:6666 */
+  /* parser/parser.nit:6724 */
   REGB0 = TAG_Bool((fra.me.REG[9]==NIT_NULL) || VAL_ISA(fra.me.REG[9], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6666);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6724);
   }
-  /* ./parser//parser.nit:6668 */
+  /* parser/parser.nit:6726 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6668);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6726);
   }
-  /* ./parser//parser.nit:6670 */
+  /* parser/parser.nit:6728 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast nullable TKwnew*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6670);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6728);
   }
-  /* ./parser//parser.nit:6672 */
+  /* parser/parser.nit:6730 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6672);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6730);
   }
-  /* ./parser//parser.nit:6674 */
+  /* parser/parser.nit:6732 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6674);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6732);
   }
-  /* ./parser//parser.nit:6676 */
+  /* parser/parser.nit:6734 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast nullable TString*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6676);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6734);
   }
-  /* ./parser//parser.nit:6678 */
+  /* parser/parser.nit:6736 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast nullable AExternCalls*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6678);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6736);
   }
-  /* ./parser//parser.nit:6679 */
+  /* parser/parser.nit:6737 */
   fra.me.REG[3] = NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(fra.me.REG[10], fra.me.REG[9], fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:6689 */
+  /* parser/parser.nit:6747 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6690 */
+  /* parser/parser.nit:6748 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6690);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6748);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -19313,7 +19491,7 @@ void parser___ReduceAction160___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6695;
+  fra.me.line = 6753;
   fra.me.meth = LOCATE_parser___ReduceAction160___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -19324,25 +19502,25 @@ void parser___ReduceAction160___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6697 */
+  /* parser/parser.nit:6755 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6698 */
+  /* parser/parser.nit:6756 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6700 */
+  /* parser/parser.nit:6758 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwreadable, ID_parser___parser_nodes___TKwreadable)) /*cast nullable TKwreadable*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6700);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6758);
   }
-  /* ./parser//parser.nit:6701 */
+  /* parser/parser.nit:6759 */
   fra.me.REG[3] = NEW_AReadAble_parser___parser_prod___AReadAble___init_areadable(NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:6705 */
+  /* parser/parser.nit:6763 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6706 */
+  /* parser/parser.nit:6764 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6706);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6764);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -19356,7 +19534,7 @@ void parser___ReduceAction161___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6711;
+  fra.me.line = 6769;
   fra.me.meth = LOCATE_parser___ReduceAction161___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -19368,33 +19546,33 @@ void parser___ReduceAction161___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6713 */
+  /* parser/parser.nit:6771 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6714 */
+  /* parser/parser.nit:6772 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6715 */
+  /* parser/parser.nit:6773 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6717 */
+  /* parser/parser.nit:6775 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6717);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6775);
   }
-  /* ./parser//parser.nit:6719 */
+  /* parser/parser.nit:6777 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwreadable, ID_parser___parser_nodes___TKwreadable)) /*cast nullable TKwreadable*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6719);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6777);
   }
-  /* ./parser//parser.nit:6720 */
+  /* parser/parser.nit:6778 */
   fra.me.REG[3] = NEW_AReadAble_parser___parser_prod___AReadAble___init_areadable(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:6724 */
+  /* parser/parser.nit:6782 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6725 */
+  /* parser/parser.nit:6783 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6725);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6783);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -19408,7 +19586,7 @@ void parser___ReduceAction162___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6730;
+  fra.me.line = 6788;
   fra.me.meth = LOCATE_parser___ReduceAction162___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -19419,25 +19597,25 @@ void parser___ReduceAction162___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6732 */
+  /* parser/parser.nit:6790 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6733 */
+  /* parser/parser.nit:6791 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6735 */
+  /* parser/parser.nit:6793 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwwritable, ID_parser___parser_nodes___TKwwritable)) /*cast nullable TKwwritable*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6735);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6793);
   }
-  /* ./parser//parser.nit:6736 */
+  /* parser/parser.nit:6794 */
   fra.me.REG[3] = NEW_AWriteAble_parser___parser_prod___AWriteAble___init_awriteable(NIT_NULL, NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:6741 */
+  /* parser/parser.nit:6799 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6742 */
+  /* parser/parser.nit:6800 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6742);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6800);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -19451,7 +19629,7 @@ void parser___ReduceAction163___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6747;
+  fra.me.line = 6805;
   fra.me.meth = LOCATE_parser___ReduceAction163___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -19463,33 +19641,33 @@ void parser___ReduceAction163___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6749 */
+  /* parser/parser.nit:6807 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6750 */
+  /* parser/parser.nit:6808 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6751 */
+  /* parser/parser.nit:6809 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6753 */
+  /* parser/parser.nit:6811 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6753);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6811);
   }
-  /* ./parser//parser.nit:6755 */
+  /* parser/parser.nit:6813 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwwritable, ID_parser___parser_nodes___TKwwritable)) /*cast nullable TKwwritable*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6755);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6813);
   }
-  /* ./parser//parser.nit:6756 */
+  /* parser/parser.nit:6814 */
   fra.me.REG[3] = NEW_AWriteAble_parser___parser_prod___AWriteAble___init_awriteable(fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:6761 */
+  /* parser/parser.nit:6819 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6762 */
+  /* parser/parser.nit:6820 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6762);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6820);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -19503,7 +19681,7 @@ void parser___ReduceAction164___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6767;
+  fra.me.line = 6825;
   fra.me.meth = LOCATE_parser___ReduceAction164___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -19515,33 +19693,33 @@ void parser___ReduceAction164___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6769 */
+  /* parser/parser.nit:6827 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6770 */
+  /* parser/parser.nit:6828 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6771 */
+  /* parser/parser.nit:6829 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6773 */
+  /* parser/parser.nit:6831 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6773);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6831);
   }
-  /* ./parser//parser.nit:6775 */
+  /* parser/parser.nit:6833 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwwritable, ID_parser___parser_nodes___TKwwritable)) /*cast nullable TKwwritable*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6775);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6833);
   }
-  /* ./parser//parser.nit:6776 */
+  /* parser/parser.nit:6834 */
   fra.me.REG[3] = NEW_AWriteAble_parser___parser_prod___AWriteAble___init_awriteable(NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:6781 */
+  /* parser/parser.nit:6839 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6782 */
+  /* parser/parser.nit:6840 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6782);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6840);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -19555,7 +19733,7 @@ void parser___ReduceAction165___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6787;
+  fra.me.line = 6845;
   fra.me.meth = LOCATE_parser___ReduceAction165___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -19568,41 +19746,41 @@ void parser___ReduceAction165___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6789 */
+  /* parser/parser.nit:6847 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6790 */
+  /* parser/parser.nit:6848 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6791 */
+  /* parser/parser.nit:6849 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6792 */
+  /* parser/parser.nit:6850 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6794 */
+  /* parser/parser.nit:6852 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast nullable TKwredef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6794);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6852);
   }
-  /* ./parser//parser.nit:6796 */
+  /* parser/parser.nit:6854 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast nullable AVisibility*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6796);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6854);
   }
-  /* ./parser//parser.nit:6798 */
+  /* parser/parser.nit:6856 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwwritable, ID_parser___parser_nodes___TKwwritable)) /*cast nullable TKwwritable*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6798);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6856);
   }
-  /* ./parser//parser.nit:6799 */
+  /* parser/parser.nit:6857 */
   fra.me.REG[3] = NEW_AWriteAble_parser___parser_prod___AWriteAble___init_awriteable(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:6804 */
+  /* parser/parser.nit:6862 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6805 */
+  /* parser/parser.nit:6863 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6805);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6863);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -19616,8 +19794,264 @@ void parser___ReduceAction166___action(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6810;
-  fra.me.meth = LOCATE_parser___ReduceAction166___action;
+  fra.me.line = 6868;
+  fra.me.meth = LOCATE_parser___ReduceAction166___action;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* parser/parser.nit:6870 */
+  fra.me.REG[2] = NIT_NULL;
+  /* parser/parser.nit:6871 */
+  fra.me.REG[3] = NEW_APublicVisibility_parser___parser_prod___APublicVisibility___init_apublicvisibility();
+  /* parser/parser.nit:6872 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:6873 */
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6873);
+  }
+  REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
+  REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
+  CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void parser___ReduceAction167___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser;
+  fra.me.line = 6878;
+  fra.me.meth = LOCATE_parser___ReduceAction167___action;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* parser/parser.nit:6880 */
+  fra.me.REG[2] = NIT_NULL;
+  /* parser/parser.nit:6881 */
+  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:6882 */
+  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:6884 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwprivate, ID_parser___parser_nodes___TKwprivate)) /*cast nullable TKwprivate*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6884);
+  }
+  /* parser/parser.nit:6885 */
+  fra.me.REG[3] = NEW_APrivateVisibility_parser___parser_prod___APrivateVisibility___init_aprivatevisibility(fra.me.REG[3]);
+  /* parser/parser.nit:6888 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:6889 */
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6889);
+  }
+  REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
+  REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
+  CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void parser___ReduceAction168___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser;
+  fra.me.line = 6894;
+  fra.me.meth = LOCATE_parser___ReduceAction168___action;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* parser/parser.nit:6896 */
+  fra.me.REG[2] = NIT_NULL;
+  /* parser/parser.nit:6897 */
+  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:6898 */
+  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:6900 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwprotected, ID_parser___parser_nodes___TKwprotected)) /*cast nullable TKwprotected*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6900);
+  }
+  /* parser/parser.nit:6901 */
+  fra.me.REG[3] = NEW_AProtectedVisibility_parser___parser_prod___AProtectedVisibility___init_aprotectedvisibility(fra.me.REG[3]);
+  /* parser/parser.nit:6904 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:6905 */
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6905);
+  }
+  REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
+  REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
+  CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void parser___ReduceAction169___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser;
+  fra.me.line = 6910;
+  fra.me.meth = LOCATE_parser___ReduceAction169___action;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* parser/parser.nit:6912 */
+  fra.me.REG[2] = NIT_NULL;
+  /* parser/parser.nit:6913 */
+  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:6914 */
+  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:6916 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwintrude, ID_parser___parser_nodes___TKwintrude)) /*cast nullable TKwintrude*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6916);
+  }
+  /* parser/parser.nit:6917 */
+  fra.me.REG[3] = NEW_AIntrudeVisibility_parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility(fra.me.REG[3]);
+  /* parser/parser.nit:6920 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:6921 */
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6921);
+  }
+  REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
+  REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
+  CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void parser___ReduceAction170___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser;
+  fra.me.line = 6926;
+  fra.me.meth = LOCATE_parser___ReduceAction170___action;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* parser/parser.nit:6928 */
+  fra.me.REG[2] = NIT_NULL;
+  /* parser/parser.nit:6929 */
+  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:6931 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6931);
+  }
+  /* parser/parser.nit:6932 */
+  fra.me.REG[3] = NEW_AIdMethid_parser___parser_prod___AIdMethid___init_aidmethid(fra.me.REG[3]);
+  /* parser/parser.nit:6935 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:6936 */
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6936);
+  }
+  REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
+  REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
+  CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void parser___ReduceAction171___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser;
+  fra.me.line = 6941;
+  fra.me.meth = LOCATE_parser___ReduceAction171___action;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* parser/parser.nit:6943 */
+  fra.me.REG[2] = NIT_NULL;
+  /* parser/parser.nit:6944 */
+  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:6946 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TPlus, ID_parser___parser_nodes___TPlus)) /*cast nullable TPlus*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6946);
+  }
+  /* parser/parser.nit:6947 */
+  fra.me.REG[3] = NEW_APlusMethid_parser___parser_prod___APlusMethid___init_aplusmethid(fra.me.REG[3]);
+  /* parser/parser.nit:6950 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:6951 */
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6951);
+  }
+  REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
+  REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
+  CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void parser___ReduceAction172___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser;
+  fra.me.line = 6956;
+  fra.me.meth = LOCATE_parser___ReduceAction172___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -19627,17 +20061,25 @@ void parser___ReduceAction166___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6812 */
+  /* parser/parser.nit:6958 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6813 */
-  fra.me.REG[3] = NEW_APublicVisibility_parser___parser_prod___APublicVisibility___init_apublicvisibility();
-  /* ./parser//parser.nit:6815 */
+  /* parser/parser.nit:6959 */
+  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:6961 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TMinus, ID_parser___parser_nodes___TMinus)) /*cast nullable TMinus*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6961);
+  }
+  /* parser/parser.nit:6962 */
+  fra.me.REG[3] = NEW_AMinusMethid_parser___parser_prod___AMinusMethid___init_aminusmethid(fra.me.REG[3]);
+  /* parser/parser.nit:6965 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6816 */
+  /* parser/parser.nit:6966 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6816);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6966);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -19645,14 +20087,14 @@ void parser___ReduceAction166___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction167___action(val_t p0, val_t p1){
+void parser___ReduceAction173___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6821;
-  fra.me.meth = LOCATE_parser___ReduceAction167___action;
+  fra.me.line = 6971;
+  fra.me.meth = LOCATE_parser___ReduceAction173___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -19662,27 +20104,25 @@ void parser___ReduceAction167___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6823 */
+  /* parser/parser.nit:6973 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6824 */
+  /* parser/parser.nit:6974 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6825 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6827 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwprivate, ID_parser___parser_nodes___TKwprivate)) /*cast nullable TKwprivate*/;
+  /* parser/parser.nit:6976 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TStar, ID_parser___parser_nodes___TStar)) /*cast nullable TStar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6827);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6976);
   }
-  /* ./parser//parser.nit:6828 */
-  fra.me.REG[3] = NEW_APrivateVisibility_parser___parser_prod___APrivateVisibility___init_aprivatevisibility(fra.me.REG[3]);
-  /* ./parser//parser.nit:6831 */
+  /* parser/parser.nit:6977 */
+  fra.me.REG[3] = NEW_AStarMethid_parser___parser_prod___AStarMethid___init_astarmethid(fra.me.REG[3]);
+  /* parser/parser.nit:6980 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6832 */
+  /* parser/parser.nit:6981 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6832);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6981);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -19690,14 +20130,14 @@ void parser___ReduceAction167___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction168___action(val_t p0, val_t p1){
+void parser___ReduceAction174___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6837;
-  fra.me.meth = LOCATE_parser___ReduceAction168___action;
+  fra.me.line = 6986;
+  fra.me.meth = LOCATE_parser___ReduceAction174___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -19707,27 +20147,25 @@ void parser___ReduceAction168___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6839 */
+  /* parser/parser.nit:6988 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6840 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6841 */
+  /* parser/parser.nit:6989 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6843 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwprotected, ID_parser___parser_nodes___TKwprotected)) /*cast nullable TKwprotected*/;
+  /* parser/parser.nit:6991 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TSlash, ID_parser___parser_nodes___TSlash)) /*cast nullable TSlash*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6843);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 6991);
   }
-  /* ./parser//parser.nit:6844 */
-  fra.me.REG[3] = NEW_AProtectedVisibility_parser___parser_prod___AProtectedVisibility___init_aprotectedvisibility(fra.me.REG[3]);
-  /* ./parser//parser.nit:6847 */
+  /* parser/parser.nit:6992 */
+  fra.me.REG[3] = NEW_ASlashMethid_parser___parser_prod___ASlashMethid___init_aslashmethid(fra.me.REG[3]);
+  /* parser/parser.nit:6995 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6848 */
+  /* parser/parser.nit:6996 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6848);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6996);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -19735,14 +20173,14 @@ void parser___ReduceAction168___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction169___action(val_t p0, val_t p1){
+void parser___ReduceAction175___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6853;
-  fra.me.meth = LOCATE_parser___ReduceAction169___action;
+  fra.me.line = 7001;
+  fra.me.meth = LOCATE_parser___ReduceAction175___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -19752,27 +20190,25 @@ void parser___ReduceAction169___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6855 */
+  /* parser/parser.nit:7003 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6856 */
+  /* parser/parser.nit:7004 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6857 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6859 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwintrude, ID_parser___parser_nodes___TKwintrude)) /*cast nullable TKwintrude*/;
+  /* parser/parser.nit:7006 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TPercent, ID_parser___parser_nodes___TPercent)) /*cast nullable TPercent*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6859);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7006);
   }
-  /* ./parser//parser.nit:6860 */
-  fra.me.REG[3] = NEW_AIntrudeVisibility_parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility(fra.me.REG[3]);
-  /* ./parser//parser.nit:6863 */
+  /* parser/parser.nit:7007 */
+  fra.me.REG[3] = NEW_APercentMethid_parser___parser_prod___APercentMethid___init_apercentmethid(fra.me.REG[3]);
+  /* parser/parser.nit:7010 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6864 */
+  /* parser/parser.nit:7011 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6864);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7011);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -19780,14 +20216,14 @@ void parser___ReduceAction169___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction170___action(val_t p0, val_t p1){
+void parser___ReduceAction176___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6869;
-  fra.me.meth = LOCATE_parser___ReduceAction170___action;
+  fra.me.line = 7016;
+  fra.me.meth = LOCATE_parser___ReduceAction176___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -19797,25 +20233,25 @@ void parser___ReduceAction170___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6871 */
+  /* parser/parser.nit:7018 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6872 */
+  /* parser/parser.nit:7019 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6874 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
+  /* parser/parser.nit:7021 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TEq, ID_parser___parser_nodes___TEq)) /*cast nullable TEq*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6874);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7021);
   }
-  /* ./parser//parser.nit:6875 */
-  fra.me.REG[3] = NEW_AIdMethid_parser___parser_prod___AIdMethid___init_aidmethid(fra.me.REG[3]);
-  /* ./parser//parser.nit:6878 */
+  /* parser/parser.nit:7022 */
+  fra.me.REG[3] = NEW_AEqMethid_parser___parser_prod___AEqMethid___init_aeqmethid(fra.me.REG[3]);
+  /* parser/parser.nit:7025 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6879 */
+  /* parser/parser.nit:7026 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6879);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7026);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -19823,14 +20259,14 @@ void parser___ReduceAction170___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction171___action(val_t p0, val_t p1){
+void parser___ReduceAction177___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6884;
-  fra.me.meth = LOCATE_parser___ReduceAction171___action;
+  fra.me.line = 7031;
+  fra.me.meth = LOCATE_parser___ReduceAction177___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -19840,25 +20276,25 @@ void parser___ReduceAction171___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6886 */
+  /* parser/parser.nit:7033 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6887 */
+  /* parser/parser.nit:7034 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6889 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TPlus, ID_parser___parser_nodes___TPlus)) /*cast nullable TPlus*/;
+  /* parser/parser.nit:7036 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TNe, ID_parser___parser_nodes___TNe)) /*cast nullable TNe*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6889);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7036);
   }
-  /* ./parser//parser.nit:6890 */
-  fra.me.REG[3] = NEW_APlusMethid_parser___parser_prod___APlusMethid___init_aplusmethid(fra.me.REG[3]);
-  /* ./parser//parser.nit:6893 */
+  /* parser/parser.nit:7037 */
+  fra.me.REG[3] = NEW_ANeMethid_parser___parser_prod___ANeMethid___init_anemethid(fra.me.REG[3]);
+  /* parser/parser.nit:7040 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6894 */
+  /* parser/parser.nit:7041 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6894);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7041);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -19866,14 +20302,14 @@ void parser___ReduceAction171___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction172___action(val_t p0, val_t p1){
+void parser___ReduceAction178___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6899;
-  fra.me.meth = LOCATE_parser___ReduceAction172___action;
+  fra.me.line = 7046;
+  fra.me.meth = LOCATE_parser___ReduceAction178___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -19883,25 +20319,25 @@ void parser___ReduceAction172___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6901 */
+  /* parser/parser.nit:7048 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6902 */
+  /* parser/parser.nit:7049 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6904 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TMinus, ID_parser___parser_nodes___TMinus)) /*cast nullable TMinus*/;
+  /* parser/parser.nit:7051 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TLe, ID_parser___parser_nodes___TLe)) /*cast nullable TLe*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6904);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7051);
   }
-  /* ./parser//parser.nit:6905 */
-  fra.me.REG[3] = NEW_AMinusMethid_parser___parser_prod___AMinusMethid___init_aminusmethid(fra.me.REG[3]);
-  /* ./parser//parser.nit:6908 */
+  /* parser/parser.nit:7052 */
+  fra.me.REG[3] = NEW_ALeMethid_parser___parser_prod___ALeMethid___init_alemethid(fra.me.REG[3]);
+  /* parser/parser.nit:7055 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6909 */
+  /* parser/parser.nit:7056 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6909);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7056);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -19909,14 +20345,14 @@ void parser___ReduceAction172___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction173___action(val_t p0, val_t p1){
+void parser___ReduceAction179___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6914;
-  fra.me.meth = LOCATE_parser___ReduceAction173___action;
+  fra.me.line = 7061;
+  fra.me.meth = LOCATE_parser___ReduceAction179___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -19926,25 +20362,25 @@ void parser___ReduceAction173___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6916 */
+  /* parser/parser.nit:7063 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6917 */
+  /* parser/parser.nit:7064 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6919 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TStar, ID_parser___parser_nodes___TStar)) /*cast nullable TStar*/;
+  /* parser/parser.nit:7066 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TGe, ID_parser___parser_nodes___TGe)) /*cast nullable TGe*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6919);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7066);
   }
-  /* ./parser//parser.nit:6920 */
-  fra.me.REG[3] = NEW_AStarMethid_parser___parser_prod___AStarMethid___init_astarmethid(fra.me.REG[3]);
-  /* ./parser//parser.nit:6923 */
+  /* parser/parser.nit:7067 */
+  fra.me.REG[3] = NEW_AGeMethid_parser___parser_prod___AGeMethid___init_agemethid(fra.me.REG[3]);
+  /* parser/parser.nit:7070 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6924 */
+  /* parser/parser.nit:7071 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6924);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7071);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -19952,14 +20388,14 @@ void parser___ReduceAction173___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction174___action(val_t p0, val_t p1){
+void parser___ReduceAction180___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6929;
-  fra.me.meth = LOCATE_parser___ReduceAction174___action;
+  fra.me.line = 7076;
+  fra.me.meth = LOCATE_parser___ReduceAction180___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -19969,25 +20405,25 @@ void parser___ReduceAction174___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6931 */
+  /* parser/parser.nit:7078 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6932 */
+  /* parser/parser.nit:7079 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6934 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TSlash, ID_parser___parser_nodes___TSlash)) /*cast nullable TSlash*/;
+  /* parser/parser.nit:7081 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TLt, ID_parser___parser_nodes___TLt)) /*cast nullable TLt*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6934);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7081);
   }
-  /* ./parser//parser.nit:6935 */
-  fra.me.REG[3] = NEW_ASlashMethid_parser___parser_prod___ASlashMethid___init_aslashmethid(fra.me.REG[3]);
-  /* ./parser//parser.nit:6938 */
+  /* parser/parser.nit:7082 */
+  fra.me.REG[3] = NEW_ALtMethid_parser___parser_prod___ALtMethid___init_altmethid(fra.me.REG[3]);
+  /* parser/parser.nit:7085 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6939 */
+  /* parser/parser.nit:7086 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6939);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7086);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -19995,14 +20431,14 @@ void parser___ReduceAction174___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction175___action(val_t p0, val_t p1){
+void parser___ReduceAction181___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6944;
-  fra.me.meth = LOCATE_parser___ReduceAction175___action;
+  fra.me.line = 7091;
+  fra.me.meth = LOCATE_parser___ReduceAction181___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -20012,25 +20448,25 @@ void parser___ReduceAction175___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6946 */
+  /* parser/parser.nit:7093 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6947 */
+  /* parser/parser.nit:7094 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6949 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TPercent, ID_parser___parser_nodes___TPercent)) /*cast nullable TPercent*/;
+  /* parser/parser.nit:7096 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TGt, ID_parser___parser_nodes___TGt)) /*cast nullable TGt*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6949);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7096);
   }
-  /* ./parser//parser.nit:6950 */
-  fra.me.REG[3] = NEW_APercentMethid_parser___parser_prod___APercentMethid___init_apercentmethid(fra.me.REG[3]);
-  /* ./parser//parser.nit:6953 */
+  /* parser/parser.nit:7097 */
+  fra.me.REG[3] = NEW_AGtMethid_parser___parser_prod___AGtMethid___init_agtmethid(fra.me.REG[3]);
+  /* parser/parser.nit:7100 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6954 */
+  /* parser/parser.nit:7101 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6954);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7101);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -20038,14 +20474,14 @@ void parser___ReduceAction175___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction176___action(val_t p0, val_t p1){
+void parser___ReduceAction182___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6959;
-  fra.me.meth = LOCATE_parser___ReduceAction176___action;
+  fra.me.line = 7106;
+  fra.me.meth = LOCATE_parser___ReduceAction182___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -20055,25 +20491,25 @@ void parser___ReduceAction176___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6961 */
+  /* parser/parser.nit:7108 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6962 */
+  /* parser/parser.nit:7109 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6964 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TEq, ID_parser___parser_nodes___TEq)) /*cast nullable TEq*/;
+  /* parser/parser.nit:7111 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TLl, ID_parser___parser_nodes___TLl)) /*cast nullable TLl*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6964);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7111);
   }
-  /* ./parser//parser.nit:6965 */
-  fra.me.REG[3] = NEW_AEqMethid_parser___parser_prod___AEqMethid___init_aeqmethid(fra.me.REG[3]);
-  /* ./parser//parser.nit:6968 */
+  /* parser/parser.nit:7112 */
+  fra.me.REG[3] = NEW_ALlMethid_parser___parser_prod___ALlMethid___init_allmethid(fra.me.REG[3]);
+  /* parser/parser.nit:7115 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6969 */
+  /* parser/parser.nit:7116 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6969);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7116);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -20081,14 +20517,14 @@ void parser___ReduceAction176___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction177___action(val_t p0, val_t p1){
+void parser___ReduceAction183___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6974;
-  fra.me.meth = LOCATE_parser___ReduceAction177___action;
+  fra.me.line = 7121;
+  fra.me.meth = LOCATE_parser___ReduceAction183___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -20098,25 +20534,25 @@ void parser___ReduceAction177___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6976 */
+  /* parser/parser.nit:7123 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6977 */
+  /* parser/parser.nit:7124 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6979 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TNe, ID_parser___parser_nodes___TNe)) /*cast nullable TNe*/;
+  /* parser/parser.nit:7126 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TGg, ID_parser___parser_nodes___TGg)) /*cast nullable TGg*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6979);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7126);
   }
-  /* ./parser//parser.nit:6980 */
-  fra.me.REG[3] = NEW_ANeMethid_parser___parser_prod___ANeMethid___init_anemethid(fra.me.REG[3]);
-  /* ./parser//parser.nit:6983 */
+  /* parser/parser.nit:7127 */
+  fra.me.REG[3] = NEW_AGgMethid_parser___parser_prod___AGgMethid___init_aggmethid(fra.me.REG[3]);
+  /* parser/parser.nit:7130 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6984 */
+  /* parser/parser.nit:7131 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6984);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7131);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -20124,42 +20560,51 @@ void parser___ReduceAction177___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction178___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+void parser___ReduceAction184___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 6989;
-  fra.me.meth = LOCATE_parser___ReduceAction178___action;
+  fra.me.line = 7136;
+  fra.me.meth = LOCATE_parser___ReduceAction184___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
+  fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:6991 */
+  /* parser/parser.nit:7138 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:6992 */
+  /* parser/parser.nit:7139 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:6994 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TLe, ID_parser___parser_nodes___TLe)) /*cast nullable TLe*/;
+  /* parser/parser.nit:7140 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7142 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast nullable TObra*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 6994);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7142);
   }
-  /* ./parser//parser.nit:6995 */
-  fra.me.REG[3] = NEW_ALeMethid_parser___parser_prod___ALeMethid___init_alemethid(fra.me.REG[3]);
-  /* ./parser//parser.nit:6998 */
+  /* parser/parser.nit:7144 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TCbra, ID_parser___parser_nodes___TCbra)) /*cast nullable TCbra*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7144);
+  }
+  /* parser/parser.nit:7145 */
+  fra.me.REG[3] = NEW_ABraMethid_parser___parser_prod___ABraMethid___init_abramethid(fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:7149 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:6999 */
+  /* parser/parser.nit:7150 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 6999);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7150);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -20167,14 +20612,14 @@ void parser___ReduceAction178___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction179___action(val_t p0, val_t p1){
+void parser___ReduceAction185___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7004;
-  fra.me.meth = LOCATE_parser___ReduceAction179___action;
+  fra.me.line = 7155;
+  fra.me.meth = LOCATE_parser___ReduceAction185___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -20184,25 +20629,25 @@ void parser___ReduceAction179___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7006 */
+  /* parser/parser.nit:7157 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7007 */
+  /* parser/parser.nit:7158 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7009 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TGe, ID_parser___parser_nodes___TGe)) /*cast nullable TGe*/;
+  /* parser/parser.nit:7160 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TStarship, ID_parser___parser_nodes___TStarship)) /*cast nullable TStarship*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7009);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7160);
   }
-  /* ./parser//parser.nit:7010 */
-  fra.me.REG[3] = NEW_AGeMethid_parser___parser_prod___AGeMethid___init_agemethid(fra.me.REG[3]);
-  /* ./parser//parser.nit:7013 */
+  /* parser/parser.nit:7161 */
+  fra.me.REG[3] = NEW_AStarshipMethid_parser___parser_prod___AStarshipMethid___init_astarshipmethid(fra.me.REG[3]);
+  /* parser/parser.nit:7164 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7014 */
+  /* parser/parser.nit:7165 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7014);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7165);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -20210,42 +20655,51 @@ void parser___ReduceAction179___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction180___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+void parser___ReduceAction186___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7019;
-  fra.me.meth = LOCATE_parser___ReduceAction180___action;
+  fra.me.line = 7170;
+  fra.me.meth = LOCATE_parser___ReduceAction186___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
+  fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7021 */
+  /* parser/parser.nit:7172 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7022 */
+  /* parser/parser.nit:7173 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7024 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TLt, ID_parser___parser_nodes___TLt)) /*cast nullable TLt*/;
+  /* parser/parser.nit:7174 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7176 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7024);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7176);
   }
-  /* ./parser//parser.nit:7025 */
-  fra.me.REG[3] = NEW_ALtMethid_parser___parser_prod___ALtMethid___init_altmethid(fra.me.REG[3]);
-  /* ./parser//parser.nit:7028 */
+  /* parser/parser.nit:7178 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast nullable TAssign*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7178);
+  }
+  /* parser/parser.nit:7179 */
+  fra.me.REG[3] = NEW_AAssignMethid_parser___parser_prod___AAssignMethid___init_aassignmethid(fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:7183 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7029 */
+  /* parser/parser.nit:7184 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7029);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7184);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -20253,42 +20707,60 @@ void parser___ReduceAction180___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction181___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+void parser___ReduceAction187___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7034;
-  fra.me.meth = LOCATE_parser___ReduceAction181___action;
+  fra.me.line = 7189;
+  fra.me.meth = LOCATE_parser___ReduceAction187___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
+  fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7036 */
+  /* parser/parser.nit:7191 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7037 */
+  /* parser/parser.nit:7192 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7039 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TGt, ID_parser___parser_nodes___TGt)) /*cast nullable TGt*/;
+  /* parser/parser.nit:7193 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7194 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7196 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast nullable TObra*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7039);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7196);
   }
-  /* ./parser//parser.nit:7040 */
-  fra.me.REG[3] = NEW_AGtMethid_parser___parser_prod___AGtMethid___init_agtmethid(fra.me.REG[3]);
-  /* ./parser//parser.nit:7043 */
+  /* parser/parser.nit:7198 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TCbra, ID_parser___parser_nodes___TCbra)) /*cast nullable TCbra*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7198);
+  }
+  /* parser/parser.nit:7200 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast nullable TAssign*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7200);
+  }
+  /* parser/parser.nit:7201 */
+  fra.me.REG[3] = NEW_ABraassignMethid_parser___parser_prod___ABraassignMethid___init_abraassignmethid(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:7206 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7044 */
+  /* parser/parser.nit:7207 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7044);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7207);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -20296,42 +20768,70 @@ void parser___ReduceAction181___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction182___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+void parser___ReduceAction188___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7049;
-  fra.me.meth = LOCATE_parser___ReduceAction182___action;
+  fra.me.line = 7212;
+  fra.me.meth = LOCATE_parser___ReduceAction188___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
+  fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7051 */
+  /* parser/parser.nit:7214 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7052 */
+  /* parser/parser.nit:7215 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7054 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TLl, ID_parser___parser_nodes___TLl)) /*cast nullable TLl*/;
+  /* parser/parser.nit:7216 */
+  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7217 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7218 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7219 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7220 */
+  fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7221 */
+  fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7223 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast nullable TOpar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7054);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7223);
   }
-  /* ./parser//parser.nit:7055 */
-  fra.me.REG[3] = NEW_ALlMethid_parser___parser_prod___ALlMethid___init_allmethid(fra.me.REG[3]);
-  /* ./parser//parser.nit:7058 */
-  fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7059 */
+  /* parser/parser.nit:7225 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast nullable TCpar*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7225);
+  }
+  /* parser/parser.nit:7227 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7227);
+  }
+  /* parser/parser.nit:7228 */
+  fra.me.REG[7] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[5], fra.me.REG[6], fra.me.REG[4], fra.me.REG[3], fra.me.REG[7]);
+  /* parser/parser.nit:7235 */
+  fra.me.REG[2] = fra.me.REG[7];
+  /* parser/parser.nit:7236 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7059);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7236);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -20339,42 +20839,82 @@ void parser___ReduceAction182___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction183___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+void parser___ReduceAction189___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7064;
-  fra.me.meth = LOCATE_parser___ReduceAction183___action;
+  fra.me.line = 7241;
+  fra.me.meth = LOCATE_parser___ReduceAction189___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
+  fra.me.REG_size = 9;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[7] = NIT_NULL;
+  fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7066 */
+  /* parser/parser.nit:7243 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7067 */
+  /* parser/parser.nit:7244 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7069 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TGg, ID_parser___parser_nodes___TGg)) /*cast nullable TGg*/;
+  /* parser/parser.nit:7245 */
+  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7246 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7247 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7248 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7249 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7250 */
+  fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7251 */
+  fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7253 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast nullable TOpar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7069);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7253);
   }
-  /* ./parser//parser.nit:7070 */
-  fra.me.REG[3] = NEW_AGgMethid_parser___parser_prod___AGgMethid___init_aggmethid(fra.me.REG[3]);
-  /* ./parser//parser.nit:7073 */
-  fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7074 */
+  /* parser/parser.nit:7255 */
+  REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7255);
+  }
+  /* parser/parser.nit:7256 */
+  fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
+  fra.me.REG[7] = fra.me.REG[5];
+  /* parser/parser.nit:7258 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast nullable TCpar*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7258);
+  }
+  /* parser/parser.nit:7260 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7260);
+  }
+  /* parser/parser.nit:7261 */
+  fra.me.REG[8] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[6], fra.me.REG[7], fra.me.REG[4], fra.me.REG[3], fra.me.REG[8]);
+  /* parser/parser.nit:7268 */
+  fra.me.REG[2] = fra.me.REG[8];
+  /* parser/parser.nit:7269 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7074);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7269);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -20382,51 +20922,82 @@ void parser___ReduceAction183___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction184___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+void parser___ReduceAction190___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7079;
-  fra.me.meth = LOCATE_parser___ReduceAction184___action;
+  fra.me.line = 7274;
+  fra.me.meth = LOCATE_parser___ReduceAction190___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
+  fra.me.REG_size = 9;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[7] = NIT_NULL;
+  fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7081 */
+  /* parser/parser.nit:7276 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7082 */
+  /* parser/parser.nit:7277 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7083 */
+  /* parser/parser.nit:7278 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7085 */
-  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast nullable TObra*/;
+  /* parser/parser.nit:7279 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7280 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7281 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7282 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7283 */
+  fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7284 */
+  fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7286 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast nullable TOpar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7085);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7286);
   }
-  /* ./parser//parser.nit:7087 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TCbra, ID_parser___parser_nodes___TCbra)) /*cast nullable TCbra*/;
+  /* parser/parser.nit:7288 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast nullable TCpar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7087);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7288);
   }
-  /* ./parser//parser.nit:7088 */
-  fra.me.REG[3] = NEW_ABraMethid_parser___parser_prod___ABraMethid___init_abramethid(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:7092 */
-  fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7093 */
+  /* parser/parser.nit:7290 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7290);
+  }
+  /* parser/parser.nit:7292 */
+  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7292);
+  }
+  /* parser/parser.nit:7293 */
+  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[3]);
+  fra.me.REG[8] = fra.me.REG[3];
+  /* parser/parser.nit:7294 */
+  fra.me.REG[8] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[6], fra.me.REG[7], fra.me.REG[5], fra.me.REG[4], fra.me.REG[8]);
+  /* parser/parser.nit:7301 */
+  fra.me.REG[2] = fra.me.REG[8];
+  /* parser/parser.nit:7302 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7093);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7302);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -20434,42 +21005,94 @@ void parser___ReduceAction184___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction185___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+void parser___ReduceAction191___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7098;
-  fra.me.meth = LOCATE_parser___ReduceAction185___action;
+  fra.me.line = 7307;
+  fra.me.meth = LOCATE_parser___ReduceAction191___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
+  fra.me.REG_size = 10;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[7] = NIT_NULL;
+  fra.me.REG[8] = NIT_NULL;
+  fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7100 */
+  /* parser/parser.nit:7309 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7101 */
+  /* parser/parser.nit:7310 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7103 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TStarship, ID_parser___parser_nodes___TStarship)) /*cast nullable TStarship*/;
+  /* parser/parser.nit:7311 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7312 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7313 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7314 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7315 */
+  fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7316 */
+  fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7317 */
+  fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7318 */
+  fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7320 */
+  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast nullable TOpar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7103);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7320);
   }
-  /* ./parser//parser.nit:7104 */
-  fra.me.REG[3] = NEW_AStarshipMethid_parser___parser_prod___AStarshipMethid___init_astarshipmethid(fra.me.REG[3]);
-  /* ./parser//parser.nit:7107 */
-  fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7108 */
+  /* parser/parser.nit:7322 */
+  REGB0 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7322);
+  }
+  /* parser/parser.nit:7323 */
+  fra.me.REG[6] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[6]);
+  fra.me.REG[8] = fra.me.REG[6];
+  /* parser/parser.nit:7325 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast nullable TCpar*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7325);
+  }
+  /* parser/parser.nit:7327 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7327);
+  }
+  /* parser/parser.nit:7329 */
+  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7329);
+  }
+  /* parser/parser.nit:7330 */
+  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[3]);
+  fra.me.REG[9] = fra.me.REG[3];
+  /* parser/parser.nit:7331 */
+  fra.me.REG[9] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[7], fra.me.REG[8], fra.me.REG[5], fra.me.REG[4], fra.me.REG[9]);
+  /* parser/parser.nit:7338 */
+  fra.me.REG[2] = fra.me.REG[9];
+  /* parser/parser.nit:7339 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7108);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7339);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -20477,51 +21100,61 @@ void parser___ReduceAction185___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction186___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+void parser___ReduceAction192___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7113;
-  fra.me.meth = LOCATE_parser___ReduceAction186___action;
+  fra.me.line = 7344;
+  fra.me.meth = LOCATE_parser___ReduceAction192___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
+  fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7115 */
+  /* parser/parser.nit:7346 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7116 */
+  /* parser/parser.nit:7347 */
+  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7348 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7117 */
+  /* parser/parser.nit:7349 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7119 */
-  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
+  /* parser/parser.nit:7350 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7351 */
+  fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7352 */
+  fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7354 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast nullable TOpar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7119);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7354);
   }
-  /* ./parser//parser.nit:7121 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast nullable TAssign*/;
+  /* parser/parser.nit:7356 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast nullable TCpar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7121);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7356);
   }
-  /* ./parser//parser.nit:7122 */
-  fra.me.REG[3] = NEW_AAssignMethid_parser___parser_prod___AAssignMethid___init_aassignmethid(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:7126 */
-  fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7127 */
+  /* parser/parser.nit:7357 */
+  fra.me.REG[6] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[4], fra.me.REG[5], fra.me.REG[3], NIT_NULL, fra.me.REG[6]);
+  /* parser/parser.nit:7364 */
+  fra.me.REG[2] = fra.me.REG[6];
+  /* parser/parser.nit:7365 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7127);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7365);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -20529,16 +21162,16 @@ void parser___ReduceAction186___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction187___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
+void parser___ReduceAction193___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7132;
-  fra.me.meth = LOCATE_parser___ReduceAction187___action;
+  fra.me.line = 7370;
+  fra.me.meth = LOCATE_parser___ReduceAction193___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
+  fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -20546,43 +21179,56 @@ void parser___ReduceAction187___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7134 */
+  /* parser/parser.nit:7372 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7135 */
+  /* parser/parser.nit:7373 */
+  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7374 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7136 */
+  /* parser/parser.nit:7375 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7137 */
+  /* parser/parser.nit:7376 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7139 */
-  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast nullable TObra*/;
+  /* parser/parser.nit:7377 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7378 */
+  fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7379 */
+  fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7381 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast nullable TOpar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7139);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7381);
   }
-  /* ./parser//parser.nit:7141 */
-  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TCbra, ID_parser___parser_nodes___TCbra)) /*cast nullable TCbra*/;
+  /* parser/parser.nit:7383 */
+  REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7141);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7383);
   }
-  /* ./parser//parser.nit:7143 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast nullable TAssign*/;
+  /* parser/parser.nit:7384 */
+  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
+  fra.me.REG[6] = fra.me.REG[4];
+  /* parser/parser.nit:7386 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast nullable TCpar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7143);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7386);
   }
-  /* ./parser//parser.nit:7144 */
-  fra.me.REG[3] = NEW_ABraassignMethid_parser___parser_prod___ABraassignMethid___init_abraassignmethid(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:7149 */
-  fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7150 */
+  /* parser/parser.nit:7387 */
+  fra.me.REG[7] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[5], fra.me.REG[6], fra.me.REG[3], NIT_NULL, fra.me.REG[7]);
+  /* parser/parser.nit:7394 */
+  fra.me.REG[2] = fra.me.REG[7];
+  /* parser/parser.nit:7395 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7150);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7395);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -20590,16 +21236,16 @@ void parser___ReduceAction187___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction188___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+void parser___ReduceAction194___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7155;
-  fra.me.meth = LOCATE_parser___ReduceAction188___action;
+  fra.me.line = 7400;
+  fra.me.meth = LOCATE_parser___ReduceAction194___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 7;
+  fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -20608,42 +21254,55 @@ void parser___ReduceAction188___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7157 */
+  /* parser/parser.nit:7402 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7158 */
+  /* parser/parser.nit:7403 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7159 */
+  /* parser/parser.nit:7404 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7160 */
-  fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7161 */
+  /* parser/parser.nit:7405 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7406 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7407 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7408 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7163 */
-  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
+  /* parser/parser.nit:7409 */
+  fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7411 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast nullable TOpar*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7411);
+  }
+  /* parser/parser.nit:7413 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast nullable TCpar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7163);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7413);
   }
-  /* ./parser//parser.nit:7165 */
+  /* parser/parser.nit:7415 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7165);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7415);
   }
-  /* ./parser//parser.nit:7166 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
-  fra.me.REG[6] = fra.me.REG[3];
-  /* ./parser//parser.nit:7167 */
-  fra.me.REG[6] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
-  /* ./parser//parser.nit:7172 */
-  fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:7173 */
+  /* parser/parser.nit:7416 */
+  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
+  fra.me.REG[7] = fra.me.REG[3];
+  /* parser/parser.nit:7417 */
+  fra.me.REG[7] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[5], fra.me.REG[6], fra.me.REG[4], NIT_NULL, fra.me.REG[7]);
+  /* parser/parser.nit:7424 */
+  fra.me.REG[2] = fra.me.REG[7];
+  /* parser/parser.nit:7425 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7173);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7425);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -20651,16 +21310,16 @@ void parser___ReduceAction188___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction189___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
+void parser___ReduceAction195___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7178;
-  fra.me.meth = LOCATE_parser___ReduceAction189___action;
+  fra.me.line = 7430;
+  fra.me.meth = LOCATE_parser___ReduceAction195___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 8;
+  fra.me.REG_size = 9;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -20670,53 +21329,66 @@ void parser___ReduceAction189___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[7] = NIT_NULL;
+  fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7180 */
+  /* parser/parser.nit:7432 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7181 */
+  /* parser/parser.nit:7433 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7182 */
+  /* parser/parser.nit:7434 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7435 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7183 */
+  /* parser/parser.nit:7436 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7184 */
-  fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7185 */
+  /* parser/parser.nit:7437 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7438 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7439 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7187 */
+  /* parser/parser.nit:7440 */
+  fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7442 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast nullable TOpar*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7442);
+  }
+  /* parser/parser.nit:7444 */
   REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7187);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7444);
   }
-  /* ./parser//parser.nit:7188 */
-  fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[5]);
-  fra.me.REG[6] = fra.me.REG[5];
-  /* ./parser//parser.nit:7190 */
-  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
+  /* parser/parser.nit:7445 */
+  fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
+  fra.me.REG[7] = fra.me.REG[5];
+  /* parser/parser.nit:7447 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast nullable TCpar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7190);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7447);
   }
-  /* ./parser//parser.nit:7192 */
+  /* parser/parser.nit:7449 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7192);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7449);
   }
-  /* ./parser//parser.nit:7193 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
-  fra.me.REG[7] = fra.me.REG[3];
-  /* ./parser//parser.nit:7194 */
-  fra.me.REG[7] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[6], fra.me.REG[4], fra.me.REG[7]);
-  /* ./parser//parser.nit:7199 */
-  fra.me.REG[2] = fra.me.REG[7];
-  /* ./parser//parser.nit:7200 */
+  /* parser/parser.nit:7450 */
+  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[3]);
+  fra.me.REG[8] = fra.me.REG[3];
+  /* parser/parser.nit:7451 */
+  fra.me.REG[8] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[6], fra.me.REG[7], fra.me.REG[4], NIT_NULL, fra.me.REG[8]);
+  /* parser/parser.nit:7458 */
+  fra.me.REG[2] = fra.me.REG[8];
+  /* parser/parser.nit:7459 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7200);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7459);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -20724,14 +21396,14 @@ void parser___ReduceAction189___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction190___action(val_t p0, val_t p1){
+void parser___ReduceAction196___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7205;
-  fra.me.meth = LOCATE_parser___ReduceAction190___action;
+  fra.me.line = 7464;
+  fra.me.meth = LOCATE_parser___ReduceAction196___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -20743,31 +21415,31 @@ void parser___ReduceAction190___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7207 */
+  /* parser/parser.nit:7466 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7208 */
+  /* parser/parser.nit:7467 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7209 */
+  /* parser/parser.nit:7468 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7210 */
+  /* parser/parser.nit:7469 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7211 */
+  /* parser/parser.nit:7470 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7213 */
+  /* parser/parser.nit:7472 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7213);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7472);
   }
-  /* ./parser//parser.nit:7214 */
-  fra.me.REG[5] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[4], fra.me.REG[3], fra.me.REG[5]);
-  /* ./parser//parser.nit:7219 */
+  /* parser/parser.nit:7473 */
+  fra.me.REG[5] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(NIT_NULL, fra.me.REG[4], NIT_NULL, fra.me.REG[3], fra.me.REG[5]);
+  /* parser/parser.nit:7480 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:7220 */
+  /* parser/parser.nit:7481 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7220);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7481);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -20775,14 +21447,14 @@ void parser___ReduceAction190___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction191___action(val_t p0, val_t p1){
+void parser___ReduceAction197___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7225;
-  fra.me.meth = LOCATE_parser___ReduceAction191___action;
+  fra.me.line = 7486;
+  fra.me.meth = LOCATE_parser___ReduceAction197___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -20795,42 +21467,42 @@ void parser___ReduceAction191___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7227 */
+  /* parser/parser.nit:7488 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7228 */
+  /* parser/parser.nit:7489 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7229 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7230 */
+  /* parser/parser.nit:7490 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7491 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7231 */
+  /* parser/parser.nit:7492 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7232 */
+  /* parser/parser.nit:7493 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7234 */
-  REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:7495 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7234);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7495);
   }
-  /* ./parser//parser.nit:7235 */
-  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
-  fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:7237 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
+  /* parser/parser.nit:7497 */
+  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7237);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7497);
   }
-  /* ./parser//parser.nit:7238 */
-  fra.me.REG[6] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[5], fra.me.REG[3], fra.me.REG[6]);
-  /* ./parser//parser.nit:7243 */
+  /* parser/parser.nit:7498 */
+  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
+  fra.me.REG[6] = fra.me.REG[3];
+  /* parser/parser.nit:7499 */
+  fra.me.REG[6] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(NIT_NULL, fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[6]);
+  /* parser/parser.nit:7506 */
   fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:7244 */
+  /* parser/parser.nit:7507 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7244);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7507);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -20838,51 +21510,41 @@ void parser___ReduceAction191___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction192___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
+void parser___ReduceAction198___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7249;
-  fra.me.meth = LOCATE_parser___ReduceAction192___action;
+  fra.me.line = 7512;
+  fra.me.meth = LOCATE_parser___ReduceAction198___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
+  fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7251 */
+  /* parser/parser.nit:7514 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7252 */
+  /* parser/parser.nit:7515 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7253 */
+  /* parser/parser.nit:7516 */
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7517 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7254 */
-  fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7256 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7256);
-  }
-  /* ./parser//parser.nit:7257 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
-  fra.me.REG[5] = fra.me.REG[3];
-  /* ./parser//parser.nit:7258 */
-  fra.me.REG[5] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[4], NIT_NULL, fra.me.REG[5]);
-  /* ./parser//parser.nit:7263 */
-  fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:7264 */
+  /* parser/parser.nit:7518 */
+  fra.me.REG[4] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(NIT_NULL, fra.me.REG[3], NIT_NULL, NIT_NULL, fra.me.REG[4]);
+  /* parser/parser.nit:7525 */
+  fra.me.REG[2] = fra.me.REG[4];
+  /* parser/parser.nit:7526 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7264);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7526);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -20890,16 +21552,16 @@ void parser___ReduceAction192___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction193___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+void parser___ReduceAction199___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7269;
-  fra.me.meth = LOCATE_parser___ReduceAction193___action;
+  fra.me.line = 7531;
+  fra.me.meth = LOCATE_parser___ReduceAction199___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 7;
+  fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -20907,46 +21569,36 @@ void parser___ReduceAction193___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7271 */
+  /* parser/parser.nit:7533 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7272 */
+  /* parser/parser.nit:7534 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7273 */
+  /* parser/parser.nit:7535 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7274 */
+  /* parser/parser.nit:7536 */
+  fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7537 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7275 */
-  fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7277 */
-  REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7277);
-  }
-  /* ./parser//parser.nit:7278 */
-  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
-  fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:7280 */
+  /* parser/parser.nit:7539 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7280);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7539);
   }
-  /* ./parser//parser.nit:7281 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
-  fra.me.REG[6] = fra.me.REG[3];
-  /* ./parser//parser.nit:7282 */
-  fra.me.REG[6] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[5], NIT_NULL, fra.me.REG[6]);
-  /* ./parser//parser.nit:7287 */
-  fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:7288 */
+  /* parser/parser.nit:7540 */
+  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
+  fra.me.REG[5] = fra.me.REG[3];
+  /* parser/parser.nit:7541 */
+  fra.me.REG[5] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(NIT_NULL, fra.me.REG[4], NIT_NULL, NIT_NULL, fra.me.REG[5]);
+  /* parser/parser.nit:7548 */
+  fra.me.REG[2] = fra.me.REG[5];
+  /* parser/parser.nit:7549 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7288);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7549);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -20954,41 +21606,59 @@ void parser___ReduceAction193___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction194___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+void parser___ReduceAction200___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7293;
-  fra.me.meth = LOCATE_parser___ReduceAction194___action;
+  fra.me.line = 7554;
+  fra.me.meth = LOCATE_parser___ReduceAction200___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
+  fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7295 */
+  /* parser/parser.nit:7556 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7296 */
+  /* parser/parser.nit:7557 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7297 */
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7298 */
-  fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7299 */
-  fra.me.REG[4] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[3], NIT_NULL, fra.me.REG[4]);
-  /* ./parser//parser.nit:7304 */
-  fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:7305 */
+  /* parser/parser.nit:7558 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7559 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7560 */
+  fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7561 */
+  fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7563 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast nullable TOpar*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7563);
+  }
+  /* parser/parser.nit:7565 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast nullable TCpar*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7565);
+  }
+  /* parser/parser.nit:7566 */
+  fra.me.REG[6] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[4], fra.me.REG[5], fra.me.REG[3], NIT_NULL, fra.me.REG[6]);
+  /* parser/parser.nit:7573 */
+  fra.me.REG[2] = fra.me.REG[6];
+  /* parser/parser.nit:7574 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7305);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7574);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -20996,16 +21666,16 @@ void parser___ReduceAction194___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction195___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
+void parser___ReduceAction201___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7310;
-  fra.me.meth = LOCATE_parser___ReduceAction195___action;
+  fra.me.line = 7579;
+  fra.me.meth = LOCATE_parser___ReduceAction201___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
+  fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -21013,36 +21683,54 @@ void parser___ReduceAction195___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7312 */
+  /* parser/parser.nit:7581 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7313 */
+  /* parser/parser.nit:7582 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7314 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7315 */
-  fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7316 */
-  fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7318 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:7583 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7584 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7585 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7586 */
+  fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7587 */
+  fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7589 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast nullable TOpar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7318);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7589);
   }
-  /* ./parser//parser.nit:7319 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
-  fra.me.REG[4] = fra.me.REG[3];
-  /* ./parser//parser.nit:7320 */
-  fra.me.REG[5] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[4], NIT_NULL, fra.me.REG[5]);
-  /* ./parser//parser.nit:7325 */
-  fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:7326 */
+  /* parser/parser.nit:7591 */
+  REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7591);
+  }
+  /* parser/parser.nit:7592 */
+  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
+  fra.me.REG[6] = fra.me.REG[4];
+  /* parser/parser.nit:7594 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast nullable TCpar*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7594);
+  }
+  /* parser/parser.nit:7595 */
+  fra.me.REG[7] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[5], fra.me.REG[6], fra.me.REG[3], NIT_NULL, fra.me.REG[7]);
+  /* parser/parser.nit:7602 */
+  fra.me.REG[2] = fra.me.REG[7];
+  /* parser/parser.nit:7603 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7326);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7603);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -21050,39 +21738,68 @@ void parser___ReduceAction195___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction196___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+void parser___ReduceAction202___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7331;
-  fra.me.meth = LOCATE_parser___ReduceAction196___action;
+  fra.me.line = 7608;
+  fra.me.meth = LOCATE_parser___ReduceAction202___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
+  fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7333 */
+  /* parser/parser.nit:7610 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7334 */
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7335 */
-  fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7336 */
-  fra.me.REG[4] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[3], NIT_NULL, fra.me.REG[4]);
-  /* ./parser//parser.nit:7341 */
-  fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:7342 */
+  /* parser/parser.nit:7611 */
+  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7612 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7613 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7614 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7615 */
+  fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7616 */
+  fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7618 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast nullable TOpar*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7618);
+  }
+  /* parser/parser.nit:7620 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast nullable TCpar*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7620);
+  }
+  /* parser/parser.nit:7622 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7622);
+  }
+  /* parser/parser.nit:7623 */
+  fra.me.REG[7] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[5], fra.me.REG[6], fra.me.REG[4], fra.me.REG[3], fra.me.REG[7]);
+  /* parser/parser.nit:7630 */
+  fra.me.REG[2] = fra.me.REG[7];
+  /* parser/parser.nit:7631 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7342);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7631);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -21090,16 +21807,16 @@ void parser___ReduceAction196___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction197___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
+void parser___ReduceAction203___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7347;
-  fra.me.meth = LOCATE_parser___ReduceAction197___action;
+  fra.me.line = 7636;
+  fra.me.meth = LOCATE_parser___ReduceAction203___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
+  fra.me.REG_size = 9;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -21107,34 +21824,63 @@ void parser___ReduceAction197___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[7] = NIT_NULL;
+  fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7349 */
+  /* parser/parser.nit:7638 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7350 */
+  /* parser/parser.nit:7639 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7351 */
-  fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7352 */
-  fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7354 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:7640 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7641 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7642 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7643 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:7644 */
+  fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7645 */
+  fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7647 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast nullable TOpar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7354);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7647);
   }
-  /* ./parser//parser.nit:7355 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
-  fra.me.REG[4] = fra.me.REG[3];
-  /* ./parser//parser.nit:7356 */
-  fra.me.REG[5] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[4], NIT_NULL, fra.me.REG[5]);
-  /* ./parser//parser.nit:7361 */
-  fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:7362 */
+  /* parser/parser.nit:7649 */
+  REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7649);
+  }
+  /* parser/parser.nit:7650 */
+  fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
+  fra.me.REG[7] = fra.me.REG[5];
+  /* parser/parser.nit:7652 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast nullable TCpar*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7652);
+  }
+  /* parser/parser.nit:7654 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7654);
+  }
+  /* parser/parser.nit:7655 */
+  fra.me.REG[8] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[6], fra.me.REG[7], fra.me.REG[4], fra.me.REG[3], fra.me.REG[8]);
+  /* parser/parser.nit:7662 */
+  fra.me.REG[2] = fra.me.REG[8];
+  /* parser/parser.nit:7663 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7362);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7663);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -21142,48 +21888,39 @@ void parser___ReduceAction197___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction198___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
+void parser___ReduceAction204___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7367;
-  fra.me.meth = LOCATE_parser___ReduceAction198___action;
+  fra.me.line = 7668;
+  fra.me.meth = LOCATE_parser___ReduceAction204___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
+  fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7369 */
+  /* parser/parser.nit:7670 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7370 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7371 */
+  /* parser/parser.nit:7671 */
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7672 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7372 */
-  fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7374 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7374);
-  }
-  /* ./parser//parser.nit:7375 */
-  fra.me.REG[5] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[4], fra.me.REG[3], fra.me.REG[5]);
-  /* ./parser//parser.nit:7380 */
-  fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:7381 */
+  /* parser/parser.nit:7673 */
+  fra.me.REG[4] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(NIT_NULL, fra.me.REG[3], NIT_NULL, NIT_NULL, fra.me.REG[4]);
+  /* parser/parser.nit:7680 */
+  fra.me.REG[2] = fra.me.REG[4];
+  /* parser/parser.nit:7681 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7381);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7681);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -21191,16 +21928,16 @@ void parser___ReduceAction198___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction199___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+void parser___ReduceAction205___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7386;
-  fra.me.meth = LOCATE_parser___ReduceAction199___action;
+  fra.me.line = 7686;
+  fra.me.meth = LOCATE_parser___ReduceAction205___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 7;
+  fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -21208,43 +21945,31 @@ void parser___ReduceAction199___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7388 */
+  /* parser/parser.nit:7688 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7389 */
+  /* parser/parser.nit:7689 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7390 */
-  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7391 */
+  /* parser/parser.nit:7690 */
+  fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:7691 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7392 */
-  fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7394 */
-  REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7394);
-  }
-  /* ./parser//parser.nit:7395 */
-  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
-  fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:7397 */
+  /* parser/parser.nit:7693 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7397);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7693);
   }
-  /* ./parser//parser.nit:7398 */
-  fra.me.REG[6] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(fra.me.REG[5], fra.me.REG[3], fra.me.REG[6]);
-  /* ./parser//parser.nit:7403 */
-  fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:7404 */
+  /* parser/parser.nit:7694 */
+  fra.me.REG[5] = NEW_ASignature_parser___parser_prod___ASignature___init_asignature(NIT_NULL, fra.me.REG[4], NIT_NULL, fra.me.REG[3], fra.me.REG[5]);
+  /* parser/parser.nit:7701 */
+  fra.me.REG[2] = fra.me.REG[5];
+  /* parser/parser.nit:7702 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7404);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7702);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -21252,15 +21977,15 @@ void parser___ReduceAction199___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction200___action(val_t p0, val_t p1){
+void parser___ReduceAction206___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7409;
-  fra.me.meth = LOCATE_parser___ReduceAction200___action;
+  fra.me.line = 7707;
+  fra.me.meth = LOCATE_parser___ReduceAction206___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -21271,21 +21996,15 @@ void parser___ReduceAction200___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7411 */
+  /* parser/parser.nit:7709 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7412 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7413 */
+  /* parser/parser.nit:7710 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7414 */
+  /* parser/parser.nit:7711 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7415 */
-  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7416 */
-  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7417 */
+  /* parser/parser.nit:7712 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7419 */
+  /* parser/parser.nit:7714 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -21300,16 +22019,16 @@ void parser___ReduceAction200___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:7420 */
+    /* parser/parser.nit:7715 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:7422 */
+  /* parser/parser.nit:7717 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:7423 */
+  /* parser/parser.nit:7718 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7423);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7718);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -21317,15 +22036,15 @@ void parser___ReduceAction200___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction201___action(val_t p0, val_t p1){
+void parser___ReduceAction207___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7428;
-  fra.me.meth = LOCATE_parser___ReduceAction201___action;
+  fra.me.line = 7723;
+  fra.me.meth = LOCATE_parser___ReduceAction207___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -21337,29 +22056,23 @@ void parser___ReduceAction201___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7430 */
+  /* parser/parser.nit:7725 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7431 */
+  /* parser/parser.nit:7726 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7432 */
+  /* parser/parser.nit:7727 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7433 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7434 */
+  /* parser/parser.nit:7728 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7435 */
-  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7436 */
-  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7437 */
+  /* parser/parser.nit:7729 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7440 */
+  /* parser/parser.nit:7732 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7440);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7732);
   }
-  /* ./parser//parser.nit:7441 */
+  /* parser/parser.nit:7733 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -21374,60 +22087,19 @@ void parser___ReduceAction201___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:7442 */
+    /* parser/parser.nit:7734 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
   }
-  /* ./parser//parser.nit:7444 */
+  /* parser/parser.nit:7736 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
   fra.me.REG[5] = fra.me.REG[3];
-  /* ./parser//parser.nit:7445 */
+  /* parser/parser.nit:7737 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:7446 */
-  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7446);
-  }
-  REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
-  REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
-  CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-void parser___ReduceAction202___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_parser;
-  fra.me.line = 7451;
-  fra.me.meth = LOCATE_parser___ReduceAction202___action;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7453 */
-  fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7454 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7455 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7456 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7457 */
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7458 */
-  fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7459 */
+  /* parser/parser.nit:7738 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7459);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7738);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -21435,14 +22107,14 @@ void parser___ReduceAction202___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction203___action(val_t p0, val_t p1){
+void parser___ReduceAction208___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7464;
-  fra.me.meth = LOCATE_parser___ReduceAction203___action;
+  fra.me.line = 7743;
+  fra.me.meth = LOCATE_parser___ReduceAction208___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -21453,21 +22125,21 @@ void parser___ReduceAction203___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7466 */
+  /* parser/parser.nit:7745 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7467 */
+  /* parser/parser.nit:7746 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7468 */
+  /* parser/parser.nit:7747 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7469 */
+  /* parser/parser.nit:7748 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7471 */
+  /* parser/parser.nit:7750 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7472 */
+  /* parser/parser.nit:7751 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7472);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7751);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -21475,14 +22147,14 @@ void parser___ReduceAction203___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction204___action(val_t p0, val_t p1){
+void parser___ReduceAction209___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7477;
-  fra.me.meth = LOCATE_parser___ReduceAction204___action;
+  fra.me.line = 7756;
+  fra.me.meth = LOCATE_parser___ReduceAction209___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -21492,25 +22164,25 @@ void parser___ReduceAction204___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7479 */
+  /* parser/parser.nit:7758 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7480 */
+  /* parser/parser.nit:7759 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7482 */
+  /* parser/parser.nit:7761 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7482);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7761);
   }
-  /* ./parser//parser.nit:7483 */
+  /* parser/parser.nit:7762 */
   fra.me.REG[3] = NEW_AParam_parser___parser_prod___AParam___init_aparam(fra.me.REG[3], NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:7488 */
+  /* parser/parser.nit:7767 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7489 */
+  /* parser/parser.nit:7768 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7489);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7768);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -21518,14 +22190,14 @@ void parser___ReduceAction204___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction205___action(val_t p0, val_t p1){
+void parser___ReduceAction210___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7494;
-  fra.me.meth = LOCATE_parser___ReduceAction205___action;
+  fra.me.line = 7773;
+  fra.me.meth = LOCATE_parser___ReduceAction210___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -21536,33 +22208,33 @@ void parser___ReduceAction205___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7496 */
+  /* parser/parser.nit:7775 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7497 */
+  /* parser/parser.nit:7776 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7498 */
+  /* parser/parser.nit:7777 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7500 */
+  /* parser/parser.nit:7779 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7500);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7779);
   }
-  /* ./parser//parser.nit:7502 */
+  /* parser/parser.nit:7781 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7502);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7781);
   }
-  /* ./parser//parser.nit:7503 */
+  /* parser/parser.nit:7782 */
   fra.me.REG[3] = NEW_AParam_parser___parser_prod___AParam___init_aparam(fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:7508 */
+  /* parser/parser.nit:7787 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7509 */
+  /* parser/parser.nit:7788 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7509);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7788);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -21570,14 +22242,14 @@ void parser___ReduceAction205___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction206___action(val_t p0, val_t p1){
+void parser___ReduceAction211___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7514;
-  fra.me.meth = LOCATE_parser___ReduceAction206___action;
+  fra.me.line = 7793;
+  fra.me.meth = LOCATE_parser___ReduceAction211___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -21589,41 +22261,41 @@ void parser___ReduceAction206___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7516 */
+  /* parser/parser.nit:7795 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7517 */
+  /* parser/parser.nit:7796 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7518 */
+  /* parser/parser.nit:7797 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7519 */
+  /* parser/parser.nit:7798 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7521 */
+  /* parser/parser.nit:7800 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7521);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7800);
   }
-  /* ./parser//parser.nit:7523 */
+  /* parser/parser.nit:7802 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7523);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7802);
   }
-  /* ./parser//parser.nit:7525 */
+  /* parser/parser.nit:7804 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TDotdotdot, ID_parser___parser_nodes___TDotdotdot)) /*cast nullable TDotdotdot*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7525);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7804);
   }
-  /* ./parser//parser.nit:7526 */
+  /* parser/parser.nit:7805 */
   fra.me.REG[3] = NEW_AParam_parser___parser_prod___AParam___init_aparam(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:7531 */
+  /* parser/parser.nit:7810 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7532 */
+  /* parser/parser.nit:7811 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7532);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7811);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -21631,14 +22303,14 @@ void parser___ReduceAction206___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction207___action(val_t p0, val_t p1){
+void parser___ReduceAction212___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7537;
-  fra.me.meth = LOCATE_parser___ReduceAction207___action;
+  fra.me.line = 7816;
+  fra.me.meth = LOCATE_parser___ReduceAction212___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -21649,30 +22321,28 @@ void parser___ReduceAction207___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7539 */
+  /* parser/parser.nit:7818 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7540 */
+  /* parser/parser.nit:7819 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7541 */
-  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7542 */
+  /* parser/parser.nit:7820 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7544 */
+  /* parser/parser.nit:7822 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7544);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7822);
   }
-  /* ./parser//parser.nit:7545 */
+  /* parser/parser.nit:7823 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
   fra.me.REG[4] = fra.me.REG[3];
-  /* ./parser//parser.nit:7546 */
+  /* parser/parser.nit:7824 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:7547 */
+  /* parser/parser.nit:7825 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7547);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7825);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -21680,14 +22350,14 @@ void parser___ReduceAction207___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction208___action(val_t p0, val_t p1){
+void parser___ReduceAction213___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7552;
-  fra.me.meth = LOCATE_parser___ReduceAction208___action;
+  fra.me.line = 7830;
+  fra.me.meth = LOCATE_parser___ReduceAction213___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -21699,43 +22369,43 @@ void parser___ReduceAction208___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7554 */
+  /* parser/parser.nit:7832 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7555 */
+  /* parser/parser.nit:7833 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7556 */
+  /* parser/parser.nit:7834 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7557 */
+  /* parser/parser.nit:7835 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7558 */
+  /* parser/parser.nit:7836 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7560 */
+  /* parser/parser.nit:7838 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7560);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7838);
   }
-  /* ./parser//parser.nit:7562 */
+  /* parser/parser.nit:7840 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7562);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7840);
   }
-  /* ./parser//parser.nit:7564 */
+  /* parser/parser.nit:7842 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7564);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7842);
   }
-  /* ./parser//parser.nit:7565 */
+  /* parser/parser.nit:7843 */
   fra.me.REG[3] = NEW_AClosureDecl_parser___parser_prod___AClosureDecl___init_aclosuredecl(NIT_NULL, fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:7572 */
+  /* parser/parser.nit:7850 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7573 */
+  /* parser/parser.nit:7851 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7573);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7851);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -21743,14 +22413,14 @@ void parser___ReduceAction208___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction209___action(val_t p0, val_t p1){
+void parser___ReduceAction214___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7578;
-  fra.me.meth = LOCATE_parser___ReduceAction209___action;
+  fra.me.line = 7856;
+  fra.me.meth = LOCATE_parser___ReduceAction214___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -21763,51 +22433,51 @@ void parser___ReduceAction209___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7580 */
+  /* parser/parser.nit:7858 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7581 */
+  /* parser/parser.nit:7859 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7582 */
+  /* parser/parser.nit:7860 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7583 */
+  /* parser/parser.nit:7861 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7584 */
+  /* parser/parser.nit:7862 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7585 */
+  /* parser/parser.nit:7863 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7587 */
+  /* parser/parser.nit:7865 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwbreak, ID_parser___parser_nodes___TKwbreak)) /*cast nullable TKwbreak*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7587);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7865);
   }
-  /* ./parser//parser.nit:7589 */
+  /* parser/parser.nit:7867 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7589);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7867);
   }
-  /* ./parser//parser.nit:7591 */
+  /* parser/parser.nit:7869 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7591);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7869);
   }
-  /* ./parser//parser.nit:7593 */
+  /* parser/parser.nit:7871 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7593);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7871);
   }
-  /* ./parser//parser.nit:7594 */
+  /* parser/parser.nit:7872 */
   fra.me.REG[3] = NEW_AClosureDecl_parser___parser_prod___AClosureDecl___init_aclosuredecl(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:7601 */
+  /* parser/parser.nit:7879 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7602 */
+  /* parser/parser.nit:7880 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7602);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7880);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -21815,14 +22485,14 @@ void parser___ReduceAction209___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction210___action(val_t p0, val_t p1){
+void parser___ReduceAction215___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7607;
-  fra.me.meth = LOCATE_parser___ReduceAction210___action;
+  fra.me.line = 7885;
+  fra.me.meth = LOCATE_parser___ReduceAction215___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -21835,53 +22505,53 @@ void parser___ReduceAction210___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7609 */
+  /* parser/parser.nit:7887 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7610 */
+  /* parser/parser.nit:7888 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7611 */
+  /* parser/parser.nit:7889 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7612 */
+  /* parser/parser.nit:7890 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7613 */
+  /* parser/parser.nit:7891 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7614 */
+  /* parser/parser.nit:7892 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7615 */
+  /* parser/parser.nit:7893 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7617 */
+  /* parser/parser.nit:7895 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7617);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7895);
   }
-  /* ./parser//parser.nit:7619 */
+  /* parser/parser.nit:7897 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7619);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7897);
   }
-  /* ./parser//parser.nit:7621 */
+  /* parser/parser.nit:7899 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7621);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7899);
   }
-  /* ./parser//parser.nit:7623 */
+  /* parser/parser.nit:7901 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7623);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7901);
   }
-  /* ./parser//parser.nit:7624 */
+  /* parser/parser.nit:7902 */
   fra.me.REG[3] = NEW_AClosureDecl_parser___parser_prod___AClosureDecl___init_aclosuredecl(NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:7631 */
+  /* parser/parser.nit:7909 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7632 */
+  /* parser/parser.nit:7910 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7632);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7910);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -21889,14 +22559,14 @@ void parser___ReduceAction210___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction211___action(val_t p0, val_t p1){
+void parser___ReduceAction216___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7637;
-  fra.me.meth = LOCATE_parser___ReduceAction211___action;
+  fra.me.line = 7915;
+  fra.me.meth = LOCATE_parser___ReduceAction216___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
@@ -21910,61 +22580,61 @@ void parser___ReduceAction211___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7639 */
+  /* parser/parser.nit:7917 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7640 */
+  /* parser/parser.nit:7918 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7641 */
+  /* parser/parser.nit:7919 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7642 */
+  /* parser/parser.nit:7920 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7643 */
+  /* parser/parser.nit:7921 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7644 */
+  /* parser/parser.nit:7922 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7645 */
+  /* parser/parser.nit:7923 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7646 */
+  /* parser/parser.nit:7924 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7648 */
+  /* parser/parser.nit:7926 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwbreak, ID_parser___parser_nodes___TKwbreak)) /*cast nullable TKwbreak*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7648);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7926);
   }
-  /* ./parser//parser.nit:7650 */
+  /* parser/parser.nit:7928 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7650);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7928);
   }
-  /* ./parser//parser.nit:7652 */
+  /* parser/parser.nit:7930 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7652);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7930);
   }
-  /* ./parser//parser.nit:7654 */
+  /* parser/parser.nit:7932 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7654);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7932);
   }
-  /* ./parser//parser.nit:7656 */
+  /* parser/parser.nit:7934 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7656);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7934);
   }
-  /* ./parser//parser.nit:7657 */
+  /* parser/parser.nit:7935 */
   fra.me.REG[3] = NEW_AClosureDecl_parser___parser_prod___AClosureDecl___init_aclosuredecl(fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:7664 */
+  /* parser/parser.nit:7942 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7665 */
+  /* parser/parser.nit:7943 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7665);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7943);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -21972,14 +22642,14 @@ void parser___ReduceAction211___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction212___action(val_t p0, val_t p1){
+void parser___ReduceAction217___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7670;
-  fra.me.meth = LOCATE_parser___ReduceAction212___action;
+  fra.me.line = 7948;
+  fra.me.meth = LOCATE_parser___ReduceAction217___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -21992,55 +22662,55 @@ void parser___ReduceAction212___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7672 */
+  /* parser/parser.nit:7950 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7673 */
+  /* parser/parser.nit:7951 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7674 */
+  /* parser/parser.nit:7952 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7675 */
+  /* parser/parser.nit:7953 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7676 */
+  /* parser/parser.nit:7954 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7677 */
+  /* parser/parser.nit:7955 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7678 */
+  /* parser/parser.nit:7956 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7679 */
+  /* parser/parser.nit:7957 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7681 */
+  /* parser/parser.nit:7959 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7681);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7959);
   }
-  /* ./parser//parser.nit:7683 */
+  /* parser/parser.nit:7961 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7683);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7961);
   }
-  /* ./parser//parser.nit:7685 */
+  /* parser/parser.nit:7963 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7685);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7963);
   }
-  /* ./parser//parser.nit:7687 */
+  /* parser/parser.nit:7965 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7687);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7965);
   }
-  /* ./parser//parser.nit:7688 */
+  /* parser/parser.nit:7966 */
   fra.me.REG[3] = NEW_AClosureDecl_parser___parser_prod___AClosureDecl___init_aclosuredecl(NIT_NULL, fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:7695 */
+  /* parser/parser.nit:7973 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7696 */
+  /* parser/parser.nit:7974 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7696);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7974);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -22048,14 +22718,14 @@ void parser___ReduceAction212___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction213___action(val_t p0, val_t p1){
+void parser___ReduceAction218___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7701;
-  fra.me.meth = LOCATE_parser___ReduceAction213___action;
+  fra.me.line = 7979;
+  fra.me.meth = LOCATE_parser___ReduceAction218___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
@@ -22069,63 +22739,63 @@ void parser___ReduceAction213___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7703 */
+  /* parser/parser.nit:7981 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7704 */
+  /* parser/parser.nit:7982 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7705 */
+  /* parser/parser.nit:7983 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7706 */
+  /* parser/parser.nit:7984 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7707 */
+  /* parser/parser.nit:7985 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7708 */
+  /* parser/parser.nit:7986 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7709 */
+  /* parser/parser.nit:7987 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7710 */
+  /* parser/parser.nit:7988 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7711 */
+  /* parser/parser.nit:7989 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7713 */
+  /* parser/parser.nit:7991 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwbreak, ID_parser___parser_nodes___TKwbreak)) /*cast nullable TKwbreak*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7713);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7991);
   }
-  /* ./parser//parser.nit:7715 */
+  /* parser/parser.nit:7993 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7715);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7993);
   }
-  /* ./parser//parser.nit:7717 */
+  /* parser/parser.nit:7995 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7717);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7995);
   }
-  /* ./parser//parser.nit:7719 */
+  /* parser/parser.nit:7997 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast nullable ASignature*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7719);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7997);
   }
-  /* ./parser//parser.nit:7721 */
+  /* parser/parser.nit:7999 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7721);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 7999);
   }
-  /* ./parser//parser.nit:7722 */
+  /* parser/parser.nit:8000 */
   fra.me.REG[3] = NEW_AClosureDecl_parser___parser_prod___AClosureDecl___init_aclosuredecl(fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:7729 */
+  /* parser/parser.nit:8007 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7730 */
+  /* parser/parser.nit:8008 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7730);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8008);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -22133,14 +22803,14 @@ void parser___ReduceAction213___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction214___action(val_t p0, val_t p1){
+void parser___ReduceAction219___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7735;
-  fra.me.meth = LOCATE_parser___ReduceAction214___action;
+  fra.me.line = 8013;
+  fra.me.meth = LOCATE_parser___ReduceAction219___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -22150,25 +22820,25 @@ void parser___ReduceAction214___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7737 */
+  /* parser/parser.nit:8015 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7738 */
+  /* parser/parser.nit:8016 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7740 */
+  /* parser/parser.nit:8018 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7740);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8018);
   }
-  /* ./parser//parser.nit:7741 */
+  /* parser/parser.nit:8019 */
   fra.me.REG[3] = NEW_AReturnExpr_parser___parser_prod___AReturnExpr___init_areturnexpr(NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:7745 */
+  /* parser/parser.nit:8023 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7746 */
+  /* parser/parser.nit:8024 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7746);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8024);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -22176,15 +22846,15 @@ void parser___ReduceAction214___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction215___action(val_t p0, val_t p1){
+void parser___ReduceAction220___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7751;
-  fra.me.meth = LOCATE_parser___ReduceAction215___action;
+  fra.me.line = 8029;
+  fra.me.meth = LOCATE_parser___ReduceAction220___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -22196,29 +22866,29 @@ void parser___ReduceAction215___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7753 */
+  /* parser/parser.nit:8031 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7754 */
+  /* parser/parser.nit:8032 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7755 */
+  /* parser/parser.nit:8033 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7756 */
+  /* parser/parser.nit:8034 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7757 */
+  /* parser/parser.nit:8035 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7759 */
+  /* parser/parser.nit:8037 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwimport, ID_parser___parser_nodes___TKwimport)) /*cast nullable TKwimport*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7759);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8037);
   }
-  /* ./parser//parser.nit:7761 */
+  /* parser/parser.nit:8039 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternCall, ID_parser___parser_nodes___AExternCall)) /*cast nullable AExternCall*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7761);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8039);
   }
-  /* ./parser//parser.nit:7762 */
+  /* parser/parser.nit:8040 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -22233,18 +22903,18 @@ void parser___ReduceAction215___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:7763 */
+    /* parser/parser.nit:8041 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:7765 */
+  /* parser/parser.nit:8043 */
   fra.me.REG[5] = NEW_AExternCalls_parser___parser_prod___AExternCalls___init_aexterncalls(fra.me.REG[4], fra.me.REG[5]);
-  /* ./parser//parser.nit:7769 */
+  /* parser/parser.nit:8047 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:7770 */
+  /* parser/parser.nit:8048 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7770);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8048);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -22252,15 +22922,15 @@ void parser___ReduceAction215___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction216___action(val_t p0, val_t p1){
+void parser___ReduceAction221___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7775;
-  fra.me.meth = LOCATE_parser___ReduceAction216___action;
+  fra.me.line = 8053;
+  fra.me.meth = LOCATE_parser___ReduceAction221___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -22273,37 +22943,37 @@ void parser___ReduceAction216___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7777 */
+  /* parser/parser.nit:8055 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7778 */
+  /* parser/parser.nit:8056 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7779 */
+  /* parser/parser.nit:8057 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7780 */
+  /* parser/parser.nit:8058 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7781 */
+  /* parser/parser.nit:8059 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7782 */
+  /* parser/parser.nit:8060 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7784 */
+  /* parser/parser.nit:8062 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwimport, ID_parser___parser_nodes___TKwimport)) /*cast nullable TKwimport*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7784);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8062);
   }
-  /* ./parser//parser.nit:7786 */
+  /* parser/parser.nit:8064 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExternCall, ID_parser___parser_nodes___AExternCall)) /*cast nullable AExternCall*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7786);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8064);
   }
-  /* ./parser//parser.nit:7788 */
+  /* parser/parser.nit:8066 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7788);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8066);
   }
-  /* ./parser//parser.nit:7789 */
+  /* parser/parser.nit:8067 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -22318,21 +22988,21 @@ void parser___ReduceAction216___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:7790 */
+    /* parser/parser.nit:8068 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
   }
-  /* ./parser//parser.nit:7792 */
+  /* parser/parser.nit:8070 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
   fra.me.REG[6] = fra.me.REG[3];
-  /* ./parser//parser.nit:7793 */
+  /* parser/parser.nit:8071 */
   fra.me.REG[6] = NEW_AExternCalls_parser___parser_prod___AExternCalls___init_aexterncalls(fra.me.REG[5], fra.me.REG[6]);
-  /* ./parser//parser.nit:7797 */
+  /* parser/parser.nit:8075 */
   fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:7798 */
+  /* parser/parser.nit:8076 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7798);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8076);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -22340,14 +23010,14 @@ void parser___ReduceAction216___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction217___action(val_t p0, val_t p1){
+void parser___ReduceAction222___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7803;
-  fra.me.meth = LOCATE_parser___ReduceAction217___action;
+  fra.me.line = 8081;
+  fra.me.meth = LOCATE_parser___ReduceAction222___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -22358,21 +23028,21 @@ void parser___ReduceAction217___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7805 */
+  /* parser/parser.nit:8083 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7806 */
+  /* parser/parser.nit:8084 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7807 */
+  /* parser/parser.nit:8085 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7808 */
+  /* parser/parser.nit:8086 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7810 */
+  /* parser/parser.nit:8088 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7811 */
+  /* parser/parser.nit:8089 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7811);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8089);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -22380,14 +23050,14 @@ void parser___ReduceAction217___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction218___action(val_t p0, val_t p1){
+void parser___ReduceAction223___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7816;
-  fra.me.meth = LOCATE_parser___ReduceAction218___action;
+  fra.me.line = 8094;
+  fra.me.meth = LOCATE_parser___ReduceAction223___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -22397,17 +23067,17 @@ void parser___ReduceAction218___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7818 */
+  /* parser/parser.nit:8096 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7819 */
+  /* parser/parser.nit:8097 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7821 */
+  /* parser/parser.nit:8099 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7822 */
+  /* parser/parser.nit:8100 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7822);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8100);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -22415,14 +23085,14 @@ void parser___ReduceAction218___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction220___action(val_t p0, val_t p1){
+void parser___ReduceAction225___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7827;
-  fra.me.meth = LOCATE_parser___ReduceAction220___action;
+  fra.me.line = 8105;
+  fra.me.meth = LOCATE_parser___ReduceAction225___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -22432,25 +23102,25 @@ void parser___ReduceAction220___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7829 */
+  /* parser/parser.nit:8107 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7830 */
+  /* parser/parser.nit:8108 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7832 */
+  /* parser/parser.nit:8110 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwsuper, ID_parser___parser_nodes___TKwsuper)) /*cast nullable TKwsuper*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7832);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8110);
   }
-  /* ./parser//parser.nit:7833 */
+  /* parser/parser.nit:8111 */
   fra.me.REG[3] = NEW_ASuperExternCall_parser___parser_prod___ASuperExternCall___init_asuperexterncall(fra.me.REG[3]);
-  /* ./parser//parser.nit:7836 */
+  /* parser/parser.nit:8114 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7837 */
+  /* parser/parser.nit:8115 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7837);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8115);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -22458,14 +23128,14 @@ void parser___ReduceAction220___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction221___action(val_t p0, val_t p1){
+void parser___ReduceAction226___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7842;
-  fra.me.meth = LOCATE_parser___ReduceAction221___action;
+  fra.me.line = 8120;
+  fra.me.meth = LOCATE_parser___ReduceAction226___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -22475,25 +23145,25 @@ void parser___ReduceAction221___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7844 */
+  /* parser/parser.nit:8122 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7845 */
+  /* parser/parser.nit:8123 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7847 */
+  /* parser/parser.nit:8125 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7847);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8125);
   }
-  /* ./parser//parser.nit:7848 */
+  /* parser/parser.nit:8126 */
   fra.me.REG[3] = NEW_ALocalPropExternCall_parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall(fra.me.REG[3]);
-  /* ./parser//parser.nit:7851 */
+  /* parser/parser.nit:8129 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7852 */
+  /* parser/parser.nit:8130 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7852);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8130);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -22501,14 +23171,14 @@ void parser___ReduceAction221___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction222___action(val_t p0, val_t p1){
+void parser___ReduceAction227___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7857;
-  fra.me.meth = LOCATE_parser___ReduceAction222___action;
+  fra.me.line = 8135;
+  fra.me.meth = LOCATE_parser___ReduceAction227___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -22520,41 +23190,41 @@ void parser___ReduceAction222___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7859 */
+  /* parser/parser.nit:8137 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7860 */
+  /* parser/parser.nit:8138 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7861 */
+  /* parser/parser.nit:8139 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7862 */
+  /* parser/parser.nit:8140 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7864 */
+  /* parser/parser.nit:8142 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7864);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8142);
   }
-  /* ./parser//parser.nit:7866 */
+  /* parser/parser.nit:8144 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TQuad, ID_parser___parser_nodes___TQuad)) /*cast nullable TQuad*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7866);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8144);
   }
-  /* ./parser//parser.nit:7868 */
+  /* parser/parser.nit:8146 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast nullable AMethid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7868);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8146);
   }
-  /* ./parser//parser.nit:7869 */
+  /* parser/parser.nit:8147 */
   fra.me.REG[3] = NEW_AFullPropExternCall_parser___parser_prod___AFullPropExternCall___init_afullpropexterncall(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:7874 */
+  /* parser/parser.nit:8152 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7875 */
+  /* parser/parser.nit:8153 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7875);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8153);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -22562,14 +23232,14 @@ void parser___ReduceAction222___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction223___action(val_t p0, val_t p1){
+void parser___ReduceAction228___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7880;
-  fra.me.meth = LOCATE_parser___ReduceAction223___action;
+  fra.me.line = 8158;
+  fra.me.meth = LOCATE_parser___ReduceAction228___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -22579,25 +23249,25 @@ void parser___ReduceAction223___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7882 */
+  /* parser/parser.nit:8160 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7883 */
+  /* parser/parser.nit:8161 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7885 */
+  /* parser/parser.nit:8163 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7885);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8163);
   }
-  /* ./parser//parser.nit:7886 */
+  /* parser/parser.nit:8164 */
   fra.me.REG[3] = NEW_AInitPropExternCall_parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall(fra.me.REG[3]);
-  /* ./parser//parser.nit:7889 */
+  /* parser/parser.nit:8167 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7890 */
+  /* parser/parser.nit:8168 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7890);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8168);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -22605,14 +23275,14 @@ void parser___ReduceAction223___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction224___action(val_t p0, val_t p1){
+void parser___ReduceAction229___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7895;
-  fra.me.meth = LOCATE_parser___ReduceAction224___action;
+  fra.me.line = 8173;
+  fra.me.meth = LOCATE_parser___ReduceAction229___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -22624,51 +23294,51 @@ void parser___ReduceAction224___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7897 */
+  /* parser/parser.nit:8175 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7898 */
+  /* parser/parser.nit:8176 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7899 */
+  /* parser/parser.nit:8177 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7900 */
+  /* parser/parser.nit:8178 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7901 */
+  /* parser/parser.nit:8179 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7902 */
+  /* parser/parser.nit:8180 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7903 */
+  /* parser/parser.nit:8181 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7904 */
+  /* parser/parser.nit:8182 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7905 */
+  /* parser/parser.nit:8183 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7907 */
+  /* parser/parser.nit:8185 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7907);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8185);
   }
-  /* ./parser//parser.nit:7909 */
+  /* parser/parser.nit:8187 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast nullable TKwas*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7909);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8187);
   }
-  /* ./parser//parser.nit:7911 */
+  /* parser/parser.nit:8189 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7911);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8189);
   }
-  /* ./parser//parser.nit:7912 */
+  /* parser/parser.nit:8190 */
   fra.me.REG[3] = NEW_ACastAsExternCall_parser___parser_prod___ACastAsExternCall___init_acastasexterncall(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:7917 */
+  /* parser/parser.nit:8195 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7918 */
+  /* parser/parser.nit:8196 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7918);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8196);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -22676,14 +23346,14 @@ void parser___ReduceAction224___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction225___action(val_t p0, val_t p1){
+void parser___ReduceAction230___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7923;
-  fra.me.meth = LOCATE_parser___ReduceAction225___action;
+  fra.me.line = 8201;
+  fra.me.meth = LOCATE_parser___ReduceAction230___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -22695,43 +23365,43 @@ void parser___ReduceAction225___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7925 */
+  /* parser/parser.nit:8203 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7926 */
+  /* parser/parser.nit:8204 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7927 */
+  /* parser/parser.nit:8205 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7928 */
+  /* parser/parser.nit:8206 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7929 */
+  /* parser/parser.nit:8207 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7931 */
+  /* parser/parser.nit:8209 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7931);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8209);
   }
-  /* ./parser//parser.nit:7933 */
+  /* parser/parser.nit:8211 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast nullable TKwas*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7933);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8211);
   }
-  /* ./parser//parser.nit:7935 */
+  /* parser/parser.nit:8213 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwnullable, ID_parser___parser_nodes___TKwnullable)) /*cast nullable TKwnullable*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7935);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8213);
   }
-  /* ./parser//parser.nit:7936 */
+  /* parser/parser.nit:8214 */
   fra.me.REG[3] = NEW_AAsNullableExternCall_parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:7941 */
+  /* parser/parser.nit:8219 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7942 */
+  /* parser/parser.nit:8220 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7942);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8220);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -22739,14 +23409,14 @@ void parser___ReduceAction225___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction226___action(val_t p0, val_t p1){
+void parser___ReduceAction231___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7947;
-  fra.me.meth = LOCATE_parser___ReduceAction226___action;
+  fra.me.line = 8225;
+  fra.me.meth = LOCATE_parser___ReduceAction231___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -22759,53 +23429,53 @@ void parser___ReduceAction226___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7949 */
+  /* parser/parser.nit:8227 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7950 */
+  /* parser/parser.nit:8228 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7951 */
+  /* parser/parser.nit:8229 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7952 */
+  /* parser/parser.nit:8230 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7953 */
+  /* parser/parser.nit:8231 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7954 */
+  /* parser/parser.nit:8232 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7955 */
+  /* parser/parser.nit:8233 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7957 */
+  /* parser/parser.nit:8235 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7957);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8235);
   }
-  /* ./parser//parser.nit:7959 */
+  /* parser/parser.nit:8237 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast nullable TKwas*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7959);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8237);
   }
-  /* ./parser//parser.nit:7961 */
+  /* parser/parser.nit:8239 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwnot, ID_parser___parser_nodes___TKwnot)) /*cast nullable TKwnot*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7961);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8239);
   }
-  /* ./parser//parser.nit:7963 */
+  /* parser/parser.nit:8241 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwnullable, ID_parser___parser_nodes___TKwnullable)) /*cast nullable TKwnullable*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7963);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8241);
   }
-  /* ./parser//parser.nit:7964 */
+  /* parser/parser.nit:8242 */
   fra.me.REG[3] = NEW_AAsNotNullableExternCall_parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:7970 */
+  /* parser/parser.nit:8248 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:7971 */
+  /* parser/parser.nit:8249 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7971);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8249);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -22813,14 +23483,14 @@ void parser___ReduceAction226___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction227___action(val_t p0, val_t p1){
+void parser___ReduceAction232___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7976;
-  fra.me.meth = LOCATE_parser___ReduceAction227___action;
+  fra.me.line = 8254;
+  fra.me.meth = LOCATE_parser___ReduceAction232___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -22831,27 +23501,27 @@ void parser___ReduceAction227___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7978 */
+  /* parser/parser.nit:8256 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7979 */
+  /* parser/parser.nit:8257 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7980 */
+  /* parser/parser.nit:8258 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:7982 */
+  /* parser/parser.nit:8260 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 7982);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8260);
   }
-  /* ./parser//parser.nit:7983 */
+  /* parser/parser.nit:8261 */
   fra.me.REG[4] = NEW_AType_parser___parser_prod___AType___init_atype(NIT_NULL, fra.me.REG[3], fra.me.REG[4]);
-  /* ./parser//parser.nit:7988 */
+  /* parser/parser.nit:8266 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:7989 */
+  /* parser/parser.nit:8267 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 7989);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8267);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -22859,14 +23529,14 @@ void parser___ReduceAction227___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction228___action(val_t p0, val_t p1){
+void parser___ReduceAction233___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 7994;
-  fra.me.meth = LOCATE_parser___ReduceAction228___action;
+  fra.me.line = 8272;
+  fra.me.meth = LOCATE_parser___ReduceAction233___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -22878,35 +23548,35 @@ void parser___ReduceAction228___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:7996 */
+  /* parser/parser.nit:8274 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:7997 */
+  /* parser/parser.nit:8275 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7998 */
+  /* parser/parser.nit:8276 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:7999 */
+  /* parser/parser.nit:8277 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8001 */
+  /* parser/parser.nit:8279 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwnullable, ID_parser___parser_nodes___TKwnullable)) /*cast nullable TKwnullable*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8001);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8279);
   }
-  /* ./parser//parser.nit:8003 */
+  /* parser/parser.nit:8281 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8003);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8281);
   }
-  /* ./parser//parser.nit:8004 */
+  /* parser/parser.nit:8282 */
   fra.me.REG[5] = NEW_AType_parser___parser_prod___AType___init_atype(fra.me.REG[4], fra.me.REG[3], fra.me.REG[5]);
-  /* ./parser//parser.nit:8009 */
+  /* parser/parser.nit:8287 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:8010 */
+  /* parser/parser.nit:8288 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8010);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8288);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -22914,14 +23584,14 @@ void parser___ReduceAction228___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction229___action(val_t p0, val_t p1){
+void parser___ReduceAction234___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8015;
-  fra.me.meth = LOCATE_parser___ReduceAction229___action;
+  fra.me.line = 8293;
+  fra.me.meth = LOCATE_parser___ReduceAction234___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -22933,46 +23603,46 @@ void parser___ReduceAction229___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8017 */
+  /* parser/parser.nit:8295 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8018 */
+  /* parser/parser.nit:8296 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8019 */
+  /* parser/parser.nit:8297 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8020 */
+  /* parser/parser.nit:8298 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8021 */
+  /* parser/parser.nit:8299 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8022 */
+  /* parser/parser.nit:8300 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8023 */
+  /* parser/parser.nit:8301 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8024 */
+  /* parser/parser.nit:8302 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8026 */
+  /* parser/parser.nit:8304 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8026);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8304);
   }
-  /* ./parser//parser.nit:8028 */
+  /* parser/parser.nit:8306 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8028);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8306);
   }
-  /* ./parser//parser.nit:8029 */
+  /* parser/parser.nit:8307 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
   fra.me.REG[5] = fra.me.REG[3];
-  /* ./parser//parser.nit:8030 */
+  /* parser/parser.nit:8308 */
   fra.me.REG[5] = NEW_AType_parser___parser_prod___AType___init_atype(NIT_NULL, fra.me.REG[4], fra.me.REG[5]);
-  /* ./parser//parser.nit:8035 */
+  /* parser/parser.nit:8313 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:8036 */
+  /* parser/parser.nit:8314 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8036);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8314);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -22980,14 +23650,14 @@ void parser___ReduceAction229___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction230___action(val_t p0, val_t p1){
+void parser___ReduceAction235___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8041;
-  fra.me.meth = LOCATE_parser___ReduceAction230___action;
+  fra.me.line = 8319;
+  fra.me.meth = LOCATE_parser___ReduceAction235___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -23000,54 +23670,54 @@ void parser___ReduceAction230___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8043 */
+  /* parser/parser.nit:8321 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8044 */
+  /* parser/parser.nit:8322 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8045 */
+  /* parser/parser.nit:8323 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8046 */
+  /* parser/parser.nit:8324 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8047 */
+  /* parser/parser.nit:8325 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8048 */
+  /* parser/parser.nit:8326 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8049 */
+  /* parser/parser.nit:8327 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8050 */
+  /* parser/parser.nit:8328 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8051 */
+  /* parser/parser.nit:8329 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8053 */
+  /* parser/parser.nit:8331 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwnullable, ID_parser___parser_nodes___TKwnullable)) /*cast nullable TKwnullable*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8053);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8331);
   }
-  /* ./parser//parser.nit:8055 */
+  /* parser/parser.nit:8333 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8055);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8333);
   }
-  /* ./parser//parser.nit:8057 */
+  /* parser/parser.nit:8335 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8057);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8335);
   }
-  /* ./parser//parser.nit:8058 */
+  /* parser/parser.nit:8336 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
   fra.me.REG[6] = fra.me.REG[3];
-  /* ./parser//parser.nit:8059 */
+  /* parser/parser.nit:8337 */
   fra.me.REG[6] = NEW_AType_parser___parser_prod___AType___init_atype(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
-  /* ./parser//parser.nit:8064 */
+  /* parser/parser.nit:8342 */
   fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:8065 */
+  /* parser/parser.nit:8343 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8065);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8343);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -23055,15 +23725,15 @@ void parser___ReduceAction230___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction231___action(val_t p0, val_t p1){
+void parser___ReduceAction236___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8070;
-  fra.me.meth = LOCATE_parser___ReduceAction231___action;
+  fra.me.line = 8348;
+  fra.me.meth = LOCATE_parser___ReduceAction236___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -23074,13 +23744,13 @@ void parser___ReduceAction231___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8072 */
+  /* parser/parser.nit:8350 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8073 */
+  /* parser/parser.nit:8351 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8074 */
+  /* parser/parser.nit:8352 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8076 */
+  /* parser/parser.nit:8354 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -23095,16 +23765,16 @@ void parser___ReduceAction231___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:8077 */
+    /* parser/parser.nit:8355 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:8079 */
+  /* parser/parser.nit:8357 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:8080 */
+  /* parser/parser.nit:8358 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8080);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8358);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -23112,15 +23782,15 @@ void parser___ReduceAction231___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction232___action(val_t p0, val_t p1){
+void parser___ReduceAction237___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8085;
-  fra.me.meth = LOCATE_parser___ReduceAction232___action;
+  fra.me.line = 8363;
+  fra.me.meth = LOCATE_parser___ReduceAction237___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -23132,21 +23802,21 @@ void parser___ReduceAction232___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8087 */
+  /* parser/parser.nit:8365 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8088 */
+  /* parser/parser.nit:8366 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8089 */
+  /* parser/parser.nit:8367 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8090 */
+  /* parser/parser.nit:8368 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8093 */
+  /* parser/parser.nit:8371 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8093);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8371);
   }
-  /* ./parser//parser.nit:8094 */
+  /* parser/parser.nit:8372 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -23161,19 +23831,19 @@ void parser___ReduceAction232___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:8095 */
+    /* parser/parser.nit:8373 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
   }
-  /* ./parser//parser.nit:8097 */
+  /* parser/parser.nit:8375 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
   fra.me.REG[5] = fra.me.REG[3];
-  /* ./parser//parser.nit:8098 */
+  /* parser/parser.nit:8376 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:8099 */
+  /* parser/parser.nit:8377 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8099);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8377);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -23181,14 +23851,14 @@ void parser___ReduceAction232___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction233___action(val_t p0, val_t p1){
+void parser___ReduceAction238___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8104;
-  fra.me.meth = LOCATE_parser___ReduceAction233___action;
+  fra.me.line = 8382;
+  fra.me.meth = LOCATE_parser___ReduceAction238___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -23199,21 +23869,21 @@ void parser___ReduceAction233___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8106 */
+  /* parser/parser.nit:8384 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8107 */
+  /* parser/parser.nit:8385 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8108 */
+  /* parser/parser.nit:8386 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8109 */
+  /* parser/parser.nit:8387 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8111 */
+  /* parser/parser.nit:8389 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8112 */
+  /* parser/parser.nit:8390 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8112);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8390);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -23221,14 +23891,14 @@ void parser___ReduceAction233___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction235___action(val_t p0, val_t p1){
+void parser___ReduceAction240___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8117;
-  fra.me.meth = LOCATE_parser___ReduceAction235___action;
+  fra.me.line = 8395;
+  fra.me.meth = LOCATE_parser___ReduceAction240___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -23239,21 +23909,19 @@ void parser___ReduceAction235___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8119 */
+  /* parser/parser.nit:8397 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8120 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8121 */
+  /* parser/parser.nit:8398 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8122 */
+  /* parser/parser.nit:8399 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8124 */
+  /* parser/parser.nit:8401 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8125 */
+  /* parser/parser.nit:8402 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8125);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8402);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -23261,40 +23929,47 @@ void parser___ReduceAction235___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction236___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+void parser___ReduceAction241___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8130;
-  fra.me.meth = LOCATE_parser___ReduceAction236___action;
+  fra.me.line = 8407;
+  fra.me.meth = LOCATE_parser___ReduceAction241___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
+  fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8132 */
+  /* parser/parser.nit:8409 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8133 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8134 */
+  /* parser/parser.nit:8410 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8135 */
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8136 */
-  fra.me.REG[3] = NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[3]);
-  /* ./parser//parser.nit:8139 */
+  /* parser/parser.nit:8411 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:8412 */
+  fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:8414 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8414);
+  }
+  /* parser/parser.nit:8415 */
+  fra.me.REG[3] = NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:8419 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8140 */
+  /* parser/parser.nit:8420 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8140);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8420);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -23302,38 +23977,45 @@ void parser___ReduceAction236___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction237___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+void parser___ReduceAction242___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8145;
-  fra.me.meth = LOCATE_parser___ReduceAction237___action;
+  fra.me.line = 8425;
+  fra.me.meth = LOCATE_parser___ReduceAction242___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
+  fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8147 */
+  /* parser/parser.nit:8427 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8148 */
+  /* parser/parser.nit:8428 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8149 */
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8150 */
-  fra.me.REG[3] = NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[3]);
-  /* ./parser//parser.nit:8153 */
+  /* parser/parser.nit:8429 */
+  fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:8431 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8431);
+  }
+  /* parser/parser.nit:8432 */
+  fra.me.REG[3] = NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:8436 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8154 */
+  /* parser/parser.nit:8437 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8154);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8437);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -23341,14 +24023,14 @@ void parser___ReduceAction237___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction238___action(val_t p0, val_t p1){
+void parser___ReduceAction243___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8159;
-  fra.me.meth = LOCATE_parser___ReduceAction238___action;
+  fra.me.line = 8442;
+  fra.me.meth = LOCATE_parser___ReduceAction243___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -23358,17 +24040,17 @@ void parser___ReduceAction238___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8161 */
+  /* parser/parser.nit:8444 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8162 */
+  /* parser/parser.nit:8445 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8164 */
+  /* parser/parser.nit:8447 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8165 */
+  /* parser/parser.nit:8448 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8165);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8448);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -23376,15 +24058,15 @@ void parser___ReduceAction238___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction239___action(val_t p0, val_t p1){
+void parser___ReduceAction244___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8170;
-  fra.me.meth = LOCATE_parser___ReduceAction239___action;
+  fra.me.line = 8453;
+  fra.me.meth = LOCATE_parser___ReduceAction244___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -23395,19 +24077,19 @@ void parser___ReduceAction239___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8172 */
+  /* parser/parser.nit:8455 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8173 */
+  /* parser/parser.nit:8456 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8174 */
+  /* parser/parser.nit:8457 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8176 */
+  /* parser/parser.nit:8459 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8176);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8459);
   }
-  /* ./parser//parser.nit:8177 */
+  /* parser/parser.nit:8460 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -23422,18 +24104,18 @@ void parser___ReduceAction239___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:8178 */
+    /* parser/parser.nit:8461 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:8180 */
-  fra.me.REG[4] = NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[4]);
-  /* ./parser//parser.nit:8183 */
+  /* parser/parser.nit:8463 */
+  fra.me.REG[4] = NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[4], NIT_NULL);
+  /* parser/parser.nit:8467 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:8184 */
+  /* parser/parser.nit:8468 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8184);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8468);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -23441,15 +24123,15 @@ void parser___ReduceAction239___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction240___action(val_t p0, val_t p1){
+void parser___ReduceAction245___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8189;
-  fra.me.meth = LOCATE_parser___ReduceAction240___action;
+  fra.me.line = 8473;
+  fra.me.meth = LOCATE_parser___ReduceAction245___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -23461,27 +24143,27 @@ void parser___ReduceAction240___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8191 */
+  /* parser/parser.nit:8475 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8192 */
+  /* parser/parser.nit:8476 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8193 */
+  /* parser/parser.nit:8477 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8194 */
+  /* parser/parser.nit:8478 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8196 */
+  /* parser/parser.nit:8480 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8196);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8480);
   }
-  /* ./parser//parser.nit:8198 */
+  /* parser/parser.nit:8482 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8198);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8482);
   }
-  /* ./parser//parser.nit:8199 */
+  /* parser/parser.nit:8483 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -23496,21 +24178,21 @@ void parser___ReduceAction240___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:8200 */
+    /* parser/parser.nit:8484 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
   }
-  /* ./parser//parser.nit:8202 */
+  /* parser/parser.nit:8486 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
   fra.me.REG[5] = fra.me.REG[3];
-  /* ./parser//parser.nit:8203 */
-  fra.me.REG[5] = NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[5]);
-  /* ./parser//parser.nit:8206 */
+  /* parser/parser.nit:8487 */
+  fra.me.REG[5] = NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[5], NIT_NULL);
+  /* parser/parser.nit:8491 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:8207 */
+  /* parser/parser.nit:8492 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8207);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8492);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -23518,15 +24200,15 @@ void parser___ReduceAction240___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction241___action(val_t p0, val_t p1){
+void parser___ReduceAction246___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8212;
-  fra.me.meth = LOCATE_parser___ReduceAction241___action;
+  fra.me.line = 8497;
+  fra.me.meth = LOCATE_parser___ReduceAction246___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -23537,21 +24219,21 @@ void parser___ReduceAction241___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8214 */
+  /* parser/parser.nit:8499 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8215 */
+  /* parser/parser.nit:8500 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8216 */
+  /* parser/parser.nit:8501 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8217 */
+  /* parser/parser.nit:8502 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8219 */
+  /* parser/parser.nit:8504 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8219);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8504);
   }
-  /* ./parser//parser.nit:8220 */
+  /* parser/parser.nit:8505 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -23566,18 +24248,18 @@ void parser___ReduceAction241___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:8221 */
+    /* parser/parser.nit:8506 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:8223 */
-  fra.me.REG[4] = NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[4]);
-  /* ./parser//parser.nit:8226 */
+  /* parser/parser.nit:8508 */
+  fra.me.REG[4] = NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[4], NIT_NULL);
+  /* parser/parser.nit:8512 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:8227 */
+  /* parser/parser.nit:8513 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8227);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8513);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -23585,15 +24267,15 @@ void parser___ReduceAction241___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction242___action(val_t p0, val_t p1){
+void parser___ReduceAction247___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8232;
-  fra.me.meth = LOCATE_parser___ReduceAction242___action;
+  fra.me.line = 8518;
+  fra.me.meth = LOCATE_parser___ReduceAction247___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -23605,29 +24287,29 @@ void parser___ReduceAction242___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8234 */
+  /* parser/parser.nit:8520 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8235 */
+  /* parser/parser.nit:8521 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8236 */
+  /* parser/parser.nit:8522 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8237 */
+  /* parser/parser.nit:8523 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8238 */
+  /* parser/parser.nit:8524 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8240 */
+  /* parser/parser.nit:8526 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8240);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8526);
   }
-  /* ./parser//parser.nit:8242 */
+  /* parser/parser.nit:8528 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8242);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8528);
   }
-  /* ./parser//parser.nit:8243 */
+  /* parser/parser.nit:8529 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -23642,21 +24324,21 @@ void parser___ReduceAction242___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:8244 */
+    /* parser/parser.nit:8530 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
   }
-  /* ./parser//parser.nit:8246 */
+  /* parser/parser.nit:8532 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
   fra.me.REG[5] = fra.me.REG[3];
-  /* ./parser//parser.nit:8247 */
-  fra.me.REG[5] = NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[5]);
-  /* ./parser//parser.nit:8250 */
+  /* parser/parser.nit:8533 */
+  fra.me.REG[5] = NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[5], NIT_NULL);
+  /* parser/parser.nit:8537 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:8251 */
+  /* parser/parser.nit:8538 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8251);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8538);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -23664,37 +24346,163 @@ void parser___ReduceAction242___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction243___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+void parser___ReduceAction248___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
+  val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8256;
-  fra.me.meth = LOCATE_parser___ReduceAction243___action;
+  fra.me.line = 8543;
+  fra.me.meth = LOCATE_parser___ReduceAction248___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
+  fra.me.REG_size = 6;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* parser/parser.nit:8545 */
+  fra.me.REG[2] = NIT_NULL;
+  /* parser/parser.nit:8546 */
+  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:8547 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:8548 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:8549 */
+  fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:8551 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8551);
+  }
+  /* parser/parser.nit:8552 */
+  REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser.nit:8553 */
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
+  }
+  /* parser/parser.nit:8556 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8556);
+  }
+  /* parser/parser.nit:8557 */
+  fra.me.REG[3] = NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[5], fra.me.REG[3]);
+  /* parser/parser.nit:8561 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:8562 */
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8562);
+  }
+  REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
+  REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
+  CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void parser___ReduceAction249___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser;
+  fra.me.line = 8567;
+  fra.me.meth = LOCATE_parser___ReduceAction249___action;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8258 */
+  /* parser/parser.nit:8569 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8259 */
+  /* parser/parser.nit:8570 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8260 */
+  /* parser/parser.nit:8571 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8262 */
+  /* parser/parser.nit:8572 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:8573 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:8574 */
+  fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:8576 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8576);
+  }
+  /* parser/parser.nit:8578 */
+  REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8578);
+  }
+  /* parser/parser.nit:8579 */
+  REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser.nit:8580 */
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
+  }
+  /* parser/parser.nit:8582 */
+  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
+  fra.me.REG[6] = fra.me.REG[4];
+  /* parser/parser.nit:8584 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast nullable TKwend*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8584);
+  }
+  /* parser/parser.nit:8585 */
+  fra.me.REG[3] = NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(fra.me.REG[6], fra.me.REG[3]);
+  /* parser/parser.nit:8589 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8263 */
+  /* parser/parser.nit:8590 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8263);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8590);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -23702,14 +24510,14 @@ void parser___ReduceAction243___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction246___action(val_t p0, val_t p1){
+void parser___ReduceAction253___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8268;
-  fra.me.meth = LOCATE_parser___ReduceAction246___action;
+  fra.me.line = 8595;
+  fra.me.meth = LOCATE_parser___ReduceAction253___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -23719,25 +24527,25 @@ void parser___ReduceAction246___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8270 */
+  /* parser/parser.nit:8597 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8271 */
+  /* parser/parser.nit:8598 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8273 */
+  /* parser/parser.nit:8600 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwreturn, ID_parser___parser_nodes___TKwreturn)) /*cast nullable TKwreturn*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8273);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8600);
   }
-  /* ./parser//parser.nit:8274 */
+  /* parser/parser.nit:8601 */
   fra.me.REG[3] = NEW_AReturnExpr_parser___parser_prod___AReturnExpr___init_areturnexpr(fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:8278 */
+  /* parser/parser.nit:8605 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8279 */
+  /* parser/parser.nit:8606 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8279);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8606);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -23745,14 +24553,14 @@ void parser___ReduceAction246___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction247___action(val_t p0, val_t p1){
+void parser___ReduceAction254___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8284;
-  fra.me.meth = LOCATE_parser___ReduceAction247___action;
+  fra.me.line = 8611;
+  fra.me.meth = LOCATE_parser___ReduceAction254___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -23763,33 +24571,33 @@ void parser___ReduceAction247___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8286 */
+  /* parser/parser.nit:8613 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8287 */
+  /* parser/parser.nit:8614 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8288 */
+  /* parser/parser.nit:8615 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8290 */
+  /* parser/parser.nit:8617 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwreturn, ID_parser___parser_nodes___TKwreturn)) /*cast nullable TKwreturn*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8290);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8617);
   }
-  /* ./parser//parser.nit:8292 */
+  /* parser/parser.nit:8619 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8292);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8619);
   }
-  /* ./parser//parser.nit:8293 */
+  /* parser/parser.nit:8620 */
   fra.me.REG[3] = NEW_AReturnExpr_parser___parser_prod___AReturnExpr___init_areturnexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:8297 */
+  /* parser/parser.nit:8624 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8298 */
+  /* parser/parser.nit:8625 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8298);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8625);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -23797,14 +24605,14 @@ void parser___ReduceAction247___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction248___action(val_t p0, val_t p1){
+void parser___ReduceAction255___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8303;
-  fra.me.meth = LOCATE_parser___ReduceAction248___action;
+  fra.me.line = 8630;
+  fra.me.meth = LOCATE_parser___ReduceAction255___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -23814,25 +24622,25 @@ void parser___ReduceAction248___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8305 */
+  /* parser/parser.nit:8632 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8306 */
+  /* parser/parser.nit:8633 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8308 */
+  /* parser/parser.nit:8635 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwbreak, ID_parser___parser_nodes___TKwbreak)) /*cast nullable TKwbreak*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8308);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8635);
   }
-  /* ./parser//parser.nit:8309 */
+  /* parser/parser.nit:8636 */
   fra.me.REG[3] = NEW_ABreakExpr_parser___parser_prod___ABreakExpr___init_abreakexpr(fra.me.REG[3], NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:8314 */
+  /* parser/parser.nit:8641 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8315 */
+  /* parser/parser.nit:8642 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8315);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8642);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -23840,14 +24648,14 @@ void parser___ReduceAction248___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction249___action(val_t p0, val_t p1){
+void parser___ReduceAction256___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8320;
-  fra.me.meth = LOCATE_parser___ReduceAction249___action;
+  fra.me.line = 8647;
+  fra.me.meth = LOCATE_parser___ReduceAction256___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -23858,33 +24666,33 @@ void parser___ReduceAction249___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8322 */
+  /* parser/parser.nit:8649 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8323 */
+  /* parser/parser.nit:8650 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8324 */
+  /* parser/parser.nit:8651 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8326 */
+  /* parser/parser.nit:8653 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwbreak, ID_parser___parser_nodes___TKwbreak)) /*cast nullable TKwbreak*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8326);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8653);
   }
-  /* ./parser//parser.nit:8328 */
+  /* parser/parser.nit:8655 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast nullable ALabel*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8328);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8655);
   }
-  /* ./parser//parser.nit:8329 */
+  /* parser/parser.nit:8656 */
   fra.me.REG[3] = NEW_ABreakExpr_parser___parser_prod___ABreakExpr___init_abreakexpr(fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:8334 */
+  /* parser/parser.nit:8661 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8335 */
+  /* parser/parser.nit:8662 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8335);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8662);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -23892,14 +24700,14 @@ void parser___ReduceAction249___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction250___action(val_t p0, val_t p1){
+void parser___ReduceAction257___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8340;
-  fra.me.meth = LOCATE_parser___ReduceAction250___action;
+  fra.me.line = 8667;
+  fra.me.meth = LOCATE_parser___ReduceAction257___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -23910,33 +24718,33 @@ void parser___ReduceAction250___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8342 */
+  /* parser/parser.nit:8669 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8343 */
+  /* parser/parser.nit:8670 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8344 */
+  /* parser/parser.nit:8671 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8346 */
+  /* parser/parser.nit:8673 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwbreak, ID_parser___parser_nodes___TKwbreak)) /*cast nullable TKwbreak*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8346);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8673);
   }
-  /* ./parser//parser.nit:8348 */
+  /* parser/parser.nit:8675 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8348);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8675);
   }
-  /* ./parser//parser.nit:8349 */
+  /* parser/parser.nit:8676 */
   fra.me.REG[3] = NEW_ABreakExpr_parser___parser_prod___ABreakExpr___init_abreakexpr(fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:8354 */
+  /* parser/parser.nit:8681 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8355 */
+  /* parser/parser.nit:8682 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8355);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8682);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -23944,14 +24752,14 @@ void parser___ReduceAction250___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction251___action(val_t p0, val_t p1){
+void parser___ReduceAction258___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8360;
-  fra.me.meth = LOCATE_parser___ReduceAction251___action;
+  fra.me.line = 8687;
+  fra.me.meth = LOCATE_parser___ReduceAction258___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -23963,41 +24771,41 @@ void parser___ReduceAction251___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8362 */
+  /* parser/parser.nit:8689 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8363 */
+  /* parser/parser.nit:8690 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8364 */
+  /* parser/parser.nit:8691 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8365 */
+  /* parser/parser.nit:8692 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8367 */
+  /* parser/parser.nit:8694 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwbreak, ID_parser___parser_nodes___TKwbreak)) /*cast nullable TKwbreak*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8367);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8694);
   }
-  /* ./parser//parser.nit:8369 */
+  /* parser/parser.nit:8696 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast nullable ALabel*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8369);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8696);
   }
-  /* ./parser//parser.nit:8371 */
+  /* parser/parser.nit:8698 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8371);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8698);
   }
-  /* ./parser//parser.nit:8372 */
+  /* parser/parser.nit:8699 */
   fra.me.REG[3] = NEW_ABreakExpr_parser___parser_prod___ABreakExpr___init_abreakexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:8377 */
+  /* parser/parser.nit:8704 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8378 */
+  /* parser/parser.nit:8705 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8378);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8705);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -24005,14 +24813,14 @@ void parser___ReduceAction251___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction252___action(val_t p0, val_t p1){
+void parser___ReduceAction259___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8383;
-  fra.me.meth = LOCATE_parser___ReduceAction252___action;
+  fra.me.line = 8710;
+  fra.me.meth = LOCATE_parser___ReduceAction259___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -24022,25 +24830,25 @@ void parser___ReduceAction252___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8385 */
+  /* parser/parser.nit:8712 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8386 */
+  /* parser/parser.nit:8713 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8388 */
+  /* parser/parser.nit:8715 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwabort, ID_parser___parser_nodes___TKwabort)) /*cast nullable TKwabort*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8388);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8715);
   }
-  /* ./parser//parser.nit:8389 */
+  /* parser/parser.nit:8716 */
   fra.me.REG[3] = NEW_AAbortExpr_parser___parser_prod___AAbortExpr___init_aabortexpr(fra.me.REG[3]);
-  /* ./parser//parser.nit:8392 */
+  /* parser/parser.nit:8719 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8393 */
+  /* parser/parser.nit:8720 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8393);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8720);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -24048,14 +24856,14 @@ void parser___ReduceAction252___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction253___action(val_t p0, val_t p1){
+void parser___ReduceAction260___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8398;
-  fra.me.meth = LOCATE_parser___ReduceAction253___action;
+  fra.me.line = 8725;
+  fra.me.meth = LOCATE_parser___ReduceAction260___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -24065,25 +24873,25 @@ void parser___ReduceAction253___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8400 */
+  /* parser/parser.nit:8727 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8401 */
+  /* parser/parser.nit:8728 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8403 */
+  /* parser/parser.nit:8730 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwcontinue, ID_parser___parser_nodes___TKwcontinue)) /*cast nullable TKwcontinue*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8403);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8730);
   }
-  /* ./parser//parser.nit:8404 */
+  /* parser/parser.nit:8731 */
   fra.me.REG[3] = NEW_AContinueExpr_parser___parser_prod___AContinueExpr___init_acontinueexpr(fra.me.REG[3], NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:8409 */
+  /* parser/parser.nit:8736 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8410 */
+  /* parser/parser.nit:8737 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8410);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8737);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -24091,14 +24899,14 @@ void parser___ReduceAction253___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction254___action(val_t p0, val_t p1){
+void parser___ReduceAction261___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8415;
-  fra.me.meth = LOCATE_parser___ReduceAction254___action;
+  fra.me.line = 8742;
+  fra.me.meth = LOCATE_parser___ReduceAction261___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -24109,33 +24917,33 @@ void parser___ReduceAction254___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8417 */
+  /* parser/parser.nit:8744 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8418 */
+  /* parser/parser.nit:8745 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8419 */
+  /* parser/parser.nit:8746 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8421 */
+  /* parser/parser.nit:8748 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwcontinue, ID_parser___parser_nodes___TKwcontinue)) /*cast nullable TKwcontinue*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8421);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8748);
   }
-  /* ./parser//parser.nit:8423 */
+  /* parser/parser.nit:8750 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast nullable ALabel*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8423);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8750);
   }
-  /* ./parser//parser.nit:8424 */
+  /* parser/parser.nit:8751 */
   fra.me.REG[3] = NEW_AContinueExpr_parser___parser_prod___AContinueExpr___init_acontinueexpr(fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:8429 */
+  /* parser/parser.nit:8756 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8430 */
+  /* parser/parser.nit:8757 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8430);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8757);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -24143,14 +24951,14 @@ void parser___ReduceAction254___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction255___action(val_t p0, val_t p1){
+void parser___ReduceAction262___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8435;
-  fra.me.meth = LOCATE_parser___ReduceAction255___action;
+  fra.me.line = 8762;
+  fra.me.meth = LOCATE_parser___ReduceAction262___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -24161,33 +24969,33 @@ void parser___ReduceAction255___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8437 */
+  /* parser/parser.nit:8764 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8438 */
+  /* parser/parser.nit:8765 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8439 */
+  /* parser/parser.nit:8766 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8441 */
+  /* parser/parser.nit:8768 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwcontinue, ID_parser___parser_nodes___TKwcontinue)) /*cast nullable TKwcontinue*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8441);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8768);
   }
-  /* ./parser//parser.nit:8443 */
+  /* parser/parser.nit:8770 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8443);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8770);
   }
-  /* ./parser//parser.nit:8444 */
+  /* parser/parser.nit:8771 */
   fra.me.REG[3] = NEW_AContinueExpr_parser___parser_prod___AContinueExpr___init_acontinueexpr(fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:8449 */
+  /* parser/parser.nit:8776 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8450 */
+  /* parser/parser.nit:8777 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8450);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8777);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -24195,14 +25003,14 @@ void parser___ReduceAction255___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction256___action(val_t p0, val_t p1){
+void parser___ReduceAction263___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8455;
-  fra.me.meth = LOCATE_parser___ReduceAction256___action;
+  fra.me.line = 8782;
+  fra.me.meth = LOCATE_parser___ReduceAction263___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -24214,41 +25022,41 @@ void parser___ReduceAction256___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8457 */
+  /* parser/parser.nit:8784 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8458 */
+  /* parser/parser.nit:8785 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8459 */
+  /* parser/parser.nit:8786 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8460 */
+  /* parser/parser.nit:8787 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8462 */
+  /* parser/parser.nit:8789 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwcontinue, ID_parser___parser_nodes___TKwcontinue)) /*cast nullable TKwcontinue*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8462);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8789);
   }
-  /* ./parser//parser.nit:8464 */
+  /* parser/parser.nit:8791 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast nullable ALabel*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8464);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8791);
   }
-  /* ./parser//parser.nit:8466 */
+  /* parser/parser.nit:8793 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8466);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8793);
   }
-  /* ./parser//parser.nit:8467 */
+  /* parser/parser.nit:8794 */
   fra.me.REG[3] = NEW_AContinueExpr_parser___parser_prod___AContinueExpr___init_acontinueexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:8472 */
+  /* parser/parser.nit:8799 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8473 */
+  /* parser/parser.nit:8800 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8473);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8800);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -24256,16 +25064,16 @@ void parser___ReduceAction256___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction263___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
+void parser___ReduceAction270___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8478;
-  fra.me.meth = LOCATE_parser___ReduceAction263___action;
+  fra.me.line = 8805;
+  fra.me.meth = LOCATE_parser___ReduceAction270___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 8;
+  fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -24274,55 +25082,49 @@ void parser___ReduceAction263___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
-  fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8480 */
+  /* parser/parser.nit:8807 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8481 */
+  /* parser/parser.nit:8808 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8482 */
+  /* parser/parser.nit:8809 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8483 */
+  /* parser/parser.nit:8810 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8484 */
+  /* parser/parser.nit:8811 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8485 */
+  /* parser/parser.nit:8812 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8486 */
+  /* parser/parser.nit:8813 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8487 */
-  fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8489 */
+  /* parser/parser.nit:8815 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8489);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8815);
   }
-  /* ./parser//parser.nit:8491 */
+  /* parser/parser.nit:8817 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8491);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8817);
   }
-  /* ./parser//parser.nit:8493 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:8819 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8493);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8819);
   }
-  /* ./parser//parser.nit:8494 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
-  fra.me.REG[6] = fra.me.REG[3];
-  /* ./parser//parser.nit:8495 */
-  fra.me.REG[7] = NEW_ACallExpr_parser___parser_prod___ACallExpr___init_acallexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6], fra.me.REG[7]);
-  /* ./parser//parser.nit:8501 */
-  fra.me.REG[2] = fra.me.REG[7];
-  /* ./parser//parser.nit:8502 */
+  /* parser/parser.nit:8820 */
+  fra.me.REG[6] = NEW_ACallExpr_parser___parser_prod___ACallExpr___init_acallexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], fra.me.REG[6]);
+  /* parser/parser.nit:8826 */
+  fra.me.REG[2] = fra.me.REG[6];
+  /* parser/parser.nit:8827 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8502);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8827);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -24330,16 +25132,16 @@ void parser___ReduceAction263___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction264___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
+void parser___ReduceAction271___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8507;
-  fra.me.meth = LOCATE_parser___ReduceAction264___action;
+  fra.me.line = 8832;
+  fra.me.meth = LOCATE_parser___ReduceAction271___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 8;
+  fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -24348,45 +25150,39 @@ void parser___ReduceAction264___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
-  fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8509 */
+  /* parser/parser.nit:8834 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8510 */
+  /* parser/parser.nit:8835 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8511 */
+  /* parser/parser.nit:8836 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8512 */
+  /* parser/parser.nit:8837 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8513 */
-  fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8514 */
-  fra.me.REG[7] = NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
-  /* ./parser//parser.nit:8517 */
+  /* parser/parser.nit:8838 */
+  fra.me.REG[6] = NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
+  /* parser/parser.nit:8840 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8517);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8840);
   }
-  /* ./parser//parser.nit:8519 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:8842 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8519);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8842);
   }
-  /* ./parser//parser.nit:8520 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
-  fra.me.REG[5] = fra.me.REG[3];
-  /* ./parser//parser.nit:8521 */
-  fra.me.REG[6] = NEW_ACallExpr_parser___parser_prod___ACallExpr___init_acallexpr(fra.me.REG[7], fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
-  /* ./parser//parser.nit:8527 */
-  fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:8528 */
+  /* parser/parser.nit:8843 */
+  fra.me.REG[5] = NEW_ACallExpr_parser___parser_prod___ACallExpr___init_acallexpr(fra.me.REG[6], fra.me.REG[4], fra.me.REG[3], fra.me.REG[5]);
+  /* parser/parser.nit:8849 */
+  fra.me.REG[2] = fra.me.REG[5];
+  /* parser/parser.nit:8850 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8528);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8850);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -24394,16 +25190,16 @@ void parser___ReduceAction264___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction265___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
+void parser___ReduceAction272___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8533;
-  fra.me.meth = LOCATE_parser___ReduceAction265___action;
+  fra.me.line = 8855;
+  fra.me.meth = LOCATE_parser___ReduceAction272___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 9;
+  fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -24413,66 +25209,60 @@ void parser___ReduceAction265___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[7] = NIT_NULL;
-  fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8535 */
+  /* parser/parser.nit:8857 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8536 */
+  /* parser/parser.nit:8858 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8537 */
+  /* parser/parser.nit:8859 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8538 */
+  /* parser/parser.nit:8860 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8539 */
+  /* parser/parser.nit:8861 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8540 */
+  /* parser/parser.nit:8862 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8541 */
+  /* parser/parser.nit:8863 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8542 */
+  /* parser/parser.nit:8864 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8543 */
-  fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8545 */
+  /* parser/parser.nit:8866 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8545);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8866);
   }
-  /* ./parser//parser.nit:8547 */
+  /* parser/parser.nit:8868 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8547);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8868);
   }
-  /* ./parser//parser.nit:8549 */
-  REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:8870 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8549);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8870);
   }
-  /* ./parser//parser.nit:8550 */
-  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
-  fra.me.REG[7] = fra.me.REG[4];
-  /* ./parser//parser.nit:8552 */
+  /* parser/parser.nit:8872 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8552);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8872);
   }
-  /* ./parser//parser.nit:8553 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[3]);
-  fra.me.REG[8] = fra.me.REG[3];
-  /* ./parser//parser.nit:8554 */
-  fra.me.REG[8] = NEW_ACallExpr_parser___parser_prod___ACallExpr___init_acallexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[7], fra.me.REG[8]);
-  /* ./parser//parser.nit:8560 */
-  fra.me.REG[2] = fra.me.REG[8];
-  /* ./parser//parser.nit:8561 */
+  /* parser/parser.nit:8873 */
+  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
+  fra.me.REG[7] = fra.me.REG[3];
+  /* parser/parser.nit:8874 */
+  fra.me.REG[7] = NEW_ACallExpr_parser___parser_prod___ACallExpr___init_acallexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[7]);
+  /* parser/parser.nit:8880 */
+  fra.me.REG[2] = fra.me.REG[7];
+  /* parser/parser.nit:8881 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8561);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8881);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -24480,16 +25270,16 @@ void parser___ReduceAction265___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction266___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
+void parser___ReduceAction273___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8566;
-  fra.me.meth = LOCATE_parser___ReduceAction266___action;
+  fra.me.line = 8886;
+  fra.me.meth = LOCATE_parser___ReduceAction273___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 9;
+  fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -24499,56 +25289,50 @@ void parser___ReduceAction266___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[7] = NIT_NULL;
-  fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8568 */
+  /* parser/parser.nit:8888 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8569 */
+  /* parser/parser.nit:8889 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8570 */
+  /* parser/parser.nit:8890 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8571 */
+  /* parser/parser.nit:8891 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8572 */
+  /* parser/parser.nit:8892 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8573 */
-  fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8574 */
-  fra.me.REG[8] = NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
-  /* ./parser//parser.nit:8577 */
+  /* parser/parser.nit:8893 */
+  fra.me.REG[7] = NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
+  /* parser/parser.nit:8895 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8577);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8895);
   }
-  /* ./parser//parser.nit:8579 */
-  REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:8897 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8579);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8897);
   }
-  /* ./parser//parser.nit:8580 */
-  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
-  fra.me.REG[6] = fra.me.REG[4];
-  /* ./parser//parser.nit:8582 */
+  /* parser/parser.nit:8899 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8582);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8899);
   }
-  /* ./parser//parser.nit:8583 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
-  fra.me.REG[7] = fra.me.REG[3];
-  /* ./parser//parser.nit:8584 */
-  fra.me.REG[7] = NEW_ACallExpr_parser___parser_prod___ACallExpr___init_acallexpr(fra.me.REG[8], fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
-  /* ./parser//parser.nit:8590 */
-  fra.me.REG[2] = fra.me.REG[7];
-  /* ./parser//parser.nit:8591 */
+  /* parser/parser.nit:8900 */
+  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
+  fra.me.REG[6] = fra.me.REG[3];
+  /* parser/parser.nit:8901 */
+  fra.me.REG[6] = NEW_ACallExpr_parser___parser_prod___ACallExpr___init_acallexpr(fra.me.REG[7], fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
+  /* parser/parser.nit:8907 */
+  fra.me.REG[2] = fra.me.REG[6];
+  /* parser/parser.nit:8908 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8591);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8908);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -24556,57 +25340,51 @@ void parser___ReduceAction266___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction267___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
+void parser___ReduceAction274___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8596;
-  fra.me.meth = LOCATE_parser___ReduceAction267___action;
+  fra.me.line = 8913;
+  fra.me.meth = LOCATE_parser___ReduceAction274___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
+  fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8598 */
+  /* parser/parser.nit:8915 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8599 */
+  /* parser/parser.nit:8916 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8600 */
+  /* parser/parser.nit:8917 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8601 */
-  fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8603 */
+  /* parser/parser.nit:8919 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwsuper, ID_parser___parser_nodes___TKwsuper)) /*cast nullable TKwsuper*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8603);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8919);
   }
-  /* ./parser//parser.nit:8605 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:8921 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8605);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8921);
   }
-  /* ./parser//parser.nit:8606 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
-  fra.me.REG[5] = fra.me.REG[3];
-  /* ./parser//parser.nit:8607 */
-  fra.me.REG[5] = NEW_ASuperExpr_parser___parser_prod___ASuperExpr___init_asuperexpr(NIT_NULL, fra.me.REG[4], fra.me.REG[5]);
-  /* ./parser//parser.nit:8612 */
-  fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:8613 */
+  /* parser/parser.nit:8922 */
+  fra.me.REG[3] = NEW_ASuperExpr_parser___parser_prod___ASuperExpr___init_asuperexpr(NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:8927 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:8928 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8613);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8928);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -24614,16 +25392,16 @@ void parser___ReduceAction267___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction268___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+void parser___ReduceAction275___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8618;
-  fra.me.meth = LOCATE_parser___ReduceAction268___action;
+  fra.me.line = 8933;
+  fra.me.meth = LOCATE_parser___ReduceAction275___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 7;
+  fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -24631,49 +25409,43 @@ void parser___ReduceAction268___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8620 */
+  /* parser/parser.nit:8935 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8621 */
+  /* parser/parser.nit:8936 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8622 */
+  /* parser/parser.nit:8937 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8623 */
+  /* parser/parser.nit:8938 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8624 */
-  fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8626 */
+  /* parser/parser.nit:8940 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AQualified, ID_parser___parser_nodes___AQualified)) /*cast nullable AQualified*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8626);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8940);
   }
-  /* ./parser//parser.nit:8628 */
+  /* parser/parser.nit:8942 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwsuper, ID_parser___parser_nodes___TKwsuper)) /*cast nullable TKwsuper*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8628);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8942);
   }
-  /* ./parser//parser.nit:8630 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:8944 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8630);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8944);
   }
-  /* ./parser//parser.nit:8631 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
-  fra.me.REG[6] = fra.me.REG[3];
-  /* ./parser//parser.nit:8632 */
-  fra.me.REG[6] = NEW_ASuperExpr_parser___parser_prod___ASuperExpr___init_asuperexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
-  /* ./parser//parser.nit:8637 */
-  fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:8638 */
+  /* parser/parser.nit:8945 */
+  fra.me.REG[3] = NEW_ASuperExpr_parser___parser_prod___ASuperExpr___init_asuperexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:8950 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:8951 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8638);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8951);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -24681,16 +25453,16 @@ void parser___ReduceAction268___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction269___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+void parser___ReduceAction276___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8643;
-  fra.me.meth = LOCATE_parser___ReduceAction269___action;
+  fra.me.line = 8956;
+  fra.me.meth = LOCATE_parser___ReduceAction276___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 7;
+  fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -24698,53 +25470,47 @@ void parser___ReduceAction269___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8645 */
+  /* parser/parser.nit:8958 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8646 */
+  /* parser/parser.nit:8959 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8647 */
+  /* parser/parser.nit:8960 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8648 */
+  /* parser/parser.nit:8961 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8649 */
+  /* parser/parser.nit:8962 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8650 */
+  /* parser/parser.nit:8963 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8651 */
-  fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8653 */
+  /* parser/parser.nit:8965 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8653);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8965);
   }
-  /* ./parser//parser.nit:8655 */
+  /* parser/parser.nit:8967 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwinit, ID_parser___parser_nodes___TKwinit)) /*cast nullable TKwinit*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8655);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8967);
   }
-  /* ./parser//parser.nit:8657 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:8969 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8657);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8969);
   }
-  /* ./parser//parser.nit:8658 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
-  fra.me.REG[6] = fra.me.REG[3];
-  /* ./parser//parser.nit:8659 */
-  fra.me.REG[6] = NEW_AInitExpr_parser___parser_prod___AInitExpr___init_ainitexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
-  /* ./parser//parser.nit:8664 */
-  fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:8665 */
+  /* parser/parser.nit:8970 */
+  fra.me.REG[3] = NEW_AInitExpr_parser___parser_prod___AInitExpr___init_ainitexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:8975 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:8976 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8665);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8976);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -24752,14 +25518,69 @@ void parser___ReduceAction269___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction270___action(val_t p0, val_t p1){
+void parser___ReduceAction277___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser;
+  fra.me.line = 8981;
+  fra.me.meth = LOCATE_parser___ReduceAction277___action;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 6;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* parser/parser.nit:8983 */
+  fra.me.REG[2] = NIT_NULL;
+  /* parser/parser.nit:8984 */
+  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:8985 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:8986 */
+  fra.me.REG[5] = NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
+  /* parser/parser.nit:8988 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwinit, ID_parser___parser_nodes___TKwinit)) /*cast nullable TKwinit*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8988);
+  }
+  /* parser/parser.nit:8990 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 8990);
+  }
+  /* parser/parser.nit:8991 */
+  fra.me.REG[3] = NEW_AInitExpr_parser___parser_prod___AInitExpr___init_ainitexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:8996 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:8997 */
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8997);
+  }
+  REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
+  REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
+  CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void parser___ReduceAction278___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8670;
-  fra.me.meth = LOCATE_parser___ReduceAction270___action;
+  fra.me.line = 9002;
+  fra.me.meth = LOCATE_parser___ReduceAction278___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -24772,40 +25593,51 @@ void parser___ReduceAction270___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8672 */
+  /* parser/parser.nit:9004 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8673 */
+  /* parser/parser.nit:9005 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8674 */
+  /* parser/parser.nit:9006 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8675 */
-  fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8676 */
-  fra.me.REG[6] = NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
-  /* ./parser//parser.nit:8679 */
-  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwinit, ID_parser___parser_nodes___TKwinit)) /*cast nullable TKwinit*/;
+  /* parser/parser.nit:9007 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:9008 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:9009 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:9011 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwdebug, ID_parser___parser_nodes___TKwdebug)) /*cast nullable TKwdebug*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8679);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9011);
   }
-  /* ./parser//parser.nit:8681 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:9013 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwtype, ID_parser___parser_nodes___TKwtype)) /*cast nullable TKwtype*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8681);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9013);
   }
-  /* ./parser//parser.nit:8682 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
-  fra.me.REG[5] = fra.me.REG[3];
-  /* ./parser//parser.nit:8683 */
-  fra.me.REG[5] = NEW_AInitExpr_parser___parser_prod___AInitExpr___init_ainitexpr(fra.me.REG[6], fra.me.REG[4], fra.me.REG[5]);
-  /* ./parser//parser.nit:8688 */
-  fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:8689 */
+  /* parser/parser.nit:9015 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9015);
+  }
+  /* parser/parser.nit:9017 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9017);
+  }
+  /* parser/parser.nit:9018 */
+  fra.me.REG[4] = NEW_ADebugTypeExpr_parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[3], fra.me.REG[4]);
+  /* parser/parser.nit:9024 */
+  fra.me.REG[2] = fra.me.REG[4];
+  /* parser/parser.nit:9025 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8689);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9025);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -24813,14 +25645,14 @@ void parser___ReduceAction270___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction271___action(val_t p0, val_t p1){
+void parser___ReduceAction279___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8694;
-  fra.me.meth = LOCATE_parser___ReduceAction271___action;
+  fra.me.line = 9030;
+  fra.me.meth = LOCATE_parser___ReduceAction279___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -24831,33 +25663,33 @@ void parser___ReduceAction271___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8696 */
+  /* parser/parser.nit:9032 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8697 */
+  /* parser/parser.nit:9033 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8698 */
+  /* parser/parser.nit:9034 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8700 */
+  /* parser/parser.nit:9036 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwlabel, ID_parser___parser_nodes___TKwlabel)) /*cast nullable TKwlabel*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8700);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9036);
   }
-  /* ./parser//parser.nit:8702 */
+  /* parser/parser.nit:9038 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8702);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9038);
   }
-  /* ./parser//parser.nit:8703 */
+  /* parser/parser.nit:9039 */
   fra.me.REG[3] = NEW_ALabel_parser___parser_prod___ALabel___init_alabel(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:8707 */
+  /* parser/parser.nit:9043 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8708 */
+  /* parser/parser.nit:9044 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8708);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9044);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -24865,15 +25697,15 @@ void parser___ReduceAction271___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction272___action(val_t p0, val_t p1){
+void parser___ReduceAction280___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8713;
-  fra.me.meth = LOCATE_parser___ReduceAction272___action;
+  fra.me.line = 9049;
+  fra.me.meth = LOCATE_parser___ReduceAction280___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -24884,13 +25716,13 @@ void parser___ReduceAction272___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8715 */
+  /* parser/parser.nit:9051 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8716 */
+  /* parser/parser.nit:9052 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8717 */
+  /* parser/parser.nit:9053 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8719 */
+  /* parser/parser.nit:9055 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -24905,16 +25737,16 @@ void parser___ReduceAction272___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:8720 */
+    /* parser/parser.nit:9056 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:8722 */
+  /* parser/parser.nit:9058 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:8723 */
+  /* parser/parser.nit:9059 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8723);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9059);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -24922,15 +25754,15 @@ void parser___ReduceAction272___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction273___action(val_t p0, val_t p1){
+void parser___ReduceAction281___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8728;
-  fra.me.meth = LOCATE_parser___ReduceAction273___action;
+  fra.me.line = 9064;
+  fra.me.meth = LOCATE_parser___ReduceAction281___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -24942,21 +25774,21 @@ void parser___ReduceAction273___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8730 */
+  /* parser/parser.nit:9066 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8731 */
+  /* parser/parser.nit:9067 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8732 */
+  /* parser/parser.nit:9068 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8733 */
+  /* parser/parser.nit:9069 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8736 */
+  /* parser/parser.nit:9072 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8736);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9072);
   }
-  /* ./parser//parser.nit:8737 */
+  /* parser/parser.nit:9073 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -24971,19 +25803,19 @@ void parser___ReduceAction273___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:8738 */
+    /* parser/parser.nit:9074 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
   }
-  /* ./parser//parser.nit:8740 */
+  /* parser/parser.nit:9076 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
   fra.me.REG[5] = fra.me.REG[3];
-  /* ./parser//parser.nit:8741 */
+  /* parser/parser.nit:9077 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:8742 */
+  /* parser/parser.nit:9078 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8742);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9078);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -24991,14 +25823,14 @@ void parser___ReduceAction273___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction274___action(val_t p0, val_t p1){
+void parser___ReduceAction282___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8747;
-  fra.me.meth = LOCATE_parser___ReduceAction274___action;
+  fra.me.line = 9083;
+  fra.me.meth = LOCATE_parser___ReduceAction282___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
   fra.me.nitni_local_ref_head = NULL;
@@ -25013,59 +25845,59 @@ void parser___ReduceAction274___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8749 */
+  /* parser/parser.nit:9085 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8750 */
+  /* parser/parser.nit:9086 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8751 */
+  /* parser/parser.nit:9087 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8752 */
+  /* parser/parser.nit:9088 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8753 */
+  /* parser/parser.nit:9089 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8754 */
+  /* parser/parser.nit:9090 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8755 */
+  /* parser/parser.nit:9091 */
   fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8757 */
+  /* parser/parser.nit:9093 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8757);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9093);
   }
-  /* ./parser//parser.nit:8759 */
+  /* parser/parser.nit:9095 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AClosureId, ID_parser___parser_nodes___AClosureId)) /*cast nullable AClosureId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8759);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9095);
   }
-  /* ./parser//parser.nit:8761 */
+  /* parser/parser.nit:9097 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast nullable TKwdo*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8761);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9097);
   }
-  /* ./parser//parser.nit:8763 */
+  /* parser/parser.nit:9099 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8763);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9099);
   }
-  /* ./parser//parser.nit:8765 */
+  /* parser/parser.nit:9101 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast nullable ALabel*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8765);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9101);
   }
-  /* ./parser//parser.nit:8766 */
+  /* parser/parser.nit:9102 */
   fra.me.REG[3] = NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[7], fra.me.REG[6], fra.me.REG[8], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:8774 */
+  /* parser/parser.nit:9110 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8775 */
+  /* parser/parser.nit:9111 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8775);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9111);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -25073,14 +25905,14 @@ void parser___ReduceAction274___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction275___action(val_t p0, val_t p1){
+void parser___ReduceAction283___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8780;
-  fra.me.meth = LOCATE_parser___ReduceAction275___action;
+  fra.me.line = 9116;
+  fra.me.meth = LOCATE_parser___ReduceAction283___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
   fra.me.nitni_local_ref_head = NULL;
@@ -25096,74 +25928,74 @@ void parser___ReduceAction275___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8782 */
+  /* parser/parser.nit:9118 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8783 */
+  /* parser/parser.nit:9119 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8784 */
+  /* parser/parser.nit:9120 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8785 */
+  /* parser/parser.nit:9121 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8786 */
+  /* parser/parser.nit:9122 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8787 */
+  /* parser/parser.nit:9123 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8788 */
+  /* parser/parser.nit:9124 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8789 */
+  /* parser/parser.nit:9125 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8790 */
+  /* parser/parser.nit:9126 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8791 */
+  /* parser/parser.nit:9127 */
   fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8793 */
+  /* parser/parser.nit:9129 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8793);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9129);
   }
-  /* ./parser//parser.nit:8795 */
+  /* parser/parser.nit:9131 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AClosureId, ID_parser___parser_nodes___AClosureId)) /*cast nullable AClosureId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8795);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9131);
   }
-  /* ./parser//parser.nit:8797 */
+  /* parser/parser.nit:9133 */
   REGB0 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8797);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9133);
   }
-  /* ./parser//parser.nit:8798 */
+  /* parser/parser.nit:9134 */
   fra.me.REG[6] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[6]);
   fra.me.REG[9] = fra.me.REG[6];
-  /* ./parser//parser.nit:8800 */
+  /* parser/parser.nit:9136 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast nullable TKwdo*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8800);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9136);
   }
-  /* ./parser//parser.nit:8802 */
+  /* parser/parser.nit:9138 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8802);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9138);
   }
-  /* ./parser//parser.nit:8804 */
+  /* parser/parser.nit:9140 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast nullable ALabel*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8804);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9140);
   }
-  /* ./parser//parser.nit:8805 */
+  /* parser/parser.nit:9141 */
   fra.me.REG[3] = NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[9], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:8813 */
+  /* parser/parser.nit:9149 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8814 */
+  /* parser/parser.nit:9150 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8814);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9150);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -25171,14 +26003,14 @@ void parser___ReduceAction275___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction276___action(val_t p0, val_t p1){
+void parser___ReduceAction284___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8819;
-  fra.me.meth = LOCATE_parser___ReduceAction276___action;
+  fra.me.line = 9155;
+  fra.me.meth = LOCATE_parser___ReduceAction284___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
   fra.me.nitni_local_ref_head = NULL;
@@ -25194,70 +26026,70 @@ void parser___ReduceAction276___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8821 */
+  /* parser/parser.nit:9157 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8822 */
+  /* parser/parser.nit:9158 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8823 */
+  /* parser/parser.nit:9159 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8824 */
+  /* parser/parser.nit:9160 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8825 */
+  /* parser/parser.nit:9161 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8826 */
+  /* parser/parser.nit:9162 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8827 */
+  /* parser/parser.nit:9163 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8828 */
+  /* parser/parser.nit:9164 */
   fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8830 */
+  /* parser/parser.nit:9166 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8830);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9166);
   }
-  /* ./parser//parser.nit:8832 */
+  /* parser/parser.nit:9168 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AClosureId, ID_parser___parser_nodes___AClosureId)) /*cast nullable AClosureId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8832);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9168);
   }
-  /* ./parser//parser.nit:8834 */
+  /* parser/parser.nit:9170 */
   REGB0 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8834);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9170);
   }
-  /* ./parser//parser.nit:8835 */
+  /* parser/parser.nit:9171 */
   fra.me.REG[6] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[6]);
   fra.me.REG[9] = fra.me.REG[6];
-  /* ./parser//parser.nit:8837 */
+  /* parser/parser.nit:9173 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast nullable TKwdo*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8837);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9173);
   }
-  /* ./parser//parser.nit:8839 */
+  /* parser/parser.nit:9175 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8839);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9175);
   }
-  /* ./parser//parser.nit:8841 */
+  /* parser/parser.nit:9177 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast nullable ALabel*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8841);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9177);
   }
-  /* ./parser//parser.nit:8842 */
+  /* parser/parser.nit:9178 */
   fra.me.REG[3] = NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[8], fra.me.REG[7], fra.me.REG[9], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:8850 */
+  /* parser/parser.nit:9186 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8851 */
+  /* parser/parser.nit:9187 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8851);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9187);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -25265,14 +26097,14 @@ void parser___ReduceAction276___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction277___action(val_t p0, val_t p1){
+void parser___ReduceAction285___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8856;
-  fra.me.meth = LOCATE_parser___ReduceAction277___action;
+  fra.me.line = 9192;
+  fra.me.meth = LOCATE_parser___ReduceAction285___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
@@ -25286,51 +26118,51 @@ void parser___ReduceAction277___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8858 */
+  /* parser/parser.nit:9194 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8859 */
+  /* parser/parser.nit:9195 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8860 */
+  /* parser/parser.nit:9196 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8861 */
+  /* parser/parser.nit:9197 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8862 */
+  /* parser/parser.nit:9198 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8863 */
+  /* parser/parser.nit:9199 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8865 */
+  /* parser/parser.nit:9201 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8865);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9201);
   }
-  /* ./parser//parser.nit:8867 */
+  /* parser/parser.nit:9203 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AClosureId, ID_parser___parser_nodes___AClosureId)) /*cast nullable AClosureId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8867);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9203);
   }
-  /* ./parser//parser.nit:8869 */
+  /* parser/parser.nit:9205 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast nullable TKwdo*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8869);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9205);
   }
-  /* ./parser//parser.nit:8871 */
+  /* parser/parser.nit:9207 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8871);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9207);
   }
-  /* ./parser//parser.nit:8872 */
+  /* parser/parser.nit:9208 */
   fra.me.REG[3] = NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[6], fra.me.REG[5], fra.me.REG[7], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:8880 */
+  /* parser/parser.nit:9216 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8881 */
+  /* parser/parser.nit:9217 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8881);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9217);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -25338,14 +26170,14 @@ void parser___ReduceAction277___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction278___action(val_t p0, val_t p1){
+void parser___ReduceAction286___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8886;
-  fra.me.meth = LOCATE_parser___ReduceAction278___action;
+  fra.me.line = 9222;
+  fra.me.meth = LOCATE_parser___ReduceAction286___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
   fra.me.nitni_local_ref_head = NULL;
@@ -25360,66 +26192,66 @@ void parser___ReduceAction278___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8888 */
+  /* parser/parser.nit:9224 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8889 */
+  /* parser/parser.nit:9225 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8890 */
+  /* parser/parser.nit:9226 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8891 */
+  /* parser/parser.nit:9227 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8892 */
+  /* parser/parser.nit:9228 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8893 */
+  /* parser/parser.nit:9229 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8894 */
+  /* parser/parser.nit:9230 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8895 */
+  /* parser/parser.nit:9231 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8896 */
+  /* parser/parser.nit:9232 */
   fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8898 */
+  /* parser/parser.nit:9234 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8898);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9234);
   }
-  /* ./parser//parser.nit:8900 */
+  /* parser/parser.nit:9236 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AClosureId, ID_parser___parser_nodes___AClosureId)) /*cast nullable AClosureId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8900);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9236);
   }
-  /* ./parser//parser.nit:8902 */
+  /* parser/parser.nit:9238 */
   REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8902);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9238);
   }
-  /* ./parser//parser.nit:8903 */
+  /* parser/parser.nit:9239 */
   fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[5]);
   fra.me.REG[8] = fra.me.REG[5];
-  /* ./parser//parser.nit:8905 */
+  /* parser/parser.nit:9241 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast nullable TKwdo*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8905);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9241);
   }
-  /* ./parser//parser.nit:8907 */
+  /* parser/parser.nit:9243 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8907);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9243);
   }
-  /* ./parser//parser.nit:8908 */
+  /* parser/parser.nit:9244 */
   fra.me.REG[3] = NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[7], fra.me.REG[6], fra.me.REG[8], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:8916 */
+  /* parser/parser.nit:9252 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8917 */
+  /* parser/parser.nit:9253 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8917);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9253);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -25427,14 +26259,14 @@ void parser___ReduceAction278___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction279___action(val_t p0, val_t p1){
+void parser___ReduceAction287___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8922;
-  fra.me.meth = LOCATE_parser___ReduceAction279___action;
+  fra.me.line = 9258;
+  fra.me.meth = LOCATE_parser___ReduceAction287___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
   fra.me.nitni_local_ref_head = NULL;
@@ -25449,62 +26281,62 @@ void parser___ReduceAction279___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8924 */
+  /* parser/parser.nit:9260 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8925 */
+  /* parser/parser.nit:9261 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8926 */
+  /* parser/parser.nit:9262 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8927 */
+  /* parser/parser.nit:9263 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8928 */
+  /* parser/parser.nit:9264 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8929 */
+  /* parser/parser.nit:9265 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8930 */
+  /* parser/parser.nit:9266 */
   fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8932 */
+  /* parser/parser.nit:9268 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8932);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9268);
   }
-  /* ./parser//parser.nit:8934 */
+  /* parser/parser.nit:9270 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AClosureId, ID_parser___parser_nodes___AClosureId)) /*cast nullable AClosureId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8934);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9270);
   }
-  /* ./parser//parser.nit:8936 */
+  /* parser/parser.nit:9272 */
   REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8936);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9272);
   }
-  /* ./parser//parser.nit:8937 */
+  /* parser/parser.nit:9273 */
   fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[5]);
   fra.me.REG[8] = fra.me.REG[5];
-  /* ./parser//parser.nit:8939 */
+  /* parser/parser.nit:9275 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast nullable TKwdo*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8939);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9275);
   }
-  /* ./parser//parser.nit:8941 */
+  /* parser/parser.nit:9277 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8941);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9277);
   }
-  /* ./parser//parser.nit:8942 */
+  /* parser/parser.nit:9278 */
   fra.me.REG[3] = NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[7], fra.me.REG[6], fra.me.REG[8], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:8950 */
+  /* parser/parser.nit:9286 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8951 */
+  /* parser/parser.nit:9287 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8951);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9287);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -25512,14 +26344,14 @@ void parser___ReduceAction279___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction280___action(val_t p0, val_t p1){
+void parser___ReduceAction288___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8956;
-  fra.me.meth = LOCATE_parser___ReduceAction280___action;
+  fra.me.line = 9292;
+  fra.me.meth = LOCATE_parser___ReduceAction288___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -25532,47 +26364,47 @@ void parser___ReduceAction280___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8958 */
+  /* parser/parser.nit:9294 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8959 */
+  /* parser/parser.nit:9295 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8960 */
+  /* parser/parser.nit:9296 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8961 */
+  /* parser/parser.nit:9297 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8962 */
+  /* parser/parser.nit:9298 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8963 */
+  /* parser/parser.nit:9299 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8964 */
+  /* parser/parser.nit:9300 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8966 */
+  /* parser/parser.nit:9302 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8966);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9302);
   }
-  /* ./parser//parser.nit:8968 */
+  /* parser/parser.nit:9304 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AClosureId, ID_parser___parser_nodes___AClosureId)) /*cast nullable AClosureId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8968);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9304);
   }
-  /* ./parser//parser.nit:8970 */
+  /* parser/parser.nit:9306 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8970);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9306);
   }
-  /* ./parser//parser.nit:8971 */
+  /* parser/parser.nit:9307 */
   fra.me.REG[3] = NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6], NIT_NULL, fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:8979 */
+  /* parser/parser.nit:9315 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:8980 */
+  /* parser/parser.nit:9316 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 8980);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9316);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -25580,14 +26412,14 @@ void parser___ReduceAction280___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction281___action(val_t p0, val_t p1){
+void parser___ReduceAction289___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 8985;
-  fra.me.meth = LOCATE_parser___ReduceAction281___action;
+  fra.me.line = 9321;
+  fra.me.meth = LOCATE_parser___ReduceAction289___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
@@ -25601,62 +26433,62 @@ void parser___ReduceAction281___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:8987 */
+  /* parser/parser.nit:9323 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:8988 */
+  /* parser/parser.nit:9324 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8989 */
+  /* parser/parser.nit:9325 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8990 */
+  /* parser/parser.nit:9326 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8991 */
+  /* parser/parser.nit:9327 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8992 */
+  /* parser/parser.nit:9328 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8993 */
+  /* parser/parser.nit:9329 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8994 */
+  /* parser/parser.nit:9330 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8995 */
+  /* parser/parser.nit:9331 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:8996 */
+  /* parser/parser.nit:9332 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:8998 */
+  /* parser/parser.nit:9334 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 8998);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9334);
   }
-  /* ./parser//parser.nit:9000 */
+  /* parser/parser.nit:9336 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AClosureId, ID_parser___parser_nodes___AClosureId)) /*cast nullable AClosureId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9000);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9336);
   }
-  /* ./parser//parser.nit:9002 */
+  /* parser/parser.nit:9338 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9002);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9338);
   }
-  /* ./parser//parser.nit:9003 */
+  /* parser/parser.nit:9339 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
   fra.me.REG[7] = fra.me.REG[4];
-  /* ./parser//parser.nit:9005 */
+  /* parser/parser.nit:9341 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9005);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9341);
   }
-  /* ./parser//parser.nit:9006 */
+  /* parser/parser.nit:9342 */
   fra.me.REG[3] = NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[6], fra.me.REG[5], fra.me.REG[7], NIT_NULL, fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:9014 */
+  /* parser/parser.nit:9350 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9015 */
+  /* parser/parser.nit:9351 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9015);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9351);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -25664,14 +26496,14 @@ void parser___ReduceAction281___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction282___action(val_t p0, val_t p1){
+void parser___ReduceAction290___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9020;
-  fra.me.meth = LOCATE_parser___ReduceAction282___action;
+  fra.me.line = 9356;
+  fra.me.meth = LOCATE_parser___ReduceAction290___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
@@ -25685,58 +26517,58 @@ void parser___ReduceAction282___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9022 */
+  /* parser/parser.nit:9358 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9023 */
+  /* parser/parser.nit:9359 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9024 */
+  /* parser/parser.nit:9360 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9025 */
+  /* parser/parser.nit:9361 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9026 */
+  /* parser/parser.nit:9362 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9027 */
+  /* parser/parser.nit:9363 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9028 */
+  /* parser/parser.nit:9364 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9029 */
+  /* parser/parser.nit:9365 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:9031 */
+  /* parser/parser.nit:9367 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9031);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9367);
   }
-  /* ./parser//parser.nit:9033 */
+  /* parser/parser.nit:9369 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AClosureId, ID_parser___parser_nodes___AClosureId)) /*cast nullable AClosureId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9033);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9369);
   }
-  /* ./parser//parser.nit:9035 */
+  /* parser/parser.nit:9371 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9035);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9371);
   }
-  /* ./parser//parser.nit:9036 */
+  /* parser/parser.nit:9372 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
   fra.me.REG[7] = fra.me.REG[4];
-  /* ./parser//parser.nit:9038 */
+  /* parser/parser.nit:9374 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9038);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9374);
   }
-  /* ./parser//parser.nit:9039 */
+  /* parser/parser.nit:9375 */
   fra.me.REG[3] = NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[6], fra.me.REG[5], fra.me.REG[7], NIT_NULL, fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:9047 */
+  /* parser/parser.nit:9383 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9048 */
+  /* parser/parser.nit:9384 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9048);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9384);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -25744,14 +26576,14 @@ void parser___ReduceAction282___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction283___action(val_t p0, val_t p1){
+void parser___ReduceAction291___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9053;
-  fra.me.meth = LOCATE_parser___ReduceAction283___action;
+  fra.me.line = 9389;
+  fra.me.meth = LOCATE_parser___ReduceAction291___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
@@ -25765,53 +26597,53 @@ void parser___ReduceAction283___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9055 */
+  /* parser/parser.nit:9391 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9056 */
+  /* parser/parser.nit:9392 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9057 */
+  /* parser/parser.nit:9393 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9058 */
+  /* parser/parser.nit:9394 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9059 */
+  /* parser/parser.nit:9395 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9060 */
+  /* parser/parser.nit:9396 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9061 */
+  /* parser/parser.nit:9397 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:9063 */
+  /* parser/parser.nit:9399 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9063);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9399);
   }
-  /* ./parser//parser.nit:9065 */
+  /* parser/parser.nit:9401 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AClosureId, ID_parser___parser_nodes___AClosureId)) /*cast nullable AClosureId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9065);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9401);
   }
-  /* ./parser//parser.nit:9067 */
+  /* parser/parser.nit:9403 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast nullable TKwdo*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9067);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9403);
   }
-  /* ./parser//parser.nit:9069 */
+  /* parser/parser.nit:9405 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9069);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9405);
   }
-  /* ./parser//parser.nit:9070 */
+  /* parser/parser.nit:9406 */
   fra.me.REG[3] = NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[6], fra.me.REG[5], fra.me.REG[7], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:9078 */
+  /* parser/parser.nit:9414 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9079 */
+  /* parser/parser.nit:9415 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9079);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9415);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -25819,14 +26651,14 @@ void parser___ReduceAction283___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction284___action(val_t p0, val_t p1){
+void parser___ReduceAction292___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9084;
-  fra.me.meth = LOCATE_parser___ReduceAction284___action;
+  fra.me.line = 9420;
+  fra.me.meth = LOCATE_parser___ReduceAction292___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
   fra.me.nitni_local_ref_head = NULL;
@@ -25841,68 +26673,68 @@ void parser___ReduceAction284___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9086 */
+  /* parser/parser.nit:9422 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9087 */
+  /* parser/parser.nit:9423 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9088 */
+  /* parser/parser.nit:9424 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9089 */
+  /* parser/parser.nit:9425 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9090 */
+  /* parser/parser.nit:9426 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9091 */
+  /* parser/parser.nit:9427 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9092 */
+  /* parser/parser.nit:9428 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9093 */
+  /* parser/parser.nit:9429 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9094 */
+  /* parser/parser.nit:9430 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9095 */
+  /* parser/parser.nit:9431 */
   fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:9097 */
+  /* parser/parser.nit:9433 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9097);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9433);
   }
-  /* ./parser//parser.nit:9099 */
+  /* parser/parser.nit:9435 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AClosureId, ID_parser___parser_nodes___AClosureId)) /*cast nullable AClosureId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9099);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9435);
   }
-  /* ./parser//parser.nit:9101 */
+  /* parser/parser.nit:9437 */
   REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9101);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9437);
   }
-  /* ./parser//parser.nit:9102 */
+  /* parser/parser.nit:9438 */
   fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[5]);
   fra.me.REG[8] = fra.me.REG[5];
-  /* ./parser//parser.nit:9104 */
+  /* parser/parser.nit:9440 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast nullable TKwdo*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9104);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9440);
   }
-  /* ./parser//parser.nit:9106 */
+  /* parser/parser.nit:9442 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9106);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9442);
   }
-  /* ./parser//parser.nit:9107 */
+  /* parser/parser.nit:9443 */
   fra.me.REG[3] = NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[7], fra.me.REG[6], fra.me.REG[8], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:9115 */
+  /* parser/parser.nit:9451 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9116 */
+  /* parser/parser.nit:9452 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9116);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9452);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -25910,14 +26742,14 @@ void parser___ReduceAction284___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction285___action(val_t p0, val_t p1){
+void parser___ReduceAction293___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9121;
-  fra.me.meth = LOCATE_parser___ReduceAction285___action;
+  fra.me.line = 9457;
+  fra.me.meth = LOCATE_parser___ReduceAction293___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
   fra.me.nitni_local_ref_head = NULL;
@@ -25932,64 +26764,64 @@ void parser___ReduceAction285___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9123 */
+  /* parser/parser.nit:9459 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9124 */
+  /* parser/parser.nit:9460 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9125 */
+  /* parser/parser.nit:9461 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9126 */
+  /* parser/parser.nit:9462 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9127 */
+  /* parser/parser.nit:9463 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9128 */
+  /* parser/parser.nit:9464 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9129 */
+  /* parser/parser.nit:9465 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9130 */
+  /* parser/parser.nit:9466 */
   fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:9132 */
+  /* parser/parser.nit:9468 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9132);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9468);
   }
-  /* ./parser//parser.nit:9134 */
+  /* parser/parser.nit:9470 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AClosureId, ID_parser___parser_nodes___AClosureId)) /*cast nullable AClosureId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9134);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9470);
   }
-  /* ./parser//parser.nit:9136 */
+  /* parser/parser.nit:9472 */
   REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9136);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9472);
   }
-  /* ./parser//parser.nit:9137 */
+  /* parser/parser.nit:9473 */
   fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[5]);
   fra.me.REG[8] = fra.me.REG[5];
-  /* ./parser//parser.nit:9139 */
+  /* parser/parser.nit:9475 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast nullable TKwdo*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9139);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9475);
   }
-  /* ./parser//parser.nit:9141 */
+  /* parser/parser.nit:9477 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9141);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9477);
   }
-  /* ./parser//parser.nit:9142 */
+  /* parser/parser.nit:9478 */
   fra.me.REG[3] = NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[7], fra.me.REG[6], fra.me.REG[8], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:9150 */
+  /* parser/parser.nit:9486 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9151 */
+  /* parser/parser.nit:9487 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9151);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9487);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -25997,14 +26829,14 @@ void parser___ReduceAction285___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction286___action(val_t p0, val_t p1){
+void parser___ReduceAction294___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9156;
-  fra.me.meth = LOCATE_parser___ReduceAction286___action;
+  fra.me.line = 9492;
+  fra.me.meth = LOCATE_parser___ReduceAction294___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -26017,45 +26849,45 @@ void parser___ReduceAction286___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9158 */
+  /* parser/parser.nit:9494 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9159 */
+  /* parser/parser.nit:9495 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9160 */
+  /* parser/parser.nit:9496 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9161 */
+  /* parser/parser.nit:9497 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9162 */
+  /* parser/parser.nit:9498 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9163 */
+  /* parser/parser.nit:9499 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:9165 */
+  /* parser/parser.nit:9501 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9165);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9501);
   }
-  /* ./parser//parser.nit:9167 */
+  /* parser/parser.nit:9503 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AClosureId, ID_parser___parser_nodes___AClosureId)) /*cast nullable AClosureId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9167);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9503);
   }
-  /* ./parser//parser.nit:9169 */
+  /* parser/parser.nit:9505 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast nullable TKwdo*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9169);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9505);
   }
-  /* ./parser//parser.nit:9170 */
+  /* parser/parser.nit:9506 */
   fra.me.REG[3] = NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6], fra.me.REG[3], NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:9178 */
+  /* parser/parser.nit:9514 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9179 */
+  /* parser/parser.nit:9515 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9179);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9515);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -26063,14 +26895,14 @@ void parser___ReduceAction286___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction287___action(val_t p0, val_t p1){
+void parser___ReduceAction295___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9184;
-  fra.me.meth = LOCATE_parser___ReduceAction287___action;
+  fra.me.line = 9520;
+  fra.me.meth = LOCATE_parser___ReduceAction295___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
@@ -26084,60 +26916,60 @@ void parser___ReduceAction287___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9186 */
+  /* parser/parser.nit:9522 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9187 */
+  /* parser/parser.nit:9523 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9188 */
+  /* parser/parser.nit:9524 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9189 */
+  /* parser/parser.nit:9525 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9190 */
+  /* parser/parser.nit:9526 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9191 */
+  /* parser/parser.nit:9527 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9192 */
+  /* parser/parser.nit:9528 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9193 */
+  /* parser/parser.nit:9529 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9194 */
+  /* parser/parser.nit:9530 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:9196 */
+  /* parser/parser.nit:9532 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9196);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9532);
   }
-  /* ./parser//parser.nit:9198 */
+  /* parser/parser.nit:9534 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AClosureId, ID_parser___parser_nodes___AClosureId)) /*cast nullable AClosureId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9198);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9534);
   }
-  /* ./parser//parser.nit:9200 */
+  /* parser/parser.nit:9536 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9200);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9536);
   }
-  /* ./parser//parser.nit:9201 */
+  /* parser/parser.nit:9537 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
   fra.me.REG[7] = fra.me.REG[4];
-  /* ./parser//parser.nit:9203 */
+  /* parser/parser.nit:9539 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast nullable TKwdo*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9203);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9539);
   }
-  /* ./parser//parser.nit:9204 */
+  /* parser/parser.nit:9540 */
   fra.me.REG[3] = NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[6], fra.me.REG[5], fra.me.REG[7], fra.me.REG[3], NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:9212 */
+  /* parser/parser.nit:9548 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9213 */
+  /* parser/parser.nit:9549 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9213);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9549);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -26145,14 +26977,14 @@ void parser___ReduceAction287___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction288___action(val_t p0, val_t p1){
+void parser___ReduceAction296___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9218;
-  fra.me.meth = LOCATE_parser___ReduceAction288___action;
+  fra.me.line = 9554;
+  fra.me.meth = LOCATE_parser___ReduceAction296___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
@@ -26166,56 +26998,56 @@ void parser___ReduceAction288___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9220 */
+  /* parser/parser.nit:9556 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9221 */
+  /* parser/parser.nit:9557 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9222 */
+  /* parser/parser.nit:9558 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9223 */
+  /* parser/parser.nit:9559 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9224 */
+  /* parser/parser.nit:9560 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9225 */
+  /* parser/parser.nit:9561 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9226 */
+  /* parser/parser.nit:9562 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:9228 */
+  /* parser/parser.nit:9564 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast nullable TBang*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9228);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9564);
   }
-  /* ./parser//parser.nit:9230 */
+  /* parser/parser.nit:9566 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AClosureId, ID_parser___parser_nodes___AClosureId)) /*cast nullable AClosureId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9230);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9566);
   }
-  /* ./parser//parser.nit:9232 */
+  /* parser/parser.nit:9568 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9232);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9568);
   }
-  /* ./parser//parser.nit:9233 */
+  /* parser/parser.nit:9569 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[4]);
   fra.me.REG[7] = fra.me.REG[4];
-  /* ./parser//parser.nit:9235 */
+  /* parser/parser.nit:9571 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast nullable TKwdo*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9235);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9571);
   }
-  /* ./parser//parser.nit:9236 */
+  /* parser/parser.nit:9572 */
   fra.me.REG[3] = NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(fra.me.REG[6], fra.me.REG[5], fra.me.REG[7], fra.me.REG[3], NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:9244 */
+  /* parser/parser.nit:9580 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9245 */
+  /* parser/parser.nit:9581 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9245);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9581);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -26223,14 +27055,14 @@ void parser___ReduceAction288___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction289___action(val_t p0, val_t p1){
+void parser___ReduceAction297___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9250;
-  fra.me.meth = LOCATE_parser___ReduceAction289___action;
+  fra.me.line = 9586;
+  fra.me.meth = LOCATE_parser___ReduceAction297___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -26240,25 +27072,25 @@ void parser___ReduceAction289___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9252 */
+  /* parser/parser.nit:9588 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9253 */
+  /* parser/parser.nit:9589 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9255 */
+  /* parser/parser.nit:9591 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9255);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9591);
   }
-  /* ./parser//parser.nit:9256 */
+  /* parser/parser.nit:9592 */
   fra.me.REG[3] = NEW_ASimpleClosureId_parser___parser_prod___ASimpleClosureId___init_asimpleclosureid(fra.me.REG[3]);
-  /* ./parser//parser.nit:9259 */
+  /* parser/parser.nit:9595 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9260 */
+  /* parser/parser.nit:9596 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9260);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9596);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -26266,14 +27098,14 @@ void parser___ReduceAction289___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction290___action(val_t p0, val_t p1){
+void parser___ReduceAction298___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9265;
-  fra.me.meth = LOCATE_parser___ReduceAction290___action;
+  fra.me.line = 9601;
+  fra.me.meth = LOCATE_parser___ReduceAction298___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -26283,25 +27115,25 @@ void parser___ReduceAction290___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9267 */
+  /* parser/parser.nit:9603 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9268 */
+  /* parser/parser.nit:9604 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9270 */
+  /* parser/parser.nit:9606 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwbreak, ID_parser___parser_nodes___TKwbreak)) /*cast nullable TKwbreak*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9270);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9606);
   }
-  /* ./parser//parser.nit:9271 */
+  /* parser/parser.nit:9607 */
   fra.me.REG[3] = NEW_ABreakClosureId_parser___parser_prod___ABreakClosureId___init_abreakclosureid(fra.me.REG[3]);
-  /* ./parser//parser.nit:9274 */
+  /* parser/parser.nit:9610 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9275 */
+  /* parser/parser.nit:9611 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9275);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9611);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -26309,14 +27141,14 @@ void parser___ReduceAction290___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction291___action(val_t p0, val_t p1){
+void parser___ReduceAction299___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9280;
-  fra.me.meth = LOCATE_parser___ReduceAction291___action;
+  fra.me.line = 9616;
+  fra.me.meth = LOCATE_parser___ReduceAction299___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -26326,25 +27158,25 @@ void parser___ReduceAction291___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9282 */
+  /* parser/parser.nit:9618 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9283 */
+  /* parser/parser.nit:9619 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9285 */
+  /* parser/parser.nit:9621 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9285);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9621);
   }
-  /* ./parser//parser.nit:9286 */
+  /* parser/parser.nit:9622 */
   fra.me.REG[3] = NEW_AContinueExpr_parser___parser_prod___AContinueExpr___init_acontinueexpr(NIT_NULL, NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:9291 */
+  /* parser/parser.nit:9627 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9292 */
+  /* parser/parser.nit:9628 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9292);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9628);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -26352,14 +27184,14 @@ void parser___ReduceAction291___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction292___action(val_t p0, val_t p1){
+void parser___ReduceAction300___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9297;
-  fra.me.meth = LOCATE_parser___ReduceAction292___action;
+  fra.me.line = 9633;
+  fra.me.meth = LOCATE_parser___ReduceAction300___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -26370,33 +27202,33 @@ void parser___ReduceAction292___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9299 */
+  /* parser/parser.nit:9635 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9300 */
+  /* parser/parser.nit:9636 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9301 */
+  /* parser/parser.nit:9637 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9303 */
+  /* parser/parser.nit:9639 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9303);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9639);
   }
-  /* ./parser//parser.nit:9305 */
+  /* parser/parser.nit:9641 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9305);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9641);
   }
-  /* ./parser//parser.nit:9306 */
+  /* parser/parser.nit:9642 */
   fra.me.REG[3] = NEW_AVardeclExpr_parser___parser_prod___AVardeclExpr___init_avardeclexpr(fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:9313 */
+  /* parser/parser.nit:9649 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9314 */
+  /* parser/parser.nit:9650 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9314);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9650);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -26404,14 +27236,14 @@ void parser___ReduceAction292___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction293___action(val_t p0, val_t p1){
+void parser___ReduceAction301___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9319;
-  fra.me.meth = LOCATE_parser___ReduceAction293___action;
+  fra.me.line = 9655;
+  fra.me.meth = LOCATE_parser___ReduceAction301___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -26423,41 +27255,41 @@ void parser___ReduceAction293___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9321 */
+  /* parser/parser.nit:9657 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9322 */
+  /* parser/parser.nit:9658 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9323 */
+  /* parser/parser.nit:9659 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9324 */
+  /* parser/parser.nit:9660 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9326 */
+  /* parser/parser.nit:9662 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9326);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9662);
   }
-  /* ./parser//parser.nit:9328 */
+  /* parser/parser.nit:9664 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9328);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9664);
   }
-  /* ./parser//parser.nit:9330 */
+  /* parser/parser.nit:9666 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9330);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9666);
   }
-  /* ./parser//parser.nit:9331 */
+  /* parser/parser.nit:9667 */
   fra.me.REG[3] = NEW_AVardeclExpr_parser___parser_prod___AVardeclExpr___init_avardeclexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL, NIT_NULL);
-  /* ./parser//parser.nit:9338 */
+  /* parser/parser.nit:9674 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9339 */
+  /* parser/parser.nit:9675 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9339);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9675);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -26465,14 +27297,14 @@ void parser___ReduceAction293___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction294___action(val_t p0, val_t p1){
+void parser___ReduceAction302___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9344;
-  fra.me.meth = LOCATE_parser___ReduceAction294___action;
+  fra.me.line = 9680;
+  fra.me.meth = LOCATE_parser___ReduceAction302___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -26485,51 +27317,51 @@ void parser___ReduceAction294___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9346 */
+  /* parser/parser.nit:9682 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9347 */
+  /* parser/parser.nit:9683 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9348 */
+  /* parser/parser.nit:9684 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9349 */
+  /* parser/parser.nit:9685 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9350 */
+  /* parser/parser.nit:9686 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9351 */
+  /* parser/parser.nit:9687 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9353 */
+  /* parser/parser.nit:9689 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9353);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9689);
   }
-  /* ./parser//parser.nit:9355 */
+  /* parser/parser.nit:9691 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9355);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9691);
   }
-  /* ./parser//parser.nit:9357 */
+  /* parser/parser.nit:9693 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast nullable TAssign*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9357);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9693);
   }
-  /* ./parser//parser.nit:9359 */
+  /* parser/parser.nit:9695 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9359);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9695);
   }
-  /* ./parser//parser.nit:9360 */
+  /* parser/parser.nit:9696 */
   fra.me.REG[3] = NEW_AVardeclExpr_parser___parser_prod___AVardeclExpr___init_avardeclexpr(fra.me.REG[6], fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:9367 */
+  /* parser/parser.nit:9703 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9368 */
+  /* parser/parser.nit:9704 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9368);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9704);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -26537,14 +27369,14 @@ void parser___ReduceAction294___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction295___action(val_t p0, val_t p1){
+void parser___ReduceAction303___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9373;
-  fra.me.meth = LOCATE_parser___ReduceAction295___action;
+  fra.me.line = 9709;
+  fra.me.meth = LOCATE_parser___ReduceAction303___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
@@ -26558,59 +27390,59 @@ void parser___ReduceAction295___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9375 */
+  /* parser/parser.nit:9711 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9376 */
+  /* parser/parser.nit:9712 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9377 */
+  /* parser/parser.nit:9713 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9378 */
+  /* parser/parser.nit:9714 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9379 */
+  /* parser/parser.nit:9715 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9380 */
+  /* parser/parser.nit:9716 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9381 */
+  /* parser/parser.nit:9717 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9383 */
+  /* parser/parser.nit:9719 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast nullable TKwvar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9383);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9719);
   }
-  /* ./parser//parser.nit:9385 */
+  /* parser/parser.nit:9721 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9385);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9721);
   }
-  /* ./parser//parser.nit:9387 */
+  /* parser/parser.nit:9723 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9387);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9723);
   }
-  /* ./parser//parser.nit:9389 */
+  /* parser/parser.nit:9725 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast nullable TAssign*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9389);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9725);
   }
-  /* ./parser//parser.nit:9391 */
+  /* parser/parser.nit:9727 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9391);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9727);
   }
-  /* ./parser//parser.nit:9392 */
+  /* parser/parser.nit:9728 */
   fra.me.REG[3] = NEW_AVardeclExpr_parser___parser_prod___AVardeclExpr___init_avardeclexpr(fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:9399 */
+  /* parser/parser.nit:9735 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9400 */
+  /* parser/parser.nit:9736 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9400);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9736);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -26618,14 +27450,14 @@ void parser___ReduceAction295___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction296___action(val_t p0, val_t p1){
+void parser___ReduceAction304___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9405;
-  fra.me.meth = LOCATE_parser___ReduceAction296___action;
+  fra.me.line = 9741;
+  fra.me.meth = LOCATE_parser___ReduceAction304___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -26638,53 +27470,53 @@ void parser___ReduceAction296___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9407 */
+  /* parser/parser.nit:9743 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9408 */
+  /* parser/parser.nit:9744 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9409 */
+  /* parser/parser.nit:9745 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9410 */
+  /* parser/parser.nit:9746 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9411 */
+  /* parser/parser.nit:9747 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9412 */
+  /* parser/parser.nit:9748 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9413 */
+  /* parser/parser.nit:9749 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9415 */
+  /* parser/parser.nit:9751 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9415);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9751);
   }
-  /* ./parser//parser.nit:9417 */
+  /* parser/parser.nit:9753 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9417);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9753);
   }
-  /* ./parser//parser.nit:9419 */
+  /* parser/parser.nit:9755 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast nullable TAssign*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9419);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9755);
   }
-  /* ./parser//parser.nit:9421 */
+  /* parser/parser.nit:9757 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9421);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9757);
   }
-  /* ./parser//parser.nit:9422 */
+  /* parser/parser.nit:9758 */
   fra.me.REG[3] = NEW_AAttrAssignExpr_parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:9428 */
+  /* parser/parser.nit:9764 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9429 */
+  /* parser/parser.nit:9765 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9429);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9765);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -26692,14 +27524,14 @@ void parser___ReduceAction296___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction297___action(val_t p0, val_t p1){
+void parser___ReduceAction305___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9434;
-  fra.me.meth = LOCATE_parser___ReduceAction297___action;
+  fra.me.line = 9770;
+  fra.me.meth = LOCATE_parser___ReduceAction305___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -26712,43 +27544,43 @@ void parser___ReduceAction297___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9436 */
+  /* parser/parser.nit:9772 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9437 */
+  /* parser/parser.nit:9773 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9438 */
+  /* parser/parser.nit:9774 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9439 */
+  /* parser/parser.nit:9775 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9440 */
+  /* parser/parser.nit:9776 */
   fra.me.REG[6] = NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
-  /* ./parser//parser.nit:9443 */
+  /* parser/parser.nit:9778 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9443);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9778);
   }
-  /* ./parser//parser.nit:9445 */
+  /* parser/parser.nit:9780 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast nullable TAssign*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9445);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9780);
   }
-  /* ./parser//parser.nit:9447 */
+  /* parser/parser.nit:9782 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9447);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9782);
   }
-  /* ./parser//parser.nit:9448 */
+  /* parser/parser.nit:9783 */
   fra.me.REG[3] = NEW_AAttrAssignExpr_parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:9454 */
+  /* parser/parser.nit:9789 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9455 */
+  /* parser/parser.nit:9790 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9455);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9790);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -26756,16 +27588,16 @@ void parser___ReduceAction297___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction298___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
+void parser___ReduceAction306___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9460;
-  fra.me.meth = LOCATE_parser___ReduceAction298___action;
+  fra.me.line = 9795;
+  fra.me.meth = LOCATE_parser___ReduceAction306___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 9;
+  fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -26775,69 +27607,63 @@ void parser___ReduceAction298___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[7] = NIT_NULL;
-  fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9462 */
+  /* parser/parser.nit:9797 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9463 */
+  /* parser/parser.nit:9798 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9464 */
+  /* parser/parser.nit:9799 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9465 */
+  /* parser/parser.nit:9800 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9466 */
+  /* parser/parser.nit:9801 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9467 */
+  /* parser/parser.nit:9802 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9468 */
+  /* parser/parser.nit:9803 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9469 */
+  /* parser/parser.nit:9804 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9470 */
-  fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:9472 */
+  /* parser/parser.nit:9806 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9472);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9806);
   }
-  /* ./parser//parser.nit:9474 */
+  /* parser/parser.nit:9808 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9474);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9808);
   }
-  /* ./parser//parser.nit:9476 */
-  REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:9810 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9476);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9810);
   }
-  /* ./parser//parser.nit:9477 */
-  fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[5]);
-  fra.me.REG[8] = fra.me.REG[5];
-  /* ./parser//parser.nit:9479 */
+  /* parser/parser.nit:9812 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast nullable TAssign*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9479);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9812);
   }
-  /* ./parser//parser.nit:9481 */
+  /* parser/parser.nit:9814 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9481);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9814);
   }
-  /* ./parser//parser.nit:9482 */
-  fra.me.REG[3] = NEW_ACallAssignExpr_parser___parser_prod___ACallAssignExpr___init_acallassignexpr(fra.me.REG[7], fra.me.REG[6], fra.me.REG[8], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:9489 */
+  /* parser/parser.nit:9815 */
+  fra.me.REG[3] = NEW_ACallAssignExpr_parser___parser_prod___ACallAssignExpr___init_acallassignexpr(fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:9822 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9490 */
+  /* parser/parser.nit:9823 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9490);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9823);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -26845,16 +27671,16 @@ void parser___ReduceAction298___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction299___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
+void parser___ReduceAction307___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9495;
-  fra.me.meth = LOCATE_parser___ReduceAction299___action;
+  fra.me.line = 9828;
+  fra.me.meth = LOCATE_parser___ReduceAction307___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 9;
+  fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -26864,59 +27690,53 @@ void parser___ReduceAction299___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[7] = NIT_NULL;
-  fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9497 */
+  /* parser/parser.nit:9830 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9498 */
+  /* parser/parser.nit:9831 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9499 */
+  /* parser/parser.nit:9832 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9500 */
+  /* parser/parser.nit:9833 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9501 */
+  /* parser/parser.nit:9834 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9502 */
-  fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:9503 */
-  fra.me.REG[8] = NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
-  /* ./parser//parser.nit:9506 */
+  /* parser/parser.nit:9835 */
+  fra.me.REG[7] = NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
+  /* parser/parser.nit:9837 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9506);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9837);
   }
-  /* ./parser//parser.nit:9508 */
-  REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:9839 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9508);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9839);
   }
-  /* ./parser//parser.nit:9509 */
-  fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
-  fra.me.REG[7] = fra.me.REG[5];
-  /* ./parser//parser.nit:9511 */
+  /* parser/parser.nit:9841 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast nullable TAssign*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9511);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9841);
   }
-  /* ./parser//parser.nit:9513 */
+  /* parser/parser.nit:9843 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9513);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9843);
   }
-  /* ./parser//parser.nit:9514 */
-  fra.me.REG[3] = NEW_ACallAssignExpr_parser___parser_prod___ACallAssignExpr___init_acallassignexpr(fra.me.REG[8], fra.me.REG[6], fra.me.REG[7], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:9521 */
+  /* parser/parser.nit:9844 */
+  fra.me.REG[3] = NEW_ACallAssignExpr_parser___parser_prod___ACallAssignExpr___init_acallassignexpr(fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:9851 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9522 */
+  /* parser/parser.nit:9852 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9522);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9852);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -26924,16 +27744,16 @@ void parser___ReduceAction299___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction300___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
+void parser___ReduceAction308___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9527;
-  fra.me.meth = LOCATE_parser___ReduceAction300___action;
+  fra.me.line = 9857;
+  fra.me.meth = LOCATE_parser___ReduceAction308___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 8;
+  fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -26942,57 +27762,51 @@ void parser___ReduceAction300___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
-  fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9529 */
+  /* parser/parser.nit:9859 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9530 */
+  /* parser/parser.nit:9860 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9531 */
+  /* parser/parser.nit:9861 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9532 */
+  /* parser/parser.nit:9862 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9533 */
+  /* parser/parser.nit:9863 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9534 */
-  fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:9536 */
+  /* parser/parser.nit:9865 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9536);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9865);
   }
-  /* ./parser//parser.nit:9538 */
-  REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:9867 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9538);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9867);
   }
-  /* ./parser//parser.nit:9539 */
-  fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
-  fra.me.REG[7] = fra.me.REG[5];
-  /* ./parser//parser.nit:9541 */
+  /* parser/parser.nit:9869 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast nullable TAssign*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9541);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9869);
   }
-  /* ./parser//parser.nit:9543 */
+  /* parser/parser.nit:9871 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9543);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9871);
   }
-  /* ./parser//parser.nit:9544 */
-  fra.me.REG[3] = NEW_ABraAssignExpr_parser___parser_prod___ABraAssignExpr___init_abraassignexpr(fra.me.REG[6], fra.me.REG[7], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:9550 */
+  /* parser/parser.nit:9872 */
+  fra.me.REG[3] = NEW_ABraAssignExpr_parser___parser_prod___ABraAssignExpr___init_abraassignexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:9878 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9551 */
+  /* parser/parser.nit:9879 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9551);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9879);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -27000,14 +27814,14 @@ void parser___ReduceAction300___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction301___action(val_t p0, val_t p1){
+void parser___ReduceAction309___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9556;
-  fra.me.meth = LOCATE_parser___ReduceAction301___action;
+  fra.me.line = 9884;
+  fra.me.meth = LOCATE_parser___ReduceAction309___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -27020,53 +27834,53 @@ void parser___ReduceAction301___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9558 */
+  /* parser/parser.nit:9886 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9559 */
+  /* parser/parser.nit:9887 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9560 */
+  /* parser/parser.nit:9888 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9561 */
+  /* parser/parser.nit:9889 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9562 */
+  /* parser/parser.nit:9890 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9563 */
+  /* parser/parser.nit:9891 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9564 */
+  /* parser/parser.nit:9892 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9566 */
+  /* parser/parser.nit:9894 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9566);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9894);
   }
-  /* ./parser//parser.nit:9568 */
+  /* parser/parser.nit:9896 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9568);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9896);
   }
-  /* ./parser//parser.nit:9570 */
+  /* parser/parser.nit:9898 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AAssignOp, ID_parser___parser_nodes___AAssignOp)) /*cast nullable AAssignOp*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9570);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9898);
   }
-  /* ./parser//parser.nit:9572 */
+  /* parser/parser.nit:9900 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9572);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9900);
   }
-  /* ./parser//parser.nit:9573 */
+  /* parser/parser.nit:9901 */
   fra.me.REG[3] = NEW_AAttrReassignExpr_parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:9579 */
+  /* parser/parser.nit:9907 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9580 */
+  /* parser/parser.nit:9908 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9580);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9908);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -27074,14 +27888,14 @@ void parser___ReduceAction301___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction302___action(val_t p0, val_t p1){
+void parser___ReduceAction310___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9585;
-  fra.me.meth = LOCATE_parser___ReduceAction302___action;
+  fra.me.line = 9913;
+  fra.me.meth = LOCATE_parser___ReduceAction310___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -27094,43 +27908,43 @@ void parser___ReduceAction302___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9587 */
+  /* parser/parser.nit:9915 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9588 */
+  /* parser/parser.nit:9916 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9589 */
+  /* parser/parser.nit:9917 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9590 */
+  /* parser/parser.nit:9918 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9591 */
+  /* parser/parser.nit:9919 */
   fra.me.REG[6] = NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
-  /* ./parser//parser.nit:9594 */
+  /* parser/parser.nit:9921 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9594);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9921);
   }
-  /* ./parser//parser.nit:9596 */
+  /* parser/parser.nit:9923 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AAssignOp, ID_parser___parser_nodes___AAssignOp)) /*cast nullable AAssignOp*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9596);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9923);
   }
-  /* ./parser//parser.nit:9598 */
+  /* parser/parser.nit:9925 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9598);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9925);
   }
-  /* ./parser//parser.nit:9599 */
+  /* parser/parser.nit:9926 */
   fra.me.REG[3] = NEW_AAttrReassignExpr_parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:9605 */
+  /* parser/parser.nit:9932 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9606 */
+  /* parser/parser.nit:9933 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9606);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9933);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -27138,16 +27952,16 @@ void parser___ReduceAction302___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction303___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
+void parser___ReduceAction311___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9611;
-  fra.me.meth = LOCATE_parser___ReduceAction303___action;
+  fra.me.line = 9938;
+  fra.me.meth = LOCATE_parser___ReduceAction311___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 9;
+  fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -27157,69 +27971,63 @@ void parser___ReduceAction303___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[7] = NIT_NULL;
-  fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9613 */
+  /* parser/parser.nit:9940 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9614 */
+  /* parser/parser.nit:9941 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9615 */
+  /* parser/parser.nit:9942 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9616 */
+  /* parser/parser.nit:9943 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9617 */
+  /* parser/parser.nit:9944 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9618 */
+  /* parser/parser.nit:9945 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9619 */
+  /* parser/parser.nit:9946 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9620 */
+  /* parser/parser.nit:9947 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9621 */
-  fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:9623 */
+  /* parser/parser.nit:9949 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9623);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9949);
   }
-  /* ./parser//parser.nit:9625 */
+  /* parser/parser.nit:9951 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9625);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9951);
   }
-  /* ./parser//parser.nit:9627 */
-  REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:9953 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9627);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9953);
   }
-  /* ./parser//parser.nit:9628 */
-  fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[5]);
-  fra.me.REG[8] = fra.me.REG[5];
-  /* ./parser//parser.nit:9630 */
+  /* parser/parser.nit:9955 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AAssignOp, ID_parser___parser_nodes___AAssignOp)) /*cast nullable AAssignOp*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9630);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9955);
   }
-  /* ./parser//parser.nit:9632 */
+  /* parser/parser.nit:9957 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9632);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9957);
   }
-  /* ./parser//parser.nit:9633 */
-  fra.me.REG[3] = NEW_ACallReassignExpr_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr(fra.me.REG[7], fra.me.REG[6], fra.me.REG[8], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:9640 */
+  /* parser/parser.nit:9958 */
+  fra.me.REG[3] = NEW_ACallReassignExpr_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr(fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:9965 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9641 */
+  /* parser/parser.nit:9966 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9641);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9966);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -27227,16 +28035,16 @@ void parser___ReduceAction303___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction304___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
+void parser___ReduceAction312___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9646;
-  fra.me.meth = LOCATE_parser___ReduceAction304___action;
+  fra.me.line = 9971;
+  fra.me.meth = LOCATE_parser___ReduceAction312___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 9;
+  fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -27246,59 +28054,53 @@ void parser___ReduceAction304___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[7] = NIT_NULL;
-  fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9648 */
+  /* parser/parser.nit:9973 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9649 */
+  /* parser/parser.nit:9974 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9650 */
+  /* parser/parser.nit:9975 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9651 */
+  /* parser/parser.nit:9976 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9652 */
+  /* parser/parser.nit:9977 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9653 */
-  fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:9654 */
-  fra.me.REG[8] = NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
-  /* ./parser//parser.nit:9657 */
+  /* parser/parser.nit:9978 */
+  fra.me.REG[7] = NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
+  /* parser/parser.nit:9980 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9657);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9980);
   }
-  /* ./parser//parser.nit:9659 */
-  REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:9982 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9659);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9982);
   }
-  /* ./parser//parser.nit:9660 */
-  fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
-  fra.me.REG[7] = fra.me.REG[5];
-  /* ./parser//parser.nit:9662 */
+  /* parser/parser.nit:9984 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AAssignOp, ID_parser___parser_nodes___AAssignOp)) /*cast nullable AAssignOp*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9662);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9984);
   }
-  /* ./parser//parser.nit:9664 */
+  /* parser/parser.nit:9986 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9664);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 9986);
   }
-  /* ./parser//parser.nit:9665 */
-  fra.me.REG[3] = NEW_ACallReassignExpr_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr(fra.me.REG[8], fra.me.REG[6], fra.me.REG[7], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:9672 */
+  /* parser/parser.nit:9987 */
+  fra.me.REG[3] = NEW_ACallReassignExpr_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr(fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:9994 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9673 */
+  /* parser/parser.nit:9995 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9673);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9995);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -27306,16 +28108,16 @@ void parser___ReduceAction304___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction305___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
+void parser___ReduceAction313___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9678;
-  fra.me.meth = LOCATE_parser___ReduceAction305___action;
+  fra.me.line = 10000;
+  fra.me.meth = LOCATE_parser___ReduceAction313___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 8;
+  fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -27324,57 +28126,51 @@ void parser___ReduceAction305___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
-  fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9680 */
+  /* parser/parser.nit:10002 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9681 */
+  /* parser/parser.nit:10003 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9682 */
+  /* parser/parser.nit:10004 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9683 */
+  /* parser/parser.nit:10005 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9684 */
+  /* parser/parser.nit:10006 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9685 */
-  fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:9687 */
+  /* parser/parser.nit:10008 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9687);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10008);
   }
-  /* ./parser//parser.nit:9689 */
-  REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:10010 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9689);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10010);
   }
-  /* ./parser//parser.nit:9690 */
-  fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[5]);
-  fra.me.REG[7] = fra.me.REG[5];
-  /* ./parser//parser.nit:9692 */
+  /* parser/parser.nit:10012 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AAssignOp, ID_parser___parser_nodes___AAssignOp)) /*cast nullable AAssignOp*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9692);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10012);
   }
-  /* ./parser//parser.nit:9694 */
+  /* parser/parser.nit:10014 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9694);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10014);
   }
-  /* ./parser//parser.nit:9695 */
-  fra.me.REG[3] = NEW_ABraReassignExpr_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr(fra.me.REG[6], fra.me.REG[7], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:9701 */
+  /* parser/parser.nit:10015 */
+  fra.me.REG[3] = NEW_ABraReassignExpr_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:10021 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9702 */
+  /* parser/parser.nit:10022 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9702);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10022);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -27382,14 +28178,14 @@ void parser___ReduceAction305___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction306___action(val_t p0, val_t p1){
+void parser___ReduceAction314___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9707;
-  fra.me.meth = LOCATE_parser___ReduceAction306___action;
+  fra.me.line = 10027;
+  fra.me.meth = LOCATE_parser___ReduceAction314___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -27399,25 +28195,25 @@ void parser___ReduceAction306___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9709 */
+  /* parser/parser.nit:10029 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9710 */
+  /* parser/parser.nit:10030 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9712 */
+  /* parser/parser.nit:10032 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TPluseq, ID_parser___parser_nodes___TPluseq)) /*cast nullable TPluseq*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9712);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10032);
   }
-  /* ./parser//parser.nit:9713 */
+  /* parser/parser.nit:10033 */
   fra.me.REG[3] = NEW_APlusAssignOp_parser___parser_prod___APlusAssignOp___init_aplusassignop(fra.me.REG[3]);
-  /* ./parser//parser.nit:9716 */
+  /* parser/parser.nit:10036 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9717 */
+  /* parser/parser.nit:10037 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9717);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10037);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -27425,14 +28221,14 @@ void parser___ReduceAction306___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction307___action(val_t p0, val_t p1){
+void parser___ReduceAction315___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9722;
-  fra.me.meth = LOCATE_parser___ReduceAction307___action;
+  fra.me.line = 10042;
+  fra.me.meth = LOCATE_parser___ReduceAction315___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -27442,25 +28238,25 @@ void parser___ReduceAction307___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9724 */
+  /* parser/parser.nit:10044 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9725 */
+  /* parser/parser.nit:10045 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9727 */
+  /* parser/parser.nit:10047 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TMinuseq, ID_parser___parser_nodes___TMinuseq)) /*cast nullable TMinuseq*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9727);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10047);
   }
-  /* ./parser//parser.nit:9728 */
+  /* parser/parser.nit:10048 */
   fra.me.REG[3] = NEW_AMinusAssignOp_parser___parser_prod___AMinusAssignOp___init_aminusassignop(fra.me.REG[3]);
-  /* ./parser//parser.nit:9731 */
+  /* parser/parser.nit:10051 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9732 */
+  /* parser/parser.nit:10052 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9732);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10052);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -27468,14 +28264,14 @@ void parser___ReduceAction307___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction308___action(val_t p0, val_t p1){
+void parser___ReduceAction316___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9737;
-  fra.me.meth = LOCATE_parser___ReduceAction308___action;
+  fra.me.line = 10057;
+  fra.me.meth = LOCATE_parser___ReduceAction316___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -27487,41 +28283,41 @@ void parser___ReduceAction308___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9739 */
+  /* parser/parser.nit:10059 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9740 */
+  /* parser/parser.nit:10060 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9741 */
+  /* parser/parser.nit:10061 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9742 */
+  /* parser/parser.nit:10062 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9744 */
+  /* parser/parser.nit:10064 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast nullable TKwdo*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9744);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10064);
   }
-  /* ./parser//parser.nit:9746 */
+  /* parser/parser.nit:10066 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9746);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10066);
   }
-  /* ./parser//parser.nit:9748 */
+  /* parser/parser.nit:10068 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast nullable ALabel*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9748);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10068);
   }
-  /* ./parser//parser.nit:9749 */
+  /* parser/parser.nit:10069 */
   fra.me.REG[3] = NEW_ADoExpr_parser___parser_prod___ADoExpr___init_adoexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:9754 */
+  /* parser/parser.nit:10074 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9755 */
+  /* parser/parser.nit:10075 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9755);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10075);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -27529,14 +28325,14 @@ void parser___ReduceAction308___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction309___action(val_t p0, val_t p1){
+void parser___ReduceAction317___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9760;
-  fra.me.meth = LOCATE_parser___ReduceAction309___action;
+  fra.me.line = 10080;
+  fra.me.meth = LOCATE_parser___ReduceAction317___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -27547,33 +28343,33 @@ void parser___ReduceAction309___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9762 */
+  /* parser/parser.nit:10082 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9763 */
+  /* parser/parser.nit:10083 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9764 */
+  /* parser/parser.nit:10084 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9766 */
+  /* parser/parser.nit:10086 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast nullable TKwdo*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9766);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10086);
   }
-  /* ./parser//parser.nit:9768 */
+  /* parser/parser.nit:10088 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9768);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10088);
   }
-  /* ./parser//parser.nit:9769 */
+  /* parser/parser.nit:10089 */
   fra.me.REG[3] = NEW_ADoExpr_parser___parser_prod___ADoExpr___init_adoexpr(fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:9774 */
+  /* parser/parser.nit:10094 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9775 */
+  /* parser/parser.nit:10095 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9775);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10095);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -27581,14 +28377,14 @@ void parser___ReduceAction309___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction310___action(val_t p0, val_t p1){
+void parser___ReduceAction318___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9780;
-  fra.me.meth = LOCATE_parser___ReduceAction310___action;
+  fra.me.line = 10100;
+  fra.me.meth = LOCATE_parser___ReduceAction318___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -27601,57 +28397,57 @@ void parser___ReduceAction310___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9782 */
+  /* parser/parser.nit:10102 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9783 */
+  /* parser/parser.nit:10103 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9784 */
+  /* parser/parser.nit:10104 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9785 */
+  /* parser/parser.nit:10105 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9786 */
+  /* parser/parser.nit:10106 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9787 */
+  /* parser/parser.nit:10107 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9788 */
+  /* parser/parser.nit:10108 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9789 */
+  /* parser/parser.nit:10109 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9790 */
+  /* parser/parser.nit:10110 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9792 */
+  /* parser/parser.nit:10112 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwif, ID_parser___parser_nodes___TKwif)) /*cast nullable TKwif*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9792);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10112);
   }
-  /* ./parser//parser.nit:9794 */
+  /* parser/parser.nit:10114 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9794);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10114);
   }
-  /* ./parser//parser.nit:9796 */
+  /* parser/parser.nit:10116 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9796);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10116);
   }
-  /* ./parser//parser.nit:9798 */
+  /* parser/parser.nit:10118 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9798);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10118);
   }
-  /* ./parser//parser.nit:9799 */
+  /* parser/parser.nit:10119 */
   fra.me.REG[3] = NEW_AIfExpr_parser___parser_prod___AIfExpr___init_aifexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:9805 */
+  /* parser/parser.nit:10125 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9806 */
+  /* parser/parser.nit:10126 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9806);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10126);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -27659,14 +28455,14 @@ void parser___ReduceAction310___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction311___action(val_t p0, val_t p1){
+void parser___ReduceAction319___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9811;
-  fra.me.meth = LOCATE_parser___ReduceAction311___action;
+  fra.me.line = 10131;
+  fra.me.meth = LOCATE_parser___ReduceAction319___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -27678,47 +28474,47 @@ void parser___ReduceAction311___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9813 */
+  /* parser/parser.nit:10133 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9814 */
+  /* parser/parser.nit:10134 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9815 */
+  /* parser/parser.nit:10135 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9816 */
+  /* parser/parser.nit:10136 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9817 */
+  /* parser/parser.nit:10137 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9818 */
+  /* parser/parser.nit:10138 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9819 */
+  /* parser/parser.nit:10139 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9821 */
+  /* parser/parser.nit:10141 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwif, ID_parser___parser_nodes___TKwif)) /*cast nullable TKwif*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9821);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10141);
   }
-  /* ./parser//parser.nit:9823 */
+  /* parser/parser.nit:10143 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9823);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10143);
   }
-  /* ./parser//parser.nit:9825 */
+  /* parser/parser.nit:10145 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9825);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10145);
   }
-  /* ./parser//parser.nit:9826 */
+  /* parser/parser.nit:10146 */
   fra.me.REG[3] = NEW_AIfExpr_parser___parser_prod___AIfExpr___init_aifexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:9832 */
+  /* parser/parser.nit:10152 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9833 */
+  /* parser/parser.nit:10153 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9833);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10153);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -27726,14 +28522,14 @@ void parser___ReduceAction311___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction312___action(val_t p0, val_t p1){
+void parser___ReduceAction320___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9838;
-  fra.me.meth = LOCATE_parser___ReduceAction312___action;
+  fra.me.line = 10158;
+  fra.me.meth = LOCATE_parser___ReduceAction320___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -27746,57 +28542,57 @@ void parser___ReduceAction312___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9840 */
+  /* parser/parser.nit:10160 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9841 */
+  /* parser/parser.nit:10161 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9842 */
+  /* parser/parser.nit:10162 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9843 */
+  /* parser/parser.nit:10163 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9844 */
+  /* parser/parser.nit:10164 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9845 */
+  /* parser/parser.nit:10165 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9846 */
+  /* parser/parser.nit:10166 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9847 */
+  /* parser/parser.nit:10167 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9848 */
+  /* parser/parser.nit:10168 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9850 */
+  /* parser/parser.nit:10170 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwif, ID_parser___parser_nodes___TKwif)) /*cast nullable TKwif*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9850);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10170);
   }
-  /* ./parser//parser.nit:9852 */
+  /* parser/parser.nit:10172 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9852);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10172);
   }
-  /* ./parser//parser.nit:9854 */
+  /* parser/parser.nit:10174 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9854);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10174);
   }
-  /* ./parser//parser.nit:9856 */
+  /* parser/parser.nit:10176 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9856);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10176);
   }
-  /* ./parser//parser.nit:9857 */
+  /* parser/parser.nit:10177 */
   fra.me.REG[3] = NEW_AIfExpr_parser___parser_prod___AIfExpr___init_aifexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:9863 */
+  /* parser/parser.nit:10183 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9864 */
+  /* parser/parser.nit:10184 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9864);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10184);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -27804,14 +28600,14 @@ void parser___ReduceAction312___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction313___action(val_t p0, val_t p1){
+void parser___ReduceAction321___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9869;
-  fra.me.meth = LOCATE_parser___ReduceAction313___action;
+  fra.me.line = 10189;
+  fra.me.meth = LOCATE_parser___ReduceAction321___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -27823,47 +28619,47 @@ void parser___ReduceAction313___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9871 */
+  /* parser/parser.nit:10191 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9872 */
+  /* parser/parser.nit:10192 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9873 */
+  /* parser/parser.nit:10193 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9874 */
+  /* parser/parser.nit:10194 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9875 */
+  /* parser/parser.nit:10195 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9876 */
+  /* parser/parser.nit:10196 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9877 */
+  /* parser/parser.nit:10197 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9879 */
+  /* parser/parser.nit:10199 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwif, ID_parser___parser_nodes___TKwif)) /*cast nullable TKwif*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9879);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10199);
   }
-  /* ./parser//parser.nit:9881 */
+  /* parser/parser.nit:10201 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9881);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10201);
   }
-  /* ./parser//parser.nit:9883 */
+  /* parser/parser.nit:10203 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9883);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10203);
   }
-  /* ./parser//parser.nit:9884 */
+  /* parser/parser.nit:10204 */
   fra.me.REG[3] = NEW_AIfExpr_parser___parser_prod___AIfExpr___init_aifexpr(fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:9890 */
+  /* parser/parser.nit:10210 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9891 */
+  /* parser/parser.nit:10211 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9891);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10211);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -27871,14 +28667,14 @@ void parser___ReduceAction313___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction314___action(val_t p0, val_t p1){
+void parser___ReduceAction322___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9896;
-  fra.me.meth = LOCATE_parser___ReduceAction314___action;
+  fra.me.line = 10216;
+  fra.me.meth = LOCATE_parser___ReduceAction322___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -27890,49 +28686,49 @@ void parser___ReduceAction314___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9898 */
+  /* parser/parser.nit:10218 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9899 */
+  /* parser/parser.nit:10219 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9900 */
+  /* parser/parser.nit:10220 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9901 */
+  /* parser/parser.nit:10221 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9902 */
+  /* parser/parser.nit:10222 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9903 */
+  /* parser/parser.nit:10223 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9904 */
+  /* parser/parser.nit:10224 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9905 */
+  /* parser/parser.nit:10225 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9907 */
+  /* parser/parser.nit:10227 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwif, ID_parser___parser_nodes___TKwif)) /*cast nullable TKwif*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9907);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10227);
   }
-  /* ./parser//parser.nit:9909 */
+  /* parser/parser.nit:10229 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9909);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10229);
   }
-  /* ./parser//parser.nit:9911 */
+  /* parser/parser.nit:10231 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9911);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10231);
   }
-  /* ./parser//parser.nit:9912 */
+  /* parser/parser.nit:10232 */
   fra.me.REG[3] = NEW_AIfExpr_parser___parser_prod___AIfExpr___init_aifexpr(fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
-  /* ./parser//parser.nit:9918 */
+  /* parser/parser.nit:10238 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9919 */
+  /* parser/parser.nit:10239 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9919);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10239);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -27940,14 +28736,14 @@ void parser___ReduceAction314___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction317___action(val_t p0, val_t p1){
+void parser___ReduceAction325___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9924;
-  fra.me.meth = LOCATE_parser___ReduceAction317___action;
+  fra.me.line = 10244;
+  fra.me.meth = LOCATE_parser___ReduceAction325___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -27959,41 +28755,41 @@ void parser___ReduceAction317___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9926 */
+  /* parser/parser.nit:10246 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9927 */
+  /* parser/parser.nit:10247 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9928 */
+  /* parser/parser.nit:10248 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9929 */
+  /* parser/parser.nit:10249 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9931 */
+  /* parser/parser.nit:10251 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwloop, ID_parser___parser_nodes___TKwloop)) /*cast nullable TKwloop*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9931);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10251);
   }
-  /* ./parser//parser.nit:9933 */
+  /* parser/parser.nit:10253 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9933);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10253);
   }
-  /* ./parser//parser.nit:9935 */
+  /* parser/parser.nit:10255 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast nullable ALabel*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9935);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10255);
   }
-  /* ./parser//parser.nit:9936 */
+  /* parser/parser.nit:10256 */
   fra.me.REG[3] = NEW_ALoopExpr_parser___parser_prod___ALoopExpr___init_aloopexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:9941 */
+  /* parser/parser.nit:10261 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9942 */
+  /* parser/parser.nit:10262 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9942);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10262);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -28001,14 +28797,14 @@ void parser___ReduceAction317___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction318___action(val_t p0, val_t p1){
+void parser___ReduceAction326___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9947;
-  fra.me.meth = LOCATE_parser___ReduceAction318___action;
+  fra.me.line = 10267;
+  fra.me.meth = LOCATE_parser___ReduceAction326___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -28019,33 +28815,33 @@ void parser___ReduceAction318___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9949 */
+  /* parser/parser.nit:10269 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9950 */
+  /* parser/parser.nit:10270 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9951 */
+  /* parser/parser.nit:10271 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9953 */
+  /* parser/parser.nit:10273 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwloop, ID_parser___parser_nodes___TKwloop)) /*cast nullable TKwloop*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9953);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10273);
   }
-  /* ./parser//parser.nit:9955 */
+  /* parser/parser.nit:10275 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9955);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10275);
   }
-  /* ./parser//parser.nit:9956 */
+  /* parser/parser.nit:10276 */
   fra.me.REG[3] = NEW_ALoopExpr_parser___parser_prod___ALoopExpr___init_aloopexpr(fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:9961 */
+  /* parser/parser.nit:10281 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9962 */
+  /* parser/parser.nit:10282 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9962);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10282);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -28053,14 +28849,14 @@ void parser___ReduceAction318___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction319___action(val_t p0, val_t p1){
+void parser___ReduceAction327___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 9967;
-  fra.me.meth = LOCATE_parser___ReduceAction319___action;
+  fra.me.line = 10287;
+  fra.me.meth = LOCATE_parser___ReduceAction327___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
@@ -28074,61 +28870,61 @@ void parser___ReduceAction319___action(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:9969 */
+  /* parser/parser.nit:10289 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:9970 */
+  /* parser/parser.nit:10290 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9971 */
+  /* parser/parser.nit:10291 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9972 */
+  /* parser/parser.nit:10292 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9973 */
+  /* parser/parser.nit:10293 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9974 */
+  /* parser/parser.nit:10294 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9975 */
+  /* parser/parser.nit:10295 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9976 */
+  /* parser/parser.nit:10296 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:9978 */
+  /* parser/parser.nit:10298 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwwhile, ID_parser___parser_nodes___TKwwhile)) /*cast nullable TKwwhile*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9978);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10298);
   }
-  /* ./parser//parser.nit:9980 */
+  /* parser/parser.nit:10300 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9980);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10300);
   }
-  /* ./parser//parser.nit:9982 */
+  /* parser/parser.nit:10302 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast nullable TKwdo*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9982);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10302);
   }
-  /* ./parser//parser.nit:9984 */
+  /* parser/parser.nit:10304 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9984);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10304);
   }
-  /* ./parser//parser.nit:9986 */
+  /* parser/parser.nit:10306 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast nullable ALabel*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 9986);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10306);
   }
-  /* ./parser//parser.nit:9987 */
+  /* parser/parser.nit:10307 */
   fra.me.REG[3] = NEW_AWhileExpr_parser___parser_prod___AWhileExpr___init_awhileexpr(fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:9994 */
+  /* parser/parser.nit:10314 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:9995 */
+  /* parser/parser.nit:10315 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 9995);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10315);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -28136,14 +28932,14 @@ void parser___ReduceAction319___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction320___action(val_t p0, val_t p1){
+void parser___ReduceAction328___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10000;
-  fra.me.meth = LOCATE_parser___ReduceAction320___action;
+  fra.me.line = 10320;
+  fra.me.meth = LOCATE_parser___ReduceAction328___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -28156,53 +28952,53 @@ void parser___ReduceAction320___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10002 */
+  /* parser/parser.nit:10322 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10003 */
+  /* parser/parser.nit:10323 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10004 */
+  /* parser/parser.nit:10324 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10005 */
+  /* parser/parser.nit:10325 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10006 */
+  /* parser/parser.nit:10326 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10007 */
+  /* parser/parser.nit:10327 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10008 */
+  /* parser/parser.nit:10328 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10010 */
+  /* parser/parser.nit:10330 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwwhile, ID_parser___parser_nodes___TKwwhile)) /*cast nullable TKwwhile*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10010);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10330);
   }
-  /* ./parser//parser.nit:10012 */
+  /* parser/parser.nit:10332 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10012);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10332);
   }
-  /* ./parser//parser.nit:10014 */
+  /* parser/parser.nit:10334 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast nullable TKwdo*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10014);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10334);
   }
-  /* ./parser//parser.nit:10016 */
+  /* parser/parser.nit:10336 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10016);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10336);
   }
-  /* ./parser//parser.nit:10017 */
+  /* parser/parser.nit:10337 */
   fra.me.REG[3] = NEW_AWhileExpr_parser___parser_prod___AWhileExpr___init_awhileexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:10024 */
+  /* parser/parser.nit:10344 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10025 */
+  /* parser/parser.nit:10345 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10025);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10345);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -28210,14 +29006,14 @@ void parser___ReduceAction320___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction321___action(val_t p0, val_t p1){
+void parser___ReduceAction329___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10030;
-  fra.me.meth = LOCATE_parser___ReduceAction321___action;
+  fra.me.line = 10350;
+  fra.me.meth = LOCATE_parser___ReduceAction329___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
   fra.me.nitni_local_ref_head = NULL;
@@ -28233,84 +29029,84 @@ void parser___ReduceAction321___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10032 */
+  /* parser/parser.nit:10352 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10033 */
+  /* parser/parser.nit:10353 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10034 */
+  /* parser/parser.nit:10354 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10035 */
+  /* parser/parser.nit:10355 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10036 */
+  /* parser/parser.nit:10356 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10037 */
+  /* parser/parser.nit:10357 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10038 */
+  /* parser/parser.nit:10358 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10039 */
+  /* parser/parser.nit:10359 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10040 */
+  /* parser/parser.nit:10360 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10041 */
+  /* parser/parser.nit:10361 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10042 */
+  /* parser/parser.nit:10362 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10043 */
+  /* parser/parser.nit:10363 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10044 */
+  /* parser/parser.nit:10364 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10045 */
+  /* parser/parser.nit:10365 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10046 */
+  /* parser/parser.nit:10366 */
   fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:10048 */
+  /* parser/parser.nit:10368 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwfor, ID_parser___parser_nodes___TKwfor)) /*cast nullable TKwfor*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10048);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10368);
   }
-  /* ./parser//parser.nit:10050 */
+  /* parser/parser.nit:10370 */
   REGB0 = TAG_Bool((fra.me.REG[7]!=NIT_NULL) && VAL_ISA(fra.me.REG[7], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10050);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10370);
   }
-  /* ./parser//parser.nit:10051 */
+  /* parser/parser.nit:10371 */
   fra.me.REG[7] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[7]);
   fra.me.REG[9] = fra.me.REG[7];
-  /* ./parser//parser.nit:10053 */
+  /* parser/parser.nit:10373 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10053);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10373);
   }
-  /* ./parser//parser.nit:10055 */
+  /* parser/parser.nit:10375 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast nullable TKwdo*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10055);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10375);
   }
-  /* ./parser//parser.nit:10057 */
+  /* parser/parser.nit:10377 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10057);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10377);
   }
-  /* ./parser//parser.nit:10059 */
+  /* parser/parser.nit:10379 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast nullable ALabel*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10059);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10379);
   }
-  /* ./parser//parser.nit:10060 */
+  /* parser/parser.nit:10380 */
   fra.me.REG[3] = NEW_AForExpr_parser___parser_prod___AForExpr___init_aforexpr(fra.me.REG[8], fra.me.REG[9], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10068 */
+  /* parser/parser.nit:10388 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10069 */
+  /* parser/parser.nit:10389 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10069);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10389);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -28318,14 +29114,14 @@ void parser___ReduceAction321___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction322___action(val_t p0, val_t p1){
+void parser___ReduceAction330___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10074;
-  fra.me.meth = LOCATE_parser___ReduceAction322___action;
+  fra.me.line = 10394;
+  fra.me.meth = LOCATE_parser___ReduceAction330___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
   fra.me.nitni_local_ref_head = NULL;
@@ -28341,80 +29137,80 @@ void parser___ReduceAction322___action(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10076 */
+  /* parser/parser.nit:10396 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10077 */
+  /* parser/parser.nit:10397 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10078 */
+  /* parser/parser.nit:10398 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10079 */
+  /* parser/parser.nit:10399 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10080 */
+  /* parser/parser.nit:10400 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10081 */
+  /* parser/parser.nit:10401 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10082 */
+  /* parser/parser.nit:10402 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10083 */
+  /* parser/parser.nit:10403 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10084 */
+  /* parser/parser.nit:10404 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10085 */
+  /* parser/parser.nit:10405 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10086 */
+  /* parser/parser.nit:10406 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10087 */
+  /* parser/parser.nit:10407 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10088 */
+  /* parser/parser.nit:10408 */
   fra.me.REG[9] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:10090 */
+  /* parser/parser.nit:10410 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwfor, ID_parser___parser_nodes___TKwfor)) /*cast nullable TKwfor*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10090);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10410);
   }
-  /* ./parser//parser.nit:10092 */
+  /* parser/parser.nit:10412 */
   REGB0 = TAG_Bool((fra.me.REG[7]!=NIT_NULL) && VAL_ISA(fra.me.REG[7], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10092);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10412);
   }
-  /* ./parser//parser.nit:10093 */
+  /* parser/parser.nit:10413 */
   fra.me.REG[7] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[7]);
   fra.me.REG[9] = fra.me.REG[7];
-  /* ./parser//parser.nit:10095 */
+  /* parser/parser.nit:10415 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10095);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10415);
   }
-  /* ./parser//parser.nit:10097 */
+  /* parser/parser.nit:10417 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast nullable TKwdo*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10097);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10417);
   }
-  /* ./parser//parser.nit:10099 */
+  /* parser/parser.nit:10419 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10099);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10419);
   }
-  /* ./parser//parser.nit:10101 */
+  /* parser/parser.nit:10421 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast nullable ALabel*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10101);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10421);
   }
-  /* ./parser//parser.nit:10102 */
+  /* parser/parser.nit:10422 */
   fra.me.REG[3] = NEW_AForExpr_parser___parser_prod___AForExpr___init_aforexpr(fra.me.REG[8], fra.me.REG[9], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10110 */
+  /* parser/parser.nit:10430 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10111 */
+  /* parser/parser.nit:10431 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10111);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10431);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -28422,14 +29218,14 @@ void parser___ReduceAction322___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction323___action(val_t p0, val_t p1){
+void parser___ReduceAction331___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10116;
-  fra.me.meth = LOCATE_parser___ReduceAction323___action;
+  fra.me.line = 10436;
+  fra.me.meth = LOCATE_parser___ReduceAction331___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
   fra.me.nitni_local_ref_head = NULL;
@@ -28444,76 +29240,76 @@ void parser___ReduceAction323___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10118 */
+  /* parser/parser.nit:10438 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10119 */
+  /* parser/parser.nit:10439 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10120 */
+  /* parser/parser.nit:10440 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10121 */
+  /* parser/parser.nit:10441 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10122 */
+  /* parser/parser.nit:10442 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10123 */
+  /* parser/parser.nit:10443 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10124 */
+  /* parser/parser.nit:10444 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10125 */
+  /* parser/parser.nit:10445 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10126 */
+  /* parser/parser.nit:10446 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10127 */
+  /* parser/parser.nit:10447 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10128 */
+  /* parser/parser.nit:10448 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10129 */
+  /* parser/parser.nit:10449 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10130 */
+  /* parser/parser.nit:10450 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10131 */
+  /* parser/parser.nit:10451 */
   fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:10133 */
+  /* parser/parser.nit:10453 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwfor, ID_parser___parser_nodes___TKwfor)) /*cast nullable TKwfor*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10133);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10453);
   }
-  /* ./parser//parser.nit:10135 */
+  /* parser/parser.nit:10455 */
   REGB0 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10135);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10455);
   }
-  /* ./parser//parser.nit:10136 */
+  /* parser/parser.nit:10456 */
   fra.me.REG[6] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[6]);
   fra.me.REG[8] = fra.me.REG[6];
-  /* ./parser//parser.nit:10138 */
+  /* parser/parser.nit:10458 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10138);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10458);
   }
-  /* ./parser//parser.nit:10140 */
+  /* parser/parser.nit:10460 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast nullable TKwdo*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10140);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10460);
   }
-  /* ./parser//parser.nit:10142 */
+  /* parser/parser.nit:10462 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10142);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10462);
   }
-  /* ./parser//parser.nit:10143 */
+  /* parser/parser.nit:10463 */
   fra.me.REG[3] = NEW_AForExpr_parser___parser_prod___AForExpr___init_aforexpr(fra.me.REG[7], fra.me.REG[8], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:10151 */
+  /* parser/parser.nit:10471 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10152 */
+  /* parser/parser.nit:10472 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10152);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10472);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -28521,14 +29317,14 @@ void parser___ReduceAction323___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction324___action(val_t p0, val_t p1){
+void parser___ReduceAction332___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10157;
-  fra.me.meth = LOCATE_parser___ReduceAction324___action;
+  fra.me.line = 10477;
+  fra.me.meth = LOCATE_parser___ReduceAction332___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
   fra.me.nitni_local_ref_head = NULL;
@@ -28543,72 +29339,72 @@ void parser___ReduceAction324___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10159 */
+  /* parser/parser.nit:10479 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10160 */
+  /* parser/parser.nit:10480 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10161 */
+  /* parser/parser.nit:10481 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10162 */
+  /* parser/parser.nit:10482 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10163 */
+  /* parser/parser.nit:10483 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10164 */
+  /* parser/parser.nit:10484 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10165 */
+  /* parser/parser.nit:10485 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10166 */
+  /* parser/parser.nit:10486 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10167 */
+  /* parser/parser.nit:10487 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10168 */
+  /* parser/parser.nit:10488 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10169 */
+  /* parser/parser.nit:10489 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10170 */
+  /* parser/parser.nit:10490 */
   fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:10172 */
+  /* parser/parser.nit:10492 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwfor, ID_parser___parser_nodes___TKwfor)) /*cast nullable TKwfor*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10172);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10492);
   }
-  /* ./parser//parser.nit:10174 */
+  /* parser/parser.nit:10494 */
   REGB0 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10174);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10494);
   }
-  /* ./parser//parser.nit:10175 */
+  /* parser/parser.nit:10495 */
   fra.me.REG[6] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8], fra.me.REG[6]);
   fra.me.REG[8] = fra.me.REG[6];
-  /* ./parser//parser.nit:10177 */
+  /* parser/parser.nit:10497 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10177);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10497);
   }
-  /* ./parser//parser.nit:10179 */
+  /* parser/parser.nit:10499 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast nullable TKwdo*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10179);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10499);
   }
-  /* ./parser//parser.nit:10181 */
+  /* parser/parser.nit:10501 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10181);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10501);
   }
-  /* ./parser//parser.nit:10182 */
+  /* parser/parser.nit:10502 */
   fra.me.REG[3] = NEW_AForExpr_parser___parser_prod___AForExpr___init_aforexpr(fra.me.REG[7], fra.me.REG[8], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:10190 */
+  /* parser/parser.nit:10510 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10191 */
+  /* parser/parser.nit:10511 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10191);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10511);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -28616,14 +29412,14 @@ void parser___ReduceAction324___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction325___action(val_t p0, val_t p1){
+void parser___ReduceAction333___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10196;
-  fra.me.meth = LOCATE_parser___ReduceAction325___action;
+  fra.me.line = 10516;
+  fra.me.meth = LOCATE_parser___ReduceAction333___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -28635,43 +29431,43 @@ void parser___ReduceAction325___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10198 */
+  /* parser/parser.nit:10518 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10199 */
+  /* parser/parser.nit:10519 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10200 */
+  /* parser/parser.nit:10520 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10201 */
+  /* parser/parser.nit:10521 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10202 */
+  /* parser/parser.nit:10522 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10204 */
+  /* parser/parser.nit:10524 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwassert, ID_parser___parser_nodes___TKwassert)) /*cast nullable TKwassert*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10204);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10524);
   }
-  /* ./parser//parser.nit:10206 */
+  /* parser/parser.nit:10526 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10206);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10526);
   }
-  /* ./parser//parser.nit:10208 */
+  /* parser/parser.nit:10528 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10208);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10528);
   }
-  /* ./parser//parser.nit:10209 */
+  /* parser/parser.nit:10529 */
   fra.me.REG[3] = NEW_AAssertExpr_parser___parser_prod___AAssertExpr___init_aassertexpr(fra.me.REG[5], NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10215 */
+  /* parser/parser.nit:10535 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10216 */
+  /* parser/parser.nit:10536 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10216);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10536);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -28679,14 +29475,14 @@ void parser___ReduceAction325___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction326___action(val_t p0, val_t p1){
+void parser___ReduceAction334___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10221;
-  fra.me.meth = LOCATE_parser___ReduceAction326___action;
+  fra.me.line = 10541;
+  fra.me.meth = LOCATE_parser___ReduceAction334___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -28699,51 +29495,51 @@ void parser___ReduceAction326___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10223 */
+  /* parser/parser.nit:10543 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10224 */
+  /* parser/parser.nit:10544 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10225 */
+  /* parser/parser.nit:10545 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10226 */
+  /* parser/parser.nit:10546 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10227 */
+  /* parser/parser.nit:10547 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10228 */
+  /* parser/parser.nit:10548 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10230 */
+  /* parser/parser.nit:10550 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwassert, ID_parser___parser_nodes___TKwassert)) /*cast nullable TKwassert*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10230);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10550);
   }
-  /* ./parser//parser.nit:10232 */
+  /* parser/parser.nit:10552 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10232);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10552);
   }
-  /* ./parser//parser.nit:10234 */
+  /* parser/parser.nit:10554 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10234);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10554);
   }
-  /* ./parser//parser.nit:10236 */
+  /* parser/parser.nit:10556 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10236);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10556);
   }
-  /* ./parser//parser.nit:10237 */
+  /* parser/parser.nit:10557 */
   fra.me.REG[3] = NEW_AAssertExpr_parser___parser_prod___AAssertExpr___init_aassertexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10243 */
+  /* parser/parser.nit:10563 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10244 */
+  /* parser/parser.nit:10564 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10244);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10564);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -28751,14 +29547,14 @@ void parser___ReduceAction326___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction327___action(val_t p0, val_t p1){
+void parser___ReduceAction335___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10249;
-  fra.me.meth = LOCATE_parser___ReduceAction327___action;
+  fra.me.line = 10569;
+  fra.me.meth = LOCATE_parser___ReduceAction335___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -28769,33 +29565,33 @@ void parser___ReduceAction327___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10251 */
+  /* parser/parser.nit:10571 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10252 */
+  /* parser/parser.nit:10572 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10253 */
+  /* parser/parser.nit:10573 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10255 */
+  /* parser/parser.nit:10575 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwassert, ID_parser___parser_nodes___TKwassert)) /*cast nullable TKwassert*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10255);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10575);
   }
-  /* ./parser//parser.nit:10257 */
+  /* parser/parser.nit:10577 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10257);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10577);
   }
-  /* ./parser//parser.nit:10258 */
+  /* parser/parser.nit:10578 */
   fra.me.REG[3] = NEW_AAssertExpr_parser___parser_prod___AAssertExpr___init_aassertexpr(fra.me.REG[4], NIT_NULL, fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:10264 */
+  /* parser/parser.nit:10584 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10265 */
+  /* parser/parser.nit:10585 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10265);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10585);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -28803,14 +29599,14 @@ void parser___ReduceAction327___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction328___action(val_t p0, val_t p1){
+void parser___ReduceAction336___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10270;
-  fra.me.meth = LOCATE_parser___ReduceAction328___action;
+  fra.me.line = 10590;
+  fra.me.meth = LOCATE_parser___ReduceAction336___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -28822,41 +29618,41 @@ void parser___ReduceAction328___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10272 */
+  /* parser/parser.nit:10592 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10273 */
+  /* parser/parser.nit:10593 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10274 */
+  /* parser/parser.nit:10594 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10275 */
+  /* parser/parser.nit:10595 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10277 */
+  /* parser/parser.nit:10597 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwassert, ID_parser___parser_nodes___TKwassert)) /*cast nullable TKwassert*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10277);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10597);
   }
-  /* ./parser//parser.nit:10279 */
+  /* parser/parser.nit:10599 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10279);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10599);
   }
-  /* ./parser//parser.nit:10281 */
+  /* parser/parser.nit:10601 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10281);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10601);
   }
-  /* ./parser//parser.nit:10282 */
+  /* parser/parser.nit:10602 */
   fra.me.REG[3] = NEW_AAssertExpr_parser___parser_prod___AAssertExpr___init_aassertexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./parser//parser.nit:10288 */
+  /* parser/parser.nit:10608 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10289 */
+  /* parser/parser.nit:10609 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10289);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10609);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -28864,14 +29660,14 @@ void parser___ReduceAction328___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction329___action(val_t p0, val_t p1){
+void parser___ReduceAction337___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10294;
-  fra.me.meth = LOCATE_parser___ReduceAction329___action;
+  fra.me.line = 10614;
+  fra.me.meth = LOCATE_parser___ReduceAction337___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -28881,19 +29677,19 @@ void parser___ReduceAction329___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10296 */
+  /* parser/parser.nit:10616 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10297 */
+  /* parser/parser.nit:10617 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10298 */
+  /* parser/parser.nit:10618 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10300 */
+  /* parser/parser.nit:10620 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10301 */
+  /* parser/parser.nit:10621 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10301);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10621);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -28901,16 +29697,16 @@ void parser___ReduceAction329___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction333___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
+void parser___ReduceAction341___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10306;
-  fra.me.meth = LOCATE_parser___ReduceAction333___action;
+  fra.me.line = 10626;
+  fra.me.meth = LOCATE_parser___ReduceAction341___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 8;
+  fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -28919,54 +29715,48 @@ void parser___ReduceAction333___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
-  fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10308 */
+  /* parser/parser.nit:10628 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10309 */
+  /* parser/parser.nit:10629 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10310 */
+  /* parser/parser.nit:10630 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10311 */
+  /* parser/parser.nit:10631 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10312 */
+  /* parser/parser.nit:10632 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:10313 */
-  fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:10315 */
+  /* parser/parser.nit:10634 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10315);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10634);
   }
-  /* ./parser//parser.nit:10317 */
-  REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:10636 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10317);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10636);
   }
-  /* ./parser//parser.nit:10318 */
-  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
-  fra.me.REG[6] = fra.me.REG[4];
-  /* ./parser//parser.nit:10320 */
+  /* parser/parser.nit:10638 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10320);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10638);
   }
-  /* ./parser//parser.nit:10321 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
-  fra.me.REG[7] = fra.me.REG[3];
-  /* ./parser//parser.nit:10322 */
-  fra.me.REG[7] = NEW_ABraExpr_parser___parser_prod___ABraExpr___init_abraexpr(fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
-  /* ./parser//parser.nit:10327 */
-  fra.me.REG[2] = fra.me.REG[7];
-  /* ./parser//parser.nit:10328 */
+  /* parser/parser.nit:10639 */
+  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
+  fra.me.REG[6] = fra.me.REG[3];
+  /* parser/parser.nit:10640 */
+  fra.me.REG[6] = NEW_ABraExpr_parser___parser_prod___ABraExpr___init_abraexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
+  /* parser/parser.nit:10645 */
+  fra.me.REG[2] = fra.me.REG[6];
+  /* parser/parser.nit:10646 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10328);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10646);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -28974,14 +29764,14 @@ void parser___ReduceAction333___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction335___action(val_t p0, val_t p1){
+void parser___ReduceAction343___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10333;
-  fra.me.meth = LOCATE_parser___ReduceAction335___action;
+  fra.me.line = 10651;
+  fra.me.meth = LOCATE_parser___ReduceAction343___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
   fra.me.nitni_local_ref_head = NULL;
@@ -28996,75 +29786,75 @@ void parser___ReduceAction335___action(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10335 */
+  /* parser/parser.nit:10653 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10336 */
+  /* parser/parser.nit:10654 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10337 */
+  /* parser/parser.nit:10655 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10338 */
+  /* parser/parser.nit:10656 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10339 */
+  /* parser/parser.nit:10657 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10340 */
+  /* parser/parser.nit:10658 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10341 */
+  /* parser/parser.nit:10659 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10342 */
+  /* parser/parser.nit:10660 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10343 */
+  /* parser/parser.nit:10661 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10344 */
+  /* parser/parser.nit:10662 */
   fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10345 */
+  /* parser/parser.nit:10663 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10346 */
+  /* parser/parser.nit:10664 */
   fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10348 */
+  /* parser/parser.nit:10666 */
   REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___TKwif, ID_parser___parser_nodes___TKwif)) /*cast nullable TKwif*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10348);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10666);
   }
-  /* ./parser//parser.nit:10350 */
+  /* parser/parser.nit:10668 */
   REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10350);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10668);
   }
-  /* ./parser//parser.nit:10352 */
+  /* parser/parser.nit:10670 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwthen, ID_parser___parser_nodes___TKwthen)) /*cast nullable TKwthen*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10352);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10670);
   }
-  /* ./parser//parser.nit:10354 */
+  /* parser/parser.nit:10672 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10354);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10672);
   }
-  /* ./parser//parser.nit:10356 */
+  /* parser/parser.nit:10674 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwelse, ID_parser___parser_nodes___TKwelse)) /*cast nullable TKwelse*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10356);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10674);
   }
-  /* ./parser//parser.nit:10358 */
+  /* parser/parser.nit:10676 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10358);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10676);
   }
-  /* ./parser//parser.nit:10359 */
+  /* parser/parser.nit:10677 */
   fra.me.REG[3] = NEW_AIfexprExpr_parser___parser_prod___AIfexprExpr___init_aifexprexpr(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10367 */
+  /* parser/parser.nit:10685 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10368 */
+  /* parser/parser.nit:10686 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10368);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10686);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -29072,14 +29862,14 @@ void parser___ReduceAction335___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction337___action(val_t p0, val_t p1){
+void parser___ReduceAction345___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10373;
-  fra.me.meth = LOCATE_parser___ReduceAction337___action;
+  fra.me.line = 10691;
+  fra.me.meth = LOCATE_parser___ReduceAction345___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -29090,37 +29880,37 @@ void parser___ReduceAction337___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10375 */
+  /* parser/parser.nit:10693 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10376 */
+  /* parser/parser.nit:10694 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10377 */
+  /* parser/parser.nit:10695 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10378 */
+  /* parser/parser.nit:10696 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10379 */
+  /* parser/parser.nit:10697 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10381 */
+  /* parser/parser.nit:10699 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10381);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10699);
   }
-  /* ./parser//parser.nit:10383 */
+  /* parser/parser.nit:10701 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10383);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10701);
   }
-  /* ./parser//parser.nit:10384 */
+  /* parser/parser.nit:10702 */
   fra.me.REG[3] = NEW_AOrExpr_parser___parser_prod___AOrExpr___init_aorexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10388 */
+  /* parser/parser.nit:10706 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10389 */
+  /* parser/parser.nit:10707 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10389);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10707);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -29128,14 +29918,14 @@ void parser___ReduceAction337___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction338___action(val_t p0, val_t p1){
+void parser___ReduceAction346___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10394;
-  fra.me.meth = LOCATE_parser___ReduceAction338___action;
+  fra.me.line = 10712;
+  fra.me.meth = LOCATE_parser___ReduceAction346___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -29146,37 +29936,37 @@ void parser___ReduceAction338___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10396 */
+  /* parser/parser.nit:10714 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10397 */
+  /* parser/parser.nit:10715 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10398 */
+  /* parser/parser.nit:10716 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10399 */
+  /* parser/parser.nit:10717 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10400 */
+  /* parser/parser.nit:10718 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10402 */
+  /* parser/parser.nit:10720 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10402);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10720);
   }
-  /* ./parser//parser.nit:10404 */
+  /* parser/parser.nit:10722 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10404);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10722);
   }
-  /* ./parser//parser.nit:10405 */
+  /* parser/parser.nit:10723 */
   fra.me.REG[3] = NEW_AAndExpr_parser___parser_prod___AAndExpr___init_aandexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10409 */
+  /* parser/parser.nit:10727 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10410 */
+  /* parser/parser.nit:10728 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10410);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10728);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -29184,14 +29974,14 @@ void parser___ReduceAction338___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction339___action(val_t p0, val_t p1){
+void parser___ReduceAction347___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10415;
-  fra.me.meth = LOCATE_parser___ReduceAction339___action;
+  fra.me.line = 10733;
+  fra.me.meth = LOCATE_parser___ReduceAction347___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -29202,39 +29992,39 @@ void parser___ReduceAction339___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10417 */
+  /* parser/parser.nit:10735 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10418 */
+  /* parser/parser.nit:10736 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10419 */
+  /* parser/parser.nit:10737 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10420 */
+  /* parser/parser.nit:10738 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10421 */
+  /* parser/parser.nit:10739 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10422 */
+  /* parser/parser.nit:10740 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10424 */
+  /* parser/parser.nit:10742 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10424);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10742);
   }
-  /* ./parser//parser.nit:10426 */
+  /* parser/parser.nit:10744 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10426);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10744);
   }
-  /* ./parser//parser.nit:10427 */
+  /* parser/parser.nit:10745 */
   fra.me.REG[3] = NEW_AOrElseExpr_parser___parser_prod___AOrElseExpr___init_aorelseexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10431 */
+  /* parser/parser.nit:10749 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10432 */
+  /* parser/parser.nit:10750 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10432);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10750);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -29242,14 +30032,14 @@ void parser___ReduceAction339___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction341___action(val_t p0, val_t p1){
+void parser___ReduceAction349___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10437;
-  fra.me.meth = LOCATE_parser___ReduceAction341___action;
+  fra.me.line = 10755;
+  fra.me.meth = LOCATE_parser___ReduceAction349___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -29260,35 +30050,35 @@ void parser___ReduceAction341___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10439 */
+  /* parser/parser.nit:10757 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10440 */
+  /* parser/parser.nit:10758 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10441 */
+  /* parser/parser.nit:10759 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10442 */
+  /* parser/parser.nit:10760 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10444 */
+  /* parser/parser.nit:10762 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwnot, ID_parser___parser_nodes___TKwnot)) /*cast nullable TKwnot*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10444);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10762);
   }
-  /* ./parser//parser.nit:10446 */
+  /* parser/parser.nit:10764 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10446);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10764);
   }
-  /* ./parser//parser.nit:10447 */
+  /* parser/parser.nit:10765 */
   fra.me.REG[3] = NEW_ANotExpr_parser___parser_prod___ANotExpr___init_anotexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10451 */
+  /* parser/parser.nit:10769 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10452 */
+  /* parser/parser.nit:10770 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10452);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10770);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -29296,14 +30086,14 @@ void parser___ReduceAction341___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction343___action(val_t p0, val_t p1){
+void parser___ReduceAction351___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10457;
-  fra.me.meth = LOCATE_parser___ReduceAction343___action;
+  fra.me.line = 10775;
+  fra.me.meth = LOCATE_parser___ReduceAction351___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -29314,37 +30104,37 @@ void parser___ReduceAction343___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10459 */
+  /* parser/parser.nit:10777 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10460 */
+  /* parser/parser.nit:10778 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10461 */
+  /* parser/parser.nit:10779 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10462 */
+  /* parser/parser.nit:10780 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10463 */
+  /* parser/parser.nit:10781 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10465 */
+  /* parser/parser.nit:10783 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10465);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10783);
   }
-  /* ./parser//parser.nit:10467 */
+  /* parser/parser.nit:10785 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10467);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10785);
   }
-  /* ./parser//parser.nit:10468 */
+  /* parser/parser.nit:10786 */
   fra.me.REG[3] = NEW_AEqExpr_parser___parser_prod___AEqExpr___init_aeqexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10472 */
+  /* parser/parser.nit:10790 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10473 */
+  /* parser/parser.nit:10791 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10473);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10791);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -29352,14 +30142,14 @@ void parser___ReduceAction343___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction344___action(val_t p0, val_t p1){
+void parser___ReduceAction352___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10478;
-  fra.me.meth = LOCATE_parser___ReduceAction344___action;
+  fra.me.line = 10796;
+  fra.me.meth = LOCATE_parser___ReduceAction352___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -29370,37 +30160,37 @@ void parser___ReduceAction344___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10480 */
+  /* parser/parser.nit:10798 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10481 */
+  /* parser/parser.nit:10799 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10482 */
+  /* parser/parser.nit:10800 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10483 */
+  /* parser/parser.nit:10801 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10484 */
+  /* parser/parser.nit:10802 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10486 */
+  /* parser/parser.nit:10804 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10486);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10804);
   }
-  /* ./parser//parser.nit:10488 */
+  /* parser/parser.nit:10806 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10488);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10806);
   }
-  /* ./parser//parser.nit:10489 */
+  /* parser/parser.nit:10807 */
   fra.me.REG[3] = NEW_AEeExpr_parser___parser_prod___AEeExpr___init_aeeexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10493 */
+  /* parser/parser.nit:10811 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10494 */
+  /* parser/parser.nit:10812 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10494);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10812);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -29408,14 +30198,14 @@ void parser___ReduceAction344___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction345___action(val_t p0, val_t p1){
+void parser___ReduceAction353___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10499;
-  fra.me.meth = LOCATE_parser___ReduceAction345___action;
+  fra.me.line = 10817;
+  fra.me.meth = LOCATE_parser___ReduceAction353___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -29426,37 +30216,37 @@ void parser___ReduceAction345___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10501 */
+  /* parser/parser.nit:10819 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10502 */
+  /* parser/parser.nit:10820 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10503 */
+  /* parser/parser.nit:10821 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10504 */
+  /* parser/parser.nit:10822 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10505 */
+  /* parser/parser.nit:10823 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10507 */
+  /* parser/parser.nit:10825 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10507);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10825);
   }
-  /* ./parser//parser.nit:10509 */
+  /* parser/parser.nit:10827 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10509);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10827);
   }
-  /* ./parser//parser.nit:10510 */
+  /* parser/parser.nit:10828 */
   fra.me.REG[3] = NEW_ANeExpr_parser___parser_prod___ANeExpr___init_aneexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10514 */
+  /* parser/parser.nit:10832 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10515 */
+  /* parser/parser.nit:10833 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10515);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10833);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -29464,14 +30254,14 @@ void parser___ReduceAction345___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction346___action(val_t p0, val_t p1){
+void parser___ReduceAction354___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10520;
-  fra.me.meth = LOCATE_parser___ReduceAction346___action;
+  fra.me.line = 10838;
+  fra.me.meth = LOCATE_parser___ReduceAction354___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -29482,37 +30272,37 @@ void parser___ReduceAction346___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10522 */
+  /* parser/parser.nit:10840 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10523 */
+  /* parser/parser.nit:10841 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10524 */
+  /* parser/parser.nit:10842 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10525 */
+  /* parser/parser.nit:10843 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10526 */
+  /* parser/parser.nit:10844 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10528 */
+  /* parser/parser.nit:10846 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10528);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10846);
   }
-  /* ./parser//parser.nit:10530 */
+  /* parser/parser.nit:10848 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10530);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10848);
   }
-  /* ./parser//parser.nit:10531 */
+  /* parser/parser.nit:10849 */
   fra.me.REG[3] = NEW_ALtExpr_parser___parser_prod___ALtExpr___init_altexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10535 */
+  /* parser/parser.nit:10853 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10536 */
+  /* parser/parser.nit:10854 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10536);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10854);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -29520,14 +30310,14 @@ void parser___ReduceAction346___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction347___action(val_t p0, val_t p1){
+void parser___ReduceAction355___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10541;
-  fra.me.meth = LOCATE_parser___ReduceAction347___action;
+  fra.me.line = 10859;
+  fra.me.meth = LOCATE_parser___ReduceAction355___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -29538,37 +30328,37 @@ void parser___ReduceAction347___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10543 */
+  /* parser/parser.nit:10861 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10544 */
+  /* parser/parser.nit:10862 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10545 */
+  /* parser/parser.nit:10863 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10546 */
+  /* parser/parser.nit:10864 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10547 */
+  /* parser/parser.nit:10865 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10549 */
+  /* parser/parser.nit:10867 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10549);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10867);
   }
-  /* ./parser//parser.nit:10551 */
+  /* parser/parser.nit:10869 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10551);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10869);
   }
-  /* ./parser//parser.nit:10552 */
+  /* parser/parser.nit:10870 */
   fra.me.REG[3] = NEW_ALeExpr_parser___parser_prod___ALeExpr___init_aleexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10556 */
+  /* parser/parser.nit:10874 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10557 */
+  /* parser/parser.nit:10875 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10557);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10875);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -29576,14 +30366,14 @@ void parser___ReduceAction347___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction348___action(val_t p0, val_t p1){
+void parser___ReduceAction356___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10562;
-  fra.me.meth = LOCATE_parser___ReduceAction348___action;
+  fra.me.line = 10880;
+  fra.me.meth = LOCATE_parser___ReduceAction356___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -29594,37 +30384,37 @@ void parser___ReduceAction348___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10564 */
+  /* parser/parser.nit:10882 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10565 */
+  /* parser/parser.nit:10883 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10566 */
+  /* parser/parser.nit:10884 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10567 */
+  /* parser/parser.nit:10885 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10568 */
+  /* parser/parser.nit:10886 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10570 */
+  /* parser/parser.nit:10888 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10570);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10888);
   }
-  /* ./parser//parser.nit:10572 */
+  /* parser/parser.nit:10890 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10572);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10890);
   }
-  /* ./parser//parser.nit:10573 */
+  /* parser/parser.nit:10891 */
   fra.me.REG[3] = NEW_ALlExpr_parser___parser_prod___ALlExpr___init_allexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10577 */
+  /* parser/parser.nit:10895 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10578 */
+  /* parser/parser.nit:10896 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10578);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10896);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -29632,14 +30422,14 @@ void parser___ReduceAction348___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction349___action(val_t p0, val_t p1){
+void parser___ReduceAction357___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10583;
-  fra.me.meth = LOCATE_parser___ReduceAction349___action;
+  fra.me.line = 10901;
+  fra.me.meth = LOCATE_parser___ReduceAction357___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -29650,37 +30440,37 @@ void parser___ReduceAction349___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10585 */
+  /* parser/parser.nit:10903 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10586 */
+  /* parser/parser.nit:10904 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10587 */
+  /* parser/parser.nit:10905 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10588 */
+  /* parser/parser.nit:10906 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10589 */
+  /* parser/parser.nit:10907 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10591 */
+  /* parser/parser.nit:10909 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10591);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10909);
   }
-  /* ./parser//parser.nit:10593 */
+  /* parser/parser.nit:10911 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10593);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10911);
   }
-  /* ./parser//parser.nit:10594 */
+  /* parser/parser.nit:10912 */
   fra.me.REG[3] = NEW_AGtExpr_parser___parser_prod___AGtExpr___init_agtexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10598 */
+  /* parser/parser.nit:10916 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10599 */
+  /* parser/parser.nit:10917 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10599);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10917);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -29688,14 +30478,14 @@ void parser___ReduceAction349___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction350___action(val_t p0, val_t p1){
+void parser___ReduceAction358___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10604;
-  fra.me.meth = LOCATE_parser___ReduceAction350___action;
+  fra.me.line = 10922;
+  fra.me.meth = LOCATE_parser___ReduceAction358___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -29706,37 +30496,37 @@ void parser___ReduceAction350___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10606 */
+  /* parser/parser.nit:10924 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10607 */
+  /* parser/parser.nit:10925 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10608 */
+  /* parser/parser.nit:10926 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10609 */
+  /* parser/parser.nit:10927 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10610 */
+  /* parser/parser.nit:10928 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10612 */
+  /* parser/parser.nit:10930 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10612);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10930);
   }
-  /* ./parser//parser.nit:10614 */
+  /* parser/parser.nit:10932 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10614);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10932);
   }
-  /* ./parser//parser.nit:10615 */
+  /* parser/parser.nit:10933 */
   fra.me.REG[3] = NEW_AGeExpr_parser___parser_prod___AGeExpr___init_ageexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10619 */
+  /* parser/parser.nit:10937 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10620 */
+  /* parser/parser.nit:10938 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10620);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10938);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -29744,14 +30534,14 @@ void parser___ReduceAction350___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction351___action(val_t p0, val_t p1){
+void parser___ReduceAction359___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10625;
-  fra.me.meth = LOCATE_parser___ReduceAction351___action;
+  fra.me.line = 10943;
+  fra.me.meth = LOCATE_parser___ReduceAction359___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -29762,37 +30552,37 @@ void parser___ReduceAction351___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10627 */
+  /* parser/parser.nit:10945 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10628 */
+  /* parser/parser.nit:10946 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10629 */
+  /* parser/parser.nit:10947 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10630 */
+  /* parser/parser.nit:10948 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10631 */
+  /* parser/parser.nit:10949 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10633 */
+  /* parser/parser.nit:10951 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10633);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10951);
   }
-  /* ./parser//parser.nit:10635 */
+  /* parser/parser.nit:10953 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10635);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10953);
   }
-  /* ./parser//parser.nit:10636 */
+  /* parser/parser.nit:10954 */
   fra.me.REG[3] = NEW_AGgExpr_parser___parser_prod___AGgExpr___init_aggexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10640 */
+  /* parser/parser.nit:10958 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10641 */
+  /* parser/parser.nit:10959 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10641);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10959);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -29800,14 +30590,14 @@ void parser___ReduceAction351___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction352___action(val_t p0, val_t p1){
+void parser___ReduceAction360___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10646;
-  fra.me.meth = LOCATE_parser___ReduceAction352___action;
+  fra.me.line = 10964;
+  fra.me.meth = LOCATE_parser___ReduceAction360___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -29818,37 +30608,37 @@ void parser___ReduceAction352___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10648 */
+  /* parser/parser.nit:10966 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10649 */
+  /* parser/parser.nit:10967 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10650 */
+  /* parser/parser.nit:10968 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10651 */
+  /* parser/parser.nit:10969 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10652 */
+  /* parser/parser.nit:10970 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10654 */
+  /* parser/parser.nit:10972 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10654);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10972);
   }
-  /* ./parser//parser.nit:10656 */
+  /* parser/parser.nit:10974 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10656);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10974);
   }
-  /* ./parser//parser.nit:10657 */
+  /* parser/parser.nit:10975 */
   fra.me.REG[3] = NEW_AStarshipExpr_parser___parser_prod___AStarshipExpr___init_astarshipexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10661 */
+  /* parser/parser.nit:10979 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10662 */
+  /* parser/parser.nit:10980 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10662);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10980);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -29856,14 +30646,14 @@ void parser___ReduceAction352___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction353___action(val_t p0, val_t p1){
+void parser___ReduceAction361___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10667;
-  fra.me.meth = LOCATE_parser___ReduceAction353___action;
+  fra.me.line = 10985;
+  fra.me.meth = LOCATE_parser___ReduceAction361___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -29874,37 +30664,37 @@ void parser___ReduceAction353___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10669 */
+  /* parser/parser.nit:10987 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10670 */
+  /* parser/parser.nit:10988 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10671 */
+  /* parser/parser.nit:10989 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10672 */
+  /* parser/parser.nit:10990 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10673 */
+  /* parser/parser.nit:10991 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10675 */
+  /* parser/parser.nit:10993 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10675);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10993);
   }
-  /* ./parser//parser.nit:10677 */
+  /* parser/parser.nit:10995 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10677);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 10995);
   }
-  /* ./parser//parser.nit:10678 */
+  /* parser/parser.nit:10996 */
   fra.me.REG[3] = NEW_AIsaExpr_parser___parser_prod___AIsaExpr___init_aisaexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10682 */
+  /* parser/parser.nit:11000 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10683 */
+  /* parser/parser.nit:11001 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10683);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11001);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -29912,14 +30702,14 @@ void parser___ReduceAction353___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction355___action(val_t p0, val_t p1){
+void parser___ReduceAction363___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10688;
-  fra.me.meth = LOCATE_parser___ReduceAction355___action;
+  fra.me.line = 11006;
+  fra.me.meth = LOCATE_parser___ReduceAction363___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -29930,37 +30720,37 @@ void parser___ReduceAction355___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10690 */
+  /* parser/parser.nit:11008 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10691 */
+  /* parser/parser.nit:11009 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10692 */
+  /* parser/parser.nit:11010 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10693 */
+  /* parser/parser.nit:11011 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10694 */
+  /* parser/parser.nit:11012 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10696 */
+  /* parser/parser.nit:11014 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10696);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11014);
   }
-  /* ./parser//parser.nit:10698 */
+  /* parser/parser.nit:11016 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10698);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11016);
   }
-  /* ./parser//parser.nit:10699 */
+  /* parser/parser.nit:11017 */
   fra.me.REG[3] = NEW_APlusExpr_parser___parser_prod___APlusExpr___init_aplusexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10703 */
+  /* parser/parser.nit:11021 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10704 */
+  /* parser/parser.nit:11022 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10704);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11022);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -29968,14 +30758,14 @@ void parser___ReduceAction355___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction356___action(val_t p0, val_t p1){
+void parser___ReduceAction364___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10709;
-  fra.me.meth = LOCATE_parser___ReduceAction356___action;
+  fra.me.line = 11027;
+  fra.me.meth = LOCATE_parser___ReduceAction364___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -29986,37 +30776,37 @@ void parser___ReduceAction356___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10711 */
+  /* parser/parser.nit:11029 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10712 */
+  /* parser/parser.nit:11030 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10713 */
+  /* parser/parser.nit:11031 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10714 */
+  /* parser/parser.nit:11032 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10715 */
+  /* parser/parser.nit:11033 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10717 */
+  /* parser/parser.nit:11035 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10717);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11035);
   }
-  /* ./parser//parser.nit:10719 */
+  /* parser/parser.nit:11037 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10719);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11037);
   }
-  /* ./parser//parser.nit:10720 */
+  /* parser/parser.nit:11038 */
   fra.me.REG[3] = NEW_AMinusExpr_parser___parser_prod___AMinusExpr___init_aminusexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10724 */
+  /* parser/parser.nit:11042 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10725 */
+  /* parser/parser.nit:11043 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10725);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11043);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -30024,14 +30814,14 @@ void parser___ReduceAction356___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction358___action(val_t p0, val_t p1){
+void parser___ReduceAction366___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10730;
-  fra.me.meth = LOCATE_parser___ReduceAction358___action;
+  fra.me.line = 11048;
+  fra.me.meth = LOCATE_parser___ReduceAction366___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -30042,37 +30832,37 @@ void parser___ReduceAction358___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10732 */
+  /* parser/parser.nit:11050 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10733 */
+  /* parser/parser.nit:11051 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10734 */
+  /* parser/parser.nit:11052 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10735 */
+  /* parser/parser.nit:11053 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10736 */
+  /* parser/parser.nit:11054 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10738 */
+  /* parser/parser.nit:11056 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10738);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11056);
   }
-  /* ./parser//parser.nit:10740 */
+  /* parser/parser.nit:11058 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10740);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11058);
   }
-  /* ./parser//parser.nit:10741 */
+  /* parser/parser.nit:11059 */
   fra.me.REG[3] = NEW_AStarExpr_parser___parser_prod___AStarExpr___init_astarexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10745 */
+  /* parser/parser.nit:11063 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10746 */
+  /* parser/parser.nit:11064 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10746);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11064);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -30080,14 +30870,14 @@ void parser___ReduceAction358___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction359___action(val_t p0, val_t p1){
+void parser___ReduceAction367___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10751;
-  fra.me.meth = LOCATE_parser___ReduceAction359___action;
+  fra.me.line = 11069;
+  fra.me.meth = LOCATE_parser___ReduceAction367___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -30098,37 +30888,37 @@ void parser___ReduceAction359___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10753 */
+  /* parser/parser.nit:11071 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10754 */
+  /* parser/parser.nit:11072 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10755 */
+  /* parser/parser.nit:11073 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10756 */
+  /* parser/parser.nit:11074 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10757 */
+  /* parser/parser.nit:11075 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10759 */
+  /* parser/parser.nit:11077 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10759);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11077);
   }
-  /* ./parser//parser.nit:10761 */
+  /* parser/parser.nit:11079 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10761);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11079);
   }
-  /* ./parser//parser.nit:10762 */
+  /* parser/parser.nit:11080 */
   fra.me.REG[3] = NEW_ASlashExpr_parser___parser_prod___ASlashExpr___init_aslashexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10766 */
+  /* parser/parser.nit:11084 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10767 */
+  /* parser/parser.nit:11085 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10767);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11085);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -30136,14 +30926,14 @@ void parser___ReduceAction359___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction360___action(val_t p0, val_t p1){
+void parser___ReduceAction368___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10772;
-  fra.me.meth = LOCATE_parser___ReduceAction360___action;
+  fra.me.line = 11090;
+  fra.me.meth = LOCATE_parser___ReduceAction368___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -30154,37 +30944,37 @@ void parser___ReduceAction360___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10774 */
+  /* parser/parser.nit:11092 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10775 */
+  /* parser/parser.nit:11093 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10776 */
+  /* parser/parser.nit:11094 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10777 */
+  /* parser/parser.nit:11095 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10778 */
+  /* parser/parser.nit:11096 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10780 */
+  /* parser/parser.nit:11098 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10780);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11098);
   }
-  /* ./parser//parser.nit:10782 */
+  /* parser/parser.nit:11100 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10782);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11100);
   }
-  /* ./parser//parser.nit:10783 */
+  /* parser/parser.nit:11101 */
   fra.me.REG[3] = NEW_APercentExpr_parser___parser_prod___APercentExpr___init_apercentexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10787 */
+  /* parser/parser.nit:11105 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10788 */
+  /* parser/parser.nit:11106 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10788);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11106);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -30192,14 +30982,14 @@ void parser___ReduceAction360___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction362___action(val_t p0, val_t p1){
+void parser___ReduceAction370___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10793;
-  fra.me.meth = LOCATE_parser___ReduceAction362___action;
+  fra.me.line = 11111;
+  fra.me.meth = LOCATE_parser___ReduceAction370___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -30210,35 +31000,35 @@ void parser___ReduceAction362___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10795 */
+  /* parser/parser.nit:11113 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10796 */
+  /* parser/parser.nit:11114 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10797 */
+  /* parser/parser.nit:11115 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10798 */
+  /* parser/parser.nit:11116 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10800 */
+  /* parser/parser.nit:11118 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TMinus, ID_parser___parser_nodes___TMinus)) /*cast nullable TMinus*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10800);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11118);
   }
-  /* ./parser//parser.nit:10802 */
+  /* parser/parser.nit:11120 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10802);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11120);
   }
-  /* ./parser//parser.nit:10803 */
+  /* parser/parser.nit:11121 */
   fra.me.REG[3] = NEW_AUminusExpr_parser___parser_prod___AUminusExpr___init_auminusexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10807 */
+  /* parser/parser.nit:11125 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10808 */
+  /* parser/parser.nit:11126 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10808);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11126);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -30246,14 +31036,14 @@ void parser___ReduceAction362___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction363___action(val_t p0, val_t p1){
+void parser___ReduceAction371___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10813;
-  fra.me.meth = LOCATE_parser___ReduceAction363___action;
+  fra.me.line = 11131;
+  fra.me.meth = LOCATE_parser___ReduceAction371___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -30264,35 +31054,35 @@ void parser___ReduceAction363___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10815 */
+  /* parser/parser.nit:11133 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10816 */
+  /* parser/parser.nit:11134 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10817 */
+  /* parser/parser.nit:11135 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10818 */
+  /* parser/parser.nit:11136 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10820 */
+  /* parser/parser.nit:11138 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwonce, ID_parser___parser_nodes___TKwonce)) /*cast nullable TKwonce*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10820);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11138);
   }
-  /* ./parser//parser.nit:10822 */
+  /* parser/parser.nit:11140 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10822);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11140);
   }
-  /* ./parser//parser.nit:10823 */
+  /* parser/parser.nit:11141 */
   fra.me.REG[3] = NEW_AOnceExpr_parser___parser_prod___AOnceExpr___init_aonceexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10827 */
+  /* parser/parser.nit:11145 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10828 */
+  /* parser/parser.nit:11146 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10828);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11146);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -30300,16 +31090,16 @@ void parser___ReduceAction363___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction365___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+void parser___ReduceAction373___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10833;
-  fra.me.meth = LOCATE_parser___ReduceAction365___action;
+  fra.me.line = 11151;
+  fra.me.meth = LOCATE_parser___ReduceAction373___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 7;
+  fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -30317,51 +31107,45 @@ void parser___ReduceAction365___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10835 */
+  /* parser/parser.nit:11153 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10836 */
+  /* parser/parser.nit:11154 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10837 */
+  /* parser/parser.nit:11155 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10838 */
+  /* parser/parser.nit:11156 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10839 */
+  /* parser/parser.nit:11157 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10840 */
-  fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:10842 */
+  /* parser/parser.nit:11159 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast nullable TKwnew*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10842);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11159);
   }
-  /* ./parser//parser.nit:10844 */
+  /* parser/parser.nit:11161 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10844);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11161);
   }
-  /* ./parser//parser.nit:10846 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:11163 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10846);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11163);
   }
-  /* ./parser//parser.nit:10847 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
-  fra.me.REG[6] = fra.me.REG[3];
-  /* ./parser//parser.nit:10848 */
-  fra.me.REG[6] = NEW_ANewExpr_parser___parser_prod___ANewExpr___init_anewexpr(fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[6]);
-  /* ./parser//parser.nit:10854 */
-  fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:10855 */
+  /* parser/parser.nit:11164 */
+  fra.me.REG[3] = NEW_ANewExpr_parser___parser_prod___ANewExpr___init_anewexpr(fra.me.REG[5], fra.me.REG[4], NIT_NULL, fra.me.REG[3]);
+  /* parser/parser.nit:11170 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:11171 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10855);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11171);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -30369,14 +31153,14 @@ void parser___ReduceAction365___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction366___action(val_t p0, val_t p1){
+void parser___ReduceAction374___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10860;
-  fra.me.meth = LOCATE_parser___ReduceAction366___action;
+  fra.me.line = 11176;
+  fra.me.meth = LOCATE_parser___ReduceAction374___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -30388,45 +31172,45 @@ void parser___ReduceAction366___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10862 */
+  /* parser/parser.nit:11178 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10863 */
+  /* parser/parser.nit:11179 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10864 */
+  /* parser/parser.nit:11180 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10865 */
+  /* parser/parser.nit:11181 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10866 */
+  /* parser/parser.nit:11182 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10867 */
+  /* parser/parser.nit:11183 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10869 */
+  /* parser/parser.nit:11185 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwisset, ID_parser___parser_nodes___TKwisset)) /*cast nullable TKwisset*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10869);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11185);
   }
-  /* ./parser//parser.nit:10871 */
+  /* parser/parser.nit:11187 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10871);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11187);
   }
-  /* ./parser//parser.nit:10873 */
+  /* parser/parser.nit:11189 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10873);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11189);
   }
-  /* ./parser//parser.nit:10874 */
+  /* parser/parser.nit:11190 */
   fra.me.REG[3] = NEW_AIssetAttrExpr_parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10879 */
+  /* parser/parser.nit:11195 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10880 */
+  /* parser/parser.nit:11196 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10880);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11196);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -30434,14 +31218,14 @@ void parser___ReduceAction366___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction367___action(val_t p0, val_t p1){
+void parser___ReduceAction375___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10885;
-  fra.me.meth = LOCATE_parser___ReduceAction367___action;
+  fra.me.line = 11201;
+  fra.me.meth = LOCATE_parser___ReduceAction375___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -30453,35 +31237,35 @@ void parser___ReduceAction367___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10887 */
+  /* parser/parser.nit:11203 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10888 */
+  /* parser/parser.nit:11204 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10889 */
+  /* parser/parser.nit:11205 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10891 */
+  /* parser/parser.nit:11207 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwisset, ID_parser___parser_nodes___TKwisset)) /*cast nullable TKwisset*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10891);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11207);
   }
-  /* ./parser//parser.nit:10892 */
+  /* parser/parser.nit:11208 */
   fra.me.REG[5] = NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
-  /* ./parser//parser.nit:10895 */
+  /* parser/parser.nit:11210 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10895);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11210);
   }
-  /* ./parser//parser.nit:10896 */
+  /* parser/parser.nit:11211 */
   fra.me.REG[3] = NEW_AIssetAttrExpr_parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr(fra.me.REG[4], fra.me.REG[5], fra.me.REG[3]);
-  /* ./parser//parser.nit:10901 */
+  /* parser/parser.nit:11216 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10902 */
+  /* parser/parser.nit:11217 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10902);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11217);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -30489,14 +31273,14 @@ void parser___ReduceAction367___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction368___action(val_t p0, val_t p1){
+void parser___ReduceAction376___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10907;
-  fra.me.meth = LOCATE_parser___ReduceAction368___action;
+  fra.me.line = 11222;
+  fra.me.meth = LOCATE_parser___ReduceAction376___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -30507,37 +31291,37 @@ void parser___ReduceAction368___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10909 */
+  /* parser/parser.nit:11224 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10910 */
+  /* parser/parser.nit:11225 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10911 */
+  /* parser/parser.nit:11226 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10912 */
+  /* parser/parser.nit:11227 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10913 */
+  /* parser/parser.nit:11228 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10915 */
+  /* parser/parser.nit:11230 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10915);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11230);
   }
-  /* ./parser//parser.nit:10917 */
+  /* parser/parser.nit:11232 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10917);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11232);
   }
-  /* ./parser//parser.nit:10918 */
+  /* parser/parser.nit:11233 */
   fra.me.REG[3] = NEW_AAttrExpr_parser___parser_prod___AAttrExpr___init_aattrexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10922 */
+  /* parser/parser.nit:11237 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10923 */
+  /* parser/parser.nit:11238 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10923);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11238);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -30545,14 +31329,14 @@ void parser___ReduceAction368___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction369___action(val_t p0, val_t p1){
+void parser___ReduceAction377___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10928;
-  fra.me.meth = LOCATE_parser___ReduceAction369___action;
+  fra.me.line = 11243;
+  fra.me.meth = LOCATE_parser___ReduceAction377___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -30563,27 +31347,27 @@ void parser___ReduceAction369___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10930 */
+  /* parser/parser.nit:11245 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10931 */
+  /* parser/parser.nit:11246 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10932 */
+  /* parser/parser.nit:11247 */
   fra.me.REG[4] = NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
-  /* ./parser//parser.nit:10935 */
+  /* parser/parser.nit:11249 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10935);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11249);
   }
-  /* ./parser//parser.nit:10936 */
+  /* parser/parser.nit:11250 */
   fra.me.REG[3] = NEW_AAttrExpr_parser___parser_prod___AAttrExpr___init_aattrexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:10940 */
+  /* parser/parser.nit:11254 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:10941 */
+  /* parser/parser.nit:11255 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10941);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11255);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -30591,16 +31375,16 @@ void parser___ReduceAction369___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction376___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+void parser___ReduceAction384___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10946;
-  fra.me.meth = LOCATE_parser___ReduceAction376___action;
+  fra.me.line = 11260;
+  fra.me.meth = LOCATE_parser___ReduceAction384___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 7;
+  fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -30608,43 +31392,37 @@ void parser___ReduceAction376___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10948 */
+  /* parser/parser.nit:11262 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10949 */
+  /* parser/parser.nit:11263 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10950 */
+  /* parser/parser.nit:11264 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10951 */
+  /* parser/parser.nit:11265 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:10952 */
-  fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:10954 */
+  /* parser/parser.nit:11267 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10954);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11267);
   }
-  /* ./parser//parser.nit:10956 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:11269 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10956);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11269);
   }
-  /* ./parser//parser.nit:10957 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
-  fra.me.REG[5] = fra.me.REG[3];
-  /* ./parser//parser.nit:10958 */
-  fra.me.REG[6] = NEW_ABraExpr_parser___parser_prod___ABraExpr___init_abraexpr(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
-  /* ./parser//parser.nit:10963 */
-  fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:10964 */
+  /* parser/parser.nit:11270 */
+  fra.me.REG[5] = NEW_ABraExpr_parser___parser_prod___ABraExpr___init_abraexpr(fra.me.REG[4], fra.me.REG[3], fra.me.REG[5]);
+  /* parser/parser.nit:11275 */
+  fra.me.REG[2] = fra.me.REG[5];
+  /* parser/parser.nit:11276 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10964);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11276);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -30652,16 +31430,16 @@ void parser___ReduceAction376___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction377___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
+void parser___ReduceAction385___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 10969;
-  fra.me.meth = LOCATE_parser___ReduceAction377___action;
+  fra.me.line = 11281;
+  fra.me.meth = LOCATE_parser___ReduceAction385___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 8;
+  fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -30670,63 +31448,57 @@ void parser___ReduceAction377___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
-  fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:10971 */
+  /* parser/parser.nit:11283 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:10972 */
+  /* parser/parser.nit:11284 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10973 */
+  /* parser/parser.nit:11285 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10974 */
+  /* parser/parser.nit:11286 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10975 */
+  /* parser/parser.nit:11287 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10976 */
+  /* parser/parser.nit:11288 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10977 */
+  /* parser/parser.nit:11289 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10978 */
+  /* parser/parser.nit:11290 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:10979 */
-  fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:10981 */
+  /* parser/parser.nit:11292 */
   REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast nullable TKwnew*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10981);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11292);
   }
-  /* ./parser//parser.nit:10983 */
+  /* parser/parser.nit:11294 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10983);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11294);
   }
-  /* ./parser//parser.nit:10985 */
+  /* parser/parser.nit:11296 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10985);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11296);
   }
-  /* ./parser//parser.nit:10987 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:11298 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 10987);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11298);
   }
-  /* ./parser//parser.nit:10988 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]);
-  fra.me.REG[7] = fra.me.REG[3];
-  /* ./parser//parser.nit:10989 */
-  fra.me.REG[7] = NEW_ANewExpr_parser___parser_prod___ANewExpr___init_anewexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[7]);
-  /* ./parser//parser.nit:10995 */
-  fra.me.REG[2] = fra.me.REG[7];
-  /* ./parser//parser.nit:10996 */
+  /* parser/parser.nit:11299 */
+  fra.me.REG[3] = NEW_ANewExpr_parser___parser_prod___ANewExpr___init_anewexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:11305 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:11306 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 10996);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11306);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -30734,16 +31506,16 @@ void parser___ReduceAction377___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction378___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
+void parser___ReduceAction386___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11001;
-  fra.me.meth = LOCATE_parser___ReduceAction378___action;
+  fra.me.line = 11311;
+  fra.me.meth = LOCATE_parser___ReduceAction386___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
+  fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -30751,49 +31523,62 @@ void parser___ReduceAction378___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11003 */
+  /* parser/parser.nit:11313 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11004 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11005 */
+  /* parser/parser.nit:11314 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11006 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11007 */
-  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11008 */
+  /* parser/parser.nit:11315 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11009 */
+  /* parser/parser.nit:11316 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11010 */
-  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11011 */
+  /* parser/parser.nit:11317 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11318 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11012 */
+  /* parser/parser.nit:11319 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11014 */
+  /* parser/parser.nit:11320 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11321 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11322 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11324 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast nullable TObra*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11324);
+  }
+  /* parser/parser.nit:11326 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11326);
+  }
+  /* parser/parser.nit:11328 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11014);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11328);
   }
-  /* ./parser//parser.nit:11016 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
+  /* parser/parser.nit:11330 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TCbra, ID_parser___parser_nodes___TCbra)) /*cast nullable TCbra*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11016);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11330);
   }
-  /* ./parser//parser.nit:11017 */
-  fra.me.REG[3] = NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___init_acrangeexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:11021 */
+  /* parser/parser.nit:11331 */
+  fra.me.REG[3] = NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___init_acrangeexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:11337 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11022 */
+  /* parser/parser.nit:11338 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11022);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11338);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -30801,16 +31586,16 @@ void parser___ReduceAction378___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction379___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
+void parser___ReduceAction387___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11027;
-  fra.me.meth = LOCATE_parser___ReduceAction379___action;
+  fra.me.line = 11343;
+  fra.me.meth = LOCATE_parser___ReduceAction387___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
+  fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -30818,49 +31603,62 @@ void parser___ReduceAction379___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11029 */
+  /* parser/parser.nit:11345 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11030 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11031 */
+  /* parser/parser.nit:11346 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11032 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11033 */
-  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11034 */
+  /* parser/parser.nit:11347 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11035 */
+  /* parser/parser.nit:11348 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11036 */
-  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11037 */
+  /* parser/parser.nit:11349 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11350 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11038 */
+  /* parser/parser.nit:11351 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11040 */
+  /* parser/parser.nit:11352 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11353 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11354 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11356 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast nullable TObra*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11356);
+  }
+  /* parser/parser.nit:11358 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11358);
+  }
+  /* parser/parser.nit:11360 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11040);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11360);
   }
-  /* ./parser//parser.nit:11042 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
+  /* parser/parser.nit:11362 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast nullable TObra*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11042);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11362);
   }
-  /* ./parser//parser.nit:11043 */
-  fra.me.REG[3] = NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___init_aorangeexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:11047 */
+  /* parser/parser.nit:11363 */
+  fra.me.REG[3] = NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___init_aorangeexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:11369 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11048 */
+  /* parser/parser.nit:11370 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11048);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11370);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -30868,48 +31666,42 @@ void parser___ReduceAction379___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction380___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+void parser___ReduceAction388___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11053;
-  fra.me.meth = LOCATE_parser___ReduceAction380___action;
+  fra.me.line = 11375;
+  fra.me.meth = LOCATE_parser___ReduceAction388___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
+  fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11055 */
+  /* parser/parser.nit:11377 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11056 */
+  /* parser/parser.nit:11378 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11057 */
-  fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11059 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:11380 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11059);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11380);
   }
-  /* ./parser//parser.nit:11060 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
-  fra.me.REG[4] = fra.me.REG[3];
-  /* ./parser//parser.nit:11061 */
-  fra.me.REG[4] = NEW_AArrayExpr_parser___parser_prod___AArrayExpr___init_aarrayexpr(fra.me.REG[4]);
-  /* ./parser//parser.nit:11064 */
-  fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:11065 */
+  /* parser/parser.nit:11381 */
+  fra.me.REG[3] = NEW_AArrayExpr_parser___parser_prod___AArrayExpr___init_aarrayexpr(fra.me.REG[3]);
+  /* parser/parser.nit:11384 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:11385 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11065);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11385);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -30917,14 +31709,14 @@ void parser___ReduceAction380___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction381___action(val_t p0, val_t p1){
+void parser___ReduceAction389___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11070;
-  fra.me.meth = LOCATE_parser___ReduceAction381___action;
+  fra.me.line = 11390;
+  fra.me.meth = LOCATE_parser___ReduceAction389___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -30934,25 +31726,25 @@ void parser___ReduceAction381___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11072 */
+  /* parser/parser.nit:11392 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11073 */
+  /* parser/parser.nit:11393 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11075 */
+  /* parser/parser.nit:11395 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwself, ID_parser___parser_nodes___TKwself)) /*cast nullable TKwself*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11075);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11395);
   }
-  /* ./parser//parser.nit:11076 */
+  /* parser/parser.nit:11396 */
   fra.me.REG[3] = NEW_ASelfExpr_parser___parser_prod___ASelfExpr___init_aselfexpr(fra.me.REG[3]);
-  /* ./parser//parser.nit:11079 */
+  /* parser/parser.nit:11399 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11080 */
+  /* parser/parser.nit:11400 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11080);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11400);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -30960,14 +31752,14 @@ void parser___ReduceAction381___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction382___action(val_t p0, val_t p1){
+void parser___ReduceAction390___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11085;
-  fra.me.meth = LOCATE_parser___ReduceAction382___action;
+  fra.me.line = 11405;
+  fra.me.meth = LOCATE_parser___ReduceAction390___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -30977,25 +31769,25 @@ void parser___ReduceAction382___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11087 */
+  /* parser/parser.nit:11407 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11088 */
+  /* parser/parser.nit:11408 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11090 */
+  /* parser/parser.nit:11410 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwtrue, ID_parser___parser_nodes___TKwtrue)) /*cast nullable TKwtrue*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11090);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11410);
   }
-  /* ./parser//parser.nit:11091 */
+  /* parser/parser.nit:11411 */
   fra.me.REG[3] = NEW_ATrueExpr_parser___parser_prod___ATrueExpr___init_atrueexpr(fra.me.REG[3]);
-  /* ./parser//parser.nit:11094 */
+  /* parser/parser.nit:11414 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11095 */
+  /* parser/parser.nit:11415 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11095);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11415);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -31003,14 +31795,14 @@ void parser___ReduceAction382___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction383___action(val_t p0, val_t p1){
+void parser___ReduceAction391___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11100;
-  fra.me.meth = LOCATE_parser___ReduceAction383___action;
+  fra.me.line = 11420;
+  fra.me.meth = LOCATE_parser___ReduceAction391___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -31020,25 +31812,25 @@ void parser___ReduceAction383___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11102 */
+  /* parser/parser.nit:11422 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11103 */
+  /* parser/parser.nit:11423 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11105 */
+  /* parser/parser.nit:11425 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwfalse, ID_parser___parser_nodes___TKwfalse)) /*cast nullable TKwfalse*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11105);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11425);
   }
-  /* ./parser//parser.nit:11106 */
+  /* parser/parser.nit:11426 */
   fra.me.REG[3] = NEW_AFalseExpr_parser___parser_prod___AFalseExpr___init_afalseexpr(fra.me.REG[3]);
-  /* ./parser//parser.nit:11109 */
+  /* parser/parser.nit:11429 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11110 */
+  /* parser/parser.nit:11430 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11110);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11430);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -31046,14 +31838,14 @@ void parser___ReduceAction383___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction384___action(val_t p0, val_t p1){
+void parser___ReduceAction392___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11115;
-  fra.me.meth = LOCATE_parser___ReduceAction384___action;
+  fra.me.line = 11435;
+  fra.me.meth = LOCATE_parser___ReduceAction392___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -31063,25 +31855,25 @@ void parser___ReduceAction384___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11117 */
+  /* parser/parser.nit:11437 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11118 */
+  /* parser/parser.nit:11438 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11120 */
+  /* parser/parser.nit:11440 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwnull, ID_parser___parser_nodes___TKwnull)) /*cast nullable TKwnull*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11120);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11440);
   }
-  /* ./parser//parser.nit:11121 */
+  /* parser/parser.nit:11441 */
   fra.me.REG[3] = NEW_ANullExpr_parser___parser_prod___ANullExpr___init_anullexpr(fra.me.REG[3]);
-  /* ./parser//parser.nit:11124 */
+  /* parser/parser.nit:11444 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11125 */
+  /* parser/parser.nit:11445 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11125);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11445);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -31089,14 +31881,14 @@ void parser___ReduceAction384___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction385___action(val_t p0, val_t p1){
+void parser___ReduceAction393___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11130;
-  fra.me.meth = LOCATE_parser___ReduceAction385___action;
+  fra.me.line = 11450;
+  fra.me.meth = LOCATE_parser___ReduceAction393___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -31106,25 +31898,25 @@ void parser___ReduceAction385___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11132 */
+  /* parser/parser.nit:11452 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11133 */
+  /* parser/parser.nit:11453 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11135 */
+  /* parser/parser.nit:11455 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TNumber, ID_parser___parser_nodes___TNumber)) /*cast nullable TNumber*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11135);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11455);
   }
-  /* ./parser//parser.nit:11136 */
+  /* parser/parser.nit:11456 */
   fra.me.REG[3] = NEW_AIntExpr_parser___parser_prod___AIntExpr___init_aintexpr(fra.me.REG[3]);
-  /* ./parser//parser.nit:11139 */
+  /* parser/parser.nit:11459 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11140 */
+  /* parser/parser.nit:11460 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11140);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11460);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -31132,14 +31924,14 @@ void parser___ReduceAction385___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction386___action(val_t p0, val_t p1){
+void parser___ReduceAction394___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11145;
-  fra.me.meth = LOCATE_parser___ReduceAction386___action;
+  fra.me.line = 11465;
+  fra.me.meth = LOCATE_parser___ReduceAction394___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -31149,25 +31941,25 @@ void parser___ReduceAction386___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11147 */
+  /* parser/parser.nit:11467 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11148 */
+  /* parser/parser.nit:11468 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11150 */
+  /* parser/parser.nit:11470 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TFloat, ID_parser___parser_nodes___TFloat)) /*cast nullable TFloat*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11150);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11470);
   }
-  /* ./parser//parser.nit:11151 */
+  /* parser/parser.nit:11471 */
   fra.me.REG[3] = NEW_AFloatExpr_parser___parser_prod___AFloatExpr___init_afloatexpr(fra.me.REG[3]);
-  /* ./parser//parser.nit:11154 */
+  /* parser/parser.nit:11474 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11155 */
+  /* parser/parser.nit:11475 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11155);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11475);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -31175,14 +31967,14 @@ void parser___ReduceAction386___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction387___action(val_t p0, val_t p1){
+void parser___ReduceAction395___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11160;
-  fra.me.meth = LOCATE_parser___ReduceAction387___action;
+  fra.me.line = 11480;
+  fra.me.meth = LOCATE_parser___ReduceAction395___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -31192,25 +31984,25 @@ void parser___ReduceAction387___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11162 */
+  /* parser/parser.nit:11482 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11163 */
+  /* parser/parser.nit:11483 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11165 */
+  /* parser/parser.nit:11485 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TChar, ID_parser___parser_nodes___TChar)) /*cast nullable TChar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11165);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11485);
   }
-  /* ./parser//parser.nit:11166 */
+  /* parser/parser.nit:11486 */
   fra.me.REG[3] = NEW_ACharExpr_parser___parser_prod___ACharExpr___init_acharexpr(fra.me.REG[3]);
-  /* ./parser//parser.nit:11169 */
+  /* parser/parser.nit:11489 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11170 */
+  /* parser/parser.nit:11490 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11170);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11490);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -31218,14 +32010,14 @@ void parser___ReduceAction387___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction388___action(val_t p0, val_t p1){
+void parser___ReduceAction396___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11175;
-  fra.me.meth = LOCATE_parser___ReduceAction388___action;
+  fra.me.line = 11495;
+  fra.me.meth = LOCATE_parser___ReduceAction396___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -31235,25 +32027,86 @@ void parser___ReduceAction388___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11177 */
+  /* parser/parser.nit:11497 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11178 */
+  /* parser/parser.nit:11498 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11180 */
+  /* parser/parser.nit:11500 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast nullable TString*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11180);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11500);
+  }
+  /* parser/parser.nit:11501 */
+  fra.me.REG[3] = NEW_AStringExpr_parser___parser_prod___AStringExpr___init_astringexpr(fra.me.REG[3]);
+  /* parser/parser.nit:11504 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:11505 */
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11505);
+  }
+  REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
+  REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
+  CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void parser___ReduceAction398___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser;
+  fra.me.line = 11510;
+  fra.me.meth = LOCATE_parser___ReduceAction398___action;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 6;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* parser/parser.nit:11512 */
+  fra.me.REG[2] = NIT_NULL;
+  /* parser/parser.nit:11513 */
+  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11514 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11515 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11517 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast nullable TOpar*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11517);
+  }
+  /* parser/parser.nit:11519 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11519);
   }
-  /* ./parser//parser.nit:11181 */
-  fra.me.REG[3] = NEW_AStringExpr_parser___parser_prod___AStringExpr___init_astringexpr(fra.me.REG[3]);
-  /* ./parser//parser.nit:11184 */
+  /* parser/parser.nit:11521 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast nullable TCpar*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11521);
+  }
+  /* parser/parser.nit:11522 */
+  fra.me.REG[3] = NEW_AParExpr_parser___parser_prod___AParExpr___init_aparexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:11527 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11185 */
+  /* parser/parser.nit:11528 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11185);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11528);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -31261,16 +32114,16 @@ void parser___ReduceAction388___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction391___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
+void parser___ReduceAction399___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11190;
-  fra.me.meth = LOCATE_parser___ReduceAction391___action;
+  fra.me.line = 11533;
+  fra.me.meth = LOCATE_parser___ReduceAction399___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
+  fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -31278,57 +32131,71 @@ void parser___ReduceAction391___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11192 */
+  /* parser/parser.nit:11535 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11193 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11194 */
+  /* parser/parser.nit:11536 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11195 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11196 */
-  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11197 */
+  /* parser/parser.nit:11537 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11198 */
+  /* parser/parser.nit:11538 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11199 */
-  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11200 */
-  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11201 */
+  /* parser/parser.nit:11539 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11202 */
+  /* parser/parser.nit:11540 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11204 */
-  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
+  /* parser/parser.nit:11541 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11542 */
+  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11543 */
+  fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11544 */
+  fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11545 */
+  fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11547 */
+  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11204);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11547);
   }
-  /* ./parser//parser.nit:11206 */
-  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast nullable TKwas*/;
+  /* parser/parser.nit:11549 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast nullable TKwas*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11206);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11549);
   }
-  /* ./parser//parser.nit:11208 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
+  /* parser/parser.nit:11551 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast nullable TOpar*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11551);
+  }
+  /* parser/parser.nit:11553 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast nullable AType*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11553);
+  }
+  /* parser/parser.nit:11555 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast nullable TCpar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11208);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11555);
   }
-  /* ./parser//parser.nit:11209 */
-  fra.me.REG[3] = NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___init_aascastexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:11214 */
+  /* parser/parser.nit:11556 */
+  fra.me.REG[3] = NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___init_aascastexpr(fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:11563 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11215 */
+  /* parser/parser.nit:11564 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11215);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11564);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -31336,16 +32203,16 @@ void parser___ReduceAction391___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction392___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+void parser___ReduceAction400___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11220;
-  fra.me.meth = LOCATE_parser___ReduceAction392___action;
+  fra.me.line = 11569;
+  fra.me.meth = LOCATE_parser___ReduceAction400___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 7;
+  fra.me.REG_size = 9;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -31354,67 +32221,81 @@ void parser___ReduceAction392___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[7] = NIT_NULL;
+  fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11222 */
+  /* parser/parser.nit:11571 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11223 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11224 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11225 */
+  /* parser/parser.nit:11572 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11226 */
+  /* parser/parser.nit:11573 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11227 */
+  /* parser/parser.nit:11574 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11228 */
+  /* parser/parser.nit:11575 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11229 */
+  /* parser/parser.nit:11576 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11230 */
-  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11231 */
-  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11232 */
+  /* parser/parser.nit:11577 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11233 */
+  /* parser/parser.nit:11578 */
   fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11234 */
-  fra.me.REG[6] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11236 */
-  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
+  /* parser/parser.nit:11579 */
+  fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11580 */
+  fra.me.REG[7] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11581 */
+  fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11582 */
+  fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11583 */
+  fra.me.REG[8] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11585 */
+  REGB0 = TAG_Bool((fra.me.REG[8]==NIT_NULL) || VAL_ISA(fra.me.REG[8], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11236);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11585);
   }
-  /* ./parser//parser.nit:11238 */
-  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast nullable TKwas*/;
+  /* parser/parser.nit:11587 */
+  REGB0 = TAG_Bool((fra.me.REG[7]==NIT_NULL) || VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast nullable TKwas*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11238);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11587);
   }
-  /* ./parser//parser.nit:11240 */
-  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwnot, ID_parser___parser_nodes___TKwnot)) /*cast nullable TKwnot*/;
+  /* parser/parser.nit:11589 */
+  REGB0 = TAG_Bool((fra.me.REG[6]==NIT_NULL) || VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast nullable TOpar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11240);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11589);
   }
-  /* ./parser//parser.nit:11242 */
-  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwnull, ID_parser___parser_nodes___TKwnull)) /*cast nullable TKwnull*/;
+  /* parser/parser.nit:11591 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwnot, ID_parser___parser_nodes___TKwnot)) /*cast nullable TKwnot*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11591);
+  }
+  /* parser/parser.nit:11593 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwnull, ID_parser___parser_nodes___TKwnull)) /*cast nullable TKwnull*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11593);
+  }
+  /* parser/parser.nit:11595 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast nullable TCpar*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11242);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11595);
   }
-  /* ./parser//parser.nit:11243 */
-  fra.me.REG[3] = NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:11249 */
+  /* parser/parser.nit:11596 */
+  fra.me.REG[3] = NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(fra.me.REG[8], fra.me.REG[7], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:11604 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11250 */
+  /* parser/parser.nit:11605 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11250);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11605);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -31422,15 +32303,15 @@ void parser___ReduceAction392___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction393___action(val_t p0, val_t p1){
+void parser___ReduceAction401___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11255;
-  fra.me.meth = LOCATE_parser___ReduceAction393___action;
+  fra.me.line = 11610;
+  fra.me.meth = LOCATE_parser___ReduceAction401___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -31442,30 +32323,30 @@ void parser___ReduceAction393___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11257 */
+  /* parser/parser.nit:11612 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11258 */
+  /* parser/parser.nit:11613 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11259 */
+  /* parser/parser.nit:11614 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11260 */
+  /* parser/parser.nit:11615 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11262 */
+  /* parser/parser.nit:11617 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11262);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11617);
   }
-  /* ./parser//parser.nit:11264 */
+  /* parser/parser.nit:11619 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11264);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11619);
   }
-  /* ./parser//parser.nit:11265 */
+  /* parser/parser.nit:11620 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:11266 */
+  /* parser/parser.nit:11621 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -31480,18 +32361,18 @@ void parser___ReduceAction393___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:11267 */
+    /* parser/parser.nit:11622 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:11269 */
+  /* parser/parser.nit:11624 */
   fra.me.REG[5] = NEW_ASuperstringExpr_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr(fra.me.REG[5]);
-  /* ./parser//parser.nit:11272 */
+  /* parser/parser.nit:11627 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:11273 */
+  /* parser/parser.nit:11628 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11273);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11628);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -31499,15 +32380,15 @@ void parser___ReduceAction393___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction394___action(val_t p0, val_t p1){
+void parser___ReduceAction402___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11278;
-  fra.me.meth = LOCATE_parser___ReduceAction394___action;
+  fra.me.line = 11633;
+  fra.me.meth = LOCATE_parser___ReduceAction402___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -31520,41 +32401,41 @@ void parser___ReduceAction394___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11280 */
+  /* parser/parser.nit:11635 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11281 */
+  /* parser/parser.nit:11636 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11282 */
+  /* parser/parser.nit:11637 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11283 */
+  /* parser/parser.nit:11638 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11284 */
+  /* parser/parser.nit:11639 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11286 */
+  /* parser/parser.nit:11641 */
   REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11286);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11641);
   }
-  /* ./parser//parser.nit:11288 */
+  /* parser/parser.nit:11643 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11288);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11643);
   }
-  /* ./parser//parser.nit:11290 */
+  /* parser/parser.nit:11645 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11290);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11645);
   }
-  /* ./parser//parser.nit:11291 */
+  /* parser/parser.nit:11646 */
   fra.me.REG[5] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[5]);
   fra.me.REG[6] = fra.me.REG[5];
-  /* ./parser//parser.nit:11292 */
+  /* parser/parser.nit:11647 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
   fra.me.REG[6] = fra.me.REG[4];
-  /* ./parser//parser.nit:11293 */
+  /* parser/parser.nit:11648 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -31569,18 +32450,18 @@ void parser___ReduceAction394___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:11294 */
+    /* parser/parser.nit:11649 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:11296 */
+  /* parser/parser.nit:11651 */
   fra.me.REG[6] = NEW_ASuperstringExpr_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr(fra.me.REG[6]);
-  /* ./parser//parser.nit:11299 */
+  /* parser/parser.nit:11654 */
   fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:11300 */
+  /* parser/parser.nit:11655 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11300);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11655);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -31588,15 +32469,15 @@ void parser___ReduceAction394___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction395___action(val_t p0, val_t p1){
+void parser___ReduceAction403___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11305;
-  fra.me.meth = LOCATE_parser___ReduceAction395___action;
+  fra.me.line = 11660;
+  fra.me.meth = LOCATE_parser___ReduceAction403___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -31608,19 +32489,19 @@ void parser___ReduceAction395___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11307 */
+  /* parser/parser.nit:11662 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11308 */
+  /* parser/parser.nit:11663 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11309 */
+  /* parser/parser.nit:11664 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11310 */
+  /* parser/parser.nit:11665 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11311 */
+  /* parser/parser.nit:11666 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11312 */
+  /* parser/parser.nit:11667 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11315 */
+  /* parser/parser.nit:11670 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -31635,10 +32516,10 @@ void parser___ReduceAction395___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:11316 */
+    /* parser/parser.nit:11671 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
   }
-  /* ./parser//parser.nit:11318 */
+  /* parser/parser.nit:11673 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -31653,16 +32534,16 @@ void parser___ReduceAction395___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:11319 */
+    /* parser/parser.nit:11674 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:11321 */
+  /* parser/parser.nit:11676 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:11322 */
+  /* parser/parser.nit:11677 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11322);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11677);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -31670,14 +32551,14 @@ void parser___ReduceAction395___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction396___action(val_t p0, val_t p1){
+void parser___ReduceAction404___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11327;
-  fra.me.meth = LOCATE_parser___ReduceAction396___action;
+  fra.me.line = 11682;
+  fra.me.meth = LOCATE_parser___ReduceAction404___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -31687,25 +32568,25 @@ void parser___ReduceAction396___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11329 */
+  /* parser/parser.nit:11684 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11330 */
+  /* parser/parser.nit:11685 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11332 */
+  /* parser/parser.nit:11687 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TStartString, ID_parser___parser_nodes___TStartString)) /*cast nullable TStartString*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11332);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11687);
   }
-  /* ./parser//parser.nit:11333 */
+  /* parser/parser.nit:11688 */
   fra.me.REG[3] = NEW_AStartStringExpr_parser___parser_prod___AStartStringExpr___init_astartstringexpr(fra.me.REG[3]);
-  /* ./parser//parser.nit:11336 */
+  /* parser/parser.nit:11691 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11337 */
+  /* parser/parser.nit:11692 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11337);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11692);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -31713,14 +32594,14 @@ void parser___ReduceAction396___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction398___action(val_t p0, val_t p1){
+void parser___ReduceAction406___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11342;
-  fra.me.meth = LOCATE_parser___ReduceAction398___action;
+  fra.me.line = 11697;
+  fra.me.meth = LOCATE_parser___ReduceAction406___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -31730,25 +32611,25 @@ void parser___ReduceAction398___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11344 */
+  /* parser/parser.nit:11699 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11345 */
+  /* parser/parser.nit:11700 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11347 */
+  /* parser/parser.nit:11702 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TMidString, ID_parser___parser_nodes___TMidString)) /*cast nullable TMidString*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11347);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11702);
   }
-  /* ./parser//parser.nit:11348 */
+  /* parser/parser.nit:11703 */
   fra.me.REG[3] = NEW_AMidStringExpr_parser___parser_prod___AMidStringExpr___init_amidstringexpr(fra.me.REG[3]);
-  /* ./parser//parser.nit:11351 */
+  /* parser/parser.nit:11706 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11352 */
+  /* parser/parser.nit:11707 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11352);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11707);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -31756,14 +32637,14 @@ void parser___ReduceAction398___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction399___action(val_t p0, val_t p1){
+void parser___ReduceAction407___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11357;
-  fra.me.meth = LOCATE_parser___ReduceAction399___action;
+  fra.me.line = 11712;
+  fra.me.meth = LOCATE_parser___ReduceAction407___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -31773,25 +32654,25 @@ void parser___ReduceAction399___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11359 */
+  /* parser/parser.nit:11714 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11360 */
+  /* parser/parser.nit:11715 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11362 */
+  /* parser/parser.nit:11717 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TEndString, ID_parser___parser_nodes___TEndString)) /*cast nullable TEndString*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11362);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11717);
   }
-  /* ./parser//parser.nit:11363 */
+  /* parser/parser.nit:11718 */
   fra.me.REG[3] = NEW_AEndStringExpr_parser___parser_prod___AEndStringExpr___init_aendstringexpr(fra.me.REG[3]);
-  /* ./parser//parser.nit:11366 */
+  /* parser/parser.nit:11721 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11367 */
+  /* parser/parser.nit:11722 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11367);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11722);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -31799,40 +32680,201 @@ void parser___ReduceAction399___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction400___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+void parser___ReduceAction408___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
-  val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11372;
-  fra.me.meth = LOCATE_parser___ReduceAction400___action;
+  fra.me.line = 11727;
+  fra.me.meth = LOCATE_parser___ReduceAction408___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
+  fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11374 */
+  /* parser/parser.nit:11729 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11375 */
+  /* parser/parser.nit:11730 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11376 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11377 */
+  /* parser/parser.nit:11731 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11732 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11733 */
+  fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11734 */
+  fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:11736 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast nullable TOpar*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11736);
+  }
+  /* parser/parser.nit:11738 */
+  REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11738);
+  }
+  /* parser/parser.nit:11739 */
+  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
+  fra.me.REG[6] = fra.me.REG[4];
+  /* parser/parser.nit:11741 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast nullable TCpar*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11741);
+  }
+  /* parser/parser.nit:11742 */
+  fra.me.REG[3] = NEW_AParExprs_parser___parser_prod___AParExprs___init_aparexprs(fra.me.REG[5], fra.me.REG[6], fra.me.REG[3]);
+  /* parser/parser.nit:11747 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:11748 */
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11748);
+  }
+  REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
+  REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
+  CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void parser___ReduceAction409___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser;
+  fra.me.line = 11753;
+  fra.me.meth = LOCATE_parser___ReduceAction409___action;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 6;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* parser/parser.nit:11755 */
+  fra.me.REG[2] = NIT_NULL;
+  /* parser/parser.nit:11756 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11378 */
+  /* parser/parser.nit:11757 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11379 */
+  /* parser/parser.nit:11758 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11380 */
+  /* parser/parser.nit:11759 */
+  fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:11761 */
+  REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast nullable TOpar*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11761);
+  }
+  /* parser/parser.nit:11763 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast nullable TCpar*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11763);
+  }
+  /* parser/parser.nit:11764 */
+  fra.me.REG[3] = NEW_AParExprs_parser___parser_prod___AParExprs___init_aparexprs(fra.me.REG[4], fra.me.REG[5], fra.me.REG[3]);
+  /* parser/parser.nit:11769 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:11770 */
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11770);
+  }
+  REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
+  REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
+  CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void parser___ReduceAction410___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser;
+  fra.me.line = 11775;
+  fra.me.meth = LOCATE_parser___ReduceAction410___action;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* parser/parser.nit:11777 */
+  fra.me.REG[2] = NIT_NULL;
+  /* parser/parser.nit:11778 */
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:11779 */
+  fra.me.REG[3] = NEW_AListExprs_parser___parser_prod___AListExprs___init_alistexprs(fra.me.REG[3]);
+  /* parser/parser.nit:11782 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:11783 */
+  REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11783);
+  }
+  REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
+  REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
+  CALL_parser___Parser___push(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void parser___ReduceAction412___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser;
+  fra.me.line = 11788;
+  fra.me.meth = LOCATE_parser___ReduceAction412___action;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 5;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* parser/parser.nit:11790 */
+  fra.me.REG[2] = NIT_NULL;
+  /* parser/parser.nit:11791 */
+  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11792 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11382 */
+  /* parser/parser.nit:11794 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11794);
+  }
+  /* parser/parser.nit:11795 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -31847,16 +32889,18 @@ void parser___ReduceAction400___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:11383 */
+    /* parser/parser.nit:11796 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:11385 */
+  /* parser/parser.nit:11798 */
+  fra.me.REG[4] = NEW_AListExprs_parser___parser_prod___AListExprs___init_alistexprs(fra.me.REG[4]);
+  /* parser/parser.nit:11801 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:11386 */
+  /* parser/parser.nit:11802 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11386);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11802);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -31864,17 +32908,16 @@ void parser___ReduceAction400___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction401___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
+void parser___ReduceAction415___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
-  val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11391;
-  fra.me.meth = LOCATE_parser___ReduceAction401___action;
+  fra.me.line = 11807;
+  fra.me.meth = LOCATE_parser___ReduceAction415___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
+  fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -31882,58 +32925,51 @@ void parser___ReduceAction401___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11393 */
+  /* parser/parser.nit:11809 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11394 */
+  /* parser/parser.nit:11810 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11395 */
-  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11396 */
-  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11397 */
+  /* parser/parser.nit:11811 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11398 */
+  /* parser/parser.nit:11812 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11399 */
+  /* parser/parser.nit:11813 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11400 */
-  fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11403 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:11814 */
+  fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:11816 */
+  REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast nullable TObra*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11403);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11816);
   }
-  /* ./parser//parser.nit:11404 */
-  REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+  /* parser/parser.nit:11818 */
+  REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(false);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
-      REGB0 = REGB1;
-    }
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11818);
   }
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  /* parser/parser.nit:11819 */
+  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
+  fra.me.REG[6] = fra.me.REG[4];
+  /* parser/parser.nit:11821 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TCbra, ID_parser___parser_nodes___TCbra)) /*cast nullable TCbra*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:11405 */
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11821);
   }
-  /* ./parser//parser.nit:11407 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
-  fra.me.REG[5] = fra.me.REG[3];
-  /* ./parser//parser.nit:11408 */
-  fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:11409 */
+  /* parser/parser.nit:11822 */
+  fra.me.REG[3] = NEW_ABraExprs_parser___parser_prod___ABraExprs___init_abraexprs(fra.me.REG[5], fra.me.REG[6], fra.me.REG[3]);
+  /* parser/parser.nit:11827 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:11828 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11409);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11828);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -31941,34 +32977,58 @@ void parser___ReduceAction401___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction403___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+void parser___ReduceAction416___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
+  val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11414;
-  fra.me.meth = LOCATE_parser___ReduceAction403___action;
+  fra.me.line = 11833;
+  fra.me.meth = LOCATE_parser___ReduceAction416___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
+  fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11416 */
+  /* parser/parser.nit:11835 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11417 */
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11418 */
-  fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11419 */
+  /* parser/parser.nit:11836 */
+  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11837 */
+  fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11838 */
+  fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:11840 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser.nit:11841 */
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
+  }
+  /* parser/parser.nit:11843 */
+  fra.me.REG[2] = fra.me.REG[4];
+  /* parser/parser.nit:11844 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11419);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11844);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -31976,56 +33036,70 @@ void parser___ReduceAction403___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction406___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+void parser___ReduceAction417___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11424;
-  fra.me.meth = LOCATE_parser___ReduceAction406___action;
+  fra.me.line = 11849;
+  fra.me.meth = LOCATE_parser___ReduceAction417___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
+  fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11426 */
+  /* parser/parser.nit:11851 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11427 */
+  /* parser/parser.nit:11852 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11428 */
-  fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11430 */
-  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  /* parser/parser.nit:11853 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11854 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:11855 */
+  fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:11858 */
+  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11858);
+  }
+  /* parser/parser.nit:11859 */
+  REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       REGB1 = TAG_Bool(false);
       REGB0 = REGB1;
     } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
       REGB0 = REGB1;
     }
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:11431 */
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
+    /* parser/parser.nit:11860 */
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
   }
-  /* ./parser//parser.nit:11433 */
-  fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:11434 */
+  /* parser/parser.nit:11862 */
+  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
+  fra.me.REG[5] = fra.me.REG[3];
+  /* parser/parser.nit:11863 */
+  fra.me.REG[2] = fra.me.REG[5];
+  /* parser/parser.nit:11864 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11434);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11864);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -32033,14 +33107,14 @@ void parser___ReduceAction406___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction411___action(val_t p0, val_t p1){
+void parser___ReduceAction418___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11439;
-  fra.me.meth = LOCATE_parser___ReduceAction411___action;
+  fra.me.line = 11869;
+  fra.me.meth = LOCATE_parser___ReduceAction418___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -32051,23 +33125,23 @@ void parser___ReduceAction411___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11441 */
+  /* parser/parser.nit:11871 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11442 */
+  /* parser/parser.nit:11872 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11443 */
+  /* parser/parser.nit:11873 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11444 */
+  /* parser/parser.nit:11874 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11445 */
+  /* parser/parser.nit:11875 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11447 */
+  /* parser/parser.nit:11877 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11448 */
+  /* parser/parser.nit:11878 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11448);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11878);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -32075,15 +33149,15 @@ void parser___ReduceAction411___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction412___action(val_t p0, val_t p1){
+void parser___ReduceAction419___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11453;
-  fra.me.meth = LOCATE_parser___ReduceAction412___action;
+  fra.me.line = 11883;
+  fra.me.meth = LOCATE_parser___ReduceAction419___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -32094,13 +33168,13 @@ void parser___ReduceAction412___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11455 */
+  /* parser/parser.nit:11885 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11456 */
+  /* parser/parser.nit:11886 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11457 */
+  /* parser/parser.nit:11887 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11459 */
+  /* parser/parser.nit:11889 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -32115,16 +33189,16 @@ void parser___ReduceAction412___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:11460 */
+    /* parser/parser.nit:11890 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:11462 */
+  /* parser/parser.nit:11892 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:11463 */
+  /* parser/parser.nit:11893 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11463);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11893);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -32132,15 +33206,15 @@ void parser___ReduceAction412___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction413___action(val_t p0, val_t p1){
+void parser___ReduceAction420___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11468;
-  fra.me.meth = LOCATE_parser___ReduceAction413___action;
+  fra.me.line = 11898;
+  fra.me.meth = LOCATE_parser___ReduceAction420___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -32152,30 +33226,30 @@ void parser___ReduceAction413___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11470 */
+  /* parser/parser.nit:11900 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11471 */
+  /* parser/parser.nit:11901 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11472 */
+  /* parser/parser.nit:11902 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11473 */
+  /* parser/parser.nit:11903 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11474 */
+  /* parser/parser.nit:11904 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11475 */
+  /* parser/parser.nit:11905 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11476 */
+  /* parser/parser.nit:11906 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11478 */
+  /* parser/parser.nit:11908 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11478);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11908);
   }
-  /* ./parser//parser.nit:11480 */
+  /* parser/parser.nit:11910 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:11481 */
+  /* parser/parser.nit:11911 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -32190,16 +33264,16 @@ void parser___ReduceAction413___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:11482 */
+    /* parser/parser.nit:11912 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:11484 */
+  /* parser/parser.nit:11914 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:11485 */
+  /* parser/parser.nit:11915 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11485);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11915);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -32207,14 +33281,14 @@ void parser___ReduceAction413___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction414___action(val_t p0, val_t p1){
+void parser___ReduceAction421___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11490;
-  fra.me.meth = LOCATE_parser___ReduceAction414___action;
+  fra.me.line = 11920;
+  fra.me.meth = LOCATE_parser___ReduceAction421___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -32225,27 +33299,27 @@ void parser___ReduceAction414___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11492 */
+  /* parser/parser.nit:11922 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11493 */
+  /* parser/parser.nit:11923 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11494 */
+  /* parser/parser.nit:11924 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11496 */
+  /* parser/parser.nit:11926 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11496);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11926);
   }
-  /* ./parser//parser.nit:11497 */
+  /* parser/parser.nit:11927 */
   fra.me.REG[3] = NEW_AModuleName_parser___parser_prod___AModuleName___init_amodulename(NIT_NULL, fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:11502 */
+  /* parser/parser.nit:11932 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11503 */
+  /* parser/parser.nit:11933 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11503);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11933);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -32253,14 +33327,14 @@ void parser___ReduceAction414___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction415___action(val_t p0, val_t p1){
+void parser___ReduceAction422___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11508;
-  fra.me.meth = LOCATE_parser___ReduceAction415___action;
+  fra.me.line = 11938;
+  fra.me.meth = LOCATE_parser___ReduceAction422___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -32272,38 +33346,38 @@ void parser___ReduceAction415___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11510 */
+  /* parser/parser.nit:11940 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11511 */
+  /* parser/parser.nit:11941 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11512 */
+  /* parser/parser.nit:11942 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11513 */
+  /* parser/parser.nit:11943 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11515 */
+  /* parser/parser.nit:11945 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11515);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11945);
   }
-  /* ./parser//parser.nit:11516 */
+  /* parser/parser.nit:11946 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:11518 */
+  /* parser/parser.nit:11948 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11518);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11948);
   }
-  /* ./parser//parser.nit:11519 */
+  /* parser/parser.nit:11949 */
   fra.me.REG[3] = NEW_AModuleName_parser___parser_prod___AModuleName___init_amodulename(NIT_NULL, fra.me.REG[5], fra.me.REG[3]);
-  /* ./parser//parser.nit:11524 */
+  /* parser/parser.nit:11954 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11525 */
+  /* parser/parser.nit:11955 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11525);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11955);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -32311,14 +33385,14 @@ void parser___ReduceAction415___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction416___action(val_t p0, val_t p1){
+void parser___ReduceAction423___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11530;
-  fra.me.meth = LOCATE_parser___ReduceAction416___action;
+  fra.me.line = 11960;
+  fra.me.meth = LOCATE_parser___ReduceAction423___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -32330,37 +33404,37 @@ void parser___ReduceAction416___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11532 */
+  /* parser/parser.nit:11962 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11533 */
+  /* parser/parser.nit:11963 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11534 */
+  /* parser/parser.nit:11964 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11535 */
+  /* parser/parser.nit:11965 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11536 */
+  /* parser/parser.nit:11966 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11538 */
+  /* parser/parser.nit:11968 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TQuad, ID_parser___parser_nodes___TQuad)) /*cast nullable TQuad*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11538);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11968);
   }
-  /* ./parser//parser.nit:11540 */
+  /* parser/parser.nit:11970 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11540);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11970);
   }
-  /* ./parser//parser.nit:11541 */
+  /* parser/parser.nit:11971 */
   fra.me.REG[3] = NEW_AModuleName_parser___parser_prod___AModuleName___init_amodulename(fra.me.REG[4], fra.me.REG[5], fra.me.REG[3]);
-  /* ./parser//parser.nit:11546 */
+  /* parser/parser.nit:11976 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11547 */
+  /* parser/parser.nit:11977 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11547);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11977);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -32368,14 +33442,14 @@ void parser___ReduceAction416___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction417___action(val_t p0, val_t p1){
+void parser___ReduceAction424___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11552;
-  fra.me.meth = LOCATE_parser___ReduceAction417___action;
+  fra.me.line = 11982;
+  fra.me.meth = LOCATE_parser___ReduceAction424___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
@@ -32388,48 +33462,48 @@ void parser___ReduceAction417___action(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11554 */
+  /* parser/parser.nit:11984 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11555 */
+  /* parser/parser.nit:11985 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11556 */
+  /* parser/parser.nit:11986 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11557 */
+  /* parser/parser.nit:11987 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11558 */
+  /* parser/parser.nit:11988 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11559 */
+  /* parser/parser.nit:11989 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11561 */
+  /* parser/parser.nit:11991 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TQuad, ID_parser___parser_nodes___TQuad)) /*cast nullable TQuad*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11561);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11991);
   }
-  /* ./parser//parser.nit:11563 */
+  /* parser/parser.nit:11993 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11563);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11993);
   }
-  /* ./parser//parser.nit:11564 */
+  /* parser/parser.nit:11994 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[4]);
   fra.me.REG[6] = fra.me.REG[4];
-  /* ./parser//parser.nit:11566 */
+  /* parser/parser.nit:11996 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11566);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 11996);
   }
-  /* ./parser//parser.nit:11567 */
+  /* parser/parser.nit:11997 */
   fra.me.REG[3] = NEW_AModuleName_parser___parser_prod___AModuleName___init_amodulename(fra.me.REG[5], fra.me.REG[6], fra.me.REG[3]);
-  /* ./parser//parser.nit:11572 */
+  /* parser/parser.nit:12002 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11573 */
+  /* parser/parser.nit:12003 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11573);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12003);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -32437,14 +33511,14 @@ void parser___ReduceAction417___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction418___action(val_t p0, val_t p1){
+void parser___ReduceAction425___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11578;
-  fra.me.meth = LOCATE_parser___ReduceAction418___action;
+  fra.me.line = 12008;
+  fra.me.meth = LOCATE_parser___ReduceAction425___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -32455,27 +33529,27 @@ void parser___ReduceAction418___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11580 */
+  /* parser/parser.nit:12010 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11581 */
+  /* parser/parser.nit:12011 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11582 */
+  /* parser/parser.nit:12012 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11584 */
+  /* parser/parser.nit:12014 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11584);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12014);
   }
-  /* ./parser//parser.nit:11585 */
+  /* parser/parser.nit:12015 */
   fra.me.REG[3] = NEW_AQualified_parser___parser_prod___AQualified___init_aqualified(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:11589 */
+  /* parser/parser.nit:12019 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11590 */
+  /* parser/parser.nit:12020 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11590);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12020);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -32483,14 +33557,14 @@ void parser___ReduceAction418___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction419___action(val_t p0, val_t p1){
+void parser___ReduceAction426___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11595;
-  fra.me.meth = LOCATE_parser___ReduceAction419___action;
+  fra.me.line = 12025;
+  fra.me.meth = LOCATE_parser___ReduceAction426___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -32502,38 +33576,38 @@ void parser___ReduceAction419___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11597 */
+  /* parser/parser.nit:12027 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11598 */
+  /* parser/parser.nit:12028 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11599 */
+  /* parser/parser.nit:12029 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11600 */
+  /* parser/parser.nit:12030 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11602 */
+  /* parser/parser.nit:12032 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11602);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12032);
   }
-  /* ./parser//parser.nit:11603 */
+  /* parser/parser.nit:12033 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:11605 */
+  /* parser/parser.nit:12035 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast nullable TClassid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11605);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12035);
   }
-  /* ./parser//parser.nit:11606 */
+  /* parser/parser.nit:12036 */
   fra.me.REG[3] = NEW_AQualified_parser___parser_prod___AQualified___init_aqualified(fra.me.REG[5], fra.me.REG[3]);
-  /* ./parser//parser.nit:11610 */
+  /* parser/parser.nit:12040 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11611 */
+  /* parser/parser.nit:12041 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11611);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12041);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -32541,14 +33615,14 @@ void parser___ReduceAction419___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction420___action(val_t p0, val_t p1){
+void parser___ReduceAction427___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11616;
-  fra.me.meth = LOCATE_parser___ReduceAction420___action;
+  fra.me.line = 12046;
+  fra.me.meth = LOCATE_parser___ReduceAction427___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -32559,30 +33633,30 @@ void parser___ReduceAction420___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11618 */
+  /* parser/parser.nit:12048 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11619 */
+  /* parser/parser.nit:12049 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11620 */
+  /* parser/parser.nit:12050 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11622 */
+  /* parser/parser.nit:12052 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11622);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12052);
   }
-  /* ./parser//parser.nit:11623 */
+  /* parser/parser.nit:12053 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
   fra.me.REG[4] = fra.me.REG[3];
-  /* ./parser//parser.nit:11624 */
+  /* parser/parser.nit:12054 */
   fra.me.REG[4] = NEW_AQualified_parser___parser_prod___AQualified___init_aqualified(fra.me.REG[4], NIT_NULL);
-  /* ./parser//parser.nit:11628 */
+  /* parser/parser.nit:12058 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:11629 */
+  /* parser/parser.nit:12059 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11629);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12059);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -32590,14 +33664,14 @@ void parser___ReduceAction420___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction421___action(val_t p0, val_t p1){
+void parser___ReduceAction428___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11634;
-  fra.me.meth = LOCATE_parser___ReduceAction421___action;
+  fra.me.line = 12064;
+  fra.me.meth = LOCATE_parser___ReduceAction428___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -32607,21 +33681,21 @@ void parser___ReduceAction421___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11636 */
+  /* parser/parser.nit:12066 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11637 */
+  /* parser/parser.nit:12067 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11638 */
+  /* parser/parser.nit:12068 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11639 */
+  /* parser/parser.nit:12069 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11641 */
+  /* parser/parser.nit:12071 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11642 */
+  /* parser/parser.nit:12072 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11642);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12072);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -32629,14 +33703,14 @@ void parser___ReduceAction421___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction422___action(val_t p0, val_t p1){
+void parser___ReduceAction429___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11647;
-  fra.me.meth = LOCATE_parser___ReduceAction422___action;
+  fra.me.line = 12077;
+  fra.me.meth = LOCATE_parser___ReduceAction429___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -32646,21 +33720,21 @@ void parser___ReduceAction422___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11649 */
+  /* parser/parser.nit:12079 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11650 */
+  /* parser/parser.nit:12080 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11651 */
+  /* parser/parser.nit:12081 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11652 */
+  /* parser/parser.nit:12082 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11654 */
+  /* parser/parser.nit:12084 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11655 */
+  /* parser/parser.nit:12085 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11655);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12085);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -32668,14 +33742,14 @@ void parser___ReduceAction422___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction423___action(val_t p0, val_t p1){
+void parser___ReduceAction430___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11660;
-  fra.me.meth = LOCATE_parser___ReduceAction423___action;
+  fra.me.line = 12090;
+  fra.me.meth = LOCATE_parser___ReduceAction430___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -32685,15 +33759,15 @@ void parser___ReduceAction423___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11662 */
+  /* parser/parser.nit:12092 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11663 */
+  /* parser/parser.nit:12093 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11664 */
+  /* parser/parser.nit:12094 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11664);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12094);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -32701,14 +33775,14 @@ void parser___ReduceAction423___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction425___action(val_t p0, val_t p1){
+void parser___ReduceAction432___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11669;
-  fra.me.meth = LOCATE_parser___ReduceAction425___action;
+  fra.me.line = 12099;
+  fra.me.meth = LOCATE_parser___ReduceAction432___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -32719,30 +33793,30 @@ void parser___ReduceAction425___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11671 */
+  /* parser/parser.nit:12101 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11672 */
+  /* parser/parser.nit:12102 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11673 */
+  /* parser/parser.nit:12103 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11675 */
+  /* parser/parser.nit:12105 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11675);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12105);
   }
-  /* ./parser//parser.nit:11676 */
+  /* parser/parser.nit:12106 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
   fra.me.REG[4] = fra.me.REG[3];
-  /* ./parser//parser.nit:11677 */
+  /* parser/parser.nit:12107 */
   fra.me.REG[4] = NEW_ADoc_parser___parser_prod___ADoc___init_adoc(fra.me.REG[4]);
-  /* ./parser//parser.nit:11680 */
+  /* parser/parser.nit:12110 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:11681 */
+  /* parser/parser.nit:12111 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11681);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12111);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -32750,14 +33824,14 @@ void parser___ReduceAction425___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction426___action(val_t p0, val_t p1){
+void parser___ReduceAction433___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11686;
-  fra.me.meth = LOCATE_parser___ReduceAction426___action;
+  fra.me.line = 12116;
+  fra.me.meth = LOCATE_parser___ReduceAction433___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -32768,32 +33842,32 @@ void parser___ReduceAction426___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11688 */
+  /* parser/parser.nit:12118 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11689 */
+  /* parser/parser.nit:12119 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11690 */
+  /* parser/parser.nit:12120 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11691 */
+  /* parser/parser.nit:12121 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11693 */
+  /* parser/parser.nit:12123 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11693);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12123);
   }
-  /* ./parser//parser.nit:11694 */
+  /* parser/parser.nit:12124 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
   fra.me.REG[4] = fra.me.REG[3];
-  /* ./parser//parser.nit:11695 */
+  /* parser/parser.nit:12125 */
   fra.me.REG[4] = NEW_ADoc_parser___parser_prod___ADoc___init_adoc(fra.me.REG[4]);
-  /* ./parser//parser.nit:11698 */
+  /* parser/parser.nit:12128 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:11699 */
+  /* parser/parser.nit:12129 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11699);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12129);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -32801,14 +33875,14 @@ void parser___ReduceAction426___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction428___action(val_t p0, val_t p1){
+void parser___ReduceAction435___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11704;
-  fra.me.meth = LOCATE_parser___ReduceAction428___action;
+  fra.me.line = 12134;
+  fra.me.meth = LOCATE_parser___ReduceAction435___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
@@ -32817,15 +33891,15 @@ void parser___ReduceAction428___action(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11706 */
+  /* parser/parser.nit:12136 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11707 */
+  /* parser/parser.nit:12137 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11708 */
+  /* parser/parser.nit:12138 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11708);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12138);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -32833,14 +33907,14 @@ void parser___ReduceAction428___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction429___action(val_t p0, val_t p1){
+void parser___ReduceAction436___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11713;
-  fra.me.meth = LOCATE_parser___ReduceAction429___action;
+  fra.me.line = 12143;
+  fra.me.meth = LOCATE_parser___ReduceAction436___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -32850,17 +33924,17 @@ void parser___ReduceAction429___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11715 */
+  /* parser/parser.nit:12145 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11716 */
+  /* parser/parser.nit:12146 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11718 */
+  /* parser/parser.nit:12148 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11719 */
+  /* parser/parser.nit:12149 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11719);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12149);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -32868,14 +33942,14 @@ void parser___ReduceAction429___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction430___action(val_t p0, val_t p1){
+void parser___ReduceAction437___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11724;
-  fra.me.meth = LOCATE_parser___ReduceAction430___action;
+  fra.me.line = 12154;
+  fra.me.meth = LOCATE_parser___ReduceAction437___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -32885,17 +33959,17 @@ void parser___ReduceAction430___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11726 */
+  /* parser/parser.nit:12156 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11727 */
+  /* parser/parser.nit:12157 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11728 */
+  /* parser/parser.nit:12158 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11729 */
+  /* parser/parser.nit:12159 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11729);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12159);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -32903,14 +33977,14 @@ void parser___ReduceAction430___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction431___action(val_t p0, val_t p1){
+void parser___ReduceAction438___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11734;
-  fra.me.meth = LOCATE_parser___ReduceAction431___action;
+  fra.me.line = 12164;
+  fra.me.meth = LOCATE_parser___ReduceAction438___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -32920,19 +33994,19 @@ void parser___ReduceAction431___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11736 */
+  /* parser/parser.nit:12166 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11737 */
+  /* parser/parser.nit:12167 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11738 */
+  /* parser/parser.nit:12168 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11739 */
+  /* parser/parser.nit:12169 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11740 */
+  /* parser/parser.nit:12170 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11740);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12170);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -32940,14 +34014,14 @@ void parser___ReduceAction431___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction688___action(val_t p0, val_t p1){
+void parser___ReduceAction698___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11745;
-  fra.me.meth = LOCATE_parser___ReduceAction688___action;
+  fra.me.line = 12175;
+  fra.me.meth = LOCATE_parser___ReduceAction698___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -32959,41 +34033,41 @@ void parser___ReduceAction688___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11747 */
+  /* parser/parser.nit:12177 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11748 */
+  /* parser/parser.nit:12178 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11749 */
+  /* parser/parser.nit:12179 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11750 */
+  /* parser/parser.nit:12180 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11752 */
+  /* parser/parser.nit:12182 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___TKwisset, ID_parser___parser_nodes___TKwisset)) /*cast nullable TKwisset*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11752);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12182);
   }
-  /* ./parser//parser.nit:11754 */
+  /* parser/parser.nit:12184 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11754);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12184);
   }
-  /* ./parser//parser.nit:11756 */
+  /* parser/parser.nit:12186 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11756);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12186);
   }
-  /* ./parser//parser.nit:11757 */
+  /* parser/parser.nit:12187 */
   fra.me.REG[3] = NEW_AIssetAttrExpr_parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:11762 */
+  /* parser/parser.nit:12192 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11763 */
+  /* parser/parser.nit:12193 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11763);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12193);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -33001,14 +34075,14 @@ void parser___ReduceAction688___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction689___action(val_t p0, val_t p1){
+void parser___ReduceAction699___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11768;
-  fra.me.meth = LOCATE_parser___ReduceAction689___action;
+  fra.me.line = 12198;
+  fra.me.meth = LOCATE_parser___ReduceAction699___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -33019,33 +34093,33 @@ void parser___ReduceAction689___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11770 */
+  /* parser/parser.nit:12200 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11771 */
+  /* parser/parser.nit:12201 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11772 */
+  /* parser/parser.nit:12202 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11774 */
+  /* parser/parser.nit:12204 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11774);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12204);
   }
-  /* ./parser//parser.nit:11776 */
+  /* parser/parser.nit:12206 */
   REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast nullable TAttrid*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11776);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12206);
   }
-  /* ./parser//parser.nit:11777 */
+  /* parser/parser.nit:12207 */
   fra.me.REG[3] = NEW_AAttrExpr_parser___parser_prod___AAttrExpr___init_aattrexpr(fra.me.REG[4], fra.me.REG[3]);
-  /* ./parser//parser.nit:11781 */
+  /* parser/parser.nit:12211 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11782 */
+  /* parser/parser.nit:12212 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11782);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12212);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -33053,16 +34127,16 @@ void parser___ReduceAction689___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction690___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
+void parser___ReduceAction700___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11787;
-  fra.me.meth = LOCATE_parser___ReduceAction690___action;
+  fra.me.line = 12217;
+  fra.me.meth = LOCATE_parser___ReduceAction700___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 8;
+  fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -33071,51 +34145,45 @@ void parser___ReduceAction690___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
-  fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11789 */
+  /* parser/parser.nit:12219 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11790 */
+  /* parser/parser.nit:12220 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11791 */
+  /* parser/parser.nit:12221 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11792 */
+  /* parser/parser.nit:12222 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11793 */
+  /* parser/parser.nit:12223 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11794 */
-  fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11796 */
+  /* parser/parser.nit:12225 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11796);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12225);
   }
-  /* ./parser//parser.nit:11798 */
+  /* parser/parser.nit:12227 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast nullable TId*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11798);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12227);
   }
-  /* ./parser//parser.nit:11800 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:12229 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11800);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12229);
   }
-  /* ./parser//parser.nit:11801 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
-  fra.me.REG[6] = fra.me.REG[3];
-  /* ./parser//parser.nit:11802 */
-  fra.me.REG[7] = NEW_ACallExpr_parser___parser_prod___ACallExpr___init_acallexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6], fra.me.REG[7]);
-  /* ./parser//parser.nit:11808 */
-  fra.me.REG[2] = fra.me.REG[7];
-  /* ./parser//parser.nit:11809 */
+  /* parser/parser.nit:12230 */
+  fra.me.REG[6] = NEW_ACallExpr_parser___parser_prod___ACallExpr___init_acallexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3], fra.me.REG[6]);
+  /* parser/parser.nit:12236 */
+  fra.me.REG[2] = fra.me.REG[6];
+  /* parser/parser.nit:12237 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11809);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12237);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -33123,16 +34191,16 @@ void parser___ReduceAction690___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction693___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+void parser___ReduceAction703___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11814;
-  fra.me.meth = LOCATE_parser___ReduceAction693___action;
+  fra.me.line = 12242;
+  fra.me.meth = LOCATE_parser___ReduceAction703___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 7;
+  fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -33140,49 +34208,43 @@ void parser___ReduceAction693___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
-  fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11816 */
+  /* parser/parser.nit:12244 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11817 */
+  /* parser/parser.nit:12245 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11818 */
+  /* parser/parser.nit:12246 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11819 */
+  /* parser/parser.nit:12247 */
   fra.me.REG[5] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11820 */
-  fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11822 */
+  /* parser/parser.nit:12249 */
   REGB0 = TAG_Bool((fra.me.REG[5]==NIT_NULL) || VAL_ISA(fra.me.REG[5], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast nullable AExpr*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11822);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12249);
   }
-  /* ./parser//parser.nit:11824 */
+  /* parser/parser.nit:12251 */
   REGB0 = TAG_Bool((fra.me.REG[4]==NIT_NULL) || VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___TKwinit, ID_parser___parser_nodes___TKwinit)) /*cast nullable TKwinit*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11824);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12251);
   }
-  /* ./parser//parser.nit:11826 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:12253 */
+  REGB0 = TAG_Bool((fra.me.REG[3]==NIT_NULL) || VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast nullable AExprs*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11826);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12253);
   }
-  /* ./parser//parser.nit:11827 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6], fra.me.REG[3]);
-  fra.me.REG[6] = fra.me.REG[3];
-  /* ./parser//parser.nit:11828 */
-  fra.me.REG[6] = NEW_AInitExpr_parser___parser_prod___AInitExpr___init_ainitexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[6]);
-  /* ./parser//parser.nit:11833 */
-  fra.me.REG[2] = fra.me.REG[6];
-  /* ./parser//parser.nit:11834 */
+  /* parser/parser.nit:12254 */
+  fra.me.REG[3] = NEW_AInitExpr_parser___parser_prod___AInitExpr___init_ainitexpr(fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
+  /* parser/parser.nit:12259 */
+  fra.me.REG[2] = fra.me.REG[3];
+  /* parser/parser.nit:12260 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11834);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12260);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -33190,14 +34252,14 @@ void parser___ReduceAction693___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction706___action(val_t p0, val_t p1){
+void parser___ReduceAction716___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11839;
-  fra.me.meth = LOCATE_parser___ReduceAction706___action;
+  fra.me.line = 12265;
+  fra.me.meth = LOCATE_parser___ReduceAction716___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -33207,21 +34269,21 @@ void parser___ReduceAction706___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11841 */
+  /* parser/parser.nit:12267 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11842 */
+  /* parser/parser.nit:12268 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11843 */
+  /* parser/parser.nit:12269 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11844 */
+  /* parser/parser.nit:12270 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11846 */
+  /* parser/parser.nit:12272 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11847 */
+  /* parser/parser.nit:12273 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11847);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12273);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -33229,14 +34291,14 @@ void parser___ReduceAction706___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction707___action(val_t p0, val_t p1){
+void parser___ReduceAction717___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11852;
-  fra.me.meth = LOCATE_parser___ReduceAction707___action;
+  fra.me.line = 12278;
+  fra.me.meth = LOCATE_parser___ReduceAction717___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
@@ -33246,17 +34308,17 @@ void parser___ReduceAction707___action(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11854 */
+  /* parser/parser.nit:12280 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11855 */
+  /* parser/parser.nit:12281 */
   fra.me.REG[3] = NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
-  /* ./parser//parser.nit:11857 */
+  /* parser/parser.nit:12282 */
   fra.me.REG[2] = fra.me.REG[3];
-  /* ./parser//parser.nit:11858 */
+  /* parser/parser.nit:12283 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11858);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12283);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -33264,15 +34326,15 @@ void parser___ReduceAction707___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction714___action(val_t p0, val_t p1){
+void parser___ReduceAction724___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11863;
-  fra.me.meth = LOCATE_parser___ReduceAction714___action;
+  fra.me.line = 12288;
+  fra.me.meth = LOCATE_parser___ReduceAction724___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -33283,13 +34345,13 @@ void parser___ReduceAction714___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11865 */
+  /* parser/parser.nit:12290 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11866 */
+  /* parser/parser.nit:12291 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11867 */
+  /* parser/parser.nit:12292 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11869 */
+  /* parser/parser.nit:12294 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -33304,16 +34366,16 @@ void parser___ReduceAction714___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:11870 */
+    /* parser/parser.nit:12295 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:11872 */
+  /* parser/parser.nit:12297 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:11873 */
+  /* parser/parser.nit:12298 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11873);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12298);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -33321,15 +34383,15 @@ void parser___ReduceAction714___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction715___action(val_t p0, val_t p1){
+void parser___ReduceAction725___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11878;
-  fra.me.meth = LOCATE_parser___ReduceAction715___action;
+  fra.me.line = 12303;
+  fra.me.meth = LOCATE_parser___ReduceAction725___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -33341,24 +34403,24 @@ void parser___ReduceAction715___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11880 */
+  /* parser/parser.nit:12305 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11881 */
+  /* parser/parser.nit:12306 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11882 */
+  /* parser/parser.nit:12307 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11883 */
+  /* parser/parser.nit:12308 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11885 */
+  /* parser/parser.nit:12310 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11885);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12310);
   }
-  /* ./parser//parser.nit:11887 */
+  /* parser/parser.nit:12312 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:11888 */
+  /* parser/parser.nit:12313 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -33373,16 +34435,16 @@ void parser___ReduceAction715___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:11889 */
+    /* parser/parser.nit:12314 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:11891 */
+  /* parser/parser.nit:12316 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:11892 */
+  /* parser/parser.nit:12317 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11892);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12317);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -33390,15 +34452,15 @@ void parser___ReduceAction715___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction716___action(val_t p0, val_t p1){
+void parser___ReduceAction726___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11897;
-  fra.me.meth = LOCATE_parser___ReduceAction716___action;
+  fra.me.line = 12322;
+  fra.me.meth = LOCATE_parser___ReduceAction726___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -33409,13 +34471,13 @@ void parser___ReduceAction716___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11899 */
+  /* parser/parser.nit:12324 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11900 */
+  /* parser/parser.nit:12325 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11901 */
+  /* parser/parser.nit:12326 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11903 */
+  /* parser/parser.nit:12328 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -33430,16 +34492,16 @@ void parser___ReduceAction716___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:11904 */
+    /* parser/parser.nit:12329 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:11906 */
+  /* parser/parser.nit:12331 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:11907 */
+  /* parser/parser.nit:12332 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11907);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12332);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -33447,15 +34509,15 @@ void parser___ReduceAction716___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction717___action(val_t p0, val_t p1){
+void parser___ReduceAction727___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11912;
-  fra.me.meth = LOCATE_parser___ReduceAction717___action;
+  fra.me.line = 12337;
+  fra.me.meth = LOCATE_parser___ReduceAction727___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -33467,24 +34529,24 @@ void parser___ReduceAction717___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11914 */
+  /* parser/parser.nit:12339 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11915 */
+  /* parser/parser.nit:12340 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11916 */
+  /* parser/parser.nit:12341 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11917 */
+  /* parser/parser.nit:12342 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11919 */
+  /* parser/parser.nit:12344 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11919);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12344);
   }
-  /* ./parser//parser.nit:11921 */
+  /* parser/parser.nit:12346 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:11922 */
+  /* parser/parser.nit:12347 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -33499,16 +34561,16 @@ void parser___ReduceAction717___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:11923 */
+    /* parser/parser.nit:12348 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:11925 */
+  /* parser/parser.nit:12350 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:11926 */
+  /* parser/parser.nit:12351 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11926);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12351);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -33516,15 +34578,15 @@ void parser___ReduceAction717___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction718___action(val_t p0, val_t p1){
+void parser___ReduceAction728___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11931;
-  fra.me.meth = LOCATE_parser___ReduceAction718___action;
+  fra.me.line = 12356;
+  fra.me.meth = LOCATE_parser___ReduceAction728___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -33535,13 +34597,13 @@ void parser___ReduceAction718___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11933 */
+  /* parser/parser.nit:12358 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11934 */
+  /* parser/parser.nit:12359 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11935 */
+  /* parser/parser.nit:12360 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11937 */
+  /* parser/parser.nit:12362 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -33556,16 +34618,16 @@ void parser___ReduceAction718___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:11938 */
+    /* parser/parser.nit:12363 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:11940 */
+  /* parser/parser.nit:12365 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:11941 */
+  /* parser/parser.nit:12366 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11941);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12366);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -33573,15 +34635,15 @@ void parser___ReduceAction718___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction719___action(val_t p0, val_t p1){
+void parser___ReduceAction729___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11946;
-  fra.me.meth = LOCATE_parser___ReduceAction719___action;
+  fra.me.line = 12371;
+  fra.me.meth = LOCATE_parser___ReduceAction729___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -33593,24 +34655,24 @@ void parser___ReduceAction719___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11948 */
+  /* parser/parser.nit:12373 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11949 */
+  /* parser/parser.nit:12374 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11950 */
+  /* parser/parser.nit:12375 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11951 */
+  /* parser/parser.nit:12376 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11953 */
+  /* parser/parser.nit:12378 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11953);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12378);
   }
-  /* ./parser//parser.nit:11955 */
+  /* parser/parser.nit:12380 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:11956 */
+  /* parser/parser.nit:12381 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -33625,16 +34687,16 @@ void parser___ReduceAction719___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:11957 */
+    /* parser/parser.nit:12382 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:11959 */
+  /* parser/parser.nit:12384 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:11960 */
+  /* parser/parser.nit:12385 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11960);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12385);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -33642,15 +34704,15 @@ void parser___ReduceAction719___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction720___action(val_t p0, val_t p1){
+void parser___ReduceAction730___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11965;
-  fra.me.meth = LOCATE_parser___ReduceAction720___action;
+  fra.me.line = 12390;
+  fra.me.meth = LOCATE_parser___ReduceAction730___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -33661,13 +34723,13 @@ void parser___ReduceAction720___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11967 */
+  /* parser/parser.nit:12392 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11968 */
+  /* parser/parser.nit:12393 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11969 */
+  /* parser/parser.nit:12394 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11971 */
+  /* parser/parser.nit:12396 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -33682,16 +34744,16 @@ void parser___ReduceAction720___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:11972 */
+    /* parser/parser.nit:12397 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:11974 */
+  /* parser/parser.nit:12399 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:11975 */
+  /* parser/parser.nit:12400 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11975);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12400);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -33699,15 +34761,15 @@ void parser___ReduceAction720___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction721___action(val_t p0, val_t p1){
+void parser___ReduceAction731___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11980;
-  fra.me.meth = LOCATE_parser___ReduceAction721___action;
+  fra.me.line = 12405;
+  fra.me.meth = LOCATE_parser___ReduceAction731___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -33719,24 +34781,24 @@ void parser___ReduceAction721___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:11982 */
+  /* parser/parser.nit:12407 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:11983 */
+  /* parser/parser.nit:12408 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11984 */
+  /* parser/parser.nit:12409 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:11985 */
+  /* parser/parser.nit:12410 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:11987 */
+  /* parser/parser.nit:12412 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 11987);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12412);
   }
-  /* ./parser//parser.nit:11989 */
+  /* parser/parser.nit:12414 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:11990 */
+  /* parser/parser.nit:12415 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -33751,16 +34813,16 @@ void parser___ReduceAction721___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:11991 */
+    /* parser/parser.nit:12416 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:11993 */
+  /* parser/parser.nit:12418 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:11994 */
+  /* parser/parser.nit:12419 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 11994);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12419);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -33768,15 +34830,15 @@ void parser___ReduceAction721___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction724___action(val_t p0, val_t p1){
+void parser___ReduceAction734___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 11999;
-  fra.me.meth = LOCATE_parser___ReduceAction724___action;
+  fra.me.line = 12424;
+  fra.me.meth = LOCATE_parser___ReduceAction734___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -33787,13 +34849,13 @@ void parser___ReduceAction724___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:12001 */
+  /* parser/parser.nit:12426 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:12002 */
+  /* parser/parser.nit:12427 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12003 */
+  /* parser/parser.nit:12428 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:12005 */
+  /* parser/parser.nit:12430 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -33808,16 +34870,16 @@ void parser___ReduceAction724___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:12006 */
+    /* parser/parser.nit:12431 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:12008 */
+  /* parser/parser.nit:12433 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:12009 */
+  /* parser/parser.nit:12434 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12009);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12434);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -33825,15 +34887,15 @@ void parser___ReduceAction724___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction725___action(val_t p0, val_t p1){
+void parser___ReduceAction735___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 12014;
-  fra.me.meth = LOCATE_parser___ReduceAction725___action;
+  fra.me.line = 12439;
+  fra.me.meth = LOCATE_parser___ReduceAction735___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -33845,24 +34907,24 @@ void parser___ReduceAction725___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:12016 */
+  /* parser/parser.nit:12441 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:12017 */
+  /* parser/parser.nit:12442 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12018 */
+  /* parser/parser.nit:12443 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12019 */
+  /* parser/parser.nit:12444 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:12021 */
+  /* parser/parser.nit:12446 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 12021);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12446);
   }
-  /* ./parser//parser.nit:12023 */
+  /* parser/parser.nit:12448 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:12024 */
+  /* parser/parser.nit:12449 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -33877,16 +34939,16 @@ void parser___ReduceAction725___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:12025 */
+    /* parser/parser.nit:12450 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:12027 */
+  /* parser/parser.nit:12452 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:12028 */
+  /* parser/parser.nit:12453 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12028);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12453);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -33894,15 +34956,15 @@ void parser___ReduceAction725___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction726___action(val_t p0, val_t p1){
+void parser___ReduceAction736___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 12033;
-  fra.me.meth = LOCATE_parser___ReduceAction726___action;
+  fra.me.line = 12458;
+  fra.me.meth = LOCATE_parser___ReduceAction736___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -33913,13 +34975,13 @@ void parser___ReduceAction726___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:12035 */
+  /* parser/parser.nit:12460 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:12036 */
+  /* parser/parser.nit:12461 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12037 */
+  /* parser/parser.nit:12462 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:12039 */
+  /* parser/parser.nit:12464 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -33934,16 +34996,16 @@ void parser___ReduceAction726___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:12040 */
+    /* parser/parser.nit:12465 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:12042 */
+  /* parser/parser.nit:12467 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:12043 */
+  /* parser/parser.nit:12468 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12043);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12468);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -33951,15 +35013,15 @@ void parser___ReduceAction726___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction727___action(val_t p0, val_t p1){
+void parser___ReduceAction737___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 12048;
-  fra.me.meth = LOCATE_parser___ReduceAction727___action;
+  fra.me.line = 12473;
+  fra.me.meth = LOCATE_parser___ReduceAction737___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -33971,24 +35033,24 @@ void parser___ReduceAction727___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:12050 */
+  /* parser/parser.nit:12475 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:12051 */
+  /* parser/parser.nit:12476 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12052 */
+  /* parser/parser.nit:12477 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12053 */
+  /* parser/parser.nit:12478 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:12055 */
+  /* parser/parser.nit:12480 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 12055);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12480);
   }
-  /* ./parser//parser.nit:12057 */
+  /* parser/parser.nit:12482 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:12058 */
+  /* parser/parser.nit:12483 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -34003,16 +35065,16 @@ void parser___ReduceAction727___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:12059 */
+    /* parser/parser.nit:12484 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:12061 */
+  /* parser/parser.nit:12486 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:12062 */
+  /* parser/parser.nit:12487 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12062);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12487);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -34020,15 +35082,15 @@ void parser___ReduceAction727___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction728___action(val_t p0, val_t p1){
+void parser___ReduceAction738___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 12067;
-  fra.me.meth = LOCATE_parser___ReduceAction728___action;
+  fra.me.line = 12492;
+  fra.me.meth = LOCATE_parser___ReduceAction738___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -34039,13 +35101,13 @@ void parser___ReduceAction728___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:12069 */
+  /* parser/parser.nit:12494 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:12070 */
+  /* parser/parser.nit:12495 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12071 */
+  /* parser/parser.nit:12496 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:12073 */
+  /* parser/parser.nit:12498 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -34060,16 +35122,16 @@ void parser___ReduceAction728___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:12074 */
+    /* parser/parser.nit:12499 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:12076 */
+  /* parser/parser.nit:12501 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:12077 */
+  /* parser/parser.nit:12502 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12077);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12502);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -34077,15 +35139,15 @@ void parser___ReduceAction728___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction729___action(val_t p0, val_t p1){
+void parser___ReduceAction739___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 12082;
-  fra.me.meth = LOCATE_parser___ReduceAction729___action;
+  fra.me.line = 12507;
+  fra.me.meth = LOCATE_parser___ReduceAction739___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -34097,24 +35159,24 @@ void parser___ReduceAction729___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:12084 */
+  /* parser/parser.nit:12509 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:12085 */
+  /* parser/parser.nit:12510 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12086 */
+  /* parser/parser.nit:12511 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12087 */
+  /* parser/parser.nit:12512 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:12089 */
+  /* parser/parser.nit:12514 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 12089);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12514);
   }
-  /* ./parser//parser.nit:12091 */
+  /* parser/parser.nit:12516 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:12092 */
+  /* parser/parser.nit:12517 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -34129,16 +35191,16 @@ void parser___ReduceAction729___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:12093 */
+    /* parser/parser.nit:12518 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:12095 */
+  /* parser/parser.nit:12520 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:12096 */
+  /* parser/parser.nit:12521 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12096);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12521);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -34146,15 +35208,15 @@ void parser___ReduceAction729___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction730___action(val_t p0, val_t p1){
+void parser___ReduceAction740___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 12101;
-  fra.me.meth = LOCATE_parser___ReduceAction730___action;
+  fra.me.line = 12526;
+  fra.me.meth = LOCATE_parser___ReduceAction740___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -34165,13 +35227,13 @@ void parser___ReduceAction730___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:12103 */
+  /* parser/parser.nit:12528 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:12104 */
+  /* parser/parser.nit:12529 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12105 */
+  /* parser/parser.nit:12530 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:12107 */
+  /* parser/parser.nit:12532 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -34186,16 +35248,16 @@ void parser___ReduceAction730___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:12108 */
+    /* parser/parser.nit:12533 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:12110 */
+  /* parser/parser.nit:12535 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:12111 */
+  /* parser/parser.nit:12536 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12111);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12536);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -34203,15 +35265,15 @@ void parser___ReduceAction730___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction731___action(val_t p0, val_t p1){
+void parser___ReduceAction741___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 12116;
-  fra.me.meth = LOCATE_parser___ReduceAction731___action;
+  fra.me.line = 12541;
+  fra.me.meth = LOCATE_parser___ReduceAction741___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -34223,24 +35285,24 @@ void parser___ReduceAction731___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:12118 */
+  /* parser/parser.nit:12543 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:12119 */
+  /* parser/parser.nit:12544 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12120 */
+  /* parser/parser.nit:12545 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12121 */
+  /* parser/parser.nit:12546 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:12123 */
+  /* parser/parser.nit:12548 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 12123);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12548);
   }
-  /* ./parser//parser.nit:12125 */
+  /* parser/parser.nit:12550 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:12126 */
+  /* parser/parser.nit:12551 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -34255,16 +35317,16 @@ void parser___ReduceAction731___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:12127 */
+    /* parser/parser.nit:12552 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:12129 */
+  /* parser/parser.nit:12554 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:12130 */
+  /* parser/parser.nit:12555 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12130);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12555);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -34272,15 +35334,15 @@ void parser___ReduceAction731___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction733___action(val_t p0, val_t p1){
+void parser___ReduceAction743___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 12135;
-  fra.me.meth = LOCATE_parser___ReduceAction733___action;
+  fra.me.line = 12560;
+  fra.me.meth = LOCATE_parser___ReduceAction743___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -34292,24 +35354,24 @@ void parser___ReduceAction733___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:12137 */
+  /* parser/parser.nit:12562 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:12138 */
+  /* parser/parser.nit:12563 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12139 */
+  /* parser/parser.nit:12564 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12140 */
+  /* parser/parser.nit:12565 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:12142 */
+  /* parser/parser.nit:12567 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 12142);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12567);
   }
-  /* ./parser//parser.nit:12144 */
+  /* parser/parser.nit:12569 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:12145 */
+  /* parser/parser.nit:12570 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -34324,16 +35386,16 @@ void parser___ReduceAction733___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:12146 */
+    /* parser/parser.nit:12571 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:12148 */
+  /* parser/parser.nit:12573 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:12149 */
+  /* parser/parser.nit:12574 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12149);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12574);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -34341,44 +35403,32 @@ void parser___ReduceAction733___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction735___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
+void parser___ReduceAction744___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 12154;
-  fra.me.meth = LOCATE_parser___ReduceAction735___action;
+  fra.me.line = 12579;
+  fra.me.meth = LOCATE_parser___ReduceAction744___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
+  fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:12156 */
+  /* parser/parser.nit:12581 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:12157 */
+  /* parser/parser.nit:12582 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12158 */
-  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12159 */
-  fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:12161 */
-  REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 12161);
-  }
-  /* ./parser//parser.nit:12163 */
-  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
-  fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:12164 */
+  /* parser/parser.nit:12583 */
+  fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:12585 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -34393,16 +35443,16 @@ void parser___ReduceAction735___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:12165 */
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
+    /* parser/parser.nit:12586 */
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:12167 */
-  fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:12168 */
+  /* parser/parser.nit:12588 */
+  fra.me.REG[2] = fra.me.REG[4];
+  /* parser/parser.nit:12589 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12168);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12589);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -34410,46 +35460,68 @@ void parser___ReduceAction735___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction736___action(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+void parser___ReduceAction745___action(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
+  val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 12173;
-  fra.me.meth = LOCATE_parser___ReduceAction736___action;
+  fra.me.line = 12594;
+  fra.me.meth = LOCATE_parser___ReduceAction745___action;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
+  fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:12175 */
+  /* parser/parser.nit:12596 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:12176 */
+  /* parser/parser.nit:12597 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12177 */
-  fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:12179 */
-  REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
+  /* parser/parser.nit:12598 */
+  fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
+  /* parser/parser.nit:12599 */
+  fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
+  /* parser/parser.nit:12601 */
+  REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 12179);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12601);
   }
-  /* ./parser//parser.nit:12180 */
-  fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
-  fra.me.REG[4] = fra.me.REG[3];
-  /* ./parser//parser.nit:12181 */
-  fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:12182 */
+  /* parser/parser.nit:12603 */
+  fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
+  fra.me.REG[5] = fra.me.REG[4];
+  /* parser/parser.nit:12604 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser.nit:12605 */
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
+  }
+  /* parser/parser.nit:12607 */
+  fra.me.REG[2] = fra.me.REG[5];
+  /* parser/parser.nit:12608 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12182);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12608);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -34457,14 +35529,14 @@ void parser___ReduceAction736___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction737___action(val_t p0, val_t p1){
+void parser___ReduceAction747___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 12187;
-  fra.me.meth = LOCATE_parser___ReduceAction737___action;
+  fra.me.line = 12613;
+  fra.me.meth = LOCATE_parser___ReduceAction747___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -34476,39 +35548,39 @@ void parser___ReduceAction737___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:12189 */
+  /* parser/parser.nit:12615 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:12190 */
+  /* parser/parser.nit:12616 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12191 */
+  /* parser/parser.nit:12617 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12192 */
+  /* parser/parser.nit:12618 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:12194 */
+  /* parser/parser.nit:12620 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 12194);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12620);
   }
-  /* ./parser//parser.nit:12196 */
+  /* parser/parser.nit:12622 */
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 12196);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12622);
   }
-  /* ./parser//parser.nit:12197 */
+  /* parser/parser.nit:12623 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:12198 */
+  /* parser/parser.nit:12624 */
   fra.me.REG[3] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[3]);
   fra.me.REG[5] = fra.me.REG[3];
-  /* ./parser//parser.nit:12199 */
+  /* parser/parser.nit:12625 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:12200 */
+  /* parser/parser.nit:12626 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12200);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12626);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -34516,15 +35588,15 @@ void parser___ReduceAction737___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction741___action(val_t p0, val_t p1){
+void parser___ReduceAction751___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 12205;
-  fra.me.meth = LOCATE_parser___ReduceAction741___action;
+  fra.me.line = 12631;
+  fra.me.meth = LOCATE_parser___ReduceAction751___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -34536,24 +35608,24 @@ void parser___ReduceAction741___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:12207 */
+  /* parser/parser.nit:12633 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:12208 */
+  /* parser/parser.nit:12634 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12209 */
+  /* parser/parser.nit:12635 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12210 */
+  /* parser/parser.nit:12636 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:12212 */
+  /* parser/parser.nit:12638 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 12212);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12638);
   }
-  /* ./parser//parser.nit:12214 */
+  /* parser/parser.nit:12640 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:12215 */
+  /* parser/parser.nit:12641 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -34568,16 +35640,16 @@ void parser___ReduceAction741___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:12216 */
+    /* parser/parser.nit:12642 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:12218 */
+  /* parser/parser.nit:12644 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:12219 */
+  /* parser/parser.nit:12645 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12219);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12645);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -34585,15 +35657,15 @@ void parser___ReduceAction741___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction742___action(val_t p0, val_t p1){
+void parser___ReduceAction752___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 12224;
-  fra.me.meth = LOCATE_parser___ReduceAction742___action;
+  fra.me.line = 12650;
+  fra.me.meth = LOCATE_parser___ReduceAction752___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -34604,13 +35676,13 @@ void parser___ReduceAction742___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:12226 */
+  /* parser/parser.nit:12652 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:12227 */
+  /* parser/parser.nit:12653 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12228 */
+  /* parser/parser.nit:12654 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:12230 */
+  /* parser/parser.nit:12656 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -34625,16 +35697,16 @@ void parser___ReduceAction742___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:12231 */
+    /* parser/parser.nit:12657 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:12233 */
+  /* parser/parser.nit:12659 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:12234 */
+  /* parser/parser.nit:12660 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12234);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12660);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -34642,15 +35714,15 @@ void parser___ReduceAction742___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction743___action(val_t p0, val_t p1){
+void parser___ReduceAction753___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 12239;
-  fra.me.meth = LOCATE_parser___ReduceAction743___action;
+  fra.me.line = 12665;
+  fra.me.meth = LOCATE_parser___ReduceAction753___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -34662,24 +35734,24 @@ void parser___ReduceAction743___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:12241 */
+  /* parser/parser.nit:12667 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:12242 */
+  /* parser/parser.nit:12668 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12243 */
+  /* parser/parser.nit:12669 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12244 */
+  /* parser/parser.nit:12670 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:12246 */
+  /* parser/parser.nit:12672 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 12246);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12672);
   }
-  /* ./parser//parser.nit:12248 */
+  /* parser/parser.nit:12674 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:12249 */
+  /* parser/parser.nit:12675 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -34694,16 +35766,16 @@ void parser___ReduceAction743___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:12250 */
+    /* parser/parser.nit:12676 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:12252 */
+  /* parser/parser.nit:12678 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:12253 */
+  /* parser/parser.nit:12679 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12253);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12679);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -34711,15 +35783,15 @@ void parser___ReduceAction743___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction744___action(val_t p0, val_t p1){
+void parser___ReduceAction754___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 12258;
-  fra.me.meth = LOCATE_parser___ReduceAction744___action;
+  fra.me.line = 12684;
+  fra.me.meth = LOCATE_parser___ReduceAction754___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
@@ -34730,13 +35802,13 @@ void parser___ReduceAction744___action(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:12260 */
+  /* parser/parser.nit:12686 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:12261 */
+  /* parser/parser.nit:12687 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12262 */
+  /* parser/parser.nit:12688 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:12264 */
+  /* parser/parser.nit:12690 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -34751,16 +35823,16 @@ void parser___ReduceAction744___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:12265 */
+    /* parser/parser.nit:12691 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:12267 */
+  /* parser/parser.nit:12693 */
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./parser//parser.nit:12268 */
+  /* parser/parser.nit:12694 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12268);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12694);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
@@ -34768,15 +35840,15 @@ void parser___ReduceAction744___action(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___ReduceAction745___action(val_t p0, val_t p1){
+void parser___ReduceAction755___action(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser;
-  fra.me.line = 12273;
-  fra.me.meth = LOCATE_parser___ReduceAction745___action;
+  fra.me.line = 12699;
+  fra.me.meth = LOCATE_parser___ReduceAction755___action;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
@@ -34788,24 +35860,24 @@ void parser___ReduceAction745___action(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser.nit:12275 */
+  /* parser/parser.nit:12701 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./parser//parser.nit:12276 */
+  /* parser/parser.nit:12702 */
   fra.me.REG[3] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12277 */
+  /* parser/parser.nit:12703 */
   fra.me.REG[4] = CALL_parser___Parser___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./parser//parser.nit:12278 */
+  /* parser/parser.nit:12704 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  /* ./parser//parser.nit:12280 */
+  /* parser/parser.nit:12706 */
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_parser, 12280);
+    nit_abort("Assert failed", NULL, LOCATE_parser, 12706);
   }
-  /* ./parser//parser.nit:12282 */
+  /* parser/parser.nit:12708 */
   fra.me.REG[4] = CALL_parser___ReduceAction___concat(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./parser//parser.nit:12283 */
+  /* parser/parser.nit:12709 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -34820,16 +35892,16 @@ void parser___ReduceAction745___action(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser.nit:12284 */
+    /* parser/parser.nit:12710 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   }
-  /* ./parser//parser.nit:12286 */
+  /* parser/parser.nit:12712 */
   fra.me.REG[2] = fra.me.REG[5];
-  /* ./parser//parser.nit:12287 */
+  /* parser/parser.nit:12713 */
   REGB0 = TAG_Bool(ATTR_parser___ReduceAction____goto(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12287);
+    nit_abort("Uninitialized attribute %s", "_goto", LOCATE_parser, 12713);
   }
   REGB0 = ATTR_parser___ReduceAction____goto(fra.me.REG[0]);
   REGB0 = CALL_parser___Parser___go_to(fra.me.REG[1])(fra.me.REG[1], REGB0);
index 6420b55..efdcae7 100644 (file)
@@ -448,6 +448,8 @@ extern const classtable_elt_t VFT_parser___ReduceAction217[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction218[];
 
+extern const classtable_elt_t VFT_parser___ReduceAction219[];
+
 extern const classtable_elt_t VFT_parser___ReduceAction220[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction221[];
@@ -456,8 +458,6 @@ extern const classtable_elt_t VFT_parser___ReduceAction222[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction223[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction224[];
-
 extern const classtable_elt_t VFT_parser___ReduceAction225[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction226[];
@@ -476,6 +476,8 @@ extern const classtable_elt_t VFT_parser___ReduceAction232[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction233[];
 
+extern const classtable_elt_t VFT_parser___ReduceAction234[];
+
 extern const classtable_elt_t VFT_parser___ReduceAction235[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction236[];
@@ -484,8 +486,6 @@ extern const classtable_elt_t VFT_parser___ReduceAction237[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction238[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction239[];
-
 extern const classtable_elt_t VFT_parser___ReduceAction240[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction241[];
@@ -494,6 +494,10 @@ extern const classtable_elt_t VFT_parser___ReduceAction242[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction243[];
 
+extern const classtable_elt_t VFT_parser___ReduceAction244[];
+
+extern const classtable_elt_t VFT_parser___ReduceAction245[];
+
 extern const classtable_elt_t VFT_parser___ReduceAction246[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction247[];
@@ -502,12 +506,6 @@ extern const classtable_elt_t VFT_parser___ReduceAction248[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction249[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction250[];
-
-extern const classtable_elt_t VFT_parser___ReduceAction251[];
-
-extern const classtable_elt_t VFT_parser___ReduceAction252[];
-
 extern const classtable_elt_t VFT_parser___ReduceAction253[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction254[];
@@ -516,19 +514,19 @@ extern const classtable_elt_t VFT_parser___ReduceAction255[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction256[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction263[];
+extern const classtable_elt_t VFT_parser___ReduceAction257[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction264[];
+extern const classtable_elt_t VFT_parser___ReduceAction258[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction265[];
+extern const classtable_elt_t VFT_parser___ReduceAction259[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction266[];
+extern const classtable_elt_t VFT_parser___ReduceAction260[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction267[];
+extern const classtable_elt_t VFT_parser___ReduceAction261[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction268[];
+extern const classtable_elt_t VFT_parser___ReduceAction262[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction269[];
+extern const classtable_elt_t VFT_parser___ReduceAction263[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction270[];
 
@@ -620,6 +618,10 @@ extern const classtable_elt_t VFT_parser___ReduceAction313[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction314[];
 
+extern const classtable_elt_t VFT_parser___ReduceAction315[];
+
+extern const classtable_elt_t VFT_parser___ReduceAction316[];
+
 extern const classtable_elt_t VFT_parser___ReduceAction317[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction318[];
@@ -632,10 +634,6 @@ extern const classtable_elt_t VFT_parser___ReduceAction321[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction322[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction323[];
-
-extern const classtable_elt_t VFT_parser___ReduceAction324[];
-
 extern const classtable_elt_t VFT_parser___ReduceAction325[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction326[];
@@ -646,55 +644,59 @@ extern const classtable_elt_t VFT_parser___ReduceAction328[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction329[];
 
+extern const classtable_elt_t VFT_parser___ReduceAction330[];
+
+extern const classtable_elt_t VFT_parser___ReduceAction331[];
+
+extern const classtable_elt_t VFT_parser___ReduceAction332[];
+
 extern const classtable_elt_t VFT_parser___ReduceAction333[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction335[];
+extern const classtable_elt_t VFT_parser___ReduceAction334[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction337[];
+extern const classtable_elt_t VFT_parser___ReduceAction335[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction338[];
+extern const classtable_elt_t VFT_parser___ReduceAction336[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction339[];
+extern const classtable_elt_t VFT_parser___ReduceAction337[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction341[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction343[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction344[];
-
 extern const classtable_elt_t VFT_parser___ReduceAction345[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction346[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction347[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction348[];
-
 extern const classtable_elt_t VFT_parser___ReduceAction349[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction350[];
-
 extern const classtable_elt_t VFT_parser___ReduceAction351[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction352[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction353[];
 
+extern const classtable_elt_t VFT_parser___ReduceAction354[];
+
 extern const classtable_elt_t VFT_parser___ReduceAction355[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction356[];
 
+extern const classtable_elt_t VFT_parser___ReduceAction357[];
+
 extern const classtable_elt_t VFT_parser___ReduceAction358[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction359[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction360[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction362[];
+extern const classtable_elt_t VFT_parser___ReduceAction361[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction363[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction365[];
+extern const classtable_elt_t VFT_parser___ReduceAction364[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction366[];
 
@@ -702,23 +704,19 @@ extern const classtable_elt_t VFT_parser___ReduceAction367[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction368[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction369[];
+extern const classtable_elt_t VFT_parser___ReduceAction370[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction376[];
+extern const classtable_elt_t VFT_parser___ReduceAction371[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction377[];
+extern const classtable_elt_t VFT_parser___ReduceAction373[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction378[];
+extern const classtable_elt_t VFT_parser___ReduceAction374[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction379[];
+extern const classtable_elt_t VFT_parser___ReduceAction375[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction380[];
-
-extern const classtable_elt_t VFT_parser___ReduceAction381[];
-
-extern const classtable_elt_t VFT_parser___ReduceAction382[];
+extern const classtable_elt_t VFT_parser___ReduceAction376[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction383[];
+extern const classtable_elt_t VFT_parser___ReduceAction377[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction384[];
 
@@ -730,6 +728,10 @@ extern const classtable_elt_t VFT_parser___ReduceAction387[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction388[];
 
+extern const classtable_elt_t VFT_parser___ReduceAction389[];
+
+extern const classtable_elt_t VFT_parser___ReduceAction390[];
+
 extern const classtable_elt_t VFT_parser___ReduceAction391[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction392[];
@@ -750,17 +752,23 @@ extern const classtable_elt_t VFT_parser___ReduceAction400[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction401[];
 
+extern const classtable_elt_t VFT_parser___ReduceAction402[];
+
 extern const classtable_elt_t VFT_parser___ReduceAction403[];
 
+extern const classtable_elt_t VFT_parser___ReduceAction404[];
+
 extern const classtable_elt_t VFT_parser___ReduceAction406[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction411[];
+extern const classtable_elt_t VFT_parser___ReduceAction407[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction412[];
+extern const classtable_elt_t VFT_parser___ReduceAction408[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction413[];
+extern const classtable_elt_t VFT_parser___ReduceAction409[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction414[];
+extern const classtable_elt_t VFT_parser___ReduceAction410[];
+
+extern const classtable_elt_t VFT_parser___ReduceAction412[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction415[];
 
@@ -780,46 +788,44 @@ extern const classtable_elt_t VFT_parser___ReduceAction422[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction423[];
 
+extern const classtable_elt_t VFT_parser___ReduceAction424[];
+
 extern const classtable_elt_t VFT_parser___ReduceAction425[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction426[];
 
+extern const classtable_elt_t VFT_parser___ReduceAction427[];
+
 extern const classtable_elt_t VFT_parser___ReduceAction428[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction429[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction430[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction431[];
+extern const classtable_elt_t VFT_parser___ReduceAction432[];
+
+extern const classtable_elt_t VFT_parser___ReduceAction433[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction688[];
+extern const classtable_elt_t VFT_parser___ReduceAction435[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction689[];
+extern const classtable_elt_t VFT_parser___ReduceAction436[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction690[];
+extern const classtable_elt_t VFT_parser___ReduceAction437[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction693[];
+extern const classtable_elt_t VFT_parser___ReduceAction438[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction706[];
+extern const classtable_elt_t VFT_parser___ReduceAction698[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction707[];
+extern const classtable_elt_t VFT_parser___ReduceAction699[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction714[];
+extern const classtable_elt_t VFT_parser___ReduceAction700[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction715[];
+extern const classtable_elt_t VFT_parser___ReduceAction703[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction716[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction717[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction718[];
-
-extern const classtable_elt_t VFT_parser___ReduceAction719[];
-
-extern const classtable_elt_t VFT_parser___ReduceAction720[];
-
-extern const classtable_elt_t VFT_parser___ReduceAction721[];
-
 extern const classtable_elt_t VFT_parser___ReduceAction724[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction725[];
@@ -836,7 +842,7 @@ extern const classtable_elt_t VFT_parser___ReduceAction730[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction731[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction733[];
+extern const classtable_elt_t VFT_parser___ReduceAction734[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction735[];
 
@@ -844,15 +850,31 @@ extern const classtable_elt_t VFT_parser___ReduceAction736[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction737[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction741[];
+extern const classtable_elt_t VFT_parser___ReduceAction738[];
+
+extern const classtable_elt_t VFT_parser___ReduceAction739[];
+
+extern const classtable_elt_t VFT_parser___ReduceAction740[];
 
-extern const classtable_elt_t VFT_parser___ReduceAction742[];
+extern const classtable_elt_t VFT_parser___ReduceAction741[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction743[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction744[];
 
 extern const classtable_elt_t VFT_parser___ReduceAction745[];
+
+extern const classtable_elt_t VFT_parser___ReduceAction747[];
+
+extern const classtable_elt_t VFT_parser___ReduceAction751[];
+
+extern const classtable_elt_t VFT_parser___ReduceAction752[];
+
+extern const classtable_elt_t VFT_parser___ReduceAction753[];
+
+extern const classtable_elt_t VFT_parser___ReduceAction754[];
+
+extern const classtable_elt_t VFT_parser___ReduceAction755[];
 extern const char *LOCATE_parser;
 extern const int SFT_parser[];
 #define ID_parser___State (SFT_parser[0])
@@ -1550,21 +1572,21 @@ extern const int SFT_parser[];
 #define ID_parser___ReduceAction218 (SFT_parser[668])
 #define COLOR_parser___ReduceAction218 (SFT_parser[669])
 #define INIT_TABLE_POS_parser___ReduceAction218 (SFT_parser[670] + 0)
-#define ID_parser___ReduceAction220 (SFT_parser[671])
-#define COLOR_parser___ReduceAction220 (SFT_parser[672])
-#define INIT_TABLE_POS_parser___ReduceAction220 (SFT_parser[673] + 0)
-#define ID_parser___ReduceAction221 (SFT_parser[674])
-#define COLOR_parser___ReduceAction221 (SFT_parser[675])
-#define INIT_TABLE_POS_parser___ReduceAction221 (SFT_parser[676] + 0)
-#define ID_parser___ReduceAction222 (SFT_parser[677])
-#define COLOR_parser___ReduceAction222 (SFT_parser[678])
-#define INIT_TABLE_POS_parser___ReduceAction222 (SFT_parser[679] + 0)
-#define ID_parser___ReduceAction223 (SFT_parser[680])
-#define COLOR_parser___ReduceAction223 (SFT_parser[681])
-#define INIT_TABLE_POS_parser___ReduceAction223 (SFT_parser[682] + 0)
-#define ID_parser___ReduceAction224 (SFT_parser[683])
-#define COLOR_parser___ReduceAction224 (SFT_parser[684])
-#define INIT_TABLE_POS_parser___ReduceAction224 (SFT_parser[685] + 0)
+#define ID_parser___ReduceAction219 (SFT_parser[671])
+#define COLOR_parser___ReduceAction219 (SFT_parser[672])
+#define INIT_TABLE_POS_parser___ReduceAction219 (SFT_parser[673] + 0)
+#define ID_parser___ReduceAction220 (SFT_parser[674])
+#define COLOR_parser___ReduceAction220 (SFT_parser[675])
+#define INIT_TABLE_POS_parser___ReduceAction220 (SFT_parser[676] + 0)
+#define ID_parser___ReduceAction221 (SFT_parser[677])
+#define COLOR_parser___ReduceAction221 (SFT_parser[678])
+#define INIT_TABLE_POS_parser___ReduceAction221 (SFT_parser[679] + 0)
+#define ID_parser___ReduceAction222 (SFT_parser[680])
+#define COLOR_parser___ReduceAction222 (SFT_parser[681])
+#define INIT_TABLE_POS_parser___ReduceAction222 (SFT_parser[682] + 0)
+#define ID_parser___ReduceAction223 (SFT_parser[683])
+#define COLOR_parser___ReduceAction223 (SFT_parser[684])
+#define INIT_TABLE_POS_parser___ReduceAction223 (SFT_parser[685] + 0)
 #define ID_parser___ReduceAction225 (SFT_parser[686])
 #define COLOR_parser___ReduceAction225 (SFT_parser[687])
 #define INIT_TABLE_POS_parser___ReduceAction225 (SFT_parser[688] + 0)
@@ -1592,21 +1614,21 @@ extern const int SFT_parser[];
 #define ID_parser___ReduceAction233 (SFT_parser[710])
 #define COLOR_parser___ReduceAction233 (SFT_parser[711])
 #define INIT_TABLE_POS_parser___ReduceAction233 (SFT_parser[712] + 0)
-#define ID_parser___ReduceAction235 (SFT_parser[713])
-#define COLOR_parser___ReduceAction235 (SFT_parser[714])
-#define INIT_TABLE_POS_parser___ReduceAction235 (SFT_parser[715] + 0)
-#define ID_parser___ReduceAction236 (SFT_parser[716])
-#define COLOR_parser___ReduceAction236 (SFT_parser[717])
-#define INIT_TABLE_POS_parser___ReduceAction236 (SFT_parser[718] + 0)
-#define ID_parser___ReduceAction237 (SFT_parser[719])
-#define COLOR_parser___ReduceAction237 (SFT_parser[720])
-#define INIT_TABLE_POS_parser___ReduceAction237 (SFT_parser[721] + 0)
-#define ID_parser___ReduceAction238 (SFT_parser[722])
-#define COLOR_parser___ReduceAction238 (SFT_parser[723])
-#define INIT_TABLE_POS_parser___ReduceAction238 (SFT_parser[724] + 0)
-#define ID_parser___ReduceAction239 (SFT_parser[725])
-#define COLOR_parser___ReduceAction239 (SFT_parser[726])
-#define INIT_TABLE_POS_parser___ReduceAction239 (SFT_parser[727] + 0)
+#define ID_parser___ReduceAction234 (SFT_parser[713])
+#define COLOR_parser___ReduceAction234 (SFT_parser[714])
+#define INIT_TABLE_POS_parser___ReduceAction234 (SFT_parser[715] + 0)
+#define ID_parser___ReduceAction235 (SFT_parser[716])
+#define COLOR_parser___ReduceAction235 (SFT_parser[717])
+#define INIT_TABLE_POS_parser___ReduceAction235 (SFT_parser[718] + 0)
+#define ID_parser___ReduceAction236 (SFT_parser[719])
+#define COLOR_parser___ReduceAction236 (SFT_parser[720])
+#define INIT_TABLE_POS_parser___ReduceAction236 (SFT_parser[721] + 0)
+#define ID_parser___ReduceAction237 (SFT_parser[722])
+#define COLOR_parser___ReduceAction237 (SFT_parser[723])
+#define INIT_TABLE_POS_parser___ReduceAction237 (SFT_parser[724] + 0)
+#define ID_parser___ReduceAction238 (SFT_parser[725])
+#define COLOR_parser___ReduceAction238 (SFT_parser[726])
+#define INIT_TABLE_POS_parser___ReduceAction238 (SFT_parser[727] + 0)
 #define ID_parser___ReduceAction240 (SFT_parser[728])
 #define COLOR_parser___ReduceAction240 (SFT_parser[729])
 #define INIT_TABLE_POS_parser___ReduceAction240 (SFT_parser[730] + 0)
@@ -1619,546 +1641,579 @@ extern const int SFT_parser[];
 #define ID_parser___ReduceAction243 (SFT_parser[737])
 #define COLOR_parser___ReduceAction243 (SFT_parser[738])
 #define INIT_TABLE_POS_parser___ReduceAction243 (SFT_parser[739] + 0)
-#define ID_parser___ReduceAction246 (SFT_parser[740])
-#define COLOR_parser___ReduceAction246 (SFT_parser[741])
-#define INIT_TABLE_POS_parser___ReduceAction246 (SFT_parser[742] + 0)
-#define ID_parser___ReduceAction247 (SFT_parser[743])
-#define COLOR_parser___ReduceAction247 (SFT_parser[744])
-#define INIT_TABLE_POS_parser___ReduceAction247 (SFT_parser[745] + 0)
-#define ID_parser___ReduceAction248 (SFT_parser[746])
-#define COLOR_parser___ReduceAction248 (SFT_parser[747])
-#define INIT_TABLE_POS_parser___ReduceAction248 (SFT_parser[748] + 0)
-#define ID_parser___ReduceAction249 (SFT_parser[749])
-#define COLOR_parser___ReduceAction249 (SFT_parser[750])
-#define INIT_TABLE_POS_parser___ReduceAction249 (SFT_parser[751] + 0)
-#define ID_parser___ReduceAction250 (SFT_parser[752])
-#define COLOR_parser___ReduceAction250 (SFT_parser[753])
-#define INIT_TABLE_POS_parser___ReduceAction250 (SFT_parser[754] + 0)
-#define ID_parser___ReduceAction251 (SFT_parser[755])
-#define COLOR_parser___ReduceAction251 (SFT_parser[756])
-#define INIT_TABLE_POS_parser___ReduceAction251 (SFT_parser[757] + 0)
-#define ID_parser___ReduceAction252 (SFT_parser[758])
-#define COLOR_parser___ReduceAction252 (SFT_parser[759])
-#define INIT_TABLE_POS_parser___ReduceAction252 (SFT_parser[760] + 0)
-#define ID_parser___ReduceAction253 (SFT_parser[761])
-#define COLOR_parser___ReduceAction253 (SFT_parser[762])
-#define INIT_TABLE_POS_parser___ReduceAction253 (SFT_parser[763] + 0)
-#define ID_parser___ReduceAction254 (SFT_parser[764])
-#define COLOR_parser___ReduceAction254 (SFT_parser[765])
-#define INIT_TABLE_POS_parser___ReduceAction254 (SFT_parser[766] + 0)
-#define ID_parser___ReduceAction255 (SFT_parser[767])
-#define COLOR_parser___ReduceAction255 (SFT_parser[768])
-#define INIT_TABLE_POS_parser___ReduceAction255 (SFT_parser[769] + 0)
-#define ID_parser___ReduceAction256 (SFT_parser[770])
-#define COLOR_parser___ReduceAction256 (SFT_parser[771])
-#define INIT_TABLE_POS_parser___ReduceAction256 (SFT_parser[772] + 0)
-#define ID_parser___ReduceAction263 (SFT_parser[773])
-#define COLOR_parser___ReduceAction263 (SFT_parser[774])
-#define INIT_TABLE_POS_parser___ReduceAction263 (SFT_parser[775] + 0)
-#define ID_parser___ReduceAction264 (SFT_parser[776])
-#define COLOR_parser___ReduceAction264 (SFT_parser[777])
-#define INIT_TABLE_POS_parser___ReduceAction264 (SFT_parser[778] + 0)
-#define ID_parser___ReduceAction265 (SFT_parser[779])
-#define COLOR_parser___ReduceAction265 (SFT_parser[780])
-#define INIT_TABLE_POS_parser___ReduceAction265 (SFT_parser[781] + 0)
-#define ID_parser___ReduceAction266 (SFT_parser[782])
-#define COLOR_parser___ReduceAction266 (SFT_parser[783])
-#define INIT_TABLE_POS_parser___ReduceAction266 (SFT_parser[784] + 0)
-#define ID_parser___ReduceAction267 (SFT_parser[785])
-#define COLOR_parser___ReduceAction267 (SFT_parser[786])
-#define INIT_TABLE_POS_parser___ReduceAction267 (SFT_parser[787] + 0)
-#define ID_parser___ReduceAction268 (SFT_parser[788])
-#define COLOR_parser___ReduceAction268 (SFT_parser[789])
-#define INIT_TABLE_POS_parser___ReduceAction268 (SFT_parser[790] + 0)
-#define ID_parser___ReduceAction269 (SFT_parser[791])
-#define COLOR_parser___ReduceAction269 (SFT_parser[792])
-#define INIT_TABLE_POS_parser___ReduceAction269 (SFT_parser[793] + 0)
-#define ID_parser___ReduceAction270 (SFT_parser[794])
-#define COLOR_parser___ReduceAction270 (SFT_parser[795])
-#define INIT_TABLE_POS_parser___ReduceAction270 (SFT_parser[796] + 0)
-#define ID_parser___ReduceAction271 (SFT_parser[797])
-#define COLOR_parser___ReduceAction271 (SFT_parser[798])
-#define INIT_TABLE_POS_parser___ReduceAction271 (SFT_parser[799] + 0)
-#define ID_parser___ReduceAction272 (SFT_parser[800])
-#define COLOR_parser___ReduceAction272 (SFT_parser[801])
-#define INIT_TABLE_POS_parser___ReduceAction272 (SFT_parser[802] + 0)
-#define ID_parser___ReduceAction273 (SFT_parser[803])
-#define COLOR_parser___ReduceAction273 (SFT_parser[804])
-#define INIT_TABLE_POS_parser___ReduceAction273 (SFT_parser[805] + 0)
-#define ID_parser___ReduceAction274 (SFT_parser[806])
-#define COLOR_parser___ReduceAction274 (SFT_parser[807])
-#define INIT_TABLE_POS_parser___ReduceAction274 (SFT_parser[808] + 0)
-#define ID_parser___ReduceAction275 (SFT_parser[809])
-#define COLOR_parser___ReduceAction275 (SFT_parser[810])
-#define INIT_TABLE_POS_parser___ReduceAction275 (SFT_parser[811] + 0)
-#define ID_parser___ReduceAction276 (SFT_parser[812])
-#define COLOR_parser___ReduceAction276 (SFT_parser[813])
-#define INIT_TABLE_POS_parser___ReduceAction276 (SFT_parser[814] + 0)
-#define ID_parser___ReduceAction277 (SFT_parser[815])
-#define COLOR_parser___ReduceAction277 (SFT_parser[816])
-#define INIT_TABLE_POS_parser___ReduceAction277 (SFT_parser[817] + 0)
-#define ID_parser___ReduceAction278 (SFT_parser[818])
-#define COLOR_parser___ReduceAction278 (SFT_parser[819])
-#define INIT_TABLE_POS_parser___ReduceAction278 (SFT_parser[820] + 0)
-#define ID_parser___ReduceAction279 (SFT_parser[821])
-#define COLOR_parser___ReduceAction279 (SFT_parser[822])
-#define INIT_TABLE_POS_parser___ReduceAction279 (SFT_parser[823] + 0)
-#define ID_parser___ReduceAction280 (SFT_parser[824])
-#define COLOR_parser___ReduceAction280 (SFT_parser[825])
-#define INIT_TABLE_POS_parser___ReduceAction280 (SFT_parser[826] + 0)
-#define ID_parser___ReduceAction281 (SFT_parser[827])
-#define COLOR_parser___ReduceAction281 (SFT_parser[828])
-#define INIT_TABLE_POS_parser___ReduceAction281 (SFT_parser[829] + 0)
-#define ID_parser___ReduceAction282 (SFT_parser[830])
-#define COLOR_parser___ReduceAction282 (SFT_parser[831])
-#define INIT_TABLE_POS_parser___ReduceAction282 (SFT_parser[832] + 0)
-#define ID_parser___ReduceAction283 (SFT_parser[833])
-#define COLOR_parser___ReduceAction283 (SFT_parser[834])
-#define INIT_TABLE_POS_parser___ReduceAction283 (SFT_parser[835] + 0)
-#define ID_parser___ReduceAction284 (SFT_parser[836])
-#define COLOR_parser___ReduceAction284 (SFT_parser[837])
-#define INIT_TABLE_POS_parser___ReduceAction284 (SFT_parser[838] + 0)
-#define ID_parser___ReduceAction285 (SFT_parser[839])
-#define COLOR_parser___ReduceAction285 (SFT_parser[840])
-#define INIT_TABLE_POS_parser___ReduceAction285 (SFT_parser[841] + 0)
-#define ID_parser___ReduceAction286 (SFT_parser[842])
-#define COLOR_parser___ReduceAction286 (SFT_parser[843])
-#define INIT_TABLE_POS_parser___ReduceAction286 (SFT_parser[844] + 0)
-#define ID_parser___ReduceAction287 (SFT_parser[845])
-#define COLOR_parser___ReduceAction287 (SFT_parser[846])
-#define INIT_TABLE_POS_parser___ReduceAction287 (SFT_parser[847] + 0)
-#define ID_parser___ReduceAction288 (SFT_parser[848])
-#define COLOR_parser___ReduceAction288 (SFT_parser[849])
-#define INIT_TABLE_POS_parser___ReduceAction288 (SFT_parser[850] + 0)
-#define ID_parser___ReduceAction289 (SFT_parser[851])
-#define COLOR_parser___ReduceAction289 (SFT_parser[852])
-#define INIT_TABLE_POS_parser___ReduceAction289 (SFT_parser[853] + 0)
-#define ID_parser___ReduceAction290 (SFT_parser[854])
-#define COLOR_parser___ReduceAction290 (SFT_parser[855])
-#define INIT_TABLE_POS_parser___ReduceAction290 (SFT_parser[856] + 0)
-#define ID_parser___ReduceAction291 (SFT_parser[857])
-#define COLOR_parser___ReduceAction291 (SFT_parser[858])
-#define INIT_TABLE_POS_parser___ReduceAction291 (SFT_parser[859] + 0)
-#define ID_parser___ReduceAction292 (SFT_parser[860])
-#define COLOR_parser___ReduceAction292 (SFT_parser[861])
-#define INIT_TABLE_POS_parser___ReduceAction292 (SFT_parser[862] + 0)
-#define ID_parser___ReduceAction293 (SFT_parser[863])
-#define COLOR_parser___ReduceAction293 (SFT_parser[864])
-#define INIT_TABLE_POS_parser___ReduceAction293 (SFT_parser[865] + 0)
-#define ID_parser___ReduceAction294 (SFT_parser[866])
-#define COLOR_parser___ReduceAction294 (SFT_parser[867])
-#define INIT_TABLE_POS_parser___ReduceAction294 (SFT_parser[868] + 0)
-#define ID_parser___ReduceAction295 (SFT_parser[869])
-#define COLOR_parser___ReduceAction295 (SFT_parser[870])
-#define INIT_TABLE_POS_parser___ReduceAction295 (SFT_parser[871] + 0)
-#define ID_parser___ReduceAction296 (SFT_parser[872])
-#define COLOR_parser___ReduceAction296 (SFT_parser[873])
-#define INIT_TABLE_POS_parser___ReduceAction296 (SFT_parser[874] + 0)
-#define ID_parser___ReduceAction297 (SFT_parser[875])
-#define COLOR_parser___ReduceAction297 (SFT_parser[876])
-#define INIT_TABLE_POS_parser___ReduceAction297 (SFT_parser[877] + 0)
-#define ID_parser___ReduceAction298 (SFT_parser[878])
-#define COLOR_parser___ReduceAction298 (SFT_parser[879])
-#define INIT_TABLE_POS_parser___ReduceAction298 (SFT_parser[880] + 0)
-#define ID_parser___ReduceAction299 (SFT_parser[881])
-#define COLOR_parser___ReduceAction299 (SFT_parser[882])
-#define INIT_TABLE_POS_parser___ReduceAction299 (SFT_parser[883] + 0)
-#define ID_parser___ReduceAction300 (SFT_parser[884])
-#define COLOR_parser___ReduceAction300 (SFT_parser[885])
-#define INIT_TABLE_POS_parser___ReduceAction300 (SFT_parser[886] + 0)
-#define ID_parser___ReduceAction301 (SFT_parser[887])
-#define COLOR_parser___ReduceAction301 (SFT_parser[888])
-#define INIT_TABLE_POS_parser___ReduceAction301 (SFT_parser[889] + 0)
-#define ID_parser___ReduceAction302 (SFT_parser[890])
-#define COLOR_parser___ReduceAction302 (SFT_parser[891])
-#define INIT_TABLE_POS_parser___ReduceAction302 (SFT_parser[892] + 0)
-#define ID_parser___ReduceAction303 (SFT_parser[893])
-#define COLOR_parser___ReduceAction303 (SFT_parser[894])
-#define INIT_TABLE_POS_parser___ReduceAction303 (SFT_parser[895] + 0)
-#define ID_parser___ReduceAction304 (SFT_parser[896])
-#define COLOR_parser___ReduceAction304 (SFT_parser[897])
-#define INIT_TABLE_POS_parser___ReduceAction304 (SFT_parser[898] + 0)
-#define ID_parser___ReduceAction305 (SFT_parser[899])
-#define COLOR_parser___ReduceAction305 (SFT_parser[900])
-#define INIT_TABLE_POS_parser___ReduceAction305 (SFT_parser[901] + 0)
-#define ID_parser___ReduceAction306 (SFT_parser[902])
-#define COLOR_parser___ReduceAction306 (SFT_parser[903])
-#define INIT_TABLE_POS_parser___ReduceAction306 (SFT_parser[904] + 0)
-#define ID_parser___ReduceAction307 (SFT_parser[905])
-#define COLOR_parser___ReduceAction307 (SFT_parser[906])
-#define INIT_TABLE_POS_parser___ReduceAction307 (SFT_parser[907] + 0)
-#define ID_parser___ReduceAction308 (SFT_parser[908])
-#define COLOR_parser___ReduceAction308 (SFT_parser[909])
-#define INIT_TABLE_POS_parser___ReduceAction308 (SFT_parser[910] + 0)
-#define ID_parser___ReduceAction309 (SFT_parser[911])
-#define COLOR_parser___ReduceAction309 (SFT_parser[912])
-#define INIT_TABLE_POS_parser___ReduceAction309 (SFT_parser[913] + 0)
-#define ID_parser___ReduceAction310 (SFT_parser[914])
-#define COLOR_parser___ReduceAction310 (SFT_parser[915])
-#define INIT_TABLE_POS_parser___ReduceAction310 (SFT_parser[916] + 0)
-#define ID_parser___ReduceAction311 (SFT_parser[917])
-#define COLOR_parser___ReduceAction311 (SFT_parser[918])
-#define INIT_TABLE_POS_parser___ReduceAction311 (SFT_parser[919] + 0)
-#define ID_parser___ReduceAction312 (SFT_parser[920])
-#define COLOR_parser___ReduceAction312 (SFT_parser[921])
-#define INIT_TABLE_POS_parser___ReduceAction312 (SFT_parser[922] + 0)
-#define ID_parser___ReduceAction313 (SFT_parser[923])
-#define COLOR_parser___ReduceAction313 (SFT_parser[924])
-#define INIT_TABLE_POS_parser___ReduceAction313 (SFT_parser[925] + 0)
-#define ID_parser___ReduceAction314 (SFT_parser[926])
-#define COLOR_parser___ReduceAction314 (SFT_parser[927])
-#define INIT_TABLE_POS_parser___ReduceAction314 (SFT_parser[928] + 0)
-#define ID_parser___ReduceAction317 (SFT_parser[929])
-#define COLOR_parser___ReduceAction317 (SFT_parser[930])
-#define INIT_TABLE_POS_parser___ReduceAction317 (SFT_parser[931] + 0)
-#define ID_parser___ReduceAction318 (SFT_parser[932])
-#define COLOR_parser___ReduceAction318 (SFT_parser[933])
-#define INIT_TABLE_POS_parser___ReduceAction318 (SFT_parser[934] + 0)
-#define ID_parser___ReduceAction319 (SFT_parser[935])
-#define COLOR_parser___ReduceAction319 (SFT_parser[936])
-#define INIT_TABLE_POS_parser___ReduceAction319 (SFT_parser[937] + 0)
-#define ID_parser___ReduceAction320 (SFT_parser[938])
-#define COLOR_parser___ReduceAction320 (SFT_parser[939])
-#define INIT_TABLE_POS_parser___ReduceAction320 (SFT_parser[940] + 0)
-#define ID_parser___ReduceAction321 (SFT_parser[941])
-#define COLOR_parser___ReduceAction321 (SFT_parser[942])
-#define INIT_TABLE_POS_parser___ReduceAction321 (SFT_parser[943] + 0)
-#define ID_parser___ReduceAction322 (SFT_parser[944])
-#define COLOR_parser___ReduceAction322 (SFT_parser[945])
-#define INIT_TABLE_POS_parser___ReduceAction322 (SFT_parser[946] + 0)
-#define ID_parser___ReduceAction323 (SFT_parser[947])
-#define COLOR_parser___ReduceAction323 (SFT_parser[948])
-#define INIT_TABLE_POS_parser___ReduceAction323 (SFT_parser[949] + 0)
-#define ID_parser___ReduceAction324 (SFT_parser[950])
-#define COLOR_parser___ReduceAction324 (SFT_parser[951])
-#define INIT_TABLE_POS_parser___ReduceAction324 (SFT_parser[952] + 0)
-#define ID_parser___ReduceAction325 (SFT_parser[953])
-#define COLOR_parser___ReduceAction325 (SFT_parser[954])
-#define INIT_TABLE_POS_parser___ReduceAction325 (SFT_parser[955] + 0)
-#define ID_parser___ReduceAction326 (SFT_parser[956])
-#define COLOR_parser___ReduceAction326 (SFT_parser[957])
-#define INIT_TABLE_POS_parser___ReduceAction326 (SFT_parser[958] + 0)
-#define ID_parser___ReduceAction327 (SFT_parser[959])
-#define COLOR_parser___ReduceAction327 (SFT_parser[960])
-#define INIT_TABLE_POS_parser___ReduceAction327 (SFT_parser[961] + 0)
-#define ID_parser___ReduceAction328 (SFT_parser[962])
-#define COLOR_parser___ReduceAction328 (SFT_parser[963])
-#define INIT_TABLE_POS_parser___ReduceAction328 (SFT_parser[964] + 0)
-#define ID_parser___ReduceAction329 (SFT_parser[965])
-#define COLOR_parser___ReduceAction329 (SFT_parser[966])
-#define INIT_TABLE_POS_parser___ReduceAction329 (SFT_parser[967] + 0)
-#define ID_parser___ReduceAction333 (SFT_parser[968])
-#define COLOR_parser___ReduceAction333 (SFT_parser[969])
-#define INIT_TABLE_POS_parser___ReduceAction333 (SFT_parser[970] + 0)
-#define ID_parser___ReduceAction335 (SFT_parser[971])
-#define COLOR_parser___ReduceAction335 (SFT_parser[972])
-#define INIT_TABLE_POS_parser___ReduceAction335 (SFT_parser[973] + 0)
-#define ID_parser___ReduceAction337 (SFT_parser[974])
-#define COLOR_parser___ReduceAction337 (SFT_parser[975])
-#define INIT_TABLE_POS_parser___ReduceAction337 (SFT_parser[976] + 0)
-#define ID_parser___ReduceAction338 (SFT_parser[977])
-#define COLOR_parser___ReduceAction338 (SFT_parser[978])
-#define INIT_TABLE_POS_parser___ReduceAction338 (SFT_parser[979] + 0)
-#define ID_parser___ReduceAction339 (SFT_parser[980])
-#define COLOR_parser___ReduceAction339 (SFT_parser[981])
-#define INIT_TABLE_POS_parser___ReduceAction339 (SFT_parser[982] + 0)
-#define ID_parser___ReduceAction341 (SFT_parser[983])
-#define COLOR_parser___ReduceAction341 (SFT_parser[984])
-#define INIT_TABLE_POS_parser___ReduceAction341 (SFT_parser[985] + 0)
-#define ID_parser___ReduceAction343 (SFT_parser[986])
-#define COLOR_parser___ReduceAction343 (SFT_parser[987])
-#define INIT_TABLE_POS_parser___ReduceAction343 (SFT_parser[988] + 0)
-#define ID_parser___ReduceAction344 (SFT_parser[989])
-#define COLOR_parser___ReduceAction344 (SFT_parser[990])
-#define INIT_TABLE_POS_parser___ReduceAction344 (SFT_parser[991] + 0)
-#define ID_parser___ReduceAction345 (SFT_parser[992])
-#define COLOR_parser___ReduceAction345 (SFT_parser[993])
-#define INIT_TABLE_POS_parser___ReduceAction345 (SFT_parser[994] + 0)
-#define ID_parser___ReduceAction346 (SFT_parser[995])
-#define COLOR_parser___ReduceAction346 (SFT_parser[996])
-#define INIT_TABLE_POS_parser___ReduceAction346 (SFT_parser[997] + 0)
-#define ID_parser___ReduceAction347 (SFT_parser[998])
-#define COLOR_parser___ReduceAction347 (SFT_parser[999])
-#define INIT_TABLE_POS_parser___ReduceAction347 (SFT_parser[1000] + 0)
-#define ID_parser___ReduceAction348 (SFT_parser[1001])
-#define COLOR_parser___ReduceAction348 (SFT_parser[1002])
-#define INIT_TABLE_POS_parser___ReduceAction348 (SFT_parser[1003] + 0)
+#define ID_parser___ReduceAction244 (SFT_parser[740])
+#define COLOR_parser___ReduceAction244 (SFT_parser[741])
+#define INIT_TABLE_POS_parser___ReduceAction244 (SFT_parser[742] + 0)
+#define ID_parser___ReduceAction245 (SFT_parser[743])
+#define COLOR_parser___ReduceAction245 (SFT_parser[744])
+#define INIT_TABLE_POS_parser___ReduceAction245 (SFT_parser[745] + 0)
+#define ID_parser___ReduceAction246 (SFT_parser[746])
+#define COLOR_parser___ReduceAction246 (SFT_parser[747])
+#define INIT_TABLE_POS_parser___ReduceAction246 (SFT_parser[748] + 0)
+#define ID_parser___ReduceAction247 (SFT_parser[749])
+#define COLOR_parser___ReduceAction247 (SFT_parser[750])
+#define INIT_TABLE_POS_parser___ReduceAction247 (SFT_parser[751] + 0)
+#define ID_parser___ReduceAction248 (SFT_parser[752])
+#define COLOR_parser___ReduceAction248 (SFT_parser[753])
+#define INIT_TABLE_POS_parser___ReduceAction248 (SFT_parser[754] + 0)
+#define ID_parser___ReduceAction249 (SFT_parser[755])
+#define COLOR_parser___ReduceAction249 (SFT_parser[756])
+#define INIT_TABLE_POS_parser___ReduceAction249 (SFT_parser[757] + 0)
+#define ID_parser___ReduceAction253 (SFT_parser[758])
+#define COLOR_parser___ReduceAction253 (SFT_parser[759])
+#define INIT_TABLE_POS_parser___ReduceAction253 (SFT_parser[760] + 0)
+#define ID_parser___ReduceAction254 (SFT_parser[761])
+#define COLOR_parser___ReduceAction254 (SFT_parser[762])
+#define INIT_TABLE_POS_parser___ReduceAction254 (SFT_parser[763] + 0)
+#define ID_parser___ReduceAction255 (SFT_parser[764])
+#define COLOR_parser___ReduceAction255 (SFT_parser[765])
+#define INIT_TABLE_POS_parser___ReduceAction255 (SFT_parser[766] + 0)
+#define ID_parser___ReduceAction256 (SFT_parser[767])
+#define COLOR_parser___ReduceAction256 (SFT_parser[768])
+#define INIT_TABLE_POS_parser___ReduceAction256 (SFT_parser[769] + 0)
+#define ID_parser___ReduceAction257 (SFT_parser[770])
+#define COLOR_parser___ReduceAction257 (SFT_parser[771])
+#define INIT_TABLE_POS_parser___ReduceAction257 (SFT_parser[772] + 0)
+#define ID_parser___ReduceAction258 (SFT_parser[773])
+#define COLOR_parser___ReduceAction258 (SFT_parser[774])
+#define INIT_TABLE_POS_parser___ReduceAction258 (SFT_parser[775] + 0)
+#define ID_parser___ReduceAction259 (SFT_parser[776])
+#define COLOR_parser___ReduceAction259 (SFT_parser[777])
+#define INIT_TABLE_POS_parser___ReduceAction259 (SFT_parser[778] + 0)
+#define ID_parser___ReduceAction260 (SFT_parser[779])
+#define COLOR_parser___ReduceAction260 (SFT_parser[780])
+#define INIT_TABLE_POS_parser___ReduceAction260 (SFT_parser[781] + 0)
+#define ID_parser___ReduceAction261 (SFT_parser[782])
+#define COLOR_parser___ReduceAction261 (SFT_parser[783])
+#define INIT_TABLE_POS_parser___ReduceAction261 (SFT_parser[784] + 0)
+#define ID_parser___ReduceAction262 (SFT_parser[785])
+#define COLOR_parser___ReduceAction262 (SFT_parser[786])
+#define INIT_TABLE_POS_parser___ReduceAction262 (SFT_parser[787] + 0)
+#define ID_parser___ReduceAction263 (SFT_parser[788])
+#define COLOR_parser___ReduceAction263 (SFT_parser[789])
+#define INIT_TABLE_POS_parser___ReduceAction263 (SFT_parser[790] + 0)
+#define ID_parser___ReduceAction270 (SFT_parser[791])
+#define COLOR_parser___ReduceAction270 (SFT_parser[792])
+#define INIT_TABLE_POS_parser___ReduceAction270 (SFT_parser[793] + 0)
+#define ID_parser___ReduceAction271 (SFT_parser[794])
+#define COLOR_parser___ReduceAction271 (SFT_parser[795])
+#define INIT_TABLE_POS_parser___ReduceAction271 (SFT_parser[796] + 0)
+#define ID_parser___ReduceAction272 (SFT_parser[797])
+#define COLOR_parser___ReduceAction272 (SFT_parser[798])
+#define INIT_TABLE_POS_parser___ReduceAction272 (SFT_parser[799] + 0)
+#define ID_parser___ReduceAction273 (SFT_parser[800])
+#define COLOR_parser___ReduceAction273 (SFT_parser[801])
+#define INIT_TABLE_POS_parser___ReduceAction273 (SFT_parser[802] + 0)
+#define ID_parser___ReduceAction274 (SFT_parser[803])
+#define COLOR_parser___ReduceAction274 (SFT_parser[804])
+#define INIT_TABLE_POS_parser___ReduceAction274 (SFT_parser[805] + 0)
+#define ID_parser___ReduceAction275 (SFT_parser[806])
+#define COLOR_parser___ReduceAction275 (SFT_parser[807])
+#define INIT_TABLE_POS_parser___ReduceAction275 (SFT_parser[808] + 0)
+#define ID_parser___ReduceAction276 (SFT_parser[809])
+#define COLOR_parser___ReduceAction276 (SFT_parser[810])
+#define INIT_TABLE_POS_parser___ReduceAction276 (SFT_parser[811] + 0)
+#define ID_parser___ReduceAction277 (SFT_parser[812])
+#define COLOR_parser___ReduceAction277 (SFT_parser[813])
+#define INIT_TABLE_POS_parser___ReduceAction277 (SFT_parser[814] + 0)
+#define ID_parser___ReduceAction278 (SFT_parser[815])
+#define COLOR_parser___ReduceAction278 (SFT_parser[816])
+#define INIT_TABLE_POS_parser___ReduceAction278 (SFT_parser[817] + 0)
+#define ID_parser___ReduceAction279 (SFT_parser[818])
+#define COLOR_parser___ReduceAction279 (SFT_parser[819])
+#define INIT_TABLE_POS_parser___ReduceAction279 (SFT_parser[820] + 0)
+#define ID_parser___ReduceAction280 (SFT_parser[821])
+#define COLOR_parser___ReduceAction280 (SFT_parser[822])
+#define INIT_TABLE_POS_parser___ReduceAction280 (SFT_parser[823] + 0)
+#define ID_parser___ReduceAction281 (SFT_parser[824])
+#define COLOR_parser___ReduceAction281 (SFT_parser[825])
+#define INIT_TABLE_POS_parser___ReduceAction281 (SFT_parser[826] + 0)
+#define ID_parser___ReduceAction282 (SFT_parser[827])
+#define COLOR_parser___ReduceAction282 (SFT_parser[828])
+#define INIT_TABLE_POS_parser___ReduceAction282 (SFT_parser[829] + 0)
+#define ID_parser___ReduceAction283 (SFT_parser[830])
+#define COLOR_parser___ReduceAction283 (SFT_parser[831])
+#define INIT_TABLE_POS_parser___ReduceAction283 (SFT_parser[832] + 0)
+#define ID_parser___ReduceAction284 (SFT_parser[833])
+#define COLOR_parser___ReduceAction284 (SFT_parser[834])
+#define INIT_TABLE_POS_parser___ReduceAction284 (SFT_parser[835] + 0)
+#define ID_parser___ReduceAction285 (SFT_parser[836])
+#define COLOR_parser___ReduceAction285 (SFT_parser[837])
+#define INIT_TABLE_POS_parser___ReduceAction285 (SFT_parser[838] + 0)
+#define ID_parser___ReduceAction286 (SFT_parser[839])
+#define COLOR_parser___ReduceAction286 (SFT_parser[840])
+#define INIT_TABLE_POS_parser___ReduceAction286 (SFT_parser[841] + 0)
+#define ID_parser___ReduceAction287 (SFT_parser[842])
+#define COLOR_parser___ReduceAction287 (SFT_parser[843])
+#define INIT_TABLE_POS_parser___ReduceAction287 (SFT_parser[844] + 0)
+#define ID_parser___ReduceAction288 (SFT_parser[845])
+#define COLOR_parser___ReduceAction288 (SFT_parser[846])
+#define INIT_TABLE_POS_parser___ReduceAction288 (SFT_parser[847] + 0)
+#define ID_parser___ReduceAction289 (SFT_parser[848])
+#define COLOR_parser___ReduceAction289 (SFT_parser[849])
+#define INIT_TABLE_POS_parser___ReduceAction289 (SFT_parser[850] + 0)
+#define ID_parser___ReduceAction290 (SFT_parser[851])
+#define COLOR_parser___ReduceAction290 (SFT_parser[852])
+#define INIT_TABLE_POS_parser___ReduceAction290 (SFT_parser[853] + 0)
+#define ID_parser___ReduceAction291 (SFT_parser[854])
+#define COLOR_parser___ReduceAction291 (SFT_parser[855])
+#define INIT_TABLE_POS_parser___ReduceAction291 (SFT_parser[856] + 0)
+#define ID_parser___ReduceAction292 (SFT_parser[857])
+#define COLOR_parser___ReduceAction292 (SFT_parser[858])
+#define INIT_TABLE_POS_parser___ReduceAction292 (SFT_parser[859] + 0)
+#define ID_parser___ReduceAction293 (SFT_parser[860])
+#define COLOR_parser___ReduceAction293 (SFT_parser[861])
+#define INIT_TABLE_POS_parser___ReduceAction293 (SFT_parser[862] + 0)
+#define ID_parser___ReduceAction294 (SFT_parser[863])
+#define COLOR_parser___ReduceAction294 (SFT_parser[864])
+#define INIT_TABLE_POS_parser___ReduceAction294 (SFT_parser[865] + 0)
+#define ID_parser___ReduceAction295 (SFT_parser[866])
+#define COLOR_parser___ReduceAction295 (SFT_parser[867])
+#define INIT_TABLE_POS_parser___ReduceAction295 (SFT_parser[868] + 0)
+#define ID_parser___ReduceAction296 (SFT_parser[869])
+#define COLOR_parser___ReduceAction296 (SFT_parser[870])
+#define INIT_TABLE_POS_parser___ReduceAction296 (SFT_parser[871] + 0)
+#define ID_parser___ReduceAction297 (SFT_parser[872])
+#define COLOR_parser___ReduceAction297 (SFT_parser[873])
+#define INIT_TABLE_POS_parser___ReduceAction297 (SFT_parser[874] + 0)
+#define ID_parser___ReduceAction298 (SFT_parser[875])
+#define COLOR_parser___ReduceAction298 (SFT_parser[876])
+#define INIT_TABLE_POS_parser___ReduceAction298 (SFT_parser[877] + 0)
+#define ID_parser___ReduceAction299 (SFT_parser[878])
+#define COLOR_parser___ReduceAction299 (SFT_parser[879])
+#define INIT_TABLE_POS_parser___ReduceAction299 (SFT_parser[880] + 0)
+#define ID_parser___ReduceAction300 (SFT_parser[881])
+#define COLOR_parser___ReduceAction300 (SFT_parser[882])
+#define INIT_TABLE_POS_parser___ReduceAction300 (SFT_parser[883] + 0)
+#define ID_parser___ReduceAction301 (SFT_parser[884])
+#define COLOR_parser___ReduceAction301 (SFT_parser[885])
+#define INIT_TABLE_POS_parser___ReduceAction301 (SFT_parser[886] + 0)
+#define ID_parser___ReduceAction302 (SFT_parser[887])
+#define COLOR_parser___ReduceAction302 (SFT_parser[888])
+#define INIT_TABLE_POS_parser___ReduceAction302 (SFT_parser[889] + 0)
+#define ID_parser___ReduceAction303 (SFT_parser[890])
+#define COLOR_parser___ReduceAction303 (SFT_parser[891])
+#define INIT_TABLE_POS_parser___ReduceAction303 (SFT_parser[892] + 0)
+#define ID_parser___ReduceAction304 (SFT_parser[893])
+#define COLOR_parser___ReduceAction304 (SFT_parser[894])
+#define INIT_TABLE_POS_parser___ReduceAction304 (SFT_parser[895] + 0)
+#define ID_parser___ReduceAction305 (SFT_parser[896])
+#define COLOR_parser___ReduceAction305 (SFT_parser[897])
+#define INIT_TABLE_POS_parser___ReduceAction305 (SFT_parser[898] + 0)
+#define ID_parser___ReduceAction306 (SFT_parser[899])
+#define COLOR_parser___ReduceAction306 (SFT_parser[900])
+#define INIT_TABLE_POS_parser___ReduceAction306 (SFT_parser[901] + 0)
+#define ID_parser___ReduceAction307 (SFT_parser[902])
+#define COLOR_parser___ReduceAction307 (SFT_parser[903])
+#define INIT_TABLE_POS_parser___ReduceAction307 (SFT_parser[904] + 0)
+#define ID_parser___ReduceAction308 (SFT_parser[905])
+#define COLOR_parser___ReduceAction308 (SFT_parser[906])
+#define INIT_TABLE_POS_parser___ReduceAction308 (SFT_parser[907] + 0)
+#define ID_parser___ReduceAction309 (SFT_parser[908])
+#define COLOR_parser___ReduceAction309 (SFT_parser[909])
+#define INIT_TABLE_POS_parser___ReduceAction309 (SFT_parser[910] + 0)
+#define ID_parser___ReduceAction310 (SFT_parser[911])
+#define COLOR_parser___ReduceAction310 (SFT_parser[912])
+#define INIT_TABLE_POS_parser___ReduceAction310 (SFT_parser[913] + 0)
+#define ID_parser___ReduceAction311 (SFT_parser[914])
+#define COLOR_parser___ReduceAction311 (SFT_parser[915])
+#define INIT_TABLE_POS_parser___ReduceAction311 (SFT_parser[916] + 0)
+#define ID_parser___ReduceAction312 (SFT_parser[917])
+#define COLOR_parser___ReduceAction312 (SFT_parser[918])
+#define INIT_TABLE_POS_parser___ReduceAction312 (SFT_parser[919] + 0)
+#define ID_parser___ReduceAction313 (SFT_parser[920])
+#define COLOR_parser___ReduceAction313 (SFT_parser[921])
+#define INIT_TABLE_POS_parser___ReduceAction313 (SFT_parser[922] + 0)
+#define ID_parser___ReduceAction314 (SFT_parser[923])
+#define COLOR_parser___ReduceAction314 (SFT_parser[924])
+#define INIT_TABLE_POS_parser___ReduceAction314 (SFT_parser[925] + 0)
+#define ID_parser___ReduceAction315 (SFT_parser[926])
+#define COLOR_parser___ReduceAction315 (SFT_parser[927])
+#define INIT_TABLE_POS_parser___ReduceAction315 (SFT_parser[928] + 0)
+#define ID_parser___ReduceAction316 (SFT_parser[929])
+#define COLOR_parser___ReduceAction316 (SFT_parser[930])
+#define INIT_TABLE_POS_parser___ReduceAction316 (SFT_parser[931] + 0)
+#define ID_parser___ReduceAction317 (SFT_parser[932])
+#define COLOR_parser___ReduceAction317 (SFT_parser[933])
+#define INIT_TABLE_POS_parser___ReduceAction317 (SFT_parser[934] + 0)
+#define ID_parser___ReduceAction318 (SFT_parser[935])
+#define COLOR_parser___ReduceAction318 (SFT_parser[936])
+#define INIT_TABLE_POS_parser___ReduceAction318 (SFT_parser[937] + 0)
+#define ID_parser___ReduceAction319 (SFT_parser[938])
+#define COLOR_parser___ReduceAction319 (SFT_parser[939])
+#define INIT_TABLE_POS_parser___ReduceAction319 (SFT_parser[940] + 0)
+#define ID_parser___ReduceAction320 (SFT_parser[941])
+#define COLOR_parser___ReduceAction320 (SFT_parser[942])
+#define INIT_TABLE_POS_parser___ReduceAction320 (SFT_parser[943] + 0)
+#define ID_parser___ReduceAction321 (SFT_parser[944])
+#define COLOR_parser___ReduceAction321 (SFT_parser[945])
+#define INIT_TABLE_POS_parser___ReduceAction321 (SFT_parser[946] + 0)
+#define ID_parser___ReduceAction322 (SFT_parser[947])
+#define COLOR_parser___ReduceAction322 (SFT_parser[948])
+#define INIT_TABLE_POS_parser___ReduceAction322 (SFT_parser[949] + 0)
+#define ID_parser___ReduceAction325 (SFT_parser[950])
+#define COLOR_parser___ReduceAction325 (SFT_parser[951])
+#define INIT_TABLE_POS_parser___ReduceAction325 (SFT_parser[952] + 0)
+#define ID_parser___ReduceAction326 (SFT_parser[953])
+#define COLOR_parser___ReduceAction326 (SFT_parser[954])
+#define INIT_TABLE_POS_parser___ReduceAction326 (SFT_parser[955] + 0)
+#define ID_parser___ReduceAction327 (SFT_parser[956])
+#define COLOR_parser___ReduceAction327 (SFT_parser[957])
+#define INIT_TABLE_POS_parser___ReduceAction327 (SFT_parser[958] + 0)
+#define ID_parser___ReduceAction328 (SFT_parser[959])
+#define COLOR_parser___ReduceAction328 (SFT_parser[960])
+#define INIT_TABLE_POS_parser___ReduceAction328 (SFT_parser[961] + 0)
+#define ID_parser___ReduceAction329 (SFT_parser[962])
+#define COLOR_parser___ReduceAction329 (SFT_parser[963])
+#define INIT_TABLE_POS_parser___ReduceAction329 (SFT_parser[964] + 0)
+#define ID_parser___ReduceAction330 (SFT_parser[965])
+#define COLOR_parser___ReduceAction330 (SFT_parser[966])
+#define INIT_TABLE_POS_parser___ReduceAction330 (SFT_parser[967] + 0)
+#define ID_parser___ReduceAction331 (SFT_parser[968])
+#define COLOR_parser___ReduceAction331 (SFT_parser[969])
+#define INIT_TABLE_POS_parser___ReduceAction331 (SFT_parser[970] + 0)
+#define ID_parser___ReduceAction332 (SFT_parser[971])
+#define COLOR_parser___ReduceAction332 (SFT_parser[972])
+#define INIT_TABLE_POS_parser___ReduceAction332 (SFT_parser[973] + 0)
+#define ID_parser___ReduceAction333 (SFT_parser[974])
+#define COLOR_parser___ReduceAction333 (SFT_parser[975])
+#define INIT_TABLE_POS_parser___ReduceAction333 (SFT_parser[976] + 0)
+#define ID_parser___ReduceAction334 (SFT_parser[977])
+#define COLOR_parser___ReduceAction334 (SFT_parser[978])
+#define INIT_TABLE_POS_parser___ReduceAction334 (SFT_parser[979] + 0)
+#define ID_parser___ReduceAction335 (SFT_parser[980])
+#define COLOR_parser___ReduceAction335 (SFT_parser[981])
+#define INIT_TABLE_POS_parser___ReduceAction335 (SFT_parser[982] + 0)
+#define ID_parser___ReduceAction336 (SFT_parser[983])
+#define COLOR_parser___ReduceAction336 (SFT_parser[984])
+#define INIT_TABLE_POS_parser___ReduceAction336 (SFT_parser[985] + 0)
+#define ID_parser___ReduceAction337 (SFT_parser[986])
+#define COLOR_parser___ReduceAction337 (SFT_parser[987])
+#define INIT_TABLE_POS_parser___ReduceAction337 (SFT_parser[988] + 0)
+#define ID_parser___ReduceAction341 (SFT_parser[989])
+#define COLOR_parser___ReduceAction341 (SFT_parser[990])
+#define INIT_TABLE_POS_parser___ReduceAction341 (SFT_parser[991] + 0)
+#define ID_parser___ReduceAction343 (SFT_parser[992])
+#define COLOR_parser___ReduceAction343 (SFT_parser[993])
+#define INIT_TABLE_POS_parser___ReduceAction343 (SFT_parser[994] + 0)
+#define ID_parser___ReduceAction345 (SFT_parser[995])
+#define COLOR_parser___ReduceAction345 (SFT_parser[996])
+#define INIT_TABLE_POS_parser___ReduceAction345 (SFT_parser[997] + 0)
+#define ID_parser___ReduceAction346 (SFT_parser[998])
+#define COLOR_parser___ReduceAction346 (SFT_parser[999])
+#define INIT_TABLE_POS_parser___ReduceAction346 (SFT_parser[1000] + 0)
+#define ID_parser___ReduceAction347 (SFT_parser[1001])
+#define COLOR_parser___ReduceAction347 (SFT_parser[1002])
+#define INIT_TABLE_POS_parser___ReduceAction347 (SFT_parser[1003] + 0)
 #define ID_parser___ReduceAction349 (SFT_parser[1004])
 #define COLOR_parser___ReduceAction349 (SFT_parser[1005])
 #define INIT_TABLE_POS_parser___ReduceAction349 (SFT_parser[1006] + 0)
-#define ID_parser___ReduceAction350 (SFT_parser[1007])
-#define COLOR_parser___ReduceAction350 (SFT_parser[1008])
-#define INIT_TABLE_POS_parser___ReduceAction350 (SFT_parser[1009] + 0)
-#define ID_parser___ReduceAction351 (SFT_parser[1010])
-#define COLOR_parser___ReduceAction351 (SFT_parser[1011])
-#define INIT_TABLE_POS_parser___ReduceAction351 (SFT_parser[1012] + 0)
-#define ID_parser___ReduceAction352 (SFT_parser[1013])
-#define COLOR_parser___ReduceAction352 (SFT_parser[1014])
-#define INIT_TABLE_POS_parser___ReduceAction352 (SFT_parser[1015] + 0)
-#define ID_parser___ReduceAction353 (SFT_parser[1016])
-#define COLOR_parser___ReduceAction353 (SFT_parser[1017])
-#define INIT_TABLE_POS_parser___ReduceAction353 (SFT_parser[1018] + 0)
+#define ID_parser___ReduceAction351 (SFT_parser[1007])
+#define COLOR_parser___ReduceAction351 (SFT_parser[1008])
+#define INIT_TABLE_POS_parser___ReduceAction351 (SFT_parser[1009] + 0)
+#define ID_parser___ReduceAction352 (SFT_parser[1010])
+#define COLOR_parser___ReduceAction352 (SFT_parser[1011])
+#define INIT_TABLE_POS_parser___ReduceAction352 (SFT_parser[1012] + 0)
+#define ID_parser___ReduceAction353 (SFT_parser[1013])
+#define COLOR_parser___ReduceAction353 (SFT_parser[1014])
+#define INIT_TABLE_POS_parser___ReduceAction353 (SFT_parser[1015] + 0)
+#define ID_parser___ReduceAction354 (SFT_parser[1016])
+#define COLOR_parser___ReduceAction354 (SFT_parser[1017])
+#define INIT_TABLE_POS_parser___ReduceAction354 (SFT_parser[1018] + 0)
 #define ID_parser___ReduceAction355 (SFT_parser[1019])
 #define COLOR_parser___ReduceAction355 (SFT_parser[1020])
 #define INIT_TABLE_POS_parser___ReduceAction355 (SFT_parser[1021] + 0)
 #define ID_parser___ReduceAction356 (SFT_parser[1022])
 #define COLOR_parser___ReduceAction356 (SFT_parser[1023])
 #define INIT_TABLE_POS_parser___ReduceAction356 (SFT_parser[1024] + 0)
-#define ID_parser___ReduceAction358 (SFT_parser[1025])
-#define COLOR_parser___ReduceAction358 (SFT_parser[1026])
-#define INIT_TABLE_POS_parser___ReduceAction358 (SFT_parser[1027] + 0)
-#define ID_parser___ReduceAction359 (SFT_parser[1028])
-#define COLOR_parser___ReduceAction359 (SFT_parser[1029])
-#define INIT_TABLE_POS_parser___ReduceAction359 (SFT_parser[1030] + 0)
-#define ID_parser___ReduceAction360 (SFT_parser[1031])
-#define COLOR_parser___ReduceAction360 (SFT_parser[1032])
-#define INIT_TABLE_POS_parser___ReduceAction360 (SFT_parser[1033] + 0)
-#define ID_parser___ReduceAction362 (SFT_parser[1034])
-#define COLOR_parser___ReduceAction362 (SFT_parser[1035])
-#define INIT_TABLE_POS_parser___ReduceAction362 (SFT_parser[1036] + 0)
-#define ID_parser___ReduceAction363 (SFT_parser[1037])
-#define COLOR_parser___ReduceAction363 (SFT_parser[1038])
-#define INIT_TABLE_POS_parser___ReduceAction363 (SFT_parser[1039] + 0)
-#define ID_parser___ReduceAction365 (SFT_parser[1040])
-#define COLOR_parser___ReduceAction365 (SFT_parser[1041])
-#define INIT_TABLE_POS_parser___ReduceAction365 (SFT_parser[1042] + 0)
-#define ID_parser___ReduceAction366 (SFT_parser[1043])
-#define COLOR_parser___ReduceAction366 (SFT_parser[1044])
-#define INIT_TABLE_POS_parser___ReduceAction366 (SFT_parser[1045] + 0)
-#define ID_parser___ReduceAction367 (SFT_parser[1046])
-#define COLOR_parser___ReduceAction367 (SFT_parser[1047])
-#define INIT_TABLE_POS_parser___ReduceAction367 (SFT_parser[1048] + 0)
-#define ID_parser___ReduceAction368 (SFT_parser[1049])
-#define COLOR_parser___ReduceAction368 (SFT_parser[1050])
-#define INIT_TABLE_POS_parser___ReduceAction368 (SFT_parser[1051] + 0)
-#define ID_parser___ReduceAction369 (SFT_parser[1052])
-#define COLOR_parser___ReduceAction369 (SFT_parser[1053])
-#define INIT_TABLE_POS_parser___ReduceAction369 (SFT_parser[1054] + 0)
-#define ID_parser___ReduceAction376 (SFT_parser[1055])
-#define COLOR_parser___ReduceAction376 (SFT_parser[1056])
-#define INIT_TABLE_POS_parser___ReduceAction376 (SFT_parser[1057] + 0)
-#define ID_parser___ReduceAction377 (SFT_parser[1058])
-#define COLOR_parser___ReduceAction377 (SFT_parser[1059])
-#define INIT_TABLE_POS_parser___ReduceAction377 (SFT_parser[1060] + 0)
-#define ID_parser___ReduceAction378 (SFT_parser[1061])
-#define COLOR_parser___ReduceAction378 (SFT_parser[1062])
-#define INIT_TABLE_POS_parser___ReduceAction378 (SFT_parser[1063] + 0)
-#define ID_parser___ReduceAction379 (SFT_parser[1064])
-#define COLOR_parser___ReduceAction379 (SFT_parser[1065])
-#define INIT_TABLE_POS_parser___ReduceAction379 (SFT_parser[1066] + 0)
-#define ID_parser___ReduceAction380 (SFT_parser[1067])
-#define COLOR_parser___ReduceAction380 (SFT_parser[1068])
-#define INIT_TABLE_POS_parser___ReduceAction380 (SFT_parser[1069] + 0)
-#define ID_parser___ReduceAction381 (SFT_parser[1070])
-#define COLOR_parser___ReduceAction381 (SFT_parser[1071])
-#define INIT_TABLE_POS_parser___ReduceAction381 (SFT_parser[1072] + 0)
-#define ID_parser___ReduceAction382 (SFT_parser[1073])
-#define COLOR_parser___ReduceAction382 (SFT_parser[1074])
-#define INIT_TABLE_POS_parser___ReduceAction382 (SFT_parser[1075] + 0)
-#define ID_parser___ReduceAction383 (SFT_parser[1076])
-#define COLOR_parser___ReduceAction383 (SFT_parser[1077])
-#define INIT_TABLE_POS_parser___ReduceAction383 (SFT_parser[1078] + 0)
-#define ID_parser___ReduceAction384 (SFT_parser[1079])
-#define COLOR_parser___ReduceAction384 (SFT_parser[1080])
-#define INIT_TABLE_POS_parser___ReduceAction384 (SFT_parser[1081] + 0)
-#define ID_parser___ReduceAction385 (SFT_parser[1082])
-#define COLOR_parser___ReduceAction385 (SFT_parser[1083])
-#define INIT_TABLE_POS_parser___ReduceAction385 (SFT_parser[1084] + 0)
-#define ID_parser___ReduceAction386 (SFT_parser[1085])
-#define COLOR_parser___ReduceAction386 (SFT_parser[1086])
-#define INIT_TABLE_POS_parser___ReduceAction386 (SFT_parser[1087] + 0)
-#define ID_parser___ReduceAction387 (SFT_parser[1088])
-#define COLOR_parser___ReduceAction387 (SFT_parser[1089])
-#define INIT_TABLE_POS_parser___ReduceAction387 (SFT_parser[1090] + 0)
-#define ID_parser___ReduceAction388 (SFT_parser[1091])
-#define COLOR_parser___ReduceAction388 (SFT_parser[1092])
-#define INIT_TABLE_POS_parser___ReduceAction388 (SFT_parser[1093] + 0)
-#define ID_parser___ReduceAction391 (SFT_parser[1094])
-#define COLOR_parser___ReduceAction391 (SFT_parser[1095])
-#define INIT_TABLE_POS_parser___ReduceAction391 (SFT_parser[1096] + 0)
-#define ID_parser___ReduceAction392 (SFT_parser[1097])
-#define COLOR_parser___ReduceAction392 (SFT_parser[1098])
-#define INIT_TABLE_POS_parser___ReduceAction392 (SFT_parser[1099] + 0)
-#define ID_parser___ReduceAction393 (SFT_parser[1100])
-#define COLOR_parser___ReduceAction393 (SFT_parser[1101])
-#define INIT_TABLE_POS_parser___ReduceAction393 (SFT_parser[1102] + 0)
-#define ID_parser___ReduceAction394 (SFT_parser[1103])
-#define COLOR_parser___ReduceAction394 (SFT_parser[1104])
-#define INIT_TABLE_POS_parser___ReduceAction394 (SFT_parser[1105] + 0)
-#define ID_parser___ReduceAction395 (SFT_parser[1106])
-#define COLOR_parser___ReduceAction395 (SFT_parser[1107])
-#define INIT_TABLE_POS_parser___ReduceAction395 (SFT_parser[1108] + 0)
-#define ID_parser___ReduceAction396 (SFT_parser[1109])
-#define COLOR_parser___ReduceAction396 (SFT_parser[1110])
-#define INIT_TABLE_POS_parser___ReduceAction396 (SFT_parser[1111] + 0)
-#define ID_parser___ReduceAction398 (SFT_parser[1112])
-#define COLOR_parser___ReduceAction398 (SFT_parser[1113])
-#define INIT_TABLE_POS_parser___ReduceAction398 (SFT_parser[1114] + 0)
-#define ID_parser___ReduceAction399 (SFT_parser[1115])
-#define COLOR_parser___ReduceAction399 (SFT_parser[1116])
-#define INIT_TABLE_POS_parser___ReduceAction399 (SFT_parser[1117] + 0)
-#define ID_parser___ReduceAction400 (SFT_parser[1118])
-#define COLOR_parser___ReduceAction400 (SFT_parser[1119])
-#define INIT_TABLE_POS_parser___ReduceAction400 (SFT_parser[1120] + 0)
-#define ID_parser___ReduceAction401 (SFT_parser[1121])
-#define COLOR_parser___ReduceAction401 (SFT_parser[1122])
-#define INIT_TABLE_POS_parser___ReduceAction401 (SFT_parser[1123] + 0)
-#define ID_parser___ReduceAction403 (SFT_parser[1124])
-#define COLOR_parser___ReduceAction403 (SFT_parser[1125])
-#define INIT_TABLE_POS_parser___ReduceAction403 (SFT_parser[1126] + 0)
-#define ID_parser___ReduceAction406 (SFT_parser[1127])
-#define COLOR_parser___ReduceAction406 (SFT_parser[1128])
-#define INIT_TABLE_POS_parser___ReduceAction406 (SFT_parser[1129] + 0)
-#define ID_parser___ReduceAction411 (SFT_parser[1130])
-#define COLOR_parser___ReduceAction411 (SFT_parser[1131])
-#define INIT_TABLE_POS_parser___ReduceAction411 (SFT_parser[1132] + 0)
-#define ID_parser___ReduceAction412 (SFT_parser[1133])
-#define COLOR_parser___ReduceAction412 (SFT_parser[1134])
-#define INIT_TABLE_POS_parser___ReduceAction412 (SFT_parser[1135] + 0)
-#define ID_parser___ReduceAction413 (SFT_parser[1136])
-#define COLOR_parser___ReduceAction413 (SFT_parser[1137])
-#define INIT_TABLE_POS_parser___ReduceAction413 (SFT_parser[1138] + 0)
-#define ID_parser___ReduceAction414 (SFT_parser[1139])
-#define COLOR_parser___ReduceAction414 (SFT_parser[1140])
-#define INIT_TABLE_POS_parser___ReduceAction414 (SFT_parser[1141] + 0)
-#define ID_parser___ReduceAction415 (SFT_parser[1142])
-#define COLOR_parser___ReduceAction415 (SFT_parser[1143])
-#define INIT_TABLE_POS_parser___ReduceAction415 (SFT_parser[1144] + 0)
-#define ID_parser___ReduceAction416 (SFT_parser[1145])
-#define COLOR_parser___ReduceAction416 (SFT_parser[1146])
-#define INIT_TABLE_POS_parser___ReduceAction416 (SFT_parser[1147] + 0)
-#define ID_parser___ReduceAction417 (SFT_parser[1148])
-#define COLOR_parser___ReduceAction417 (SFT_parser[1149])
-#define INIT_TABLE_POS_parser___ReduceAction417 (SFT_parser[1150] + 0)
-#define ID_parser___ReduceAction418 (SFT_parser[1151])
-#define COLOR_parser___ReduceAction418 (SFT_parser[1152])
-#define INIT_TABLE_POS_parser___ReduceAction418 (SFT_parser[1153] + 0)
-#define ID_parser___ReduceAction419 (SFT_parser[1154])
-#define COLOR_parser___ReduceAction419 (SFT_parser[1155])
-#define INIT_TABLE_POS_parser___ReduceAction419 (SFT_parser[1156] + 0)
-#define ID_parser___ReduceAction420 (SFT_parser[1157])
-#define COLOR_parser___ReduceAction420 (SFT_parser[1158])
-#define INIT_TABLE_POS_parser___ReduceAction420 (SFT_parser[1159] + 0)
-#define ID_parser___ReduceAction421 (SFT_parser[1160])
-#define COLOR_parser___ReduceAction421 (SFT_parser[1161])
-#define INIT_TABLE_POS_parser___ReduceAction421 (SFT_parser[1162] + 0)
-#define ID_parser___ReduceAction422 (SFT_parser[1163])
-#define COLOR_parser___ReduceAction422 (SFT_parser[1164])
-#define INIT_TABLE_POS_parser___ReduceAction422 (SFT_parser[1165] + 0)
-#define ID_parser___ReduceAction423 (SFT_parser[1166])
-#define COLOR_parser___ReduceAction423 (SFT_parser[1167])
-#define INIT_TABLE_POS_parser___ReduceAction423 (SFT_parser[1168] + 0)
-#define ID_parser___ReduceAction425 (SFT_parser[1169])
-#define COLOR_parser___ReduceAction425 (SFT_parser[1170])
-#define INIT_TABLE_POS_parser___ReduceAction425 (SFT_parser[1171] + 0)
-#define ID_parser___ReduceAction426 (SFT_parser[1172])
-#define COLOR_parser___ReduceAction426 (SFT_parser[1173])
-#define INIT_TABLE_POS_parser___ReduceAction426 (SFT_parser[1174] + 0)
-#define ID_parser___ReduceAction428 (SFT_parser[1175])
-#define COLOR_parser___ReduceAction428 (SFT_parser[1176])
-#define INIT_TABLE_POS_parser___ReduceAction428 (SFT_parser[1177] + 0)
-#define ID_parser___ReduceAction429 (SFT_parser[1178])
-#define COLOR_parser___ReduceAction429 (SFT_parser[1179])
-#define INIT_TABLE_POS_parser___ReduceAction429 (SFT_parser[1180] + 0)
-#define ID_parser___ReduceAction430 (SFT_parser[1181])
-#define COLOR_parser___ReduceAction430 (SFT_parser[1182])
-#define INIT_TABLE_POS_parser___ReduceAction430 (SFT_parser[1183] + 0)
-#define ID_parser___ReduceAction431 (SFT_parser[1184])
-#define COLOR_parser___ReduceAction431 (SFT_parser[1185])
-#define INIT_TABLE_POS_parser___ReduceAction431 (SFT_parser[1186] + 0)
-#define ID_parser___ReduceAction688 (SFT_parser[1187])
-#define COLOR_parser___ReduceAction688 (SFT_parser[1188])
-#define INIT_TABLE_POS_parser___ReduceAction688 (SFT_parser[1189] + 0)
-#define ID_parser___ReduceAction689 (SFT_parser[1190])
-#define COLOR_parser___ReduceAction689 (SFT_parser[1191])
-#define INIT_TABLE_POS_parser___ReduceAction689 (SFT_parser[1192] + 0)
-#define ID_parser___ReduceAction690 (SFT_parser[1193])
-#define COLOR_parser___ReduceAction690 (SFT_parser[1194])
-#define INIT_TABLE_POS_parser___ReduceAction690 (SFT_parser[1195] + 0)
-#define ID_parser___ReduceAction693 (SFT_parser[1196])
-#define COLOR_parser___ReduceAction693 (SFT_parser[1197])
-#define INIT_TABLE_POS_parser___ReduceAction693 (SFT_parser[1198] + 0)
-#define ID_parser___ReduceAction706 (SFT_parser[1199])
-#define COLOR_parser___ReduceAction706 (SFT_parser[1200])
-#define INIT_TABLE_POS_parser___ReduceAction706 (SFT_parser[1201] + 0)
-#define ID_parser___ReduceAction707 (SFT_parser[1202])
-#define COLOR_parser___ReduceAction707 (SFT_parser[1203])
-#define INIT_TABLE_POS_parser___ReduceAction707 (SFT_parser[1204] + 0)
-#define ID_parser___ReduceAction714 (SFT_parser[1205])
-#define COLOR_parser___ReduceAction714 (SFT_parser[1206])
-#define INIT_TABLE_POS_parser___ReduceAction714 (SFT_parser[1207] + 0)
-#define ID_parser___ReduceAction715 (SFT_parser[1208])
-#define COLOR_parser___ReduceAction715 (SFT_parser[1209])
-#define INIT_TABLE_POS_parser___ReduceAction715 (SFT_parser[1210] + 0)
-#define ID_parser___ReduceAction716 (SFT_parser[1211])
-#define COLOR_parser___ReduceAction716 (SFT_parser[1212])
-#define INIT_TABLE_POS_parser___ReduceAction716 (SFT_parser[1213] + 0)
-#define ID_parser___ReduceAction717 (SFT_parser[1214])
-#define COLOR_parser___ReduceAction717 (SFT_parser[1215])
-#define INIT_TABLE_POS_parser___ReduceAction717 (SFT_parser[1216] + 0)
-#define ID_parser___ReduceAction718 (SFT_parser[1217])
-#define COLOR_parser___ReduceAction718 (SFT_parser[1218])
-#define INIT_TABLE_POS_parser___ReduceAction718 (SFT_parser[1219] + 0)
-#define ID_parser___ReduceAction719 (SFT_parser[1220])
-#define COLOR_parser___ReduceAction719 (SFT_parser[1221])
-#define INIT_TABLE_POS_parser___ReduceAction719 (SFT_parser[1222] + 0)
-#define ID_parser___ReduceAction720 (SFT_parser[1223])
-#define COLOR_parser___ReduceAction720 (SFT_parser[1224])
-#define INIT_TABLE_POS_parser___ReduceAction720 (SFT_parser[1225] + 0)
-#define ID_parser___ReduceAction721 (SFT_parser[1226])
-#define COLOR_parser___ReduceAction721 (SFT_parser[1227])
-#define INIT_TABLE_POS_parser___ReduceAction721 (SFT_parser[1228] + 0)
-#define ID_parser___ReduceAction724 (SFT_parser[1229])
-#define COLOR_parser___ReduceAction724 (SFT_parser[1230])
-#define INIT_TABLE_POS_parser___ReduceAction724 (SFT_parser[1231] + 0)
-#define ID_parser___ReduceAction725 (SFT_parser[1232])
-#define COLOR_parser___ReduceAction725 (SFT_parser[1233])
-#define INIT_TABLE_POS_parser___ReduceAction725 (SFT_parser[1234] + 0)
-#define ID_parser___ReduceAction726 (SFT_parser[1235])
-#define COLOR_parser___ReduceAction726 (SFT_parser[1236])
-#define INIT_TABLE_POS_parser___ReduceAction726 (SFT_parser[1237] + 0)
-#define ID_parser___ReduceAction727 (SFT_parser[1238])
-#define COLOR_parser___ReduceAction727 (SFT_parser[1239])
-#define INIT_TABLE_POS_parser___ReduceAction727 (SFT_parser[1240] + 0)
-#define ID_parser___ReduceAction728 (SFT_parser[1241])
-#define COLOR_parser___ReduceAction728 (SFT_parser[1242])
-#define INIT_TABLE_POS_parser___ReduceAction728 (SFT_parser[1243] + 0)
-#define ID_parser___ReduceAction729 (SFT_parser[1244])
-#define COLOR_parser___ReduceAction729 (SFT_parser[1245])
-#define INIT_TABLE_POS_parser___ReduceAction729 (SFT_parser[1246] + 0)
-#define ID_parser___ReduceAction730 (SFT_parser[1247])
-#define COLOR_parser___ReduceAction730 (SFT_parser[1248])
-#define INIT_TABLE_POS_parser___ReduceAction730 (SFT_parser[1249] + 0)
-#define ID_parser___ReduceAction731 (SFT_parser[1250])
-#define COLOR_parser___ReduceAction731 (SFT_parser[1251])
-#define INIT_TABLE_POS_parser___ReduceAction731 (SFT_parser[1252] + 0)
-#define ID_parser___ReduceAction733 (SFT_parser[1253])
-#define COLOR_parser___ReduceAction733 (SFT_parser[1254])
-#define INIT_TABLE_POS_parser___ReduceAction733 (SFT_parser[1255] + 0)
-#define ID_parser___ReduceAction735 (SFT_parser[1256])
-#define COLOR_parser___ReduceAction735 (SFT_parser[1257])
-#define INIT_TABLE_POS_parser___ReduceAction735 (SFT_parser[1258] + 0)
-#define ID_parser___ReduceAction736 (SFT_parser[1259])
-#define COLOR_parser___ReduceAction736 (SFT_parser[1260])
-#define INIT_TABLE_POS_parser___ReduceAction736 (SFT_parser[1261] + 0)
-#define ID_parser___ReduceAction737 (SFT_parser[1262])
-#define COLOR_parser___ReduceAction737 (SFT_parser[1263])
-#define INIT_TABLE_POS_parser___ReduceAction737 (SFT_parser[1264] + 0)
-#define ID_parser___ReduceAction741 (SFT_parser[1265])
-#define COLOR_parser___ReduceAction741 (SFT_parser[1266])
-#define INIT_TABLE_POS_parser___ReduceAction741 (SFT_parser[1267] + 0)
-#define ID_parser___ReduceAction742 (SFT_parser[1268])
-#define COLOR_parser___ReduceAction742 (SFT_parser[1269])
-#define INIT_TABLE_POS_parser___ReduceAction742 (SFT_parser[1270] + 0)
-#define ID_parser___ReduceAction743 (SFT_parser[1271])
-#define COLOR_parser___ReduceAction743 (SFT_parser[1272])
-#define INIT_TABLE_POS_parser___ReduceAction743 (SFT_parser[1273] + 0)
-#define ID_parser___ReduceAction744 (SFT_parser[1274])
-#define COLOR_parser___ReduceAction744 (SFT_parser[1275])
-#define INIT_TABLE_POS_parser___ReduceAction744 (SFT_parser[1276] + 0)
-#define ID_parser___ReduceAction745 (SFT_parser[1277])
-#define COLOR_parser___ReduceAction745 (SFT_parser[1278])
-#define INIT_TABLE_POS_parser___ReduceAction745 (SFT_parser[1279] + 0)
+#define ID_parser___ReduceAction357 (SFT_parser[1025])
+#define COLOR_parser___ReduceAction357 (SFT_parser[1026])
+#define INIT_TABLE_POS_parser___ReduceAction357 (SFT_parser[1027] + 0)
+#define ID_parser___ReduceAction358 (SFT_parser[1028])
+#define COLOR_parser___ReduceAction358 (SFT_parser[1029])
+#define INIT_TABLE_POS_parser___ReduceAction358 (SFT_parser[1030] + 0)
+#define ID_parser___ReduceAction359 (SFT_parser[1031])
+#define COLOR_parser___ReduceAction359 (SFT_parser[1032])
+#define INIT_TABLE_POS_parser___ReduceAction359 (SFT_parser[1033] + 0)
+#define ID_parser___ReduceAction360 (SFT_parser[1034])
+#define COLOR_parser___ReduceAction360 (SFT_parser[1035])
+#define INIT_TABLE_POS_parser___ReduceAction360 (SFT_parser[1036] + 0)
+#define ID_parser___ReduceAction361 (SFT_parser[1037])
+#define COLOR_parser___ReduceAction361 (SFT_parser[1038])
+#define INIT_TABLE_POS_parser___ReduceAction361 (SFT_parser[1039] + 0)
+#define ID_parser___ReduceAction363 (SFT_parser[1040])
+#define COLOR_parser___ReduceAction363 (SFT_parser[1041])
+#define INIT_TABLE_POS_parser___ReduceAction363 (SFT_parser[1042] + 0)
+#define ID_parser___ReduceAction364 (SFT_parser[1043])
+#define COLOR_parser___ReduceAction364 (SFT_parser[1044])
+#define INIT_TABLE_POS_parser___ReduceAction364 (SFT_parser[1045] + 0)
+#define ID_parser___ReduceAction366 (SFT_parser[1046])
+#define COLOR_parser___ReduceAction366 (SFT_parser[1047])
+#define INIT_TABLE_POS_parser___ReduceAction366 (SFT_parser[1048] + 0)
+#define ID_parser___ReduceAction367 (SFT_parser[1049])
+#define COLOR_parser___ReduceAction367 (SFT_parser[1050])
+#define INIT_TABLE_POS_parser___ReduceAction367 (SFT_parser[1051] + 0)
+#define ID_parser___ReduceAction368 (SFT_parser[1052])
+#define COLOR_parser___ReduceAction368 (SFT_parser[1053])
+#define INIT_TABLE_POS_parser___ReduceAction368 (SFT_parser[1054] + 0)
+#define ID_parser___ReduceAction370 (SFT_parser[1055])
+#define COLOR_parser___ReduceAction370 (SFT_parser[1056])
+#define INIT_TABLE_POS_parser___ReduceAction370 (SFT_parser[1057] + 0)
+#define ID_parser___ReduceAction371 (SFT_parser[1058])
+#define COLOR_parser___ReduceAction371 (SFT_parser[1059])
+#define INIT_TABLE_POS_parser___ReduceAction371 (SFT_parser[1060] + 0)
+#define ID_parser___ReduceAction373 (SFT_parser[1061])
+#define COLOR_parser___ReduceAction373 (SFT_parser[1062])
+#define INIT_TABLE_POS_parser___ReduceAction373 (SFT_parser[1063] + 0)
+#define ID_parser___ReduceAction374 (SFT_parser[1064])
+#define COLOR_parser___ReduceAction374 (SFT_parser[1065])
+#define INIT_TABLE_POS_parser___ReduceAction374 (SFT_parser[1066] + 0)
+#define ID_parser___ReduceAction375 (SFT_parser[1067])
+#define COLOR_parser___ReduceAction375 (SFT_parser[1068])
+#define INIT_TABLE_POS_parser___ReduceAction375 (SFT_parser[1069] + 0)
+#define ID_parser___ReduceAction376 (SFT_parser[1070])
+#define COLOR_parser___ReduceAction376 (SFT_parser[1071])
+#define INIT_TABLE_POS_parser___ReduceAction376 (SFT_parser[1072] + 0)
+#define ID_parser___ReduceAction377 (SFT_parser[1073])
+#define COLOR_parser___ReduceAction377 (SFT_parser[1074])
+#define INIT_TABLE_POS_parser___ReduceAction377 (SFT_parser[1075] + 0)
+#define ID_parser___ReduceAction384 (SFT_parser[1076])
+#define COLOR_parser___ReduceAction384 (SFT_parser[1077])
+#define INIT_TABLE_POS_parser___ReduceAction384 (SFT_parser[1078] + 0)
+#define ID_parser___ReduceAction385 (SFT_parser[1079])
+#define COLOR_parser___ReduceAction385 (SFT_parser[1080])
+#define INIT_TABLE_POS_parser___ReduceAction385 (SFT_parser[1081] + 0)
+#define ID_parser___ReduceAction386 (SFT_parser[1082])
+#define COLOR_parser___ReduceAction386 (SFT_parser[1083])
+#define INIT_TABLE_POS_parser___ReduceAction386 (SFT_parser[1084] + 0)
+#define ID_parser___ReduceAction387 (SFT_parser[1085])
+#define COLOR_parser___ReduceAction387 (SFT_parser[1086])
+#define INIT_TABLE_POS_parser___ReduceAction387 (SFT_parser[1087] + 0)
+#define ID_parser___ReduceAction388 (SFT_parser[1088])
+#define COLOR_parser___ReduceAction388 (SFT_parser[1089])
+#define INIT_TABLE_POS_parser___ReduceAction388 (SFT_parser[1090] + 0)
+#define ID_parser___ReduceAction389 (SFT_parser[1091])
+#define COLOR_parser___ReduceAction389 (SFT_parser[1092])
+#define INIT_TABLE_POS_parser___ReduceAction389 (SFT_parser[1093] + 0)
+#define ID_parser___ReduceAction390 (SFT_parser[1094])
+#define COLOR_parser___ReduceAction390 (SFT_parser[1095])
+#define INIT_TABLE_POS_parser___ReduceAction390 (SFT_parser[1096] + 0)
+#define ID_parser___ReduceAction391 (SFT_parser[1097])
+#define COLOR_parser___ReduceAction391 (SFT_parser[1098])
+#define INIT_TABLE_POS_parser___ReduceAction391 (SFT_parser[1099] + 0)
+#define ID_parser___ReduceAction392 (SFT_parser[1100])
+#define COLOR_parser___ReduceAction392 (SFT_parser[1101])
+#define INIT_TABLE_POS_parser___ReduceAction392 (SFT_parser[1102] + 0)
+#define ID_parser___ReduceAction393 (SFT_parser[1103])
+#define COLOR_parser___ReduceAction393 (SFT_parser[1104])
+#define INIT_TABLE_POS_parser___ReduceAction393 (SFT_parser[1105] + 0)
+#define ID_parser___ReduceAction394 (SFT_parser[1106])
+#define COLOR_parser___ReduceAction394 (SFT_parser[1107])
+#define INIT_TABLE_POS_parser___ReduceAction394 (SFT_parser[1108] + 0)
+#define ID_parser___ReduceAction395 (SFT_parser[1109])
+#define COLOR_parser___ReduceAction395 (SFT_parser[1110])
+#define INIT_TABLE_POS_parser___ReduceAction395 (SFT_parser[1111] + 0)
+#define ID_parser___ReduceAction396 (SFT_parser[1112])
+#define COLOR_parser___ReduceAction396 (SFT_parser[1113])
+#define INIT_TABLE_POS_parser___ReduceAction396 (SFT_parser[1114] + 0)
+#define ID_parser___ReduceAction398 (SFT_parser[1115])
+#define COLOR_parser___ReduceAction398 (SFT_parser[1116])
+#define INIT_TABLE_POS_parser___ReduceAction398 (SFT_parser[1117] + 0)
+#define ID_parser___ReduceAction399 (SFT_parser[1118])
+#define COLOR_parser___ReduceAction399 (SFT_parser[1119])
+#define INIT_TABLE_POS_parser___ReduceAction399 (SFT_parser[1120] + 0)
+#define ID_parser___ReduceAction400 (SFT_parser[1121])
+#define COLOR_parser___ReduceAction400 (SFT_parser[1122])
+#define INIT_TABLE_POS_parser___ReduceAction400 (SFT_parser[1123] + 0)
+#define ID_parser___ReduceAction401 (SFT_parser[1124])
+#define COLOR_parser___ReduceAction401 (SFT_parser[1125])
+#define INIT_TABLE_POS_parser___ReduceAction401 (SFT_parser[1126] + 0)
+#define ID_parser___ReduceAction402 (SFT_parser[1127])
+#define COLOR_parser___ReduceAction402 (SFT_parser[1128])
+#define INIT_TABLE_POS_parser___ReduceAction402 (SFT_parser[1129] + 0)
+#define ID_parser___ReduceAction403 (SFT_parser[1130])
+#define COLOR_parser___ReduceAction403 (SFT_parser[1131])
+#define INIT_TABLE_POS_parser___ReduceAction403 (SFT_parser[1132] + 0)
+#define ID_parser___ReduceAction404 (SFT_parser[1133])
+#define COLOR_parser___ReduceAction404 (SFT_parser[1134])
+#define INIT_TABLE_POS_parser___ReduceAction404 (SFT_parser[1135] + 0)
+#define ID_parser___ReduceAction406 (SFT_parser[1136])
+#define COLOR_parser___ReduceAction406 (SFT_parser[1137])
+#define INIT_TABLE_POS_parser___ReduceAction406 (SFT_parser[1138] + 0)
+#define ID_parser___ReduceAction407 (SFT_parser[1139])
+#define COLOR_parser___ReduceAction407 (SFT_parser[1140])
+#define INIT_TABLE_POS_parser___ReduceAction407 (SFT_parser[1141] + 0)
+#define ID_parser___ReduceAction408 (SFT_parser[1142])
+#define COLOR_parser___ReduceAction408 (SFT_parser[1143])
+#define INIT_TABLE_POS_parser___ReduceAction408 (SFT_parser[1144] + 0)
+#define ID_parser___ReduceAction409 (SFT_parser[1145])
+#define COLOR_parser___ReduceAction409 (SFT_parser[1146])
+#define INIT_TABLE_POS_parser___ReduceAction409 (SFT_parser[1147] + 0)
+#define ID_parser___ReduceAction410 (SFT_parser[1148])
+#define COLOR_parser___ReduceAction410 (SFT_parser[1149])
+#define INIT_TABLE_POS_parser___ReduceAction410 (SFT_parser[1150] + 0)
+#define ID_parser___ReduceAction412 (SFT_parser[1151])
+#define COLOR_parser___ReduceAction412 (SFT_parser[1152])
+#define INIT_TABLE_POS_parser___ReduceAction412 (SFT_parser[1153] + 0)
+#define ID_parser___ReduceAction415 (SFT_parser[1154])
+#define COLOR_parser___ReduceAction415 (SFT_parser[1155])
+#define INIT_TABLE_POS_parser___ReduceAction415 (SFT_parser[1156] + 0)
+#define ID_parser___ReduceAction416 (SFT_parser[1157])
+#define COLOR_parser___ReduceAction416 (SFT_parser[1158])
+#define INIT_TABLE_POS_parser___ReduceAction416 (SFT_parser[1159] + 0)
+#define ID_parser___ReduceAction417 (SFT_parser[1160])
+#define COLOR_parser___ReduceAction417 (SFT_parser[1161])
+#define INIT_TABLE_POS_parser___ReduceAction417 (SFT_parser[1162] + 0)
+#define ID_parser___ReduceAction418 (SFT_parser[1163])
+#define COLOR_parser___ReduceAction418 (SFT_parser[1164])
+#define INIT_TABLE_POS_parser___ReduceAction418 (SFT_parser[1165] + 0)
+#define ID_parser___ReduceAction419 (SFT_parser[1166])
+#define COLOR_parser___ReduceAction419 (SFT_parser[1167])
+#define INIT_TABLE_POS_parser___ReduceAction419 (SFT_parser[1168] + 0)
+#define ID_parser___ReduceAction420 (SFT_parser[1169])
+#define COLOR_parser___ReduceAction420 (SFT_parser[1170])
+#define INIT_TABLE_POS_parser___ReduceAction420 (SFT_parser[1171] + 0)
+#define ID_parser___ReduceAction421 (SFT_parser[1172])
+#define COLOR_parser___ReduceAction421 (SFT_parser[1173])
+#define INIT_TABLE_POS_parser___ReduceAction421 (SFT_parser[1174] + 0)
+#define ID_parser___ReduceAction422 (SFT_parser[1175])
+#define COLOR_parser___ReduceAction422 (SFT_parser[1176])
+#define INIT_TABLE_POS_parser___ReduceAction422 (SFT_parser[1177] + 0)
+#define ID_parser___ReduceAction423 (SFT_parser[1178])
+#define COLOR_parser___ReduceAction423 (SFT_parser[1179])
+#define INIT_TABLE_POS_parser___ReduceAction423 (SFT_parser[1180] + 0)
+#define ID_parser___ReduceAction424 (SFT_parser[1181])
+#define COLOR_parser___ReduceAction424 (SFT_parser[1182])
+#define INIT_TABLE_POS_parser___ReduceAction424 (SFT_parser[1183] + 0)
+#define ID_parser___ReduceAction425 (SFT_parser[1184])
+#define COLOR_parser___ReduceAction425 (SFT_parser[1185])
+#define INIT_TABLE_POS_parser___ReduceAction425 (SFT_parser[1186] + 0)
+#define ID_parser___ReduceAction426 (SFT_parser[1187])
+#define COLOR_parser___ReduceAction426 (SFT_parser[1188])
+#define INIT_TABLE_POS_parser___ReduceAction426 (SFT_parser[1189] + 0)
+#define ID_parser___ReduceAction427 (SFT_parser[1190])
+#define COLOR_parser___ReduceAction427 (SFT_parser[1191])
+#define INIT_TABLE_POS_parser___ReduceAction427 (SFT_parser[1192] + 0)
+#define ID_parser___ReduceAction428 (SFT_parser[1193])
+#define COLOR_parser___ReduceAction428 (SFT_parser[1194])
+#define INIT_TABLE_POS_parser___ReduceAction428 (SFT_parser[1195] + 0)
+#define ID_parser___ReduceAction429 (SFT_parser[1196])
+#define COLOR_parser___ReduceAction429 (SFT_parser[1197])
+#define INIT_TABLE_POS_parser___ReduceAction429 (SFT_parser[1198] + 0)
+#define ID_parser___ReduceAction430 (SFT_parser[1199])
+#define COLOR_parser___ReduceAction430 (SFT_parser[1200])
+#define INIT_TABLE_POS_parser___ReduceAction430 (SFT_parser[1201] + 0)
+#define ID_parser___ReduceAction432 (SFT_parser[1202])
+#define COLOR_parser___ReduceAction432 (SFT_parser[1203])
+#define INIT_TABLE_POS_parser___ReduceAction432 (SFT_parser[1204] + 0)
+#define ID_parser___ReduceAction433 (SFT_parser[1205])
+#define COLOR_parser___ReduceAction433 (SFT_parser[1206])
+#define INIT_TABLE_POS_parser___ReduceAction433 (SFT_parser[1207] + 0)
+#define ID_parser___ReduceAction435 (SFT_parser[1208])
+#define COLOR_parser___ReduceAction435 (SFT_parser[1209])
+#define INIT_TABLE_POS_parser___ReduceAction435 (SFT_parser[1210] + 0)
+#define ID_parser___ReduceAction436 (SFT_parser[1211])
+#define COLOR_parser___ReduceAction436 (SFT_parser[1212])
+#define INIT_TABLE_POS_parser___ReduceAction436 (SFT_parser[1213] + 0)
+#define ID_parser___ReduceAction437 (SFT_parser[1214])
+#define COLOR_parser___ReduceAction437 (SFT_parser[1215])
+#define INIT_TABLE_POS_parser___ReduceAction437 (SFT_parser[1216] + 0)
+#define ID_parser___ReduceAction438 (SFT_parser[1217])
+#define COLOR_parser___ReduceAction438 (SFT_parser[1218])
+#define INIT_TABLE_POS_parser___ReduceAction438 (SFT_parser[1219] + 0)
+#define ID_parser___ReduceAction698 (SFT_parser[1220])
+#define COLOR_parser___ReduceAction698 (SFT_parser[1221])
+#define INIT_TABLE_POS_parser___ReduceAction698 (SFT_parser[1222] + 0)
+#define ID_parser___ReduceAction699 (SFT_parser[1223])
+#define COLOR_parser___ReduceAction699 (SFT_parser[1224])
+#define INIT_TABLE_POS_parser___ReduceAction699 (SFT_parser[1225] + 0)
+#define ID_parser___ReduceAction700 (SFT_parser[1226])
+#define COLOR_parser___ReduceAction700 (SFT_parser[1227])
+#define INIT_TABLE_POS_parser___ReduceAction700 (SFT_parser[1228] + 0)
+#define ID_parser___ReduceAction703 (SFT_parser[1229])
+#define COLOR_parser___ReduceAction703 (SFT_parser[1230])
+#define INIT_TABLE_POS_parser___ReduceAction703 (SFT_parser[1231] + 0)
+#define ID_parser___ReduceAction716 (SFT_parser[1232])
+#define COLOR_parser___ReduceAction716 (SFT_parser[1233])
+#define INIT_TABLE_POS_parser___ReduceAction716 (SFT_parser[1234] + 0)
+#define ID_parser___ReduceAction717 (SFT_parser[1235])
+#define COLOR_parser___ReduceAction717 (SFT_parser[1236])
+#define INIT_TABLE_POS_parser___ReduceAction717 (SFT_parser[1237] + 0)
+#define ID_parser___ReduceAction724 (SFT_parser[1238])
+#define COLOR_parser___ReduceAction724 (SFT_parser[1239])
+#define INIT_TABLE_POS_parser___ReduceAction724 (SFT_parser[1240] + 0)
+#define ID_parser___ReduceAction725 (SFT_parser[1241])
+#define COLOR_parser___ReduceAction725 (SFT_parser[1242])
+#define INIT_TABLE_POS_parser___ReduceAction725 (SFT_parser[1243] + 0)
+#define ID_parser___ReduceAction726 (SFT_parser[1244])
+#define COLOR_parser___ReduceAction726 (SFT_parser[1245])
+#define INIT_TABLE_POS_parser___ReduceAction726 (SFT_parser[1246] + 0)
+#define ID_parser___ReduceAction727 (SFT_parser[1247])
+#define COLOR_parser___ReduceAction727 (SFT_parser[1248])
+#define INIT_TABLE_POS_parser___ReduceAction727 (SFT_parser[1249] + 0)
+#define ID_parser___ReduceAction728 (SFT_parser[1250])
+#define COLOR_parser___ReduceAction728 (SFT_parser[1251])
+#define INIT_TABLE_POS_parser___ReduceAction728 (SFT_parser[1252] + 0)
+#define ID_parser___ReduceAction729 (SFT_parser[1253])
+#define COLOR_parser___ReduceAction729 (SFT_parser[1254])
+#define INIT_TABLE_POS_parser___ReduceAction729 (SFT_parser[1255] + 0)
+#define ID_parser___ReduceAction730 (SFT_parser[1256])
+#define COLOR_parser___ReduceAction730 (SFT_parser[1257])
+#define INIT_TABLE_POS_parser___ReduceAction730 (SFT_parser[1258] + 0)
+#define ID_parser___ReduceAction731 (SFT_parser[1259])
+#define COLOR_parser___ReduceAction731 (SFT_parser[1260])
+#define INIT_TABLE_POS_parser___ReduceAction731 (SFT_parser[1261] + 0)
+#define ID_parser___ReduceAction734 (SFT_parser[1262])
+#define COLOR_parser___ReduceAction734 (SFT_parser[1263])
+#define INIT_TABLE_POS_parser___ReduceAction734 (SFT_parser[1264] + 0)
+#define ID_parser___ReduceAction735 (SFT_parser[1265])
+#define COLOR_parser___ReduceAction735 (SFT_parser[1266])
+#define INIT_TABLE_POS_parser___ReduceAction735 (SFT_parser[1267] + 0)
+#define ID_parser___ReduceAction736 (SFT_parser[1268])
+#define COLOR_parser___ReduceAction736 (SFT_parser[1269])
+#define INIT_TABLE_POS_parser___ReduceAction736 (SFT_parser[1270] + 0)
+#define ID_parser___ReduceAction737 (SFT_parser[1271])
+#define COLOR_parser___ReduceAction737 (SFT_parser[1272])
+#define INIT_TABLE_POS_parser___ReduceAction737 (SFT_parser[1273] + 0)
+#define ID_parser___ReduceAction738 (SFT_parser[1274])
+#define COLOR_parser___ReduceAction738 (SFT_parser[1275])
+#define INIT_TABLE_POS_parser___ReduceAction738 (SFT_parser[1276] + 0)
+#define ID_parser___ReduceAction739 (SFT_parser[1277])
+#define COLOR_parser___ReduceAction739 (SFT_parser[1278])
+#define INIT_TABLE_POS_parser___ReduceAction739 (SFT_parser[1279] + 0)
+#define ID_parser___ReduceAction740 (SFT_parser[1280])
+#define COLOR_parser___ReduceAction740 (SFT_parser[1281])
+#define INIT_TABLE_POS_parser___ReduceAction740 (SFT_parser[1282] + 0)
+#define ID_parser___ReduceAction741 (SFT_parser[1283])
+#define COLOR_parser___ReduceAction741 (SFT_parser[1284])
+#define INIT_TABLE_POS_parser___ReduceAction741 (SFT_parser[1285] + 0)
+#define ID_parser___ReduceAction743 (SFT_parser[1286])
+#define COLOR_parser___ReduceAction743 (SFT_parser[1287])
+#define INIT_TABLE_POS_parser___ReduceAction743 (SFT_parser[1288] + 0)
+#define ID_parser___ReduceAction744 (SFT_parser[1289])
+#define COLOR_parser___ReduceAction744 (SFT_parser[1290])
+#define INIT_TABLE_POS_parser___ReduceAction744 (SFT_parser[1291] + 0)
+#define ID_parser___ReduceAction745 (SFT_parser[1292])
+#define COLOR_parser___ReduceAction745 (SFT_parser[1293])
+#define INIT_TABLE_POS_parser___ReduceAction745 (SFT_parser[1294] + 0)
+#define ID_parser___ReduceAction747 (SFT_parser[1295])
+#define COLOR_parser___ReduceAction747 (SFT_parser[1296])
+#define INIT_TABLE_POS_parser___ReduceAction747 (SFT_parser[1297] + 0)
+#define ID_parser___ReduceAction751 (SFT_parser[1298])
+#define COLOR_parser___ReduceAction751 (SFT_parser[1299])
+#define INIT_TABLE_POS_parser___ReduceAction751 (SFT_parser[1300] + 0)
+#define ID_parser___ReduceAction752 (SFT_parser[1301])
+#define COLOR_parser___ReduceAction752 (SFT_parser[1302])
+#define INIT_TABLE_POS_parser___ReduceAction752 (SFT_parser[1303] + 0)
+#define ID_parser___ReduceAction753 (SFT_parser[1304])
+#define COLOR_parser___ReduceAction753 (SFT_parser[1305])
+#define INIT_TABLE_POS_parser___ReduceAction753 (SFT_parser[1306] + 0)
+#define ID_parser___ReduceAction754 (SFT_parser[1307])
+#define COLOR_parser___ReduceAction754 (SFT_parser[1308])
+#define INIT_TABLE_POS_parser___ReduceAction754 (SFT_parser[1309] + 0)
+#define ID_parser___ReduceAction755 (SFT_parser[1310])
+#define COLOR_parser___ReduceAction755 (SFT_parser[1311])
+#define INIT_TABLE_POS_parser___ReduceAction755 (SFT_parser[1312] + 0)
 static const char * const LOCATE_parser___State___state = "parser::State::state";
 val_t parser___State___state(val_t p0);
 typedef val_t (*parser___State___state_t)(val_t p0);
@@ -2197,7 +2252,7 @@ typedef val_t (*parser___Parser___parse_t)(val_t p0);
 static const char * const LOCATE_parser___Parser___build_reduce_table = "parser::Parser::build_reduce_table";
 void parser___Parser___build_reduce_table(val_t p0);
 typedef void (*parser___Parser___build_reduce_table_t)(val_t p0);
-val_t NEW_Prod_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_Prod_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___ComputeProdLocationVisitor___visit = "parser::ComputeProdLocationVisitor::(parser_prod::Visitor::visit)";
 void parser___ComputeProdLocationVisitor___visit(val_t p0, val_t p1);
 typedef void (*parser___ComputeProdLocationVisitor___visit_t)(val_t p0, val_t p1);
@@ -3087,6 +3142,10 @@ static const char * const LOCATE_parser___ReduceAction218___action = "parser::Re
 void parser___ReduceAction218___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction218___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction218_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction219___action = "parser::ReduceAction219::(parser::ReduceAction::action)";
+void parser___ReduceAction219___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction219___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction219_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction220___action = "parser::ReduceAction220::(parser::ReduceAction::action)";
 void parser___ReduceAction220___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction220___action_t)(val_t p0, val_t p1);
@@ -3103,10 +3162,6 @@ static const char * const LOCATE_parser___ReduceAction223___action = "parser::Re
 void parser___ReduceAction223___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction223___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction223_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction224___action = "parser::ReduceAction224::(parser::ReduceAction::action)";
-void parser___ReduceAction224___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction224___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction224_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction225___action = "parser::ReduceAction225::(parser::ReduceAction::action)";
 void parser___ReduceAction225___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction225___action_t)(val_t p0, val_t p1);
@@ -3143,6 +3198,10 @@ static const char * const LOCATE_parser___ReduceAction233___action = "parser::Re
 void parser___ReduceAction233___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction233___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction233_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction234___action = "parser::ReduceAction234::(parser::ReduceAction::action)";
+void parser___ReduceAction234___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction234___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction234_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction235___action = "parser::ReduceAction235::(parser::ReduceAction::action)";
 void parser___ReduceAction235___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction235___action_t)(val_t p0, val_t p1);
@@ -3159,10 +3218,6 @@ static const char * const LOCATE_parser___ReduceAction238___action = "parser::Re
 void parser___ReduceAction238___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction238___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction238_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction239___action = "parser::ReduceAction239::(parser::ReduceAction::action)";
-void parser___ReduceAction239___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction239___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction239_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction240___action = "parser::ReduceAction240::(parser::ReduceAction::action)";
 void parser___ReduceAction240___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction240___action_t)(val_t p0, val_t p1);
@@ -3179,6 +3234,14 @@ static const char * const LOCATE_parser___ReduceAction243___action = "parser::Re
 void parser___ReduceAction243___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction243___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction243_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction244___action = "parser::ReduceAction244::(parser::ReduceAction::action)";
+void parser___ReduceAction244___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction244___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction244_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction245___action = "parser::ReduceAction245::(parser::ReduceAction::action)";
+void parser___ReduceAction245___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction245___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction245_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction246___action = "parser::ReduceAction246::(parser::ReduceAction::action)";
 void parser___ReduceAction246___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction246___action_t)(val_t p0, val_t p1);
@@ -3195,18 +3258,6 @@ static const char * const LOCATE_parser___ReduceAction249___action = "parser::Re
 void parser___ReduceAction249___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction249___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction249_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction250___action = "parser::ReduceAction250::(parser::ReduceAction::action)";
-void parser___ReduceAction250___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction250___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction250_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction251___action = "parser::ReduceAction251::(parser::ReduceAction::action)";
-void parser___ReduceAction251___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction251___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction251_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction252___action = "parser::ReduceAction252::(parser::ReduceAction::action)";
-void parser___ReduceAction252___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction252___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction252_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction253___action = "parser::ReduceAction253::(parser::ReduceAction::action)";
 void parser___ReduceAction253___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction253___action_t)(val_t p0, val_t p1);
@@ -3223,34 +3274,34 @@ static const char * const LOCATE_parser___ReduceAction256___action = "parser::Re
 void parser___ReduceAction256___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction256___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction256_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction257___action = "parser::ReduceAction257::(parser::ReduceAction::action)";
+void parser___ReduceAction257___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction257___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction257_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction258___action = "parser::ReduceAction258::(parser::ReduceAction::action)";
+void parser___ReduceAction258___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction258___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction258_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction259___action = "parser::ReduceAction259::(parser::ReduceAction::action)";
+void parser___ReduceAction259___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction259___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction259_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction260___action = "parser::ReduceAction260::(parser::ReduceAction::action)";
+void parser___ReduceAction260___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction260___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction260_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction261___action = "parser::ReduceAction261::(parser::ReduceAction::action)";
+void parser___ReduceAction261___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction261___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction261_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction262___action = "parser::ReduceAction262::(parser::ReduceAction::action)";
+void parser___ReduceAction262___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction262___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction262_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction263___action = "parser::ReduceAction263::(parser::ReduceAction::action)";
 void parser___ReduceAction263___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction263___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction263_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction264___action = "parser::ReduceAction264::(parser::ReduceAction::action)";
-void parser___ReduceAction264___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction264___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction264_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction265___action = "parser::ReduceAction265::(parser::ReduceAction::action)";
-void parser___ReduceAction265___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction265___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction265_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction266___action = "parser::ReduceAction266::(parser::ReduceAction::action)";
-void parser___ReduceAction266___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction266___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction266_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction267___action = "parser::ReduceAction267::(parser::ReduceAction::action)";
-void parser___ReduceAction267___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction267___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction267_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction268___action = "parser::ReduceAction268::(parser::ReduceAction::action)";
-void parser___ReduceAction268___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction268___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction268_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction269___action = "parser::ReduceAction269::(parser::ReduceAction::action)";
-void parser___ReduceAction269___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction269___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction269_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction270___action = "parser::ReduceAction270::(parser::ReduceAction::action)";
 void parser___ReduceAction270___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction270___action_t)(val_t p0, val_t p1);
@@ -3431,6 +3482,14 @@ static const char * const LOCATE_parser___ReduceAction314___action = "parser::Re
 void parser___ReduceAction314___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction314___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction314_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction315___action = "parser::ReduceAction315::(parser::ReduceAction::action)";
+void parser___ReduceAction315___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction315___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction315_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction316___action = "parser::ReduceAction316::(parser::ReduceAction::action)";
+void parser___ReduceAction316___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction316___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction316_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction317___action = "parser::ReduceAction317::(parser::ReduceAction::action)";
 void parser___ReduceAction317___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction317___action_t)(val_t p0, val_t p1);
@@ -3455,14 +3514,6 @@ static const char * const LOCATE_parser___ReduceAction322___action = "parser::Re
 void parser___ReduceAction322___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction322___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction322_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction323___action = "parser::ReduceAction323::(parser::ReduceAction::action)";
-void parser___ReduceAction323___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction323___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction323_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction324___action = "parser::ReduceAction324::(parser::ReduceAction::action)";
-void parser___ReduceAction324___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction324___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction324_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction325___action = "parser::ReduceAction325::(parser::ReduceAction::action)";
 void parser___ReduceAction325___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction325___action_t)(val_t p0, val_t p1);
@@ -3483,26 +3534,38 @@ static const char * const LOCATE_parser___ReduceAction329___action = "parser::Re
 void parser___ReduceAction329___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction329___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction329_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction330___action = "parser::ReduceAction330::(parser::ReduceAction::action)";
+void parser___ReduceAction330___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction330___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction330_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction331___action = "parser::ReduceAction331::(parser::ReduceAction::action)";
+void parser___ReduceAction331___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction331___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction331_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction332___action = "parser::ReduceAction332::(parser::ReduceAction::action)";
+void parser___ReduceAction332___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction332___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction332_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction333___action = "parser::ReduceAction333::(parser::ReduceAction::action)";
 void parser___ReduceAction333___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction333___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction333_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction334___action = "parser::ReduceAction334::(parser::ReduceAction::action)";
+void parser___ReduceAction334___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction334___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction334_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction335___action = "parser::ReduceAction335::(parser::ReduceAction::action)";
 void parser___ReduceAction335___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction335___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction335_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction336___action = "parser::ReduceAction336::(parser::ReduceAction::action)";
+void parser___ReduceAction336___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction336___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction336_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction337___action = "parser::ReduceAction337::(parser::ReduceAction::action)";
 void parser___ReduceAction337___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction337___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction337_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction338___action = "parser::ReduceAction338::(parser::ReduceAction::action)";
-void parser___ReduceAction338___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction338___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction338_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction339___action = "parser::ReduceAction339::(parser::ReduceAction::action)";
-void parser___ReduceAction339___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction339___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction339_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction341___action = "parser::ReduceAction341::(parser::ReduceAction::action)";
 void parser___ReduceAction341___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction341___action_t)(val_t p0, val_t p1);
@@ -3511,10 +3574,6 @@ static const char * const LOCATE_parser___ReduceAction343___action = "parser::Re
 void parser___ReduceAction343___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction343___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction343_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction344___action = "parser::ReduceAction344::(parser::ReduceAction::action)";
-void parser___ReduceAction344___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction344___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction344_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction345___action = "parser::ReduceAction345::(parser::ReduceAction::action)";
 void parser___ReduceAction345___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction345___action_t)(val_t p0, val_t p1);
@@ -3527,18 +3586,10 @@ static const char * const LOCATE_parser___ReduceAction347___action = "parser::Re
 void parser___ReduceAction347___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction347___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction347_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction348___action = "parser::ReduceAction348::(parser::ReduceAction::action)";
-void parser___ReduceAction348___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction348___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction348_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction349___action = "parser::ReduceAction349::(parser::ReduceAction::action)";
 void parser___ReduceAction349___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction349___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction349_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction350___action = "parser::ReduceAction350::(parser::ReduceAction::action)";
-void parser___ReduceAction350___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction350___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction350_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction351___action = "parser::ReduceAction351::(parser::ReduceAction::action)";
 void parser___ReduceAction351___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction351___action_t)(val_t p0, val_t p1);
@@ -3551,6 +3602,10 @@ static const char * const LOCATE_parser___ReduceAction353___action = "parser::Re
 void parser___ReduceAction353___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction353___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction353_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction354___action = "parser::ReduceAction354::(parser::ReduceAction::action)";
+void parser___ReduceAction354___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction354___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction354_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction355___action = "parser::ReduceAction355::(parser::ReduceAction::action)";
 void parser___ReduceAction355___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction355___action_t)(val_t p0, val_t p1);
@@ -3559,6 +3614,10 @@ static const char * const LOCATE_parser___ReduceAction356___action = "parser::Re
 void parser___ReduceAction356___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction356___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction356_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction357___action = "parser::ReduceAction357::(parser::ReduceAction::action)";
+void parser___ReduceAction357___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction357___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction357_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction358___action = "parser::ReduceAction358::(parser::ReduceAction::action)";
 void parser___ReduceAction358___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction358___action_t)(val_t p0, val_t p1);
@@ -3571,18 +3630,18 @@ static const char * const LOCATE_parser___ReduceAction360___action = "parser::Re
 void parser___ReduceAction360___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction360___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction360_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction362___action = "parser::ReduceAction362::(parser::ReduceAction::action)";
-void parser___ReduceAction362___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction362___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction362_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction361___action = "parser::ReduceAction361::(parser::ReduceAction::action)";
+void parser___ReduceAction361___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction361___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction361_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction363___action = "parser::ReduceAction363::(parser::ReduceAction::action)";
 void parser___ReduceAction363___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction363___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction363_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction365___action = "parser::ReduceAction365::(parser::ReduceAction::action)";
-void parser___ReduceAction365___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction365___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction365_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction364___action = "parser::ReduceAction364::(parser::ReduceAction::action)";
+void parser___ReduceAction364___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction364___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction364_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction366___action = "parser::ReduceAction366::(parser::ReduceAction::action)";
 void parser___ReduceAction366___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction366___action_t)(val_t p0, val_t p1);
@@ -3595,10 +3654,26 @@ static const char * const LOCATE_parser___ReduceAction368___action = "parser::Re
 void parser___ReduceAction368___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction368___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction368_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction369___action = "parser::ReduceAction369::(parser::ReduceAction::action)";
-void parser___ReduceAction369___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction369___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction369_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction370___action = "parser::ReduceAction370::(parser::ReduceAction::action)";
+void parser___ReduceAction370___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction370___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction370_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction371___action = "parser::ReduceAction371::(parser::ReduceAction::action)";
+void parser___ReduceAction371___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction371___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction371_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction373___action = "parser::ReduceAction373::(parser::ReduceAction::action)";
+void parser___ReduceAction373___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction373___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction373_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction374___action = "parser::ReduceAction374::(parser::ReduceAction::action)";
+void parser___ReduceAction374___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction374___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction374_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction375___action = "parser::ReduceAction375::(parser::ReduceAction::action)";
+void parser___ReduceAction375___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction375___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction375_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction376___action = "parser::ReduceAction376::(parser::ReduceAction::action)";
 void parser___ReduceAction376___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction376___action_t)(val_t p0, val_t p1);
@@ -3607,30 +3682,6 @@ static const char * const LOCATE_parser___ReduceAction377___action = "parser::Re
 void parser___ReduceAction377___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction377___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction377_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction378___action = "parser::ReduceAction378::(parser::ReduceAction::action)";
-void parser___ReduceAction378___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction378___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction378_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction379___action = "parser::ReduceAction379::(parser::ReduceAction::action)";
-void parser___ReduceAction379___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction379___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction379_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction380___action = "parser::ReduceAction380::(parser::ReduceAction::action)";
-void parser___ReduceAction380___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction380___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction380_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction381___action = "parser::ReduceAction381::(parser::ReduceAction::action)";
-void parser___ReduceAction381___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction381___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction381_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction382___action = "parser::ReduceAction382::(parser::ReduceAction::action)";
-void parser___ReduceAction382___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction382___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction382_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction383___action = "parser::ReduceAction383::(parser::ReduceAction::action)";
-void parser___ReduceAction383___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction383___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction383_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction384___action = "parser::ReduceAction384::(parser::ReduceAction::action)";
 void parser___ReduceAction384___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction384___action_t)(val_t p0, val_t p1);
@@ -3651,6 +3702,14 @@ static const char * const LOCATE_parser___ReduceAction388___action = "parser::Re
 void parser___ReduceAction388___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction388___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction388_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction389___action = "parser::ReduceAction389::(parser::ReduceAction::action)";
+void parser___ReduceAction389___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction389___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction389_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction390___action = "parser::ReduceAction390::(parser::ReduceAction::action)";
+void parser___ReduceAction390___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction390___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction390_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction391___action = "parser::ReduceAction391::(parser::ReduceAction::action)";
 void parser___ReduceAction391___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction391___action_t)(val_t p0, val_t p1);
@@ -3691,30 +3750,42 @@ static const char * const LOCATE_parser___ReduceAction401___action = "parser::Re
 void parser___ReduceAction401___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction401___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction401_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction402___action = "parser::ReduceAction402::(parser::ReduceAction::action)";
+void parser___ReduceAction402___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction402___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction402_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction403___action = "parser::ReduceAction403::(parser::ReduceAction::action)";
 void parser___ReduceAction403___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction403___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction403_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction404___action = "parser::ReduceAction404::(parser::ReduceAction::action)";
+void parser___ReduceAction404___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction404___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction404_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction406___action = "parser::ReduceAction406::(parser::ReduceAction::action)";
 void parser___ReduceAction406___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction406___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction406_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction411___action = "parser::ReduceAction411::(parser::ReduceAction::action)";
-void parser___ReduceAction411___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction411___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction411_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction407___action = "parser::ReduceAction407::(parser::ReduceAction::action)";
+void parser___ReduceAction407___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction407___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction407_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction408___action = "parser::ReduceAction408::(parser::ReduceAction::action)";
+void parser___ReduceAction408___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction408___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction408_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction409___action = "parser::ReduceAction409::(parser::ReduceAction::action)";
+void parser___ReduceAction409___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction409___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction409_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction410___action = "parser::ReduceAction410::(parser::ReduceAction::action)";
+void parser___ReduceAction410___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction410___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction410_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction412___action = "parser::ReduceAction412::(parser::ReduceAction::action)";
 void parser___ReduceAction412___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction412___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction412_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction413___action = "parser::ReduceAction413::(parser::ReduceAction::action)";
-void parser___ReduceAction413___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction413___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction413_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction414___action = "parser::ReduceAction414::(parser::ReduceAction::action)";
-void parser___ReduceAction414___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction414___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction414_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction415___action = "parser::ReduceAction415::(parser::ReduceAction::action)";
 void parser___ReduceAction415___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction415___action_t)(val_t p0, val_t p1);
@@ -3751,6 +3822,10 @@ static const char * const LOCATE_parser___ReduceAction423___action = "parser::Re
 void parser___ReduceAction423___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction423___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction423_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction424___action = "parser::ReduceAction424::(parser::ReduceAction::action)";
+void parser___ReduceAction424___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction424___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction424_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction425___action = "parser::ReduceAction425::(parser::ReduceAction::action)";
 void parser___ReduceAction425___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction425___action_t)(val_t p0, val_t p1);
@@ -3759,6 +3834,10 @@ static const char * const LOCATE_parser___ReduceAction426___action = "parser::Re
 void parser___ReduceAction426___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction426___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction426_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction427___action = "parser::ReduceAction427::(parser::ReduceAction::action)";
+void parser___ReduceAction427___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction427___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction427_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction428___action = "parser::ReduceAction428::(parser::ReduceAction::action)";
 void parser___ReduceAction428___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction428___action_t)(val_t p0, val_t p1);
@@ -3771,42 +3850,46 @@ static const char * const LOCATE_parser___ReduceAction430___action = "parser::Re
 void parser___ReduceAction430___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction430___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction430_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction431___action = "parser::ReduceAction431::(parser::ReduceAction::action)";
-void parser___ReduceAction431___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction431___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction431_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction688___action = "parser::ReduceAction688::(parser::ReduceAction::action)";
-void parser___ReduceAction688___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction688___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction688_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction689___action = "parser::ReduceAction689::(parser::ReduceAction::action)";
-void parser___ReduceAction689___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction689___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction689_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction690___action = "parser::ReduceAction690::(parser::ReduceAction::action)";
-void parser___ReduceAction690___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction690___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction690_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction693___action = "parser::ReduceAction693::(parser::ReduceAction::action)";
-void parser___ReduceAction693___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction693___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction693_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction706___action = "parser::ReduceAction706::(parser::ReduceAction::action)";
-void parser___ReduceAction706___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction706___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction706_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction707___action = "parser::ReduceAction707::(parser::ReduceAction::action)";
-void parser___ReduceAction707___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction707___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction707_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction714___action = "parser::ReduceAction714::(parser::ReduceAction::action)";
-void parser___ReduceAction714___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction714___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction714_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction715___action = "parser::ReduceAction715::(parser::ReduceAction::action)";
-void parser___ReduceAction715___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction715___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction715_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction432___action = "parser::ReduceAction432::(parser::ReduceAction::action)";
+void parser___ReduceAction432___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction432___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction432_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction433___action = "parser::ReduceAction433::(parser::ReduceAction::action)";
+void parser___ReduceAction433___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction433___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction433_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction435___action = "parser::ReduceAction435::(parser::ReduceAction::action)";
+void parser___ReduceAction435___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction435___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction435_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction436___action = "parser::ReduceAction436::(parser::ReduceAction::action)";
+void parser___ReduceAction436___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction436___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction436_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction437___action = "parser::ReduceAction437::(parser::ReduceAction::action)";
+void parser___ReduceAction437___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction437___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction437_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction438___action = "parser::ReduceAction438::(parser::ReduceAction::action)";
+void parser___ReduceAction438___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction438___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction438_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction698___action = "parser::ReduceAction698::(parser::ReduceAction::action)";
+void parser___ReduceAction698___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction698___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction698_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction699___action = "parser::ReduceAction699::(parser::ReduceAction::action)";
+void parser___ReduceAction699___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction699___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction699_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction700___action = "parser::ReduceAction700::(parser::ReduceAction::action)";
+void parser___ReduceAction700___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction700___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction700_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction703___action = "parser::ReduceAction703::(parser::ReduceAction::action)";
+void parser___ReduceAction703___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction703___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction703_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction716___action = "parser::ReduceAction716::(parser::ReduceAction::action)";
 void parser___ReduceAction716___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction716___action_t)(val_t p0, val_t p1);
@@ -3815,22 +3898,6 @@ static const char * const LOCATE_parser___ReduceAction717___action = "parser::Re
 void parser___ReduceAction717___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction717___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction717_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction718___action = "parser::ReduceAction718::(parser::ReduceAction::action)";
-void parser___ReduceAction718___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction718___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction718_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction719___action = "parser::ReduceAction719::(parser::ReduceAction::action)";
-void parser___ReduceAction719___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction719___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction719_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction720___action = "parser::ReduceAction720::(parser::ReduceAction::action)";
-void parser___ReduceAction720___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction720___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction720_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction721___action = "parser::ReduceAction721::(parser::ReduceAction::action)";
-void parser___ReduceAction721___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction721___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction721_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction724___action = "parser::ReduceAction724::(parser::ReduceAction::action)";
 void parser___ReduceAction724___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction724___action_t)(val_t p0, val_t p1);
@@ -3863,10 +3930,10 @@ static const char * const LOCATE_parser___ReduceAction731___action = "parser::Re
 void parser___ReduceAction731___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction731___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction731_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction733___action = "parser::ReduceAction733::(parser::ReduceAction::action)";
-void parser___ReduceAction733___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction733___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction733_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction734___action = "parser::ReduceAction734::(parser::ReduceAction::action)";
+void parser___ReduceAction734___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction734___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction734_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction735___action = "parser::ReduceAction735::(parser::ReduceAction::action)";
 void parser___ReduceAction735___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction735___action_t)(val_t p0, val_t p1);
@@ -3879,14 +3946,22 @@ static const char * const LOCATE_parser___ReduceAction737___action = "parser::Re
 void parser___ReduceAction737___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction737___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction737_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction738___action = "parser::ReduceAction738::(parser::ReduceAction::action)";
+void parser___ReduceAction738___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction738___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction738_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction739___action = "parser::ReduceAction739::(parser::ReduceAction::action)";
+void parser___ReduceAction739___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction739___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction739_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction740___action = "parser::ReduceAction740::(parser::ReduceAction::action)";
+void parser___ReduceAction740___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction740___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction740_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction741___action = "parser::ReduceAction741::(parser::ReduceAction::action)";
 void parser___ReduceAction741___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction741___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction741_parser___ReduceAction___init(val_t p0);
-static const char * const LOCATE_parser___ReduceAction742___action = "parser::ReduceAction742::(parser::ReduceAction::action)";
-void parser___ReduceAction742___action(val_t p0, val_t p1);
-typedef void (*parser___ReduceAction742___action_t)(val_t p0, val_t p1);
-val_t NEW_ReduceAction742_parser___ReduceAction___init(val_t p0);
 static const char * const LOCATE_parser___ReduceAction743___action = "parser::ReduceAction743::(parser::ReduceAction::action)";
 void parser___ReduceAction743___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction743___action_t)(val_t p0, val_t p1);
@@ -3899,4 +3974,28 @@ static const char * const LOCATE_parser___ReduceAction745___action = "parser::Re
 void parser___ReduceAction745___action(val_t p0, val_t p1);
 typedef void (*parser___ReduceAction745___action_t)(val_t p0, val_t p1);
 val_t NEW_ReduceAction745_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction747___action = "parser::ReduceAction747::(parser::ReduceAction::action)";
+void parser___ReduceAction747___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction747___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction747_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction751___action = "parser::ReduceAction751::(parser::ReduceAction::action)";
+void parser___ReduceAction751___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction751___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction751_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction752___action = "parser::ReduceAction752::(parser::ReduceAction::action)";
+void parser___ReduceAction752___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction752___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction752_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction753___action = "parser::ReduceAction753::(parser::ReduceAction::action)";
+void parser___ReduceAction753___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction753___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction753_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction754___action = "parser::ReduceAction754::(parser::ReduceAction::action)";
+void parser___ReduceAction754___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction754___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction754_parser___ReduceAction___init(val_t p0);
+static const char * const LOCATE_parser___ReduceAction755___action = "parser::ReduceAction755::(parser::ReduceAction::action)";
+void parser___ReduceAction755___action(val_t p0, val_t p1);
+typedef void (*parser___ReduceAction755___action_t)(val_t p0, val_t p1);
+val_t NEW_ReduceAction755_parser___ReduceAction___init(val_t p0);
 #endif
index 678fb3b..92ded75 100644 (file)
@@ -13,7 +13,7 @@ val_t parser___lexer___Token___text(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:9 */
+  /* parser/lexer.nit:9 */
   REGB0 = TAG_Bool(ATTR_parser___lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -33,76 +33,25 @@ val_t parser___lexer___Token___parser_index(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./parser//lexer.nit:11 */
+  /* parser/lexer.nit:11 */
   nit_abort("Deferred method called", NULL, LOCATE_parser___lexer, 11);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
-val_t parser___lexer___Token___to_s(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-  static val_t once_value_2; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 13;
-  fra.me.meth = LOCATE_parser___lexer___Token___to_s;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:14 */
-  REGB0 = TAG_Int(3);
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[2] = BOX_NativeString("'");
-    REGB0 = TAG_Int(1);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_1 = fra.me.REG[2];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[2] = once_value_1;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  REGB0 = TAG_Bool(ATTR_parser___lexer___Token____text(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_text", LOCATE_parser___lexer, 14);
-  }
-  fra.me.REG[0] = ATTR_parser___lexer___Token____text(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  if (!once_value_2) {
-    fra.me.REG[0] = BOX_NativeString("'");
-    REGB0 = TAG_Int(1);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
-    once_value_2 = fra.me.REG[0];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[0] = once_value_2;
-  fra.me.REG[0] = fra.me.REG[0];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
-  goto label3;
-  label3: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
 val_t parser___lexer___TEol___parser_index(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 19;
+  fra.me.line = 15;
   fra.me.meth = LOCATE_parser___lexer___TEol___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:21 */
+  /* parser/lexer.nit:17 */
   REGB0 = TAG_Int(0);
   goto label1;
   label1: while(0);
@@ -116,7 +65,7 @@ void parser___lexer___TEol___init_tk(val_t p0, val_t p1, val_t p2, int* init_tab
   if (init_table[itpos0]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 24;
+  fra.me.line = 20;
   fra.me.meth = LOCATE_parser___lexer___TEol___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -127,9 +76,9 @@ void parser___lexer___TEol___init_tk(val_t p0, val_t p1, val_t p2, int* init_tab
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//lexer.nit:26 */
+  /* parser/lexer.nit:22 */
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//lexer.nit:27 */
+  /* parser/lexer.nit:23 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -141,14 +90,14 @@ val_t parser___lexer___TComment___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 32;
+  fra.me.line = 28;
   fra.me.meth = LOCATE_parser___lexer___TComment___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:34 */
+  /* parser/lexer.nit:30 */
   REGB0 = TAG_Int(1);
   goto label1;
   label1: while(0);
@@ -162,7 +111,7 @@ void parser___lexer___TComment___init_tk(val_t p0, val_t p1, val_t p2, int* init
   if (init_table[itpos1]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 37;
+  fra.me.line = 33;
   fra.me.meth = LOCATE_parser___lexer___TComment___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -173,9 +122,9 @@ void parser___lexer___TComment___init_tk(val_t p0, val_t p1, val_t p2, int* init
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//lexer.nit:39 */
+  /* parser/lexer.nit:35 */
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//lexer.nit:40 */
+  /* parser/lexer.nit:36 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
@@ -187,14 +136,14 @@ val_t parser___lexer___TKwmodule___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 45;
+  fra.me.line = 41;
   fra.me.meth = LOCATE_parser___lexer___TKwmodule___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:47 */
+  /* parser/lexer.nit:43 */
   REGB0 = TAG_Int(2);
   goto label1;
   label1: while(0);
@@ -208,7 +157,7 @@ void parser___lexer___TKwmodule___init_tk(val_t p0, val_t p1, val_t p2, int* ini
   if (init_table[itpos2]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 50;
+  fra.me.line = 46;
   fra.me.meth = LOCATE_parser___lexer___TKwmodule___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -219,9 +168,9 @@ void parser___lexer___TKwmodule___init_tk(val_t p0, val_t p1, val_t p2, int* ini
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//lexer.nit:52 */
+  /* parser/lexer.nit:48 */
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//lexer.nit:53 */
+  /* parser/lexer.nit:49 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos2] = 1;
@@ -233,14 +182,14 @@ val_t parser___lexer___TKwimport___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 58;
+  fra.me.line = 54;
   fra.me.meth = LOCATE_parser___lexer___TKwimport___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:60 */
+  /* parser/lexer.nit:56 */
   REGB0 = TAG_Int(3);
   goto label1;
   label1: while(0);
@@ -257,7 +206,7 @@ void parser___lexer___TKwimport___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos3]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 63;
+  fra.me.line = 59;
   fra.me.meth = LOCATE_parser___lexer___TKwimport___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -267,7 +216,7 @@ void parser___lexer___TKwimport___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:65 */
+  /* parser/lexer.nit:61 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("import");
@@ -282,7 +231,7 @@ void parser___lexer___TKwimport___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:66 */
+  /* parser/lexer.nit:62 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos3] = 1;
@@ -294,14 +243,14 @@ val_t parser___lexer___TKwclass___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 71;
+  fra.me.line = 67;
   fra.me.meth = LOCATE_parser___lexer___TKwclass___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:73 */
+  /* parser/lexer.nit:69 */
   REGB0 = TAG_Int(4);
   goto label1;
   label1: while(0);
@@ -318,7 +267,7 @@ void parser___lexer___TKwclass___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos4]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 76;
+  fra.me.line = 72;
   fra.me.meth = LOCATE_parser___lexer___TKwclass___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -328,7 +277,7 @@ void parser___lexer___TKwclass___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:78 */
+  /* parser/lexer.nit:74 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("class");
@@ -343,7 +292,7 @@ void parser___lexer___TKwclass___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:79 */
+  /* parser/lexer.nit:75 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos4] = 1;
@@ -355,14 +304,14 @@ val_t parser___lexer___TKwabstract___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 84;
+  fra.me.line = 80;
   fra.me.meth = LOCATE_parser___lexer___TKwabstract___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:86 */
+  /* parser/lexer.nit:82 */
   REGB0 = TAG_Int(5);
   goto label1;
   label1: while(0);
@@ -379,7 +328,7 @@ void parser___lexer___TKwabstract___init_tk(val_t p0, val_t p1, int* init_table)
   if (init_table[itpos5]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 89;
+  fra.me.line = 85;
   fra.me.meth = LOCATE_parser___lexer___TKwabstract___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -389,7 +338,7 @@ void parser___lexer___TKwabstract___init_tk(val_t p0, val_t p1, int* init_table)
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:91 */
+  /* parser/lexer.nit:87 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("abstract");
@@ -404,7 +353,7 @@ void parser___lexer___TKwabstract___init_tk(val_t p0, val_t p1, int* init_table)
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:92 */
+  /* parser/lexer.nit:88 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos5] = 1;
@@ -416,14 +365,14 @@ val_t parser___lexer___TKwinterface___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 97;
+  fra.me.line = 93;
   fra.me.meth = LOCATE_parser___lexer___TKwinterface___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:99 */
+  /* parser/lexer.nit:95 */
   REGB0 = TAG_Int(6);
   goto label1;
   label1: while(0);
@@ -440,7 +389,7 @@ void parser___lexer___TKwinterface___init_tk(val_t p0, val_t p1, int* init_table
   if (init_table[itpos6]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 102;
+  fra.me.line = 98;
   fra.me.meth = LOCATE_parser___lexer___TKwinterface___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -450,7 +399,7 @@ void parser___lexer___TKwinterface___init_tk(val_t p0, val_t p1, int* init_table
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:104 */
+  /* parser/lexer.nit:100 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("interface");
@@ -465,7 +414,7 @@ void parser___lexer___TKwinterface___init_tk(val_t p0, val_t p1, int* init_table
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:105 */
+  /* parser/lexer.nit:101 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos6] = 1;
@@ -477,14 +426,14 @@ val_t parser___lexer___TKwenum___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 110;
+  fra.me.line = 106;
   fra.me.meth = LOCATE_parser___lexer___TKwenum___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:112 */
+  /* parser/lexer.nit:108 */
   REGB0 = TAG_Int(7);
   goto label1;
   label1: while(0);
@@ -498,7 +447,7 @@ void parser___lexer___TKwenum___init_tk(val_t p0, val_t p1, val_t p2, int* init_
   if (init_table[itpos7]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 115;
+  fra.me.line = 111;
   fra.me.meth = LOCATE_parser___lexer___TKwenum___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -509,9 +458,9 @@ void parser___lexer___TKwenum___init_tk(val_t p0, val_t p1, val_t p2, int* init_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//lexer.nit:117 */
+  /* parser/lexer.nit:113 */
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//lexer.nit:118 */
+  /* parser/lexer.nit:114 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos7] = 1;
@@ -523,14 +472,14 @@ val_t parser___lexer___TKwspecial___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 123;
+  fra.me.line = 119;
   fra.me.meth = LOCATE_parser___lexer___TKwspecial___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:125 */
+  /* parser/lexer.nit:121 */
   REGB0 = TAG_Int(8);
   goto label1;
   label1: while(0);
@@ -547,7 +496,7 @@ void parser___lexer___TKwspecial___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos8]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 128;
+  fra.me.line = 124;
   fra.me.meth = LOCATE_parser___lexer___TKwspecial___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -557,7 +506,7 @@ void parser___lexer___TKwspecial___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:130 */
+  /* parser/lexer.nit:126 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("special");
@@ -572,7 +521,7 @@ void parser___lexer___TKwspecial___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:131 */
+  /* parser/lexer.nit:127 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos8] = 1;
@@ -584,14 +533,14 @@ val_t parser___lexer___TKwend___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 136;
+  fra.me.line = 132;
   fra.me.meth = LOCATE_parser___lexer___TKwend___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:138 */
+  /* parser/lexer.nit:134 */
   REGB0 = TAG_Int(9);
   goto label1;
   label1: while(0);
@@ -608,7 +557,7 @@ void parser___lexer___TKwend___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos9]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 141;
+  fra.me.line = 137;
   fra.me.meth = LOCATE_parser___lexer___TKwend___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -618,7 +567,7 @@ void parser___lexer___TKwend___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:143 */
+  /* parser/lexer.nit:139 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("end");
@@ -633,7 +582,7 @@ void parser___lexer___TKwend___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:144 */
+  /* parser/lexer.nit:140 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos9] = 1;
@@ -645,14 +594,14 @@ val_t parser___lexer___TKwmeth___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 149;
+  fra.me.line = 145;
   fra.me.meth = LOCATE_parser___lexer___TKwmeth___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:151 */
+  /* parser/lexer.nit:147 */
   REGB0 = TAG_Int(10);
   goto label1;
   label1: while(0);
@@ -669,7 +618,7 @@ void parser___lexer___TKwmeth___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos10]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 154;
+  fra.me.line = 150;
   fra.me.meth = LOCATE_parser___lexer___TKwmeth___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -679,7 +628,7 @@ void parser___lexer___TKwmeth___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:156 */
+  /* parser/lexer.nit:152 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("fun");
@@ -694,7 +643,7 @@ void parser___lexer___TKwmeth___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:157 */
+  /* parser/lexer.nit:153 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos10] = 1;
@@ -706,14 +655,14 @@ val_t parser___lexer___TKwtype___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 162;
+  fra.me.line = 158;
   fra.me.meth = LOCATE_parser___lexer___TKwtype___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:164 */
+  /* parser/lexer.nit:160 */
   REGB0 = TAG_Int(11);
   goto label1;
   label1: while(0);
@@ -730,7 +679,7 @@ void parser___lexer___TKwtype___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos11]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 167;
+  fra.me.line = 163;
   fra.me.meth = LOCATE_parser___lexer___TKwtype___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -740,7 +689,7 @@ void parser___lexer___TKwtype___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:169 */
+  /* parser/lexer.nit:165 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("type");
@@ -755,7 +704,7 @@ void parser___lexer___TKwtype___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:170 */
+  /* parser/lexer.nit:166 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos11] = 1;
@@ -767,14 +716,14 @@ val_t parser___lexer___TKwinit___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 175;
+  fra.me.line = 171;
   fra.me.meth = LOCATE_parser___lexer___TKwinit___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:177 */
+  /* parser/lexer.nit:173 */
   REGB0 = TAG_Int(12);
   goto label1;
   label1: while(0);
@@ -791,7 +740,7 @@ void parser___lexer___TKwinit___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos12]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 180;
+  fra.me.line = 176;
   fra.me.meth = LOCATE_parser___lexer___TKwinit___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -801,7 +750,7 @@ void parser___lexer___TKwinit___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:182 */
+  /* parser/lexer.nit:178 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("init");
@@ -816,7 +765,7 @@ void parser___lexer___TKwinit___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:183 */
+  /* parser/lexer.nit:179 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos12] = 1;
@@ -828,14 +777,14 @@ val_t parser___lexer___TKwredef___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 188;
+  fra.me.line = 184;
   fra.me.meth = LOCATE_parser___lexer___TKwredef___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:190 */
+  /* parser/lexer.nit:186 */
   REGB0 = TAG_Int(13);
   goto label1;
   label1: while(0);
@@ -852,7 +801,7 @@ void parser___lexer___TKwredef___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos13]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 193;
+  fra.me.line = 189;
   fra.me.meth = LOCATE_parser___lexer___TKwredef___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -862,7 +811,7 @@ void parser___lexer___TKwredef___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:195 */
+  /* parser/lexer.nit:191 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("redef");
@@ -877,7 +826,7 @@ void parser___lexer___TKwredef___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:196 */
+  /* parser/lexer.nit:192 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos13] = 1;
@@ -889,14 +838,14 @@ val_t parser___lexer___TKwis___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 201;
+  fra.me.line = 197;
   fra.me.meth = LOCATE_parser___lexer___TKwis___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:203 */
+  /* parser/lexer.nit:199 */
   REGB0 = TAG_Int(14);
   goto label1;
   label1: while(0);
@@ -913,7 +862,7 @@ void parser___lexer___TKwis___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos14]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 206;
+  fra.me.line = 202;
   fra.me.meth = LOCATE_parser___lexer___TKwis___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -923,7 +872,7 @@ void parser___lexer___TKwis___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:208 */
+  /* parser/lexer.nit:204 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("is");
@@ -938,7 +887,7 @@ void parser___lexer___TKwis___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:209 */
+  /* parser/lexer.nit:205 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos14] = 1;
@@ -950,14 +899,14 @@ val_t parser___lexer___TKwdo___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 214;
+  fra.me.line = 210;
   fra.me.meth = LOCATE_parser___lexer___TKwdo___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:216 */
+  /* parser/lexer.nit:212 */
   REGB0 = TAG_Int(15);
   goto label1;
   label1: while(0);
@@ -974,7 +923,7 @@ void parser___lexer___TKwdo___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos15]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 219;
+  fra.me.line = 215;
   fra.me.meth = LOCATE_parser___lexer___TKwdo___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -984,7 +933,7 @@ void parser___lexer___TKwdo___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:221 */
+  /* parser/lexer.nit:217 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("do");
@@ -999,7 +948,7 @@ void parser___lexer___TKwdo___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:222 */
+  /* parser/lexer.nit:218 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos15] = 1;
@@ -1011,14 +960,14 @@ val_t parser___lexer___TKwreadable___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 227;
+  fra.me.line = 223;
   fra.me.meth = LOCATE_parser___lexer___TKwreadable___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:229 */
+  /* parser/lexer.nit:225 */
   REGB0 = TAG_Int(16);
   goto label1;
   label1: while(0);
@@ -1035,7 +984,7 @@ void parser___lexer___TKwreadable___init_tk(val_t p0, val_t p1, int* init_table)
   if (init_table[itpos16]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 232;
+  fra.me.line = 228;
   fra.me.meth = LOCATE_parser___lexer___TKwreadable___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1045,7 +994,7 @@ void parser___lexer___TKwreadable___init_tk(val_t p0, val_t p1, int* init_table)
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:234 */
+  /* parser/lexer.nit:230 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("readable");
@@ -1060,7 +1009,7 @@ void parser___lexer___TKwreadable___init_tk(val_t p0, val_t p1, int* init_table)
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:235 */
+  /* parser/lexer.nit:231 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos16] = 1;
@@ -1072,14 +1021,14 @@ val_t parser___lexer___TKwwritable___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 240;
+  fra.me.line = 236;
   fra.me.meth = LOCATE_parser___lexer___TKwwritable___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:242 */
+  /* parser/lexer.nit:238 */
   REGB0 = TAG_Int(17);
   goto label1;
   label1: while(0);
@@ -1096,7 +1045,7 @@ void parser___lexer___TKwwritable___init_tk(val_t p0, val_t p1, int* init_table)
   if (init_table[itpos17]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 245;
+  fra.me.line = 241;
   fra.me.meth = LOCATE_parser___lexer___TKwwritable___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1106,7 +1055,7 @@ void parser___lexer___TKwwritable___init_tk(val_t p0, val_t p1, int* init_table)
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:247 */
+  /* parser/lexer.nit:243 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("writable");
@@ -1121,7 +1070,7 @@ void parser___lexer___TKwwritable___init_tk(val_t p0, val_t p1, int* init_table)
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:248 */
+  /* parser/lexer.nit:244 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos17] = 1;
@@ -1133,14 +1082,14 @@ val_t parser___lexer___TKwvar___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 253;
+  fra.me.line = 249;
   fra.me.meth = LOCATE_parser___lexer___TKwvar___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:255 */
+  /* parser/lexer.nit:251 */
   REGB0 = TAG_Int(18);
   goto label1;
   label1: while(0);
@@ -1157,7 +1106,7 @@ void parser___lexer___TKwvar___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos18]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 258;
+  fra.me.line = 254;
   fra.me.meth = LOCATE_parser___lexer___TKwvar___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1167,7 +1116,7 @@ void parser___lexer___TKwvar___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:260 */
+  /* parser/lexer.nit:256 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("var");
@@ -1182,7 +1131,7 @@ void parser___lexer___TKwvar___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:261 */
+  /* parser/lexer.nit:257 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos18] = 1;
@@ -1194,14 +1143,14 @@ val_t parser___lexer___TKwintern___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 266;
+  fra.me.line = 262;
   fra.me.meth = LOCATE_parser___lexer___TKwintern___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:268 */
+  /* parser/lexer.nit:264 */
   REGB0 = TAG_Int(19);
   goto label1;
   label1: while(0);
@@ -1218,7 +1167,7 @@ void parser___lexer___TKwintern___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos19]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 271;
+  fra.me.line = 267;
   fra.me.meth = LOCATE_parser___lexer___TKwintern___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1228,7 +1177,7 @@ void parser___lexer___TKwintern___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:273 */
+  /* parser/lexer.nit:269 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("intern");
@@ -1243,7 +1192,7 @@ void parser___lexer___TKwintern___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:274 */
+  /* parser/lexer.nit:270 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos19] = 1;
@@ -1255,14 +1204,14 @@ val_t parser___lexer___TKwextern___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 279;
+  fra.me.line = 275;
   fra.me.meth = LOCATE_parser___lexer___TKwextern___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:281 */
+  /* parser/lexer.nit:277 */
   REGB0 = TAG_Int(20);
   goto label1;
   label1: while(0);
@@ -1279,7 +1228,7 @@ void parser___lexer___TKwextern___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos20]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 284;
+  fra.me.line = 280;
   fra.me.meth = LOCATE_parser___lexer___TKwextern___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1289,7 +1238,7 @@ void parser___lexer___TKwextern___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:286 */
+  /* parser/lexer.nit:282 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("extern");
@@ -1304,7 +1253,7 @@ void parser___lexer___TKwextern___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:287 */
+  /* parser/lexer.nit:283 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos20] = 1;
@@ -1316,14 +1265,14 @@ val_t parser___lexer___TKwprotected___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 292;
+  fra.me.line = 288;
   fra.me.meth = LOCATE_parser___lexer___TKwprotected___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:294 */
+  /* parser/lexer.nit:290 */
   REGB0 = TAG_Int(21);
   goto label1;
   label1: while(0);
@@ -1340,7 +1289,7 @@ void parser___lexer___TKwprotected___init_tk(val_t p0, val_t p1, int* init_table
   if (init_table[itpos21]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 297;
+  fra.me.line = 293;
   fra.me.meth = LOCATE_parser___lexer___TKwprotected___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1350,7 +1299,7 @@ void parser___lexer___TKwprotected___init_tk(val_t p0, val_t p1, int* init_table
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:299 */
+  /* parser/lexer.nit:295 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("protected");
@@ -1365,7 +1314,7 @@ void parser___lexer___TKwprotected___init_tk(val_t p0, val_t p1, int* init_table
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:300 */
+  /* parser/lexer.nit:296 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos21] = 1;
@@ -1377,14 +1326,14 @@ val_t parser___lexer___TKwprivate___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 305;
+  fra.me.line = 301;
   fra.me.meth = LOCATE_parser___lexer___TKwprivate___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:307 */
+  /* parser/lexer.nit:303 */
   REGB0 = TAG_Int(22);
   goto label1;
   label1: while(0);
@@ -1401,7 +1350,7 @@ void parser___lexer___TKwprivate___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos22]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 310;
+  fra.me.line = 306;
   fra.me.meth = LOCATE_parser___lexer___TKwprivate___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1411,7 +1360,7 @@ void parser___lexer___TKwprivate___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:312 */
+  /* parser/lexer.nit:308 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("private");
@@ -1426,7 +1375,7 @@ void parser___lexer___TKwprivate___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:313 */
+  /* parser/lexer.nit:309 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos22] = 1;
@@ -1438,14 +1387,14 @@ val_t parser___lexer___TKwintrude___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 318;
+  fra.me.line = 314;
   fra.me.meth = LOCATE_parser___lexer___TKwintrude___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:320 */
+  /* parser/lexer.nit:316 */
   REGB0 = TAG_Int(23);
   goto label1;
   label1: while(0);
@@ -1462,7 +1411,7 @@ void parser___lexer___TKwintrude___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos23]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 323;
+  fra.me.line = 319;
   fra.me.meth = LOCATE_parser___lexer___TKwintrude___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1472,7 +1421,7 @@ void parser___lexer___TKwintrude___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:325 */
+  /* parser/lexer.nit:321 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("intrude");
@@ -1487,7 +1436,7 @@ void parser___lexer___TKwintrude___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:326 */
+  /* parser/lexer.nit:322 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos23] = 1;
@@ -1499,14 +1448,14 @@ val_t parser___lexer___TKwif___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 331;
+  fra.me.line = 327;
   fra.me.meth = LOCATE_parser___lexer___TKwif___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:333 */
+  /* parser/lexer.nit:329 */
   REGB0 = TAG_Int(24);
   goto label1;
   label1: while(0);
@@ -1523,7 +1472,7 @@ void parser___lexer___TKwif___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos24]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 336;
+  fra.me.line = 332;
   fra.me.meth = LOCATE_parser___lexer___TKwif___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1533,7 +1482,7 @@ void parser___lexer___TKwif___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:338 */
+  /* parser/lexer.nit:334 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("if");
@@ -1548,7 +1497,7 @@ void parser___lexer___TKwif___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:339 */
+  /* parser/lexer.nit:335 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos24] = 1;
@@ -1560,14 +1509,14 @@ val_t parser___lexer___TKwthen___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 344;
+  fra.me.line = 340;
   fra.me.meth = LOCATE_parser___lexer___TKwthen___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:346 */
+  /* parser/lexer.nit:342 */
   REGB0 = TAG_Int(25);
   goto label1;
   label1: while(0);
@@ -1584,7 +1533,7 @@ void parser___lexer___TKwthen___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos25]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 349;
+  fra.me.line = 345;
   fra.me.meth = LOCATE_parser___lexer___TKwthen___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1594,7 +1543,7 @@ void parser___lexer___TKwthen___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:351 */
+  /* parser/lexer.nit:347 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("then");
@@ -1609,7 +1558,7 @@ void parser___lexer___TKwthen___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:352 */
+  /* parser/lexer.nit:348 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos25] = 1;
@@ -1621,14 +1570,14 @@ val_t parser___lexer___TKwelse___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 357;
+  fra.me.line = 353;
   fra.me.meth = LOCATE_parser___lexer___TKwelse___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:359 */
+  /* parser/lexer.nit:355 */
   REGB0 = TAG_Int(26);
   goto label1;
   label1: while(0);
@@ -1645,7 +1594,7 @@ void parser___lexer___TKwelse___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos26]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 362;
+  fra.me.line = 358;
   fra.me.meth = LOCATE_parser___lexer___TKwelse___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1655,7 +1604,7 @@ void parser___lexer___TKwelse___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:364 */
+  /* parser/lexer.nit:360 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("else");
@@ -1670,7 +1619,7 @@ void parser___lexer___TKwelse___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:365 */
+  /* parser/lexer.nit:361 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos26] = 1;
@@ -1682,14 +1631,14 @@ val_t parser___lexer___TKwwhile___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 370;
+  fra.me.line = 366;
   fra.me.meth = LOCATE_parser___lexer___TKwwhile___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:372 */
+  /* parser/lexer.nit:368 */
   REGB0 = TAG_Int(27);
   goto label1;
   label1: while(0);
@@ -1706,7 +1655,7 @@ void parser___lexer___TKwwhile___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos27]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 375;
+  fra.me.line = 371;
   fra.me.meth = LOCATE_parser___lexer___TKwwhile___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1716,7 +1665,7 @@ void parser___lexer___TKwwhile___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:377 */
+  /* parser/lexer.nit:373 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("while");
@@ -1731,7 +1680,7 @@ void parser___lexer___TKwwhile___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:378 */
+  /* parser/lexer.nit:374 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos27] = 1;
@@ -1743,14 +1692,14 @@ val_t parser___lexer___TKwloop___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 383;
+  fra.me.line = 379;
   fra.me.meth = LOCATE_parser___lexer___TKwloop___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:385 */
+  /* parser/lexer.nit:381 */
   REGB0 = TAG_Int(28);
   goto label1;
   label1: while(0);
@@ -1767,7 +1716,7 @@ void parser___lexer___TKwloop___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos28]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 388;
+  fra.me.line = 384;
   fra.me.meth = LOCATE_parser___lexer___TKwloop___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1777,7 +1726,7 @@ void parser___lexer___TKwloop___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:390 */
+  /* parser/lexer.nit:386 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("loop");
@@ -1792,7 +1741,7 @@ void parser___lexer___TKwloop___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:391 */
+  /* parser/lexer.nit:387 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos28] = 1;
@@ -1804,14 +1753,14 @@ val_t parser___lexer___TKwfor___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 396;
+  fra.me.line = 392;
   fra.me.meth = LOCATE_parser___lexer___TKwfor___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:398 */
+  /* parser/lexer.nit:394 */
   REGB0 = TAG_Int(29);
   goto label1;
   label1: while(0);
@@ -1828,7 +1777,7 @@ void parser___lexer___TKwfor___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos29]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 401;
+  fra.me.line = 397;
   fra.me.meth = LOCATE_parser___lexer___TKwfor___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1838,7 +1787,7 @@ void parser___lexer___TKwfor___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:403 */
+  /* parser/lexer.nit:399 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("for");
@@ -1853,7 +1802,7 @@ void parser___lexer___TKwfor___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:404 */
+  /* parser/lexer.nit:400 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos29] = 1;
@@ -1865,14 +1814,14 @@ val_t parser___lexer___TKwin___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 409;
+  fra.me.line = 405;
   fra.me.meth = LOCATE_parser___lexer___TKwin___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:411 */
+  /* parser/lexer.nit:407 */
   REGB0 = TAG_Int(30);
   goto label1;
   label1: while(0);
@@ -1889,7 +1838,7 @@ void parser___lexer___TKwin___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos30]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 414;
+  fra.me.line = 410;
   fra.me.meth = LOCATE_parser___lexer___TKwin___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1899,7 +1848,7 @@ void parser___lexer___TKwin___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:416 */
+  /* parser/lexer.nit:412 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("in");
@@ -1914,7 +1863,7 @@ void parser___lexer___TKwin___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:417 */
+  /* parser/lexer.nit:413 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos30] = 1;
@@ -1926,14 +1875,14 @@ val_t parser___lexer___TKwand___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 422;
+  fra.me.line = 418;
   fra.me.meth = LOCATE_parser___lexer___TKwand___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:424 */
+  /* parser/lexer.nit:420 */
   REGB0 = TAG_Int(31);
   goto label1;
   label1: while(0);
@@ -1950,7 +1899,7 @@ void parser___lexer___TKwand___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos31]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 427;
+  fra.me.line = 423;
   fra.me.meth = LOCATE_parser___lexer___TKwand___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1960,7 +1909,7 @@ void parser___lexer___TKwand___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:429 */
+  /* parser/lexer.nit:425 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("and");
@@ -1975,7 +1924,7 @@ void parser___lexer___TKwand___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:430 */
+  /* parser/lexer.nit:426 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos31] = 1;
@@ -1987,14 +1936,14 @@ val_t parser___lexer___TKwor___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 435;
+  fra.me.line = 431;
   fra.me.meth = LOCATE_parser___lexer___TKwor___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:437 */
+  /* parser/lexer.nit:433 */
   REGB0 = TAG_Int(32);
   goto label1;
   label1: while(0);
@@ -2011,7 +1960,7 @@ void parser___lexer___TKwor___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos32]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 440;
+  fra.me.line = 436;
   fra.me.meth = LOCATE_parser___lexer___TKwor___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2021,7 +1970,7 @@ void parser___lexer___TKwor___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:442 */
+  /* parser/lexer.nit:438 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("or");
@@ -2036,7 +1985,7 @@ void parser___lexer___TKwor___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:443 */
+  /* parser/lexer.nit:439 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos32] = 1;
@@ -2048,14 +1997,14 @@ val_t parser___lexer___TKwnot___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 448;
+  fra.me.line = 444;
   fra.me.meth = LOCATE_parser___lexer___TKwnot___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:450 */
+  /* parser/lexer.nit:446 */
   REGB0 = TAG_Int(33);
   goto label1;
   label1: while(0);
@@ -2072,7 +2021,7 @@ void parser___lexer___TKwnot___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos33]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 453;
+  fra.me.line = 449;
   fra.me.meth = LOCATE_parser___lexer___TKwnot___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2082,7 +2031,7 @@ void parser___lexer___TKwnot___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:455 */
+  /* parser/lexer.nit:451 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("not");
@@ -2097,7 +2046,7 @@ void parser___lexer___TKwnot___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:456 */
+  /* parser/lexer.nit:452 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos33] = 1;
@@ -2109,14 +2058,14 @@ val_t parser___lexer___TKwreturn___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 461;
+  fra.me.line = 457;
   fra.me.meth = LOCATE_parser___lexer___TKwreturn___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:463 */
+  /* parser/lexer.nit:459 */
   REGB0 = TAG_Int(34);
   goto label1;
   label1: while(0);
@@ -2133,7 +2082,7 @@ void parser___lexer___TKwreturn___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos34]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 466;
+  fra.me.line = 462;
   fra.me.meth = LOCATE_parser___lexer___TKwreturn___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2143,7 +2092,7 @@ void parser___lexer___TKwreturn___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:468 */
+  /* parser/lexer.nit:464 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("return");
@@ -2158,7 +2107,7 @@ void parser___lexer___TKwreturn___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:469 */
+  /* parser/lexer.nit:465 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos34] = 1;
@@ -2170,14 +2119,14 @@ val_t parser___lexer___TKwcontinue___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 474;
+  fra.me.line = 470;
   fra.me.meth = LOCATE_parser___lexer___TKwcontinue___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:476 */
+  /* parser/lexer.nit:472 */
   REGB0 = TAG_Int(35);
   goto label1;
   label1: while(0);
@@ -2194,7 +2143,7 @@ void parser___lexer___TKwcontinue___init_tk(val_t p0, val_t p1, int* init_table)
   if (init_table[itpos35]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 479;
+  fra.me.line = 475;
   fra.me.meth = LOCATE_parser___lexer___TKwcontinue___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2204,7 +2153,7 @@ void parser___lexer___TKwcontinue___init_tk(val_t p0, val_t p1, int* init_table)
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:481 */
+  /* parser/lexer.nit:477 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("continue");
@@ -2219,7 +2168,7 @@ void parser___lexer___TKwcontinue___init_tk(val_t p0, val_t p1, int* init_table)
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:482 */
+  /* parser/lexer.nit:478 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos35] = 1;
@@ -2231,14 +2180,14 @@ val_t parser___lexer___TKwbreak___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 487;
+  fra.me.line = 483;
   fra.me.meth = LOCATE_parser___lexer___TKwbreak___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:489 */
+  /* parser/lexer.nit:485 */
   REGB0 = TAG_Int(36);
   goto label1;
   label1: while(0);
@@ -2255,7 +2204,7 @@ void parser___lexer___TKwbreak___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos36]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 492;
+  fra.me.line = 488;
   fra.me.meth = LOCATE_parser___lexer___TKwbreak___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2265,7 +2214,7 @@ void parser___lexer___TKwbreak___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:494 */
+  /* parser/lexer.nit:490 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("break");
@@ -2280,7 +2229,7 @@ void parser___lexer___TKwbreak___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:495 */
+  /* parser/lexer.nit:491 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos36] = 1;
@@ -2292,14 +2241,14 @@ val_t parser___lexer___TKwabort___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 500;
+  fra.me.line = 496;
   fra.me.meth = LOCATE_parser___lexer___TKwabort___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:502 */
+  /* parser/lexer.nit:498 */
   REGB0 = TAG_Int(37);
   goto label1;
   label1: while(0);
@@ -2316,7 +2265,7 @@ void parser___lexer___TKwabort___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos37]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 505;
+  fra.me.line = 501;
   fra.me.meth = LOCATE_parser___lexer___TKwabort___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2326,7 +2275,7 @@ void parser___lexer___TKwabort___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:507 */
+  /* parser/lexer.nit:503 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("abort");
@@ -2341,7 +2290,7 @@ void parser___lexer___TKwabort___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:508 */
+  /* parser/lexer.nit:504 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos37] = 1;
@@ -2353,14 +2302,14 @@ val_t parser___lexer___TKwassert___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 513;
+  fra.me.line = 509;
   fra.me.meth = LOCATE_parser___lexer___TKwassert___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:515 */
+  /* parser/lexer.nit:511 */
   REGB0 = TAG_Int(38);
   goto label1;
   label1: while(0);
@@ -2377,7 +2326,7 @@ void parser___lexer___TKwassert___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos38]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 518;
+  fra.me.line = 514;
   fra.me.meth = LOCATE_parser___lexer___TKwassert___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2387,7 +2336,7 @@ void parser___lexer___TKwassert___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:520 */
+  /* parser/lexer.nit:516 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("assert");
@@ -2402,7 +2351,7 @@ void parser___lexer___TKwassert___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:521 */
+  /* parser/lexer.nit:517 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos38] = 1;
@@ -2414,14 +2363,14 @@ val_t parser___lexer___TKwnew___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 526;
+  fra.me.line = 522;
   fra.me.meth = LOCATE_parser___lexer___TKwnew___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:528 */
+  /* parser/lexer.nit:524 */
   REGB0 = TAG_Int(39);
   goto label1;
   label1: while(0);
@@ -2438,7 +2387,7 @@ void parser___lexer___TKwnew___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos39]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 531;
+  fra.me.line = 527;
   fra.me.meth = LOCATE_parser___lexer___TKwnew___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2448,7 +2397,7 @@ void parser___lexer___TKwnew___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:533 */
+  /* parser/lexer.nit:529 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("new");
@@ -2463,7 +2412,7 @@ void parser___lexer___TKwnew___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:534 */
+  /* parser/lexer.nit:530 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos39] = 1;
@@ -2475,14 +2424,14 @@ val_t parser___lexer___TKwisa___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 539;
+  fra.me.line = 535;
   fra.me.meth = LOCATE_parser___lexer___TKwisa___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:541 */
+  /* parser/lexer.nit:537 */
   REGB0 = TAG_Int(40);
   goto label1;
   label1: while(0);
@@ -2499,7 +2448,7 @@ void parser___lexer___TKwisa___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos40]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 544;
+  fra.me.line = 540;
   fra.me.meth = LOCATE_parser___lexer___TKwisa___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2509,7 +2458,7 @@ void parser___lexer___TKwisa___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:546 */
+  /* parser/lexer.nit:542 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("isa");
@@ -2524,7 +2473,7 @@ void parser___lexer___TKwisa___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:547 */
+  /* parser/lexer.nit:543 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos40] = 1;
@@ -2536,14 +2485,14 @@ val_t parser___lexer___TKwonce___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 552;
+  fra.me.line = 548;
   fra.me.meth = LOCATE_parser___lexer___TKwonce___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:554 */
+  /* parser/lexer.nit:550 */
   REGB0 = TAG_Int(41);
   goto label1;
   label1: while(0);
@@ -2560,7 +2509,7 @@ void parser___lexer___TKwonce___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos41]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 557;
+  fra.me.line = 553;
   fra.me.meth = LOCATE_parser___lexer___TKwonce___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2570,7 +2519,7 @@ void parser___lexer___TKwonce___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:559 */
+  /* parser/lexer.nit:555 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("once");
@@ -2585,7 +2534,7 @@ void parser___lexer___TKwonce___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:560 */
+  /* parser/lexer.nit:556 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos41] = 1;
@@ -2597,14 +2546,14 @@ val_t parser___lexer___TKwsuper___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 565;
+  fra.me.line = 561;
   fra.me.meth = LOCATE_parser___lexer___TKwsuper___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:567 */
+  /* parser/lexer.nit:563 */
   REGB0 = TAG_Int(42);
   goto label1;
   label1: while(0);
@@ -2621,7 +2570,7 @@ void parser___lexer___TKwsuper___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos42]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 570;
+  fra.me.line = 566;
   fra.me.meth = LOCATE_parser___lexer___TKwsuper___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2631,7 +2580,7 @@ void parser___lexer___TKwsuper___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:572 */
+  /* parser/lexer.nit:568 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("super");
@@ -2646,7 +2595,7 @@ void parser___lexer___TKwsuper___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:573 */
+  /* parser/lexer.nit:569 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos42] = 1;
@@ -2658,14 +2607,14 @@ val_t parser___lexer___TKwself___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 578;
+  fra.me.line = 574;
   fra.me.meth = LOCATE_parser___lexer___TKwself___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:580 */
+  /* parser/lexer.nit:576 */
   REGB0 = TAG_Int(43);
   goto label1;
   label1: while(0);
@@ -2682,7 +2631,7 @@ void parser___lexer___TKwself___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos43]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 583;
+  fra.me.line = 579;
   fra.me.meth = LOCATE_parser___lexer___TKwself___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2692,7 +2641,7 @@ void parser___lexer___TKwself___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:585 */
+  /* parser/lexer.nit:581 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("self");
@@ -2707,7 +2656,7 @@ void parser___lexer___TKwself___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:586 */
+  /* parser/lexer.nit:582 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos43] = 1;
@@ -2719,14 +2668,14 @@ val_t parser___lexer___TKwtrue___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 591;
+  fra.me.line = 587;
   fra.me.meth = LOCATE_parser___lexer___TKwtrue___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:593 */
+  /* parser/lexer.nit:589 */
   REGB0 = TAG_Int(44);
   goto label1;
   label1: while(0);
@@ -2743,7 +2692,7 @@ void parser___lexer___TKwtrue___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos44]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 596;
+  fra.me.line = 592;
   fra.me.meth = LOCATE_parser___lexer___TKwtrue___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2753,7 +2702,7 @@ void parser___lexer___TKwtrue___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:598 */
+  /* parser/lexer.nit:594 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("true");
@@ -2768,7 +2717,7 @@ void parser___lexer___TKwtrue___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:599 */
+  /* parser/lexer.nit:595 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos44] = 1;
@@ -2780,14 +2729,14 @@ val_t parser___lexer___TKwfalse___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 604;
+  fra.me.line = 600;
   fra.me.meth = LOCATE_parser___lexer___TKwfalse___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:606 */
+  /* parser/lexer.nit:602 */
   REGB0 = TAG_Int(45);
   goto label1;
   label1: while(0);
@@ -2804,7 +2753,7 @@ void parser___lexer___TKwfalse___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos45]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 609;
+  fra.me.line = 605;
   fra.me.meth = LOCATE_parser___lexer___TKwfalse___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2814,7 +2763,7 @@ void parser___lexer___TKwfalse___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:611 */
+  /* parser/lexer.nit:607 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("false");
@@ -2829,7 +2778,7 @@ void parser___lexer___TKwfalse___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:612 */
+  /* parser/lexer.nit:608 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos45] = 1;
@@ -2841,14 +2790,14 @@ val_t parser___lexer___TKwnull___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 617;
+  fra.me.line = 613;
   fra.me.meth = LOCATE_parser___lexer___TKwnull___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:619 */
+  /* parser/lexer.nit:615 */
   REGB0 = TAG_Int(46);
   goto label1;
   label1: while(0);
@@ -2865,7 +2814,7 @@ void parser___lexer___TKwnull___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos46]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 622;
+  fra.me.line = 618;
   fra.me.meth = LOCATE_parser___lexer___TKwnull___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2875,7 +2824,7 @@ void parser___lexer___TKwnull___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:624 */
+  /* parser/lexer.nit:620 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("null");
@@ -2890,7 +2839,7 @@ void parser___lexer___TKwnull___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:625 */
+  /* parser/lexer.nit:621 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos46] = 1;
@@ -2902,14 +2851,14 @@ val_t parser___lexer___TKwas___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 630;
+  fra.me.line = 626;
   fra.me.meth = LOCATE_parser___lexer___TKwas___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:632 */
+  /* parser/lexer.nit:628 */
   REGB0 = TAG_Int(47);
   goto label1;
   label1: while(0);
@@ -2926,7 +2875,7 @@ void parser___lexer___TKwas___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos47]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 635;
+  fra.me.line = 631;
   fra.me.meth = LOCATE_parser___lexer___TKwas___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2936,7 +2885,7 @@ void parser___lexer___TKwas___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:637 */
+  /* parser/lexer.nit:633 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("as");
@@ -2951,7 +2900,7 @@ void parser___lexer___TKwas___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:638 */
+  /* parser/lexer.nit:634 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos47] = 1;
@@ -2963,14 +2912,14 @@ val_t parser___lexer___TKwnullable___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 643;
+  fra.me.line = 639;
   fra.me.meth = LOCATE_parser___lexer___TKwnullable___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:645 */
+  /* parser/lexer.nit:641 */
   REGB0 = TAG_Int(48);
   goto label1;
   label1: while(0);
@@ -2987,7 +2936,7 @@ void parser___lexer___TKwnullable___init_tk(val_t p0, val_t p1, int* init_table)
   if (init_table[itpos48]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 648;
+  fra.me.line = 644;
   fra.me.meth = LOCATE_parser___lexer___TKwnullable___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2997,7 +2946,7 @@ void parser___lexer___TKwnullable___init_tk(val_t p0, val_t p1, int* init_table)
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:650 */
+  /* parser/lexer.nit:646 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("nullable");
@@ -3012,7 +2961,7 @@ void parser___lexer___TKwnullable___init_tk(val_t p0, val_t p1, int* init_table)
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:651 */
+  /* parser/lexer.nit:647 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos48] = 1;
@@ -3024,14 +2973,14 @@ val_t parser___lexer___TKwisset___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 656;
+  fra.me.line = 652;
   fra.me.meth = LOCATE_parser___lexer___TKwisset___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:658 */
+  /* parser/lexer.nit:654 */
   REGB0 = TAG_Int(49);
   goto label1;
   label1: while(0);
@@ -3048,7 +2997,7 @@ void parser___lexer___TKwisset___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos49]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 661;
+  fra.me.line = 657;
   fra.me.meth = LOCATE_parser___lexer___TKwisset___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3058,7 +3007,7 @@ void parser___lexer___TKwisset___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:663 */
+  /* parser/lexer.nit:659 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("isset");
@@ -3073,7 +3022,7 @@ void parser___lexer___TKwisset___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:664 */
+  /* parser/lexer.nit:660 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos49] = 1;
@@ -3085,14 +3034,14 @@ val_t parser___lexer___TKwlabel___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 669;
+  fra.me.line = 665;
   fra.me.meth = LOCATE_parser___lexer___TKwlabel___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:671 */
+  /* parser/lexer.nit:667 */
   REGB0 = TAG_Int(50);
   goto label1;
   label1: while(0);
@@ -3109,7 +3058,7 @@ void parser___lexer___TKwlabel___init_tk(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos50]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 674;
+  fra.me.line = 670;
   fra.me.meth = LOCATE_parser___lexer___TKwlabel___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3119,7 +3068,7 @@ void parser___lexer___TKwlabel___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:676 */
+  /* parser/lexer.nit:672 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("label");
@@ -3134,43 +3083,104 @@ void parser___lexer___TKwlabel___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:677 */
+  /* parser/lexer.nit:673 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos50] = 1;
   return;
 }
+val_t parser___lexer___TKwdebug___parser_index(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___lexer;
+  fra.me.line = 678;
+  fra.me.meth = LOCATE_parser___lexer___TKwdebug___parser_index;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/lexer.nit:680 */
+  REGB0 = TAG_Int(51);
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return REGB0;
+}
+void parser___lexer___TKwdebug___init_tk(val_t p0, val_t p1, int* init_table){
+  int itpos51 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TKwdebug].i;
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t tmp;
+  static val_t once_value_1; /* Once value */
+    static val_t once_value_2; /* Once value */
+  if (init_table[itpos51]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___lexer;
+  fra.me.line = 683;
+  fra.me.meth = LOCATE_parser___lexer___TKwdebug___init_tk;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* parser/lexer.nit:685 */
+  if (!once_value_1) {
+    if (!once_value_2) {
+      fra.me.REG[2] = BOX_NativeString("__debug__");
+      REGB0 = TAG_Int(9);
+      fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+      once_value_2 = fra.me.REG[2];
+      register_static_object(&once_value_2);
+    } else fra.me.REG[2] = once_value_2;
+    fra.me.REG[2] = fra.me.REG[2];
+    once_value_1 = fra.me.REG[2];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[2] = once_value_1;
+  fra.me.REG[2] = fra.me.REG[2];
+  ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
+  /* parser/lexer.nit:686 */
+  ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+  init_table[itpos51] = 1;
+  return;
+}
 val_t parser___lexer___TOpar___parser_index(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 682;
+  fra.me.line = 691;
   fra.me.meth = LOCATE_parser___lexer___TOpar___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:684 */
-  REGB0 = TAG_Int(51);
+  /* parser/lexer.nit:693 */
+  REGB0 = TAG_Int(52);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TOpar___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos51 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TOpar].i;
+  int itpos52 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TOpar].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos51]) return;
+  if (init_table[itpos52]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 687;
+  fra.me.line = 696;
   fra.me.meth = LOCATE_parser___lexer___TOpar___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3180,7 +3190,7 @@ void parser___lexer___TOpar___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:689 */
+  /* parser/lexer.nit:698 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("(");
@@ -3195,10 +3205,10 @@ void parser___lexer___TOpar___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:690 */
+  /* parser/lexer.nit:699 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos51] = 1;
+  init_table[itpos52] = 1;
   return;
 }
 val_t parser___lexer___TCpar___parser_index(val_t p0){
@@ -3207,31 +3217,31 @@ val_t parser___lexer___TCpar___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 695;
+  fra.me.line = 704;
   fra.me.meth = LOCATE_parser___lexer___TCpar___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:697 */
-  REGB0 = TAG_Int(52);
+  /* parser/lexer.nit:706 */
+  REGB0 = TAG_Int(53);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TCpar___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos52 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TCpar].i;
+  int itpos53 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TCpar].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos52]) return;
+  if (init_table[itpos53]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 700;
+  fra.me.line = 709;
   fra.me.meth = LOCATE_parser___lexer___TCpar___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3241,7 +3251,7 @@ void parser___lexer___TCpar___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:702 */
+  /* parser/lexer.nit:711 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString(")");
@@ -3256,10 +3266,10 @@ void parser___lexer___TCpar___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:703 */
+  /* parser/lexer.nit:712 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos52] = 1;
+  init_table[itpos53] = 1;
   return;
 }
 val_t parser___lexer___TObra___parser_index(val_t p0){
@@ -3268,31 +3278,31 @@ val_t parser___lexer___TObra___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 708;
+  fra.me.line = 717;
   fra.me.meth = LOCATE_parser___lexer___TObra___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:710 */
-  REGB0 = TAG_Int(53);
+  /* parser/lexer.nit:719 */
+  REGB0 = TAG_Int(54);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TObra___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos53 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TObra].i;
+  int itpos54 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TObra].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos53]) return;
+  if (init_table[itpos54]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 713;
+  fra.me.line = 722;
   fra.me.meth = LOCATE_parser___lexer___TObra___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3302,7 +3312,7 @@ void parser___lexer___TObra___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:715 */
+  /* parser/lexer.nit:724 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("[");
@@ -3317,10 +3327,10 @@ void parser___lexer___TObra___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:716 */
+  /* parser/lexer.nit:725 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos53] = 1;
+  init_table[itpos54] = 1;
   return;
 }
 val_t parser___lexer___TCbra___parser_index(val_t p0){
@@ -3329,31 +3339,31 @@ val_t parser___lexer___TCbra___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 721;
+  fra.me.line = 730;
   fra.me.meth = LOCATE_parser___lexer___TCbra___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:723 */
-  REGB0 = TAG_Int(54);
+  /* parser/lexer.nit:732 */
+  REGB0 = TAG_Int(55);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TCbra___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos54 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TCbra].i;
+  int itpos55 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TCbra].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos54]) return;
+  if (init_table[itpos55]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 726;
+  fra.me.line = 735;
   fra.me.meth = LOCATE_parser___lexer___TCbra___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3363,7 +3373,7 @@ void parser___lexer___TCbra___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:728 */
+  /* parser/lexer.nit:737 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("]");
@@ -3378,10 +3388,10 @@ void parser___lexer___TCbra___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:729 */
+  /* parser/lexer.nit:738 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos54] = 1;
+  init_table[itpos55] = 1;
   return;
 }
 val_t parser___lexer___TComma___parser_index(val_t p0){
@@ -3390,31 +3400,31 @@ val_t parser___lexer___TComma___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 734;
+  fra.me.line = 743;
   fra.me.meth = LOCATE_parser___lexer___TComma___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:736 */
-  REGB0 = TAG_Int(55);
+  /* parser/lexer.nit:745 */
+  REGB0 = TAG_Int(56);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TComma___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos55 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TComma].i;
+  int itpos56 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TComma].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos55]) return;
+  if (init_table[itpos56]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 739;
+  fra.me.line = 748;
   fra.me.meth = LOCATE_parser___lexer___TComma___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3424,7 +3434,7 @@ void parser___lexer___TComma___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:741 */
+  /* parser/lexer.nit:750 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString(",");
@@ -3439,10 +3449,10 @@ void parser___lexer___TComma___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:742 */
+  /* parser/lexer.nit:751 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos55] = 1;
+  init_table[itpos56] = 1;
   return;
 }
 val_t parser___lexer___TColumn___parser_index(val_t p0){
@@ -3451,31 +3461,31 @@ val_t parser___lexer___TColumn___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 747;
+  fra.me.line = 756;
   fra.me.meth = LOCATE_parser___lexer___TColumn___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:749 */
-  REGB0 = TAG_Int(56);
+  /* parser/lexer.nit:758 */
+  REGB0 = TAG_Int(57);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TColumn___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos56 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TColumn].i;
+  int itpos57 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TColumn].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos56]) return;
+  if (init_table[itpos57]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 752;
+  fra.me.line = 761;
   fra.me.meth = LOCATE_parser___lexer___TColumn___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3485,7 +3495,7 @@ void parser___lexer___TColumn___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:754 */
+  /* parser/lexer.nit:763 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString(":");
@@ -3500,10 +3510,10 @@ void parser___lexer___TColumn___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:755 */
+  /* parser/lexer.nit:764 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos56] = 1;
+  init_table[itpos57] = 1;
   return;
 }
 val_t parser___lexer___TQuad___parser_index(val_t p0){
@@ -3512,31 +3522,31 @@ val_t parser___lexer___TQuad___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 760;
+  fra.me.line = 769;
   fra.me.meth = LOCATE_parser___lexer___TQuad___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:762 */
-  REGB0 = TAG_Int(57);
+  /* parser/lexer.nit:771 */
+  REGB0 = TAG_Int(58);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TQuad___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos57 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TQuad].i;
+  int itpos58 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TQuad].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos57]) return;
+  if (init_table[itpos58]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 765;
+  fra.me.line = 774;
   fra.me.meth = LOCATE_parser___lexer___TQuad___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3546,7 +3556,7 @@ void parser___lexer___TQuad___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:767 */
+  /* parser/lexer.nit:776 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("::");
@@ -3561,10 +3571,10 @@ void parser___lexer___TQuad___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:768 */
+  /* parser/lexer.nit:777 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos57] = 1;
+  init_table[itpos58] = 1;
   return;
 }
 val_t parser___lexer___TAssign___parser_index(val_t p0){
@@ -3573,31 +3583,31 @@ val_t parser___lexer___TAssign___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 773;
+  fra.me.line = 782;
   fra.me.meth = LOCATE_parser___lexer___TAssign___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:775 */
-  REGB0 = TAG_Int(58);
+  /* parser/lexer.nit:784 */
+  REGB0 = TAG_Int(59);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TAssign___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos58 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TAssign].i;
+  int itpos59 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TAssign].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos58]) return;
+  if (init_table[itpos59]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 778;
+  fra.me.line = 787;
   fra.me.meth = LOCATE_parser___lexer___TAssign___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3607,7 +3617,7 @@ void parser___lexer___TAssign___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:780 */
+  /* parser/lexer.nit:789 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("=");
@@ -3622,10 +3632,10 @@ void parser___lexer___TAssign___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:781 */
+  /* parser/lexer.nit:790 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos58] = 1;
+  init_table[itpos59] = 1;
   return;
 }
 val_t parser___lexer___TPluseq___parser_index(val_t p0){
@@ -3634,31 +3644,31 @@ val_t parser___lexer___TPluseq___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 786;
+  fra.me.line = 795;
   fra.me.meth = LOCATE_parser___lexer___TPluseq___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:788 */
-  REGB0 = TAG_Int(59);
+  /* parser/lexer.nit:797 */
+  REGB0 = TAG_Int(60);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TPluseq___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos59 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TPluseq].i;
+  int itpos60 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TPluseq].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos59]) return;
+  if (init_table[itpos60]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 791;
+  fra.me.line = 800;
   fra.me.meth = LOCATE_parser___lexer___TPluseq___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3668,7 +3678,7 @@ void parser___lexer___TPluseq___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:793 */
+  /* parser/lexer.nit:802 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("+=");
@@ -3683,10 +3693,10 @@ void parser___lexer___TPluseq___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:794 */
+  /* parser/lexer.nit:803 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos59] = 1;
+  init_table[itpos60] = 1;
   return;
 }
 val_t parser___lexer___TMinuseq___parser_index(val_t p0){
@@ -3695,31 +3705,31 @@ val_t parser___lexer___TMinuseq___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 799;
+  fra.me.line = 808;
   fra.me.meth = LOCATE_parser___lexer___TMinuseq___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:801 */
-  REGB0 = TAG_Int(60);
+  /* parser/lexer.nit:810 */
+  REGB0 = TAG_Int(61);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TMinuseq___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos60 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TMinuseq].i;
+  int itpos61 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TMinuseq].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos60]) return;
+  if (init_table[itpos61]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 804;
+  fra.me.line = 813;
   fra.me.meth = LOCATE_parser___lexer___TMinuseq___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3729,7 +3739,7 @@ void parser___lexer___TMinuseq___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:806 */
+  /* parser/lexer.nit:815 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("-=");
@@ -3744,10 +3754,10 @@ void parser___lexer___TMinuseq___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:807 */
+  /* parser/lexer.nit:816 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos60] = 1;
+  init_table[itpos61] = 1;
   return;
 }
 val_t parser___lexer___TDotdotdot___parser_index(val_t p0){
@@ -3756,31 +3766,31 @@ val_t parser___lexer___TDotdotdot___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 812;
+  fra.me.line = 821;
   fra.me.meth = LOCATE_parser___lexer___TDotdotdot___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:814 */
-  REGB0 = TAG_Int(61);
+  /* parser/lexer.nit:823 */
+  REGB0 = TAG_Int(62);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TDotdotdot___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos61 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TDotdotdot].i;
+  int itpos62 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TDotdotdot].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos61]) return;
+  if (init_table[itpos62]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 817;
+  fra.me.line = 826;
   fra.me.meth = LOCATE_parser___lexer___TDotdotdot___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3790,7 +3800,7 @@ void parser___lexer___TDotdotdot___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:819 */
+  /* parser/lexer.nit:828 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("...");
@@ -3805,10 +3815,10 @@ void parser___lexer___TDotdotdot___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:820 */
+  /* parser/lexer.nit:829 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos61] = 1;
+  init_table[itpos62] = 1;
   return;
 }
 val_t parser___lexer___TDotdot___parser_index(val_t p0){
@@ -3817,31 +3827,31 @@ val_t parser___lexer___TDotdot___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 825;
+  fra.me.line = 834;
   fra.me.meth = LOCATE_parser___lexer___TDotdot___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:827 */
-  REGB0 = TAG_Int(62);
+  /* parser/lexer.nit:836 */
+  REGB0 = TAG_Int(63);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TDotdot___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos62 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TDotdot].i;
+  int itpos63 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TDotdot].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos62]) return;
+  if (init_table[itpos63]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 830;
+  fra.me.line = 839;
   fra.me.meth = LOCATE_parser___lexer___TDotdot___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3851,7 +3861,7 @@ void parser___lexer___TDotdot___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:832 */
+  /* parser/lexer.nit:841 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("..");
@@ -3866,10 +3876,10 @@ void parser___lexer___TDotdot___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:833 */
+  /* parser/lexer.nit:842 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos62] = 1;
+  init_table[itpos63] = 1;
   return;
 }
 val_t parser___lexer___TDot___parser_index(val_t p0){
@@ -3878,31 +3888,31 @@ val_t parser___lexer___TDot___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 838;
+  fra.me.line = 847;
   fra.me.meth = LOCATE_parser___lexer___TDot___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:840 */
-  REGB0 = TAG_Int(63);
+  /* parser/lexer.nit:849 */
+  REGB0 = TAG_Int(64);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TDot___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos63 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TDot].i;
+  int itpos64 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TDot].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos63]) return;
+  if (init_table[itpos64]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 843;
+  fra.me.line = 852;
   fra.me.meth = LOCATE_parser___lexer___TDot___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3912,7 +3922,7 @@ void parser___lexer___TDot___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:845 */
+  /* parser/lexer.nit:854 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString(".");
@@ -3927,10 +3937,10 @@ void parser___lexer___TDot___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:846 */
+  /* parser/lexer.nit:855 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos63] = 1;
+  init_table[itpos64] = 1;
   return;
 }
 val_t parser___lexer___TPlus___parser_index(val_t p0){
@@ -3939,31 +3949,31 @@ val_t parser___lexer___TPlus___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 851;
+  fra.me.line = 860;
   fra.me.meth = LOCATE_parser___lexer___TPlus___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:853 */
-  REGB0 = TAG_Int(64);
+  /* parser/lexer.nit:862 */
+  REGB0 = TAG_Int(65);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TPlus___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos64 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TPlus].i;
+  int itpos65 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TPlus].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos64]) return;
+  if (init_table[itpos65]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 856;
+  fra.me.line = 865;
   fra.me.meth = LOCATE_parser___lexer___TPlus___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3973,7 +3983,7 @@ void parser___lexer___TPlus___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:858 */
+  /* parser/lexer.nit:867 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("+");
@@ -3988,10 +3998,10 @@ void parser___lexer___TPlus___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:859 */
+  /* parser/lexer.nit:868 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos64] = 1;
+  init_table[itpos65] = 1;
   return;
 }
 val_t parser___lexer___TMinus___parser_index(val_t p0){
@@ -4000,31 +4010,31 @@ val_t parser___lexer___TMinus___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 864;
+  fra.me.line = 873;
   fra.me.meth = LOCATE_parser___lexer___TMinus___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:866 */
-  REGB0 = TAG_Int(65);
+  /* parser/lexer.nit:875 */
+  REGB0 = TAG_Int(66);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TMinus___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos65 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TMinus].i;
+  int itpos66 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TMinus].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos65]) return;
+  if (init_table[itpos66]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 869;
+  fra.me.line = 878;
   fra.me.meth = LOCATE_parser___lexer___TMinus___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4034,7 +4044,7 @@ void parser___lexer___TMinus___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:871 */
+  /* parser/lexer.nit:880 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("-");
@@ -4049,10 +4059,10 @@ void parser___lexer___TMinus___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:872 */
+  /* parser/lexer.nit:881 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos65] = 1;
+  init_table[itpos66] = 1;
   return;
 }
 val_t parser___lexer___TStar___parser_index(val_t p0){
@@ -4061,31 +4071,31 @@ val_t parser___lexer___TStar___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 877;
+  fra.me.line = 886;
   fra.me.meth = LOCATE_parser___lexer___TStar___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:879 */
-  REGB0 = TAG_Int(66);
+  /* parser/lexer.nit:888 */
+  REGB0 = TAG_Int(67);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TStar___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos66 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TStar].i;
+  int itpos67 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TStar].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos66]) return;
+  if (init_table[itpos67]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 882;
+  fra.me.line = 891;
   fra.me.meth = LOCATE_parser___lexer___TStar___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4095,7 +4105,7 @@ void parser___lexer___TStar___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:884 */
+  /* parser/lexer.nit:893 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("*");
@@ -4110,10 +4120,10 @@ void parser___lexer___TStar___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:885 */
+  /* parser/lexer.nit:894 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos66] = 1;
+  init_table[itpos67] = 1;
   return;
 }
 val_t parser___lexer___TSlash___parser_index(val_t p0){
@@ -4122,31 +4132,31 @@ val_t parser___lexer___TSlash___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 890;
+  fra.me.line = 899;
   fra.me.meth = LOCATE_parser___lexer___TSlash___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:892 */
-  REGB0 = TAG_Int(67);
+  /* parser/lexer.nit:901 */
+  REGB0 = TAG_Int(68);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TSlash___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos67 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TSlash].i;
+  int itpos68 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TSlash].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos67]) return;
+  if (init_table[itpos68]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 895;
+  fra.me.line = 904;
   fra.me.meth = LOCATE_parser___lexer___TSlash___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4156,7 +4166,7 @@ void parser___lexer___TSlash___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:897 */
+  /* parser/lexer.nit:906 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("/");
@@ -4171,10 +4181,10 @@ void parser___lexer___TSlash___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:898 */
+  /* parser/lexer.nit:907 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos67] = 1;
+  init_table[itpos68] = 1;
   return;
 }
 val_t parser___lexer___TPercent___parser_index(val_t p0){
@@ -4183,31 +4193,31 @@ val_t parser___lexer___TPercent___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 903;
+  fra.me.line = 912;
   fra.me.meth = LOCATE_parser___lexer___TPercent___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:905 */
-  REGB0 = TAG_Int(68);
+  /* parser/lexer.nit:914 */
+  REGB0 = TAG_Int(69);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TPercent___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos68 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TPercent].i;
+  int itpos69 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TPercent].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos68]) return;
+  if (init_table[itpos69]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 908;
+  fra.me.line = 917;
   fra.me.meth = LOCATE_parser___lexer___TPercent___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4217,7 +4227,7 @@ void parser___lexer___TPercent___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:910 */
+  /* parser/lexer.nit:919 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("%");
@@ -4232,10 +4242,10 @@ void parser___lexer___TPercent___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:911 */
+  /* parser/lexer.nit:920 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos68] = 1;
+  init_table[itpos69] = 1;
   return;
 }
 val_t parser___lexer___TEq___parser_index(val_t p0){
@@ -4244,31 +4254,31 @@ val_t parser___lexer___TEq___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 916;
+  fra.me.line = 925;
   fra.me.meth = LOCATE_parser___lexer___TEq___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:918 */
-  REGB0 = TAG_Int(69);
+  /* parser/lexer.nit:927 */
+  REGB0 = TAG_Int(70);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TEq___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos69 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TEq].i;
+  int itpos70 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TEq].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos69]) return;
+  if (init_table[itpos70]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 921;
+  fra.me.line = 930;
   fra.me.meth = LOCATE_parser___lexer___TEq___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4278,7 +4288,7 @@ void parser___lexer___TEq___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:923 */
+  /* parser/lexer.nit:932 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("==");
@@ -4293,10 +4303,10 @@ void parser___lexer___TEq___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:924 */
+  /* parser/lexer.nit:933 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos69] = 1;
+  init_table[itpos70] = 1;
   return;
 }
 val_t parser___lexer___TNe___parser_index(val_t p0){
@@ -4305,31 +4315,31 @@ val_t parser___lexer___TNe___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 929;
+  fra.me.line = 938;
   fra.me.meth = LOCATE_parser___lexer___TNe___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:931 */
-  REGB0 = TAG_Int(70);
+  /* parser/lexer.nit:940 */
+  REGB0 = TAG_Int(71);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TNe___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos70 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TNe].i;
+  int itpos71 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TNe].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos70]) return;
+  if (init_table[itpos71]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 934;
+  fra.me.line = 943;
   fra.me.meth = LOCATE_parser___lexer___TNe___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4339,7 +4349,7 @@ void parser___lexer___TNe___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:936 */
+  /* parser/lexer.nit:945 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("!=");
@@ -4354,10 +4364,10 @@ void parser___lexer___TNe___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:937 */
+  /* parser/lexer.nit:946 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos70] = 1;
+  init_table[itpos71] = 1;
   return;
 }
 val_t parser___lexer___TLt___parser_index(val_t p0){
@@ -4366,31 +4376,31 @@ val_t parser___lexer___TLt___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 942;
+  fra.me.line = 951;
   fra.me.meth = LOCATE_parser___lexer___TLt___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:944 */
-  REGB0 = TAG_Int(71);
+  /* parser/lexer.nit:953 */
+  REGB0 = TAG_Int(72);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TLt___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos71 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TLt].i;
+  int itpos72 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TLt].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos71]) return;
+  if (init_table[itpos72]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 947;
+  fra.me.line = 956;
   fra.me.meth = LOCATE_parser___lexer___TLt___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4400,7 +4410,7 @@ void parser___lexer___TLt___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:949 */
+  /* parser/lexer.nit:958 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("<");
@@ -4415,10 +4425,10 @@ void parser___lexer___TLt___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:950 */
+  /* parser/lexer.nit:959 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos71] = 1;
+  init_table[itpos72] = 1;
   return;
 }
 val_t parser___lexer___TLe___parser_index(val_t p0){
@@ -4427,31 +4437,31 @@ val_t parser___lexer___TLe___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 955;
+  fra.me.line = 964;
   fra.me.meth = LOCATE_parser___lexer___TLe___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:957 */
-  REGB0 = TAG_Int(72);
+  /* parser/lexer.nit:966 */
+  REGB0 = TAG_Int(73);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TLe___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos72 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TLe].i;
+  int itpos73 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TLe].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos72]) return;
+  if (init_table[itpos73]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 960;
+  fra.me.line = 969;
   fra.me.meth = LOCATE_parser___lexer___TLe___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4461,7 +4471,7 @@ void parser___lexer___TLe___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:962 */
+  /* parser/lexer.nit:971 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("<=");
@@ -4476,10 +4486,10 @@ void parser___lexer___TLe___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:963 */
+  /* parser/lexer.nit:972 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos72] = 1;
+  init_table[itpos73] = 1;
   return;
 }
 val_t parser___lexer___TLl___parser_index(val_t p0){
@@ -4488,31 +4498,31 @@ val_t parser___lexer___TLl___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 968;
+  fra.me.line = 977;
   fra.me.meth = LOCATE_parser___lexer___TLl___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:970 */
-  REGB0 = TAG_Int(73);
+  /* parser/lexer.nit:979 */
+  REGB0 = TAG_Int(74);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TLl___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos73 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TLl].i;
+  int itpos74 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TLl].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos73]) return;
+  if (init_table[itpos74]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 973;
+  fra.me.line = 982;
   fra.me.meth = LOCATE_parser___lexer___TLl___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4522,7 +4532,7 @@ void parser___lexer___TLl___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:975 */
+  /* parser/lexer.nit:984 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("<<");
@@ -4537,10 +4547,10 @@ void parser___lexer___TLl___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:976 */
+  /* parser/lexer.nit:985 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos73] = 1;
+  init_table[itpos74] = 1;
   return;
 }
 val_t parser___lexer___TGt___parser_index(val_t p0){
@@ -4549,31 +4559,31 @@ val_t parser___lexer___TGt___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 981;
+  fra.me.line = 990;
   fra.me.meth = LOCATE_parser___lexer___TGt___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:983 */
-  REGB0 = TAG_Int(74);
+  /* parser/lexer.nit:992 */
+  REGB0 = TAG_Int(75);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TGt___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos74 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TGt].i;
+  int itpos75 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TGt].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos74]) return;
+  if (init_table[itpos75]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 986;
+  fra.me.line = 995;
   fra.me.meth = LOCATE_parser___lexer___TGt___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4583,7 +4593,7 @@ void parser___lexer___TGt___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:988 */
+  /* parser/lexer.nit:997 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString(">");
@@ -4598,10 +4608,10 @@ void parser___lexer___TGt___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:989 */
+  /* parser/lexer.nit:998 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos74] = 1;
+  init_table[itpos75] = 1;
   return;
 }
 val_t parser___lexer___TGe___parser_index(val_t p0){
@@ -4610,31 +4620,31 @@ val_t parser___lexer___TGe___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 994;
+  fra.me.line = 1003;
   fra.me.meth = LOCATE_parser___lexer___TGe___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:996 */
-  REGB0 = TAG_Int(75);
+  /* parser/lexer.nit:1005 */
+  REGB0 = TAG_Int(76);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TGe___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos75 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TGe].i;
+  int itpos76 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TGe].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos75]) return;
+  if (init_table[itpos76]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 999;
+  fra.me.line = 1008;
   fra.me.meth = LOCATE_parser___lexer___TGe___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4644,7 +4654,7 @@ void parser___lexer___TGe___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:1001 */
+  /* parser/lexer.nit:1010 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString(">=");
@@ -4659,10 +4669,10 @@ void parser___lexer___TGe___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:1002 */
+  /* parser/lexer.nit:1011 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos75] = 1;
+  init_table[itpos76] = 1;
   return;
 }
 val_t parser___lexer___TGg___parser_index(val_t p0){
@@ -4671,31 +4681,31 @@ val_t parser___lexer___TGg___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1007;
+  fra.me.line = 1016;
   fra.me.meth = LOCATE_parser___lexer___TGg___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1009 */
-  REGB0 = TAG_Int(76);
+  /* parser/lexer.nit:1018 */
+  REGB0 = TAG_Int(77);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TGg___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos76 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TGg].i;
+  int itpos77 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TGg].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos76]) return;
+  if (init_table[itpos77]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1012;
+  fra.me.line = 1021;
   fra.me.meth = LOCATE_parser___lexer___TGg___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4705,7 +4715,7 @@ void parser___lexer___TGg___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:1014 */
+  /* parser/lexer.nit:1023 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString(">>");
@@ -4720,10 +4730,10 @@ void parser___lexer___TGg___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:1015 */
+  /* parser/lexer.nit:1024 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos76] = 1;
+  init_table[itpos77] = 1;
   return;
 }
 val_t parser___lexer___TStarship___parser_index(val_t p0){
@@ -4732,31 +4742,31 @@ val_t parser___lexer___TStarship___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1020;
+  fra.me.line = 1029;
   fra.me.meth = LOCATE_parser___lexer___TStarship___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1022 */
-  REGB0 = TAG_Int(77);
+  /* parser/lexer.nit:1031 */
+  REGB0 = TAG_Int(78);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TStarship___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos77 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TStarship].i;
+  int itpos78 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TStarship].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos77]) return;
+  if (init_table[itpos78]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1025;
+  fra.me.line = 1034;
   fra.me.meth = LOCATE_parser___lexer___TStarship___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4766,7 +4776,7 @@ void parser___lexer___TStarship___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:1027 */
+  /* parser/lexer.nit:1036 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("<=>");
@@ -4781,10 +4791,10 @@ void parser___lexer___TStarship___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:1028 */
+  /* parser/lexer.nit:1037 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos77] = 1;
+  init_table[itpos78] = 1;
   return;
 }
 val_t parser___lexer___TBang___parser_index(val_t p0){
@@ -4793,31 +4803,31 @@ val_t parser___lexer___TBang___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1033;
+  fra.me.line = 1042;
   fra.me.meth = LOCATE_parser___lexer___TBang___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1035 */
-  REGB0 = TAG_Int(78);
+  /* parser/lexer.nit:1044 */
+  REGB0 = TAG_Int(79);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TBang___init_tk(val_t p0, val_t p1, int* init_table){
-  int itpos78 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TBang].i;
+  int itpos79 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TBang].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
     static val_t once_value_2; /* Once value */
-  if (init_table[itpos78]) return;
+  if (init_table[itpos79]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1038;
+  fra.me.line = 1047;
   fra.me.meth = LOCATE_parser___lexer___TBang___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4827,7 +4837,7 @@ void parser___lexer___TBang___init_tk(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:1040 */
+  /* parser/lexer.nit:1049 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("!");
@@ -4842,10 +4852,10 @@ void parser___lexer___TBang___init_tk(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:1041 */
+  /* parser/lexer.nit:1050 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos78] = 1;
+  init_table[itpos79] = 1;
   return;
 }
 val_t parser___lexer___TClassid___parser_index(val_t p0){
@@ -4854,28 +4864,28 @@ val_t parser___lexer___TClassid___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1046;
+  fra.me.line = 1055;
   fra.me.meth = LOCATE_parser___lexer___TClassid___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1048 */
-  REGB0 = TAG_Int(79);
+  /* parser/lexer.nit:1057 */
+  REGB0 = TAG_Int(80);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TClassid___init_tk(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos79 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TClassid].i;
+  int itpos80 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TClassid].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  if (init_table[itpos79]) return;
+  if (init_table[itpos80]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1051;
+  fra.me.line = 1060;
   fra.me.meth = LOCATE_parser___lexer___TClassid___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4886,12 +4896,12 @@ void parser___lexer___TClassid___init_tk(val_t p0, val_t p1, val_t p2, int* init
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//lexer.nit:1053 */
+  /* parser/lexer.nit:1062 */
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//lexer.nit:1054 */
+  /* parser/lexer.nit:1063 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
-  init_table[itpos79] = 1;
+  init_table[itpos80] = 1;
   return;
 }
 val_t parser___lexer___TId___parser_index(val_t p0){
@@ -4900,28 +4910,28 @@ val_t parser___lexer___TId___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1059;
+  fra.me.line = 1068;
   fra.me.meth = LOCATE_parser___lexer___TId___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1061 */
-  REGB0 = TAG_Int(80);
+  /* parser/lexer.nit:1070 */
+  REGB0 = TAG_Int(81);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TId___init_tk(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos80 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TId].i;
+  int itpos81 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TId].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  if (init_table[itpos80]) return;
+  if (init_table[itpos81]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1064;
+  fra.me.line = 1073;
   fra.me.meth = LOCATE_parser___lexer___TId___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4932,12 +4942,12 @@ void parser___lexer___TId___init_tk(val_t p0, val_t p1, val_t p2, int* init_tabl
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//lexer.nit:1066 */
+  /* parser/lexer.nit:1075 */
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//lexer.nit:1067 */
+  /* parser/lexer.nit:1076 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
-  init_table[itpos80] = 1;
+  init_table[itpos81] = 1;
   return;
 }
 val_t parser___lexer___TAttrid___parser_index(val_t p0){
@@ -4946,28 +4956,28 @@ val_t parser___lexer___TAttrid___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1072;
+  fra.me.line = 1081;
   fra.me.meth = LOCATE_parser___lexer___TAttrid___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1074 */
-  REGB0 = TAG_Int(81);
+  /* parser/lexer.nit:1083 */
+  REGB0 = TAG_Int(82);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TAttrid___init_tk(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos81 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TAttrid].i;
+  int itpos82 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TAttrid].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  if (init_table[itpos81]) return;
+  if (init_table[itpos82]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1077;
+  fra.me.line = 1086;
   fra.me.meth = LOCATE_parser___lexer___TAttrid___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4978,12 +4988,12 @@ void parser___lexer___TAttrid___init_tk(val_t p0, val_t p1, val_t p2, int* init_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//lexer.nit:1079 */
+  /* parser/lexer.nit:1088 */
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//lexer.nit:1080 */
+  /* parser/lexer.nit:1089 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
-  init_table[itpos81] = 1;
+  init_table[itpos82] = 1;
   return;
 }
 val_t parser___lexer___TNumber___parser_index(val_t p0){
@@ -4992,28 +5002,28 @@ val_t parser___lexer___TNumber___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1085;
+  fra.me.line = 1094;
   fra.me.meth = LOCATE_parser___lexer___TNumber___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1087 */
-  REGB0 = TAG_Int(82);
+  /* parser/lexer.nit:1096 */
+  REGB0 = TAG_Int(83);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TNumber___init_tk(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos82 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TNumber].i;
+  int itpos83 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TNumber].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  if (init_table[itpos82]) return;
+  if (init_table[itpos83]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1090;
+  fra.me.line = 1099;
   fra.me.meth = LOCATE_parser___lexer___TNumber___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -5024,12 +5034,12 @@ void parser___lexer___TNumber___init_tk(val_t p0, val_t p1, val_t p2, int* init_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//lexer.nit:1092 */
+  /* parser/lexer.nit:1101 */
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//lexer.nit:1093 */
+  /* parser/lexer.nit:1102 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
-  init_table[itpos82] = 1;
+  init_table[itpos83] = 1;
   return;
 }
 val_t parser___lexer___TFloat___parser_index(val_t p0){
@@ -5038,28 +5048,28 @@ val_t parser___lexer___TFloat___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1098;
+  fra.me.line = 1107;
   fra.me.meth = LOCATE_parser___lexer___TFloat___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1100 */
-  REGB0 = TAG_Int(83);
+  /* parser/lexer.nit:1109 */
+  REGB0 = TAG_Int(84);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TFloat___init_tk(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos83 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TFloat].i;
+  int itpos84 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TFloat].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  if (init_table[itpos83]) return;
+  if (init_table[itpos84]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1103;
+  fra.me.line = 1112;
   fra.me.meth = LOCATE_parser___lexer___TFloat___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -5070,12 +5080,12 @@ void parser___lexer___TFloat___init_tk(val_t p0, val_t p1, val_t p2, int* init_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//lexer.nit:1105 */
+  /* parser/lexer.nit:1114 */
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//lexer.nit:1106 */
+  /* parser/lexer.nit:1115 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
-  init_table[itpos83] = 1;
+  init_table[itpos84] = 1;
   return;
 }
 val_t parser___lexer___TChar___parser_index(val_t p0){
@@ -5084,28 +5094,28 @@ val_t parser___lexer___TChar___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1111;
+  fra.me.line = 1120;
   fra.me.meth = LOCATE_parser___lexer___TChar___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1113 */
-  REGB0 = TAG_Int(84);
+  /* parser/lexer.nit:1122 */
+  REGB0 = TAG_Int(85);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TChar___init_tk(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos84 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TChar].i;
+  int itpos85 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TChar].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  if (init_table[itpos84]) return;
+  if (init_table[itpos85]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1116;
+  fra.me.line = 1125;
   fra.me.meth = LOCATE_parser___lexer___TChar___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -5116,12 +5126,12 @@ void parser___lexer___TChar___init_tk(val_t p0, val_t p1, val_t p2, int* init_ta
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//lexer.nit:1118 */
+  /* parser/lexer.nit:1127 */
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//lexer.nit:1119 */
+  /* parser/lexer.nit:1128 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
-  init_table[itpos84] = 1;
+  init_table[itpos85] = 1;
   return;
 }
 val_t parser___lexer___TString___parser_index(val_t p0){
@@ -5130,28 +5140,28 @@ val_t parser___lexer___TString___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1124;
+  fra.me.line = 1133;
   fra.me.meth = LOCATE_parser___lexer___TString___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1126 */
-  REGB0 = TAG_Int(85);
+  /* parser/lexer.nit:1135 */
+  REGB0 = TAG_Int(86);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TString___init_tk(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos85 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TString].i;
+  int itpos86 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TString].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  if (init_table[itpos85]) return;
+  if (init_table[itpos86]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1129;
+  fra.me.line = 1138;
   fra.me.meth = LOCATE_parser___lexer___TString___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -5162,12 +5172,12 @@ void parser___lexer___TString___init_tk(val_t p0, val_t p1, val_t p2, int* init_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//lexer.nit:1131 */
+  /* parser/lexer.nit:1140 */
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//lexer.nit:1132 */
+  /* parser/lexer.nit:1141 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
-  init_table[itpos85] = 1;
+  init_table[itpos86] = 1;
   return;
 }
 val_t parser___lexer___TStartString___parser_index(val_t p0){
@@ -5176,28 +5186,28 @@ val_t parser___lexer___TStartString___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1137;
+  fra.me.line = 1146;
   fra.me.meth = LOCATE_parser___lexer___TStartString___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1139 */
-  REGB0 = TAG_Int(86);
+  /* parser/lexer.nit:1148 */
+  REGB0 = TAG_Int(87);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TStartString___init_tk(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos86 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TStartString].i;
+  int itpos87 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TStartString].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  if (init_table[itpos86]) return;
+  if (init_table[itpos87]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1142;
+  fra.me.line = 1151;
   fra.me.meth = LOCATE_parser___lexer___TStartString___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -5208,12 +5218,12 @@ void parser___lexer___TStartString___init_tk(val_t p0, val_t p1, val_t p2, int*
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//lexer.nit:1144 */
+  /* parser/lexer.nit:1153 */
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//lexer.nit:1145 */
+  /* parser/lexer.nit:1154 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
-  init_table[itpos86] = 1;
+  init_table[itpos87] = 1;
   return;
 }
 val_t parser___lexer___TMidString___parser_index(val_t p0){
@@ -5222,28 +5232,28 @@ val_t parser___lexer___TMidString___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1150;
+  fra.me.line = 1159;
   fra.me.meth = LOCATE_parser___lexer___TMidString___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1152 */
-  REGB0 = TAG_Int(87);
+  /* parser/lexer.nit:1161 */
+  REGB0 = TAG_Int(88);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TMidString___init_tk(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos87 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TMidString].i;
+  int itpos88 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TMidString].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  if (init_table[itpos87]) return;
+  if (init_table[itpos88]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1155;
+  fra.me.line = 1164;
   fra.me.meth = LOCATE_parser___lexer___TMidString___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -5254,12 +5264,12 @@ void parser___lexer___TMidString___init_tk(val_t p0, val_t p1, val_t p2, int* in
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//lexer.nit:1157 */
+  /* parser/lexer.nit:1166 */
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//lexer.nit:1158 */
+  /* parser/lexer.nit:1167 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
-  init_table[itpos87] = 1;
+  init_table[itpos88] = 1;
   return;
 }
 val_t parser___lexer___TEndString___parser_index(val_t p0){
@@ -5268,28 +5278,28 @@ val_t parser___lexer___TEndString___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1163;
+  fra.me.line = 1172;
   fra.me.meth = LOCATE_parser___lexer___TEndString___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1165 */
-  REGB0 = TAG_Int(88);
+  /* parser/lexer.nit:1174 */
+  REGB0 = TAG_Int(89);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___TEndString___init_tk(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos88 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TEndString].i;
+  int itpos89 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TEndString].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  if (init_table[itpos88]) return;
+  if (init_table[itpos89]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1168;
+  fra.me.line = 1177;
   fra.me.meth = LOCATE_parser___lexer___TEndString___init_tk;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -5300,12 +5310,104 @@ void parser___lexer___TEndString___init_tk(val_t p0, val_t p1, val_t p2, int* in
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//lexer.nit:1170 */
+  /* parser/lexer.nit:1179 */
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//lexer.nit:1171 */
+  /* parser/lexer.nit:1180 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
-  init_table[itpos88] = 1;
+  init_table[itpos89] = 1;
+  return;
+}
+val_t parser___lexer___TBadChar___parser_index(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___lexer;
+  fra.me.line = 1185;
+  fra.me.meth = LOCATE_parser___lexer___TBadChar___parser_index;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/lexer.nit:1187 */
+  REGB0 = TAG_Int(90);
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return REGB0;
+}
+void parser___lexer___TBadChar___init_tk(val_t p0, val_t p1, val_t p2, int* init_table){
+  int itpos90 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TBadChar].i;
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  if (init_table[itpos90]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___lexer;
+  fra.me.line = 1190;
+  fra.me.meth = LOCATE_parser___lexer___TBadChar___init_tk;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  /* parser/lexer.nit:1192 */
+  ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[1];
+  /* parser/lexer.nit:1193 */
+  ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[2];
+  stack_frame_head = fra.me.prev;
+  init_table[itpos90] = 1;
+  return;
+}
+val_t parser___lexer___TBadString___parser_index(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___lexer;
+  fra.me.line = 1198;
+  fra.me.meth = LOCATE_parser___lexer___TBadString___parser_index;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/lexer.nit:1200 */
+  REGB0 = TAG_Int(91);
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return REGB0;
+}
+void parser___lexer___TBadString___init_tk(val_t p0, val_t p1, val_t p2, int* init_table){
+  int itpos91 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___TBadString].i;
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  if (init_table[itpos91]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___lexer;
+  fra.me.line = 1203;
+  fra.me.meth = LOCATE_parser___lexer___TBadString___init_tk;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  /* parser/lexer.nit:1205 */
+  ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[1];
+  /* parser/lexer.nit:1206 */
+  ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[2];
+  stack_frame_head = fra.me.prev;
+  init_table[itpos91] = 1;
   return;
 }
 val_t parser___lexer___EOF___parser_index(val_t p0){
@@ -5314,30 +5416,30 @@ val_t parser___lexer___EOF___parser_index(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1177;
+  fra.me.line = 1212;
   fra.me.meth = LOCATE_parser___lexer___EOF___parser_index;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1179 */
-  REGB0 = TAG_Int(89);
+  /* parser/lexer.nit:1214 */
+  REGB0 = TAG_Int(92);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void parser___lexer___EOF___init(val_t p0, val_t p1, int* init_table){
-  int itpos89 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___EOF].i;
+  int itpos92 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___EOF].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
-  if (init_table[itpos89]) return;
+  if (init_table[itpos92]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1182;
+  fra.me.line = 1217;
   fra.me.meth = LOCATE_parser___lexer___EOF___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -5347,7 +5449,7 @@ void parser___lexer___EOF___init(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:1184 */
+  /* parser/lexer.nit:1219 */
   if (!once_value_1) {
     fra.me.REG[2] = BOX_NativeString("");
     REGB0 = TAG_Int(0);
@@ -5357,10 +5459,10 @@ void parser___lexer___EOF___init(val_t p0, val_t p1, int* init_table){
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   ATTR_parser___lexer___Token____text(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//lexer.nit:1185 */
+  /* parser/lexer.nit:1220 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos89] = 1;
+  init_table[itpos92] = 1;
   return;
 }
 val_t parser___lexer___AError___message(val_t p0){
@@ -5369,31 +5471,31 @@ val_t parser___lexer___AError___message(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1190;
+  fra.me.line = 1225;
   fra.me.meth = LOCATE_parser___lexer___AError___message;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1190 */
+  /* parser/lexer.nit:1225 */
   REGB0 = TAG_Bool(ATTR_parser___lexer___AError____message(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_message", LOCATE_parser___lexer, 1190);
+    nit_abort("Uninitialized attribute %s", "_message", LOCATE_parser___lexer, 1225);
   }
   fra.me.REG[0] = ATTR_parser___lexer___AError____message(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
 void parser___lexer___AError___init_error(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos90 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AError].i;
+  int itpos93 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AError].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
-  if (init_table[itpos90]) return;
+  if (init_table[itpos93]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1192;
+  fra.me.line = 1227;
   fra.me.meth = LOCATE_parser___lexer___AError___init_error;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -5404,12 +5506,12 @@ void parser___lexer___AError___init_error(val_t p0, val_t p1, val_t p2, int* ini
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//lexer.nit:1194 */
+  /* parser/lexer.nit:1229 */
   CALL_parser___lexer___EOF___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], init_table);
-  /* ./parser//lexer.nit:1195 */
+  /* parser/lexer.nit:1230 */
   ATTR_parser___lexer___AError____message(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos90] = 1;
+  init_table[itpos93] = 1;
   return;
 }
 val_t parser___lexer___Lexer___file(val_t p0){
@@ -5418,18 +5520,18 @@ val_t parser___lexer___Lexer___file(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1210;
+  fra.me.line = 1245;
   fra.me.meth = LOCATE_parser___lexer___Lexer___file;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1210 */
+  /* parser/lexer.nit:1245 */
   REGB0 = TAG_Bool(ATTR_parser___lexer___Lexer____file(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_file", LOCATE_parser___lexer, 1210);
+    nit_abort("Uninitialized attribute %s", "_file", LOCATE_parser___lexer, 1245);
   }
   fra.me.REG[0] = ATTR_parser___lexer___Lexer____file(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -5441,14 +5543,14 @@ val_t parser___lexer___Lexer___state_initial(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1225;
+  fra.me.line = 1260;
   fra.me.meth = LOCATE_parser___lexer___Lexer___state_initial;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1226 */
+  /* parser/lexer.nit:1261 */
   REGB0 = TAG_Int(0);
   goto label1;
   label1: while(0);
@@ -5456,13 +5558,13 @@ val_t parser___lexer___Lexer___state_initial(val_t p0){
   return REGB0;
 }
 void parser___lexer___Lexer___init(val_t p0, val_t p1, int* init_table){
-  int itpos91 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___lexer___Lexer].i;
+  int itpos94 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___lexer___Lexer].i;
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  if (init_table[itpos91]) return;
+  if (init_table[itpos94]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1228;
+  fra.me.line = 1263;
   fra.me.meth = LOCATE_parser___lexer___Lexer___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -5471,10 +5573,10 @@ void parser___lexer___Lexer___init(val_t p0, val_t p1, int* init_table){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//lexer.nit:1231 */
+  /* parser/lexer.nit:1266 */
   ATTR_parser___lexer___Lexer____file(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  init_table[itpos91] = 1;
+  init_table[itpos94] = 1;
   return;
 }
 val_t parser___lexer___Lexer___peek(val_t p0){
@@ -5484,7 +5586,7 @@ val_t parser___lexer___Lexer___peek(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1234;
+  fra.me.line = 1269;
   fra.me.meth = LOCATE_parser___lexer___Lexer___peek;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -5493,9 +5595,9 @@ val_t parser___lexer___Lexer___peek(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1234 */
+  /* parser/lexer.nit:1269 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./parser//lexer.nit:1237 */
+  /* parser/lexer.nit:1272 */
   while(1) {
     fra.me.REG[2] = ATTR_parser___lexer___Lexer____token(fra.me.REG[1]);
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -5511,21 +5613,21 @@ val_t parser___lexer___Lexer___peek(val_t p0){
       }
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//lexer.nit:1238 */
+      /* parser/lexer.nit:1273 */
       fra.me.REG[2] = CALL_parser___lexer___Lexer___get_token(fra.me.REG[1])(fra.me.REG[1]);
       ATTR_parser___lexer___Lexer____token(fra.me.REG[1]) = fra.me.REG[2];
     } else {
-      /* ./parser//lexer.nit:1237 */
+      /* parser/lexer.nit:1272 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./parser//lexer.nit:1240 */
+  /* parser/lexer.nit:1275 */
   fra.me.REG[1] = ATTR_parser___lexer___Lexer____token(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___lexer, 1240);
+    nit_abort("Cast failed", NULL, LOCATE_parser___lexer, 1275);
   }
   goto label2;
   label2: while(0);
@@ -5539,7 +5641,7 @@ val_t parser___lexer___Lexer___next(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1243;
+  fra.me.line = 1278;
   fra.me.meth = LOCATE_parser___lexer___Lexer___next;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -5548,9 +5650,9 @@ val_t parser___lexer___Lexer___next(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1246 */
+  /* parser/lexer.nit:1281 */
   fra.me.REG[1] = ATTR_parser___lexer___Lexer____token(fra.me.REG[0]);
-  /* ./parser//lexer.nit:1247 */
+  /* parser/lexer.nit:1282 */
   while(1) {
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -5565,18 +5667,18 @@ val_t parser___lexer___Lexer___next(val_t p0){
       }
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//lexer.nit:1248 */
+      /* parser/lexer.nit:1283 */
       fra.me.REG[2] = CALL_parser___lexer___Lexer___get_token(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[1] = fra.me.REG[2];
     } else {
-      /* ./parser//lexer.nit:1247 */
+      /* parser/lexer.nit:1282 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./parser//lexer.nit:1250 */
+  /* parser/lexer.nit:1285 */
   ATTR_parser___lexer___Lexer____token(fra.me.REG[0]) = NIT_NULL;
-  /* ./parser//lexer.nit:1251 */
+  /* parser/lexer.nit:1286 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -5611,7 +5713,7 @@ val_t parser___lexer___Lexer___get_token(val_t p0){
           static val_t once_value_5; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___lexer;
-  fra.me.line = 1254;
+  fra.me.line = 1289;
   fra.me.meth = LOCATE_parser___lexer___Lexer___get_token;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -5624,1968 +5726,2020 @@ val_t parser___lexer___Lexer___get_token(val_t p0){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//lexer.nit:1257 */
+  /* parser/lexer.nit:1292 */
   REGB0 = TAG_Int(0);
-  /* ./parser//lexer.nit:1259 */
+  /* parser/lexer.nit:1294 */
   REGB1 = TAG_Bool(ATTR_parser___lexer___Lexer____stream_pos(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_stream_pos", LOCATE_parser___lexer, 1259);
+    nit_abort("Uninitialized attribute %s", "_stream_pos", LOCATE_parser___lexer, 1294);
   }
   REGB1 = ATTR_parser___lexer___Lexer____stream_pos(fra.me.REG[0]);
-  /* ./parser//lexer.nit:1260 */
+  /* parser/lexer.nit:1295 */
   REGB2 = REGB1;
-  /* ./parser//lexer.nit:1261 */
+  /* parser/lexer.nit:1296 */
   REGB3 = TAG_Bool(ATTR_parser___lexer___Lexer____pos(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB3)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_pos", LOCATE_parser___lexer, 1261);
+    nit_abort("Uninitialized attribute %s", "_pos", LOCATE_parser___lexer, 1296);
   }
   REGB3 = ATTR_parser___lexer___Lexer____pos(fra.me.REG[0]);
-  /* ./parser//lexer.nit:1262 */
+  /* parser/lexer.nit:1297 */
   REGB4 = TAG_Bool(ATTR_parser___lexer___Lexer____line(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB4)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_line", LOCATE_parser___lexer, 1262);
+    nit_abort("Uninitialized attribute %s", "_line", LOCATE_parser___lexer, 1297);
   }
   REGB4 = ATTR_parser___lexer___Lexer____line(fra.me.REG[0]);
-  /* ./parser//lexer.nit:1263 */
+  /* parser/lexer.nit:1298 */
   REGB5 = TAG_Bool(ATTR_parser___lexer___Lexer____file(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB5)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_file", LOCATE_parser___lexer, 1263);
+    nit_abort("Uninitialized attribute %s", "_file", LOCATE_parser___lexer, 1298);
   }
   fra.me.REG[1] = ATTR_parser___lexer___Lexer____file(fra.me.REG[0]);
   fra.me.REG[1] = CALL_location___SourceFile___string(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB5)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB5 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./parser//lexer.nit:1266 */
+  /* parser/lexer.nit:1301 */
   REGB6 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:236 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB6 = TAG_Int(-UNTAG_Int(REGB6));
-  /* ./parser//lexer.nit:1267 */
+  /* parser/lexer.nit:1302 */
   REGB7 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:236 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB7 = TAG_Int(-UNTAG_Int(REGB7));
-  /* ./parser//lexer.nit:1268 */
+  /* parser/lexer.nit:1303 */
   REGB8 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:236 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB8 = TAG_Int(-UNTAG_Int(REGB8));
-  /* ./parser//lexer.nit:1269 */
+  /* parser/lexer.nit:1304 */
   REGB9 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:236 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB9 = TAG_Int(-UNTAG_Int(REGB9));
-  /* ./parser//lexer.nit:1270 */
+  /* parser/lexer.nit:1305 */
   REGB10 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:236 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB10 = TAG_Int(-UNTAG_Int(REGB10));
-  /* ./parser//lexer.nit:1272 */
+  /* parser/lexer.nit:1307 */
   while(1) {
     REGB11 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB11)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB11 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB5));
-    /* ./parser//lexer.nit:1273 */
+    /* parser/lexer.nit:1308 */
     if (UNTAG_Bool(REGB11)) {
-      /* ./parser//lexer.nit:1274 */
+      /* parser/lexer.nit:1309 */
       REGB11 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:236 */
+      /* ../lib/standard/kernel.nit:236 */
       REGB11 = TAG_Int(-UNTAG_Int(REGB11));
-      /* ./parser//lexer.nit:1274 */
+      /* parser/lexer.nit:1309 */
       REGB0 = REGB11;
     } else {
-      /* ./parser//lexer.nit:1276 */
+      /* parser/lexer.nit:1311 */
       REGB11 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB1);
-      /* ./../lib/standard//kernel.nit:413 */
+      /* ../lib/standard/kernel.nit:413 */
       REGB11 = TAG_Int((unsigned char)UNTAG_Char(REGB11));
-      /* ./parser//lexer.nit:1277 */
+      /* parser/lexer.nit:1312 */
       REGB12 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB12 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB12));
-      /* ./parser//lexer.nit:1277 */
+      /* parser/lexer.nit:1312 */
       REGB1 = REGB12;
-      /* ./parser//lexer.nit:1279 */
+      /* parser/lexer.nit:1314 */
       REGB12 = TAG_Bool(ATTR_parser___lexer___Lexer____cr(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB12)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_cr", LOCATE_parser___lexer, 1279);
+        nit_abort("Uninitialized attribute %s", "_cr", LOCATE_parser___lexer, 1314);
       }
       REGB12 = ATTR_parser___lexer___Lexer____cr(fra.me.REG[0]);
-      /* ./parser//lexer.nit:1280 */
+      /* parser/lexer.nit:1315 */
       REGB13 = TAG_Bool(ATTR_parser___lexer___Lexer____line(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB13)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_line", LOCATE_parser___lexer, 1280);
+        nit_abort("Uninitialized attribute %s", "_line", LOCATE_parser___lexer, 1315);
       }
       REGB13 = ATTR_parser___lexer___Lexer____line(fra.me.REG[0]);
-      /* ./parser//lexer.nit:1281 */
+      /* parser/lexer.nit:1316 */
       REGB14 = TAG_Bool(ATTR_parser___lexer___Lexer____pos(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB14)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_pos", LOCATE_parser___lexer, 1281);
+        nit_abort("Uninitialized attribute %s", "_pos", LOCATE_parser___lexer, 1316);
       }
       REGB14 = ATTR_parser___lexer___Lexer____pos(fra.me.REG[0]);
-      /* ./parser//lexer.nit:1282 */
+      /* parser/lexer.nit:1317 */
       REGB15 = TAG_Int(10);
       REGB16 = TAG_Bool(IS_EQUAL_OO(REGB11,REGB15));
       if (UNTAG_Bool(REGB16)) {
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB15 = TAG_Bool((REGB11)==(REGB15));
-        /* ./parser//lexer.nit:1282 */
+        /* parser/lexer.nit:1317 */
         REGB16 = REGB15;
       }
       if (UNTAG_Bool(REGB16)) {
-        /* ./parser//lexer.nit:1283 */
+        /* parser/lexer.nit:1318 */
         if (UNTAG_Bool(REGB12)) {
-          /* ./parser//lexer.nit:1284 */
+          /* parser/lexer.nit:1319 */
           REGB16 = TAG_Bool(false);
           REGB12 = REGB16;
-          /* ./parser//lexer.nit:1285 */
+          /* parser/lexer.nit:1320 */
           REGB16 = TAG_Bool(ATTR_parser___lexer___Lexer____file(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB16)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_file", LOCATE_parser___lexer, 1285);
+            nit_abort("Uninitialized attribute %s", "_file", LOCATE_parser___lexer, 1320);
           }
           fra.me.REG[2] = ATTR_parser___lexer___Lexer____file(fra.me.REG[0]);
           fra.me.REG[2] = CALL_location___SourceFile___line_starts(fra.me.REG[2])(fra.me.REG[2]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[2])(fra.me.REG[2], REGB13, REGB1);
         } else {
-          /* ./parser//lexer.nit:1287 */
+          /* parser/lexer.nit:1322 */
           REGB16 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB16 = TAG_Int(UNTAG_Int(REGB13)+UNTAG_Int(REGB16));
-          /* ./parser//lexer.nit:1287 */
+          /* parser/lexer.nit:1322 */
           REGB13 = REGB16;
-          /* ./parser//lexer.nit:1288 */
+          /* parser/lexer.nit:1323 */
           REGB16 = TAG_Int(0);
           REGB14 = REGB16;
-          /* ./parser//lexer.nit:1289 */
+          /* parser/lexer.nit:1324 */
           REGB16 = TAG_Bool(ATTR_parser___lexer___Lexer____file(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB16)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_file", LOCATE_parser___lexer, 1289);
+            nit_abort("Uninitialized attribute %s", "_file", LOCATE_parser___lexer, 1324);
           }
           fra.me.REG[2] = ATTR_parser___lexer___Lexer____file(fra.me.REG[0]);
           fra.me.REG[2] = CALL_location___SourceFile___line_starts(fra.me.REG[2])(fra.me.REG[2]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[2])(fra.me.REG[2], REGB13, REGB1);
         }
       } else {
-        /* ./parser//lexer.nit:1291 */
+        /* parser/lexer.nit:1326 */
         REGB16 = TAG_Int(13);
         REGB15 = TAG_Bool(IS_EQUAL_OO(REGB11,REGB16));
         if (UNTAG_Bool(REGB15)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB16 = TAG_Bool((REGB11)==(REGB16));
-          /* ./parser//lexer.nit:1291 */
+          /* parser/lexer.nit:1326 */
           REGB15 = REGB16;
         }
         if (UNTAG_Bool(REGB15)) {
-          /* ./parser//lexer.nit:1292 */
+          /* parser/lexer.nit:1327 */
           REGB15 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB15 = TAG_Int(UNTAG_Int(REGB13)+UNTAG_Int(REGB15));
-          /* ./parser//lexer.nit:1292 */
+          /* parser/lexer.nit:1327 */
           REGB13 = REGB15;
-          /* ./parser//lexer.nit:1293 */
+          /* parser/lexer.nit:1328 */
           REGB15 = TAG_Int(0);
           REGB14 = REGB15;
-          /* ./parser//lexer.nit:1294 */
+          /* parser/lexer.nit:1329 */
           REGB15 = TAG_Bool(true);
           REGB12 = REGB15;
-          /* ./parser//lexer.nit:1295 */
+          /* parser/lexer.nit:1330 */
           REGB15 = TAG_Bool(ATTR_parser___lexer___Lexer____file(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB15)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_file", LOCATE_parser___lexer, 1295);
+            nit_abort("Uninitialized attribute %s", "_file", LOCATE_parser___lexer, 1330);
           }
           fra.me.REG[2] = ATTR_parser___lexer___Lexer____file(fra.me.REG[0]);
           fra.me.REG[2] = CALL_location___SourceFile___line_starts(fra.me.REG[2])(fra.me.REG[2]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[2])(fra.me.REG[2], REGB13, REGB1);
         } else {
-          /* ./parser//lexer.nit:1297 */
+          /* parser/lexer.nit:1332 */
           REGB15 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB15 = TAG_Int(UNTAG_Int(REGB14)+UNTAG_Int(REGB15));
-          /* ./parser//lexer.nit:1297 */
+          /* parser/lexer.nit:1332 */
           REGB14 = REGB15;
-          /* ./parser//lexer.nit:1298 */
+          /* parser/lexer.nit:1333 */
           REGB15 = TAG_Bool(false);
           REGB12 = REGB15;
         }
       }
-      /* ./parser//lexer.nit:1301 */
+      /* parser/lexer.nit:1336 */
       while(1) {
-        /* ./parser//lexer.nit:1302 */
+        /* parser/lexer.nit:1337 */
         REGB15 = REGB0;
-        /* ./parser//lexer.nit:1303 */
+        /* parser/lexer.nit:1338 */
         REGB16 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:236 */
+        /* ../lib/standard/kernel.nit:236 */
         REGB16 = TAG_Int(-UNTAG_Int(REGB16));
         REGB17 = TAG_Bool(VAL_ISA(REGB16, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB17)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB16 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB16));
-        /* ./parser//lexer.nit:1303 */
+        /* parser/lexer.nit:1338 */
         if (UNTAG_Bool(REGB16)) {
-          /* ./parser//lexer.nit:1304 */
+          /* parser/lexer.nit:1339 */
           REGB16 = TAG_Int(2);
-          /* ./../lib/standard//kernel.nit:236 */
+          /* ../lib/standard/kernel.nit:236 */
           REGB16 = TAG_Int(-UNTAG_Int(REGB16));
-          /* ./../lib/standard//kernel.nit:237 */
+          /* ../lib/standard/kernel.nit:237 */
           REGB16 = TAG_Int(UNTAG_Int(REGB16)-UNTAG_Int(REGB0));
-          /* ./parser//lexer.nit:1304 */
+          /* parser/lexer.nit:1339 */
           REGB15 = REGB16;
         }
-        /* ./parser//lexer.nit:1307 */
+        /* parser/lexer.nit:1342 */
         REGB16 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:236 */
+        /* ../lib/standard/kernel.nit:236 */
         REGB16 = TAG_Int(-UNTAG_Int(REGB16));
-        /* ./parser//lexer.nit:1307 */
+        /* parser/lexer.nit:1342 */
         REGB0 = REGB16;
-        /* ./parser//lexer.nit:1309 */
+        /* parser/lexer.nit:1344 */
         REGB16 = TAG_Int(0);
-        /* ./parser//lexer.nit:1310 */
+        /* parser/lexer.nit:1345 */
         REGB17 = TAG_Int(0);
         REGB17 = CALL_parser___tables___TablesCapable___lexer_goto(fra.me.REG[0])(fra.me.REG[0], REGB15, REGB17);
         REGB18 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:237 */
+        /* ../lib/standard/kernel.nit:237 */
         REGB18 = TAG_Int(UNTAG_Int(REGB17)-UNTAG_Int(REGB18));
-        /* ./parser//lexer.nit:1312 */
+        /* parser/lexer.nit:1347 */
         REGB17 = TAG_Int(0);
         REGB19 = TAG_Bool(VAL_ISA(REGB17, VTCOLOR_standard___kernel___Comparable___OTHER(REGB18), VTID_standard___kernel___Comparable___OTHER(REGB18))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB19)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB17 = TAG_Bool(UNTAG_Int(REGB18)>=UNTAG_Int(REGB17));
-        /* ./parser//lexer.nit:1312 */
+        /* parser/lexer.nit:1347 */
         if (UNTAG_Bool(REGB17)) {
-          /* ./parser//lexer.nit:1313 */
+          /* parser/lexer.nit:1348 */
           while(1) {
             REGB17 = TAG_Bool(VAL_ISA(REGB18, VTCOLOR_standard___kernel___Comparable___OTHER(REGB16), VTID_standard___kernel___Comparable___OTHER(REGB16))) /*cast OTHER*/;
             if (UNTAG_Bool(REGB17)) {
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:231 */
+            /* ../lib/standard/kernel.nit:231 */
             REGB17 = TAG_Bool(UNTAG_Int(REGB16)<=UNTAG_Int(REGB18));
-            /* ./parser//lexer.nit:1313 */
+            /* parser/lexer.nit:1348 */
             if (UNTAG_Bool(REGB17)) {
-              /* ./../lib/standard//kernel.nit:235 */
+              /* ../lib/standard/kernel.nit:235 */
               REGB17 = TAG_Int(UNTAG_Int(REGB16)+UNTAG_Int(REGB18));
-              /* ./parser//lexer.nit:1314 */
+              /* parser/lexer.nit:1349 */
               REGB19 = TAG_Int(2);
-              /* ./../lib/standard//kernel.nit:239 */
+              /* ../lib/standard/kernel.nit:239 */
               REGB19 = TAG_Int(UNTAG_Int(REGB17)/UNTAG_Int(REGB19));
-              /* ./parser//lexer.nit:1315 */
+              /* parser/lexer.nit:1350 */
               REGB17 = TAG_Int(3);
-              /* ./../lib/standard//kernel.nit:238 */
+              /* ../lib/standard/kernel.nit:238 */
               REGB17 = TAG_Int(UNTAG_Int(REGB19)*UNTAG_Int(REGB17));
-              /* ./parser//lexer.nit:1315 */
+              /* parser/lexer.nit:1350 */
               REGB20 = TAG_Int(1);
-              /* ./../lib/standard//kernel.nit:235 */
+              /* ../lib/standard/kernel.nit:235 */
               REGB20 = TAG_Int(UNTAG_Int(REGB17)+UNTAG_Int(REGB20));
-              /* ./parser//lexer.nit:1317 */
+              /* parser/lexer.nit:1352 */
               REGB17 = CALL_parser___tables___TablesCapable___lexer_goto(fra.me.REG[0])(fra.me.REG[0], REGB15, REGB20);
               REGB21 = TAG_Bool(VAL_ISA(REGB17, VTCOLOR_standard___kernel___Comparable___OTHER(REGB11), VTID_standard___kernel___Comparable___OTHER(REGB11))) /*cast OTHER*/;
               if (UNTAG_Bool(REGB21)) {
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:232 */
+              /* ../lib/standard/kernel.nit:232 */
               REGB17 = TAG_Bool(UNTAG_Int(REGB11)<UNTAG_Int(REGB17));
-              /* ./parser//lexer.nit:1317 */
+              /* parser/lexer.nit:1352 */
               if (UNTAG_Bool(REGB17)) {
-               /* ./parser//lexer.nit:1318 */
+               /* parser/lexer.nit:1353 */
                REGB17 = TAG_Int(1);
-               /* ./../lib/standard//kernel.nit:237 */
+               /* ../lib/standard/kernel.nit:237 */
                REGB17 = TAG_Int(UNTAG_Int(REGB19)-UNTAG_Int(REGB17));
-               /* ./parser//lexer.nit:1318 */
+               /* parser/lexer.nit:1353 */
                REGB18 = REGB17;
               } else {
-               /* ./parser//lexer.nit:1319 */
+               /* parser/lexer.nit:1354 */
                REGB17 = TAG_Int(1);
-               /* ./../lib/standard//kernel.nit:235 */
+               /* ../lib/standard/kernel.nit:235 */
                REGB17 = TAG_Int(UNTAG_Int(REGB20)+UNTAG_Int(REGB17));
-               /* ./parser//lexer.nit:1319 */
+               /* parser/lexer.nit:1354 */
                REGB17 = CALL_parser___tables___TablesCapable___lexer_goto(fra.me.REG[0])(fra.me.REG[0], REGB15, REGB17);
                REGB21 = TAG_Bool(VAL_ISA(REGB17, VTCOLOR_standard___kernel___Comparable___OTHER(REGB11), VTID_standard___kernel___Comparable___OTHER(REGB11))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB21)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:234 */
+               /* ../lib/standard/kernel.nit:234 */
                REGB17 = TAG_Bool(UNTAG_Int(REGB11)>UNTAG_Int(REGB17));
-               /* ./parser//lexer.nit:1319 */
+               /* parser/lexer.nit:1354 */
                if (UNTAG_Bool(REGB17)) {
-               /* ./parser//lexer.nit:1320 */
+               /* parser/lexer.nit:1355 */
                REGB17 = TAG_Int(1);
-               /* ./../lib/standard//kernel.nit:235 */
+               /* ../lib/standard/kernel.nit:235 */
                REGB17 = TAG_Int(UNTAG_Int(REGB19)+UNTAG_Int(REGB17));
-               /* ./parser//lexer.nit:1320 */
+               /* parser/lexer.nit:1355 */
                REGB16 = REGB17;
                } else {
-               /* ./parser//lexer.nit:1322 */
+               /* parser/lexer.nit:1357 */
                REGB17 = TAG_Int(2);
-               /* ./../lib/standard//kernel.nit:235 */
+               /* ../lib/standard/kernel.nit:235 */
                REGB17 = TAG_Int(UNTAG_Int(REGB20)+UNTAG_Int(REGB17));
-               /* ./parser//lexer.nit:1322 */
+               /* parser/lexer.nit:1357 */
                REGB17 = CALL_parser___tables___TablesCapable___lexer_goto(fra.me.REG[0])(fra.me.REG[0], REGB15, REGB17);
                REGB0 = REGB17;
-               /* ./parser//lexer.nit:1323 */
+               /* parser/lexer.nit:1358 */
                goto label1;
                }
               }
             } else {
-              /* ./parser//lexer.nit:1313 */
+              /* parser/lexer.nit:1348 */
               goto label1;
             }
           }
           label1: while(0);
         }
-        /* ./parser//lexer.nit:1327 */
+        /* parser/lexer.nit:1362 */
         REGB15 = TAG_Int(2);
-        /* ./../lib/standard//kernel.nit:236 */
+        /* ../lib/standard/kernel.nit:236 */
         REGB15 = TAG_Int(-UNTAG_Int(REGB15));
         REGB16 = TAG_Bool(VAL_ISA(REGB15, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB16)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:234 */
+        /* ../lib/standard/kernel.nit:234 */
         REGB15 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB15));
-        /* ./parser//lexer.nit:1327 */
+        /* parser/lexer.nit:1362 */
         if (UNTAG_Bool(REGB15)) {
           goto label2;
         }
       }
       label2: while(0);
-      /* ./parser//lexer.nit:1330 */
+      /* parser/lexer.nit:1365 */
       ATTR_parser___lexer___Lexer____cr(fra.me.REG[0]) = REGB12;
-      /* ./parser//lexer.nit:1331 */
+      /* parser/lexer.nit:1366 */
       ATTR_parser___lexer___Lexer____line(fra.me.REG[0]) = REGB13;
-      /* ./parser//lexer.nit:1332 */
+      /* parser/lexer.nit:1367 */
       ATTR_parser___lexer___Lexer____pos(fra.me.REG[0]) = REGB14;
     }
-    /* ./parser//lexer.nit:1335 */
+    /* parser/lexer.nit:1370 */
     REGB14 = TAG_Int(0);
     REGB13 = TAG_Bool(VAL_ISA(REGB14, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB13)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB14 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB14));
-    /* ./parser//lexer.nit:1335 */
+    /* parser/lexer.nit:1370 */
     if (UNTAG_Bool(REGB14)) {
-      /* ./parser//lexer.nit:1336 */
+      /* parser/lexer.nit:1371 */
       REGB14 = CALL_parser___tables___TablesCapable___lexer_accept(fra.me.REG[0])(fra.me.REG[0], REGB0);
-      /* ./parser//lexer.nit:1337 */
+      /* parser/lexer.nit:1372 */
       REGB13 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:236 */
+      /* ../lib/standard/kernel.nit:236 */
       REGB13 = TAG_Int(-UNTAG_Int(REGB13));
-      /* ./parser//lexer.nit:1337 */
+      /* parser/lexer.nit:1372 */
       REGB12 = TAG_Bool(IS_EQUAL_OO(REGB14,REGB13));
       if (UNTAG_Bool(REGB12)) {
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB13 = TAG_Bool((REGB14)==(REGB13));
-        /* ./parser//lexer.nit:1337 */
+        /* parser/lexer.nit:1372 */
         REGB12 = REGB13;
       }
       REGB12 = TAG_Bool(!UNTAG_Bool(REGB12));
       if (UNTAG_Bool(REGB12)) {
-        /* ./parser//lexer.nit:1338 */
+        /* parser/lexer.nit:1373 */
         REGB6 = REGB0;
-        /* ./parser//lexer.nit:1339 */
+        /* parser/lexer.nit:1374 */
         REGB7 = REGB14;
-        /* ./../lib/standard//kernel.nit:237 */
+        /* ../lib/standard/kernel.nit:237 */
         REGB14 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-        /* ./parser//lexer.nit:1340 */
+        /* parser/lexer.nit:1375 */
         REGB8 = REGB14;
-        /* ./parser//lexer.nit:1341 */
+        /* parser/lexer.nit:1376 */
         REGB14 = TAG_Bool(ATTR_parser___lexer___Lexer____pos(fra.me.REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB14)) {
         } else {
-          nit_abort("Uninitialized attribute %s", "_pos", LOCATE_parser___lexer, 1341);
+          nit_abort("Uninitialized attribute %s", "_pos", LOCATE_parser___lexer, 1376);
         }
         REGB14 = ATTR_parser___lexer___Lexer____pos(fra.me.REG[0]);
         REGB9 = REGB14;
-        /* ./parser//lexer.nit:1342 */
+        /* parser/lexer.nit:1377 */
         REGB14 = TAG_Bool(ATTR_parser___lexer___Lexer____line(fra.me.REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB14)) {
         } else {
-          nit_abort("Uninitialized attribute %s", "_line", LOCATE_parser___lexer, 1342);
+          nit_abort("Uninitialized attribute %s", "_line", LOCATE_parser___lexer, 1377);
         }
         REGB14 = ATTR_parser___lexer___Lexer____line(fra.me.REG[0]);
         REGB10 = REGB14;
       }
     } else {
-      /* ./parser//lexer.nit:1345 */
+      /* parser/lexer.nit:1380 */
       REGB14 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:236 */
+      /* ../lib/standard/kernel.nit:236 */
       REGB14 = TAG_Int(-UNTAG_Int(REGB14));
-      /* ./parser//lexer.nit:1345 */
+      /* parser/lexer.nit:1380 */
       REGB12 = TAG_Bool(IS_EQUAL_OO(REGB6,REGB14));
       if (UNTAG_Bool(REGB12)) {
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB14 = TAG_Bool((REGB6)==(REGB14));
-        /* ./parser//lexer.nit:1345 */
+        /* parser/lexer.nit:1380 */
         REGB12 = REGB14;
       }
       REGB12 = TAG_Bool(!UNTAG_Bool(REGB12));
       if (UNTAG_Bool(REGB12)) {
-        /* ./parser//lexer.nit:1346 */
+        /* parser/lexer.nit:1381 */
         REGB12 = TAG_Bool(ATTR_parser___lexer___Lexer____file(fra.me.REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB12)) {
         } else {
-          nit_abort("Uninitialized attribute %s", "_file", LOCATE_parser___lexer, 1346);
+          nit_abort("Uninitialized attribute %s", "_file", LOCATE_parser___lexer, 1381);
         }
         fra.me.REG[2] = ATTR_parser___lexer___Lexer____file(fra.me.REG[0]);
         REGB12 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB12 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB12));
-        /* ./parser//lexer.nit:1346 */
+        /* parser/lexer.nit:1381 */
         REGB14 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB14 = TAG_Int(UNTAG_Int(REGB10)+UNTAG_Int(REGB14));
-        /* ./parser//lexer.nit:1346 */
+        /* parser/lexer.nit:1381 */
         REGB13 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB13 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB13));
-        /* ./parser//lexer.nit:1346 */
+        /* parser/lexer.nit:1381 */
         fra.me.REG[2] = NEW_Location_location___Location___init(fra.me.REG[2], REGB12, REGB14, REGB13, REGB9);
-        /* ./parser//lexer.nit:1347 */
+        /* parser/lexer.nit:1382 */
         ATTR_parser___lexer___Lexer____pos(fra.me.REG[0]) = REGB9;
-        /* ./parser//lexer.nit:1348 */
+        /* parser/lexer.nit:1383 */
         ATTR_parser___lexer___Lexer____line(fra.me.REG[0]) = REGB10;
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB13 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB8));
-        /* ./parser//lexer.nit:1349 */
+        /* parser/lexer.nit:1384 */
         ATTR_parser___lexer___Lexer____stream_pos(fra.me.REG[0]) = REGB13;
-        /* ./parser//lexer.nit:1350 */
+        /* parser/lexer.nit:1385 */
         REGB13 = TAG_Int(0);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1350 */
+          /* parser/lexer.nit:1385 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1351 */
+          /* parser/lexer.nit:1386 */
           fra.me.REG[3] = NIT_NULL;
           goto label3;
         }
-        /* ./parser//lexer.nit:1353 */
+        /* parser/lexer.nit:1388 */
         REGB14 = TAG_Int(1);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1353 */
+          /* parser/lexer.nit:1388 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1354 */
+          /* parser/lexer.nit:1389 */
           fra.me.REG[4] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB2, REGB8);
-          /* ./parser//lexer.nit:1355 */
+          /* parser/lexer.nit:1390 */
           fra.me.REG[4] = NEW_TEol_parser___lexer___TEol___init_tk(fra.me.REG[4], fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1357 */
+        /* parser/lexer.nit:1392 */
         REGB13 = TAG_Int(2);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1357 */
+          /* parser/lexer.nit:1392 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1358 */
+          /* parser/lexer.nit:1393 */
           fra.me.REG[4] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB2, REGB8);
-          /* ./parser//lexer.nit:1359 */
+          /* parser/lexer.nit:1394 */
           fra.me.REG[4] = NEW_TComment_parser___lexer___TComment___init_tk(fra.me.REG[4], fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1361 */
+        /* parser/lexer.nit:1396 */
         REGB14 = TAG_Int(3);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1361 */
+          /* parser/lexer.nit:1396 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1362 */
+          /* parser/lexer.nit:1397 */
           fra.me.REG[4] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB2, REGB8);
-          /* ./parser//lexer.nit:1363 */
+          /* parser/lexer.nit:1398 */
           fra.me.REG[4] = NEW_TKwmodule_parser___lexer___TKwmodule___init_tk(fra.me.REG[4], fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1365 */
+        /* parser/lexer.nit:1400 */
         REGB13 = TAG_Int(4);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1365 */
+          /* parser/lexer.nit:1400 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1366 */
+          /* parser/lexer.nit:1401 */
           fra.me.REG[4] = NEW_TKwimport_parser___lexer___TKwimport___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1368 */
+        /* parser/lexer.nit:1403 */
         REGB14 = TAG_Int(5);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1368 */
+          /* parser/lexer.nit:1403 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1369 */
+          /* parser/lexer.nit:1404 */
           fra.me.REG[4] = NEW_TKwclass_parser___lexer___TKwclass___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1371 */
+        /* parser/lexer.nit:1406 */
         REGB13 = TAG_Int(6);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1371 */
+          /* parser/lexer.nit:1406 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1372 */
+          /* parser/lexer.nit:1407 */
           fra.me.REG[4] = NEW_TKwabstract_parser___lexer___TKwabstract___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1374 */
+        /* parser/lexer.nit:1409 */
         REGB14 = TAG_Int(7);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1374 */
+          /* parser/lexer.nit:1409 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1375 */
+          /* parser/lexer.nit:1410 */
           fra.me.REG[4] = NEW_TKwinterface_parser___lexer___TKwinterface___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1377 */
+        /* parser/lexer.nit:1412 */
         REGB13 = TAG_Int(8);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1377 */
+          /* parser/lexer.nit:1412 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1378 */
+          /* parser/lexer.nit:1413 */
           fra.me.REG[4] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB2, REGB8);
-          /* ./parser//lexer.nit:1379 */
+          /* parser/lexer.nit:1414 */
           fra.me.REG[4] = NEW_TKwenum_parser___lexer___TKwenum___init_tk(fra.me.REG[4], fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1381 */
+        /* parser/lexer.nit:1416 */
         REGB14 = TAG_Int(9);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1381 */
+          /* parser/lexer.nit:1416 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1382 */
+          /* parser/lexer.nit:1417 */
           fra.me.REG[4] = NEW_TKwspecial_parser___lexer___TKwspecial___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1384 */
+        /* parser/lexer.nit:1419 */
         REGB13 = TAG_Int(10);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1384 */
+          /* parser/lexer.nit:1419 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1385 */
+          /* parser/lexer.nit:1420 */
           fra.me.REG[4] = NEW_TKwend_parser___lexer___TKwend___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1387 */
+        /* parser/lexer.nit:1422 */
         REGB14 = TAG_Int(11);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1387 */
+          /* parser/lexer.nit:1422 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1388 */
+          /* parser/lexer.nit:1423 */
           fra.me.REG[4] = NEW_TKwmeth_parser___lexer___TKwmeth___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1390 */
+        /* parser/lexer.nit:1425 */
         REGB13 = TAG_Int(12);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1390 */
+          /* parser/lexer.nit:1425 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1391 */
+          /* parser/lexer.nit:1426 */
           fra.me.REG[4] = NEW_TKwtype_parser___lexer___TKwtype___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1393 */
+        /* parser/lexer.nit:1428 */
         REGB14 = TAG_Int(13);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1393 */
+          /* parser/lexer.nit:1428 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1394 */
+          /* parser/lexer.nit:1429 */
           fra.me.REG[4] = NEW_TKwinit_parser___lexer___TKwinit___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1396 */
+        /* parser/lexer.nit:1431 */
         REGB13 = TAG_Int(14);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1396 */
+          /* parser/lexer.nit:1431 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1397 */
+          /* parser/lexer.nit:1432 */
           fra.me.REG[4] = NEW_TKwredef_parser___lexer___TKwredef___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1399 */
+        /* parser/lexer.nit:1434 */
         REGB14 = TAG_Int(15);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1399 */
+          /* parser/lexer.nit:1434 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1400 */
+          /* parser/lexer.nit:1435 */
           fra.me.REG[4] = NEW_TKwis_parser___lexer___TKwis___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1402 */
+        /* parser/lexer.nit:1437 */
         REGB13 = TAG_Int(16);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1402 */
+          /* parser/lexer.nit:1437 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1403 */
+          /* parser/lexer.nit:1438 */
           fra.me.REG[4] = NEW_TKwdo_parser___lexer___TKwdo___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1405 */
+        /* parser/lexer.nit:1440 */
         REGB14 = TAG_Int(17);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1405 */
+          /* parser/lexer.nit:1440 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1406 */
+          /* parser/lexer.nit:1441 */
           fra.me.REG[4] = NEW_TKwreadable_parser___lexer___TKwreadable___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1408 */
+        /* parser/lexer.nit:1443 */
         REGB13 = TAG_Int(18);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1408 */
+          /* parser/lexer.nit:1443 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1409 */
+          /* parser/lexer.nit:1444 */
           fra.me.REG[4] = NEW_TKwwritable_parser___lexer___TKwwritable___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1411 */
+        /* parser/lexer.nit:1446 */
         REGB14 = TAG_Int(19);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1411 */
+          /* parser/lexer.nit:1446 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1412 */
+          /* parser/lexer.nit:1447 */
           fra.me.REG[4] = NEW_TKwvar_parser___lexer___TKwvar___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1414 */
+        /* parser/lexer.nit:1449 */
         REGB13 = TAG_Int(20);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1414 */
+          /* parser/lexer.nit:1449 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1415 */
+          /* parser/lexer.nit:1450 */
           fra.me.REG[4] = NEW_TKwintern_parser___lexer___TKwintern___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1417 */
+        /* parser/lexer.nit:1452 */
         REGB14 = TAG_Int(21);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1417 */
+          /* parser/lexer.nit:1452 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1418 */
+          /* parser/lexer.nit:1453 */
           fra.me.REG[4] = NEW_TKwextern_parser___lexer___TKwextern___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1420 */
+        /* parser/lexer.nit:1455 */
         REGB13 = TAG_Int(22);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1420 */
+          /* parser/lexer.nit:1455 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1421 */
+          /* parser/lexer.nit:1456 */
           fra.me.REG[4] = NEW_TKwprotected_parser___lexer___TKwprotected___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1423 */
+        /* parser/lexer.nit:1458 */
         REGB14 = TAG_Int(23);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1423 */
+          /* parser/lexer.nit:1458 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1424 */
+          /* parser/lexer.nit:1459 */
           fra.me.REG[4] = NEW_TKwprivate_parser___lexer___TKwprivate___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1426 */
+        /* parser/lexer.nit:1461 */
         REGB13 = TAG_Int(24);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1426 */
+          /* parser/lexer.nit:1461 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1427 */
+          /* parser/lexer.nit:1462 */
           fra.me.REG[4] = NEW_TKwintrude_parser___lexer___TKwintrude___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1429 */
+        /* parser/lexer.nit:1464 */
         REGB14 = TAG_Int(25);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1429 */
+          /* parser/lexer.nit:1464 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1430 */
+          /* parser/lexer.nit:1465 */
           fra.me.REG[4] = NEW_TKwif_parser___lexer___TKwif___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1432 */
+        /* parser/lexer.nit:1467 */
         REGB13 = TAG_Int(26);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1432 */
+          /* parser/lexer.nit:1467 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1433 */
+          /* parser/lexer.nit:1468 */
           fra.me.REG[4] = NEW_TKwthen_parser___lexer___TKwthen___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1435 */
+        /* parser/lexer.nit:1470 */
         REGB14 = TAG_Int(27);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1435 */
+          /* parser/lexer.nit:1470 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1436 */
+          /* parser/lexer.nit:1471 */
           fra.me.REG[4] = NEW_TKwelse_parser___lexer___TKwelse___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1438 */
+        /* parser/lexer.nit:1473 */
         REGB13 = TAG_Int(28);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1438 */
+          /* parser/lexer.nit:1473 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1439 */
+          /* parser/lexer.nit:1474 */
           fra.me.REG[4] = NEW_TKwwhile_parser___lexer___TKwwhile___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1441 */
+        /* parser/lexer.nit:1476 */
         REGB14 = TAG_Int(29);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1441 */
+          /* parser/lexer.nit:1476 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1442 */
+          /* parser/lexer.nit:1477 */
           fra.me.REG[4] = NEW_TKwloop_parser___lexer___TKwloop___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1444 */
+        /* parser/lexer.nit:1479 */
         REGB13 = TAG_Int(30);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1444 */
+          /* parser/lexer.nit:1479 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1445 */
+          /* parser/lexer.nit:1480 */
           fra.me.REG[4] = NEW_TKwfor_parser___lexer___TKwfor___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1447 */
+        /* parser/lexer.nit:1482 */
         REGB14 = TAG_Int(31);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1447 */
+          /* parser/lexer.nit:1482 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1448 */
+          /* parser/lexer.nit:1483 */
           fra.me.REG[4] = NEW_TKwin_parser___lexer___TKwin___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1450 */
+        /* parser/lexer.nit:1485 */
         REGB13 = TAG_Int(32);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1450 */
+          /* parser/lexer.nit:1485 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1451 */
+          /* parser/lexer.nit:1486 */
           fra.me.REG[4] = NEW_TKwand_parser___lexer___TKwand___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1453 */
+        /* parser/lexer.nit:1488 */
         REGB14 = TAG_Int(33);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1453 */
+          /* parser/lexer.nit:1488 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1454 */
+          /* parser/lexer.nit:1489 */
           fra.me.REG[4] = NEW_TKwor_parser___lexer___TKwor___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1456 */
+        /* parser/lexer.nit:1491 */
         REGB13 = TAG_Int(34);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1456 */
+          /* parser/lexer.nit:1491 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1457 */
+          /* parser/lexer.nit:1492 */
           fra.me.REG[4] = NEW_TKwnot_parser___lexer___TKwnot___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1459 */
+        /* parser/lexer.nit:1494 */
         REGB14 = TAG_Int(35);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1459 */
+          /* parser/lexer.nit:1494 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1460 */
+          /* parser/lexer.nit:1495 */
           fra.me.REG[4] = NEW_TKwreturn_parser___lexer___TKwreturn___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1462 */
+        /* parser/lexer.nit:1497 */
         REGB13 = TAG_Int(36);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1462 */
+          /* parser/lexer.nit:1497 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1463 */
+          /* parser/lexer.nit:1498 */
           fra.me.REG[4] = NEW_TKwcontinue_parser___lexer___TKwcontinue___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1465 */
+        /* parser/lexer.nit:1500 */
         REGB14 = TAG_Int(37);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1465 */
+          /* parser/lexer.nit:1500 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1466 */
+          /* parser/lexer.nit:1501 */
           fra.me.REG[4] = NEW_TKwbreak_parser___lexer___TKwbreak___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1468 */
+        /* parser/lexer.nit:1503 */
         REGB13 = TAG_Int(38);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1468 */
+          /* parser/lexer.nit:1503 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1469 */
+          /* parser/lexer.nit:1504 */
           fra.me.REG[4] = NEW_TKwabort_parser___lexer___TKwabort___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1471 */
+        /* parser/lexer.nit:1506 */
         REGB14 = TAG_Int(39);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1471 */
+          /* parser/lexer.nit:1506 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1472 */
+          /* parser/lexer.nit:1507 */
           fra.me.REG[4] = NEW_TKwassert_parser___lexer___TKwassert___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1474 */
+        /* parser/lexer.nit:1509 */
         REGB13 = TAG_Int(40);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1474 */
+          /* parser/lexer.nit:1509 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1475 */
+          /* parser/lexer.nit:1510 */
           fra.me.REG[4] = NEW_TKwnew_parser___lexer___TKwnew___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1477 */
+        /* parser/lexer.nit:1512 */
         REGB14 = TAG_Int(41);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1477 */
+          /* parser/lexer.nit:1512 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1478 */
+          /* parser/lexer.nit:1513 */
           fra.me.REG[4] = NEW_TKwisa_parser___lexer___TKwisa___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1480 */
+        /* parser/lexer.nit:1515 */
         REGB13 = TAG_Int(42);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1480 */
+          /* parser/lexer.nit:1515 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1481 */
+          /* parser/lexer.nit:1516 */
           fra.me.REG[4] = NEW_TKwonce_parser___lexer___TKwonce___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1483 */
+        /* parser/lexer.nit:1518 */
         REGB14 = TAG_Int(43);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1483 */
+          /* parser/lexer.nit:1518 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1484 */
+          /* parser/lexer.nit:1519 */
           fra.me.REG[4] = NEW_TKwsuper_parser___lexer___TKwsuper___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1486 */
+        /* parser/lexer.nit:1521 */
         REGB13 = TAG_Int(44);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1486 */
+          /* parser/lexer.nit:1521 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1487 */
+          /* parser/lexer.nit:1522 */
           fra.me.REG[4] = NEW_TKwself_parser___lexer___TKwself___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1489 */
+        /* parser/lexer.nit:1524 */
         REGB14 = TAG_Int(45);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1489 */
+          /* parser/lexer.nit:1524 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1490 */
+          /* parser/lexer.nit:1525 */
           fra.me.REG[4] = NEW_TKwtrue_parser___lexer___TKwtrue___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1492 */
+        /* parser/lexer.nit:1527 */
         REGB13 = TAG_Int(46);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1492 */
+          /* parser/lexer.nit:1527 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1493 */
+          /* parser/lexer.nit:1528 */
           fra.me.REG[4] = NEW_TKwfalse_parser___lexer___TKwfalse___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1495 */
+        /* parser/lexer.nit:1530 */
         REGB14 = TAG_Int(47);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1495 */
+          /* parser/lexer.nit:1530 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1496 */
+          /* parser/lexer.nit:1531 */
           fra.me.REG[4] = NEW_TKwnull_parser___lexer___TKwnull___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1498 */
+        /* parser/lexer.nit:1533 */
         REGB13 = TAG_Int(48);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1498 */
+          /* parser/lexer.nit:1533 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1499 */
+          /* parser/lexer.nit:1534 */
           fra.me.REG[4] = NEW_TKwas_parser___lexer___TKwas___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1501 */
+        /* parser/lexer.nit:1536 */
         REGB14 = TAG_Int(49);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1501 */
+          /* parser/lexer.nit:1536 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1502 */
+          /* parser/lexer.nit:1537 */
           fra.me.REG[4] = NEW_TKwnullable_parser___lexer___TKwnullable___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1504 */
+        /* parser/lexer.nit:1539 */
         REGB13 = TAG_Int(50);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1504 */
+          /* parser/lexer.nit:1539 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1505 */
+          /* parser/lexer.nit:1540 */
           fra.me.REG[4] = NEW_TKwisset_parser___lexer___TKwisset___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1507 */
+        /* parser/lexer.nit:1542 */
         REGB14 = TAG_Int(51);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1507 */
+          /* parser/lexer.nit:1542 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1508 */
+          /* parser/lexer.nit:1543 */
           fra.me.REG[4] = NEW_TKwlabel_parser___lexer___TKwlabel___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1510 */
+        /* parser/lexer.nit:1545 */
         REGB13 = TAG_Int(52);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1510 */
+          /* parser/lexer.nit:1545 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1511 */
-          fra.me.REG[4] = NEW_TOpar_parser___lexer___TOpar___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1546 */
+          fra.me.REG[4] = NEW_TKwdebug_parser___lexer___TKwdebug___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1513 */
+        /* parser/lexer.nit:1548 */
         REGB14 = TAG_Int(53);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1513 */
+          /* parser/lexer.nit:1548 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1514 */
-          fra.me.REG[4] = NEW_TCpar_parser___lexer___TCpar___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1549 */
+          fra.me.REG[4] = NEW_TOpar_parser___lexer___TOpar___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1516 */
+        /* parser/lexer.nit:1551 */
         REGB13 = TAG_Int(54);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1516 */
+          /* parser/lexer.nit:1551 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1517 */
-          fra.me.REG[4] = NEW_TObra_parser___lexer___TObra___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1552 */
+          fra.me.REG[4] = NEW_TCpar_parser___lexer___TCpar___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1519 */
+        /* parser/lexer.nit:1554 */
         REGB14 = TAG_Int(55);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1519 */
+          /* parser/lexer.nit:1554 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1520 */
-          fra.me.REG[4] = NEW_TCbra_parser___lexer___TCbra___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1555 */
+          fra.me.REG[4] = NEW_TObra_parser___lexer___TObra___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1522 */
+        /* parser/lexer.nit:1557 */
         REGB13 = TAG_Int(56);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1522 */
+          /* parser/lexer.nit:1557 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1523 */
-          fra.me.REG[4] = NEW_TComma_parser___lexer___TComma___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1558 */
+          fra.me.REG[4] = NEW_TCbra_parser___lexer___TCbra___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1525 */
+        /* parser/lexer.nit:1560 */
         REGB14 = TAG_Int(57);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1525 */
+          /* parser/lexer.nit:1560 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1526 */
-          fra.me.REG[4] = NEW_TColumn_parser___lexer___TColumn___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1561 */
+          fra.me.REG[4] = NEW_TComma_parser___lexer___TComma___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1528 */
+        /* parser/lexer.nit:1563 */
         REGB13 = TAG_Int(58);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1528 */
+          /* parser/lexer.nit:1563 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1529 */
-          fra.me.REG[4] = NEW_TQuad_parser___lexer___TQuad___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1564 */
+          fra.me.REG[4] = NEW_TColumn_parser___lexer___TColumn___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1531 */
+        /* parser/lexer.nit:1566 */
         REGB14 = TAG_Int(59);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1531 */
+          /* parser/lexer.nit:1566 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1532 */
-          fra.me.REG[4] = NEW_TAssign_parser___lexer___TAssign___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1567 */
+          fra.me.REG[4] = NEW_TQuad_parser___lexer___TQuad___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1534 */
+        /* parser/lexer.nit:1569 */
         REGB13 = TAG_Int(60);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1534 */
+          /* parser/lexer.nit:1569 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1535 */
-          fra.me.REG[4] = NEW_TPluseq_parser___lexer___TPluseq___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1570 */
+          fra.me.REG[4] = NEW_TAssign_parser___lexer___TAssign___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1537 */
+        /* parser/lexer.nit:1572 */
         REGB14 = TAG_Int(61);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1537 */
+          /* parser/lexer.nit:1572 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1538 */
-          fra.me.REG[4] = NEW_TMinuseq_parser___lexer___TMinuseq___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1573 */
+          fra.me.REG[4] = NEW_TPluseq_parser___lexer___TPluseq___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1540 */
+        /* parser/lexer.nit:1575 */
         REGB13 = TAG_Int(62);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1540 */
+          /* parser/lexer.nit:1575 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1541 */
-          fra.me.REG[4] = NEW_TDotdotdot_parser___lexer___TDotdotdot___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1576 */
+          fra.me.REG[4] = NEW_TMinuseq_parser___lexer___TMinuseq___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1543 */
+        /* parser/lexer.nit:1578 */
         REGB14 = TAG_Int(63);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1543 */
+          /* parser/lexer.nit:1578 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1544 */
-          fra.me.REG[4] = NEW_TDotdot_parser___lexer___TDotdot___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1579 */
+          fra.me.REG[4] = NEW_TDotdotdot_parser___lexer___TDotdotdot___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1546 */
+        /* parser/lexer.nit:1581 */
         REGB13 = TAG_Int(64);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1546 */
+          /* parser/lexer.nit:1581 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1547 */
-          fra.me.REG[4] = NEW_TDot_parser___lexer___TDot___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1582 */
+          fra.me.REG[4] = NEW_TDotdot_parser___lexer___TDotdot___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1549 */
+        /* parser/lexer.nit:1584 */
         REGB14 = TAG_Int(65);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1549 */
+          /* parser/lexer.nit:1584 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1550 */
-          fra.me.REG[4] = NEW_TPlus_parser___lexer___TPlus___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1585 */
+          fra.me.REG[4] = NEW_TDot_parser___lexer___TDot___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1552 */
+        /* parser/lexer.nit:1587 */
         REGB13 = TAG_Int(66);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1552 */
+          /* parser/lexer.nit:1587 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1553 */
-          fra.me.REG[4] = NEW_TMinus_parser___lexer___TMinus___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1588 */
+          fra.me.REG[4] = NEW_TPlus_parser___lexer___TPlus___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1555 */
+        /* parser/lexer.nit:1590 */
         REGB14 = TAG_Int(67);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1555 */
+          /* parser/lexer.nit:1590 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1556 */
-          fra.me.REG[4] = NEW_TStar_parser___lexer___TStar___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1591 */
+          fra.me.REG[4] = NEW_TMinus_parser___lexer___TMinus___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1558 */
+        /* parser/lexer.nit:1593 */
         REGB13 = TAG_Int(68);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1558 */
+          /* parser/lexer.nit:1593 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1559 */
-          fra.me.REG[4] = NEW_TSlash_parser___lexer___TSlash___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1594 */
+          fra.me.REG[4] = NEW_TStar_parser___lexer___TStar___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1561 */
+        /* parser/lexer.nit:1596 */
         REGB14 = TAG_Int(69);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1561 */
+          /* parser/lexer.nit:1596 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1562 */
-          fra.me.REG[4] = NEW_TPercent_parser___lexer___TPercent___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1597 */
+          fra.me.REG[4] = NEW_TSlash_parser___lexer___TSlash___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1564 */
+        /* parser/lexer.nit:1599 */
         REGB13 = TAG_Int(70);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1564 */
+          /* parser/lexer.nit:1599 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1565 */
-          fra.me.REG[4] = NEW_TEq_parser___lexer___TEq___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1600 */
+          fra.me.REG[4] = NEW_TPercent_parser___lexer___TPercent___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1567 */
+        /* parser/lexer.nit:1602 */
         REGB14 = TAG_Int(71);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1567 */
+          /* parser/lexer.nit:1602 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1568 */
-          fra.me.REG[4] = NEW_TNe_parser___lexer___TNe___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1603 */
+          fra.me.REG[4] = NEW_TEq_parser___lexer___TEq___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1570 */
+        /* parser/lexer.nit:1605 */
         REGB13 = TAG_Int(72);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1570 */
+          /* parser/lexer.nit:1605 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1571 */
-          fra.me.REG[4] = NEW_TLt_parser___lexer___TLt___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1606 */
+          fra.me.REG[4] = NEW_TNe_parser___lexer___TNe___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1573 */
+        /* parser/lexer.nit:1608 */
         REGB14 = TAG_Int(73);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1573 */
+          /* parser/lexer.nit:1608 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1574 */
-          fra.me.REG[4] = NEW_TLe_parser___lexer___TLe___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1609 */
+          fra.me.REG[4] = NEW_TLt_parser___lexer___TLt___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1576 */
+        /* parser/lexer.nit:1611 */
         REGB13 = TAG_Int(74);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1576 */
+          /* parser/lexer.nit:1611 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1577 */
-          fra.me.REG[4] = NEW_TLl_parser___lexer___TLl___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1612 */
+          fra.me.REG[4] = NEW_TLe_parser___lexer___TLe___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1579 */
+        /* parser/lexer.nit:1614 */
         REGB14 = TAG_Int(75);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1579 */
+          /* parser/lexer.nit:1614 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1580 */
-          fra.me.REG[4] = NEW_TGt_parser___lexer___TGt___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1615 */
+          fra.me.REG[4] = NEW_TLl_parser___lexer___TLl___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1582 */
+        /* parser/lexer.nit:1617 */
         REGB13 = TAG_Int(76);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1582 */
+          /* parser/lexer.nit:1617 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1583 */
-          fra.me.REG[4] = NEW_TGe_parser___lexer___TGe___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1618 */
+          fra.me.REG[4] = NEW_TGt_parser___lexer___TGt___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1585 */
+        /* parser/lexer.nit:1620 */
         REGB14 = TAG_Int(77);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1585 */
+          /* parser/lexer.nit:1620 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1586 */
-          fra.me.REG[4] = NEW_TGg_parser___lexer___TGg___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1621 */
+          fra.me.REG[4] = NEW_TGe_parser___lexer___TGe___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1588 */
+        /* parser/lexer.nit:1623 */
         REGB13 = TAG_Int(78);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1588 */
+          /* parser/lexer.nit:1623 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1589 */
-          fra.me.REG[4] = NEW_TStarship_parser___lexer___TStarship___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1624 */
+          fra.me.REG[4] = NEW_TGg_parser___lexer___TGg___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1591 */
+        /* parser/lexer.nit:1626 */
         REGB14 = TAG_Int(79);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1591 */
+          /* parser/lexer.nit:1626 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1592 */
-          fra.me.REG[4] = NEW_TBang_parser___lexer___TBang___init_tk(fra.me.REG[2]);
+          /* parser/lexer.nit:1627 */
+          fra.me.REG[4] = NEW_TStarship_parser___lexer___TStarship___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1594 */
+        /* parser/lexer.nit:1629 */
         REGB13 = TAG_Int(80);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1594 */
+          /* parser/lexer.nit:1629 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1595 */
-          fra.me.REG[4] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB2, REGB8);
-          /* ./parser//lexer.nit:1596 */
-          fra.me.REG[4] = NEW_TClassid_parser___lexer___TClassid___init_tk(fra.me.REG[4], fra.me.REG[2]);
+          /* parser/lexer.nit:1630 */
+          fra.me.REG[4] = NEW_TBang_parser___lexer___TBang___init_tk(fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1598 */
+        /* parser/lexer.nit:1632 */
         REGB14 = TAG_Int(81);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1598 */
+          /* parser/lexer.nit:1632 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1599 */
+          /* parser/lexer.nit:1633 */
           fra.me.REG[4] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB2, REGB8);
-          /* ./parser//lexer.nit:1600 */
-          fra.me.REG[4] = NEW_TId_parser___lexer___TId___init_tk(fra.me.REG[4], fra.me.REG[2]);
+          /* parser/lexer.nit:1634 */
+          fra.me.REG[4] = NEW_TClassid_parser___lexer___TClassid___init_tk(fra.me.REG[4], fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1602 */
+        /* parser/lexer.nit:1636 */
         REGB13 = TAG_Int(82);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1602 */
+          /* parser/lexer.nit:1636 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1603 */
+          /* parser/lexer.nit:1637 */
           fra.me.REG[4] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB2, REGB8);
-          /* ./parser//lexer.nit:1604 */
-          fra.me.REG[4] = NEW_TAttrid_parser___lexer___TAttrid___init_tk(fra.me.REG[4], fra.me.REG[2]);
+          /* parser/lexer.nit:1638 */
+          fra.me.REG[4] = NEW_TId_parser___lexer___TId___init_tk(fra.me.REG[4], fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1606 */
+        /* parser/lexer.nit:1640 */
         REGB14 = TAG_Int(83);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1606 */
+          /* parser/lexer.nit:1640 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1607 */
+          /* parser/lexer.nit:1641 */
           fra.me.REG[4] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB2, REGB8);
-          /* ./parser//lexer.nit:1608 */
-          fra.me.REG[4] = NEW_TNumber_parser___lexer___TNumber___init_tk(fra.me.REG[4], fra.me.REG[2]);
+          /* parser/lexer.nit:1642 */
+          fra.me.REG[4] = NEW_TAttrid_parser___lexer___TAttrid___init_tk(fra.me.REG[4], fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1610 */
+        /* parser/lexer.nit:1644 */
         REGB13 = TAG_Int(84);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1610 */
+          /* parser/lexer.nit:1644 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1611 */
+          /* parser/lexer.nit:1645 */
           fra.me.REG[4] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB2, REGB8);
-          /* ./parser//lexer.nit:1612 */
-          fra.me.REG[4] = NEW_TFloat_parser___lexer___TFloat___init_tk(fra.me.REG[4], fra.me.REG[2]);
+          /* parser/lexer.nit:1646 */
+          fra.me.REG[4] = NEW_TNumber_parser___lexer___TNumber___init_tk(fra.me.REG[4], fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1614 */
+        /* parser/lexer.nit:1648 */
         REGB14 = TAG_Int(85);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1614 */
+          /* parser/lexer.nit:1648 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1615 */
+          /* parser/lexer.nit:1649 */
           fra.me.REG[4] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB2, REGB8);
-          /* ./parser//lexer.nit:1616 */
-          fra.me.REG[4] = NEW_TChar_parser___lexer___TChar___init_tk(fra.me.REG[4], fra.me.REG[2]);
+          /* parser/lexer.nit:1650 */
+          fra.me.REG[4] = NEW_TFloat_parser___lexer___TFloat___init_tk(fra.me.REG[4], fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1618 */
+        /* parser/lexer.nit:1652 */
         REGB13 = TAG_Int(86);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1618 */
+          /* parser/lexer.nit:1652 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1619 */
+          /* parser/lexer.nit:1653 */
           fra.me.REG[4] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB2, REGB8);
-          /* ./parser//lexer.nit:1620 */
-          fra.me.REG[4] = NEW_TString_parser___lexer___TString___init_tk(fra.me.REG[4], fra.me.REG[2]);
+          /* parser/lexer.nit:1654 */
+          fra.me.REG[4] = NEW_TChar_parser___lexer___TChar___init_tk(fra.me.REG[4], fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1622 */
+        /* parser/lexer.nit:1656 */
         REGB14 = TAG_Int(87);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1622 */
+          /* parser/lexer.nit:1656 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1623 */
+          /* parser/lexer.nit:1657 */
           fra.me.REG[4] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB2, REGB8);
-          /* ./parser//lexer.nit:1624 */
-          fra.me.REG[4] = NEW_TStartString_parser___lexer___TStartString___init_tk(fra.me.REG[4], fra.me.REG[2]);
+          /* parser/lexer.nit:1658 */
+          fra.me.REG[4] = NEW_TString_parser___lexer___TString___init_tk(fra.me.REG[4], fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1626 */
+        /* parser/lexer.nit:1660 */
         REGB13 = TAG_Int(88);
         REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
         if (UNTAG_Bool(REGB14)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB13 = TAG_Bool((REGB7)==(REGB13));
-          /* ./parser//lexer.nit:1626 */
+          /* parser/lexer.nit:1660 */
           REGB14 = REGB13;
         }
         if (UNTAG_Bool(REGB14)) {
-          /* ./parser//lexer.nit:1627 */
+          /* parser/lexer.nit:1661 */
           fra.me.REG[4] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB2, REGB8);
-          /* ./parser//lexer.nit:1628 */
-          fra.me.REG[4] = NEW_TMidString_parser___lexer___TMidString___init_tk(fra.me.REG[4], fra.me.REG[2]);
+          /* parser/lexer.nit:1662 */
+          fra.me.REG[4] = NEW_TStartString_parser___lexer___TStartString___init_tk(fra.me.REG[4], fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[4];
           goto label3;
         }
-        /* ./parser//lexer.nit:1630 */
+        /* parser/lexer.nit:1664 */
         REGB14 = TAG_Int(89);
         REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
         if (UNTAG_Bool(REGB13)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB14 = TAG_Bool((REGB7)==(REGB14));
-          /* ./parser//lexer.nit:1630 */
+          /* parser/lexer.nit:1664 */
           REGB13 = REGB14;
         }
         if (UNTAG_Bool(REGB13)) {
-          /* ./parser//lexer.nit:1631 */
+          /* parser/lexer.nit:1665 */
           fra.me.REG[4] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB2, REGB8);
-          /* ./parser//lexer.nit:1632 */
-          fra.me.REG[2] = NEW_TEndString_parser___lexer___TEndString___init_tk(fra.me.REG[4], fra.me.REG[2]);
+          /* parser/lexer.nit:1666 */
+          fra.me.REG[4] = NEW_TMidString_parser___lexer___TMidString___init_tk(fra.me.REG[4], fra.me.REG[2]);
+          fra.me.REG[3] = fra.me.REG[4];
+          goto label3;
+        }
+        /* parser/lexer.nit:1668 */
+        REGB13 = TAG_Int(90);
+        REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
+        if (UNTAG_Bool(REGB14)) {
+        } else {
+          /* ../lib/standard/kernel.nit:227 */
+          REGB13 = TAG_Bool((REGB7)==(REGB13));
+          /* parser/lexer.nit:1668 */
+          REGB14 = REGB13;
+        }
+        if (UNTAG_Bool(REGB14)) {
+          /* parser/lexer.nit:1669 */
+          fra.me.REG[4] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB2, REGB8);
+          /* parser/lexer.nit:1670 */
+          fra.me.REG[4] = NEW_TEndString_parser___lexer___TEndString___init_tk(fra.me.REG[4], fra.me.REG[2]);
+          fra.me.REG[3] = fra.me.REG[4];
+          goto label3;
+        }
+        /* parser/lexer.nit:1672 */
+        REGB14 = TAG_Int(91);
+        REGB13 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB14));
+        if (UNTAG_Bool(REGB13)) {
+        } else {
+          /* ../lib/standard/kernel.nit:227 */
+          REGB14 = TAG_Bool((REGB7)==(REGB14));
+          /* parser/lexer.nit:1672 */
+          REGB13 = REGB14;
+        }
+        if (UNTAG_Bool(REGB13)) {
+          /* parser/lexer.nit:1673 */
+          fra.me.REG[4] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB2, REGB8);
+          /* parser/lexer.nit:1674 */
+          fra.me.REG[4] = NEW_TBadChar_parser___lexer___TBadChar___init_tk(fra.me.REG[4], fra.me.REG[2]);
+          fra.me.REG[3] = fra.me.REG[4];
+          goto label3;
+        }
+        /* parser/lexer.nit:1676 */
+        REGB13 = TAG_Int(92);
+        REGB14 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB13));
+        if (UNTAG_Bool(REGB14)) {
+        } else {
+          /* ../lib/standard/kernel.nit:227 */
+          REGB13 = TAG_Bool((REGB7)==(REGB13));
+          /* parser/lexer.nit:1676 */
+          REGB14 = REGB13;
+        }
+        if (UNTAG_Bool(REGB14)) {
+          /* parser/lexer.nit:1677 */
+          fra.me.REG[4] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB2, REGB8);
+          /* parser/lexer.nit:1678 */
+          fra.me.REG[2] = NEW_TBadString_parser___lexer___TBadString___init_tk(fra.me.REG[4], fra.me.REG[2]);
           fra.me.REG[3] = fra.me.REG[2];
           goto label3;
         }
       } else {
-        /* ./parser//lexer.nit:1635 */
+        /* parser/lexer.nit:1681 */
         ATTR_parser___lexer___Lexer____stream_pos(fra.me.REG[0]) = REGB1;
-        /* ./parser//lexer.nit:1636 */
-        REGB13 = TAG_Bool(ATTR_parser___lexer___Lexer____file(fra.me.REG[0])!=NIT_NULL);
-        if (UNTAG_Bool(REGB13)) {
+        /* parser/lexer.nit:1682 */
+        REGB14 = TAG_Bool(ATTR_parser___lexer___Lexer____file(fra.me.REG[0])!=NIT_NULL);
+        if (UNTAG_Bool(REGB14)) {
         } else {
-          nit_abort("Uninitialized attribute %s", "_file", LOCATE_parser___lexer, 1636);
+          nit_abort("Uninitialized attribute %s", "_file", LOCATE_parser___lexer, 1682);
         }
         fra.me.REG[2] = ATTR_parser___lexer___Lexer____file(fra.me.REG[0]);
-        REGB13 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
-        REGB13 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB13));
-        /* ./parser//lexer.nit:1636 */
         REGB14 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB14 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB14));
-        /* ./parser//lexer.nit:1636 */
+        /* parser/lexer.nit:1682 */
+        REGB13 = TAG_Int(1);
+        /* ../lib/standard/kernel.nit:235 */
+        REGB13 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB13));
+        /* parser/lexer.nit:1682 */
         REGB12 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB12 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB12));
-        /* ./parser//lexer.nit:1636 */
+        /* parser/lexer.nit:1682 */
         REGB11 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB11 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB11));
-        /* ./parser//lexer.nit:1636 */
-        fra.me.REG[2] = NEW_Location_location___Location___init(fra.me.REG[2], REGB13, REGB14, REGB12, REGB11);
+        /* parser/lexer.nit:1682 */
+        fra.me.REG[2] = NEW_Location_location___Location___init(fra.me.REG[2], REGB14, REGB13, REGB12, REGB11);
         REGB11 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB11)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:234 */
+        /* ../lib/standard/kernel.nit:234 */
         REGB11 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
-        /* ./parser//lexer.nit:1637 */
+        /* parser/lexer.nit:1683 */
         if (UNTAG_Bool(REGB11)) {
-          /* ./../lib/standard//kernel.nit:237 */
+          /* ../lib/standard/kernel.nit:237 */
           REGB11 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-          /* ./parser//lexer.nit:1638 */
+          /* parser/lexer.nit:1684 */
           fra.me.REG[4] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB2, REGB11);
-          /* ./parser//lexer.nit:1639 */
+          /* parser/lexer.nit:1685 */
           REGB11 = TAG_Int(3);
           fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB11);
           if (!once_value_4) {
@@ -7609,13 +7763,13 @@ val_t parser___lexer___Lexer___get_token(val_t p0){
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
           fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
           fra.me.REG[5] = NEW_AError_parser___lexer___AError___init_error(fra.me.REG[5], fra.me.REG[2]);
-          /* ./parser//lexer.nit:1640 */
+          /* parser/lexer.nit:1686 */
           fra.me.REG[3] = fra.me.REG[5];
           goto label3;
         } else {
-          /* ./parser//lexer.nit:1642 */
+          /* parser/lexer.nit:1688 */
           fra.me.REG[2] = NEW_EOF_parser___lexer___EOF___init(fra.me.REG[2]);
-          /* ./parser//lexer.nit:1643 */
+          /* parser/lexer.nit:1689 */
           fra.me.REG[3] = fra.me.REG[2];
           goto label3;
         }
index 2bdae3e..9ee7e63 100644 (file)
@@ -9,8 +9,7 @@ extern const classtable_elt_t VFT_parser___lexer___Lexer[];
 extern const char *LOCATE_parser___lexer;
 extern const int SFT_parser___lexer[];
 #define ATTR_parser___lexer___Token____text(recv) ATTR(recv, (SFT_parser___lexer[0] + 0))
-#define CALL_parser___lexer___Token___text(recv) ((parser___lexer___Token___text_t)CALL((recv), (SFT_parser___lexer[1] + 0)))
-#define CALL_parser___lexer___Token___parser_index(recv) ((parser___lexer___Token___parser_index_t)CALL((recv), (SFT_parser___lexer[1] + 1)))
+#define CALL_parser___lexer___Token___parser_index(recv) ((parser___lexer___Token___parser_index_t)CALL((recv), (SFT_parser___lexer[1] + 0)))
 #define CALL_parser___lexer___TEol___init_tk(recv) ((parser___lexer___TEol___init_tk_t)CALL((recv), (SFT_parser___lexer[2] + 0)))
 #define CALL_parser___lexer___TComment___init_tk(recv) ((parser___lexer___TComment___init_tk_t)CALL((recv), (SFT_parser___lexer[3] + 0)))
 #define CALL_parser___lexer___TKwmodule___init_tk(recv) ((parser___lexer___TKwmodule___init_tk_t)CALL((recv), (SFT_parser___lexer[4] + 0)))
@@ -62,74 +61,74 @@ extern const int SFT_parser___lexer[];
 #define CALL_parser___lexer___TKwnullable___init_tk(recv) ((parser___lexer___TKwnullable___init_tk_t)CALL((recv), (SFT_parser___lexer[50] + 0)))
 #define CALL_parser___lexer___TKwisset___init_tk(recv) ((parser___lexer___TKwisset___init_tk_t)CALL((recv), (SFT_parser___lexer[51] + 0)))
 #define CALL_parser___lexer___TKwlabel___init_tk(recv) ((parser___lexer___TKwlabel___init_tk_t)CALL((recv), (SFT_parser___lexer[52] + 0)))
-#define CALL_parser___lexer___TOpar___init_tk(recv) ((parser___lexer___TOpar___init_tk_t)CALL((recv), (SFT_parser___lexer[53] + 0)))
-#define CALL_parser___lexer___TCpar___init_tk(recv) ((parser___lexer___TCpar___init_tk_t)CALL((recv), (SFT_parser___lexer[54] + 0)))
-#define CALL_parser___lexer___TObra___init_tk(recv) ((parser___lexer___TObra___init_tk_t)CALL((recv), (SFT_parser___lexer[55] + 0)))
-#define CALL_parser___lexer___TCbra___init_tk(recv) ((parser___lexer___TCbra___init_tk_t)CALL((recv), (SFT_parser___lexer[56] + 0)))
-#define CALL_parser___lexer___TComma___init_tk(recv) ((parser___lexer___TComma___init_tk_t)CALL((recv), (SFT_parser___lexer[57] + 0)))
-#define CALL_parser___lexer___TColumn___init_tk(recv) ((parser___lexer___TColumn___init_tk_t)CALL((recv), (SFT_parser___lexer[58] + 0)))
-#define CALL_parser___lexer___TQuad___init_tk(recv) ((parser___lexer___TQuad___init_tk_t)CALL((recv), (SFT_parser___lexer[59] + 0)))
-#define CALL_parser___lexer___TAssign___init_tk(recv) ((parser___lexer___TAssign___init_tk_t)CALL((recv), (SFT_parser___lexer[60] + 0)))
-#define CALL_parser___lexer___TPluseq___init_tk(recv) ((parser___lexer___TPluseq___init_tk_t)CALL((recv), (SFT_parser___lexer[61] + 0)))
-#define CALL_parser___lexer___TMinuseq___init_tk(recv) ((parser___lexer___TMinuseq___init_tk_t)CALL((recv), (SFT_parser___lexer[62] + 0)))
-#define CALL_parser___lexer___TDotdotdot___init_tk(recv) ((parser___lexer___TDotdotdot___init_tk_t)CALL((recv), (SFT_parser___lexer[63] + 0)))
-#define CALL_parser___lexer___TDotdot___init_tk(recv) ((parser___lexer___TDotdot___init_tk_t)CALL((recv), (SFT_parser___lexer[64] + 0)))
-#define CALL_parser___lexer___TDot___init_tk(recv) ((parser___lexer___TDot___init_tk_t)CALL((recv), (SFT_parser___lexer[65] + 0)))
-#define CALL_parser___lexer___TPlus___init_tk(recv) ((parser___lexer___TPlus___init_tk_t)CALL((recv), (SFT_parser___lexer[66] + 0)))
-#define CALL_parser___lexer___TMinus___init_tk(recv) ((parser___lexer___TMinus___init_tk_t)CALL((recv), (SFT_parser___lexer[67] + 0)))
-#define CALL_parser___lexer___TStar___init_tk(recv) ((parser___lexer___TStar___init_tk_t)CALL((recv), (SFT_parser___lexer[68] + 0)))
-#define CALL_parser___lexer___TSlash___init_tk(recv) ((parser___lexer___TSlash___init_tk_t)CALL((recv), (SFT_parser___lexer[69] + 0)))
-#define CALL_parser___lexer___TPercent___init_tk(recv) ((parser___lexer___TPercent___init_tk_t)CALL((recv), (SFT_parser___lexer[70] + 0)))
-#define CALL_parser___lexer___TEq___init_tk(recv) ((parser___lexer___TEq___init_tk_t)CALL((recv), (SFT_parser___lexer[71] + 0)))
-#define CALL_parser___lexer___TNe___init_tk(recv) ((parser___lexer___TNe___init_tk_t)CALL((recv), (SFT_parser___lexer[72] + 0)))
-#define CALL_parser___lexer___TLt___init_tk(recv) ((parser___lexer___TLt___init_tk_t)CALL((recv), (SFT_parser___lexer[73] + 0)))
-#define CALL_parser___lexer___TLe___init_tk(recv) ((parser___lexer___TLe___init_tk_t)CALL((recv), (SFT_parser___lexer[74] + 0)))
-#define CALL_parser___lexer___TLl___init_tk(recv) ((parser___lexer___TLl___init_tk_t)CALL((recv), (SFT_parser___lexer[75] + 0)))
-#define CALL_parser___lexer___TGt___init_tk(recv) ((parser___lexer___TGt___init_tk_t)CALL((recv), (SFT_parser___lexer[76] + 0)))
-#define CALL_parser___lexer___TGe___init_tk(recv) ((parser___lexer___TGe___init_tk_t)CALL((recv), (SFT_parser___lexer[77] + 0)))
-#define CALL_parser___lexer___TGg___init_tk(recv) ((parser___lexer___TGg___init_tk_t)CALL((recv), (SFT_parser___lexer[78] + 0)))
-#define CALL_parser___lexer___TStarship___init_tk(recv) ((parser___lexer___TStarship___init_tk_t)CALL((recv), (SFT_parser___lexer[79] + 0)))
-#define CALL_parser___lexer___TBang___init_tk(recv) ((parser___lexer___TBang___init_tk_t)CALL((recv), (SFT_parser___lexer[80] + 0)))
-#define CALL_parser___lexer___TClassid___init_tk(recv) ((parser___lexer___TClassid___init_tk_t)CALL((recv), (SFT_parser___lexer[81] + 0)))
-#define CALL_parser___lexer___TId___init_tk(recv) ((parser___lexer___TId___init_tk_t)CALL((recv), (SFT_parser___lexer[82] + 0)))
-#define CALL_parser___lexer___TAttrid___init_tk(recv) ((parser___lexer___TAttrid___init_tk_t)CALL((recv), (SFT_parser___lexer[83] + 0)))
-#define CALL_parser___lexer___TNumber___init_tk(recv) ((parser___lexer___TNumber___init_tk_t)CALL((recv), (SFT_parser___lexer[84] + 0)))
-#define CALL_parser___lexer___TFloat___init_tk(recv) ((parser___lexer___TFloat___init_tk_t)CALL((recv), (SFT_parser___lexer[85] + 0)))
-#define CALL_parser___lexer___TChar___init_tk(recv) ((parser___lexer___TChar___init_tk_t)CALL((recv), (SFT_parser___lexer[86] + 0)))
-#define CALL_parser___lexer___TString___init_tk(recv) ((parser___lexer___TString___init_tk_t)CALL((recv), (SFT_parser___lexer[87] + 0)))
-#define CALL_parser___lexer___TStartString___init_tk(recv) ((parser___lexer___TStartString___init_tk_t)CALL((recv), (SFT_parser___lexer[88] + 0)))
-#define CALL_parser___lexer___TMidString___init_tk(recv) ((parser___lexer___TMidString___init_tk_t)CALL((recv), (SFT_parser___lexer[89] + 0)))
-#define CALL_parser___lexer___TEndString___init_tk(recv) ((parser___lexer___TEndString___init_tk_t)CALL((recv), (SFT_parser___lexer[90] + 0)))
-#define CALL_parser___lexer___EOF___init(recv) ((parser___lexer___EOF___init_t)CALL((recv), (SFT_parser___lexer[91] + 0)))
-#define ATTR_parser___lexer___AError____message(recv) ATTR(recv, (SFT_parser___lexer[92] + 0))
-#define CALL_parser___lexer___AError___message(recv) ((parser___lexer___AError___message_t)CALL((recv), (SFT_parser___lexer[93] + 0)))
-#define CALL_parser___lexer___AError___init_error(recv) ((parser___lexer___AError___init_error_t)CALL((recv), (SFT_parser___lexer[93] + 1)))
-#define ID_parser___lexer___Lexer (SFT_parser___lexer[94])
-#define COLOR_parser___lexer___Lexer (SFT_parser___lexer[95])
-#define ATTR_parser___lexer___Lexer____token(recv) ATTR(recv, (SFT_parser___lexer[96] + 0))
-#define ATTR_parser___lexer___Lexer____state(recv) ATTR(recv, (SFT_parser___lexer[96] + 1))
-#define ATTR_parser___lexer___Lexer____file(recv) ATTR(recv, (SFT_parser___lexer[96] + 2))
-#define ATTR_parser___lexer___Lexer____stream_pos(recv) ATTR(recv, (SFT_parser___lexer[96] + 3))
-#define ATTR_parser___lexer___Lexer____line(recv) ATTR(recv, (SFT_parser___lexer[96] + 4))
-#define ATTR_parser___lexer___Lexer____pos(recv) ATTR(recv, (SFT_parser___lexer[96] + 5))
-#define ATTR_parser___lexer___Lexer____cr(recv) ATTR(recv, (SFT_parser___lexer[96] + 6))
-#define INIT_TABLE_POS_parser___lexer___Lexer (SFT_parser___lexer[97] + 0)
-#define CALL_parser___lexer___Lexer___file(recv) ((parser___lexer___Lexer___file_t)CALL((recv), (SFT_parser___lexer[97] + 1)))
-#define CALL_parser___lexer___Lexer___state_initial(recv) ((parser___lexer___Lexer___state_initial_t)CALL((recv), (SFT_parser___lexer[97] + 2)))
-#define CALL_parser___lexer___Lexer___init(recv) ((parser___lexer___Lexer___init_t)CALL((recv), (SFT_parser___lexer[97] + 3)))
-#define CALL_parser___lexer___Lexer___peek(recv) ((parser___lexer___Lexer___peek_t)CALL((recv), (SFT_parser___lexer[97] + 4)))
-#define CALL_parser___lexer___Lexer___next(recv) ((parser___lexer___Lexer___next_t)CALL((recv), (SFT_parser___lexer[97] + 5)))
-#define CALL_parser___lexer___Lexer___get_token(recv) ((parser___lexer___Lexer___get_token_t)CALL((recv), (SFT_parser___lexer[97] + 6)))
-static const char * const LOCATE_parser___lexer___Token___text = "lexer::Token::text";
+#define CALL_parser___lexer___TKwdebug___init_tk(recv) ((parser___lexer___TKwdebug___init_tk_t)CALL((recv), (SFT_parser___lexer[53] + 0)))
+#define CALL_parser___lexer___TOpar___init_tk(recv) ((parser___lexer___TOpar___init_tk_t)CALL((recv), (SFT_parser___lexer[54] + 0)))
+#define CALL_parser___lexer___TCpar___init_tk(recv) ((parser___lexer___TCpar___init_tk_t)CALL((recv), (SFT_parser___lexer[55] + 0)))
+#define CALL_parser___lexer___TObra___init_tk(recv) ((parser___lexer___TObra___init_tk_t)CALL((recv), (SFT_parser___lexer[56] + 0)))
+#define CALL_parser___lexer___TCbra___init_tk(recv) ((parser___lexer___TCbra___init_tk_t)CALL((recv), (SFT_parser___lexer[57] + 0)))
+#define CALL_parser___lexer___TComma___init_tk(recv) ((parser___lexer___TComma___init_tk_t)CALL((recv), (SFT_parser___lexer[58] + 0)))
+#define CALL_parser___lexer___TColumn___init_tk(recv) ((parser___lexer___TColumn___init_tk_t)CALL((recv), (SFT_parser___lexer[59] + 0)))
+#define CALL_parser___lexer___TQuad___init_tk(recv) ((parser___lexer___TQuad___init_tk_t)CALL((recv), (SFT_parser___lexer[60] + 0)))
+#define CALL_parser___lexer___TAssign___init_tk(recv) ((parser___lexer___TAssign___init_tk_t)CALL((recv), (SFT_parser___lexer[61] + 0)))
+#define CALL_parser___lexer___TPluseq___init_tk(recv) ((parser___lexer___TPluseq___init_tk_t)CALL((recv), (SFT_parser___lexer[62] + 0)))
+#define CALL_parser___lexer___TMinuseq___init_tk(recv) ((parser___lexer___TMinuseq___init_tk_t)CALL((recv), (SFT_parser___lexer[63] + 0)))
+#define CALL_parser___lexer___TDotdotdot___init_tk(recv) ((parser___lexer___TDotdotdot___init_tk_t)CALL((recv), (SFT_parser___lexer[64] + 0)))
+#define CALL_parser___lexer___TDotdot___init_tk(recv) ((parser___lexer___TDotdot___init_tk_t)CALL((recv), (SFT_parser___lexer[65] + 0)))
+#define CALL_parser___lexer___TDot___init_tk(recv) ((parser___lexer___TDot___init_tk_t)CALL((recv), (SFT_parser___lexer[66] + 0)))
+#define CALL_parser___lexer___TPlus___init_tk(recv) ((parser___lexer___TPlus___init_tk_t)CALL((recv), (SFT_parser___lexer[67] + 0)))
+#define CALL_parser___lexer___TMinus___init_tk(recv) ((parser___lexer___TMinus___init_tk_t)CALL((recv), (SFT_parser___lexer[68] + 0)))
+#define CALL_parser___lexer___TStar___init_tk(recv) ((parser___lexer___TStar___init_tk_t)CALL((recv), (SFT_parser___lexer[69] + 0)))
+#define CALL_parser___lexer___TSlash___init_tk(recv) ((parser___lexer___TSlash___init_tk_t)CALL((recv), (SFT_parser___lexer[70] + 0)))
+#define CALL_parser___lexer___TPercent___init_tk(recv) ((parser___lexer___TPercent___init_tk_t)CALL((recv), (SFT_parser___lexer[71] + 0)))
+#define CALL_parser___lexer___TEq___init_tk(recv) ((parser___lexer___TEq___init_tk_t)CALL((recv), (SFT_parser___lexer[72] + 0)))
+#define CALL_parser___lexer___TNe___init_tk(recv) ((parser___lexer___TNe___init_tk_t)CALL((recv), (SFT_parser___lexer[73] + 0)))
+#define CALL_parser___lexer___TLt___init_tk(recv) ((parser___lexer___TLt___init_tk_t)CALL((recv), (SFT_parser___lexer[74] + 0)))
+#define CALL_parser___lexer___TLe___init_tk(recv) ((parser___lexer___TLe___init_tk_t)CALL((recv), (SFT_parser___lexer[75] + 0)))
+#define CALL_parser___lexer___TLl___init_tk(recv) ((parser___lexer___TLl___init_tk_t)CALL((recv), (SFT_parser___lexer[76] + 0)))
+#define CALL_parser___lexer___TGt___init_tk(recv) ((parser___lexer___TGt___init_tk_t)CALL((recv), (SFT_parser___lexer[77] + 0)))
+#define CALL_parser___lexer___TGe___init_tk(recv) ((parser___lexer___TGe___init_tk_t)CALL((recv), (SFT_parser___lexer[78] + 0)))
+#define CALL_parser___lexer___TGg___init_tk(recv) ((parser___lexer___TGg___init_tk_t)CALL((recv), (SFT_parser___lexer[79] + 0)))
+#define CALL_parser___lexer___TStarship___init_tk(recv) ((parser___lexer___TStarship___init_tk_t)CALL((recv), (SFT_parser___lexer[80] + 0)))
+#define CALL_parser___lexer___TBang___init_tk(recv) ((parser___lexer___TBang___init_tk_t)CALL((recv), (SFT_parser___lexer[81] + 0)))
+#define CALL_parser___lexer___TClassid___init_tk(recv) ((parser___lexer___TClassid___init_tk_t)CALL((recv), (SFT_parser___lexer[82] + 0)))
+#define CALL_parser___lexer___TId___init_tk(recv) ((parser___lexer___TId___init_tk_t)CALL((recv), (SFT_parser___lexer[83] + 0)))
+#define CALL_parser___lexer___TAttrid___init_tk(recv) ((parser___lexer___TAttrid___init_tk_t)CALL((recv), (SFT_parser___lexer[84] + 0)))
+#define CALL_parser___lexer___TNumber___init_tk(recv) ((parser___lexer___TNumber___init_tk_t)CALL((recv), (SFT_parser___lexer[85] + 0)))
+#define CALL_parser___lexer___TFloat___init_tk(recv) ((parser___lexer___TFloat___init_tk_t)CALL((recv), (SFT_parser___lexer[86] + 0)))
+#define CALL_parser___lexer___TChar___init_tk(recv) ((parser___lexer___TChar___init_tk_t)CALL((recv), (SFT_parser___lexer[87] + 0)))
+#define CALL_parser___lexer___TString___init_tk(recv) ((parser___lexer___TString___init_tk_t)CALL((recv), (SFT_parser___lexer[88] + 0)))
+#define CALL_parser___lexer___TStartString___init_tk(recv) ((parser___lexer___TStartString___init_tk_t)CALL((recv), (SFT_parser___lexer[89] + 0)))
+#define CALL_parser___lexer___TMidString___init_tk(recv) ((parser___lexer___TMidString___init_tk_t)CALL((recv), (SFT_parser___lexer[90] + 0)))
+#define CALL_parser___lexer___TEndString___init_tk(recv) ((parser___lexer___TEndString___init_tk_t)CALL((recv), (SFT_parser___lexer[91] + 0)))
+#define CALL_parser___lexer___TBadChar___init_tk(recv) ((parser___lexer___TBadChar___init_tk_t)CALL((recv), (SFT_parser___lexer[92] + 0)))
+#define CALL_parser___lexer___TBadString___init_tk(recv) ((parser___lexer___TBadString___init_tk_t)CALL((recv), (SFT_parser___lexer[93] + 0)))
+#define CALL_parser___lexer___EOF___init(recv) ((parser___lexer___EOF___init_t)CALL((recv), (SFT_parser___lexer[94] + 0)))
+#define ATTR_parser___lexer___AError____message(recv) ATTR(recv, (SFT_parser___lexer[95] + 0))
+#define CALL_parser___lexer___AError___message(recv) ((parser___lexer___AError___message_t)CALL((recv), (SFT_parser___lexer[96] + 0)))
+#define CALL_parser___lexer___AError___init_error(recv) ((parser___lexer___AError___init_error_t)CALL((recv), (SFT_parser___lexer[96] + 1)))
+#define ID_parser___lexer___Lexer (SFT_parser___lexer[97])
+#define COLOR_parser___lexer___Lexer (SFT_parser___lexer[98])
+#define ATTR_parser___lexer___Lexer____token(recv) ATTR(recv, (SFT_parser___lexer[99] + 0))
+#define ATTR_parser___lexer___Lexer____state(recv) ATTR(recv, (SFT_parser___lexer[99] + 1))
+#define ATTR_parser___lexer___Lexer____file(recv) ATTR(recv, (SFT_parser___lexer[99] + 2))
+#define ATTR_parser___lexer___Lexer____stream_pos(recv) ATTR(recv, (SFT_parser___lexer[99] + 3))
+#define ATTR_parser___lexer___Lexer____line(recv) ATTR(recv, (SFT_parser___lexer[99] + 4))
+#define ATTR_parser___lexer___Lexer____pos(recv) ATTR(recv, (SFT_parser___lexer[99] + 5))
+#define ATTR_parser___lexer___Lexer____cr(recv) ATTR(recv, (SFT_parser___lexer[99] + 6))
+#define INIT_TABLE_POS_parser___lexer___Lexer (SFT_parser___lexer[100] + 0)
+#define CALL_parser___lexer___Lexer___file(recv) ((parser___lexer___Lexer___file_t)CALL((recv), (SFT_parser___lexer[100] + 1)))
+#define CALL_parser___lexer___Lexer___state_initial(recv) ((parser___lexer___Lexer___state_initial_t)CALL((recv), (SFT_parser___lexer[100] + 2)))
+#define CALL_parser___lexer___Lexer___init(recv) ((parser___lexer___Lexer___init_t)CALL((recv), (SFT_parser___lexer[100] + 3)))
+#define CALL_parser___lexer___Lexer___peek(recv) ((parser___lexer___Lexer___peek_t)CALL((recv), (SFT_parser___lexer[100] + 4)))
+#define CALL_parser___lexer___Lexer___next(recv) ((parser___lexer___Lexer___next_t)CALL((recv), (SFT_parser___lexer[100] + 5)))
+#define CALL_parser___lexer___Lexer___get_token(recv) ((parser___lexer___Lexer___get_token_t)CALL((recv), (SFT_parser___lexer[100] + 6)))
+static const char * const LOCATE_parser___lexer___Token___text = "lexer::Token::(parser_nodes::Token::text)";
 val_t parser___lexer___Token___text(val_t p0);
 typedef val_t (*parser___lexer___Token___text_t)(val_t p0);
 static const char * const LOCATE_parser___lexer___Token___parser_index = "lexer::Token::parser_index";
 val_t parser___lexer___Token___parser_index(val_t p0);
 typedef val_t (*parser___lexer___Token___parser_index_t)(val_t p0);
-static const char * const LOCATE_parser___lexer___Token___to_s = "lexer::Token::(string::Object::to_s)";
-val_t parser___lexer___Token___to_s(val_t p0);
-typedef val_t (*parser___lexer___Token___to_s_t)(val_t p0);
-val_t NEW_Token_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_Token_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TEol___parser_index = "lexer::TEol::(lexer::Token::parser_index)";
 val_t parser___lexer___TEol___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TEol___parser_index_t)(val_t p0);
@@ -137,7 +136,7 @@ static const char * const LOCATE_parser___lexer___TEol___init_tk = "lexer::TEol:
 void parser___lexer___TEol___init_tk(val_t p0, val_t p1, val_t p2, int* init_table);
 typedef void (*parser___lexer___TEol___init_tk_t)(val_t p0, val_t p1, val_t p2, int* init_table);
 val_t NEW_TEol_parser___lexer___TEol___init_tk(val_t p0, val_t p1);
-val_t NEW_TEol_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TEol_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TComment___parser_index = "lexer::TComment::(lexer::Token::parser_index)";
 val_t parser___lexer___TComment___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TComment___parser_index_t)(val_t p0);
@@ -145,7 +144,7 @@ static const char * const LOCATE_parser___lexer___TComment___init_tk = "lexer::T
 void parser___lexer___TComment___init_tk(val_t p0, val_t p1, val_t p2, int* init_table);
 typedef void (*parser___lexer___TComment___init_tk_t)(val_t p0, val_t p1, val_t p2, int* init_table);
 val_t NEW_TComment_parser___lexer___TComment___init_tk(val_t p0, val_t p1);
-val_t NEW_TComment_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TComment_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwmodule___parser_index = "lexer::TKwmodule::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwmodule___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwmodule___parser_index_t)(val_t p0);
@@ -153,7 +152,7 @@ static const char * const LOCATE_parser___lexer___TKwmodule___init_tk = "lexer::
 void parser___lexer___TKwmodule___init_tk(val_t p0, val_t p1, val_t p2, int* init_table);
 typedef void (*parser___lexer___TKwmodule___init_tk_t)(val_t p0, val_t p1, val_t p2, int* init_table);
 val_t NEW_TKwmodule_parser___lexer___TKwmodule___init_tk(val_t p0, val_t p1);
-val_t NEW_TKwmodule_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwmodule_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwimport___parser_index = "lexer::TKwimport::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwimport___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwimport___parser_index_t)(val_t p0);
@@ -161,7 +160,7 @@ static const char * const LOCATE_parser___lexer___TKwimport___init_tk = "lexer::
 void parser___lexer___TKwimport___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwimport___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwimport_parser___lexer___TKwimport___init_tk(val_t p0);
-val_t NEW_TKwimport_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwimport_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwclass___parser_index = "lexer::TKwclass::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwclass___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwclass___parser_index_t)(val_t p0);
@@ -169,7 +168,7 @@ static const char * const LOCATE_parser___lexer___TKwclass___init_tk = "lexer::T
 void parser___lexer___TKwclass___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwclass___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwclass_parser___lexer___TKwclass___init_tk(val_t p0);
-val_t NEW_TKwclass_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwclass_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwabstract___parser_index = "lexer::TKwabstract::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwabstract___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwabstract___parser_index_t)(val_t p0);
@@ -177,7 +176,7 @@ static const char * const LOCATE_parser___lexer___TKwabstract___init_tk = "lexer
 void parser___lexer___TKwabstract___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwabstract___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwabstract_parser___lexer___TKwabstract___init_tk(val_t p0);
-val_t NEW_TKwabstract_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwabstract_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwinterface___parser_index = "lexer::TKwinterface::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwinterface___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwinterface___parser_index_t)(val_t p0);
@@ -185,7 +184,7 @@ static const char * const LOCATE_parser___lexer___TKwinterface___init_tk = "lexe
 void parser___lexer___TKwinterface___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwinterface___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwinterface_parser___lexer___TKwinterface___init_tk(val_t p0);
-val_t NEW_TKwinterface_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwinterface_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwenum___parser_index = "lexer::TKwenum::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwenum___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwenum___parser_index_t)(val_t p0);
@@ -193,7 +192,7 @@ static const char * const LOCATE_parser___lexer___TKwenum___init_tk = "lexer::TK
 void parser___lexer___TKwenum___init_tk(val_t p0, val_t p1, val_t p2, int* init_table);
 typedef void (*parser___lexer___TKwenum___init_tk_t)(val_t p0, val_t p1, val_t p2, int* init_table);
 val_t NEW_TKwenum_parser___lexer___TKwenum___init_tk(val_t p0, val_t p1);
-val_t NEW_TKwenum_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwenum_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwspecial___parser_index = "lexer::TKwspecial::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwspecial___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwspecial___parser_index_t)(val_t p0);
@@ -201,7 +200,7 @@ static const char * const LOCATE_parser___lexer___TKwspecial___init_tk = "lexer:
 void parser___lexer___TKwspecial___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwspecial___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwspecial_parser___lexer___TKwspecial___init_tk(val_t p0);
-val_t NEW_TKwspecial_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwspecial_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwend___parser_index = "lexer::TKwend::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwend___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwend___parser_index_t)(val_t p0);
@@ -209,7 +208,7 @@ static const char * const LOCATE_parser___lexer___TKwend___init_tk = "lexer::TKw
 void parser___lexer___TKwend___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwend___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwend_parser___lexer___TKwend___init_tk(val_t p0);
-val_t NEW_TKwend_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwend_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwmeth___parser_index = "lexer::TKwmeth::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwmeth___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwmeth___parser_index_t)(val_t p0);
@@ -217,7 +216,7 @@ static const char * const LOCATE_parser___lexer___TKwmeth___init_tk = "lexer::TK
 void parser___lexer___TKwmeth___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwmeth___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwmeth_parser___lexer___TKwmeth___init_tk(val_t p0);
-val_t NEW_TKwmeth_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwmeth_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwtype___parser_index = "lexer::TKwtype::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwtype___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwtype___parser_index_t)(val_t p0);
@@ -225,7 +224,7 @@ static const char * const LOCATE_parser___lexer___TKwtype___init_tk = "lexer::TK
 void parser___lexer___TKwtype___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwtype___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwtype_parser___lexer___TKwtype___init_tk(val_t p0);
-val_t NEW_TKwtype_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwtype_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwinit___parser_index = "lexer::TKwinit::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwinit___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwinit___parser_index_t)(val_t p0);
@@ -233,7 +232,7 @@ static const char * const LOCATE_parser___lexer___TKwinit___init_tk = "lexer::TK
 void parser___lexer___TKwinit___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwinit___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwinit_parser___lexer___TKwinit___init_tk(val_t p0);
-val_t NEW_TKwinit_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwinit_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwredef___parser_index = "lexer::TKwredef::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwredef___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwredef___parser_index_t)(val_t p0);
@@ -241,7 +240,7 @@ static const char * const LOCATE_parser___lexer___TKwredef___init_tk = "lexer::T
 void parser___lexer___TKwredef___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwredef___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwredef_parser___lexer___TKwredef___init_tk(val_t p0);
-val_t NEW_TKwredef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwredef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwis___parser_index = "lexer::TKwis::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwis___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwis___parser_index_t)(val_t p0);
@@ -249,7 +248,7 @@ static const char * const LOCATE_parser___lexer___TKwis___init_tk = "lexer::TKwi
 void parser___lexer___TKwis___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwis___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwis_parser___lexer___TKwis___init_tk(val_t p0);
-val_t NEW_TKwis_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwis_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwdo___parser_index = "lexer::TKwdo::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwdo___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwdo___parser_index_t)(val_t p0);
@@ -257,7 +256,7 @@ static const char * const LOCATE_parser___lexer___TKwdo___init_tk = "lexer::TKwd
 void parser___lexer___TKwdo___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwdo___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwdo_parser___lexer___TKwdo___init_tk(val_t p0);
-val_t NEW_TKwdo_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwdo_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwreadable___parser_index = "lexer::TKwreadable::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwreadable___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwreadable___parser_index_t)(val_t p0);
@@ -265,7 +264,7 @@ static const char * const LOCATE_parser___lexer___TKwreadable___init_tk = "lexer
 void parser___lexer___TKwreadable___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwreadable___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwreadable_parser___lexer___TKwreadable___init_tk(val_t p0);
-val_t NEW_TKwreadable_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwreadable_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwwritable___parser_index = "lexer::TKwwritable::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwwritable___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwwritable___parser_index_t)(val_t p0);
@@ -273,7 +272,7 @@ static const char * const LOCATE_parser___lexer___TKwwritable___init_tk = "lexer
 void parser___lexer___TKwwritable___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwwritable___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwwritable_parser___lexer___TKwwritable___init_tk(val_t p0);
-val_t NEW_TKwwritable_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwwritable_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwvar___parser_index = "lexer::TKwvar::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwvar___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwvar___parser_index_t)(val_t p0);
@@ -281,7 +280,7 @@ static const char * const LOCATE_parser___lexer___TKwvar___init_tk = "lexer::TKw
 void parser___lexer___TKwvar___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwvar___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwvar_parser___lexer___TKwvar___init_tk(val_t p0);
-val_t NEW_TKwvar_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwvar_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwintern___parser_index = "lexer::TKwintern::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwintern___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwintern___parser_index_t)(val_t p0);
@@ -289,7 +288,7 @@ static const char * const LOCATE_parser___lexer___TKwintern___init_tk = "lexer::
 void parser___lexer___TKwintern___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwintern___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwintern_parser___lexer___TKwintern___init_tk(val_t p0);
-val_t NEW_TKwintern_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwintern_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwextern___parser_index = "lexer::TKwextern::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwextern___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwextern___parser_index_t)(val_t p0);
@@ -297,7 +296,7 @@ static const char * const LOCATE_parser___lexer___TKwextern___init_tk = "lexer::
 void parser___lexer___TKwextern___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwextern___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwextern_parser___lexer___TKwextern___init_tk(val_t p0);
-val_t NEW_TKwextern_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwextern_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwprotected___parser_index = "lexer::TKwprotected::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwprotected___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwprotected___parser_index_t)(val_t p0);
@@ -305,7 +304,7 @@ static const char * const LOCATE_parser___lexer___TKwprotected___init_tk = "lexe
 void parser___lexer___TKwprotected___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwprotected___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwprotected_parser___lexer___TKwprotected___init_tk(val_t p0);
-val_t NEW_TKwprotected_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwprotected_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwprivate___parser_index = "lexer::TKwprivate::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwprivate___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwprivate___parser_index_t)(val_t p0);
@@ -313,7 +312,7 @@ static const char * const LOCATE_parser___lexer___TKwprivate___init_tk = "lexer:
 void parser___lexer___TKwprivate___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwprivate___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwprivate_parser___lexer___TKwprivate___init_tk(val_t p0);
-val_t NEW_TKwprivate_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwprivate_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwintrude___parser_index = "lexer::TKwintrude::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwintrude___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwintrude___parser_index_t)(val_t p0);
@@ -321,7 +320,7 @@ static const char * const LOCATE_parser___lexer___TKwintrude___init_tk = "lexer:
 void parser___lexer___TKwintrude___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwintrude___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwintrude_parser___lexer___TKwintrude___init_tk(val_t p0);
-val_t NEW_TKwintrude_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwintrude_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwif___parser_index = "lexer::TKwif::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwif___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwif___parser_index_t)(val_t p0);
@@ -329,7 +328,7 @@ static const char * const LOCATE_parser___lexer___TKwif___init_tk = "lexer::TKwi
 void parser___lexer___TKwif___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwif___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwif_parser___lexer___TKwif___init_tk(val_t p0);
-val_t NEW_TKwif_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwif_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwthen___parser_index = "lexer::TKwthen::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwthen___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwthen___parser_index_t)(val_t p0);
@@ -337,7 +336,7 @@ static const char * const LOCATE_parser___lexer___TKwthen___init_tk = "lexer::TK
 void parser___lexer___TKwthen___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwthen___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwthen_parser___lexer___TKwthen___init_tk(val_t p0);
-val_t NEW_TKwthen_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwthen_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwelse___parser_index = "lexer::TKwelse::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwelse___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwelse___parser_index_t)(val_t p0);
@@ -345,7 +344,7 @@ static const char * const LOCATE_parser___lexer___TKwelse___init_tk = "lexer::TK
 void parser___lexer___TKwelse___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwelse___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwelse_parser___lexer___TKwelse___init_tk(val_t p0);
-val_t NEW_TKwelse_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwelse_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwwhile___parser_index = "lexer::TKwwhile::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwwhile___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwwhile___parser_index_t)(val_t p0);
@@ -353,7 +352,7 @@ static const char * const LOCATE_parser___lexer___TKwwhile___init_tk = "lexer::T
 void parser___lexer___TKwwhile___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwwhile___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwwhile_parser___lexer___TKwwhile___init_tk(val_t p0);
-val_t NEW_TKwwhile_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwwhile_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwloop___parser_index = "lexer::TKwloop::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwloop___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwloop___parser_index_t)(val_t p0);
@@ -361,7 +360,7 @@ static const char * const LOCATE_parser___lexer___TKwloop___init_tk = "lexer::TK
 void parser___lexer___TKwloop___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwloop___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwloop_parser___lexer___TKwloop___init_tk(val_t p0);
-val_t NEW_TKwloop_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwloop_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwfor___parser_index = "lexer::TKwfor::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwfor___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwfor___parser_index_t)(val_t p0);
@@ -369,7 +368,7 @@ static const char * const LOCATE_parser___lexer___TKwfor___init_tk = "lexer::TKw
 void parser___lexer___TKwfor___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwfor___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwfor_parser___lexer___TKwfor___init_tk(val_t p0);
-val_t NEW_TKwfor_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwfor_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwin___parser_index = "lexer::TKwin::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwin___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwin___parser_index_t)(val_t p0);
@@ -377,7 +376,7 @@ static const char * const LOCATE_parser___lexer___TKwin___init_tk = "lexer::TKwi
 void parser___lexer___TKwin___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwin___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwin_parser___lexer___TKwin___init_tk(val_t p0);
-val_t NEW_TKwin_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwin_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwand___parser_index = "lexer::TKwand::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwand___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwand___parser_index_t)(val_t p0);
@@ -385,7 +384,7 @@ static const char * const LOCATE_parser___lexer___TKwand___init_tk = "lexer::TKw
 void parser___lexer___TKwand___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwand___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwand_parser___lexer___TKwand___init_tk(val_t p0);
-val_t NEW_TKwand_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwand_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwor___parser_index = "lexer::TKwor::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwor___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwor___parser_index_t)(val_t p0);
@@ -393,7 +392,7 @@ static const char * const LOCATE_parser___lexer___TKwor___init_tk = "lexer::TKwo
 void parser___lexer___TKwor___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwor___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwor_parser___lexer___TKwor___init_tk(val_t p0);
-val_t NEW_TKwor_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwor_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwnot___parser_index = "lexer::TKwnot::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwnot___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwnot___parser_index_t)(val_t p0);
@@ -401,7 +400,7 @@ static const char * const LOCATE_parser___lexer___TKwnot___init_tk = "lexer::TKw
 void parser___lexer___TKwnot___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwnot___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwnot_parser___lexer___TKwnot___init_tk(val_t p0);
-val_t NEW_TKwnot_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwnot_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwreturn___parser_index = "lexer::TKwreturn::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwreturn___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwreturn___parser_index_t)(val_t p0);
@@ -409,7 +408,7 @@ static const char * const LOCATE_parser___lexer___TKwreturn___init_tk = "lexer::
 void parser___lexer___TKwreturn___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwreturn___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwreturn_parser___lexer___TKwreturn___init_tk(val_t p0);
-val_t NEW_TKwreturn_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwreturn_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwcontinue___parser_index = "lexer::TKwcontinue::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwcontinue___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwcontinue___parser_index_t)(val_t p0);
@@ -417,7 +416,7 @@ static const char * const LOCATE_parser___lexer___TKwcontinue___init_tk = "lexer
 void parser___lexer___TKwcontinue___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwcontinue___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwcontinue_parser___lexer___TKwcontinue___init_tk(val_t p0);
-val_t NEW_TKwcontinue_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwcontinue_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwbreak___parser_index = "lexer::TKwbreak::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwbreak___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwbreak___parser_index_t)(val_t p0);
@@ -425,7 +424,7 @@ static const char * const LOCATE_parser___lexer___TKwbreak___init_tk = "lexer::T
 void parser___lexer___TKwbreak___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwbreak___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwbreak_parser___lexer___TKwbreak___init_tk(val_t p0);
-val_t NEW_TKwbreak_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwbreak_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwabort___parser_index = "lexer::TKwabort::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwabort___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwabort___parser_index_t)(val_t p0);
@@ -433,7 +432,7 @@ static const char * const LOCATE_parser___lexer___TKwabort___init_tk = "lexer::T
 void parser___lexer___TKwabort___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwabort___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwabort_parser___lexer___TKwabort___init_tk(val_t p0);
-val_t NEW_TKwabort_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwabort_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwassert___parser_index = "lexer::TKwassert::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwassert___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwassert___parser_index_t)(val_t p0);
@@ -441,7 +440,7 @@ static const char * const LOCATE_parser___lexer___TKwassert___init_tk = "lexer::
 void parser___lexer___TKwassert___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwassert___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwassert_parser___lexer___TKwassert___init_tk(val_t p0);
-val_t NEW_TKwassert_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwassert_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwnew___parser_index = "lexer::TKwnew::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwnew___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwnew___parser_index_t)(val_t p0);
@@ -449,7 +448,7 @@ static const char * const LOCATE_parser___lexer___TKwnew___init_tk = "lexer::TKw
 void parser___lexer___TKwnew___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwnew___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwnew_parser___lexer___TKwnew___init_tk(val_t p0);
-val_t NEW_TKwnew_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwnew_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwisa___parser_index = "lexer::TKwisa::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwisa___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwisa___parser_index_t)(val_t p0);
@@ -457,7 +456,7 @@ static const char * const LOCATE_parser___lexer___TKwisa___init_tk = "lexer::TKw
 void parser___lexer___TKwisa___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwisa___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwisa_parser___lexer___TKwisa___init_tk(val_t p0);
-val_t NEW_TKwisa_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwisa_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwonce___parser_index = "lexer::TKwonce::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwonce___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwonce___parser_index_t)(val_t p0);
@@ -465,7 +464,7 @@ static const char * const LOCATE_parser___lexer___TKwonce___init_tk = "lexer::TK
 void parser___lexer___TKwonce___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwonce___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwonce_parser___lexer___TKwonce___init_tk(val_t p0);
-val_t NEW_TKwonce_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwonce_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwsuper___parser_index = "lexer::TKwsuper::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwsuper___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwsuper___parser_index_t)(val_t p0);
@@ -473,7 +472,7 @@ static const char * const LOCATE_parser___lexer___TKwsuper___init_tk = "lexer::T
 void parser___lexer___TKwsuper___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwsuper___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwsuper_parser___lexer___TKwsuper___init_tk(val_t p0);
-val_t NEW_TKwsuper_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwsuper_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwself___parser_index = "lexer::TKwself::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwself___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwself___parser_index_t)(val_t p0);
@@ -481,7 +480,7 @@ static const char * const LOCATE_parser___lexer___TKwself___init_tk = "lexer::TK
 void parser___lexer___TKwself___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwself___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwself_parser___lexer___TKwself___init_tk(val_t p0);
-val_t NEW_TKwself_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwself_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwtrue___parser_index = "lexer::TKwtrue::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwtrue___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwtrue___parser_index_t)(val_t p0);
@@ -489,7 +488,7 @@ static const char * const LOCATE_parser___lexer___TKwtrue___init_tk = "lexer::TK
 void parser___lexer___TKwtrue___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwtrue___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwtrue_parser___lexer___TKwtrue___init_tk(val_t p0);
-val_t NEW_TKwtrue_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwtrue_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwfalse___parser_index = "lexer::TKwfalse::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwfalse___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwfalse___parser_index_t)(val_t p0);
@@ -497,7 +496,7 @@ static const char * const LOCATE_parser___lexer___TKwfalse___init_tk = "lexer::T
 void parser___lexer___TKwfalse___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwfalse___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwfalse_parser___lexer___TKwfalse___init_tk(val_t p0);
-val_t NEW_TKwfalse_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwfalse_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwnull___parser_index = "lexer::TKwnull::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwnull___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwnull___parser_index_t)(val_t p0);
@@ -505,7 +504,7 @@ static const char * const LOCATE_parser___lexer___TKwnull___init_tk = "lexer::TK
 void parser___lexer___TKwnull___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwnull___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwnull_parser___lexer___TKwnull___init_tk(val_t p0);
-val_t NEW_TKwnull_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwnull_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwas___parser_index = "lexer::TKwas::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwas___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwas___parser_index_t)(val_t p0);
@@ -513,7 +512,7 @@ static const char * const LOCATE_parser___lexer___TKwas___init_tk = "lexer::TKwa
 void parser___lexer___TKwas___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwas___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwas_parser___lexer___TKwas___init_tk(val_t p0);
-val_t NEW_TKwas_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwas_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwnullable___parser_index = "lexer::TKwnullable::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwnullable___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwnullable___parser_index_t)(val_t p0);
@@ -521,7 +520,7 @@ static const char * const LOCATE_parser___lexer___TKwnullable___init_tk = "lexer
 void parser___lexer___TKwnullable___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwnullable___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwnullable_parser___lexer___TKwnullable___init_tk(val_t p0);
-val_t NEW_TKwnullable_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwnullable_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwisset___parser_index = "lexer::TKwisset::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwisset___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwisset___parser_index_t)(val_t p0);
@@ -529,7 +528,7 @@ static const char * const LOCATE_parser___lexer___TKwisset___init_tk = "lexer::T
 void parser___lexer___TKwisset___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwisset___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwisset_parser___lexer___TKwisset___init_tk(val_t p0);
-val_t NEW_TKwisset_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwisset_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TKwlabel___parser_index = "lexer::TKwlabel::(lexer::Token::parser_index)";
 val_t parser___lexer___TKwlabel___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TKwlabel___parser_index_t)(val_t p0);
@@ -537,7 +536,15 @@ static const char * const LOCATE_parser___lexer___TKwlabel___init_tk = "lexer::T
 void parser___lexer___TKwlabel___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TKwlabel___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TKwlabel_parser___lexer___TKwlabel___init_tk(val_t p0);
-val_t NEW_TKwlabel_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TKwlabel_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___lexer___TKwdebug___parser_index = "lexer::TKwdebug::(lexer::Token::parser_index)";
+val_t parser___lexer___TKwdebug___parser_index(val_t p0);
+typedef val_t (*parser___lexer___TKwdebug___parser_index_t)(val_t p0);
+static const char * const LOCATE_parser___lexer___TKwdebug___init_tk = "lexer::TKwdebug::init_tk";
+void parser___lexer___TKwdebug___init_tk(val_t p0, val_t p1, int* init_table);
+typedef void (*parser___lexer___TKwdebug___init_tk_t)(val_t p0, val_t p1, int* init_table);
+val_t NEW_TKwdebug_parser___lexer___TKwdebug___init_tk(val_t p0);
+val_t NEW_TKwdebug_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TOpar___parser_index = "lexer::TOpar::(lexer::Token::parser_index)";
 val_t parser___lexer___TOpar___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TOpar___parser_index_t)(val_t p0);
@@ -545,7 +552,7 @@ static const char * const LOCATE_parser___lexer___TOpar___init_tk = "lexer::TOpa
 void parser___lexer___TOpar___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TOpar___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TOpar_parser___lexer___TOpar___init_tk(val_t p0);
-val_t NEW_TOpar_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TOpar_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TCpar___parser_index = "lexer::TCpar::(lexer::Token::parser_index)";
 val_t parser___lexer___TCpar___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TCpar___parser_index_t)(val_t p0);
@@ -553,7 +560,7 @@ static const char * const LOCATE_parser___lexer___TCpar___init_tk = "lexer::TCpa
 void parser___lexer___TCpar___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TCpar___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TCpar_parser___lexer___TCpar___init_tk(val_t p0);
-val_t NEW_TCpar_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TCpar_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TObra___parser_index = "lexer::TObra::(lexer::Token::parser_index)";
 val_t parser___lexer___TObra___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TObra___parser_index_t)(val_t p0);
@@ -561,7 +568,7 @@ static const char * const LOCATE_parser___lexer___TObra___init_tk = "lexer::TObr
 void parser___lexer___TObra___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TObra___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TObra_parser___lexer___TObra___init_tk(val_t p0);
-val_t NEW_TObra_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TObra_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TCbra___parser_index = "lexer::TCbra::(lexer::Token::parser_index)";
 val_t parser___lexer___TCbra___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TCbra___parser_index_t)(val_t p0);
@@ -569,7 +576,7 @@ static const char * const LOCATE_parser___lexer___TCbra___init_tk = "lexer::TCbr
 void parser___lexer___TCbra___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TCbra___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TCbra_parser___lexer___TCbra___init_tk(val_t p0);
-val_t NEW_TCbra_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TCbra_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TComma___parser_index = "lexer::TComma::(lexer::Token::parser_index)";
 val_t parser___lexer___TComma___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TComma___parser_index_t)(val_t p0);
@@ -577,7 +584,7 @@ static const char * const LOCATE_parser___lexer___TComma___init_tk = "lexer::TCo
 void parser___lexer___TComma___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TComma___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TComma_parser___lexer___TComma___init_tk(val_t p0);
-val_t NEW_TComma_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TComma_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TColumn___parser_index = "lexer::TColumn::(lexer::Token::parser_index)";
 val_t parser___lexer___TColumn___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TColumn___parser_index_t)(val_t p0);
@@ -585,7 +592,7 @@ static const char * const LOCATE_parser___lexer___TColumn___init_tk = "lexer::TC
 void parser___lexer___TColumn___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TColumn___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TColumn_parser___lexer___TColumn___init_tk(val_t p0);
-val_t NEW_TColumn_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TColumn_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TQuad___parser_index = "lexer::TQuad::(lexer::Token::parser_index)";
 val_t parser___lexer___TQuad___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TQuad___parser_index_t)(val_t p0);
@@ -593,7 +600,7 @@ static const char * const LOCATE_parser___lexer___TQuad___init_tk = "lexer::TQua
 void parser___lexer___TQuad___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TQuad___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TQuad_parser___lexer___TQuad___init_tk(val_t p0);
-val_t NEW_TQuad_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TQuad_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TAssign___parser_index = "lexer::TAssign::(lexer::Token::parser_index)";
 val_t parser___lexer___TAssign___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TAssign___parser_index_t)(val_t p0);
@@ -601,7 +608,7 @@ static const char * const LOCATE_parser___lexer___TAssign___init_tk = "lexer::TA
 void parser___lexer___TAssign___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TAssign___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TAssign_parser___lexer___TAssign___init_tk(val_t p0);
-val_t NEW_TAssign_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TAssign_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TPluseq___parser_index = "lexer::TPluseq::(lexer::Token::parser_index)";
 val_t parser___lexer___TPluseq___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TPluseq___parser_index_t)(val_t p0);
@@ -609,7 +616,7 @@ static const char * const LOCATE_parser___lexer___TPluseq___init_tk = "lexer::TP
 void parser___lexer___TPluseq___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TPluseq___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TPluseq_parser___lexer___TPluseq___init_tk(val_t p0);
-val_t NEW_TPluseq_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TPluseq_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TMinuseq___parser_index = "lexer::TMinuseq::(lexer::Token::parser_index)";
 val_t parser___lexer___TMinuseq___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TMinuseq___parser_index_t)(val_t p0);
@@ -617,7 +624,7 @@ static const char * const LOCATE_parser___lexer___TMinuseq___init_tk = "lexer::T
 void parser___lexer___TMinuseq___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TMinuseq___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TMinuseq_parser___lexer___TMinuseq___init_tk(val_t p0);
-val_t NEW_TMinuseq_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TMinuseq_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TDotdotdot___parser_index = "lexer::TDotdotdot::(lexer::Token::parser_index)";
 val_t parser___lexer___TDotdotdot___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TDotdotdot___parser_index_t)(val_t p0);
@@ -625,7 +632,7 @@ static const char * const LOCATE_parser___lexer___TDotdotdot___init_tk = "lexer:
 void parser___lexer___TDotdotdot___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TDotdotdot___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TDotdotdot_parser___lexer___TDotdotdot___init_tk(val_t p0);
-val_t NEW_TDotdotdot_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TDotdotdot_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TDotdot___parser_index = "lexer::TDotdot::(lexer::Token::parser_index)";
 val_t parser___lexer___TDotdot___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TDotdot___parser_index_t)(val_t p0);
@@ -633,7 +640,7 @@ static const char * const LOCATE_parser___lexer___TDotdot___init_tk = "lexer::TD
 void parser___lexer___TDotdot___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TDotdot___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TDotdot_parser___lexer___TDotdot___init_tk(val_t p0);
-val_t NEW_TDotdot_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TDotdot_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TDot___parser_index = "lexer::TDot::(lexer::Token::parser_index)";
 val_t parser___lexer___TDot___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TDot___parser_index_t)(val_t p0);
@@ -641,7 +648,7 @@ static const char * const LOCATE_parser___lexer___TDot___init_tk = "lexer::TDot:
 void parser___lexer___TDot___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TDot___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TDot_parser___lexer___TDot___init_tk(val_t p0);
-val_t NEW_TDot_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TDot_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TPlus___parser_index = "lexer::TPlus::(lexer::Token::parser_index)";
 val_t parser___lexer___TPlus___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TPlus___parser_index_t)(val_t p0);
@@ -649,7 +656,7 @@ static const char * const LOCATE_parser___lexer___TPlus___init_tk = "lexer::TPlu
 void parser___lexer___TPlus___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TPlus___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TPlus_parser___lexer___TPlus___init_tk(val_t p0);
-val_t NEW_TPlus_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TPlus_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TMinus___parser_index = "lexer::TMinus::(lexer::Token::parser_index)";
 val_t parser___lexer___TMinus___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TMinus___parser_index_t)(val_t p0);
@@ -657,7 +664,7 @@ static const char * const LOCATE_parser___lexer___TMinus___init_tk = "lexer::TMi
 void parser___lexer___TMinus___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TMinus___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TMinus_parser___lexer___TMinus___init_tk(val_t p0);
-val_t NEW_TMinus_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TMinus_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TStar___parser_index = "lexer::TStar::(lexer::Token::parser_index)";
 val_t parser___lexer___TStar___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TStar___parser_index_t)(val_t p0);
@@ -665,7 +672,7 @@ static const char * const LOCATE_parser___lexer___TStar___init_tk = "lexer::TSta
 void parser___lexer___TStar___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TStar___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TStar_parser___lexer___TStar___init_tk(val_t p0);
-val_t NEW_TStar_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TStar_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TSlash___parser_index = "lexer::TSlash::(lexer::Token::parser_index)";
 val_t parser___lexer___TSlash___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TSlash___parser_index_t)(val_t p0);
@@ -673,7 +680,7 @@ static const char * const LOCATE_parser___lexer___TSlash___init_tk = "lexer::TSl
 void parser___lexer___TSlash___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TSlash___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TSlash_parser___lexer___TSlash___init_tk(val_t p0);
-val_t NEW_TSlash_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TSlash_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TPercent___parser_index = "lexer::TPercent::(lexer::Token::parser_index)";
 val_t parser___lexer___TPercent___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TPercent___parser_index_t)(val_t p0);
@@ -681,7 +688,7 @@ static const char * const LOCATE_parser___lexer___TPercent___init_tk = "lexer::T
 void parser___lexer___TPercent___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TPercent___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TPercent_parser___lexer___TPercent___init_tk(val_t p0);
-val_t NEW_TPercent_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TPercent_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TEq___parser_index = "lexer::TEq::(lexer::Token::parser_index)";
 val_t parser___lexer___TEq___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TEq___parser_index_t)(val_t p0);
@@ -689,7 +696,7 @@ static const char * const LOCATE_parser___lexer___TEq___init_tk = "lexer::TEq::i
 void parser___lexer___TEq___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TEq___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TEq_parser___lexer___TEq___init_tk(val_t p0);
-val_t NEW_TEq_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TEq_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TNe___parser_index = "lexer::TNe::(lexer::Token::parser_index)";
 val_t parser___lexer___TNe___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TNe___parser_index_t)(val_t p0);
@@ -697,7 +704,7 @@ static const char * const LOCATE_parser___lexer___TNe___init_tk = "lexer::TNe::i
 void parser___lexer___TNe___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TNe___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TNe_parser___lexer___TNe___init_tk(val_t p0);
-val_t NEW_TNe_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TNe_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TLt___parser_index = "lexer::TLt::(lexer::Token::parser_index)";
 val_t parser___lexer___TLt___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TLt___parser_index_t)(val_t p0);
@@ -705,7 +712,7 @@ static const char * const LOCATE_parser___lexer___TLt___init_tk = "lexer::TLt::i
 void parser___lexer___TLt___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TLt___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TLt_parser___lexer___TLt___init_tk(val_t p0);
-val_t NEW_TLt_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TLt_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TLe___parser_index = "lexer::TLe::(lexer::Token::parser_index)";
 val_t parser___lexer___TLe___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TLe___parser_index_t)(val_t p0);
@@ -713,7 +720,7 @@ static const char * const LOCATE_parser___lexer___TLe___init_tk = "lexer::TLe::i
 void parser___lexer___TLe___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TLe___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TLe_parser___lexer___TLe___init_tk(val_t p0);
-val_t NEW_TLe_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TLe_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TLl___parser_index = "lexer::TLl::(lexer::Token::parser_index)";
 val_t parser___lexer___TLl___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TLl___parser_index_t)(val_t p0);
@@ -721,7 +728,7 @@ static const char * const LOCATE_parser___lexer___TLl___init_tk = "lexer::TLl::i
 void parser___lexer___TLl___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TLl___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TLl_parser___lexer___TLl___init_tk(val_t p0);
-val_t NEW_TLl_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TLl_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TGt___parser_index = "lexer::TGt::(lexer::Token::parser_index)";
 val_t parser___lexer___TGt___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TGt___parser_index_t)(val_t p0);
@@ -729,7 +736,7 @@ static const char * const LOCATE_parser___lexer___TGt___init_tk = "lexer::TGt::i
 void parser___lexer___TGt___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TGt___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TGt_parser___lexer___TGt___init_tk(val_t p0);
-val_t NEW_TGt_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TGt_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TGe___parser_index = "lexer::TGe::(lexer::Token::parser_index)";
 val_t parser___lexer___TGe___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TGe___parser_index_t)(val_t p0);
@@ -737,7 +744,7 @@ static const char * const LOCATE_parser___lexer___TGe___init_tk = "lexer::TGe::i
 void parser___lexer___TGe___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TGe___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TGe_parser___lexer___TGe___init_tk(val_t p0);
-val_t NEW_TGe_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TGe_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TGg___parser_index = "lexer::TGg::(lexer::Token::parser_index)";
 val_t parser___lexer___TGg___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TGg___parser_index_t)(val_t p0);
@@ -745,7 +752,7 @@ static const char * const LOCATE_parser___lexer___TGg___init_tk = "lexer::TGg::i
 void parser___lexer___TGg___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TGg___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TGg_parser___lexer___TGg___init_tk(val_t p0);
-val_t NEW_TGg_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TGg_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TStarship___parser_index = "lexer::TStarship::(lexer::Token::parser_index)";
 val_t parser___lexer___TStarship___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TStarship___parser_index_t)(val_t p0);
@@ -753,7 +760,7 @@ static const char * const LOCATE_parser___lexer___TStarship___init_tk = "lexer::
 void parser___lexer___TStarship___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TStarship___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TStarship_parser___lexer___TStarship___init_tk(val_t p0);
-val_t NEW_TStarship_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TStarship_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TBang___parser_index = "lexer::TBang::(lexer::Token::parser_index)";
 val_t parser___lexer___TBang___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TBang___parser_index_t)(val_t p0);
@@ -761,7 +768,7 @@ static const char * const LOCATE_parser___lexer___TBang___init_tk = "lexer::TBan
 void parser___lexer___TBang___init_tk(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___lexer___TBang___init_tk_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_TBang_parser___lexer___TBang___init_tk(val_t p0);
-val_t NEW_TBang_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TBang_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TClassid___parser_index = "lexer::TClassid::(lexer::Token::parser_index)";
 val_t parser___lexer___TClassid___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TClassid___parser_index_t)(val_t p0);
@@ -769,7 +776,7 @@ static const char * const LOCATE_parser___lexer___TClassid___init_tk = "lexer::T
 void parser___lexer___TClassid___init_tk(val_t p0, val_t p1, val_t p2, int* init_table);
 typedef void (*parser___lexer___TClassid___init_tk_t)(val_t p0, val_t p1, val_t p2, int* init_table);
 val_t NEW_TClassid_parser___lexer___TClassid___init_tk(val_t p0, val_t p1);
-val_t NEW_TClassid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TClassid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TId___parser_index = "lexer::TId::(lexer::Token::parser_index)";
 val_t parser___lexer___TId___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TId___parser_index_t)(val_t p0);
@@ -777,7 +784,7 @@ static const char * const LOCATE_parser___lexer___TId___init_tk = "lexer::TId::i
 void parser___lexer___TId___init_tk(val_t p0, val_t p1, val_t p2, int* init_table);
 typedef void (*parser___lexer___TId___init_tk_t)(val_t p0, val_t p1, val_t p2, int* init_table);
 val_t NEW_TId_parser___lexer___TId___init_tk(val_t p0, val_t p1);
-val_t NEW_TId_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TId_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TAttrid___parser_index = "lexer::TAttrid::(lexer::Token::parser_index)";
 val_t parser___lexer___TAttrid___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TAttrid___parser_index_t)(val_t p0);
@@ -785,7 +792,7 @@ static const char * const LOCATE_parser___lexer___TAttrid___init_tk = "lexer::TA
 void parser___lexer___TAttrid___init_tk(val_t p0, val_t p1, val_t p2, int* init_table);
 typedef void (*parser___lexer___TAttrid___init_tk_t)(val_t p0, val_t p1, val_t p2, int* init_table);
 val_t NEW_TAttrid_parser___lexer___TAttrid___init_tk(val_t p0, val_t p1);
-val_t NEW_TAttrid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TAttrid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TNumber___parser_index = "lexer::TNumber::(lexer::Token::parser_index)";
 val_t parser___lexer___TNumber___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TNumber___parser_index_t)(val_t p0);
@@ -793,7 +800,7 @@ static const char * const LOCATE_parser___lexer___TNumber___init_tk = "lexer::TN
 void parser___lexer___TNumber___init_tk(val_t p0, val_t p1, val_t p2, int* init_table);
 typedef void (*parser___lexer___TNumber___init_tk_t)(val_t p0, val_t p1, val_t p2, int* init_table);
 val_t NEW_TNumber_parser___lexer___TNumber___init_tk(val_t p0, val_t p1);
-val_t NEW_TNumber_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TNumber_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TFloat___parser_index = "lexer::TFloat::(lexer::Token::parser_index)";
 val_t parser___lexer___TFloat___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TFloat___parser_index_t)(val_t p0);
@@ -801,7 +808,7 @@ static const char * const LOCATE_parser___lexer___TFloat___init_tk = "lexer::TFl
 void parser___lexer___TFloat___init_tk(val_t p0, val_t p1, val_t p2, int* init_table);
 typedef void (*parser___lexer___TFloat___init_tk_t)(val_t p0, val_t p1, val_t p2, int* init_table);
 val_t NEW_TFloat_parser___lexer___TFloat___init_tk(val_t p0, val_t p1);
-val_t NEW_TFloat_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TFloat_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TChar___parser_index = "lexer::TChar::(lexer::Token::parser_index)";
 val_t parser___lexer___TChar___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TChar___parser_index_t)(val_t p0);
@@ -809,7 +816,7 @@ static const char * const LOCATE_parser___lexer___TChar___init_tk = "lexer::TCha
 void parser___lexer___TChar___init_tk(val_t p0, val_t p1, val_t p2, int* init_table);
 typedef void (*parser___lexer___TChar___init_tk_t)(val_t p0, val_t p1, val_t p2, int* init_table);
 val_t NEW_TChar_parser___lexer___TChar___init_tk(val_t p0, val_t p1);
-val_t NEW_TChar_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TChar_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TString___parser_index = "lexer::TString::(lexer::Token::parser_index)";
 val_t parser___lexer___TString___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TString___parser_index_t)(val_t p0);
@@ -817,7 +824,7 @@ static const char * const LOCATE_parser___lexer___TString___init_tk = "lexer::TS
 void parser___lexer___TString___init_tk(val_t p0, val_t p1, val_t p2, int* init_table);
 typedef void (*parser___lexer___TString___init_tk_t)(val_t p0, val_t p1, val_t p2, int* init_table);
 val_t NEW_TString_parser___lexer___TString___init_tk(val_t p0, val_t p1);
-val_t NEW_TString_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TString_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TStartString___parser_index = "lexer::TStartString::(lexer::Token::parser_index)";
 val_t parser___lexer___TStartString___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TStartString___parser_index_t)(val_t p0);
@@ -825,7 +832,7 @@ static const char * const LOCATE_parser___lexer___TStartString___init_tk = "lexe
 void parser___lexer___TStartString___init_tk(val_t p0, val_t p1, val_t p2, int* init_table);
 typedef void (*parser___lexer___TStartString___init_tk_t)(val_t p0, val_t p1, val_t p2, int* init_table);
 val_t NEW_TStartString_parser___lexer___TStartString___init_tk(val_t p0, val_t p1);
-val_t NEW_TStartString_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TStartString_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TMidString___parser_index = "lexer::TMidString::(lexer::Token::parser_index)";
 val_t parser___lexer___TMidString___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TMidString___parser_index_t)(val_t p0);
@@ -833,7 +840,7 @@ static const char * const LOCATE_parser___lexer___TMidString___init_tk = "lexer:
 void parser___lexer___TMidString___init_tk(val_t p0, val_t p1, val_t p2, int* init_table);
 typedef void (*parser___lexer___TMidString___init_tk_t)(val_t p0, val_t p1, val_t p2, int* init_table);
 val_t NEW_TMidString_parser___lexer___TMidString___init_tk(val_t p0, val_t p1);
-val_t NEW_TMidString_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TMidString_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___TEndString___parser_index = "lexer::TEndString::(lexer::Token::parser_index)";
 val_t parser___lexer___TEndString___parser_index(val_t p0);
 typedef val_t (*parser___lexer___TEndString___parser_index_t)(val_t p0);
@@ -841,7 +848,23 @@ static const char * const LOCATE_parser___lexer___TEndString___init_tk = "lexer:
 void parser___lexer___TEndString___init_tk(val_t p0, val_t p1, val_t p2, int* init_table);
 typedef void (*parser___lexer___TEndString___init_tk_t)(val_t p0, val_t p1, val_t p2, int* init_table);
 val_t NEW_TEndString_parser___lexer___TEndString___init_tk(val_t p0, val_t p1);
-val_t NEW_TEndString_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_TEndString_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___lexer___TBadChar___parser_index = "lexer::TBadChar::(lexer::Token::parser_index)";
+val_t parser___lexer___TBadChar___parser_index(val_t p0);
+typedef val_t (*parser___lexer___TBadChar___parser_index_t)(val_t p0);
+static const char * const LOCATE_parser___lexer___TBadChar___init_tk = "lexer::TBadChar::init_tk";
+void parser___lexer___TBadChar___init_tk(val_t p0, val_t p1, val_t p2, int* init_table);
+typedef void (*parser___lexer___TBadChar___init_tk_t)(val_t p0, val_t p1, val_t p2, int* init_table);
+val_t NEW_TBadChar_parser___lexer___TBadChar___init_tk(val_t p0, val_t p1);
+val_t NEW_TBadChar_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___lexer___TBadString___parser_index = "lexer::TBadString::(lexer::Token::parser_index)";
+val_t parser___lexer___TBadString___parser_index(val_t p0);
+typedef val_t (*parser___lexer___TBadString___parser_index_t)(val_t p0);
+static const char * const LOCATE_parser___lexer___TBadString___init_tk = "lexer::TBadString::init_tk";
+void parser___lexer___TBadString___init_tk(val_t p0, val_t p1, val_t p2, int* init_table);
+typedef void (*parser___lexer___TBadString___init_tk_t)(val_t p0, val_t p1, val_t p2, int* init_table);
+val_t NEW_TBadString_parser___lexer___TBadString___init_tk(val_t p0, val_t p1);
+val_t NEW_TBadString_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___lexer___EOF___parser_index = "lexer::EOF::(lexer::Token::parser_index)";
 val_t parser___lexer___EOF___parser_index(val_t p0);
 typedef val_t (*parser___lexer___EOF___parser_index_t)(val_t p0);
index fd62f43..568795e 100644 (file)
@@ -14,9 +14,9 @@ val_t parser___parser_nodes___ANode___location(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:27 */
+  /* parser/parser_nodes.nit:27 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./parser//parser_nodes.nit:29 */
+  /* parser/parser_nodes.nit:29 */
   fra.me.REG[1] = ATTR_parser___parser_nodes___ANode____location(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -40,40 +40,191 @@ val_t parser___parser_nodes___ANode___hot_location(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:31 */
+  /* parser/parser_nodes.nit:31 */
   fra.me.REG[0] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-void parser___parser_nodes___ANode___init(val_t p0, val_t p1, int* init_table){
+void parser___parser_nodes___ANode___init(val_t p0, int* init_table){
   int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANode].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  struct {struct stack_frame_t me;} fra;
   val_t tmp;
   if (init_table[itpos0]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 0;
+  fra.me.line = 32;
   fra.me.meth = LOCATE_parser___parser_nodes___ANode___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  stack_frame_head = fra.me.prev;
+  init_table[itpos0] = 1;
+  return;
+}
+void parser___parser_nodes___ANode___debug(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t tmp;
+  static val_t once_value_1; /* Once value */
+  static val_t once_value_2; /* Once value */
+  static val_t once_value_3; /* Once value */
+  static val_t once_value_4; /* Once value */
+  static val_t once_value_5; /* Once value */
+  static val_t once_value_6; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 34;
+  fra.me.meth = LOCATE_parser___parser_nodes___ANode___debug;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
+  /* parser/parser_nodes.nit:37 */
+  REGB0 = TAG_Int(9);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_1) {
+    fra.me.REG[3] = BOX_NativeString("");
+    REGB0 = TAG_Int(0);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_1 = fra.me.REG[3];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[3] = once_value_1;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[3] = CALL_parser___parser_nodes___ANode___hot_location(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  if (!once_value_2) {
+    fra.me.REG[3] = BOX_NativeString(" ");
+    REGB0 = TAG_Int(1);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_2 = fra.me.REG[3];
+    register_static_object(&once_value_2);
+  } else fra.me.REG[3] = once_value_2;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[3] = CALL_standard___string___Object___class_name(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  if (!once_value_3) {
+    fra.me.REG[3] = BOX_NativeString(": ");
+    REGB0 = TAG_Int(2);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_3 = fra.me.REG[3];
+    register_static_object(&once_value_3);
+  } else fra.me.REG[3] = once_value_3;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  if (!once_value_4) {
+    fra.me.REG[1] = BOX_NativeString("\n");
+    REGB0 = TAG_Int(1);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    once_value_4 = fra.me.REG[1];
+    register_static_object(&once_value_4);
+  } else fra.me.REG[1] = once_value_4;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  fra.me.REG[1] = CALL_parser___parser_nodes___ANode___hot_location(fra.me.REG[0])(fra.me.REG[0]);
+  if (!once_value_5) {
+    fra.me.REG[3] = BOX_NativeString("0;32");
+    REGB0 = TAG_Int(4);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_5 = fra.me.REG[3];
+    register_static_object(&once_value_5);
+  } else fra.me.REG[3] = once_value_5;
+  fra.me.REG[3] = fra.me.REG[3];
+  fra.me.REG[3] = CALL_location___Location___colored_line(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  if (!once_value_6) {
+    fra.me.REG[3] = BOX_NativeString("");
+    REGB0 = TAG_Int(0);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_6 = fra.me.REG[3];
+    register_static_object(&once_value_6);
+  } else fra.me.REG[3] = once_value_6;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
+  CALL_standard___file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  init_table[itpos0] = 1;
   return;
 }
+val_t parser___parser_nodes___Token___text(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 44;
+  fra.me.meth = LOCATE_parser___parser_nodes___Token___text;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  /* parser/parser_nodes.nit:44 */
+  nit_abort("Deferred method called", NULL, LOCATE_parser___parser_nodes, 44);
+  stack_frame_head = fra.me.prev;
+  return NIT_NULL;
+}
+val_t parser___parser_nodes___Token___to_s(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t tmp;
+  static val_t once_value_1; /* Once value */
+  static val_t once_value_2; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 46;
+  fra.me.meth = LOCATE_parser___parser_nodes___Token___to_s;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:47 */
+  REGB0 = TAG_Int(3);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_1) {
+    fra.me.REG[2] = BOX_NativeString("'");
+    REGB0 = TAG_Int(1);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_1 = fra.me.REG[2];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[2] = once_value_1;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  if (!once_value_2) {
+    fra.me.REG[0] = BOX_NativeString("'");
+    REGB0 = TAG_Int(1);
+    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    once_value_2 = fra.me.REG[0];
+    register_static_object(&once_value_2);
+  } else fra.me.REG[0] = once_value_2;
+  fra.me.REG[0] = fra.me.REG[0];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+  goto label3;
+  label3: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
 void parser___parser_nodes___Prod___location__eq(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 42;
+  fra.me.line = 54;
   fra.me.meth = LOCATE_parser___parser_nodes___Prod___location__eq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -82,11 +233,407 @@ void parser___parser_nodes___Prod___location__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_nodes.nit:42 */
+  /* parser/parser_nodes.nit:54 */
   ATTR_parser___parser_nodes___ANode____location(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
 }
+val_t parser___parser_nodes___TEol___to_s(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  static val_t once_value_1; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 58;
+  fra.me.meth = LOCATE_parser___parser_nodes___TEol___to_s;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:60 */
+  if (!once_value_1) {
+    fra.me.REG[0] = BOX_NativeString("end of line");
+    REGB0 = TAG_Int(11);
+    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    once_value_1 = fra.me.REG[0];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[0] = once_value_1;
+  fra.me.REG[0] = fra.me.REG[0];
+  goto label2;
+  label2: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t parser___parser_nodes___TokenKeyword___to_s(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t tmp;
+  static val_t once_value_1; /* Once value */
+  static val_t once_value_2; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 68;
+  fra.me.meth = LOCATE_parser___parser_nodes___TokenKeyword___to_s;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:70 */
+  REGB0 = TAG_Int(3);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_1) {
+    fra.me.REG[2] = BOX_NativeString("keyword '");
+    REGB0 = TAG_Int(9);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_1 = fra.me.REG[2];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[2] = once_value_1;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  if (!once_value_2) {
+    fra.me.REG[0] = BOX_NativeString("'");
+    REGB0 = TAG_Int(1);
+    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    once_value_2 = fra.me.REG[0];
+    register_static_object(&once_value_2);
+  } else fra.me.REG[0] = once_value_2;
+  fra.me.REG[0] = fra.me.REG[0];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+  goto label3;
+  label3: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t parser___parser_nodes___TokenOperator___to_s(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t tmp;
+  static val_t once_value_1; /* Once value */
+  static val_t once_value_2; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 249;
+  fra.me.meth = LOCATE_parser___parser_nodes___TokenOperator___to_s;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:251 */
+  REGB0 = TAG_Int(3);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_1) {
+    fra.me.REG[2] = BOX_NativeString("operator '");
+    REGB0 = TAG_Int(10);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_1 = fra.me.REG[2];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[2] = once_value_1;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  if (!once_value_2) {
+    fra.me.REG[0] = BOX_NativeString("'");
+    REGB0 = TAG_Int(1);
+    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    once_value_2 = fra.me.REG[0];
+    register_static_object(&once_value_2);
+  } else fra.me.REG[0] = once_value_2;
+  fra.me.REG[0] = fra.me.REG[0];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+  goto label3;
+  label3: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t parser___parser_nodes___TClassid___to_s(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t tmp;
+  static val_t once_value_1; /* Once value */
+  static val_t once_value_2; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 316;
+  fra.me.meth = LOCATE_parser___parser_nodes___TClassid___to_s;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:318 */
+  REGB0 = TAG_Int(3);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_1) {
+    fra.me.REG[2] = BOX_NativeString("type identifier '");
+    REGB0 = TAG_Int(17);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_1 = fra.me.REG[2];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[2] = once_value_1;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  if (!once_value_2) {
+    fra.me.REG[0] = BOX_NativeString("'");
+    REGB0 = TAG_Int(1);
+    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    once_value_2 = fra.me.REG[0];
+    register_static_object(&once_value_2);
+  } else fra.me.REG[0] = once_value_2;
+  fra.me.REG[0] = fra.me.REG[0];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+  goto label3;
+  label3: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t parser___parser_nodes___TId___to_s(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t tmp;
+  static val_t once_value_1; /* Once value */
+  static val_t once_value_2; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 323;
+  fra.me.meth = LOCATE_parser___parser_nodes___TId___to_s;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:325 */
+  REGB0 = TAG_Int(3);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_1) {
+    fra.me.REG[2] = BOX_NativeString("identifier '");
+    REGB0 = TAG_Int(12);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_1 = fra.me.REG[2];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[2] = once_value_1;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  if (!once_value_2) {
+    fra.me.REG[0] = BOX_NativeString("'");
+    REGB0 = TAG_Int(1);
+    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    once_value_2 = fra.me.REG[0];
+    register_static_object(&once_value_2);
+  } else fra.me.REG[0] = once_value_2;
+  fra.me.REG[0] = fra.me.REG[0];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+  goto label3;
+  label3: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t parser___parser_nodes___TAttrid___to_s(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t tmp;
+  static val_t once_value_1; /* Once value */
+  static val_t once_value_2; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 330;
+  fra.me.meth = LOCATE_parser___parser_nodes___TAttrid___to_s;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:332 */
+  REGB0 = TAG_Int(3);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_1) {
+    fra.me.REG[2] = BOX_NativeString("attribute '");
+    REGB0 = TAG_Int(11);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_1 = fra.me.REG[2];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[2] = once_value_1;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  if (!once_value_2) {
+    fra.me.REG[0] = BOX_NativeString("'");
+    REGB0 = TAG_Int(1);
+    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    once_value_2 = fra.me.REG[0];
+    register_static_object(&once_value_2);
+  } else fra.me.REG[0] = once_value_2;
+  fra.me.REG[0] = fra.me.REG[0];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+  goto label3;
+  label3: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t parser___parser_nodes___TokenLiteral___to_s(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t tmp;
+  static val_t once_value_1; /* Once value */
+  static val_t once_value_2; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 337;
+  fra.me.meth = LOCATE_parser___parser_nodes___TokenLiteral___to_s;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:339 */
+  REGB0 = TAG_Int(3);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_1) {
+    fra.me.REG[2] = BOX_NativeString("literal value '");
+    REGB0 = TAG_Int(15);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_1 = fra.me.REG[2];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[2] = once_value_1;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  if (!once_value_2) {
+    fra.me.REG[0] = BOX_NativeString("'");
+    REGB0 = TAG_Int(1);
+    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    once_value_2 = fra.me.REG[0];
+    register_static_object(&once_value_2);
+  } else fra.me.REG[0] = once_value_2;
+  fra.me.REG[0] = fra.me.REG[0];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+  goto label3;
+  label3: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t parser___parser_nodes___TBadString___to_s(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t tmp;
+  static val_t once_value_1; /* Once value */
+  static val_t once_value_2; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 365;
+  fra.me.meth = LOCATE_parser___parser_nodes___TBadString___to_s;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:367 */
+  REGB0 = TAG_Int(3);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_1) {
+    fra.me.REG[2] = BOX_NativeString("malformed string ");
+    REGB0 = TAG_Int(17);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_1 = fra.me.REG[2];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[2] = once_value_1;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  if (!once_value_2) {
+    fra.me.REG[0] = BOX_NativeString("");
+    REGB0 = TAG_Int(0);
+    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    once_value_2 = fra.me.REG[0];
+    register_static_object(&once_value_2);
+  } else fra.me.REG[0] = once_value_2;
+  fra.me.REG[0] = fra.me.REG[0];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+  goto label3;
+  label3: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t parser___parser_nodes___TBadChar___to_s(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t tmp;
+  static val_t once_value_1; /* Once value */
+  static val_t once_value_2; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 372;
+  fra.me.meth = LOCATE_parser___parser_nodes___TBadChar___to_s;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:374 */
+  REGB0 = TAG_Int(3);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  if (!once_value_1) {
+    fra.me.REG[2] = BOX_NativeString("malformed character ");
+    REGB0 = TAG_Int(20);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_1 = fra.me.REG[2];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[2] = once_value_1;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  if (!once_value_2) {
+    fra.me.REG[0] = BOX_NativeString("");
+    REGB0 = TAG_Int(0);
+    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    once_value_2 = fra.me.REG[0];
+    register_static_object(&once_value_2);
+  } else fra.me.REG[0] = once_value_2;
+  fra.me.REG[0] = fra.me.REG[0];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+  goto label3;
+  label3: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
 void parser___parser_nodes___EOF___noinit(val_t p0, int* init_table){
   int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___EOF].i;
   struct {struct stack_frame_t me;} fra;
@@ -94,7 +641,7 @@ void parser___parser_nodes___EOF___noinit(val_t p0, int* init_table){
   if (init_table[itpos1]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 313;
+  fra.me.line = 379;
   fra.me.meth = LOCATE_parser___parser_nodes___EOF___noinit;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -105,6 +652,34 @@ void parser___parser_nodes___EOF___noinit(val_t p0, int* init_table){
   init_table[itpos1] = 1;
   return;
 }
+val_t parser___parser_nodes___EOF___to_s(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  static val_t once_value_1; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 380;
+  fra.me.meth = LOCATE_parser___parser_nodes___EOF___to_s;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:382 */
+  if (!once_value_1) {
+    fra.me.REG[0] = BOX_NativeString("end of file");
+    REGB0 = TAG_Int(11);
+    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    once_value_1 = fra.me.REG[0];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[0] = once_value_1;
+  fra.me.REG[0] = fra.me.REG[0];
+  goto label2;
+  label2: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
 void parser___parser_nodes___AError___noinit(val_t p0, int* init_table){
   int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AError].i;
   struct {struct stack_frame_t me;} fra;
@@ -112,14 +687,14 @@ void parser___parser_nodes___AError___noinit(val_t p0, int* init_table){
   if (init_table[itpos2]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 317;
+  fra.me.line = 387;
   fra.me.meth = LOCATE_parser___parser_nodes___AError___noinit;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:317 */
+  /* parser/parser_nodes.nit:387 */
   CALL_parser___parser_nodes___EOF___noinit(fra.me.REG[0])(fra.me.REG[0], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos2] = 1;
@@ -130,14 +705,14 @@ val_t parser___parser_nodes___AModule___n_moduledecl(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 322;
+  fra.me.line = 392;
   fra.me.meth = LOCATE_parser___parser_nodes___AModule___n_moduledecl;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:322 */
+  /* parser/parser_nodes.nit:392 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -148,18 +723,18 @@ val_t parser___parser_nodes___AModule___n_imports(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 323;
+  fra.me.line = 393;
   fra.me.meth = LOCATE_parser___parser_nodes___AModule___n_imports;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:323 */
+  /* parser/parser_nodes.nit:393 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_nodes, 323);
+    nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_nodes, 393);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -171,18 +746,18 @@ val_t parser___parser_nodes___AModule___n_classdefs(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 324;
+  fra.me.line = 394;
   fra.me.meth = LOCATE_parser___parser_nodes___AModule___n_classdefs;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:324 */
+  /* parser/parser_nodes.nit:394 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_nodes, 324);
+    nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_nodes, 394);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -193,14 +768,14 @@ val_t parser___parser_nodes___AModuledecl___n_doc(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 328;
+  fra.me.line = 398;
   fra.me.meth = LOCATE_parser___parser_nodes___AModuledecl___n_doc;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:328 */
+  /* parser/parser_nodes.nit:398 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -211,18 +786,18 @@ val_t parser___parser_nodes___AModuledecl___n_kwmodule(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 329;
+  fra.me.line = 399;
   fra.me.meth = LOCATE_parser___parser_nodes___AModuledecl___n_kwmodule;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:329 */
+  /* parser/parser_nodes.nit:399 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwmodule", LOCATE_parser___parser_nodes, 329);
+    nit_abort("Uninitialized attribute %s", "_n_kwmodule", LOCATE_parser___parser_nodes, 399);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -234,18 +809,18 @@ val_t parser___parser_nodes___AModuledecl___n_name(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 330;
+  fra.me.line = 400;
   fra.me.meth = LOCATE_parser___parser_nodes___AModuledecl___n_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:330 */
+  /* parser/parser_nodes.nit:400 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_name", LOCATE_parser___parser_nodes, 330);
+    nit_abort("Uninitialized attribute %s", "_n_name", LOCATE_parser___parser_nodes, 400);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -257,18 +832,18 @@ val_t parser___parser_nodes___AStdImport___n_visibility(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 335;
+  fra.me.line = 405;
   fra.me.meth = LOCATE_parser___parser_nodes___AStdImport___n_visibility;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:335 */
+  /* parser/parser_nodes.nit:405 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_nodes, 335);
+    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_nodes, 405);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -280,18 +855,18 @@ val_t parser___parser_nodes___AStdImport___n_kwimport(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 336;
+  fra.me.line = 406;
   fra.me.meth = LOCATE_parser___parser_nodes___AStdImport___n_kwimport;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:336 */
+  /* parser/parser_nodes.nit:406 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_nodes, 336);
+    nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_nodes, 406);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -303,18 +878,18 @@ val_t parser___parser_nodes___AStdImport___n_name(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 337;
+  fra.me.line = 407;
   fra.me.meth = LOCATE_parser___parser_nodes___AStdImport___n_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:337 */
+  /* parser/parser_nodes.nit:407 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_name", LOCATE_parser___parser_nodes, 337);
+    nit_abort("Uninitialized attribute %s", "_n_name", LOCATE_parser___parser_nodes, 407);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -326,18 +901,18 @@ val_t parser___parser_nodes___ANoImport___n_visibility(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 341;
+  fra.me.line = 411;
   fra.me.meth = LOCATE_parser___parser_nodes___ANoImport___n_visibility;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:341 */
+  /* parser/parser_nodes.nit:411 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_nodes, 341);
+    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_nodes, 411);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -349,18 +924,18 @@ val_t parser___parser_nodes___ANoImport___n_kwimport(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 342;
+  fra.me.line = 412;
   fra.me.meth = LOCATE_parser___parser_nodes___ANoImport___n_kwimport;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:342 */
+  /* parser/parser_nodes.nit:412 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_nodes, 342);
+    nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_nodes, 412);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -372,18 +947,18 @@ val_t parser___parser_nodes___ANoImport___n_kwend(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 343;
+  fra.me.line = 413;
   fra.me.meth = LOCATE_parser___parser_nodes___ANoImport___n_kwend;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:343 */
+  /* parser/parser_nodes.nit:413 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser___parser_nodes, 343);
+    nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser___parser_nodes, 413);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -395,18 +970,18 @@ val_t parser___parser_nodes___APrivateVisibility___n_kwprivate(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 351;
+  fra.me.line = 421;
   fra.me.meth = LOCATE_parser___parser_nodes___APrivateVisibility___n_kwprivate;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:351 */
+  /* parser/parser_nodes.nit:421 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwprivate", LOCATE_parser___parser_nodes, 351);
+    nit_abort("Uninitialized attribute %s", "_n_kwprivate", LOCATE_parser___parser_nodes, 421);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -418,18 +993,18 @@ val_t parser___parser_nodes___AProtectedVisibility___n_kwprotected(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 355;
+  fra.me.line = 425;
   fra.me.meth = LOCATE_parser___parser_nodes___AProtectedVisibility___n_kwprotected;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:355 */
+  /* parser/parser_nodes.nit:425 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwprotected", LOCATE_parser___parser_nodes, 355);
+    nit_abort("Uninitialized attribute %s", "_n_kwprotected", LOCATE_parser___parser_nodes, 425);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -441,36 +1016,59 @@ val_t parser___parser_nodes___AIntrudeVisibility___n_kwintrude(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 359;
+  fra.me.line = 429;
   fra.me.meth = LOCATE_parser___parser_nodes___AIntrudeVisibility___n_kwintrude;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:359 */
+  /* parser/parser_nodes.nit:429 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwintrude", LOCATE_parser___parser_nodes, 359);
+    nit_abort("Uninitialized attribute %s", "_n_kwintrude", LOCATE_parser___parser_nodes, 429);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+val_t parser___parser_nodes___AClassdef___n_propdefs(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 432;
+  fra.me.meth = LOCATE_parser___parser_nodes___AClassdef___n_propdefs;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:432 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_nodes, 432);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
 val_t parser___parser_nodes___AStdClassdef___n_doc(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 364;
+  fra.me.line = 436;
   fra.me.meth = LOCATE_parser___parser_nodes___AStdClassdef___n_doc;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:364 */
+  /* parser/parser_nodes.nit:436 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -480,14 +1078,14 @@ val_t parser___parser_nodes___AStdClassdef___n_kwredef(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 365;
+  fra.me.line = 437;
   fra.me.meth = LOCATE_parser___parser_nodes___AStdClassdef___n_kwredef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:365 */
+  /* parser/parser_nodes.nit:437 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -498,18 +1096,18 @@ val_t parser___parser_nodes___AStdClassdef___n_visibility(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 366;
+  fra.me.line = 438;
   fra.me.meth = LOCATE_parser___parser_nodes___AStdClassdef___n_visibility;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:366 */
+  /* parser/parser_nodes.nit:438 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_nodes, 366);
+    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_nodes, 438);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -521,18 +1119,18 @@ val_t parser___parser_nodes___AStdClassdef___n_classkind(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 367;
+  fra.me.line = 439;
   fra.me.meth = LOCATE_parser___parser_nodes___AStdClassdef___n_classkind;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:367 */
+  /* parser/parser_nodes.nit:439 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_classkind", LOCATE_parser___parser_nodes, 367);
+    nit_abort("Uninitialized attribute %s", "_n_classkind", LOCATE_parser___parser_nodes, 439);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -543,14 +1141,14 @@ val_t parser___parser_nodes___AStdClassdef___n_id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 368;
+  fra.me.line = 440;
   fra.me.meth = LOCATE_parser___parser_nodes___AStdClassdef___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:368 */
+  /* parser/parser_nodes.nit:440 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -561,18 +1159,18 @@ val_t parser___parser_nodes___AStdClassdef___n_formaldefs(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 369;
+  fra.me.line = 441;
   fra.me.meth = LOCATE_parser___parser_nodes___AStdClassdef___n_formaldefs;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:369 */
+  /* parser/parser_nodes.nit:441 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_nodes, 369);
+    nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_nodes, 441);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -584,43 +1182,43 @@ val_t parser___parser_nodes___AStdClassdef___n_superclasses(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 370;
+  fra.me.line = 442;
   fra.me.meth = LOCATE_parser___parser_nodes___AStdClassdef___n_superclasses;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:370 */
+  /* parser/parser_nodes.nit:442 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_nodes, 370);
+    nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_nodes, 442);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t parser___parser_nodes___AStdClassdef___n_propdefs(val_t p0){
+val_t parser___parser_nodes___AStdClassdef___n_kwend(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 371;
-  fra.me.meth = LOCATE_parser___parser_nodes___AStdClassdef___n_propdefs;
+  fra.me.line = 443;
+  fra.me.meth = LOCATE_parser___parser_nodes___AStdClassdef___n_kwend;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:371 */
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+  /* parser/parser_nodes.nit:443 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_nodes, 371);
+    nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser___parser_nodes, 443);
   }
-  fra.me.REG[0] = ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
@@ -630,18 +1228,18 @@ val_t parser___parser_nodes___AStdClassdef___hot_location(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 372;
+  fra.me.line = 444;
   fra.me.meth = LOCATE_parser___parser_nodes___AStdClassdef___hot_location;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:372 */
+  /* parser/parser_nodes.nit:444 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_id(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_nodes, 372);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_nodes, 444);
   }
   fra.me.REG[0] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -649,70 +1247,24 @@ val_t parser___parser_nodes___AStdClassdef___hot_location(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t parser___parser_nodes___ATopClassdef___n_propdefs(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 376;
-  fra.me.meth = LOCATE_parser___parser_nodes___ATopClassdef___n_propdefs;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:376 */
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_nodes, 376);
-  }
-  fra.me.REG[0] = ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-val_t parser___parser_nodes___AMainClassdef___n_propdefs(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 380;
-  fra.me.meth = LOCATE_parser___parser_nodes___AMainClassdef___n_propdefs;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:380 */
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_nodes, 380);
-  }
-  fra.me.REG[0] = ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
 val_t parser___parser_nodes___AConcreteClasskind___n_kwclass(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 385;
+  fra.me.line = 455;
   fra.me.meth = LOCATE_parser___parser_nodes___AConcreteClasskind___n_kwclass;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:385 */
+  /* parser/parser_nodes.nit:455 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_nodes, 385);
+    nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_nodes, 455);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -724,18 +1276,18 @@ val_t parser___parser_nodes___AAbstractClasskind___n_kwabstract(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 389;
+  fra.me.line = 459;
   fra.me.meth = LOCATE_parser___parser_nodes___AAbstractClasskind___n_kwabstract;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:389 */
+  /* parser/parser_nodes.nit:459 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwabstract", LOCATE_parser___parser_nodes, 389);
+    nit_abort("Uninitialized attribute %s", "_n_kwabstract", LOCATE_parser___parser_nodes, 459);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -747,18 +1299,18 @@ val_t parser___parser_nodes___AAbstractClasskind___n_kwclass(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 390;
+  fra.me.line = 460;
   fra.me.meth = LOCATE_parser___parser_nodes___AAbstractClasskind___n_kwclass;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:390 */
+  /* parser/parser_nodes.nit:460 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_nodes, 390);
+    nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_nodes, 460);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -770,18 +1322,18 @@ val_t parser___parser_nodes___AInterfaceClasskind___n_kwinterface(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 394;
+  fra.me.line = 464;
   fra.me.meth = LOCATE_parser___parser_nodes___AInterfaceClasskind___n_kwinterface;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:394 */
+  /* parser/parser_nodes.nit:464 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwinterface", LOCATE_parser___parser_nodes, 394);
+    nit_abort("Uninitialized attribute %s", "_n_kwinterface", LOCATE_parser___parser_nodes, 464);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -793,18 +1345,18 @@ val_t parser___parser_nodes___AEnumClasskind___n_kwenum(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 398;
+  fra.me.line = 468;
   fra.me.meth = LOCATE_parser___parser_nodes___AEnumClasskind___n_kwenum;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:398 */
+  /* parser/parser_nodes.nit:468 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwenum", LOCATE_parser___parser_nodes, 398);
+    nit_abort("Uninitialized attribute %s", "_n_kwenum", LOCATE_parser___parser_nodes, 468);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -816,18 +1368,18 @@ val_t parser___parser_nodes___AExternClasskind___n_kwextern(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 402;
+  fra.me.line = 472;
   fra.me.meth = LOCATE_parser___parser_nodes___AExternClasskind___n_kwextern;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:402 */
+  /* parser/parser_nodes.nit:472 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwextern", LOCATE_parser___parser_nodes, 402);
+    nit_abort("Uninitialized attribute %s", "_n_kwextern", LOCATE_parser___parser_nodes, 472);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -839,18 +1391,18 @@ val_t parser___parser_nodes___AFormaldef___n_id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 406;
+  fra.me.line = 476;
   fra.me.meth = LOCATE_parser___parser_nodes___AFormaldef___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:406 */
+  /* parser/parser_nodes.nit:476 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 406);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 476);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -861,14 +1413,14 @@ val_t parser___parser_nodes___AFormaldef___n_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 407;
+  fra.me.line = 477;
   fra.me.meth = LOCATE_parser___parser_nodes___AFormaldef___n_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:407 */
+  /* parser/parser_nodes.nit:477 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -878,14 +1430,14 @@ val_t parser___parser_nodes___ASuperclass___n_kwspecial(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 411;
+  fra.me.line = 481;
   fra.me.meth = LOCATE_parser___parser_nodes___ASuperclass___n_kwspecial;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:411 */
+  /* parser/parser_nodes.nit:481 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -895,14 +1447,14 @@ val_t parser___parser_nodes___ASuperclass___n_kwsuper(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 412;
+  fra.me.line = 482;
   fra.me.meth = LOCATE_parser___parser_nodes___ASuperclass___n_kwsuper;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:412 */
+  /* parser/parser_nodes.nit:482 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -913,18 +1465,18 @@ val_t parser___parser_nodes___ASuperclass___n_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 413;
+  fra.me.line = 483;
   fra.me.meth = LOCATE_parser___parser_nodes___ASuperclass___n_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:413 */
+  /* parser/parser_nodes.nit:483 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_nodes, 413);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_nodes, 483);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -935,14 +1487,14 @@ val_t parser___parser_nodes___APropdef___n_doc(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 416;
+  fra.me.line = 486;
   fra.me.meth = LOCATE_parser___parser_nodes___APropdef___n_doc;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:416 */
+  /* parser/parser_nodes.nit:486 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -952,14 +1504,14 @@ val_t parser___parser_nodes___AAttrPropdef___n_kwredef(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 420;
+  fra.me.line = 490;
   fra.me.meth = LOCATE_parser___parser_nodes___AAttrPropdef___n_kwredef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:420 */
+  /* parser/parser_nodes.nit:490 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -970,18 +1522,18 @@ val_t parser___parser_nodes___AAttrPropdef___n_visibility(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 421;
+  fra.me.line = 491;
   fra.me.meth = LOCATE_parser___parser_nodes___AAttrPropdef___n_visibility;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:421 */
+  /* parser/parser_nodes.nit:491 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_nodes, 421);
+    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_nodes, 491);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -993,18 +1545,18 @@ val_t parser___parser_nodes___AAttrPropdef___n_kwvar(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 422;
+  fra.me.line = 492;
   fra.me.meth = LOCATE_parser___parser_nodes___AAttrPropdef___n_kwvar;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:422 */
+  /* parser/parser_nodes.nit:492 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_nodes, 422);
+    nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_nodes, 492);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1015,14 +1567,14 @@ val_t parser___parser_nodes___AAttrPropdef___n_id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 423;
+  fra.me.line = 493;
   fra.me.meth = LOCATE_parser___parser_nodes___AAttrPropdef___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:423 */
+  /* parser/parser_nodes.nit:493 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1032,14 +1584,14 @@ val_t parser___parser_nodes___AAttrPropdef___n_id2(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 424;
+  fra.me.line = 494;
   fra.me.meth = LOCATE_parser___parser_nodes___AAttrPropdef___n_id2;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:424 */
+  /* parser/parser_nodes.nit:494 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1049,14 +1601,14 @@ val_t parser___parser_nodes___AAttrPropdef___n_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 425;
+  fra.me.line = 495;
   fra.me.meth = LOCATE_parser___parser_nodes___AAttrPropdef___n_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:425 */
+  /* parser/parser_nodes.nit:495 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1066,14 +1618,14 @@ val_t parser___parser_nodes___AAttrPropdef___n_readable(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 426;
+  fra.me.line = 496;
   fra.me.meth = LOCATE_parser___parser_nodes___AAttrPropdef___n_readable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:426 */
+  /* parser/parser_nodes.nit:496 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1083,14 +1635,14 @@ val_t parser___parser_nodes___AAttrPropdef___n_writable(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 427;
+  fra.me.line = 497;
   fra.me.meth = LOCATE_parser___parser_nodes___AAttrPropdef___n_writable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:427 */
+  /* parser/parser_nodes.nit:497 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1100,14 +1652,14 @@ val_t parser___parser_nodes___AAttrPropdef___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 428;
+  fra.me.line = 498;
   fra.me.meth = LOCATE_parser___parser_nodes___AAttrPropdef___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:428 */
+  /* parser/parser_nodes.nit:498 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1119,7 +1671,7 @@ val_t parser___parser_nodes___AAttrPropdef___hot_location(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 429;
+  fra.me.line = 499;
   fra.me.meth = LOCATE_parser___parser_nodes___AAttrPropdef___hot_location;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -1127,7 +1679,7 @@ val_t parser___parser_nodes___AAttrPropdef___hot_location(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:431 */
+  /* parser/parser_nodes.nit:501 */
   fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1146,7 +1698,7 @@ val_t parser___parser_nodes___AAttrPropdef___hot_location(val_t p0){
     fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_nodes, 431);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_nodes, 501);
     }
     fra.me.REG[1] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[1])(fra.me.REG[1]);
     goto label1;
@@ -1154,7 +1706,7 @@ val_t parser___parser_nodes___AAttrPropdef___hot_location(val_t p0){
     fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_nodes, 431);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_nodes, 501);
     }
     fra.me.REG[0] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = fra.me.REG[0];
@@ -1169,14 +1721,14 @@ val_t parser___parser_nodes___AMethPropdef___n_kwredef(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 436;
+  fra.me.line = 506;
   fra.me.meth = LOCATE_parser___parser_nodes___AMethPropdef___n_kwredef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:436 */
+  /* parser/parser_nodes.nit:506 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1186,14 +1738,14 @@ val_t parser___parser_nodes___AMethPropdef___n_visibility(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 437;
+  fra.me.line = 507;
   fra.me.meth = LOCATE_parser___parser_nodes___AMethPropdef___n_visibility;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:437 */
+  /* parser/parser_nodes.nit:507 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1203,14 +1755,14 @@ val_t parser___parser_nodes___AMethPropdef___n_methid(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 438;
+  fra.me.line = 508;
   fra.me.meth = LOCATE_parser___parser_nodes___AMethPropdef___n_methid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:438 */
+  /* parser/parser_nodes.nit:508 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1220,14 +1772,14 @@ val_t parser___parser_nodes___AMethPropdef___n_signature(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 439;
+  fra.me.line = 509;
   fra.me.meth = LOCATE_parser___parser_nodes___AMethPropdef___n_signature;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:439 */
+  /* parser/parser_nodes.nit:509 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1239,7 +1791,7 @@ val_t parser___parser_nodes___AMethPropdef___hot_location(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 440;
+  fra.me.line = 510;
   fra.me.meth = LOCATE_parser___parser_nodes___AMethPropdef___hot_location;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -1247,7 +1799,7 @@ val_t parser___parser_nodes___AMethPropdef___hot_location(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:442 */
+  /* parser/parser_nodes.nit:512 */
   fra.me.REG[1] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1263,16 +1815,16 @@ val_t parser___parser_nodes___AMethPropdef___hot_location(val_t p0){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_nodes.nit:443 */
+    /* parser/parser_nodes.nit:513 */
     fra.me.REG[1] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_nodes, 443);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_nodes, 513);
     }
     fra.me.REG[1] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[1])(fra.me.REG[1]);
     goto label1;
   } else {
-    /* ./parser//parser_nodes.nit:445 */
+    /* parser/parser_nodes.nit:515 */
     fra.me.REG[0] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = fra.me.REG[0];
     goto label1;
@@ -1287,18 +1839,18 @@ val_t parser___parser_nodes___ADeferredMethPropdef___n_kwmeth(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 451;
+  fra.me.line = 521;
   fra.me.meth = LOCATE_parser___parser_nodes___ADeferredMethPropdef___n_kwmeth;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:451 */
+  /* parser/parser_nodes.nit:521 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_nodes, 451);
+    nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_nodes, 521);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1310,18 +1862,18 @@ val_t parser___parser_nodes___AInternMethPropdef___n_kwmeth(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 455;
+  fra.me.line = 525;
   fra.me.meth = LOCATE_parser___parser_nodes___AInternMethPropdef___n_kwmeth;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:455 */
+  /* parser/parser_nodes.nit:525 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_nodes, 455);
+    nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_nodes, 525);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1332,14 +1884,14 @@ val_t parser___parser_nodes___AExternPropdef___n_extern(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 459;
+  fra.me.line = 529;
   fra.me.meth = LOCATE_parser___parser_nodes___AExternPropdef___n_extern;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:459 */
+  /* parser/parser_nodes.nit:529 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1349,14 +1901,14 @@ val_t parser___parser_nodes___AExternPropdef___n_extern_calls(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 460;
+  fra.me.line = 530;
   fra.me.meth = LOCATE_parser___parser_nodes___AExternPropdef___n_extern_calls;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:460 */
+  /* parser/parser_nodes.nit:530 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1367,18 +1919,18 @@ val_t parser___parser_nodes___AExternMethPropdef___n_kwmeth(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 465;
+  fra.me.line = 535;
   fra.me.meth = LOCATE_parser___parser_nodes___AExternMethPropdef___n_kwmeth;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:465 */
+  /* parser/parser_nodes.nit:535 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_nodes, 465);
+    nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_nodes, 535);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1389,14 +1941,14 @@ val_t parser___parser_nodes___AConcreteMethPropdef___n_kwmeth(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 469;
+  fra.me.line = 539;
   fra.me.meth = LOCATE_parser___parser_nodes___AConcreteMethPropdef___n_kwmeth;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:469 */
+  /* parser/parser_nodes.nit:539 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1406,72 +1958,36 @@ val_t parser___parser_nodes___AConcreteMethPropdef___n_block(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 470;
+  fra.me.line = 540;
   fra.me.meth = LOCATE_parser___parser_nodes___AConcreteMethPropdef___n_block;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:470 */
+  /* parser/parser_nodes.nit:540 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-void parser___parser_nodes___AInitPropdef___init(val_t p0, int* init_table){
-  int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitPropdef].i;
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  if (init_table[itpos3]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_parser___parser_nodes___AInitPropdef___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-  init_table[itpos3] = 1;
-  return;
-}
-void parser___parser_nodes___AConcreteInitPropdef___init(val_t p0, int* init_table){
-  int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteInitPropdef].i;
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  if (init_table[itpos4]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 477;
-  fra.me.meth = LOCATE_parser___parser_nodes___AConcreteInitPropdef___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:477 */
-  CALL_parser___parser_nodes___AInitPropdef___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  stack_frame_head = fra.me.prev;
-  init_table[itpos4] = 1;
-  return;
-}
 val_t parser___parser_nodes___AConcreteInitPropdef___n_kwinit(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 478;
+  fra.me.line = 548;
   fra.me.meth = LOCATE_parser___parser_nodes___AConcreteInitPropdef___n_kwinit;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:478 */
+  /* parser/parser_nodes.nit:548 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_nodes, 478);
+    nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_nodes, 548);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1482,14 +1998,14 @@ val_t parser___parser_nodes___AConcreteInitPropdef___hot_location(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 479;
+  fra.me.line = 549;
   fra.me.meth = LOCATE_parser___parser_nodes___AConcreteInitPropdef___hot_location;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:479 */
+  /* parser/parser_nodes.nit:549 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AConcreteInitPropdef___n_kwinit(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -1497,44 +2013,24 @@ val_t parser___parser_nodes___AConcreteInitPropdef___hot_location(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-void parser___parser_nodes___AExternInitPropdef___init(val_t p0, int* init_table){
-  int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternInitPropdef].i;
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  if (init_table[itpos5]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 484;
-  fra.me.meth = LOCATE_parser___parser_nodes___AExternInitPropdef___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:484 */
-  CALL_parser___parser_nodes___AInitPropdef___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  stack_frame_head = fra.me.prev;
-  init_table[itpos5] = 1;
-  return;
-}
 val_t parser___parser_nodes___AExternInitPropdef___n_kwnew(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 485;
+  fra.me.line = 554;
   fra.me.meth = LOCATE_parser___parser_nodes___AExternInitPropdef___n_kwnew;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:485 */
+  /* parser/parser_nodes.nit:554 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_nodes, 485);
+    nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_nodes, 554);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1546,18 +2042,18 @@ val_t parser___parser_nodes___AExternCalls___n_kwimport(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 492;
+  fra.me.line = 561;
   fra.me.meth = LOCATE_parser___parser_nodes___AExternCalls___n_kwimport;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:492 */
+  /* parser/parser_nodes.nit:561 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_nodes, 492);
+    nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_nodes, 561);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1569,18 +2065,18 @@ val_t parser___parser_nodes___AExternCalls___n_extern_calls(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 493;
+  fra.me.line = 562;
   fra.me.meth = LOCATE_parser___parser_nodes___AExternCalls___n_extern_calls;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:493 */
+  /* parser/parser_nodes.nit:562 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_nodes, 493);
+    nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_nodes, 562);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1592,18 +2088,18 @@ val_t parser___parser_nodes___ALocalPropExternCall___n_methid(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 503;
+  fra.me.line = 572;
   fra.me.meth = LOCATE_parser___parser_nodes___ALocalPropExternCall___n_methid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:503 */
+  /* parser/parser_nodes.nit:572 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_nodes, 503);
+    nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_nodes, 572);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1615,18 +2111,18 @@ val_t parser___parser_nodes___AFullPropExternCall___n_classid(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 507;
+  fra.me.line = 576;
   fra.me.meth = LOCATE_parser___parser_nodes___AFullPropExternCall___n_classid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:507 */
+  /* parser/parser_nodes.nit:576 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_nodes, 507);
+    nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_nodes, 576);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1637,14 +2133,14 @@ val_t parser___parser_nodes___AFullPropExternCall___n_quad(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 508;
+  fra.me.line = 577;
   fra.me.meth = LOCATE_parser___parser_nodes___AFullPropExternCall___n_quad;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:508 */
+  /* parser/parser_nodes.nit:577 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1655,18 +2151,18 @@ val_t parser___parser_nodes___AFullPropExternCall___n_methid(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 509;
+  fra.me.line = 578;
   fra.me.meth = LOCATE_parser___parser_nodes___AFullPropExternCall___n_methid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:509 */
+  /* parser/parser_nodes.nit:578 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_nodes, 509);
+    nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_nodes, 578);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1678,18 +2174,18 @@ val_t parser___parser_nodes___AInitPropExternCall___n_classid(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 513;
+  fra.me.line = 582;
   fra.me.meth = LOCATE_parser___parser_nodes___AInitPropExternCall___n_classid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:513 */
+  /* parser/parser_nodes.nit:582 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_nodes, 513);
+    nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_nodes, 582);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1701,18 +2197,18 @@ val_t parser___parser_nodes___ASuperExternCall___n_kwsuper(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 517;
+  fra.me.line = 586;
   fra.me.meth = LOCATE_parser___parser_nodes___ASuperExternCall___n_kwsuper;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:517 */
+  /* parser/parser_nodes.nit:586 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_nodes, 517);
+    nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_nodes, 586);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1724,18 +2220,18 @@ val_t parser___parser_nodes___ACastAsExternCall___n_from_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 524;
+  fra.me.line = 593;
   fra.me.meth = LOCATE_parser___parser_nodes___ACastAsExternCall___n_from_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:524 */
+  /* parser/parser_nodes.nit:593 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_from_type", LOCATE_parser___parser_nodes, 524);
+    nit_abort("Uninitialized attribute %s", "_n_from_type", LOCATE_parser___parser_nodes, 593);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1747,18 +2243,18 @@ val_t parser___parser_nodes___ACastAsExternCall___n_kwas(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 525;
+  fra.me.line = 594;
   fra.me.meth = LOCATE_parser___parser_nodes___ACastAsExternCall___n_kwas;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:525 */
+  /* parser/parser_nodes.nit:594 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_nodes, 525);
+    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_nodes, 594);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1770,18 +2266,18 @@ val_t parser___parser_nodes___ACastAsExternCall___n_to_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 526;
+  fra.me.line = 595;
   fra.me.meth = LOCATE_parser___parser_nodes___ACastAsExternCall___n_to_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:526 */
+  /* parser/parser_nodes.nit:595 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_to_type", LOCATE_parser___parser_nodes, 526);
+    nit_abort("Uninitialized attribute %s", "_n_to_type", LOCATE_parser___parser_nodes, 595);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1793,18 +2289,18 @@ val_t parser___parser_nodes___AAsNullableExternCall___n_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 530;
+  fra.me.line = 599;
   fra.me.meth = LOCATE_parser___parser_nodes___AAsNullableExternCall___n_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:530 */
+  /* parser/parser_nodes.nit:599 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_nodes, 530);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_nodes, 599);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1816,18 +2312,18 @@ val_t parser___parser_nodes___AAsNullableExternCall___n_kwas(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 531;
+  fra.me.line = 600;
   fra.me.meth = LOCATE_parser___parser_nodes___AAsNullableExternCall___n_kwas;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:531 */
+  /* parser/parser_nodes.nit:600 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_nodes, 531);
+    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_nodes, 600);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1839,18 +2335,18 @@ val_t parser___parser_nodes___AAsNullableExternCall___n_kwnullable(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 532;
+  fra.me.line = 601;
   fra.me.meth = LOCATE_parser___parser_nodes___AAsNullableExternCall___n_kwnullable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:532 */
+  /* parser/parser_nodes.nit:601 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_nodes, 532);
+    nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_nodes, 601);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1862,18 +2358,18 @@ val_t parser___parser_nodes___AAsNotNullableExternCall___n_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 536;
+  fra.me.line = 605;
   fra.me.meth = LOCATE_parser___parser_nodes___AAsNotNullableExternCall___n_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:536 */
+  /* parser/parser_nodes.nit:605 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_nodes, 536);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_nodes, 605);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1885,18 +2381,18 @@ val_t parser___parser_nodes___AAsNotNullableExternCall___n_kwas(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 537;
+  fra.me.line = 606;
   fra.me.meth = LOCATE_parser___parser_nodes___AAsNotNullableExternCall___n_kwas;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:537 */
+  /* parser/parser_nodes.nit:606 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_nodes, 537);
+    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_nodes, 606);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1908,18 +2404,18 @@ val_t parser___parser_nodes___AAsNotNullableExternCall___n_kwnot(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 538;
+  fra.me.line = 607;
   fra.me.meth = LOCATE_parser___parser_nodes___AAsNotNullableExternCall___n_kwnot;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:538 */
+  /* parser/parser_nodes.nit:607 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_nodes, 538);
+    nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_nodes, 607);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1931,18 +2427,18 @@ val_t parser___parser_nodes___AAsNotNullableExternCall___n_kwnullable(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 539;
+  fra.me.line = 608;
   fra.me.meth = LOCATE_parser___parser_nodes___AAsNotNullableExternCall___n_kwnullable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:539 */
+  /* parser/parser_nodes.nit:608 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_nodes, 539);
+    nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_nodes, 608);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1953,14 +2449,14 @@ val_t parser___parser_nodes___ATypePropdef___n_kwredef(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 543;
+  fra.me.line = 612;
   fra.me.meth = LOCATE_parser___parser_nodes___ATypePropdef___n_kwredef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:543 */
+  /* parser/parser_nodes.nit:612 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1971,18 +2467,18 @@ val_t parser___parser_nodes___ATypePropdef___n_visibility(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 544;
+  fra.me.line = 613;
   fra.me.meth = LOCATE_parser___parser_nodes___ATypePropdef___n_visibility;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:544 */
+  /* parser/parser_nodes.nit:613 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_nodes, 544);
+    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_nodes, 613);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1994,18 +2490,18 @@ val_t parser___parser_nodes___ATypePropdef___n_kwtype(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 545;
+  fra.me.line = 614;
   fra.me.meth = LOCATE_parser___parser_nodes___ATypePropdef___n_kwtype;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:545 */
+  /* parser/parser_nodes.nit:614 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_nodes, 545);
+    nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_nodes, 614);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2017,18 +2513,18 @@ val_t parser___parser_nodes___ATypePropdef___n_id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 546;
+  fra.me.line = 615;
   fra.me.meth = LOCATE_parser___parser_nodes___ATypePropdef___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:546 */
+  /* parser/parser_nodes.nit:615 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 546);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 615);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2040,18 +2536,18 @@ val_t parser___parser_nodes___ATypePropdef___n_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 547;
+  fra.me.line = 616;
   fra.me.meth = LOCATE_parser___parser_nodes___ATypePropdef___n_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:547 */
+  /* parser/parser_nodes.nit:616 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_nodes, 547);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_nodes, 616);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2062,14 +2558,14 @@ val_t parser___parser_nodes___AAble___n_visibility(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 550;
+  fra.me.line = 619;
   fra.me.meth = LOCATE_parser___parser_nodes___AAble___n_visibility;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:550 */
+  /* parser/parser_nodes.nit:619 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -2079,14 +2575,14 @@ val_t parser___parser_nodes___AAble___n_kwredef(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 551;
+  fra.me.line = 620;
   fra.me.meth = LOCATE_parser___parser_nodes___AAble___n_kwredef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:551 */
+  /* parser/parser_nodes.nit:620 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -2097,18 +2593,18 @@ val_t parser___parser_nodes___AReadAble___n_kwreadable(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 555;
+  fra.me.line = 624;
   fra.me.meth = LOCATE_parser___parser_nodes___AReadAble___n_kwreadable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:555 */
+  /* parser/parser_nodes.nit:624 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser___parser_nodes, 555);
+    nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser___parser_nodes, 624);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2120,18 +2616,18 @@ val_t parser___parser_nodes___AWriteAble___n_kwwritable(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 559;
+  fra.me.line = 628;
   fra.me.meth = LOCATE_parser___parser_nodes___AWriteAble___n_kwwritable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:559 */
+  /* parser/parser_nodes.nit:628 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser___parser_nodes, 559);
+    nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser___parser_nodes, 628);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2143,18 +2639,18 @@ val_t parser___parser_nodes___AIdMethid___n_id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 564;
+  fra.me.line = 633;
   fra.me.meth = LOCATE_parser___parser_nodes___AIdMethid___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:564 */
+  /* parser/parser_nodes.nit:633 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 564);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 633);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2166,18 +2662,18 @@ val_t parser___parser_nodes___APlusMethid___n_plus(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 568;
+  fra.me.line = 637;
   fra.me.meth = LOCATE_parser___parser_nodes___APlusMethid___n_plus;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:568 */
+  /* parser/parser_nodes.nit:637 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser___parser_nodes, 568);
+    nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser___parser_nodes, 637);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2189,18 +2685,18 @@ val_t parser___parser_nodes___AMinusMethid___n_minus(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 572;
+  fra.me.line = 641;
   fra.me.meth = LOCATE_parser___parser_nodes___AMinusMethid___n_minus;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:572 */
+  /* parser/parser_nodes.nit:641 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_nodes, 572);
+    nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_nodes, 641);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2212,18 +2708,18 @@ val_t parser___parser_nodes___AStarMethid___n_star(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 576;
+  fra.me.line = 645;
   fra.me.meth = LOCATE_parser___parser_nodes___AStarMethid___n_star;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:576 */
+  /* parser/parser_nodes.nit:645 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser___parser_nodes, 576);
+    nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser___parser_nodes, 645);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2235,18 +2731,18 @@ val_t parser___parser_nodes___ASlashMethid___n_slash(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 580;
+  fra.me.line = 649;
   fra.me.meth = LOCATE_parser___parser_nodes___ASlashMethid___n_slash;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:580 */
+  /* parser/parser_nodes.nit:649 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser___parser_nodes, 580);
+    nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser___parser_nodes, 649);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2258,18 +2754,18 @@ val_t parser___parser_nodes___APercentMethid___n_percent(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 584;
+  fra.me.line = 653;
   fra.me.meth = LOCATE_parser___parser_nodes___APercentMethid___n_percent;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:584 */
+  /* parser/parser_nodes.nit:653 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser___parser_nodes, 584);
+    nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser___parser_nodes, 653);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2281,18 +2777,18 @@ val_t parser___parser_nodes___AEqMethid___n_eq(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 588;
+  fra.me.line = 657;
   fra.me.meth = LOCATE_parser___parser_nodes___AEqMethid___n_eq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:588 */
+  /* parser/parser_nodes.nit:657 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser___parser_nodes, 588);
+    nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser___parser_nodes, 657);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2304,18 +2800,18 @@ val_t parser___parser_nodes___ANeMethid___n_ne(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 592;
+  fra.me.line = 661;
   fra.me.meth = LOCATE_parser___parser_nodes___ANeMethid___n_ne;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:592 */
+  /* parser/parser_nodes.nit:661 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser___parser_nodes, 592);
+    nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser___parser_nodes, 661);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2327,18 +2823,18 @@ val_t parser___parser_nodes___ALeMethid___n_le(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 596;
+  fra.me.line = 665;
   fra.me.meth = LOCATE_parser___parser_nodes___ALeMethid___n_le;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:596 */
+  /* parser/parser_nodes.nit:665 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser___parser_nodes, 596);
+    nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser___parser_nodes, 665);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2350,18 +2846,18 @@ val_t parser___parser_nodes___AGeMethid___n_ge(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 600;
+  fra.me.line = 669;
   fra.me.meth = LOCATE_parser___parser_nodes___AGeMethid___n_ge;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:600 */
+  /* parser/parser_nodes.nit:669 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser___parser_nodes, 600);
+    nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser___parser_nodes, 669);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2373,18 +2869,18 @@ val_t parser___parser_nodes___ALtMethid___n_lt(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 604;
+  fra.me.line = 673;
   fra.me.meth = LOCATE_parser___parser_nodes___ALtMethid___n_lt;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:604 */
+  /* parser/parser_nodes.nit:673 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser___parser_nodes, 604);
+    nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser___parser_nodes, 673);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2396,18 +2892,18 @@ val_t parser___parser_nodes___AGtMethid___n_gt(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 608;
+  fra.me.line = 677;
   fra.me.meth = LOCATE_parser___parser_nodes___AGtMethid___n_gt;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:608 */
+  /* parser/parser_nodes.nit:677 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser___parser_nodes, 608);
+    nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser___parser_nodes, 677);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2419,18 +2915,18 @@ val_t parser___parser_nodes___ALlMethid___n_ll(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 612;
+  fra.me.line = 681;
   fra.me.meth = LOCATE_parser___parser_nodes___ALlMethid___n_ll;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:612 */
+  /* parser/parser_nodes.nit:681 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser___parser_nodes, 612);
+    nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser___parser_nodes, 681);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2441,7 +2937,7 @@ void parser___parser_nodes___ALlMethid___n_ll__eq(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 612;
+  fra.me.line = 681;
   fra.me.meth = LOCATE_parser___parser_nodes___ALlMethid___n_ll__eq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2450,7 +2946,7 @@ void parser___parser_nodes___ALlMethid___n_ll__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_nodes.nit:612 */
+  /* parser/parser_nodes.nit:681 */
   ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2461,18 +2957,18 @@ val_t parser___parser_nodes___AGgMethid___n_gg(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 616;
+  fra.me.line = 685;
   fra.me.meth = LOCATE_parser___parser_nodes___AGgMethid___n_gg;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:616 */
+  /* parser/parser_nodes.nit:685 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser___parser_nodes, 616);
+    nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser___parser_nodes, 685);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2483,7 +2979,7 @@ void parser___parser_nodes___AGgMethid___n_gg__eq(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 616;
+  fra.me.line = 685;
   fra.me.meth = LOCATE_parser___parser_nodes___AGgMethid___n_gg__eq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2492,7 +2988,7 @@ void parser___parser_nodes___AGgMethid___n_gg__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_nodes.nit:616 */
+  /* parser/parser_nodes.nit:685 */
   ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2503,18 +2999,18 @@ val_t parser___parser_nodes___ABraMethid___n_obra(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 620;
+  fra.me.line = 689;
   fra.me.meth = LOCATE_parser___parser_nodes___ABraMethid___n_obra;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:620 */
+  /* parser/parser_nodes.nit:689 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_nodes, 620);
+    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_nodes, 689);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2526,18 +3022,18 @@ val_t parser___parser_nodes___ABraMethid___n_cbra(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 621;
+  fra.me.line = 690;
   fra.me.meth = LOCATE_parser___parser_nodes___ABraMethid___n_cbra;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:621 */
+  /* parser/parser_nodes.nit:690 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_nodes, 621);
+    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_nodes, 690);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2549,18 +3045,18 @@ val_t parser___parser_nodes___AStarshipMethid___n_starship(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 625;
+  fra.me.line = 694;
   fra.me.meth = LOCATE_parser___parser_nodes___AStarshipMethid___n_starship;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:625 */
+  /* parser/parser_nodes.nit:694 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser___parser_nodes, 625);
+    nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser___parser_nodes, 694);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2572,18 +3068,18 @@ val_t parser___parser_nodes___AAssignMethid___n_id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 629;
+  fra.me.line = 698;
   fra.me.meth = LOCATE_parser___parser_nodes___AAssignMethid___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:629 */
+  /* parser/parser_nodes.nit:698 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 629);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 698);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2595,18 +3091,18 @@ val_t parser___parser_nodes___AAssignMethid___n_assign(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 630;
+  fra.me.line = 699;
   fra.me.meth = LOCATE_parser___parser_nodes___AAssignMethid___n_assign;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:630 */
+  /* parser/parser_nodes.nit:699 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_nodes, 630);
+    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_nodes, 699);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2618,18 +3114,18 @@ val_t parser___parser_nodes___ABraassignMethid___n_obra(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 634;
+  fra.me.line = 703;
   fra.me.meth = LOCATE_parser___parser_nodes___ABraassignMethid___n_obra;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:634 */
+  /* parser/parser_nodes.nit:703 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_nodes, 634);
+    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_nodes, 703);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2641,18 +3137,18 @@ val_t parser___parser_nodes___ABraassignMethid___n_cbra(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 635;
+  fra.me.line = 704;
   fra.me.meth = LOCATE_parser___parser_nodes___ABraassignMethid___n_cbra;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:635 */
+  /* parser/parser_nodes.nit:704 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_nodes, 635);
+    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_nodes, 704);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2664,59 +3160,93 @@ val_t parser___parser_nodes___ABraassignMethid___n_assign(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 636;
+  fra.me.line = 705;
   fra.me.meth = LOCATE_parser___parser_nodes___ABraassignMethid___n_assign;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:636 */
+  /* parser/parser_nodes.nit:705 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_nodes, 636);
+    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_nodes, 705);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+val_t parser___parser_nodes___ASignature___n_opar(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 709;
+  fra.me.meth = LOCATE_parser___parser_nodes___ASignature___n_opar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:709 */
+  fra.me.REG[0] = ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
 val_t parser___parser_nodes___ASignature___n_params(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 640;
+  fra.me.line = 710;
   fra.me.meth = LOCATE_parser___parser_nodes___ASignature___n_params;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:640 */
+  /* parser/parser_nodes.nit:710 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_nodes, 640);
+    nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_nodes, 710);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+val_t parser___parser_nodes___ASignature___n_cpar(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 711;
+  fra.me.meth = LOCATE_parser___parser_nodes___ASignature___n_cpar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:711 */
+  fra.me.REG[0] = ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
 val_t parser___parser_nodes___ASignature___n_type(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 641;
+  fra.me.line = 712;
   fra.me.meth = LOCATE_parser___parser_nodes___ASignature___n_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:641 */
+  /* parser/parser_nodes.nit:712 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -2727,18 +3257,18 @@ val_t parser___parser_nodes___ASignature___n_closure_decls(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 642;
+  fra.me.line = 713;
   fra.me.meth = LOCATE_parser___parser_nodes___ASignature___n_closure_decls;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:642 */
+  /* parser/parser_nodes.nit:713 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_nodes, 642);
+    nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_nodes, 713);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2750,18 +3280,18 @@ val_t parser___parser_nodes___AParam___n_id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 646;
+  fra.me.line = 717;
   fra.me.meth = LOCATE_parser___parser_nodes___AParam___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:646 */
+  /* parser/parser_nodes.nit:717 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 646);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 717);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2772,14 +3302,14 @@ val_t parser___parser_nodes___AParam___n_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 647;
+  fra.me.line = 718;
   fra.me.meth = LOCATE_parser___parser_nodes___AParam___n_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:647 */
+  /* parser/parser_nodes.nit:718 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -2789,14 +3319,14 @@ val_t parser___parser_nodes___AParam___n_dotdotdot(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 648;
+  fra.me.line = 719;
   fra.me.meth = LOCATE_parser___parser_nodes___AParam___n_dotdotdot;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:648 */
+  /* parser/parser_nodes.nit:719 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -2806,14 +3336,14 @@ val_t parser___parser_nodes___AClosureDecl___n_kwbreak(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 652;
+  fra.me.line = 723;
   fra.me.meth = LOCATE_parser___parser_nodes___AClosureDecl___n_kwbreak;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:652 */
+  /* parser/parser_nodes.nit:723 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -2824,18 +3354,18 @@ val_t parser___parser_nodes___AClosureDecl___n_bang(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 653;
+  fra.me.line = 724;
   fra.me.meth = LOCATE_parser___parser_nodes___AClosureDecl___n_bang;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:653 */
+  /* parser/parser_nodes.nit:724 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_nodes, 653);
+    nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_nodes, 724);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2847,18 +3377,18 @@ val_t parser___parser_nodes___AClosureDecl___n_id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 654;
+  fra.me.line = 725;
   fra.me.meth = LOCATE_parser___parser_nodes___AClosureDecl___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:654 */
+  /* parser/parser_nodes.nit:725 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 654);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 725);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2870,18 +3400,18 @@ val_t parser___parser_nodes___AClosureDecl___n_signature(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 655;
+  fra.me.line = 726;
   fra.me.meth = LOCATE_parser___parser_nodes___AClosureDecl___n_signature;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:655 */
+  /* parser/parser_nodes.nit:726 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser___parser_nodes, 655);
+    nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser___parser_nodes, 726);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2892,14 +3422,14 @@ val_t parser___parser_nodes___AClosureDecl___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 656;
+  fra.me.line = 727;
   fra.me.meth = LOCATE_parser___parser_nodes___AClosureDecl___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:656 */
+  /* parser/parser_nodes.nit:727 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -2909,14 +3439,14 @@ val_t parser___parser_nodes___AType___n_kwnullable(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 660;
+  fra.me.line = 731;
   fra.me.meth = LOCATE_parser___parser_nodes___AType___n_kwnullable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:660 */
+  /* parser/parser_nodes.nit:731 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -2927,18 +3457,18 @@ val_t parser___parser_nodes___AType___n_id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 661;
+  fra.me.line = 732;
   fra.me.meth = LOCATE_parser___parser_nodes___AType___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:661 */
+  /* parser/parser_nodes.nit:732 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 661);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 732);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2950,18 +3480,18 @@ val_t parser___parser_nodes___AType___n_types(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 662;
+  fra.me.line = 733;
   fra.me.meth = LOCATE_parser___parser_nodes___AType___n_types;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:662 */
+  /* parser/parser_nodes.nit:733 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_nodes, 662);
+    nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_nodes, 733);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2973,18 +3503,18 @@ val_t parser___parser_nodes___ALabel___n_kwlabel(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 666;
+  fra.me.line = 737;
   fra.me.meth = LOCATE_parser___parser_nodes___ALabel___n_kwlabel;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:666 */
+  /* parser/parser_nodes.nit:737 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser___parser_nodes, 666);
+    nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser___parser_nodes, 737);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2996,18 +3526,18 @@ val_t parser___parser_nodes___ALabel___n_id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 667;
+  fra.me.line = 738;
   fra.me.meth = LOCATE_parser___parser_nodes___ALabel___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:667 */
+  /* parser/parser_nodes.nit:738 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 667);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 738);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3019,41 +3549,58 @@ val_t parser___parser_nodes___ABlockExpr___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 672;
+  fra.me.line = 743;
   fra.me.meth = LOCATE_parser___parser_nodes___ABlockExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:672 */
+  /* parser/parser_nodes.nit:743 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 672);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 743);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+val_t parser___parser_nodes___ABlockExpr___n_kwend(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 744;
+  fra.me.meth = LOCATE_parser___parser_nodes___ABlockExpr___n_kwend;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:744 */
+  fra.me.REG[0] = ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
 val_t parser___parser_nodes___AVardeclExpr___n_kwvar(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 676;
+  fra.me.line = 748;
   fra.me.meth = LOCATE_parser___parser_nodes___AVardeclExpr___n_kwvar;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:676 */
+  /* parser/parser_nodes.nit:748 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_nodes, 676);
+    nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_nodes, 748);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3065,18 +3612,18 @@ val_t parser___parser_nodes___AVardeclExpr___n_id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 677;
+  fra.me.line = 749;
   fra.me.meth = LOCATE_parser___parser_nodes___AVardeclExpr___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:677 */
+  /* parser/parser_nodes.nit:749 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 677);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 749);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3087,14 +3634,14 @@ val_t parser___parser_nodes___AVardeclExpr___n_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 678;
+  fra.me.line = 750;
   fra.me.meth = LOCATE_parser___parser_nodes___AVardeclExpr___n_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:678 */
+  /* parser/parser_nodes.nit:750 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -3104,14 +3651,14 @@ val_t parser___parser_nodes___AVardeclExpr___n_assign(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 679;
+  fra.me.line = 751;
   fra.me.meth = LOCATE_parser___parser_nodes___AVardeclExpr___n_assign;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:679 */
+  /* parser/parser_nodes.nit:751 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -3121,14 +3668,14 @@ val_t parser___parser_nodes___AVardeclExpr___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 680;
+  fra.me.line = 752;
   fra.me.meth = LOCATE_parser___parser_nodes___AVardeclExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:680 */
+  /* parser/parser_nodes.nit:752 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -3138,14 +3685,14 @@ val_t parser___parser_nodes___AReturnExpr___n_kwreturn(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 684;
+  fra.me.line = 756;
   fra.me.meth = LOCATE_parser___parser_nodes___AReturnExpr___n_kwreturn;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:684 */
+  /* parser/parser_nodes.nit:756 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -3155,14 +3702,14 @@ val_t parser___parser_nodes___AReturnExpr___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 685;
+  fra.me.line = 757;
   fra.me.meth = LOCATE_parser___parser_nodes___AReturnExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:685 */
+  /* parser/parser_nodes.nit:757 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -3172,14 +3719,14 @@ val_t parser___parser_nodes___ALabelable___n_label(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 689;
+  fra.me.line = 761;
   fra.me.meth = LOCATE_parser___parser_nodes___ALabelable___n_label;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:689 */
+  /* parser/parser_nodes.nit:761 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -3190,18 +3737,18 @@ val_t parser___parser_nodes___ABreakExpr___n_kwbreak(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 694;
+  fra.me.line = 766;
   fra.me.meth = LOCATE_parser___parser_nodes___ABreakExpr___n_kwbreak;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:694 */
+  /* parser/parser_nodes.nit:766 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_nodes, 694);
+    nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_nodes, 766);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3212,14 +3759,14 @@ val_t parser___parser_nodes___ABreakExpr___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 695;
+  fra.me.line = 767;
   fra.me.meth = LOCATE_parser___parser_nodes___ABreakExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:695 */
+  /* parser/parser_nodes.nit:767 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -3230,18 +3777,18 @@ val_t parser___parser_nodes___AAbortExpr___n_kwabort(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 699;
+  fra.me.line = 771;
   fra.me.meth = LOCATE_parser___parser_nodes___AAbortExpr___n_kwabort;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:699 */
+  /* parser/parser_nodes.nit:771 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser___parser_nodes, 699);
+    nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser___parser_nodes, 771);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3252,14 +3799,14 @@ val_t parser___parser_nodes___AContinueExpr___n_kwcontinue(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 704;
+  fra.me.line = 776;
   fra.me.meth = LOCATE_parser___parser_nodes___AContinueExpr___n_kwcontinue;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:704 */
+  /* parser/parser_nodes.nit:776 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -3269,14 +3816,14 @@ val_t parser___parser_nodes___AContinueExpr___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 705;
+  fra.me.line = 777;
   fra.me.meth = LOCATE_parser___parser_nodes___AContinueExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:705 */
+  /* parser/parser_nodes.nit:777 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -3287,18 +3834,18 @@ val_t parser___parser_nodes___ADoExpr___n_kwdo(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 710;
+  fra.me.line = 782;
   fra.me.meth = LOCATE_parser___parser_nodes___ADoExpr___n_kwdo;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:710 */
+  /* parser/parser_nodes.nit:782 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_nodes, 710);
+    nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_nodes, 782);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3309,14 +3856,14 @@ val_t parser___parser_nodes___ADoExpr___n_block(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 711;
+  fra.me.line = 783;
   fra.me.meth = LOCATE_parser___parser_nodes___ADoExpr___n_block;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:711 */
+  /* parser/parser_nodes.nit:783 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -3327,18 +3874,18 @@ val_t parser___parser_nodes___AIfExpr___n_kwif(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 715;
+  fra.me.line = 787;
   fra.me.meth = LOCATE_parser___parser_nodes___AIfExpr___n_kwif;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:715 */
+  /* parser/parser_nodes.nit:787 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_nodes, 715);
+    nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_nodes, 787);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3350,18 +3897,18 @@ val_t parser___parser_nodes___AIfExpr___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 716;
+  fra.me.line = 788;
   fra.me.meth = LOCATE_parser___parser_nodes___AIfExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:716 */
+  /* parser/parser_nodes.nit:788 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 716);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 788);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3372,14 +3919,14 @@ val_t parser___parser_nodes___AIfExpr___n_then(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 717;
+  fra.me.line = 789;
   fra.me.meth = LOCATE_parser___parser_nodes___AIfExpr___n_then;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:717 */
+  /* parser/parser_nodes.nit:789 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -3389,14 +3936,14 @@ val_t parser___parser_nodes___AIfExpr___n_else(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 718;
+  fra.me.line = 790;
   fra.me.meth = LOCATE_parser___parser_nodes___AIfExpr___n_else;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:718 */
+  /* parser/parser_nodes.nit:790 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -3407,18 +3954,18 @@ val_t parser___parser_nodes___AIfexprExpr___n_kwif(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 722;
+  fra.me.line = 794;
   fra.me.meth = LOCATE_parser___parser_nodes___AIfexprExpr___n_kwif;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:722 */
+  /* parser/parser_nodes.nit:794 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_nodes, 722);
+    nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_nodes, 794);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3430,18 +3977,18 @@ val_t parser___parser_nodes___AIfexprExpr___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 723;
+  fra.me.line = 795;
   fra.me.meth = LOCATE_parser___parser_nodes___AIfexprExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:723 */
+  /* parser/parser_nodes.nit:795 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 723);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 795);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3453,18 +4000,18 @@ val_t parser___parser_nodes___AIfexprExpr___n_kwthen(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 724;
+  fra.me.line = 796;
   fra.me.meth = LOCATE_parser___parser_nodes___AIfexprExpr___n_kwthen;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:724 */
+  /* parser/parser_nodes.nit:796 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser___parser_nodes, 724);
+    nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser___parser_nodes, 796);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3476,18 +4023,18 @@ val_t parser___parser_nodes___AIfexprExpr___n_then(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 725;
+  fra.me.line = 797;
   fra.me.meth = LOCATE_parser___parser_nodes___AIfexprExpr___n_then;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:725 */
+  /* parser/parser_nodes.nit:797 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser___parser_nodes, 725);
+    nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser___parser_nodes, 797);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3499,18 +4046,18 @@ val_t parser___parser_nodes___AIfexprExpr___n_kwelse(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 726;
+  fra.me.line = 798;
   fra.me.meth = LOCATE_parser___parser_nodes___AIfexprExpr___n_kwelse;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:726 */
+  /* parser/parser_nodes.nit:798 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser___parser_nodes, 726);
+    nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser___parser_nodes, 798);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3522,18 +4069,18 @@ val_t parser___parser_nodes___AIfexprExpr___n_else(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 727;
+  fra.me.line = 799;
   fra.me.meth = LOCATE_parser___parser_nodes___AIfexprExpr___n_else;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:727 */
+  /* parser/parser_nodes.nit:799 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser___parser_nodes, 727);
+    nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser___parser_nodes, 799);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3545,18 +4092,18 @@ val_t parser___parser_nodes___AWhileExpr___n_kwwhile(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 732;
+  fra.me.line = 804;
   fra.me.meth = LOCATE_parser___parser_nodes___AWhileExpr___n_kwwhile;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:732 */
+  /* parser/parser_nodes.nit:804 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser___parser_nodes, 732);
+    nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser___parser_nodes, 804);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3568,18 +4115,18 @@ val_t parser___parser_nodes___AWhileExpr___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 733;
+  fra.me.line = 805;
   fra.me.meth = LOCATE_parser___parser_nodes___AWhileExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:733 */
+  /* parser/parser_nodes.nit:805 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 733);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 805);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3591,18 +4138,18 @@ val_t parser___parser_nodes___AWhileExpr___n_kwdo(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 734;
+  fra.me.line = 806;
   fra.me.meth = LOCATE_parser___parser_nodes___AWhileExpr___n_kwdo;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:734 */
+  /* parser/parser_nodes.nit:806 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_nodes, 734);
+    nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_nodes, 806);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3613,14 +4160,14 @@ val_t parser___parser_nodes___AWhileExpr___n_block(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 735;
+  fra.me.line = 807;
   fra.me.meth = LOCATE_parser___parser_nodes___AWhileExpr___n_block;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:735 */
+  /* parser/parser_nodes.nit:807 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -3631,18 +4178,18 @@ val_t parser___parser_nodes___ALoopExpr___n_kwloop(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 740;
+  fra.me.line = 812;
   fra.me.meth = LOCATE_parser___parser_nodes___ALoopExpr___n_kwloop;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:740 */
+  /* parser/parser_nodes.nit:812 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser___parser_nodes, 740);
+    nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser___parser_nodes, 812);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3653,14 +4200,14 @@ val_t parser___parser_nodes___ALoopExpr___n_block(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 741;
+  fra.me.line = 813;
   fra.me.meth = LOCATE_parser___parser_nodes___ALoopExpr___n_block;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:741 */
+  /* parser/parser_nodes.nit:813 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -3671,18 +4218,18 @@ val_t parser___parser_nodes___AForExpr___n_kwfor(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 746;
+  fra.me.line = 818;
   fra.me.meth = LOCATE_parser___parser_nodes___AForExpr___n_kwfor;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:746 */
+  /* parser/parser_nodes.nit:818 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser___parser_nodes, 746);
+    nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser___parser_nodes, 818);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3694,18 +4241,18 @@ val_t parser___parser_nodes___AForExpr___n_ids(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 747;
+  fra.me.line = 819;
   fra.me.meth = LOCATE_parser___parser_nodes___AForExpr___n_ids;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:747 */
+  /* parser/parser_nodes.nit:819 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_nodes, 747);
+    nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_nodes, 819);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3717,18 +4264,18 @@ val_t parser___parser_nodes___AForExpr___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 748;
+  fra.me.line = 820;
   fra.me.meth = LOCATE_parser___parser_nodes___AForExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:748 */
+  /* parser/parser_nodes.nit:820 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 748);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 820);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3740,18 +4287,18 @@ val_t parser___parser_nodes___AForExpr___n_kwdo(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 749;
+  fra.me.line = 821;
   fra.me.meth = LOCATE_parser___parser_nodes___AForExpr___n_kwdo;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:749 */
+  /* parser/parser_nodes.nit:821 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_nodes, 749);
+    nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_nodes, 821);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3762,14 +4309,14 @@ val_t parser___parser_nodes___AForExpr___n_block(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 750;
+  fra.me.line = 822;
   fra.me.meth = LOCATE_parser___parser_nodes___AForExpr___n_block;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:750 */
+  /* parser/parser_nodes.nit:822 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -3780,18 +4327,18 @@ val_t parser___parser_nodes___AAssertExpr___n_kwassert(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 754;
+  fra.me.line = 826;
   fra.me.meth = LOCATE_parser___parser_nodes___AAssertExpr___n_kwassert;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:754 */
+  /* parser/parser_nodes.nit:826 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser___parser_nodes, 754);
+    nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser___parser_nodes, 826);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3802,14 +4349,14 @@ val_t parser___parser_nodes___AAssertExpr___n_id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 755;
+  fra.me.line = 827;
   fra.me.meth = LOCATE_parser___parser_nodes___AAssertExpr___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:755 */
+  /* parser/parser_nodes.nit:827 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -3820,18 +4367,18 @@ val_t parser___parser_nodes___AAssertExpr___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 756;
+  fra.me.line = 828;
   fra.me.meth = LOCATE_parser___parser_nodes___AAssertExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:756 */
+  /* parser/parser_nodes.nit:828 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 756);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 828);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3842,14 +4389,14 @@ val_t parser___parser_nodes___AAssertExpr___n_else(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 757;
+  fra.me.line = 829;
   fra.me.meth = LOCATE_parser___parser_nodes___AAssertExpr___n_else;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:757 */
+  /* parser/parser_nodes.nit:829 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -3860,18 +4407,18 @@ val_t parser___parser_nodes___AAssignFormExpr___n_assign(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 761;
+  fra.me.line = 833;
   fra.me.meth = LOCATE_parser___parser_nodes___AAssignFormExpr___n_assign;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:761 */
+  /* parser/parser_nodes.nit:833 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_nodes, 761);
+    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_nodes, 833);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3883,18 +4430,18 @@ val_t parser___parser_nodes___AAssignFormExpr___n_value(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 762;
+  fra.me.line = 834;
   fra.me.meth = LOCATE_parser___parser_nodes___AAssignFormExpr___n_value;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:762 */
+  /* parser/parser_nodes.nit:834 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_nodes, 762);
+    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_nodes, 834);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3906,18 +4453,18 @@ val_t parser___parser_nodes___AReassignFormExpr___n_assign_op(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 766;
+  fra.me.line = 838;
   fra.me.meth = LOCATE_parser___parser_nodes___AReassignFormExpr___n_assign_op;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:766 */
+  /* parser/parser_nodes.nit:838 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_nodes, 766);
+    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_nodes, 838);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3929,18 +4476,18 @@ val_t parser___parser_nodes___AReassignFormExpr___n_value(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 767;
+  fra.me.line = 839;
   fra.me.meth = LOCATE_parser___parser_nodes___AReassignFormExpr___n_value;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:767 */
+  /* parser/parser_nodes.nit:839 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_nodes, 767);
+    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_nodes, 839);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3952,18 +4499,18 @@ val_t parser___parser_nodes___AOnceExpr___n_kwonce(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 771;
+  fra.me.line = 843;
   fra.me.meth = LOCATE_parser___parser_nodes___AOnceExpr___n_kwonce;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:771 */
+  /* parser/parser_nodes.nit:843 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser___parser_nodes, 771);
+    nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser___parser_nodes, 843);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3975,18 +4522,18 @@ val_t parser___parser_nodes___ASendExpr___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 775;
+  fra.me.line = 847;
   fra.me.meth = LOCATE_parser___parser_nodes___ASendExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:775 */
+  /* parser/parser_nodes.nit:847 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 775);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 847);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3998,18 +4545,18 @@ val_t parser___parser_nodes___ASendExpr___n_closure_defs(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 776;
+  fra.me.line = 848;
   fra.me.meth = LOCATE_parser___parser_nodes___ASendExpr___n_closure_defs;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:776 */
+  /* parser/parser_nodes.nit:848 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_nodes, 776);
+    nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_nodes, 848);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4021,18 +4568,18 @@ val_t parser___parser_nodes___ABinopExpr___n_expr2(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 780;
+  fra.me.line = 852;
   fra.me.meth = LOCATE_parser___parser_nodes___ABinopExpr___n_expr2;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:780 */
+  /* parser/parser_nodes.nit:852 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_nodes, 780);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_nodes, 852);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4044,18 +4591,18 @@ val_t parser___parser_nodes___AOrExpr___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 787;
+  fra.me.line = 859;
   fra.me.meth = LOCATE_parser___parser_nodes___AOrExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:787 */
+  /* parser/parser_nodes.nit:859 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 787);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 859);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4067,18 +4614,18 @@ val_t parser___parser_nodes___AOrExpr___n_expr2(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 788;
+  fra.me.line = 860;
   fra.me.meth = LOCATE_parser___parser_nodes___AOrExpr___n_expr2;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:788 */
+  /* parser/parser_nodes.nit:860 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_nodes, 788);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_nodes, 860);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4090,18 +4637,18 @@ val_t parser___parser_nodes___AAndExpr___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 792;
+  fra.me.line = 864;
   fra.me.meth = LOCATE_parser___parser_nodes___AAndExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:792 */
+  /* parser/parser_nodes.nit:864 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 792);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 864);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4113,18 +4660,18 @@ val_t parser___parser_nodes___AAndExpr___n_expr2(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 793;
+  fra.me.line = 865;
   fra.me.meth = LOCATE_parser___parser_nodes___AAndExpr___n_expr2;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:793 */
+  /* parser/parser_nodes.nit:865 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_nodes, 793);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_nodes, 865);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4136,18 +4683,18 @@ val_t parser___parser_nodes___AOrElseExpr___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 797;
+  fra.me.line = 869;
   fra.me.meth = LOCATE_parser___parser_nodes___AOrElseExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:797 */
+  /* parser/parser_nodes.nit:869 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 797);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 869);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4159,18 +4706,18 @@ val_t parser___parser_nodes___AOrElseExpr___n_expr2(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 798;
+  fra.me.line = 870;
   fra.me.meth = LOCATE_parser___parser_nodes___AOrElseExpr___n_expr2;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:798 */
+  /* parser/parser_nodes.nit:870 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_nodes, 798);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_nodes, 870);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4182,18 +4729,18 @@ val_t parser___parser_nodes___ANotExpr___n_kwnot(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 802;
+  fra.me.line = 874;
   fra.me.meth = LOCATE_parser___parser_nodes___ANotExpr___n_kwnot;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:802 */
+  /* parser/parser_nodes.nit:874 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_nodes, 802);
+    nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_nodes, 874);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4205,18 +4752,18 @@ val_t parser___parser_nodes___ANotExpr___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 803;
+  fra.me.line = 875;
   fra.me.meth = LOCATE_parser___parser_nodes___ANotExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:803 */
+  /* parser/parser_nodes.nit:875 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 803);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 875);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4228,18 +4775,18 @@ val_t parser___parser_nodes___AEeExpr___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 810;
+  fra.me.line = 882;
   fra.me.meth = LOCATE_parser___parser_nodes___AEeExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:810 */
+  /* parser/parser_nodes.nit:882 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 810);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 882);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4251,18 +4798,18 @@ val_t parser___parser_nodes___AEeExpr___n_expr2(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 811;
+  fra.me.line = 883;
   fra.me.meth = LOCATE_parser___parser_nodes___AEeExpr___n_expr2;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:811 */
+  /* parser/parser_nodes.nit:883 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_nodes, 811);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_nodes, 883);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4274,18 +4821,18 @@ val_t parser___parser_nodes___AIsaExpr___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 836;
+  fra.me.line = 908;
   fra.me.meth = LOCATE_parser___parser_nodes___AIsaExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:836 */
+  /* parser/parser_nodes.nit:908 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 836);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 908);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4297,18 +4844,18 @@ val_t parser___parser_nodes___AIsaExpr___n_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 837;
+  fra.me.line = 909;
   fra.me.meth = LOCATE_parser___parser_nodes___AIsaExpr___n_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:837 */
+  /* parser/parser_nodes.nit:909 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_nodes, 837);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_nodes, 909);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4320,18 +4867,18 @@ val_t parser___parser_nodes___AUminusExpr___n_minus(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 859;
+  fra.me.line = 931;
   fra.me.meth = LOCATE_parser___parser_nodes___AUminusExpr___n_minus;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:859 */
+  /* parser/parser_nodes.nit:931 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_nodes, 859);
+    nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_nodes, 931);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4343,18 +4890,18 @@ val_t parser___parser_nodes___ANewExpr___n_kwnew(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 863;
+  fra.me.line = 935;
   fra.me.meth = LOCATE_parser___parser_nodes___ANewExpr___n_kwnew;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:863 */
+  /* parser/parser_nodes.nit:935 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_nodes, 863);
+    nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_nodes, 935);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4366,18 +4913,18 @@ val_t parser___parser_nodes___ANewExpr___n_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 864;
+  fra.me.line = 936;
   fra.me.meth = LOCATE_parser___parser_nodes___ANewExpr___n_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:864 */
+  /* parser/parser_nodes.nit:936 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_nodes, 864);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_nodes, 936);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4388,14 +4935,14 @@ val_t parser___parser_nodes___ANewExpr___n_id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 865;
+  fra.me.line = 937;
   fra.me.meth = LOCATE_parser___parser_nodes___ANewExpr___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:865 */
+  /* parser/parser_nodes.nit:937 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -4406,18 +4953,18 @@ val_t parser___parser_nodes___ANewExpr___n_args(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 866;
+  fra.me.line = 938;
   fra.me.meth = LOCATE_parser___parser_nodes___ANewExpr___n_args;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:866 */
+  /* parser/parser_nodes.nit:938 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_nodes, 866);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_nodes, 938);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4429,18 +4976,18 @@ val_t parser___parser_nodes___AAttrFormExpr___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 870;
+  fra.me.line = 942;
   fra.me.meth = LOCATE_parser___parser_nodes___AAttrFormExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:870 */
+  /* parser/parser_nodes.nit:942 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 870);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 942);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4452,18 +4999,18 @@ val_t parser___parser_nodes___AAttrFormExpr___n_id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 871;
+  fra.me.line = 943;
   fra.me.meth = LOCATE_parser___parser_nodes___AAttrFormExpr___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:871 */
+  /* parser/parser_nodes.nit:943 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 871);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 943);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4475,18 +5022,18 @@ val_t parser___parser_nodes___ACallFormExpr___n_id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 882;
+  fra.me.line = 954;
   fra.me.meth = LOCATE_parser___parser_nodes___ACallFormExpr___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:882 */
+  /* parser/parser_nodes.nit:954 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 882);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 954);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4498,18 +5045,18 @@ val_t parser___parser_nodes___ACallFormExpr___n_args(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 883;
+  fra.me.line = 955;
   fra.me.meth = LOCATE_parser___parser_nodes___ACallFormExpr___n_args;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:883 */
+  /* parser/parser_nodes.nit:955 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_nodes, 883);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_nodes, 955);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4520,14 +5067,14 @@ val_t parser___parser_nodes___ASuperExpr___n_qualified(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 904;
+  fra.me.line = 980;
   fra.me.meth = LOCATE_parser___parser_nodes___ASuperExpr___n_qualified;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:904 */
+  /* parser/parser_nodes.nit:980 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -4538,18 +5085,18 @@ val_t parser___parser_nodes___ASuperExpr___n_kwsuper(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 905;
+  fra.me.line = 981;
   fra.me.meth = LOCATE_parser___parser_nodes___ASuperExpr___n_kwsuper;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:905 */
+  /* parser/parser_nodes.nit:981 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_nodes, 905);
+    nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_nodes, 981);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4561,18 +5108,18 @@ val_t parser___parser_nodes___ASuperExpr___n_args(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 906;
+  fra.me.line = 982;
   fra.me.meth = LOCATE_parser___parser_nodes___ASuperExpr___n_args;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:906 */
+  /* parser/parser_nodes.nit:982 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_nodes, 906);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_nodes, 982);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4584,18 +5131,18 @@ val_t parser___parser_nodes___AInitExpr___n_kwinit(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 910;
+  fra.me.line = 986;
   fra.me.meth = LOCATE_parser___parser_nodes___AInitExpr___n_kwinit;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:910 */
+  /* parser/parser_nodes.nit:986 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_nodes, 910);
+    nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_nodes, 986);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4607,18 +5154,18 @@ val_t parser___parser_nodes___AInitExpr___n_args(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 911;
+  fra.me.line = 987;
   fra.me.meth = LOCATE_parser___parser_nodes___AInitExpr___n_args;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:911 */
+  /* parser/parser_nodes.nit:987 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_nodes, 911);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_nodes, 987);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4630,18 +5177,18 @@ val_t parser___parser_nodes___ABraFormExpr___n_args(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 915;
+  fra.me.line = 991;
   fra.me.meth = LOCATE_parser___parser_nodes___ABraFormExpr___n_args;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:915 */
+  /* parser/parser_nodes.nit:991 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_nodes, 915);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_nodes, 991);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4653,18 +5200,18 @@ val_t parser___parser_nodes___AVarFormExpr___n_id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 926;
+  fra.me.line = 1002;
   fra.me.meth = LOCATE_parser___parser_nodes___AVarFormExpr___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:926 */
+  /* parser/parser_nodes.nit:1002 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 926);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 1002);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4676,18 +5223,18 @@ val_t parser___parser_nodes___AClosureCallExpr___n_id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 934;
+  fra.me.line = 1010;
   fra.me.meth = LOCATE_parser___parser_nodes___AClosureCallExpr___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:934 */
+  /* parser/parser_nodes.nit:1010 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 934);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 1010);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4699,18 +5246,18 @@ val_t parser___parser_nodes___AClosureCallExpr___n_args(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 935;
+  fra.me.line = 1011;
   fra.me.meth = LOCATE_parser___parser_nodes___AClosureCallExpr___n_args;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:935 */
+  /* parser/parser_nodes.nit:1011 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_nodes, 935);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_nodes, 1011);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4722,18 +5269,18 @@ val_t parser___parser_nodes___AClosureCallExpr___n_closure_defs(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 936;
+  fra.me.line = 1012;
   fra.me.meth = LOCATE_parser___parser_nodes___AClosureCallExpr___n_closure_defs;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:936 */
+  /* parser/parser_nodes.nit:1012 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_nodes, 936);
+    nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_nodes, 1012);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4745,18 +5292,18 @@ val_t parser___parser_nodes___ARangeExpr___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 951;
+  fra.me.line = 1027;
   fra.me.meth = LOCATE_parser___parser_nodes___ARangeExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:951 */
+  /* parser/parser_nodes.nit:1027 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 951);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 1027);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4768,221 +5315,313 @@ val_t parser___parser_nodes___ARangeExpr___n_expr2(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 952;
+  fra.me.line = 1028;
   fra.me.meth = LOCATE_parser___parser_nodes___ARangeExpr___n_expr2;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:952 */
+  /* parser/parser_nodes.nit:1028 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_nodes, 952);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_nodes, 1028);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t parser___parser_nodes___AArrayExpr___n_exprs(val_t p0){
+val_t parser___parser_nodes___ACrangeExpr___n_obra(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 962;
-  fra.me.meth = LOCATE_parser___parser_nodes___AArrayExpr___n_exprs;
+  fra.me.line = 1032;
+  fra.me.meth = LOCATE_parser___parser_nodes___ACrangeExpr___n_obra;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:962 */
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
+  /* parser/parser_nodes.nit:1032 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_nodes, 962);
+    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_nodes, 1032);
   }
-  fra.me.REG[0] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t parser___parser_nodes___ASelfExpr___n_kwself(val_t p0){
+val_t parser___parser_nodes___ACrangeExpr___n_cbra(val_t p0){
   struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 966;
-  fra.me.meth = LOCATE_parser___parser_nodes___ASelfExpr___n_kwself;
+  fra.me.line = 1033;
+  fra.me.meth = LOCATE_parser___parser_nodes___ACrangeExpr___n_cbra;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:966 */
-  fra.me.REG[0] = ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]);
+  /* parser/parser_nodes.nit:1033 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_nodes, 1033);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t parser___parser_nodes___ATrueExpr___n_kwtrue(val_t p0){
+val_t parser___parser_nodes___AOrangeExpr___n_obra(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 973;
-  fra.me.meth = LOCATE_parser___parser_nodes___ATrueExpr___n_kwtrue;
+  fra.me.line = 1037;
+  fra.me.meth = LOCATE_parser___parser_nodes___AOrangeExpr___n_obra;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:973 */
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0])!=NIT_NULL);
+  /* parser/parser_nodes.nit:1037 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser___parser_nodes, 973);
+    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_nodes, 1037);
   }
-  fra.me.REG[0] = ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t parser___parser_nodes___AFalseExpr___n_kwfalse(val_t p0){
+val_t parser___parser_nodes___AOrangeExpr___n_cbra(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 977;
-  fra.me.meth = LOCATE_parser___parser_nodes___AFalseExpr___n_kwfalse;
+  fra.me.line = 1038;
+  fra.me.meth = LOCATE_parser___parser_nodes___AOrangeExpr___n_cbra;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:977 */
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0])!=NIT_NULL);
+  /* parser/parser_nodes.nit:1038 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser___parser_nodes, 977);
+    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_nodes, 1038);
   }
-  fra.me.REG[0] = ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t parser___parser_nodes___ANullExpr___n_kwnull(val_t p0){
+val_t parser___parser_nodes___AArrayExpr___n_exprs(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 981;
-  fra.me.meth = LOCATE_parser___parser_nodes___ANullExpr___n_kwnull;
+  fra.me.line = 1042;
+  fra.me.meth = LOCATE_parser___parser_nodes___AArrayExpr___n_exprs;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:981 */
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
+  /* parser/parser_nodes.nit:1042 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_nodes, 981);
+    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_nodes, 1042);
   }
-  fra.me.REG[0] = ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t parser___parser_nodes___AIntExpr___n_number(val_t p0){
+val_t parser___parser_nodes___ASelfExpr___n_kwself(val_t p0){
   struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 985;
-  fra.me.meth = LOCATE_parser___parser_nodes___AIntExpr___n_number;
+  fra.me.line = 1046;
+  fra.me.meth = LOCATE_parser___parser_nodes___ASelfExpr___n_kwself;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:985 */
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser___parser_nodes, 985);
-  }
-  fra.me.REG[0] = ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]);
+  /* parser/parser_nodes.nit:1046 */
+  fra.me.REG[0] = ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t parser___parser_nodes___AFloatExpr___n_float(val_t p0){
+val_t parser___parser_nodes___ATrueExpr___n_kwtrue(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 989;
-  fra.me.meth = LOCATE_parser___parser_nodes___AFloatExpr___n_float;
+  fra.me.line = 1053;
+  fra.me.meth = LOCATE_parser___parser_nodes___ATrueExpr___n_kwtrue;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:989 */
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
+  /* parser/parser_nodes.nit:1053 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser___parser_nodes, 989);
+    nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser___parser_nodes, 1053);
   }
-  fra.me.REG[0] = ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t parser___parser_nodes___ACharExpr___n_char(val_t p0){
+val_t parser___parser_nodes___AFalseExpr___n_kwfalse(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 993;
-  fra.me.meth = LOCATE_parser___parser_nodes___ACharExpr___n_char;
+  fra.me.line = 1057;
+  fra.me.meth = LOCATE_parser___parser_nodes___AFalseExpr___n_kwfalse;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:993 */
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
+  /* parser/parser_nodes.nit:1057 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser___parser_nodes, 993);
+    nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser___parser_nodes, 1057);
   }
-  fra.me.REG[0] = ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t parser___parser_nodes___AStringExpr___n_string(val_t p0){
+val_t parser___parser_nodes___ANullExpr___n_kwnull(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1000;
-  fra.me.meth = LOCATE_parser___parser_nodes___AStringExpr___n_string;
+  fra.me.line = 1061;
+  fra.me.meth = LOCATE_parser___parser_nodes___ANullExpr___n_kwnull;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1000 */
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
+  /* parser/parser_nodes.nit:1061 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_nodes, 1000);
+    nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_nodes, 1061);
   }
-  fra.me.REG[0] = ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t parser___parser_nodes___AIntExpr___n_number(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1065;
+  fra.me.meth = LOCATE_parser___parser_nodes___AIntExpr___n_number;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1065 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser___parser_nodes, 1065);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t parser___parser_nodes___AFloatExpr___n_float(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1069;
+  fra.me.meth = LOCATE_parser___parser_nodes___AFloatExpr___n_float;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1069 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser___parser_nodes, 1069);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t parser___parser_nodes___ACharExpr___n_char(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1073;
+  fra.me.meth = LOCATE_parser___parser_nodes___ACharExpr___n_char;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1073 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser___parser_nodes, 1073);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t parser___parser_nodes___AStringExpr___n_string(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1080;
+  fra.me.meth = LOCATE_parser___parser_nodes___AStringExpr___n_string;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1080 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_nodes, 1080);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
@@ -4992,18 +5631,18 @@ val_t parser___parser_nodes___AStartStringExpr___n_string(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1004;
+  fra.me.line = 1084;
   fra.me.meth = LOCATE_parser___parser_nodes___AStartStringExpr___n_string;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1004 */
+  /* parser/parser_nodes.nit:1084 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_nodes, 1004);
+    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_nodes, 1084);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -5015,18 +5654,18 @@ val_t parser___parser_nodes___AMidStringExpr___n_string(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1008;
+  fra.me.line = 1088;
   fra.me.meth = LOCATE_parser___parser_nodes___AMidStringExpr___n_string;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1008 */
+  /* parser/parser_nodes.nit:1088 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_nodes, 1008);
+    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_nodes, 1088);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -5038,18 +5677,18 @@ val_t parser___parser_nodes___AEndStringExpr___n_string(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1012;
+  fra.me.line = 1092;
   fra.me.meth = LOCATE_parser___parser_nodes___AEndStringExpr___n_string;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1012 */
+  /* parser/parser_nodes.nit:1092 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_nodes, 1012);
+    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_nodes, 1092);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -5061,41 +5700,87 @@ val_t parser___parser_nodes___ASuperstringExpr___n_exprs(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1016;
+  fra.me.line = 1096;
   fra.me.meth = LOCATE_parser___parser_nodes___ASuperstringExpr___n_exprs;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1016 */
+  /* parser/parser_nodes.nit:1096 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_nodes, 1016);
+    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_nodes, 1096);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+val_t parser___parser_nodes___AParExpr___n_opar(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1100;
+  fra.me.meth = LOCATE_parser___parser_nodes___AParExpr___n_opar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1100 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_nodes, 1100);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t parser___parser_nodes___AParExpr___n_cpar(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1101;
+  fra.me.meth = LOCATE_parser___parser_nodes___AParExpr___n_cpar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1101 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_nodes, 1101);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
 val_t parser___parser_nodes___AProxyExpr___n_expr(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1023;
+  fra.me.line = 1105;
   fra.me.meth = LOCATE_parser___parser_nodes___AProxyExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1023 */
+  /* parser/parser_nodes.nit:1105 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 1023);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 1105);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -5107,18 +5792,18 @@ val_t parser___parser_nodes___AAsCastExpr___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1027;
+  fra.me.line = 1109;
   fra.me.meth = LOCATE_parser___parser_nodes___AAsCastExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1027 */
+  /* parser/parser_nodes.nit:1109 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 1027);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 1109);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -5130,64 +5815,110 @@ val_t parser___parser_nodes___AAsCastExpr___n_kwas(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1028;
+  fra.me.line = 1110;
   fra.me.meth = LOCATE_parser___parser_nodes___AAsCastExpr___n_kwas;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1028 */
+  /* parser/parser_nodes.nit:1110 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_nodes, 1028);
+    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_nodes, 1110);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+val_t parser___parser_nodes___AAsCastExpr___n_opar(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1111;
+  fra.me.meth = LOCATE_parser___parser_nodes___AAsCastExpr___n_opar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1111 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_nodes, 1111);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
 val_t parser___parser_nodes___AAsCastExpr___n_type(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1029;
+  fra.me.line = 1112;
   fra.me.meth = LOCATE_parser___parser_nodes___AAsCastExpr___n_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1029 */
+  /* parser/parser_nodes.nit:1112 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_nodes, 1029);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_nodes, 1112);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+val_t parser___parser_nodes___AAsCastExpr___n_cpar(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1113;
+  fra.me.meth = LOCATE_parser___parser_nodes___AAsCastExpr___n_cpar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1113 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_nodes, 1113);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
 val_t parser___parser_nodes___AAsNotnullExpr___n_expr(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1033;
+  fra.me.line = 1117;
   fra.me.meth = LOCATE_parser___parser_nodes___AAsNotnullExpr___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1033 */
+  /* parser/parser_nodes.nit:1117 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 1033);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 1117);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -5199,41 +5930,64 @@ val_t parser___parser_nodes___AAsNotnullExpr___n_kwas(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1034;
+  fra.me.line = 1118;
   fra.me.meth = LOCATE_parser___parser_nodes___AAsNotnullExpr___n_kwas;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1034 */
+  /* parser/parser_nodes.nit:1118 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_nodes, 1034);
+    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_nodes, 1118);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+val_t parser___parser_nodes___AAsNotnullExpr___n_opar(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1119;
+  fra.me.meth = LOCATE_parser___parser_nodes___AAsNotnullExpr___n_opar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1119 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_nodes, 1119);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
 val_t parser___parser_nodes___AAsNotnullExpr___n_kwnot(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1035;
+  fra.me.line = 1120;
   fra.me.meth = LOCATE_parser___parser_nodes___AAsNotnullExpr___n_kwnot;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1035 */
+  /* parser/parser_nodes.nit:1120 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_nodes, 1035);
+    nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_nodes, 1120);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -5245,64 +5999,294 @@ val_t parser___parser_nodes___AAsNotnullExpr___n_kwnull(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1036;
+  fra.me.line = 1121;
   fra.me.meth = LOCATE_parser___parser_nodes___AAsNotnullExpr___n_kwnull;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1036 */
+  /* parser/parser_nodes.nit:1121 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_nodes, 1036);
+    nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_nodes, 1121);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+val_t parser___parser_nodes___AAsNotnullExpr___n_cpar(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1122;
+  fra.me.meth = LOCATE_parser___parser_nodes___AAsNotnullExpr___n_cpar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1122 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_nodes, 1122);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
 val_t parser___parser_nodes___AIssetAttrExpr___n_kwisset(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1040;
+  fra.me.line = 1126;
   fra.me.meth = LOCATE_parser___parser_nodes___AIssetAttrExpr___n_kwisset;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1040 */
+  /* parser/parser_nodes.nit:1126 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser___parser_nodes, 1040);
+    nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser___parser_nodes, 1126);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+val_t parser___parser_nodes___AExprs___n_exprs(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1130;
+  fra.me.meth = LOCATE_parser___parser_nodes___AExprs___n_exprs;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1130 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_nodes, 1130);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t parser___parser_nodes___ADebugTypeExpr___n_kwdebug(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1134;
+  fra.me.meth = LOCATE_parser___parser_nodes___ADebugTypeExpr___n_kwdebug;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1134 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_kwdebug", LOCATE_parser___parser_nodes, 1134);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t parser___parser_nodes___ADebugTypeExpr___n_kwtype(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1135;
+  fra.me.meth = LOCATE_parser___parser_nodes___ADebugTypeExpr___n_kwtype;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1135 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_nodes, 1135);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t parser___parser_nodes___ADebugTypeExpr___n_expr(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1136;
+  fra.me.meth = LOCATE_parser___parser_nodes___ADebugTypeExpr___n_expr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1136 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_nodes, 1136);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t parser___parser_nodes___ADebugTypeExpr___n_type(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1137;
+  fra.me.meth = LOCATE_parser___parser_nodes___ADebugTypeExpr___n_type;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1137 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_nodes, 1137);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t parser___parser_nodes___AParExprs___n_opar(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1144;
+  fra.me.meth = LOCATE_parser___parser_nodes___AParExprs___n_opar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1144 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_nodes, 1144);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t parser___parser_nodes___AParExprs___n_cpar(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1145;
+  fra.me.meth = LOCATE_parser___parser_nodes___AParExprs___n_cpar;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1145 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_nodes, 1145);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t parser___parser_nodes___ABraExprs___n_obra(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1149;
+  fra.me.meth = LOCATE_parser___parser_nodes___ABraExprs___n_obra;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1149 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_nodes, 1149);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t parser___parser_nodes___ABraExprs___n_cbra(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1150;
+  fra.me.meth = LOCATE_parser___parser_nodes___ABraExprs___n_cbra;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1150 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_nodes, 1150);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
 val_t parser___parser_nodes___APlusAssignOp___n_pluseq(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1045;
+  fra.me.line = 1155;
   fra.me.meth = LOCATE_parser___parser_nodes___APlusAssignOp___n_pluseq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1045 */
+  /* parser/parser_nodes.nit:1155 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser___parser_nodes, 1045);
+    nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser___parser_nodes, 1155);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -5314,18 +6298,18 @@ val_t parser___parser_nodes___AMinusAssignOp___n_minuseq(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1049;
+  fra.me.line = 1159;
   fra.me.meth = LOCATE_parser___parser_nodes___AMinusAssignOp___n_minuseq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1049 */
+  /* parser/parser_nodes.nit:1159 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser___parser_nodes, 1049);
+    nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser___parser_nodes, 1159);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -5337,18 +6321,18 @@ val_t parser___parser_nodes___AClosureDef___n_bang(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1053;
+  fra.me.line = 1163;
   fra.me.meth = LOCATE_parser___parser_nodes___AClosureDef___n_bang;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1053 */
+  /* parser/parser_nodes.nit:1163 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_nodes, 1053);
+    nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_nodes, 1163);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -5360,18 +6344,18 @@ val_t parser___parser_nodes___AClosureDef___n_id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1054;
+  fra.me.line = 1164;
   fra.me.meth = LOCATE_parser___parser_nodes___AClosureDef___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1054 */
+  /* parser/parser_nodes.nit:1164 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 1054);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 1164);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -5383,18 +6367,18 @@ val_t parser___parser_nodes___AClosureDef___n_ids(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1055;
+  fra.me.line = 1165;
   fra.me.meth = LOCATE_parser___parser_nodes___AClosureDef___n_ids;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1055 */
+  /* parser/parser_nodes.nit:1165 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_nodes, 1055);
+    nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_nodes, 1165);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -5405,14 +6389,14 @@ val_t parser___parser_nodes___AClosureDef___n_kwdo(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1056;
+  fra.me.line = 1166;
   fra.me.meth = LOCATE_parser___parser_nodes___AClosureDef___n_kwdo;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1056 */
+  /* parser/parser_nodes.nit:1166 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -5422,36 +6406,56 @@ val_t parser___parser_nodes___AClosureDef___n_expr(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1057;
+  fra.me.line = 1167;
   fra.me.meth = LOCATE_parser___parser_nodes___AClosureDef___n_expr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1057 */
+  /* parser/parser_nodes.nit:1167 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+val_t parser___parser_nodes___AClosureDef___hot_location(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1168;
+  fra.me.meth = LOCATE_parser___parser_nodes___AClosureDef___hot_location;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* parser/parser_nodes.nit:1168 */
+  fra.me.REG[0] = CALL_parser___parser_nodes___AClosureDef___n_id(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[0] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[0])(fra.me.REG[0]);
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
 val_t parser___parser_nodes___ASimpleClosureId___n_id(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1064;
+  fra.me.line = 1175;
   fra.me.meth = LOCATE_parser___parser_nodes___ASimpleClosureId___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1064 */
+  /* parser/parser_nodes.nit:1175 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 1064);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 1175);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -5463,18 +6467,18 @@ val_t parser___parser_nodes___ABreakClosureId___n_kwbreak(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1068;
+  fra.me.line = 1179;
   fra.me.meth = LOCATE_parser___parser_nodes___ABreakClosureId___n_kwbreak;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1068 */
+  /* parser/parser_nodes.nit:1179 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_nodes, 1068);
+    nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_nodes, 1179);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -5485,14 +6489,14 @@ val_t parser___parser_nodes___AModuleName___n_quad(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1072;
+  fra.me.line = 1183;
   fra.me.meth = LOCATE_parser___parser_nodes___AModuleName___n_quad;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1072 */
+  /* parser/parser_nodes.nit:1183 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -5503,18 +6507,18 @@ val_t parser___parser_nodes___AModuleName___n_path(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1073;
+  fra.me.line = 1184;
   fra.me.meth = LOCATE_parser___parser_nodes___AModuleName___n_path;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1073 */
+  /* parser/parser_nodes.nit:1184 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_nodes, 1073);
+    nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_nodes, 1184);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -5526,18 +6530,18 @@ val_t parser___parser_nodes___AModuleName___n_id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1074;
+  fra.me.line = 1185;
   fra.me.meth = LOCATE_parser___parser_nodes___AModuleName___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1074 */
+  /* parser/parser_nodes.nit:1185 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 1074);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 1185);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -5548,14 +6552,14 @@ val_t parser___parser_nodes___AQualified___n_quad(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1078;
+  fra.me.line = 1189;
   fra.me.meth = LOCATE_parser___parser_nodes___AQualified___n_quad;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1078 */
+  /* parser/parser_nodes.nit:1189 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AQualified____n_quad(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -5566,18 +6570,18 @@ val_t parser___parser_nodes___AQualified___n_id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1079;
+  fra.me.line = 1190;
   fra.me.meth = LOCATE_parser___parser_nodes___AQualified___n_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1079 */
+  /* parser/parser_nodes.nit:1190 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 1079);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_nodes, 1190);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -5588,14 +6592,14 @@ val_t parser___parser_nodes___AQualified___n_classid(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1080;
+  fra.me.line = 1191;
   fra.me.meth = LOCATE_parser___parser_nodes___AQualified___n_classid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1080 */
+  /* parser/parser_nodes.nit:1191 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -5606,18 +6610,18 @@ val_t parser___parser_nodes___ADoc___n_comment(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1084;
+  fra.me.line = 1195;
   fra.me.meth = LOCATE_parser___parser_nodes___ADoc___n_comment;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1084 */
+  /* parser/parser_nodes.nit:1195 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_nodes, 1084);
+    nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_nodes, 1195);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -5628,14 +6632,14 @@ val_t parser___parser_nodes___Start___n_base(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1089;
+  fra.me.line = 1200;
   fra.me.meth = LOCATE_parser___parser_nodes___Start___n_base;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1089 */
+  /* parser/parser_nodes.nit:1200 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -5646,20 +6650,46 @@ val_t parser___parser_nodes___Start___n_eof(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_nodes;
-  fra.me.line = 1090;
+  fra.me.line = 1201;
   fra.me.meth = LOCATE_parser___parser_nodes___Start___n_eof;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_nodes.nit:1090 */
+  /* parser/parser_nodes.nit:1201 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_eof", LOCATE_parser___parser_nodes, 1090);
+    nit_abort("Uninitialized attribute %s", "_n_eof", LOCATE_parser___parser_nodes, 1201);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+void parser___parser_nodes___Start___init(val_t p0, val_t p1, val_t p2, int* init_table){
+  int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___Start].i;
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  if (init_table[itpos3]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_nodes;
+  fra.me.line = 1202;
+  fra.me.meth = LOCATE_parser___parser_nodes___Start___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  /* parser/parser_nodes.nit:1204 */
+  ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]) = fra.me.REG[1];
+  /* parser/parser_nodes.nit:1205 */
+  ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[0]) = fra.me.REG[2];
+  stack_frame_head = fra.me.prev;
+  init_table[itpos3] = 1;
+  return;
+}
index 0f8b8c8..e868252 100644 (file)
@@ -14,6 +14,8 @@ extern const classtable_elt_t VFT_parser___parser_nodes___TEol[];
 
 extern const classtable_elt_t VFT_parser___parser_nodes___TComment[];
 
+extern const classtable_elt_t VFT_parser___parser_nodes___TokenKeyword[];
+
 extern const classtable_elt_t VFT_parser___parser_nodes___TKwmodule[];
 
 extern const classtable_elt_t VFT_parser___parser_nodes___TKwimport[];
@@ -112,6 +114,8 @@ extern const classtable_elt_t VFT_parser___parser_nodes___TKwisset[];
 
 extern const classtable_elt_t VFT_parser___parser_nodes___TKwlabel[];
 
+extern const classtable_elt_t VFT_parser___parser_nodes___TKwdebug[];
+
 extern const classtable_elt_t VFT_parser___parser_nodes___TOpar[];
 
 extern const classtable_elt_t VFT_parser___parser_nodes___TCpar[];
@@ -128,6 +132,8 @@ extern const classtable_elt_t VFT_parser___parser_nodes___TQuad[];
 
 extern const classtable_elt_t VFT_parser___parser_nodes___TAssign[];
 
+extern const classtable_elt_t VFT_parser___parser_nodes___TokenOperator[];
+
 extern const classtable_elt_t VFT_parser___parser_nodes___TPluseq[];
 
 extern const classtable_elt_t VFT_parser___parser_nodes___TMinuseq[];
@@ -174,6 +180,8 @@ extern const classtable_elt_t VFT_parser___parser_nodes___TId[];
 
 extern const classtable_elt_t VFT_parser___parser_nodes___TAttrid[];
 
+extern const classtable_elt_t VFT_parser___parser_nodes___TokenLiteral[];
+
 extern const classtable_elt_t VFT_parser___parser_nodes___TNumber[];
 
 extern const classtable_elt_t VFT_parser___parser_nodes___TFloat[];
@@ -188,6 +196,10 @@ extern const classtable_elt_t VFT_parser___parser_nodes___TMidString[];
 
 extern const classtable_elt_t VFT_parser___parser_nodes___TEndString[];
 
+extern const classtable_elt_t VFT_parser___parser_nodes___TBadString[];
+
+extern const classtable_elt_t VFT_parser___parser_nodes___TBadChar[];
+
 extern const classtable_elt_t VFT_parser___parser_nodes___EOF[];
 
 extern const classtable_elt_t VFT_parser___parser_nodes___AError[];
@@ -432,6 +444,8 @@ extern const classtable_elt_t VFT_parser___parser_nodes___AAttrAssignExpr[];
 
 extern const classtable_elt_t VFT_parser___parser_nodes___ACallFormExpr[];
 
+extern const classtable_elt_t VFT_parser___parser_nodes___ASendReassignFormExpr[];
+
 extern const classtable_elt_t VFT_parser___parser_nodes___AAttrReassignExpr[];
 
 extern const classtable_elt_t VFT_parser___parser_nodes___ACallExpr[];
@@ -508,6 +522,16 @@ extern const classtable_elt_t VFT_parser___parser_nodes___AAsNotnullExpr[];
 
 extern const classtable_elt_t VFT_parser___parser_nodes___AIssetAttrExpr[];
 
+extern const classtable_elt_t VFT_parser___parser_nodes___AExprs[];
+
+extern const classtable_elt_t VFT_parser___parser_nodes___ADebugTypeExpr[];
+
+extern const classtable_elt_t VFT_parser___parser_nodes___AListExprs[];
+
+extern const classtable_elt_t VFT_parser___parser_nodes___AParExprs[];
+
+extern const classtable_elt_t VFT_parser___parser_nodes___ABraExprs[];
+
 extern const classtable_elt_t VFT_parser___parser_nodes___AAssignOp[];
 
 extern const classtable_elt_t VFT_parser___parser_nodes___APlusAssignOp[];
@@ -538,9 +562,11 @@ extern const int SFT_parser___parser_nodes[];
 #define CALL_parser___parser_nodes___ANode___location(recv) ((parser___parser_nodes___ANode___location_t)CALL((recv), (SFT_parser___parser_nodes[3] + 1)))
 #define CALL_parser___parser_nodes___ANode___hot_location(recv) ((parser___parser_nodes___ANode___hot_location_t)CALL((recv), (SFT_parser___parser_nodes[3] + 2)))
 #define CALL_parser___parser_nodes___ANode___init(recv) ((parser___parser_nodes___ANode___init_t)CALL((recv), (SFT_parser___parser_nodes[3] + 3)))
+#define CALL_parser___parser_nodes___ANode___debug(recv) ((parser___parser_nodes___ANode___debug_t)CALL((recv), (SFT_parser___parser_nodes[3] + 4)))
 #define ID_parser___parser_nodes___Token (SFT_parser___parser_nodes[4])
 #define COLOR_parser___parser_nodes___Token (SFT_parser___parser_nodes[5])
 #define INIT_TABLE_POS_parser___parser_nodes___Token (SFT_parser___parser_nodes[6] + 0)
+#define CALL_parser___parser_nodes___Token___text(recv) ((parser___parser_nodes___Token___text_t)CALL((recv), (SFT_parser___parser_nodes[6] + 1)))
 #define ID_parser___parser_nodes___Prod (SFT_parser___parser_nodes[7])
 #define COLOR_parser___parser_nodes___Prod (SFT_parser___parser_nodes[8])
 #define INIT_TABLE_POS_parser___parser_nodes___Prod (SFT_parser___parser_nodes[9] + 0)
@@ -551,1279 +577,1355 @@ extern const int SFT_parser___parser_nodes[];
 #define ID_parser___parser_nodes___TComment (SFT_parser___parser_nodes[13])
 #define COLOR_parser___parser_nodes___TComment (SFT_parser___parser_nodes[14])
 #define INIT_TABLE_POS_parser___parser_nodes___TComment (SFT_parser___parser_nodes[15] + 0)
-#define ID_parser___parser_nodes___TKwmodule (SFT_parser___parser_nodes[16])
-#define COLOR_parser___parser_nodes___TKwmodule (SFT_parser___parser_nodes[17])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwmodule (SFT_parser___parser_nodes[18] + 0)
-#define ID_parser___parser_nodes___TKwimport (SFT_parser___parser_nodes[19])
-#define COLOR_parser___parser_nodes___TKwimport (SFT_parser___parser_nodes[20])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwimport (SFT_parser___parser_nodes[21] + 0)
-#define ID_parser___parser_nodes___TKwclass (SFT_parser___parser_nodes[22])
-#define COLOR_parser___parser_nodes___TKwclass (SFT_parser___parser_nodes[23])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwclass (SFT_parser___parser_nodes[24] + 0)
-#define ID_parser___parser_nodes___TKwabstract (SFT_parser___parser_nodes[25])
-#define COLOR_parser___parser_nodes___TKwabstract (SFT_parser___parser_nodes[26])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwabstract (SFT_parser___parser_nodes[27] + 0)
-#define ID_parser___parser_nodes___TKwinterface (SFT_parser___parser_nodes[28])
-#define COLOR_parser___parser_nodes___TKwinterface (SFT_parser___parser_nodes[29])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwinterface (SFT_parser___parser_nodes[30] + 0)
-#define ID_parser___parser_nodes___TKwenum (SFT_parser___parser_nodes[31])
-#define COLOR_parser___parser_nodes___TKwenum (SFT_parser___parser_nodes[32])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwenum (SFT_parser___parser_nodes[33] + 0)
-#define ID_parser___parser_nodes___TKwspecial (SFT_parser___parser_nodes[34])
-#define COLOR_parser___parser_nodes___TKwspecial (SFT_parser___parser_nodes[35])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwspecial (SFT_parser___parser_nodes[36] + 0)
-#define ID_parser___parser_nodes___TKwend (SFT_parser___parser_nodes[37])
-#define COLOR_parser___parser_nodes___TKwend (SFT_parser___parser_nodes[38])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwend (SFT_parser___parser_nodes[39] + 0)
-#define ID_parser___parser_nodes___TKwmeth (SFT_parser___parser_nodes[40])
-#define COLOR_parser___parser_nodes___TKwmeth (SFT_parser___parser_nodes[41])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwmeth (SFT_parser___parser_nodes[42] + 0)
-#define ID_parser___parser_nodes___TKwtype (SFT_parser___parser_nodes[43])
-#define COLOR_parser___parser_nodes___TKwtype (SFT_parser___parser_nodes[44])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwtype (SFT_parser___parser_nodes[45] + 0)
-#define ID_parser___parser_nodes___TKwinit (SFT_parser___parser_nodes[46])
-#define COLOR_parser___parser_nodes___TKwinit (SFT_parser___parser_nodes[47])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwinit (SFT_parser___parser_nodes[48] + 0)
-#define ID_parser___parser_nodes___TKwredef (SFT_parser___parser_nodes[49])
-#define COLOR_parser___parser_nodes___TKwredef (SFT_parser___parser_nodes[50])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwredef (SFT_parser___parser_nodes[51] + 0)
-#define ID_parser___parser_nodes___TKwis (SFT_parser___parser_nodes[52])
-#define COLOR_parser___parser_nodes___TKwis (SFT_parser___parser_nodes[53])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwis (SFT_parser___parser_nodes[54] + 0)
-#define ID_parser___parser_nodes___TKwdo (SFT_parser___parser_nodes[55])
-#define COLOR_parser___parser_nodes___TKwdo (SFT_parser___parser_nodes[56])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwdo (SFT_parser___parser_nodes[57] + 0)
-#define ID_parser___parser_nodes___TKwreadable (SFT_parser___parser_nodes[58])
-#define COLOR_parser___parser_nodes___TKwreadable (SFT_parser___parser_nodes[59])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwreadable (SFT_parser___parser_nodes[60] + 0)
-#define ID_parser___parser_nodes___TKwwritable (SFT_parser___parser_nodes[61])
-#define COLOR_parser___parser_nodes___TKwwritable (SFT_parser___parser_nodes[62])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwwritable (SFT_parser___parser_nodes[63] + 0)
-#define ID_parser___parser_nodes___TKwvar (SFT_parser___parser_nodes[64])
-#define COLOR_parser___parser_nodes___TKwvar (SFT_parser___parser_nodes[65])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwvar (SFT_parser___parser_nodes[66] + 0)
-#define ID_parser___parser_nodes___TKwintern (SFT_parser___parser_nodes[67])
-#define COLOR_parser___parser_nodes___TKwintern (SFT_parser___parser_nodes[68])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwintern (SFT_parser___parser_nodes[69] + 0)
-#define ID_parser___parser_nodes___TKwextern (SFT_parser___parser_nodes[70])
-#define COLOR_parser___parser_nodes___TKwextern (SFT_parser___parser_nodes[71])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwextern (SFT_parser___parser_nodes[72] + 0)
-#define ID_parser___parser_nodes___TKwprotected (SFT_parser___parser_nodes[73])
-#define COLOR_parser___parser_nodes___TKwprotected (SFT_parser___parser_nodes[74])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwprotected (SFT_parser___parser_nodes[75] + 0)
-#define ID_parser___parser_nodes___TKwprivate (SFT_parser___parser_nodes[76])
-#define COLOR_parser___parser_nodes___TKwprivate (SFT_parser___parser_nodes[77])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwprivate (SFT_parser___parser_nodes[78] + 0)
-#define ID_parser___parser_nodes___TKwintrude (SFT_parser___parser_nodes[79])
-#define COLOR_parser___parser_nodes___TKwintrude (SFT_parser___parser_nodes[80])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwintrude (SFT_parser___parser_nodes[81] + 0)
-#define ID_parser___parser_nodes___TKwif (SFT_parser___parser_nodes[82])
-#define COLOR_parser___parser_nodes___TKwif (SFT_parser___parser_nodes[83])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwif (SFT_parser___parser_nodes[84] + 0)
-#define ID_parser___parser_nodes___TKwthen (SFT_parser___parser_nodes[85])
-#define COLOR_parser___parser_nodes___TKwthen (SFT_parser___parser_nodes[86])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwthen (SFT_parser___parser_nodes[87] + 0)
-#define ID_parser___parser_nodes___TKwelse (SFT_parser___parser_nodes[88])
-#define COLOR_parser___parser_nodes___TKwelse (SFT_parser___parser_nodes[89])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwelse (SFT_parser___parser_nodes[90] + 0)
-#define ID_parser___parser_nodes___TKwwhile (SFT_parser___parser_nodes[91])
-#define COLOR_parser___parser_nodes___TKwwhile (SFT_parser___parser_nodes[92])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwwhile (SFT_parser___parser_nodes[93] + 0)
-#define ID_parser___parser_nodes___TKwloop (SFT_parser___parser_nodes[94])
-#define COLOR_parser___parser_nodes___TKwloop (SFT_parser___parser_nodes[95])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwloop (SFT_parser___parser_nodes[96] + 0)
-#define ID_parser___parser_nodes___TKwfor (SFT_parser___parser_nodes[97])
-#define COLOR_parser___parser_nodes___TKwfor (SFT_parser___parser_nodes[98])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwfor (SFT_parser___parser_nodes[99] + 0)
-#define ID_parser___parser_nodes___TKwin (SFT_parser___parser_nodes[100])
-#define COLOR_parser___parser_nodes___TKwin (SFT_parser___parser_nodes[101])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwin (SFT_parser___parser_nodes[102] + 0)
-#define ID_parser___parser_nodes___TKwand (SFT_parser___parser_nodes[103])
-#define COLOR_parser___parser_nodes___TKwand (SFT_parser___parser_nodes[104])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwand (SFT_parser___parser_nodes[105] + 0)
-#define ID_parser___parser_nodes___TKwor (SFT_parser___parser_nodes[106])
-#define COLOR_parser___parser_nodes___TKwor (SFT_parser___parser_nodes[107])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwor (SFT_parser___parser_nodes[108] + 0)
-#define ID_parser___parser_nodes___TKwnot (SFT_parser___parser_nodes[109])
-#define COLOR_parser___parser_nodes___TKwnot (SFT_parser___parser_nodes[110])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwnot (SFT_parser___parser_nodes[111] + 0)
-#define ID_parser___parser_nodes___TKwreturn (SFT_parser___parser_nodes[112])
-#define COLOR_parser___parser_nodes___TKwreturn (SFT_parser___parser_nodes[113])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwreturn (SFT_parser___parser_nodes[114] + 0)
-#define ID_parser___parser_nodes___TKwcontinue (SFT_parser___parser_nodes[115])
-#define COLOR_parser___parser_nodes___TKwcontinue (SFT_parser___parser_nodes[116])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwcontinue (SFT_parser___parser_nodes[117] + 0)
-#define ID_parser___parser_nodes___TKwbreak (SFT_parser___parser_nodes[118])
-#define COLOR_parser___parser_nodes___TKwbreak (SFT_parser___parser_nodes[119])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwbreak (SFT_parser___parser_nodes[120] + 0)
-#define ID_parser___parser_nodes___TKwabort (SFT_parser___parser_nodes[121])
-#define COLOR_parser___parser_nodes___TKwabort (SFT_parser___parser_nodes[122])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwabort (SFT_parser___parser_nodes[123] + 0)
-#define ID_parser___parser_nodes___TKwassert (SFT_parser___parser_nodes[124])
-#define COLOR_parser___parser_nodes___TKwassert (SFT_parser___parser_nodes[125])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwassert (SFT_parser___parser_nodes[126] + 0)
-#define ID_parser___parser_nodes___TKwnew (SFT_parser___parser_nodes[127])
-#define COLOR_parser___parser_nodes___TKwnew (SFT_parser___parser_nodes[128])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwnew (SFT_parser___parser_nodes[129] + 0)
-#define ID_parser___parser_nodes___TKwisa (SFT_parser___parser_nodes[130])
-#define COLOR_parser___parser_nodes___TKwisa (SFT_parser___parser_nodes[131])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwisa (SFT_parser___parser_nodes[132] + 0)
-#define ID_parser___parser_nodes___TKwonce (SFT_parser___parser_nodes[133])
-#define COLOR_parser___parser_nodes___TKwonce (SFT_parser___parser_nodes[134])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwonce (SFT_parser___parser_nodes[135] + 0)
-#define ID_parser___parser_nodes___TKwsuper (SFT_parser___parser_nodes[136])
-#define COLOR_parser___parser_nodes___TKwsuper (SFT_parser___parser_nodes[137])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwsuper (SFT_parser___parser_nodes[138] + 0)
-#define ID_parser___parser_nodes___TKwself (SFT_parser___parser_nodes[139])
-#define COLOR_parser___parser_nodes___TKwself (SFT_parser___parser_nodes[140])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwself (SFT_parser___parser_nodes[141] + 0)
-#define ID_parser___parser_nodes___TKwtrue (SFT_parser___parser_nodes[142])
-#define COLOR_parser___parser_nodes___TKwtrue (SFT_parser___parser_nodes[143])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwtrue (SFT_parser___parser_nodes[144] + 0)
-#define ID_parser___parser_nodes___TKwfalse (SFT_parser___parser_nodes[145])
-#define COLOR_parser___parser_nodes___TKwfalse (SFT_parser___parser_nodes[146])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwfalse (SFT_parser___parser_nodes[147] + 0)
-#define ID_parser___parser_nodes___TKwnull (SFT_parser___parser_nodes[148])
-#define COLOR_parser___parser_nodes___TKwnull (SFT_parser___parser_nodes[149])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwnull (SFT_parser___parser_nodes[150] + 0)
-#define ID_parser___parser_nodes___TKwas (SFT_parser___parser_nodes[151])
-#define COLOR_parser___parser_nodes___TKwas (SFT_parser___parser_nodes[152])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwas (SFT_parser___parser_nodes[153] + 0)
-#define ID_parser___parser_nodes___TKwnullable (SFT_parser___parser_nodes[154])
-#define COLOR_parser___parser_nodes___TKwnullable (SFT_parser___parser_nodes[155])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwnullable (SFT_parser___parser_nodes[156] + 0)
-#define ID_parser___parser_nodes___TKwisset (SFT_parser___parser_nodes[157])
-#define COLOR_parser___parser_nodes___TKwisset (SFT_parser___parser_nodes[158])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwisset (SFT_parser___parser_nodes[159] + 0)
-#define ID_parser___parser_nodes___TKwlabel (SFT_parser___parser_nodes[160])
-#define COLOR_parser___parser_nodes___TKwlabel (SFT_parser___parser_nodes[161])
-#define INIT_TABLE_POS_parser___parser_nodes___TKwlabel (SFT_parser___parser_nodes[162] + 0)
-#define ID_parser___parser_nodes___TOpar (SFT_parser___parser_nodes[163])
-#define COLOR_parser___parser_nodes___TOpar (SFT_parser___parser_nodes[164])
-#define INIT_TABLE_POS_parser___parser_nodes___TOpar (SFT_parser___parser_nodes[165] + 0)
-#define ID_parser___parser_nodes___TCpar (SFT_parser___parser_nodes[166])
-#define COLOR_parser___parser_nodes___TCpar (SFT_parser___parser_nodes[167])
-#define INIT_TABLE_POS_parser___parser_nodes___TCpar (SFT_parser___parser_nodes[168] + 0)
-#define ID_parser___parser_nodes___TObra (SFT_parser___parser_nodes[169])
-#define COLOR_parser___parser_nodes___TObra (SFT_parser___parser_nodes[170])
-#define INIT_TABLE_POS_parser___parser_nodes___TObra (SFT_parser___parser_nodes[171] + 0)
-#define ID_parser___parser_nodes___TCbra (SFT_parser___parser_nodes[172])
-#define COLOR_parser___parser_nodes___TCbra (SFT_parser___parser_nodes[173])
-#define INIT_TABLE_POS_parser___parser_nodes___TCbra (SFT_parser___parser_nodes[174] + 0)
-#define ID_parser___parser_nodes___TComma (SFT_parser___parser_nodes[175])
-#define COLOR_parser___parser_nodes___TComma (SFT_parser___parser_nodes[176])
-#define INIT_TABLE_POS_parser___parser_nodes___TComma (SFT_parser___parser_nodes[177] + 0)
-#define ID_parser___parser_nodes___TColumn (SFT_parser___parser_nodes[178])
-#define COLOR_parser___parser_nodes___TColumn (SFT_parser___parser_nodes[179])
-#define INIT_TABLE_POS_parser___parser_nodes___TColumn (SFT_parser___parser_nodes[180] + 0)
-#define ID_parser___parser_nodes___TQuad (SFT_parser___parser_nodes[181])
-#define COLOR_parser___parser_nodes___TQuad (SFT_parser___parser_nodes[182])
-#define INIT_TABLE_POS_parser___parser_nodes___TQuad (SFT_parser___parser_nodes[183] + 0)
-#define ID_parser___parser_nodes___TAssign (SFT_parser___parser_nodes[184])
-#define COLOR_parser___parser_nodes___TAssign (SFT_parser___parser_nodes[185])
-#define INIT_TABLE_POS_parser___parser_nodes___TAssign (SFT_parser___parser_nodes[186] + 0)
-#define ID_parser___parser_nodes___TPluseq (SFT_parser___parser_nodes[187])
-#define COLOR_parser___parser_nodes___TPluseq (SFT_parser___parser_nodes[188])
-#define INIT_TABLE_POS_parser___parser_nodes___TPluseq (SFT_parser___parser_nodes[189] + 0)
-#define ID_parser___parser_nodes___TMinuseq (SFT_parser___parser_nodes[190])
-#define COLOR_parser___parser_nodes___TMinuseq (SFT_parser___parser_nodes[191])
-#define INIT_TABLE_POS_parser___parser_nodes___TMinuseq (SFT_parser___parser_nodes[192] + 0)
-#define ID_parser___parser_nodes___TDotdotdot (SFT_parser___parser_nodes[193])
-#define COLOR_parser___parser_nodes___TDotdotdot (SFT_parser___parser_nodes[194])
-#define INIT_TABLE_POS_parser___parser_nodes___TDotdotdot (SFT_parser___parser_nodes[195] + 0)
-#define ID_parser___parser_nodes___TDotdot (SFT_parser___parser_nodes[196])
-#define COLOR_parser___parser_nodes___TDotdot (SFT_parser___parser_nodes[197])
-#define INIT_TABLE_POS_parser___parser_nodes___TDotdot (SFT_parser___parser_nodes[198] + 0)
-#define ID_parser___parser_nodes___TDot (SFT_parser___parser_nodes[199])
-#define COLOR_parser___parser_nodes___TDot (SFT_parser___parser_nodes[200])
-#define INIT_TABLE_POS_parser___parser_nodes___TDot (SFT_parser___parser_nodes[201] + 0)
-#define ID_parser___parser_nodes___TPlus (SFT_parser___parser_nodes[202])
-#define COLOR_parser___parser_nodes___TPlus (SFT_parser___parser_nodes[203])
-#define INIT_TABLE_POS_parser___parser_nodes___TPlus (SFT_parser___parser_nodes[204] + 0)
-#define ID_parser___parser_nodes___TMinus (SFT_parser___parser_nodes[205])
-#define COLOR_parser___parser_nodes___TMinus (SFT_parser___parser_nodes[206])
-#define INIT_TABLE_POS_parser___parser_nodes___TMinus (SFT_parser___parser_nodes[207] + 0)
-#define ID_parser___parser_nodes___TStar (SFT_parser___parser_nodes[208])
-#define COLOR_parser___parser_nodes___TStar (SFT_parser___parser_nodes[209])
-#define INIT_TABLE_POS_parser___parser_nodes___TStar (SFT_parser___parser_nodes[210] + 0)
-#define ID_parser___parser_nodes___TSlash (SFT_parser___parser_nodes[211])
-#define COLOR_parser___parser_nodes___TSlash (SFT_parser___parser_nodes[212])
-#define INIT_TABLE_POS_parser___parser_nodes___TSlash (SFT_parser___parser_nodes[213] + 0)
-#define ID_parser___parser_nodes___TPercent (SFT_parser___parser_nodes[214])
-#define COLOR_parser___parser_nodes___TPercent (SFT_parser___parser_nodes[215])
-#define INIT_TABLE_POS_parser___parser_nodes___TPercent (SFT_parser___parser_nodes[216] + 0)
-#define ID_parser___parser_nodes___TEq (SFT_parser___parser_nodes[217])
-#define COLOR_parser___parser_nodes___TEq (SFT_parser___parser_nodes[218])
-#define INIT_TABLE_POS_parser___parser_nodes___TEq (SFT_parser___parser_nodes[219] + 0)
-#define ID_parser___parser_nodes___TNe (SFT_parser___parser_nodes[220])
-#define COLOR_parser___parser_nodes___TNe (SFT_parser___parser_nodes[221])
-#define INIT_TABLE_POS_parser___parser_nodes___TNe (SFT_parser___parser_nodes[222] + 0)
-#define ID_parser___parser_nodes___TLt (SFT_parser___parser_nodes[223])
-#define COLOR_parser___parser_nodes___TLt (SFT_parser___parser_nodes[224])
-#define INIT_TABLE_POS_parser___parser_nodes___TLt (SFT_parser___parser_nodes[225] + 0)
-#define ID_parser___parser_nodes___TLe (SFT_parser___parser_nodes[226])
-#define COLOR_parser___parser_nodes___TLe (SFT_parser___parser_nodes[227])
-#define INIT_TABLE_POS_parser___parser_nodes___TLe (SFT_parser___parser_nodes[228] + 0)
-#define ID_parser___parser_nodes___TLl (SFT_parser___parser_nodes[229])
-#define COLOR_parser___parser_nodes___TLl (SFT_parser___parser_nodes[230])
-#define INIT_TABLE_POS_parser___parser_nodes___TLl (SFT_parser___parser_nodes[231] + 0)
-#define ID_parser___parser_nodes___TGt (SFT_parser___parser_nodes[232])
-#define COLOR_parser___parser_nodes___TGt (SFT_parser___parser_nodes[233])
-#define INIT_TABLE_POS_parser___parser_nodes___TGt (SFT_parser___parser_nodes[234] + 0)
-#define ID_parser___parser_nodes___TGe (SFT_parser___parser_nodes[235])
-#define COLOR_parser___parser_nodes___TGe (SFT_parser___parser_nodes[236])
-#define INIT_TABLE_POS_parser___parser_nodes___TGe (SFT_parser___parser_nodes[237] + 0)
-#define ID_parser___parser_nodes___TGg (SFT_parser___parser_nodes[238])
-#define COLOR_parser___parser_nodes___TGg (SFT_parser___parser_nodes[239])
-#define INIT_TABLE_POS_parser___parser_nodes___TGg (SFT_parser___parser_nodes[240] + 0)
-#define ID_parser___parser_nodes___TStarship (SFT_parser___parser_nodes[241])
-#define COLOR_parser___parser_nodes___TStarship (SFT_parser___parser_nodes[242])
-#define INIT_TABLE_POS_parser___parser_nodes___TStarship (SFT_parser___parser_nodes[243] + 0)
-#define ID_parser___parser_nodes___TBang (SFT_parser___parser_nodes[244])
-#define COLOR_parser___parser_nodes___TBang (SFT_parser___parser_nodes[245])
-#define INIT_TABLE_POS_parser___parser_nodes___TBang (SFT_parser___parser_nodes[246] + 0)
-#define ID_parser___parser_nodes___TClassid (SFT_parser___parser_nodes[247])
-#define COLOR_parser___parser_nodes___TClassid (SFT_parser___parser_nodes[248])
-#define INIT_TABLE_POS_parser___parser_nodes___TClassid (SFT_parser___parser_nodes[249] + 0)
-#define ID_parser___parser_nodes___TId (SFT_parser___parser_nodes[250])
-#define COLOR_parser___parser_nodes___TId (SFT_parser___parser_nodes[251])
-#define INIT_TABLE_POS_parser___parser_nodes___TId (SFT_parser___parser_nodes[252] + 0)
-#define ID_parser___parser_nodes___TAttrid (SFT_parser___parser_nodes[253])
-#define COLOR_parser___parser_nodes___TAttrid (SFT_parser___parser_nodes[254])
-#define INIT_TABLE_POS_parser___parser_nodes___TAttrid (SFT_parser___parser_nodes[255] + 0)
-#define ID_parser___parser_nodes___TNumber (SFT_parser___parser_nodes[256])
-#define COLOR_parser___parser_nodes___TNumber (SFT_parser___parser_nodes[257])
-#define INIT_TABLE_POS_parser___parser_nodes___TNumber (SFT_parser___parser_nodes[258] + 0)
-#define ID_parser___parser_nodes___TFloat (SFT_parser___parser_nodes[259])
-#define COLOR_parser___parser_nodes___TFloat (SFT_parser___parser_nodes[260])
-#define INIT_TABLE_POS_parser___parser_nodes___TFloat (SFT_parser___parser_nodes[261] + 0)
-#define ID_parser___parser_nodes___TChar (SFT_parser___parser_nodes[262])
-#define COLOR_parser___parser_nodes___TChar (SFT_parser___parser_nodes[263])
-#define INIT_TABLE_POS_parser___parser_nodes___TChar (SFT_parser___parser_nodes[264] + 0)
-#define ID_parser___parser_nodes___TString (SFT_parser___parser_nodes[265])
-#define COLOR_parser___parser_nodes___TString (SFT_parser___parser_nodes[266])
-#define INIT_TABLE_POS_parser___parser_nodes___TString (SFT_parser___parser_nodes[267] + 0)
-#define ID_parser___parser_nodes___TStartString (SFT_parser___parser_nodes[268])
-#define COLOR_parser___parser_nodes___TStartString (SFT_parser___parser_nodes[269])
-#define INIT_TABLE_POS_parser___parser_nodes___TStartString (SFT_parser___parser_nodes[270] + 0)
-#define ID_parser___parser_nodes___TMidString (SFT_parser___parser_nodes[271])
-#define COLOR_parser___parser_nodes___TMidString (SFT_parser___parser_nodes[272])
-#define INIT_TABLE_POS_parser___parser_nodes___TMidString (SFT_parser___parser_nodes[273] + 0)
-#define ID_parser___parser_nodes___TEndString (SFT_parser___parser_nodes[274])
-#define COLOR_parser___parser_nodes___TEndString (SFT_parser___parser_nodes[275])
-#define INIT_TABLE_POS_parser___parser_nodes___TEndString (SFT_parser___parser_nodes[276] + 0)
-#define ID_parser___parser_nodes___EOF (SFT_parser___parser_nodes[277])
-#define COLOR_parser___parser_nodes___EOF (SFT_parser___parser_nodes[278])
-#define INIT_TABLE_POS_parser___parser_nodes___EOF (SFT_parser___parser_nodes[279] + 0)
-#define CALL_parser___parser_nodes___EOF___noinit(recv) ((parser___parser_nodes___EOF___noinit_t)CALL((recv), (SFT_parser___parser_nodes[279] + 1)))
-#define ID_parser___parser_nodes___AError (SFT_parser___parser_nodes[280])
-#define COLOR_parser___parser_nodes___AError (SFT_parser___parser_nodes[281])
-#define INIT_TABLE_POS_parser___parser_nodes___AError (SFT_parser___parser_nodes[282] + 0)
-#define CALL_parser___parser_nodes___AError___noinit(recv) ((parser___parser_nodes___AError___noinit_t)CALL((recv), (SFT_parser___parser_nodes[282] + 1)))
-#define ID_parser___parser_nodes___AModule (SFT_parser___parser_nodes[283])
-#define COLOR_parser___parser_nodes___AModule (SFT_parser___parser_nodes[284])
-#define ATTR_parser___parser_nodes___AModule____n_moduledecl(recv) ATTR(recv, (SFT_parser___parser_nodes[285] + 0))
-#define ATTR_parser___parser_nodes___AModule____n_imports(recv) ATTR(recv, (SFT_parser___parser_nodes[285] + 1))
-#define ATTR_parser___parser_nodes___AModule____n_classdefs(recv) ATTR(recv, (SFT_parser___parser_nodes[285] + 2))
-#define INIT_TABLE_POS_parser___parser_nodes___AModule (SFT_parser___parser_nodes[286] + 0)
-#define CALL_parser___parser_nodes___AModule___n_moduledecl(recv) ((parser___parser_nodes___AModule___n_moduledecl_t)CALL((recv), (SFT_parser___parser_nodes[286] + 1)))
-#define CALL_parser___parser_nodes___AModule___n_imports(recv) ((parser___parser_nodes___AModule___n_imports_t)CALL((recv), (SFT_parser___parser_nodes[286] + 2)))
-#define CALL_parser___parser_nodes___AModule___n_classdefs(recv) ((parser___parser_nodes___AModule___n_classdefs_t)CALL((recv), (SFT_parser___parser_nodes[286] + 3)))
-#define ID_parser___parser_nodes___AModuledecl (SFT_parser___parser_nodes[287])
-#define COLOR_parser___parser_nodes___AModuledecl (SFT_parser___parser_nodes[288])
-#define ATTR_parser___parser_nodes___AModuledecl____n_doc(recv) ATTR(recv, (SFT_parser___parser_nodes[289] + 0))
-#define ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(recv) ATTR(recv, (SFT_parser___parser_nodes[289] + 1))
-#define ATTR_parser___parser_nodes___AModuledecl____n_name(recv) ATTR(recv, (SFT_parser___parser_nodes[289] + 2))
-#define INIT_TABLE_POS_parser___parser_nodes___AModuledecl (SFT_parser___parser_nodes[290] + 0)
-#define CALL_parser___parser_nodes___AModuledecl___n_doc(recv) ((parser___parser_nodes___AModuledecl___n_doc_t)CALL((recv), (SFT_parser___parser_nodes[290] + 1)))
-#define CALL_parser___parser_nodes___AModuledecl___n_kwmodule(recv) ((parser___parser_nodes___AModuledecl___n_kwmodule_t)CALL((recv), (SFT_parser___parser_nodes[290] + 2)))
-#define CALL_parser___parser_nodes___AModuledecl___n_name(recv) ((parser___parser_nodes___AModuledecl___n_name_t)CALL((recv), (SFT_parser___parser_nodes[290] + 3)))
-#define ID_parser___parser_nodes___AImport (SFT_parser___parser_nodes[291])
-#define COLOR_parser___parser_nodes___AImport (SFT_parser___parser_nodes[292])
-#define INIT_TABLE_POS_parser___parser_nodes___AImport (SFT_parser___parser_nodes[293] + 0)
-#define ID_parser___parser_nodes___AStdImport (SFT_parser___parser_nodes[294])
-#define COLOR_parser___parser_nodes___AStdImport (SFT_parser___parser_nodes[295])
-#define ATTR_parser___parser_nodes___AStdImport____n_visibility(recv) ATTR(recv, (SFT_parser___parser_nodes[296] + 0))
-#define ATTR_parser___parser_nodes___AStdImport____n_kwimport(recv) ATTR(recv, (SFT_parser___parser_nodes[296] + 1))
-#define ATTR_parser___parser_nodes___AStdImport____n_name(recv) ATTR(recv, (SFT_parser___parser_nodes[296] + 2))
-#define INIT_TABLE_POS_parser___parser_nodes___AStdImport (SFT_parser___parser_nodes[297] + 0)
-#define CALL_parser___parser_nodes___AStdImport___n_visibility(recv) ((parser___parser_nodes___AStdImport___n_visibility_t)CALL((recv), (SFT_parser___parser_nodes[297] + 1)))
-#define CALL_parser___parser_nodes___AStdImport___n_kwimport(recv) ((parser___parser_nodes___AStdImport___n_kwimport_t)CALL((recv), (SFT_parser___parser_nodes[297] + 2)))
-#define CALL_parser___parser_nodes___AStdImport___n_name(recv) ((parser___parser_nodes___AStdImport___n_name_t)CALL((recv), (SFT_parser___parser_nodes[297] + 3)))
-#define ID_parser___parser_nodes___ANoImport (SFT_parser___parser_nodes[298])
-#define COLOR_parser___parser_nodes___ANoImport (SFT_parser___parser_nodes[299])
-#define ATTR_parser___parser_nodes___ANoImport____n_visibility(recv) ATTR(recv, (SFT_parser___parser_nodes[300] + 0))
-#define ATTR_parser___parser_nodes___ANoImport____n_kwimport(recv) ATTR(recv, (SFT_parser___parser_nodes[300] + 1))
-#define ATTR_parser___parser_nodes___ANoImport____n_kwend(recv) ATTR(recv, (SFT_parser___parser_nodes[300] + 2))
-#define INIT_TABLE_POS_parser___parser_nodes___ANoImport (SFT_parser___parser_nodes[301] + 0)
-#define CALL_parser___parser_nodes___ANoImport___n_visibility(recv) ((parser___parser_nodes___ANoImport___n_visibility_t)CALL((recv), (SFT_parser___parser_nodes[301] + 1)))
-#define CALL_parser___parser_nodes___ANoImport___n_kwimport(recv) ((parser___parser_nodes___ANoImport___n_kwimport_t)CALL((recv), (SFT_parser___parser_nodes[301] + 2)))
-#define CALL_parser___parser_nodes___ANoImport___n_kwend(recv) ((parser___parser_nodes___ANoImport___n_kwend_t)CALL((recv), (SFT_parser___parser_nodes[301] + 3)))
-#define ID_parser___parser_nodes___AVisibility (SFT_parser___parser_nodes[302])
-#define COLOR_parser___parser_nodes___AVisibility (SFT_parser___parser_nodes[303])
-#define INIT_TABLE_POS_parser___parser_nodes___AVisibility (SFT_parser___parser_nodes[304] + 0)
-#define ID_parser___parser_nodes___APublicVisibility (SFT_parser___parser_nodes[305])
-#define COLOR_parser___parser_nodes___APublicVisibility (SFT_parser___parser_nodes[306])
-#define INIT_TABLE_POS_parser___parser_nodes___APublicVisibility (SFT_parser___parser_nodes[307] + 0)
-#define ID_parser___parser_nodes___APrivateVisibility (SFT_parser___parser_nodes[308])
-#define COLOR_parser___parser_nodes___APrivateVisibility (SFT_parser___parser_nodes[309])
-#define ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(recv) ATTR(recv, (SFT_parser___parser_nodes[310] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___APrivateVisibility (SFT_parser___parser_nodes[311] + 0)
-#define CALL_parser___parser_nodes___APrivateVisibility___n_kwprivate(recv) ((parser___parser_nodes___APrivateVisibility___n_kwprivate_t)CALL((recv), (SFT_parser___parser_nodes[311] + 1)))
-#define ID_parser___parser_nodes___AProtectedVisibility (SFT_parser___parser_nodes[312])
-#define COLOR_parser___parser_nodes___AProtectedVisibility (SFT_parser___parser_nodes[313])
-#define ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(recv) ATTR(recv, (SFT_parser___parser_nodes[314] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AProtectedVisibility (SFT_parser___parser_nodes[315] + 0)
-#define CALL_parser___parser_nodes___AProtectedVisibility___n_kwprotected(recv) ((parser___parser_nodes___AProtectedVisibility___n_kwprotected_t)CALL((recv), (SFT_parser___parser_nodes[315] + 1)))
-#define ID_parser___parser_nodes___AIntrudeVisibility (SFT_parser___parser_nodes[316])
-#define COLOR_parser___parser_nodes___AIntrudeVisibility (SFT_parser___parser_nodes[317])
-#define ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(recv) ATTR(recv, (SFT_parser___parser_nodes[318] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AIntrudeVisibility (SFT_parser___parser_nodes[319] + 0)
-#define CALL_parser___parser_nodes___AIntrudeVisibility___n_kwintrude(recv) ((parser___parser_nodes___AIntrudeVisibility___n_kwintrude_t)CALL((recv), (SFT_parser___parser_nodes[319] + 1)))
-#define ID_parser___parser_nodes___AClassdef (SFT_parser___parser_nodes[320])
-#define COLOR_parser___parser_nodes___AClassdef (SFT_parser___parser_nodes[321])
-#define INIT_TABLE_POS_parser___parser_nodes___AClassdef (SFT_parser___parser_nodes[322] + 0)
-#define ID_parser___parser_nodes___AStdClassdef (SFT_parser___parser_nodes[323])
-#define COLOR_parser___parser_nodes___AStdClassdef (SFT_parser___parser_nodes[324])
-#define ATTR_parser___parser_nodes___AStdClassdef____n_doc(recv) ATTR(recv, (SFT_parser___parser_nodes[325] + 0))
-#define ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(recv) ATTR(recv, (SFT_parser___parser_nodes[325] + 1))
-#define ATTR_parser___parser_nodes___AStdClassdef____n_visibility(recv) ATTR(recv, (SFT_parser___parser_nodes[325] + 2))
-#define ATTR_parser___parser_nodes___AStdClassdef____n_classkind(recv) ATTR(recv, (SFT_parser___parser_nodes[325] + 3))
-#define ATTR_parser___parser_nodes___AStdClassdef____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[325] + 4))
-#define ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(recv) ATTR(recv, (SFT_parser___parser_nodes[325] + 5))
-#define ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(recv) ATTR(recv, (SFT_parser___parser_nodes[325] + 6))
-#define ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(recv) ATTR(recv, (SFT_parser___parser_nodes[325] + 7))
-#define INIT_TABLE_POS_parser___parser_nodes___AStdClassdef (SFT_parser___parser_nodes[326] + 0)
-#define CALL_parser___parser_nodes___AStdClassdef___n_doc(recv) ((parser___parser_nodes___AStdClassdef___n_doc_t)CALL((recv), (SFT_parser___parser_nodes[326] + 1)))
-#define CALL_parser___parser_nodes___AStdClassdef___n_kwredef(recv) ((parser___parser_nodes___AStdClassdef___n_kwredef_t)CALL((recv), (SFT_parser___parser_nodes[326] + 2)))
-#define CALL_parser___parser_nodes___AStdClassdef___n_visibility(recv) ((parser___parser_nodes___AStdClassdef___n_visibility_t)CALL((recv), (SFT_parser___parser_nodes[326] + 3)))
-#define CALL_parser___parser_nodes___AStdClassdef___n_classkind(recv) ((parser___parser_nodes___AStdClassdef___n_classkind_t)CALL((recv), (SFT_parser___parser_nodes[326] + 4)))
-#define CALL_parser___parser_nodes___AStdClassdef___n_id(recv) ((parser___parser_nodes___AStdClassdef___n_id_t)CALL((recv), (SFT_parser___parser_nodes[326] + 5)))
-#define CALL_parser___parser_nodes___AStdClassdef___n_formaldefs(recv) ((parser___parser_nodes___AStdClassdef___n_formaldefs_t)CALL((recv), (SFT_parser___parser_nodes[326] + 6)))
-#define CALL_parser___parser_nodes___AStdClassdef___n_superclasses(recv) ((parser___parser_nodes___AStdClassdef___n_superclasses_t)CALL((recv), (SFT_parser___parser_nodes[326] + 7)))
-#define CALL_parser___parser_nodes___AStdClassdef___n_propdefs(recv) ((parser___parser_nodes___AStdClassdef___n_propdefs_t)CALL((recv), (SFT_parser___parser_nodes[326] + 8)))
-#define ID_parser___parser_nodes___ATopClassdef (SFT_parser___parser_nodes[327])
-#define COLOR_parser___parser_nodes___ATopClassdef (SFT_parser___parser_nodes[328])
-#define ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(recv) ATTR(recv, (SFT_parser___parser_nodes[329] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ATopClassdef (SFT_parser___parser_nodes[330] + 0)
-#define CALL_parser___parser_nodes___ATopClassdef___n_propdefs(recv) ((parser___parser_nodes___ATopClassdef___n_propdefs_t)CALL((recv), (SFT_parser___parser_nodes[330] + 1)))
-#define ID_parser___parser_nodes___AMainClassdef (SFT_parser___parser_nodes[331])
-#define COLOR_parser___parser_nodes___AMainClassdef (SFT_parser___parser_nodes[332])
-#define ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(recv) ATTR(recv, (SFT_parser___parser_nodes[333] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AMainClassdef (SFT_parser___parser_nodes[334] + 0)
-#define CALL_parser___parser_nodes___AMainClassdef___n_propdefs(recv) ((parser___parser_nodes___AMainClassdef___n_propdefs_t)CALL((recv), (SFT_parser___parser_nodes[334] + 1)))
-#define ID_parser___parser_nodes___AClasskind (SFT_parser___parser_nodes[335])
-#define COLOR_parser___parser_nodes___AClasskind (SFT_parser___parser_nodes[336])
-#define INIT_TABLE_POS_parser___parser_nodes___AClasskind (SFT_parser___parser_nodes[337] + 0)
-#define ID_parser___parser_nodes___AConcreteClasskind (SFT_parser___parser_nodes[338])
-#define COLOR_parser___parser_nodes___AConcreteClasskind (SFT_parser___parser_nodes[339])
-#define ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(recv) ATTR(recv, (SFT_parser___parser_nodes[340] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AConcreteClasskind (SFT_parser___parser_nodes[341] + 0)
-#define CALL_parser___parser_nodes___AConcreteClasskind___n_kwclass(recv) ((parser___parser_nodes___AConcreteClasskind___n_kwclass_t)CALL((recv), (SFT_parser___parser_nodes[341] + 1)))
-#define ID_parser___parser_nodes___AAbstractClasskind (SFT_parser___parser_nodes[342])
-#define COLOR_parser___parser_nodes___AAbstractClasskind (SFT_parser___parser_nodes[343])
-#define ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(recv) ATTR(recv, (SFT_parser___parser_nodes[344] + 0))
-#define ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(recv) ATTR(recv, (SFT_parser___parser_nodes[344] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___AAbstractClasskind (SFT_parser___parser_nodes[345] + 0)
-#define CALL_parser___parser_nodes___AAbstractClasskind___n_kwabstract(recv) ((parser___parser_nodes___AAbstractClasskind___n_kwabstract_t)CALL((recv), (SFT_parser___parser_nodes[345] + 1)))
-#define CALL_parser___parser_nodes___AAbstractClasskind___n_kwclass(recv) ((parser___parser_nodes___AAbstractClasskind___n_kwclass_t)CALL((recv), (SFT_parser___parser_nodes[345] + 2)))
-#define ID_parser___parser_nodes___AInterfaceClasskind (SFT_parser___parser_nodes[346])
-#define COLOR_parser___parser_nodes___AInterfaceClasskind (SFT_parser___parser_nodes[347])
-#define ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(recv) ATTR(recv, (SFT_parser___parser_nodes[348] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AInterfaceClasskind (SFT_parser___parser_nodes[349] + 0)
-#define CALL_parser___parser_nodes___AInterfaceClasskind___n_kwinterface(recv) ((parser___parser_nodes___AInterfaceClasskind___n_kwinterface_t)CALL((recv), (SFT_parser___parser_nodes[349] + 1)))
-#define ID_parser___parser_nodes___AEnumClasskind (SFT_parser___parser_nodes[350])
-#define COLOR_parser___parser_nodes___AEnumClasskind (SFT_parser___parser_nodes[351])
-#define ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(recv) ATTR(recv, (SFT_parser___parser_nodes[352] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AEnumClasskind (SFT_parser___parser_nodes[353] + 0)
-#define CALL_parser___parser_nodes___AEnumClasskind___n_kwenum(recv) ((parser___parser_nodes___AEnumClasskind___n_kwenum_t)CALL((recv), (SFT_parser___parser_nodes[353] + 1)))
-#define ID_parser___parser_nodes___AExternClasskind (SFT_parser___parser_nodes[354])
-#define COLOR_parser___parser_nodes___AExternClasskind (SFT_parser___parser_nodes[355])
-#define ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(recv) ATTR(recv, (SFT_parser___parser_nodes[356] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AExternClasskind (SFT_parser___parser_nodes[357] + 0)
-#define CALL_parser___parser_nodes___AExternClasskind___n_kwextern(recv) ((parser___parser_nodes___AExternClasskind___n_kwextern_t)CALL((recv), (SFT_parser___parser_nodes[357] + 1)))
-#define ID_parser___parser_nodes___AFormaldef (SFT_parser___parser_nodes[358])
-#define COLOR_parser___parser_nodes___AFormaldef (SFT_parser___parser_nodes[359])
-#define ATTR_parser___parser_nodes___AFormaldef____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[360] + 0))
-#define ATTR_parser___parser_nodes___AFormaldef____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[360] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___AFormaldef (SFT_parser___parser_nodes[361] + 0)
-#define CALL_parser___parser_nodes___AFormaldef___n_id(recv) ((parser___parser_nodes___AFormaldef___n_id_t)CALL((recv), (SFT_parser___parser_nodes[361] + 1)))
-#define CALL_parser___parser_nodes___AFormaldef___n_type(recv) ((parser___parser_nodes___AFormaldef___n_type_t)CALL((recv), (SFT_parser___parser_nodes[361] + 2)))
-#define ID_parser___parser_nodes___ASuperclass (SFT_parser___parser_nodes[362])
-#define COLOR_parser___parser_nodes___ASuperclass (SFT_parser___parser_nodes[363])
-#define ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(recv) ATTR(recv, (SFT_parser___parser_nodes[364] + 0))
-#define ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(recv) ATTR(recv, (SFT_parser___parser_nodes[364] + 1))
-#define ATTR_parser___parser_nodes___ASuperclass____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[364] + 2))
-#define INIT_TABLE_POS_parser___parser_nodes___ASuperclass (SFT_parser___parser_nodes[365] + 0)
-#define CALL_parser___parser_nodes___ASuperclass___n_kwspecial(recv) ((parser___parser_nodes___ASuperclass___n_kwspecial_t)CALL((recv), (SFT_parser___parser_nodes[365] + 1)))
-#define CALL_parser___parser_nodes___ASuperclass___n_kwsuper(recv) ((parser___parser_nodes___ASuperclass___n_kwsuper_t)CALL((recv), (SFT_parser___parser_nodes[365] + 2)))
-#define CALL_parser___parser_nodes___ASuperclass___n_type(recv) ((parser___parser_nodes___ASuperclass___n_type_t)CALL((recv), (SFT_parser___parser_nodes[365] + 3)))
-#define ID_parser___parser_nodes___APropdef (SFT_parser___parser_nodes[366])
-#define COLOR_parser___parser_nodes___APropdef (SFT_parser___parser_nodes[367])
-#define ATTR_parser___parser_nodes___APropdef____n_doc(recv) ATTR(recv, (SFT_parser___parser_nodes[368] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___APropdef (SFT_parser___parser_nodes[369] + 0)
-#define CALL_parser___parser_nodes___APropdef___n_doc(recv) ((parser___parser_nodes___APropdef___n_doc_t)CALL((recv), (SFT_parser___parser_nodes[369] + 1)))
-#define ID_parser___parser_nodes___AAttrPropdef (SFT_parser___parser_nodes[370])
-#define COLOR_parser___parser_nodes___AAttrPropdef (SFT_parser___parser_nodes[371])
-#define ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(recv) ATTR(recv, (SFT_parser___parser_nodes[372] + 0))
-#define ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(recv) ATTR(recv, (SFT_parser___parser_nodes[372] + 1))
-#define ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(recv) ATTR(recv, (SFT_parser___parser_nodes[372] + 2))
-#define ATTR_parser___parser_nodes___AAttrPropdef____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[372] + 3))
-#define ATTR_parser___parser_nodes___AAttrPropdef____n_id2(recv) ATTR(recv, (SFT_parser___parser_nodes[372] + 4))
-#define ATTR_parser___parser_nodes___AAttrPropdef____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[372] + 5))
-#define ATTR_parser___parser_nodes___AAttrPropdef____n_readable(recv) ATTR(recv, (SFT_parser___parser_nodes[372] + 6))
-#define ATTR_parser___parser_nodes___AAttrPropdef____n_writable(recv) ATTR(recv, (SFT_parser___parser_nodes[372] + 7))
-#define ATTR_parser___parser_nodes___AAttrPropdef____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[372] + 8))
-#define INIT_TABLE_POS_parser___parser_nodes___AAttrPropdef (SFT_parser___parser_nodes[373] + 0)
-#define CALL_parser___parser_nodes___AAttrPropdef___n_kwredef(recv) ((parser___parser_nodes___AAttrPropdef___n_kwredef_t)CALL((recv), (SFT_parser___parser_nodes[373] + 1)))
-#define CALL_parser___parser_nodes___AAttrPropdef___n_visibility(recv) ((parser___parser_nodes___AAttrPropdef___n_visibility_t)CALL((recv), (SFT_parser___parser_nodes[373] + 2)))
-#define CALL_parser___parser_nodes___AAttrPropdef___n_kwvar(recv) ((parser___parser_nodes___AAttrPropdef___n_kwvar_t)CALL((recv), (SFT_parser___parser_nodes[373] + 3)))
-#define CALL_parser___parser_nodes___AAttrPropdef___n_id(recv) ((parser___parser_nodes___AAttrPropdef___n_id_t)CALL((recv), (SFT_parser___parser_nodes[373] + 4)))
-#define CALL_parser___parser_nodes___AAttrPropdef___n_id2(recv) ((parser___parser_nodes___AAttrPropdef___n_id2_t)CALL((recv), (SFT_parser___parser_nodes[373] + 5)))
-#define CALL_parser___parser_nodes___AAttrPropdef___n_type(recv) ((parser___parser_nodes___AAttrPropdef___n_type_t)CALL((recv), (SFT_parser___parser_nodes[373] + 6)))
-#define CALL_parser___parser_nodes___AAttrPropdef___n_readable(recv) ((parser___parser_nodes___AAttrPropdef___n_readable_t)CALL((recv), (SFT_parser___parser_nodes[373] + 7)))
-#define CALL_parser___parser_nodes___AAttrPropdef___n_writable(recv) ((parser___parser_nodes___AAttrPropdef___n_writable_t)CALL((recv), (SFT_parser___parser_nodes[373] + 8)))
-#define CALL_parser___parser_nodes___AAttrPropdef___n_expr(recv) ((parser___parser_nodes___AAttrPropdef___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[373] + 9)))
-#define ID_parser___parser_nodes___AMethPropdef (SFT_parser___parser_nodes[374])
-#define COLOR_parser___parser_nodes___AMethPropdef (SFT_parser___parser_nodes[375])
-#define ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(recv) ATTR(recv, (SFT_parser___parser_nodes[376] + 0))
-#define ATTR_parser___parser_nodes___AMethPropdef____n_visibility(recv) ATTR(recv, (SFT_parser___parser_nodes[376] + 1))
-#define ATTR_parser___parser_nodes___AMethPropdef____n_methid(recv) ATTR(recv, (SFT_parser___parser_nodes[376] + 2))
-#define ATTR_parser___parser_nodes___AMethPropdef____n_signature(recv) ATTR(recv, (SFT_parser___parser_nodes[376] + 3))
-#define INIT_TABLE_POS_parser___parser_nodes___AMethPropdef (SFT_parser___parser_nodes[377] + 0)
-#define CALL_parser___parser_nodes___AMethPropdef___n_kwredef(recv) ((parser___parser_nodes___AMethPropdef___n_kwredef_t)CALL((recv), (SFT_parser___parser_nodes[377] + 1)))
-#define CALL_parser___parser_nodes___AMethPropdef___n_visibility(recv) ((parser___parser_nodes___AMethPropdef___n_visibility_t)CALL((recv), (SFT_parser___parser_nodes[377] + 2)))
-#define CALL_parser___parser_nodes___AMethPropdef___n_methid(recv) ((parser___parser_nodes___AMethPropdef___n_methid_t)CALL((recv), (SFT_parser___parser_nodes[377] + 3)))
-#define CALL_parser___parser_nodes___AMethPropdef___n_signature(recv) ((parser___parser_nodes___AMethPropdef___n_signature_t)CALL((recv), (SFT_parser___parser_nodes[377] + 4)))
-#define ID_parser___parser_nodes___ADeferredMethPropdef (SFT_parser___parser_nodes[378])
-#define COLOR_parser___parser_nodes___ADeferredMethPropdef (SFT_parser___parser_nodes[379])
-#define ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(recv) ATTR(recv, (SFT_parser___parser_nodes[380] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ADeferredMethPropdef (SFT_parser___parser_nodes[381] + 0)
-#define CALL_parser___parser_nodes___ADeferredMethPropdef___n_kwmeth(recv) ((parser___parser_nodes___ADeferredMethPropdef___n_kwmeth_t)CALL((recv), (SFT_parser___parser_nodes[381] + 1)))
-#define ID_parser___parser_nodes___AInternMethPropdef (SFT_parser___parser_nodes[382])
-#define COLOR_parser___parser_nodes___AInternMethPropdef (SFT_parser___parser_nodes[383])
-#define ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(recv) ATTR(recv, (SFT_parser___parser_nodes[384] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AInternMethPropdef (SFT_parser___parser_nodes[385] + 0)
-#define CALL_parser___parser_nodes___AInternMethPropdef___n_kwmeth(recv) ((parser___parser_nodes___AInternMethPropdef___n_kwmeth_t)CALL((recv), (SFT_parser___parser_nodes[385] + 1)))
-#define ID_parser___parser_nodes___AExternPropdef (SFT_parser___parser_nodes[386])
-#define COLOR_parser___parser_nodes___AExternPropdef (SFT_parser___parser_nodes[387])
-#define ATTR_parser___parser_nodes___AExternPropdef____n_extern(recv) ATTR(recv, (SFT_parser___parser_nodes[388] + 0))
-#define ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(recv) ATTR(recv, (SFT_parser___parser_nodes[388] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___AExternPropdef (SFT_parser___parser_nodes[389] + 0)
-#define CALL_parser___parser_nodes___AExternPropdef___n_extern(recv) ((parser___parser_nodes___AExternPropdef___n_extern_t)CALL((recv), (SFT_parser___parser_nodes[389] + 1)))
-#define CALL_parser___parser_nodes___AExternPropdef___n_extern_calls(recv) ((parser___parser_nodes___AExternPropdef___n_extern_calls_t)CALL((recv), (SFT_parser___parser_nodes[389] + 2)))
-#define ID_parser___parser_nodes___AExternMethPropdef (SFT_parser___parser_nodes[390])
-#define COLOR_parser___parser_nodes___AExternMethPropdef (SFT_parser___parser_nodes[391])
-#define ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(recv) ATTR(recv, (SFT_parser___parser_nodes[392] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AExternMethPropdef (SFT_parser___parser_nodes[393] + 0)
-#define CALL_parser___parser_nodes___AExternMethPropdef___n_kwmeth(recv) ((parser___parser_nodes___AExternMethPropdef___n_kwmeth_t)CALL((recv), (SFT_parser___parser_nodes[393] + 1)))
-#define ID_parser___parser_nodes___AConcreteMethPropdef (SFT_parser___parser_nodes[394])
-#define COLOR_parser___parser_nodes___AConcreteMethPropdef (SFT_parser___parser_nodes[395])
-#define ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(recv) ATTR(recv, (SFT_parser___parser_nodes[396] + 0))
-#define ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(recv) ATTR(recv, (SFT_parser___parser_nodes[396] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___AConcreteMethPropdef (SFT_parser___parser_nodes[397] + 0)
-#define CALL_parser___parser_nodes___AConcreteMethPropdef___n_kwmeth(recv) ((parser___parser_nodes___AConcreteMethPropdef___n_kwmeth_t)CALL((recv), (SFT_parser___parser_nodes[397] + 1)))
-#define CALL_parser___parser_nodes___AConcreteMethPropdef___n_block(recv) ((parser___parser_nodes___AConcreteMethPropdef___n_block_t)CALL((recv), (SFT_parser___parser_nodes[397] + 2)))
-#define ID_parser___parser_nodes___AInitPropdef (SFT_parser___parser_nodes[398])
-#define COLOR_parser___parser_nodes___AInitPropdef (SFT_parser___parser_nodes[399])
-#define INIT_TABLE_POS_parser___parser_nodes___AInitPropdef (SFT_parser___parser_nodes[400] + 0)
-#define CALL_parser___parser_nodes___AInitPropdef___init(recv) ((parser___parser_nodes___AInitPropdef___init_t)CALL((recv), (SFT_parser___parser_nodes[400] + 1)))
-#define ID_parser___parser_nodes___AConcreteInitPropdef (SFT_parser___parser_nodes[401])
-#define COLOR_parser___parser_nodes___AConcreteInitPropdef (SFT_parser___parser_nodes[402])
-#define ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(recv) ATTR(recv, (SFT_parser___parser_nodes[403] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AConcreteInitPropdef (SFT_parser___parser_nodes[404] + 0)
-#define CALL_parser___parser_nodes___AConcreteInitPropdef___init(recv) ((parser___parser_nodes___AConcreteInitPropdef___init_t)CALL((recv), (SFT_parser___parser_nodes[404] + 1)))
-#define CALL_parser___parser_nodes___AConcreteInitPropdef___n_kwinit(recv) ((parser___parser_nodes___AConcreteInitPropdef___n_kwinit_t)CALL((recv), (SFT_parser___parser_nodes[404] + 2)))
-#define ID_parser___parser_nodes___AExternInitPropdef (SFT_parser___parser_nodes[405])
-#define COLOR_parser___parser_nodes___AExternInitPropdef (SFT_parser___parser_nodes[406])
-#define ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(recv) ATTR(recv, (SFT_parser___parser_nodes[407] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AExternInitPropdef (SFT_parser___parser_nodes[408] + 0)
-#define CALL_parser___parser_nodes___AExternInitPropdef___init(recv) ((parser___parser_nodes___AExternInitPropdef___init_t)CALL((recv), (SFT_parser___parser_nodes[408] + 1)))
-#define CALL_parser___parser_nodes___AExternInitPropdef___n_kwnew(recv) ((parser___parser_nodes___AExternInitPropdef___n_kwnew_t)CALL((recv), (SFT_parser___parser_nodes[408] + 2)))
-#define ID_parser___parser_nodes___AMainMethPropdef (SFT_parser___parser_nodes[409])
-#define COLOR_parser___parser_nodes___AMainMethPropdef (SFT_parser___parser_nodes[410])
-#define INIT_TABLE_POS_parser___parser_nodes___AMainMethPropdef (SFT_parser___parser_nodes[411] + 0)
-#define ID_parser___parser_nodes___AExternCalls (SFT_parser___parser_nodes[412])
-#define COLOR_parser___parser_nodes___AExternCalls (SFT_parser___parser_nodes[413])
-#define ATTR_parser___parser_nodes___AExternCalls____n_kwimport(recv) ATTR(recv, (SFT_parser___parser_nodes[414] + 0))
-#define ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(recv) ATTR(recv, (SFT_parser___parser_nodes[414] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___AExternCalls (SFT_parser___parser_nodes[415] + 0)
-#define CALL_parser___parser_nodes___AExternCalls___n_kwimport(recv) ((parser___parser_nodes___AExternCalls___n_kwimport_t)CALL((recv), (SFT_parser___parser_nodes[415] + 1)))
-#define CALL_parser___parser_nodes___AExternCalls___n_extern_calls(recv) ((parser___parser_nodes___AExternCalls___n_extern_calls_t)CALL((recv), (SFT_parser___parser_nodes[415] + 2)))
-#define ID_parser___parser_nodes___AExternCall (SFT_parser___parser_nodes[416])
-#define COLOR_parser___parser_nodes___AExternCall (SFT_parser___parser_nodes[417])
-#define INIT_TABLE_POS_parser___parser_nodes___AExternCall (SFT_parser___parser_nodes[418] + 0)
-#define ID_parser___parser_nodes___APropExternCall (SFT_parser___parser_nodes[419])
-#define COLOR_parser___parser_nodes___APropExternCall (SFT_parser___parser_nodes[420])
-#define INIT_TABLE_POS_parser___parser_nodes___APropExternCall (SFT_parser___parser_nodes[421] + 0)
-#define ID_parser___parser_nodes___ALocalPropExternCall (SFT_parser___parser_nodes[422])
-#define COLOR_parser___parser_nodes___ALocalPropExternCall (SFT_parser___parser_nodes[423])
-#define ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(recv) ATTR(recv, (SFT_parser___parser_nodes[424] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ALocalPropExternCall (SFT_parser___parser_nodes[425] + 0)
-#define CALL_parser___parser_nodes___ALocalPropExternCall___n_methid(recv) ((parser___parser_nodes___ALocalPropExternCall___n_methid_t)CALL((recv), (SFT_parser___parser_nodes[425] + 1)))
-#define ID_parser___parser_nodes___AFullPropExternCall (SFT_parser___parser_nodes[426])
-#define COLOR_parser___parser_nodes___AFullPropExternCall (SFT_parser___parser_nodes[427])
-#define ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(recv) ATTR(recv, (SFT_parser___parser_nodes[428] + 0))
-#define ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(recv) ATTR(recv, (SFT_parser___parser_nodes[428] + 1))
-#define ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(recv) ATTR(recv, (SFT_parser___parser_nodes[428] + 2))
-#define INIT_TABLE_POS_parser___parser_nodes___AFullPropExternCall (SFT_parser___parser_nodes[429] + 0)
-#define CALL_parser___parser_nodes___AFullPropExternCall___n_classid(recv) ((parser___parser_nodes___AFullPropExternCall___n_classid_t)CALL((recv), (SFT_parser___parser_nodes[429] + 1)))
-#define CALL_parser___parser_nodes___AFullPropExternCall___n_quad(recv) ((parser___parser_nodes___AFullPropExternCall___n_quad_t)CALL((recv), (SFT_parser___parser_nodes[429] + 2)))
-#define CALL_parser___parser_nodes___AFullPropExternCall___n_methid(recv) ((parser___parser_nodes___AFullPropExternCall___n_methid_t)CALL((recv), (SFT_parser___parser_nodes[429] + 3)))
-#define ID_parser___parser_nodes___AInitPropExternCall (SFT_parser___parser_nodes[430])
-#define COLOR_parser___parser_nodes___AInitPropExternCall (SFT_parser___parser_nodes[431])
-#define ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(recv) ATTR(recv, (SFT_parser___parser_nodes[432] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AInitPropExternCall (SFT_parser___parser_nodes[433] + 0)
-#define CALL_parser___parser_nodes___AInitPropExternCall___n_classid(recv) ((parser___parser_nodes___AInitPropExternCall___n_classid_t)CALL((recv), (SFT_parser___parser_nodes[433] + 1)))
-#define ID_parser___parser_nodes___ASuperExternCall (SFT_parser___parser_nodes[434])
-#define COLOR_parser___parser_nodes___ASuperExternCall (SFT_parser___parser_nodes[435])
-#define ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(recv) ATTR(recv, (SFT_parser___parser_nodes[436] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ASuperExternCall (SFT_parser___parser_nodes[437] + 0)
-#define CALL_parser___parser_nodes___ASuperExternCall___n_kwsuper(recv) ((parser___parser_nodes___ASuperExternCall___n_kwsuper_t)CALL((recv), (SFT_parser___parser_nodes[437] + 1)))
-#define ID_parser___parser_nodes___ACastExternCall (SFT_parser___parser_nodes[438])
-#define COLOR_parser___parser_nodes___ACastExternCall (SFT_parser___parser_nodes[439])
-#define INIT_TABLE_POS_parser___parser_nodes___ACastExternCall (SFT_parser___parser_nodes[440] + 0)
-#define ID_parser___parser_nodes___ACastAsExternCall (SFT_parser___parser_nodes[441])
-#define COLOR_parser___parser_nodes___ACastAsExternCall (SFT_parser___parser_nodes[442])
-#define ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(recv) ATTR(recv, (SFT_parser___parser_nodes[443] + 0))
-#define ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(recv) ATTR(recv, (SFT_parser___parser_nodes[443] + 1))
-#define ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(recv) ATTR(recv, (SFT_parser___parser_nodes[443] + 2))
-#define INIT_TABLE_POS_parser___parser_nodes___ACastAsExternCall (SFT_parser___parser_nodes[444] + 0)
-#define CALL_parser___parser_nodes___ACastAsExternCall___n_from_type(recv) ((parser___parser_nodes___ACastAsExternCall___n_from_type_t)CALL((recv), (SFT_parser___parser_nodes[444] + 1)))
-#define CALL_parser___parser_nodes___ACastAsExternCall___n_kwas(recv) ((parser___parser_nodes___ACastAsExternCall___n_kwas_t)CALL((recv), (SFT_parser___parser_nodes[444] + 2)))
-#define CALL_parser___parser_nodes___ACastAsExternCall___n_to_type(recv) ((parser___parser_nodes___ACastAsExternCall___n_to_type_t)CALL((recv), (SFT_parser___parser_nodes[444] + 3)))
-#define ID_parser___parser_nodes___AAsNullableExternCall (SFT_parser___parser_nodes[445])
-#define COLOR_parser___parser_nodes___AAsNullableExternCall (SFT_parser___parser_nodes[446])
-#define ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[447] + 0))
-#define ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(recv) ATTR(recv, (SFT_parser___parser_nodes[447] + 1))
-#define ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(recv) ATTR(recv, (SFT_parser___parser_nodes[447] + 2))
-#define INIT_TABLE_POS_parser___parser_nodes___AAsNullableExternCall (SFT_parser___parser_nodes[448] + 0)
-#define CALL_parser___parser_nodes___AAsNullableExternCall___n_type(recv) ((parser___parser_nodes___AAsNullableExternCall___n_type_t)CALL((recv), (SFT_parser___parser_nodes[448] + 1)))
-#define CALL_parser___parser_nodes___AAsNullableExternCall___n_kwas(recv) ((parser___parser_nodes___AAsNullableExternCall___n_kwas_t)CALL((recv), (SFT_parser___parser_nodes[448] + 2)))
-#define CALL_parser___parser_nodes___AAsNullableExternCall___n_kwnullable(recv) ((parser___parser_nodes___AAsNullableExternCall___n_kwnullable_t)CALL((recv), (SFT_parser___parser_nodes[448] + 3)))
-#define ID_parser___parser_nodes___AAsNotNullableExternCall (SFT_parser___parser_nodes[449])
-#define COLOR_parser___parser_nodes___AAsNotNullableExternCall (SFT_parser___parser_nodes[450])
-#define ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[451] + 0))
-#define ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(recv) ATTR(recv, (SFT_parser___parser_nodes[451] + 1))
-#define ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(recv) ATTR(recv, (SFT_parser___parser_nodes[451] + 2))
-#define ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(recv) ATTR(recv, (SFT_parser___parser_nodes[451] + 3))
-#define INIT_TABLE_POS_parser___parser_nodes___AAsNotNullableExternCall (SFT_parser___parser_nodes[452] + 0)
-#define CALL_parser___parser_nodes___AAsNotNullableExternCall___n_type(recv) ((parser___parser_nodes___AAsNotNullableExternCall___n_type_t)CALL((recv), (SFT_parser___parser_nodes[452] + 1)))
-#define CALL_parser___parser_nodes___AAsNotNullableExternCall___n_kwas(recv) ((parser___parser_nodes___AAsNotNullableExternCall___n_kwas_t)CALL((recv), (SFT_parser___parser_nodes[452] + 2)))
-#define CALL_parser___parser_nodes___AAsNotNullableExternCall___n_kwnot(recv) ((parser___parser_nodes___AAsNotNullableExternCall___n_kwnot_t)CALL((recv), (SFT_parser___parser_nodes[452] + 3)))
-#define CALL_parser___parser_nodes___AAsNotNullableExternCall___n_kwnullable(recv) ((parser___parser_nodes___AAsNotNullableExternCall___n_kwnullable_t)CALL((recv), (SFT_parser___parser_nodes[452] + 4)))
-#define ID_parser___parser_nodes___ATypePropdef (SFT_parser___parser_nodes[453])
-#define COLOR_parser___parser_nodes___ATypePropdef (SFT_parser___parser_nodes[454])
-#define ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(recv) ATTR(recv, (SFT_parser___parser_nodes[455] + 0))
-#define ATTR_parser___parser_nodes___ATypePropdef____n_visibility(recv) ATTR(recv, (SFT_parser___parser_nodes[455] + 1))
-#define ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(recv) ATTR(recv, (SFT_parser___parser_nodes[455] + 2))
-#define ATTR_parser___parser_nodes___ATypePropdef____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[455] + 3))
-#define ATTR_parser___parser_nodes___ATypePropdef____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[455] + 4))
-#define INIT_TABLE_POS_parser___parser_nodes___ATypePropdef (SFT_parser___parser_nodes[456] + 0)
-#define CALL_parser___parser_nodes___ATypePropdef___n_kwredef(recv) ((parser___parser_nodes___ATypePropdef___n_kwredef_t)CALL((recv), (SFT_parser___parser_nodes[456] + 1)))
-#define CALL_parser___parser_nodes___ATypePropdef___n_visibility(recv) ((parser___parser_nodes___ATypePropdef___n_visibility_t)CALL((recv), (SFT_parser___parser_nodes[456] + 2)))
-#define CALL_parser___parser_nodes___ATypePropdef___n_kwtype(recv) ((parser___parser_nodes___ATypePropdef___n_kwtype_t)CALL((recv), (SFT_parser___parser_nodes[456] + 3)))
-#define CALL_parser___parser_nodes___ATypePropdef___n_id(recv) ((parser___parser_nodes___ATypePropdef___n_id_t)CALL((recv), (SFT_parser___parser_nodes[456] + 4)))
-#define CALL_parser___parser_nodes___ATypePropdef___n_type(recv) ((parser___parser_nodes___ATypePropdef___n_type_t)CALL((recv), (SFT_parser___parser_nodes[456] + 5)))
-#define ID_parser___parser_nodes___AAble (SFT_parser___parser_nodes[457])
-#define COLOR_parser___parser_nodes___AAble (SFT_parser___parser_nodes[458])
-#define ATTR_parser___parser_nodes___AAble____n_visibility(recv) ATTR(recv, (SFT_parser___parser_nodes[459] + 0))
-#define ATTR_parser___parser_nodes___AAble____n_kwredef(recv) ATTR(recv, (SFT_parser___parser_nodes[459] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___AAble (SFT_parser___parser_nodes[460] + 0)
-#define CALL_parser___parser_nodes___AAble___n_visibility(recv) ((parser___parser_nodes___AAble___n_visibility_t)CALL((recv), (SFT_parser___parser_nodes[460] + 1)))
-#define CALL_parser___parser_nodes___AAble___n_kwredef(recv) ((parser___parser_nodes___AAble___n_kwredef_t)CALL((recv), (SFT_parser___parser_nodes[460] + 2)))
-#define ID_parser___parser_nodes___AReadAble (SFT_parser___parser_nodes[461])
-#define COLOR_parser___parser_nodes___AReadAble (SFT_parser___parser_nodes[462])
-#define ATTR_parser___parser_nodes___AReadAble____n_kwreadable(recv) ATTR(recv, (SFT_parser___parser_nodes[463] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AReadAble (SFT_parser___parser_nodes[464] + 0)
-#define CALL_parser___parser_nodes___AReadAble___n_kwreadable(recv) ((parser___parser_nodes___AReadAble___n_kwreadable_t)CALL((recv), (SFT_parser___parser_nodes[464] + 1)))
-#define ID_parser___parser_nodes___AWriteAble (SFT_parser___parser_nodes[465])
-#define COLOR_parser___parser_nodes___AWriteAble (SFT_parser___parser_nodes[466])
-#define ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(recv) ATTR(recv, (SFT_parser___parser_nodes[467] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AWriteAble (SFT_parser___parser_nodes[468] + 0)
-#define CALL_parser___parser_nodes___AWriteAble___n_kwwritable(recv) ((parser___parser_nodes___AWriteAble___n_kwwritable_t)CALL((recv), (SFT_parser___parser_nodes[468] + 1)))
-#define ID_parser___parser_nodes___AMethid (SFT_parser___parser_nodes[469])
-#define COLOR_parser___parser_nodes___AMethid (SFT_parser___parser_nodes[470])
-#define INIT_TABLE_POS_parser___parser_nodes___AMethid (SFT_parser___parser_nodes[471] + 0)
-#define ID_parser___parser_nodes___AIdMethid (SFT_parser___parser_nodes[472])
-#define COLOR_parser___parser_nodes___AIdMethid (SFT_parser___parser_nodes[473])
-#define ATTR_parser___parser_nodes___AIdMethid____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[474] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AIdMethid (SFT_parser___parser_nodes[475] + 0)
-#define CALL_parser___parser_nodes___AIdMethid___n_id(recv) ((parser___parser_nodes___AIdMethid___n_id_t)CALL((recv), (SFT_parser___parser_nodes[475] + 1)))
-#define ID_parser___parser_nodes___APlusMethid (SFT_parser___parser_nodes[476])
-#define COLOR_parser___parser_nodes___APlusMethid (SFT_parser___parser_nodes[477])
-#define ATTR_parser___parser_nodes___APlusMethid____n_plus(recv) ATTR(recv, (SFT_parser___parser_nodes[478] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___APlusMethid (SFT_parser___parser_nodes[479] + 0)
-#define CALL_parser___parser_nodes___APlusMethid___n_plus(recv) ((parser___parser_nodes___APlusMethid___n_plus_t)CALL((recv), (SFT_parser___parser_nodes[479] + 1)))
-#define ID_parser___parser_nodes___AMinusMethid (SFT_parser___parser_nodes[480])
-#define COLOR_parser___parser_nodes___AMinusMethid (SFT_parser___parser_nodes[481])
-#define ATTR_parser___parser_nodes___AMinusMethid____n_minus(recv) ATTR(recv, (SFT_parser___parser_nodes[482] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AMinusMethid (SFT_parser___parser_nodes[483] + 0)
-#define CALL_parser___parser_nodes___AMinusMethid___n_minus(recv) ((parser___parser_nodes___AMinusMethid___n_minus_t)CALL((recv), (SFT_parser___parser_nodes[483] + 1)))
-#define ID_parser___parser_nodes___AStarMethid (SFT_parser___parser_nodes[484])
-#define COLOR_parser___parser_nodes___AStarMethid (SFT_parser___parser_nodes[485])
-#define ATTR_parser___parser_nodes___AStarMethid____n_star(recv) ATTR(recv, (SFT_parser___parser_nodes[486] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AStarMethid (SFT_parser___parser_nodes[487] + 0)
-#define CALL_parser___parser_nodes___AStarMethid___n_star(recv) ((parser___parser_nodes___AStarMethid___n_star_t)CALL((recv), (SFT_parser___parser_nodes[487] + 1)))
-#define ID_parser___parser_nodes___ASlashMethid (SFT_parser___parser_nodes[488])
-#define COLOR_parser___parser_nodes___ASlashMethid (SFT_parser___parser_nodes[489])
-#define ATTR_parser___parser_nodes___ASlashMethid____n_slash(recv) ATTR(recv, (SFT_parser___parser_nodes[490] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ASlashMethid (SFT_parser___parser_nodes[491] + 0)
-#define CALL_parser___parser_nodes___ASlashMethid___n_slash(recv) ((parser___parser_nodes___ASlashMethid___n_slash_t)CALL((recv), (SFT_parser___parser_nodes[491] + 1)))
-#define ID_parser___parser_nodes___APercentMethid (SFT_parser___parser_nodes[492])
-#define COLOR_parser___parser_nodes___APercentMethid (SFT_parser___parser_nodes[493])
-#define ATTR_parser___parser_nodes___APercentMethid____n_percent(recv) ATTR(recv, (SFT_parser___parser_nodes[494] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___APercentMethid (SFT_parser___parser_nodes[495] + 0)
-#define CALL_parser___parser_nodes___APercentMethid___n_percent(recv) ((parser___parser_nodes___APercentMethid___n_percent_t)CALL((recv), (SFT_parser___parser_nodes[495] + 1)))
-#define ID_parser___parser_nodes___AEqMethid (SFT_parser___parser_nodes[496])
-#define COLOR_parser___parser_nodes___AEqMethid (SFT_parser___parser_nodes[497])
-#define ATTR_parser___parser_nodes___AEqMethid____n_eq(recv) ATTR(recv, (SFT_parser___parser_nodes[498] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AEqMethid (SFT_parser___parser_nodes[499] + 0)
-#define CALL_parser___parser_nodes___AEqMethid___n_eq(recv) ((parser___parser_nodes___AEqMethid___n_eq_t)CALL((recv), (SFT_parser___parser_nodes[499] + 1)))
-#define ID_parser___parser_nodes___ANeMethid (SFT_parser___parser_nodes[500])
-#define COLOR_parser___parser_nodes___ANeMethid (SFT_parser___parser_nodes[501])
-#define ATTR_parser___parser_nodes___ANeMethid____n_ne(recv) ATTR(recv, (SFT_parser___parser_nodes[502] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ANeMethid (SFT_parser___parser_nodes[503] + 0)
-#define CALL_parser___parser_nodes___ANeMethid___n_ne(recv) ((parser___parser_nodes___ANeMethid___n_ne_t)CALL((recv), (SFT_parser___parser_nodes[503] + 1)))
-#define ID_parser___parser_nodes___ALeMethid (SFT_parser___parser_nodes[504])
-#define COLOR_parser___parser_nodes___ALeMethid (SFT_parser___parser_nodes[505])
-#define ATTR_parser___parser_nodes___ALeMethid____n_le(recv) ATTR(recv, (SFT_parser___parser_nodes[506] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ALeMethid (SFT_parser___parser_nodes[507] + 0)
-#define CALL_parser___parser_nodes___ALeMethid___n_le(recv) ((parser___parser_nodes___ALeMethid___n_le_t)CALL((recv), (SFT_parser___parser_nodes[507] + 1)))
-#define ID_parser___parser_nodes___AGeMethid (SFT_parser___parser_nodes[508])
-#define COLOR_parser___parser_nodes___AGeMethid (SFT_parser___parser_nodes[509])
-#define ATTR_parser___parser_nodes___AGeMethid____n_ge(recv) ATTR(recv, (SFT_parser___parser_nodes[510] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AGeMethid (SFT_parser___parser_nodes[511] + 0)
-#define CALL_parser___parser_nodes___AGeMethid___n_ge(recv) ((parser___parser_nodes___AGeMethid___n_ge_t)CALL((recv), (SFT_parser___parser_nodes[511] + 1)))
-#define ID_parser___parser_nodes___ALtMethid (SFT_parser___parser_nodes[512])
-#define COLOR_parser___parser_nodes___ALtMethid (SFT_parser___parser_nodes[513])
-#define ATTR_parser___parser_nodes___ALtMethid____n_lt(recv) ATTR(recv, (SFT_parser___parser_nodes[514] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ALtMethid (SFT_parser___parser_nodes[515] + 0)
-#define CALL_parser___parser_nodes___ALtMethid___n_lt(recv) ((parser___parser_nodes___ALtMethid___n_lt_t)CALL((recv), (SFT_parser___parser_nodes[515] + 1)))
-#define ID_parser___parser_nodes___AGtMethid (SFT_parser___parser_nodes[516])
-#define COLOR_parser___parser_nodes___AGtMethid (SFT_parser___parser_nodes[517])
-#define ATTR_parser___parser_nodes___AGtMethid____n_gt(recv) ATTR(recv, (SFT_parser___parser_nodes[518] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AGtMethid (SFT_parser___parser_nodes[519] + 0)
-#define CALL_parser___parser_nodes___AGtMethid___n_gt(recv) ((parser___parser_nodes___AGtMethid___n_gt_t)CALL((recv), (SFT_parser___parser_nodes[519] + 1)))
-#define ID_parser___parser_nodes___ALlMethid (SFT_parser___parser_nodes[520])
-#define COLOR_parser___parser_nodes___ALlMethid (SFT_parser___parser_nodes[521])
-#define ATTR_parser___parser_nodes___ALlMethid____n_ll(recv) ATTR(recv, (SFT_parser___parser_nodes[522] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ALlMethid (SFT_parser___parser_nodes[523] + 0)
-#define CALL_parser___parser_nodes___ALlMethid___n_ll(recv) ((parser___parser_nodes___ALlMethid___n_ll_t)CALL((recv), (SFT_parser___parser_nodes[523] + 1)))
-#define CALL_parser___parser_nodes___ALlMethid___n_ll__eq(recv) ((parser___parser_nodes___ALlMethid___n_ll__eq_t)CALL((recv), (SFT_parser___parser_nodes[523] + 2)))
-#define ID_parser___parser_nodes___AGgMethid (SFT_parser___parser_nodes[524])
-#define COLOR_parser___parser_nodes___AGgMethid (SFT_parser___parser_nodes[525])
-#define ATTR_parser___parser_nodes___AGgMethid____n_gg(recv) ATTR(recv, (SFT_parser___parser_nodes[526] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AGgMethid (SFT_parser___parser_nodes[527] + 0)
-#define CALL_parser___parser_nodes___AGgMethid___n_gg(recv) ((parser___parser_nodes___AGgMethid___n_gg_t)CALL((recv), (SFT_parser___parser_nodes[527] + 1)))
-#define CALL_parser___parser_nodes___AGgMethid___n_gg__eq(recv) ((parser___parser_nodes___AGgMethid___n_gg__eq_t)CALL((recv), (SFT_parser___parser_nodes[527] + 2)))
-#define ID_parser___parser_nodes___ABraMethid (SFT_parser___parser_nodes[528])
-#define COLOR_parser___parser_nodes___ABraMethid (SFT_parser___parser_nodes[529])
-#define ATTR_parser___parser_nodes___ABraMethid____n_obra(recv) ATTR(recv, (SFT_parser___parser_nodes[530] + 0))
-#define ATTR_parser___parser_nodes___ABraMethid____n_cbra(recv) ATTR(recv, (SFT_parser___parser_nodes[530] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___ABraMethid (SFT_parser___parser_nodes[531] + 0)
-#define CALL_parser___parser_nodes___ABraMethid___n_obra(recv) ((parser___parser_nodes___ABraMethid___n_obra_t)CALL((recv), (SFT_parser___parser_nodes[531] + 1)))
-#define CALL_parser___parser_nodes___ABraMethid___n_cbra(recv) ((parser___parser_nodes___ABraMethid___n_cbra_t)CALL((recv), (SFT_parser___parser_nodes[531] + 2)))
-#define ID_parser___parser_nodes___AStarshipMethid (SFT_parser___parser_nodes[532])
-#define COLOR_parser___parser_nodes___AStarshipMethid (SFT_parser___parser_nodes[533])
-#define ATTR_parser___parser_nodes___AStarshipMethid____n_starship(recv) ATTR(recv, (SFT_parser___parser_nodes[534] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AStarshipMethid (SFT_parser___parser_nodes[535] + 0)
-#define CALL_parser___parser_nodes___AStarshipMethid___n_starship(recv) ((parser___parser_nodes___AStarshipMethid___n_starship_t)CALL((recv), (SFT_parser___parser_nodes[535] + 1)))
-#define ID_parser___parser_nodes___AAssignMethid (SFT_parser___parser_nodes[536])
-#define COLOR_parser___parser_nodes___AAssignMethid (SFT_parser___parser_nodes[537])
-#define ATTR_parser___parser_nodes___AAssignMethid____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[538] + 0))
-#define ATTR_parser___parser_nodes___AAssignMethid____n_assign(recv) ATTR(recv, (SFT_parser___parser_nodes[538] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___AAssignMethid (SFT_parser___parser_nodes[539] + 0)
-#define CALL_parser___parser_nodes___AAssignMethid___n_id(recv) ((parser___parser_nodes___AAssignMethid___n_id_t)CALL((recv), (SFT_parser___parser_nodes[539] + 1)))
-#define CALL_parser___parser_nodes___AAssignMethid___n_assign(recv) ((parser___parser_nodes___AAssignMethid___n_assign_t)CALL((recv), (SFT_parser___parser_nodes[539] + 2)))
-#define ID_parser___parser_nodes___ABraassignMethid (SFT_parser___parser_nodes[540])
-#define COLOR_parser___parser_nodes___ABraassignMethid (SFT_parser___parser_nodes[541])
-#define ATTR_parser___parser_nodes___ABraassignMethid____n_obra(recv) ATTR(recv, (SFT_parser___parser_nodes[542] + 0))
-#define ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(recv) ATTR(recv, (SFT_parser___parser_nodes[542] + 1))
-#define ATTR_parser___parser_nodes___ABraassignMethid____n_assign(recv) ATTR(recv, (SFT_parser___parser_nodes[542] + 2))
-#define INIT_TABLE_POS_parser___parser_nodes___ABraassignMethid (SFT_parser___parser_nodes[543] + 0)
-#define CALL_parser___parser_nodes___ABraassignMethid___n_obra(recv) ((parser___parser_nodes___ABraassignMethid___n_obra_t)CALL((recv), (SFT_parser___parser_nodes[543] + 1)))
-#define CALL_parser___parser_nodes___ABraassignMethid___n_cbra(recv) ((parser___parser_nodes___ABraassignMethid___n_cbra_t)CALL((recv), (SFT_parser___parser_nodes[543] + 2)))
-#define CALL_parser___parser_nodes___ABraassignMethid___n_assign(recv) ((parser___parser_nodes___ABraassignMethid___n_assign_t)CALL((recv), (SFT_parser___parser_nodes[543] + 3)))
-#define ID_parser___parser_nodes___ASignature (SFT_parser___parser_nodes[544])
-#define COLOR_parser___parser_nodes___ASignature (SFT_parser___parser_nodes[545])
-#define ATTR_parser___parser_nodes___ASignature____n_params(recv) ATTR(recv, (SFT_parser___parser_nodes[546] + 0))
-#define ATTR_parser___parser_nodes___ASignature____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[546] + 1))
-#define ATTR_parser___parser_nodes___ASignature____n_closure_decls(recv) ATTR(recv, (SFT_parser___parser_nodes[546] + 2))
-#define INIT_TABLE_POS_parser___parser_nodes___ASignature (SFT_parser___parser_nodes[547] + 0)
-#define CALL_parser___parser_nodes___ASignature___n_params(recv) ((parser___parser_nodes___ASignature___n_params_t)CALL((recv), (SFT_parser___parser_nodes[547] + 1)))
-#define CALL_parser___parser_nodes___ASignature___n_type(recv) ((parser___parser_nodes___ASignature___n_type_t)CALL((recv), (SFT_parser___parser_nodes[547] + 2)))
-#define CALL_parser___parser_nodes___ASignature___n_closure_decls(recv) ((parser___parser_nodes___ASignature___n_closure_decls_t)CALL((recv), (SFT_parser___parser_nodes[547] + 3)))
-#define ID_parser___parser_nodes___AParam (SFT_parser___parser_nodes[548])
-#define COLOR_parser___parser_nodes___AParam (SFT_parser___parser_nodes[549])
-#define ATTR_parser___parser_nodes___AParam____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[550] + 0))
-#define ATTR_parser___parser_nodes___AParam____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[550] + 1))
-#define ATTR_parser___parser_nodes___AParam____n_dotdotdot(recv) ATTR(recv, (SFT_parser___parser_nodes[550] + 2))
-#define INIT_TABLE_POS_parser___parser_nodes___AParam (SFT_parser___parser_nodes[551] + 0)
-#define CALL_parser___parser_nodes___AParam___n_id(recv) ((parser___parser_nodes___AParam___n_id_t)CALL((recv), (SFT_parser___parser_nodes[551] + 1)))
-#define CALL_parser___parser_nodes___AParam___n_type(recv) ((parser___parser_nodes___AParam___n_type_t)CALL((recv), (SFT_parser___parser_nodes[551] + 2)))
-#define CALL_parser___parser_nodes___AParam___n_dotdotdot(recv) ((parser___parser_nodes___AParam___n_dotdotdot_t)CALL((recv), (SFT_parser___parser_nodes[551] + 3)))
-#define ID_parser___parser_nodes___AClosureDecl (SFT_parser___parser_nodes[552])
-#define COLOR_parser___parser_nodes___AClosureDecl (SFT_parser___parser_nodes[553])
-#define ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(recv) ATTR(recv, (SFT_parser___parser_nodes[554] + 0))
-#define ATTR_parser___parser_nodes___AClosureDecl____n_bang(recv) ATTR(recv, (SFT_parser___parser_nodes[554] + 1))
-#define ATTR_parser___parser_nodes___AClosureDecl____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[554] + 2))
-#define ATTR_parser___parser_nodes___AClosureDecl____n_signature(recv) ATTR(recv, (SFT_parser___parser_nodes[554] + 3))
-#define ATTR_parser___parser_nodes___AClosureDecl____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[554] + 4))
-#define INIT_TABLE_POS_parser___parser_nodes___AClosureDecl (SFT_parser___parser_nodes[555] + 0)
-#define CALL_parser___parser_nodes___AClosureDecl___n_kwbreak(recv) ((parser___parser_nodes___AClosureDecl___n_kwbreak_t)CALL((recv), (SFT_parser___parser_nodes[555] + 1)))
-#define CALL_parser___parser_nodes___AClosureDecl___n_bang(recv) ((parser___parser_nodes___AClosureDecl___n_bang_t)CALL((recv), (SFT_parser___parser_nodes[555] + 2)))
-#define CALL_parser___parser_nodes___AClosureDecl___n_id(recv) ((parser___parser_nodes___AClosureDecl___n_id_t)CALL((recv), (SFT_parser___parser_nodes[555] + 3)))
-#define CALL_parser___parser_nodes___AClosureDecl___n_signature(recv) ((parser___parser_nodes___AClosureDecl___n_signature_t)CALL((recv), (SFT_parser___parser_nodes[555] + 4)))
-#define CALL_parser___parser_nodes___AClosureDecl___n_expr(recv) ((parser___parser_nodes___AClosureDecl___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[555] + 5)))
-#define ID_parser___parser_nodes___AType (SFT_parser___parser_nodes[556])
-#define COLOR_parser___parser_nodes___AType (SFT_parser___parser_nodes[557])
-#define ATTR_parser___parser_nodes___AType____n_kwnullable(recv) ATTR(recv, (SFT_parser___parser_nodes[558] + 0))
-#define ATTR_parser___parser_nodes___AType____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[558] + 1))
-#define ATTR_parser___parser_nodes___AType____n_types(recv) ATTR(recv, (SFT_parser___parser_nodes[558] + 2))
-#define INIT_TABLE_POS_parser___parser_nodes___AType (SFT_parser___parser_nodes[559] + 0)
-#define CALL_parser___parser_nodes___AType___n_kwnullable(recv) ((parser___parser_nodes___AType___n_kwnullable_t)CALL((recv), (SFT_parser___parser_nodes[559] + 1)))
-#define CALL_parser___parser_nodes___AType___n_id(recv) ((parser___parser_nodes___AType___n_id_t)CALL((recv), (SFT_parser___parser_nodes[559] + 2)))
-#define CALL_parser___parser_nodes___AType___n_types(recv) ((parser___parser_nodes___AType___n_types_t)CALL((recv), (SFT_parser___parser_nodes[559] + 3)))
-#define ID_parser___parser_nodes___ALabel (SFT_parser___parser_nodes[560])
-#define COLOR_parser___parser_nodes___ALabel (SFT_parser___parser_nodes[561])
-#define ATTR_parser___parser_nodes___ALabel____n_kwlabel(recv) ATTR(recv, (SFT_parser___parser_nodes[562] + 0))
-#define ATTR_parser___parser_nodes___ALabel____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[562] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___ALabel (SFT_parser___parser_nodes[563] + 0)
-#define CALL_parser___parser_nodes___ALabel___n_kwlabel(recv) ((parser___parser_nodes___ALabel___n_kwlabel_t)CALL((recv), (SFT_parser___parser_nodes[563] + 1)))
-#define CALL_parser___parser_nodes___ALabel___n_id(recv) ((parser___parser_nodes___ALabel___n_id_t)CALL((recv), (SFT_parser___parser_nodes[563] + 2)))
-#define ID_parser___parser_nodes___AExpr (SFT_parser___parser_nodes[564])
-#define COLOR_parser___parser_nodes___AExpr (SFT_parser___parser_nodes[565])
-#define INIT_TABLE_POS_parser___parser_nodes___AExpr (SFT_parser___parser_nodes[566] + 0)
-#define ID_parser___parser_nodes___ABlockExpr (SFT_parser___parser_nodes[567])
-#define COLOR_parser___parser_nodes___ABlockExpr (SFT_parser___parser_nodes[568])
-#define ATTR_parser___parser_nodes___ABlockExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[569] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ABlockExpr (SFT_parser___parser_nodes[570] + 0)
-#define CALL_parser___parser_nodes___ABlockExpr___n_expr(recv) ((parser___parser_nodes___ABlockExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[570] + 1)))
-#define ID_parser___parser_nodes___AVardeclExpr (SFT_parser___parser_nodes[571])
-#define COLOR_parser___parser_nodes___AVardeclExpr (SFT_parser___parser_nodes[572])
-#define ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(recv) ATTR(recv, (SFT_parser___parser_nodes[573] + 0))
-#define ATTR_parser___parser_nodes___AVardeclExpr____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[573] + 1))
-#define ATTR_parser___parser_nodes___AVardeclExpr____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[573] + 2))
-#define ATTR_parser___parser_nodes___AVardeclExpr____n_assign(recv) ATTR(recv, (SFT_parser___parser_nodes[573] + 3))
-#define ATTR_parser___parser_nodes___AVardeclExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[573] + 4))
-#define INIT_TABLE_POS_parser___parser_nodes___AVardeclExpr (SFT_parser___parser_nodes[574] + 0)
-#define CALL_parser___parser_nodes___AVardeclExpr___n_kwvar(recv) ((parser___parser_nodes___AVardeclExpr___n_kwvar_t)CALL((recv), (SFT_parser___parser_nodes[574] + 1)))
-#define CALL_parser___parser_nodes___AVardeclExpr___n_id(recv) ((parser___parser_nodes___AVardeclExpr___n_id_t)CALL((recv), (SFT_parser___parser_nodes[574] + 2)))
-#define CALL_parser___parser_nodes___AVardeclExpr___n_type(recv) ((parser___parser_nodes___AVardeclExpr___n_type_t)CALL((recv), (SFT_parser___parser_nodes[574] + 3)))
-#define CALL_parser___parser_nodes___AVardeclExpr___n_assign(recv) ((parser___parser_nodes___AVardeclExpr___n_assign_t)CALL((recv), (SFT_parser___parser_nodes[574] + 4)))
-#define CALL_parser___parser_nodes___AVardeclExpr___n_expr(recv) ((parser___parser_nodes___AVardeclExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[574] + 5)))
-#define ID_parser___parser_nodes___AReturnExpr (SFT_parser___parser_nodes[575])
-#define COLOR_parser___parser_nodes___AReturnExpr (SFT_parser___parser_nodes[576])
-#define ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(recv) ATTR(recv, (SFT_parser___parser_nodes[577] + 0))
-#define ATTR_parser___parser_nodes___AReturnExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[577] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___AReturnExpr (SFT_parser___parser_nodes[578] + 0)
-#define CALL_parser___parser_nodes___AReturnExpr___n_kwreturn(recv) ((parser___parser_nodes___AReturnExpr___n_kwreturn_t)CALL((recv), (SFT_parser___parser_nodes[578] + 1)))
-#define CALL_parser___parser_nodes___AReturnExpr___n_expr(recv) ((parser___parser_nodes___AReturnExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[578] + 2)))
-#define ID_parser___parser_nodes___ALabelable (SFT_parser___parser_nodes[579])
-#define COLOR_parser___parser_nodes___ALabelable (SFT_parser___parser_nodes[580])
-#define ATTR_parser___parser_nodes___ALabelable____n_label(recv) ATTR(recv, (SFT_parser___parser_nodes[581] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ALabelable (SFT_parser___parser_nodes[582] + 0)
-#define CALL_parser___parser_nodes___ALabelable___n_label(recv) ((parser___parser_nodes___ALabelable___n_label_t)CALL((recv), (SFT_parser___parser_nodes[582] + 1)))
-#define ID_parser___parser_nodes___ABreakExpr (SFT_parser___parser_nodes[583])
-#define COLOR_parser___parser_nodes___ABreakExpr (SFT_parser___parser_nodes[584])
-#define ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(recv) ATTR(recv, (SFT_parser___parser_nodes[585] + 0))
-#define ATTR_parser___parser_nodes___ABreakExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[585] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___ABreakExpr (SFT_parser___parser_nodes[586] + 0)
-#define CALL_parser___parser_nodes___ABreakExpr___n_kwbreak(recv) ((parser___parser_nodes___ABreakExpr___n_kwbreak_t)CALL((recv), (SFT_parser___parser_nodes[586] + 1)))
-#define CALL_parser___parser_nodes___ABreakExpr___n_expr(recv) ((parser___parser_nodes___ABreakExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[586] + 2)))
-#define ID_parser___parser_nodes___AAbortExpr (SFT_parser___parser_nodes[587])
-#define COLOR_parser___parser_nodes___AAbortExpr (SFT_parser___parser_nodes[588])
-#define ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(recv) ATTR(recv, (SFT_parser___parser_nodes[589] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AAbortExpr (SFT_parser___parser_nodes[590] + 0)
-#define CALL_parser___parser_nodes___AAbortExpr___n_kwabort(recv) ((parser___parser_nodes___AAbortExpr___n_kwabort_t)CALL((recv), (SFT_parser___parser_nodes[590] + 1)))
-#define ID_parser___parser_nodes___AContinueExpr (SFT_parser___parser_nodes[591])
-#define COLOR_parser___parser_nodes___AContinueExpr (SFT_parser___parser_nodes[592])
-#define ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(recv) ATTR(recv, (SFT_parser___parser_nodes[593] + 0))
-#define ATTR_parser___parser_nodes___AContinueExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[593] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___AContinueExpr (SFT_parser___parser_nodes[594] + 0)
-#define CALL_parser___parser_nodes___AContinueExpr___n_kwcontinue(recv) ((parser___parser_nodes___AContinueExpr___n_kwcontinue_t)CALL((recv), (SFT_parser___parser_nodes[594] + 1)))
-#define CALL_parser___parser_nodes___AContinueExpr___n_expr(recv) ((parser___parser_nodes___AContinueExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[594] + 2)))
-#define ID_parser___parser_nodes___ADoExpr (SFT_parser___parser_nodes[595])
-#define COLOR_parser___parser_nodes___ADoExpr (SFT_parser___parser_nodes[596])
-#define ATTR_parser___parser_nodes___ADoExpr____n_kwdo(recv) ATTR(recv, (SFT_parser___parser_nodes[597] + 0))
-#define ATTR_parser___parser_nodes___ADoExpr____n_block(recv) ATTR(recv, (SFT_parser___parser_nodes[597] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___ADoExpr (SFT_parser___parser_nodes[598] + 0)
-#define CALL_parser___parser_nodes___ADoExpr___n_kwdo(recv) ((parser___parser_nodes___ADoExpr___n_kwdo_t)CALL((recv), (SFT_parser___parser_nodes[598] + 1)))
-#define CALL_parser___parser_nodes___ADoExpr___n_block(recv) ((parser___parser_nodes___ADoExpr___n_block_t)CALL((recv), (SFT_parser___parser_nodes[598] + 2)))
-#define ID_parser___parser_nodes___AIfExpr (SFT_parser___parser_nodes[599])
-#define COLOR_parser___parser_nodes___AIfExpr (SFT_parser___parser_nodes[600])
-#define ATTR_parser___parser_nodes___AIfExpr____n_kwif(recv) ATTR(recv, (SFT_parser___parser_nodes[601] + 0))
-#define ATTR_parser___parser_nodes___AIfExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[601] + 1))
-#define ATTR_parser___parser_nodes___AIfExpr____n_then(recv) ATTR(recv, (SFT_parser___parser_nodes[601] + 2))
-#define ATTR_parser___parser_nodes___AIfExpr____n_else(recv) ATTR(recv, (SFT_parser___parser_nodes[601] + 3))
-#define INIT_TABLE_POS_parser___parser_nodes___AIfExpr (SFT_parser___parser_nodes[602] + 0)
-#define CALL_parser___parser_nodes___AIfExpr___n_kwif(recv) ((parser___parser_nodes___AIfExpr___n_kwif_t)CALL((recv), (SFT_parser___parser_nodes[602] + 1)))
-#define CALL_parser___parser_nodes___AIfExpr___n_expr(recv) ((parser___parser_nodes___AIfExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[602] + 2)))
-#define CALL_parser___parser_nodes___AIfExpr___n_then(recv) ((parser___parser_nodes___AIfExpr___n_then_t)CALL((recv), (SFT_parser___parser_nodes[602] + 3)))
-#define CALL_parser___parser_nodes___AIfExpr___n_else(recv) ((parser___parser_nodes___AIfExpr___n_else_t)CALL((recv), (SFT_parser___parser_nodes[602] + 4)))
-#define ID_parser___parser_nodes___AIfexprExpr (SFT_parser___parser_nodes[603])
-#define COLOR_parser___parser_nodes___AIfexprExpr (SFT_parser___parser_nodes[604])
-#define ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(recv) ATTR(recv, (SFT_parser___parser_nodes[605] + 0))
-#define ATTR_parser___parser_nodes___AIfexprExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[605] + 1))
-#define ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(recv) ATTR(recv, (SFT_parser___parser_nodes[605] + 2))
-#define ATTR_parser___parser_nodes___AIfexprExpr____n_then(recv) ATTR(recv, (SFT_parser___parser_nodes[605] + 3))
-#define ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(recv) ATTR(recv, (SFT_parser___parser_nodes[605] + 4))
-#define ATTR_parser___parser_nodes___AIfexprExpr____n_else(recv) ATTR(recv, (SFT_parser___parser_nodes[605] + 5))
-#define INIT_TABLE_POS_parser___parser_nodes___AIfexprExpr (SFT_parser___parser_nodes[606] + 0)
-#define CALL_parser___parser_nodes___AIfexprExpr___n_kwif(recv) ((parser___parser_nodes___AIfexprExpr___n_kwif_t)CALL((recv), (SFT_parser___parser_nodes[606] + 1)))
-#define CALL_parser___parser_nodes___AIfexprExpr___n_expr(recv) ((parser___parser_nodes___AIfexprExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[606] + 2)))
-#define CALL_parser___parser_nodes___AIfexprExpr___n_kwthen(recv) ((parser___parser_nodes___AIfexprExpr___n_kwthen_t)CALL((recv), (SFT_parser___parser_nodes[606] + 3)))
-#define CALL_parser___parser_nodes___AIfexprExpr___n_then(recv) ((parser___parser_nodes___AIfexprExpr___n_then_t)CALL((recv), (SFT_parser___parser_nodes[606] + 4)))
-#define CALL_parser___parser_nodes___AIfexprExpr___n_kwelse(recv) ((parser___parser_nodes___AIfexprExpr___n_kwelse_t)CALL((recv), (SFT_parser___parser_nodes[606] + 5)))
-#define CALL_parser___parser_nodes___AIfexprExpr___n_else(recv) ((parser___parser_nodes___AIfexprExpr___n_else_t)CALL((recv), (SFT_parser___parser_nodes[606] + 6)))
-#define ID_parser___parser_nodes___AWhileExpr (SFT_parser___parser_nodes[607])
-#define COLOR_parser___parser_nodes___AWhileExpr (SFT_parser___parser_nodes[608])
-#define ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(recv) ATTR(recv, (SFT_parser___parser_nodes[609] + 0))
-#define ATTR_parser___parser_nodes___AWhileExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[609] + 1))
-#define ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(recv) ATTR(recv, (SFT_parser___parser_nodes[609] + 2))
-#define ATTR_parser___parser_nodes___AWhileExpr____n_block(recv) ATTR(recv, (SFT_parser___parser_nodes[609] + 3))
-#define INIT_TABLE_POS_parser___parser_nodes___AWhileExpr (SFT_parser___parser_nodes[610] + 0)
-#define CALL_parser___parser_nodes___AWhileExpr___n_kwwhile(recv) ((parser___parser_nodes___AWhileExpr___n_kwwhile_t)CALL((recv), (SFT_parser___parser_nodes[610] + 1)))
-#define CALL_parser___parser_nodes___AWhileExpr___n_expr(recv) ((parser___parser_nodes___AWhileExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[610] + 2)))
-#define CALL_parser___parser_nodes___AWhileExpr___n_kwdo(recv) ((parser___parser_nodes___AWhileExpr___n_kwdo_t)CALL((recv), (SFT_parser___parser_nodes[610] + 3)))
-#define CALL_parser___parser_nodes___AWhileExpr___n_block(recv) ((parser___parser_nodes___AWhileExpr___n_block_t)CALL((recv), (SFT_parser___parser_nodes[610] + 4)))
-#define ID_parser___parser_nodes___ALoopExpr (SFT_parser___parser_nodes[611])
-#define COLOR_parser___parser_nodes___ALoopExpr (SFT_parser___parser_nodes[612])
-#define ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(recv) ATTR(recv, (SFT_parser___parser_nodes[613] + 0))
-#define ATTR_parser___parser_nodes___ALoopExpr____n_block(recv) ATTR(recv, (SFT_parser___parser_nodes[613] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___ALoopExpr (SFT_parser___parser_nodes[614] + 0)
-#define CALL_parser___parser_nodes___ALoopExpr___n_kwloop(recv) ((parser___parser_nodes___ALoopExpr___n_kwloop_t)CALL((recv), (SFT_parser___parser_nodes[614] + 1)))
-#define CALL_parser___parser_nodes___ALoopExpr___n_block(recv) ((parser___parser_nodes___ALoopExpr___n_block_t)CALL((recv), (SFT_parser___parser_nodes[614] + 2)))
-#define ID_parser___parser_nodes___AForExpr (SFT_parser___parser_nodes[615])
-#define COLOR_parser___parser_nodes___AForExpr (SFT_parser___parser_nodes[616])
-#define ATTR_parser___parser_nodes___AForExpr____n_kwfor(recv) ATTR(recv, (SFT_parser___parser_nodes[617] + 0))
-#define ATTR_parser___parser_nodes___AForExpr____n_ids(recv) ATTR(recv, (SFT_parser___parser_nodes[617] + 1))
-#define ATTR_parser___parser_nodes___AForExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[617] + 2))
-#define ATTR_parser___parser_nodes___AForExpr____n_kwdo(recv) ATTR(recv, (SFT_parser___parser_nodes[617] + 3))
-#define ATTR_parser___parser_nodes___AForExpr____n_block(recv) ATTR(recv, (SFT_parser___parser_nodes[617] + 4))
-#define INIT_TABLE_POS_parser___parser_nodes___AForExpr (SFT_parser___parser_nodes[618] + 0)
-#define CALL_parser___parser_nodes___AForExpr___n_kwfor(recv) ((parser___parser_nodes___AForExpr___n_kwfor_t)CALL((recv), (SFT_parser___parser_nodes[618] + 1)))
-#define CALL_parser___parser_nodes___AForExpr___n_ids(recv) ((parser___parser_nodes___AForExpr___n_ids_t)CALL((recv), (SFT_parser___parser_nodes[618] + 2)))
-#define CALL_parser___parser_nodes___AForExpr___n_expr(recv) ((parser___parser_nodes___AForExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[618] + 3)))
-#define CALL_parser___parser_nodes___AForExpr___n_kwdo(recv) ((parser___parser_nodes___AForExpr___n_kwdo_t)CALL((recv), (SFT_parser___parser_nodes[618] + 4)))
-#define CALL_parser___parser_nodes___AForExpr___n_block(recv) ((parser___parser_nodes___AForExpr___n_block_t)CALL((recv), (SFT_parser___parser_nodes[618] + 5)))
-#define ID_parser___parser_nodes___AAssertExpr (SFT_parser___parser_nodes[619])
-#define COLOR_parser___parser_nodes___AAssertExpr (SFT_parser___parser_nodes[620])
-#define ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(recv) ATTR(recv, (SFT_parser___parser_nodes[621] + 0))
-#define ATTR_parser___parser_nodes___AAssertExpr____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[621] + 1))
-#define ATTR_parser___parser_nodes___AAssertExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[621] + 2))
-#define ATTR_parser___parser_nodes___AAssertExpr____n_else(recv) ATTR(recv, (SFT_parser___parser_nodes[621] + 3))
-#define INIT_TABLE_POS_parser___parser_nodes___AAssertExpr (SFT_parser___parser_nodes[622] + 0)
-#define CALL_parser___parser_nodes___AAssertExpr___n_kwassert(recv) ((parser___parser_nodes___AAssertExpr___n_kwassert_t)CALL((recv), (SFT_parser___parser_nodes[622] + 1)))
-#define CALL_parser___parser_nodes___AAssertExpr___n_id(recv) ((parser___parser_nodes___AAssertExpr___n_id_t)CALL((recv), (SFT_parser___parser_nodes[622] + 2)))
-#define CALL_parser___parser_nodes___AAssertExpr___n_expr(recv) ((parser___parser_nodes___AAssertExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[622] + 3)))
-#define CALL_parser___parser_nodes___AAssertExpr___n_else(recv) ((parser___parser_nodes___AAssertExpr___n_else_t)CALL((recv), (SFT_parser___parser_nodes[622] + 4)))
-#define ID_parser___parser_nodes___AAssignFormExpr (SFT_parser___parser_nodes[623])
-#define COLOR_parser___parser_nodes___AAssignFormExpr (SFT_parser___parser_nodes[624])
-#define ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(recv) ATTR(recv, (SFT_parser___parser_nodes[625] + 0))
-#define ATTR_parser___parser_nodes___AAssignFormExpr____n_value(recv) ATTR(recv, (SFT_parser___parser_nodes[625] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___AAssignFormExpr (SFT_parser___parser_nodes[626] + 0)
-#define CALL_parser___parser_nodes___AAssignFormExpr___n_assign(recv) ((parser___parser_nodes___AAssignFormExpr___n_assign_t)CALL((recv), (SFT_parser___parser_nodes[626] + 1)))
-#define CALL_parser___parser_nodes___AAssignFormExpr___n_value(recv) ((parser___parser_nodes___AAssignFormExpr___n_value_t)CALL((recv), (SFT_parser___parser_nodes[626] + 2)))
-#define ID_parser___parser_nodes___AReassignFormExpr (SFT_parser___parser_nodes[627])
-#define COLOR_parser___parser_nodes___AReassignFormExpr (SFT_parser___parser_nodes[628])
-#define ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(recv) ATTR(recv, (SFT_parser___parser_nodes[629] + 0))
-#define ATTR_parser___parser_nodes___AReassignFormExpr____n_value(recv) ATTR(recv, (SFT_parser___parser_nodes[629] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___AReassignFormExpr (SFT_parser___parser_nodes[630] + 0)
-#define CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(recv) ((parser___parser_nodes___AReassignFormExpr___n_assign_op_t)CALL((recv), (SFT_parser___parser_nodes[630] + 1)))
-#define CALL_parser___parser_nodes___AReassignFormExpr___n_value(recv) ((parser___parser_nodes___AReassignFormExpr___n_value_t)CALL((recv), (SFT_parser___parser_nodes[630] + 2)))
-#define ID_parser___parser_nodes___AOnceExpr (SFT_parser___parser_nodes[631])
-#define COLOR_parser___parser_nodes___AOnceExpr (SFT_parser___parser_nodes[632])
-#define ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(recv) ATTR(recv, (SFT_parser___parser_nodes[633] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AOnceExpr (SFT_parser___parser_nodes[634] + 0)
-#define CALL_parser___parser_nodes___AOnceExpr___n_kwonce(recv) ((parser___parser_nodes___AOnceExpr___n_kwonce_t)CALL((recv), (SFT_parser___parser_nodes[634] + 1)))
-#define ID_parser___parser_nodes___ASendExpr (SFT_parser___parser_nodes[635])
-#define COLOR_parser___parser_nodes___ASendExpr (SFT_parser___parser_nodes[636])
-#define ATTR_parser___parser_nodes___ASendExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[637] + 0))
-#define ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(recv) ATTR(recv, (SFT_parser___parser_nodes[637] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___ASendExpr (SFT_parser___parser_nodes[638] + 0)
-#define CALL_parser___parser_nodes___ASendExpr___n_expr(recv) ((parser___parser_nodes___ASendExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[638] + 1)))
-#define CALL_parser___parser_nodes___ASendExpr___n_closure_defs(recv) ((parser___parser_nodes___ASendExpr___n_closure_defs_t)CALL((recv), (SFT_parser___parser_nodes[638] + 2)))
-#define ID_parser___parser_nodes___ABinopExpr (SFT_parser___parser_nodes[639])
-#define COLOR_parser___parser_nodes___ABinopExpr (SFT_parser___parser_nodes[640])
-#define ATTR_parser___parser_nodes___ABinopExpr____n_expr2(recv) ATTR(recv, (SFT_parser___parser_nodes[641] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ABinopExpr (SFT_parser___parser_nodes[642] + 0)
-#define CALL_parser___parser_nodes___ABinopExpr___n_expr2(recv) ((parser___parser_nodes___ABinopExpr___n_expr2_t)CALL((recv), (SFT_parser___parser_nodes[642] + 1)))
-#define ID_parser___parser_nodes___ABoolExpr (SFT_parser___parser_nodes[643])
-#define COLOR_parser___parser_nodes___ABoolExpr (SFT_parser___parser_nodes[644])
-#define INIT_TABLE_POS_parser___parser_nodes___ABoolExpr (SFT_parser___parser_nodes[645] + 0)
-#define ID_parser___parser_nodes___AOrExpr (SFT_parser___parser_nodes[646])
-#define COLOR_parser___parser_nodes___AOrExpr (SFT_parser___parser_nodes[647])
-#define ATTR_parser___parser_nodes___AOrExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[648] + 0))
-#define ATTR_parser___parser_nodes___AOrExpr____n_expr2(recv) ATTR(recv, (SFT_parser___parser_nodes[648] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___AOrExpr (SFT_parser___parser_nodes[649] + 0)
-#define CALL_parser___parser_nodes___AOrExpr___n_expr(recv) ((parser___parser_nodes___AOrExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[649] + 1)))
-#define CALL_parser___parser_nodes___AOrExpr___n_expr2(recv) ((parser___parser_nodes___AOrExpr___n_expr2_t)CALL((recv), (SFT_parser___parser_nodes[649] + 2)))
-#define ID_parser___parser_nodes___AAndExpr (SFT_parser___parser_nodes[650])
-#define COLOR_parser___parser_nodes___AAndExpr (SFT_parser___parser_nodes[651])
-#define ATTR_parser___parser_nodes___AAndExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[652] + 0))
-#define ATTR_parser___parser_nodes___AAndExpr____n_expr2(recv) ATTR(recv, (SFT_parser___parser_nodes[652] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___AAndExpr (SFT_parser___parser_nodes[653] + 0)
-#define CALL_parser___parser_nodes___AAndExpr___n_expr(recv) ((parser___parser_nodes___AAndExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[653] + 1)))
-#define CALL_parser___parser_nodes___AAndExpr___n_expr2(recv) ((parser___parser_nodes___AAndExpr___n_expr2_t)CALL((recv), (SFT_parser___parser_nodes[653] + 2)))
-#define ID_parser___parser_nodes___AOrElseExpr (SFT_parser___parser_nodes[654])
-#define COLOR_parser___parser_nodes___AOrElseExpr (SFT_parser___parser_nodes[655])
-#define ATTR_parser___parser_nodes___AOrElseExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[656] + 0))
-#define ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(recv) ATTR(recv, (SFT_parser___parser_nodes[656] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___AOrElseExpr (SFT_parser___parser_nodes[657] + 0)
-#define CALL_parser___parser_nodes___AOrElseExpr___n_expr(recv) ((parser___parser_nodes___AOrElseExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[657] + 1)))
-#define CALL_parser___parser_nodes___AOrElseExpr___n_expr2(recv) ((parser___parser_nodes___AOrElseExpr___n_expr2_t)CALL((recv), (SFT_parser___parser_nodes[657] + 2)))
-#define ID_parser___parser_nodes___ANotExpr (SFT_parser___parser_nodes[658])
-#define COLOR_parser___parser_nodes___ANotExpr (SFT_parser___parser_nodes[659])
-#define ATTR_parser___parser_nodes___ANotExpr____n_kwnot(recv) ATTR(recv, (SFT_parser___parser_nodes[660] + 0))
-#define ATTR_parser___parser_nodes___ANotExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[660] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___ANotExpr (SFT_parser___parser_nodes[661] + 0)
-#define CALL_parser___parser_nodes___ANotExpr___n_kwnot(recv) ((parser___parser_nodes___ANotExpr___n_kwnot_t)CALL((recv), (SFT_parser___parser_nodes[661] + 1)))
-#define CALL_parser___parser_nodes___ANotExpr___n_expr(recv) ((parser___parser_nodes___ANotExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[661] + 2)))
-#define ID_parser___parser_nodes___AEqExpr (SFT_parser___parser_nodes[662])
-#define COLOR_parser___parser_nodes___AEqExpr (SFT_parser___parser_nodes[663])
-#define INIT_TABLE_POS_parser___parser_nodes___AEqExpr (SFT_parser___parser_nodes[664] + 0)
-#define ID_parser___parser_nodes___AEeExpr (SFT_parser___parser_nodes[665])
-#define COLOR_parser___parser_nodes___AEeExpr (SFT_parser___parser_nodes[666])
-#define ATTR_parser___parser_nodes___AEeExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[667] + 0))
-#define ATTR_parser___parser_nodes___AEeExpr____n_expr2(recv) ATTR(recv, (SFT_parser___parser_nodes[667] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___AEeExpr (SFT_parser___parser_nodes[668] + 0)
-#define CALL_parser___parser_nodes___AEeExpr___n_expr(recv) ((parser___parser_nodes___AEeExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[668] + 1)))
-#define CALL_parser___parser_nodes___AEeExpr___n_expr2(recv) ((parser___parser_nodes___AEeExpr___n_expr2_t)CALL((recv), (SFT_parser___parser_nodes[668] + 2)))
-#define ID_parser___parser_nodes___ANeExpr (SFT_parser___parser_nodes[669])
-#define COLOR_parser___parser_nodes___ANeExpr (SFT_parser___parser_nodes[670])
-#define INIT_TABLE_POS_parser___parser_nodes___ANeExpr (SFT_parser___parser_nodes[671] + 0)
-#define ID_parser___parser_nodes___ALtExpr (SFT_parser___parser_nodes[672])
-#define COLOR_parser___parser_nodes___ALtExpr (SFT_parser___parser_nodes[673])
-#define INIT_TABLE_POS_parser___parser_nodes___ALtExpr (SFT_parser___parser_nodes[674] + 0)
-#define ID_parser___parser_nodes___ALeExpr (SFT_parser___parser_nodes[675])
-#define COLOR_parser___parser_nodes___ALeExpr (SFT_parser___parser_nodes[676])
-#define INIT_TABLE_POS_parser___parser_nodes___ALeExpr (SFT_parser___parser_nodes[677] + 0)
-#define ID_parser___parser_nodes___ALlExpr (SFT_parser___parser_nodes[678])
-#define COLOR_parser___parser_nodes___ALlExpr (SFT_parser___parser_nodes[679])
-#define INIT_TABLE_POS_parser___parser_nodes___ALlExpr (SFT_parser___parser_nodes[680] + 0)
-#define ID_parser___parser_nodes___AGtExpr (SFT_parser___parser_nodes[681])
-#define COLOR_parser___parser_nodes___AGtExpr (SFT_parser___parser_nodes[682])
-#define INIT_TABLE_POS_parser___parser_nodes___AGtExpr (SFT_parser___parser_nodes[683] + 0)
-#define ID_parser___parser_nodes___AGeExpr (SFT_parser___parser_nodes[684])
-#define COLOR_parser___parser_nodes___AGeExpr (SFT_parser___parser_nodes[685])
-#define INIT_TABLE_POS_parser___parser_nodes___AGeExpr (SFT_parser___parser_nodes[686] + 0)
-#define ID_parser___parser_nodes___AGgExpr (SFT_parser___parser_nodes[687])
-#define COLOR_parser___parser_nodes___AGgExpr (SFT_parser___parser_nodes[688])
-#define INIT_TABLE_POS_parser___parser_nodes___AGgExpr (SFT_parser___parser_nodes[689] + 0)
-#define ID_parser___parser_nodes___AIsaExpr (SFT_parser___parser_nodes[690])
-#define COLOR_parser___parser_nodes___AIsaExpr (SFT_parser___parser_nodes[691])
-#define ATTR_parser___parser_nodes___AIsaExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[692] + 0))
-#define ATTR_parser___parser_nodes___AIsaExpr____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[692] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___AIsaExpr (SFT_parser___parser_nodes[693] + 0)
-#define CALL_parser___parser_nodes___AIsaExpr___n_expr(recv) ((parser___parser_nodes___AIsaExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[693] + 1)))
-#define CALL_parser___parser_nodes___AIsaExpr___n_type(recv) ((parser___parser_nodes___AIsaExpr___n_type_t)CALL((recv), (SFT_parser___parser_nodes[693] + 2)))
-#define ID_parser___parser_nodes___APlusExpr (SFT_parser___parser_nodes[694])
-#define COLOR_parser___parser_nodes___APlusExpr (SFT_parser___parser_nodes[695])
-#define INIT_TABLE_POS_parser___parser_nodes___APlusExpr (SFT_parser___parser_nodes[696] + 0)
-#define ID_parser___parser_nodes___AMinusExpr (SFT_parser___parser_nodes[697])
-#define COLOR_parser___parser_nodes___AMinusExpr (SFT_parser___parser_nodes[698])
-#define INIT_TABLE_POS_parser___parser_nodes___AMinusExpr (SFT_parser___parser_nodes[699] + 0)
-#define ID_parser___parser_nodes___AStarshipExpr (SFT_parser___parser_nodes[700])
-#define COLOR_parser___parser_nodes___AStarshipExpr (SFT_parser___parser_nodes[701])
-#define INIT_TABLE_POS_parser___parser_nodes___AStarshipExpr (SFT_parser___parser_nodes[702] + 0)
-#define ID_parser___parser_nodes___AStarExpr (SFT_parser___parser_nodes[703])
-#define COLOR_parser___parser_nodes___AStarExpr (SFT_parser___parser_nodes[704])
-#define INIT_TABLE_POS_parser___parser_nodes___AStarExpr (SFT_parser___parser_nodes[705] + 0)
-#define ID_parser___parser_nodes___ASlashExpr (SFT_parser___parser_nodes[706])
-#define COLOR_parser___parser_nodes___ASlashExpr (SFT_parser___parser_nodes[707])
-#define INIT_TABLE_POS_parser___parser_nodes___ASlashExpr (SFT_parser___parser_nodes[708] + 0)
-#define ID_parser___parser_nodes___APercentExpr (SFT_parser___parser_nodes[709])
-#define COLOR_parser___parser_nodes___APercentExpr (SFT_parser___parser_nodes[710])
-#define INIT_TABLE_POS_parser___parser_nodes___APercentExpr (SFT_parser___parser_nodes[711] + 0)
-#define ID_parser___parser_nodes___AUminusExpr (SFT_parser___parser_nodes[712])
-#define COLOR_parser___parser_nodes___AUminusExpr (SFT_parser___parser_nodes[713])
-#define ATTR_parser___parser_nodes___AUminusExpr____n_minus(recv) ATTR(recv, (SFT_parser___parser_nodes[714] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AUminusExpr (SFT_parser___parser_nodes[715] + 0)
-#define CALL_parser___parser_nodes___AUminusExpr___n_minus(recv) ((parser___parser_nodes___AUminusExpr___n_minus_t)CALL((recv), (SFT_parser___parser_nodes[715] + 1)))
-#define ID_parser___parser_nodes___ANewExpr (SFT_parser___parser_nodes[716])
-#define COLOR_parser___parser_nodes___ANewExpr (SFT_parser___parser_nodes[717])
-#define ATTR_parser___parser_nodes___ANewExpr____n_kwnew(recv) ATTR(recv, (SFT_parser___parser_nodes[718] + 0))
-#define ATTR_parser___parser_nodes___ANewExpr____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[718] + 1))
-#define ATTR_parser___parser_nodes___ANewExpr____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[718] + 2))
-#define ATTR_parser___parser_nodes___ANewExpr____n_args(recv) ATTR(recv, (SFT_parser___parser_nodes[718] + 3))
-#define INIT_TABLE_POS_parser___parser_nodes___ANewExpr (SFT_parser___parser_nodes[719] + 0)
-#define CALL_parser___parser_nodes___ANewExpr___n_kwnew(recv) ((parser___parser_nodes___ANewExpr___n_kwnew_t)CALL((recv), (SFT_parser___parser_nodes[719] + 1)))
-#define CALL_parser___parser_nodes___ANewExpr___n_type(recv) ((parser___parser_nodes___ANewExpr___n_type_t)CALL((recv), (SFT_parser___parser_nodes[719] + 2)))
-#define CALL_parser___parser_nodes___ANewExpr___n_id(recv) ((parser___parser_nodes___ANewExpr___n_id_t)CALL((recv), (SFT_parser___parser_nodes[719] + 3)))
-#define CALL_parser___parser_nodes___ANewExpr___n_args(recv) ((parser___parser_nodes___ANewExpr___n_args_t)CALL((recv), (SFT_parser___parser_nodes[719] + 4)))
-#define ID_parser___parser_nodes___AAttrFormExpr (SFT_parser___parser_nodes[720])
-#define COLOR_parser___parser_nodes___AAttrFormExpr (SFT_parser___parser_nodes[721])
-#define ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[722] + 0))
-#define ATTR_parser___parser_nodes___AAttrFormExpr____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[722] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___AAttrFormExpr (SFT_parser___parser_nodes[723] + 0)
-#define CALL_parser___parser_nodes___AAttrFormExpr___n_expr(recv) ((parser___parser_nodes___AAttrFormExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[723] + 1)))
-#define CALL_parser___parser_nodes___AAttrFormExpr___n_id(recv) ((parser___parser_nodes___AAttrFormExpr___n_id_t)CALL((recv), (SFT_parser___parser_nodes[723] + 2)))
-#define ID_parser___parser_nodes___AAttrExpr (SFT_parser___parser_nodes[724])
-#define COLOR_parser___parser_nodes___AAttrExpr (SFT_parser___parser_nodes[725])
-#define INIT_TABLE_POS_parser___parser_nodes___AAttrExpr (SFT_parser___parser_nodes[726] + 0)
-#define ID_parser___parser_nodes___AAttrAssignExpr (SFT_parser___parser_nodes[727])
-#define COLOR_parser___parser_nodes___AAttrAssignExpr (SFT_parser___parser_nodes[728])
-#define INIT_TABLE_POS_parser___parser_nodes___AAttrAssignExpr (SFT_parser___parser_nodes[729] + 0)
-#define ID_parser___parser_nodes___ACallFormExpr (SFT_parser___parser_nodes[730])
-#define COLOR_parser___parser_nodes___ACallFormExpr (SFT_parser___parser_nodes[731])
-#define ATTR_parser___parser_nodes___ACallFormExpr____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[732] + 0))
-#define ATTR_parser___parser_nodes___ACallFormExpr____n_args(recv) ATTR(recv, (SFT_parser___parser_nodes[732] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___ACallFormExpr (SFT_parser___parser_nodes[733] + 0)
-#define CALL_parser___parser_nodes___ACallFormExpr___n_id(recv) ((parser___parser_nodes___ACallFormExpr___n_id_t)CALL((recv), (SFT_parser___parser_nodes[733] + 1)))
-#define CALL_parser___parser_nodes___ACallFormExpr___n_args(recv) ((parser___parser_nodes___ACallFormExpr___n_args_t)CALL((recv), (SFT_parser___parser_nodes[733] + 2)))
-#define ID_parser___parser_nodes___AAttrReassignExpr (SFT_parser___parser_nodes[734])
-#define COLOR_parser___parser_nodes___AAttrReassignExpr (SFT_parser___parser_nodes[735])
-#define INIT_TABLE_POS_parser___parser_nodes___AAttrReassignExpr (SFT_parser___parser_nodes[736] + 0)
-#define ID_parser___parser_nodes___ACallExpr (SFT_parser___parser_nodes[737])
-#define COLOR_parser___parser_nodes___ACallExpr (SFT_parser___parser_nodes[738])
-#define INIT_TABLE_POS_parser___parser_nodes___ACallExpr (SFT_parser___parser_nodes[739] + 0)
-#define ID_parser___parser_nodes___ACallAssignExpr (SFT_parser___parser_nodes[740])
-#define COLOR_parser___parser_nodes___ACallAssignExpr (SFT_parser___parser_nodes[741])
-#define INIT_TABLE_POS_parser___parser_nodes___ACallAssignExpr (SFT_parser___parser_nodes[742] + 0)
-#define ID_parser___parser_nodes___ACallReassignExpr (SFT_parser___parser_nodes[743])
-#define COLOR_parser___parser_nodes___ACallReassignExpr (SFT_parser___parser_nodes[744])
-#define INIT_TABLE_POS_parser___parser_nodes___ACallReassignExpr (SFT_parser___parser_nodes[745] + 0)
-#define ID_parser___parser_nodes___ASuperExpr (SFT_parser___parser_nodes[746])
-#define COLOR_parser___parser_nodes___ASuperExpr (SFT_parser___parser_nodes[747])
-#define ATTR_parser___parser_nodes___ASuperExpr____n_qualified(recv) ATTR(recv, (SFT_parser___parser_nodes[748] + 0))
-#define ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(recv) ATTR(recv, (SFT_parser___parser_nodes[748] + 1))
-#define ATTR_parser___parser_nodes___ASuperExpr____n_args(recv) ATTR(recv, (SFT_parser___parser_nodes[748] + 2))
-#define INIT_TABLE_POS_parser___parser_nodes___ASuperExpr (SFT_parser___parser_nodes[749] + 0)
-#define CALL_parser___parser_nodes___ASuperExpr___n_qualified(recv) ((parser___parser_nodes___ASuperExpr___n_qualified_t)CALL((recv), (SFT_parser___parser_nodes[749] + 1)))
-#define CALL_parser___parser_nodes___ASuperExpr___n_kwsuper(recv) ((parser___parser_nodes___ASuperExpr___n_kwsuper_t)CALL((recv), (SFT_parser___parser_nodes[749] + 2)))
-#define CALL_parser___parser_nodes___ASuperExpr___n_args(recv) ((parser___parser_nodes___ASuperExpr___n_args_t)CALL((recv), (SFT_parser___parser_nodes[749] + 3)))
-#define ID_parser___parser_nodes___AInitExpr (SFT_parser___parser_nodes[750])
-#define COLOR_parser___parser_nodes___AInitExpr (SFT_parser___parser_nodes[751])
-#define ATTR_parser___parser_nodes___AInitExpr____n_kwinit(recv) ATTR(recv, (SFT_parser___parser_nodes[752] + 0))
-#define ATTR_parser___parser_nodes___AInitExpr____n_args(recv) ATTR(recv, (SFT_parser___parser_nodes[752] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___AInitExpr (SFT_parser___parser_nodes[753] + 0)
-#define CALL_parser___parser_nodes___AInitExpr___n_kwinit(recv) ((parser___parser_nodes___AInitExpr___n_kwinit_t)CALL((recv), (SFT_parser___parser_nodes[753] + 1)))
-#define CALL_parser___parser_nodes___AInitExpr___n_args(recv) ((parser___parser_nodes___AInitExpr___n_args_t)CALL((recv), (SFT_parser___parser_nodes[753] + 2)))
-#define ID_parser___parser_nodes___ABraFormExpr (SFT_parser___parser_nodes[754])
-#define COLOR_parser___parser_nodes___ABraFormExpr (SFT_parser___parser_nodes[755])
-#define ATTR_parser___parser_nodes___ABraFormExpr____n_args(recv) ATTR(recv, (SFT_parser___parser_nodes[756] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ABraFormExpr (SFT_parser___parser_nodes[757] + 0)
-#define CALL_parser___parser_nodes___ABraFormExpr___n_args(recv) ((parser___parser_nodes___ABraFormExpr___n_args_t)CALL((recv), (SFT_parser___parser_nodes[757] + 1)))
-#define ID_parser___parser_nodes___ABraExpr (SFT_parser___parser_nodes[758])
-#define COLOR_parser___parser_nodes___ABraExpr (SFT_parser___parser_nodes[759])
-#define INIT_TABLE_POS_parser___parser_nodes___ABraExpr (SFT_parser___parser_nodes[760] + 0)
-#define ID_parser___parser_nodes___ABraAssignExpr (SFT_parser___parser_nodes[761])
-#define COLOR_parser___parser_nodes___ABraAssignExpr (SFT_parser___parser_nodes[762])
-#define INIT_TABLE_POS_parser___parser_nodes___ABraAssignExpr (SFT_parser___parser_nodes[763] + 0)
-#define ID_parser___parser_nodes___AVarFormExpr (SFT_parser___parser_nodes[764])
-#define COLOR_parser___parser_nodes___AVarFormExpr (SFT_parser___parser_nodes[765])
-#define ATTR_parser___parser_nodes___AVarFormExpr____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[766] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AVarFormExpr (SFT_parser___parser_nodes[767] + 0)
-#define CALL_parser___parser_nodes___AVarFormExpr___n_id(recv) ((parser___parser_nodes___AVarFormExpr___n_id_t)CALL((recv), (SFT_parser___parser_nodes[767] + 1)))
-#define ID_parser___parser_nodes___ABraReassignExpr (SFT_parser___parser_nodes[768])
-#define COLOR_parser___parser_nodes___ABraReassignExpr (SFT_parser___parser_nodes[769])
-#define INIT_TABLE_POS_parser___parser_nodes___ABraReassignExpr (SFT_parser___parser_nodes[770] + 0)
-#define ID_parser___parser_nodes___AClosureCallExpr (SFT_parser___parser_nodes[771])
-#define COLOR_parser___parser_nodes___AClosureCallExpr (SFT_parser___parser_nodes[772])
-#define ATTR_parser___parser_nodes___AClosureCallExpr____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[773] + 0))
-#define ATTR_parser___parser_nodes___AClosureCallExpr____n_args(recv) ATTR(recv, (SFT_parser___parser_nodes[773] + 1))
-#define ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(recv) ATTR(recv, (SFT_parser___parser_nodes[773] + 2))
-#define INIT_TABLE_POS_parser___parser_nodes___AClosureCallExpr (SFT_parser___parser_nodes[774] + 0)
-#define CALL_parser___parser_nodes___AClosureCallExpr___n_id(recv) ((parser___parser_nodes___AClosureCallExpr___n_id_t)CALL((recv), (SFT_parser___parser_nodes[774] + 1)))
-#define CALL_parser___parser_nodes___AClosureCallExpr___n_args(recv) ((parser___parser_nodes___AClosureCallExpr___n_args_t)CALL((recv), (SFT_parser___parser_nodes[774] + 2)))
-#define CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(recv) ((parser___parser_nodes___AClosureCallExpr___n_closure_defs_t)CALL((recv), (SFT_parser___parser_nodes[774] + 3)))
-#define ID_parser___parser_nodes___AVarExpr (SFT_parser___parser_nodes[775])
-#define COLOR_parser___parser_nodes___AVarExpr (SFT_parser___parser_nodes[776])
-#define INIT_TABLE_POS_parser___parser_nodes___AVarExpr (SFT_parser___parser_nodes[777] + 0)
-#define ID_parser___parser_nodes___AVarAssignExpr (SFT_parser___parser_nodes[778])
-#define COLOR_parser___parser_nodes___AVarAssignExpr (SFT_parser___parser_nodes[779])
-#define INIT_TABLE_POS_parser___parser_nodes___AVarAssignExpr (SFT_parser___parser_nodes[780] + 0)
-#define ID_parser___parser_nodes___AVarReassignExpr (SFT_parser___parser_nodes[781])
-#define COLOR_parser___parser_nodes___AVarReassignExpr (SFT_parser___parser_nodes[782])
-#define INIT_TABLE_POS_parser___parser_nodes___AVarReassignExpr (SFT_parser___parser_nodes[783] + 0)
-#define ID_parser___parser_nodes___ARangeExpr (SFT_parser___parser_nodes[784])
-#define COLOR_parser___parser_nodes___ARangeExpr (SFT_parser___parser_nodes[785])
-#define ATTR_parser___parser_nodes___ARangeExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[786] + 0))
-#define ATTR_parser___parser_nodes___ARangeExpr____n_expr2(recv) ATTR(recv, (SFT_parser___parser_nodes[786] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___ARangeExpr (SFT_parser___parser_nodes[787] + 0)
-#define CALL_parser___parser_nodes___ARangeExpr___n_expr(recv) ((parser___parser_nodes___ARangeExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[787] + 1)))
-#define CALL_parser___parser_nodes___ARangeExpr___n_expr2(recv) ((parser___parser_nodes___ARangeExpr___n_expr2_t)CALL((recv), (SFT_parser___parser_nodes[787] + 2)))
-#define ID_parser___parser_nodes___ACrangeExpr (SFT_parser___parser_nodes[788])
-#define COLOR_parser___parser_nodes___ACrangeExpr (SFT_parser___parser_nodes[789])
-#define INIT_TABLE_POS_parser___parser_nodes___ACrangeExpr (SFT_parser___parser_nodes[790] + 0)
-#define ID_parser___parser_nodes___AOrangeExpr (SFT_parser___parser_nodes[791])
-#define COLOR_parser___parser_nodes___AOrangeExpr (SFT_parser___parser_nodes[792])
-#define INIT_TABLE_POS_parser___parser_nodes___AOrangeExpr (SFT_parser___parser_nodes[793] + 0)
-#define ID_parser___parser_nodes___AArrayExpr (SFT_parser___parser_nodes[794])
-#define COLOR_parser___parser_nodes___AArrayExpr (SFT_parser___parser_nodes[795])
-#define ATTR_parser___parser_nodes___AArrayExpr____n_exprs(recv) ATTR(recv, (SFT_parser___parser_nodes[796] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AArrayExpr (SFT_parser___parser_nodes[797] + 0)
-#define CALL_parser___parser_nodes___AArrayExpr___n_exprs(recv) ((parser___parser_nodes___AArrayExpr___n_exprs_t)CALL((recv), (SFT_parser___parser_nodes[797] + 1)))
-#define ID_parser___parser_nodes___ASelfExpr (SFT_parser___parser_nodes[798])
-#define COLOR_parser___parser_nodes___ASelfExpr (SFT_parser___parser_nodes[799])
-#define ATTR_parser___parser_nodes___ASelfExpr____n_kwself(recv) ATTR(recv, (SFT_parser___parser_nodes[800] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ASelfExpr (SFT_parser___parser_nodes[801] + 0)
-#define CALL_parser___parser_nodes___ASelfExpr___n_kwself(recv) ((parser___parser_nodes___ASelfExpr___n_kwself_t)CALL((recv), (SFT_parser___parser_nodes[801] + 1)))
-#define ID_parser___parser_nodes___AImplicitSelfExpr (SFT_parser___parser_nodes[802])
-#define COLOR_parser___parser_nodes___AImplicitSelfExpr (SFT_parser___parser_nodes[803])
-#define INIT_TABLE_POS_parser___parser_nodes___AImplicitSelfExpr (SFT_parser___parser_nodes[804] + 0)
-#define ID_parser___parser_nodes___ATrueExpr (SFT_parser___parser_nodes[805])
-#define COLOR_parser___parser_nodes___ATrueExpr (SFT_parser___parser_nodes[806])
-#define ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(recv) ATTR(recv, (SFT_parser___parser_nodes[807] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ATrueExpr (SFT_parser___parser_nodes[808] + 0)
-#define CALL_parser___parser_nodes___ATrueExpr___n_kwtrue(recv) ((parser___parser_nodes___ATrueExpr___n_kwtrue_t)CALL((recv), (SFT_parser___parser_nodes[808] + 1)))
-#define ID_parser___parser_nodes___AFalseExpr (SFT_parser___parser_nodes[809])
-#define COLOR_parser___parser_nodes___AFalseExpr (SFT_parser___parser_nodes[810])
-#define ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(recv) ATTR(recv, (SFT_parser___parser_nodes[811] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AFalseExpr (SFT_parser___parser_nodes[812] + 0)
-#define CALL_parser___parser_nodes___AFalseExpr___n_kwfalse(recv) ((parser___parser_nodes___AFalseExpr___n_kwfalse_t)CALL((recv), (SFT_parser___parser_nodes[812] + 1)))
-#define ID_parser___parser_nodes___ANullExpr (SFT_parser___parser_nodes[813])
-#define COLOR_parser___parser_nodes___ANullExpr (SFT_parser___parser_nodes[814])
-#define ATTR_parser___parser_nodes___ANullExpr____n_kwnull(recv) ATTR(recv, (SFT_parser___parser_nodes[815] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ANullExpr (SFT_parser___parser_nodes[816] + 0)
-#define CALL_parser___parser_nodes___ANullExpr___n_kwnull(recv) ((parser___parser_nodes___ANullExpr___n_kwnull_t)CALL((recv), (SFT_parser___parser_nodes[816] + 1)))
-#define ID_parser___parser_nodes___AIntExpr (SFT_parser___parser_nodes[817])
-#define COLOR_parser___parser_nodes___AIntExpr (SFT_parser___parser_nodes[818])
-#define ATTR_parser___parser_nodes___AIntExpr____n_number(recv) ATTR(recv, (SFT_parser___parser_nodes[819] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AIntExpr (SFT_parser___parser_nodes[820] + 0)
-#define CALL_parser___parser_nodes___AIntExpr___n_number(recv) ((parser___parser_nodes___AIntExpr___n_number_t)CALL((recv), (SFT_parser___parser_nodes[820] + 1)))
-#define ID_parser___parser_nodes___AFloatExpr (SFT_parser___parser_nodes[821])
-#define COLOR_parser___parser_nodes___AFloatExpr (SFT_parser___parser_nodes[822])
-#define ATTR_parser___parser_nodes___AFloatExpr____n_float(recv) ATTR(recv, (SFT_parser___parser_nodes[823] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AFloatExpr (SFT_parser___parser_nodes[824] + 0)
-#define CALL_parser___parser_nodes___AFloatExpr___n_float(recv) ((parser___parser_nodes___AFloatExpr___n_float_t)CALL((recv), (SFT_parser___parser_nodes[824] + 1)))
-#define ID_parser___parser_nodes___ACharExpr (SFT_parser___parser_nodes[825])
-#define COLOR_parser___parser_nodes___ACharExpr (SFT_parser___parser_nodes[826])
-#define ATTR_parser___parser_nodes___ACharExpr____n_char(recv) ATTR(recv, (SFT_parser___parser_nodes[827] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ACharExpr (SFT_parser___parser_nodes[828] + 0)
-#define CALL_parser___parser_nodes___ACharExpr___n_char(recv) ((parser___parser_nodes___ACharExpr___n_char_t)CALL((recv), (SFT_parser___parser_nodes[828] + 1)))
-#define ID_parser___parser_nodes___AStringFormExpr (SFT_parser___parser_nodes[829])
-#define COLOR_parser___parser_nodes___AStringFormExpr (SFT_parser___parser_nodes[830])
-#define INIT_TABLE_POS_parser___parser_nodes___AStringFormExpr (SFT_parser___parser_nodes[831] + 0)
-#define ID_parser___parser_nodes___AStringExpr (SFT_parser___parser_nodes[832])
-#define COLOR_parser___parser_nodes___AStringExpr (SFT_parser___parser_nodes[833])
-#define ATTR_parser___parser_nodes___AStringExpr____n_string(recv) ATTR(recv, (SFT_parser___parser_nodes[834] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AStringExpr (SFT_parser___parser_nodes[835] + 0)
-#define CALL_parser___parser_nodes___AStringExpr___n_string(recv) ((parser___parser_nodes___AStringExpr___n_string_t)CALL((recv), (SFT_parser___parser_nodes[835] + 1)))
-#define ID_parser___parser_nodes___AStartStringExpr (SFT_parser___parser_nodes[836])
-#define COLOR_parser___parser_nodes___AStartStringExpr (SFT_parser___parser_nodes[837])
-#define ATTR_parser___parser_nodes___AStartStringExpr____n_string(recv) ATTR(recv, (SFT_parser___parser_nodes[838] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AStartStringExpr (SFT_parser___parser_nodes[839] + 0)
-#define CALL_parser___parser_nodes___AStartStringExpr___n_string(recv) ((parser___parser_nodes___AStartStringExpr___n_string_t)CALL((recv), (SFT_parser___parser_nodes[839] + 1)))
-#define ID_parser___parser_nodes___AMidStringExpr (SFT_parser___parser_nodes[840])
-#define COLOR_parser___parser_nodes___AMidStringExpr (SFT_parser___parser_nodes[841])
-#define ATTR_parser___parser_nodes___AMidStringExpr____n_string(recv) ATTR(recv, (SFT_parser___parser_nodes[842] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AMidStringExpr (SFT_parser___parser_nodes[843] + 0)
-#define CALL_parser___parser_nodes___AMidStringExpr___n_string(recv) ((parser___parser_nodes___AMidStringExpr___n_string_t)CALL((recv), (SFT_parser___parser_nodes[843] + 1)))
-#define ID_parser___parser_nodes___AEndStringExpr (SFT_parser___parser_nodes[844])
-#define COLOR_parser___parser_nodes___AEndStringExpr (SFT_parser___parser_nodes[845])
-#define ATTR_parser___parser_nodes___AEndStringExpr____n_string(recv) ATTR(recv, (SFT_parser___parser_nodes[846] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AEndStringExpr (SFT_parser___parser_nodes[847] + 0)
-#define CALL_parser___parser_nodes___AEndStringExpr___n_string(recv) ((parser___parser_nodes___AEndStringExpr___n_string_t)CALL((recv), (SFT_parser___parser_nodes[847] + 1)))
-#define ID_parser___parser_nodes___ASuperstringExpr (SFT_parser___parser_nodes[848])
-#define COLOR_parser___parser_nodes___ASuperstringExpr (SFT_parser___parser_nodes[849])
-#define ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(recv) ATTR(recv, (SFT_parser___parser_nodes[850] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ASuperstringExpr (SFT_parser___parser_nodes[851] + 0)
-#define CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(recv) ((parser___parser_nodes___ASuperstringExpr___n_exprs_t)CALL((recv), (SFT_parser___parser_nodes[851] + 1)))
-#define ID_parser___parser_nodes___AParExpr (SFT_parser___parser_nodes[852])
-#define COLOR_parser___parser_nodes___AParExpr (SFT_parser___parser_nodes[853])
-#define INIT_TABLE_POS_parser___parser_nodes___AParExpr (SFT_parser___parser_nodes[854] + 0)
-#define ID_parser___parser_nodes___AProxyExpr (SFT_parser___parser_nodes[855])
-#define COLOR_parser___parser_nodes___AProxyExpr (SFT_parser___parser_nodes[856])
-#define ATTR_parser___parser_nodes___AProxyExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[857] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AProxyExpr (SFT_parser___parser_nodes[858] + 0)
-#define CALL_parser___parser_nodes___AProxyExpr___n_expr(recv) ((parser___parser_nodes___AProxyExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[858] + 1)))
-#define ID_parser___parser_nodes___AAsCastExpr (SFT_parser___parser_nodes[859])
-#define COLOR_parser___parser_nodes___AAsCastExpr (SFT_parser___parser_nodes[860])
-#define ATTR_parser___parser_nodes___AAsCastExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[861] + 0))
-#define ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(recv) ATTR(recv, (SFT_parser___parser_nodes[861] + 1))
-#define ATTR_parser___parser_nodes___AAsCastExpr____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[861] + 2))
-#define INIT_TABLE_POS_parser___parser_nodes___AAsCastExpr (SFT_parser___parser_nodes[862] + 0)
-#define CALL_parser___parser_nodes___AAsCastExpr___n_expr(recv) ((parser___parser_nodes___AAsCastExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[862] + 1)))
-#define CALL_parser___parser_nodes___AAsCastExpr___n_kwas(recv) ((parser___parser_nodes___AAsCastExpr___n_kwas_t)CALL((recv), (SFT_parser___parser_nodes[862] + 2)))
-#define CALL_parser___parser_nodes___AAsCastExpr___n_type(recv) ((parser___parser_nodes___AAsCastExpr___n_type_t)CALL((recv), (SFT_parser___parser_nodes[862] + 3)))
-#define ID_parser___parser_nodes___AAsNotnullExpr (SFT_parser___parser_nodes[863])
-#define COLOR_parser___parser_nodes___AAsNotnullExpr (SFT_parser___parser_nodes[864])
-#define ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[865] + 0))
-#define ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(recv) ATTR(recv, (SFT_parser___parser_nodes[865] + 1))
-#define ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(recv) ATTR(recv, (SFT_parser___parser_nodes[865] + 2))
-#define ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(recv) ATTR(recv, (SFT_parser___parser_nodes[865] + 3))
-#define INIT_TABLE_POS_parser___parser_nodes___AAsNotnullExpr (SFT_parser___parser_nodes[866] + 0)
-#define CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(recv) ((parser___parser_nodes___AAsNotnullExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[866] + 1)))
-#define CALL_parser___parser_nodes___AAsNotnullExpr___n_kwas(recv) ((parser___parser_nodes___AAsNotnullExpr___n_kwas_t)CALL((recv), (SFT_parser___parser_nodes[866] + 2)))
-#define CALL_parser___parser_nodes___AAsNotnullExpr___n_kwnot(recv) ((parser___parser_nodes___AAsNotnullExpr___n_kwnot_t)CALL((recv), (SFT_parser___parser_nodes[866] + 3)))
-#define CALL_parser___parser_nodes___AAsNotnullExpr___n_kwnull(recv) ((parser___parser_nodes___AAsNotnullExpr___n_kwnull_t)CALL((recv), (SFT_parser___parser_nodes[866] + 4)))
-#define ID_parser___parser_nodes___AIssetAttrExpr (SFT_parser___parser_nodes[867])
-#define COLOR_parser___parser_nodes___AIssetAttrExpr (SFT_parser___parser_nodes[868])
-#define ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(recv) ATTR(recv, (SFT_parser___parser_nodes[869] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AIssetAttrExpr (SFT_parser___parser_nodes[870] + 0)
-#define CALL_parser___parser_nodes___AIssetAttrExpr___n_kwisset(recv) ((parser___parser_nodes___AIssetAttrExpr___n_kwisset_t)CALL((recv), (SFT_parser___parser_nodes[870] + 1)))
-#define ID_parser___parser_nodes___AAssignOp (SFT_parser___parser_nodes[871])
-#define COLOR_parser___parser_nodes___AAssignOp (SFT_parser___parser_nodes[872])
-#define INIT_TABLE_POS_parser___parser_nodes___AAssignOp (SFT_parser___parser_nodes[873] + 0)
-#define ID_parser___parser_nodes___APlusAssignOp (SFT_parser___parser_nodes[874])
-#define COLOR_parser___parser_nodes___APlusAssignOp (SFT_parser___parser_nodes[875])
-#define ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(recv) ATTR(recv, (SFT_parser___parser_nodes[876] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___APlusAssignOp (SFT_parser___parser_nodes[877] + 0)
-#define CALL_parser___parser_nodes___APlusAssignOp___n_pluseq(recv) ((parser___parser_nodes___APlusAssignOp___n_pluseq_t)CALL((recv), (SFT_parser___parser_nodes[877] + 1)))
-#define ID_parser___parser_nodes___AMinusAssignOp (SFT_parser___parser_nodes[878])
-#define COLOR_parser___parser_nodes___AMinusAssignOp (SFT_parser___parser_nodes[879])
-#define ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(recv) ATTR(recv, (SFT_parser___parser_nodes[880] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___AMinusAssignOp (SFT_parser___parser_nodes[881] + 0)
-#define CALL_parser___parser_nodes___AMinusAssignOp___n_minuseq(recv) ((parser___parser_nodes___AMinusAssignOp___n_minuseq_t)CALL((recv), (SFT_parser___parser_nodes[881] + 1)))
-#define ID_parser___parser_nodes___AClosureDef (SFT_parser___parser_nodes[882])
-#define COLOR_parser___parser_nodes___AClosureDef (SFT_parser___parser_nodes[883])
-#define ATTR_parser___parser_nodes___AClosureDef____n_bang(recv) ATTR(recv, (SFT_parser___parser_nodes[884] + 0))
-#define ATTR_parser___parser_nodes___AClosureDef____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[884] + 1))
-#define ATTR_parser___parser_nodes___AClosureDef____n_ids(recv) ATTR(recv, (SFT_parser___parser_nodes[884] + 2))
-#define ATTR_parser___parser_nodes___AClosureDef____n_kwdo(recv) ATTR(recv, (SFT_parser___parser_nodes[884] + 3))
-#define ATTR_parser___parser_nodes___AClosureDef____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[884] + 4))
-#define INIT_TABLE_POS_parser___parser_nodes___AClosureDef (SFT_parser___parser_nodes[885] + 0)
-#define CALL_parser___parser_nodes___AClosureDef___n_bang(recv) ((parser___parser_nodes___AClosureDef___n_bang_t)CALL((recv), (SFT_parser___parser_nodes[885] + 1)))
-#define CALL_parser___parser_nodes___AClosureDef___n_id(recv) ((parser___parser_nodes___AClosureDef___n_id_t)CALL((recv), (SFT_parser___parser_nodes[885] + 2)))
-#define CALL_parser___parser_nodes___AClosureDef___n_ids(recv) ((parser___parser_nodes___AClosureDef___n_ids_t)CALL((recv), (SFT_parser___parser_nodes[885] + 3)))
-#define CALL_parser___parser_nodes___AClosureDef___n_kwdo(recv) ((parser___parser_nodes___AClosureDef___n_kwdo_t)CALL((recv), (SFT_parser___parser_nodes[885] + 4)))
-#define CALL_parser___parser_nodes___AClosureDef___n_expr(recv) ((parser___parser_nodes___AClosureDef___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[885] + 5)))
-#define ID_parser___parser_nodes___AClosureId (SFT_parser___parser_nodes[886])
-#define COLOR_parser___parser_nodes___AClosureId (SFT_parser___parser_nodes[887])
-#define INIT_TABLE_POS_parser___parser_nodes___AClosureId (SFT_parser___parser_nodes[888] + 0)
-#define ID_parser___parser_nodes___ASimpleClosureId (SFT_parser___parser_nodes[889])
-#define COLOR_parser___parser_nodes___ASimpleClosureId (SFT_parser___parser_nodes[890])
-#define ATTR_parser___parser_nodes___ASimpleClosureId____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[891] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ASimpleClosureId (SFT_parser___parser_nodes[892] + 0)
-#define CALL_parser___parser_nodes___ASimpleClosureId___n_id(recv) ((parser___parser_nodes___ASimpleClosureId___n_id_t)CALL((recv), (SFT_parser___parser_nodes[892] + 1)))
-#define ID_parser___parser_nodes___ABreakClosureId (SFT_parser___parser_nodes[893])
-#define COLOR_parser___parser_nodes___ABreakClosureId (SFT_parser___parser_nodes[894])
-#define ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(recv) ATTR(recv, (SFT_parser___parser_nodes[895] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ABreakClosureId (SFT_parser___parser_nodes[896] + 0)
-#define CALL_parser___parser_nodes___ABreakClosureId___n_kwbreak(recv) ((parser___parser_nodes___ABreakClosureId___n_kwbreak_t)CALL((recv), (SFT_parser___parser_nodes[896] + 1)))
-#define ID_parser___parser_nodes___AModuleName (SFT_parser___parser_nodes[897])
-#define COLOR_parser___parser_nodes___AModuleName (SFT_parser___parser_nodes[898])
-#define ATTR_parser___parser_nodes___AModuleName____n_quad(recv) ATTR(recv, (SFT_parser___parser_nodes[899] + 0))
-#define ATTR_parser___parser_nodes___AModuleName____n_path(recv) ATTR(recv, (SFT_parser___parser_nodes[899] + 1))
-#define ATTR_parser___parser_nodes___AModuleName____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[899] + 2))
-#define INIT_TABLE_POS_parser___parser_nodes___AModuleName (SFT_parser___parser_nodes[900] + 0)
-#define CALL_parser___parser_nodes___AModuleName___n_quad(recv) ((parser___parser_nodes___AModuleName___n_quad_t)CALL((recv), (SFT_parser___parser_nodes[900] + 1)))
-#define CALL_parser___parser_nodes___AModuleName___n_path(recv) ((parser___parser_nodes___AModuleName___n_path_t)CALL((recv), (SFT_parser___parser_nodes[900] + 2)))
-#define CALL_parser___parser_nodes___AModuleName___n_id(recv) ((parser___parser_nodes___AModuleName___n_id_t)CALL((recv), (SFT_parser___parser_nodes[900] + 3)))
-#define ID_parser___parser_nodes___AQualified (SFT_parser___parser_nodes[901])
-#define COLOR_parser___parser_nodes___AQualified (SFT_parser___parser_nodes[902])
-#define ATTR_parser___parser_nodes___AQualified____n_quad(recv) ATTR(recv, (SFT_parser___parser_nodes[903] + 0))
-#define ATTR_parser___parser_nodes___AQualified____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[903] + 1))
-#define ATTR_parser___parser_nodes___AQualified____n_classid(recv) ATTR(recv, (SFT_parser___parser_nodes[903] + 2))
-#define INIT_TABLE_POS_parser___parser_nodes___AQualified (SFT_parser___parser_nodes[904] + 0)
-#define CALL_parser___parser_nodes___AQualified___n_quad(recv) ((parser___parser_nodes___AQualified___n_quad_t)CALL((recv), (SFT_parser___parser_nodes[904] + 1)))
-#define CALL_parser___parser_nodes___AQualified___n_id(recv) ((parser___parser_nodes___AQualified___n_id_t)CALL((recv), (SFT_parser___parser_nodes[904] + 2)))
-#define CALL_parser___parser_nodes___AQualified___n_classid(recv) ((parser___parser_nodes___AQualified___n_classid_t)CALL((recv), (SFT_parser___parser_nodes[904] + 3)))
-#define ID_parser___parser_nodes___ADoc (SFT_parser___parser_nodes[905])
-#define COLOR_parser___parser_nodes___ADoc (SFT_parser___parser_nodes[906])
-#define ATTR_parser___parser_nodes___ADoc____n_comment(recv) ATTR(recv, (SFT_parser___parser_nodes[907] + 0))
-#define INIT_TABLE_POS_parser___parser_nodes___ADoc (SFT_parser___parser_nodes[908] + 0)
-#define CALL_parser___parser_nodes___ADoc___n_comment(recv) ((parser___parser_nodes___ADoc___n_comment_t)CALL((recv), (SFT_parser___parser_nodes[908] + 1)))
-#define ID_parser___parser_nodes___Start (SFT_parser___parser_nodes[909])
-#define COLOR_parser___parser_nodes___Start (SFT_parser___parser_nodes[910])
-#define ATTR_parser___parser_nodes___Start____n_base(recv) ATTR(recv, (SFT_parser___parser_nodes[911] + 0))
-#define ATTR_parser___parser_nodes___Start____n_eof(recv) ATTR(recv, (SFT_parser___parser_nodes[911] + 1))
-#define INIT_TABLE_POS_parser___parser_nodes___Start (SFT_parser___parser_nodes[912] + 0)
-#define CALL_parser___parser_nodes___Start___n_base(recv) ((parser___parser_nodes___Start___n_base_t)CALL((recv), (SFT_parser___parser_nodes[912] + 1)))
-#define CALL_parser___parser_nodes___Start___n_eof(recv) ((parser___parser_nodes___Start___n_eof_t)CALL((recv), (SFT_parser___parser_nodes[912] + 2)))
+#define ID_parser___parser_nodes___TokenKeyword (SFT_parser___parser_nodes[16])
+#define COLOR_parser___parser_nodes___TokenKeyword (SFT_parser___parser_nodes[17])
+#define INIT_TABLE_POS_parser___parser_nodes___TokenKeyword (SFT_parser___parser_nodes[18] + 0)
+#define ID_parser___parser_nodes___TKwmodule (SFT_parser___parser_nodes[19])
+#define COLOR_parser___parser_nodes___TKwmodule (SFT_parser___parser_nodes[20])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwmodule (SFT_parser___parser_nodes[21] + 0)
+#define ID_parser___parser_nodes___TKwimport (SFT_parser___parser_nodes[22])
+#define COLOR_parser___parser_nodes___TKwimport (SFT_parser___parser_nodes[23])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwimport (SFT_parser___parser_nodes[24] + 0)
+#define ID_parser___parser_nodes___TKwclass (SFT_parser___parser_nodes[25])
+#define COLOR_parser___parser_nodes___TKwclass (SFT_parser___parser_nodes[26])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwclass (SFT_parser___parser_nodes[27] + 0)
+#define ID_parser___parser_nodes___TKwabstract (SFT_parser___parser_nodes[28])
+#define COLOR_parser___parser_nodes___TKwabstract (SFT_parser___parser_nodes[29])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwabstract (SFT_parser___parser_nodes[30] + 0)
+#define ID_parser___parser_nodes___TKwinterface (SFT_parser___parser_nodes[31])
+#define COLOR_parser___parser_nodes___TKwinterface (SFT_parser___parser_nodes[32])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwinterface (SFT_parser___parser_nodes[33] + 0)
+#define ID_parser___parser_nodes___TKwenum (SFT_parser___parser_nodes[34])
+#define COLOR_parser___parser_nodes___TKwenum (SFT_parser___parser_nodes[35])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwenum (SFT_parser___parser_nodes[36] + 0)
+#define ID_parser___parser_nodes___TKwspecial (SFT_parser___parser_nodes[37])
+#define COLOR_parser___parser_nodes___TKwspecial (SFT_parser___parser_nodes[38])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwspecial (SFT_parser___parser_nodes[39] + 0)
+#define ID_parser___parser_nodes___TKwend (SFT_parser___parser_nodes[40])
+#define COLOR_parser___parser_nodes___TKwend (SFT_parser___parser_nodes[41])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwend (SFT_parser___parser_nodes[42] + 0)
+#define ID_parser___parser_nodes___TKwmeth (SFT_parser___parser_nodes[43])
+#define COLOR_parser___parser_nodes___TKwmeth (SFT_parser___parser_nodes[44])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwmeth (SFT_parser___parser_nodes[45] + 0)
+#define ID_parser___parser_nodes___TKwtype (SFT_parser___parser_nodes[46])
+#define COLOR_parser___parser_nodes___TKwtype (SFT_parser___parser_nodes[47])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwtype (SFT_parser___parser_nodes[48] + 0)
+#define ID_parser___parser_nodes___TKwinit (SFT_parser___parser_nodes[49])
+#define COLOR_parser___parser_nodes___TKwinit (SFT_parser___parser_nodes[50])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwinit (SFT_parser___parser_nodes[51] + 0)
+#define ID_parser___parser_nodes___TKwredef (SFT_parser___parser_nodes[52])
+#define COLOR_parser___parser_nodes___TKwredef (SFT_parser___parser_nodes[53])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwredef (SFT_parser___parser_nodes[54] + 0)
+#define ID_parser___parser_nodes___TKwis (SFT_parser___parser_nodes[55])
+#define COLOR_parser___parser_nodes___TKwis (SFT_parser___parser_nodes[56])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwis (SFT_parser___parser_nodes[57] + 0)
+#define ID_parser___parser_nodes___TKwdo (SFT_parser___parser_nodes[58])
+#define COLOR_parser___parser_nodes___TKwdo (SFT_parser___parser_nodes[59])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwdo (SFT_parser___parser_nodes[60] + 0)
+#define ID_parser___parser_nodes___TKwreadable (SFT_parser___parser_nodes[61])
+#define COLOR_parser___parser_nodes___TKwreadable (SFT_parser___parser_nodes[62])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwreadable (SFT_parser___parser_nodes[63] + 0)
+#define ID_parser___parser_nodes___TKwwritable (SFT_parser___parser_nodes[64])
+#define COLOR_parser___parser_nodes___TKwwritable (SFT_parser___parser_nodes[65])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwwritable (SFT_parser___parser_nodes[66] + 0)
+#define ID_parser___parser_nodes___TKwvar (SFT_parser___parser_nodes[67])
+#define COLOR_parser___parser_nodes___TKwvar (SFT_parser___parser_nodes[68])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwvar (SFT_parser___parser_nodes[69] + 0)
+#define ID_parser___parser_nodes___TKwintern (SFT_parser___parser_nodes[70])
+#define COLOR_parser___parser_nodes___TKwintern (SFT_parser___parser_nodes[71])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwintern (SFT_parser___parser_nodes[72] + 0)
+#define ID_parser___parser_nodes___TKwextern (SFT_parser___parser_nodes[73])
+#define COLOR_parser___parser_nodes___TKwextern (SFT_parser___parser_nodes[74])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwextern (SFT_parser___parser_nodes[75] + 0)
+#define ID_parser___parser_nodes___TKwprotected (SFT_parser___parser_nodes[76])
+#define COLOR_parser___parser_nodes___TKwprotected (SFT_parser___parser_nodes[77])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwprotected (SFT_parser___parser_nodes[78] + 0)
+#define ID_parser___parser_nodes___TKwprivate (SFT_parser___parser_nodes[79])
+#define COLOR_parser___parser_nodes___TKwprivate (SFT_parser___parser_nodes[80])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwprivate (SFT_parser___parser_nodes[81] + 0)
+#define ID_parser___parser_nodes___TKwintrude (SFT_parser___parser_nodes[82])
+#define COLOR_parser___parser_nodes___TKwintrude (SFT_parser___parser_nodes[83])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwintrude (SFT_parser___parser_nodes[84] + 0)
+#define ID_parser___parser_nodes___TKwif (SFT_parser___parser_nodes[85])
+#define COLOR_parser___parser_nodes___TKwif (SFT_parser___parser_nodes[86])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwif (SFT_parser___parser_nodes[87] + 0)
+#define ID_parser___parser_nodes___TKwthen (SFT_parser___parser_nodes[88])
+#define COLOR_parser___parser_nodes___TKwthen (SFT_parser___parser_nodes[89])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwthen (SFT_parser___parser_nodes[90] + 0)
+#define ID_parser___parser_nodes___TKwelse (SFT_parser___parser_nodes[91])
+#define COLOR_parser___parser_nodes___TKwelse (SFT_parser___parser_nodes[92])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwelse (SFT_parser___parser_nodes[93] + 0)
+#define ID_parser___parser_nodes___TKwwhile (SFT_parser___parser_nodes[94])
+#define COLOR_parser___parser_nodes___TKwwhile (SFT_parser___parser_nodes[95])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwwhile (SFT_parser___parser_nodes[96] + 0)
+#define ID_parser___parser_nodes___TKwloop (SFT_parser___parser_nodes[97])
+#define COLOR_parser___parser_nodes___TKwloop (SFT_parser___parser_nodes[98])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwloop (SFT_parser___parser_nodes[99] + 0)
+#define ID_parser___parser_nodes___TKwfor (SFT_parser___parser_nodes[100])
+#define COLOR_parser___parser_nodes___TKwfor (SFT_parser___parser_nodes[101])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwfor (SFT_parser___parser_nodes[102] + 0)
+#define ID_parser___parser_nodes___TKwin (SFT_parser___parser_nodes[103])
+#define COLOR_parser___parser_nodes___TKwin (SFT_parser___parser_nodes[104])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwin (SFT_parser___parser_nodes[105] + 0)
+#define ID_parser___parser_nodes___TKwand (SFT_parser___parser_nodes[106])
+#define COLOR_parser___parser_nodes___TKwand (SFT_parser___parser_nodes[107])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwand (SFT_parser___parser_nodes[108] + 0)
+#define ID_parser___parser_nodes___TKwor (SFT_parser___parser_nodes[109])
+#define COLOR_parser___parser_nodes___TKwor (SFT_parser___parser_nodes[110])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwor (SFT_parser___parser_nodes[111] + 0)
+#define ID_parser___parser_nodes___TKwnot (SFT_parser___parser_nodes[112])
+#define COLOR_parser___parser_nodes___TKwnot (SFT_parser___parser_nodes[113])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwnot (SFT_parser___parser_nodes[114] + 0)
+#define ID_parser___parser_nodes___TKwreturn (SFT_parser___parser_nodes[115])
+#define COLOR_parser___parser_nodes___TKwreturn (SFT_parser___parser_nodes[116])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwreturn (SFT_parser___parser_nodes[117] + 0)
+#define ID_parser___parser_nodes___TKwcontinue (SFT_parser___parser_nodes[118])
+#define COLOR_parser___parser_nodes___TKwcontinue (SFT_parser___parser_nodes[119])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwcontinue (SFT_parser___parser_nodes[120] + 0)
+#define ID_parser___parser_nodes___TKwbreak (SFT_parser___parser_nodes[121])
+#define COLOR_parser___parser_nodes___TKwbreak (SFT_parser___parser_nodes[122])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwbreak (SFT_parser___parser_nodes[123] + 0)
+#define ID_parser___parser_nodes___TKwabort (SFT_parser___parser_nodes[124])
+#define COLOR_parser___parser_nodes___TKwabort (SFT_parser___parser_nodes[125])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwabort (SFT_parser___parser_nodes[126] + 0)
+#define ID_parser___parser_nodes___TKwassert (SFT_parser___parser_nodes[127])
+#define COLOR_parser___parser_nodes___TKwassert (SFT_parser___parser_nodes[128])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwassert (SFT_parser___parser_nodes[129] + 0)
+#define ID_parser___parser_nodes___TKwnew (SFT_parser___parser_nodes[130])
+#define COLOR_parser___parser_nodes___TKwnew (SFT_parser___parser_nodes[131])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwnew (SFT_parser___parser_nodes[132] + 0)
+#define ID_parser___parser_nodes___TKwisa (SFT_parser___parser_nodes[133])
+#define COLOR_parser___parser_nodes___TKwisa (SFT_parser___parser_nodes[134])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwisa (SFT_parser___parser_nodes[135] + 0)
+#define ID_parser___parser_nodes___TKwonce (SFT_parser___parser_nodes[136])
+#define COLOR_parser___parser_nodes___TKwonce (SFT_parser___parser_nodes[137])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwonce (SFT_parser___parser_nodes[138] + 0)
+#define ID_parser___parser_nodes___TKwsuper (SFT_parser___parser_nodes[139])
+#define COLOR_parser___parser_nodes___TKwsuper (SFT_parser___parser_nodes[140])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwsuper (SFT_parser___parser_nodes[141] + 0)
+#define ID_parser___parser_nodes___TKwself (SFT_parser___parser_nodes[142])
+#define COLOR_parser___parser_nodes___TKwself (SFT_parser___parser_nodes[143])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwself (SFT_parser___parser_nodes[144] + 0)
+#define ID_parser___parser_nodes___TKwtrue (SFT_parser___parser_nodes[145])
+#define COLOR_parser___parser_nodes___TKwtrue (SFT_parser___parser_nodes[146])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwtrue (SFT_parser___parser_nodes[147] + 0)
+#define ID_parser___parser_nodes___TKwfalse (SFT_parser___parser_nodes[148])
+#define COLOR_parser___parser_nodes___TKwfalse (SFT_parser___parser_nodes[149])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwfalse (SFT_parser___parser_nodes[150] + 0)
+#define ID_parser___parser_nodes___TKwnull (SFT_parser___parser_nodes[151])
+#define COLOR_parser___parser_nodes___TKwnull (SFT_parser___parser_nodes[152])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwnull (SFT_parser___parser_nodes[153] + 0)
+#define ID_parser___parser_nodes___TKwas (SFT_parser___parser_nodes[154])
+#define COLOR_parser___parser_nodes___TKwas (SFT_parser___parser_nodes[155])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwas (SFT_parser___parser_nodes[156] + 0)
+#define ID_parser___parser_nodes___TKwnullable (SFT_parser___parser_nodes[157])
+#define COLOR_parser___parser_nodes___TKwnullable (SFT_parser___parser_nodes[158])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwnullable (SFT_parser___parser_nodes[159] + 0)
+#define ID_parser___parser_nodes___TKwisset (SFT_parser___parser_nodes[160])
+#define COLOR_parser___parser_nodes___TKwisset (SFT_parser___parser_nodes[161])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwisset (SFT_parser___parser_nodes[162] + 0)
+#define ID_parser___parser_nodes___TKwlabel (SFT_parser___parser_nodes[163])
+#define COLOR_parser___parser_nodes___TKwlabel (SFT_parser___parser_nodes[164])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwlabel (SFT_parser___parser_nodes[165] + 0)
+#define ID_parser___parser_nodes___TKwdebug (SFT_parser___parser_nodes[166])
+#define COLOR_parser___parser_nodes___TKwdebug (SFT_parser___parser_nodes[167])
+#define INIT_TABLE_POS_parser___parser_nodes___TKwdebug (SFT_parser___parser_nodes[168] + 0)
+#define ID_parser___parser_nodes___TOpar (SFT_parser___parser_nodes[169])
+#define COLOR_parser___parser_nodes___TOpar (SFT_parser___parser_nodes[170])
+#define INIT_TABLE_POS_parser___parser_nodes___TOpar (SFT_parser___parser_nodes[171] + 0)
+#define ID_parser___parser_nodes___TCpar (SFT_parser___parser_nodes[172])
+#define COLOR_parser___parser_nodes___TCpar (SFT_parser___parser_nodes[173])
+#define INIT_TABLE_POS_parser___parser_nodes___TCpar (SFT_parser___parser_nodes[174] + 0)
+#define ID_parser___parser_nodes___TObra (SFT_parser___parser_nodes[175])
+#define COLOR_parser___parser_nodes___TObra (SFT_parser___parser_nodes[176])
+#define INIT_TABLE_POS_parser___parser_nodes___TObra (SFT_parser___parser_nodes[177] + 0)
+#define ID_parser___parser_nodes___TCbra (SFT_parser___parser_nodes[178])
+#define COLOR_parser___parser_nodes___TCbra (SFT_parser___parser_nodes[179])
+#define INIT_TABLE_POS_parser___parser_nodes___TCbra (SFT_parser___parser_nodes[180] + 0)
+#define ID_parser___parser_nodes___TComma (SFT_parser___parser_nodes[181])
+#define COLOR_parser___parser_nodes___TComma (SFT_parser___parser_nodes[182])
+#define INIT_TABLE_POS_parser___parser_nodes___TComma (SFT_parser___parser_nodes[183] + 0)
+#define ID_parser___parser_nodes___TColumn (SFT_parser___parser_nodes[184])
+#define COLOR_parser___parser_nodes___TColumn (SFT_parser___parser_nodes[185])
+#define INIT_TABLE_POS_parser___parser_nodes___TColumn (SFT_parser___parser_nodes[186] + 0)
+#define ID_parser___parser_nodes___TQuad (SFT_parser___parser_nodes[187])
+#define COLOR_parser___parser_nodes___TQuad (SFT_parser___parser_nodes[188])
+#define INIT_TABLE_POS_parser___parser_nodes___TQuad (SFT_parser___parser_nodes[189] + 0)
+#define ID_parser___parser_nodes___TAssign (SFT_parser___parser_nodes[190])
+#define COLOR_parser___parser_nodes___TAssign (SFT_parser___parser_nodes[191])
+#define INIT_TABLE_POS_parser___parser_nodes___TAssign (SFT_parser___parser_nodes[192] + 0)
+#define ID_parser___parser_nodes___TokenOperator (SFT_parser___parser_nodes[193])
+#define COLOR_parser___parser_nodes___TokenOperator (SFT_parser___parser_nodes[194])
+#define INIT_TABLE_POS_parser___parser_nodes___TokenOperator (SFT_parser___parser_nodes[195] + 0)
+#define ID_parser___parser_nodes___TPluseq (SFT_parser___parser_nodes[196])
+#define COLOR_parser___parser_nodes___TPluseq (SFT_parser___parser_nodes[197])
+#define INIT_TABLE_POS_parser___parser_nodes___TPluseq (SFT_parser___parser_nodes[198] + 0)
+#define ID_parser___parser_nodes___TMinuseq (SFT_parser___parser_nodes[199])
+#define COLOR_parser___parser_nodes___TMinuseq (SFT_parser___parser_nodes[200])
+#define INIT_TABLE_POS_parser___parser_nodes___TMinuseq (SFT_parser___parser_nodes[201] + 0)
+#define ID_parser___parser_nodes___TDotdotdot (SFT_parser___parser_nodes[202])
+#define COLOR_parser___parser_nodes___TDotdotdot (SFT_parser___parser_nodes[203])
+#define INIT_TABLE_POS_parser___parser_nodes___TDotdotdot (SFT_parser___parser_nodes[204] + 0)
+#define ID_parser___parser_nodes___TDotdot (SFT_parser___parser_nodes[205])
+#define COLOR_parser___parser_nodes___TDotdot (SFT_parser___parser_nodes[206])
+#define INIT_TABLE_POS_parser___parser_nodes___TDotdot (SFT_parser___parser_nodes[207] + 0)
+#define ID_parser___parser_nodes___TDot (SFT_parser___parser_nodes[208])
+#define COLOR_parser___parser_nodes___TDot (SFT_parser___parser_nodes[209])
+#define INIT_TABLE_POS_parser___parser_nodes___TDot (SFT_parser___parser_nodes[210] + 0)
+#define ID_parser___parser_nodes___TPlus (SFT_parser___parser_nodes[211])
+#define COLOR_parser___parser_nodes___TPlus (SFT_parser___parser_nodes[212])
+#define INIT_TABLE_POS_parser___parser_nodes___TPlus (SFT_parser___parser_nodes[213] + 0)
+#define ID_parser___parser_nodes___TMinus (SFT_parser___parser_nodes[214])
+#define COLOR_parser___parser_nodes___TMinus (SFT_parser___parser_nodes[215])
+#define INIT_TABLE_POS_parser___parser_nodes___TMinus (SFT_parser___parser_nodes[216] + 0)
+#define ID_parser___parser_nodes___TStar (SFT_parser___parser_nodes[217])
+#define COLOR_parser___parser_nodes___TStar (SFT_parser___parser_nodes[218])
+#define INIT_TABLE_POS_parser___parser_nodes___TStar (SFT_parser___parser_nodes[219] + 0)
+#define ID_parser___parser_nodes___TSlash (SFT_parser___parser_nodes[220])
+#define COLOR_parser___parser_nodes___TSlash (SFT_parser___parser_nodes[221])
+#define INIT_TABLE_POS_parser___parser_nodes___TSlash (SFT_parser___parser_nodes[222] + 0)
+#define ID_parser___parser_nodes___TPercent (SFT_parser___parser_nodes[223])
+#define COLOR_parser___parser_nodes___TPercent (SFT_parser___parser_nodes[224])
+#define INIT_TABLE_POS_parser___parser_nodes___TPercent (SFT_parser___parser_nodes[225] + 0)
+#define ID_parser___parser_nodes___TEq (SFT_parser___parser_nodes[226])
+#define COLOR_parser___parser_nodes___TEq (SFT_parser___parser_nodes[227])
+#define INIT_TABLE_POS_parser___parser_nodes___TEq (SFT_parser___parser_nodes[228] + 0)
+#define ID_parser___parser_nodes___TNe (SFT_parser___parser_nodes[229])
+#define COLOR_parser___parser_nodes___TNe (SFT_parser___parser_nodes[230])
+#define INIT_TABLE_POS_parser___parser_nodes___TNe (SFT_parser___parser_nodes[231] + 0)
+#define ID_parser___parser_nodes___TLt (SFT_parser___parser_nodes[232])
+#define COLOR_parser___parser_nodes___TLt (SFT_parser___parser_nodes[233])
+#define INIT_TABLE_POS_parser___parser_nodes___TLt (SFT_parser___parser_nodes[234] + 0)
+#define ID_parser___parser_nodes___TLe (SFT_parser___parser_nodes[235])
+#define COLOR_parser___parser_nodes___TLe (SFT_parser___parser_nodes[236])
+#define INIT_TABLE_POS_parser___parser_nodes___TLe (SFT_parser___parser_nodes[237] + 0)
+#define ID_parser___parser_nodes___TLl (SFT_parser___parser_nodes[238])
+#define COLOR_parser___parser_nodes___TLl (SFT_parser___parser_nodes[239])
+#define INIT_TABLE_POS_parser___parser_nodes___TLl (SFT_parser___parser_nodes[240] + 0)
+#define ID_parser___parser_nodes___TGt (SFT_parser___parser_nodes[241])
+#define COLOR_parser___parser_nodes___TGt (SFT_parser___parser_nodes[242])
+#define INIT_TABLE_POS_parser___parser_nodes___TGt (SFT_parser___parser_nodes[243] + 0)
+#define ID_parser___parser_nodes___TGe (SFT_parser___parser_nodes[244])
+#define COLOR_parser___parser_nodes___TGe (SFT_parser___parser_nodes[245])
+#define INIT_TABLE_POS_parser___parser_nodes___TGe (SFT_parser___parser_nodes[246] + 0)
+#define ID_parser___parser_nodes___TGg (SFT_parser___parser_nodes[247])
+#define COLOR_parser___parser_nodes___TGg (SFT_parser___parser_nodes[248])
+#define INIT_TABLE_POS_parser___parser_nodes___TGg (SFT_parser___parser_nodes[249] + 0)
+#define ID_parser___parser_nodes___TStarship (SFT_parser___parser_nodes[250])
+#define COLOR_parser___parser_nodes___TStarship (SFT_parser___parser_nodes[251])
+#define INIT_TABLE_POS_parser___parser_nodes___TStarship (SFT_parser___parser_nodes[252] + 0)
+#define ID_parser___parser_nodes___TBang (SFT_parser___parser_nodes[253])
+#define COLOR_parser___parser_nodes___TBang (SFT_parser___parser_nodes[254])
+#define INIT_TABLE_POS_parser___parser_nodes___TBang (SFT_parser___parser_nodes[255] + 0)
+#define ID_parser___parser_nodes___TClassid (SFT_parser___parser_nodes[256])
+#define COLOR_parser___parser_nodes___TClassid (SFT_parser___parser_nodes[257])
+#define INIT_TABLE_POS_parser___parser_nodes___TClassid (SFT_parser___parser_nodes[258] + 0)
+#define ID_parser___parser_nodes___TId (SFT_parser___parser_nodes[259])
+#define COLOR_parser___parser_nodes___TId (SFT_parser___parser_nodes[260])
+#define INIT_TABLE_POS_parser___parser_nodes___TId (SFT_parser___parser_nodes[261] + 0)
+#define ID_parser___parser_nodes___TAttrid (SFT_parser___parser_nodes[262])
+#define COLOR_parser___parser_nodes___TAttrid (SFT_parser___parser_nodes[263])
+#define INIT_TABLE_POS_parser___parser_nodes___TAttrid (SFT_parser___parser_nodes[264] + 0)
+#define ID_parser___parser_nodes___TokenLiteral (SFT_parser___parser_nodes[265])
+#define COLOR_parser___parser_nodes___TokenLiteral (SFT_parser___parser_nodes[266])
+#define INIT_TABLE_POS_parser___parser_nodes___TokenLiteral (SFT_parser___parser_nodes[267] + 0)
+#define ID_parser___parser_nodes___TNumber (SFT_parser___parser_nodes[268])
+#define COLOR_parser___parser_nodes___TNumber (SFT_parser___parser_nodes[269])
+#define INIT_TABLE_POS_parser___parser_nodes___TNumber (SFT_parser___parser_nodes[270] + 0)
+#define ID_parser___parser_nodes___TFloat (SFT_parser___parser_nodes[271])
+#define COLOR_parser___parser_nodes___TFloat (SFT_parser___parser_nodes[272])
+#define INIT_TABLE_POS_parser___parser_nodes___TFloat (SFT_parser___parser_nodes[273] + 0)
+#define ID_parser___parser_nodes___TChar (SFT_parser___parser_nodes[274])
+#define COLOR_parser___parser_nodes___TChar (SFT_parser___parser_nodes[275])
+#define INIT_TABLE_POS_parser___parser_nodes___TChar (SFT_parser___parser_nodes[276] + 0)
+#define ID_parser___parser_nodes___TString (SFT_parser___parser_nodes[277])
+#define COLOR_parser___parser_nodes___TString (SFT_parser___parser_nodes[278])
+#define INIT_TABLE_POS_parser___parser_nodes___TString (SFT_parser___parser_nodes[279] + 0)
+#define ID_parser___parser_nodes___TStartString (SFT_parser___parser_nodes[280])
+#define COLOR_parser___parser_nodes___TStartString (SFT_parser___parser_nodes[281])
+#define INIT_TABLE_POS_parser___parser_nodes___TStartString (SFT_parser___parser_nodes[282] + 0)
+#define ID_parser___parser_nodes___TMidString (SFT_parser___parser_nodes[283])
+#define COLOR_parser___parser_nodes___TMidString (SFT_parser___parser_nodes[284])
+#define INIT_TABLE_POS_parser___parser_nodes___TMidString (SFT_parser___parser_nodes[285] + 0)
+#define ID_parser___parser_nodes___TEndString (SFT_parser___parser_nodes[286])
+#define COLOR_parser___parser_nodes___TEndString (SFT_parser___parser_nodes[287])
+#define INIT_TABLE_POS_parser___parser_nodes___TEndString (SFT_parser___parser_nodes[288] + 0)
+#define ID_parser___parser_nodes___TBadString (SFT_parser___parser_nodes[289])
+#define COLOR_parser___parser_nodes___TBadString (SFT_parser___parser_nodes[290])
+#define INIT_TABLE_POS_parser___parser_nodes___TBadString (SFT_parser___parser_nodes[291] + 0)
+#define ID_parser___parser_nodes___TBadChar (SFT_parser___parser_nodes[292])
+#define COLOR_parser___parser_nodes___TBadChar (SFT_parser___parser_nodes[293])
+#define INIT_TABLE_POS_parser___parser_nodes___TBadChar (SFT_parser___parser_nodes[294] + 0)
+#define ID_parser___parser_nodes___EOF (SFT_parser___parser_nodes[295])
+#define COLOR_parser___parser_nodes___EOF (SFT_parser___parser_nodes[296])
+#define INIT_TABLE_POS_parser___parser_nodes___EOF (SFT_parser___parser_nodes[297] + 0)
+#define CALL_parser___parser_nodes___EOF___noinit(recv) ((parser___parser_nodes___EOF___noinit_t)CALL((recv), (SFT_parser___parser_nodes[297] + 1)))
+#define ID_parser___parser_nodes___AError (SFT_parser___parser_nodes[298])
+#define COLOR_parser___parser_nodes___AError (SFT_parser___parser_nodes[299])
+#define INIT_TABLE_POS_parser___parser_nodes___AError (SFT_parser___parser_nodes[300] + 0)
+#define CALL_parser___parser_nodes___AError___noinit(recv) ((parser___parser_nodes___AError___noinit_t)CALL((recv), (SFT_parser___parser_nodes[300] + 1)))
+#define ID_parser___parser_nodes___AModule (SFT_parser___parser_nodes[301])
+#define COLOR_parser___parser_nodes___AModule (SFT_parser___parser_nodes[302])
+#define ATTR_parser___parser_nodes___AModule____n_moduledecl(recv) ATTR(recv, (SFT_parser___parser_nodes[303] + 0))
+#define ATTR_parser___parser_nodes___AModule____n_imports(recv) ATTR(recv, (SFT_parser___parser_nodes[303] + 1))
+#define ATTR_parser___parser_nodes___AModule____n_classdefs(recv) ATTR(recv, (SFT_parser___parser_nodes[303] + 2))
+#define INIT_TABLE_POS_parser___parser_nodes___AModule (SFT_parser___parser_nodes[304] + 0)
+#define CALL_parser___parser_nodes___AModule___n_moduledecl(recv) ((parser___parser_nodes___AModule___n_moduledecl_t)CALL((recv), (SFT_parser___parser_nodes[304] + 1)))
+#define CALL_parser___parser_nodes___AModule___n_imports(recv) ((parser___parser_nodes___AModule___n_imports_t)CALL((recv), (SFT_parser___parser_nodes[304] + 2)))
+#define CALL_parser___parser_nodes___AModule___n_classdefs(recv) ((parser___parser_nodes___AModule___n_classdefs_t)CALL((recv), (SFT_parser___parser_nodes[304] + 3)))
+#define ID_parser___parser_nodes___AModuledecl (SFT_parser___parser_nodes[305])
+#define COLOR_parser___parser_nodes___AModuledecl (SFT_parser___parser_nodes[306])
+#define ATTR_parser___parser_nodes___AModuledecl____n_doc(recv) ATTR(recv, (SFT_parser___parser_nodes[307] + 0))
+#define ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(recv) ATTR(recv, (SFT_parser___parser_nodes[307] + 1))
+#define ATTR_parser___parser_nodes___AModuledecl____n_name(recv) ATTR(recv, (SFT_parser___parser_nodes[307] + 2))
+#define INIT_TABLE_POS_parser___parser_nodes___AModuledecl (SFT_parser___parser_nodes[308] + 0)
+#define CALL_parser___parser_nodes___AModuledecl___n_doc(recv) ((parser___parser_nodes___AModuledecl___n_doc_t)CALL((recv), (SFT_parser___parser_nodes[308] + 1)))
+#define CALL_parser___parser_nodes___AModuledecl___n_kwmodule(recv) ((parser___parser_nodes___AModuledecl___n_kwmodule_t)CALL((recv), (SFT_parser___parser_nodes[308] + 2)))
+#define CALL_parser___parser_nodes___AModuledecl___n_name(recv) ((parser___parser_nodes___AModuledecl___n_name_t)CALL((recv), (SFT_parser___parser_nodes[308] + 3)))
+#define ID_parser___parser_nodes___AImport (SFT_parser___parser_nodes[309])
+#define COLOR_parser___parser_nodes___AImport (SFT_parser___parser_nodes[310])
+#define INIT_TABLE_POS_parser___parser_nodes___AImport (SFT_parser___parser_nodes[311] + 0)
+#define ID_parser___parser_nodes___AStdImport (SFT_parser___parser_nodes[312])
+#define COLOR_parser___parser_nodes___AStdImport (SFT_parser___parser_nodes[313])
+#define ATTR_parser___parser_nodes___AStdImport____n_visibility(recv) ATTR(recv, (SFT_parser___parser_nodes[314] + 0))
+#define ATTR_parser___parser_nodes___AStdImport____n_kwimport(recv) ATTR(recv, (SFT_parser___parser_nodes[314] + 1))
+#define ATTR_parser___parser_nodes___AStdImport____n_name(recv) ATTR(recv, (SFT_parser___parser_nodes[314] + 2))
+#define INIT_TABLE_POS_parser___parser_nodes___AStdImport (SFT_parser___parser_nodes[315] + 0)
+#define CALL_parser___parser_nodes___AStdImport___n_visibility(recv) ((parser___parser_nodes___AStdImport___n_visibility_t)CALL((recv), (SFT_parser___parser_nodes[315] + 1)))
+#define CALL_parser___parser_nodes___AStdImport___n_kwimport(recv) ((parser___parser_nodes___AStdImport___n_kwimport_t)CALL((recv), (SFT_parser___parser_nodes[315] + 2)))
+#define CALL_parser___parser_nodes___AStdImport___n_name(recv) ((parser___parser_nodes___AStdImport___n_name_t)CALL((recv), (SFT_parser___parser_nodes[315] + 3)))
+#define ID_parser___parser_nodes___ANoImport (SFT_parser___parser_nodes[316])
+#define COLOR_parser___parser_nodes___ANoImport (SFT_parser___parser_nodes[317])
+#define ATTR_parser___parser_nodes___ANoImport____n_visibility(recv) ATTR(recv, (SFT_parser___parser_nodes[318] + 0))
+#define ATTR_parser___parser_nodes___ANoImport____n_kwimport(recv) ATTR(recv, (SFT_parser___parser_nodes[318] + 1))
+#define ATTR_parser___parser_nodes___ANoImport____n_kwend(recv) ATTR(recv, (SFT_parser___parser_nodes[318] + 2))
+#define INIT_TABLE_POS_parser___parser_nodes___ANoImport (SFT_parser___parser_nodes[319] + 0)
+#define CALL_parser___parser_nodes___ANoImport___n_visibility(recv) ((parser___parser_nodes___ANoImport___n_visibility_t)CALL((recv), (SFT_parser___parser_nodes[319] + 1)))
+#define CALL_parser___parser_nodes___ANoImport___n_kwimport(recv) ((parser___parser_nodes___ANoImport___n_kwimport_t)CALL((recv), (SFT_parser___parser_nodes[319] + 2)))
+#define CALL_parser___parser_nodes___ANoImport___n_kwend(recv) ((parser___parser_nodes___ANoImport___n_kwend_t)CALL((recv), (SFT_parser___parser_nodes[319] + 3)))
+#define ID_parser___parser_nodes___AVisibility (SFT_parser___parser_nodes[320])
+#define COLOR_parser___parser_nodes___AVisibility (SFT_parser___parser_nodes[321])
+#define INIT_TABLE_POS_parser___parser_nodes___AVisibility (SFT_parser___parser_nodes[322] + 0)
+#define ID_parser___parser_nodes___APublicVisibility (SFT_parser___parser_nodes[323])
+#define COLOR_parser___parser_nodes___APublicVisibility (SFT_parser___parser_nodes[324])
+#define INIT_TABLE_POS_parser___parser_nodes___APublicVisibility (SFT_parser___parser_nodes[325] + 0)
+#define ID_parser___parser_nodes___APrivateVisibility (SFT_parser___parser_nodes[326])
+#define COLOR_parser___parser_nodes___APrivateVisibility (SFT_parser___parser_nodes[327])
+#define ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(recv) ATTR(recv, (SFT_parser___parser_nodes[328] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___APrivateVisibility (SFT_parser___parser_nodes[329] + 0)
+#define CALL_parser___parser_nodes___APrivateVisibility___n_kwprivate(recv) ((parser___parser_nodes___APrivateVisibility___n_kwprivate_t)CALL((recv), (SFT_parser___parser_nodes[329] + 1)))
+#define ID_parser___parser_nodes___AProtectedVisibility (SFT_parser___parser_nodes[330])
+#define COLOR_parser___parser_nodes___AProtectedVisibility (SFT_parser___parser_nodes[331])
+#define ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(recv) ATTR(recv, (SFT_parser___parser_nodes[332] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AProtectedVisibility (SFT_parser___parser_nodes[333] + 0)
+#define CALL_parser___parser_nodes___AProtectedVisibility___n_kwprotected(recv) ((parser___parser_nodes___AProtectedVisibility___n_kwprotected_t)CALL((recv), (SFT_parser___parser_nodes[333] + 1)))
+#define ID_parser___parser_nodes___AIntrudeVisibility (SFT_parser___parser_nodes[334])
+#define COLOR_parser___parser_nodes___AIntrudeVisibility (SFT_parser___parser_nodes[335])
+#define ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(recv) ATTR(recv, (SFT_parser___parser_nodes[336] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AIntrudeVisibility (SFT_parser___parser_nodes[337] + 0)
+#define CALL_parser___parser_nodes___AIntrudeVisibility___n_kwintrude(recv) ((parser___parser_nodes___AIntrudeVisibility___n_kwintrude_t)CALL((recv), (SFT_parser___parser_nodes[337] + 1)))
+#define ID_parser___parser_nodes___AClassdef (SFT_parser___parser_nodes[338])
+#define COLOR_parser___parser_nodes___AClassdef (SFT_parser___parser_nodes[339])
+#define ATTR_parser___parser_nodes___AClassdef____n_propdefs(recv) ATTR(recv, (SFT_parser___parser_nodes[340] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AClassdef (SFT_parser___parser_nodes[341] + 0)
+#define CALL_parser___parser_nodes___AClassdef___n_propdefs(recv) ((parser___parser_nodes___AClassdef___n_propdefs_t)CALL((recv), (SFT_parser___parser_nodes[341] + 1)))
+#define ID_parser___parser_nodes___AStdClassdef (SFT_parser___parser_nodes[342])
+#define COLOR_parser___parser_nodes___AStdClassdef (SFT_parser___parser_nodes[343])
+#define ATTR_parser___parser_nodes___AStdClassdef____n_doc(recv) ATTR(recv, (SFT_parser___parser_nodes[344] + 0))
+#define ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(recv) ATTR(recv, (SFT_parser___parser_nodes[344] + 1))
+#define ATTR_parser___parser_nodes___AStdClassdef____n_visibility(recv) ATTR(recv, (SFT_parser___parser_nodes[344] + 2))
+#define ATTR_parser___parser_nodes___AStdClassdef____n_classkind(recv) ATTR(recv, (SFT_parser___parser_nodes[344] + 3))
+#define ATTR_parser___parser_nodes___AStdClassdef____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[344] + 4))
+#define ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(recv) ATTR(recv, (SFT_parser___parser_nodes[344] + 5))
+#define ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(recv) ATTR(recv, (SFT_parser___parser_nodes[344] + 6))
+#define ATTR_parser___parser_nodes___AStdClassdef____n_kwend(recv) ATTR(recv, (SFT_parser___parser_nodes[344] + 7))
+#define INIT_TABLE_POS_parser___parser_nodes___AStdClassdef (SFT_parser___parser_nodes[345] + 0)
+#define CALL_parser___parser_nodes___AStdClassdef___n_doc(recv) ((parser___parser_nodes___AStdClassdef___n_doc_t)CALL((recv), (SFT_parser___parser_nodes[345] + 1)))
+#define CALL_parser___parser_nodes___AStdClassdef___n_kwredef(recv) ((parser___parser_nodes___AStdClassdef___n_kwredef_t)CALL((recv), (SFT_parser___parser_nodes[345] + 2)))
+#define CALL_parser___parser_nodes___AStdClassdef___n_visibility(recv) ((parser___parser_nodes___AStdClassdef___n_visibility_t)CALL((recv), (SFT_parser___parser_nodes[345] + 3)))
+#define CALL_parser___parser_nodes___AStdClassdef___n_classkind(recv) ((parser___parser_nodes___AStdClassdef___n_classkind_t)CALL((recv), (SFT_parser___parser_nodes[345] + 4)))
+#define CALL_parser___parser_nodes___AStdClassdef___n_id(recv) ((parser___parser_nodes___AStdClassdef___n_id_t)CALL((recv), (SFT_parser___parser_nodes[345] + 5)))
+#define CALL_parser___parser_nodes___AStdClassdef___n_formaldefs(recv) ((parser___parser_nodes___AStdClassdef___n_formaldefs_t)CALL((recv), (SFT_parser___parser_nodes[345] + 6)))
+#define CALL_parser___parser_nodes___AStdClassdef___n_superclasses(recv) ((parser___parser_nodes___AStdClassdef___n_superclasses_t)CALL((recv), (SFT_parser___parser_nodes[345] + 7)))
+#define CALL_parser___parser_nodes___AStdClassdef___n_kwend(recv) ((parser___parser_nodes___AStdClassdef___n_kwend_t)CALL((recv), (SFT_parser___parser_nodes[345] + 8)))
+#define ID_parser___parser_nodes___ATopClassdef (SFT_parser___parser_nodes[346])
+#define COLOR_parser___parser_nodes___ATopClassdef (SFT_parser___parser_nodes[347])
+#define INIT_TABLE_POS_parser___parser_nodes___ATopClassdef (SFT_parser___parser_nodes[348] + 0)
+#define ID_parser___parser_nodes___AMainClassdef (SFT_parser___parser_nodes[349])
+#define COLOR_parser___parser_nodes___AMainClassdef (SFT_parser___parser_nodes[350])
+#define INIT_TABLE_POS_parser___parser_nodes___AMainClassdef (SFT_parser___parser_nodes[351] + 0)
+#define ID_parser___parser_nodes___AClasskind (SFT_parser___parser_nodes[352])
+#define COLOR_parser___parser_nodes___AClasskind (SFT_parser___parser_nodes[353])
+#define INIT_TABLE_POS_parser___parser_nodes___AClasskind (SFT_parser___parser_nodes[354] + 0)
+#define ID_parser___parser_nodes___AConcreteClasskind (SFT_parser___parser_nodes[355])
+#define COLOR_parser___parser_nodes___AConcreteClasskind (SFT_parser___parser_nodes[356])
+#define ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(recv) ATTR(recv, (SFT_parser___parser_nodes[357] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AConcreteClasskind (SFT_parser___parser_nodes[358] + 0)
+#define CALL_parser___parser_nodes___AConcreteClasskind___n_kwclass(recv) ((parser___parser_nodes___AConcreteClasskind___n_kwclass_t)CALL((recv), (SFT_parser___parser_nodes[358] + 1)))
+#define ID_parser___parser_nodes___AAbstractClasskind (SFT_parser___parser_nodes[359])
+#define COLOR_parser___parser_nodes___AAbstractClasskind (SFT_parser___parser_nodes[360])
+#define ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(recv) ATTR(recv, (SFT_parser___parser_nodes[361] + 0))
+#define ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(recv) ATTR(recv, (SFT_parser___parser_nodes[361] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AAbstractClasskind (SFT_parser___parser_nodes[362] + 0)
+#define CALL_parser___parser_nodes___AAbstractClasskind___n_kwabstract(recv) ((parser___parser_nodes___AAbstractClasskind___n_kwabstract_t)CALL((recv), (SFT_parser___parser_nodes[362] + 1)))
+#define CALL_parser___parser_nodes___AAbstractClasskind___n_kwclass(recv) ((parser___parser_nodes___AAbstractClasskind___n_kwclass_t)CALL((recv), (SFT_parser___parser_nodes[362] + 2)))
+#define ID_parser___parser_nodes___AInterfaceClasskind (SFT_parser___parser_nodes[363])
+#define COLOR_parser___parser_nodes___AInterfaceClasskind (SFT_parser___parser_nodes[364])
+#define ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(recv) ATTR(recv, (SFT_parser___parser_nodes[365] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AInterfaceClasskind (SFT_parser___parser_nodes[366] + 0)
+#define CALL_parser___parser_nodes___AInterfaceClasskind___n_kwinterface(recv) ((parser___parser_nodes___AInterfaceClasskind___n_kwinterface_t)CALL((recv), (SFT_parser___parser_nodes[366] + 1)))
+#define ID_parser___parser_nodes___AEnumClasskind (SFT_parser___parser_nodes[367])
+#define COLOR_parser___parser_nodes___AEnumClasskind (SFT_parser___parser_nodes[368])
+#define ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(recv) ATTR(recv, (SFT_parser___parser_nodes[369] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AEnumClasskind (SFT_parser___parser_nodes[370] + 0)
+#define CALL_parser___parser_nodes___AEnumClasskind___n_kwenum(recv) ((parser___parser_nodes___AEnumClasskind___n_kwenum_t)CALL((recv), (SFT_parser___parser_nodes[370] + 1)))
+#define ID_parser___parser_nodes___AExternClasskind (SFT_parser___parser_nodes[371])
+#define COLOR_parser___parser_nodes___AExternClasskind (SFT_parser___parser_nodes[372])
+#define ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(recv) ATTR(recv, (SFT_parser___parser_nodes[373] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AExternClasskind (SFT_parser___parser_nodes[374] + 0)
+#define CALL_parser___parser_nodes___AExternClasskind___n_kwextern(recv) ((parser___parser_nodes___AExternClasskind___n_kwextern_t)CALL((recv), (SFT_parser___parser_nodes[374] + 1)))
+#define ID_parser___parser_nodes___AFormaldef (SFT_parser___parser_nodes[375])
+#define COLOR_parser___parser_nodes___AFormaldef (SFT_parser___parser_nodes[376])
+#define ATTR_parser___parser_nodes___AFormaldef____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[377] + 0))
+#define ATTR_parser___parser_nodes___AFormaldef____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[377] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AFormaldef (SFT_parser___parser_nodes[378] + 0)
+#define CALL_parser___parser_nodes___AFormaldef___n_id(recv) ((parser___parser_nodes___AFormaldef___n_id_t)CALL((recv), (SFT_parser___parser_nodes[378] + 1)))
+#define CALL_parser___parser_nodes___AFormaldef___n_type(recv) ((parser___parser_nodes___AFormaldef___n_type_t)CALL((recv), (SFT_parser___parser_nodes[378] + 2)))
+#define ID_parser___parser_nodes___ASuperclass (SFT_parser___parser_nodes[379])
+#define COLOR_parser___parser_nodes___ASuperclass (SFT_parser___parser_nodes[380])
+#define ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(recv) ATTR(recv, (SFT_parser___parser_nodes[381] + 0))
+#define ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(recv) ATTR(recv, (SFT_parser___parser_nodes[381] + 1))
+#define ATTR_parser___parser_nodes___ASuperclass____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[381] + 2))
+#define INIT_TABLE_POS_parser___parser_nodes___ASuperclass (SFT_parser___parser_nodes[382] + 0)
+#define CALL_parser___parser_nodes___ASuperclass___n_kwspecial(recv) ((parser___parser_nodes___ASuperclass___n_kwspecial_t)CALL((recv), (SFT_parser___parser_nodes[382] + 1)))
+#define CALL_parser___parser_nodes___ASuperclass___n_kwsuper(recv) ((parser___parser_nodes___ASuperclass___n_kwsuper_t)CALL((recv), (SFT_parser___parser_nodes[382] + 2)))
+#define CALL_parser___parser_nodes___ASuperclass___n_type(recv) ((parser___parser_nodes___ASuperclass___n_type_t)CALL((recv), (SFT_parser___parser_nodes[382] + 3)))
+#define ID_parser___parser_nodes___APropdef (SFT_parser___parser_nodes[383])
+#define COLOR_parser___parser_nodes___APropdef (SFT_parser___parser_nodes[384])
+#define ATTR_parser___parser_nodes___APropdef____n_doc(recv) ATTR(recv, (SFT_parser___parser_nodes[385] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___APropdef (SFT_parser___parser_nodes[386] + 0)
+#define CALL_parser___parser_nodes___APropdef___n_doc(recv) ((parser___parser_nodes___APropdef___n_doc_t)CALL((recv), (SFT_parser___parser_nodes[386] + 1)))
+#define ID_parser___parser_nodes___AAttrPropdef (SFT_parser___parser_nodes[387])
+#define COLOR_parser___parser_nodes___AAttrPropdef (SFT_parser___parser_nodes[388])
+#define ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(recv) ATTR(recv, (SFT_parser___parser_nodes[389] + 0))
+#define ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(recv) ATTR(recv, (SFT_parser___parser_nodes[389] + 1))
+#define ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(recv) ATTR(recv, (SFT_parser___parser_nodes[389] + 2))
+#define ATTR_parser___parser_nodes___AAttrPropdef____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[389] + 3))
+#define ATTR_parser___parser_nodes___AAttrPropdef____n_id2(recv) ATTR(recv, (SFT_parser___parser_nodes[389] + 4))
+#define ATTR_parser___parser_nodes___AAttrPropdef____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[389] + 5))
+#define ATTR_parser___parser_nodes___AAttrPropdef____n_readable(recv) ATTR(recv, (SFT_parser___parser_nodes[389] + 6))
+#define ATTR_parser___parser_nodes___AAttrPropdef____n_writable(recv) ATTR(recv, (SFT_parser___parser_nodes[389] + 7))
+#define ATTR_parser___parser_nodes___AAttrPropdef____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[389] + 8))
+#define INIT_TABLE_POS_parser___parser_nodes___AAttrPropdef (SFT_parser___parser_nodes[390] + 0)
+#define CALL_parser___parser_nodes___AAttrPropdef___n_kwredef(recv) ((parser___parser_nodes___AAttrPropdef___n_kwredef_t)CALL((recv), (SFT_parser___parser_nodes[390] + 1)))
+#define CALL_parser___parser_nodes___AAttrPropdef___n_visibility(recv) ((parser___parser_nodes___AAttrPropdef___n_visibility_t)CALL((recv), (SFT_parser___parser_nodes[390] + 2)))
+#define CALL_parser___parser_nodes___AAttrPropdef___n_kwvar(recv) ((parser___parser_nodes___AAttrPropdef___n_kwvar_t)CALL((recv), (SFT_parser___parser_nodes[390] + 3)))
+#define CALL_parser___parser_nodes___AAttrPropdef___n_id(recv) ((parser___parser_nodes___AAttrPropdef___n_id_t)CALL((recv), (SFT_parser___parser_nodes[390] + 4)))
+#define CALL_parser___parser_nodes___AAttrPropdef___n_id2(recv) ((parser___parser_nodes___AAttrPropdef___n_id2_t)CALL((recv), (SFT_parser___parser_nodes[390] + 5)))
+#define CALL_parser___parser_nodes___AAttrPropdef___n_type(recv) ((parser___parser_nodes___AAttrPropdef___n_type_t)CALL((recv), (SFT_parser___parser_nodes[390] + 6)))
+#define CALL_parser___parser_nodes___AAttrPropdef___n_readable(recv) ((parser___parser_nodes___AAttrPropdef___n_readable_t)CALL((recv), (SFT_parser___parser_nodes[390] + 7)))
+#define CALL_parser___parser_nodes___AAttrPropdef___n_writable(recv) ((parser___parser_nodes___AAttrPropdef___n_writable_t)CALL((recv), (SFT_parser___parser_nodes[390] + 8)))
+#define CALL_parser___parser_nodes___AAttrPropdef___n_expr(recv) ((parser___parser_nodes___AAttrPropdef___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[390] + 9)))
+#define ID_parser___parser_nodes___AMethPropdef (SFT_parser___parser_nodes[391])
+#define COLOR_parser___parser_nodes___AMethPropdef (SFT_parser___parser_nodes[392])
+#define ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(recv) ATTR(recv, (SFT_parser___parser_nodes[393] + 0))
+#define ATTR_parser___parser_nodes___AMethPropdef____n_visibility(recv) ATTR(recv, (SFT_parser___parser_nodes[393] + 1))
+#define ATTR_parser___parser_nodes___AMethPropdef____n_methid(recv) ATTR(recv, (SFT_parser___parser_nodes[393] + 2))
+#define ATTR_parser___parser_nodes___AMethPropdef____n_signature(recv) ATTR(recv, (SFT_parser___parser_nodes[393] + 3))
+#define INIT_TABLE_POS_parser___parser_nodes___AMethPropdef (SFT_parser___parser_nodes[394] + 0)
+#define CALL_parser___parser_nodes___AMethPropdef___n_kwredef(recv) ((parser___parser_nodes___AMethPropdef___n_kwredef_t)CALL((recv), (SFT_parser___parser_nodes[394] + 1)))
+#define CALL_parser___parser_nodes___AMethPropdef___n_visibility(recv) ((parser___parser_nodes___AMethPropdef___n_visibility_t)CALL((recv), (SFT_parser___parser_nodes[394] + 2)))
+#define CALL_parser___parser_nodes___AMethPropdef___n_methid(recv) ((parser___parser_nodes___AMethPropdef___n_methid_t)CALL((recv), (SFT_parser___parser_nodes[394] + 3)))
+#define CALL_parser___parser_nodes___AMethPropdef___n_signature(recv) ((parser___parser_nodes___AMethPropdef___n_signature_t)CALL((recv), (SFT_parser___parser_nodes[394] + 4)))
+#define ID_parser___parser_nodes___ADeferredMethPropdef (SFT_parser___parser_nodes[395])
+#define COLOR_parser___parser_nodes___ADeferredMethPropdef (SFT_parser___parser_nodes[396])
+#define ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(recv) ATTR(recv, (SFT_parser___parser_nodes[397] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___ADeferredMethPropdef (SFT_parser___parser_nodes[398] + 0)
+#define CALL_parser___parser_nodes___ADeferredMethPropdef___n_kwmeth(recv) ((parser___parser_nodes___ADeferredMethPropdef___n_kwmeth_t)CALL((recv), (SFT_parser___parser_nodes[398] + 1)))
+#define ID_parser___parser_nodes___AInternMethPropdef (SFT_parser___parser_nodes[399])
+#define COLOR_parser___parser_nodes___AInternMethPropdef (SFT_parser___parser_nodes[400])
+#define ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(recv) ATTR(recv, (SFT_parser___parser_nodes[401] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AInternMethPropdef (SFT_parser___parser_nodes[402] + 0)
+#define CALL_parser___parser_nodes___AInternMethPropdef___n_kwmeth(recv) ((parser___parser_nodes___AInternMethPropdef___n_kwmeth_t)CALL((recv), (SFT_parser___parser_nodes[402] + 1)))
+#define ID_parser___parser_nodes___AExternPropdef (SFT_parser___parser_nodes[403])
+#define COLOR_parser___parser_nodes___AExternPropdef (SFT_parser___parser_nodes[404])
+#define ATTR_parser___parser_nodes___AExternPropdef____n_extern(recv) ATTR(recv, (SFT_parser___parser_nodes[405] + 0))
+#define ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(recv) ATTR(recv, (SFT_parser___parser_nodes[405] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AExternPropdef (SFT_parser___parser_nodes[406] + 0)
+#define CALL_parser___parser_nodes___AExternPropdef___n_extern(recv) ((parser___parser_nodes___AExternPropdef___n_extern_t)CALL((recv), (SFT_parser___parser_nodes[406] + 1)))
+#define CALL_parser___parser_nodes___AExternPropdef___n_extern_calls(recv) ((parser___parser_nodes___AExternPropdef___n_extern_calls_t)CALL((recv), (SFT_parser___parser_nodes[406] + 2)))
+#define ID_parser___parser_nodes___AExternMethPropdef (SFT_parser___parser_nodes[407])
+#define COLOR_parser___parser_nodes___AExternMethPropdef (SFT_parser___parser_nodes[408])
+#define ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(recv) ATTR(recv, (SFT_parser___parser_nodes[409] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AExternMethPropdef (SFT_parser___parser_nodes[410] + 0)
+#define CALL_parser___parser_nodes___AExternMethPropdef___n_kwmeth(recv) ((parser___parser_nodes___AExternMethPropdef___n_kwmeth_t)CALL((recv), (SFT_parser___parser_nodes[410] + 1)))
+#define ID_parser___parser_nodes___AConcreteMethPropdef (SFT_parser___parser_nodes[411])
+#define COLOR_parser___parser_nodes___AConcreteMethPropdef (SFT_parser___parser_nodes[412])
+#define ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(recv) ATTR(recv, (SFT_parser___parser_nodes[413] + 0))
+#define ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(recv) ATTR(recv, (SFT_parser___parser_nodes[413] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AConcreteMethPropdef (SFT_parser___parser_nodes[414] + 0)
+#define CALL_parser___parser_nodes___AConcreteMethPropdef___n_kwmeth(recv) ((parser___parser_nodes___AConcreteMethPropdef___n_kwmeth_t)CALL((recv), (SFT_parser___parser_nodes[414] + 1)))
+#define CALL_parser___parser_nodes___AConcreteMethPropdef___n_block(recv) ((parser___parser_nodes___AConcreteMethPropdef___n_block_t)CALL((recv), (SFT_parser___parser_nodes[414] + 2)))
+#define ID_parser___parser_nodes___AInitPropdef (SFT_parser___parser_nodes[415])
+#define COLOR_parser___parser_nodes___AInitPropdef (SFT_parser___parser_nodes[416])
+#define INIT_TABLE_POS_parser___parser_nodes___AInitPropdef (SFT_parser___parser_nodes[417] + 0)
+#define ID_parser___parser_nodes___AConcreteInitPropdef (SFT_parser___parser_nodes[418])
+#define COLOR_parser___parser_nodes___AConcreteInitPropdef (SFT_parser___parser_nodes[419])
+#define ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(recv) ATTR(recv, (SFT_parser___parser_nodes[420] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AConcreteInitPropdef (SFT_parser___parser_nodes[421] + 0)
+#define CALL_parser___parser_nodes___AConcreteInitPropdef___n_kwinit(recv) ((parser___parser_nodes___AConcreteInitPropdef___n_kwinit_t)CALL((recv), (SFT_parser___parser_nodes[421] + 1)))
+#define ID_parser___parser_nodes___AExternInitPropdef (SFT_parser___parser_nodes[422])
+#define COLOR_parser___parser_nodes___AExternInitPropdef (SFT_parser___parser_nodes[423])
+#define ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(recv) ATTR(recv, (SFT_parser___parser_nodes[424] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AExternInitPropdef (SFT_parser___parser_nodes[425] + 0)
+#define CALL_parser___parser_nodes___AExternInitPropdef___n_kwnew(recv) ((parser___parser_nodes___AExternInitPropdef___n_kwnew_t)CALL((recv), (SFT_parser___parser_nodes[425] + 1)))
+#define ID_parser___parser_nodes___AMainMethPropdef (SFT_parser___parser_nodes[426])
+#define COLOR_parser___parser_nodes___AMainMethPropdef (SFT_parser___parser_nodes[427])
+#define INIT_TABLE_POS_parser___parser_nodes___AMainMethPropdef (SFT_parser___parser_nodes[428] + 0)
+#define ID_parser___parser_nodes___AExternCalls (SFT_parser___parser_nodes[429])
+#define COLOR_parser___parser_nodes___AExternCalls (SFT_parser___parser_nodes[430])
+#define ATTR_parser___parser_nodes___AExternCalls____n_kwimport(recv) ATTR(recv, (SFT_parser___parser_nodes[431] + 0))
+#define ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(recv) ATTR(recv, (SFT_parser___parser_nodes[431] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AExternCalls (SFT_parser___parser_nodes[432] + 0)
+#define CALL_parser___parser_nodes___AExternCalls___n_kwimport(recv) ((parser___parser_nodes___AExternCalls___n_kwimport_t)CALL((recv), (SFT_parser___parser_nodes[432] + 1)))
+#define CALL_parser___parser_nodes___AExternCalls___n_extern_calls(recv) ((parser___parser_nodes___AExternCalls___n_extern_calls_t)CALL((recv), (SFT_parser___parser_nodes[432] + 2)))
+#define ID_parser___parser_nodes___AExternCall (SFT_parser___parser_nodes[433])
+#define COLOR_parser___parser_nodes___AExternCall (SFT_parser___parser_nodes[434])
+#define INIT_TABLE_POS_parser___parser_nodes___AExternCall (SFT_parser___parser_nodes[435] + 0)
+#define ID_parser___parser_nodes___APropExternCall (SFT_parser___parser_nodes[436])
+#define COLOR_parser___parser_nodes___APropExternCall (SFT_parser___parser_nodes[437])
+#define INIT_TABLE_POS_parser___parser_nodes___APropExternCall (SFT_parser___parser_nodes[438] + 0)
+#define ID_parser___parser_nodes___ALocalPropExternCall (SFT_parser___parser_nodes[439])
+#define COLOR_parser___parser_nodes___ALocalPropExternCall (SFT_parser___parser_nodes[440])
+#define ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(recv) ATTR(recv, (SFT_parser___parser_nodes[441] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___ALocalPropExternCall (SFT_parser___parser_nodes[442] + 0)
+#define CALL_parser___parser_nodes___ALocalPropExternCall___n_methid(recv) ((parser___parser_nodes___ALocalPropExternCall___n_methid_t)CALL((recv), (SFT_parser___parser_nodes[442] + 1)))
+#define ID_parser___parser_nodes___AFullPropExternCall (SFT_parser___parser_nodes[443])
+#define COLOR_parser___parser_nodes___AFullPropExternCall (SFT_parser___parser_nodes[444])
+#define ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(recv) ATTR(recv, (SFT_parser___parser_nodes[445] + 0))
+#define ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(recv) ATTR(recv, (SFT_parser___parser_nodes[445] + 1))
+#define ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(recv) ATTR(recv, (SFT_parser___parser_nodes[445] + 2))
+#define INIT_TABLE_POS_parser___parser_nodes___AFullPropExternCall (SFT_parser___parser_nodes[446] + 0)
+#define CALL_parser___parser_nodes___AFullPropExternCall___n_classid(recv) ((parser___parser_nodes___AFullPropExternCall___n_classid_t)CALL((recv), (SFT_parser___parser_nodes[446] + 1)))
+#define CALL_parser___parser_nodes___AFullPropExternCall___n_quad(recv) ((parser___parser_nodes___AFullPropExternCall___n_quad_t)CALL((recv), (SFT_parser___parser_nodes[446] + 2)))
+#define CALL_parser___parser_nodes___AFullPropExternCall___n_methid(recv) ((parser___parser_nodes___AFullPropExternCall___n_methid_t)CALL((recv), (SFT_parser___parser_nodes[446] + 3)))
+#define ID_parser___parser_nodes___AInitPropExternCall (SFT_parser___parser_nodes[447])
+#define COLOR_parser___parser_nodes___AInitPropExternCall (SFT_parser___parser_nodes[448])
+#define ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(recv) ATTR(recv, (SFT_parser___parser_nodes[449] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AInitPropExternCall (SFT_parser___parser_nodes[450] + 0)
+#define CALL_parser___parser_nodes___AInitPropExternCall___n_classid(recv) ((parser___parser_nodes___AInitPropExternCall___n_classid_t)CALL((recv), (SFT_parser___parser_nodes[450] + 1)))
+#define ID_parser___parser_nodes___ASuperExternCall (SFT_parser___parser_nodes[451])
+#define COLOR_parser___parser_nodes___ASuperExternCall (SFT_parser___parser_nodes[452])
+#define ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(recv) ATTR(recv, (SFT_parser___parser_nodes[453] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___ASuperExternCall (SFT_parser___parser_nodes[454] + 0)
+#define CALL_parser___parser_nodes___ASuperExternCall___n_kwsuper(recv) ((parser___parser_nodes___ASuperExternCall___n_kwsuper_t)CALL((recv), (SFT_parser___parser_nodes[454] + 1)))
+#define ID_parser___parser_nodes___ACastExternCall (SFT_parser___parser_nodes[455])
+#define COLOR_parser___parser_nodes___ACastExternCall (SFT_parser___parser_nodes[456])
+#define INIT_TABLE_POS_parser___parser_nodes___ACastExternCall (SFT_parser___parser_nodes[457] + 0)
+#define ID_parser___parser_nodes___ACastAsExternCall (SFT_parser___parser_nodes[458])
+#define COLOR_parser___parser_nodes___ACastAsExternCall (SFT_parser___parser_nodes[459])
+#define ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(recv) ATTR(recv, (SFT_parser___parser_nodes[460] + 0))
+#define ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(recv) ATTR(recv, (SFT_parser___parser_nodes[460] + 1))
+#define ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(recv) ATTR(recv, (SFT_parser___parser_nodes[460] + 2))
+#define INIT_TABLE_POS_parser___parser_nodes___ACastAsExternCall (SFT_parser___parser_nodes[461] + 0)
+#define CALL_parser___parser_nodes___ACastAsExternCall___n_from_type(recv) ((parser___parser_nodes___ACastAsExternCall___n_from_type_t)CALL((recv), (SFT_parser___parser_nodes[461] + 1)))
+#define CALL_parser___parser_nodes___ACastAsExternCall___n_kwas(recv) ((parser___parser_nodes___ACastAsExternCall___n_kwas_t)CALL((recv), (SFT_parser___parser_nodes[461] + 2)))
+#define CALL_parser___parser_nodes___ACastAsExternCall___n_to_type(recv) ((parser___parser_nodes___ACastAsExternCall___n_to_type_t)CALL((recv), (SFT_parser___parser_nodes[461] + 3)))
+#define ID_parser___parser_nodes___AAsNullableExternCall (SFT_parser___parser_nodes[462])
+#define COLOR_parser___parser_nodes___AAsNullableExternCall (SFT_parser___parser_nodes[463])
+#define ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[464] + 0))
+#define ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(recv) ATTR(recv, (SFT_parser___parser_nodes[464] + 1))
+#define ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(recv) ATTR(recv, (SFT_parser___parser_nodes[464] + 2))
+#define INIT_TABLE_POS_parser___parser_nodes___AAsNullableExternCall (SFT_parser___parser_nodes[465] + 0)
+#define CALL_parser___parser_nodes___AAsNullableExternCall___n_type(recv) ((parser___parser_nodes___AAsNullableExternCall___n_type_t)CALL((recv), (SFT_parser___parser_nodes[465] + 1)))
+#define CALL_parser___parser_nodes___AAsNullableExternCall___n_kwas(recv) ((parser___parser_nodes___AAsNullableExternCall___n_kwas_t)CALL((recv), (SFT_parser___parser_nodes[465] + 2)))
+#define CALL_parser___parser_nodes___AAsNullableExternCall___n_kwnullable(recv) ((parser___parser_nodes___AAsNullableExternCall___n_kwnullable_t)CALL((recv), (SFT_parser___parser_nodes[465] + 3)))
+#define ID_parser___parser_nodes___AAsNotNullableExternCall (SFT_parser___parser_nodes[466])
+#define COLOR_parser___parser_nodes___AAsNotNullableExternCall (SFT_parser___parser_nodes[467])
+#define ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[468] + 0))
+#define ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(recv) ATTR(recv, (SFT_parser___parser_nodes[468] + 1))
+#define ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(recv) ATTR(recv, (SFT_parser___parser_nodes[468] + 2))
+#define ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(recv) ATTR(recv, (SFT_parser___parser_nodes[468] + 3))
+#define INIT_TABLE_POS_parser___parser_nodes___AAsNotNullableExternCall (SFT_parser___parser_nodes[469] + 0)
+#define CALL_parser___parser_nodes___AAsNotNullableExternCall___n_type(recv) ((parser___parser_nodes___AAsNotNullableExternCall___n_type_t)CALL((recv), (SFT_parser___parser_nodes[469] + 1)))
+#define CALL_parser___parser_nodes___AAsNotNullableExternCall___n_kwas(recv) ((parser___parser_nodes___AAsNotNullableExternCall___n_kwas_t)CALL((recv), (SFT_parser___parser_nodes[469] + 2)))
+#define CALL_parser___parser_nodes___AAsNotNullableExternCall___n_kwnot(recv) ((parser___parser_nodes___AAsNotNullableExternCall___n_kwnot_t)CALL((recv), (SFT_parser___parser_nodes[469] + 3)))
+#define CALL_parser___parser_nodes___AAsNotNullableExternCall___n_kwnullable(recv) ((parser___parser_nodes___AAsNotNullableExternCall___n_kwnullable_t)CALL((recv), (SFT_parser___parser_nodes[469] + 4)))
+#define ID_parser___parser_nodes___ATypePropdef (SFT_parser___parser_nodes[470])
+#define COLOR_parser___parser_nodes___ATypePropdef (SFT_parser___parser_nodes[471])
+#define ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(recv) ATTR(recv, (SFT_parser___parser_nodes[472] + 0))
+#define ATTR_parser___parser_nodes___ATypePropdef____n_visibility(recv) ATTR(recv, (SFT_parser___parser_nodes[472] + 1))
+#define ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(recv) ATTR(recv, (SFT_parser___parser_nodes[472] + 2))
+#define ATTR_parser___parser_nodes___ATypePropdef____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[472] + 3))
+#define ATTR_parser___parser_nodes___ATypePropdef____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[472] + 4))
+#define INIT_TABLE_POS_parser___parser_nodes___ATypePropdef (SFT_parser___parser_nodes[473] + 0)
+#define CALL_parser___parser_nodes___ATypePropdef___n_kwredef(recv) ((parser___parser_nodes___ATypePropdef___n_kwredef_t)CALL((recv), (SFT_parser___parser_nodes[473] + 1)))
+#define CALL_parser___parser_nodes___ATypePropdef___n_visibility(recv) ((parser___parser_nodes___ATypePropdef___n_visibility_t)CALL((recv), (SFT_parser___parser_nodes[473] + 2)))
+#define CALL_parser___parser_nodes___ATypePropdef___n_kwtype(recv) ((parser___parser_nodes___ATypePropdef___n_kwtype_t)CALL((recv), (SFT_parser___parser_nodes[473] + 3)))
+#define CALL_parser___parser_nodes___ATypePropdef___n_id(recv) ((parser___parser_nodes___ATypePropdef___n_id_t)CALL((recv), (SFT_parser___parser_nodes[473] + 4)))
+#define CALL_parser___parser_nodes___ATypePropdef___n_type(recv) ((parser___parser_nodes___ATypePropdef___n_type_t)CALL((recv), (SFT_parser___parser_nodes[473] + 5)))
+#define ID_parser___parser_nodes___AAble (SFT_parser___parser_nodes[474])
+#define COLOR_parser___parser_nodes___AAble (SFT_parser___parser_nodes[475])
+#define ATTR_parser___parser_nodes___AAble____n_visibility(recv) ATTR(recv, (SFT_parser___parser_nodes[476] + 0))
+#define ATTR_parser___parser_nodes___AAble____n_kwredef(recv) ATTR(recv, (SFT_parser___parser_nodes[476] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AAble (SFT_parser___parser_nodes[477] + 0)
+#define CALL_parser___parser_nodes___AAble___n_visibility(recv) ((parser___parser_nodes___AAble___n_visibility_t)CALL((recv), (SFT_parser___parser_nodes[477] + 1)))
+#define CALL_parser___parser_nodes___AAble___n_kwredef(recv) ((parser___parser_nodes___AAble___n_kwredef_t)CALL((recv), (SFT_parser___parser_nodes[477] + 2)))
+#define ID_parser___parser_nodes___AReadAble (SFT_parser___parser_nodes[478])
+#define COLOR_parser___parser_nodes___AReadAble (SFT_parser___parser_nodes[479])
+#define ATTR_parser___parser_nodes___AReadAble____n_kwreadable(recv) ATTR(recv, (SFT_parser___parser_nodes[480] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AReadAble (SFT_parser___parser_nodes[481] + 0)
+#define CALL_parser___parser_nodes___AReadAble___n_kwreadable(recv) ((parser___parser_nodes___AReadAble___n_kwreadable_t)CALL((recv), (SFT_parser___parser_nodes[481] + 1)))
+#define ID_parser___parser_nodes___AWriteAble (SFT_parser___parser_nodes[482])
+#define COLOR_parser___parser_nodes___AWriteAble (SFT_parser___parser_nodes[483])
+#define ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(recv) ATTR(recv, (SFT_parser___parser_nodes[484] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AWriteAble (SFT_parser___parser_nodes[485] + 0)
+#define CALL_parser___parser_nodes___AWriteAble___n_kwwritable(recv) ((parser___parser_nodes___AWriteAble___n_kwwritable_t)CALL((recv), (SFT_parser___parser_nodes[485] + 1)))
+#define ID_parser___parser_nodes___AMethid (SFT_parser___parser_nodes[486])
+#define COLOR_parser___parser_nodes___AMethid (SFT_parser___parser_nodes[487])
+#define INIT_TABLE_POS_parser___parser_nodes___AMethid (SFT_parser___parser_nodes[488] + 0)
+#define ID_parser___parser_nodes___AIdMethid (SFT_parser___parser_nodes[489])
+#define COLOR_parser___parser_nodes___AIdMethid (SFT_parser___parser_nodes[490])
+#define ATTR_parser___parser_nodes___AIdMethid____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[491] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AIdMethid (SFT_parser___parser_nodes[492] + 0)
+#define CALL_parser___parser_nodes___AIdMethid___n_id(recv) ((parser___parser_nodes___AIdMethid___n_id_t)CALL((recv), (SFT_parser___parser_nodes[492] + 1)))
+#define ID_parser___parser_nodes___APlusMethid (SFT_parser___parser_nodes[493])
+#define COLOR_parser___parser_nodes___APlusMethid (SFT_parser___parser_nodes[494])
+#define ATTR_parser___parser_nodes___APlusMethid____n_plus(recv) ATTR(recv, (SFT_parser___parser_nodes[495] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___APlusMethid (SFT_parser___parser_nodes[496] + 0)
+#define CALL_parser___parser_nodes___APlusMethid___n_plus(recv) ((parser___parser_nodes___APlusMethid___n_plus_t)CALL((recv), (SFT_parser___parser_nodes[496] + 1)))
+#define ID_parser___parser_nodes___AMinusMethid (SFT_parser___parser_nodes[497])
+#define COLOR_parser___parser_nodes___AMinusMethid (SFT_parser___parser_nodes[498])
+#define ATTR_parser___parser_nodes___AMinusMethid____n_minus(recv) ATTR(recv, (SFT_parser___parser_nodes[499] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AMinusMethid (SFT_parser___parser_nodes[500] + 0)
+#define CALL_parser___parser_nodes___AMinusMethid___n_minus(recv) ((parser___parser_nodes___AMinusMethid___n_minus_t)CALL((recv), (SFT_parser___parser_nodes[500] + 1)))
+#define ID_parser___parser_nodes___AStarMethid (SFT_parser___parser_nodes[501])
+#define COLOR_parser___parser_nodes___AStarMethid (SFT_parser___parser_nodes[502])
+#define ATTR_parser___parser_nodes___AStarMethid____n_star(recv) ATTR(recv, (SFT_parser___parser_nodes[503] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AStarMethid (SFT_parser___parser_nodes[504] + 0)
+#define CALL_parser___parser_nodes___AStarMethid___n_star(recv) ((parser___parser_nodes___AStarMethid___n_star_t)CALL((recv), (SFT_parser___parser_nodes[504] + 1)))
+#define ID_parser___parser_nodes___ASlashMethid (SFT_parser___parser_nodes[505])
+#define COLOR_parser___parser_nodes___ASlashMethid (SFT_parser___parser_nodes[506])
+#define ATTR_parser___parser_nodes___ASlashMethid____n_slash(recv) ATTR(recv, (SFT_parser___parser_nodes[507] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___ASlashMethid (SFT_parser___parser_nodes[508] + 0)
+#define CALL_parser___parser_nodes___ASlashMethid___n_slash(recv) ((parser___parser_nodes___ASlashMethid___n_slash_t)CALL((recv), (SFT_parser___parser_nodes[508] + 1)))
+#define ID_parser___parser_nodes___APercentMethid (SFT_parser___parser_nodes[509])
+#define COLOR_parser___parser_nodes___APercentMethid (SFT_parser___parser_nodes[510])
+#define ATTR_parser___parser_nodes___APercentMethid____n_percent(recv) ATTR(recv, (SFT_parser___parser_nodes[511] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___APercentMethid (SFT_parser___parser_nodes[512] + 0)
+#define CALL_parser___parser_nodes___APercentMethid___n_percent(recv) ((parser___parser_nodes___APercentMethid___n_percent_t)CALL((recv), (SFT_parser___parser_nodes[512] + 1)))
+#define ID_parser___parser_nodes___AEqMethid (SFT_parser___parser_nodes[513])
+#define COLOR_parser___parser_nodes___AEqMethid (SFT_parser___parser_nodes[514])
+#define ATTR_parser___parser_nodes___AEqMethid____n_eq(recv) ATTR(recv, (SFT_parser___parser_nodes[515] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AEqMethid (SFT_parser___parser_nodes[516] + 0)
+#define CALL_parser___parser_nodes___AEqMethid___n_eq(recv) ((parser___parser_nodes___AEqMethid___n_eq_t)CALL((recv), (SFT_parser___parser_nodes[516] + 1)))
+#define ID_parser___parser_nodes___ANeMethid (SFT_parser___parser_nodes[517])
+#define COLOR_parser___parser_nodes___ANeMethid (SFT_parser___parser_nodes[518])
+#define ATTR_parser___parser_nodes___ANeMethid____n_ne(recv) ATTR(recv, (SFT_parser___parser_nodes[519] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___ANeMethid (SFT_parser___parser_nodes[520] + 0)
+#define CALL_parser___parser_nodes___ANeMethid___n_ne(recv) ((parser___parser_nodes___ANeMethid___n_ne_t)CALL((recv), (SFT_parser___parser_nodes[520] + 1)))
+#define ID_parser___parser_nodes___ALeMethid (SFT_parser___parser_nodes[521])
+#define COLOR_parser___parser_nodes___ALeMethid (SFT_parser___parser_nodes[522])
+#define ATTR_parser___parser_nodes___ALeMethid____n_le(recv) ATTR(recv, (SFT_parser___parser_nodes[523] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___ALeMethid (SFT_parser___parser_nodes[524] + 0)
+#define CALL_parser___parser_nodes___ALeMethid___n_le(recv) ((parser___parser_nodes___ALeMethid___n_le_t)CALL((recv), (SFT_parser___parser_nodes[524] + 1)))
+#define ID_parser___parser_nodes___AGeMethid (SFT_parser___parser_nodes[525])
+#define COLOR_parser___parser_nodes___AGeMethid (SFT_parser___parser_nodes[526])
+#define ATTR_parser___parser_nodes___AGeMethid____n_ge(recv) ATTR(recv, (SFT_parser___parser_nodes[527] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AGeMethid (SFT_parser___parser_nodes[528] + 0)
+#define CALL_parser___parser_nodes___AGeMethid___n_ge(recv) ((parser___parser_nodes___AGeMethid___n_ge_t)CALL((recv), (SFT_parser___parser_nodes[528] + 1)))
+#define ID_parser___parser_nodes___ALtMethid (SFT_parser___parser_nodes[529])
+#define COLOR_parser___parser_nodes___ALtMethid (SFT_parser___parser_nodes[530])
+#define ATTR_parser___parser_nodes___ALtMethid____n_lt(recv) ATTR(recv, (SFT_parser___parser_nodes[531] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___ALtMethid (SFT_parser___parser_nodes[532] + 0)
+#define CALL_parser___parser_nodes___ALtMethid___n_lt(recv) ((parser___parser_nodes___ALtMethid___n_lt_t)CALL((recv), (SFT_parser___parser_nodes[532] + 1)))
+#define ID_parser___parser_nodes___AGtMethid (SFT_parser___parser_nodes[533])
+#define COLOR_parser___parser_nodes___AGtMethid (SFT_parser___parser_nodes[534])
+#define ATTR_parser___parser_nodes___AGtMethid____n_gt(recv) ATTR(recv, (SFT_parser___parser_nodes[535] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AGtMethid (SFT_parser___parser_nodes[536] + 0)
+#define CALL_parser___parser_nodes___AGtMethid___n_gt(recv) ((parser___parser_nodes___AGtMethid___n_gt_t)CALL((recv), (SFT_parser___parser_nodes[536] + 1)))
+#define ID_parser___parser_nodes___ALlMethid (SFT_parser___parser_nodes[537])
+#define COLOR_parser___parser_nodes___ALlMethid (SFT_parser___parser_nodes[538])
+#define ATTR_parser___parser_nodes___ALlMethid____n_ll(recv) ATTR(recv, (SFT_parser___parser_nodes[539] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___ALlMethid (SFT_parser___parser_nodes[540] + 0)
+#define CALL_parser___parser_nodes___ALlMethid___n_ll(recv) ((parser___parser_nodes___ALlMethid___n_ll_t)CALL((recv), (SFT_parser___parser_nodes[540] + 1)))
+#define CALL_parser___parser_nodes___ALlMethid___n_ll__eq(recv) ((parser___parser_nodes___ALlMethid___n_ll__eq_t)CALL((recv), (SFT_parser___parser_nodes[540] + 2)))
+#define ID_parser___parser_nodes___AGgMethid (SFT_parser___parser_nodes[541])
+#define COLOR_parser___parser_nodes___AGgMethid (SFT_parser___parser_nodes[542])
+#define ATTR_parser___parser_nodes___AGgMethid____n_gg(recv) ATTR(recv, (SFT_parser___parser_nodes[543] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AGgMethid (SFT_parser___parser_nodes[544] + 0)
+#define CALL_parser___parser_nodes___AGgMethid___n_gg(recv) ((parser___parser_nodes___AGgMethid___n_gg_t)CALL((recv), (SFT_parser___parser_nodes[544] + 1)))
+#define CALL_parser___parser_nodes___AGgMethid___n_gg__eq(recv) ((parser___parser_nodes___AGgMethid___n_gg__eq_t)CALL((recv), (SFT_parser___parser_nodes[544] + 2)))
+#define ID_parser___parser_nodes___ABraMethid (SFT_parser___parser_nodes[545])
+#define COLOR_parser___parser_nodes___ABraMethid (SFT_parser___parser_nodes[546])
+#define ATTR_parser___parser_nodes___ABraMethid____n_obra(recv) ATTR(recv, (SFT_parser___parser_nodes[547] + 0))
+#define ATTR_parser___parser_nodes___ABraMethid____n_cbra(recv) ATTR(recv, (SFT_parser___parser_nodes[547] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___ABraMethid (SFT_parser___parser_nodes[548] + 0)
+#define CALL_parser___parser_nodes___ABraMethid___n_obra(recv) ((parser___parser_nodes___ABraMethid___n_obra_t)CALL((recv), (SFT_parser___parser_nodes[548] + 1)))
+#define CALL_parser___parser_nodes___ABraMethid___n_cbra(recv) ((parser___parser_nodes___ABraMethid___n_cbra_t)CALL((recv), (SFT_parser___parser_nodes[548] + 2)))
+#define ID_parser___parser_nodes___AStarshipMethid (SFT_parser___parser_nodes[549])
+#define COLOR_parser___parser_nodes___AStarshipMethid (SFT_parser___parser_nodes[550])
+#define ATTR_parser___parser_nodes___AStarshipMethid____n_starship(recv) ATTR(recv, (SFT_parser___parser_nodes[551] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AStarshipMethid (SFT_parser___parser_nodes[552] + 0)
+#define CALL_parser___parser_nodes___AStarshipMethid___n_starship(recv) ((parser___parser_nodes___AStarshipMethid___n_starship_t)CALL((recv), (SFT_parser___parser_nodes[552] + 1)))
+#define ID_parser___parser_nodes___AAssignMethid (SFT_parser___parser_nodes[553])
+#define COLOR_parser___parser_nodes___AAssignMethid (SFT_parser___parser_nodes[554])
+#define ATTR_parser___parser_nodes___AAssignMethid____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[555] + 0))
+#define ATTR_parser___parser_nodes___AAssignMethid____n_assign(recv) ATTR(recv, (SFT_parser___parser_nodes[555] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AAssignMethid (SFT_parser___parser_nodes[556] + 0)
+#define CALL_parser___parser_nodes___AAssignMethid___n_id(recv) ((parser___parser_nodes___AAssignMethid___n_id_t)CALL((recv), (SFT_parser___parser_nodes[556] + 1)))
+#define CALL_parser___parser_nodes___AAssignMethid___n_assign(recv) ((parser___parser_nodes___AAssignMethid___n_assign_t)CALL((recv), (SFT_parser___parser_nodes[556] + 2)))
+#define ID_parser___parser_nodes___ABraassignMethid (SFT_parser___parser_nodes[557])
+#define COLOR_parser___parser_nodes___ABraassignMethid (SFT_parser___parser_nodes[558])
+#define ATTR_parser___parser_nodes___ABraassignMethid____n_obra(recv) ATTR(recv, (SFT_parser___parser_nodes[559] + 0))
+#define ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(recv) ATTR(recv, (SFT_parser___parser_nodes[559] + 1))
+#define ATTR_parser___parser_nodes___ABraassignMethid____n_assign(recv) ATTR(recv, (SFT_parser___parser_nodes[559] + 2))
+#define INIT_TABLE_POS_parser___parser_nodes___ABraassignMethid (SFT_parser___parser_nodes[560] + 0)
+#define CALL_parser___parser_nodes___ABraassignMethid___n_obra(recv) ((parser___parser_nodes___ABraassignMethid___n_obra_t)CALL((recv), (SFT_parser___parser_nodes[560] + 1)))
+#define CALL_parser___parser_nodes___ABraassignMethid___n_cbra(recv) ((parser___parser_nodes___ABraassignMethid___n_cbra_t)CALL((recv), (SFT_parser___parser_nodes[560] + 2)))
+#define CALL_parser___parser_nodes___ABraassignMethid___n_assign(recv) ((parser___parser_nodes___ABraassignMethid___n_assign_t)CALL((recv), (SFT_parser___parser_nodes[560] + 3)))
+#define ID_parser___parser_nodes___ASignature (SFT_parser___parser_nodes[561])
+#define COLOR_parser___parser_nodes___ASignature (SFT_parser___parser_nodes[562])
+#define ATTR_parser___parser_nodes___ASignature____n_opar(recv) ATTR(recv, (SFT_parser___parser_nodes[563] + 0))
+#define ATTR_parser___parser_nodes___ASignature____n_params(recv) ATTR(recv, (SFT_parser___parser_nodes[563] + 1))
+#define ATTR_parser___parser_nodes___ASignature____n_cpar(recv) ATTR(recv, (SFT_parser___parser_nodes[563] + 2))
+#define ATTR_parser___parser_nodes___ASignature____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[563] + 3))
+#define ATTR_parser___parser_nodes___ASignature____n_closure_decls(recv) ATTR(recv, (SFT_parser___parser_nodes[563] + 4))
+#define INIT_TABLE_POS_parser___parser_nodes___ASignature (SFT_parser___parser_nodes[564] + 0)
+#define CALL_parser___parser_nodes___ASignature___n_opar(recv) ((parser___parser_nodes___ASignature___n_opar_t)CALL((recv), (SFT_parser___parser_nodes[564] + 1)))
+#define CALL_parser___parser_nodes___ASignature___n_params(recv) ((parser___parser_nodes___ASignature___n_params_t)CALL((recv), (SFT_parser___parser_nodes[564] + 2)))
+#define CALL_parser___parser_nodes___ASignature___n_cpar(recv) ((parser___parser_nodes___ASignature___n_cpar_t)CALL((recv), (SFT_parser___parser_nodes[564] + 3)))
+#define CALL_parser___parser_nodes___ASignature___n_type(recv) ((parser___parser_nodes___ASignature___n_type_t)CALL((recv), (SFT_parser___parser_nodes[564] + 4)))
+#define CALL_parser___parser_nodes___ASignature___n_closure_decls(recv) ((parser___parser_nodes___ASignature___n_closure_decls_t)CALL((recv), (SFT_parser___parser_nodes[564] + 5)))
+#define ID_parser___parser_nodes___AParam (SFT_parser___parser_nodes[565])
+#define COLOR_parser___parser_nodes___AParam (SFT_parser___parser_nodes[566])
+#define ATTR_parser___parser_nodes___AParam____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[567] + 0))
+#define ATTR_parser___parser_nodes___AParam____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[567] + 1))
+#define ATTR_parser___parser_nodes___AParam____n_dotdotdot(recv) ATTR(recv, (SFT_parser___parser_nodes[567] + 2))
+#define INIT_TABLE_POS_parser___parser_nodes___AParam (SFT_parser___parser_nodes[568] + 0)
+#define CALL_parser___parser_nodes___AParam___n_id(recv) ((parser___parser_nodes___AParam___n_id_t)CALL((recv), (SFT_parser___parser_nodes[568] + 1)))
+#define CALL_parser___parser_nodes___AParam___n_type(recv) ((parser___parser_nodes___AParam___n_type_t)CALL((recv), (SFT_parser___parser_nodes[568] + 2)))
+#define CALL_parser___parser_nodes___AParam___n_dotdotdot(recv) ((parser___parser_nodes___AParam___n_dotdotdot_t)CALL((recv), (SFT_parser___parser_nodes[568] + 3)))
+#define ID_parser___parser_nodes___AClosureDecl (SFT_parser___parser_nodes[569])
+#define COLOR_parser___parser_nodes___AClosureDecl (SFT_parser___parser_nodes[570])
+#define ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(recv) ATTR(recv, (SFT_parser___parser_nodes[571] + 0))
+#define ATTR_parser___parser_nodes___AClosureDecl____n_bang(recv) ATTR(recv, (SFT_parser___parser_nodes[571] + 1))
+#define ATTR_parser___parser_nodes___AClosureDecl____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[571] + 2))
+#define ATTR_parser___parser_nodes___AClosureDecl____n_signature(recv) ATTR(recv, (SFT_parser___parser_nodes[571] + 3))
+#define ATTR_parser___parser_nodes___AClosureDecl____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[571] + 4))
+#define INIT_TABLE_POS_parser___parser_nodes___AClosureDecl (SFT_parser___parser_nodes[572] + 0)
+#define CALL_parser___parser_nodes___AClosureDecl___n_kwbreak(recv) ((parser___parser_nodes___AClosureDecl___n_kwbreak_t)CALL((recv), (SFT_parser___parser_nodes[572] + 1)))
+#define CALL_parser___parser_nodes___AClosureDecl___n_bang(recv) ((parser___parser_nodes___AClosureDecl___n_bang_t)CALL((recv), (SFT_parser___parser_nodes[572] + 2)))
+#define CALL_parser___parser_nodes___AClosureDecl___n_id(recv) ((parser___parser_nodes___AClosureDecl___n_id_t)CALL((recv), (SFT_parser___parser_nodes[572] + 3)))
+#define CALL_parser___parser_nodes___AClosureDecl___n_signature(recv) ((parser___parser_nodes___AClosureDecl___n_signature_t)CALL((recv), (SFT_parser___parser_nodes[572] + 4)))
+#define CALL_parser___parser_nodes___AClosureDecl___n_expr(recv) ((parser___parser_nodes___AClosureDecl___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[572] + 5)))
+#define ID_parser___parser_nodes___AType (SFT_parser___parser_nodes[573])
+#define COLOR_parser___parser_nodes___AType (SFT_parser___parser_nodes[574])
+#define ATTR_parser___parser_nodes___AType____n_kwnullable(recv) ATTR(recv, (SFT_parser___parser_nodes[575] + 0))
+#define ATTR_parser___parser_nodes___AType____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[575] + 1))
+#define ATTR_parser___parser_nodes___AType____n_types(recv) ATTR(recv, (SFT_parser___parser_nodes[575] + 2))
+#define INIT_TABLE_POS_parser___parser_nodes___AType (SFT_parser___parser_nodes[576] + 0)
+#define CALL_parser___parser_nodes___AType___n_kwnullable(recv) ((parser___parser_nodes___AType___n_kwnullable_t)CALL((recv), (SFT_parser___parser_nodes[576] + 1)))
+#define CALL_parser___parser_nodes___AType___n_id(recv) ((parser___parser_nodes___AType___n_id_t)CALL((recv), (SFT_parser___parser_nodes[576] + 2)))
+#define CALL_parser___parser_nodes___AType___n_types(recv) ((parser___parser_nodes___AType___n_types_t)CALL((recv), (SFT_parser___parser_nodes[576] + 3)))
+#define ID_parser___parser_nodes___ALabel (SFT_parser___parser_nodes[577])
+#define COLOR_parser___parser_nodes___ALabel (SFT_parser___parser_nodes[578])
+#define ATTR_parser___parser_nodes___ALabel____n_kwlabel(recv) ATTR(recv, (SFT_parser___parser_nodes[579] + 0))
+#define ATTR_parser___parser_nodes___ALabel____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[579] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___ALabel (SFT_parser___parser_nodes[580] + 0)
+#define CALL_parser___parser_nodes___ALabel___n_kwlabel(recv) ((parser___parser_nodes___ALabel___n_kwlabel_t)CALL((recv), (SFT_parser___parser_nodes[580] + 1)))
+#define CALL_parser___parser_nodes___ALabel___n_id(recv) ((parser___parser_nodes___ALabel___n_id_t)CALL((recv), (SFT_parser___parser_nodes[580] + 2)))
+#define ID_parser___parser_nodes___AExpr (SFT_parser___parser_nodes[581])
+#define COLOR_parser___parser_nodes___AExpr (SFT_parser___parser_nodes[582])
+#define INIT_TABLE_POS_parser___parser_nodes___AExpr (SFT_parser___parser_nodes[583] + 0)
+#define ID_parser___parser_nodes___ABlockExpr (SFT_parser___parser_nodes[584])
+#define COLOR_parser___parser_nodes___ABlockExpr (SFT_parser___parser_nodes[585])
+#define ATTR_parser___parser_nodes___ABlockExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[586] + 0))
+#define ATTR_parser___parser_nodes___ABlockExpr____n_kwend(recv) ATTR(recv, (SFT_parser___parser_nodes[586] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___ABlockExpr (SFT_parser___parser_nodes[587] + 0)
+#define CALL_parser___parser_nodes___ABlockExpr___n_expr(recv) ((parser___parser_nodes___ABlockExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[587] + 1)))
+#define CALL_parser___parser_nodes___ABlockExpr___n_kwend(recv) ((parser___parser_nodes___ABlockExpr___n_kwend_t)CALL((recv), (SFT_parser___parser_nodes[587] + 2)))
+#define ID_parser___parser_nodes___AVardeclExpr (SFT_parser___parser_nodes[588])
+#define COLOR_parser___parser_nodes___AVardeclExpr (SFT_parser___parser_nodes[589])
+#define ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(recv) ATTR(recv, (SFT_parser___parser_nodes[590] + 0))
+#define ATTR_parser___parser_nodes___AVardeclExpr____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[590] + 1))
+#define ATTR_parser___parser_nodes___AVardeclExpr____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[590] + 2))
+#define ATTR_parser___parser_nodes___AVardeclExpr____n_assign(recv) ATTR(recv, (SFT_parser___parser_nodes[590] + 3))
+#define ATTR_parser___parser_nodes___AVardeclExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[590] + 4))
+#define INIT_TABLE_POS_parser___parser_nodes___AVardeclExpr (SFT_parser___parser_nodes[591] + 0)
+#define CALL_parser___parser_nodes___AVardeclExpr___n_kwvar(recv) ((parser___parser_nodes___AVardeclExpr___n_kwvar_t)CALL((recv), (SFT_parser___parser_nodes[591] + 1)))
+#define CALL_parser___parser_nodes___AVardeclExpr___n_id(recv) ((parser___parser_nodes___AVardeclExpr___n_id_t)CALL((recv), (SFT_parser___parser_nodes[591] + 2)))
+#define CALL_parser___parser_nodes___AVardeclExpr___n_type(recv) ((parser___parser_nodes___AVardeclExpr___n_type_t)CALL((recv), (SFT_parser___parser_nodes[591] + 3)))
+#define CALL_parser___parser_nodes___AVardeclExpr___n_assign(recv) ((parser___parser_nodes___AVardeclExpr___n_assign_t)CALL((recv), (SFT_parser___parser_nodes[591] + 4)))
+#define CALL_parser___parser_nodes___AVardeclExpr___n_expr(recv) ((parser___parser_nodes___AVardeclExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[591] + 5)))
+#define ID_parser___parser_nodes___AReturnExpr (SFT_parser___parser_nodes[592])
+#define COLOR_parser___parser_nodes___AReturnExpr (SFT_parser___parser_nodes[593])
+#define ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(recv) ATTR(recv, (SFT_parser___parser_nodes[594] + 0))
+#define ATTR_parser___parser_nodes___AReturnExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[594] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AReturnExpr (SFT_parser___parser_nodes[595] + 0)
+#define CALL_parser___parser_nodes___AReturnExpr___n_kwreturn(recv) ((parser___parser_nodes___AReturnExpr___n_kwreturn_t)CALL((recv), (SFT_parser___parser_nodes[595] + 1)))
+#define CALL_parser___parser_nodes___AReturnExpr___n_expr(recv) ((parser___parser_nodes___AReturnExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[595] + 2)))
+#define ID_parser___parser_nodes___ALabelable (SFT_parser___parser_nodes[596])
+#define COLOR_parser___parser_nodes___ALabelable (SFT_parser___parser_nodes[597])
+#define ATTR_parser___parser_nodes___ALabelable____n_label(recv) ATTR(recv, (SFT_parser___parser_nodes[598] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___ALabelable (SFT_parser___parser_nodes[599] + 0)
+#define CALL_parser___parser_nodes___ALabelable___n_label(recv) ((parser___parser_nodes___ALabelable___n_label_t)CALL((recv), (SFT_parser___parser_nodes[599] + 1)))
+#define ID_parser___parser_nodes___ABreakExpr (SFT_parser___parser_nodes[600])
+#define COLOR_parser___parser_nodes___ABreakExpr (SFT_parser___parser_nodes[601])
+#define ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(recv) ATTR(recv, (SFT_parser___parser_nodes[602] + 0))
+#define ATTR_parser___parser_nodes___ABreakExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[602] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___ABreakExpr (SFT_parser___parser_nodes[603] + 0)
+#define CALL_parser___parser_nodes___ABreakExpr___n_kwbreak(recv) ((parser___parser_nodes___ABreakExpr___n_kwbreak_t)CALL((recv), (SFT_parser___parser_nodes[603] + 1)))
+#define CALL_parser___parser_nodes___ABreakExpr___n_expr(recv) ((parser___parser_nodes___ABreakExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[603] + 2)))
+#define ID_parser___parser_nodes___AAbortExpr (SFT_parser___parser_nodes[604])
+#define COLOR_parser___parser_nodes___AAbortExpr (SFT_parser___parser_nodes[605])
+#define ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(recv) ATTR(recv, (SFT_parser___parser_nodes[606] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AAbortExpr (SFT_parser___parser_nodes[607] + 0)
+#define CALL_parser___parser_nodes___AAbortExpr___n_kwabort(recv) ((parser___parser_nodes___AAbortExpr___n_kwabort_t)CALL((recv), (SFT_parser___parser_nodes[607] + 1)))
+#define ID_parser___parser_nodes___AContinueExpr (SFT_parser___parser_nodes[608])
+#define COLOR_parser___parser_nodes___AContinueExpr (SFT_parser___parser_nodes[609])
+#define ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(recv) ATTR(recv, (SFT_parser___parser_nodes[610] + 0))
+#define ATTR_parser___parser_nodes___AContinueExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[610] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AContinueExpr (SFT_parser___parser_nodes[611] + 0)
+#define CALL_parser___parser_nodes___AContinueExpr___n_kwcontinue(recv) ((parser___parser_nodes___AContinueExpr___n_kwcontinue_t)CALL((recv), (SFT_parser___parser_nodes[611] + 1)))
+#define CALL_parser___parser_nodes___AContinueExpr___n_expr(recv) ((parser___parser_nodes___AContinueExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[611] + 2)))
+#define ID_parser___parser_nodes___ADoExpr (SFT_parser___parser_nodes[612])
+#define COLOR_parser___parser_nodes___ADoExpr (SFT_parser___parser_nodes[613])
+#define ATTR_parser___parser_nodes___ADoExpr____n_kwdo(recv) ATTR(recv, (SFT_parser___parser_nodes[614] + 0))
+#define ATTR_parser___parser_nodes___ADoExpr____n_block(recv) ATTR(recv, (SFT_parser___parser_nodes[614] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___ADoExpr (SFT_parser___parser_nodes[615] + 0)
+#define CALL_parser___parser_nodes___ADoExpr___n_kwdo(recv) ((parser___parser_nodes___ADoExpr___n_kwdo_t)CALL((recv), (SFT_parser___parser_nodes[615] + 1)))
+#define CALL_parser___parser_nodes___ADoExpr___n_block(recv) ((parser___parser_nodes___ADoExpr___n_block_t)CALL((recv), (SFT_parser___parser_nodes[615] + 2)))
+#define ID_parser___parser_nodes___AIfExpr (SFT_parser___parser_nodes[616])
+#define COLOR_parser___parser_nodes___AIfExpr (SFT_parser___parser_nodes[617])
+#define ATTR_parser___parser_nodes___AIfExpr____n_kwif(recv) ATTR(recv, (SFT_parser___parser_nodes[618] + 0))
+#define ATTR_parser___parser_nodes___AIfExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[618] + 1))
+#define ATTR_parser___parser_nodes___AIfExpr____n_then(recv) ATTR(recv, (SFT_parser___parser_nodes[618] + 2))
+#define ATTR_parser___parser_nodes___AIfExpr____n_else(recv) ATTR(recv, (SFT_parser___parser_nodes[618] + 3))
+#define INIT_TABLE_POS_parser___parser_nodes___AIfExpr (SFT_parser___parser_nodes[619] + 0)
+#define CALL_parser___parser_nodes___AIfExpr___n_kwif(recv) ((parser___parser_nodes___AIfExpr___n_kwif_t)CALL((recv), (SFT_parser___parser_nodes[619] + 1)))
+#define CALL_parser___parser_nodes___AIfExpr___n_expr(recv) ((parser___parser_nodes___AIfExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[619] + 2)))
+#define CALL_parser___parser_nodes___AIfExpr___n_then(recv) ((parser___parser_nodes___AIfExpr___n_then_t)CALL((recv), (SFT_parser___parser_nodes[619] + 3)))
+#define CALL_parser___parser_nodes___AIfExpr___n_else(recv) ((parser___parser_nodes___AIfExpr___n_else_t)CALL((recv), (SFT_parser___parser_nodes[619] + 4)))
+#define ID_parser___parser_nodes___AIfexprExpr (SFT_parser___parser_nodes[620])
+#define COLOR_parser___parser_nodes___AIfexprExpr (SFT_parser___parser_nodes[621])
+#define ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(recv) ATTR(recv, (SFT_parser___parser_nodes[622] + 0))
+#define ATTR_parser___parser_nodes___AIfexprExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[622] + 1))
+#define ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(recv) ATTR(recv, (SFT_parser___parser_nodes[622] + 2))
+#define ATTR_parser___parser_nodes___AIfexprExpr____n_then(recv) ATTR(recv, (SFT_parser___parser_nodes[622] + 3))
+#define ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(recv) ATTR(recv, (SFT_parser___parser_nodes[622] + 4))
+#define ATTR_parser___parser_nodes___AIfexprExpr____n_else(recv) ATTR(recv, (SFT_parser___parser_nodes[622] + 5))
+#define INIT_TABLE_POS_parser___parser_nodes___AIfexprExpr (SFT_parser___parser_nodes[623] + 0)
+#define CALL_parser___parser_nodes___AIfexprExpr___n_kwif(recv) ((parser___parser_nodes___AIfexprExpr___n_kwif_t)CALL((recv), (SFT_parser___parser_nodes[623] + 1)))
+#define CALL_parser___parser_nodes___AIfexprExpr___n_expr(recv) ((parser___parser_nodes___AIfexprExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[623] + 2)))
+#define CALL_parser___parser_nodes___AIfexprExpr___n_kwthen(recv) ((parser___parser_nodes___AIfexprExpr___n_kwthen_t)CALL((recv), (SFT_parser___parser_nodes[623] + 3)))
+#define CALL_parser___parser_nodes___AIfexprExpr___n_then(recv) ((parser___parser_nodes___AIfexprExpr___n_then_t)CALL((recv), (SFT_parser___parser_nodes[623] + 4)))
+#define CALL_parser___parser_nodes___AIfexprExpr___n_kwelse(recv) ((parser___parser_nodes___AIfexprExpr___n_kwelse_t)CALL((recv), (SFT_parser___parser_nodes[623] + 5)))
+#define CALL_parser___parser_nodes___AIfexprExpr___n_else(recv) ((parser___parser_nodes___AIfexprExpr___n_else_t)CALL((recv), (SFT_parser___parser_nodes[623] + 6)))
+#define ID_parser___parser_nodes___AWhileExpr (SFT_parser___parser_nodes[624])
+#define COLOR_parser___parser_nodes___AWhileExpr (SFT_parser___parser_nodes[625])
+#define ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(recv) ATTR(recv, (SFT_parser___parser_nodes[626] + 0))
+#define ATTR_parser___parser_nodes___AWhileExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[626] + 1))
+#define ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(recv) ATTR(recv, (SFT_parser___parser_nodes[626] + 2))
+#define ATTR_parser___parser_nodes___AWhileExpr____n_block(recv) ATTR(recv, (SFT_parser___parser_nodes[626] + 3))
+#define INIT_TABLE_POS_parser___parser_nodes___AWhileExpr (SFT_parser___parser_nodes[627] + 0)
+#define CALL_parser___parser_nodes___AWhileExpr___n_kwwhile(recv) ((parser___parser_nodes___AWhileExpr___n_kwwhile_t)CALL((recv), (SFT_parser___parser_nodes[627] + 1)))
+#define CALL_parser___parser_nodes___AWhileExpr___n_expr(recv) ((parser___parser_nodes___AWhileExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[627] + 2)))
+#define CALL_parser___parser_nodes___AWhileExpr___n_kwdo(recv) ((parser___parser_nodes___AWhileExpr___n_kwdo_t)CALL((recv), (SFT_parser___parser_nodes[627] + 3)))
+#define CALL_parser___parser_nodes___AWhileExpr___n_block(recv) ((parser___parser_nodes___AWhileExpr___n_block_t)CALL((recv), (SFT_parser___parser_nodes[627] + 4)))
+#define ID_parser___parser_nodes___ALoopExpr (SFT_parser___parser_nodes[628])
+#define COLOR_parser___parser_nodes___ALoopExpr (SFT_parser___parser_nodes[629])
+#define ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(recv) ATTR(recv, (SFT_parser___parser_nodes[630] + 0))
+#define ATTR_parser___parser_nodes___ALoopExpr____n_block(recv) ATTR(recv, (SFT_parser___parser_nodes[630] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___ALoopExpr (SFT_parser___parser_nodes[631] + 0)
+#define CALL_parser___parser_nodes___ALoopExpr___n_kwloop(recv) ((parser___parser_nodes___ALoopExpr___n_kwloop_t)CALL((recv), (SFT_parser___parser_nodes[631] + 1)))
+#define CALL_parser___parser_nodes___ALoopExpr___n_block(recv) ((parser___parser_nodes___ALoopExpr___n_block_t)CALL((recv), (SFT_parser___parser_nodes[631] + 2)))
+#define ID_parser___parser_nodes___AForExpr (SFT_parser___parser_nodes[632])
+#define COLOR_parser___parser_nodes___AForExpr (SFT_parser___parser_nodes[633])
+#define ATTR_parser___parser_nodes___AForExpr____n_kwfor(recv) ATTR(recv, (SFT_parser___parser_nodes[634] + 0))
+#define ATTR_parser___parser_nodes___AForExpr____n_ids(recv) ATTR(recv, (SFT_parser___parser_nodes[634] + 1))
+#define ATTR_parser___parser_nodes___AForExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[634] + 2))
+#define ATTR_parser___parser_nodes___AForExpr____n_kwdo(recv) ATTR(recv, (SFT_parser___parser_nodes[634] + 3))
+#define ATTR_parser___parser_nodes___AForExpr____n_block(recv) ATTR(recv, (SFT_parser___parser_nodes[634] + 4))
+#define INIT_TABLE_POS_parser___parser_nodes___AForExpr (SFT_parser___parser_nodes[635] + 0)
+#define CALL_parser___parser_nodes___AForExpr___n_kwfor(recv) ((parser___parser_nodes___AForExpr___n_kwfor_t)CALL((recv), (SFT_parser___parser_nodes[635] + 1)))
+#define CALL_parser___parser_nodes___AForExpr___n_ids(recv) ((parser___parser_nodes___AForExpr___n_ids_t)CALL((recv), (SFT_parser___parser_nodes[635] + 2)))
+#define CALL_parser___parser_nodes___AForExpr___n_expr(recv) ((parser___parser_nodes___AForExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[635] + 3)))
+#define CALL_parser___parser_nodes___AForExpr___n_kwdo(recv) ((parser___parser_nodes___AForExpr___n_kwdo_t)CALL((recv), (SFT_parser___parser_nodes[635] + 4)))
+#define CALL_parser___parser_nodes___AForExpr___n_block(recv) ((parser___parser_nodes___AForExpr___n_block_t)CALL((recv), (SFT_parser___parser_nodes[635] + 5)))
+#define ID_parser___parser_nodes___AAssertExpr (SFT_parser___parser_nodes[636])
+#define COLOR_parser___parser_nodes___AAssertExpr (SFT_parser___parser_nodes[637])
+#define ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(recv) ATTR(recv, (SFT_parser___parser_nodes[638] + 0))
+#define ATTR_parser___parser_nodes___AAssertExpr____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[638] + 1))
+#define ATTR_parser___parser_nodes___AAssertExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[638] + 2))
+#define ATTR_parser___parser_nodes___AAssertExpr____n_else(recv) ATTR(recv, (SFT_parser___parser_nodes[638] + 3))
+#define INIT_TABLE_POS_parser___parser_nodes___AAssertExpr (SFT_parser___parser_nodes[639] + 0)
+#define CALL_parser___parser_nodes___AAssertExpr___n_kwassert(recv) ((parser___parser_nodes___AAssertExpr___n_kwassert_t)CALL((recv), (SFT_parser___parser_nodes[639] + 1)))
+#define CALL_parser___parser_nodes___AAssertExpr___n_id(recv) ((parser___parser_nodes___AAssertExpr___n_id_t)CALL((recv), (SFT_parser___parser_nodes[639] + 2)))
+#define CALL_parser___parser_nodes___AAssertExpr___n_expr(recv) ((parser___parser_nodes___AAssertExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[639] + 3)))
+#define CALL_parser___parser_nodes___AAssertExpr___n_else(recv) ((parser___parser_nodes___AAssertExpr___n_else_t)CALL((recv), (SFT_parser___parser_nodes[639] + 4)))
+#define ID_parser___parser_nodes___AAssignFormExpr (SFT_parser___parser_nodes[640])
+#define COLOR_parser___parser_nodes___AAssignFormExpr (SFT_parser___parser_nodes[641])
+#define ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(recv) ATTR(recv, (SFT_parser___parser_nodes[642] + 0))
+#define ATTR_parser___parser_nodes___AAssignFormExpr____n_value(recv) ATTR(recv, (SFT_parser___parser_nodes[642] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AAssignFormExpr (SFT_parser___parser_nodes[643] + 0)
+#define CALL_parser___parser_nodes___AAssignFormExpr___n_assign(recv) ((parser___parser_nodes___AAssignFormExpr___n_assign_t)CALL((recv), (SFT_parser___parser_nodes[643] + 1)))
+#define CALL_parser___parser_nodes___AAssignFormExpr___n_value(recv) ((parser___parser_nodes___AAssignFormExpr___n_value_t)CALL((recv), (SFT_parser___parser_nodes[643] + 2)))
+#define ID_parser___parser_nodes___AReassignFormExpr (SFT_parser___parser_nodes[644])
+#define COLOR_parser___parser_nodes___AReassignFormExpr (SFT_parser___parser_nodes[645])
+#define ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(recv) ATTR(recv, (SFT_parser___parser_nodes[646] + 0))
+#define ATTR_parser___parser_nodes___AReassignFormExpr____n_value(recv) ATTR(recv, (SFT_parser___parser_nodes[646] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AReassignFormExpr (SFT_parser___parser_nodes[647] + 0)
+#define CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(recv) ((parser___parser_nodes___AReassignFormExpr___n_assign_op_t)CALL((recv), (SFT_parser___parser_nodes[647] + 1)))
+#define CALL_parser___parser_nodes___AReassignFormExpr___n_value(recv) ((parser___parser_nodes___AReassignFormExpr___n_value_t)CALL((recv), (SFT_parser___parser_nodes[647] + 2)))
+#define ID_parser___parser_nodes___AOnceExpr (SFT_parser___parser_nodes[648])
+#define COLOR_parser___parser_nodes___AOnceExpr (SFT_parser___parser_nodes[649])
+#define ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(recv) ATTR(recv, (SFT_parser___parser_nodes[650] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AOnceExpr (SFT_parser___parser_nodes[651] + 0)
+#define CALL_parser___parser_nodes___AOnceExpr___n_kwonce(recv) ((parser___parser_nodes___AOnceExpr___n_kwonce_t)CALL((recv), (SFT_parser___parser_nodes[651] + 1)))
+#define ID_parser___parser_nodes___ASendExpr (SFT_parser___parser_nodes[652])
+#define COLOR_parser___parser_nodes___ASendExpr (SFT_parser___parser_nodes[653])
+#define ATTR_parser___parser_nodes___ASendExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[654] + 0))
+#define ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(recv) ATTR(recv, (SFT_parser___parser_nodes[654] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___ASendExpr (SFT_parser___parser_nodes[655] + 0)
+#define CALL_parser___parser_nodes___ASendExpr___n_expr(recv) ((parser___parser_nodes___ASendExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[655] + 1)))
+#define CALL_parser___parser_nodes___ASendExpr___n_closure_defs(recv) ((parser___parser_nodes___ASendExpr___n_closure_defs_t)CALL((recv), (SFT_parser___parser_nodes[655] + 2)))
+#define ID_parser___parser_nodes___ABinopExpr (SFT_parser___parser_nodes[656])
+#define COLOR_parser___parser_nodes___ABinopExpr (SFT_parser___parser_nodes[657])
+#define ATTR_parser___parser_nodes___ABinopExpr____n_expr2(recv) ATTR(recv, (SFT_parser___parser_nodes[658] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___ABinopExpr (SFT_parser___parser_nodes[659] + 0)
+#define CALL_parser___parser_nodes___ABinopExpr___n_expr2(recv) ((parser___parser_nodes___ABinopExpr___n_expr2_t)CALL((recv), (SFT_parser___parser_nodes[659] + 1)))
+#define ID_parser___parser_nodes___ABoolExpr (SFT_parser___parser_nodes[660])
+#define COLOR_parser___parser_nodes___ABoolExpr (SFT_parser___parser_nodes[661])
+#define INIT_TABLE_POS_parser___parser_nodes___ABoolExpr (SFT_parser___parser_nodes[662] + 0)
+#define ID_parser___parser_nodes___AOrExpr (SFT_parser___parser_nodes[663])
+#define COLOR_parser___parser_nodes___AOrExpr (SFT_parser___parser_nodes[664])
+#define ATTR_parser___parser_nodes___AOrExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[665] + 0))
+#define ATTR_parser___parser_nodes___AOrExpr____n_expr2(recv) ATTR(recv, (SFT_parser___parser_nodes[665] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AOrExpr (SFT_parser___parser_nodes[666] + 0)
+#define CALL_parser___parser_nodes___AOrExpr___n_expr(recv) ((parser___parser_nodes___AOrExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[666] + 1)))
+#define CALL_parser___parser_nodes___AOrExpr___n_expr2(recv) ((parser___parser_nodes___AOrExpr___n_expr2_t)CALL((recv), (SFT_parser___parser_nodes[666] + 2)))
+#define ID_parser___parser_nodes___AAndExpr (SFT_parser___parser_nodes[667])
+#define COLOR_parser___parser_nodes___AAndExpr (SFT_parser___parser_nodes[668])
+#define ATTR_parser___parser_nodes___AAndExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[669] + 0))
+#define ATTR_parser___parser_nodes___AAndExpr____n_expr2(recv) ATTR(recv, (SFT_parser___parser_nodes[669] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AAndExpr (SFT_parser___parser_nodes[670] + 0)
+#define CALL_parser___parser_nodes___AAndExpr___n_expr(recv) ((parser___parser_nodes___AAndExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[670] + 1)))
+#define CALL_parser___parser_nodes___AAndExpr___n_expr2(recv) ((parser___parser_nodes___AAndExpr___n_expr2_t)CALL((recv), (SFT_parser___parser_nodes[670] + 2)))
+#define ID_parser___parser_nodes___AOrElseExpr (SFT_parser___parser_nodes[671])
+#define COLOR_parser___parser_nodes___AOrElseExpr (SFT_parser___parser_nodes[672])
+#define ATTR_parser___parser_nodes___AOrElseExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[673] + 0))
+#define ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(recv) ATTR(recv, (SFT_parser___parser_nodes[673] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AOrElseExpr (SFT_parser___parser_nodes[674] + 0)
+#define CALL_parser___parser_nodes___AOrElseExpr___n_expr(recv) ((parser___parser_nodes___AOrElseExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[674] + 1)))
+#define CALL_parser___parser_nodes___AOrElseExpr___n_expr2(recv) ((parser___parser_nodes___AOrElseExpr___n_expr2_t)CALL((recv), (SFT_parser___parser_nodes[674] + 2)))
+#define ID_parser___parser_nodes___ANotExpr (SFT_parser___parser_nodes[675])
+#define COLOR_parser___parser_nodes___ANotExpr (SFT_parser___parser_nodes[676])
+#define ATTR_parser___parser_nodes___ANotExpr____n_kwnot(recv) ATTR(recv, (SFT_parser___parser_nodes[677] + 0))
+#define ATTR_parser___parser_nodes___ANotExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[677] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___ANotExpr (SFT_parser___parser_nodes[678] + 0)
+#define CALL_parser___parser_nodes___ANotExpr___n_kwnot(recv) ((parser___parser_nodes___ANotExpr___n_kwnot_t)CALL((recv), (SFT_parser___parser_nodes[678] + 1)))
+#define CALL_parser___parser_nodes___ANotExpr___n_expr(recv) ((parser___parser_nodes___ANotExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[678] + 2)))
+#define ID_parser___parser_nodes___AEqExpr (SFT_parser___parser_nodes[679])
+#define COLOR_parser___parser_nodes___AEqExpr (SFT_parser___parser_nodes[680])
+#define INIT_TABLE_POS_parser___parser_nodes___AEqExpr (SFT_parser___parser_nodes[681] + 0)
+#define ID_parser___parser_nodes___AEeExpr (SFT_parser___parser_nodes[682])
+#define COLOR_parser___parser_nodes___AEeExpr (SFT_parser___parser_nodes[683])
+#define ATTR_parser___parser_nodes___AEeExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[684] + 0))
+#define ATTR_parser___parser_nodes___AEeExpr____n_expr2(recv) ATTR(recv, (SFT_parser___parser_nodes[684] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AEeExpr (SFT_parser___parser_nodes[685] + 0)
+#define CALL_parser___parser_nodes___AEeExpr___n_expr(recv) ((parser___parser_nodes___AEeExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[685] + 1)))
+#define CALL_parser___parser_nodes___AEeExpr___n_expr2(recv) ((parser___parser_nodes___AEeExpr___n_expr2_t)CALL((recv), (SFT_parser___parser_nodes[685] + 2)))
+#define ID_parser___parser_nodes___ANeExpr (SFT_parser___parser_nodes[686])
+#define COLOR_parser___parser_nodes___ANeExpr (SFT_parser___parser_nodes[687])
+#define INIT_TABLE_POS_parser___parser_nodes___ANeExpr (SFT_parser___parser_nodes[688] + 0)
+#define ID_parser___parser_nodes___ALtExpr (SFT_parser___parser_nodes[689])
+#define COLOR_parser___parser_nodes___ALtExpr (SFT_parser___parser_nodes[690])
+#define INIT_TABLE_POS_parser___parser_nodes___ALtExpr (SFT_parser___parser_nodes[691] + 0)
+#define ID_parser___parser_nodes___ALeExpr (SFT_parser___parser_nodes[692])
+#define COLOR_parser___parser_nodes___ALeExpr (SFT_parser___parser_nodes[693])
+#define INIT_TABLE_POS_parser___parser_nodes___ALeExpr (SFT_parser___parser_nodes[694] + 0)
+#define ID_parser___parser_nodes___ALlExpr (SFT_parser___parser_nodes[695])
+#define COLOR_parser___parser_nodes___ALlExpr (SFT_parser___parser_nodes[696])
+#define INIT_TABLE_POS_parser___parser_nodes___ALlExpr (SFT_parser___parser_nodes[697] + 0)
+#define ID_parser___parser_nodes___AGtExpr (SFT_parser___parser_nodes[698])
+#define COLOR_parser___parser_nodes___AGtExpr (SFT_parser___parser_nodes[699])
+#define INIT_TABLE_POS_parser___parser_nodes___AGtExpr (SFT_parser___parser_nodes[700] + 0)
+#define ID_parser___parser_nodes___AGeExpr (SFT_parser___parser_nodes[701])
+#define COLOR_parser___parser_nodes___AGeExpr (SFT_parser___parser_nodes[702])
+#define INIT_TABLE_POS_parser___parser_nodes___AGeExpr (SFT_parser___parser_nodes[703] + 0)
+#define ID_parser___parser_nodes___AGgExpr (SFT_parser___parser_nodes[704])
+#define COLOR_parser___parser_nodes___AGgExpr (SFT_parser___parser_nodes[705])
+#define INIT_TABLE_POS_parser___parser_nodes___AGgExpr (SFT_parser___parser_nodes[706] + 0)
+#define ID_parser___parser_nodes___AIsaExpr (SFT_parser___parser_nodes[707])
+#define COLOR_parser___parser_nodes___AIsaExpr (SFT_parser___parser_nodes[708])
+#define ATTR_parser___parser_nodes___AIsaExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[709] + 0))
+#define ATTR_parser___parser_nodes___AIsaExpr____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[709] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AIsaExpr (SFT_parser___parser_nodes[710] + 0)
+#define CALL_parser___parser_nodes___AIsaExpr___n_expr(recv) ((parser___parser_nodes___AIsaExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[710] + 1)))
+#define CALL_parser___parser_nodes___AIsaExpr___n_type(recv) ((parser___parser_nodes___AIsaExpr___n_type_t)CALL((recv), (SFT_parser___parser_nodes[710] + 2)))
+#define ID_parser___parser_nodes___APlusExpr (SFT_parser___parser_nodes[711])
+#define COLOR_parser___parser_nodes___APlusExpr (SFT_parser___parser_nodes[712])
+#define INIT_TABLE_POS_parser___parser_nodes___APlusExpr (SFT_parser___parser_nodes[713] + 0)
+#define ID_parser___parser_nodes___AMinusExpr (SFT_parser___parser_nodes[714])
+#define COLOR_parser___parser_nodes___AMinusExpr (SFT_parser___parser_nodes[715])
+#define INIT_TABLE_POS_parser___parser_nodes___AMinusExpr (SFT_parser___parser_nodes[716] + 0)
+#define ID_parser___parser_nodes___AStarshipExpr (SFT_parser___parser_nodes[717])
+#define COLOR_parser___parser_nodes___AStarshipExpr (SFT_parser___parser_nodes[718])
+#define INIT_TABLE_POS_parser___parser_nodes___AStarshipExpr (SFT_parser___parser_nodes[719] + 0)
+#define ID_parser___parser_nodes___AStarExpr (SFT_parser___parser_nodes[720])
+#define COLOR_parser___parser_nodes___AStarExpr (SFT_parser___parser_nodes[721])
+#define INIT_TABLE_POS_parser___parser_nodes___AStarExpr (SFT_parser___parser_nodes[722] + 0)
+#define ID_parser___parser_nodes___ASlashExpr (SFT_parser___parser_nodes[723])
+#define COLOR_parser___parser_nodes___ASlashExpr (SFT_parser___parser_nodes[724])
+#define INIT_TABLE_POS_parser___parser_nodes___ASlashExpr (SFT_parser___parser_nodes[725] + 0)
+#define ID_parser___parser_nodes___APercentExpr (SFT_parser___parser_nodes[726])
+#define COLOR_parser___parser_nodes___APercentExpr (SFT_parser___parser_nodes[727])
+#define INIT_TABLE_POS_parser___parser_nodes___APercentExpr (SFT_parser___parser_nodes[728] + 0)
+#define ID_parser___parser_nodes___AUminusExpr (SFT_parser___parser_nodes[729])
+#define COLOR_parser___parser_nodes___AUminusExpr (SFT_parser___parser_nodes[730])
+#define ATTR_parser___parser_nodes___AUminusExpr____n_minus(recv) ATTR(recv, (SFT_parser___parser_nodes[731] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AUminusExpr (SFT_parser___parser_nodes[732] + 0)
+#define CALL_parser___parser_nodes___AUminusExpr___n_minus(recv) ((parser___parser_nodes___AUminusExpr___n_minus_t)CALL((recv), (SFT_parser___parser_nodes[732] + 1)))
+#define ID_parser___parser_nodes___ANewExpr (SFT_parser___parser_nodes[733])
+#define COLOR_parser___parser_nodes___ANewExpr (SFT_parser___parser_nodes[734])
+#define ATTR_parser___parser_nodes___ANewExpr____n_kwnew(recv) ATTR(recv, (SFT_parser___parser_nodes[735] + 0))
+#define ATTR_parser___parser_nodes___ANewExpr____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[735] + 1))
+#define ATTR_parser___parser_nodes___ANewExpr____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[735] + 2))
+#define ATTR_parser___parser_nodes___ANewExpr____n_args(recv) ATTR(recv, (SFT_parser___parser_nodes[735] + 3))
+#define INIT_TABLE_POS_parser___parser_nodes___ANewExpr (SFT_parser___parser_nodes[736] + 0)
+#define CALL_parser___parser_nodes___ANewExpr___n_kwnew(recv) ((parser___parser_nodes___ANewExpr___n_kwnew_t)CALL((recv), (SFT_parser___parser_nodes[736] + 1)))
+#define CALL_parser___parser_nodes___ANewExpr___n_type(recv) ((parser___parser_nodes___ANewExpr___n_type_t)CALL((recv), (SFT_parser___parser_nodes[736] + 2)))
+#define CALL_parser___parser_nodes___ANewExpr___n_id(recv) ((parser___parser_nodes___ANewExpr___n_id_t)CALL((recv), (SFT_parser___parser_nodes[736] + 3)))
+#define CALL_parser___parser_nodes___ANewExpr___n_args(recv) ((parser___parser_nodes___ANewExpr___n_args_t)CALL((recv), (SFT_parser___parser_nodes[736] + 4)))
+#define ID_parser___parser_nodes___AAttrFormExpr (SFT_parser___parser_nodes[737])
+#define COLOR_parser___parser_nodes___AAttrFormExpr (SFT_parser___parser_nodes[738])
+#define ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[739] + 0))
+#define ATTR_parser___parser_nodes___AAttrFormExpr____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[739] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AAttrFormExpr (SFT_parser___parser_nodes[740] + 0)
+#define CALL_parser___parser_nodes___AAttrFormExpr___n_expr(recv) ((parser___parser_nodes___AAttrFormExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[740] + 1)))
+#define CALL_parser___parser_nodes___AAttrFormExpr___n_id(recv) ((parser___parser_nodes___AAttrFormExpr___n_id_t)CALL((recv), (SFT_parser___parser_nodes[740] + 2)))
+#define ID_parser___parser_nodes___AAttrExpr (SFT_parser___parser_nodes[741])
+#define COLOR_parser___parser_nodes___AAttrExpr (SFT_parser___parser_nodes[742])
+#define INIT_TABLE_POS_parser___parser_nodes___AAttrExpr (SFT_parser___parser_nodes[743] + 0)
+#define ID_parser___parser_nodes___AAttrAssignExpr (SFT_parser___parser_nodes[744])
+#define COLOR_parser___parser_nodes___AAttrAssignExpr (SFT_parser___parser_nodes[745])
+#define INIT_TABLE_POS_parser___parser_nodes___AAttrAssignExpr (SFT_parser___parser_nodes[746] + 0)
+#define ID_parser___parser_nodes___ACallFormExpr (SFT_parser___parser_nodes[747])
+#define COLOR_parser___parser_nodes___ACallFormExpr (SFT_parser___parser_nodes[748])
+#define ATTR_parser___parser_nodes___ACallFormExpr____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[749] + 0))
+#define ATTR_parser___parser_nodes___ACallFormExpr____n_args(recv) ATTR(recv, (SFT_parser___parser_nodes[749] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___ACallFormExpr (SFT_parser___parser_nodes[750] + 0)
+#define CALL_parser___parser_nodes___ACallFormExpr___n_id(recv) ((parser___parser_nodes___ACallFormExpr___n_id_t)CALL((recv), (SFT_parser___parser_nodes[750] + 1)))
+#define CALL_parser___parser_nodes___ACallFormExpr___n_args(recv) ((parser___parser_nodes___ACallFormExpr___n_args_t)CALL((recv), (SFT_parser___parser_nodes[750] + 2)))
+#define ID_parser___parser_nodes___ASendReassignFormExpr (SFT_parser___parser_nodes[751])
+#define COLOR_parser___parser_nodes___ASendReassignFormExpr (SFT_parser___parser_nodes[752])
+#define INIT_TABLE_POS_parser___parser_nodes___ASendReassignFormExpr (SFT_parser___parser_nodes[753] + 0)
+#define ID_parser___parser_nodes___AAttrReassignExpr (SFT_parser___parser_nodes[754])
+#define COLOR_parser___parser_nodes___AAttrReassignExpr (SFT_parser___parser_nodes[755])
+#define INIT_TABLE_POS_parser___parser_nodes___AAttrReassignExpr (SFT_parser___parser_nodes[756] + 0)
+#define ID_parser___parser_nodes___ACallExpr (SFT_parser___parser_nodes[757])
+#define COLOR_parser___parser_nodes___ACallExpr (SFT_parser___parser_nodes[758])
+#define INIT_TABLE_POS_parser___parser_nodes___ACallExpr (SFT_parser___parser_nodes[759] + 0)
+#define ID_parser___parser_nodes___ACallAssignExpr (SFT_parser___parser_nodes[760])
+#define COLOR_parser___parser_nodes___ACallAssignExpr (SFT_parser___parser_nodes[761])
+#define INIT_TABLE_POS_parser___parser_nodes___ACallAssignExpr (SFT_parser___parser_nodes[762] + 0)
+#define ID_parser___parser_nodes___ACallReassignExpr (SFT_parser___parser_nodes[763])
+#define COLOR_parser___parser_nodes___ACallReassignExpr (SFT_parser___parser_nodes[764])
+#define INIT_TABLE_POS_parser___parser_nodes___ACallReassignExpr (SFT_parser___parser_nodes[765] + 0)
+#define ID_parser___parser_nodes___ASuperExpr (SFT_parser___parser_nodes[766])
+#define COLOR_parser___parser_nodes___ASuperExpr (SFT_parser___parser_nodes[767])
+#define ATTR_parser___parser_nodes___ASuperExpr____n_qualified(recv) ATTR(recv, (SFT_parser___parser_nodes[768] + 0))
+#define ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(recv) ATTR(recv, (SFT_parser___parser_nodes[768] + 1))
+#define ATTR_parser___parser_nodes___ASuperExpr____n_args(recv) ATTR(recv, (SFT_parser___parser_nodes[768] + 2))
+#define INIT_TABLE_POS_parser___parser_nodes___ASuperExpr (SFT_parser___parser_nodes[769] + 0)
+#define CALL_parser___parser_nodes___ASuperExpr___n_qualified(recv) ((parser___parser_nodes___ASuperExpr___n_qualified_t)CALL((recv), (SFT_parser___parser_nodes[769] + 1)))
+#define CALL_parser___parser_nodes___ASuperExpr___n_kwsuper(recv) ((parser___parser_nodes___ASuperExpr___n_kwsuper_t)CALL((recv), (SFT_parser___parser_nodes[769] + 2)))
+#define CALL_parser___parser_nodes___ASuperExpr___n_args(recv) ((parser___parser_nodes___ASuperExpr___n_args_t)CALL((recv), (SFT_parser___parser_nodes[769] + 3)))
+#define ID_parser___parser_nodes___AInitExpr (SFT_parser___parser_nodes[770])
+#define COLOR_parser___parser_nodes___AInitExpr (SFT_parser___parser_nodes[771])
+#define ATTR_parser___parser_nodes___AInitExpr____n_kwinit(recv) ATTR(recv, (SFT_parser___parser_nodes[772] + 0))
+#define ATTR_parser___parser_nodes___AInitExpr____n_args(recv) ATTR(recv, (SFT_parser___parser_nodes[772] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AInitExpr (SFT_parser___parser_nodes[773] + 0)
+#define CALL_parser___parser_nodes___AInitExpr___n_kwinit(recv) ((parser___parser_nodes___AInitExpr___n_kwinit_t)CALL((recv), (SFT_parser___parser_nodes[773] + 1)))
+#define CALL_parser___parser_nodes___AInitExpr___n_args(recv) ((parser___parser_nodes___AInitExpr___n_args_t)CALL((recv), (SFT_parser___parser_nodes[773] + 2)))
+#define ID_parser___parser_nodes___ABraFormExpr (SFT_parser___parser_nodes[774])
+#define COLOR_parser___parser_nodes___ABraFormExpr (SFT_parser___parser_nodes[775])
+#define ATTR_parser___parser_nodes___ABraFormExpr____n_args(recv) ATTR(recv, (SFT_parser___parser_nodes[776] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___ABraFormExpr (SFT_parser___parser_nodes[777] + 0)
+#define CALL_parser___parser_nodes___ABraFormExpr___n_args(recv) ((parser___parser_nodes___ABraFormExpr___n_args_t)CALL((recv), (SFT_parser___parser_nodes[777] + 1)))
+#define ID_parser___parser_nodes___ABraExpr (SFT_parser___parser_nodes[778])
+#define COLOR_parser___parser_nodes___ABraExpr (SFT_parser___parser_nodes[779])
+#define INIT_TABLE_POS_parser___parser_nodes___ABraExpr (SFT_parser___parser_nodes[780] + 0)
+#define ID_parser___parser_nodes___ABraAssignExpr (SFT_parser___parser_nodes[781])
+#define COLOR_parser___parser_nodes___ABraAssignExpr (SFT_parser___parser_nodes[782])
+#define INIT_TABLE_POS_parser___parser_nodes___ABraAssignExpr (SFT_parser___parser_nodes[783] + 0)
+#define ID_parser___parser_nodes___AVarFormExpr (SFT_parser___parser_nodes[784])
+#define COLOR_parser___parser_nodes___AVarFormExpr (SFT_parser___parser_nodes[785])
+#define ATTR_parser___parser_nodes___AVarFormExpr____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[786] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AVarFormExpr (SFT_parser___parser_nodes[787] + 0)
+#define CALL_parser___parser_nodes___AVarFormExpr___n_id(recv) ((parser___parser_nodes___AVarFormExpr___n_id_t)CALL((recv), (SFT_parser___parser_nodes[787] + 1)))
+#define ID_parser___parser_nodes___ABraReassignExpr (SFT_parser___parser_nodes[788])
+#define COLOR_parser___parser_nodes___ABraReassignExpr (SFT_parser___parser_nodes[789])
+#define INIT_TABLE_POS_parser___parser_nodes___ABraReassignExpr (SFT_parser___parser_nodes[790] + 0)
+#define ID_parser___parser_nodes___AClosureCallExpr (SFT_parser___parser_nodes[791])
+#define COLOR_parser___parser_nodes___AClosureCallExpr (SFT_parser___parser_nodes[792])
+#define ATTR_parser___parser_nodes___AClosureCallExpr____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[793] + 0))
+#define ATTR_parser___parser_nodes___AClosureCallExpr____n_args(recv) ATTR(recv, (SFT_parser___parser_nodes[793] + 1))
+#define ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(recv) ATTR(recv, (SFT_parser___parser_nodes[793] + 2))
+#define INIT_TABLE_POS_parser___parser_nodes___AClosureCallExpr (SFT_parser___parser_nodes[794] + 0)
+#define CALL_parser___parser_nodes___AClosureCallExpr___n_id(recv) ((parser___parser_nodes___AClosureCallExpr___n_id_t)CALL((recv), (SFT_parser___parser_nodes[794] + 1)))
+#define CALL_parser___parser_nodes___AClosureCallExpr___n_args(recv) ((parser___parser_nodes___AClosureCallExpr___n_args_t)CALL((recv), (SFT_parser___parser_nodes[794] + 2)))
+#define CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(recv) ((parser___parser_nodes___AClosureCallExpr___n_closure_defs_t)CALL((recv), (SFT_parser___parser_nodes[794] + 3)))
+#define ID_parser___parser_nodes___AVarExpr (SFT_parser___parser_nodes[795])
+#define COLOR_parser___parser_nodes___AVarExpr (SFT_parser___parser_nodes[796])
+#define INIT_TABLE_POS_parser___parser_nodes___AVarExpr (SFT_parser___parser_nodes[797] + 0)
+#define ID_parser___parser_nodes___AVarAssignExpr (SFT_parser___parser_nodes[798])
+#define COLOR_parser___parser_nodes___AVarAssignExpr (SFT_parser___parser_nodes[799])
+#define INIT_TABLE_POS_parser___parser_nodes___AVarAssignExpr (SFT_parser___parser_nodes[800] + 0)
+#define ID_parser___parser_nodes___AVarReassignExpr (SFT_parser___parser_nodes[801])
+#define COLOR_parser___parser_nodes___AVarReassignExpr (SFT_parser___parser_nodes[802])
+#define INIT_TABLE_POS_parser___parser_nodes___AVarReassignExpr (SFT_parser___parser_nodes[803] + 0)
+#define ID_parser___parser_nodes___ARangeExpr (SFT_parser___parser_nodes[804])
+#define COLOR_parser___parser_nodes___ARangeExpr (SFT_parser___parser_nodes[805])
+#define ATTR_parser___parser_nodes___ARangeExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[806] + 0))
+#define ATTR_parser___parser_nodes___ARangeExpr____n_expr2(recv) ATTR(recv, (SFT_parser___parser_nodes[806] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___ARangeExpr (SFT_parser___parser_nodes[807] + 0)
+#define CALL_parser___parser_nodes___ARangeExpr___n_expr(recv) ((parser___parser_nodes___ARangeExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[807] + 1)))
+#define CALL_parser___parser_nodes___ARangeExpr___n_expr2(recv) ((parser___parser_nodes___ARangeExpr___n_expr2_t)CALL((recv), (SFT_parser___parser_nodes[807] + 2)))
+#define ID_parser___parser_nodes___ACrangeExpr (SFT_parser___parser_nodes[808])
+#define COLOR_parser___parser_nodes___ACrangeExpr (SFT_parser___parser_nodes[809])
+#define ATTR_parser___parser_nodes___ACrangeExpr____n_obra(recv) ATTR(recv, (SFT_parser___parser_nodes[810] + 0))
+#define ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(recv) ATTR(recv, (SFT_parser___parser_nodes[810] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___ACrangeExpr (SFT_parser___parser_nodes[811] + 0)
+#define CALL_parser___parser_nodes___ACrangeExpr___n_obra(recv) ((parser___parser_nodes___ACrangeExpr___n_obra_t)CALL((recv), (SFT_parser___parser_nodes[811] + 1)))
+#define CALL_parser___parser_nodes___ACrangeExpr___n_cbra(recv) ((parser___parser_nodes___ACrangeExpr___n_cbra_t)CALL((recv), (SFT_parser___parser_nodes[811] + 2)))
+#define ID_parser___parser_nodes___AOrangeExpr (SFT_parser___parser_nodes[812])
+#define COLOR_parser___parser_nodes___AOrangeExpr (SFT_parser___parser_nodes[813])
+#define ATTR_parser___parser_nodes___AOrangeExpr____n_obra(recv) ATTR(recv, (SFT_parser___parser_nodes[814] + 0))
+#define ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(recv) ATTR(recv, (SFT_parser___parser_nodes[814] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AOrangeExpr (SFT_parser___parser_nodes[815] + 0)
+#define CALL_parser___parser_nodes___AOrangeExpr___n_obra(recv) ((parser___parser_nodes___AOrangeExpr___n_obra_t)CALL((recv), (SFT_parser___parser_nodes[815] + 1)))
+#define CALL_parser___parser_nodes___AOrangeExpr___n_cbra(recv) ((parser___parser_nodes___AOrangeExpr___n_cbra_t)CALL((recv), (SFT_parser___parser_nodes[815] + 2)))
+#define ID_parser___parser_nodes___AArrayExpr (SFT_parser___parser_nodes[816])
+#define COLOR_parser___parser_nodes___AArrayExpr (SFT_parser___parser_nodes[817])
+#define ATTR_parser___parser_nodes___AArrayExpr____n_exprs(recv) ATTR(recv, (SFT_parser___parser_nodes[818] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AArrayExpr (SFT_parser___parser_nodes[819] + 0)
+#define CALL_parser___parser_nodes___AArrayExpr___n_exprs(recv) ((parser___parser_nodes___AArrayExpr___n_exprs_t)CALL((recv), (SFT_parser___parser_nodes[819] + 1)))
+#define ID_parser___parser_nodes___ASelfExpr (SFT_parser___parser_nodes[820])
+#define COLOR_parser___parser_nodes___ASelfExpr (SFT_parser___parser_nodes[821])
+#define ATTR_parser___parser_nodes___ASelfExpr____n_kwself(recv) ATTR(recv, (SFT_parser___parser_nodes[822] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___ASelfExpr (SFT_parser___parser_nodes[823] + 0)
+#define CALL_parser___parser_nodes___ASelfExpr___n_kwself(recv) ((parser___parser_nodes___ASelfExpr___n_kwself_t)CALL((recv), (SFT_parser___parser_nodes[823] + 1)))
+#define ID_parser___parser_nodes___AImplicitSelfExpr (SFT_parser___parser_nodes[824])
+#define COLOR_parser___parser_nodes___AImplicitSelfExpr (SFT_parser___parser_nodes[825])
+#define INIT_TABLE_POS_parser___parser_nodes___AImplicitSelfExpr (SFT_parser___parser_nodes[826] + 0)
+#define ID_parser___parser_nodes___ATrueExpr (SFT_parser___parser_nodes[827])
+#define COLOR_parser___parser_nodes___ATrueExpr (SFT_parser___parser_nodes[828])
+#define ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(recv) ATTR(recv, (SFT_parser___parser_nodes[829] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___ATrueExpr (SFT_parser___parser_nodes[830] + 0)
+#define CALL_parser___parser_nodes___ATrueExpr___n_kwtrue(recv) ((parser___parser_nodes___ATrueExpr___n_kwtrue_t)CALL((recv), (SFT_parser___parser_nodes[830] + 1)))
+#define ID_parser___parser_nodes___AFalseExpr (SFT_parser___parser_nodes[831])
+#define COLOR_parser___parser_nodes___AFalseExpr (SFT_parser___parser_nodes[832])
+#define ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(recv) ATTR(recv, (SFT_parser___parser_nodes[833] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AFalseExpr (SFT_parser___parser_nodes[834] + 0)
+#define CALL_parser___parser_nodes___AFalseExpr___n_kwfalse(recv) ((parser___parser_nodes___AFalseExpr___n_kwfalse_t)CALL((recv), (SFT_parser___parser_nodes[834] + 1)))
+#define ID_parser___parser_nodes___ANullExpr (SFT_parser___parser_nodes[835])
+#define COLOR_parser___parser_nodes___ANullExpr (SFT_parser___parser_nodes[836])
+#define ATTR_parser___parser_nodes___ANullExpr____n_kwnull(recv) ATTR(recv, (SFT_parser___parser_nodes[837] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___ANullExpr (SFT_parser___parser_nodes[838] + 0)
+#define CALL_parser___parser_nodes___ANullExpr___n_kwnull(recv) ((parser___parser_nodes___ANullExpr___n_kwnull_t)CALL((recv), (SFT_parser___parser_nodes[838] + 1)))
+#define ID_parser___parser_nodes___AIntExpr (SFT_parser___parser_nodes[839])
+#define COLOR_parser___parser_nodes___AIntExpr (SFT_parser___parser_nodes[840])
+#define ATTR_parser___parser_nodes___AIntExpr____n_number(recv) ATTR(recv, (SFT_parser___parser_nodes[841] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AIntExpr (SFT_parser___parser_nodes[842] + 0)
+#define CALL_parser___parser_nodes___AIntExpr___n_number(recv) ((parser___parser_nodes___AIntExpr___n_number_t)CALL((recv), (SFT_parser___parser_nodes[842] + 1)))
+#define ID_parser___parser_nodes___AFloatExpr (SFT_parser___parser_nodes[843])
+#define COLOR_parser___parser_nodes___AFloatExpr (SFT_parser___parser_nodes[844])
+#define ATTR_parser___parser_nodes___AFloatExpr____n_float(recv) ATTR(recv, (SFT_parser___parser_nodes[845] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AFloatExpr (SFT_parser___parser_nodes[846] + 0)
+#define CALL_parser___parser_nodes___AFloatExpr___n_float(recv) ((parser___parser_nodes___AFloatExpr___n_float_t)CALL((recv), (SFT_parser___parser_nodes[846] + 1)))
+#define ID_parser___parser_nodes___ACharExpr (SFT_parser___parser_nodes[847])
+#define COLOR_parser___parser_nodes___ACharExpr (SFT_parser___parser_nodes[848])
+#define ATTR_parser___parser_nodes___ACharExpr____n_char(recv) ATTR(recv, (SFT_parser___parser_nodes[849] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___ACharExpr (SFT_parser___parser_nodes[850] + 0)
+#define CALL_parser___parser_nodes___ACharExpr___n_char(recv) ((parser___parser_nodes___ACharExpr___n_char_t)CALL((recv), (SFT_parser___parser_nodes[850] + 1)))
+#define ID_parser___parser_nodes___AStringFormExpr (SFT_parser___parser_nodes[851])
+#define COLOR_parser___parser_nodes___AStringFormExpr (SFT_parser___parser_nodes[852])
+#define INIT_TABLE_POS_parser___parser_nodes___AStringFormExpr (SFT_parser___parser_nodes[853] + 0)
+#define ID_parser___parser_nodes___AStringExpr (SFT_parser___parser_nodes[854])
+#define COLOR_parser___parser_nodes___AStringExpr (SFT_parser___parser_nodes[855])
+#define ATTR_parser___parser_nodes___AStringExpr____n_string(recv) ATTR(recv, (SFT_parser___parser_nodes[856] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AStringExpr (SFT_parser___parser_nodes[857] + 0)
+#define CALL_parser___parser_nodes___AStringExpr___n_string(recv) ((parser___parser_nodes___AStringExpr___n_string_t)CALL((recv), (SFT_parser___parser_nodes[857] + 1)))
+#define ID_parser___parser_nodes___AStartStringExpr (SFT_parser___parser_nodes[858])
+#define COLOR_parser___parser_nodes___AStartStringExpr (SFT_parser___parser_nodes[859])
+#define ATTR_parser___parser_nodes___AStartStringExpr____n_string(recv) ATTR(recv, (SFT_parser___parser_nodes[860] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AStartStringExpr (SFT_parser___parser_nodes[861] + 0)
+#define CALL_parser___parser_nodes___AStartStringExpr___n_string(recv) ((parser___parser_nodes___AStartStringExpr___n_string_t)CALL((recv), (SFT_parser___parser_nodes[861] + 1)))
+#define ID_parser___parser_nodes___AMidStringExpr (SFT_parser___parser_nodes[862])
+#define COLOR_parser___parser_nodes___AMidStringExpr (SFT_parser___parser_nodes[863])
+#define ATTR_parser___parser_nodes___AMidStringExpr____n_string(recv) ATTR(recv, (SFT_parser___parser_nodes[864] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AMidStringExpr (SFT_parser___parser_nodes[865] + 0)
+#define CALL_parser___parser_nodes___AMidStringExpr___n_string(recv) ((parser___parser_nodes___AMidStringExpr___n_string_t)CALL((recv), (SFT_parser___parser_nodes[865] + 1)))
+#define ID_parser___parser_nodes___AEndStringExpr (SFT_parser___parser_nodes[866])
+#define COLOR_parser___parser_nodes___AEndStringExpr (SFT_parser___parser_nodes[867])
+#define ATTR_parser___parser_nodes___AEndStringExpr____n_string(recv) ATTR(recv, (SFT_parser___parser_nodes[868] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AEndStringExpr (SFT_parser___parser_nodes[869] + 0)
+#define CALL_parser___parser_nodes___AEndStringExpr___n_string(recv) ((parser___parser_nodes___AEndStringExpr___n_string_t)CALL((recv), (SFT_parser___parser_nodes[869] + 1)))
+#define ID_parser___parser_nodes___ASuperstringExpr (SFT_parser___parser_nodes[870])
+#define COLOR_parser___parser_nodes___ASuperstringExpr (SFT_parser___parser_nodes[871])
+#define ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(recv) ATTR(recv, (SFT_parser___parser_nodes[872] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___ASuperstringExpr (SFT_parser___parser_nodes[873] + 0)
+#define CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(recv) ((parser___parser_nodes___ASuperstringExpr___n_exprs_t)CALL((recv), (SFT_parser___parser_nodes[873] + 1)))
+#define ID_parser___parser_nodes___AParExpr (SFT_parser___parser_nodes[874])
+#define COLOR_parser___parser_nodes___AParExpr (SFT_parser___parser_nodes[875])
+#define ATTR_parser___parser_nodes___AParExpr____n_opar(recv) ATTR(recv, (SFT_parser___parser_nodes[876] + 0))
+#define ATTR_parser___parser_nodes___AParExpr____n_cpar(recv) ATTR(recv, (SFT_parser___parser_nodes[876] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AParExpr (SFT_parser___parser_nodes[877] + 0)
+#define CALL_parser___parser_nodes___AParExpr___n_opar(recv) ((parser___parser_nodes___AParExpr___n_opar_t)CALL((recv), (SFT_parser___parser_nodes[877] + 1)))
+#define CALL_parser___parser_nodes___AParExpr___n_cpar(recv) ((parser___parser_nodes___AParExpr___n_cpar_t)CALL((recv), (SFT_parser___parser_nodes[877] + 2)))
+#define ID_parser___parser_nodes___AProxyExpr (SFT_parser___parser_nodes[878])
+#define COLOR_parser___parser_nodes___AProxyExpr (SFT_parser___parser_nodes[879])
+#define ATTR_parser___parser_nodes___AProxyExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[880] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AProxyExpr (SFT_parser___parser_nodes[881] + 0)
+#define CALL_parser___parser_nodes___AProxyExpr___n_expr(recv) ((parser___parser_nodes___AProxyExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[881] + 1)))
+#define ID_parser___parser_nodes___AAsCastExpr (SFT_parser___parser_nodes[882])
+#define COLOR_parser___parser_nodes___AAsCastExpr (SFT_parser___parser_nodes[883])
+#define ATTR_parser___parser_nodes___AAsCastExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[884] + 0))
+#define ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(recv) ATTR(recv, (SFT_parser___parser_nodes[884] + 1))
+#define ATTR_parser___parser_nodes___AAsCastExpr____n_opar(recv) ATTR(recv, (SFT_parser___parser_nodes[884] + 2))
+#define ATTR_parser___parser_nodes___AAsCastExpr____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[884] + 3))
+#define ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(recv) ATTR(recv, (SFT_parser___parser_nodes[884] + 4))
+#define INIT_TABLE_POS_parser___parser_nodes___AAsCastExpr (SFT_parser___parser_nodes[885] + 0)
+#define CALL_parser___parser_nodes___AAsCastExpr___n_expr(recv) ((parser___parser_nodes___AAsCastExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[885] + 1)))
+#define CALL_parser___parser_nodes___AAsCastExpr___n_kwas(recv) ((parser___parser_nodes___AAsCastExpr___n_kwas_t)CALL((recv), (SFT_parser___parser_nodes[885] + 2)))
+#define CALL_parser___parser_nodes___AAsCastExpr___n_opar(recv) ((parser___parser_nodes___AAsCastExpr___n_opar_t)CALL((recv), (SFT_parser___parser_nodes[885] + 3)))
+#define CALL_parser___parser_nodes___AAsCastExpr___n_type(recv) ((parser___parser_nodes___AAsCastExpr___n_type_t)CALL((recv), (SFT_parser___parser_nodes[885] + 4)))
+#define CALL_parser___parser_nodes___AAsCastExpr___n_cpar(recv) ((parser___parser_nodes___AAsCastExpr___n_cpar_t)CALL((recv), (SFT_parser___parser_nodes[885] + 5)))
+#define ID_parser___parser_nodes___AAsNotnullExpr (SFT_parser___parser_nodes[886])
+#define COLOR_parser___parser_nodes___AAsNotnullExpr (SFT_parser___parser_nodes[887])
+#define ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[888] + 0))
+#define ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(recv) ATTR(recv, (SFT_parser___parser_nodes[888] + 1))
+#define ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(recv) ATTR(recv, (SFT_parser___parser_nodes[888] + 2))
+#define ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(recv) ATTR(recv, (SFT_parser___parser_nodes[888] + 3))
+#define ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(recv) ATTR(recv, (SFT_parser___parser_nodes[888] + 4))
+#define ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(recv) ATTR(recv, (SFT_parser___parser_nodes[888] + 5))
+#define INIT_TABLE_POS_parser___parser_nodes___AAsNotnullExpr (SFT_parser___parser_nodes[889] + 0)
+#define CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(recv) ((parser___parser_nodes___AAsNotnullExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[889] + 1)))
+#define CALL_parser___parser_nodes___AAsNotnullExpr___n_kwas(recv) ((parser___parser_nodes___AAsNotnullExpr___n_kwas_t)CALL((recv), (SFT_parser___parser_nodes[889] + 2)))
+#define CALL_parser___parser_nodes___AAsNotnullExpr___n_opar(recv) ((parser___parser_nodes___AAsNotnullExpr___n_opar_t)CALL((recv), (SFT_parser___parser_nodes[889] + 3)))
+#define CALL_parser___parser_nodes___AAsNotnullExpr___n_kwnot(recv) ((parser___parser_nodes___AAsNotnullExpr___n_kwnot_t)CALL((recv), (SFT_parser___parser_nodes[889] + 4)))
+#define CALL_parser___parser_nodes___AAsNotnullExpr___n_kwnull(recv) ((parser___parser_nodes___AAsNotnullExpr___n_kwnull_t)CALL((recv), (SFT_parser___parser_nodes[889] + 5)))
+#define CALL_parser___parser_nodes___AAsNotnullExpr___n_cpar(recv) ((parser___parser_nodes___AAsNotnullExpr___n_cpar_t)CALL((recv), (SFT_parser___parser_nodes[889] + 6)))
+#define ID_parser___parser_nodes___AIssetAttrExpr (SFT_parser___parser_nodes[890])
+#define COLOR_parser___parser_nodes___AIssetAttrExpr (SFT_parser___parser_nodes[891])
+#define ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(recv) ATTR(recv, (SFT_parser___parser_nodes[892] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AIssetAttrExpr (SFT_parser___parser_nodes[893] + 0)
+#define CALL_parser___parser_nodes___AIssetAttrExpr___n_kwisset(recv) ((parser___parser_nodes___AIssetAttrExpr___n_kwisset_t)CALL((recv), (SFT_parser___parser_nodes[893] + 1)))
+#define ID_parser___parser_nodes___AExprs (SFT_parser___parser_nodes[894])
+#define COLOR_parser___parser_nodes___AExprs (SFT_parser___parser_nodes[895])
+#define ATTR_parser___parser_nodes___AExprs____n_exprs(recv) ATTR(recv, (SFT_parser___parser_nodes[896] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AExprs (SFT_parser___parser_nodes[897] + 0)
+#define CALL_parser___parser_nodes___AExprs___n_exprs(recv) ((parser___parser_nodes___AExprs___n_exprs_t)CALL((recv), (SFT_parser___parser_nodes[897] + 1)))
+#define ID_parser___parser_nodes___ADebugTypeExpr (SFT_parser___parser_nodes[898])
+#define COLOR_parser___parser_nodes___ADebugTypeExpr (SFT_parser___parser_nodes[899])
+#define ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(recv) ATTR(recv, (SFT_parser___parser_nodes[900] + 0))
+#define ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(recv) ATTR(recv, (SFT_parser___parser_nodes[900] + 1))
+#define ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[900] + 2))
+#define ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(recv) ATTR(recv, (SFT_parser___parser_nodes[900] + 3))
+#define INIT_TABLE_POS_parser___parser_nodes___ADebugTypeExpr (SFT_parser___parser_nodes[901] + 0)
+#define CALL_parser___parser_nodes___ADebugTypeExpr___n_kwdebug(recv) ((parser___parser_nodes___ADebugTypeExpr___n_kwdebug_t)CALL((recv), (SFT_parser___parser_nodes[901] + 1)))
+#define CALL_parser___parser_nodes___ADebugTypeExpr___n_kwtype(recv) ((parser___parser_nodes___ADebugTypeExpr___n_kwtype_t)CALL((recv), (SFT_parser___parser_nodes[901] + 2)))
+#define CALL_parser___parser_nodes___ADebugTypeExpr___n_expr(recv) ((parser___parser_nodes___ADebugTypeExpr___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[901] + 3)))
+#define CALL_parser___parser_nodes___ADebugTypeExpr___n_type(recv) ((parser___parser_nodes___ADebugTypeExpr___n_type_t)CALL((recv), (SFT_parser___parser_nodes[901] + 4)))
+#define ID_parser___parser_nodes___AListExprs (SFT_parser___parser_nodes[902])
+#define COLOR_parser___parser_nodes___AListExprs (SFT_parser___parser_nodes[903])
+#define INIT_TABLE_POS_parser___parser_nodes___AListExprs (SFT_parser___parser_nodes[904] + 0)
+#define ID_parser___parser_nodes___AParExprs (SFT_parser___parser_nodes[905])
+#define COLOR_parser___parser_nodes___AParExprs (SFT_parser___parser_nodes[906])
+#define ATTR_parser___parser_nodes___AParExprs____n_opar(recv) ATTR(recv, (SFT_parser___parser_nodes[907] + 0))
+#define ATTR_parser___parser_nodes___AParExprs____n_cpar(recv) ATTR(recv, (SFT_parser___parser_nodes[907] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___AParExprs (SFT_parser___parser_nodes[908] + 0)
+#define CALL_parser___parser_nodes___AParExprs___n_opar(recv) ((parser___parser_nodes___AParExprs___n_opar_t)CALL((recv), (SFT_parser___parser_nodes[908] + 1)))
+#define CALL_parser___parser_nodes___AParExprs___n_cpar(recv) ((parser___parser_nodes___AParExprs___n_cpar_t)CALL((recv), (SFT_parser___parser_nodes[908] + 2)))
+#define ID_parser___parser_nodes___ABraExprs (SFT_parser___parser_nodes[909])
+#define COLOR_parser___parser_nodes___ABraExprs (SFT_parser___parser_nodes[910])
+#define ATTR_parser___parser_nodes___ABraExprs____n_obra(recv) ATTR(recv, (SFT_parser___parser_nodes[911] + 0))
+#define ATTR_parser___parser_nodes___ABraExprs____n_cbra(recv) ATTR(recv, (SFT_parser___parser_nodes[911] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___ABraExprs (SFT_parser___parser_nodes[912] + 0)
+#define CALL_parser___parser_nodes___ABraExprs___n_obra(recv) ((parser___parser_nodes___ABraExprs___n_obra_t)CALL((recv), (SFT_parser___parser_nodes[912] + 1)))
+#define CALL_parser___parser_nodes___ABraExprs___n_cbra(recv) ((parser___parser_nodes___ABraExprs___n_cbra_t)CALL((recv), (SFT_parser___parser_nodes[912] + 2)))
+#define ID_parser___parser_nodes___AAssignOp (SFT_parser___parser_nodes[913])
+#define COLOR_parser___parser_nodes___AAssignOp (SFT_parser___parser_nodes[914])
+#define INIT_TABLE_POS_parser___parser_nodes___AAssignOp (SFT_parser___parser_nodes[915] + 0)
+#define ID_parser___parser_nodes___APlusAssignOp (SFT_parser___parser_nodes[916])
+#define COLOR_parser___parser_nodes___APlusAssignOp (SFT_parser___parser_nodes[917])
+#define ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(recv) ATTR(recv, (SFT_parser___parser_nodes[918] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___APlusAssignOp (SFT_parser___parser_nodes[919] + 0)
+#define CALL_parser___parser_nodes___APlusAssignOp___n_pluseq(recv) ((parser___parser_nodes___APlusAssignOp___n_pluseq_t)CALL((recv), (SFT_parser___parser_nodes[919] + 1)))
+#define ID_parser___parser_nodes___AMinusAssignOp (SFT_parser___parser_nodes[920])
+#define COLOR_parser___parser_nodes___AMinusAssignOp (SFT_parser___parser_nodes[921])
+#define ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(recv) ATTR(recv, (SFT_parser___parser_nodes[922] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___AMinusAssignOp (SFT_parser___parser_nodes[923] + 0)
+#define CALL_parser___parser_nodes___AMinusAssignOp___n_minuseq(recv) ((parser___parser_nodes___AMinusAssignOp___n_minuseq_t)CALL((recv), (SFT_parser___parser_nodes[923] + 1)))
+#define ID_parser___parser_nodes___AClosureDef (SFT_parser___parser_nodes[924])
+#define COLOR_parser___parser_nodes___AClosureDef (SFT_parser___parser_nodes[925])
+#define ATTR_parser___parser_nodes___AClosureDef____n_bang(recv) ATTR(recv, (SFT_parser___parser_nodes[926] + 0))
+#define ATTR_parser___parser_nodes___AClosureDef____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[926] + 1))
+#define ATTR_parser___parser_nodes___AClosureDef____n_ids(recv) ATTR(recv, (SFT_parser___parser_nodes[926] + 2))
+#define ATTR_parser___parser_nodes___AClosureDef____n_kwdo(recv) ATTR(recv, (SFT_parser___parser_nodes[926] + 3))
+#define ATTR_parser___parser_nodes___AClosureDef____n_expr(recv) ATTR(recv, (SFT_parser___parser_nodes[926] + 4))
+#define INIT_TABLE_POS_parser___parser_nodes___AClosureDef (SFT_parser___parser_nodes[927] + 0)
+#define CALL_parser___parser_nodes___AClosureDef___n_bang(recv) ((parser___parser_nodes___AClosureDef___n_bang_t)CALL((recv), (SFT_parser___parser_nodes[927] + 1)))
+#define CALL_parser___parser_nodes___AClosureDef___n_id(recv) ((parser___parser_nodes___AClosureDef___n_id_t)CALL((recv), (SFT_parser___parser_nodes[927] + 2)))
+#define CALL_parser___parser_nodes___AClosureDef___n_ids(recv) ((parser___parser_nodes___AClosureDef___n_ids_t)CALL((recv), (SFT_parser___parser_nodes[927] + 3)))
+#define CALL_parser___parser_nodes___AClosureDef___n_kwdo(recv) ((parser___parser_nodes___AClosureDef___n_kwdo_t)CALL((recv), (SFT_parser___parser_nodes[927] + 4)))
+#define CALL_parser___parser_nodes___AClosureDef___n_expr(recv) ((parser___parser_nodes___AClosureDef___n_expr_t)CALL((recv), (SFT_parser___parser_nodes[927] + 5)))
+#define ID_parser___parser_nodes___AClosureId (SFT_parser___parser_nodes[928])
+#define COLOR_parser___parser_nodes___AClosureId (SFT_parser___parser_nodes[929])
+#define INIT_TABLE_POS_parser___parser_nodes___AClosureId (SFT_parser___parser_nodes[930] + 0)
+#define ID_parser___parser_nodes___ASimpleClosureId (SFT_parser___parser_nodes[931])
+#define COLOR_parser___parser_nodes___ASimpleClosureId (SFT_parser___parser_nodes[932])
+#define ATTR_parser___parser_nodes___ASimpleClosureId____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[933] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___ASimpleClosureId (SFT_parser___parser_nodes[934] + 0)
+#define CALL_parser___parser_nodes___ASimpleClosureId___n_id(recv) ((parser___parser_nodes___ASimpleClosureId___n_id_t)CALL((recv), (SFT_parser___parser_nodes[934] + 1)))
+#define ID_parser___parser_nodes___ABreakClosureId (SFT_parser___parser_nodes[935])
+#define COLOR_parser___parser_nodes___ABreakClosureId (SFT_parser___parser_nodes[936])
+#define ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(recv) ATTR(recv, (SFT_parser___parser_nodes[937] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___ABreakClosureId (SFT_parser___parser_nodes[938] + 0)
+#define CALL_parser___parser_nodes___ABreakClosureId___n_kwbreak(recv) ((parser___parser_nodes___ABreakClosureId___n_kwbreak_t)CALL((recv), (SFT_parser___parser_nodes[938] + 1)))
+#define ID_parser___parser_nodes___AModuleName (SFT_parser___parser_nodes[939])
+#define COLOR_parser___parser_nodes___AModuleName (SFT_parser___parser_nodes[940])
+#define ATTR_parser___parser_nodes___AModuleName____n_quad(recv) ATTR(recv, (SFT_parser___parser_nodes[941] + 0))
+#define ATTR_parser___parser_nodes___AModuleName____n_path(recv) ATTR(recv, (SFT_parser___parser_nodes[941] + 1))
+#define ATTR_parser___parser_nodes___AModuleName____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[941] + 2))
+#define INIT_TABLE_POS_parser___parser_nodes___AModuleName (SFT_parser___parser_nodes[942] + 0)
+#define CALL_parser___parser_nodes___AModuleName___n_quad(recv) ((parser___parser_nodes___AModuleName___n_quad_t)CALL((recv), (SFT_parser___parser_nodes[942] + 1)))
+#define CALL_parser___parser_nodes___AModuleName___n_path(recv) ((parser___parser_nodes___AModuleName___n_path_t)CALL((recv), (SFT_parser___parser_nodes[942] + 2)))
+#define CALL_parser___parser_nodes___AModuleName___n_id(recv) ((parser___parser_nodes___AModuleName___n_id_t)CALL((recv), (SFT_parser___parser_nodes[942] + 3)))
+#define ID_parser___parser_nodes___AQualified (SFT_parser___parser_nodes[943])
+#define COLOR_parser___parser_nodes___AQualified (SFT_parser___parser_nodes[944])
+#define ATTR_parser___parser_nodes___AQualified____n_quad(recv) ATTR(recv, (SFT_parser___parser_nodes[945] + 0))
+#define ATTR_parser___parser_nodes___AQualified____n_id(recv) ATTR(recv, (SFT_parser___parser_nodes[945] + 1))
+#define ATTR_parser___parser_nodes___AQualified____n_classid(recv) ATTR(recv, (SFT_parser___parser_nodes[945] + 2))
+#define INIT_TABLE_POS_parser___parser_nodes___AQualified (SFT_parser___parser_nodes[946] + 0)
+#define CALL_parser___parser_nodes___AQualified___n_quad(recv) ((parser___parser_nodes___AQualified___n_quad_t)CALL((recv), (SFT_parser___parser_nodes[946] + 1)))
+#define CALL_parser___parser_nodes___AQualified___n_id(recv) ((parser___parser_nodes___AQualified___n_id_t)CALL((recv), (SFT_parser___parser_nodes[946] + 2)))
+#define CALL_parser___parser_nodes___AQualified___n_classid(recv) ((parser___parser_nodes___AQualified___n_classid_t)CALL((recv), (SFT_parser___parser_nodes[946] + 3)))
+#define ID_parser___parser_nodes___ADoc (SFT_parser___parser_nodes[947])
+#define COLOR_parser___parser_nodes___ADoc (SFT_parser___parser_nodes[948])
+#define ATTR_parser___parser_nodes___ADoc____n_comment(recv) ATTR(recv, (SFT_parser___parser_nodes[949] + 0))
+#define INIT_TABLE_POS_parser___parser_nodes___ADoc (SFT_parser___parser_nodes[950] + 0)
+#define CALL_parser___parser_nodes___ADoc___n_comment(recv) ((parser___parser_nodes___ADoc___n_comment_t)CALL((recv), (SFT_parser___parser_nodes[950] + 1)))
+#define ID_parser___parser_nodes___Start (SFT_parser___parser_nodes[951])
+#define COLOR_parser___parser_nodes___Start (SFT_parser___parser_nodes[952])
+#define ATTR_parser___parser_nodes___Start____n_base(recv) ATTR(recv, (SFT_parser___parser_nodes[953] + 0))
+#define ATTR_parser___parser_nodes___Start____n_eof(recv) ATTR(recv, (SFT_parser___parser_nodes[953] + 1))
+#define INIT_TABLE_POS_parser___parser_nodes___Start (SFT_parser___parser_nodes[954] + 0)
+#define CALL_parser___parser_nodes___Start___n_base(recv) ((parser___parser_nodes___Start___n_base_t)CALL((recv), (SFT_parser___parser_nodes[954] + 1)))
+#define CALL_parser___parser_nodes___Start___n_eof(recv) ((parser___parser_nodes___Start___n_eof_t)CALL((recv), (SFT_parser___parser_nodes[954] + 2)))
+#define CALL_parser___parser_nodes___Start___init(recv) ((parser___parser_nodes___Start___init_t)CALL((recv), (SFT_parser___parser_nodes[954] + 3)))
 static const char * const LOCATE_parser___parser_nodes___ANode___location = "parser_nodes::ANode::location";
 val_t parser___parser_nodes___ANode___location(val_t p0);
 typedef val_t (*parser___parser_nodes___ANode___location_t)(val_t p0);
@@ -1831,107 +1933,152 @@ static const char * const LOCATE_parser___parser_nodes___ANode___hot_location =
 val_t parser___parser_nodes___ANode___hot_location(val_t p0);
 typedef val_t (*parser___parser_nodes___ANode___hot_location_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ANode___init = "parser_nodes::ANode::init";
-void parser___parser_nodes___ANode___init(val_t p0, val_t p1, int* init_table);
-typedef void (*parser___parser_nodes___ANode___init_t)(val_t p0, val_t p1, int* init_table);
-val_t NEW_ANode_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_Token_parser___parser_nodes___ANode___init(val_t p0);
+void parser___parser_nodes___ANode___init(val_t p0, int* init_table);
+typedef void (*parser___parser_nodes___ANode___init_t)(val_t p0, int* init_table);
+val_t NEW_ANode_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_nodes___ANode___debug = "parser_nodes::ANode::debug";
+void parser___parser_nodes___ANode___debug(val_t p0, val_t p1);
+typedef void (*parser___parser_nodes___ANode___debug_t)(val_t p0, val_t p1);
+static const char * const LOCATE_parser___parser_nodes___Token___text = "parser_nodes::Token::text";
+val_t parser___parser_nodes___Token___text(val_t p0);
+typedef val_t (*parser___parser_nodes___Token___text_t)(val_t p0);
+static const char * const LOCATE_parser___parser_nodes___Token___to_s = "parser_nodes::Token::(string::Object::to_s)";
+val_t parser___parser_nodes___Token___to_s(val_t p0);
+typedef val_t (*parser___parser_nodes___Token___to_s_t)(val_t p0);
+val_t NEW_Token_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___Prod___location__eq = "parser_nodes::Prod::location=";
 void parser___parser_nodes___Prod___location__eq(val_t p0, val_t p1);
 typedef void (*parser___parser_nodes___Prod___location__eq_t)(val_t p0, val_t p1);
-val_t NEW_Prod_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TEol_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TComment_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwmodule_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwimport_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwclass_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwabstract_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwinterface_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwenum_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwspecial_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwend_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwmeth_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwtype_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwinit_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwredef_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwis_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwdo_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwreadable_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwwritable_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwvar_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwintern_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwextern_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwprotected_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwprivate_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwintrude_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwif_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwthen_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwelse_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwwhile_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwloop_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwfor_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwin_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwand_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwor_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwnot_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwreturn_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwcontinue_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwbreak_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwabort_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwassert_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwnew_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwisa_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwonce_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwsuper_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwself_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwtrue_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwfalse_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwnull_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwas_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwnullable_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwisset_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TKwlabel_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TOpar_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TCpar_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TObra_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TCbra_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TComma_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TColumn_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TQuad_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TAssign_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TPluseq_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TMinuseq_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TDotdotdot_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TDotdot_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TDot_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TPlus_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TMinus_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TStar_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TSlash_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TPercent_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TEq_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TNe_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TLt_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TLe_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TLl_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TGt_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TGe_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TGg_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TStarship_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TBang_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TClassid_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TId_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TAttrid_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TNumber_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TFloat_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TChar_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TString_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TStartString_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TMidString_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_TEndString_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_Prod_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_nodes___TEol___to_s = "parser_nodes::TEol::(string::Object::to_s)";
+val_t parser___parser_nodes___TEol___to_s(val_t p0);
+typedef val_t (*parser___parser_nodes___TEol___to_s_t)(val_t p0);
+val_t NEW_TEol_parser___parser_nodes___ANode___init();
+val_t NEW_TComment_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_nodes___TokenKeyword___to_s = "parser_nodes::TokenKeyword::(string::Object::to_s)";
+val_t parser___parser_nodes___TokenKeyword___to_s(val_t p0);
+typedef val_t (*parser___parser_nodes___TokenKeyword___to_s_t)(val_t p0);
+val_t NEW_TokenKeyword_parser___parser_nodes___ANode___init();
+val_t NEW_TKwmodule_parser___parser_nodes___ANode___init();
+val_t NEW_TKwimport_parser___parser_nodes___ANode___init();
+val_t NEW_TKwclass_parser___parser_nodes___ANode___init();
+val_t NEW_TKwabstract_parser___parser_nodes___ANode___init();
+val_t NEW_TKwinterface_parser___parser_nodes___ANode___init();
+val_t NEW_TKwenum_parser___parser_nodes___ANode___init();
+val_t NEW_TKwspecial_parser___parser_nodes___ANode___init();
+val_t NEW_TKwend_parser___parser_nodes___ANode___init();
+val_t NEW_TKwmeth_parser___parser_nodes___ANode___init();
+val_t NEW_TKwtype_parser___parser_nodes___ANode___init();
+val_t NEW_TKwinit_parser___parser_nodes___ANode___init();
+val_t NEW_TKwredef_parser___parser_nodes___ANode___init();
+val_t NEW_TKwis_parser___parser_nodes___ANode___init();
+val_t NEW_TKwdo_parser___parser_nodes___ANode___init();
+val_t NEW_TKwreadable_parser___parser_nodes___ANode___init();
+val_t NEW_TKwwritable_parser___parser_nodes___ANode___init();
+val_t NEW_TKwvar_parser___parser_nodes___ANode___init();
+val_t NEW_TKwintern_parser___parser_nodes___ANode___init();
+val_t NEW_TKwextern_parser___parser_nodes___ANode___init();
+val_t NEW_TKwprotected_parser___parser_nodes___ANode___init();
+val_t NEW_TKwprivate_parser___parser_nodes___ANode___init();
+val_t NEW_TKwintrude_parser___parser_nodes___ANode___init();
+val_t NEW_TKwif_parser___parser_nodes___ANode___init();
+val_t NEW_TKwthen_parser___parser_nodes___ANode___init();
+val_t NEW_TKwelse_parser___parser_nodes___ANode___init();
+val_t NEW_TKwwhile_parser___parser_nodes___ANode___init();
+val_t NEW_TKwloop_parser___parser_nodes___ANode___init();
+val_t NEW_TKwfor_parser___parser_nodes___ANode___init();
+val_t NEW_TKwin_parser___parser_nodes___ANode___init();
+val_t NEW_TKwand_parser___parser_nodes___ANode___init();
+val_t NEW_TKwor_parser___parser_nodes___ANode___init();
+val_t NEW_TKwnot_parser___parser_nodes___ANode___init();
+val_t NEW_TKwreturn_parser___parser_nodes___ANode___init();
+val_t NEW_TKwcontinue_parser___parser_nodes___ANode___init();
+val_t NEW_TKwbreak_parser___parser_nodes___ANode___init();
+val_t NEW_TKwabort_parser___parser_nodes___ANode___init();
+val_t NEW_TKwassert_parser___parser_nodes___ANode___init();
+val_t NEW_TKwnew_parser___parser_nodes___ANode___init();
+val_t NEW_TKwisa_parser___parser_nodes___ANode___init();
+val_t NEW_TKwonce_parser___parser_nodes___ANode___init();
+val_t NEW_TKwsuper_parser___parser_nodes___ANode___init();
+val_t NEW_TKwself_parser___parser_nodes___ANode___init();
+val_t NEW_TKwtrue_parser___parser_nodes___ANode___init();
+val_t NEW_TKwfalse_parser___parser_nodes___ANode___init();
+val_t NEW_TKwnull_parser___parser_nodes___ANode___init();
+val_t NEW_TKwas_parser___parser_nodes___ANode___init();
+val_t NEW_TKwnullable_parser___parser_nodes___ANode___init();
+val_t NEW_TKwisset_parser___parser_nodes___ANode___init();
+val_t NEW_TKwlabel_parser___parser_nodes___ANode___init();
+val_t NEW_TKwdebug_parser___parser_nodes___ANode___init();
+val_t NEW_TOpar_parser___parser_nodes___ANode___init();
+val_t NEW_TCpar_parser___parser_nodes___ANode___init();
+val_t NEW_TObra_parser___parser_nodes___ANode___init();
+val_t NEW_TCbra_parser___parser_nodes___ANode___init();
+val_t NEW_TComma_parser___parser_nodes___ANode___init();
+val_t NEW_TColumn_parser___parser_nodes___ANode___init();
+val_t NEW_TQuad_parser___parser_nodes___ANode___init();
+val_t NEW_TAssign_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_nodes___TokenOperator___to_s = "parser_nodes::TokenOperator::(string::Object::to_s)";
+val_t parser___parser_nodes___TokenOperator___to_s(val_t p0);
+typedef val_t (*parser___parser_nodes___TokenOperator___to_s_t)(val_t p0);
+val_t NEW_TokenOperator_parser___parser_nodes___ANode___init();
+val_t NEW_TPluseq_parser___parser_nodes___ANode___init();
+val_t NEW_TMinuseq_parser___parser_nodes___ANode___init();
+val_t NEW_TDotdotdot_parser___parser_nodes___ANode___init();
+val_t NEW_TDotdot_parser___parser_nodes___ANode___init();
+val_t NEW_TDot_parser___parser_nodes___ANode___init();
+val_t NEW_TPlus_parser___parser_nodes___ANode___init();
+val_t NEW_TMinus_parser___parser_nodes___ANode___init();
+val_t NEW_TStar_parser___parser_nodes___ANode___init();
+val_t NEW_TSlash_parser___parser_nodes___ANode___init();
+val_t NEW_TPercent_parser___parser_nodes___ANode___init();
+val_t NEW_TEq_parser___parser_nodes___ANode___init();
+val_t NEW_TNe_parser___parser_nodes___ANode___init();
+val_t NEW_TLt_parser___parser_nodes___ANode___init();
+val_t NEW_TLe_parser___parser_nodes___ANode___init();
+val_t NEW_TLl_parser___parser_nodes___ANode___init();
+val_t NEW_TGt_parser___parser_nodes___ANode___init();
+val_t NEW_TGe_parser___parser_nodes___ANode___init();
+val_t NEW_TGg_parser___parser_nodes___ANode___init();
+val_t NEW_TStarship_parser___parser_nodes___ANode___init();
+val_t NEW_TBang_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_nodes___TClassid___to_s = "parser_nodes::TClassid::(string::Object::to_s)";
+val_t parser___parser_nodes___TClassid___to_s(val_t p0);
+typedef val_t (*parser___parser_nodes___TClassid___to_s_t)(val_t p0);
+val_t NEW_TClassid_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_nodes___TId___to_s = "parser_nodes::TId::(string::Object::to_s)";
+val_t parser___parser_nodes___TId___to_s(val_t p0);
+typedef val_t (*parser___parser_nodes___TId___to_s_t)(val_t p0);
+val_t NEW_TId_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_nodes___TAttrid___to_s = "parser_nodes::TAttrid::(string::Object::to_s)";
+val_t parser___parser_nodes___TAttrid___to_s(val_t p0);
+typedef val_t (*parser___parser_nodes___TAttrid___to_s_t)(val_t p0);
+val_t NEW_TAttrid_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_nodes___TokenLiteral___to_s = "parser_nodes::TokenLiteral::(string::Object::to_s)";
+val_t parser___parser_nodes___TokenLiteral___to_s(val_t p0);
+typedef val_t (*parser___parser_nodes___TokenLiteral___to_s_t)(val_t p0);
+val_t NEW_TokenLiteral_parser___parser_nodes___ANode___init();
+val_t NEW_TNumber_parser___parser_nodes___ANode___init();
+val_t NEW_TFloat_parser___parser_nodes___ANode___init();
+val_t NEW_TChar_parser___parser_nodes___ANode___init();
+val_t NEW_TString_parser___parser_nodes___ANode___init();
+val_t NEW_TStartString_parser___parser_nodes___ANode___init();
+val_t NEW_TMidString_parser___parser_nodes___ANode___init();
+val_t NEW_TEndString_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_nodes___TBadString___to_s = "parser_nodes::TBadString::(string::Object::to_s)";
+val_t parser___parser_nodes___TBadString___to_s(val_t p0);
+typedef val_t (*parser___parser_nodes___TBadString___to_s_t)(val_t p0);
+val_t NEW_TBadString_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_nodes___TBadChar___to_s = "parser_nodes::TBadChar::(string::Object::to_s)";
+val_t parser___parser_nodes___TBadChar___to_s(val_t p0);
+typedef val_t (*parser___parser_nodes___TBadChar___to_s_t)(val_t p0);
+val_t NEW_TBadChar_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___EOF___noinit = "parser_nodes::EOF::noinit";
 void parser___parser_nodes___EOF___noinit(val_t p0, int* init_table);
 typedef void (*parser___parser_nodes___EOF___noinit_t)(val_t p0, int* init_table);
 val_t NEW_EOF_parser___parser_nodes___EOF___noinit();
+static const char * const LOCATE_parser___parser_nodes___EOF___to_s = "parser_nodes::EOF::(string::Object::to_s)";
+val_t parser___parser_nodes___EOF___to_s(val_t p0);
+typedef val_t (*parser___parser_nodes___EOF___to_s_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AError___noinit = "parser_nodes::AError::noinit";
 void parser___parser_nodes___AError___noinit(val_t p0, int* init_table);
 typedef void (*parser___parser_nodes___AError___noinit_t)(val_t p0, int* init_table);
@@ -1945,7 +2092,7 @@ typedef val_t (*parser___parser_nodes___AModule___n_imports_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AModule___n_classdefs = "parser_nodes::AModule::n_classdefs";
 val_t parser___parser_nodes___AModule___n_classdefs(val_t p0);
 typedef val_t (*parser___parser_nodes___AModule___n_classdefs_t)(val_t p0);
-val_t NEW_AModule_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AModule_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AModuledecl___n_doc = "parser_nodes::AModuledecl::n_doc";
 val_t parser___parser_nodes___AModuledecl___n_doc(val_t p0);
 typedef val_t (*parser___parser_nodes___AModuledecl___n_doc_t)(val_t p0);
@@ -1955,8 +2102,8 @@ typedef val_t (*parser___parser_nodes___AModuledecl___n_kwmodule_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AModuledecl___n_name = "parser_nodes::AModuledecl::n_name";
 val_t parser___parser_nodes___AModuledecl___n_name(val_t p0);
 typedef val_t (*parser___parser_nodes___AModuledecl___n_name_t)(val_t p0);
-val_t NEW_AModuledecl_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AImport_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AModuledecl_parser___parser_nodes___ANode___init();
+val_t NEW_AImport_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AStdImport___n_visibility = "parser_nodes::AStdImport::n_visibility";
 val_t parser___parser_nodes___AStdImport___n_visibility(val_t p0);
 typedef val_t (*parser___parser_nodes___AStdImport___n_visibility_t)(val_t p0);
@@ -1966,7 +2113,7 @@ typedef val_t (*parser___parser_nodes___AStdImport___n_kwimport_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AStdImport___n_name = "parser_nodes::AStdImport::n_name";
 val_t parser___parser_nodes___AStdImport___n_name(val_t p0);
 typedef val_t (*parser___parser_nodes___AStdImport___n_name_t)(val_t p0);
-val_t NEW_AStdImport_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStdImport_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ANoImport___n_visibility = "parser_nodes::ANoImport::n_visibility";
 val_t parser___parser_nodes___ANoImport___n_visibility(val_t p0);
 typedef val_t (*parser___parser_nodes___ANoImport___n_visibility_t)(val_t p0);
@@ -1976,22 +2123,25 @@ typedef val_t (*parser___parser_nodes___ANoImport___n_kwimport_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ANoImport___n_kwend = "parser_nodes::ANoImport::n_kwend";
 val_t parser___parser_nodes___ANoImport___n_kwend(val_t p0);
 typedef val_t (*parser___parser_nodes___ANoImport___n_kwend_t)(val_t p0);
-val_t NEW_ANoImport_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AVisibility_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_APublicVisibility_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANoImport_parser___parser_nodes___ANode___init();
+val_t NEW_AVisibility_parser___parser_nodes___ANode___init();
+val_t NEW_APublicVisibility_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___APrivateVisibility___n_kwprivate = "parser_nodes::APrivateVisibility::n_kwprivate";
 val_t parser___parser_nodes___APrivateVisibility___n_kwprivate(val_t p0);
 typedef val_t (*parser___parser_nodes___APrivateVisibility___n_kwprivate_t)(val_t p0);
-val_t NEW_APrivateVisibility_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_APrivateVisibility_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AProtectedVisibility___n_kwprotected = "parser_nodes::AProtectedVisibility::n_kwprotected";
 val_t parser___parser_nodes___AProtectedVisibility___n_kwprotected(val_t p0);
 typedef val_t (*parser___parser_nodes___AProtectedVisibility___n_kwprotected_t)(val_t p0);
-val_t NEW_AProtectedVisibility_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AProtectedVisibility_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AIntrudeVisibility___n_kwintrude = "parser_nodes::AIntrudeVisibility::n_kwintrude";
 val_t parser___parser_nodes___AIntrudeVisibility___n_kwintrude(val_t p0);
 typedef val_t (*parser___parser_nodes___AIntrudeVisibility___n_kwintrude_t)(val_t p0);
-val_t NEW_AIntrudeVisibility_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AClassdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIntrudeVisibility_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_nodes___AClassdef___n_propdefs = "parser_nodes::AClassdef::n_propdefs";
+val_t parser___parser_nodes___AClassdef___n_propdefs(val_t p0);
+typedef val_t (*parser___parser_nodes___AClassdef___n_propdefs_t)(val_t p0);
+val_t NEW_AClassdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AStdClassdef___n_doc = "parser_nodes::AStdClassdef::n_doc";
 val_t parser___parser_nodes___AStdClassdef___n_doc(val_t p0);
 typedef val_t (*parser___parser_nodes___AStdClassdef___n_doc_t)(val_t p0);
@@ -2013,52 +2163,46 @@ typedef val_t (*parser___parser_nodes___AStdClassdef___n_formaldefs_t)(val_t p0)
 static const char * const LOCATE_parser___parser_nodes___AStdClassdef___n_superclasses = "parser_nodes::AStdClassdef::n_superclasses";
 val_t parser___parser_nodes___AStdClassdef___n_superclasses(val_t p0);
 typedef val_t (*parser___parser_nodes___AStdClassdef___n_superclasses_t)(val_t p0);
-static const char * const LOCATE_parser___parser_nodes___AStdClassdef___n_propdefs = "parser_nodes::AStdClassdef::n_propdefs";
-val_t parser___parser_nodes___AStdClassdef___n_propdefs(val_t p0);
-typedef val_t (*parser___parser_nodes___AStdClassdef___n_propdefs_t)(val_t p0);
+static const char * const LOCATE_parser___parser_nodes___AStdClassdef___n_kwend = "parser_nodes::AStdClassdef::n_kwend";
+val_t parser___parser_nodes___AStdClassdef___n_kwend(val_t p0);
+typedef val_t (*parser___parser_nodes___AStdClassdef___n_kwend_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AStdClassdef___hot_location = "parser_nodes::AStdClassdef::(parser_nodes::ANode::hot_location)";
 val_t parser___parser_nodes___AStdClassdef___hot_location(val_t p0);
 typedef val_t (*parser___parser_nodes___AStdClassdef___hot_location_t)(val_t p0);
-val_t NEW_AStdClassdef_parser___parser_nodes___ANode___init(val_t p0);
-static const char * const LOCATE_parser___parser_nodes___ATopClassdef___n_propdefs = "parser_nodes::ATopClassdef::n_propdefs";
-val_t parser___parser_nodes___ATopClassdef___n_propdefs(val_t p0);
-typedef val_t (*parser___parser_nodes___ATopClassdef___n_propdefs_t)(val_t p0);
-val_t NEW_ATopClassdef_parser___parser_nodes___ANode___init(val_t p0);
-static const char * const LOCATE_parser___parser_nodes___AMainClassdef___n_propdefs = "parser_nodes::AMainClassdef::n_propdefs";
-val_t parser___parser_nodes___AMainClassdef___n_propdefs(val_t p0);
-typedef val_t (*parser___parser_nodes___AMainClassdef___n_propdefs_t)(val_t p0);
-val_t NEW_AMainClassdef_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AClasskind_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStdClassdef_parser___parser_nodes___ANode___init();
+val_t NEW_ATopClassdef_parser___parser_nodes___ANode___init();
+val_t NEW_AMainClassdef_parser___parser_nodes___ANode___init();
+val_t NEW_AClasskind_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AConcreteClasskind___n_kwclass = "parser_nodes::AConcreteClasskind::n_kwclass";
 val_t parser___parser_nodes___AConcreteClasskind___n_kwclass(val_t p0);
 typedef val_t (*parser___parser_nodes___AConcreteClasskind___n_kwclass_t)(val_t p0);
-val_t NEW_AConcreteClasskind_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AConcreteClasskind_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AAbstractClasskind___n_kwabstract = "parser_nodes::AAbstractClasskind::n_kwabstract";
 val_t parser___parser_nodes___AAbstractClasskind___n_kwabstract(val_t p0);
 typedef val_t (*parser___parser_nodes___AAbstractClasskind___n_kwabstract_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AAbstractClasskind___n_kwclass = "parser_nodes::AAbstractClasskind::n_kwclass";
 val_t parser___parser_nodes___AAbstractClasskind___n_kwclass(val_t p0);
 typedef val_t (*parser___parser_nodes___AAbstractClasskind___n_kwclass_t)(val_t p0);
-val_t NEW_AAbstractClasskind_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAbstractClasskind_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AInterfaceClasskind___n_kwinterface = "parser_nodes::AInterfaceClasskind::n_kwinterface";
 val_t parser___parser_nodes___AInterfaceClasskind___n_kwinterface(val_t p0);
 typedef val_t (*parser___parser_nodes___AInterfaceClasskind___n_kwinterface_t)(val_t p0);
-val_t NEW_AInterfaceClasskind_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AInterfaceClasskind_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AEnumClasskind___n_kwenum = "parser_nodes::AEnumClasskind::n_kwenum";
 val_t parser___parser_nodes___AEnumClasskind___n_kwenum(val_t p0);
 typedef val_t (*parser___parser_nodes___AEnumClasskind___n_kwenum_t)(val_t p0);
-val_t NEW_AEnumClasskind_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AEnumClasskind_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AExternClasskind___n_kwextern = "parser_nodes::AExternClasskind::n_kwextern";
 val_t parser___parser_nodes___AExternClasskind___n_kwextern(val_t p0);
 typedef val_t (*parser___parser_nodes___AExternClasskind___n_kwextern_t)(val_t p0);
-val_t NEW_AExternClasskind_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AExternClasskind_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AFormaldef___n_id = "parser_nodes::AFormaldef::n_id";
 val_t parser___parser_nodes___AFormaldef___n_id(val_t p0);
 typedef val_t (*parser___parser_nodes___AFormaldef___n_id_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AFormaldef___n_type = "parser_nodes::AFormaldef::n_type";
 val_t parser___parser_nodes___AFormaldef___n_type(val_t p0);
 typedef val_t (*parser___parser_nodes___AFormaldef___n_type_t)(val_t p0);
-val_t NEW_AFormaldef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AFormaldef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ASuperclass___n_kwspecial = "parser_nodes::ASuperclass::n_kwspecial";
 val_t parser___parser_nodes___ASuperclass___n_kwspecial(val_t p0);
 typedef val_t (*parser___parser_nodes___ASuperclass___n_kwspecial_t)(val_t p0);
@@ -2068,11 +2212,11 @@ typedef val_t (*parser___parser_nodes___ASuperclass___n_kwsuper_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ASuperclass___n_type = "parser_nodes::ASuperclass::n_type";
 val_t parser___parser_nodes___ASuperclass___n_type(val_t p0);
 typedef val_t (*parser___parser_nodes___ASuperclass___n_type_t)(val_t p0);
-val_t NEW_ASuperclass_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASuperclass_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___APropdef___n_doc = "parser_nodes::APropdef::n_doc";
 val_t parser___parser_nodes___APropdef___n_doc(val_t p0);
 typedef val_t (*parser___parser_nodes___APropdef___n_doc_t)(val_t p0);
-val_t NEW_APropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_APropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AAttrPropdef___n_kwredef = "parser_nodes::AAttrPropdef::n_kwredef";
 val_t parser___parser_nodes___AAttrPropdef___n_kwredef(val_t p0);
 typedef val_t (*parser___parser_nodes___AAttrPropdef___n_kwredef_t)(val_t p0);
@@ -2103,7 +2247,7 @@ typedef val_t (*parser___parser_nodes___AAttrPropdef___n_expr_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AAttrPropdef___hot_location = "parser_nodes::AAttrPropdef::(parser_nodes::ANode::hot_location)";
 val_t parser___parser_nodes___AAttrPropdef___hot_location(val_t p0);
 typedef val_t (*parser___parser_nodes___AAttrPropdef___hot_location_t)(val_t p0);
-val_t NEW_AAttrPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAttrPropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AMethPropdef___n_kwredef = "parser_nodes::AMethPropdef::n_kwredef";
 val_t parser___parser_nodes___AMethPropdef___n_kwredef(val_t p0);
 typedef val_t (*parser___parser_nodes___AMethPropdef___n_kwredef_t)(val_t p0);
@@ -2119,68 +2263,59 @@ typedef val_t (*parser___parser_nodes___AMethPropdef___n_signature_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AMethPropdef___hot_location = "parser_nodes::AMethPropdef::(parser_nodes::ANode::hot_location)";
 val_t parser___parser_nodes___AMethPropdef___hot_location(val_t p0);
 typedef val_t (*parser___parser_nodes___AMethPropdef___hot_location_t)(val_t p0);
-val_t NEW_AMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMethPropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ADeferredMethPropdef___n_kwmeth = "parser_nodes::ADeferredMethPropdef::n_kwmeth";
 val_t parser___parser_nodes___ADeferredMethPropdef___n_kwmeth(val_t p0);
 typedef val_t (*parser___parser_nodes___ADeferredMethPropdef___n_kwmeth_t)(val_t p0);
-val_t NEW_ADeferredMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ADeferredMethPropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AInternMethPropdef___n_kwmeth = "parser_nodes::AInternMethPropdef::n_kwmeth";
 val_t parser___parser_nodes___AInternMethPropdef___n_kwmeth(val_t p0);
 typedef val_t (*parser___parser_nodes___AInternMethPropdef___n_kwmeth_t)(val_t p0);
-val_t NEW_AInternMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AInternMethPropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AExternPropdef___n_extern = "parser_nodes::AExternPropdef::n_extern";
 val_t parser___parser_nodes___AExternPropdef___n_extern(val_t p0);
 typedef val_t (*parser___parser_nodes___AExternPropdef___n_extern_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AExternPropdef___n_extern_calls = "parser_nodes::AExternPropdef::n_extern_calls";
 val_t parser___parser_nodes___AExternPropdef___n_extern_calls(val_t p0);
 typedef val_t (*parser___parser_nodes___AExternPropdef___n_extern_calls_t)(val_t p0);
-val_t NEW_AExternPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AExternPropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AExternMethPropdef___n_kwmeth = "parser_nodes::AExternMethPropdef::n_kwmeth";
 val_t parser___parser_nodes___AExternMethPropdef___n_kwmeth(val_t p0);
 typedef val_t (*parser___parser_nodes___AExternMethPropdef___n_kwmeth_t)(val_t p0);
-val_t NEW_AExternMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AExternMethPropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AConcreteMethPropdef___n_kwmeth = "parser_nodes::AConcreteMethPropdef::n_kwmeth";
 val_t parser___parser_nodes___AConcreteMethPropdef___n_kwmeth(val_t p0);
 typedef val_t (*parser___parser_nodes___AConcreteMethPropdef___n_kwmeth_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AConcreteMethPropdef___n_block = "parser_nodes::AConcreteMethPropdef::n_block";
 val_t parser___parser_nodes___AConcreteMethPropdef___n_block(val_t p0);
 typedef val_t (*parser___parser_nodes___AConcreteMethPropdef___n_block_t)(val_t p0);
-val_t NEW_AConcreteMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
-static const char * const LOCATE_parser___parser_nodes___AInitPropdef___init = "parser_nodes::AInitPropdef::init";
-void parser___parser_nodes___AInitPropdef___init(val_t p0, int* init_table);
-typedef void (*parser___parser_nodes___AInitPropdef___init_t)(val_t p0, int* init_table);
-val_t NEW_AInitPropdef_parser___parser_nodes___AInitPropdef___init();
-static const char * const LOCATE_parser___parser_nodes___AConcreteInitPropdef___init = "parser_nodes::AConcreteInitPropdef::init";
-void parser___parser_nodes___AConcreteInitPropdef___init(val_t p0, int* init_table);
-typedef void (*parser___parser_nodes___AConcreteInitPropdef___init_t)(val_t p0, int* init_table);
-val_t NEW_AConcreteInitPropdef_parser___parser_nodes___AConcreteInitPropdef___init();
+val_t NEW_AConcreteMethPropdef_parser___parser_nodes___ANode___init();
+val_t NEW_AInitPropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AConcreteInitPropdef___n_kwinit = "parser_nodes::AConcreteInitPropdef::n_kwinit";
 val_t parser___parser_nodes___AConcreteInitPropdef___n_kwinit(val_t p0);
 typedef val_t (*parser___parser_nodes___AConcreteInitPropdef___n_kwinit_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AConcreteInitPropdef___hot_location = "parser_nodes::AConcreteInitPropdef::(parser_nodes::ANode::hot_location)";
 val_t parser___parser_nodes___AConcreteInitPropdef___hot_location(val_t p0);
 typedef val_t (*parser___parser_nodes___AConcreteInitPropdef___hot_location_t)(val_t p0);
-static const char * const LOCATE_parser___parser_nodes___AExternInitPropdef___init = "parser_nodes::AExternInitPropdef::init";
-void parser___parser_nodes___AExternInitPropdef___init(val_t p0, int* init_table);
-typedef void (*parser___parser_nodes___AExternInitPropdef___init_t)(val_t p0, int* init_table);
-val_t NEW_AExternInitPropdef_parser___parser_nodes___AExternInitPropdef___init();
+val_t NEW_AConcreteInitPropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AExternInitPropdef___n_kwnew = "parser_nodes::AExternInitPropdef::n_kwnew";
 val_t parser___parser_nodes___AExternInitPropdef___n_kwnew(val_t p0);
 typedef val_t (*parser___parser_nodes___AExternInitPropdef___n_kwnew_t)(val_t p0);
-val_t NEW_AMainMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AExternInitPropdef_parser___parser_nodes___ANode___init();
+val_t NEW_AMainMethPropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AExternCalls___n_kwimport = "parser_nodes::AExternCalls::n_kwimport";
 val_t parser___parser_nodes___AExternCalls___n_kwimport(val_t p0);
 typedef val_t (*parser___parser_nodes___AExternCalls___n_kwimport_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AExternCalls___n_extern_calls = "parser_nodes::AExternCalls::n_extern_calls";
 val_t parser___parser_nodes___AExternCalls___n_extern_calls(val_t p0);
 typedef val_t (*parser___parser_nodes___AExternCalls___n_extern_calls_t)(val_t p0);
-val_t NEW_AExternCalls_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AExternCall_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_APropExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AExternCalls_parser___parser_nodes___ANode___init();
+val_t NEW_AExternCall_parser___parser_nodes___ANode___init();
+val_t NEW_APropExternCall_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ALocalPropExternCall___n_methid = "parser_nodes::ALocalPropExternCall::n_methid";
 val_t parser___parser_nodes___ALocalPropExternCall___n_methid(val_t p0);
 typedef val_t (*parser___parser_nodes___ALocalPropExternCall___n_methid_t)(val_t p0);
-val_t NEW_ALocalPropExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALocalPropExternCall_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AFullPropExternCall___n_classid = "parser_nodes::AFullPropExternCall::n_classid";
 val_t parser___parser_nodes___AFullPropExternCall___n_classid(val_t p0);
 typedef val_t (*parser___parser_nodes___AFullPropExternCall___n_classid_t)(val_t p0);
@@ -2190,16 +2325,16 @@ typedef val_t (*parser___parser_nodes___AFullPropExternCall___n_quad_t)(val_t p0
 static const char * const LOCATE_parser___parser_nodes___AFullPropExternCall___n_methid = "parser_nodes::AFullPropExternCall::n_methid";
 val_t parser___parser_nodes___AFullPropExternCall___n_methid(val_t p0);
 typedef val_t (*parser___parser_nodes___AFullPropExternCall___n_methid_t)(val_t p0);
-val_t NEW_AFullPropExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AFullPropExternCall_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AInitPropExternCall___n_classid = "parser_nodes::AInitPropExternCall::n_classid";
 val_t parser___parser_nodes___AInitPropExternCall___n_classid(val_t p0);
 typedef val_t (*parser___parser_nodes___AInitPropExternCall___n_classid_t)(val_t p0);
-val_t NEW_AInitPropExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AInitPropExternCall_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ASuperExternCall___n_kwsuper = "parser_nodes::ASuperExternCall::n_kwsuper";
 val_t parser___parser_nodes___ASuperExternCall___n_kwsuper(val_t p0);
 typedef val_t (*parser___parser_nodes___ASuperExternCall___n_kwsuper_t)(val_t p0);
-val_t NEW_ASuperExternCall_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_ACastExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASuperExternCall_parser___parser_nodes___ANode___init();
+val_t NEW_ACastExternCall_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ACastAsExternCall___n_from_type = "parser_nodes::ACastAsExternCall::n_from_type";
 val_t parser___parser_nodes___ACastAsExternCall___n_from_type(val_t p0);
 typedef val_t (*parser___parser_nodes___ACastAsExternCall___n_from_type_t)(val_t p0);
@@ -2209,7 +2344,7 @@ typedef val_t (*parser___parser_nodes___ACastAsExternCall___n_kwas_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ACastAsExternCall___n_to_type = "parser_nodes::ACastAsExternCall::n_to_type";
 val_t parser___parser_nodes___ACastAsExternCall___n_to_type(val_t p0);
 typedef val_t (*parser___parser_nodes___ACastAsExternCall___n_to_type_t)(val_t p0);
-val_t NEW_ACastAsExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ACastAsExternCall_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AAsNullableExternCall___n_type = "parser_nodes::AAsNullableExternCall::n_type";
 val_t parser___parser_nodes___AAsNullableExternCall___n_type(val_t p0);
 typedef val_t (*parser___parser_nodes___AAsNullableExternCall___n_type_t)(val_t p0);
@@ -2219,7 +2354,7 @@ typedef val_t (*parser___parser_nodes___AAsNullableExternCall___n_kwas_t)(val_t
 static const char * const LOCATE_parser___parser_nodes___AAsNullableExternCall___n_kwnullable = "parser_nodes::AAsNullableExternCall::n_kwnullable";
 val_t parser___parser_nodes___AAsNullableExternCall___n_kwnullable(val_t p0);
 typedef val_t (*parser___parser_nodes___AAsNullableExternCall___n_kwnullable_t)(val_t p0);
-val_t NEW_AAsNullableExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAsNullableExternCall_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AAsNotNullableExternCall___n_type = "parser_nodes::AAsNotNullableExternCall::n_type";
 val_t parser___parser_nodes___AAsNotNullableExternCall___n_type(val_t p0);
 typedef val_t (*parser___parser_nodes___AAsNotNullableExternCall___n_type_t)(val_t p0);
@@ -2232,7 +2367,7 @@ typedef val_t (*parser___parser_nodes___AAsNotNullableExternCall___n_kwnot_t)(va
 static const char * const LOCATE_parser___parser_nodes___AAsNotNullableExternCall___n_kwnullable = "parser_nodes::AAsNotNullableExternCall::n_kwnullable";
 val_t parser___parser_nodes___AAsNotNullableExternCall___n_kwnullable(val_t p0);
 typedef val_t (*parser___parser_nodes___AAsNotNullableExternCall___n_kwnullable_t)(val_t p0);
-val_t NEW_AAsNotNullableExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAsNotNullableExternCall_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ATypePropdef___n_kwredef = "parser_nodes::ATypePropdef::n_kwredef";
 val_t parser___parser_nodes___ATypePropdef___n_kwredef(val_t p0);
 typedef val_t (*parser___parser_nodes___ATypePropdef___n_kwredef_t)(val_t p0);
@@ -2248,103 +2383,103 @@ typedef val_t (*parser___parser_nodes___ATypePropdef___n_id_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ATypePropdef___n_type = "parser_nodes::ATypePropdef::n_type";
 val_t parser___parser_nodes___ATypePropdef___n_type(val_t p0);
 typedef val_t (*parser___parser_nodes___ATypePropdef___n_type_t)(val_t p0);
-val_t NEW_ATypePropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ATypePropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AAble___n_visibility = "parser_nodes::AAble::n_visibility";
 val_t parser___parser_nodes___AAble___n_visibility(val_t p0);
 typedef val_t (*parser___parser_nodes___AAble___n_visibility_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AAble___n_kwredef = "parser_nodes::AAble::n_kwredef";
 val_t parser___parser_nodes___AAble___n_kwredef(val_t p0);
 typedef val_t (*parser___parser_nodes___AAble___n_kwredef_t)(val_t p0);
-val_t NEW_AAble_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAble_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AReadAble___n_kwreadable = "parser_nodes::AReadAble::n_kwreadable";
 val_t parser___parser_nodes___AReadAble___n_kwreadable(val_t p0);
 typedef val_t (*parser___parser_nodes___AReadAble___n_kwreadable_t)(val_t p0);
-val_t NEW_AReadAble_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AReadAble_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AWriteAble___n_kwwritable = "parser_nodes::AWriteAble::n_kwwritable";
 val_t parser___parser_nodes___AWriteAble___n_kwwritable(val_t p0);
 typedef val_t (*parser___parser_nodes___AWriteAble___n_kwwritable_t)(val_t p0);
-val_t NEW_AWriteAble_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AWriteAble_parser___parser_nodes___ANode___init();
+val_t NEW_AMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AIdMethid___n_id = "parser_nodes::AIdMethid::n_id";
 val_t parser___parser_nodes___AIdMethid___n_id(val_t p0);
 typedef val_t (*parser___parser_nodes___AIdMethid___n_id_t)(val_t p0);
-val_t NEW_AIdMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIdMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___APlusMethid___n_plus = "parser_nodes::APlusMethid::n_plus";
 val_t parser___parser_nodes___APlusMethid___n_plus(val_t p0);
 typedef val_t (*parser___parser_nodes___APlusMethid___n_plus_t)(val_t p0);
-val_t NEW_APlusMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_APlusMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AMinusMethid___n_minus = "parser_nodes::AMinusMethid::n_minus";
 val_t parser___parser_nodes___AMinusMethid___n_minus(val_t p0);
 typedef val_t (*parser___parser_nodes___AMinusMethid___n_minus_t)(val_t p0);
-val_t NEW_AMinusMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMinusMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AStarMethid___n_star = "parser_nodes::AStarMethid::n_star";
 val_t parser___parser_nodes___AStarMethid___n_star(val_t p0);
 typedef val_t (*parser___parser_nodes___AStarMethid___n_star_t)(val_t p0);
-val_t NEW_AStarMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStarMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ASlashMethid___n_slash = "parser_nodes::ASlashMethid::n_slash";
 val_t parser___parser_nodes___ASlashMethid___n_slash(val_t p0);
 typedef val_t (*parser___parser_nodes___ASlashMethid___n_slash_t)(val_t p0);
-val_t NEW_ASlashMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASlashMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___APercentMethid___n_percent = "parser_nodes::APercentMethid::n_percent";
 val_t parser___parser_nodes___APercentMethid___n_percent(val_t p0);
 typedef val_t (*parser___parser_nodes___APercentMethid___n_percent_t)(val_t p0);
-val_t NEW_APercentMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_APercentMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AEqMethid___n_eq = "parser_nodes::AEqMethid::n_eq";
 val_t parser___parser_nodes___AEqMethid___n_eq(val_t p0);
 typedef val_t (*parser___parser_nodes___AEqMethid___n_eq_t)(val_t p0);
-val_t NEW_AEqMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AEqMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ANeMethid___n_ne = "parser_nodes::ANeMethid::n_ne";
 val_t parser___parser_nodes___ANeMethid___n_ne(val_t p0);
 typedef val_t (*parser___parser_nodes___ANeMethid___n_ne_t)(val_t p0);
-val_t NEW_ANeMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANeMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ALeMethid___n_le = "parser_nodes::ALeMethid::n_le";
 val_t parser___parser_nodes___ALeMethid___n_le(val_t p0);
 typedef val_t (*parser___parser_nodes___ALeMethid___n_le_t)(val_t p0);
-val_t NEW_ALeMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALeMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AGeMethid___n_ge = "parser_nodes::AGeMethid::n_ge";
 val_t parser___parser_nodes___AGeMethid___n_ge(val_t p0);
 typedef val_t (*parser___parser_nodes___AGeMethid___n_ge_t)(val_t p0);
-val_t NEW_AGeMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AGeMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ALtMethid___n_lt = "parser_nodes::ALtMethid::n_lt";
 val_t parser___parser_nodes___ALtMethid___n_lt(val_t p0);
 typedef val_t (*parser___parser_nodes___ALtMethid___n_lt_t)(val_t p0);
-val_t NEW_ALtMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALtMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AGtMethid___n_gt = "parser_nodes::AGtMethid::n_gt";
 val_t parser___parser_nodes___AGtMethid___n_gt(val_t p0);
 typedef val_t (*parser___parser_nodes___AGtMethid___n_gt_t)(val_t p0);
-val_t NEW_AGtMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AGtMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ALlMethid___n_ll = "parser_nodes::ALlMethid::n_ll";
 val_t parser___parser_nodes___ALlMethid___n_ll(val_t p0);
 typedef val_t (*parser___parser_nodes___ALlMethid___n_ll_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ALlMethid___n_ll__eq = "parser_nodes::ALlMethid::n_ll=";
 void parser___parser_nodes___ALlMethid___n_ll__eq(val_t p0, val_t p1);
 typedef void (*parser___parser_nodes___ALlMethid___n_ll__eq_t)(val_t p0, val_t p1);
-val_t NEW_ALlMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALlMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AGgMethid___n_gg = "parser_nodes::AGgMethid::n_gg";
 val_t parser___parser_nodes___AGgMethid___n_gg(val_t p0);
 typedef val_t (*parser___parser_nodes___AGgMethid___n_gg_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AGgMethid___n_gg__eq = "parser_nodes::AGgMethid::n_gg=";
 void parser___parser_nodes___AGgMethid___n_gg__eq(val_t p0, val_t p1);
 typedef void (*parser___parser_nodes___AGgMethid___n_gg__eq_t)(val_t p0, val_t p1);
-val_t NEW_AGgMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AGgMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ABraMethid___n_obra = "parser_nodes::ABraMethid::n_obra";
 val_t parser___parser_nodes___ABraMethid___n_obra(val_t p0);
 typedef val_t (*parser___parser_nodes___ABraMethid___n_obra_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ABraMethid___n_cbra = "parser_nodes::ABraMethid::n_cbra";
 val_t parser___parser_nodes___ABraMethid___n_cbra(val_t p0);
 typedef val_t (*parser___parser_nodes___ABraMethid___n_cbra_t)(val_t p0);
-val_t NEW_ABraMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABraMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AStarshipMethid___n_starship = "parser_nodes::AStarshipMethid::n_starship";
 val_t parser___parser_nodes___AStarshipMethid___n_starship(val_t p0);
 typedef val_t (*parser___parser_nodes___AStarshipMethid___n_starship_t)(val_t p0);
-val_t NEW_AStarshipMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStarshipMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AAssignMethid___n_id = "parser_nodes::AAssignMethid::n_id";
 val_t parser___parser_nodes___AAssignMethid___n_id(val_t p0);
 typedef val_t (*parser___parser_nodes___AAssignMethid___n_id_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AAssignMethid___n_assign = "parser_nodes::AAssignMethid::n_assign";
 val_t parser___parser_nodes___AAssignMethid___n_assign(val_t p0);
 typedef val_t (*parser___parser_nodes___AAssignMethid___n_assign_t)(val_t p0);
-val_t NEW_AAssignMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAssignMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ABraassignMethid___n_obra = "parser_nodes::ABraassignMethid::n_obra";
 val_t parser___parser_nodes___ABraassignMethid___n_obra(val_t p0);
 typedef val_t (*parser___parser_nodes___ABraassignMethid___n_obra_t)(val_t p0);
@@ -2354,17 +2489,23 @@ typedef val_t (*parser___parser_nodes___ABraassignMethid___n_cbra_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ABraassignMethid___n_assign = "parser_nodes::ABraassignMethid::n_assign";
 val_t parser___parser_nodes___ABraassignMethid___n_assign(val_t p0);
 typedef val_t (*parser___parser_nodes___ABraassignMethid___n_assign_t)(val_t p0);
-val_t NEW_ABraassignMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABraassignMethid_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_nodes___ASignature___n_opar = "parser_nodes::ASignature::n_opar";
+val_t parser___parser_nodes___ASignature___n_opar(val_t p0);
+typedef val_t (*parser___parser_nodes___ASignature___n_opar_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ASignature___n_params = "parser_nodes::ASignature::n_params";
 val_t parser___parser_nodes___ASignature___n_params(val_t p0);
 typedef val_t (*parser___parser_nodes___ASignature___n_params_t)(val_t p0);
+static const char * const LOCATE_parser___parser_nodes___ASignature___n_cpar = "parser_nodes::ASignature::n_cpar";
+val_t parser___parser_nodes___ASignature___n_cpar(val_t p0);
+typedef val_t (*parser___parser_nodes___ASignature___n_cpar_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ASignature___n_type = "parser_nodes::ASignature::n_type";
 val_t parser___parser_nodes___ASignature___n_type(val_t p0);
 typedef val_t (*parser___parser_nodes___ASignature___n_type_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ASignature___n_closure_decls = "parser_nodes::ASignature::n_closure_decls";
 val_t parser___parser_nodes___ASignature___n_closure_decls(val_t p0);
 typedef val_t (*parser___parser_nodes___ASignature___n_closure_decls_t)(val_t p0);
-val_t NEW_ASignature_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASignature_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AParam___n_id = "parser_nodes::AParam::n_id";
 val_t parser___parser_nodes___AParam___n_id(val_t p0);
 typedef val_t (*parser___parser_nodes___AParam___n_id_t)(val_t p0);
@@ -2374,7 +2515,7 @@ typedef val_t (*parser___parser_nodes___AParam___n_type_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AParam___n_dotdotdot = "parser_nodes::AParam::n_dotdotdot";
 val_t parser___parser_nodes___AParam___n_dotdotdot(val_t p0);
 typedef val_t (*parser___parser_nodes___AParam___n_dotdotdot_t)(val_t p0);
-val_t NEW_AParam_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AParam_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AClosureDecl___n_kwbreak = "parser_nodes::AClosureDecl::n_kwbreak";
 val_t parser___parser_nodes___AClosureDecl___n_kwbreak(val_t p0);
 typedef val_t (*parser___parser_nodes___AClosureDecl___n_kwbreak_t)(val_t p0);
@@ -2390,7 +2531,7 @@ typedef val_t (*parser___parser_nodes___AClosureDecl___n_signature_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AClosureDecl___n_expr = "parser_nodes::AClosureDecl::n_expr";
 val_t parser___parser_nodes___AClosureDecl___n_expr(val_t p0);
 typedef val_t (*parser___parser_nodes___AClosureDecl___n_expr_t)(val_t p0);
-val_t NEW_AClosureDecl_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AClosureDecl_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AType___n_kwnullable = "parser_nodes::AType::n_kwnullable";
 val_t parser___parser_nodes___AType___n_kwnullable(val_t p0);
 typedef val_t (*parser___parser_nodes___AType___n_kwnullable_t)(val_t p0);
@@ -2400,19 +2541,22 @@ typedef val_t (*parser___parser_nodes___AType___n_id_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AType___n_types = "parser_nodes::AType::n_types";
 val_t parser___parser_nodes___AType___n_types(val_t p0);
 typedef val_t (*parser___parser_nodes___AType___n_types_t)(val_t p0);
-val_t NEW_AType_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AType_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ALabel___n_kwlabel = "parser_nodes::ALabel::n_kwlabel";
 val_t parser___parser_nodes___ALabel___n_kwlabel(val_t p0);
 typedef val_t (*parser___parser_nodes___ALabel___n_kwlabel_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ALabel___n_id = "parser_nodes::ALabel::n_id";
 val_t parser___parser_nodes___ALabel___n_id(val_t p0);
 typedef val_t (*parser___parser_nodes___ALabel___n_id_t)(val_t p0);
-val_t NEW_ALabel_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALabel_parser___parser_nodes___ANode___init();
+val_t NEW_AExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ABlockExpr___n_expr = "parser_nodes::ABlockExpr::n_expr";
 val_t parser___parser_nodes___ABlockExpr___n_expr(val_t p0);
 typedef val_t (*parser___parser_nodes___ABlockExpr___n_expr_t)(val_t p0);
-val_t NEW_ABlockExpr_parser___parser_nodes___ANode___init(val_t p0);
+static const char * const LOCATE_parser___parser_nodes___ABlockExpr___n_kwend = "parser_nodes::ABlockExpr::n_kwend";
+val_t parser___parser_nodes___ABlockExpr___n_kwend(val_t p0);
+typedef val_t (*parser___parser_nodes___ABlockExpr___n_kwend_t)(val_t p0);
+val_t NEW_ABlockExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AVardeclExpr___n_kwvar = "parser_nodes::AVardeclExpr::n_kwvar";
 val_t parser___parser_nodes___AVardeclExpr___n_kwvar(val_t p0);
 typedef val_t (*parser___parser_nodes___AVardeclExpr___n_kwvar_t)(val_t p0);
@@ -2428,43 +2572,43 @@ typedef val_t (*parser___parser_nodes___AVardeclExpr___n_assign_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AVardeclExpr___n_expr = "parser_nodes::AVardeclExpr::n_expr";
 val_t parser___parser_nodes___AVardeclExpr___n_expr(val_t p0);
 typedef val_t (*parser___parser_nodes___AVardeclExpr___n_expr_t)(val_t p0);
-val_t NEW_AVardeclExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AVardeclExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AReturnExpr___n_kwreturn = "parser_nodes::AReturnExpr::n_kwreturn";
 val_t parser___parser_nodes___AReturnExpr___n_kwreturn(val_t p0);
 typedef val_t (*parser___parser_nodes___AReturnExpr___n_kwreturn_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AReturnExpr___n_expr = "parser_nodes::AReturnExpr::n_expr";
 val_t parser___parser_nodes___AReturnExpr___n_expr(val_t p0);
 typedef val_t (*parser___parser_nodes___AReturnExpr___n_expr_t)(val_t p0);
-val_t NEW_AReturnExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AReturnExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ALabelable___n_label = "parser_nodes::ALabelable::n_label";
 val_t parser___parser_nodes___ALabelable___n_label(val_t p0);
 typedef val_t (*parser___parser_nodes___ALabelable___n_label_t)(val_t p0);
-val_t NEW_ALabelable_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALabelable_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ABreakExpr___n_kwbreak = "parser_nodes::ABreakExpr::n_kwbreak";
 val_t parser___parser_nodes___ABreakExpr___n_kwbreak(val_t p0);
 typedef val_t (*parser___parser_nodes___ABreakExpr___n_kwbreak_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ABreakExpr___n_expr = "parser_nodes::ABreakExpr::n_expr";
 val_t parser___parser_nodes___ABreakExpr___n_expr(val_t p0);
 typedef val_t (*parser___parser_nodes___ABreakExpr___n_expr_t)(val_t p0);
-val_t NEW_ABreakExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABreakExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AAbortExpr___n_kwabort = "parser_nodes::AAbortExpr::n_kwabort";
 val_t parser___parser_nodes___AAbortExpr___n_kwabort(val_t p0);
 typedef val_t (*parser___parser_nodes___AAbortExpr___n_kwabort_t)(val_t p0);
-val_t NEW_AAbortExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAbortExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AContinueExpr___n_kwcontinue = "parser_nodes::AContinueExpr::n_kwcontinue";
 val_t parser___parser_nodes___AContinueExpr___n_kwcontinue(val_t p0);
 typedef val_t (*parser___parser_nodes___AContinueExpr___n_kwcontinue_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AContinueExpr___n_expr = "parser_nodes::AContinueExpr::n_expr";
 val_t parser___parser_nodes___AContinueExpr___n_expr(val_t p0);
 typedef val_t (*parser___parser_nodes___AContinueExpr___n_expr_t)(val_t p0);
-val_t NEW_AContinueExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AContinueExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ADoExpr___n_kwdo = "parser_nodes::ADoExpr::n_kwdo";
 val_t parser___parser_nodes___ADoExpr___n_kwdo(val_t p0);
 typedef val_t (*parser___parser_nodes___ADoExpr___n_kwdo_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ADoExpr___n_block = "parser_nodes::ADoExpr::n_block";
 val_t parser___parser_nodes___ADoExpr___n_block(val_t p0);
 typedef val_t (*parser___parser_nodes___ADoExpr___n_block_t)(val_t p0);
-val_t NEW_ADoExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ADoExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AIfExpr___n_kwif = "parser_nodes::AIfExpr::n_kwif";
 val_t parser___parser_nodes___AIfExpr___n_kwif(val_t p0);
 typedef val_t (*parser___parser_nodes___AIfExpr___n_kwif_t)(val_t p0);
@@ -2477,7 +2621,7 @@ typedef val_t (*parser___parser_nodes___AIfExpr___n_then_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AIfExpr___n_else = "parser_nodes::AIfExpr::n_else";
 val_t parser___parser_nodes___AIfExpr___n_else(val_t p0);
 typedef val_t (*parser___parser_nodes___AIfExpr___n_else_t)(val_t p0);
-val_t NEW_AIfExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIfExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AIfexprExpr___n_kwif = "parser_nodes::AIfexprExpr::n_kwif";
 val_t parser___parser_nodes___AIfexprExpr___n_kwif(val_t p0);
 typedef val_t (*parser___parser_nodes___AIfexprExpr___n_kwif_t)(val_t p0);
@@ -2496,7 +2640,7 @@ typedef val_t (*parser___parser_nodes___AIfexprExpr___n_kwelse_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AIfexprExpr___n_else = "parser_nodes::AIfexprExpr::n_else";
 val_t parser___parser_nodes___AIfexprExpr___n_else(val_t p0);
 typedef val_t (*parser___parser_nodes___AIfexprExpr___n_else_t)(val_t p0);
-val_t NEW_AIfexprExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIfexprExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AWhileExpr___n_kwwhile = "parser_nodes::AWhileExpr::n_kwwhile";
 val_t parser___parser_nodes___AWhileExpr___n_kwwhile(val_t p0);
 typedef val_t (*parser___parser_nodes___AWhileExpr___n_kwwhile_t)(val_t p0);
@@ -2509,14 +2653,14 @@ typedef val_t (*parser___parser_nodes___AWhileExpr___n_kwdo_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AWhileExpr___n_block = "parser_nodes::AWhileExpr::n_block";
 val_t parser___parser_nodes___AWhileExpr___n_block(val_t p0);
 typedef val_t (*parser___parser_nodes___AWhileExpr___n_block_t)(val_t p0);
-val_t NEW_AWhileExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AWhileExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ALoopExpr___n_kwloop = "parser_nodes::ALoopExpr::n_kwloop";
 val_t parser___parser_nodes___ALoopExpr___n_kwloop(val_t p0);
 typedef val_t (*parser___parser_nodes___ALoopExpr___n_kwloop_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ALoopExpr___n_block = "parser_nodes::ALoopExpr::n_block";
 val_t parser___parser_nodes___ALoopExpr___n_block(val_t p0);
 typedef val_t (*parser___parser_nodes___ALoopExpr___n_block_t)(val_t p0);
-val_t NEW_ALoopExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALoopExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AForExpr___n_kwfor = "parser_nodes::AForExpr::n_kwfor";
 val_t parser___parser_nodes___AForExpr___n_kwfor(val_t p0);
 typedef val_t (*parser___parser_nodes___AForExpr___n_kwfor_t)(val_t p0);
@@ -2532,7 +2676,7 @@ typedef val_t (*parser___parser_nodes___AForExpr___n_kwdo_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AForExpr___n_block = "parser_nodes::AForExpr::n_block";
 val_t parser___parser_nodes___AForExpr___n_block(val_t p0);
 typedef val_t (*parser___parser_nodes___AForExpr___n_block_t)(val_t p0);
-val_t NEW_AForExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AForExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AAssertExpr___n_kwassert = "parser_nodes::AAssertExpr::n_kwassert";
 val_t parser___parser_nodes___AAssertExpr___n_kwassert(val_t p0);
 typedef val_t (*parser___parser_nodes___AAssertExpr___n_kwassert_t)(val_t p0);
@@ -2545,97 +2689,97 @@ typedef val_t (*parser___parser_nodes___AAssertExpr___n_expr_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AAssertExpr___n_else = "parser_nodes::AAssertExpr::n_else";
 val_t parser___parser_nodes___AAssertExpr___n_else(val_t p0);
 typedef val_t (*parser___parser_nodes___AAssertExpr___n_else_t)(val_t p0);
-val_t NEW_AAssertExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAssertExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AAssignFormExpr___n_assign = "parser_nodes::AAssignFormExpr::n_assign";
 val_t parser___parser_nodes___AAssignFormExpr___n_assign(val_t p0);
 typedef val_t (*parser___parser_nodes___AAssignFormExpr___n_assign_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AAssignFormExpr___n_value = "parser_nodes::AAssignFormExpr::n_value";
 val_t parser___parser_nodes___AAssignFormExpr___n_value(val_t p0);
 typedef val_t (*parser___parser_nodes___AAssignFormExpr___n_value_t)(val_t p0);
-val_t NEW_AAssignFormExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAssignFormExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AReassignFormExpr___n_assign_op = "parser_nodes::AReassignFormExpr::n_assign_op";
 val_t parser___parser_nodes___AReassignFormExpr___n_assign_op(val_t p0);
 typedef val_t (*parser___parser_nodes___AReassignFormExpr___n_assign_op_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AReassignFormExpr___n_value = "parser_nodes::AReassignFormExpr::n_value";
 val_t parser___parser_nodes___AReassignFormExpr___n_value(val_t p0);
 typedef val_t (*parser___parser_nodes___AReassignFormExpr___n_value_t)(val_t p0);
-val_t NEW_AReassignFormExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AReassignFormExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AOnceExpr___n_kwonce = "parser_nodes::AOnceExpr::n_kwonce";
 val_t parser___parser_nodes___AOnceExpr___n_kwonce(val_t p0);
 typedef val_t (*parser___parser_nodes___AOnceExpr___n_kwonce_t)(val_t p0);
-val_t NEW_AOnceExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AOnceExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ASendExpr___n_expr = "parser_nodes::ASendExpr::n_expr";
 val_t parser___parser_nodes___ASendExpr___n_expr(val_t p0);
 typedef val_t (*parser___parser_nodes___ASendExpr___n_expr_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ASendExpr___n_closure_defs = "parser_nodes::ASendExpr::n_closure_defs";
 val_t parser___parser_nodes___ASendExpr___n_closure_defs(val_t p0);
 typedef val_t (*parser___parser_nodes___ASendExpr___n_closure_defs_t)(val_t p0);
-val_t NEW_ASendExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASendExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ABinopExpr___n_expr2 = "parser_nodes::ABinopExpr::n_expr2";
 val_t parser___parser_nodes___ABinopExpr___n_expr2(val_t p0);
 typedef val_t (*parser___parser_nodes___ABinopExpr___n_expr2_t)(val_t p0);
-val_t NEW_ABinopExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_ABoolExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABinopExpr_parser___parser_nodes___ANode___init();
+val_t NEW_ABoolExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AOrExpr___n_expr = "parser_nodes::AOrExpr::n_expr";
 val_t parser___parser_nodes___AOrExpr___n_expr(val_t p0);
 typedef val_t (*parser___parser_nodes___AOrExpr___n_expr_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AOrExpr___n_expr2 = "parser_nodes::AOrExpr::n_expr2";
 val_t parser___parser_nodes___AOrExpr___n_expr2(val_t p0);
 typedef val_t (*parser___parser_nodes___AOrExpr___n_expr2_t)(val_t p0);
-val_t NEW_AOrExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AOrExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AAndExpr___n_expr = "parser_nodes::AAndExpr::n_expr";
 val_t parser___parser_nodes___AAndExpr___n_expr(val_t p0);
 typedef val_t (*parser___parser_nodes___AAndExpr___n_expr_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AAndExpr___n_expr2 = "parser_nodes::AAndExpr::n_expr2";
 val_t parser___parser_nodes___AAndExpr___n_expr2(val_t p0);
 typedef val_t (*parser___parser_nodes___AAndExpr___n_expr2_t)(val_t p0);
-val_t NEW_AAndExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAndExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AOrElseExpr___n_expr = "parser_nodes::AOrElseExpr::n_expr";
 val_t parser___parser_nodes___AOrElseExpr___n_expr(val_t p0);
 typedef val_t (*parser___parser_nodes___AOrElseExpr___n_expr_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AOrElseExpr___n_expr2 = "parser_nodes::AOrElseExpr::n_expr2";
 val_t parser___parser_nodes___AOrElseExpr___n_expr2(val_t p0);
 typedef val_t (*parser___parser_nodes___AOrElseExpr___n_expr2_t)(val_t p0);
-val_t NEW_AOrElseExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AOrElseExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ANotExpr___n_kwnot = "parser_nodes::ANotExpr::n_kwnot";
 val_t parser___parser_nodes___ANotExpr___n_kwnot(val_t p0);
 typedef val_t (*parser___parser_nodes___ANotExpr___n_kwnot_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ANotExpr___n_expr = "parser_nodes::ANotExpr::n_expr";
 val_t parser___parser_nodes___ANotExpr___n_expr(val_t p0);
 typedef val_t (*parser___parser_nodes___ANotExpr___n_expr_t)(val_t p0);
-val_t NEW_ANotExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AEqExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANotExpr_parser___parser_nodes___ANode___init();
+val_t NEW_AEqExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AEeExpr___n_expr = "parser_nodes::AEeExpr::n_expr";
 val_t parser___parser_nodes___AEeExpr___n_expr(val_t p0);
 typedef val_t (*parser___parser_nodes___AEeExpr___n_expr_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AEeExpr___n_expr2 = "parser_nodes::AEeExpr::n_expr2";
 val_t parser___parser_nodes___AEeExpr___n_expr2(val_t p0);
 typedef val_t (*parser___parser_nodes___AEeExpr___n_expr2_t)(val_t p0);
-val_t NEW_AEeExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_ANeExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_ALtExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_ALeExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_ALlExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AGtExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AGeExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AGgExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AEeExpr_parser___parser_nodes___ANode___init();
+val_t NEW_ANeExpr_parser___parser_nodes___ANode___init();
+val_t NEW_ALtExpr_parser___parser_nodes___ANode___init();
+val_t NEW_ALeExpr_parser___parser_nodes___ANode___init();
+val_t NEW_ALlExpr_parser___parser_nodes___ANode___init();
+val_t NEW_AGtExpr_parser___parser_nodes___ANode___init();
+val_t NEW_AGeExpr_parser___parser_nodes___ANode___init();
+val_t NEW_AGgExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AIsaExpr___n_expr = "parser_nodes::AIsaExpr::n_expr";
 val_t parser___parser_nodes___AIsaExpr___n_expr(val_t p0);
 typedef val_t (*parser___parser_nodes___AIsaExpr___n_expr_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AIsaExpr___n_type = "parser_nodes::AIsaExpr::n_type";
 val_t parser___parser_nodes___AIsaExpr___n_type(val_t p0);
 typedef val_t (*parser___parser_nodes___AIsaExpr___n_type_t)(val_t p0);
-val_t NEW_AIsaExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_APlusExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AMinusExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AStarshipExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AStarExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_ASlashExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_APercentExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIsaExpr_parser___parser_nodes___ANode___init();
+val_t NEW_APlusExpr_parser___parser_nodes___ANode___init();
+val_t NEW_AMinusExpr_parser___parser_nodes___ANode___init();
+val_t NEW_AStarshipExpr_parser___parser_nodes___ANode___init();
+val_t NEW_AStarExpr_parser___parser_nodes___ANode___init();
+val_t NEW_ASlashExpr_parser___parser_nodes___ANode___init();
+val_t NEW_APercentExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AUminusExpr___n_minus = "parser_nodes::AUminusExpr::n_minus";
 val_t parser___parser_nodes___AUminusExpr___n_minus(val_t p0);
 typedef val_t (*parser___parser_nodes___AUminusExpr___n_minus_t)(val_t p0);
-val_t NEW_AUminusExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AUminusExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ANewExpr___n_kwnew = "parser_nodes::ANewExpr::n_kwnew";
 val_t parser___parser_nodes___ANewExpr___n_kwnew(val_t p0);
 typedef val_t (*parser___parser_nodes___ANewExpr___n_kwnew_t)(val_t p0);
@@ -2648,27 +2792,28 @@ typedef val_t (*parser___parser_nodes___ANewExpr___n_id_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ANewExpr___n_args = "parser_nodes::ANewExpr::n_args";
 val_t parser___parser_nodes___ANewExpr___n_args(val_t p0);
 typedef val_t (*parser___parser_nodes___ANewExpr___n_args_t)(val_t p0);
-val_t NEW_ANewExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANewExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AAttrFormExpr___n_expr = "parser_nodes::AAttrFormExpr::n_expr";
 val_t parser___parser_nodes___AAttrFormExpr___n_expr(val_t p0);
 typedef val_t (*parser___parser_nodes___AAttrFormExpr___n_expr_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AAttrFormExpr___n_id = "parser_nodes::AAttrFormExpr::n_id";
 val_t parser___parser_nodes___AAttrFormExpr___n_id(val_t p0);
 typedef val_t (*parser___parser_nodes___AAttrFormExpr___n_id_t)(val_t p0);
-val_t NEW_AAttrFormExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AAttrExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AAttrAssignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAttrFormExpr_parser___parser_nodes___ANode___init();
+val_t NEW_AAttrExpr_parser___parser_nodes___ANode___init();
+val_t NEW_AAttrAssignExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ACallFormExpr___n_id = "parser_nodes::ACallFormExpr::n_id";
 val_t parser___parser_nodes___ACallFormExpr___n_id(val_t p0);
 typedef val_t (*parser___parser_nodes___ACallFormExpr___n_id_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ACallFormExpr___n_args = "parser_nodes::ACallFormExpr::n_args";
 val_t parser___parser_nodes___ACallFormExpr___n_args(val_t p0);
 typedef val_t (*parser___parser_nodes___ACallFormExpr___n_args_t)(val_t p0);
-val_t NEW_ACallFormExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AAttrReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_ACallExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_ACallAssignExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_ACallReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ACallFormExpr_parser___parser_nodes___ANode___init();
+val_t NEW_ASendReassignFormExpr_parser___parser_nodes___ANode___init();
+val_t NEW_AAttrReassignExpr_parser___parser_nodes___ANode___init();
+val_t NEW_ACallExpr_parser___parser_nodes___ANode___init();
+val_t NEW_ACallAssignExpr_parser___parser_nodes___ANode___init();
+val_t NEW_ACallReassignExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ASuperExpr___n_qualified = "parser_nodes::ASuperExpr::n_qualified";
 val_t parser___parser_nodes___ASuperExpr___n_qualified(val_t p0);
 typedef val_t (*parser___parser_nodes___ASuperExpr___n_qualified_t)(val_t p0);
@@ -2678,25 +2823,25 @@ typedef val_t (*parser___parser_nodes___ASuperExpr___n_kwsuper_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ASuperExpr___n_args = "parser_nodes::ASuperExpr::n_args";
 val_t parser___parser_nodes___ASuperExpr___n_args(val_t p0);
 typedef val_t (*parser___parser_nodes___ASuperExpr___n_args_t)(val_t p0);
-val_t NEW_ASuperExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASuperExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AInitExpr___n_kwinit = "parser_nodes::AInitExpr::n_kwinit";
 val_t parser___parser_nodes___AInitExpr___n_kwinit(val_t p0);
 typedef val_t (*parser___parser_nodes___AInitExpr___n_kwinit_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AInitExpr___n_args = "parser_nodes::AInitExpr::n_args";
 val_t parser___parser_nodes___AInitExpr___n_args(val_t p0);
 typedef val_t (*parser___parser_nodes___AInitExpr___n_args_t)(val_t p0);
-val_t NEW_AInitExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AInitExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ABraFormExpr___n_args = "parser_nodes::ABraFormExpr::n_args";
 val_t parser___parser_nodes___ABraFormExpr___n_args(val_t p0);
 typedef val_t (*parser___parser_nodes___ABraFormExpr___n_args_t)(val_t p0);
-val_t NEW_ABraFormExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_ABraExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_ABraAssignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABraFormExpr_parser___parser_nodes___ANode___init();
+val_t NEW_ABraExpr_parser___parser_nodes___ANode___init();
+val_t NEW_ABraAssignExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AVarFormExpr___n_id = "parser_nodes::AVarFormExpr::n_id";
 val_t parser___parser_nodes___AVarFormExpr___n_id(val_t p0);
 typedef val_t (*parser___parser_nodes___AVarFormExpr___n_id_t)(val_t p0);
-val_t NEW_AVarFormExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_ABraReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AVarFormExpr_parser___parser_nodes___ANode___init();
+val_t NEW_ABraReassignExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AClosureCallExpr___n_id = "parser_nodes::AClosureCallExpr::n_id";
 val_t parser___parser_nodes___AClosureCallExpr___n_id(val_t p0);
 typedef val_t (*parser___parser_nodes___AClosureCallExpr___n_id_t)(val_t p0);
@@ -2706,114 +2851,176 @@ typedef val_t (*parser___parser_nodes___AClosureCallExpr___n_args_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AClosureCallExpr___n_closure_defs = "parser_nodes::AClosureCallExpr::n_closure_defs";
 val_t parser___parser_nodes___AClosureCallExpr___n_closure_defs(val_t p0);
 typedef val_t (*parser___parser_nodes___AClosureCallExpr___n_closure_defs_t)(val_t p0);
-val_t NEW_AClosureCallExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AVarExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AVarAssignExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AVarReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AClosureCallExpr_parser___parser_nodes___ANode___init();
+val_t NEW_AVarExpr_parser___parser_nodes___ANode___init();
+val_t NEW_AVarAssignExpr_parser___parser_nodes___ANode___init();
+val_t NEW_AVarReassignExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ARangeExpr___n_expr = "parser_nodes::ARangeExpr::n_expr";
 val_t parser___parser_nodes___ARangeExpr___n_expr(val_t p0);
 typedef val_t (*parser___parser_nodes___ARangeExpr___n_expr_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___ARangeExpr___n_expr2 = "parser_nodes::ARangeExpr::n_expr2";
 val_t parser___parser_nodes___ARangeExpr___n_expr2(val_t p0);
 typedef val_t (*parser___parser_nodes___ARangeExpr___n_expr2_t)(val_t p0);
-val_t NEW_ARangeExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_ACrangeExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AOrangeExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ARangeExpr_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_nodes___ACrangeExpr___n_obra = "parser_nodes::ACrangeExpr::n_obra";
+val_t parser___parser_nodes___ACrangeExpr___n_obra(val_t p0);
+typedef val_t (*parser___parser_nodes___ACrangeExpr___n_obra_t)(val_t p0);
+static const char * const LOCATE_parser___parser_nodes___ACrangeExpr___n_cbra = "parser_nodes::ACrangeExpr::n_cbra";
+val_t parser___parser_nodes___ACrangeExpr___n_cbra(val_t p0);
+typedef val_t (*parser___parser_nodes___ACrangeExpr___n_cbra_t)(val_t p0);
+val_t NEW_ACrangeExpr_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_nodes___AOrangeExpr___n_obra = "parser_nodes::AOrangeExpr::n_obra";
+val_t parser___parser_nodes___AOrangeExpr___n_obra(val_t p0);
+typedef val_t (*parser___parser_nodes___AOrangeExpr___n_obra_t)(val_t p0);
+static const char * const LOCATE_parser___parser_nodes___AOrangeExpr___n_cbra = "parser_nodes::AOrangeExpr::n_cbra";
+val_t parser___parser_nodes___AOrangeExpr___n_cbra(val_t p0);
+typedef val_t (*parser___parser_nodes___AOrangeExpr___n_cbra_t)(val_t p0);
+val_t NEW_AOrangeExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AArrayExpr___n_exprs = "parser_nodes::AArrayExpr::n_exprs";
 val_t parser___parser_nodes___AArrayExpr___n_exprs(val_t p0);
 typedef val_t (*parser___parser_nodes___AArrayExpr___n_exprs_t)(val_t p0);
-val_t NEW_AArrayExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AArrayExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ASelfExpr___n_kwself = "parser_nodes::ASelfExpr::n_kwself";
 val_t parser___parser_nodes___ASelfExpr___n_kwself(val_t p0);
 typedef val_t (*parser___parser_nodes___ASelfExpr___n_kwself_t)(val_t p0);
-val_t NEW_ASelfExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AImplicitSelfExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASelfExpr_parser___parser_nodes___ANode___init();
+val_t NEW_AImplicitSelfExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ATrueExpr___n_kwtrue = "parser_nodes::ATrueExpr::n_kwtrue";
 val_t parser___parser_nodes___ATrueExpr___n_kwtrue(val_t p0);
 typedef val_t (*parser___parser_nodes___ATrueExpr___n_kwtrue_t)(val_t p0);
-val_t NEW_ATrueExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ATrueExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AFalseExpr___n_kwfalse = "parser_nodes::AFalseExpr::n_kwfalse";
 val_t parser___parser_nodes___AFalseExpr___n_kwfalse(val_t p0);
 typedef val_t (*parser___parser_nodes___AFalseExpr___n_kwfalse_t)(val_t p0);
-val_t NEW_AFalseExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AFalseExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ANullExpr___n_kwnull = "parser_nodes::ANullExpr::n_kwnull";
 val_t parser___parser_nodes___ANullExpr___n_kwnull(val_t p0);
 typedef val_t (*parser___parser_nodes___ANullExpr___n_kwnull_t)(val_t p0);
-val_t NEW_ANullExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANullExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AIntExpr___n_number = "parser_nodes::AIntExpr::n_number";
 val_t parser___parser_nodes___AIntExpr___n_number(val_t p0);
 typedef val_t (*parser___parser_nodes___AIntExpr___n_number_t)(val_t p0);
-val_t NEW_AIntExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIntExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AFloatExpr___n_float = "parser_nodes::AFloatExpr::n_float";
 val_t parser___parser_nodes___AFloatExpr___n_float(val_t p0);
 typedef val_t (*parser___parser_nodes___AFloatExpr___n_float_t)(val_t p0);
-val_t NEW_AFloatExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AFloatExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ACharExpr___n_char = "parser_nodes::ACharExpr::n_char";
 val_t parser___parser_nodes___ACharExpr___n_char(val_t p0);
 typedef val_t (*parser___parser_nodes___ACharExpr___n_char_t)(val_t p0);
-val_t NEW_ACharExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AStringFormExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ACharExpr_parser___parser_nodes___ANode___init();
+val_t NEW_AStringFormExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AStringExpr___n_string = "parser_nodes::AStringExpr::n_string";
 val_t parser___parser_nodes___AStringExpr___n_string(val_t p0);
 typedef val_t (*parser___parser_nodes___AStringExpr___n_string_t)(val_t p0);
-val_t NEW_AStringExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStringExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AStartStringExpr___n_string = "parser_nodes::AStartStringExpr::n_string";
 val_t parser___parser_nodes___AStartStringExpr___n_string(val_t p0);
 typedef val_t (*parser___parser_nodes___AStartStringExpr___n_string_t)(val_t p0);
-val_t NEW_AStartStringExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStartStringExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AMidStringExpr___n_string = "parser_nodes::AMidStringExpr::n_string";
 val_t parser___parser_nodes___AMidStringExpr___n_string(val_t p0);
 typedef val_t (*parser___parser_nodes___AMidStringExpr___n_string_t)(val_t p0);
-val_t NEW_AMidStringExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMidStringExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AEndStringExpr___n_string = "parser_nodes::AEndStringExpr::n_string";
 val_t parser___parser_nodes___AEndStringExpr___n_string(val_t p0);
 typedef val_t (*parser___parser_nodes___AEndStringExpr___n_string_t)(val_t p0);
-val_t NEW_AEndStringExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AEndStringExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ASuperstringExpr___n_exprs = "parser_nodes::ASuperstringExpr::n_exprs";
 val_t parser___parser_nodes___ASuperstringExpr___n_exprs(val_t p0);
 typedef val_t (*parser___parser_nodes___ASuperstringExpr___n_exprs_t)(val_t p0);
-val_t NEW_ASuperstringExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AParExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASuperstringExpr_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_nodes___AParExpr___n_opar = "parser_nodes::AParExpr::n_opar";
+val_t parser___parser_nodes___AParExpr___n_opar(val_t p0);
+typedef val_t (*parser___parser_nodes___AParExpr___n_opar_t)(val_t p0);
+static const char * const LOCATE_parser___parser_nodes___AParExpr___n_cpar = "parser_nodes::AParExpr::n_cpar";
+val_t parser___parser_nodes___AParExpr___n_cpar(val_t p0);
+typedef val_t (*parser___parser_nodes___AParExpr___n_cpar_t)(val_t p0);
+val_t NEW_AParExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AProxyExpr___n_expr = "parser_nodes::AProxyExpr::n_expr";
 val_t parser___parser_nodes___AProxyExpr___n_expr(val_t p0);
 typedef val_t (*parser___parser_nodes___AProxyExpr___n_expr_t)(val_t p0);
-val_t NEW_AProxyExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AProxyExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AAsCastExpr___n_expr = "parser_nodes::AAsCastExpr::n_expr";
 val_t parser___parser_nodes___AAsCastExpr___n_expr(val_t p0);
 typedef val_t (*parser___parser_nodes___AAsCastExpr___n_expr_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AAsCastExpr___n_kwas = "parser_nodes::AAsCastExpr::n_kwas";
 val_t parser___parser_nodes___AAsCastExpr___n_kwas(val_t p0);
 typedef val_t (*parser___parser_nodes___AAsCastExpr___n_kwas_t)(val_t p0);
+static const char * const LOCATE_parser___parser_nodes___AAsCastExpr___n_opar = "parser_nodes::AAsCastExpr::n_opar";
+val_t parser___parser_nodes___AAsCastExpr___n_opar(val_t p0);
+typedef val_t (*parser___parser_nodes___AAsCastExpr___n_opar_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AAsCastExpr___n_type = "parser_nodes::AAsCastExpr::n_type";
 val_t parser___parser_nodes___AAsCastExpr___n_type(val_t p0);
 typedef val_t (*parser___parser_nodes___AAsCastExpr___n_type_t)(val_t p0);
-val_t NEW_AAsCastExpr_parser___parser_nodes___ANode___init(val_t p0);
+static const char * const LOCATE_parser___parser_nodes___AAsCastExpr___n_cpar = "parser_nodes::AAsCastExpr::n_cpar";
+val_t parser___parser_nodes___AAsCastExpr___n_cpar(val_t p0);
+typedef val_t (*parser___parser_nodes___AAsCastExpr___n_cpar_t)(val_t p0);
+val_t NEW_AAsCastExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AAsNotnullExpr___n_expr = "parser_nodes::AAsNotnullExpr::n_expr";
 val_t parser___parser_nodes___AAsNotnullExpr___n_expr(val_t p0);
 typedef val_t (*parser___parser_nodes___AAsNotnullExpr___n_expr_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AAsNotnullExpr___n_kwas = "parser_nodes::AAsNotnullExpr::n_kwas";
 val_t parser___parser_nodes___AAsNotnullExpr___n_kwas(val_t p0);
 typedef val_t (*parser___parser_nodes___AAsNotnullExpr___n_kwas_t)(val_t p0);
+static const char * const LOCATE_parser___parser_nodes___AAsNotnullExpr___n_opar = "parser_nodes::AAsNotnullExpr::n_opar";
+val_t parser___parser_nodes___AAsNotnullExpr___n_opar(val_t p0);
+typedef val_t (*parser___parser_nodes___AAsNotnullExpr___n_opar_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AAsNotnullExpr___n_kwnot = "parser_nodes::AAsNotnullExpr::n_kwnot";
 val_t parser___parser_nodes___AAsNotnullExpr___n_kwnot(val_t p0);
 typedef val_t (*parser___parser_nodes___AAsNotnullExpr___n_kwnot_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AAsNotnullExpr___n_kwnull = "parser_nodes::AAsNotnullExpr::n_kwnull";
 val_t parser___parser_nodes___AAsNotnullExpr___n_kwnull(val_t p0);
 typedef val_t (*parser___parser_nodes___AAsNotnullExpr___n_kwnull_t)(val_t p0);
-val_t NEW_AAsNotnullExpr_parser___parser_nodes___ANode___init(val_t p0);
+static const char * const LOCATE_parser___parser_nodes___AAsNotnullExpr___n_cpar = "parser_nodes::AAsNotnullExpr::n_cpar";
+val_t parser___parser_nodes___AAsNotnullExpr___n_cpar(val_t p0);
+typedef val_t (*parser___parser_nodes___AAsNotnullExpr___n_cpar_t)(val_t p0);
+val_t NEW_AAsNotnullExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AIssetAttrExpr___n_kwisset = "parser_nodes::AIssetAttrExpr::n_kwisset";
 val_t parser___parser_nodes___AIssetAttrExpr___n_kwisset(val_t p0);
 typedef val_t (*parser___parser_nodes___AIssetAttrExpr___n_kwisset_t)(val_t p0);
-val_t NEW_AIssetAttrExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AAssignOp_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIssetAttrExpr_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_nodes___AExprs___n_exprs = "parser_nodes::AExprs::n_exprs";
+val_t parser___parser_nodes___AExprs___n_exprs(val_t p0);
+typedef val_t (*parser___parser_nodes___AExprs___n_exprs_t)(val_t p0);
+val_t NEW_AExprs_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_nodes___ADebugTypeExpr___n_kwdebug = "parser_nodes::ADebugTypeExpr::n_kwdebug";
+val_t parser___parser_nodes___ADebugTypeExpr___n_kwdebug(val_t p0);
+typedef val_t (*parser___parser_nodes___ADebugTypeExpr___n_kwdebug_t)(val_t p0);
+static const char * const LOCATE_parser___parser_nodes___ADebugTypeExpr___n_kwtype = "parser_nodes::ADebugTypeExpr::n_kwtype";
+val_t parser___parser_nodes___ADebugTypeExpr___n_kwtype(val_t p0);
+typedef val_t (*parser___parser_nodes___ADebugTypeExpr___n_kwtype_t)(val_t p0);
+static const char * const LOCATE_parser___parser_nodes___ADebugTypeExpr___n_expr = "parser_nodes::ADebugTypeExpr::n_expr";
+val_t parser___parser_nodes___ADebugTypeExpr___n_expr(val_t p0);
+typedef val_t (*parser___parser_nodes___ADebugTypeExpr___n_expr_t)(val_t p0);
+static const char * const LOCATE_parser___parser_nodes___ADebugTypeExpr___n_type = "parser_nodes::ADebugTypeExpr::n_type";
+val_t parser___parser_nodes___ADebugTypeExpr___n_type(val_t p0);
+typedef val_t (*parser___parser_nodes___ADebugTypeExpr___n_type_t)(val_t p0);
+val_t NEW_ADebugTypeExpr_parser___parser_nodes___ANode___init();
+val_t NEW_AListExprs_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_nodes___AParExprs___n_opar = "parser_nodes::AParExprs::n_opar";
+val_t parser___parser_nodes___AParExprs___n_opar(val_t p0);
+typedef val_t (*parser___parser_nodes___AParExprs___n_opar_t)(val_t p0);
+static const char * const LOCATE_parser___parser_nodes___AParExprs___n_cpar = "parser_nodes::AParExprs::n_cpar";
+val_t parser___parser_nodes___AParExprs___n_cpar(val_t p0);
+typedef val_t (*parser___parser_nodes___AParExprs___n_cpar_t)(val_t p0);
+val_t NEW_AParExprs_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_nodes___ABraExprs___n_obra = "parser_nodes::ABraExprs::n_obra";
+val_t parser___parser_nodes___ABraExprs___n_obra(val_t p0);
+typedef val_t (*parser___parser_nodes___ABraExprs___n_obra_t)(val_t p0);
+static const char * const LOCATE_parser___parser_nodes___ABraExprs___n_cbra = "parser_nodes::ABraExprs::n_cbra";
+val_t parser___parser_nodes___ABraExprs___n_cbra(val_t p0);
+typedef val_t (*parser___parser_nodes___ABraExprs___n_cbra_t)(val_t p0);
+val_t NEW_ABraExprs_parser___parser_nodes___ANode___init();
+val_t NEW_AAssignOp_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___APlusAssignOp___n_pluseq = "parser_nodes::APlusAssignOp::n_pluseq";
 val_t parser___parser_nodes___APlusAssignOp___n_pluseq(val_t p0);
 typedef val_t (*parser___parser_nodes___APlusAssignOp___n_pluseq_t)(val_t p0);
-val_t NEW_APlusAssignOp_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_APlusAssignOp_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AMinusAssignOp___n_minuseq = "parser_nodes::AMinusAssignOp::n_minuseq";
 val_t parser___parser_nodes___AMinusAssignOp___n_minuseq(val_t p0);
 typedef val_t (*parser___parser_nodes___AMinusAssignOp___n_minuseq_t)(val_t p0);
-val_t NEW_AMinusAssignOp_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMinusAssignOp_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AClosureDef___n_bang = "parser_nodes::AClosureDef::n_bang";
 val_t parser___parser_nodes___AClosureDef___n_bang(val_t p0);
 typedef val_t (*parser___parser_nodes___AClosureDef___n_bang_t)(val_t p0);
@@ -2829,16 +3036,19 @@ typedef val_t (*parser___parser_nodes___AClosureDef___n_kwdo_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AClosureDef___n_expr = "parser_nodes::AClosureDef::n_expr";
 val_t parser___parser_nodes___AClosureDef___n_expr(val_t p0);
 typedef val_t (*parser___parser_nodes___AClosureDef___n_expr_t)(val_t p0);
-val_t NEW_AClosureDef_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AClosureId_parser___parser_nodes___ANode___init(val_t p0);
+static const char * const LOCATE_parser___parser_nodes___AClosureDef___hot_location = "parser_nodes::AClosureDef::(parser_nodes::ANode::hot_location)";
+val_t parser___parser_nodes___AClosureDef___hot_location(val_t p0);
+typedef val_t (*parser___parser_nodes___AClosureDef___hot_location_t)(val_t p0);
+val_t NEW_AClosureDef_parser___parser_nodes___ANode___init();
+val_t NEW_AClosureId_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ASimpleClosureId___n_id = "parser_nodes::ASimpleClosureId::n_id";
 val_t parser___parser_nodes___ASimpleClosureId___n_id(val_t p0);
 typedef val_t (*parser___parser_nodes___ASimpleClosureId___n_id_t)(val_t p0);
-val_t NEW_ASimpleClosureId_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASimpleClosureId_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ABreakClosureId___n_kwbreak = "parser_nodes::ABreakClosureId::n_kwbreak";
 val_t parser___parser_nodes___ABreakClosureId___n_kwbreak(val_t p0);
 typedef val_t (*parser___parser_nodes___ABreakClosureId___n_kwbreak_t)(val_t p0);
-val_t NEW_ABreakClosureId_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABreakClosureId_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AModuleName___n_quad = "parser_nodes::AModuleName::n_quad";
 val_t parser___parser_nodes___AModuleName___n_quad(val_t p0);
 typedef val_t (*parser___parser_nodes___AModuleName___n_quad_t)(val_t p0);
@@ -2848,7 +3058,7 @@ typedef val_t (*parser___parser_nodes___AModuleName___n_path_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AModuleName___n_id = "parser_nodes::AModuleName::n_id";
 val_t parser___parser_nodes___AModuleName___n_id(val_t p0);
 typedef val_t (*parser___parser_nodes___AModuleName___n_id_t)(val_t p0);
-val_t NEW_AModuleName_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AModuleName_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___AQualified___n_quad = "parser_nodes::AQualified::n_quad";
 val_t parser___parser_nodes___AQualified___n_quad(val_t p0);
 typedef val_t (*parser___parser_nodes___AQualified___n_quad_t)(val_t p0);
@@ -2858,16 +3068,19 @@ typedef val_t (*parser___parser_nodes___AQualified___n_id_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___AQualified___n_classid = "parser_nodes::AQualified::n_classid";
 val_t parser___parser_nodes___AQualified___n_classid(val_t p0);
 typedef val_t (*parser___parser_nodes___AQualified___n_classid_t)(val_t p0);
-val_t NEW_AQualified_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AQualified_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___ADoc___n_comment = "parser_nodes::ADoc::n_comment";
 val_t parser___parser_nodes___ADoc___n_comment(val_t p0);
 typedef val_t (*parser___parser_nodes___ADoc___n_comment_t)(val_t p0);
-val_t NEW_ADoc_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ADoc_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_nodes___Start___n_base = "parser_nodes::Start::n_base";
 val_t parser___parser_nodes___Start___n_base(val_t p0);
 typedef val_t (*parser___parser_nodes___Start___n_base_t)(val_t p0);
 static const char * const LOCATE_parser___parser_nodes___Start___n_eof = "parser_nodes::Start::n_eof";
 val_t parser___parser_nodes___Start___n_eof(val_t p0);
 typedef val_t (*parser___parser_nodes___Start___n_eof_t)(val_t p0);
-val_t NEW_Start_parser___parser_nodes___ANode___init(val_t p0);
+static const char * const LOCATE_parser___parser_nodes___Start___init = "parser_nodes::Start::init";
+void parser___parser_nodes___Start___init(val_t p0, val_t p1, val_t p2, int* init_table);
+typedef void (*parser___parser_nodes___Start___init_t)(val_t p0, val_t p1, val_t p2, int* init_table);
+val_t NEW_Start_parser___parser_nodes___Start___init(val_t p0, val_t p1);
 #endif
index 25a9718..17f3357 100644 (file)
@@ -12,7 +12,7 @@ val_t parser___parser_prod___ANode___parent(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:10 */
+  /* parser/parser_prod.nit:10 */
   fra.me.REG[0] = ATTR_parser___parser_prod___ANode____parent(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -31,7 +31,7 @@ void parser___parser_prod___ANode___parent__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:10 */
+  /* parser/parser_prod.nit:10 */
   ATTR_parser___parser_prod___ANode____parent(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -50,7 +50,7 @@ void parser___parser_prod___ANode___remove_child(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:16 */
+  /* parser/parser_prod.nit:16 */
   CALL_parser___parser_prod___ANode___replace_child(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], NIT_NULL);
   stack_frame_head = fra.me.prev;
   return;
@@ -65,7 +65,7 @@ void parser___parser_prod___ANode___replace_child(val_t p0, val_t p1, val_t p2){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./parser//parser_prod.nit:19 */
+  /* parser/parser_prod.nit:19 */
   nit_abort("Deferred method called", NULL, LOCATE_parser___parser_prod, 19);
   stack_frame_head = fra.me.prev;
   return;
@@ -87,7 +87,7 @@ void parser___parser_prod___ANode___replace_with(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:25 */
+  /* parser/parser_prod.nit:25 */
   fra.me.REG[2] = ATTR_parser___parser_prod___ANode____parent(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -103,7 +103,7 @@ void parser___parser_prod___ANode___replace_with(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:26 */
+    /* parser/parser_prod.nit:26 */
     fra.me.REG[2] = ATTR_parser___parser_prod___ANode____parent(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -124,7 +124,7 @@ void parser___parser_prod___ANode___visit_all(val_t p0, val_t p1){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./parser//parser_prod.nit:30 */
+  /* parser/parser_prod.nit:30 */
   nit_abort("Deferred method called", NULL, LOCATE_parser___parser_prod, 30);
   stack_frame_head = fra.me.prev;
   return;
@@ -182,18 +182,18 @@ void parser___parser_prod___Prod___replace_with(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:41 */
+  /* parser/parser_prod.nit:41 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:43 */
+  /* parser/parser_prod.nit:43 */
   CALL_SUPER_parser___parser_prod___Prod___replace_with(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./parser//parser_prod.nit:44 */
+  /* parser/parser_prod.nit:44 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___Prod, ID_parser___parser_nodes___Prod)) /*cast Prod*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 44);
   }
-  /* ./parser//parser_prod.nit:45 */
+  /* parser/parser_prod.nit:45 */
   fra.me.REG[2] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[2])(fra.me.REG[2]);
   CALL_parser___parser_nodes___Prod___location__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -209,7 +209,7 @@ void parser___parser_prod___Visitor___visit(val_t p0, val_t p1){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./parser//parser_prod.nit:51 */
+  /* parser/parser_prod.nit:51 */
   nit_abort("Deferred method called", NULL, LOCATE_parser___parser_prod, 51);
   stack_frame_head = fra.me.prev;
   return;
@@ -229,13 +229,13 @@ void parser___parser_prod___Visitor___enter_visit(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:60 */
+  /* parser/parser_prod.nit:60 */
   fra.me.REG[2] = ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]);
-  /* ./parser//parser_prod.nit:61 */
+  /* parser/parser_prod.nit:61 */
   ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:62 */
+  /* parser/parser_prod.nit:62 */
   CALL_parser___parser_prod___Visitor___visit(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./parser//parser_prod.nit:63 */
+  /* parser/parser_prod.nit:63 */
   ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   return;
@@ -252,7 +252,7 @@ val_t parser___parser_prod___Visitor___current_node(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:66 */
+  /* parser/parser_prod.nit:66 */
   fra.me.REG[0] = ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -313,11 +313,11 @@ void parser___parser_prod___AModule___init_amodule(val_t p0, val_t p1, val_t p2,
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:79 */
+  /* parser/parser_prod.nit:79 */
   CALL_parser___parser_prod___AModule___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./parser//parser_prod.nit:80 */
+  /* parser/parser_prod.nit:80 */
   ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:81 */
+  /* parser/parser_prod.nit:81 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -332,7 +332,7 @@ void parser___parser_prod___AModule___init_amodule(val_t p0, val_t p1, val_t p2,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:82 */
+    /* parser/parser_prod.nit:82 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 82);
@@ -350,7 +350,7 @@ void parser___parser_prod___AModule___init_amodule(val_t p0, val_t p1, val_t p2,
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:84 */
+    /* parser/parser_prod.nit:84 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -364,13 +364,13 @@ void parser___parser_prod___AModule___init_amodule(val_t p0, val_t p1, val_t p2,
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:85 */
+    /* parser/parser_prod.nit:85 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AImport, ID_parser___parser_nodes___AImport)) /*cast AImport*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 85);
     }
-    /* ./parser//parser_prod.nit:86 */
+    /* parser/parser_prod.nit:86 */
     REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(closctx->REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -378,7 +378,7 @@ void parser___parser_prod___AModule___init_amodule(val_t p0, val_t p1, val_t p2,
     }
     fra.me.REG[1] = ATTR_parser___parser_nodes___AModule____n_imports(closctx->REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:87 */
+    /* parser/parser_prod.nit:87 */
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -388,7 +388,7 @@ void parser___parser_prod___AModule___init_amodule(val_t p0, val_t p1, val_t p2,
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:89 */
+    /* parser/parser_prod.nit:89 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -402,13 +402,13 @@ void parser___parser_prod___AModule___init_amodule(val_t p0, val_t p1, val_t p2,
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:90 */
+    /* parser/parser_prod.nit:90 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast AClassdef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 90);
     }
-    /* ./parser//parser_prod.nit:91 */
+    /* parser/parser_prod.nit:91 */
     REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(closctx->REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -416,7 +416,7 @@ void parser___parser_prod___AModule___init_amodule(val_t p0, val_t p1, val_t p2,
     }
     fra.me.REG[1] = ATTR_parser___parser_nodes___AModule____n_classdefs(closctx->REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:92 */
+    /* parser/parser_prod.nit:92 */
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -443,7 +443,7 @@ void parser___parser_prod___AModule___replace_child(val_t p0, val_t p1, val_t p2
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:98 */
+  /* parser/parser_prod.nit:98 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -458,7 +458,7 @@ void parser___parser_prod___AModule___replace_child(val_t p0, val_t p1, val_t p2
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:99 */
+    /* parser/parser_prod.nit:99 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -473,28 +473,28 @@ void parser___parser_prod___AModule___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:100 */
+      /* parser/parser_prod.nit:100 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 100);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:101 */
+      /* parser/parser_prod.nit:101 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast AModuledecl*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 101);
       }
-      /* ./parser//parser_prod.nit:102 */
+      /* parser/parser_prod.nit:102 */
       ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:104 */
+      /* parser/parser_prod.nit:104 */
       ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:106 */
+    /* parser/parser_prod.nit:106 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:108 */
+  /* parser/parser_prod.nit:108 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -503,20 +503,20 @@ void parser___parser_prod___AModule___replace_child(val_t p0, val_t p1, val_t p2
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:108 */
+      /* parser/parser_prod.nit:108 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:109 */
+      /* parser/parser_prod.nit:109 */
       REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
@@ -537,7 +537,7 @@ void parser___parser_prod___AModule___replace_child(val_t p0, val_t p1, val_t p2
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:110 */
+        /* parser/parser_prod.nit:110 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -552,13 +552,13 @@ void parser___parser_prod___AModule___replace_child(val_t p0, val_t p1, val_t p2
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:111 */
+          /* parser/parser_prod.nit:111 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AImport, ID_parser___parser_nodes___AImport)) /*cast AImport*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
             nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 111);
           }
-          /* ./parser//parser_prod.nit:112 */
+          /* parser/parser_prod.nit:112 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
@@ -566,14 +566,14 @@ void parser___parser_prod___AModule___replace_child(val_t p0, val_t p1, val_t p2
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:113 */
+          /* parser/parser_prod.nit:113 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
             nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 113);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:115 */
+          /* parser/parser_prod.nit:115 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
@@ -582,22 +582,22 @@ void parser___parser_prod___AModule___replace_child(val_t p0, val_t p1, val_t p2
           fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:117 */
+        /* parser/parser_prod.nit:117 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./parser//parser_prod.nit:120 */
+  /* parser/parser_prod.nit:120 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -606,20 +606,20 @@ void parser___parser_prod___AModule___replace_child(val_t p0, val_t p1, val_t p2
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:120 */
+      /* parser/parser_prod.nit:120 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:121 */
+      /* parser/parser_prod.nit:121 */
       REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
@@ -640,7 +640,7 @@ void parser___parser_prod___AModule___replace_child(val_t p0, val_t p1, val_t p2
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:122 */
+        /* parser/parser_prod.nit:122 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -655,13 +655,13 @@ void parser___parser_prod___AModule___replace_child(val_t p0, val_t p1, val_t p2
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:123 */
+          /* parser/parser_prod.nit:123 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast AClassdef*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
             nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 123);
           }
-          /* ./parser//parser_prod.nit:124 */
+          /* parser/parser_prod.nit:124 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
@@ -669,14 +669,14 @@ void parser___parser_prod___AModule___replace_child(val_t p0, val_t p1, val_t p2
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:125 */
+          /* parser/parser_prod.nit:125 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
             nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 125);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:127 */
+          /* parser/parser_prod.nit:127 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
@@ -685,17 +685,17 @@ void parser___parser_prod___AModule___replace_child(val_t p0, val_t p1, val_t p2
           fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:129 */
+        /* parser/parser_prod.nit:129 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label3;
     }
   }
@@ -722,9 +722,9 @@ void parser___parser_prod___AModule___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:134 */
+  /* parser/parser_prod.nit:134 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:136 */
+  /* parser/parser_prod.nit:136 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -740,7 +740,7 @@ void parser___parser_prod___AModule___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:137 */
+    /* parser/parser_prod.nit:137 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast AModuledecl*/;
     if (UNTAG_Bool(REGB0)) {
@@ -749,7 +749,7 @@ void parser___parser_prod___AModule___visit_all(val_t p0, val_t p1){
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:139 */
+  /* parser/parser_prod.nit:139 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -757,7 +757,7 @@ void parser___parser_prod___AModule___visit_all(val_t p0, val_t p1){
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AModule___visit_all_1));
-  /* ./parser//parser_prod.nit:142 */
+  /* parser/parser_prod.nit:142 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -784,7 +784,7 @@ void parser___parser_prod___AModule___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:140 */
+    /* parser/parser_prod.nit:140 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -805,7 +805,7 @@ void parser___parser_prod___AModule___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:143 */
+    /* parser/parser_prod.nit:143 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -851,13 +851,13 @@ void parser___parser_prod___AModuledecl___init_amoduledecl(val_t p0, val_t p1, v
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:150 */
+  /* parser/parser_prod.nit:150 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:156 */
+  /* parser/parser_prod.nit:156 */
   CALL_parser___parser_prod___AModuledecl___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:157 */
+  /* parser/parser_prod.nit:157 */
   ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:158 */
+  /* parser/parser_prod.nit:158 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -872,34 +872,34 @@ void parser___parser_prod___AModuledecl___init_amoduledecl(val_t p0, val_t p1, v
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:159 */
+    /* parser/parser_prod.nit:159 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 159);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
   }
-  /* ./parser//parser_prod.nit:161 */
+  /* parser/parser_prod.nit:161 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 161);
   }
   ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:162 */
+  /* parser/parser_prod.nit:162 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 162);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:163 */
+  /* parser/parser_prod.nit:163 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 163);
   }
   ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[4]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:164 */
+  /* parser/parser_prod.nit:164 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 164);
@@ -928,7 +928,7 @@ void parser___parser_prod___AModuledecl___replace_child(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:169 */
+  /* parser/parser_prod.nit:169 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -943,7 +943,7 @@ void parser___parser_prod___AModuledecl___replace_child(val_t p0, val_t p1, val_
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:170 */
+    /* parser/parser_prod.nit:170 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -958,28 +958,28 @@ void parser___parser_prod___AModuledecl___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:171 */
+      /* parser/parser_prod.nit:171 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 171);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:172 */
+      /* parser/parser_prod.nit:172 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 172);
       }
-      /* ./parser//parser_prod.nit:173 */
+      /* parser/parser_prod.nit:173 */
       ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:175 */
+      /* parser/parser_prod.nit:175 */
       ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:177 */
+    /* parser/parser_prod.nit:177 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:179 */
+  /* parser/parser_prod.nit:179 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -993,7 +993,7 @@ void parser___parser_prod___AModuledecl___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:180 */
+    /* parser/parser_prod.nit:180 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1008,28 +1008,28 @@ void parser___parser_prod___AModuledecl___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:181 */
+      /* parser/parser_prod.nit:181 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 181);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:182 */
+      /* parser/parser_prod.nit:182 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwmodule, ID_parser___parser_nodes___TKwmodule)) /*cast TKwmodule*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 182);
       }
-      /* ./parser//parser_prod.nit:183 */
+      /* parser/parser_prod.nit:183 */
       ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:185 */
+      /* parser/parser_prod.nit:185 */
       nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 185);
     }
-    /* ./parser//parser_prod.nit:187 */
+    /* parser/parser_prod.nit:187 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:189 */
+  /* parser/parser_prod.nit:189 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1043,7 +1043,7 @@ void parser___parser_prod___AModuledecl___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:190 */
+    /* parser/parser_prod.nit:190 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1058,25 +1058,25 @@ void parser___parser_prod___AModuledecl___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:191 */
+      /* parser/parser_prod.nit:191 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 191);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:192 */
+      /* parser/parser_prod.nit:192 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AModuleName, ID_parser___parser_nodes___AModuleName)) /*cast AModuleName*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 192);
       }
-      /* ./parser//parser_prod.nit:193 */
+      /* parser/parser_prod.nit:193 */
       ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:195 */
+      /* parser/parser_prod.nit:195 */
       nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 195);
     }
-    /* ./parser//parser_prod.nit:197 */
+    /* parser/parser_prod.nit:197 */
     goto label1;
   }
   label1: while(0);
@@ -1101,9 +1101,9 @@ void parser___parser_prod___AModuledecl___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:201 */
+  /* parser/parser_prod.nit:201 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:203 */
+  /* parser/parser_prod.nit:203 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1119,7 +1119,7 @@ void parser___parser_prod___AModuledecl___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:204 */
+    /* parser/parser_prod.nit:204 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
     if (UNTAG_Bool(REGB0)) {
@@ -1128,7 +1128,7 @@ void parser___parser_prod___AModuledecl___visit_all(val_t p0, val_t p1){
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:206 */
+  /* parser/parser_prod.nit:206 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1136,7 +1136,7 @@ void parser___parser_prod___AModuledecl___visit_all(val_t p0, val_t p1){
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:207 */
+  /* parser/parser_prod.nit:207 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1187,44 +1187,44 @@ void parser___parser_prod___AStdImport___init_astdimport(val_t p0, val_t p1, val
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:213 */
+  /* parser/parser_prod.nit:213 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:219 */
+  /* parser/parser_prod.nit:219 */
   CALL_parser___parser_prod___AStdImport___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:220 */
+  /* parser/parser_prod.nit:220 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 220);
   }
   ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:221 */
+  /* parser/parser_prod.nit:221 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 221);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:222 */
+  /* parser/parser_prod.nit:222 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 222);
   }
   ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:223 */
+  /* parser/parser_prod.nit:223 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 223);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:224 */
+  /* parser/parser_prod.nit:224 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 224);
   }
   ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[4]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:225 */
+  /* parser/parser_prod.nit:225 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 225);
@@ -1253,7 +1253,7 @@ void parser___parser_prod___AStdImport___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:230 */
+  /* parser/parser_prod.nit:230 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1267,7 +1267,7 @@ void parser___parser_prod___AStdImport___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:231 */
+    /* parser/parser_prod.nit:231 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1282,28 +1282,28 @@ void parser___parser_prod___AStdImport___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:232 */
+      /* parser/parser_prod.nit:232 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 232);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:233 */
+      /* parser/parser_prod.nit:233 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 233);
       }
-      /* ./parser//parser_prod.nit:234 */
+      /* parser/parser_prod.nit:234 */
       ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:236 */
+      /* parser/parser_prod.nit:236 */
       nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 236);
     }
-    /* ./parser//parser_prod.nit:238 */
+    /* parser/parser_prod.nit:238 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:240 */
+  /* parser/parser_prod.nit:240 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1317,7 +1317,7 @@ void parser___parser_prod___AStdImport___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:241 */
+    /* parser/parser_prod.nit:241 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1332,28 +1332,28 @@ void parser___parser_prod___AStdImport___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:242 */
+      /* parser/parser_prod.nit:242 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 242);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:243 */
+      /* parser/parser_prod.nit:243 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwimport, ID_parser___parser_nodes___TKwimport)) /*cast TKwimport*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 243);
       }
-      /* ./parser//parser_prod.nit:244 */
+      /* parser/parser_prod.nit:244 */
       ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:246 */
+      /* parser/parser_prod.nit:246 */
       nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 246);
     }
-    /* ./parser//parser_prod.nit:248 */
+    /* parser/parser_prod.nit:248 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:250 */
+  /* parser/parser_prod.nit:250 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1367,7 +1367,7 @@ void parser___parser_prod___AStdImport___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:251 */
+    /* parser/parser_prod.nit:251 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1382,25 +1382,25 @@ void parser___parser_prod___AStdImport___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:252 */
+      /* parser/parser_prod.nit:252 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 252);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:253 */
+      /* parser/parser_prod.nit:253 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AModuleName, ID_parser___parser_nodes___AModuleName)) /*cast AModuleName*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 253);
       }
-      /* ./parser//parser_prod.nit:254 */
+      /* parser/parser_prod.nit:254 */
       ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:256 */
+      /* parser/parser_prod.nit:256 */
       nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 256);
     }
-    /* ./parser//parser_prod.nit:258 */
+    /* parser/parser_prod.nit:258 */
     goto label1;
   }
   label1: while(0);
@@ -1423,7 +1423,7 @@ void parser___parser_prod___AStdImport___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:264 */
+  /* parser/parser_prod.nit:264 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1431,7 +1431,7 @@ void parser___parser_prod___AStdImport___visit_all(val_t p0, val_t p1){
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:265 */
+  /* parser/parser_prod.nit:265 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1439,7 +1439,7 @@ void parser___parser_prod___AStdImport___visit_all(val_t p0, val_t p1){
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:266 */
+  /* parser/parser_prod.nit:266 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1490,44 +1490,44 @@ void parser___parser_prod___ANoImport___init_anoimport(val_t p0, val_t p1, val_t
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:272 */
+  /* parser/parser_prod.nit:272 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:278 */
+  /* parser/parser_prod.nit:278 */
   CALL_parser___parser_prod___ANoImport___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:279 */
+  /* parser/parser_prod.nit:279 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 279);
   }
   ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:280 */
+  /* parser/parser_prod.nit:280 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 280);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:281 */
+  /* parser/parser_prod.nit:281 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 281);
   }
   ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:282 */
+  /* parser/parser_prod.nit:282 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 282);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:283 */
+  /* parser/parser_prod.nit:283 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 283);
   }
   ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[4]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:284 */
+  /* parser/parser_prod.nit:284 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 284);
@@ -1556,7 +1556,7 @@ void parser___parser_prod___ANoImport___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:289 */
+  /* parser/parser_prod.nit:289 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1570,7 +1570,7 @@ void parser___parser_prod___ANoImport___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:290 */
+    /* parser/parser_prod.nit:290 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1585,28 +1585,28 @@ void parser___parser_prod___ANoImport___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:291 */
+      /* parser/parser_prod.nit:291 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 291);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:292 */
+      /* parser/parser_prod.nit:292 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 292);
       }
-      /* ./parser//parser_prod.nit:293 */
+      /* parser/parser_prod.nit:293 */
       ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:295 */
+      /* parser/parser_prod.nit:295 */
       nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 295);
     }
-    /* ./parser//parser_prod.nit:297 */
+    /* parser/parser_prod.nit:297 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:299 */
+  /* parser/parser_prod.nit:299 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1620,7 +1620,7 @@ void parser___parser_prod___ANoImport___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:300 */
+    /* parser/parser_prod.nit:300 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1635,28 +1635,28 @@ void parser___parser_prod___ANoImport___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:301 */
+      /* parser/parser_prod.nit:301 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 301);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:302 */
+      /* parser/parser_prod.nit:302 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwimport, ID_parser___parser_nodes___TKwimport)) /*cast TKwimport*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 302);
       }
-      /* ./parser//parser_prod.nit:303 */
+      /* parser/parser_prod.nit:303 */
       ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:305 */
+      /* parser/parser_prod.nit:305 */
       nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 305);
     }
-    /* ./parser//parser_prod.nit:307 */
+    /* parser/parser_prod.nit:307 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:309 */
+  /* parser/parser_prod.nit:309 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1670,7 +1670,7 @@ void parser___parser_prod___ANoImport___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:310 */
+    /* parser/parser_prod.nit:310 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1685,25 +1685,25 @@ void parser___parser_prod___ANoImport___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:311 */
+      /* parser/parser_prod.nit:311 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 311);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:312 */
+      /* parser/parser_prod.nit:312 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast TKwend*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 312);
       }
-      /* ./parser//parser_prod.nit:313 */
+      /* parser/parser_prod.nit:313 */
       ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:315 */
+      /* parser/parser_prod.nit:315 */
       nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 315);
     }
-    /* ./parser//parser_prod.nit:317 */
+    /* parser/parser_prod.nit:317 */
     goto label1;
   }
   label1: while(0);
@@ -1726,7 +1726,7 @@ void parser___parser_prod___ANoImport___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:323 */
+  /* parser/parser_prod.nit:323 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1734,7 +1734,7 @@ void parser___parser_prod___ANoImport___visit_all(val_t p0, val_t p1){
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:324 */
+  /* parser/parser_prod.nit:324 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1742,7 +1742,7 @@ void parser___parser_prod___ANoImport___visit_all(val_t p0, val_t p1){
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:325 */
+  /* parser/parser_prod.nit:325 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1785,7 +1785,7 @@ void parser___parser_prod___APublicVisibility___init_apublicvisibility(val_t p0,
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:333 */
+  /* parser/parser_prod.nit:333 */
   CALL_parser___parser_prod___APublicVisibility___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos10] = 1;
@@ -1863,18 +1863,18 @@ void parser___parser_prod___APrivateVisibility___init_aprivatevisibility(val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:347 */
+  /* parser/parser_prod.nit:347 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:351 */
+  /* parser/parser_prod.nit:351 */
   CALL_parser___parser_prod___APrivateVisibility___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:352 */
+  /* parser/parser_prod.nit:352 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 352);
   }
   ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:353 */
+  /* parser/parser_prod.nit:353 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 353);
@@ -1903,7 +1903,7 @@ void parser___parser_prod___APrivateVisibility___replace_child(val_t p0, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:358 */
+  /* parser/parser_prod.nit:358 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1917,7 +1917,7 @@ void parser___parser_prod___APrivateVisibility___replace_child(val_t p0, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:359 */
+    /* parser/parser_prod.nit:359 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1932,25 +1932,25 @@ void parser___parser_prod___APrivateVisibility___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:360 */
+      /* parser/parser_prod.nit:360 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 360);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:361 */
+      /* parser/parser_prod.nit:361 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwprivate, ID_parser___parser_nodes___TKwprivate)) /*cast TKwprivate*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 361);
       }
-      /* ./parser//parser_prod.nit:362 */
+      /* parser/parser_prod.nit:362 */
       ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:364 */
+      /* parser/parser_prod.nit:364 */
       nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 364);
     }
-    /* ./parser//parser_prod.nit:366 */
+    /* parser/parser_prod.nit:366 */
     goto label1;
   }
   label1: while(0);
@@ -1972,7 +1972,7 @@ void parser___parser_prod___APrivateVisibility___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:372 */
+  /* parser/parser_prod.nit:372 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2019,18 +2019,18 @@ void parser___parser_prod___AProtectedVisibility___init_aprotectedvisibility(val
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:378 */
+  /* parser/parser_prod.nit:378 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:382 */
+  /* parser/parser_prod.nit:382 */
   CALL_parser___parser_prod___AProtectedVisibility___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:383 */
+  /* parser/parser_prod.nit:383 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 383);
   }
   ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:384 */
+  /* parser/parser_prod.nit:384 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 384);
@@ -2059,7 +2059,7 @@ void parser___parser_prod___AProtectedVisibility___replace_child(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:389 */
+  /* parser/parser_prod.nit:389 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2073,7 +2073,7 @@ void parser___parser_prod___AProtectedVisibility___replace_child(val_t p0, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:390 */
+    /* parser/parser_prod.nit:390 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -2088,25 +2088,25 @@ void parser___parser_prod___AProtectedVisibility___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:391 */
+      /* parser/parser_prod.nit:391 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 391);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:392 */
+      /* parser/parser_prod.nit:392 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwprotected, ID_parser___parser_nodes___TKwprotected)) /*cast TKwprotected*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 392);
       }
-      /* ./parser//parser_prod.nit:393 */
+      /* parser/parser_prod.nit:393 */
       ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:395 */
+      /* parser/parser_prod.nit:395 */
       nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 395);
     }
-    /* ./parser//parser_prod.nit:397 */
+    /* parser/parser_prod.nit:397 */
     goto label1;
   }
   label1: while(0);
@@ -2128,7 +2128,7 @@ void parser___parser_prod___AProtectedVisibility___visit_all(val_t p0, val_t p1)
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:403 */
+  /* parser/parser_prod.nit:403 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2175,18 +2175,18 @@ void parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:409 */
+  /* parser/parser_prod.nit:409 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:413 */
+  /* parser/parser_prod.nit:413 */
   CALL_parser___parser_prod___AIntrudeVisibility___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:414 */
+  /* parser/parser_prod.nit:414 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 414);
   }
   ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:415 */
+  /* parser/parser_prod.nit:415 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 415);
@@ -2215,7 +2215,7 @@ void parser___parser_prod___AIntrudeVisibility___replace_child(val_t p0, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:420 */
+  /* parser/parser_prod.nit:420 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2229,7 +2229,7 @@ void parser___parser_prod___AIntrudeVisibility___replace_child(val_t p0, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:421 */
+    /* parser/parser_prod.nit:421 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -2244,25 +2244,25 @@ void parser___parser_prod___AIntrudeVisibility___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:422 */
+      /* parser/parser_prod.nit:422 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 422);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:423 */
+      /* parser/parser_prod.nit:423 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwintrude, ID_parser___parser_nodes___TKwintrude)) /*cast TKwintrude*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 423);
       }
-      /* ./parser//parser_prod.nit:424 */
+      /* parser/parser_prod.nit:424 */
       ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:426 */
+      /* parser/parser_prod.nit:426 */
       nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 426);
     }
-    /* ./parser//parser_prod.nit:428 */
+    /* parser/parser_prod.nit:428 */
     goto label1;
   }
   label1: while(0);
@@ -2284,7 +2284,7 @@ void parser___parser_prod___AIntrudeVisibility___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:434 */
+  /* parser/parser_prod.nit:434 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2313,9 +2313,9 @@ void parser___parser_prod___AStdClassdef___empty_init(val_t p0, int* init_table)
   init_table[itpos17] = 1;
   return;
 }
-void parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, int* init_table){
+void parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, val_t p9, int* init_table){
   int itpos18 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStdClassdef].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
@@ -2325,7 +2325,7 @@ void parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1,
   fra.me.line = 440;
   fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 10;
+  fra.me.REG_size = 11;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -2337,6 +2337,7 @@ void parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1,
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[9] = NIT_NULL;
+  fra.me.REG[10] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
@@ -2346,13 +2347,14 @@ void parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1,
   fra.me.REG[6] = p6;
   fra.me.REG[7] = p7;
   fra.me.REG[8] = p8;
-  /* ./parser//parser_prod.nit:440 */
-  fra.me.REG[9] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:451 */
-  CALL_parser___parser_prod___AStdClassdef___empty_init(fra.me.REG[9])(fra.me.REG[9], init_table);
-  /* ./parser//parser_prod.nit:452 */
-  ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[9]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:453 */
+  fra.me.REG[9] = p9;
+  /* parser/parser_prod.nit:440 */
+  fra.me.REG[10] = fra.me.REG[0];
+  /* parser/parser_prod.nit:452 */
+  CALL_parser___parser_prod___AStdClassdef___empty_init(fra.me.REG[10])(fra.me.REG[10], init_table);
+  /* parser/parser_prod.nit:453 */
+  ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[10]) = fra.me.REG[1];
+  /* parser/parser_prod.nit:454 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2367,16 +2369,16 @@ void parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:454 */
+    /* parser/parser_prod.nit:455 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 454);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 455);
     }
-    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
+    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[10]);
   }
-  /* ./parser//parser_prod.nit:456 */
-  ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[9]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:457 */
+  /* parser/parser_prod.nit:457 */
+  ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[10]) = fra.me.REG[2];
+  /* parser/parser_prod.nit:458 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2391,42 +2393,42 @@ void parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:458 */
+    /* parser/parser_prod.nit:459 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 458);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 459);
     }
-    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[9]);
+    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[10]);
   }
-  /* ./parser//parser_prod.nit:460 */
+  /* parser/parser_prod.nit:461 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 460);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 461);
   }
-  ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[9]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:461 */
+  ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[10]) = fra.me.REG[3];
+  /* parser/parser_prod.nit:462 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 461);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 462);
   }
-  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]);
-  /* ./parser//parser_prod.nit:462 */
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[10]);
+  /* parser/parser_prod.nit:463 */
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 462);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 463);
   }
-  ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[9]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:463 */
+  ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[10]) = fra.me.REG[4];
+  /* parser/parser_prod.nit:464 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 463);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 464);
   }
-  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
-  /* ./parser//parser_prod.nit:464 */
-  ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[9]) = fra.me.REG[5];
-  /* ./parser//parser_prod.nit:465 */
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[10]);
+  /* parser/parser_prod.nit:465 */
+  ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[10]) = fra.me.REG[5];
+  /* parser/parser_prod.nit:466 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2441,16 +2443,29 @@ void parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:466 */
+    /* parser/parser_prod.nit:467 */
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 466);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 467);
     }
-    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[9]);
+    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[10]);
   }
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[6])(fra.me.REG[6], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___init_astdclassdef_1));
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[7])(fra.me.REG[7], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___init_astdclassdef_2));
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[8])(fra.me.REG[8], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___init_astdclassdef_3));
+  /* parser/parser_prod.nit:484 */
+  REGB0 = TAG_Bool(fra.me.REG[9]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 484);
+  }
+  ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[10]) = fra.me.REG[9];
+  /* parser/parser_prod.nit:485 */
+  REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 485);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
   stack_frame_head = fra.me.prev;
   init_table[itpos18] = 1;
   return;
@@ -2460,7 +2475,7 @@ void parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1,
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:468 */
+    /* parser/parser_prod.nit:469 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -2474,22 +2489,22 @@ void parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1,
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:469 */
+    /* parser/parser_prod.nit:470 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AFormaldef, ID_parser___parser_nodes___AFormaldef)) /*cast AFormaldef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 469);
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 470);
     }
-    /* ./parser//parser_prod.nit:470 */
-    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(closctx->REG[9])!=NIT_NULL);
+    /* parser/parser_prod.nit:471 */
+    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(closctx->REG[10])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 470);
+      nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 471);
     }
-    fra.me.REG[1] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(closctx->REG[9]);
+    fra.me.REG[1] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(closctx->REG[10]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:471 */
-    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[9]);
+    /* parser/parser_prod.nit:472 */
+    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[10]);
     stack_frame_head = fra.me.prev;
     return;
   }
@@ -2498,7 +2513,7 @@ void parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1,
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:473 */
+    /* parser/parser_prod.nit:474 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -2512,22 +2527,22 @@ void parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1,
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:474 */
+    /* parser/parser_prod.nit:475 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___ASuperclass, ID_parser___parser_nodes___ASuperclass)) /*cast ASuperclass*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 474);
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 475);
     }
-    /* ./parser//parser_prod.nit:475 */
-    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(closctx->REG[9])!=NIT_NULL);
+    /* parser/parser_prod.nit:476 */
+    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(closctx->REG[10])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 475);
+      nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 476);
     }
-    fra.me.REG[1] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(closctx->REG[9]);
+    fra.me.REG[1] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(closctx->REG[10]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:476 */
-    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[9]);
+    /* parser/parser_prod.nit:477 */
+    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[10]);
     stack_frame_head = fra.me.prev;
     return;
   }
@@ -2536,7 +2551,7 @@ void parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1,
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:478 */
+    /* parser/parser_prod.nit:479 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -2550,22 +2565,22 @@ void parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1,
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:479 */
+    /* parser/parser_prod.nit:480 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 479);
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 480);
     }
-    /* ./parser//parser_prod.nit:480 */
-    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(closctx->REG[9])!=NIT_NULL);
+    /* parser/parser_prod.nit:481 */
+    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[10])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 480);
+      nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 481);
     }
-    fra.me.REG[1] = ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(closctx->REG[9]);
+    fra.me.REG[1] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[10]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:481 */
-    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[9]);
+    /* parser/parser_prod.nit:482 */
+    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[10]);
     stack_frame_head = fra.me.prev;
     return;
   }
@@ -2579,7 +2594,7 @@ void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 485;
+  fra.me.line = 488;
   fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -2591,7 +2606,7 @@ void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:487 */
+  /* parser/parser_prod.nit:490 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -2606,7 +2621,7 @@ void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:488 */
+    /* parser/parser_prod.nit:491 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -2621,28 +2636,28 @@ void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:489 */
+      /* parser/parser_prod.nit:492 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 489);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 492);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:490 */
+      /* parser/parser_prod.nit:493 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 490);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 493);
       }
-      /* ./parser//parser_prod.nit:491 */
+      /* parser/parser_prod.nit:494 */
       ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:493 */
+      /* parser/parser_prod.nit:496 */
       ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:495 */
+    /* parser/parser_prod.nit:498 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:497 */
+  /* parser/parser_prod.nit:500 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -2657,7 +2672,7 @@ void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:498 */
+    /* parser/parser_prod.nit:501 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -2672,32 +2687,32 @@ void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:499 */
+      /* parser/parser_prod.nit:502 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 499);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 502);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:500 */
+      /* parser/parser_prod.nit:503 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 500);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 503);
       }
-      /* ./parser//parser_prod.nit:501 */
+      /* parser/parser_prod.nit:504 */
       ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:503 */
+      /* parser/parser_prod.nit:506 */
       ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:505 */
+    /* parser/parser_prod.nit:508 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:507 */
+  /* parser/parser_prod.nit:510 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 507);
+    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 510);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -2707,7 +2722,7 @@ void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:508 */
+    /* parser/parser_prod.nit:511 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -2722,32 +2737,32 @@ void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:509 */
+      /* parser/parser_prod.nit:512 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 509);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 512);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:510 */
+      /* parser/parser_prod.nit:513 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 510);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 513);
       }
-      /* ./parser//parser_prod.nit:511 */
+      /* parser/parser_prod.nit:514 */
       ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:513 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 513);
+      /* parser/parser_prod.nit:516 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 516);
     }
-    /* ./parser//parser_prod.nit:515 */
+    /* parser/parser_prod.nit:518 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:517 */
+  /* parser/parser_prod.nit:520 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_classkind", LOCATE_parser___parser_prod, 517);
+    nit_abort("Uninitialized attribute %s", "_n_classkind", LOCATE_parser___parser_prod, 520);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -2757,7 +2772,7 @@ void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:518 */
+    /* parser/parser_prod.nit:521 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -2772,28 +2787,28 @@ void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:519 */
+      /* parser/parser_prod.nit:522 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 519);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 522);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:520 */
+      /* parser/parser_prod.nit:523 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast AClasskind*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 520);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 523);
       }
-      /* ./parser//parser_prod.nit:521 */
+      /* parser/parser_prod.nit:524 */
       ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:523 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 523);
+      /* parser/parser_prod.nit:526 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 526);
     }
-    /* ./parser//parser_prod.nit:525 */
+    /* parser/parser_prod.nit:528 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:527 */
+  /* parser/parser_prod.nit:530 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -2808,7 +2823,7 @@ void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:528 */
+    /* parser/parser_prod.nit:531 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -2823,54 +2838,54 @@ void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:529 */
+      /* parser/parser_prod.nit:532 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 529);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 532);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:530 */
+      /* parser/parser_prod.nit:533 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 530);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 533);
       }
-      /* ./parser//parser_prod.nit:531 */
+      /* parser/parser_prod.nit:534 */
       ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:533 */
+      /* parser/parser_prod.nit:536 */
       ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:535 */
+    /* parser/parser_prod.nit:538 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:537 */
+  /* parser/parser_prod.nit:540 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 537);
+    nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 540);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:537 */
+      /* parser/parser_prod.nit:540 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:538 */
+      /* parser/parser_prod.nit:541 */
       REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 538);
+        nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 541);
       }
       fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
@@ -2887,7 +2902,7 @@ void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:539 */
+        /* parser/parser_prod.nit:542 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -2902,78 +2917,78 @@ void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:540 */
+          /* parser/parser_prod.nit:543 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AFormaldef, ID_parser___parser_nodes___AFormaldef)) /*cast AFormaldef*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 540);
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 543);
           }
-          /* ./parser//parser_prod.nit:541 */
+          /* parser/parser_prod.nit:544 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 541);
+            nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 544);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:542 */
+          /* parser/parser_prod.nit:545 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 542);
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 545);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:544 */
+          /* parser/parser_prod.nit:547 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 544);
+            nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 547);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:546 */
+        /* parser/parser_prod.nit:549 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./parser//parser_prod.nit:549 */
+  /* parser/parser_prod.nit:552 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 549);
+    nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 552);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:549 */
+      /* parser/parser_prod.nit:552 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:550 */
+      /* parser/parser_prod.nit:553 */
       REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 550);
+        nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 553);
       }
       fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
@@ -2990,7 +3005,7 @@ void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:551 */
+        /* parser/parser_prod.nit:554 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -3005,80 +3020,80 @@ void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:552 */
+          /* parser/parser_prod.nit:555 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASuperclass, ID_parser___parser_nodes___ASuperclass)) /*cast ASuperclass*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 552);
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 555);
           }
-          /* ./parser//parser_prod.nit:553 */
+          /* parser/parser_prod.nit:556 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 553);
+            nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 556);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:554 */
+          /* parser/parser_prod.nit:557 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 554);
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 557);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:556 */
+          /* parser/parser_prod.nit:559 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 556);
+            nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 559);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:558 */
+        /* parser/parser_prod.nit:561 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label3;
     }
   }
   label3: while(0);
-  /* ./parser//parser_prod.nit:561 */
+  /* parser/parser_prod.nit:564 */
   REGB0 = TAG_Int(0);
-  REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+  REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 561);
+    nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 564);
   }
-  fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0]);
+  fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:561 */
+      /* parser/parser_prod.nit:564 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:562 */
-      REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+      /* parser/parser_prod.nit:565 */
+      REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 562);
+        nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 565);
       }
-      fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0]);
+      fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
       REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
       if (UNTAG_Bool(REGB3)) {
@@ -3093,7 +3108,7 @@ void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:563 */
+        /* parser/parser_prod.nit:566 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -3108,51 +3123,101 @@ void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:564 */
+          /* parser/parser_prod.nit:567 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 564);
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 567);
           }
-          /* ./parser//parser_prod.nit:565 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+          /* parser/parser_prod.nit:568 */
+          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 565);
+            nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 568);
           }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0]);
+          fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:566 */
+          /* parser/parser_prod.nit:569 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 566);
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 569);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:568 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+          /* parser/parser_prod.nit:571 */
+          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 568);
+            nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 571);
           }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0]);
+          fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:570 */
+        /* parser/parser_prod.nit:573 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label4;
     }
   }
   label4: while(0);
+  /* parser/parser_prod.nit:576 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser___parser_prod, 576);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:577 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:578 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 578);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:579 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast TKwend*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 579);
+      }
+      /* parser/parser_prod.nit:580 */
+      ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:582 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 582);
+    }
+    /* parser/parser_prod.nit:584 */
+    goto label1;
+  }
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return;
@@ -3164,7 +3229,7 @@ void parser___parser_prod___AStdClassdef___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 575;
+  fra.me.line = 588;
   fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -3175,9 +3240,9 @@ void parser___parser_prod___AStdClassdef___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:575 */
+  /* parser/parser_prod.nit:588 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:577 */
+  /* parser/parser_prod.nit:590 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -3193,16 +3258,16 @@ void parser___parser_prod___AStdClassdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:578 */
+    /* parser/parser_prod.nit:591 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 578);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 591);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:580 */
+  /* parser/parser_prod.nit:593 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -3218,32 +3283,32 @@ void parser___parser_prod___AStdClassdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:581 */
+    /* parser/parser_prod.nit:594 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 581);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 594);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:583 */
+  /* parser/parser_prod.nit:596 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 583);
+    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 596);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:584 */
+  /* parser/parser_prod.nit:597 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_classkind", LOCATE_parser___parser_prod, 584);
+    nit_abort("Uninitialized attribute %s", "_n_classkind", LOCATE_parser___parser_prod, 597);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:585 */
+  /* parser/parser_prod.nit:598 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -3259,39 +3324,47 @@ void parser___parser_prod___AStdClassdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:586 */
+    /* parser/parser_prod.nit:599 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 586);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 599);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:588 */
+  /* parser/parser_prod.nit:601 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 588);
+    nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 601);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___visit_all_1));
-  /* ./parser//parser_prod.nit:591 */
+  /* parser/parser_prod.nit:604 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 591);
+    nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 604);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___visit_all_2));
-  /* ./parser//parser_prod.nit:594 */
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[2])!=NIT_NULL);
+  /* parser/parser_prod.nit:607 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 594);
+    nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 607);
   }
-  fra.me.REG[2] = ATTR_parser___parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[2]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___visit_all_3));
+  fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[2]);
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___visit_all_3));
+  /* parser/parser_prod.nit:610 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[2])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser___parser_prod, 610);
+  }
+  fra.me.REG[2] = ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[2]);
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
 }
@@ -3311,7 +3384,7 @@ void parser___parser_prod___AStdClassdef___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:589 */
+    /* parser/parser_prod.nit:602 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -3332,7 +3405,7 @@ void parser___parser_prod___AStdClassdef___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:592 */
+    /* parser/parser_prod.nit:605 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -3353,7 +3426,7 @@ void parser___parser_prod___AStdClassdef___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:595 */
+    /* parser/parser_prod.nit:608 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -3365,7 +3438,7 @@ void parser___parser_prod___ATopClassdef___empty_init(val_t p0, int* init_table)
   if (init_table[itpos19]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 600;
+  fra.me.line = 614;
   fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -3383,7 +3456,7 @@ void parser___parser_prod___ATopClassdef___init_atopclassdef(val_t p0, val_t p1,
   if (init_table[itpos20]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 602;
+  fra.me.line = 616;
   fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___init_atopclassdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -3392,7 +3465,7 @@ void parser___parser_prod___ATopClassdef___init_atopclassdef(val_t p0, val_t p1,
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:606 */
+  /* parser/parser_prod.nit:620 */
   CALL_parser___parser_prod___ATopClassdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ATopClassdef___init_atopclassdef_1));
   stack_frame_head = fra.me.prev;
@@ -3404,7 +3477,7 @@ void parser___parser_prod___ATopClassdef___init_atopclassdef(val_t p0, val_t p1,
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:607 */
+    /* parser/parser_prod.nit:621 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -3418,21 +3491,21 @@ void parser___parser_prod___ATopClassdef___init_atopclassdef(val_t p0, val_t p1,
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:608 */
+    /* parser/parser_prod.nit:622 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 608);
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 622);
     }
-    /* ./parser//parser_prod.nit:609 */
-    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(closctx->REG[0])!=NIT_NULL);
+    /* parser/parser_prod.nit:623 */
+    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 609);
+      nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 623);
     }
-    fra.me.REG[1] = ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(closctx->REG[0]);
+    fra.me.REG[1] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:610 */
+    /* parser/parser_prod.nit:624 */
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -3447,7 +3520,7 @@ void parser___parser_prod___ATopClassdef___replace_child(val_t p0, val_t p1, val
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 614;
+  fra.me.line = 628;
   fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -3459,35 +3532,35 @@ void parser___parser_prod___ATopClassdef___replace_child(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:616 */
+  /* parser/parser_prod.nit:630 */
   REGB0 = TAG_Int(0);
-  REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+  REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 616);
+    nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 630);
   }
-  fra.me.REG[3] = ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
+  fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:616 */
+      /* parser/parser_prod.nit:630 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:617 */
-      REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+      /* parser/parser_prod.nit:631 */
+      REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 617);
+        nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 631);
       }
-      fra.me.REG[3] = ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
+      fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
       REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
       if (UNTAG_Bool(REGB3)) {
@@ -3502,7 +3575,7 @@ void parser___parser_prod___ATopClassdef___replace_child(val_t p0, val_t p1, val
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:618 */
+        /* parser/parser_prod.nit:632 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -3517,47 +3590,47 @@ void parser___parser_prod___ATopClassdef___replace_child(val_t p0, val_t p1, val
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:619 */
+          /* parser/parser_prod.nit:633 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 619);
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 633);
           }
-          /* ./parser//parser_prod.nit:620 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+          /* parser/parser_prod.nit:634 */
+          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 620);
+            nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 634);
           }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
+          fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:621 */
+          /* parser/parser_prod.nit:635 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 621);
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 635);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:623 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+          /* parser/parser_prod.nit:637 */
+          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 623);
+            nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 637);
           }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
+          fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:625 */
+        /* parser/parser_prod.nit:639 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label2;
     }
   }
@@ -3572,7 +3645,7 @@ void parser___parser_prod___ATopClassdef___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 630;
+  fra.me.line = 644;
   fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -3581,13 +3654,13 @@ void parser___parser_prod___ATopClassdef___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:632 */
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+  /* parser/parser_prod.nit:646 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 632);
+    nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 646);
   }
-  fra.me.REG[0] = ATTR_parser___parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ATopClassdef___visit_all_1));
   stack_frame_head = fra.me.prev;
   return;
@@ -3608,7 +3681,7 @@ void parser___parser_prod___ATopClassdef___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:633 */
+    /* parser/parser_prod.nit:647 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -3620,7 +3693,7 @@ void parser___parser_prod___AMainClassdef___empty_init(val_t p0, int* init_table
   if (init_table[itpos21]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 638;
+  fra.me.line = 652;
   fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -3638,7 +3711,7 @@ void parser___parser_prod___AMainClassdef___init_amainclassdef(val_t p0, val_t p
   if (init_table[itpos22]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 640;
+  fra.me.line = 654;
   fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___init_amainclassdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -3647,7 +3720,7 @@ void parser___parser_prod___AMainClassdef___init_amainclassdef(val_t p0, val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:644 */
+  /* parser/parser_prod.nit:658 */
   CALL_parser___parser_prod___AMainClassdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AMainClassdef___init_amainclassdef_1));
   stack_frame_head = fra.me.prev;
@@ -3659,7 +3732,7 @@ void parser___parser_prod___AMainClassdef___init_amainclassdef(val_t p0, val_t p
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:645 */
+    /* parser/parser_prod.nit:659 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -3673,21 +3746,21 @@ void parser___parser_prod___AMainClassdef___init_amainclassdef(val_t p0, val_t p
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:646 */
+    /* parser/parser_prod.nit:660 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 646);
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 660);
     }
-    /* ./parser//parser_prod.nit:647 */
-    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(closctx->REG[0])!=NIT_NULL);
+    /* parser/parser_prod.nit:661 */
+    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 647);
+      nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 661);
     }
-    fra.me.REG[1] = ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(closctx->REG[0]);
+    fra.me.REG[1] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:648 */
+    /* parser/parser_prod.nit:662 */
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -3702,7 +3775,7 @@ void parser___parser_prod___AMainClassdef___replace_child(val_t p0, val_t p1, va
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 652;
+  fra.me.line = 666;
   fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -3714,35 +3787,35 @@ void parser___parser_prod___AMainClassdef___replace_child(val_t p0, val_t p1, va
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:654 */
+  /* parser/parser_prod.nit:668 */
   REGB0 = TAG_Int(0);
-  REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+  REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 654);
+    nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 668);
   }
-  fra.me.REG[3] = ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
+  fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:654 */
+      /* parser/parser_prod.nit:668 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:655 */
-      REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+      /* parser/parser_prod.nit:669 */
+      REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 655);
+        nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 669);
       }
-      fra.me.REG[3] = ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
+      fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
       REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
       if (UNTAG_Bool(REGB3)) {
@@ -3757,7 +3830,7 @@ void parser___parser_prod___AMainClassdef___replace_child(val_t p0, val_t p1, va
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:656 */
+        /* parser/parser_prod.nit:670 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -3772,47 +3845,47 @@ void parser___parser_prod___AMainClassdef___replace_child(val_t p0, val_t p1, va
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:657 */
+          /* parser/parser_prod.nit:671 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 657);
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 671);
           }
-          /* ./parser//parser_prod.nit:658 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+          /* parser/parser_prod.nit:672 */
+          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 658);
+            nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 672);
           }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
+          fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:659 */
+          /* parser/parser_prod.nit:673 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 659);
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 673);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:661 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+          /* parser/parser_prod.nit:675 */
+          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 661);
+            nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 675);
           }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
+          fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:663 */
+        /* parser/parser_prod.nit:677 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label2;
     }
   }
@@ -3827,7 +3900,7 @@ void parser___parser_prod___AMainClassdef___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 668;
+  fra.me.line = 682;
   fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -3836,13 +3909,13 @@ void parser___parser_prod___AMainClassdef___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:670 */
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
+  /* parser/parser_prod.nit:684 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 670);
+    nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 684);
   }
-  fra.me.REG[0] = ATTR_parser___parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AMainClassdef___visit_all_1));
   stack_frame_head = fra.me.prev;
   return;
@@ -3863,7 +3936,7 @@ void parser___parser_prod___AMainClassdef___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:671 */
+    /* parser/parser_prod.nit:685 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -3875,7 +3948,7 @@ void parser___parser_prod___AConcreteClasskind___empty_init(val_t p0, int* init_
   if (init_table[itpos23]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 676;
+  fra.me.line = 690;
   fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -3894,7 +3967,7 @@ void parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind(val_t p
   if (init_table[itpos24]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 678;
+  fra.me.line = 692;
   fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3904,21 +3977,21 @@ void parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind(val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:678 */
+  /* parser/parser_prod.nit:692 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:682 */
+  /* parser/parser_prod.nit:696 */
   CALL_parser___parser_prod___AConcreteClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:683 */
+  /* parser/parser_prod.nit:697 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 683);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 697);
   }
   ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:684 */
+  /* parser/parser_prod.nit:698 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 684);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 698);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -3932,7 +4005,7 @@ void parser___parser_prod___AConcreteClasskind___replace_child(val_t p0, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 687;
+  fra.me.line = 701;
   fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -3944,11 +4017,11 @@ void parser___parser_prod___AConcreteClasskind___replace_child(val_t p0, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:689 */
+  /* parser/parser_prod.nit:703 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 689);
+    nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 703);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -3958,7 +4031,7 @@ void parser___parser_prod___AConcreteClasskind___replace_child(val_t p0, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:690 */
+    /* parser/parser_prod.nit:704 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -3973,25 +4046,25 @@ void parser___parser_prod___AConcreteClasskind___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:691 */
+      /* parser/parser_prod.nit:705 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 691);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 705);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:692 */
+      /* parser/parser_prod.nit:706 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwclass, ID_parser___parser_nodes___TKwclass)) /*cast TKwclass*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 692);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 706);
       }
-      /* ./parser//parser_prod.nit:693 */
+      /* parser/parser_prod.nit:707 */
       ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:695 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 695);
+      /* parser/parser_prod.nit:709 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 709);
     }
-    /* ./parser//parser_prod.nit:697 */
+    /* parser/parser_prod.nit:711 */
     goto label1;
   }
   label1: while(0);
@@ -4004,7 +4077,7 @@ void parser___parser_prod___AConcreteClasskind___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 701;
+  fra.me.line = 715;
   fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -4013,11 +4086,11 @@ void parser___parser_prod___AConcreteClasskind___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:703 */
+  /* parser/parser_prod.nit:717 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 703);
+    nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 717);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -4031,7 +4104,7 @@ void parser___parser_prod___AAbstractClasskind___empty_init(val_t p0, int* init_
   if (init_table[itpos25]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 707;
+  fra.me.line = 721;
   fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -4050,7 +4123,7 @@ void parser___parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t p
   if (init_table[itpos26]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 709;
+  fra.me.line = 723;
   fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___init_aabstractclasskind;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -4062,34 +4135,34 @@ void parser___parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:709 */
+  /* parser/parser_prod.nit:723 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:714 */
+  /* parser/parser_prod.nit:728 */
   CALL_parser___parser_prod___AAbstractClasskind___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:715 */
+  /* parser/parser_prod.nit:729 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 715);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 729);
   }
   ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:716 */
+  /* parser/parser_prod.nit:730 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 716);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 730);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:717 */
+  /* parser/parser_prod.nit:731 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 717);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 731);
   }
   ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:718 */
+  /* parser/parser_prod.nit:732 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 718);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 732);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -4103,7 +4176,7 @@ void parser___parser_prod___AAbstractClasskind___replace_child(val_t p0, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 721;
+  fra.me.line = 735;
   fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -4115,11 +4188,11 @@ void parser___parser_prod___AAbstractClasskind___replace_child(val_t p0, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:723 */
+  /* parser/parser_prod.nit:737 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwabstract", LOCATE_parser___parser_prod, 723);
+    nit_abort("Uninitialized attribute %s", "_n_kwabstract", LOCATE_parser___parser_prod, 737);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -4129,7 +4202,7 @@ void parser___parser_prod___AAbstractClasskind___replace_child(val_t p0, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:724 */
+    /* parser/parser_prod.nit:738 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -4144,32 +4217,32 @@ void parser___parser_prod___AAbstractClasskind___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:725 */
+      /* parser/parser_prod.nit:739 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 725);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 739);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:726 */
+      /* parser/parser_prod.nit:740 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwabstract, ID_parser___parser_nodes___TKwabstract)) /*cast TKwabstract*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 726);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 740);
       }
-      /* ./parser//parser_prod.nit:727 */
+      /* parser/parser_prod.nit:741 */
       ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:729 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 729);
+      /* parser/parser_prod.nit:743 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 743);
     }
-    /* ./parser//parser_prod.nit:731 */
+    /* parser/parser_prod.nit:745 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:733 */
+  /* parser/parser_prod.nit:747 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 733);
+    nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 747);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -4179,7 +4252,7 @@ void parser___parser_prod___AAbstractClasskind___replace_child(val_t p0, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:734 */
+    /* parser/parser_prod.nit:748 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -4194,25 +4267,25 @@ void parser___parser_prod___AAbstractClasskind___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:735 */
+      /* parser/parser_prod.nit:749 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 735);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 749);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:736 */
+      /* parser/parser_prod.nit:750 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwclass, ID_parser___parser_nodes___TKwclass)) /*cast TKwclass*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 736);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 750);
       }
-      /* ./parser//parser_prod.nit:737 */
+      /* parser/parser_prod.nit:751 */
       ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:739 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 739);
+      /* parser/parser_prod.nit:753 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 753);
     }
-    /* ./parser//parser_prod.nit:741 */
+    /* parser/parser_prod.nit:755 */
     goto label1;
   }
   label1: while(0);
@@ -4225,7 +4298,7 @@ void parser___parser_prod___AAbstractClasskind___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 745;
+  fra.me.line = 759;
   fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4235,19 +4308,19 @@ void parser___parser_prod___AAbstractClasskind___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:747 */
+  /* parser/parser_prod.nit:761 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwabstract", LOCATE_parser___parser_prod, 747);
+    nit_abort("Uninitialized attribute %s", "_n_kwabstract", LOCATE_parser___parser_prod, 761);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:748 */
+  /* parser/parser_prod.nit:762 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 748);
+    nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 762);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -4261,7 +4334,7 @@ void parser___parser_prod___AInterfaceClasskind___empty_init(val_t p0, int* init
   if (init_table[itpos27]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 752;
+  fra.me.line = 766;
   fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -4280,7 +4353,7 @@ void parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t
   if (init_table[itpos28]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 754;
+  fra.me.line = 768;
   fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4290,21 +4363,21 @@ void parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:754 */
+  /* parser/parser_prod.nit:768 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:758 */
+  /* parser/parser_prod.nit:772 */
   CALL_parser___parser_prod___AInterfaceClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:759 */
+  /* parser/parser_prod.nit:773 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 759);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 773);
   }
   ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:760 */
+  /* parser/parser_prod.nit:774 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 760);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 774);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -4318,7 +4391,7 @@ void parser___parser_prod___AInterfaceClasskind___replace_child(val_t p0, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 763;
+  fra.me.line = 777;
   fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -4330,11 +4403,11 @@ void parser___parser_prod___AInterfaceClasskind___replace_child(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:765 */
+  /* parser/parser_prod.nit:779 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwinterface", LOCATE_parser___parser_prod, 765);
+    nit_abort("Uninitialized attribute %s", "_n_kwinterface", LOCATE_parser___parser_prod, 779);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -4344,7 +4417,7 @@ void parser___parser_prod___AInterfaceClasskind___replace_child(val_t p0, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:766 */
+    /* parser/parser_prod.nit:780 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -4359,25 +4432,25 @@ void parser___parser_prod___AInterfaceClasskind___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:767 */
+      /* parser/parser_prod.nit:781 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 767);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 781);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:768 */
+      /* parser/parser_prod.nit:782 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwinterface, ID_parser___parser_nodes___TKwinterface)) /*cast TKwinterface*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 768);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 782);
       }
-      /* ./parser//parser_prod.nit:769 */
+      /* parser/parser_prod.nit:783 */
       ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:771 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 771);
+      /* parser/parser_prod.nit:785 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 785);
     }
-    /* ./parser//parser_prod.nit:773 */
+    /* parser/parser_prod.nit:787 */
     goto label1;
   }
   label1: while(0);
@@ -4390,7 +4463,7 @@ void parser___parser_prod___AInterfaceClasskind___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 777;
+  fra.me.line = 791;
   fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -4399,11 +4472,11 @@ void parser___parser_prod___AInterfaceClasskind___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:779 */
+  /* parser/parser_prod.nit:793 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwinterface", LOCATE_parser___parser_prod, 779);
+    nit_abort("Uninitialized attribute %s", "_n_kwinterface", LOCATE_parser___parser_prod, 793);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -4417,7 +4490,7 @@ void parser___parser_prod___AEnumClasskind___empty_init(val_t p0, int* init_tabl
   if (init_table[itpos29]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 783;
+  fra.me.line = 797;
   fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -4436,7 +4509,7 @@ void parser___parser_prod___AEnumClasskind___init_aenumclasskind(val_t p0, val_t
   if (init_table[itpos30]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 785;
+  fra.me.line = 799;
   fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___init_aenumclasskind;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4446,21 +4519,21 @@ void parser___parser_prod___AEnumClasskind___init_aenumclasskind(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:785 */
+  /* parser/parser_prod.nit:799 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:789 */
+  /* parser/parser_prod.nit:803 */
   CALL_parser___parser_prod___AEnumClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:790 */
+  /* parser/parser_prod.nit:804 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 790);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 804);
   }
   ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:791 */
+  /* parser/parser_prod.nit:805 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 791);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 805);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -4474,7 +4547,7 @@ void parser___parser_prod___AEnumClasskind___replace_child(val_t p0, val_t p1, v
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 794;
+  fra.me.line = 808;
   fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -4486,11 +4559,11 @@ void parser___parser_prod___AEnumClasskind___replace_child(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:796 */
+  /* parser/parser_prod.nit:810 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwenum", LOCATE_parser___parser_prod, 796);
+    nit_abort("Uninitialized attribute %s", "_n_kwenum", LOCATE_parser___parser_prod, 810);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -4500,7 +4573,7 @@ void parser___parser_prod___AEnumClasskind___replace_child(val_t p0, val_t p1, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:797 */
+    /* parser/parser_prod.nit:811 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -4515,25 +4588,25 @@ void parser___parser_prod___AEnumClasskind___replace_child(val_t p0, val_t p1, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:798 */
+      /* parser/parser_prod.nit:812 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 798);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 812);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:799 */
+      /* parser/parser_prod.nit:813 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwenum, ID_parser___parser_nodes___TKwenum)) /*cast TKwenum*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 799);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 813);
       }
-      /* ./parser//parser_prod.nit:800 */
+      /* parser/parser_prod.nit:814 */
       ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:802 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 802);
+      /* parser/parser_prod.nit:816 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 816);
     }
-    /* ./parser//parser_prod.nit:804 */
+    /* parser/parser_prod.nit:818 */
     goto label1;
   }
   label1: while(0);
@@ -4546,7 +4619,7 @@ void parser___parser_prod___AEnumClasskind___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 808;
+  fra.me.line = 822;
   fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -4555,11 +4628,11 @@ void parser___parser_prod___AEnumClasskind___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:810 */
+  /* parser/parser_prod.nit:824 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwenum", LOCATE_parser___parser_prod, 810);
+    nit_abort("Uninitialized attribute %s", "_n_kwenum", LOCATE_parser___parser_prod, 824);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -4573,7 +4646,7 @@ void parser___parser_prod___AExternClasskind___empty_init(val_t p0, int* init_ta
   if (init_table[itpos31]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 814;
+  fra.me.line = 828;
   fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -4592,7 +4665,7 @@ void parser___parser_prod___AExternClasskind___init_aexternclasskind(val_t p0, v
   if (init_table[itpos32]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 816;
+  fra.me.line = 830;
   fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___init_aexternclasskind;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4602,21 +4675,21 @@ void parser___parser_prod___AExternClasskind___init_aexternclasskind(val_t p0, v
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:816 */
+  /* parser/parser_prod.nit:830 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:820 */
+  /* parser/parser_prod.nit:834 */
   CALL_parser___parser_prod___AExternClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:821 */
+  /* parser/parser_prod.nit:835 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 821);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 835);
   }
   ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:822 */
+  /* parser/parser_prod.nit:836 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 822);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 836);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -4630,7 +4703,7 @@ void parser___parser_prod___AExternClasskind___replace_child(val_t p0, val_t p1,
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 825;
+  fra.me.line = 839;
   fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -4642,11 +4715,11 @@ void parser___parser_prod___AExternClasskind___replace_child(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:827 */
+  /* parser/parser_prod.nit:841 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwextern", LOCATE_parser___parser_prod, 827);
+    nit_abort("Uninitialized attribute %s", "_n_kwextern", LOCATE_parser___parser_prod, 841);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -4656,7 +4729,7 @@ void parser___parser_prod___AExternClasskind___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:828 */
+    /* parser/parser_prod.nit:842 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -4671,25 +4744,25 @@ void parser___parser_prod___AExternClasskind___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:829 */
+      /* parser/parser_prod.nit:843 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 829);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 843);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:830 */
+      /* parser/parser_prod.nit:844 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwextern, ID_parser___parser_nodes___TKwextern)) /*cast TKwextern*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 830);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 844);
       }
-      /* ./parser//parser_prod.nit:831 */
+      /* parser/parser_prod.nit:845 */
       ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:833 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 833);
+      /* parser/parser_prod.nit:847 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 847);
     }
-    /* ./parser//parser_prod.nit:835 */
+    /* parser/parser_prod.nit:849 */
     goto label1;
   }
   label1: while(0);
@@ -4702,7 +4775,7 @@ void parser___parser_prod___AExternClasskind___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 839;
+  fra.me.line = 853;
   fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -4711,11 +4784,11 @@ void parser___parser_prod___AExternClasskind___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:841 */
+  /* parser/parser_prod.nit:855 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwextern", LOCATE_parser___parser_prod, 841);
+    nit_abort("Uninitialized attribute %s", "_n_kwextern", LOCATE_parser___parser_prod, 855);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -4729,7 +4802,7 @@ void parser___parser_prod___AFormaldef___empty_init(val_t p0, int* init_table){
   if (init_table[itpos33]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 845;
+  fra.me.line = 859;
   fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -4749,7 +4822,7 @@ void parser___parser_prod___AFormaldef___init_aformaldef(val_t p0, val_t p1, val
   if (init_table[itpos34]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 847;
+  fra.me.line = 861;
   fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___init_aformaldef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -4761,26 +4834,26 @@ void parser___parser_prod___AFormaldef___init_aformaldef(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:847 */
+  /* parser/parser_prod.nit:861 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:852 */
+  /* parser/parser_prod.nit:866 */
   CALL_parser___parser_prod___AFormaldef___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:853 */
+  /* parser/parser_prod.nit:867 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 853);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 867);
   }
   ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:854 */
+  /* parser/parser_prod.nit:868 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 854);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 868);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:855 */
+  /* parser/parser_prod.nit:869 */
   ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:856 */
+  /* parser/parser_prod.nit:870 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -4795,10 +4868,10 @@ void parser___parser_prod___AFormaldef___init_aformaldef(val_t p0, val_t p1, val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:857 */
+    /* parser/parser_prod.nit:871 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 857);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 871);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   }
@@ -4813,7 +4886,7 @@ void parser___parser_prod___AFormaldef___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 861;
+  fra.me.line = 875;
   fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -4825,11 +4898,11 @@ void parser___parser_prod___AFormaldef___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:863 */
+  /* parser/parser_prod.nit:877 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 863);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 877);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -4839,7 +4912,7 @@ void parser___parser_prod___AFormaldef___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:864 */
+    /* parser/parser_prod.nit:878 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -4854,28 +4927,28 @@ void parser___parser_prod___AFormaldef___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:865 */
+      /* parser/parser_prod.nit:879 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 865);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 879);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:866 */
+      /* parser/parser_prod.nit:880 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 866);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 880);
       }
-      /* ./parser//parser_prod.nit:867 */
+      /* parser/parser_prod.nit:881 */
       ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:869 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 869);
+      /* parser/parser_prod.nit:883 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 883);
     }
-    /* ./parser//parser_prod.nit:871 */
+    /* parser/parser_prod.nit:885 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:873 */
+  /* parser/parser_prod.nit:887 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -4890,7 +4963,7 @@ void parser___parser_prod___AFormaldef___replace_child(val_t p0, val_t p1, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:874 */
+    /* parser/parser_prod.nit:888 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -4905,25 +4978,25 @@ void parser___parser_prod___AFormaldef___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:875 */
+      /* parser/parser_prod.nit:889 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 875);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 889);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:876 */
+      /* parser/parser_prod.nit:890 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 876);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 890);
       }
-      /* ./parser//parser_prod.nit:877 */
+      /* parser/parser_prod.nit:891 */
       ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:879 */
+      /* parser/parser_prod.nit:893 */
       ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:881 */
+    /* parser/parser_prod.nit:895 */
     goto label1;
   }
   label1: while(0);
@@ -4937,7 +5010,7 @@ void parser___parser_prod___AFormaldef___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 885;
+  fra.me.line = 899;
   fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -4948,17 +5021,17 @@ void parser___parser_prod___AFormaldef___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:885 */
+  /* parser/parser_prod.nit:899 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:887 */
+  /* parser/parser_prod.nit:901 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 887);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 901);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:888 */
+  /* parser/parser_prod.nit:902 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -4974,12 +5047,12 @@ void parser___parser_prod___AFormaldef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:889 */
+    /* parser/parser_prod.nit:903 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 889);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 903);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -4993,7 +5066,7 @@ void parser___parser_prod___ASuperclass___empty_init(val_t p0, int* init_table){
   if (init_table[itpos35]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 894;
+  fra.me.line = 908;
   fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -5013,7 +5086,7 @@ void parser___parser_prod___ASuperclass___init_asuperclass(val_t p0, val_t p1, v
   if (init_table[itpos36]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 896;
+  fra.me.line = 910;
   fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___init_asuperclass;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -5027,13 +5100,13 @@ void parser___parser_prod___ASuperclass___init_asuperclass(val_t p0, val_t p1, v
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:896 */
+  /* parser/parser_prod.nit:910 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:902 */
+  /* parser/parser_prod.nit:916 */
   CALL_parser___parser_prod___ASuperclass___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:903 */
+  /* parser/parser_prod.nit:917 */
   ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:904 */
+  /* parser/parser_prod.nit:918 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -5048,16 +5121,16 @@ void parser___parser_prod___ASuperclass___init_asuperclass(val_t p0, val_t p1, v
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:905 */
+    /* parser/parser_prod.nit:919 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 905);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 919);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
   }
-  /* ./parser//parser_prod.nit:907 */
+  /* parser/parser_prod.nit:921 */
   ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:908 */
+  /* parser/parser_prod.nit:922 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -5072,24 +5145,24 @@ void parser___parser_prod___ASuperclass___init_asuperclass(val_t p0, val_t p1, v
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:909 */
+    /* parser/parser_prod.nit:923 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 909);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 923);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   }
-  /* ./parser//parser_prod.nit:911 */
+  /* parser/parser_prod.nit:925 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 911);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 925);
   }
   ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[4]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:912 */
+  /* parser/parser_prod.nit:926 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 912);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 926);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   stack_frame_head = fra.me.prev;
@@ -5103,7 +5176,7 @@ void parser___parser_prod___ASuperclass___replace_child(val_t p0, val_t p1, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 915;
+  fra.me.line = 929;
   fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -5115,7 +5188,7 @@ void parser___parser_prod___ASuperclass___replace_child(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:917 */
+  /* parser/parser_prod.nit:931 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -5130,7 +5203,7 @@ void parser___parser_prod___ASuperclass___replace_child(val_t p0, val_t p1, val_
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:918 */
+    /* parser/parser_prod.nit:932 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -5145,28 +5218,28 @@ void parser___parser_prod___ASuperclass___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:919 */
+      /* parser/parser_prod.nit:933 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 919);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 933);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:920 */
+      /* parser/parser_prod.nit:934 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwspecial, ID_parser___parser_nodes___TKwspecial)) /*cast TKwspecial*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 920);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 934);
       }
-      /* ./parser//parser_prod.nit:921 */
+      /* parser/parser_prod.nit:935 */
       ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:923 */
+      /* parser/parser_prod.nit:937 */
       ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:925 */
+    /* parser/parser_prod.nit:939 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:927 */
+  /* parser/parser_prod.nit:941 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -5181,7 +5254,7 @@ void parser___parser_prod___ASuperclass___replace_child(val_t p0, val_t p1, val_
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:928 */
+    /* parser/parser_prod.nit:942 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -5196,32 +5269,32 @@ void parser___parser_prod___ASuperclass___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:929 */
+      /* parser/parser_prod.nit:943 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 929);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 943);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:930 */
+      /* parser/parser_prod.nit:944 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwsuper, ID_parser___parser_nodes___TKwsuper)) /*cast TKwsuper*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 930);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 944);
       }
-      /* ./parser//parser_prod.nit:931 */
+      /* parser/parser_prod.nit:945 */
       ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:933 */
+      /* parser/parser_prod.nit:947 */
       ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:935 */
+    /* parser/parser_prod.nit:949 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:937 */
+  /* parser/parser_prod.nit:951 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 937);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 951);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -5231,7 +5304,7 @@ void parser___parser_prod___ASuperclass___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:938 */
+    /* parser/parser_prod.nit:952 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -5246,25 +5319,25 @@ void parser___parser_prod___ASuperclass___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:939 */
+      /* parser/parser_prod.nit:953 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 939);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 953);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:940 */
+      /* parser/parser_prod.nit:954 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 940);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 954);
       }
-      /* ./parser//parser_prod.nit:941 */
+      /* parser/parser_prod.nit:955 */
       ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:943 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 943);
+      /* parser/parser_prod.nit:957 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 957);
     }
-    /* ./parser//parser_prod.nit:945 */
+    /* parser/parser_prod.nit:959 */
     goto label1;
   }
   label1: while(0);
@@ -5278,7 +5351,7 @@ void parser___parser_prod___ASuperclass___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 949;
+  fra.me.line = 963;
   fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -5289,9 +5362,9 @@ void parser___parser_prod___ASuperclass___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:949 */
+  /* parser/parser_prod.nit:963 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:951 */
+  /* parser/parser_prod.nit:965 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -5307,16 +5380,16 @@ void parser___parser_prod___ASuperclass___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:952 */
+    /* parser/parser_prod.nit:966 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwspecial, ID_parser___parser_nodes___TKwspecial)) /*cast TKwspecial*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 952);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 966);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:954 */
+  /* parser/parser_prod.nit:968 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -5332,20 +5405,20 @@ void parser___parser_prod___ASuperclass___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:955 */
+    /* parser/parser_prod.nit:969 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwsuper, ID_parser___parser_nodes___TKwsuper)) /*cast TKwsuper*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 955);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 969);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:957 */
+  /* parser/parser_prod.nit:971 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 957);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 971);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
@@ -5359,7 +5432,7 @@ void parser___parser_prod___AAttrPropdef___empty_init(val_t p0, int* init_table)
   if (init_table[itpos37]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 961;
+  fra.me.line = 975;
   fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -5379,7 +5452,7 @@ void parser___parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1,
   if (init_table[itpos38]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 963;
+  fra.me.line = 977;
   fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___init_aattrpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 12;
@@ -5407,13 +5480,13 @@ void parser___parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1,
   fra.me.REG[8] = p8;
   fra.me.REG[9] = p9;
   fra.me.REG[10] = p10;
-  /* ./parser//parser_prod.nit:963 */
+  /* parser/parser_prod.nit:977 */
   fra.me.REG[11] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:976 */
+  /* parser/parser_prod.nit:990 */
   CALL_parser___parser_prod___AAttrPropdef___empty_init(fra.me.REG[11])(fra.me.REG[11], init_table);
-  /* ./parser//parser_prod.nit:977 */
+  /* parser/parser_prod.nit:991 */
   ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[11]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:978 */
+  /* parser/parser_prod.nit:992 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -5428,16 +5501,16 @@ void parser___parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:979 */
+    /* parser/parser_prod.nit:993 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 979);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 993);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[11]);
   }
-  /* ./parser//parser_prod.nit:981 */
+  /* parser/parser_prod.nit:995 */
   ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[11]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:982 */
+  /* parser/parser_prod.nit:996 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -5452,16 +5525,16 @@ void parser___parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:983 */
+    /* parser/parser_prod.nit:997 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 983);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 997);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[11]);
   }
-  /* ./parser//parser_prod.nit:985 */
+  /* parser/parser_prod.nit:999 */
   ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[11]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:986 */
+  /* parser/parser_prod.nit:1000 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -5476,16 +5549,16 @@ void parser___parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:987 */
+    /* parser/parser_prod.nit:1001 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 987);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1001);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[11]);
   }
-  /* ./parser//parser_prod.nit:989 */
+  /* parser/parser_prod.nit:1003 */
   ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[11]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:990 */
+  /* parser/parser_prod.nit:1004 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -5500,42 +5573,42 @@ void parser___parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:991 */
+    /* parser/parser_prod.nit:1005 */
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 991);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1005);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[11]);
   }
-  /* ./parser//parser_prod.nit:993 */
+  /* parser/parser_prod.nit:1007 */
   REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 993);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1007);
   }
   ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[11]) = fra.me.REG[5];
-  /* ./parser//parser_prod.nit:994 */
+  /* parser/parser_prod.nit:1008 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 994);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1008);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[11]);
-  /* ./parser//parser_prod.nit:995 */
+  /* parser/parser_prod.nit:1009 */
   REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 995);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1009);
   }
   ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[11]) = fra.me.REG[6];
-  /* ./parser//parser_prod.nit:996 */
+  /* parser/parser_prod.nit:1010 */
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 996);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1010);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[11]);
-  /* ./parser//parser_prod.nit:997 */
+  /* parser/parser_prod.nit:1011 */
   ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[11]) = fra.me.REG[7];
-  /* ./parser//parser_prod.nit:998 */
+  /* parser/parser_prod.nit:1012 */
   REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -5550,16 +5623,16 @@ void parser___parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:999 */
+    /* parser/parser_prod.nit:1013 */
     REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 999);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1013);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
   }
-  /* ./parser//parser_prod.nit:1001 */
+  /* parser/parser_prod.nit:1015 */
   ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[11]) = fra.me.REG[8];
-  /* ./parser//parser_prod.nit:1002 */
+  /* parser/parser_prod.nit:1016 */
   REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -5574,16 +5647,16 @@ void parser___parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1003 */
+    /* parser/parser_prod.nit:1017 */
     REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1003);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1017);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[11]);
   }
-  /* ./parser//parser_prod.nit:1005 */
+  /* parser/parser_prod.nit:1019 */
   ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[11]) = fra.me.REG[9];
-  /* ./parser//parser_prod.nit:1006 */
+  /* parser/parser_prod.nit:1020 */
   REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -5598,16 +5671,16 @@ void parser___parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1007 */
+    /* parser/parser_prod.nit:1021 */
     REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1007);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1021);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[11]);
   }
-  /* ./parser//parser_prod.nit:1009 */
+  /* parser/parser_prod.nit:1023 */
   ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[11]) = fra.me.REG[10];
-  /* ./parser//parser_prod.nit:1010 */
+  /* parser/parser_prod.nit:1024 */
   REGB0 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -5622,10 +5695,10 @@ void parser___parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1011 */
+    /* parser/parser_prod.nit:1025 */
     REGB0 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1011);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1025);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
   }
@@ -5640,7 +5713,7 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1015;
+  fra.me.line = 1029;
   fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -5652,7 +5725,7 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:1017 */
+  /* parser/parser_prod.nit:1031 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -5667,7 +5740,7 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1018 */
+    /* parser/parser_prod.nit:1032 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -5682,28 +5755,28 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1019 */
+      /* parser/parser_prod.nit:1033 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1019);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1033);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1020 */
+      /* parser/parser_prod.nit:1034 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1020);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1034);
       }
-      /* ./parser//parser_prod.nit:1021 */
+      /* parser/parser_prod.nit:1035 */
       ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1023 */
+      /* parser/parser_prod.nit:1037 */
       ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1025 */
+    /* parser/parser_prod.nit:1039 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1027 */
+  /* parser/parser_prod.nit:1041 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -5718,7 +5791,7 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1028 */
+    /* parser/parser_prod.nit:1042 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -5733,28 +5806,28 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1029 */
+      /* parser/parser_prod.nit:1043 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1029);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1043);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1030 */
+      /* parser/parser_prod.nit:1044 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast AAble*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1030);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1044);
       }
-      /* ./parser//parser_prod.nit:1031 */
+      /* parser/parser_prod.nit:1045 */
       ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1033 */
+      /* parser/parser_prod.nit:1047 */
       ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1035 */
+    /* parser/parser_prod.nit:1049 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1037 */
+  /* parser/parser_prod.nit:1051 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -5769,7 +5842,7 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1038 */
+    /* parser/parser_prod.nit:1052 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -5784,28 +5857,28 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1039 */
+      /* parser/parser_prod.nit:1053 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1039);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1053);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1040 */
+      /* parser/parser_prod.nit:1054 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast AAble*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1040);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1054);
       }
-      /* ./parser//parser_prod.nit:1041 */
+      /* parser/parser_prod.nit:1055 */
       ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1043 */
+      /* parser/parser_prod.nit:1057 */
       ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1045 */
+    /* parser/parser_prod.nit:1059 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1047 */
+  /* parser/parser_prod.nit:1061 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -5820,7 +5893,7 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1048 */
+    /* parser/parser_prod.nit:1062 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -5835,32 +5908,32 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1049 */
+      /* parser/parser_prod.nit:1063 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1049);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1063);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1050 */
+      /* parser/parser_prod.nit:1064 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1050);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1064);
       }
-      /* ./parser//parser_prod.nit:1051 */
+      /* parser/parser_prod.nit:1065 */
       ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1053 */
+      /* parser/parser_prod.nit:1067 */
       ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1055 */
+    /* parser/parser_prod.nit:1069 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1057 */
+  /* parser/parser_prod.nit:1071 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 1057);
+    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 1071);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -5870,7 +5943,7 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1058 */
+    /* parser/parser_prod.nit:1072 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -5885,32 +5958,32 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1059 */
+      /* parser/parser_prod.nit:1073 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1059);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1073);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1060 */
+      /* parser/parser_prod.nit:1074 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1060);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1074);
       }
-      /* ./parser//parser_prod.nit:1061 */
+      /* parser/parser_prod.nit:1075 */
       ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1063 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1063);
+      /* parser/parser_prod.nit:1077 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1077);
     }
-    /* ./parser//parser_prod.nit:1065 */
+    /* parser/parser_prod.nit:1079 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1067 */
+  /* parser/parser_prod.nit:1081 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 1067);
+    nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 1081);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -5920,7 +5993,7 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1068 */
+    /* parser/parser_prod.nit:1082 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -5935,28 +6008,28 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1069 */
+      /* parser/parser_prod.nit:1083 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1069);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1083);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1070 */
+      /* parser/parser_prod.nit:1084 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast TKwvar*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1070);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1084);
       }
-      /* ./parser//parser_prod.nit:1071 */
+      /* parser/parser_prod.nit:1085 */
       ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1073 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1073);
+      /* parser/parser_prod.nit:1087 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1087);
     }
-    /* ./parser//parser_prod.nit:1075 */
+    /* parser/parser_prod.nit:1089 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1077 */
+  /* parser/parser_prod.nit:1091 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -5971,7 +6044,7 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1078 */
+    /* parser/parser_prod.nit:1092 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -5986,28 +6059,28 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1079 */
+      /* parser/parser_prod.nit:1093 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1079);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1093);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1080 */
+      /* parser/parser_prod.nit:1094 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast TAttrid*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1080);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1094);
       }
-      /* ./parser//parser_prod.nit:1081 */
+      /* parser/parser_prod.nit:1095 */
       ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1083 */
+      /* parser/parser_prod.nit:1097 */
       ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1085 */
+    /* parser/parser_prod.nit:1099 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1087 */
+  /* parser/parser_prod.nit:1101 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -6022,7 +6095,7 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1088 */
+    /* parser/parser_prod.nit:1102 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -6037,28 +6110,28 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1089 */
+      /* parser/parser_prod.nit:1103 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1089);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1103);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1090 */
+      /* parser/parser_prod.nit:1104 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1090);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1104);
       }
-      /* ./parser//parser_prod.nit:1091 */
+      /* parser/parser_prod.nit:1105 */
       ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1093 */
+      /* parser/parser_prod.nit:1107 */
       ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1095 */
+    /* parser/parser_prod.nit:1109 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1097 */
+  /* parser/parser_prod.nit:1111 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -6073,7 +6146,7 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1098 */
+    /* parser/parser_prod.nit:1112 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -6088,28 +6161,28 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1099 */
+      /* parser/parser_prod.nit:1113 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1099);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1113);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1100 */
+      /* parser/parser_prod.nit:1114 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1100);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1114);
       }
-      /* ./parser//parser_prod.nit:1101 */
+      /* parser/parser_prod.nit:1115 */
       ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1103 */
+      /* parser/parser_prod.nit:1117 */
       ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1105 */
+    /* parser/parser_prod.nit:1119 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1107 */
+  /* parser/parser_prod.nit:1121 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -6124,7 +6197,7 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1108 */
+    /* parser/parser_prod.nit:1122 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -6139,25 +6212,25 @@ void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1109 */
+      /* parser/parser_prod.nit:1123 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1109);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1123);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1110 */
+      /* parser/parser_prod.nit:1124 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1110);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1124);
       }
-      /* ./parser//parser_prod.nit:1111 */
+      /* parser/parser_prod.nit:1125 */
       ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1113 */
+      /* parser/parser_prod.nit:1127 */
       ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1115 */
+    /* parser/parser_prod.nit:1129 */
     goto label1;
   }
   label1: while(0);
@@ -6171,7 +6244,7 @@ void parser___parser_prod___AAttrPropdef___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1119;
+  fra.me.line = 1133;
   fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -6182,9 +6255,9 @@ void parser___parser_prod___AAttrPropdef___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:1119 */
+  /* parser/parser_prod.nit:1133 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:1121 */
+  /* parser/parser_prod.nit:1135 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -6200,16 +6273,16 @@ void parser___parser_prod___AAttrPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1122 */
+    /* parser/parser_prod.nit:1136 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1122);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1136);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1124 */
+  /* parser/parser_prod.nit:1138 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -6225,16 +6298,16 @@ void parser___parser_prod___AAttrPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1125 */
+    /* parser/parser_prod.nit:1139 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast AAble*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1125);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1139);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1127 */
+  /* parser/parser_prod.nit:1141 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -6250,16 +6323,16 @@ void parser___parser_prod___AAttrPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1128 */
+    /* parser/parser_prod.nit:1142 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast AAble*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1128);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1142);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1130 */
+  /* parser/parser_prod.nit:1144 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -6275,32 +6348,32 @@ void parser___parser_prod___AAttrPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1131 */
+    /* parser/parser_prod.nit:1145 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1131);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1145);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1133 */
+  /* parser/parser_prod.nit:1147 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 1133);
+    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 1147);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1134 */
+  /* parser/parser_prod.nit:1148 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 1134);
+    nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 1148);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1135 */
+  /* parser/parser_prod.nit:1149 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -6316,16 +6389,16 @@ void parser___parser_prod___AAttrPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1136 */
+    /* parser/parser_prod.nit:1150 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast TAttrid*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1136);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1150);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1138 */
+  /* parser/parser_prod.nit:1152 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -6341,16 +6414,16 @@ void parser___parser_prod___AAttrPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1139 */
+    /* parser/parser_prod.nit:1153 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1139);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1153);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1141 */
+  /* parser/parser_prod.nit:1155 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -6366,16 +6439,16 @@ void parser___parser_prod___AAttrPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1142 */
+    /* parser/parser_prod.nit:1156 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1142);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1156);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1144 */
+  /* parser/parser_prod.nit:1158 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -6391,12 +6464,12 @@ void parser___parser_prod___AAttrPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1145 */
+    /* parser/parser_prod.nit:1159 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1145);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1159);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -6410,7 +6483,7 @@ void parser___parser_prod___AMethPropdef___empty_init(val_t p0, int* init_table)
   if (init_table[itpos39]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1150;
+  fra.me.line = 1164;
   fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -6430,7 +6503,7 @@ void parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1,
   if (init_table[itpos40]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1152;
+  fra.me.line = 1166;
   fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___init_amethpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -6448,13 +6521,13 @@ void parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1,
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
-  /* ./parser//parser_prod.nit:1152 */
+  /* parser/parser_prod.nit:1166 */
   fra.me.REG[6] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:1160 */
+  /* parser/parser_prod.nit:1174 */
   CALL_parser___parser_prod___AMethPropdef___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
-  /* ./parser//parser_prod.nit:1161 */
+  /* parser/parser_prod.nit:1175 */
   ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[6]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:1162 */
+  /* parser/parser_prod.nit:1176 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -6469,16 +6542,16 @@ void parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1163 */
+    /* parser/parser_prod.nit:1177 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1163);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1177);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
   }
-  /* ./parser//parser_prod.nit:1165 */
+  /* parser/parser_prod.nit:1179 */
   ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[6]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:1166 */
+  /* parser/parser_prod.nit:1180 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -6493,50 +6566,50 @@ void parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1167 */
+    /* parser/parser_prod.nit:1181 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1167);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1181);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
   }
-  /* ./parser//parser_prod.nit:1169 */
+  /* parser/parser_prod.nit:1183 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1169);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1183);
   }
   ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[6]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:1170 */
+  /* parser/parser_prod.nit:1184 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1170);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1184);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
-  /* ./parser//parser_prod.nit:1171 */
+  /* parser/parser_prod.nit:1185 */
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1171);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1185);
   }
   ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[6]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:1172 */
+  /* parser/parser_prod.nit:1186 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1172);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1186);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-  /* ./parser//parser_prod.nit:1173 */
+  /* parser/parser_prod.nit:1187 */
   REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1173);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1187);
   }
   ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[6]) = fra.me.REG[5];
-  /* ./parser//parser_prod.nit:1174 */
+  /* parser/parser_prod.nit:1188 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1174);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1188);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
   stack_frame_head = fra.me.prev;
@@ -6550,7 +6623,7 @@ void parser___parser_prod___AMethPropdef___replace_child(val_t p0, val_t p1, val
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1177;
+  fra.me.line = 1191;
   fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -6562,7 +6635,7 @@ void parser___parser_prod___AMethPropdef___replace_child(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:1179 */
+  /* parser/parser_prod.nit:1193 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -6577,7 +6650,7 @@ void parser___parser_prod___AMethPropdef___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1180 */
+    /* parser/parser_prod.nit:1194 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -6592,28 +6665,28 @@ void parser___parser_prod___AMethPropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1181 */
+      /* parser/parser_prod.nit:1195 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1181);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1195);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1182 */
+      /* parser/parser_prod.nit:1196 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1182);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1196);
       }
-      /* ./parser//parser_prod.nit:1183 */
+      /* parser/parser_prod.nit:1197 */
       ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1185 */
+      /* parser/parser_prod.nit:1199 */
       ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1187 */
+    /* parser/parser_prod.nit:1201 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1189 */
+  /* parser/parser_prod.nit:1203 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -6628,7 +6701,7 @@ void parser___parser_prod___AMethPropdef___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1190 */
+    /* parser/parser_prod.nit:1204 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -6643,28 +6716,28 @@ void parser___parser_prod___AMethPropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1191 */
+      /* parser/parser_prod.nit:1205 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1191);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1205);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1192 */
+      /* parser/parser_prod.nit:1206 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1192);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1206);
       }
-      /* ./parser//parser_prod.nit:1193 */
+      /* parser/parser_prod.nit:1207 */
       ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1195 */
+      /* parser/parser_prod.nit:1209 */
       ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1197 */
+    /* parser/parser_prod.nit:1211 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1199 */
+  /* parser/parser_prod.nit:1213 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -6679,7 +6752,7 @@ void parser___parser_prod___AMethPropdef___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1200 */
+    /* parser/parser_prod.nit:1214 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -6694,28 +6767,28 @@ void parser___parser_prod___AMethPropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1201 */
+      /* parser/parser_prod.nit:1215 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1201);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1215);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1202 */
+      /* parser/parser_prod.nit:1216 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1202);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1216);
       }
-      /* ./parser//parser_prod.nit:1203 */
+      /* parser/parser_prod.nit:1217 */
       ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1205 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1205);
+      /* parser/parser_prod.nit:1219 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1219);
     }
-    /* ./parser//parser_prod.nit:1207 */
+    /* parser/parser_prod.nit:1221 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1209 */
+  /* parser/parser_prod.nit:1223 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -6730,7 +6803,7 @@ void parser___parser_prod___AMethPropdef___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1210 */
+    /* parser/parser_prod.nit:1224 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -6745,28 +6818,28 @@ void parser___parser_prod___AMethPropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1211 */
+      /* parser/parser_prod.nit:1225 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1211);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1225);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1212 */
+      /* parser/parser_prod.nit:1226 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1212);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1226);
       }
-      /* ./parser//parser_prod.nit:1213 */
+      /* parser/parser_prod.nit:1227 */
       ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1215 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1215);
+      /* parser/parser_prod.nit:1229 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1229);
     }
-    /* ./parser//parser_prod.nit:1217 */
+    /* parser/parser_prod.nit:1231 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1219 */
+  /* parser/parser_prod.nit:1233 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -6781,7 +6854,7 @@ void parser___parser_prod___AMethPropdef___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1220 */
+    /* parser/parser_prod.nit:1234 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -6796,25 +6869,25 @@ void parser___parser_prod___AMethPropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1221 */
+      /* parser/parser_prod.nit:1235 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1221);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1235);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1222 */
+      /* parser/parser_prod.nit:1236 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1222);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1236);
       }
-      /* ./parser//parser_prod.nit:1223 */
+      /* parser/parser_prod.nit:1237 */
       ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1225 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1225);
+      /* parser/parser_prod.nit:1239 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1239);
     }
-    /* ./parser//parser_prod.nit:1227 */
+    /* parser/parser_prod.nit:1241 */
     goto label1;
   }
   label1: while(0);
@@ -6828,7 +6901,7 @@ void parser___parser_prod___AMethPropdef___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1231;
+  fra.me.line = 1245;
   fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -6839,9 +6912,9 @@ void parser___parser_prod___AMethPropdef___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:1231 */
+  /* parser/parser_prod.nit:1245 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:1233 */
+  /* parser/parser_prod.nit:1247 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -6857,16 +6930,16 @@ void parser___parser_prod___AMethPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1234 */
+    /* parser/parser_prod.nit:1248 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1234);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1248);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1236 */
+  /* parser/parser_prod.nit:1250 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -6882,22 +6955,22 @@ void parser___parser_prod___AMethPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1237 */
+    /* parser/parser_prod.nit:1251 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1237);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1251);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1239 */
+  /* parser/parser_prod.nit:1253 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1240 */
+  /* parser/parser_prod.nit:1254 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1241 */
+  /* parser/parser_prod.nit:1255 */
   fra.me.REG[2] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -6910,7 +6983,7 @@ void parser___parser_prod___ADeferredMethPropdef___empty_init(val_t p0, int* ini
   if (init_table[itpos41]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1245;
+  fra.me.line = 1259;
   fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -6930,7 +7003,7 @@ void parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(val
   if (init_table[itpos42]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1247;
+  fra.me.line = 1261;
   fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -6950,13 +7023,13 @@ void parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(val
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
   fra.me.REG[6] = p6;
-  /* ./parser//parser_prod.nit:1247 */
+  /* parser/parser_prod.nit:1261 */
   fra.me.REG[7] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:1256 */
+  /* parser/parser_prod.nit:1270 */
   CALL_parser___parser_prod___ADeferredMethPropdef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
-  /* ./parser//parser_prod.nit:1257 */
+  /* parser/parser_prod.nit:1271 */
   ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[7]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:1258 */
+  /* parser/parser_prod.nit:1272 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -6971,16 +7044,16 @@ void parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1259 */
+    /* parser/parser_prod.nit:1273 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1259);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1273);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
   }
-  /* ./parser//parser_prod.nit:1261 */
+  /* parser/parser_prod.nit:1275 */
   ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[7]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:1262 */
+  /* parser/parser_prod.nit:1276 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -6995,63 +7068,63 @@ void parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1263 */
+    /* parser/parser_prod.nit:1277 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1263);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1277);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
   }
-  /* ./parser//parser_prod.nit:1265 */
+  /* parser/parser_prod.nit:1279 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1265);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1279);
   }
   ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[7]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:1266 */
+  /* parser/parser_prod.nit:1280 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1266);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1280);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
-  /* ./parser//parser_prod.nit:1267 */
+  /* parser/parser_prod.nit:1281 */
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1267);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1281);
   }
   ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[7]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:1268 */
+  /* parser/parser_prod.nit:1282 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1268);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1282);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
-  /* ./parser//parser_prod.nit:1269 */
+  /* parser/parser_prod.nit:1283 */
   REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1269);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1283);
   }
   ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[7]) = fra.me.REG[5];
-  /* ./parser//parser_prod.nit:1270 */
+  /* parser/parser_prod.nit:1284 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1270);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1284);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
-  /* ./parser//parser_prod.nit:1271 */
+  /* parser/parser_prod.nit:1285 */
   REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1271);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1285);
   }
   ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[7]) = fra.me.REG[6];
-  /* ./parser//parser_prod.nit:1272 */
+  /* parser/parser_prod.nit:1286 */
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1272);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1286);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
   stack_frame_head = fra.me.prev;
@@ -7065,7 +7138,7 @@ void parser___parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1275;
+  fra.me.line = 1289;
   fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -7077,7 +7150,7 @@ void parser___parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:1277 */
+  /* parser/parser_prod.nit:1291 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -7092,7 +7165,7 @@ void parser___parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1278 */
+    /* parser/parser_prod.nit:1292 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -7107,28 +7180,28 @@ void parser___parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1279 */
+      /* parser/parser_prod.nit:1293 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1279);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1293);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1280 */
+      /* parser/parser_prod.nit:1294 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1280);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1294);
       }
-      /* ./parser//parser_prod.nit:1281 */
+      /* parser/parser_prod.nit:1295 */
       ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1283 */
+      /* parser/parser_prod.nit:1297 */
       ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1285 */
+    /* parser/parser_prod.nit:1299 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1287 */
+  /* parser/parser_prod.nit:1301 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -7143,7 +7216,7 @@ void parser___parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1288 */
+    /* parser/parser_prod.nit:1302 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -7158,28 +7231,28 @@ void parser___parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1289 */
+      /* parser/parser_prod.nit:1303 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1289);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1303);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1290 */
+      /* parser/parser_prod.nit:1304 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1290);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1304);
       }
-      /* ./parser//parser_prod.nit:1291 */
+      /* parser/parser_prod.nit:1305 */
       ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1293 */
+      /* parser/parser_prod.nit:1307 */
       ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1295 */
+    /* parser/parser_prod.nit:1309 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1297 */
+  /* parser/parser_prod.nit:1311 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -7194,7 +7267,7 @@ void parser___parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1298 */
+    /* parser/parser_prod.nit:1312 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -7209,32 +7282,32 @@ void parser___parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1299 */
+      /* parser/parser_prod.nit:1313 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1299);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1313);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1300 */
+      /* parser/parser_prod.nit:1314 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1300);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1314);
       }
-      /* ./parser//parser_prod.nit:1301 */
+      /* parser/parser_prod.nit:1315 */
       ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1303 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1303);
+      /* parser/parser_prod.nit:1317 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1317);
     }
-    /* ./parser//parser_prod.nit:1305 */
+    /* parser/parser_prod.nit:1319 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1307 */
+  /* parser/parser_prod.nit:1321 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1307);
+    nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1321);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -7244,7 +7317,7 @@ void parser___parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1308 */
+    /* parser/parser_prod.nit:1322 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -7259,28 +7332,28 @@ void parser___parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1309 */
+      /* parser/parser_prod.nit:1323 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1309);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1323);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1310 */
+      /* parser/parser_prod.nit:1324 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast TKwmeth*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1310);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1324);
       }
-      /* ./parser//parser_prod.nit:1311 */
+      /* parser/parser_prod.nit:1325 */
       ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1313 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1313);
+      /* parser/parser_prod.nit:1327 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1327);
     }
-    /* ./parser//parser_prod.nit:1315 */
+    /* parser/parser_prod.nit:1329 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1317 */
+  /* parser/parser_prod.nit:1331 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -7295,7 +7368,7 @@ void parser___parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1318 */
+    /* parser/parser_prod.nit:1332 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -7310,28 +7383,28 @@ void parser___parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1319 */
+      /* parser/parser_prod.nit:1333 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1319);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1333);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1320 */
+      /* parser/parser_prod.nit:1334 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1320);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1334);
       }
-      /* ./parser//parser_prod.nit:1321 */
+      /* parser/parser_prod.nit:1335 */
       ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1323 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1323);
+      /* parser/parser_prod.nit:1337 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1337);
     }
-    /* ./parser//parser_prod.nit:1325 */
+    /* parser/parser_prod.nit:1339 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1327 */
+  /* parser/parser_prod.nit:1341 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -7346,7 +7419,7 @@ void parser___parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1328 */
+    /* parser/parser_prod.nit:1342 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -7361,25 +7434,25 @@ void parser___parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1329 */
+      /* parser/parser_prod.nit:1343 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1329);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1343);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1330 */
+      /* parser/parser_prod.nit:1344 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1330);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1344);
       }
-      /* ./parser//parser_prod.nit:1331 */
+      /* parser/parser_prod.nit:1345 */
       ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1333 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1333);
+      /* parser/parser_prod.nit:1347 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1347);
     }
-    /* ./parser//parser_prod.nit:1335 */
+    /* parser/parser_prod.nit:1349 */
     goto label1;
   }
   label1: while(0);
@@ -7393,7 +7466,7 @@ void parser___parser_prod___ADeferredMethPropdef___visit_all(val_t p0, val_t p1)
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1339;
+  fra.me.line = 1353;
   fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -7404,9 +7477,9 @@ void parser___parser_prod___ADeferredMethPropdef___visit_all(val_t p0, val_t p1)
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:1339 */
+  /* parser/parser_prod.nit:1353 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:1341 */
+  /* parser/parser_prod.nit:1355 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -7422,16 +7495,16 @@ void parser___parser_prod___ADeferredMethPropdef___visit_all(val_t p0, val_t p1)
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1342 */
+    /* parser/parser_prod.nit:1356 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1342);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1356);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1344 */
+  /* parser/parser_prod.nit:1358 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -7447,30 +7520,30 @@ void parser___parser_prod___ADeferredMethPropdef___visit_all(val_t p0, val_t p1)
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1345 */
+    /* parser/parser_prod.nit:1359 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1345);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1359);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1347 */
+  /* parser/parser_prod.nit:1361 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1348 */
+  /* parser/parser_prod.nit:1362 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1348);
+    nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1362);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1349 */
+  /* parser/parser_prod.nit:1363 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1350 */
+  /* parser/parser_prod.nit:1364 */
   fra.me.REG[2] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -7483,7 +7556,7 @@ void parser___parser_prod___AInternMethPropdef___empty_init(val_t p0, int* init_
   if (init_table[itpos43]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1354;
+  fra.me.line = 1368;
   fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -7503,7 +7576,7 @@ void parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef(val_t p
   if (init_table[itpos44]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1356;
+  fra.me.line = 1370;
   fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -7523,13 +7596,13 @@ void parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef(val_t p
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
   fra.me.REG[6] = p6;
-  /* ./parser//parser_prod.nit:1356 */
+  /* parser/parser_prod.nit:1370 */
   fra.me.REG[7] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:1365 */
+  /* parser/parser_prod.nit:1379 */
   CALL_parser___parser_prod___AInternMethPropdef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
-  /* ./parser//parser_prod.nit:1366 */
+  /* parser/parser_prod.nit:1380 */
   ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[7]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:1367 */
+  /* parser/parser_prod.nit:1381 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -7544,16 +7617,16 @@ void parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef(val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1368 */
+    /* parser/parser_prod.nit:1382 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1368);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1382);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
   }
-  /* ./parser//parser_prod.nit:1370 */
+  /* parser/parser_prod.nit:1384 */
   ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[7]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:1371 */
+  /* parser/parser_prod.nit:1385 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -7568,63 +7641,63 @@ void parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef(val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1372 */
+    /* parser/parser_prod.nit:1386 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1372);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1386);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
   }
-  /* ./parser//parser_prod.nit:1374 */
+  /* parser/parser_prod.nit:1388 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1374);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1388);
   }
   ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[7]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:1375 */
+  /* parser/parser_prod.nit:1389 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1375);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1389);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
-  /* ./parser//parser_prod.nit:1376 */
+  /* parser/parser_prod.nit:1390 */
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1376);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1390);
   }
   ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[7]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:1377 */
+  /* parser/parser_prod.nit:1391 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1377);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1391);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
-  /* ./parser//parser_prod.nit:1378 */
+  /* parser/parser_prod.nit:1392 */
   REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1378);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1392);
   }
   ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[7]) = fra.me.REG[5];
-  /* ./parser//parser_prod.nit:1379 */
+  /* parser/parser_prod.nit:1393 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1379);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1393);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
-  /* ./parser//parser_prod.nit:1380 */
+  /* parser/parser_prod.nit:1394 */
   REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1380);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1394);
   }
   ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[7]) = fra.me.REG[6];
-  /* ./parser//parser_prod.nit:1381 */
+  /* parser/parser_prod.nit:1395 */
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1381);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1395);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
   stack_frame_head = fra.me.prev;
@@ -7638,7 +7711,7 @@ void parser___parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1384;
+  fra.me.line = 1398;
   fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -7650,7 +7723,7 @@ void parser___parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:1386 */
+  /* parser/parser_prod.nit:1400 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -7665,7 +7738,7 @@ void parser___parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1387 */
+    /* parser/parser_prod.nit:1401 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -7680,28 +7753,28 @@ void parser___parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1388 */
+      /* parser/parser_prod.nit:1402 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1388);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1402);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1389 */
+      /* parser/parser_prod.nit:1403 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1389);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1403);
       }
-      /* ./parser//parser_prod.nit:1390 */
+      /* parser/parser_prod.nit:1404 */
       ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1392 */
+      /* parser/parser_prod.nit:1406 */
       ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1394 */
+    /* parser/parser_prod.nit:1408 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1396 */
+  /* parser/parser_prod.nit:1410 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -7716,7 +7789,7 @@ void parser___parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1397 */
+    /* parser/parser_prod.nit:1411 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -7731,28 +7804,28 @@ void parser___parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1398 */
+      /* parser/parser_prod.nit:1412 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1398);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1412);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1399 */
+      /* parser/parser_prod.nit:1413 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1399);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1413);
       }
-      /* ./parser//parser_prod.nit:1400 */
+      /* parser/parser_prod.nit:1414 */
       ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1402 */
+      /* parser/parser_prod.nit:1416 */
       ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1404 */
+    /* parser/parser_prod.nit:1418 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1406 */
+  /* parser/parser_prod.nit:1420 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -7767,7 +7840,7 @@ void parser___parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1407 */
+    /* parser/parser_prod.nit:1421 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -7782,32 +7855,32 @@ void parser___parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1408 */
+      /* parser/parser_prod.nit:1422 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1408);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1422);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1409 */
+      /* parser/parser_prod.nit:1423 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1409);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1423);
       }
-      /* ./parser//parser_prod.nit:1410 */
+      /* parser/parser_prod.nit:1424 */
       ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1412 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1412);
+      /* parser/parser_prod.nit:1426 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1426);
     }
-    /* ./parser//parser_prod.nit:1414 */
+    /* parser/parser_prod.nit:1428 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1416 */
+  /* parser/parser_prod.nit:1430 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1416);
+    nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1430);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -7817,7 +7890,7 @@ void parser___parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1417 */
+    /* parser/parser_prod.nit:1431 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -7832,28 +7905,28 @@ void parser___parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1418 */
+      /* parser/parser_prod.nit:1432 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1418);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1432);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1419 */
+      /* parser/parser_prod.nit:1433 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast TKwmeth*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1419);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1433);
       }
-      /* ./parser//parser_prod.nit:1420 */
+      /* parser/parser_prod.nit:1434 */
       ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1422 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1422);
+      /* parser/parser_prod.nit:1436 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1436);
     }
-    /* ./parser//parser_prod.nit:1424 */
+    /* parser/parser_prod.nit:1438 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1426 */
+  /* parser/parser_prod.nit:1440 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -7868,7 +7941,7 @@ void parser___parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1427 */
+    /* parser/parser_prod.nit:1441 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -7883,28 +7956,28 @@ void parser___parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1428 */
+      /* parser/parser_prod.nit:1442 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1428);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1442);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1429 */
+      /* parser/parser_prod.nit:1443 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1429);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1443);
       }
-      /* ./parser//parser_prod.nit:1430 */
+      /* parser/parser_prod.nit:1444 */
       ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1432 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1432);
+      /* parser/parser_prod.nit:1446 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1446);
     }
-    /* ./parser//parser_prod.nit:1434 */
+    /* parser/parser_prod.nit:1448 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1436 */
+  /* parser/parser_prod.nit:1450 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -7919,7 +7992,7 @@ void parser___parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1437 */
+    /* parser/parser_prod.nit:1451 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -7934,25 +8007,25 @@ void parser___parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1438 */
+      /* parser/parser_prod.nit:1452 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1438);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1452);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1439 */
+      /* parser/parser_prod.nit:1453 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1439);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1453);
       }
-      /* ./parser//parser_prod.nit:1440 */
+      /* parser/parser_prod.nit:1454 */
       ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1442 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1442);
+      /* parser/parser_prod.nit:1456 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1456);
     }
-    /* ./parser//parser_prod.nit:1444 */
+    /* parser/parser_prod.nit:1458 */
     goto label1;
   }
   label1: while(0);
@@ -7966,7 +8039,7 @@ void parser___parser_prod___AInternMethPropdef___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1448;
+  fra.me.line = 1462;
   fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -7977,9 +8050,9 @@ void parser___parser_prod___AInternMethPropdef___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:1448 */
+  /* parser/parser_prod.nit:1462 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:1450 */
+  /* parser/parser_prod.nit:1464 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -7995,16 +8068,16 @@ void parser___parser_prod___AInternMethPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1451 */
+    /* parser/parser_prod.nit:1465 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1451);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1465);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1453 */
+  /* parser/parser_prod.nit:1467 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -8020,30 +8093,30 @@ void parser___parser_prod___AInternMethPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1454 */
+    /* parser/parser_prod.nit:1468 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1454);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1468);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1456 */
+  /* parser/parser_prod.nit:1470 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1457 */
+  /* parser/parser_prod.nit:1471 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1457);
+    nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1471);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1458 */
+  /* parser/parser_prod.nit:1472 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1459 */
+  /* parser/parser_prod.nit:1473 */
   fra.me.REG[2] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -8056,7 +8129,7 @@ void parser___parser_prod___AExternMethPropdef___empty_init(val_t p0, int* init_
   if (init_table[itpos45]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1463;
+  fra.me.line = 1477;
   fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -8076,7 +8149,7 @@ void parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t p
   if (init_table[itpos46]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1465;
+  fra.me.line = 1479;
   fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -8100,13 +8173,13 @@ void parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t p
   fra.me.REG[6] = p6;
   fra.me.REG[7] = p7;
   fra.me.REG[8] = p8;
-  /* ./parser//parser_prod.nit:1465 */
+  /* parser/parser_prod.nit:1479 */
   fra.me.REG[9] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:1476 */
+  /* parser/parser_prod.nit:1490 */
   CALL_parser___parser_prod___AExternMethPropdef___empty_init(fra.me.REG[9])(fra.me.REG[9], init_table);
-  /* ./parser//parser_prod.nit:1477 */
+  /* parser/parser_prod.nit:1491 */
   ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[9]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:1478 */
+  /* parser/parser_prod.nit:1492 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -8121,16 +8194,16 @@ void parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1479 */
+    /* parser/parser_prod.nit:1493 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1479);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1493);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
   }
-  /* ./parser//parser_prod.nit:1481 */
+  /* parser/parser_prod.nit:1495 */
   ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[9]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:1482 */
+  /* parser/parser_prod.nit:1496 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -8145,68 +8218,68 @@ void parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1483 */
+    /* parser/parser_prod.nit:1497 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1483);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1497);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[9]);
   }
-  /* ./parser//parser_prod.nit:1485 */
+  /* parser/parser_prod.nit:1499 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1485);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1499);
   }
   ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[9]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:1486 */
+  /* parser/parser_prod.nit:1500 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1486);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1500);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]);
-  /* ./parser//parser_prod.nit:1487 */
+  /* parser/parser_prod.nit:1501 */
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1487);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1501);
   }
   ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[9]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:1488 */
+  /* parser/parser_prod.nit:1502 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1488);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1502);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
-  /* ./parser//parser_prod.nit:1489 */
+  /* parser/parser_prod.nit:1503 */
   REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1489);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1503);
   }
   ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[9]) = fra.me.REG[5];
-  /* ./parser//parser_prod.nit:1490 */
+  /* parser/parser_prod.nit:1504 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1490);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1504);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[9]);
-  /* ./parser//parser_prod.nit:1491 */
+  /* parser/parser_prod.nit:1505 */
   REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1491);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1505);
   }
   ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[9]) = fra.me.REG[6];
-  /* ./parser//parser_prod.nit:1492 */
+  /* parser/parser_prod.nit:1506 */
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1492);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1506);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
-  /* ./parser//parser_prod.nit:1493 */
+  /* parser/parser_prod.nit:1507 */
   ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[9]) = fra.me.REG[7];
-  /* ./parser//parser_prod.nit:1494 */
+  /* parser/parser_prod.nit:1508 */
   REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -8221,16 +8294,16 @@ void parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1495 */
+    /* parser/parser_prod.nit:1509 */
     REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1495);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1509);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]);
   }
-  /* ./parser//parser_prod.nit:1497 */
+  /* parser/parser_prod.nit:1511 */
   ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[9]) = fra.me.REG[8];
-  /* ./parser//parser_prod.nit:1498 */
+  /* parser/parser_prod.nit:1512 */
   REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -8245,10 +8318,10 @@ void parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1499 */
+    /* parser/parser_prod.nit:1513 */
     REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1499);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1513);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
   }
@@ -8263,7 +8336,7 @@ void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1503;
+  fra.me.line = 1517;
   fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -8275,7 +8348,7 @@ void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:1505 */
+  /* parser/parser_prod.nit:1519 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -8290,7 +8363,7 @@ void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1506 */
+    /* parser/parser_prod.nit:1520 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -8305,28 +8378,28 @@ void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1507 */
+      /* parser/parser_prod.nit:1521 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1507);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1521);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1508 */
+      /* parser/parser_prod.nit:1522 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1508);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1522);
       }
-      /* ./parser//parser_prod.nit:1509 */
+      /* parser/parser_prod.nit:1523 */
       ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1511 */
+      /* parser/parser_prod.nit:1525 */
       ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1513 */
+    /* parser/parser_prod.nit:1527 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1515 */
+  /* parser/parser_prod.nit:1529 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -8341,7 +8414,7 @@ void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1516 */
+    /* parser/parser_prod.nit:1530 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -8356,28 +8429,28 @@ void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1517 */
+      /* parser/parser_prod.nit:1531 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1517);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1531);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1518 */
+      /* parser/parser_prod.nit:1532 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1518);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1532);
       }
-      /* ./parser//parser_prod.nit:1519 */
+      /* parser/parser_prod.nit:1533 */
       ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1521 */
+      /* parser/parser_prod.nit:1535 */
       ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1523 */
+    /* parser/parser_prod.nit:1537 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1525 */
+  /* parser/parser_prod.nit:1539 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -8392,7 +8465,7 @@ void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1526 */
+    /* parser/parser_prod.nit:1540 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -8407,32 +8480,32 @@ void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1527 */
+      /* parser/parser_prod.nit:1541 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1527);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1541);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1528 */
+      /* parser/parser_prod.nit:1542 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1528);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1542);
       }
-      /* ./parser//parser_prod.nit:1529 */
+      /* parser/parser_prod.nit:1543 */
       ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1531 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1531);
+      /* parser/parser_prod.nit:1545 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1545);
     }
-    /* ./parser//parser_prod.nit:1533 */
+    /* parser/parser_prod.nit:1547 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1535 */
+  /* parser/parser_prod.nit:1549 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1535);
+    nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1549);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -8442,7 +8515,7 @@ void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1536 */
+    /* parser/parser_prod.nit:1550 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -8457,28 +8530,28 @@ void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1537 */
+      /* parser/parser_prod.nit:1551 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1537);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1551);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1538 */
+      /* parser/parser_prod.nit:1552 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast TKwmeth*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1538);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1552);
       }
-      /* ./parser//parser_prod.nit:1539 */
+      /* parser/parser_prod.nit:1553 */
       ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1541 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1541);
+      /* parser/parser_prod.nit:1555 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1555);
     }
-    /* ./parser//parser_prod.nit:1543 */
+    /* parser/parser_prod.nit:1557 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1545 */
+  /* parser/parser_prod.nit:1559 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -8493,7 +8566,7 @@ void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1546 */
+    /* parser/parser_prod.nit:1560 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -8508,28 +8581,28 @@ void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1547 */
+      /* parser/parser_prod.nit:1561 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1547);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1561);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1548 */
+      /* parser/parser_prod.nit:1562 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1548);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1562);
       }
-      /* ./parser//parser_prod.nit:1549 */
+      /* parser/parser_prod.nit:1563 */
       ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1551 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1551);
+      /* parser/parser_prod.nit:1565 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1565);
     }
-    /* ./parser//parser_prod.nit:1553 */
+    /* parser/parser_prod.nit:1567 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1555 */
+  /* parser/parser_prod.nit:1569 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -8544,7 +8617,7 @@ void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1556 */
+    /* parser/parser_prod.nit:1570 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -8559,28 +8632,28 @@ void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1557 */
+      /* parser/parser_prod.nit:1571 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1557);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1571);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1558 */
+      /* parser/parser_prod.nit:1572 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1558);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1572);
       }
-      /* ./parser//parser_prod.nit:1559 */
+      /* parser/parser_prod.nit:1573 */
       ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1561 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1561);
+      /* parser/parser_prod.nit:1575 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1575);
     }
-    /* ./parser//parser_prod.nit:1563 */
+    /* parser/parser_prod.nit:1577 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1565 */
+  /* parser/parser_prod.nit:1579 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -8595,7 +8668,7 @@ void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1566 */
+    /* parser/parser_prod.nit:1580 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -8610,28 +8683,28 @@ void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1567 */
+      /* parser/parser_prod.nit:1581 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1567);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1581);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1568 */
+      /* parser/parser_prod.nit:1582 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast TString*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1568);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1582);
       }
-      /* ./parser//parser_prod.nit:1569 */
+      /* parser/parser_prod.nit:1583 */
       ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1571 */
+      /* parser/parser_prod.nit:1585 */
       ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1573 */
+    /* parser/parser_prod.nit:1587 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1575 */
+  /* parser/parser_prod.nit:1589 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -8646,7 +8719,7 @@ void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1576 */
+    /* parser/parser_prod.nit:1590 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -8661,25 +8734,25 @@ void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1577 */
+      /* parser/parser_prod.nit:1591 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1577);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1591);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1578 */
+      /* parser/parser_prod.nit:1592 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast AExternCalls*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1578);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1592);
       }
-      /* ./parser//parser_prod.nit:1579 */
+      /* parser/parser_prod.nit:1593 */
       ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1581 */
+      /* parser/parser_prod.nit:1595 */
       ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1583 */
+    /* parser/parser_prod.nit:1597 */
     goto label1;
   }
   label1: while(0);
@@ -8693,7 +8766,7 @@ void parser___parser_prod___AExternMethPropdef___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1587;
+  fra.me.line = 1601;
   fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -8704,9 +8777,9 @@ void parser___parser_prod___AExternMethPropdef___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:1587 */
+  /* parser/parser_prod.nit:1601 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:1589 */
+  /* parser/parser_prod.nit:1603 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -8722,16 +8795,16 @@ void parser___parser_prod___AExternMethPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1590 */
+    /* parser/parser_prod.nit:1604 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1590);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1604);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1592 */
+  /* parser/parser_prod.nit:1606 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -8747,33 +8820,33 @@ void parser___parser_prod___AExternMethPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1593 */
+    /* parser/parser_prod.nit:1607 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1593);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1607);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1595 */
+  /* parser/parser_prod.nit:1609 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1596 */
+  /* parser/parser_prod.nit:1610 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1596);
+    nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1610);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1597 */
+  /* parser/parser_prod.nit:1611 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1598 */
+  /* parser/parser_prod.nit:1612 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1599 */
+  /* parser/parser_prod.nit:1613 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -8789,16 +8862,16 @@ void parser___parser_prod___AExternMethPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1600 */
+    /* parser/parser_prod.nit:1614 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast TString*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1600);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1614);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1602 */
+  /* parser/parser_prod.nit:1616 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -8814,12 +8887,12 @@ void parser___parser_prod___AExternMethPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1603 */
+    /* parser/parser_prod.nit:1617 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast AExternCalls*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1603);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1617);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -8833,7 +8906,7 @@ void parser___parser_prod___AConcreteMethPropdef___empty_init(val_t p0, int* ini
   if (init_table[itpos47]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1608;
+  fra.me.line = 1622;
   fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -8853,7 +8926,7 @@ void parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val
   if (init_table[itpos48]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1610;
+  fra.me.line = 1624;
   fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -8875,13 +8948,13 @@ void parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val
   fra.me.REG[5] = p5;
   fra.me.REG[6] = p6;
   fra.me.REG[7] = p7;
-  /* ./parser//parser_prod.nit:1610 */
+  /* parser/parser_prod.nit:1624 */
   fra.me.REG[8] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:1620 */
+  /* parser/parser_prod.nit:1634 */
   CALL_parser___parser_prod___AConcreteMethPropdef___empty_init(fra.me.REG[8])(fra.me.REG[8], init_table);
-  /* ./parser//parser_prod.nit:1621 */
+  /* parser/parser_prod.nit:1635 */
   ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[8]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:1622 */
+  /* parser/parser_prod.nit:1636 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -8896,16 +8969,16 @@ void parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1623 */
+    /* parser/parser_prod.nit:1637 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1623);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1637);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
   }
-  /* ./parser//parser_prod.nit:1625 */
+  /* parser/parser_prod.nit:1639 */
   ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[8]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:1626 */
+  /* parser/parser_prod.nit:1640 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -8920,68 +8993,68 @@ void parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1627 */
+    /* parser/parser_prod.nit:1641 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1627);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1641);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
   }
-  /* ./parser//parser_prod.nit:1629 */
+  /* parser/parser_prod.nit:1643 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1629);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1643);
   }
   ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[8]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:1630 */
+  /* parser/parser_prod.nit:1644 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1630);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1644);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
-  /* ./parser//parser_prod.nit:1631 */
+  /* parser/parser_prod.nit:1645 */
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1631);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1645);
   }
   ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[8]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:1632 */
+  /* parser/parser_prod.nit:1646 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1632);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1646);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
-  /* ./parser//parser_prod.nit:1633 */
+  /* parser/parser_prod.nit:1647 */
   REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1633);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1647);
   }
   ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[8]) = fra.me.REG[5];
-  /* ./parser//parser_prod.nit:1634 */
+  /* parser/parser_prod.nit:1648 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1634);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1648);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
-  /* ./parser//parser_prod.nit:1635 */
+  /* parser/parser_prod.nit:1649 */
   REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1635);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1649);
   }
   ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[8]) = fra.me.REG[6];
-  /* ./parser//parser_prod.nit:1636 */
+  /* parser/parser_prod.nit:1650 */
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1636);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1650);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
-  /* ./parser//parser_prod.nit:1637 */
+  /* parser/parser_prod.nit:1651 */
   ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[8]) = fra.me.REG[7];
-  /* ./parser//parser_prod.nit:1638 */
+  /* parser/parser_prod.nit:1652 */
   REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -8996,10 +9069,10 @@ void parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1639 */
+    /* parser/parser_prod.nit:1653 */
     REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1639);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1653);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
   }
@@ -9014,7 +9087,7 @@ void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1643;
+  fra.me.line = 1657;
   fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -9026,7 +9099,7 @@ void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:1645 */
+  /* parser/parser_prod.nit:1659 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -9041,7 +9114,7 @@ void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1646 */
+    /* parser/parser_prod.nit:1660 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -9056,28 +9129,28 @@ void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1647 */
+      /* parser/parser_prod.nit:1661 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1647);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1661);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1648 */
+      /* parser/parser_prod.nit:1662 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1648);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1662);
       }
-      /* ./parser//parser_prod.nit:1649 */
+      /* parser/parser_prod.nit:1663 */
       ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1651 */
+      /* parser/parser_prod.nit:1665 */
       ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1653 */
+    /* parser/parser_prod.nit:1667 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1655 */
+  /* parser/parser_prod.nit:1669 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -9092,7 +9165,7 @@ void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1656 */
+    /* parser/parser_prod.nit:1670 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -9107,28 +9180,28 @@ void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1657 */
+      /* parser/parser_prod.nit:1671 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1657);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1671);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1658 */
+      /* parser/parser_prod.nit:1672 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1658);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1672);
       }
-      /* ./parser//parser_prod.nit:1659 */
+      /* parser/parser_prod.nit:1673 */
       ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1661 */
+      /* parser/parser_prod.nit:1675 */
       ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1663 */
+    /* parser/parser_prod.nit:1677 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1665 */
+  /* parser/parser_prod.nit:1679 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -9143,7 +9216,7 @@ void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1666 */
+    /* parser/parser_prod.nit:1680 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -9158,28 +9231,28 @@ void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1667 */
+      /* parser/parser_prod.nit:1681 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1667);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1681);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1668 */
+      /* parser/parser_prod.nit:1682 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1668);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1682);
       }
-      /* ./parser//parser_prod.nit:1669 */
+      /* parser/parser_prod.nit:1683 */
       ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1671 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1671);
+      /* parser/parser_prod.nit:1685 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1685);
     }
-    /* ./parser//parser_prod.nit:1673 */
+    /* parser/parser_prod.nit:1687 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1675 */
+  /* parser/parser_prod.nit:1689 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -9194,7 +9267,7 @@ void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1676 */
+    /* parser/parser_prod.nit:1690 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -9209,28 +9282,28 @@ void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1677 */
+      /* parser/parser_prod.nit:1691 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1677);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1691);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1678 */
+      /* parser/parser_prod.nit:1692 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast TKwmeth*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1678);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1692);
       }
-      /* ./parser//parser_prod.nit:1679 */
+      /* parser/parser_prod.nit:1693 */
       ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1681 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1681);
+      /* parser/parser_prod.nit:1695 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1695);
     }
-    /* ./parser//parser_prod.nit:1683 */
+    /* parser/parser_prod.nit:1697 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1685 */
+  /* parser/parser_prod.nit:1699 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -9245,7 +9318,7 @@ void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1686 */
+    /* parser/parser_prod.nit:1700 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -9260,28 +9333,28 @@ void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1687 */
+      /* parser/parser_prod.nit:1701 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1687);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1701);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1688 */
+      /* parser/parser_prod.nit:1702 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1688);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1702);
       }
-      /* ./parser//parser_prod.nit:1689 */
+      /* parser/parser_prod.nit:1703 */
       ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1691 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1691);
+      /* parser/parser_prod.nit:1705 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1705);
     }
-    /* ./parser//parser_prod.nit:1693 */
+    /* parser/parser_prod.nit:1707 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1695 */
+  /* parser/parser_prod.nit:1709 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -9296,7 +9369,7 @@ void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1696 */
+    /* parser/parser_prod.nit:1710 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -9311,28 +9384,28 @@ void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1697 */
+      /* parser/parser_prod.nit:1711 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1697);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1711);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1698 */
+      /* parser/parser_prod.nit:1712 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1698);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1712);
       }
-      /* ./parser//parser_prod.nit:1699 */
+      /* parser/parser_prod.nit:1713 */
       ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1701 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1701);
+      /* parser/parser_prod.nit:1715 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1715);
     }
-    /* ./parser//parser_prod.nit:1703 */
+    /* parser/parser_prod.nit:1717 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1705 */
+  /* parser/parser_prod.nit:1719 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -9347,7 +9420,7 @@ void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1706 */
+    /* parser/parser_prod.nit:1720 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -9362,25 +9435,25 @@ void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1707 */
+      /* parser/parser_prod.nit:1721 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1707);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1721);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1708 */
+      /* parser/parser_prod.nit:1722 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1708);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1722);
       }
-      /* ./parser//parser_prod.nit:1709 */
+      /* parser/parser_prod.nit:1723 */
       ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1711 */
+      /* parser/parser_prod.nit:1725 */
       ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1713 */
+    /* parser/parser_prod.nit:1727 */
     goto label1;
   }
   label1: while(0);
@@ -9394,7 +9467,7 @@ void parser___parser_prod___AConcreteMethPropdef___visit_all(val_t p0, val_t p1)
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1717;
+  fra.me.line = 1731;
   fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -9405,9 +9478,9 @@ void parser___parser_prod___AConcreteMethPropdef___visit_all(val_t p0, val_t p1)
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:1717 */
+  /* parser/parser_prod.nit:1731 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:1719 */
+  /* parser/parser_prod.nit:1733 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -9423,16 +9496,16 @@ void parser___parser_prod___AConcreteMethPropdef___visit_all(val_t p0, val_t p1)
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1720 */
+    /* parser/parser_prod.nit:1734 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1720);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1734);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1722 */
+  /* parser/parser_prod.nit:1736 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -9448,28 +9521,28 @@ void parser___parser_prod___AConcreteMethPropdef___visit_all(val_t p0, val_t p1)
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1723 */
+    /* parser/parser_prod.nit:1737 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1723);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1737);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1725 */
+  /* parser/parser_prod.nit:1739 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1726 */
+  /* parser/parser_prod.nit:1740 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1727 */
+  /* parser/parser_prod.nit:1741 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1728 */
+  /* parser/parser_prod.nit:1742 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1729 */
+  /* parser/parser_prod.nit:1743 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -9485,12 +9558,12 @@ void parser___parser_prod___AConcreteMethPropdef___visit_all(val_t p0, val_t p1)
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1730 */
+    /* parser/parser_prod.nit:1744 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1730);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1744);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -9504,15 +9577,13 @@ void parser___parser_prod___AConcreteInitPropdef___empty_init(val_t p0, int* ini
   if (init_table[itpos49]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1735;
+  fra.me.line = 1749;
   fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:1735 */
-  CALL_parser___parser_nodes___AInitPropdef___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos49] = 1;
   return;
@@ -9526,7 +9597,7 @@ void parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(val
   if (init_table[itpos50]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1737;
+  fra.me.line = 1751;
   fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -9548,13 +9619,13 @@ void parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(val
   fra.me.REG[5] = p5;
   fra.me.REG[6] = p6;
   fra.me.REG[7] = p7;
-  /* ./parser//parser_prod.nit:1737 */
+  /* parser/parser_prod.nit:1751 */
   fra.me.REG[8] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:1747 */
+  /* parser/parser_prod.nit:1761 */
   CALL_parser___parser_prod___AConcreteInitPropdef___empty_init(fra.me.REG[8])(fra.me.REG[8], init_table);
-  /* ./parser//parser_prod.nit:1748 */
+  /* parser/parser_prod.nit:1762 */
   ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[8]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:1749 */
+  /* parser/parser_prod.nit:1763 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -9569,16 +9640,16 @@ void parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1750 */
+    /* parser/parser_prod.nit:1764 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1750);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1764);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
   }
-  /* ./parser//parser_prod.nit:1752 */
+  /* parser/parser_prod.nit:1766 */
   ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[8]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:1753 */
+  /* parser/parser_prod.nit:1767 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -9593,42 +9664,42 @@ void parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1754 */
+    /* parser/parser_prod.nit:1768 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1754);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1768);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
   }
-  /* ./parser//parser_prod.nit:1756 */
+  /* parser/parser_prod.nit:1770 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1756);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1770);
   }
   ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[8]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:1757 */
+  /* parser/parser_prod.nit:1771 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1757);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1771);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
-  /* ./parser//parser_prod.nit:1758 */
+  /* parser/parser_prod.nit:1772 */
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1758);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1772);
   }
   ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[8]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:1759 */
+  /* parser/parser_prod.nit:1773 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1759);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1773);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
-  /* ./parser//parser_prod.nit:1760 */
+  /* parser/parser_prod.nit:1774 */
   ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[8]) = fra.me.REG[5];
-  /* ./parser//parser_prod.nit:1761 */
+  /* parser/parser_prod.nit:1775 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -9643,29 +9714,29 @@ void parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1762 */
+    /* parser/parser_prod.nit:1776 */
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1762);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1776);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
   }
-  /* ./parser//parser_prod.nit:1764 */
+  /* parser/parser_prod.nit:1778 */
   REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1764);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1778);
   }
   ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[8]) = fra.me.REG[6];
-  /* ./parser//parser_prod.nit:1765 */
+  /* parser/parser_prod.nit:1779 */
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1765);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1779);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
-  /* ./parser//parser_prod.nit:1766 */
+  /* parser/parser_prod.nit:1780 */
   ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[8]) = fra.me.REG[7];
-  /* ./parser//parser_prod.nit:1767 */
+  /* parser/parser_prod.nit:1781 */
   REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -9680,10 +9751,10 @@ void parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1768 */
+    /* parser/parser_prod.nit:1782 */
     REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1768);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1782);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
   }
@@ -9698,7 +9769,7 @@ void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1772;
+  fra.me.line = 1786;
   fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -9710,7 +9781,7 @@ void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:1774 */
+  /* parser/parser_prod.nit:1788 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -9725,7 +9796,7 @@ void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1775 */
+    /* parser/parser_prod.nit:1789 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -9740,28 +9811,28 @@ void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1776 */
+      /* parser/parser_prod.nit:1790 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1776);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1790);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1777 */
+      /* parser/parser_prod.nit:1791 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1777);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1791);
       }
-      /* ./parser//parser_prod.nit:1778 */
+      /* parser/parser_prod.nit:1792 */
       ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1780 */
+      /* parser/parser_prod.nit:1794 */
       ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1782 */
+    /* parser/parser_prod.nit:1796 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1784 */
+  /* parser/parser_prod.nit:1798 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -9776,7 +9847,7 @@ void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1785 */
+    /* parser/parser_prod.nit:1799 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -9791,28 +9862,28 @@ void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1786 */
+      /* parser/parser_prod.nit:1800 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1786);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1800);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1787 */
+      /* parser/parser_prod.nit:1801 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1787);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1801);
       }
-      /* ./parser//parser_prod.nit:1788 */
+      /* parser/parser_prod.nit:1802 */
       ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1790 */
+      /* parser/parser_prod.nit:1804 */
       ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1792 */
+    /* parser/parser_prod.nit:1806 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1794 */
+  /* parser/parser_prod.nit:1808 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -9827,7 +9898,7 @@ void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1795 */
+    /* parser/parser_prod.nit:1809 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -9842,32 +9913,32 @@ void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1796 */
+      /* parser/parser_prod.nit:1810 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1796);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1810);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1797 */
+      /* parser/parser_prod.nit:1811 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1797);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1811);
       }
-      /* ./parser//parser_prod.nit:1798 */
+      /* parser/parser_prod.nit:1812 */
       ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1800 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1800);
+      /* parser/parser_prod.nit:1814 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1814);
     }
-    /* ./parser//parser_prod.nit:1802 */
+    /* parser/parser_prod.nit:1816 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1804 */
+  /* parser/parser_prod.nit:1818 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 1804);
+    nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 1818);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -9877,7 +9948,7 @@ void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1805 */
+    /* parser/parser_prod.nit:1819 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -9892,28 +9963,28 @@ void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1806 */
+      /* parser/parser_prod.nit:1820 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1806);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1820);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1807 */
+      /* parser/parser_prod.nit:1821 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwinit, ID_parser___parser_nodes___TKwinit)) /*cast TKwinit*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1807);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1821);
       }
-      /* ./parser//parser_prod.nit:1808 */
+      /* parser/parser_prod.nit:1822 */
       ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1810 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1810);
+      /* parser/parser_prod.nit:1824 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1824);
     }
-    /* ./parser//parser_prod.nit:1812 */
+    /* parser/parser_prod.nit:1826 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1814 */
+  /* parser/parser_prod.nit:1828 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -9928,7 +9999,7 @@ void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1815 */
+    /* parser/parser_prod.nit:1829 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -9943,28 +10014,28 @@ void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1816 */
+      /* parser/parser_prod.nit:1830 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1816);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1830);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1817 */
+      /* parser/parser_prod.nit:1831 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1817);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1831);
       }
-      /* ./parser//parser_prod.nit:1818 */
+      /* parser/parser_prod.nit:1832 */
       ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1820 */
+      /* parser/parser_prod.nit:1834 */
       ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1822 */
+    /* parser/parser_prod.nit:1836 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1824 */
+  /* parser/parser_prod.nit:1838 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -9979,7 +10050,7 @@ void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1825 */
+    /* parser/parser_prod.nit:1839 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -9994,28 +10065,28 @@ void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1826 */
+      /* parser/parser_prod.nit:1840 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1826);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1840);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1827 */
+      /* parser/parser_prod.nit:1841 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1827);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1841);
       }
-      /* ./parser//parser_prod.nit:1828 */
+      /* parser/parser_prod.nit:1842 */
       ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1830 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1830);
+      /* parser/parser_prod.nit:1844 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1844);
     }
-    /* ./parser//parser_prod.nit:1832 */
+    /* parser/parser_prod.nit:1846 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1834 */
+  /* parser/parser_prod.nit:1848 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -10030,7 +10101,7 @@ void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1835 */
+    /* parser/parser_prod.nit:1849 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -10045,25 +10116,25 @@ void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1836 */
+      /* parser/parser_prod.nit:1850 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1836);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1850);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1837 */
+      /* parser/parser_prod.nit:1851 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1837);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1851);
       }
-      /* ./parser//parser_prod.nit:1838 */
+      /* parser/parser_prod.nit:1852 */
       ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1840 */
+      /* parser/parser_prod.nit:1854 */
       ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1842 */
+    /* parser/parser_prod.nit:1856 */
     goto label1;
   }
   label1: while(0);
@@ -10077,7 +10148,7 @@ void parser___parser_prod___AConcreteInitPropdef___visit_all(val_t p0, val_t p1)
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1846;
+  fra.me.line = 1860;
   fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -10088,9 +10159,9 @@ void parser___parser_prod___AConcreteInitPropdef___visit_all(val_t p0, val_t p1)
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:1846 */
+  /* parser/parser_prod.nit:1860 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:1848 */
+  /* parser/parser_prod.nit:1862 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -10106,16 +10177,16 @@ void parser___parser_prod___AConcreteInitPropdef___visit_all(val_t p0, val_t p1)
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1849 */
+    /* parser/parser_prod.nit:1863 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1849);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1863);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1851 */
+  /* parser/parser_prod.nit:1865 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -10131,27 +10202,27 @@ void parser___parser_prod___AConcreteInitPropdef___visit_all(val_t p0, val_t p1)
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1852 */
+    /* parser/parser_prod.nit:1866 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1852);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1866);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1854 */
+  /* parser/parser_prod.nit:1868 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1855 */
+  /* parser/parser_prod.nit:1869 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 1855);
+    nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 1869);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1856 */
+  /* parser/parser_prod.nit:1870 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -10167,19 +10238,19 @@ void parser___parser_prod___AConcreteInitPropdef___visit_all(val_t p0, val_t p1)
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1857 */
+    /* parser/parser_prod.nit:1871 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1857);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1871);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1859 */
+  /* parser/parser_prod.nit:1873 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:1860 */
+  /* parser/parser_prod.nit:1874 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -10195,12 +10266,12 @@ void parser___parser_prod___AConcreteInitPropdef___visit_all(val_t p0, val_t p1)
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1861 */
+    /* parser/parser_prod.nit:1875 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1861);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1875);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -10214,15 +10285,13 @@ void parser___parser_prod___AExternInitPropdef___empty_init(val_t p0, int* init_
   if (init_table[itpos51]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1866;
+  fra.me.line = 1880;
   fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:1866 */
-  CALL_parser___parser_nodes___AInitPropdef___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos51] = 1;
   return;
@@ -10236,7 +10305,7 @@ void parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(val_t p
   if (init_table[itpos52]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1868;
+  fra.me.line = 1882;
   fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -10260,13 +10329,13 @@ void parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(val_t p
   fra.me.REG[6] = p6;
   fra.me.REG[7] = p7;
   fra.me.REG[8] = p8;
-  /* ./parser//parser_prod.nit:1868 */
+  /* parser/parser_prod.nit:1882 */
   fra.me.REG[9] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:1879 */
+  /* parser/parser_prod.nit:1893 */
   CALL_parser___parser_prod___AExternInitPropdef___empty_init(fra.me.REG[9])(fra.me.REG[9], init_table);
-  /* ./parser//parser_prod.nit:1880 */
+  /* parser/parser_prod.nit:1894 */
   ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[9]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:1881 */
+  /* parser/parser_prod.nit:1895 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -10281,16 +10350,16 @@ void parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1882 */
+    /* parser/parser_prod.nit:1896 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1882);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1896);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
   }
-  /* ./parser//parser_prod.nit:1884 */
+  /* parser/parser_prod.nit:1898 */
   ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[9]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:1885 */
+  /* parser/parser_prod.nit:1899 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -10305,42 +10374,42 @@ void parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1886 */
+    /* parser/parser_prod.nit:1900 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1886);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1900);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[9]);
   }
-  /* ./parser//parser_prod.nit:1888 */
+  /* parser/parser_prod.nit:1902 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1888);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1902);
   }
   ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[9]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:1889 */
+  /* parser/parser_prod.nit:1903 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1889);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1903);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]);
-  /* ./parser//parser_prod.nit:1890 */
+  /* parser/parser_prod.nit:1904 */
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1890);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1904);
   }
   ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[9]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:1891 */
+  /* parser/parser_prod.nit:1905 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1891);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1905);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
-  /* ./parser//parser_prod.nit:1892 */
+  /* parser/parser_prod.nit:1906 */
   ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[9]) = fra.me.REG[5];
-  /* ./parser//parser_prod.nit:1893 */
+  /* parser/parser_prod.nit:1907 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -10355,29 +10424,29 @@ void parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1894 */
+    /* parser/parser_prod.nit:1908 */
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1894);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1908);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[9]);
   }
-  /* ./parser//parser_prod.nit:1896 */
+  /* parser/parser_prod.nit:1910 */
   REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1896);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1910);
   }
   ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[9]) = fra.me.REG[6];
-  /* ./parser//parser_prod.nit:1897 */
+  /* parser/parser_prod.nit:1911 */
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1897);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1911);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
-  /* ./parser//parser_prod.nit:1898 */
+  /* parser/parser_prod.nit:1912 */
   ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[9]) = fra.me.REG[7];
-  /* ./parser//parser_prod.nit:1899 */
+  /* parser/parser_prod.nit:1913 */
   REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -10392,16 +10461,16 @@ void parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1900 */
+    /* parser/parser_prod.nit:1914 */
     REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1900);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1914);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]);
   }
-  /* ./parser//parser_prod.nit:1902 */
+  /* parser/parser_prod.nit:1916 */
   ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[9]) = fra.me.REG[8];
-  /* ./parser//parser_prod.nit:1903 */
+  /* parser/parser_prod.nit:1917 */
   REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -10416,10 +10485,10 @@ void parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1904 */
+    /* parser/parser_prod.nit:1918 */
     REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1904);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1918);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
   }
@@ -10434,7 +10503,7 @@ void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1908;
+  fra.me.line = 1922;
   fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -10446,7 +10515,7 @@ void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:1910 */
+  /* parser/parser_prod.nit:1924 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -10461,7 +10530,7 @@ void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1911 */
+    /* parser/parser_prod.nit:1925 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -10476,28 +10545,28 @@ void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1912 */
+      /* parser/parser_prod.nit:1926 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1912);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1926);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1913 */
+      /* parser/parser_prod.nit:1927 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1913);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1927);
       }
-      /* ./parser//parser_prod.nit:1914 */
+      /* parser/parser_prod.nit:1928 */
       ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1916 */
+      /* parser/parser_prod.nit:1930 */
       ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1918 */
+    /* parser/parser_prod.nit:1932 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1920 */
+  /* parser/parser_prod.nit:1934 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -10512,7 +10581,7 @@ void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1921 */
+    /* parser/parser_prod.nit:1935 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -10527,28 +10596,28 @@ void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1922 */
+      /* parser/parser_prod.nit:1936 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1922);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1936);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1923 */
+      /* parser/parser_prod.nit:1937 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1923);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1937);
       }
-      /* ./parser//parser_prod.nit:1924 */
+      /* parser/parser_prod.nit:1938 */
       ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1926 */
+      /* parser/parser_prod.nit:1940 */
       ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1928 */
+    /* parser/parser_prod.nit:1942 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1930 */
+  /* parser/parser_prod.nit:1944 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -10563,7 +10632,7 @@ void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1931 */
+    /* parser/parser_prod.nit:1945 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -10578,32 +10647,32 @@ void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1932 */
+      /* parser/parser_prod.nit:1946 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1932);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1946);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1933 */
+      /* parser/parser_prod.nit:1947 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1933);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1947);
       }
-      /* ./parser//parser_prod.nit:1934 */
+      /* parser/parser_prod.nit:1948 */
       ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1936 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1936);
+      /* parser/parser_prod.nit:1950 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1950);
     }
-    /* ./parser//parser_prod.nit:1938 */
+    /* parser/parser_prod.nit:1952 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1940 */
+  /* parser/parser_prod.nit:1954 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 1940);
+    nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 1954);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -10613,7 +10682,7 @@ void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1941 */
+    /* parser/parser_prod.nit:1955 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -10628,28 +10697,28 @@ void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1942 */
+      /* parser/parser_prod.nit:1956 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1942);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1956);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1943 */
+      /* parser/parser_prod.nit:1957 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast TKwnew*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1943);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1957);
       }
-      /* ./parser//parser_prod.nit:1944 */
+      /* parser/parser_prod.nit:1958 */
       ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1946 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1946);
+      /* parser/parser_prod.nit:1960 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1960);
     }
-    /* ./parser//parser_prod.nit:1948 */
+    /* parser/parser_prod.nit:1962 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1950 */
+  /* parser/parser_prod.nit:1964 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -10664,7 +10733,7 @@ void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1951 */
+    /* parser/parser_prod.nit:1965 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -10679,28 +10748,28 @@ void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1952 */
+      /* parser/parser_prod.nit:1966 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1952);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1966);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1953 */
+      /* parser/parser_prod.nit:1967 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1953);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1967);
       }
-      /* ./parser//parser_prod.nit:1954 */
+      /* parser/parser_prod.nit:1968 */
       ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1956 */
+      /* parser/parser_prod.nit:1970 */
       ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1958 */
+    /* parser/parser_prod.nit:1972 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1960 */
+  /* parser/parser_prod.nit:1974 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -10715,7 +10784,7 @@ void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1961 */
+    /* parser/parser_prod.nit:1975 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -10730,28 +10799,28 @@ void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1962 */
+      /* parser/parser_prod.nit:1976 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1962);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1976);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1963 */
+      /* parser/parser_prod.nit:1977 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1963);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1977);
       }
-      /* ./parser//parser_prod.nit:1964 */
+      /* parser/parser_prod.nit:1978 */
       ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1966 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1966);
+      /* parser/parser_prod.nit:1980 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1980);
     }
-    /* ./parser//parser_prod.nit:1968 */
+    /* parser/parser_prod.nit:1982 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1970 */
+  /* parser/parser_prod.nit:1984 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -10766,7 +10835,7 @@ void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1971 */
+    /* parser/parser_prod.nit:1985 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -10781,28 +10850,28 @@ void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1972 */
+      /* parser/parser_prod.nit:1986 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1972);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1986);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1973 */
+      /* parser/parser_prod.nit:1987 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast TString*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1973);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1987);
       }
-      /* ./parser//parser_prod.nit:1974 */
+      /* parser/parser_prod.nit:1988 */
       ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1976 */
+      /* parser/parser_prod.nit:1990 */
       ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1978 */
+    /* parser/parser_prod.nit:1992 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:1980 */
+  /* parser/parser_prod.nit:1994 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -10817,7 +10886,7 @@ void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1981 */
+    /* parser/parser_prod.nit:1995 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -10832,25 +10901,25 @@ void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:1982 */
+      /* parser/parser_prod.nit:1996 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1982);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1996);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:1983 */
+      /* parser/parser_prod.nit:1997 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast AExternCalls*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1983);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1997);
       }
-      /* ./parser//parser_prod.nit:1984 */
+      /* parser/parser_prod.nit:1998 */
       ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:1986 */
+      /* parser/parser_prod.nit:2000 */
       ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:1988 */
+    /* parser/parser_prod.nit:2002 */
     goto label1;
   }
   label1: while(0);
@@ -10864,7 +10933,7 @@ void parser___parser_prod___AExternInitPropdef___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 1992;
+  fra.me.line = 2006;
   fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -10875,9 +10944,9 @@ void parser___parser_prod___AExternInitPropdef___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:1992 */
+  /* parser/parser_prod.nit:2006 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:1994 */
+  /* parser/parser_prod.nit:2008 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -10893,16 +10962,16 @@ void parser___parser_prod___AExternInitPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1995 */
+    /* parser/parser_prod.nit:2009 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1995);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2009);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:1997 */
+  /* parser/parser_prod.nit:2011 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -10918,27 +10987,27 @@ void parser___parser_prod___AExternInitPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:1998 */
+    /* parser/parser_prod.nit:2012 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1998);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2012);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:2000 */
+  /* parser/parser_prod.nit:2014 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:2001 */
+  /* parser/parser_prod.nit:2015 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 2001);
+    nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 2015);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:2002 */
+  /* parser/parser_prod.nit:2016 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -10954,19 +11023,19 @@ void parser___parser_prod___AExternInitPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2003 */
+    /* parser/parser_prod.nit:2017 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2003);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2017);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:2005 */
+  /* parser/parser_prod.nit:2019 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:2006 */
+  /* parser/parser_prod.nit:2020 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -10982,16 +11051,16 @@ void parser___parser_prod___AExternInitPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2007 */
+    /* parser/parser_prod.nit:2021 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast TString*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2007);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2021);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:2009 */
+  /* parser/parser_prod.nit:2023 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -11007,12 +11076,12 @@ void parser___parser_prod___AExternInitPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2010 */
+    /* parser/parser_prod.nit:2024 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast AExternCalls*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2010);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2024);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -11026,7 +11095,7 @@ void parser___parser_prod___AMainMethPropdef___empty_init(val_t p0, int* init_ta
   if (init_table[itpos53]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2015;
+  fra.me.line = 2029;
   fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -11046,7 +11115,7 @@ void parser___parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t p0, v
   if (init_table[itpos54]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2017;
+  fra.me.line = 2031;
   fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___init_amainmethpropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -11057,11 +11126,11 @@ void parser___parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t p0, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2022 */
+  /* parser/parser_prod.nit:2036 */
   CALL_parser___parser_prod___AMainMethPropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./parser//parser_prod.nit:2023 */
+  /* parser/parser_prod.nit:2037 */
   ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2024 */
+  /* parser/parser_prod.nit:2038 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -11076,16 +11145,16 @@ void parser___parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t p0, v
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2025 */
+    /* parser/parser_prod.nit:2039 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2025);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2039);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
-  /* ./parser//parser_prod.nit:2027 */
+  /* parser/parser_prod.nit:2041 */
   ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:2028 */
+  /* parser/parser_prod.nit:2042 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -11100,10 +11169,10 @@ void parser___parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t p0, v
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2029 */
+    /* parser/parser_prod.nit:2043 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2029);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2043);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
   }
@@ -11118,7 +11187,7 @@ void parser___parser_prod___AMainMethPropdef___replace_child(val_t p0, val_t p1,
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2033;
+  fra.me.line = 2047;
   fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -11130,7 +11199,7 @@ void parser___parser_prod___AMainMethPropdef___replace_child(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2035 */
+  /* parser/parser_prod.nit:2049 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -11145,7 +11214,7 @@ void parser___parser_prod___AMainMethPropdef___replace_child(val_t p0, val_t p1,
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2036 */
+    /* parser/parser_prod.nit:2050 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -11160,28 +11229,28 @@ void parser___parser_prod___AMainMethPropdef___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2037 */
+      /* parser/parser_prod.nit:2051 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2037);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2051);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2038 */
+      /* parser/parser_prod.nit:2052 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2038);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2052);
       }
-      /* ./parser//parser_prod.nit:2039 */
+      /* parser/parser_prod.nit:2053 */
       ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2041 */
+      /* parser/parser_prod.nit:2055 */
       ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:2043 */
+    /* parser/parser_prod.nit:2057 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:2045 */
+  /* parser/parser_prod.nit:2059 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -11196,7 +11265,7 @@ void parser___parser_prod___AMainMethPropdef___replace_child(val_t p0, val_t p1,
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2046 */
+    /* parser/parser_prod.nit:2060 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -11211,25 +11280,25 @@ void parser___parser_prod___AMainMethPropdef___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2047 */
+      /* parser/parser_prod.nit:2061 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2047);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2061);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2048 */
+      /* parser/parser_prod.nit:2062 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2048);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2062);
       }
-      /* ./parser//parser_prod.nit:2049 */
+      /* parser/parser_prod.nit:2063 */
       ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2051 */
+      /* parser/parser_prod.nit:2065 */
       ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:2053 */
+    /* parser/parser_prod.nit:2067 */
     goto label1;
   }
   label1: while(0);
@@ -11243,7 +11312,7 @@ void parser___parser_prod___AMainMethPropdef___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2057;
+  fra.me.line = 2071;
   fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -11254,9 +11323,9 @@ void parser___parser_prod___AMainMethPropdef___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2057 */
+  /* parser/parser_prod.nit:2071 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2059 */
+  /* parser/parser_prod.nit:2073 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -11272,16 +11341,16 @@ void parser___parser_prod___AMainMethPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2060 */
+    /* parser/parser_prod.nit:2074 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2060);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2074);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:2062 */
+  /* parser/parser_prod.nit:2076 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -11297,12 +11366,12 @@ void parser___parser_prod___AMainMethPropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2063 */
+    /* parser/parser_prod.nit:2077 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2063);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2077);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -11316,7 +11385,7 @@ void parser___parser_prod___ATypePropdef___empty_init(val_t p0, int* init_table)
   if (init_table[itpos55]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2068;
+  fra.me.line = 2082;
   fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -11336,7 +11405,7 @@ void parser___parser_prod___ATypePropdef___init_atypepropdef(val_t p0, val_t p1,
   if (init_table[itpos56]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2070;
+  fra.me.line = 2084;
   fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___init_atypepropdef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -11356,13 +11425,13 @@ void parser___parser_prod___ATypePropdef___init_atypepropdef(val_t p0, val_t p1,
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
   fra.me.REG[6] = p6;
-  /* ./parser//parser_prod.nit:2070 */
+  /* parser/parser_prod.nit:2084 */
   fra.me.REG[7] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2079 */
+  /* parser/parser_prod.nit:2093 */
   CALL_parser___parser_prod___ATypePropdef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
-  /* ./parser//parser_prod.nit:2080 */
+  /* parser/parser_prod.nit:2094 */
   ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[7]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2081 */
+  /* parser/parser_prod.nit:2095 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -11377,16 +11446,16 @@ void parser___parser_prod___ATypePropdef___init_atypepropdef(val_t p0, val_t p1,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2082 */
+    /* parser/parser_prod.nit:2096 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2082);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2096);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
   }
-  /* ./parser//parser_prod.nit:2084 */
+  /* parser/parser_prod.nit:2098 */
   ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[7]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:2085 */
+  /* parser/parser_prod.nit:2099 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -11401,63 +11470,63 @@ void parser___parser_prod___ATypePropdef___init_atypepropdef(val_t p0, val_t p1,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2086 */
+    /* parser/parser_prod.nit:2100 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2086);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2100);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
   }
-  /* ./parser//parser_prod.nit:2088 */
+  /* parser/parser_prod.nit:2102 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2088);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2102);
   }
   ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[7]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:2089 */
+  /* parser/parser_prod.nit:2103 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2089);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2103);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
-  /* ./parser//parser_prod.nit:2090 */
+  /* parser/parser_prod.nit:2104 */
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2090);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2104);
   }
   ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[7]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:2091 */
+  /* parser/parser_prod.nit:2105 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2091);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2105);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
-  /* ./parser//parser_prod.nit:2092 */
+  /* parser/parser_prod.nit:2106 */
   REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2092);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2106);
   }
   ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[7]) = fra.me.REG[5];
-  /* ./parser//parser_prod.nit:2093 */
+  /* parser/parser_prod.nit:2107 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2093);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2107);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
-  /* ./parser//parser_prod.nit:2094 */
+  /* parser/parser_prod.nit:2108 */
   REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2094);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2108);
   }
   ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[7]) = fra.me.REG[6];
-  /* ./parser//parser_prod.nit:2095 */
+  /* parser/parser_prod.nit:2109 */
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2095);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2109);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
   stack_frame_head = fra.me.prev;
@@ -11471,7 +11540,7 @@ void parser___parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2098;
+  fra.me.line = 2112;
   fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -11483,7 +11552,7 @@ void parser___parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2100 */
+  /* parser/parser_prod.nit:2114 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -11498,7 +11567,7 @@ void parser___parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2101 */
+    /* parser/parser_prod.nit:2115 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -11513,28 +11582,28 @@ void parser___parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2102 */
+      /* parser/parser_prod.nit:2116 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2102);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2116);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2103 */
+      /* parser/parser_prod.nit:2117 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2103);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2117);
       }
-      /* ./parser//parser_prod.nit:2104 */
+      /* parser/parser_prod.nit:2118 */
       ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2106 */
+      /* parser/parser_prod.nit:2120 */
       ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:2108 */
+    /* parser/parser_prod.nit:2122 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:2110 */
+  /* parser/parser_prod.nit:2124 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -11549,7 +11618,7 @@ void parser___parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2111 */
+    /* parser/parser_prod.nit:2125 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -11564,32 +11633,32 @@ void parser___parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2112 */
+      /* parser/parser_prod.nit:2126 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2112);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2126);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2113 */
+      /* parser/parser_prod.nit:2127 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2113);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2127);
       }
-      /* ./parser//parser_prod.nit:2114 */
+      /* parser/parser_prod.nit:2128 */
       ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2116 */
+      /* parser/parser_prod.nit:2130 */
       ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:2118 */
+    /* parser/parser_prod.nit:2132 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:2120 */
+  /* parser/parser_prod.nit:2134 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 2120);
+    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 2134);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -11599,7 +11668,7 @@ void parser___parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2121 */
+    /* parser/parser_prod.nit:2135 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -11614,32 +11683,32 @@ void parser___parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2122 */
+      /* parser/parser_prod.nit:2136 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2122);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2136);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2123 */
+      /* parser/parser_prod.nit:2137 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2123);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2137);
       }
-      /* ./parser//parser_prod.nit:2124 */
+      /* parser/parser_prod.nit:2138 */
       ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2126 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2126);
+      /* parser/parser_prod.nit:2140 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2140);
     }
-    /* ./parser//parser_prod.nit:2128 */
+    /* parser/parser_prod.nit:2142 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:2130 */
+  /* parser/parser_prod.nit:2144 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 2130);
+    nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 2144);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -11649,7 +11718,7 @@ void parser___parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2131 */
+    /* parser/parser_prod.nit:2145 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -11664,32 +11733,32 @@ void parser___parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2132 */
+      /* parser/parser_prod.nit:2146 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2132);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2146);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2133 */
+      /* parser/parser_prod.nit:2147 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwtype, ID_parser___parser_nodes___TKwtype)) /*cast TKwtype*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2133);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2147);
       }
-      /* ./parser//parser_prod.nit:2134 */
+      /* parser/parser_prod.nit:2148 */
       ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2136 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2136);
+      /* parser/parser_prod.nit:2150 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2150);
     }
-    /* ./parser//parser_prod.nit:2138 */
+    /* parser/parser_prod.nit:2152 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:2140 */
+  /* parser/parser_prod.nit:2154 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2140);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2154);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -11699,7 +11768,7 @@ void parser___parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2141 */
+    /* parser/parser_prod.nit:2155 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -11714,32 +11783,32 @@ void parser___parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2142 */
+      /* parser/parser_prod.nit:2156 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2142);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2156);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2143 */
+      /* parser/parser_prod.nit:2157 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2143);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2157);
       }
-      /* ./parser//parser_prod.nit:2144 */
+      /* parser/parser_prod.nit:2158 */
       ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2146 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2146);
+      /* parser/parser_prod.nit:2160 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2160);
     }
-    /* ./parser//parser_prod.nit:2148 */
+    /* parser/parser_prod.nit:2162 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:2150 */
+  /* parser/parser_prod.nit:2164 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 2150);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 2164);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -11749,7 +11818,7 @@ void parser___parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2151 */
+    /* parser/parser_prod.nit:2165 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -11764,25 +11833,25 @@ void parser___parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2152 */
+      /* parser/parser_prod.nit:2166 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2152);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2166);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2153 */
+      /* parser/parser_prod.nit:2167 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2153);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2167);
       }
-      /* ./parser//parser_prod.nit:2154 */
+      /* parser/parser_prod.nit:2168 */
       ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2156 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2156);
+      /* parser/parser_prod.nit:2170 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2170);
     }
-    /* ./parser//parser_prod.nit:2158 */
+    /* parser/parser_prod.nit:2172 */
     goto label1;
   }
   label1: while(0);
@@ -11796,7 +11865,7 @@ void parser___parser_prod___ATypePropdef___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2162;
+  fra.me.line = 2176;
   fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -11807,9 +11876,9 @@ void parser___parser_prod___ATypePropdef___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2162 */
+  /* parser/parser_prod.nit:2176 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2164 */
+  /* parser/parser_prod.nit:2178 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -11825,16 +11894,16 @@ void parser___parser_prod___ATypePropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2165 */
+    /* parser/parser_prod.nit:2179 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2165);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2179);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:2167 */
+  /* parser/parser_prod.nit:2181 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -11850,44 +11919,44 @@ void parser___parser_prod___ATypePropdef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2168 */
+    /* parser/parser_prod.nit:2182 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2168);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2182);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:2170 */
+  /* parser/parser_prod.nit:2184 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 2170);
+    nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 2184);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:2171 */
+  /* parser/parser_prod.nit:2185 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 2171);
+    nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 2185);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:2172 */
+  /* parser/parser_prod.nit:2186 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2172);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2186);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:2173 */
+  /* parser/parser_prod.nit:2187 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 2173);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 2187);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
@@ -11901,7 +11970,7 @@ void parser___parser_prod___AReadAble___empty_init(val_t p0, int* init_table){
   if (init_table[itpos57]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2177;
+  fra.me.line = 2191;
   fra.me.meth = LOCATE_parser___parser_prod___AReadAble___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -11921,7 +11990,7 @@ void parser___parser_prod___AReadAble___init_areadable(val_t p0, val_t p1, val_t
   if (init_table[itpos58]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2179;
+  fra.me.line = 2193;
   fra.me.meth = LOCATE_parser___parser_prod___AReadAble___init_areadable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -11933,13 +12002,13 @@ void parser___parser_prod___AReadAble___init_areadable(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2179 */
+  /* parser/parser_prod.nit:2193 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2184 */
+  /* parser/parser_prod.nit:2198 */
   CALL_parser___parser_prod___AReadAble___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:2185 */
+  /* parser/parser_prod.nit:2199 */
   ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2186 */
+  /* parser/parser_prod.nit:2200 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -11954,24 +12023,24 @@ void parser___parser_prod___AReadAble___init_areadable(val_t p0, val_t p1, val_t
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2187 */
+    /* parser/parser_prod.nit:2201 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2187);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2201);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:2189 */
+  /* parser/parser_prod.nit:2203 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2189);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2203);
   }
   ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:2190 */
+  /* parser/parser_prod.nit:2204 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2190);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2204);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -11985,7 +12054,7 @@ void parser___parser_prod___AReadAble___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2193;
+  fra.me.line = 2207;
   fra.me.meth = LOCATE_parser___parser_prod___AReadAble___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -11997,7 +12066,7 @@ void parser___parser_prod___AReadAble___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2195 */
+  /* parser/parser_prod.nit:2209 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -12012,7 +12081,7 @@ void parser___parser_prod___AReadAble___replace_child(val_t p0, val_t p1, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2196 */
+    /* parser/parser_prod.nit:2210 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -12027,32 +12096,32 @@ void parser___parser_prod___AReadAble___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2197 */
+      /* parser/parser_prod.nit:2211 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2197);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2211);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2198 */
+      /* parser/parser_prod.nit:2212 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2198);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2212);
       }
-      /* ./parser//parser_prod.nit:2199 */
+      /* parser/parser_prod.nit:2213 */
       ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2201 */
+      /* parser/parser_prod.nit:2215 */
       ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:2203 */
+    /* parser/parser_prod.nit:2217 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:2205 */
+  /* parser/parser_prod.nit:2219 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser___parser_prod, 2205);
+    nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser___parser_prod, 2219);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -12062,7 +12131,7 @@ void parser___parser_prod___AReadAble___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2206 */
+    /* parser/parser_prod.nit:2220 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -12077,25 +12146,25 @@ void parser___parser_prod___AReadAble___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2207 */
+      /* parser/parser_prod.nit:2221 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2207);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2221);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2208 */
+      /* parser/parser_prod.nit:2222 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwreadable, ID_parser___parser_nodes___TKwreadable)) /*cast TKwreadable*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2208);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2222);
       }
-      /* ./parser//parser_prod.nit:2209 */
+      /* parser/parser_prod.nit:2223 */
       ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2211 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2211);
+      /* parser/parser_prod.nit:2225 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2225);
     }
-    /* ./parser//parser_prod.nit:2213 */
+    /* parser/parser_prod.nit:2227 */
     goto label1;
   }
   label1: while(0);
@@ -12109,7 +12178,7 @@ void parser___parser_prod___AReadAble___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2217;
+  fra.me.line = 2231;
   fra.me.meth = LOCATE_parser___parser_prod___AReadAble___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -12120,9 +12189,9 @@ void parser___parser_prod___AReadAble___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2217 */
+  /* parser/parser_prod.nit:2231 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2219 */
+  /* parser/parser_prod.nit:2233 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -12138,20 +12207,20 @@ void parser___parser_prod___AReadAble___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2220 */
+    /* parser/parser_prod.nit:2234 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2220);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2234);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:2222 */
+  /* parser/parser_prod.nit:2236 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser___parser_prod, 2222);
+    nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser___parser_prod, 2236);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
@@ -12165,7 +12234,7 @@ void parser___parser_prod___AWriteAble___empty_init(val_t p0, int* init_table){
   if (init_table[itpos59]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2226;
+  fra.me.line = 2240;
   fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -12185,7 +12254,7 @@ void parser___parser_prod___AWriteAble___init_awriteable(val_t p0, val_t p1, val
   if (init_table[itpos60]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2228;
+  fra.me.line = 2242;
   fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___init_awriteable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -12199,13 +12268,13 @@ void parser___parser_prod___AWriteAble___init_awriteable(val_t p0, val_t p1, val
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:2228 */
+  /* parser/parser_prod.nit:2242 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2234 */
+  /* parser/parser_prod.nit:2248 */
   CALL_parser___parser_prod___AWriteAble___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:2235 */
+  /* parser/parser_prod.nit:2249 */
   ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2236 */
+  /* parser/parser_prod.nit:2250 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -12220,16 +12289,16 @@ void parser___parser_prod___AWriteAble___init_awriteable(val_t p0, val_t p1, val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2237 */
+    /* parser/parser_prod.nit:2251 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2237);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2251);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
   }
-  /* ./parser//parser_prod.nit:2239 */
+  /* parser/parser_prod.nit:2253 */
   ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:2240 */
+  /* parser/parser_prod.nit:2254 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -12244,24 +12313,24 @@ void parser___parser_prod___AWriteAble___init_awriteable(val_t p0, val_t p1, val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2241 */
+    /* parser/parser_prod.nit:2255 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2241);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2255);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   }
-  /* ./parser//parser_prod.nit:2243 */
+  /* parser/parser_prod.nit:2257 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2243);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2257);
   }
   ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[4]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:2244 */
+  /* parser/parser_prod.nit:2258 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2244);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2258);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   stack_frame_head = fra.me.prev;
@@ -12275,7 +12344,7 @@ void parser___parser_prod___AWriteAble___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2247;
+  fra.me.line = 2261;
   fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -12287,7 +12356,7 @@ void parser___parser_prod___AWriteAble___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2249 */
+  /* parser/parser_prod.nit:2263 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -12302,7 +12371,7 @@ void parser___parser_prod___AWriteAble___replace_child(val_t p0, val_t p1, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2250 */
+    /* parser/parser_prod.nit:2264 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -12317,28 +12386,28 @@ void parser___parser_prod___AWriteAble___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2251 */
+      /* parser/parser_prod.nit:2265 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2251);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2265);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2252 */
+      /* parser/parser_prod.nit:2266 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2252);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2266);
       }
-      /* ./parser//parser_prod.nit:2253 */
+      /* parser/parser_prod.nit:2267 */
       ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2255 */
+      /* parser/parser_prod.nit:2269 */
       ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:2257 */
+    /* parser/parser_prod.nit:2271 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:2259 */
+  /* parser/parser_prod.nit:2273 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -12353,7 +12422,7 @@ void parser___parser_prod___AWriteAble___replace_child(val_t p0, val_t p1, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2260 */
+    /* parser/parser_prod.nit:2274 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -12368,32 +12437,32 @@ void parser___parser_prod___AWriteAble___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2261 */
+      /* parser/parser_prod.nit:2275 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2261);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2275);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2262 */
+      /* parser/parser_prod.nit:2276 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2262);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2276);
       }
-      /* ./parser//parser_prod.nit:2263 */
+      /* parser/parser_prod.nit:2277 */
       ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2265 */
+      /* parser/parser_prod.nit:2279 */
       ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:2267 */
+    /* parser/parser_prod.nit:2281 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:2269 */
+  /* parser/parser_prod.nit:2283 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser___parser_prod, 2269);
+    nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser___parser_prod, 2283);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -12403,7 +12472,7 @@ void parser___parser_prod___AWriteAble___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2270 */
+    /* parser/parser_prod.nit:2284 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -12418,25 +12487,25 @@ void parser___parser_prod___AWriteAble___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2271 */
+      /* parser/parser_prod.nit:2285 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2271);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2285);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2272 */
+      /* parser/parser_prod.nit:2286 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwwritable, ID_parser___parser_nodes___TKwwritable)) /*cast TKwwritable*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2272);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2286);
       }
-      /* ./parser//parser_prod.nit:2273 */
+      /* parser/parser_prod.nit:2287 */
       ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2275 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2275);
+      /* parser/parser_prod.nit:2289 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2289);
     }
-    /* ./parser//parser_prod.nit:2277 */
+    /* parser/parser_prod.nit:2291 */
     goto label1;
   }
   label1: while(0);
@@ -12450,7 +12519,7 @@ void parser___parser_prod___AWriteAble___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2281;
+  fra.me.line = 2295;
   fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -12461,9 +12530,9 @@ void parser___parser_prod___AWriteAble___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2281 */
+  /* parser/parser_prod.nit:2295 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2283 */
+  /* parser/parser_prod.nit:2297 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -12479,16 +12548,16 @@ void parser___parser_prod___AWriteAble___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2284 */
+    /* parser/parser_prod.nit:2298 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2284);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2298);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:2286 */
+  /* parser/parser_prod.nit:2300 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -12504,20 +12573,20 @@ void parser___parser_prod___AWriteAble___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2287 */
+    /* parser/parser_prod.nit:2301 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2287);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2301);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:2289 */
+  /* parser/parser_prod.nit:2303 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser___parser_prod, 2289);
+    nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser___parser_prod, 2303);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
@@ -12531,7 +12600,7 @@ void parser___parser_prod___AIdMethid___empty_init(val_t p0, int* init_table){
   if (init_table[itpos61]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2293;
+  fra.me.line = 2307;
   fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -12550,7 +12619,7 @@ void parser___parser_prod___AIdMethid___init_aidmethid(val_t p0, val_t p1, int*
   if (init_table[itpos62]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2295;
+  fra.me.line = 2309;
   fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___init_aidmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -12560,21 +12629,21 @@ void parser___parser_prod___AIdMethid___init_aidmethid(val_t p0, val_t p1, int*
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2295 */
+  /* parser/parser_prod.nit:2309 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2299 */
+  /* parser/parser_prod.nit:2313 */
   CALL_parser___parser_prod___AIdMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:2300 */
+  /* parser/parser_prod.nit:2314 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2300);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2314);
   }
   ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2301 */
+  /* parser/parser_prod.nit:2315 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2301);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2315);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -12588,7 +12657,7 @@ void parser___parser_prod___AIdMethid___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2304;
+  fra.me.line = 2318;
   fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -12600,11 +12669,11 @@ void parser___parser_prod___AIdMethid___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2306 */
+  /* parser/parser_prod.nit:2320 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2306);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2320);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -12614,7 +12683,7 @@ void parser___parser_prod___AIdMethid___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2307 */
+    /* parser/parser_prod.nit:2321 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -12629,25 +12698,25 @@ void parser___parser_prod___AIdMethid___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2308 */
+      /* parser/parser_prod.nit:2322 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2308);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2322);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2309 */
+      /* parser/parser_prod.nit:2323 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2309);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2323);
       }
-      /* ./parser//parser_prod.nit:2310 */
+      /* parser/parser_prod.nit:2324 */
       ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2312 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2312);
+      /* parser/parser_prod.nit:2326 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2326);
     }
-    /* ./parser//parser_prod.nit:2314 */
+    /* parser/parser_prod.nit:2328 */
     goto label1;
   }
   label1: while(0);
@@ -12660,7 +12729,7 @@ void parser___parser_prod___AIdMethid___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2318;
+  fra.me.line = 2332;
   fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -12669,11 +12738,11 @@ void parser___parser_prod___AIdMethid___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2320 */
+  /* parser/parser_prod.nit:2334 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2320);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2334);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -12687,7 +12756,7 @@ void parser___parser_prod___APlusMethid___empty_init(val_t p0, int* init_table){
   if (init_table[itpos63]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2324;
+  fra.me.line = 2338;
   fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -12706,7 +12775,7 @@ void parser___parser_prod___APlusMethid___init_aplusmethid(val_t p0, val_t p1, i
   if (init_table[itpos64]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2326;
+  fra.me.line = 2340;
   fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___init_aplusmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -12716,21 +12785,21 @@ void parser___parser_prod___APlusMethid___init_aplusmethid(val_t p0, val_t p1, i
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2326 */
+  /* parser/parser_prod.nit:2340 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2330 */
+  /* parser/parser_prod.nit:2344 */
   CALL_parser___parser_prod___APlusMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:2331 */
+  /* parser/parser_prod.nit:2345 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2331);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2345);
   }
   ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2332 */
+  /* parser/parser_prod.nit:2346 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2332);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2346);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -12744,7 +12813,7 @@ void parser___parser_prod___APlusMethid___replace_child(val_t p0, val_t p1, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2335;
+  fra.me.line = 2349;
   fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -12756,11 +12825,11 @@ void parser___parser_prod___APlusMethid___replace_child(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2337 */
+  /* parser/parser_prod.nit:2351 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser___parser_prod, 2337);
+    nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser___parser_prod, 2351);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -12770,7 +12839,7 @@ void parser___parser_prod___APlusMethid___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2338 */
+    /* parser/parser_prod.nit:2352 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -12785,25 +12854,25 @@ void parser___parser_prod___APlusMethid___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2339 */
+      /* parser/parser_prod.nit:2353 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2339);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2353);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2340 */
+      /* parser/parser_prod.nit:2354 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TPlus, ID_parser___parser_nodes___TPlus)) /*cast TPlus*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2340);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2354);
       }
-      /* ./parser//parser_prod.nit:2341 */
+      /* parser/parser_prod.nit:2355 */
       ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2343 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2343);
+      /* parser/parser_prod.nit:2357 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2357);
     }
-    /* ./parser//parser_prod.nit:2345 */
+    /* parser/parser_prod.nit:2359 */
     goto label1;
   }
   label1: while(0);
@@ -12816,7 +12885,7 @@ void parser___parser_prod___APlusMethid___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2349;
+  fra.me.line = 2363;
   fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -12825,11 +12894,11 @@ void parser___parser_prod___APlusMethid___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2351 */
+  /* parser/parser_prod.nit:2365 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser___parser_prod, 2351);
+    nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser___parser_prod, 2365);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -12843,7 +12912,7 @@ void parser___parser_prod___AMinusMethid___empty_init(val_t p0, int* init_table)
   if (init_table[itpos65]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2355;
+  fra.me.line = 2369;
   fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -12862,7 +12931,7 @@ void parser___parser_prod___AMinusMethid___init_aminusmethid(val_t p0, val_t p1,
   if (init_table[itpos66]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2357;
+  fra.me.line = 2371;
   fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___init_aminusmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -12872,21 +12941,21 @@ void parser___parser_prod___AMinusMethid___init_aminusmethid(val_t p0, val_t p1,
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2357 */
+  /* parser/parser_prod.nit:2371 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2361 */
+  /* parser/parser_prod.nit:2375 */
   CALL_parser___parser_prod___AMinusMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:2362 */
+  /* parser/parser_prod.nit:2376 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2362);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2376);
   }
   ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2363 */
+  /* parser/parser_prod.nit:2377 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2363);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2377);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -12900,7 +12969,7 @@ void parser___parser_prod___AMinusMethid___replace_child(val_t p0, val_t p1, val
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2366;
+  fra.me.line = 2380;
   fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -12912,11 +12981,11 @@ void parser___parser_prod___AMinusMethid___replace_child(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2368 */
+  /* parser/parser_prod.nit:2382 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 2368);
+    nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 2382);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -12926,7 +12995,7 @@ void parser___parser_prod___AMinusMethid___replace_child(val_t p0, val_t p1, val
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2369 */
+    /* parser/parser_prod.nit:2383 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -12941,25 +13010,25 @@ void parser___parser_prod___AMinusMethid___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2370 */
+      /* parser/parser_prod.nit:2384 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2370);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2384);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2371 */
+      /* parser/parser_prod.nit:2385 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TMinus, ID_parser___parser_nodes___TMinus)) /*cast TMinus*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2371);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2385);
       }
-      /* ./parser//parser_prod.nit:2372 */
+      /* parser/parser_prod.nit:2386 */
       ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2374 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2374);
+      /* parser/parser_prod.nit:2388 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2388);
     }
-    /* ./parser//parser_prod.nit:2376 */
+    /* parser/parser_prod.nit:2390 */
     goto label1;
   }
   label1: while(0);
@@ -12972,7 +13041,7 @@ void parser___parser_prod___AMinusMethid___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2380;
+  fra.me.line = 2394;
   fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -12981,11 +13050,11 @@ void parser___parser_prod___AMinusMethid___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2382 */
+  /* parser/parser_prod.nit:2396 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 2382);
+    nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 2396);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -12999,7 +13068,7 @@ void parser___parser_prod___AStarMethid___empty_init(val_t p0, int* init_table){
   if (init_table[itpos67]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2386;
+  fra.me.line = 2400;
   fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -13018,7 +13087,7 @@ void parser___parser_prod___AStarMethid___init_astarmethid(val_t p0, val_t p1, i
   if (init_table[itpos68]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2388;
+  fra.me.line = 2402;
   fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___init_astarmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -13028,21 +13097,21 @@ void parser___parser_prod___AStarMethid___init_astarmethid(val_t p0, val_t p1, i
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2388 */
+  /* parser/parser_prod.nit:2402 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2392 */
+  /* parser/parser_prod.nit:2406 */
   CALL_parser___parser_prod___AStarMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:2393 */
+  /* parser/parser_prod.nit:2407 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2393);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2407);
   }
   ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2394 */
+  /* parser/parser_prod.nit:2408 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2394);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2408);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -13056,7 +13125,7 @@ void parser___parser_prod___AStarMethid___replace_child(val_t p0, val_t p1, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2397;
+  fra.me.line = 2411;
   fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -13068,11 +13137,11 @@ void parser___parser_prod___AStarMethid___replace_child(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2399 */
+  /* parser/parser_prod.nit:2413 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser___parser_prod, 2399);
+    nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser___parser_prod, 2413);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -13082,7 +13151,7 @@ void parser___parser_prod___AStarMethid___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2400 */
+    /* parser/parser_prod.nit:2414 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -13097,25 +13166,25 @@ void parser___parser_prod___AStarMethid___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2401 */
+      /* parser/parser_prod.nit:2415 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2401);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2415);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2402 */
+      /* parser/parser_prod.nit:2416 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TStar, ID_parser___parser_nodes___TStar)) /*cast TStar*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2402);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2416);
       }
-      /* ./parser//parser_prod.nit:2403 */
+      /* parser/parser_prod.nit:2417 */
       ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2405 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2405);
+      /* parser/parser_prod.nit:2419 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2419);
     }
-    /* ./parser//parser_prod.nit:2407 */
+    /* parser/parser_prod.nit:2421 */
     goto label1;
   }
   label1: while(0);
@@ -13128,7 +13197,7 @@ void parser___parser_prod___AStarMethid___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2411;
+  fra.me.line = 2425;
   fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -13137,11 +13206,11 @@ void parser___parser_prod___AStarMethid___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2413 */
+  /* parser/parser_prod.nit:2427 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser___parser_prod, 2413);
+    nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser___parser_prod, 2427);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -13155,7 +13224,7 @@ void parser___parser_prod___ASlashMethid___empty_init(val_t p0, int* init_table)
   if (init_table[itpos69]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2417;
+  fra.me.line = 2431;
   fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -13174,7 +13243,7 @@ void parser___parser_prod___ASlashMethid___init_aslashmethid(val_t p0, val_t p1,
   if (init_table[itpos70]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2419;
+  fra.me.line = 2433;
   fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___init_aslashmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -13184,21 +13253,21 @@ void parser___parser_prod___ASlashMethid___init_aslashmethid(val_t p0, val_t p1,
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2419 */
+  /* parser/parser_prod.nit:2433 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2423 */
+  /* parser/parser_prod.nit:2437 */
   CALL_parser___parser_prod___ASlashMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:2424 */
+  /* parser/parser_prod.nit:2438 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2424);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2438);
   }
   ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2425 */
+  /* parser/parser_prod.nit:2439 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2425);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2439);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -13212,7 +13281,7 @@ void parser___parser_prod___ASlashMethid___replace_child(val_t p0, val_t p1, val
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2428;
+  fra.me.line = 2442;
   fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -13224,11 +13293,11 @@ void parser___parser_prod___ASlashMethid___replace_child(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2430 */
+  /* parser/parser_prod.nit:2444 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser___parser_prod, 2430);
+    nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser___parser_prod, 2444);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -13238,7 +13307,7 @@ void parser___parser_prod___ASlashMethid___replace_child(val_t p0, val_t p1, val
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2431 */
+    /* parser/parser_prod.nit:2445 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -13253,25 +13322,25 @@ void parser___parser_prod___ASlashMethid___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2432 */
+      /* parser/parser_prod.nit:2446 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2432);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2446);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2433 */
+      /* parser/parser_prod.nit:2447 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TSlash, ID_parser___parser_nodes___TSlash)) /*cast TSlash*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2433);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2447);
       }
-      /* ./parser//parser_prod.nit:2434 */
+      /* parser/parser_prod.nit:2448 */
       ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2436 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2436);
+      /* parser/parser_prod.nit:2450 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2450);
     }
-    /* ./parser//parser_prod.nit:2438 */
+    /* parser/parser_prod.nit:2452 */
     goto label1;
   }
   label1: while(0);
@@ -13284,7 +13353,7 @@ void parser___parser_prod___ASlashMethid___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2442;
+  fra.me.line = 2456;
   fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -13293,11 +13362,11 @@ void parser___parser_prod___ASlashMethid___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2444 */
+  /* parser/parser_prod.nit:2458 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser___parser_prod, 2444);
+    nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser___parser_prod, 2458);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -13311,7 +13380,7 @@ void parser___parser_prod___APercentMethid___empty_init(val_t p0, int* init_tabl
   if (init_table[itpos71]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2448;
+  fra.me.line = 2462;
   fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -13330,7 +13399,7 @@ void parser___parser_prod___APercentMethid___init_apercentmethid(val_t p0, val_t
   if (init_table[itpos72]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2450;
+  fra.me.line = 2464;
   fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___init_apercentmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -13340,21 +13409,21 @@ void parser___parser_prod___APercentMethid___init_apercentmethid(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2450 */
+  /* parser/parser_prod.nit:2464 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2454 */
+  /* parser/parser_prod.nit:2468 */
   CALL_parser___parser_prod___APercentMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:2455 */
+  /* parser/parser_prod.nit:2469 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2455);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2469);
   }
   ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2456 */
+  /* parser/parser_prod.nit:2470 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2456);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2470);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -13368,7 +13437,7 @@ void parser___parser_prod___APercentMethid___replace_child(val_t p0, val_t p1, v
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2459;
+  fra.me.line = 2473;
   fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -13380,11 +13449,11 @@ void parser___parser_prod___APercentMethid___replace_child(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2461 */
+  /* parser/parser_prod.nit:2475 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser___parser_prod, 2461);
+    nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser___parser_prod, 2475);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -13394,7 +13463,7 @@ void parser___parser_prod___APercentMethid___replace_child(val_t p0, val_t p1, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2462 */
+    /* parser/parser_prod.nit:2476 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -13409,25 +13478,25 @@ void parser___parser_prod___APercentMethid___replace_child(val_t p0, val_t p1, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2463 */
+      /* parser/parser_prod.nit:2477 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2463);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2477);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2464 */
+      /* parser/parser_prod.nit:2478 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TPercent, ID_parser___parser_nodes___TPercent)) /*cast TPercent*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2464);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2478);
       }
-      /* ./parser//parser_prod.nit:2465 */
+      /* parser/parser_prod.nit:2479 */
       ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2467 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2467);
+      /* parser/parser_prod.nit:2481 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2481);
     }
-    /* ./parser//parser_prod.nit:2469 */
+    /* parser/parser_prod.nit:2483 */
     goto label1;
   }
   label1: while(0);
@@ -13440,7 +13509,7 @@ void parser___parser_prod___APercentMethid___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2473;
+  fra.me.line = 2487;
   fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -13449,11 +13518,11 @@ void parser___parser_prod___APercentMethid___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2475 */
+  /* parser/parser_prod.nit:2489 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser___parser_prod, 2475);
+    nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser___parser_prod, 2489);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -13467,7 +13536,7 @@ void parser___parser_prod___AEqMethid___empty_init(val_t p0, int* init_table){
   if (init_table[itpos73]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2479;
+  fra.me.line = 2493;
   fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -13486,7 +13555,7 @@ void parser___parser_prod___AEqMethid___init_aeqmethid(val_t p0, val_t p1, int*
   if (init_table[itpos74]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2481;
+  fra.me.line = 2495;
   fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___init_aeqmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -13496,21 +13565,21 @@ void parser___parser_prod___AEqMethid___init_aeqmethid(val_t p0, val_t p1, int*
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2481 */
+  /* parser/parser_prod.nit:2495 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2485 */
+  /* parser/parser_prod.nit:2499 */
   CALL_parser___parser_prod___AEqMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:2486 */
+  /* parser/parser_prod.nit:2500 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2486);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2500);
   }
   ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2487 */
+  /* parser/parser_prod.nit:2501 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2487);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2501);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -13524,7 +13593,7 @@ void parser___parser_prod___AEqMethid___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2490;
+  fra.me.line = 2504;
   fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -13536,11 +13605,11 @@ void parser___parser_prod___AEqMethid___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2492 */
+  /* parser/parser_prod.nit:2506 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser___parser_prod, 2492);
+    nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser___parser_prod, 2506);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -13550,7 +13619,7 @@ void parser___parser_prod___AEqMethid___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2493 */
+    /* parser/parser_prod.nit:2507 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -13565,25 +13634,25 @@ void parser___parser_prod___AEqMethid___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2494 */
+      /* parser/parser_prod.nit:2508 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2494);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2508);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2495 */
+      /* parser/parser_prod.nit:2509 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TEq, ID_parser___parser_nodes___TEq)) /*cast TEq*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2495);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2509);
       }
-      /* ./parser//parser_prod.nit:2496 */
+      /* parser/parser_prod.nit:2510 */
       ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2498 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2498);
+      /* parser/parser_prod.nit:2512 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2512);
     }
-    /* ./parser//parser_prod.nit:2500 */
+    /* parser/parser_prod.nit:2514 */
     goto label1;
   }
   label1: while(0);
@@ -13596,7 +13665,7 @@ void parser___parser_prod___AEqMethid___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2504;
+  fra.me.line = 2518;
   fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -13605,11 +13674,11 @@ void parser___parser_prod___AEqMethid___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2506 */
+  /* parser/parser_prod.nit:2520 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser___parser_prod, 2506);
+    nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser___parser_prod, 2520);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -13623,7 +13692,7 @@ void parser___parser_prod___ANeMethid___empty_init(val_t p0, int* init_table){
   if (init_table[itpos75]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2510;
+  fra.me.line = 2524;
   fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -13642,7 +13711,7 @@ void parser___parser_prod___ANeMethid___init_anemethid(val_t p0, val_t p1, int*
   if (init_table[itpos76]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2512;
+  fra.me.line = 2526;
   fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___init_anemethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -13652,21 +13721,21 @@ void parser___parser_prod___ANeMethid___init_anemethid(val_t p0, val_t p1, int*
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2512 */
+  /* parser/parser_prod.nit:2526 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2516 */
+  /* parser/parser_prod.nit:2530 */
   CALL_parser___parser_prod___ANeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:2517 */
+  /* parser/parser_prod.nit:2531 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2517);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2531);
   }
   ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2518 */
+  /* parser/parser_prod.nit:2532 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2518);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2532);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -13680,7 +13749,7 @@ void parser___parser_prod___ANeMethid___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2521;
+  fra.me.line = 2535;
   fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -13692,11 +13761,11 @@ void parser___parser_prod___ANeMethid___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2523 */
+  /* parser/parser_prod.nit:2537 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser___parser_prod, 2523);
+    nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser___parser_prod, 2537);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -13706,7 +13775,7 @@ void parser___parser_prod___ANeMethid___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2524 */
+    /* parser/parser_prod.nit:2538 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -13721,25 +13790,25 @@ void parser___parser_prod___ANeMethid___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2525 */
+      /* parser/parser_prod.nit:2539 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2525);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2539);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2526 */
+      /* parser/parser_prod.nit:2540 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TNe, ID_parser___parser_nodes___TNe)) /*cast TNe*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2526);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2540);
       }
-      /* ./parser//parser_prod.nit:2527 */
+      /* parser/parser_prod.nit:2541 */
       ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2529 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2529);
+      /* parser/parser_prod.nit:2543 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2543);
     }
-    /* ./parser//parser_prod.nit:2531 */
+    /* parser/parser_prod.nit:2545 */
     goto label1;
   }
   label1: while(0);
@@ -13752,7 +13821,7 @@ void parser___parser_prod___ANeMethid___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2535;
+  fra.me.line = 2549;
   fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -13761,11 +13830,11 @@ void parser___parser_prod___ANeMethid___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2537 */
+  /* parser/parser_prod.nit:2551 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser___parser_prod, 2537);
+    nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser___parser_prod, 2551);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -13779,7 +13848,7 @@ void parser___parser_prod___ALeMethid___empty_init(val_t p0, int* init_table){
   if (init_table[itpos77]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2541;
+  fra.me.line = 2555;
   fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -13798,7 +13867,7 @@ void parser___parser_prod___ALeMethid___init_alemethid(val_t p0, val_t p1, int*
   if (init_table[itpos78]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2543;
+  fra.me.line = 2557;
   fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___init_alemethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -13808,21 +13877,21 @@ void parser___parser_prod___ALeMethid___init_alemethid(val_t p0, val_t p1, int*
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2543 */
+  /* parser/parser_prod.nit:2557 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2547 */
+  /* parser/parser_prod.nit:2561 */
   CALL_parser___parser_prod___ALeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:2548 */
+  /* parser/parser_prod.nit:2562 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2548);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2562);
   }
   ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2549 */
+  /* parser/parser_prod.nit:2563 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2549);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2563);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -13836,7 +13905,7 @@ void parser___parser_prod___ALeMethid___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2552;
+  fra.me.line = 2566;
   fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -13848,11 +13917,11 @@ void parser___parser_prod___ALeMethid___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2554 */
+  /* parser/parser_prod.nit:2568 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser___parser_prod, 2554);
+    nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser___parser_prod, 2568);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -13862,7 +13931,7 @@ void parser___parser_prod___ALeMethid___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2555 */
+    /* parser/parser_prod.nit:2569 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -13877,25 +13946,25 @@ void parser___parser_prod___ALeMethid___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2556 */
+      /* parser/parser_prod.nit:2570 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2556);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2570);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2557 */
+      /* parser/parser_prod.nit:2571 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TLe, ID_parser___parser_nodes___TLe)) /*cast TLe*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2557);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2571);
       }
-      /* ./parser//parser_prod.nit:2558 */
+      /* parser/parser_prod.nit:2572 */
       ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2560 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2560);
+      /* parser/parser_prod.nit:2574 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2574);
     }
-    /* ./parser//parser_prod.nit:2562 */
+    /* parser/parser_prod.nit:2576 */
     goto label1;
   }
   label1: while(0);
@@ -13908,7 +13977,7 @@ void parser___parser_prod___ALeMethid___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2566;
+  fra.me.line = 2580;
   fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -13917,11 +13986,11 @@ void parser___parser_prod___ALeMethid___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2568 */
+  /* parser/parser_prod.nit:2582 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser___parser_prod, 2568);
+    nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser___parser_prod, 2582);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -13935,7 +14004,7 @@ void parser___parser_prod___AGeMethid___empty_init(val_t p0, int* init_table){
   if (init_table[itpos79]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2572;
+  fra.me.line = 2586;
   fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -13954,7 +14023,7 @@ void parser___parser_prod___AGeMethid___init_agemethid(val_t p0, val_t p1, int*
   if (init_table[itpos80]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2574;
+  fra.me.line = 2588;
   fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___init_agemethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -13964,21 +14033,21 @@ void parser___parser_prod___AGeMethid___init_agemethid(val_t p0, val_t p1, int*
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2574 */
+  /* parser/parser_prod.nit:2588 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2578 */
+  /* parser/parser_prod.nit:2592 */
   CALL_parser___parser_prod___AGeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:2579 */
+  /* parser/parser_prod.nit:2593 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2579);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2593);
   }
   ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2580 */
+  /* parser/parser_prod.nit:2594 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2580);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2594);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -13992,7 +14061,7 @@ void parser___parser_prod___AGeMethid___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2583;
+  fra.me.line = 2597;
   fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -14004,11 +14073,11 @@ void parser___parser_prod___AGeMethid___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2585 */
+  /* parser/parser_prod.nit:2599 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser___parser_prod, 2585);
+    nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser___parser_prod, 2599);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -14018,7 +14087,7 @@ void parser___parser_prod___AGeMethid___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2586 */
+    /* parser/parser_prod.nit:2600 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -14033,25 +14102,25 @@ void parser___parser_prod___AGeMethid___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2587 */
+      /* parser/parser_prod.nit:2601 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2587);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2601);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2588 */
+      /* parser/parser_prod.nit:2602 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TGe, ID_parser___parser_nodes___TGe)) /*cast TGe*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2588);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2602);
       }
-      /* ./parser//parser_prod.nit:2589 */
+      /* parser/parser_prod.nit:2603 */
       ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2591 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2591);
+      /* parser/parser_prod.nit:2605 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2605);
     }
-    /* ./parser//parser_prod.nit:2593 */
+    /* parser/parser_prod.nit:2607 */
     goto label1;
   }
   label1: while(0);
@@ -14064,7 +14133,7 @@ void parser___parser_prod___AGeMethid___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2597;
+  fra.me.line = 2611;
   fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -14073,11 +14142,11 @@ void parser___parser_prod___AGeMethid___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2599 */
+  /* parser/parser_prod.nit:2613 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser___parser_prod, 2599);
+    nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser___parser_prod, 2613);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -14091,7 +14160,7 @@ void parser___parser_prod___ALtMethid___empty_init(val_t p0, int* init_table){
   if (init_table[itpos81]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2603;
+  fra.me.line = 2617;
   fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -14110,7 +14179,7 @@ void parser___parser_prod___ALtMethid___init_altmethid(val_t p0, val_t p1, int*
   if (init_table[itpos82]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2605;
+  fra.me.line = 2619;
   fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___init_altmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -14120,21 +14189,21 @@ void parser___parser_prod___ALtMethid___init_altmethid(val_t p0, val_t p1, int*
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2605 */
+  /* parser/parser_prod.nit:2619 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2609 */
+  /* parser/parser_prod.nit:2623 */
   CALL_parser___parser_prod___ALtMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:2610 */
+  /* parser/parser_prod.nit:2624 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2610);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2624);
   }
   ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2611 */
+  /* parser/parser_prod.nit:2625 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2611);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2625);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -14148,7 +14217,7 @@ void parser___parser_prod___ALtMethid___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2614;
+  fra.me.line = 2628;
   fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -14160,11 +14229,11 @@ void parser___parser_prod___ALtMethid___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2616 */
+  /* parser/parser_prod.nit:2630 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser___parser_prod, 2616);
+    nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser___parser_prod, 2630);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -14174,7 +14243,7 @@ void parser___parser_prod___ALtMethid___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2617 */
+    /* parser/parser_prod.nit:2631 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -14189,25 +14258,25 @@ void parser___parser_prod___ALtMethid___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2618 */
+      /* parser/parser_prod.nit:2632 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2618);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2632);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2619 */
+      /* parser/parser_prod.nit:2633 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TLt, ID_parser___parser_nodes___TLt)) /*cast TLt*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2619);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2633);
       }
-      /* ./parser//parser_prod.nit:2620 */
+      /* parser/parser_prod.nit:2634 */
       ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2622 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2622);
+      /* parser/parser_prod.nit:2636 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2636);
     }
-    /* ./parser//parser_prod.nit:2624 */
+    /* parser/parser_prod.nit:2638 */
     goto label1;
   }
   label1: while(0);
@@ -14220,7 +14289,7 @@ void parser___parser_prod___ALtMethid___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2628;
+  fra.me.line = 2642;
   fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -14229,11 +14298,11 @@ void parser___parser_prod___ALtMethid___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2630 */
+  /* parser/parser_prod.nit:2644 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser___parser_prod, 2630);
+    nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser___parser_prod, 2644);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -14247,7 +14316,7 @@ void parser___parser_prod___AGtMethid___empty_init(val_t p0, int* init_table){
   if (init_table[itpos83]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2634;
+  fra.me.line = 2648;
   fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -14266,7 +14335,7 @@ void parser___parser_prod___AGtMethid___init_agtmethid(val_t p0, val_t p1, int*
   if (init_table[itpos84]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2636;
+  fra.me.line = 2650;
   fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___init_agtmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -14276,21 +14345,21 @@ void parser___parser_prod___AGtMethid___init_agtmethid(val_t p0, val_t p1, int*
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2636 */
+  /* parser/parser_prod.nit:2650 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2640 */
+  /* parser/parser_prod.nit:2654 */
   CALL_parser___parser_prod___AGtMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:2641 */
+  /* parser/parser_prod.nit:2655 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2641);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2655);
   }
   ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2642 */
+  /* parser/parser_prod.nit:2656 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2642);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2656);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -14304,7 +14373,7 @@ void parser___parser_prod___AGtMethid___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2645;
+  fra.me.line = 2659;
   fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -14316,11 +14385,11 @@ void parser___parser_prod___AGtMethid___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2647 */
+  /* parser/parser_prod.nit:2661 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser___parser_prod, 2647);
+    nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser___parser_prod, 2661);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -14330,7 +14399,7 @@ void parser___parser_prod___AGtMethid___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2648 */
+    /* parser/parser_prod.nit:2662 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -14345,25 +14414,25 @@ void parser___parser_prod___AGtMethid___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2649 */
+      /* parser/parser_prod.nit:2663 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2649);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2663);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2650 */
+      /* parser/parser_prod.nit:2664 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TGt, ID_parser___parser_nodes___TGt)) /*cast TGt*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2650);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2664);
       }
-      /* ./parser//parser_prod.nit:2651 */
+      /* parser/parser_prod.nit:2665 */
       ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2653 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2653);
+      /* parser/parser_prod.nit:2667 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2667);
     }
-    /* ./parser//parser_prod.nit:2655 */
+    /* parser/parser_prod.nit:2669 */
     goto label1;
   }
   label1: while(0);
@@ -14376,7 +14445,7 @@ void parser___parser_prod___AGtMethid___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2659;
+  fra.me.line = 2673;
   fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -14385,11 +14454,11 @@ void parser___parser_prod___AGtMethid___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2661 */
+  /* parser/parser_prod.nit:2675 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser___parser_prod, 2661);
+    nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser___parser_prod, 2675);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -14403,7 +14472,7 @@ void parser___parser_prod___ALlMethid___empty_init(val_t p0, int* init_table){
   if (init_table[itpos85]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2665;
+  fra.me.line = 2679;
   fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -14422,7 +14491,7 @@ void parser___parser_prod___ALlMethid___init_allmethid(val_t p0, val_t p1, int*
   if (init_table[itpos86]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2667;
+  fra.me.line = 2681;
   fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___init_allmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -14432,21 +14501,21 @@ void parser___parser_prod___ALlMethid___init_allmethid(val_t p0, val_t p1, int*
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2667 */
+  /* parser/parser_prod.nit:2681 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2671 */
+  /* parser/parser_prod.nit:2685 */
   CALL_parser___parser_prod___ALlMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:2672 */
+  /* parser/parser_prod.nit:2686 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2672);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2686);
   }
   ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2673 */
+  /* parser/parser_prod.nit:2687 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2673);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2687);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -14460,7 +14529,7 @@ void parser___parser_prod___ALlMethid___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2676;
+  fra.me.line = 2690;
   fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -14472,11 +14541,11 @@ void parser___parser_prod___ALlMethid___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2678 */
+  /* parser/parser_prod.nit:2692 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser___parser_prod, 2678);
+    nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser___parser_prod, 2692);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -14486,7 +14555,7 @@ void parser___parser_prod___ALlMethid___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2679 */
+    /* parser/parser_prod.nit:2693 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -14501,25 +14570,25 @@ void parser___parser_prod___ALlMethid___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2680 */
+      /* parser/parser_prod.nit:2694 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2680);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2694);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2681 */
+      /* parser/parser_prod.nit:2695 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TLl, ID_parser___parser_nodes___TLl)) /*cast TLl*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2681);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2695);
       }
-      /* ./parser//parser_prod.nit:2682 */
+      /* parser/parser_prod.nit:2696 */
       ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2684 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2684);
+      /* parser/parser_prod.nit:2698 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2698);
     }
-    /* ./parser//parser_prod.nit:2686 */
+    /* parser/parser_prod.nit:2700 */
     goto label1;
   }
   label1: while(0);
@@ -14532,7 +14601,7 @@ void parser___parser_prod___ALlMethid___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2690;
+  fra.me.line = 2704;
   fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -14541,11 +14610,11 @@ void parser___parser_prod___ALlMethid___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2692 */
+  /* parser/parser_prod.nit:2706 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser___parser_prod, 2692);
+    nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser___parser_prod, 2706);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -14559,7 +14628,7 @@ void parser___parser_prod___AGgMethid___empty_init(val_t p0, int* init_table){
   if (init_table[itpos87]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2696;
+  fra.me.line = 2710;
   fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -14578,7 +14647,7 @@ void parser___parser_prod___AGgMethid___init_aggmethid(val_t p0, val_t p1, int*
   if (init_table[itpos88]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2698;
+  fra.me.line = 2712;
   fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___init_aggmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -14588,21 +14657,21 @@ void parser___parser_prod___AGgMethid___init_aggmethid(val_t p0, val_t p1, int*
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2698 */
+  /* parser/parser_prod.nit:2712 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2702 */
+  /* parser/parser_prod.nit:2716 */
   CALL_parser___parser_prod___AGgMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:2703 */
+  /* parser/parser_prod.nit:2717 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2703);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2717);
   }
   ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2704 */
+  /* parser/parser_prod.nit:2718 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2704);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2718);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -14616,7 +14685,7 @@ void parser___parser_prod___AGgMethid___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2707;
+  fra.me.line = 2721;
   fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -14628,11 +14697,11 @@ void parser___parser_prod___AGgMethid___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2709 */
+  /* parser/parser_prod.nit:2723 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser___parser_prod, 2709);
+    nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser___parser_prod, 2723);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -14642,7 +14711,7 @@ void parser___parser_prod___AGgMethid___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2710 */
+    /* parser/parser_prod.nit:2724 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -14657,25 +14726,25 @@ void parser___parser_prod___AGgMethid___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2711 */
+      /* parser/parser_prod.nit:2725 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2711);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2725);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2712 */
+      /* parser/parser_prod.nit:2726 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TGg, ID_parser___parser_nodes___TGg)) /*cast TGg*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2712);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2726);
       }
-      /* ./parser//parser_prod.nit:2713 */
+      /* parser/parser_prod.nit:2727 */
       ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2715 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2715);
+      /* parser/parser_prod.nit:2729 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2729);
     }
-    /* ./parser//parser_prod.nit:2717 */
+    /* parser/parser_prod.nit:2731 */
     goto label1;
   }
   label1: while(0);
@@ -14688,7 +14757,7 @@ void parser___parser_prod___AGgMethid___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2721;
+  fra.me.line = 2735;
   fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -14697,11 +14766,11 @@ void parser___parser_prod___AGgMethid___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2723 */
+  /* parser/parser_prod.nit:2737 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser___parser_prod, 2723);
+    nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser___parser_prod, 2737);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -14715,7 +14784,7 @@ void parser___parser_prod___ABraMethid___empty_init(val_t p0, int* init_table){
   if (init_table[itpos89]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2727;
+  fra.me.line = 2741;
   fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -14734,7 +14803,7 @@ void parser___parser_prod___ABraMethid___init_abramethid(val_t p0, val_t p1, val
   if (init_table[itpos90]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2729;
+  fra.me.line = 2743;
   fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___init_abramethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -14746,34 +14815,34 @@ void parser___parser_prod___ABraMethid___init_abramethid(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2729 */
+  /* parser/parser_prod.nit:2743 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2734 */
+  /* parser/parser_prod.nit:2748 */
   CALL_parser___parser_prod___ABraMethid___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:2735 */
+  /* parser/parser_prod.nit:2749 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2735);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2749);
   }
   ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2736 */
+  /* parser/parser_prod.nit:2750 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2736);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2750);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:2737 */
+  /* parser/parser_prod.nit:2751 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2737);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2751);
   }
   ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:2738 */
+  /* parser/parser_prod.nit:2752 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2738);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2752);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -14787,7 +14856,7 @@ void parser___parser_prod___ABraMethid___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2741;
+  fra.me.line = 2755;
   fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -14799,11 +14868,11 @@ void parser___parser_prod___ABraMethid___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2743 */
+  /* parser/parser_prod.nit:2757 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2743);
+    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2757);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -14813,7 +14882,7 @@ void parser___parser_prod___ABraMethid___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2744 */
+    /* parser/parser_prod.nit:2758 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -14828,32 +14897,32 @@ void parser___parser_prod___ABraMethid___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2745 */
+      /* parser/parser_prod.nit:2759 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2745);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2759);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2746 */
+      /* parser/parser_prod.nit:2760 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast TObra*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2746);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2760);
       }
-      /* ./parser//parser_prod.nit:2747 */
+      /* parser/parser_prod.nit:2761 */
       ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2749 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2749);
+      /* parser/parser_prod.nit:2763 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2763);
     }
-    /* ./parser//parser_prod.nit:2751 */
+    /* parser/parser_prod.nit:2765 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:2753 */
+  /* parser/parser_prod.nit:2767 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2753);
+    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2767);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -14863,7 +14932,7 @@ void parser___parser_prod___ABraMethid___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2754 */
+    /* parser/parser_prod.nit:2768 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -14878,25 +14947,25 @@ void parser___parser_prod___ABraMethid___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2755 */
+      /* parser/parser_prod.nit:2769 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2755);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2769);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2756 */
+      /* parser/parser_prod.nit:2770 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCbra, ID_parser___parser_nodes___TCbra)) /*cast TCbra*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2756);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2770);
       }
-      /* ./parser//parser_prod.nit:2757 */
+      /* parser/parser_prod.nit:2771 */
       ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2759 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2759);
+      /* parser/parser_prod.nit:2773 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2773);
     }
-    /* ./parser//parser_prod.nit:2761 */
+    /* parser/parser_prod.nit:2775 */
     goto label1;
   }
   label1: while(0);
@@ -14909,7 +14978,7 @@ void parser___parser_prod___ABraMethid___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2765;
+  fra.me.line = 2779;
   fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -14919,19 +14988,19 @@ void parser___parser_prod___ABraMethid___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2767 */
+  /* parser/parser_prod.nit:2781 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2767);
+    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2781);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:2768 */
+  /* parser/parser_prod.nit:2782 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2768);
+    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2782);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -14945,7 +15014,7 @@ void parser___parser_prod___AStarshipMethid___empty_init(val_t p0, int* init_tab
   if (init_table[itpos91]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2772;
+  fra.me.line = 2786;
   fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -14964,7 +15033,7 @@ void parser___parser_prod___AStarshipMethid___init_astarshipmethid(val_t p0, val
   if (init_table[itpos92]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2774;
+  fra.me.line = 2788;
   fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___init_astarshipmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -14974,21 +15043,21 @@ void parser___parser_prod___AStarshipMethid___init_astarshipmethid(val_t p0, val
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2774 */
+  /* parser/parser_prod.nit:2788 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2778 */
+  /* parser/parser_prod.nit:2792 */
   CALL_parser___parser_prod___AStarshipMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:2779 */
+  /* parser/parser_prod.nit:2793 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2779);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2793);
   }
   ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2780 */
+  /* parser/parser_prod.nit:2794 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2780);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2794);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -15002,7 +15071,7 @@ void parser___parser_prod___AStarshipMethid___replace_child(val_t p0, val_t p1,
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2783;
+  fra.me.line = 2797;
   fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -15014,11 +15083,11 @@ void parser___parser_prod___AStarshipMethid___replace_child(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2785 */
+  /* parser/parser_prod.nit:2799 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser___parser_prod, 2785);
+    nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser___parser_prod, 2799);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -15028,7 +15097,7 @@ void parser___parser_prod___AStarshipMethid___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2786 */
+    /* parser/parser_prod.nit:2800 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -15043,25 +15112,25 @@ void parser___parser_prod___AStarshipMethid___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2787 */
+      /* parser/parser_prod.nit:2801 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2787);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2801);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2788 */
+      /* parser/parser_prod.nit:2802 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TStarship, ID_parser___parser_nodes___TStarship)) /*cast TStarship*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2788);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2802);
       }
-      /* ./parser//parser_prod.nit:2789 */
+      /* parser/parser_prod.nit:2803 */
       ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2791 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2791);
+      /* parser/parser_prod.nit:2805 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2805);
     }
-    /* ./parser//parser_prod.nit:2793 */
+    /* parser/parser_prod.nit:2807 */
     goto label1;
   }
   label1: while(0);
@@ -15074,7 +15143,7 @@ void parser___parser_prod___AStarshipMethid___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2797;
+  fra.me.line = 2811;
   fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -15083,11 +15152,11 @@ void parser___parser_prod___AStarshipMethid___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2799 */
+  /* parser/parser_prod.nit:2813 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser___parser_prod, 2799);
+    nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser___parser_prod, 2813);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -15101,7 +15170,7 @@ void parser___parser_prod___AAssignMethid___empty_init(val_t p0, int* init_table
   if (init_table[itpos93]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2803;
+  fra.me.line = 2817;
   fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -15120,7 +15189,7 @@ void parser___parser_prod___AAssignMethid___init_aassignmethid(val_t p0, val_t p
   if (init_table[itpos94]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2805;
+  fra.me.line = 2819;
   fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___init_aassignmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -15132,34 +15201,34 @@ void parser___parser_prod___AAssignMethid___init_aassignmethid(val_t p0, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2805 */
+  /* parser/parser_prod.nit:2819 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2810 */
+  /* parser/parser_prod.nit:2824 */
   CALL_parser___parser_prod___AAssignMethid___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:2811 */
+  /* parser/parser_prod.nit:2825 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2811);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2825);
   }
   ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2812 */
+  /* parser/parser_prod.nit:2826 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2812);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2826);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:2813 */
+  /* parser/parser_prod.nit:2827 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2813);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2827);
   }
   ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:2814 */
+  /* parser/parser_prod.nit:2828 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2814);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2828);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -15173,7 +15242,7 @@ void parser___parser_prod___AAssignMethid___replace_child(val_t p0, val_t p1, va
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2817;
+  fra.me.line = 2831;
   fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -15185,11 +15254,11 @@ void parser___parser_prod___AAssignMethid___replace_child(val_t p0, val_t p1, va
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2819 */
+  /* parser/parser_prod.nit:2833 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2819);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2833);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -15199,7 +15268,7 @@ void parser___parser_prod___AAssignMethid___replace_child(val_t p0, val_t p1, va
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2820 */
+    /* parser/parser_prod.nit:2834 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -15214,32 +15283,32 @@ void parser___parser_prod___AAssignMethid___replace_child(val_t p0, val_t p1, va
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2821 */
+      /* parser/parser_prod.nit:2835 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2821);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2835);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2822 */
+      /* parser/parser_prod.nit:2836 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2822);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2836);
       }
-      /* ./parser//parser_prod.nit:2823 */
+      /* parser/parser_prod.nit:2837 */
       ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2825 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2825);
+      /* parser/parser_prod.nit:2839 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2839);
     }
-    /* ./parser//parser_prod.nit:2827 */
+    /* parser/parser_prod.nit:2841 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:2829 */
+  /* parser/parser_prod.nit:2843 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2829);
+    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2843);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -15249,7 +15318,7 @@ void parser___parser_prod___AAssignMethid___replace_child(val_t p0, val_t p1, va
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2830 */
+    /* parser/parser_prod.nit:2844 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -15264,25 +15333,25 @@ void parser___parser_prod___AAssignMethid___replace_child(val_t p0, val_t p1, va
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2831 */
+      /* parser/parser_prod.nit:2845 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2831);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2845);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2832 */
+      /* parser/parser_prod.nit:2846 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2832);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2846);
       }
-      /* ./parser//parser_prod.nit:2833 */
+      /* parser/parser_prod.nit:2847 */
       ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2835 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2835);
+      /* parser/parser_prod.nit:2849 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2849);
     }
-    /* ./parser//parser_prod.nit:2837 */
+    /* parser/parser_prod.nit:2851 */
     goto label1;
   }
   label1: while(0);
@@ -15295,7 +15364,7 @@ void parser___parser_prod___AAssignMethid___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2841;
+  fra.me.line = 2855;
   fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -15305,19 +15374,19 @@ void parser___parser_prod___AAssignMethid___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2843 */
+  /* parser/parser_prod.nit:2857 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2843);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2857);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:2844 */
+  /* parser/parser_prod.nit:2858 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2844);
+    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2858);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -15331,7 +15400,7 @@ void parser___parser_prod___ABraassignMethid___empty_init(val_t p0, int* init_ta
   if (init_table[itpos95]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2848;
+  fra.me.line = 2862;
   fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -15350,7 +15419,7 @@ void parser___parser_prod___ABraassignMethid___init_abraassignmethid(val_t p0, v
   if (init_table[itpos96]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2850;
+  fra.me.line = 2864;
   fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___init_abraassignmethid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -15364,47 +15433,47 @@ void parser___parser_prod___ABraassignMethid___init_abraassignmethid(val_t p0, v
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:2850 */
+  /* parser/parser_prod.nit:2864 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2856 */
+  /* parser/parser_prod.nit:2870 */
   CALL_parser___parser_prod___ABraassignMethid___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:2857 */
+  /* parser/parser_prod.nit:2871 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2857);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2871);
   }
   ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2858 */
+  /* parser/parser_prod.nit:2872 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2858);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2872);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:2859 */
+  /* parser/parser_prod.nit:2873 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2859);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2873);
   }
   ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:2860 */
+  /* parser/parser_prod.nit:2874 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2860);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2874);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:2861 */
+  /* parser/parser_prod.nit:2875 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2861);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2875);
   }
   ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[4]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:2862 */
+  /* parser/parser_prod.nit:2876 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2862);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2876);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   stack_frame_head = fra.me.prev;
@@ -15418,7 +15487,7 @@ void parser___parser_prod___ABraassignMethid___replace_child(val_t p0, val_t p1,
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2865;
+  fra.me.line = 2879;
   fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -15430,11 +15499,11 @@ void parser___parser_prod___ABraassignMethid___replace_child(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2867 */
+  /* parser/parser_prod.nit:2881 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2867);
+    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2881);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -15444,7 +15513,7 @@ void parser___parser_prod___ABraassignMethid___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2868 */
+    /* parser/parser_prod.nit:2882 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -15459,32 +15528,32 @@ void parser___parser_prod___ABraassignMethid___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2869 */
+      /* parser/parser_prod.nit:2883 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2869);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2883);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2870 */
+      /* parser/parser_prod.nit:2884 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast TObra*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2870);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2884);
       }
-      /* ./parser//parser_prod.nit:2871 */
+      /* parser/parser_prod.nit:2885 */
       ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2873 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2873);
+      /* parser/parser_prod.nit:2887 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2887);
     }
-    /* ./parser//parser_prod.nit:2875 */
+    /* parser/parser_prod.nit:2889 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:2877 */
+  /* parser/parser_prod.nit:2891 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2877);
+    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2891);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -15494,7 +15563,7 @@ void parser___parser_prod___ABraassignMethid___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2878 */
+    /* parser/parser_prod.nit:2892 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -15509,32 +15578,32 @@ void parser___parser_prod___ABraassignMethid___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2879 */
+      /* parser/parser_prod.nit:2893 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2879);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2893);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2880 */
+      /* parser/parser_prod.nit:2894 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCbra, ID_parser___parser_nodes___TCbra)) /*cast TCbra*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2880);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2894);
       }
-      /* ./parser//parser_prod.nit:2881 */
+      /* parser/parser_prod.nit:2895 */
       ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2883 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2883);
+      /* parser/parser_prod.nit:2897 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2897);
     }
-    /* ./parser//parser_prod.nit:2885 */
+    /* parser/parser_prod.nit:2899 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:2887 */
+  /* parser/parser_prod.nit:2901 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2887);
+    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2901);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -15544,7 +15613,7 @@ void parser___parser_prod___ABraassignMethid___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2888 */
+    /* parser/parser_prod.nit:2902 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -15559,25 +15628,25 @@ void parser___parser_prod___ABraassignMethid___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2889 */
+      /* parser/parser_prod.nit:2903 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2889);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2903);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2890 */
+      /* parser/parser_prod.nit:2904 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2890);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2904);
       }
-      /* ./parser//parser_prod.nit:2891 */
+      /* parser/parser_prod.nit:2905 */
       ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2893 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2893);
+      /* parser/parser_prod.nit:2907 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2907);
     }
-    /* ./parser//parser_prod.nit:2895 */
+    /* parser/parser_prod.nit:2909 */
     goto label1;
   }
   label1: while(0);
@@ -15590,7 +15659,7 @@ void parser___parser_prod___ABraassignMethid___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2899;
+  fra.me.line = 2913;
   fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -15600,27 +15669,27 @@ void parser___parser_prod___ABraassignMethid___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2901 */
+  /* parser/parser_prod.nit:2915 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2901);
+    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 2915);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:2902 */
+  /* parser/parser_prod.nit:2916 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2902);
+    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 2916);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:2903 */
+  /* parser/parser_prod.nit:2917 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2903);
+    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 2917);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -15634,7 +15703,7 @@ void parser___parser_prod___ASignature___empty_init(val_t p0, int* init_table){
   if (init_table[itpos97]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2907;
+  fra.me.line = 2921;
   fra.me.meth = LOCATE_parser___parser_prod___ASignature___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -15645,56 +15714,108 @@ void parser___parser_prod___ASignature___empty_init(val_t p0, int* init_table){
   init_table[itpos97] = 1;
   return;
 }
-void parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
+void parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
   int itpos98 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASignature].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
   if (init_table[itpos98]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2909;
+  fra.me.line = 2923;
   fra.me.meth = LOCATE_parser___parser_prod___ASignature___init_asignature;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
+  fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:2915 */
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = p5;
+  /* parser/parser_prod.nit:2931 */
   CALL_parser___parser_prod___ASignature___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASignature___init_asignature_1));
-  /* ./parser//parser_prod.nit:2921 */
-  ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:2922 */
-  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+  /* parser/parser_prod.nit:2932 */
+  ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[0]) = fra.me.REG[1];
+  /* parser/parser_prod.nit:2933 */
+  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       REGB1 = TAG_Bool(false);
       REGB0 = REGB1;
     } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
       REGB0 = REGB1;
     }
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2923 */
-    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    /* parser/parser_prod.nit:2934 */
+    REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2923);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2934);
     }
-    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASignature___init_asignature_2));
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASignature___init_asignature_1));
+  /* parser/parser_prod.nit:2941 */
+  ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[0]) = fra.me.REG[3];
+  /* parser/parser_prod.nit:2942 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:2943 */
+    REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2943);
+    }
+    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
+  }
+  /* parser/parser_prod.nit:2945 */
+  ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[4];
+  /* parser/parser_prod.nit:2946 */
+  REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:2947 */
+    REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2947);
+    }
+    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
+  }
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASignature___init_asignature_2));
   stack_frame_head = fra.me.prev;
   init_table[itpos98] = 1;
   return;
@@ -15704,7 +15825,7 @@ void parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:2916 */
+    /* parser/parser_prod.nit:2936 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -15718,21 +15839,21 @@ void parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:2917 */
+    /* parser/parser_prod.nit:2937 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AParam, ID_parser___parser_nodes___AParam)) /*cast AParam*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2917);
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2937);
     }
-    /* ./parser//parser_prod.nit:2918 */
+    /* parser/parser_prod.nit:2938 */
     REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(closctx->REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2918);
+      nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2938);
     }
     fra.me.REG[1] = ATTR_parser___parser_nodes___ASignature____n_params(closctx->REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:2919 */
+    /* parser/parser_prod.nit:2939 */
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -15742,7 +15863,7 @@ void parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:2925 */
+    /* parser/parser_prod.nit:2949 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -15756,21 +15877,21 @@ void parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:2926 */
+    /* parser/parser_prod.nit:2950 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDecl, ID_parser___parser_nodes___AClosureDecl)) /*cast AClosureDecl*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2926);
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2950);
     }
-    /* ./parser//parser_prod.nit:2927 */
+    /* parser/parser_prod.nit:2951 */
     REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(closctx->REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2927);
+      nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2951);
     }
     fra.me.REG[1] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(closctx->REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:2928 */
+    /* parser/parser_prod.nit:2952 */
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -15785,7 +15906,7 @@ void parser___parser_prod___ASignature___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2932;
+  fra.me.line = 2956;
   fra.me.meth = LOCATE_parser___parser_prod___ASignature___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -15797,33 +15918,84 @@ void parser___parser_prod___ASignature___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:2934 */
+  /* parser/parser_prod.nit:2958 */
+  fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+      REGB0 = REGB1;
+    }
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:2959 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:2960 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2960);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:2961 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2961);
+      }
+      /* parser/parser_prod.nit:2962 */
+      ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:2964 */
+      ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[0]) = NIT_NULL;
+    }
+    /* parser/parser_prod.nit:2966 */
+    goto label1;
+  }
+  /* parser/parser_prod.nit:2968 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2934);
+    nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2968);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:2934 */
+      /* parser/parser_prod.nit:2968 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:2935 */
+      /* parser/parser_prod.nit:2969 */
       REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2935);
+        nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2969);
       }
       fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
@@ -15840,7 +16012,7 @@ void parser___parser_prod___ASignature___replace_child(val_t p0, val_t p1, val_t
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:2936 */
+        /* parser/parser_prod.nit:2970 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -15855,52 +16027,103 @@ void parser___parser_prod___ASignature___replace_child(val_t p0, val_t p1, val_t
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:2937 */
+          /* parser/parser_prod.nit:2971 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AParam, ID_parser___parser_nodes___AParam)) /*cast AParam*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2937);
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2971);
           }
-          /* ./parser//parser_prod.nit:2938 */
+          /* parser/parser_prod.nit:2972 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2938);
+            nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2972);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:2939 */
+          /* parser/parser_prod.nit:2973 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2939);
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2973);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:2941 */
+          /* parser/parser_prod.nit:2975 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2941);
+            nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2975);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:2943 */
+        /* parser/parser_prod.nit:2977 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./parser//parser_prod.nit:2946 */
+  /* parser/parser_prod.nit:2980 */
+  fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+      REGB0 = REGB1;
+    }
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:2981 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:2982 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2982);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:2983 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2983);
+      }
+      /* parser/parser_prod.nit:2984 */
+      ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:2986 */
+      ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[0]) = NIT_NULL;
+    }
+    /* parser/parser_prod.nit:2988 */
+    goto label1;
+  }
+  /* parser/parser_prod.nit:2990 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -15915,7 +16138,7 @@ void parser___parser_prod___ASignature___replace_child(val_t p0, val_t p1, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2947 */
+    /* parser/parser_prod.nit:2991 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -15930,54 +16153,54 @@ void parser___parser_prod___ASignature___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:2948 */
+      /* parser/parser_prod.nit:2992 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2948);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2992);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:2949 */
+      /* parser/parser_prod.nit:2993 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2949);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2993);
       }
-      /* ./parser//parser_prod.nit:2950 */
+      /* parser/parser_prod.nit:2994 */
       ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:2952 */
+      /* parser/parser_prod.nit:2996 */
       ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:2954 */
+    /* parser/parser_prod.nit:2998 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:2956 */
+  /* parser/parser_prod.nit:3000 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2956);
+    nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3000);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:2956 */
+      /* parser/parser_prod.nit:3000 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:2957 */
+      /* parser/parser_prod.nit:3001 */
       REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2957);
+        nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3001);
       }
       fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
@@ -15994,7 +16217,7 @@ void parser___parser_prod___ASignature___replace_child(val_t p0, val_t p1, val_t
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:2958 */
+        /* parser/parser_prod.nit:3002 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -16009,47 +16232,47 @@ void parser___parser_prod___ASignature___replace_child(val_t p0, val_t p1, val_t
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:2959 */
+          /* parser/parser_prod.nit:3003 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClosureDecl, ID_parser___parser_nodes___AClosureDecl)) /*cast AClosureDecl*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2959);
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3003);
           }
-          /* ./parser//parser_prod.nit:2960 */
+          /* parser/parser_prod.nit:3004 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2960);
+            nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3004);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:2961 */
+          /* parser/parser_prod.nit:3005 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2961);
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3005);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:2963 */
+          /* parser/parser_prod.nit:3007 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2963);
+            nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3007);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:2965 */
+        /* parser/parser_prod.nit:3009 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label3;
     }
   }
@@ -16065,7 +16288,7 @@ void parser___parser_prod___ASignature___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2970;
+  fra.me.line = 3014;
   fra.me.meth = LOCATE_parser___parser_prod___ASignature___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -16076,17 +16299,67 @@ void parser___parser_prod___ASignature___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:2970 */
+  /* parser/parser_prod.nit:3014 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2972 */
+  /* parser/parser_prod.nit:3016 */
+  fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[2]);
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:3017 */
+    fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[2]);
+    REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3017);
+    }
+    CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+  }
+  /* parser/parser_prod.nit:3019 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 2972);
+    nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 3019);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASignature___visit_all_1));
-  /* ./parser//parser_prod.nit:2975 */
+  /* parser/parser_prod.nit:3022 */
+  fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[2]);
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:3023 */
+    fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[2]);
+    REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3023);
+    }
+    CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+  }
+  /* parser/parser_prod.nit:3025 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -16102,20 +16375,20 @@ void parser___parser_prod___ASignature___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2976 */
+    /* parser/parser_prod.nit:3026 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2976);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3026);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:2978 */
+  /* parser/parser_prod.nit:3028 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 2978);
+    nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3028);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASignature___visit_all_2));
@@ -16138,7 +16411,7 @@ void parser___parser_prod___ASignature___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:2973 */
+    /* parser/parser_prod.nit:3020 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -16159,7 +16432,7 @@ void parser___parser_prod___ASignature___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:2979 */
+    /* parser/parser_prod.nit:3029 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -16171,7 +16444,7 @@ void parser___parser_prod___AParam___empty_init(val_t p0, int* init_table){
   if (init_table[itpos99]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2984;
+  fra.me.line = 3034;
   fra.me.meth = LOCATE_parser___parser_prod___AParam___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -16191,7 +16464,7 @@ void parser___parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2, v
   if (init_table[itpos100]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 2986;
+  fra.me.line = 3036;
   fra.me.meth = LOCATE_parser___parser_prod___AParam___init_aparam;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -16205,26 +16478,26 @@ void parser___parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2, v
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:2986 */
+  /* parser/parser_prod.nit:3036 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:2992 */
+  /* parser/parser_prod.nit:3042 */
   CALL_parser___parser_prod___AParam___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:2993 */
+  /* parser/parser_prod.nit:3043 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2993);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3043);
   }
   ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:2994 */
+  /* parser/parser_prod.nit:3044 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2994);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3044);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:2995 */
+  /* parser/parser_prod.nit:3045 */
   ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:2996 */
+  /* parser/parser_prod.nit:3046 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -16239,16 +16512,16 @@ void parser___parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2, v
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:2997 */
+    /* parser/parser_prod.nit:3047 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2997);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3047);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   }
-  /* ./parser//parser_prod.nit:2999 */
+  /* parser/parser_prod.nit:3049 */
   ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[4]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:3000 */
+  /* parser/parser_prod.nit:3050 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -16263,10 +16536,10 @@ void parser___parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2, v
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3001 */
+    /* parser/parser_prod.nit:3051 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3001);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3051);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   }
@@ -16281,7 +16554,7 @@ void parser___parser_prod___AParam___replace_child(val_t p0, val_t p1, val_t p2)
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3005;
+  fra.me.line = 3055;
   fra.me.meth = LOCATE_parser___parser_prod___AParam___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -16293,11 +16566,11 @@ void parser___parser_prod___AParam___replace_child(val_t p0, val_t p1, val_t p2)
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3007 */
+  /* parser/parser_prod.nit:3057 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3007);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3057);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -16307,7 +16580,7 @@ void parser___parser_prod___AParam___replace_child(val_t p0, val_t p1, val_t p2)
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3008 */
+    /* parser/parser_prod.nit:3058 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -16322,28 +16595,28 @@ void parser___parser_prod___AParam___replace_child(val_t p0, val_t p1, val_t p2)
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3009 */
+      /* parser/parser_prod.nit:3059 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3009);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3059);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3010 */
+      /* parser/parser_prod.nit:3060 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3010);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3060);
       }
-      /* ./parser//parser_prod.nit:3011 */
+      /* parser/parser_prod.nit:3061 */
       ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3013 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3013);
+      /* parser/parser_prod.nit:3063 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3063);
     }
-    /* ./parser//parser_prod.nit:3015 */
+    /* parser/parser_prod.nit:3065 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3017 */
+  /* parser/parser_prod.nit:3067 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -16358,7 +16631,7 @@ void parser___parser_prod___AParam___replace_child(val_t p0, val_t p1, val_t p2)
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3018 */
+    /* parser/parser_prod.nit:3068 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -16373,28 +16646,28 @@ void parser___parser_prod___AParam___replace_child(val_t p0, val_t p1, val_t p2)
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3019 */
+      /* parser/parser_prod.nit:3069 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3019);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3069);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3020 */
+      /* parser/parser_prod.nit:3070 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3020);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3070);
       }
-      /* ./parser//parser_prod.nit:3021 */
+      /* parser/parser_prod.nit:3071 */
       ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3023 */
+      /* parser/parser_prod.nit:3073 */
       ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3025 */
+    /* parser/parser_prod.nit:3075 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3027 */
+  /* parser/parser_prod.nit:3077 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -16409,7 +16682,7 @@ void parser___parser_prod___AParam___replace_child(val_t p0, val_t p1, val_t p2)
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3028 */
+    /* parser/parser_prod.nit:3078 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -16424,25 +16697,25 @@ void parser___parser_prod___AParam___replace_child(val_t p0, val_t p1, val_t p2)
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3029 */
+      /* parser/parser_prod.nit:3079 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3029);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3079);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3030 */
+      /* parser/parser_prod.nit:3080 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TDotdotdot, ID_parser___parser_nodes___TDotdotdot)) /*cast TDotdotdot*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3030);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3080);
       }
-      /* ./parser//parser_prod.nit:3031 */
+      /* parser/parser_prod.nit:3081 */
       ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3033 */
+      /* parser/parser_prod.nit:3083 */
       ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3035 */
+    /* parser/parser_prod.nit:3085 */
     goto label1;
   }
   label1: while(0);
@@ -16456,7 +16729,7 @@ void parser___parser_prod___AParam___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3039;
+  fra.me.line = 3089;
   fra.me.meth = LOCATE_parser___parser_prod___AParam___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -16467,17 +16740,17 @@ void parser___parser_prod___AParam___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:3039 */
+  /* parser/parser_prod.nit:3089 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3041 */
+  /* parser/parser_prod.nit:3091 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3041);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3091);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:3042 */
+  /* parser/parser_prod.nit:3092 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -16493,16 +16766,16 @@ void parser___parser_prod___AParam___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3043 */
+    /* parser/parser_prod.nit:3093 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3043);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3093);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:3045 */
+  /* parser/parser_prod.nit:3095 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -16518,12 +16791,12 @@ void parser___parser_prod___AParam___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3046 */
+    /* parser/parser_prod.nit:3096 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TDotdotdot, ID_parser___parser_nodes___TDotdotdot)) /*cast TDotdotdot*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3046);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3096);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -16537,7 +16810,7 @@ void parser___parser_prod___AClosureDecl___empty_init(val_t p0, int* init_table)
   if (init_table[itpos101]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3051;
+  fra.me.line = 3101;
   fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -16557,7 +16830,7 @@ void parser___parser_prod___AClosureDecl___init_aclosuredecl(val_t p0, val_t p1,
   if (init_table[itpos102]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3053;
+  fra.me.line = 3103;
   fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___init_aclosuredecl;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -16575,13 +16848,13 @@ void parser___parser_prod___AClosureDecl___init_aclosuredecl(val_t p0, val_t p1,
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
-  /* ./parser//parser_prod.nit:3053 */
+  /* parser/parser_prod.nit:3103 */
   fra.me.REG[6] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3061 */
+  /* parser/parser_prod.nit:3111 */
   CALL_parser___parser_prod___AClosureDecl___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
-  /* ./parser//parser_prod.nit:3062 */
+  /* parser/parser_prod.nit:3112 */
   ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[6]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:3063 */
+  /* parser/parser_prod.nit:3113 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -16596,55 +16869,55 @@ void parser___parser_prod___AClosureDecl___init_aclosuredecl(val_t p0, val_t p1,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3064 */
+    /* parser/parser_prod.nit:3114 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3064);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3114);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
   }
-  /* ./parser//parser_prod.nit:3066 */
+  /* parser/parser_prod.nit:3116 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3066);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3116);
   }
   ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[6]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:3067 */
+  /* parser/parser_prod.nit:3117 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3067);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3117);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
-  /* ./parser//parser_prod.nit:3068 */
+  /* parser/parser_prod.nit:3118 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3068);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3118);
   }
   ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[6]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:3069 */
+  /* parser/parser_prod.nit:3119 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3069);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3119);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
-  /* ./parser//parser_prod.nit:3070 */
+  /* parser/parser_prod.nit:3120 */
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3070);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3120);
   }
   ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[6]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:3071 */
+  /* parser/parser_prod.nit:3121 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3071);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3121);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-  /* ./parser//parser_prod.nit:3072 */
+  /* parser/parser_prod.nit:3122 */
   ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[6]) = fra.me.REG[5];
-  /* ./parser//parser_prod.nit:3073 */
+  /* parser/parser_prod.nit:3123 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -16659,10 +16932,10 @@ void parser___parser_prod___AClosureDecl___init_aclosuredecl(val_t p0, val_t p1,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3074 */
+    /* parser/parser_prod.nit:3124 */
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3074);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3124);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
   }
@@ -16677,7 +16950,7 @@ void parser___parser_prod___AClosureDecl___replace_child(val_t p0, val_t p1, val
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3078;
+  fra.me.line = 3128;
   fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -16689,7 +16962,7 @@ void parser___parser_prod___AClosureDecl___replace_child(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3080 */
+  /* parser/parser_prod.nit:3130 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -16704,7 +16977,7 @@ void parser___parser_prod___AClosureDecl___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3081 */
+    /* parser/parser_prod.nit:3131 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -16719,32 +16992,32 @@ void parser___parser_prod___AClosureDecl___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3082 */
+      /* parser/parser_prod.nit:3132 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3082);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3132);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3083 */
+      /* parser/parser_prod.nit:3133 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwbreak, ID_parser___parser_nodes___TKwbreak)) /*cast TKwbreak*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3083);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3133);
       }
-      /* ./parser//parser_prod.nit:3084 */
+      /* parser/parser_prod.nit:3134 */
       ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3086 */
+      /* parser/parser_prod.nit:3136 */
       ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3088 */
+    /* parser/parser_prod.nit:3138 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3090 */
+  /* parser/parser_prod.nit:3140 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 3090);
+    nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 3140);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -16754,7 +17027,7 @@ void parser___parser_prod___AClosureDecl___replace_child(val_t p0, val_t p1, val
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3091 */
+    /* parser/parser_prod.nit:3141 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -16769,32 +17042,32 @@ void parser___parser_prod___AClosureDecl___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3092 */
+      /* parser/parser_prod.nit:3142 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3092);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3142);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3093 */
+      /* parser/parser_prod.nit:3143 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast TBang*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3093);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3143);
       }
-      /* ./parser//parser_prod.nit:3094 */
+      /* parser/parser_prod.nit:3144 */
       ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3096 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3096);
+      /* parser/parser_prod.nit:3146 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3146);
     }
-    /* ./parser//parser_prod.nit:3098 */
+    /* parser/parser_prod.nit:3148 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3100 */
+  /* parser/parser_prod.nit:3150 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3100);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3150);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -16804,7 +17077,7 @@ void parser___parser_prod___AClosureDecl___replace_child(val_t p0, val_t p1, val
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3101 */
+    /* parser/parser_prod.nit:3151 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -16819,32 +17092,32 @@ void parser___parser_prod___AClosureDecl___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3102 */
+      /* parser/parser_prod.nit:3152 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3102);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3152);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3103 */
+      /* parser/parser_prod.nit:3153 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3103);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3153);
       }
-      /* ./parser//parser_prod.nit:3104 */
+      /* parser/parser_prod.nit:3154 */
       ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3106 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3106);
+      /* parser/parser_prod.nit:3156 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3156);
     }
-    /* ./parser//parser_prod.nit:3108 */
+    /* parser/parser_prod.nit:3158 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3110 */
+  /* parser/parser_prod.nit:3160 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser___parser_prod, 3110);
+    nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser___parser_prod, 3160);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -16854,7 +17127,7 @@ void parser___parser_prod___AClosureDecl___replace_child(val_t p0, val_t p1, val
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3111 */
+    /* parser/parser_prod.nit:3161 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -16869,28 +17142,28 @@ void parser___parser_prod___AClosureDecl___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3112 */
+      /* parser/parser_prod.nit:3162 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3112);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3162);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3113 */
+      /* parser/parser_prod.nit:3163 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3113);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3163);
       }
-      /* ./parser//parser_prod.nit:3114 */
+      /* parser/parser_prod.nit:3164 */
       ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3116 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3116);
+      /* parser/parser_prod.nit:3166 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3166);
     }
-    /* ./parser//parser_prod.nit:3118 */
+    /* parser/parser_prod.nit:3168 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3120 */
+  /* parser/parser_prod.nit:3170 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -16905,7 +17178,7 @@ void parser___parser_prod___AClosureDecl___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3121 */
+    /* parser/parser_prod.nit:3171 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -16920,25 +17193,25 @@ void parser___parser_prod___AClosureDecl___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3122 */
+      /* parser/parser_prod.nit:3172 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3122);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3172);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3123 */
+      /* parser/parser_prod.nit:3173 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3123);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3173);
       }
-      /* ./parser//parser_prod.nit:3124 */
+      /* parser/parser_prod.nit:3174 */
       ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3126 */
+      /* parser/parser_prod.nit:3176 */
       ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3128 */
+    /* parser/parser_prod.nit:3178 */
     goto label1;
   }
   label1: while(0);
@@ -16952,7 +17225,7 @@ void parser___parser_prod___AClosureDecl___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3132;
+  fra.me.line = 3182;
   fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -16963,9 +17236,9 @@ void parser___parser_prod___AClosureDecl___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:3132 */
+  /* parser/parser_prod.nit:3182 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3134 */
+  /* parser/parser_prod.nit:3184 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -16981,40 +17254,40 @@ void parser___parser_prod___AClosureDecl___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3135 */
+    /* parser/parser_prod.nit:3185 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwbreak, ID_parser___parser_nodes___TKwbreak)) /*cast TKwbreak*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3135);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3185);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:3137 */
+  /* parser/parser_prod.nit:3187 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 3137);
+    nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 3187);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:3138 */
+  /* parser/parser_prod.nit:3188 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3138);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3188);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:3139 */
+  /* parser/parser_prod.nit:3189 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser___parser_prod, 3139);
+    nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser___parser_prod, 3189);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:3140 */
+  /* parser/parser_prod.nit:3190 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -17030,12 +17303,12 @@ void parser___parser_prod___AClosureDecl___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3141 */
+    /* parser/parser_prod.nit:3191 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3141);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3191);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -17049,7 +17322,7 @@ void parser___parser_prod___AType___empty_init(val_t p0, int* init_table){
   if (init_table[itpos103]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3146;
+  fra.me.line = 3196;
   fra.me.meth = LOCATE_parser___parser_prod___AType___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -17069,7 +17342,7 @@ void parser___parser_prod___AType___init_atype(val_t p0, val_t p1, val_t p2, val
   if (init_table[itpos104]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3148;
+  fra.me.line = 3198;
   fra.me.meth = LOCATE_parser___parser_prod___AType___init_atype;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -17083,13 +17356,13 @@ void parser___parser_prod___AType___init_atype(val_t p0, val_t p1, val_t p2, val
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:3148 */
+  /* parser/parser_prod.nit:3198 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3154 */
+  /* parser/parser_prod.nit:3204 */
   CALL_parser___parser_prod___AType___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:3155 */
+  /* parser/parser_prod.nit:3205 */
   ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:3156 */
+  /* parser/parser_prod.nit:3206 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -17104,24 +17377,24 @@ void parser___parser_prod___AType___init_atype(val_t p0, val_t p1, val_t p2, val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3157 */
+    /* parser/parser_prod.nit:3207 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3157);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3207);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
   }
-  /* ./parser//parser_prod.nit:3159 */
+  /* parser/parser_prod.nit:3209 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3159);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3209);
   }
   ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:3160 */
+  /* parser/parser_prod.nit:3210 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3160);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3210);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AType___init_atype_1));
@@ -17134,7 +17407,7 @@ void parser___parser_prod___AType___init_atype(val_t p0, val_t p1, val_t p2, val
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:3161 */
+    /* parser/parser_prod.nit:3211 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -17148,21 +17421,21 @@ void parser___parser_prod___AType___init_atype(val_t p0, val_t p1, val_t p2, val
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:3162 */
+    /* parser/parser_prod.nit:3212 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3162);
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3212);
     }
-    /* ./parser//parser_prod.nit:3163 */
+    /* parser/parser_prod.nit:3213 */
     REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(closctx->REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3163);
+      nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3213);
     }
     fra.me.REG[1] = ATTR_parser___parser_nodes___AType____n_types(closctx->REG[4]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:3164 */
+    /* parser/parser_prod.nit:3214 */
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
     stack_frame_head = fra.me.prev;
     return;
@@ -17177,7 +17450,7 @@ void parser___parser_prod___AType___replace_child(val_t p0, val_t p1, val_t p2){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3168;
+  fra.me.line = 3218;
   fra.me.meth = LOCATE_parser___parser_prod___AType___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -17189,7 +17462,7 @@ void parser___parser_prod___AType___replace_child(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3170 */
+  /* parser/parser_prod.nit:3220 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -17204,7 +17477,7 @@ void parser___parser_prod___AType___replace_child(val_t p0, val_t p1, val_t p2){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3171 */
+    /* parser/parser_prod.nit:3221 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -17219,32 +17492,32 @@ void parser___parser_prod___AType___replace_child(val_t p0, val_t p1, val_t p2){
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3172 */
+      /* parser/parser_prod.nit:3222 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3172);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3222);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3173 */
+      /* parser/parser_prod.nit:3223 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnullable, ID_parser___parser_nodes___TKwnullable)) /*cast TKwnullable*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3173);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3223);
       }
-      /* ./parser//parser_prod.nit:3174 */
+      /* parser/parser_prod.nit:3224 */
       ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3176 */
+      /* parser/parser_prod.nit:3226 */
       ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3178 */
+    /* parser/parser_prod.nit:3228 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3180 */
+  /* parser/parser_prod.nit:3230 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3180);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3230);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -17254,7 +17527,7 @@ void parser___parser_prod___AType___replace_child(val_t p0, val_t p1, val_t p2){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3181 */
+    /* parser/parser_prod.nit:3231 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -17269,54 +17542,54 @@ void parser___parser_prod___AType___replace_child(val_t p0, val_t p1, val_t p2){
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3182 */
+      /* parser/parser_prod.nit:3232 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3182);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3232);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3183 */
+      /* parser/parser_prod.nit:3233 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3183);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3233);
       }
-      /* ./parser//parser_prod.nit:3184 */
+      /* parser/parser_prod.nit:3234 */
       ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3186 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3186);
+      /* parser/parser_prod.nit:3236 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3236);
     }
-    /* ./parser//parser_prod.nit:3188 */
+    /* parser/parser_prod.nit:3238 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3190 */
+  /* parser/parser_prod.nit:3240 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3190);
+    nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3240);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:3190 */
+      /* parser/parser_prod.nit:3240 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:3191 */
+      /* parser/parser_prod.nit:3241 */
       REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3191);
+        nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3241);
       }
       fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
@@ -17333,7 +17606,7 @@ void parser___parser_prod___AType___replace_child(val_t p0, val_t p1, val_t p2){
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:3192 */
+        /* parser/parser_prod.nit:3242 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -17348,47 +17621,47 @@ void parser___parser_prod___AType___replace_child(val_t p0, val_t p1, val_t p2){
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:3193 */
+          /* parser/parser_prod.nit:3243 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3193);
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3243);
           }
-          /* ./parser//parser_prod.nit:3194 */
+          /* parser/parser_prod.nit:3244 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3194);
+            nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3244);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:3195 */
+          /* parser/parser_prod.nit:3245 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3195);
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3245);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:3197 */
+          /* parser/parser_prod.nit:3247 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3197);
+            nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3247);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:3199 */
+        /* parser/parser_prod.nit:3249 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label2;
     }
   }
@@ -17404,7 +17677,7 @@ void parser___parser_prod___AType___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3204;
+  fra.me.line = 3254;
   fra.me.meth = LOCATE_parser___parser_prod___AType___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -17415,9 +17688,9 @@ void parser___parser_prod___AType___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:3204 */
+  /* parser/parser_prod.nit:3254 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3206 */
+  /* parser/parser_prod.nit:3256 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -17433,28 +17706,28 @@ void parser___parser_prod___AType___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3207 */
+    /* parser/parser_prod.nit:3257 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwnullable, ID_parser___parser_nodes___TKwnullable)) /*cast TKwnullable*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3207);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3257);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:3209 */
+  /* parser/parser_prod.nit:3259 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3209);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3259);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:3210 */
+  /* parser/parser_prod.nit:3260 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3210);
+    nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3260);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AType___visit_all_1));
@@ -17477,7 +17750,7 @@ void parser___parser_prod___AType___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:3211 */
+    /* parser/parser_prod.nit:3261 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -17489,7 +17762,7 @@ void parser___parser_prod___ALabel___empty_init(val_t p0, int* init_table){
   if (init_table[itpos105]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3216;
+  fra.me.line = 3266;
   fra.me.meth = LOCATE_parser___parser_prod___ALabel___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -17508,7 +17781,7 @@ void parser___parser_prod___ALabel___init_alabel(val_t p0, val_t p1, val_t p2, i
   if (init_table[itpos106]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3218;
+  fra.me.line = 3268;
   fra.me.meth = LOCATE_parser___parser_prod___ALabel___init_alabel;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -17520,34 +17793,34 @@ void parser___parser_prod___ALabel___init_alabel(val_t p0, val_t p1, val_t p2, i
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3218 */
+  /* parser/parser_prod.nit:3268 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3223 */
+  /* parser/parser_prod.nit:3273 */
   CALL_parser___parser_prod___ALabel___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:3224 */
+  /* parser/parser_prod.nit:3274 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3224);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3274);
   }
   ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:3225 */
+  /* parser/parser_prod.nit:3275 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3225);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3275);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:3226 */
+  /* parser/parser_prod.nit:3276 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3226);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3276);
   }
   ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:3227 */
+  /* parser/parser_prod.nit:3277 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3227);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3277);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -17561,7 +17834,7 @@ void parser___parser_prod___ALabel___replace_child(val_t p0, val_t p1, val_t p2)
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3230;
+  fra.me.line = 3280;
   fra.me.meth = LOCATE_parser___parser_prod___ALabel___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -17573,11 +17846,11 @@ void parser___parser_prod___ALabel___replace_child(val_t p0, val_t p1, val_t p2)
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3232 */
+  /* parser/parser_prod.nit:3282 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser___parser_prod, 3232);
+    nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser___parser_prod, 3282);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -17587,7 +17860,7 @@ void parser___parser_prod___ALabel___replace_child(val_t p0, val_t p1, val_t p2)
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3233 */
+    /* parser/parser_prod.nit:3283 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -17602,32 +17875,32 @@ void parser___parser_prod___ALabel___replace_child(val_t p0, val_t p1, val_t p2)
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3234 */
+      /* parser/parser_prod.nit:3284 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3234);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3284);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3235 */
+      /* parser/parser_prod.nit:3285 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwlabel, ID_parser___parser_nodes___TKwlabel)) /*cast TKwlabel*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3235);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3285);
       }
-      /* ./parser//parser_prod.nit:3236 */
+      /* parser/parser_prod.nit:3286 */
       ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3238 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3238);
+      /* parser/parser_prod.nit:3288 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3288);
     }
-    /* ./parser//parser_prod.nit:3240 */
+    /* parser/parser_prod.nit:3290 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3242 */
+  /* parser/parser_prod.nit:3292 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3242);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3292);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -17637,7 +17910,7 @@ void parser___parser_prod___ALabel___replace_child(val_t p0, val_t p1, val_t p2)
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3243 */
+    /* parser/parser_prod.nit:3293 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -17652,25 +17925,25 @@ void parser___parser_prod___ALabel___replace_child(val_t p0, val_t p1, val_t p2)
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3244 */
+      /* parser/parser_prod.nit:3294 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3244);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3294);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3245 */
+      /* parser/parser_prod.nit:3295 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3245);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3295);
       }
-      /* ./parser//parser_prod.nit:3246 */
+      /* parser/parser_prod.nit:3296 */
       ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3248 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3248);
+      /* parser/parser_prod.nit:3298 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3298);
     }
-    /* ./parser//parser_prod.nit:3250 */
+    /* parser/parser_prod.nit:3300 */
     goto label1;
   }
   label1: while(0);
@@ -17683,7 +17956,7 @@ void parser___parser_prod___ALabel___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3254;
+  fra.me.line = 3304;
   fra.me.meth = LOCATE_parser___parser_prod___ALabel___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -17693,19 +17966,19 @@ void parser___parser_prod___ALabel___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:3256 */
+  /* parser/parser_prod.nit:3306 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser___parser_prod, 3256);
+    nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser___parser_prod, 3306);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:3257 */
+  /* parser/parser_prod.nit:3307 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3257);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3307);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -17719,7 +17992,7 @@ void parser___parser_prod___ABlockExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos107]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3261;
+  fra.me.line = 3311;
   fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -17730,25 +18003,53 @@ void parser___parser_prod___ABlockExpr___empty_init(val_t p0, int* init_table){
   init_table[itpos107] = 1;
   return;
 }
-void parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0, val_t p1, int* init_table){
+void parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0, val_t p1, val_t p2, int* init_table){
   int itpos108 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABlockExpr].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t REGB1;
   val_t tmp;
   if (init_table[itpos108]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3263;
+  fra.me.line = 3313;
   fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___init_ablockexpr;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:3267 */
+  fra.me.REG[2] = p2;
+  /* parser/parser_prod.nit:3318 */
   CALL_parser___parser_prod___ABlockExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABlockExpr___init_ablockexpr_1));
+  /* parser/parser_prod.nit:3324 */
+  ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[0]) = fra.me.REG[2];
+  /* parser/parser_prod.nit:3325 */
+  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:3326 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3326);
+    }
+    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+  }
   stack_frame_head = fra.me.prev;
   init_table[itpos108] = 1;
   return;
@@ -17758,7 +18059,7 @@ void parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0, val_t p1, int
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:3268 */
+    /* parser/parser_prod.nit:3319 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -17772,21 +18073,21 @@ void parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0, val_t p1, int
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:3269 */
+    /* parser/parser_prod.nit:3320 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3269);
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3320);
     }
-    /* ./parser//parser_prod.nit:3270 */
+    /* parser/parser_prod.nit:3321 */
     REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(closctx->REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3270);
+      nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3321);
     }
     fra.me.REG[1] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(closctx->REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:3271 */
+    /* parser/parser_prod.nit:3322 */
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -17801,7 +18102,7 @@ void parser___parser_prod___ABlockExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3275;
+  fra.me.line = 3330;
   fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -17813,33 +18114,33 @@ void parser___parser_prod___ABlockExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3277 */
+  /* parser/parser_prod.nit:3332 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3277);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3332);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:3277 */
+      /* parser/parser_prod.nit:3332 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:3278 */
+      /* parser/parser_prod.nit:3333 */
       REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3278);
+        nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3333);
       }
       fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
@@ -17856,7 +18157,7 @@ void parser___parser_prod___ABlockExpr___replace_child(val_t p0, val_t p1, val_t
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:3279 */
+        /* parser/parser_prod.nit:3334 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -17871,78 +18172,159 @@ void parser___parser_prod___ABlockExpr___replace_child(val_t p0, val_t p1, val_t
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:3280 */
+          /* parser/parser_prod.nit:3335 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3280);
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3335);
           }
-          /* ./parser//parser_prod.nit:3281 */
+          /* parser/parser_prod.nit:3336 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3281);
+            nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3336);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:3282 */
+          /* parser/parser_prod.nit:3337 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3282);
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3337);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:3284 */
+          /* parser/parser_prod.nit:3339 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3284);
+            nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3339);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:3286 */
+        /* parser/parser_prod.nit:3341 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label2;
     }
   }
   label2: while(0);
+  /* parser/parser_prod.nit:3344 */
+  fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+      REGB0 = REGB1;
+    }
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:3345 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:3346 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3346);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:3347 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast TKwend*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3347);
+      }
+      /* parser/parser_prod.nit:3348 */
+      ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:3350 */
+      ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[0]) = NIT_NULL;
+    }
+    /* parser/parser_prod.nit:3352 */
+    goto label1;
+  }
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return;
 }
 void parser___parser_prod___ABlockExpr___visit_all(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
+  val_t REGB1;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3291;
+  fra.me.line = 3356;
   fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___visit_all;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 4;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:3293 */
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  /* parser/parser_prod.nit:3356 */
+  fra.me.REG[2] = fra.me.REG[0];
+  /* parser/parser_prod.nit:3358 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3293);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3358);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[2]);
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABlockExpr___visit_all_1));
+  /* parser/parser_prod.nit:3361 */
+  fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[2]);
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:3362 */
+    fra.me.REG[2] = ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[2]);
+    REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast TKwend*/;
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3362);
+    }
+    CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
-  fra.me.REG[0] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABlockExpr___visit_all_1));
   stack_frame_head = fra.me.prev;
   return;
 }
@@ -17962,7 +18344,7 @@ void parser___parser_prod___ABlockExpr___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:3294 */
+    /* parser/parser_prod.nit:3359 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -17974,7 +18356,7 @@ void parser___parser_prod___AVardeclExpr___empty_init(val_t p0, int* init_table)
   if (init_table[itpos109]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3299;
+  fra.me.line = 3367;
   fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -17994,7 +18376,7 @@ void parser___parser_prod___AVardeclExpr___init_avardeclexpr(val_t p0, val_t p1,
   if (init_table[itpos110]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3301;
+  fra.me.line = 3369;
   fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___init_avardeclexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -18012,39 +18394,39 @@ void parser___parser_prod___AVardeclExpr___init_avardeclexpr(val_t p0, val_t p1,
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
-  /* ./parser//parser_prod.nit:3301 */
+  /* parser/parser_prod.nit:3369 */
   fra.me.REG[6] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3309 */
+  /* parser/parser_prod.nit:3377 */
   CALL_parser___parser_prod___AVardeclExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
-  /* ./parser//parser_prod.nit:3310 */
+  /* parser/parser_prod.nit:3378 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3310);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3378);
   }
   ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[6]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:3311 */
+  /* parser/parser_prod.nit:3379 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3311);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3379);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-  /* ./parser//parser_prod.nit:3312 */
+  /* parser/parser_prod.nit:3380 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3312);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3380);
   }
   ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[6]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:3313 */
+  /* parser/parser_prod.nit:3381 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3313);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3381);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
-  /* ./parser//parser_prod.nit:3314 */
+  /* parser/parser_prod.nit:3382 */
   ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[6]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:3315 */
+  /* parser/parser_prod.nit:3383 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -18059,16 +18441,16 @@ void parser___parser_prod___AVardeclExpr___init_avardeclexpr(val_t p0, val_t p1,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3316 */
+    /* parser/parser_prod.nit:3384 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3316);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3384);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
   }
-  /* ./parser//parser_prod.nit:3318 */
+  /* parser/parser_prod.nit:3386 */
   ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[6]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:3319 */
+  /* parser/parser_prod.nit:3387 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -18083,16 +18465,16 @@ void parser___parser_prod___AVardeclExpr___init_avardeclexpr(val_t p0, val_t p1,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3320 */
+    /* parser/parser_prod.nit:3388 */
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3320);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3388);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
   }
-  /* ./parser//parser_prod.nit:3322 */
+  /* parser/parser_prod.nit:3390 */
   ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[6]) = fra.me.REG[5];
-  /* ./parser//parser_prod.nit:3323 */
+  /* parser/parser_prod.nit:3391 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -18107,10 +18489,10 @@ void parser___parser_prod___AVardeclExpr___init_avardeclexpr(val_t p0, val_t p1,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3324 */
+    /* parser/parser_prod.nit:3392 */
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3324);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3392);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
   }
@@ -18125,7 +18507,7 @@ void parser___parser_prod___AVardeclExpr___replace_child(val_t p0, val_t p1, val
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3328;
+  fra.me.line = 3396;
   fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -18137,11 +18519,11 @@ void parser___parser_prod___AVardeclExpr___replace_child(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3330 */
+  /* parser/parser_prod.nit:3398 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 3330);
+    nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 3398);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -18151,7 +18533,7 @@ void parser___parser_prod___AVardeclExpr___replace_child(val_t p0, val_t p1, val
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3331 */
+    /* parser/parser_prod.nit:3399 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -18166,32 +18548,32 @@ void parser___parser_prod___AVardeclExpr___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3332 */
+      /* parser/parser_prod.nit:3400 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3332);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3400);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3333 */
+      /* parser/parser_prod.nit:3401 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast TKwvar*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3333);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3401);
       }
-      /* ./parser//parser_prod.nit:3334 */
+      /* parser/parser_prod.nit:3402 */
       ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3336 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3336);
+      /* parser/parser_prod.nit:3404 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3404);
     }
-    /* ./parser//parser_prod.nit:3338 */
+    /* parser/parser_prod.nit:3406 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3340 */
+  /* parser/parser_prod.nit:3408 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3340);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3408);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -18201,7 +18583,7 @@ void parser___parser_prod___AVardeclExpr___replace_child(val_t p0, val_t p1, val
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3341 */
+    /* parser/parser_prod.nit:3409 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -18216,28 +18598,28 @@ void parser___parser_prod___AVardeclExpr___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3342 */
+      /* parser/parser_prod.nit:3410 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3342);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3410);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3343 */
+      /* parser/parser_prod.nit:3411 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3343);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3411);
       }
-      /* ./parser//parser_prod.nit:3344 */
+      /* parser/parser_prod.nit:3412 */
       ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3346 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3346);
+      /* parser/parser_prod.nit:3414 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3414);
     }
-    /* ./parser//parser_prod.nit:3348 */
+    /* parser/parser_prod.nit:3416 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3350 */
+  /* parser/parser_prod.nit:3418 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -18252,7 +18634,7 @@ void parser___parser_prod___AVardeclExpr___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3351 */
+    /* parser/parser_prod.nit:3419 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -18267,28 +18649,28 @@ void parser___parser_prod___AVardeclExpr___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3352 */
+      /* parser/parser_prod.nit:3420 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3352);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3420);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3353 */
+      /* parser/parser_prod.nit:3421 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3353);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3421);
       }
-      /* ./parser//parser_prod.nit:3354 */
+      /* parser/parser_prod.nit:3422 */
       ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3356 */
+      /* parser/parser_prod.nit:3424 */
       ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3358 */
+    /* parser/parser_prod.nit:3426 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3360 */
+  /* parser/parser_prod.nit:3428 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -18303,7 +18685,7 @@ void parser___parser_prod___AVardeclExpr___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3361 */
+    /* parser/parser_prod.nit:3429 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -18318,28 +18700,28 @@ void parser___parser_prod___AVardeclExpr___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3362 */
+      /* parser/parser_prod.nit:3430 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3362);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3430);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3363 */
+      /* parser/parser_prod.nit:3431 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3363);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3431);
       }
-      /* ./parser//parser_prod.nit:3364 */
+      /* parser/parser_prod.nit:3432 */
       ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3366 */
+      /* parser/parser_prod.nit:3434 */
       ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3368 */
+    /* parser/parser_prod.nit:3436 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3370 */
+  /* parser/parser_prod.nit:3438 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -18354,7 +18736,7 @@ void parser___parser_prod___AVardeclExpr___replace_child(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3371 */
+    /* parser/parser_prod.nit:3439 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -18369,25 +18751,25 @@ void parser___parser_prod___AVardeclExpr___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3372 */
+      /* parser/parser_prod.nit:3440 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3372);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3440);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3373 */
+      /* parser/parser_prod.nit:3441 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3373);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3441);
       }
-      /* ./parser//parser_prod.nit:3374 */
+      /* parser/parser_prod.nit:3442 */
       ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3376 */
+      /* parser/parser_prod.nit:3444 */
       ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3378 */
+    /* parser/parser_prod.nit:3446 */
     goto label1;
   }
   label1: while(0);
@@ -18401,7 +18783,7 @@ void parser___parser_prod___AVardeclExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3382;
+  fra.me.line = 3450;
   fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -18412,25 +18794,25 @@ void parser___parser_prod___AVardeclExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:3382 */
+  /* parser/parser_prod.nit:3450 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3384 */
+  /* parser/parser_prod.nit:3452 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 3384);
+    nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 3452);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:3385 */
+  /* parser/parser_prod.nit:3453 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3385);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3453);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:3386 */
+  /* parser/parser_prod.nit:3454 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -18446,16 +18828,16 @@ void parser___parser_prod___AVardeclExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3387 */
+    /* parser/parser_prod.nit:3455 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3387);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3455);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:3389 */
+  /* parser/parser_prod.nit:3457 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -18471,16 +18853,16 @@ void parser___parser_prod___AVardeclExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3390 */
+    /* parser/parser_prod.nit:3458 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3390);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3458);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:3392 */
+  /* parser/parser_prod.nit:3460 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -18496,12 +18878,12 @@ void parser___parser_prod___AVardeclExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3393 */
+    /* parser/parser_prod.nit:3461 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3393);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3461);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -18515,7 +18897,7 @@ void parser___parser_prod___AReturnExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos111]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3398;
+  fra.me.line = 3466;
   fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -18535,7 +18917,7 @@ void parser___parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1, v
   if (init_table[itpos112]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3400;
+  fra.me.line = 3468;
   fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___init_areturnexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -18546,11 +18928,11 @@ void parser___parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3405 */
+  /* parser/parser_prod.nit:3473 */
   CALL_parser___parser_prod___AReturnExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./parser//parser_prod.nit:3406 */
+  /* parser/parser_prod.nit:3474 */
   ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:3407 */
+  /* parser/parser_prod.nit:3475 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -18565,16 +18947,16 @@ void parser___parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1, v
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3408 */
+    /* parser/parser_prod.nit:3476 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3408);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3476);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
-  /* ./parser//parser_prod.nit:3410 */
+  /* parser/parser_prod.nit:3478 */
   ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:3411 */
+  /* parser/parser_prod.nit:3479 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -18589,10 +18971,10 @@ void parser___parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1, v
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3412 */
+    /* parser/parser_prod.nit:3480 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3412);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3480);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
   }
@@ -18607,7 +18989,7 @@ void parser___parser_prod___AReturnExpr___replace_child(val_t p0, val_t p1, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3416;
+  fra.me.line = 3484;
   fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -18619,7 +19001,7 @@ void parser___parser_prod___AReturnExpr___replace_child(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3418 */
+  /* parser/parser_prod.nit:3486 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -18634,7 +19016,7 @@ void parser___parser_prod___AReturnExpr___replace_child(val_t p0, val_t p1, val_
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3419 */
+    /* parser/parser_prod.nit:3487 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -18649,28 +19031,28 @@ void parser___parser_prod___AReturnExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3420 */
+      /* parser/parser_prod.nit:3488 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3420);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3488);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3421 */
+      /* parser/parser_prod.nit:3489 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwreturn, ID_parser___parser_nodes___TKwreturn)) /*cast TKwreturn*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3421);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3489);
       }
-      /* ./parser//parser_prod.nit:3422 */
+      /* parser/parser_prod.nit:3490 */
       ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3424 */
+      /* parser/parser_prod.nit:3492 */
       ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3426 */
+    /* parser/parser_prod.nit:3494 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3428 */
+  /* parser/parser_prod.nit:3496 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -18685,7 +19067,7 @@ void parser___parser_prod___AReturnExpr___replace_child(val_t p0, val_t p1, val_
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3429 */
+    /* parser/parser_prod.nit:3497 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -18700,25 +19082,25 @@ void parser___parser_prod___AReturnExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3430 */
+      /* parser/parser_prod.nit:3498 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3430);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3498);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3431 */
+      /* parser/parser_prod.nit:3499 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3431);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3499);
       }
-      /* ./parser//parser_prod.nit:3432 */
+      /* parser/parser_prod.nit:3500 */
       ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3434 */
+      /* parser/parser_prod.nit:3502 */
       ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3436 */
+    /* parser/parser_prod.nit:3504 */
     goto label1;
   }
   label1: while(0);
@@ -18732,7 +19114,7 @@ void parser___parser_prod___AReturnExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3440;
+  fra.me.line = 3508;
   fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -18743,9 +19125,9 @@ void parser___parser_prod___AReturnExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:3440 */
+  /* parser/parser_prod.nit:3508 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3442 */
+  /* parser/parser_prod.nit:3510 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -18761,16 +19143,16 @@ void parser___parser_prod___AReturnExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3443 */
+    /* parser/parser_prod.nit:3511 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwreturn, ID_parser___parser_nodes___TKwreturn)) /*cast TKwreturn*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3443);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3511);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:3445 */
+  /* parser/parser_prod.nit:3513 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -18786,12 +19168,12 @@ void parser___parser_prod___AReturnExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3446 */
+    /* parser/parser_prod.nit:3514 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3446);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3514);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -18805,7 +19187,7 @@ void parser___parser_prod___ABreakExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos113]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3451;
+  fra.me.line = 3519;
   fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -18825,7 +19207,7 @@ void parser___parser_prod___ABreakExpr___init_abreakexpr(val_t p0, val_t p1, val
   if (init_table[itpos114]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3453;
+  fra.me.line = 3521;
   fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___init_abreakexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -18839,26 +19221,26 @@ void parser___parser_prod___ABreakExpr___init_abreakexpr(val_t p0, val_t p1, val
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:3453 */
+  /* parser/parser_prod.nit:3521 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3459 */
+  /* parser/parser_prod.nit:3527 */
   CALL_parser___parser_prod___ABreakExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:3460 */
+  /* parser/parser_prod.nit:3528 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3460);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3528);
   }
   ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:3461 */
+  /* parser/parser_prod.nit:3529 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3461);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3529);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:3462 */
+  /* parser/parser_prod.nit:3530 */
   ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:3463 */
+  /* parser/parser_prod.nit:3531 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -18873,16 +19255,16 @@ void parser___parser_prod___ABreakExpr___init_abreakexpr(val_t p0, val_t p1, val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3464 */
+    /* parser/parser_prod.nit:3532 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3464);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3532);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   }
-  /* ./parser//parser_prod.nit:3466 */
+  /* parser/parser_prod.nit:3534 */
   ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[4]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:3467 */
+  /* parser/parser_prod.nit:3535 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -18897,10 +19279,10 @@ void parser___parser_prod___ABreakExpr___init_abreakexpr(val_t p0, val_t p1, val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3468 */
+    /* parser/parser_prod.nit:3536 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3468);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3536);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   }
@@ -18915,7 +19297,7 @@ void parser___parser_prod___ABreakExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3472;
+  fra.me.line = 3540;
   fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -18927,11 +19309,11 @@ void parser___parser_prod___ABreakExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3474 */
+  /* parser/parser_prod.nit:3542 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 3474);
+    nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 3542);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -18941,7 +19323,7 @@ void parser___parser_prod___ABreakExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3475 */
+    /* parser/parser_prod.nit:3543 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -18956,28 +19338,28 @@ void parser___parser_prod___ABreakExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3476 */
+      /* parser/parser_prod.nit:3544 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3476);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3544);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3477 */
+      /* parser/parser_prod.nit:3545 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwbreak, ID_parser___parser_nodes___TKwbreak)) /*cast TKwbreak*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3477);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3545);
       }
-      /* ./parser//parser_prod.nit:3478 */
+      /* parser/parser_prod.nit:3546 */
       ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3480 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3480);
+      /* parser/parser_prod.nit:3548 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3548);
     }
-    /* ./parser//parser_prod.nit:3482 */
+    /* parser/parser_prod.nit:3550 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3484 */
+  /* parser/parser_prod.nit:3552 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -18992,7 +19374,7 @@ void parser___parser_prod___ABreakExpr___replace_child(val_t p0, val_t p1, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3485 */
+    /* parser/parser_prod.nit:3553 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -19007,28 +19389,28 @@ void parser___parser_prod___ABreakExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3486 */
+      /* parser/parser_prod.nit:3554 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3486);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3554);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3487 */
+      /* parser/parser_prod.nit:3555 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3487);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3555);
       }
-      /* ./parser//parser_prod.nit:3488 */
+      /* parser/parser_prod.nit:3556 */
       ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3490 */
+      /* parser/parser_prod.nit:3558 */
       ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3492 */
+    /* parser/parser_prod.nit:3560 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3494 */
+  /* parser/parser_prod.nit:3562 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -19043,7 +19425,7 @@ void parser___parser_prod___ABreakExpr___replace_child(val_t p0, val_t p1, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3495 */
+    /* parser/parser_prod.nit:3563 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -19058,25 +19440,25 @@ void parser___parser_prod___ABreakExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3496 */
+      /* parser/parser_prod.nit:3564 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3496);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3564);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3497 */
+      /* parser/parser_prod.nit:3565 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3497);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3565);
       }
-      /* ./parser//parser_prod.nit:3498 */
+      /* parser/parser_prod.nit:3566 */
       ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3500 */
+      /* parser/parser_prod.nit:3568 */
       ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3502 */
+    /* parser/parser_prod.nit:3570 */
     goto label1;
   }
   label1: while(0);
@@ -19090,7 +19472,7 @@ void parser___parser_prod___ABreakExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3506;
+  fra.me.line = 3574;
   fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -19101,17 +19483,17 @@ void parser___parser_prod___ABreakExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:3506 */
+  /* parser/parser_prod.nit:3574 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3508 */
+  /* parser/parser_prod.nit:3576 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 3508);
+    nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 3576);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:3509 */
+  /* parser/parser_prod.nit:3577 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -19127,16 +19509,16 @@ void parser___parser_prod___ABreakExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3510 */
+    /* parser/parser_prod.nit:3578 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3510);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3578);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:3512 */
+  /* parser/parser_prod.nit:3580 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -19152,12 +19534,12 @@ void parser___parser_prod___ABreakExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3513 */
+    /* parser/parser_prod.nit:3581 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3513);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3581);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -19171,7 +19553,7 @@ void parser___parser_prod___AAbortExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos115]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3518;
+  fra.me.line = 3586;
   fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -19190,7 +19572,7 @@ void parser___parser_prod___AAbortExpr___init_aabortexpr(val_t p0, val_t p1, int
   if (init_table[itpos116]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3520;
+  fra.me.line = 3588;
   fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___init_aabortexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -19200,21 +19582,21 @@ void parser___parser_prod___AAbortExpr___init_aabortexpr(val_t p0, val_t p1, int
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:3520 */
+  /* parser/parser_prod.nit:3588 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3524 */
+  /* parser/parser_prod.nit:3592 */
   CALL_parser___parser_prod___AAbortExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:3525 */
+  /* parser/parser_prod.nit:3593 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3525);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3593);
   }
   ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:3526 */
+  /* parser/parser_prod.nit:3594 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3526);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3594);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -19228,7 +19610,7 @@ void parser___parser_prod___AAbortExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3529;
+  fra.me.line = 3597;
   fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -19240,11 +19622,11 @@ void parser___parser_prod___AAbortExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3531 */
+  /* parser/parser_prod.nit:3599 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser___parser_prod, 3531);
+    nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser___parser_prod, 3599);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -19254,7 +19636,7 @@ void parser___parser_prod___AAbortExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3532 */
+    /* parser/parser_prod.nit:3600 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -19269,25 +19651,25 @@ void parser___parser_prod___AAbortExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3533 */
+      /* parser/parser_prod.nit:3601 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3533);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3601);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3534 */
+      /* parser/parser_prod.nit:3602 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwabort, ID_parser___parser_nodes___TKwabort)) /*cast TKwabort*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3534);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3602);
       }
-      /* ./parser//parser_prod.nit:3535 */
+      /* parser/parser_prod.nit:3603 */
       ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3537 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3537);
+      /* parser/parser_prod.nit:3605 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3605);
     }
-    /* ./parser//parser_prod.nit:3539 */
+    /* parser/parser_prod.nit:3607 */
     goto label1;
   }
   label1: while(0);
@@ -19300,7 +19682,7 @@ void parser___parser_prod___AAbortExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3543;
+  fra.me.line = 3611;
   fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -19309,11 +19691,11 @@ void parser___parser_prod___AAbortExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:3545 */
+  /* parser/parser_prod.nit:3613 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser___parser_prod, 3545);
+    nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser___parser_prod, 3613);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -19327,7 +19709,7 @@ void parser___parser_prod___AContinueExpr___empty_init(val_t p0, int* init_table
   if (init_table[itpos117]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3549;
+  fra.me.line = 3617;
   fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -19347,7 +19729,7 @@ void parser___parser_prod___AContinueExpr___init_acontinueexpr(val_t p0, val_t p
   if (init_table[itpos118]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3551;
+  fra.me.line = 3619;
   fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___init_acontinueexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -19360,11 +19742,11 @@ void parser___parser_prod___AContinueExpr___init_acontinueexpr(val_t p0, val_t p
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:3557 */
+  /* parser/parser_prod.nit:3625 */
   CALL_parser___parser_prod___AContinueExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./parser//parser_prod.nit:3558 */
+  /* parser/parser_prod.nit:3626 */
   ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:3559 */
+  /* parser/parser_prod.nit:3627 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -19379,16 +19761,16 @@ void parser___parser_prod___AContinueExpr___init_acontinueexpr(val_t p0, val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3560 */
+    /* parser/parser_prod.nit:3628 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3560);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3628);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
-  /* ./parser//parser_prod.nit:3562 */
+  /* parser/parser_prod.nit:3630 */
   ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:3563 */
+  /* parser/parser_prod.nit:3631 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -19403,16 +19785,16 @@ void parser___parser_prod___AContinueExpr___init_acontinueexpr(val_t p0, val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3564 */
+    /* parser/parser_prod.nit:3632 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3564);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3632);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
   }
-  /* ./parser//parser_prod.nit:3566 */
+  /* parser/parser_prod.nit:3634 */
   ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:3567 */
+  /* parser/parser_prod.nit:3635 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -19427,10 +19809,10 @@ void parser___parser_prod___AContinueExpr___init_acontinueexpr(val_t p0, val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3568 */
+    /* parser/parser_prod.nit:3636 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3568);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3636);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
   }
@@ -19445,7 +19827,7 @@ void parser___parser_prod___AContinueExpr___replace_child(val_t p0, val_t p1, va
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3572;
+  fra.me.line = 3640;
   fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -19457,7 +19839,7 @@ void parser___parser_prod___AContinueExpr___replace_child(val_t p0, val_t p1, va
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3574 */
+  /* parser/parser_prod.nit:3642 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -19472,7 +19854,7 @@ void parser___parser_prod___AContinueExpr___replace_child(val_t p0, val_t p1, va
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3575 */
+    /* parser/parser_prod.nit:3643 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -19487,28 +19869,28 @@ void parser___parser_prod___AContinueExpr___replace_child(val_t p0, val_t p1, va
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3576 */
+      /* parser/parser_prod.nit:3644 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3576);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3644);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3577 */
+      /* parser/parser_prod.nit:3645 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwcontinue, ID_parser___parser_nodes___TKwcontinue)) /*cast TKwcontinue*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3577);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3645);
       }
-      /* ./parser//parser_prod.nit:3578 */
+      /* parser/parser_prod.nit:3646 */
       ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3580 */
+      /* parser/parser_prod.nit:3648 */
       ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3582 */
+    /* parser/parser_prod.nit:3650 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3584 */
+  /* parser/parser_prod.nit:3652 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -19523,7 +19905,7 @@ void parser___parser_prod___AContinueExpr___replace_child(val_t p0, val_t p1, va
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3585 */
+    /* parser/parser_prod.nit:3653 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -19538,28 +19920,28 @@ void parser___parser_prod___AContinueExpr___replace_child(val_t p0, val_t p1, va
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3586 */
+      /* parser/parser_prod.nit:3654 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3586);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3654);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3587 */
+      /* parser/parser_prod.nit:3655 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3587);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3655);
       }
-      /* ./parser//parser_prod.nit:3588 */
+      /* parser/parser_prod.nit:3656 */
       ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3590 */
+      /* parser/parser_prod.nit:3658 */
       ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3592 */
+    /* parser/parser_prod.nit:3660 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3594 */
+  /* parser/parser_prod.nit:3662 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -19574,7 +19956,7 @@ void parser___parser_prod___AContinueExpr___replace_child(val_t p0, val_t p1, va
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3595 */
+    /* parser/parser_prod.nit:3663 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -19589,25 +19971,25 @@ void parser___parser_prod___AContinueExpr___replace_child(val_t p0, val_t p1, va
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3596 */
+      /* parser/parser_prod.nit:3664 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3596);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3664);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3597 */
+      /* parser/parser_prod.nit:3665 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3597);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3665);
       }
-      /* ./parser//parser_prod.nit:3598 */
+      /* parser/parser_prod.nit:3666 */
       ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3600 */
+      /* parser/parser_prod.nit:3668 */
       ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3602 */
+    /* parser/parser_prod.nit:3670 */
     goto label1;
   }
   label1: while(0);
@@ -19621,7 +20003,7 @@ void parser___parser_prod___AContinueExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3606;
+  fra.me.line = 3674;
   fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -19632,9 +20014,9 @@ void parser___parser_prod___AContinueExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:3606 */
+  /* parser/parser_prod.nit:3674 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3608 */
+  /* parser/parser_prod.nit:3676 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -19650,16 +20032,16 @@ void parser___parser_prod___AContinueExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3609 */
+    /* parser/parser_prod.nit:3677 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwcontinue, ID_parser___parser_nodes___TKwcontinue)) /*cast TKwcontinue*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3609);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3677);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:3611 */
+  /* parser/parser_prod.nit:3679 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -19675,16 +20057,16 @@ void parser___parser_prod___AContinueExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3612 */
+    /* parser/parser_prod.nit:3680 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3612);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3680);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:3614 */
+  /* parser/parser_prod.nit:3682 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -19700,12 +20082,12 @@ void parser___parser_prod___AContinueExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3615 */
+    /* parser/parser_prod.nit:3683 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3615);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3683);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -19719,7 +20101,7 @@ void parser___parser_prod___ADoExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos119]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3620;
+  fra.me.line = 3688;
   fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -19739,7 +20121,7 @@ void parser___parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t p1, val_t p2,
   if (init_table[itpos120]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3622;
+  fra.me.line = 3690;
   fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___init_adoexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -19753,26 +20135,26 @@ void parser___parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t p1, val_t p2,
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:3622 */
+  /* parser/parser_prod.nit:3690 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3628 */
+  /* parser/parser_prod.nit:3696 */
   CALL_parser___parser_prod___ADoExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:3629 */
+  /* parser/parser_prod.nit:3697 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3629);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3697);
   }
   ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:3630 */
+  /* parser/parser_prod.nit:3698 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3630);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3698);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:3631 */
+  /* parser/parser_prod.nit:3699 */
   ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:3632 */
+  /* parser/parser_prod.nit:3700 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -19787,16 +20169,16 @@ void parser___parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t p1, val_t p2,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3633 */
+    /* parser/parser_prod.nit:3701 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3633);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3701);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   }
-  /* ./parser//parser_prod.nit:3635 */
+  /* parser/parser_prod.nit:3703 */
   ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:3636 */
+  /* parser/parser_prod.nit:3704 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -19811,10 +20193,10 @@ void parser___parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t p1, val_t p2,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3637 */
+    /* parser/parser_prod.nit:3705 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3637);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3705);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   }
@@ -19829,7 +20211,7 @@ void parser___parser_prod___ADoExpr___replace_child(val_t p0, val_t p1, val_t p2
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3641;
+  fra.me.line = 3709;
   fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -19841,11 +20223,11 @@ void parser___parser_prod___ADoExpr___replace_child(val_t p0, val_t p1, val_t p2
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3643 */
+  /* parser/parser_prod.nit:3711 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3643);
+    nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3711);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -19855,7 +20237,7 @@ void parser___parser_prod___ADoExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3644 */
+    /* parser/parser_prod.nit:3712 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -19870,28 +20252,28 @@ void parser___parser_prod___ADoExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3645 */
+      /* parser/parser_prod.nit:3713 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3645);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3713);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3646 */
+      /* parser/parser_prod.nit:3714 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast TKwdo*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3646);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3714);
       }
-      /* ./parser//parser_prod.nit:3647 */
+      /* parser/parser_prod.nit:3715 */
       ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3649 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3649);
+      /* parser/parser_prod.nit:3717 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3717);
     }
-    /* ./parser//parser_prod.nit:3651 */
+    /* parser/parser_prod.nit:3719 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3653 */
+  /* parser/parser_prod.nit:3721 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -19906,7 +20288,7 @@ void parser___parser_prod___ADoExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3654 */
+    /* parser/parser_prod.nit:3722 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -19921,28 +20303,28 @@ void parser___parser_prod___ADoExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3655 */
+      /* parser/parser_prod.nit:3723 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3655);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3723);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3656 */
+      /* parser/parser_prod.nit:3724 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3656);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3724);
       }
-      /* ./parser//parser_prod.nit:3657 */
+      /* parser/parser_prod.nit:3725 */
       ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3659 */
+      /* parser/parser_prod.nit:3727 */
       ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3661 */
+    /* parser/parser_prod.nit:3729 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3663 */
+  /* parser/parser_prod.nit:3731 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -19957,7 +20339,7 @@ void parser___parser_prod___ADoExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3664 */
+    /* parser/parser_prod.nit:3732 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -19972,25 +20354,25 @@ void parser___parser_prod___ADoExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3665 */
+      /* parser/parser_prod.nit:3733 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3665);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3733);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3666 */
+      /* parser/parser_prod.nit:3734 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3666);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3734);
       }
-      /* ./parser//parser_prod.nit:3667 */
+      /* parser/parser_prod.nit:3735 */
       ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3669 */
+      /* parser/parser_prod.nit:3737 */
       ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3671 */
+    /* parser/parser_prod.nit:3739 */
     goto label1;
   }
   label1: while(0);
@@ -20004,7 +20386,7 @@ void parser___parser_prod___ADoExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3675;
+  fra.me.line = 3743;
   fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -20015,17 +20397,17 @@ void parser___parser_prod___ADoExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:3675 */
+  /* parser/parser_prod.nit:3743 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3677 */
+  /* parser/parser_prod.nit:3745 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3677);
+    nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3745);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:3678 */
+  /* parser/parser_prod.nit:3746 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -20041,16 +20423,16 @@ void parser___parser_prod___ADoExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3679 */
+    /* parser/parser_prod.nit:3747 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3679);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3747);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:3681 */
+  /* parser/parser_prod.nit:3749 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -20066,12 +20448,12 @@ void parser___parser_prod___ADoExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3682 */
+    /* parser/parser_prod.nit:3750 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3682);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3750);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -20085,7 +20467,7 @@ void parser___parser_prod___AIfExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos121]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3687;
+  fra.me.line = 3755;
   fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -20105,7 +20487,7 @@ void parser___parser_prod___AIfExpr___init_aifexpr(val_t p0, val_t p1, val_t p2,
   if (init_table[itpos122]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3689;
+  fra.me.line = 3757;
   fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___init_aifexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -20121,39 +20503,39 @@ void parser___parser_prod___AIfExpr___init_aifexpr(val_t p0, val_t p1, val_t p2,
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:3689 */
+  /* parser/parser_prod.nit:3757 */
   fra.me.REG[5] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3696 */
+  /* parser/parser_prod.nit:3764 */
   CALL_parser___parser_prod___AIfExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
-  /* ./parser//parser_prod.nit:3697 */
+  /* parser/parser_prod.nit:3765 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3697);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3765);
   }
   ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[5]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:3698 */
+  /* parser/parser_prod.nit:3766 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3698);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3766);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:3699 */
+  /* parser/parser_prod.nit:3767 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3699);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3767);
   }
   ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[5]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:3700 */
+  /* parser/parser_prod.nit:3768 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3700);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3768);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:3701 */
+  /* parser/parser_prod.nit:3769 */
   ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[5]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:3702 */
+  /* parser/parser_prod.nit:3770 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -20168,16 +20550,16 @@ void parser___parser_prod___AIfExpr___init_aifexpr(val_t p0, val_t p1, val_t p2,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3703 */
+    /* parser/parser_prod.nit:3771 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3703);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3771);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
   }
-  /* ./parser//parser_prod.nit:3705 */
+  /* parser/parser_prod.nit:3773 */
   ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[5]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:3706 */
+  /* parser/parser_prod.nit:3774 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -20192,10 +20574,10 @@ void parser___parser_prod___AIfExpr___init_aifexpr(val_t p0, val_t p1, val_t p2,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3707 */
+    /* parser/parser_prod.nit:3775 */
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3707);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3775);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   }
@@ -20210,7 +20592,7 @@ void parser___parser_prod___AIfExpr___replace_child(val_t p0, val_t p1, val_t p2
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3711;
+  fra.me.line = 3779;
   fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -20222,11 +20604,11 @@ void parser___parser_prod___AIfExpr___replace_child(val_t p0, val_t p1, val_t p2
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3713 */
+  /* parser/parser_prod.nit:3781 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3713);
+    nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3781);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -20236,7 +20618,7 @@ void parser___parser_prod___AIfExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3714 */
+    /* parser/parser_prod.nit:3782 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -20251,32 +20633,32 @@ void parser___parser_prod___AIfExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3715 */
+      /* parser/parser_prod.nit:3783 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3715);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3783);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3716 */
+      /* parser/parser_prod.nit:3784 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwif, ID_parser___parser_nodes___TKwif)) /*cast TKwif*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3716);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3784);
       }
-      /* ./parser//parser_prod.nit:3717 */
+      /* parser/parser_prod.nit:3785 */
       ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3719 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3719);
+      /* parser/parser_prod.nit:3787 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3787);
     }
-    /* ./parser//parser_prod.nit:3721 */
+    /* parser/parser_prod.nit:3789 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3723 */
+  /* parser/parser_prod.nit:3791 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3723);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3791);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -20286,7 +20668,7 @@ void parser___parser_prod___AIfExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3724 */
+    /* parser/parser_prod.nit:3792 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -20301,28 +20683,28 @@ void parser___parser_prod___AIfExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3725 */
+      /* parser/parser_prod.nit:3793 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3725);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3793);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3726 */
+      /* parser/parser_prod.nit:3794 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3726);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3794);
       }
-      /* ./parser//parser_prod.nit:3727 */
+      /* parser/parser_prod.nit:3795 */
       ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3729 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3729);
+      /* parser/parser_prod.nit:3797 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3797);
     }
-    /* ./parser//parser_prod.nit:3731 */
+    /* parser/parser_prod.nit:3799 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3733 */
+  /* parser/parser_prod.nit:3801 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -20337,7 +20719,7 @@ void parser___parser_prod___AIfExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3734 */
+    /* parser/parser_prod.nit:3802 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -20352,28 +20734,28 @@ void parser___parser_prod___AIfExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3735 */
+      /* parser/parser_prod.nit:3803 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3735);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3803);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3736 */
+      /* parser/parser_prod.nit:3804 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3736);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3804);
       }
-      /* ./parser//parser_prod.nit:3737 */
+      /* parser/parser_prod.nit:3805 */
       ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3739 */
+      /* parser/parser_prod.nit:3807 */
       ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3741 */
+    /* parser/parser_prod.nit:3809 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3743 */
+  /* parser/parser_prod.nit:3811 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -20388,7 +20770,7 @@ void parser___parser_prod___AIfExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3744 */
+    /* parser/parser_prod.nit:3812 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -20403,25 +20785,25 @@ void parser___parser_prod___AIfExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3745 */
+      /* parser/parser_prod.nit:3813 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3745);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3813);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3746 */
+      /* parser/parser_prod.nit:3814 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3746);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3814);
       }
-      /* ./parser//parser_prod.nit:3747 */
+      /* parser/parser_prod.nit:3815 */
       ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3749 */
+      /* parser/parser_prod.nit:3817 */
       ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3751 */
+    /* parser/parser_prod.nit:3819 */
     goto label1;
   }
   label1: while(0);
@@ -20435,7 +20817,7 @@ void parser___parser_prod___AIfExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3755;
+  fra.me.line = 3823;
   fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -20446,25 +20828,25 @@ void parser___parser_prod___AIfExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:3755 */
+  /* parser/parser_prod.nit:3823 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3757 */
+  /* parser/parser_prod.nit:3825 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3757);
+    nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3825);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:3758 */
+  /* parser/parser_prod.nit:3826 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3758);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3826);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:3759 */
+  /* parser/parser_prod.nit:3827 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -20480,16 +20862,16 @@ void parser___parser_prod___AIfExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3760 */
+    /* parser/parser_prod.nit:3828 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3760);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3828);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:3762 */
+  /* parser/parser_prod.nit:3830 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -20505,12 +20887,12 @@ void parser___parser_prod___AIfExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3763 */
+    /* parser/parser_prod.nit:3831 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3763);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3831);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -20524,7 +20906,7 @@ void parser___parser_prod___AIfexprExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos123]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3768;
+  fra.me.line = 3836;
   fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -20543,7 +20925,7 @@ void parser___parser_prod___AIfexprExpr___init_aifexprexpr(val_t p0, val_t p1, v
   if (init_table[itpos124]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3770;
+  fra.me.line = 3838;
   fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___init_aifexprexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -20563,86 +20945,86 @@ void parser___parser_prod___AIfexprExpr___init_aifexprexpr(val_t p0, val_t p1, v
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
   fra.me.REG[6] = p6;
-  /* ./parser//parser_prod.nit:3770 */
+  /* parser/parser_prod.nit:3838 */
   fra.me.REG[7] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3779 */
+  /* parser/parser_prod.nit:3847 */
   CALL_parser___parser_prod___AIfexprExpr___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
-  /* ./parser//parser_prod.nit:3780 */
+  /* parser/parser_prod.nit:3848 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3780);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3848);
   }
   ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[7]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:3781 */
+  /* parser/parser_prod.nit:3849 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3781);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3849);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
-  /* ./parser//parser_prod.nit:3782 */
+  /* parser/parser_prod.nit:3850 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3782);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3850);
   }
   ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[7]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:3783 */
+  /* parser/parser_prod.nit:3851 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3783);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3851);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
-  /* ./parser//parser_prod.nit:3784 */
+  /* parser/parser_prod.nit:3852 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3784);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3852);
   }
   ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[7]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:3785 */
+  /* parser/parser_prod.nit:3853 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3785);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3853);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
-  /* ./parser//parser_prod.nit:3786 */
+  /* parser/parser_prod.nit:3854 */
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3786);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3854);
   }
   ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[7]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:3787 */
+  /* parser/parser_prod.nit:3855 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3787);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3855);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
-  /* ./parser//parser_prod.nit:3788 */
+  /* parser/parser_prod.nit:3856 */
   REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3788);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3856);
   }
   ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[7]) = fra.me.REG[5];
-  /* ./parser//parser_prod.nit:3789 */
+  /* parser/parser_prod.nit:3857 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3789);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3857);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
-  /* ./parser//parser_prod.nit:3790 */
+  /* parser/parser_prod.nit:3858 */
   REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3790);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3858);
   }
   ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[7]) = fra.me.REG[6];
-  /* ./parser//parser_prod.nit:3791 */
+  /* parser/parser_prod.nit:3859 */
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3791);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3859);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
   stack_frame_head = fra.me.prev;
@@ -20656,7 +21038,7 @@ void parser___parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3794;
+  fra.me.line = 3862;
   fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -20668,11 +21050,11 @@ void parser___parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3796 */
+  /* parser/parser_prod.nit:3864 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3796);
+    nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3864);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -20682,7 +21064,7 @@ void parser___parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3797 */
+    /* parser/parser_prod.nit:3865 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -20697,32 +21079,32 @@ void parser___parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3798 */
+      /* parser/parser_prod.nit:3866 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3798);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3866);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3799 */
+      /* parser/parser_prod.nit:3867 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwif, ID_parser___parser_nodes___TKwif)) /*cast TKwif*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3799);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3867);
       }
-      /* ./parser//parser_prod.nit:3800 */
+      /* parser/parser_prod.nit:3868 */
       ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3802 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3802);
+      /* parser/parser_prod.nit:3870 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3870);
     }
-    /* ./parser//parser_prod.nit:3804 */
+    /* parser/parser_prod.nit:3872 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3806 */
+  /* parser/parser_prod.nit:3874 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3806);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3874);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -20732,7 +21114,7 @@ void parser___parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3807 */
+    /* parser/parser_prod.nit:3875 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -20747,32 +21129,32 @@ void parser___parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3808 */
+      /* parser/parser_prod.nit:3876 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3808);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3876);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3809 */
+      /* parser/parser_prod.nit:3877 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3809);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3877);
       }
-      /* ./parser//parser_prod.nit:3810 */
+      /* parser/parser_prod.nit:3878 */
       ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3812 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3812);
+      /* parser/parser_prod.nit:3880 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3880);
     }
-    /* ./parser//parser_prod.nit:3814 */
+    /* parser/parser_prod.nit:3882 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3816 */
+  /* parser/parser_prod.nit:3884 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser___parser_prod, 3816);
+    nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser___parser_prod, 3884);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -20782,7 +21164,7 @@ void parser___parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3817 */
+    /* parser/parser_prod.nit:3885 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -20797,32 +21179,32 @@ void parser___parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3818 */
+      /* parser/parser_prod.nit:3886 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3818);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3886);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3819 */
+      /* parser/parser_prod.nit:3887 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwthen, ID_parser___parser_nodes___TKwthen)) /*cast TKwthen*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3819);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3887);
       }
-      /* ./parser//parser_prod.nit:3820 */
+      /* parser/parser_prod.nit:3888 */
       ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3822 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3822);
+      /* parser/parser_prod.nit:3890 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3890);
     }
-    /* ./parser//parser_prod.nit:3824 */
+    /* parser/parser_prod.nit:3892 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3826 */
+  /* parser/parser_prod.nit:3894 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser___parser_prod, 3826);
+    nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser___parser_prod, 3894);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -20832,7 +21214,7 @@ void parser___parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3827 */
+    /* parser/parser_prod.nit:3895 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -20847,32 +21229,32 @@ void parser___parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3828 */
+      /* parser/parser_prod.nit:3896 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3828);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3896);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3829 */
+      /* parser/parser_prod.nit:3897 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3829);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3897);
       }
-      /* ./parser//parser_prod.nit:3830 */
+      /* parser/parser_prod.nit:3898 */
       ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3832 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3832);
+      /* parser/parser_prod.nit:3900 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3900);
     }
-    /* ./parser//parser_prod.nit:3834 */
+    /* parser/parser_prod.nit:3902 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3836 */
+  /* parser/parser_prod.nit:3904 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser___parser_prod, 3836);
+    nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser___parser_prod, 3904);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -20882,7 +21264,7 @@ void parser___parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3837 */
+    /* parser/parser_prod.nit:3905 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -20897,32 +21279,32 @@ void parser___parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3838 */
+      /* parser/parser_prod.nit:3906 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3838);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3906);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3839 */
+      /* parser/parser_prod.nit:3907 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwelse, ID_parser___parser_nodes___TKwelse)) /*cast TKwelse*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3839);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3907);
       }
-      /* ./parser//parser_prod.nit:3840 */
+      /* parser/parser_prod.nit:3908 */
       ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3842 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3842);
+      /* parser/parser_prod.nit:3910 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3910);
     }
-    /* ./parser//parser_prod.nit:3844 */
+    /* parser/parser_prod.nit:3912 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3846 */
+  /* parser/parser_prod.nit:3914 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser___parser_prod, 3846);
+    nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser___parser_prod, 3914);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -20932,7 +21314,7 @@ void parser___parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3847 */
+    /* parser/parser_prod.nit:3915 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -20947,25 +21329,25 @@ void parser___parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3848 */
+      /* parser/parser_prod.nit:3916 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3848);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3916);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3849 */
+      /* parser/parser_prod.nit:3917 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3849);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3917);
       }
-      /* ./parser//parser_prod.nit:3850 */
+      /* parser/parser_prod.nit:3918 */
       ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3852 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3852);
+      /* parser/parser_prod.nit:3920 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3920);
     }
-    /* ./parser//parser_prod.nit:3854 */
+    /* parser/parser_prod.nit:3922 */
     goto label1;
   }
   label1: while(0);
@@ -20978,7 +21360,7 @@ void parser___parser_prod___AIfexprExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3858;
+  fra.me.line = 3926;
   fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -20988,51 +21370,51 @@ void parser___parser_prod___AIfexprExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:3860 */
+  /* parser/parser_prod.nit:3928 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3860);
+    nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 3928);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:3861 */
+  /* parser/parser_prod.nit:3929 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3861);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3929);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:3862 */
+  /* parser/parser_prod.nit:3930 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser___parser_prod, 3862);
+    nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser___parser_prod, 3930);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:3863 */
+  /* parser/parser_prod.nit:3931 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser___parser_prod, 3863);
+    nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser___parser_prod, 3931);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:3864 */
+  /* parser/parser_prod.nit:3932 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser___parser_prod, 3864);
+    nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser___parser_prod, 3932);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:3865 */
+  /* parser/parser_prod.nit:3933 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser___parser_prod, 3865);
+    nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser___parser_prod, 3933);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -21046,7 +21428,7 @@ void parser___parser_prod___AWhileExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos125]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3869;
+  fra.me.line = 3937;
   fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -21066,7 +21448,7 @@ void parser___parser_prod___AWhileExpr___init_awhileexpr(val_t p0, val_t p1, val
   if (init_table[itpos126]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3871;
+  fra.me.line = 3939;
   fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___init_awhileexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -21084,52 +21466,52 @@ void parser___parser_prod___AWhileExpr___init_awhileexpr(val_t p0, val_t p1, val
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
-  /* ./parser//parser_prod.nit:3871 */
+  /* parser/parser_prod.nit:3939 */
   fra.me.REG[6] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3879 */
+  /* parser/parser_prod.nit:3947 */
   CALL_parser___parser_prod___AWhileExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
-  /* ./parser//parser_prod.nit:3880 */
+  /* parser/parser_prod.nit:3948 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3880);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3948);
   }
   ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[6]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:3881 */
+  /* parser/parser_prod.nit:3949 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3881);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3949);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-  /* ./parser//parser_prod.nit:3882 */
+  /* parser/parser_prod.nit:3950 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3882);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3950);
   }
   ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[6]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:3883 */
+  /* parser/parser_prod.nit:3951 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3883);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3951);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
-  /* ./parser//parser_prod.nit:3884 */
+  /* parser/parser_prod.nit:3952 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3884);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3952);
   }
   ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[6]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:3885 */
+  /* parser/parser_prod.nit:3953 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3885);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3953);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
-  /* ./parser//parser_prod.nit:3886 */
+  /* parser/parser_prod.nit:3954 */
   ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[6]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:3887 */
+  /* parser/parser_prod.nit:3955 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -21144,16 +21526,16 @@ void parser___parser_prod___AWhileExpr___init_awhileexpr(val_t p0, val_t p1, val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3888 */
+    /* parser/parser_prod.nit:3956 */
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3888);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3956);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
   }
-  /* ./parser//parser_prod.nit:3890 */
+  /* parser/parser_prod.nit:3958 */
   ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[6]) = fra.me.REG[5];
-  /* ./parser//parser_prod.nit:3891 */
+  /* parser/parser_prod.nit:3959 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -21168,10 +21550,10 @@ void parser___parser_prod___AWhileExpr___init_awhileexpr(val_t p0, val_t p1, val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3892 */
+    /* parser/parser_prod.nit:3960 */
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3892);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3960);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
   }
@@ -21186,7 +21568,7 @@ void parser___parser_prod___AWhileExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3896;
+  fra.me.line = 3964;
   fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -21198,11 +21580,11 @@ void parser___parser_prod___AWhileExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3898 */
+  /* parser/parser_prod.nit:3966 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser___parser_prod, 3898);
+    nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser___parser_prod, 3966);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -21212,7 +21594,7 @@ void parser___parser_prod___AWhileExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3899 */
+    /* parser/parser_prod.nit:3967 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -21227,32 +21609,32 @@ void parser___parser_prod___AWhileExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3900 */
+      /* parser/parser_prod.nit:3968 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3900);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3968);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3901 */
+      /* parser/parser_prod.nit:3969 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwwhile, ID_parser___parser_nodes___TKwwhile)) /*cast TKwwhile*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3901);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3969);
       }
-      /* ./parser//parser_prod.nit:3902 */
+      /* parser/parser_prod.nit:3970 */
       ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3904 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3904);
+      /* parser/parser_prod.nit:3972 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3972);
     }
-    /* ./parser//parser_prod.nit:3906 */
+    /* parser/parser_prod.nit:3974 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3908 */
+  /* parser/parser_prod.nit:3976 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3908);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3976);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -21262,7 +21644,7 @@ void parser___parser_prod___AWhileExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3909 */
+    /* parser/parser_prod.nit:3977 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -21277,32 +21659,32 @@ void parser___parser_prod___AWhileExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3910 */
+      /* parser/parser_prod.nit:3978 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3910);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3978);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3911 */
+      /* parser/parser_prod.nit:3979 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3911);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3979);
       }
-      /* ./parser//parser_prod.nit:3912 */
+      /* parser/parser_prod.nit:3980 */
       ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3914 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3914);
+      /* parser/parser_prod.nit:3982 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3982);
     }
-    /* ./parser//parser_prod.nit:3916 */
+    /* parser/parser_prod.nit:3984 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3918 */
+  /* parser/parser_prod.nit:3986 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3918);
+    nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3986);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -21312,7 +21694,7 @@ void parser___parser_prod___AWhileExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3919 */
+    /* parser/parser_prod.nit:3987 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -21327,28 +21709,28 @@ void parser___parser_prod___AWhileExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3920 */
+      /* parser/parser_prod.nit:3988 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3920);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3988);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3921 */
+      /* parser/parser_prod.nit:3989 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast TKwdo*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3921);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3989);
       }
-      /* ./parser//parser_prod.nit:3922 */
+      /* parser/parser_prod.nit:3990 */
       ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3924 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3924);
+      /* parser/parser_prod.nit:3992 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3992);
     }
-    /* ./parser//parser_prod.nit:3926 */
+    /* parser/parser_prod.nit:3994 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3928 */
+  /* parser/parser_prod.nit:3996 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -21363,7 +21745,7 @@ void parser___parser_prod___AWhileExpr___replace_child(val_t p0, val_t p1, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3929 */
+    /* parser/parser_prod.nit:3997 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -21378,28 +21760,28 @@ void parser___parser_prod___AWhileExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3930 */
+      /* parser/parser_prod.nit:3998 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3930);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3998);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3931 */
+      /* parser/parser_prod.nit:3999 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3931);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3999);
       }
-      /* ./parser//parser_prod.nit:3932 */
+      /* parser/parser_prod.nit:4000 */
       ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3934 */
+      /* parser/parser_prod.nit:4002 */
       ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3936 */
+    /* parser/parser_prod.nit:4004 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3938 */
+  /* parser/parser_prod.nit:4006 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -21414,7 +21796,7 @@ void parser___parser_prod___AWhileExpr___replace_child(val_t p0, val_t p1, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3939 */
+    /* parser/parser_prod.nit:4007 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -21429,25 +21811,25 @@ void parser___parser_prod___AWhileExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3940 */
+      /* parser/parser_prod.nit:4008 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3940);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4008);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3941 */
+      /* parser/parser_prod.nit:4009 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3941);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4009);
       }
-      /* ./parser//parser_prod.nit:3942 */
+      /* parser/parser_prod.nit:4010 */
       ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3944 */
+      /* parser/parser_prod.nit:4012 */
       ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:3946 */
+    /* parser/parser_prod.nit:4014 */
     goto label1;
   }
   label1: while(0);
@@ -21461,7 +21843,7 @@ void parser___parser_prod___AWhileExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3950;
+  fra.me.line = 4018;
   fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -21472,33 +21854,33 @@ void parser___parser_prod___AWhileExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:3950 */
+  /* parser/parser_prod.nit:4018 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3952 */
+  /* parser/parser_prod.nit:4020 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser___parser_prod, 3952);
+    nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser___parser_prod, 4020);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:3953 */
+  /* parser/parser_prod.nit:4021 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3953);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4021);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:3954 */
+  /* parser/parser_prod.nit:4022 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 3954);
+    nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4022);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:3955 */
+  /* parser/parser_prod.nit:4023 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -21514,16 +21896,16 @@ void parser___parser_prod___AWhileExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3956 */
+    /* parser/parser_prod.nit:4024 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3956);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4024);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:3958 */
+  /* parser/parser_prod.nit:4026 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -21539,12 +21921,12 @@ void parser___parser_prod___AWhileExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3959 */
+    /* parser/parser_prod.nit:4027 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3959);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4027);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -21558,7 +21940,7 @@ void parser___parser_prod___ALoopExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos127]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3964;
+  fra.me.line = 4032;
   fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -21578,7 +21960,7 @@ void parser___parser_prod___ALoopExpr___init_aloopexpr(val_t p0, val_t p1, val_t
   if (init_table[itpos128]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3966;
+  fra.me.line = 4034;
   fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___init_aloopexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -21592,26 +21974,26 @@ void parser___parser_prod___ALoopExpr___init_aloopexpr(val_t p0, val_t p1, val_t
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:3966 */
+  /* parser/parser_prod.nit:4034 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:3972 */
+  /* parser/parser_prod.nit:4040 */
   CALL_parser___parser_prod___ALoopExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:3973 */
+  /* parser/parser_prod.nit:4041 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3973);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4041);
   }
   ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:3974 */
+  /* parser/parser_prod.nit:4042 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3974);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4042);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:3975 */
+  /* parser/parser_prod.nit:4043 */
   ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:3976 */
+  /* parser/parser_prod.nit:4044 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -21626,16 +22008,16 @@ void parser___parser_prod___ALoopExpr___init_aloopexpr(val_t p0, val_t p1, val_t
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3977 */
+    /* parser/parser_prod.nit:4045 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3977);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4045);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   }
-  /* ./parser//parser_prod.nit:3979 */
+  /* parser/parser_prod.nit:4047 */
   ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:3980 */
+  /* parser/parser_prod.nit:4048 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -21650,10 +22032,10 @@ void parser___parser_prod___ALoopExpr___init_aloopexpr(val_t p0, val_t p1, val_t
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3981 */
+    /* parser/parser_prod.nit:4049 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3981);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4049);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   }
@@ -21668,7 +22050,7 @@ void parser___parser_prod___ALoopExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 3985;
+  fra.me.line = 4053;
   fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -21680,11 +22062,11 @@ void parser___parser_prod___ALoopExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:3987 */
+  /* parser/parser_prod.nit:4055 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser___parser_prod, 3987);
+    nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser___parser_prod, 4055);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -21694,7 +22076,7 @@ void parser___parser_prod___ALoopExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3988 */
+    /* parser/parser_prod.nit:4056 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -21709,28 +22091,28 @@ void parser___parser_prod___ALoopExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3989 */
+      /* parser/parser_prod.nit:4057 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3989);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4057);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:3990 */
+      /* parser/parser_prod.nit:4058 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwloop, ID_parser___parser_nodes___TKwloop)) /*cast TKwloop*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3990);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4058);
       }
-      /* ./parser//parser_prod.nit:3991 */
+      /* parser/parser_prod.nit:4059 */
       ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:3993 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3993);
+      /* parser/parser_prod.nit:4061 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4061);
     }
-    /* ./parser//parser_prod.nit:3995 */
+    /* parser/parser_prod.nit:4063 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:3997 */
+  /* parser/parser_prod.nit:4065 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -21745,7 +22127,7 @@ void parser___parser_prod___ALoopExpr___replace_child(val_t p0, val_t p1, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:3998 */
+    /* parser/parser_prod.nit:4066 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -21760,28 +22142,28 @@ void parser___parser_prod___ALoopExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:3999 */
+      /* parser/parser_prod.nit:4067 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3999);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4067);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4000 */
+      /* parser/parser_prod.nit:4068 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4000);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4068);
       }
-      /* ./parser//parser_prod.nit:4001 */
+      /* parser/parser_prod.nit:4069 */
       ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4003 */
+      /* parser/parser_prod.nit:4071 */
       ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:4005 */
+    /* parser/parser_prod.nit:4073 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4007 */
+  /* parser/parser_prod.nit:4075 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -21796,7 +22178,7 @@ void parser___parser_prod___ALoopExpr___replace_child(val_t p0, val_t p1, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4008 */
+    /* parser/parser_prod.nit:4076 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -21811,25 +22193,25 @@ void parser___parser_prod___ALoopExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4009 */
+      /* parser/parser_prod.nit:4077 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4009);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4077);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4010 */
+      /* parser/parser_prod.nit:4078 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4010);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4078);
       }
-      /* ./parser//parser_prod.nit:4011 */
+      /* parser/parser_prod.nit:4079 */
       ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4013 */
+      /* parser/parser_prod.nit:4081 */
       ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:4015 */
+    /* parser/parser_prod.nit:4083 */
     goto label1;
   }
   label1: while(0);
@@ -21843,7 +22225,7 @@ void parser___parser_prod___ALoopExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4019;
+  fra.me.line = 4087;
   fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -21854,17 +22236,17 @@ void parser___parser_prod___ALoopExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4019 */
+  /* parser/parser_prod.nit:4087 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4021 */
+  /* parser/parser_prod.nit:4089 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser___parser_prod, 4021);
+    nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser___parser_prod, 4089);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4022 */
+  /* parser/parser_prod.nit:4090 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -21880,16 +22262,16 @@ void parser___parser_prod___ALoopExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4023 */
+    /* parser/parser_prod.nit:4091 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4023);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4091);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:4025 */
+  /* parser/parser_prod.nit:4093 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -21905,12 +22287,12 @@ void parser___parser_prod___ALoopExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4026 */
+    /* parser/parser_prod.nit:4094 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4026);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4094);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -21924,7 +22306,7 @@ void parser___parser_prod___AForExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos129]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4031;
+  fra.me.line = 4099;
   fra.me.meth = LOCATE_parser___parser_prod___AForExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -21944,7 +22326,7 @@ void parser___parser_prod___AForExpr___init_aforexpr(val_t p0, val_t p1, val_t p
   if (init_table[itpos130]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4033;
+  fra.me.line = 4101;
   fra.me.meth = LOCATE_parser___parser_prod___AForExpr___init_aforexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -21964,53 +22346,53 @@ void parser___parser_prod___AForExpr___init_aforexpr(val_t p0, val_t p1, val_t p
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
   fra.me.REG[6] = p6;
-  /* ./parser//parser_prod.nit:4033 */
+  /* parser/parser_prod.nit:4101 */
   fra.me.REG[7] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4042 */
+  /* parser/parser_prod.nit:4110 */
   CALL_parser___parser_prod___AForExpr___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
-  /* ./parser//parser_prod.nit:4043 */
+  /* parser/parser_prod.nit:4111 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4043);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4111);
   }
   ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[7]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:4044 */
+  /* parser/parser_prod.nit:4112 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4044);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4112);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AForExpr___init_aforexpr_1));
-  /* ./parser//parser_prod.nit:4050 */
+  /* parser/parser_prod.nit:4118 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4050);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4118);
   }
   ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[7]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:4051 */
+  /* parser/parser_prod.nit:4119 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4051);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4119);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
-  /* ./parser//parser_prod.nit:4052 */
+  /* parser/parser_prod.nit:4120 */
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4052);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4120);
   }
   ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[7]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:4053 */
+  /* parser/parser_prod.nit:4121 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4053);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4121);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
-  /* ./parser//parser_prod.nit:4054 */
+  /* parser/parser_prod.nit:4122 */
   ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[7]) = fra.me.REG[5];
-  /* ./parser//parser_prod.nit:4055 */
+  /* parser/parser_prod.nit:4123 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -22025,16 +22407,16 @@ void parser___parser_prod___AForExpr___init_aforexpr(val_t p0, val_t p1, val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4056 */
+    /* parser/parser_prod.nit:4124 */
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4056);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4124);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
   }
-  /* ./parser//parser_prod.nit:4058 */
+  /* parser/parser_prod.nit:4126 */
   ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[7]) = fra.me.REG[6];
-  /* ./parser//parser_prod.nit:4059 */
+  /* parser/parser_prod.nit:4127 */
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -22049,10 +22431,10 @@ void parser___parser_prod___AForExpr___init_aforexpr(val_t p0, val_t p1, val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4060 */
+    /* parser/parser_prod.nit:4128 */
     REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4060);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4128);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
   }
@@ -22065,7 +22447,7 @@ void parser___parser_prod___AForExpr___init_aforexpr(val_t p0, val_t p1, val_t p
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:4045 */
+    /* parser/parser_prod.nit:4113 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -22079,21 +22461,21 @@ void parser___parser_prod___AForExpr___init_aforexpr(val_t p0, val_t p1, val_t p
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:4046 */
+    /* parser/parser_prod.nit:4114 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4046);
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4114);
     }
-    /* ./parser//parser_prod.nit:4047 */
+    /* parser/parser_prod.nit:4115 */
     REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(closctx->REG[7])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4047);
+      nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4115);
     }
     fra.me.REG[1] = ATTR_parser___parser_nodes___AForExpr____n_ids(closctx->REG[7]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:4048 */
+    /* parser/parser_prod.nit:4116 */
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[7]);
     stack_frame_head = fra.me.prev;
     return;
@@ -22108,7 +22490,7 @@ void parser___parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4064;
+  fra.me.line = 4132;
   fra.me.meth = LOCATE_parser___parser_prod___AForExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -22120,11 +22502,11 @@ void parser___parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4066 */
+  /* parser/parser_prod.nit:4134 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser___parser_prod, 4066);
+    nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser___parser_prod, 4134);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -22134,7 +22516,7 @@ void parser___parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4067 */
+    /* parser/parser_prod.nit:4135 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -22149,54 +22531,54 @@ void parser___parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4068 */
+      /* parser/parser_prod.nit:4136 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4068);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4136);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4069 */
+      /* parser/parser_prod.nit:4137 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwfor, ID_parser___parser_nodes___TKwfor)) /*cast TKwfor*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4069);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4137);
       }
-      /* ./parser//parser_prod.nit:4070 */
+      /* parser/parser_prod.nit:4138 */
       ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4072 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4072);
+      /* parser/parser_prod.nit:4140 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4140);
     }
-    /* ./parser//parser_prod.nit:4074 */
+    /* parser/parser_prod.nit:4142 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4076 */
+  /* parser/parser_prod.nit:4144 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4076);
+    nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4144);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:4076 */
+      /* parser/parser_prod.nit:4144 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:4077 */
+      /* parser/parser_prod.nit:4145 */
       REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4077);
+        nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4145);
       }
       fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
@@ -22213,7 +22595,7 @@ void parser___parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:4078 */
+        /* parser/parser_prod.nit:4146 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -22228,56 +22610,56 @@ void parser___parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:4079 */
+          /* parser/parser_prod.nit:4147 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4079);
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4147);
           }
-          /* ./parser//parser_prod.nit:4080 */
+          /* parser/parser_prod.nit:4148 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4080);
+            nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4148);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:4081 */
+          /* parser/parser_prod.nit:4149 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4081);
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4149);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:4083 */
+          /* parser/parser_prod.nit:4151 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4083);
+            nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4151);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:4085 */
+        /* parser/parser_prod.nit:4153 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./parser//parser_prod.nit:4088 */
+  /* parser/parser_prod.nit:4156 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4088);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4156);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -22287,7 +22669,7 @@ void parser___parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4089 */
+    /* parser/parser_prod.nit:4157 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -22302,32 +22684,32 @@ void parser___parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4090 */
+      /* parser/parser_prod.nit:4158 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4090);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4158);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4091 */
+      /* parser/parser_prod.nit:4159 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4091);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4159);
       }
-      /* ./parser//parser_prod.nit:4092 */
+      /* parser/parser_prod.nit:4160 */
       ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4094 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4094);
+      /* parser/parser_prod.nit:4162 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4162);
     }
-    /* ./parser//parser_prod.nit:4096 */
+    /* parser/parser_prod.nit:4164 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4098 */
+  /* parser/parser_prod.nit:4166 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4098);
+    nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4166);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -22337,7 +22719,7 @@ void parser___parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4099 */
+    /* parser/parser_prod.nit:4167 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -22352,28 +22734,28 @@ void parser___parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4100 */
+      /* parser/parser_prod.nit:4168 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4100);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4168);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4101 */
+      /* parser/parser_prod.nit:4169 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast TKwdo*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4101);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4169);
       }
-      /* ./parser//parser_prod.nit:4102 */
+      /* parser/parser_prod.nit:4170 */
       ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4104 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4104);
+      /* parser/parser_prod.nit:4172 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4172);
     }
-    /* ./parser//parser_prod.nit:4106 */
+    /* parser/parser_prod.nit:4174 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4108 */
+  /* parser/parser_prod.nit:4176 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -22388,7 +22770,7 @@ void parser___parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4109 */
+    /* parser/parser_prod.nit:4177 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -22403,28 +22785,28 @@ void parser___parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4110 */
+      /* parser/parser_prod.nit:4178 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4110);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4178);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4111 */
+      /* parser/parser_prod.nit:4179 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4111);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4179);
       }
-      /* ./parser//parser_prod.nit:4112 */
+      /* parser/parser_prod.nit:4180 */
       ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4114 */
+      /* parser/parser_prod.nit:4182 */
       ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:4116 */
+    /* parser/parser_prod.nit:4184 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4118 */
+  /* parser/parser_prod.nit:4186 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -22439,7 +22821,7 @@ void parser___parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4119 */
+    /* parser/parser_prod.nit:4187 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -22454,25 +22836,25 @@ void parser___parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4120 */
+      /* parser/parser_prod.nit:4188 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4120);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4188);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4121 */
+      /* parser/parser_prod.nit:4189 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4121);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4189);
       }
-      /* ./parser//parser_prod.nit:4122 */
+      /* parser/parser_prod.nit:4190 */
       ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4124 */
+      /* parser/parser_prod.nit:4192 */
       ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:4126 */
+    /* parser/parser_prod.nit:4194 */
     goto label1;
   }
   label1: while(0);
@@ -22486,7 +22868,7 @@ void parser___parser_prod___AForExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4130;
+  fra.me.line = 4198;
   fra.me.meth = LOCATE_parser___parser_prod___AForExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -22497,41 +22879,41 @@ void parser___parser_prod___AForExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4130 */
+  /* parser/parser_prod.nit:4198 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4132 */
+  /* parser/parser_prod.nit:4200 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser___parser_prod, 4132);
+    nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser___parser_prod, 4200);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4133 */
+  /* parser/parser_prod.nit:4201 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4133);
+    nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4201);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AForExpr___visit_all_1));
-  /* ./parser//parser_prod.nit:4136 */
+  /* parser/parser_prod.nit:4204 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4136);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4204);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4137 */
+  /* parser/parser_prod.nit:4205 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4137);
+    nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4205);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4138 */
+  /* parser/parser_prod.nit:4206 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -22547,16 +22929,16 @@ void parser___parser_prod___AForExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4139 */
+    /* parser/parser_prod.nit:4207 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4139);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4207);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:4141 */
+  /* parser/parser_prod.nit:4209 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -22572,12 +22954,12 @@ void parser___parser_prod___AForExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4142 */
+    /* parser/parser_prod.nit:4210 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4142);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4210);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -22600,7 +22982,7 @@ void parser___parser_prod___AForExpr___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:4134 */
+    /* parser/parser_prod.nit:4202 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -22612,7 +22994,7 @@ void parser___parser_prod___AAssertExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos131]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4147;
+  fra.me.line = 4215;
   fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -22632,7 +23014,7 @@ void parser___parser_prod___AAssertExpr___init_aassertexpr(val_t p0, val_t p1, v
   if (init_table[itpos132]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4149;
+  fra.me.line = 4217;
   fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___init_aassertexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -22648,26 +23030,26 @@ void parser___parser_prod___AAssertExpr___init_aassertexpr(val_t p0, val_t p1, v
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:4149 */
+  /* parser/parser_prod.nit:4217 */
   fra.me.REG[5] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4156 */
+  /* parser/parser_prod.nit:4224 */
   CALL_parser___parser_prod___AAssertExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
-  /* ./parser//parser_prod.nit:4157 */
+  /* parser/parser_prod.nit:4225 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4157);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4225);
   }
   ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[5]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:4158 */
+  /* parser/parser_prod.nit:4226 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4158);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4226);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:4159 */
+  /* parser/parser_prod.nit:4227 */
   ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:4160 */
+  /* parser/parser_prod.nit:4228 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -22682,29 +23064,29 @@ void parser___parser_prod___AAssertExpr___init_aassertexpr(val_t p0, val_t p1, v
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4161 */
+    /* parser/parser_prod.nit:4229 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4161);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4229);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
   }
-  /* ./parser//parser_prod.nit:4163 */
+  /* parser/parser_prod.nit:4231 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4163);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4231);
   }
   ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[5]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:4164 */
+  /* parser/parser_prod.nit:4232 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4164);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4232);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:4165 */
+  /* parser/parser_prod.nit:4233 */
   ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[5]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:4166 */
+  /* parser/parser_prod.nit:4234 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -22719,10 +23101,10 @@ void parser___parser_prod___AAssertExpr___init_aassertexpr(val_t p0, val_t p1, v
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4167 */
+    /* parser/parser_prod.nit:4235 */
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4167);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4235);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   }
@@ -22737,7 +23119,7 @@ void parser___parser_prod___AAssertExpr___replace_child(val_t p0, val_t p1, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4171;
+  fra.me.line = 4239;
   fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -22749,11 +23131,11 @@ void parser___parser_prod___AAssertExpr___replace_child(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4173 */
+  /* parser/parser_prod.nit:4241 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser___parser_prod, 4173);
+    nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser___parser_prod, 4241);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -22763,7 +23145,7 @@ void parser___parser_prod___AAssertExpr___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4174 */
+    /* parser/parser_prod.nit:4242 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -22778,28 +23160,28 @@ void parser___parser_prod___AAssertExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4175 */
+      /* parser/parser_prod.nit:4243 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4175);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4243);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4176 */
+      /* parser/parser_prod.nit:4244 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwassert, ID_parser___parser_nodes___TKwassert)) /*cast TKwassert*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4176);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4244);
       }
-      /* ./parser//parser_prod.nit:4177 */
+      /* parser/parser_prod.nit:4245 */
       ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4179 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4179);
+      /* parser/parser_prod.nit:4247 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4247);
     }
-    /* ./parser//parser_prod.nit:4181 */
+    /* parser/parser_prod.nit:4249 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4183 */
+  /* parser/parser_prod.nit:4251 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -22814,7 +23196,7 @@ void parser___parser_prod___AAssertExpr___replace_child(val_t p0, val_t p1, val_
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4184 */
+    /* parser/parser_prod.nit:4252 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -22829,32 +23211,32 @@ void parser___parser_prod___AAssertExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4185 */
+      /* parser/parser_prod.nit:4253 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4185);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4253);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4186 */
+      /* parser/parser_prod.nit:4254 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4186);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4254);
       }
-      /* ./parser//parser_prod.nit:4187 */
+      /* parser/parser_prod.nit:4255 */
       ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4189 */
+      /* parser/parser_prod.nit:4257 */
       ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:4191 */
+    /* parser/parser_prod.nit:4259 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4193 */
+  /* parser/parser_prod.nit:4261 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4193);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4261);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -22864,7 +23246,7 @@ void parser___parser_prod___AAssertExpr___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4194 */
+    /* parser/parser_prod.nit:4262 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -22879,28 +23261,28 @@ void parser___parser_prod___AAssertExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4195 */
+      /* parser/parser_prod.nit:4263 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4195);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4263);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4196 */
+      /* parser/parser_prod.nit:4264 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4196);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4264);
       }
-      /* ./parser//parser_prod.nit:4197 */
+      /* parser/parser_prod.nit:4265 */
       ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4199 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4199);
+      /* parser/parser_prod.nit:4267 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4267);
     }
-    /* ./parser//parser_prod.nit:4201 */
+    /* parser/parser_prod.nit:4269 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4203 */
+  /* parser/parser_prod.nit:4271 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -22915,7 +23297,7 @@ void parser___parser_prod___AAssertExpr___replace_child(val_t p0, val_t p1, val_
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4204 */
+    /* parser/parser_prod.nit:4272 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -22930,25 +23312,25 @@ void parser___parser_prod___AAssertExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4205 */
+      /* parser/parser_prod.nit:4273 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4205);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4273);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4206 */
+      /* parser/parser_prod.nit:4274 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4206);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4274);
       }
-      /* ./parser//parser_prod.nit:4207 */
+      /* parser/parser_prod.nit:4275 */
       ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4209 */
+      /* parser/parser_prod.nit:4277 */
       ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:4211 */
+    /* parser/parser_prod.nit:4279 */
     goto label1;
   }
   label1: while(0);
@@ -22962,7 +23344,7 @@ void parser___parser_prod___AAssertExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4215;
+  fra.me.line = 4283;
   fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -22973,17 +23355,17 @@ void parser___parser_prod___AAssertExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4215 */
+  /* parser/parser_prod.nit:4283 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4217 */
+  /* parser/parser_prod.nit:4285 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser___parser_prod, 4217);
+    nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser___parser_prod, 4285);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4218 */
+  /* parser/parser_prod.nit:4286 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -22999,24 +23381,24 @@ void parser___parser_prod___AAssertExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4219 */
+    /* parser/parser_prod.nit:4287 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4219);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4287);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:4221 */
+  /* parser/parser_prod.nit:4289 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4221);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4289);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4222 */
+  /* parser/parser_prod.nit:4290 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -23032,12 +23414,12 @@ void parser___parser_prod___AAssertExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4223 */
+    /* parser/parser_prod.nit:4291 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4223);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4291);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -23051,7 +23433,7 @@ void parser___parser_prod___AOnceExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos133]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4228;
+  fra.me.line = 4296;
   fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -23070,7 +23452,7 @@ void parser___parser_prod___AOnceExpr___init_aonceexpr(val_t p0, val_t p1, val_t
   if (init_table[itpos134]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4230;
+  fra.me.line = 4298;
   fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___init_aonceexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -23082,34 +23464,34 @@ void parser___parser_prod___AOnceExpr___init_aonceexpr(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4230 */
+  /* parser/parser_prod.nit:4298 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4235 */
+  /* parser/parser_prod.nit:4303 */
   CALL_parser___parser_prod___AOnceExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:4236 */
+  /* parser/parser_prod.nit:4304 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4236);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4304);
   }
   ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:4237 */
+  /* parser/parser_prod.nit:4305 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4237);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4305);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4238 */
+  /* parser/parser_prod.nit:4306 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4238);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4306);
   }
   ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:4239 */
+  /* parser/parser_prod.nit:4307 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4239);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4307);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -23123,7 +23505,7 @@ void parser___parser_prod___AOnceExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4242;
+  fra.me.line = 4310;
   fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -23135,11 +23517,11 @@ void parser___parser_prod___AOnceExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4244 */
+  /* parser/parser_prod.nit:4312 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser___parser_prod, 4244);
+    nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser___parser_prod, 4312);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -23149,7 +23531,7 @@ void parser___parser_prod___AOnceExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4245 */
+    /* parser/parser_prod.nit:4313 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -23164,32 +23546,32 @@ void parser___parser_prod___AOnceExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4246 */
+      /* parser/parser_prod.nit:4314 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4246);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4314);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4247 */
+      /* parser/parser_prod.nit:4315 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwonce, ID_parser___parser_nodes___TKwonce)) /*cast TKwonce*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4247);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4315);
       }
-      /* ./parser//parser_prod.nit:4248 */
+      /* parser/parser_prod.nit:4316 */
       ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4250 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4250);
+      /* parser/parser_prod.nit:4318 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4318);
     }
-    /* ./parser//parser_prod.nit:4252 */
+    /* parser/parser_prod.nit:4320 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4254 */
+  /* parser/parser_prod.nit:4322 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4254);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4322);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -23199,7 +23581,7 @@ void parser___parser_prod___AOnceExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4255 */
+    /* parser/parser_prod.nit:4323 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -23214,25 +23596,25 @@ void parser___parser_prod___AOnceExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4256 */
+      /* parser/parser_prod.nit:4324 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4256);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4324);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4257 */
+      /* parser/parser_prod.nit:4325 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4257);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4325);
       }
-      /* ./parser//parser_prod.nit:4258 */
+      /* parser/parser_prod.nit:4326 */
       ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4260 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4260);
+      /* parser/parser_prod.nit:4328 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4328);
     }
-    /* ./parser//parser_prod.nit:4262 */
+    /* parser/parser_prod.nit:4330 */
     goto label1;
   }
   label1: while(0);
@@ -23245,7 +23627,7 @@ void parser___parser_prod___AOnceExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4266;
+  fra.me.line = 4334;
   fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -23255,19 +23637,19 @@ void parser___parser_prod___AOnceExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4268 */
+  /* parser/parser_prod.nit:4336 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser___parser_prod, 4268);
+    nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser___parser_prod, 4336);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:4269 */
+  /* parser/parser_prod.nit:4337 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4269);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4337);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -23281,7 +23663,7 @@ void parser___parser_prod___ASendExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos135]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4273;
+  fra.me.line = 4341;
   fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -23300,7 +23682,7 @@ void parser___parser_prod___ASendExpr___init_asendexpr(val_t p0, val_t p1, int*
   if (init_table[itpos136]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4275;
+  fra.me.line = 4343;
   fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___init_asendexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -23310,21 +23692,21 @@ void parser___parser_prod___ASendExpr___init_asendexpr(val_t p0, val_t p1, int*
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4275 */
+  /* parser/parser_prod.nit:4343 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4279 */
+  /* parser/parser_prod.nit:4347 */
   CALL_parser___parser_prod___ASendExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:4280 */
+  /* parser/parser_prod.nit:4348 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4280);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4348);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:4281 */
+  /* parser/parser_prod.nit:4349 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4281);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4349);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -23338,7 +23720,7 @@ void parser___parser_prod___ASendExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4284;
+  fra.me.line = 4352;
   fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -23350,11 +23732,11 @@ void parser___parser_prod___ASendExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4286 */
+  /* parser/parser_prod.nit:4354 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4286);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4354);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -23364,7 +23746,7 @@ void parser___parser_prod___ASendExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4287 */
+    /* parser/parser_prod.nit:4355 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -23379,25 +23761,25 @@ void parser___parser_prod___ASendExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4288 */
+      /* parser/parser_prod.nit:4356 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4288);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4356);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4289 */
+      /* parser/parser_prod.nit:4357 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4289);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4357);
       }
-      /* ./parser//parser_prod.nit:4290 */
+      /* parser/parser_prod.nit:4358 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4292 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4292);
+      /* parser/parser_prod.nit:4360 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4360);
     }
-    /* ./parser//parser_prod.nit:4294 */
+    /* parser/parser_prod.nit:4362 */
     goto label1;
   }
   label1: while(0);
@@ -23410,7 +23792,7 @@ void parser___parser_prod___ASendExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4298;
+  fra.me.line = 4366;
   fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -23419,11 +23801,11 @@ void parser___parser_prod___ASendExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4300 */
+  /* parser/parser_prod.nit:4368 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4300);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4368);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -23437,7 +23819,7 @@ void parser___parser_prod___ABinopExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos137]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4304;
+  fra.me.line = 4372;
   fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -23456,7 +23838,7 @@ void parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1, val
   if (init_table[itpos138]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4306;
+  fra.me.line = 4374;
   fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___init_abinopexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -23468,34 +23850,34 @@ void parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4306 */
+  /* parser/parser_prod.nit:4374 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4311 */
+  /* parser/parser_prod.nit:4379 */
   CALL_parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:4312 */
+  /* parser/parser_prod.nit:4380 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4312);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4380);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:4313 */
+  /* parser/parser_prod.nit:4381 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4313);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4381);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4314 */
+  /* parser/parser_prod.nit:4382 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4314);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4382);
   }
   ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:4315 */
+  /* parser/parser_prod.nit:4383 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4315);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4383);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -23509,7 +23891,7 @@ void parser___parser_prod___ABinopExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4318;
+  fra.me.line = 4386;
   fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -23521,11 +23903,11 @@ void parser___parser_prod___ABinopExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4320 */
+  /* parser/parser_prod.nit:4388 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4320);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4388);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -23535,7 +23917,7 @@ void parser___parser_prod___ABinopExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4321 */
+    /* parser/parser_prod.nit:4389 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -23550,32 +23932,32 @@ void parser___parser_prod___ABinopExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4322 */
+      /* parser/parser_prod.nit:4390 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4322);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4390);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4323 */
+      /* parser/parser_prod.nit:4391 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4323);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4391);
       }
-      /* ./parser//parser_prod.nit:4324 */
+      /* parser/parser_prod.nit:4392 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4326 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4326);
+      /* parser/parser_prod.nit:4394 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4394);
     }
-    /* ./parser//parser_prod.nit:4328 */
+    /* parser/parser_prod.nit:4396 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4330 */
+  /* parser/parser_prod.nit:4398 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4330);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4398);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -23585,7 +23967,7 @@ void parser___parser_prod___ABinopExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4331 */
+    /* parser/parser_prod.nit:4399 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -23600,25 +23982,25 @@ void parser___parser_prod___ABinopExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4332 */
+      /* parser/parser_prod.nit:4400 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4332);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4400);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4333 */
+      /* parser/parser_prod.nit:4401 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4333);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4401);
       }
-      /* ./parser//parser_prod.nit:4334 */
+      /* parser/parser_prod.nit:4402 */
       ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4336 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4336);
+      /* parser/parser_prod.nit:4404 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4404);
     }
-    /* ./parser//parser_prod.nit:4338 */
+    /* parser/parser_prod.nit:4406 */
     goto label1;
   }
   label1: while(0);
@@ -23631,7 +24013,7 @@ void parser___parser_prod___ABinopExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4342;
+  fra.me.line = 4410;
   fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -23641,19 +24023,19 @@ void parser___parser_prod___ABinopExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4344 */
+  /* parser/parser_prod.nit:4412 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4344);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4412);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:4345 */
+  /* parser/parser_prod.nit:4413 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4345);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4413);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -23667,7 +24049,7 @@ void parser___parser_prod___AOrExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos139]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4349;
+  fra.me.line = 4417;
   fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -23686,7 +24068,7 @@ void parser___parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t p1, val_t p2,
   if (init_table[itpos140]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4351;
+  fra.me.line = 4419;
   fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___init_aorexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -23698,34 +24080,34 @@ void parser___parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t p1, val_t p2,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4351 */
+  /* parser/parser_prod.nit:4419 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4356 */
+  /* parser/parser_prod.nit:4424 */
   CALL_parser___parser_prod___AOrExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:4357 */
+  /* parser/parser_prod.nit:4425 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4357);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4425);
   }
   ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:4358 */
+  /* parser/parser_prod.nit:4426 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4358);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4426);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4359 */
+  /* parser/parser_prod.nit:4427 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4359);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4427);
   }
   ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:4360 */
+  /* parser/parser_prod.nit:4428 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4360);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4428);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -23739,7 +24121,7 @@ void parser___parser_prod___AOrExpr___replace_child(val_t p0, val_t p1, val_t p2
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4363;
+  fra.me.line = 4431;
   fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -23751,11 +24133,11 @@ void parser___parser_prod___AOrExpr___replace_child(val_t p0, val_t p1, val_t p2
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4365 */
+  /* parser/parser_prod.nit:4433 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4365);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4433);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -23765,7 +24147,7 @@ void parser___parser_prod___AOrExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4366 */
+    /* parser/parser_prod.nit:4434 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -23780,32 +24162,32 @@ void parser___parser_prod___AOrExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4367 */
+      /* parser/parser_prod.nit:4435 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4367);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4435);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4368 */
+      /* parser/parser_prod.nit:4436 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4368);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4436);
       }
-      /* ./parser//parser_prod.nit:4369 */
+      /* parser/parser_prod.nit:4437 */
       ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4371 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4371);
+      /* parser/parser_prod.nit:4439 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4439);
     }
-    /* ./parser//parser_prod.nit:4373 */
+    /* parser/parser_prod.nit:4441 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4375 */
+  /* parser/parser_prod.nit:4443 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4375);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4443);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -23815,7 +24197,7 @@ void parser___parser_prod___AOrExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4376 */
+    /* parser/parser_prod.nit:4444 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -23830,25 +24212,25 @@ void parser___parser_prod___AOrExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4377 */
+      /* parser/parser_prod.nit:4445 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4377);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4445);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4378 */
+      /* parser/parser_prod.nit:4446 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4378);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4446);
       }
-      /* ./parser//parser_prod.nit:4379 */
+      /* parser/parser_prod.nit:4447 */
       ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4381 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4381);
+      /* parser/parser_prod.nit:4449 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4449);
     }
-    /* ./parser//parser_prod.nit:4383 */
+    /* parser/parser_prod.nit:4451 */
     goto label1;
   }
   label1: while(0);
@@ -23861,7 +24243,7 @@ void parser___parser_prod___AOrExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4387;
+  fra.me.line = 4455;
   fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -23871,19 +24253,19 @@ void parser___parser_prod___AOrExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4389 */
+  /* parser/parser_prod.nit:4457 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4389);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4457);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:4390 */
+  /* parser/parser_prod.nit:4458 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4390);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4458);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -23897,7 +24279,7 @@ void parser___parser_prod___AAndExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos141]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4394;
+  fra.me.line = 4462;
   fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -23916,7 +24298,7 @@ void parser___parser_prod___AAndExpr___init_aandexpr(val_t p0, val_t p1, val_t p
   if (init_table[itpos142]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4396;
+  fra.me.line = 4464;
   fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___init_aandexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -23928,34 +24310,34 @@ void parser___parser_prod___AAndExpr___init_aandexpr(val_t p0, val_t p1, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4396 */
+  /* parser/parser_prod.nit:4464 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4401 */
+  /* parser/parser_prod.nit:4469 */
   CALL_parser___parser_prod___AAndExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:4402 */
+  /* parser/parser_prod.nit:4470 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4402);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4470);
   }
   ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:4403 */
+  /* parser/parser_prod.nit:4471 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4403);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4471);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4404 */
+  /* parser/parser_prod.nit:4472 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4404);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4472);
   }
   ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:4405 */
+  /* parser/parser_prod.nit:4473 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4405);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4473);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -23969,7 +24351,7 @@ void parser___parser_prod___AAndExpr___replace_child(val_t p0, val_t p1, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4408;
+  fra.me.line = 4476;
   fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -23981,11 +24363,11 @@ void parser___parser_prod___AAndExpr___replace_child(val_t p0, val_t p1, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4410 */
+  /* parser/parser_prod.nit:4478 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4410);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4478);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -23995,7 +24377,7 @@ void parser___parser_prod___AAndExpr___replace_child(val_t p0, val_t p1, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4411 */
+    /* parser/parser_prod.nit:4479 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -24010,32 +24392,32 @@ void parser___parser_prod___AAndExpr___replace_child(val_t p0, val_t p1, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4412 */
+      /* parser/parser_prod.nit:4480 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4412);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4480);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4413 */
+      /* parser/parser_prod.nit:4481 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4413);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4481);
       }
-      /* ./parser//parser_prod.nit:4414 */
+      /* parser/parser_prod.nit:4482 */
       ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4416 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4416);
+      /* parser/parser_prod.nit:4484 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4484);
     }
-    /* ./parser//parser_prod.nit:4418 */
+    /* parser/parser_prod.nit:4486 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4420 */
+  /* parser/parser_prod.nit:4488 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4420);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4488);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -24045,7 +24427,7 @@ void parser___parser_prod___AAndExpr___replace_child(val_t p0, val_t p1, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4421 */
+    /* parser/parser_prod.nit:4489 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -24060,25 +24442,25 @@ void parser___parser_prod___AAndExpr___replace_child(val_t p0, val_t p1, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4422 */
+      /* parser/parser_prod.nit:4490 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4422);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4490);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4423 */
+      /* parser/parser_prod.nit:4491 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4423);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4491);
       }
-      /* ./parser//parser_prod.nit:4424 */
+      /* parser/parser_prod.nit:4492 */
       ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4426 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4426);
+      /* parser/parser_prod.nit:4494 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4494);
     }
-    /* ./parser//parser_prod.nit:4428 */
+    /* parser/parser_prod.nit:4496 */
     goto label1;
   }
   label1: while(0);
@@ -24091,7 +24473,7 @@ void parser___parser_prod___AAndExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4432;
+  fra.me.line = 4500;
   fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -24101,19 +24483,19 @@ void parser___parser_prod___AAndExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4434 */
+  /* parser/parser_prod.nit:4502 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4434);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4502);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:4435 */
+  /* parser/parser_prod.nit:4503 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4435);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4503);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -24127,7 +24509,7 @@ void parser___parser_prod___AOrElseExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos143]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4439;
+  fra.me.line = 4507;
   fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -24146,7 +24528,7 @@ void parser___parser_prod___AOrElseExpr___init_aorelseexpr(val_t p0, val_t p1, v
   if (init_table[itpos144]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4441;
+  fra.me.line = 4509;
   fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___init_aorelseexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -24158,34 +24540,34 @@ void parser___parser_prod___AOrElseExpr___init_aorelseexpr(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4441 */
+  /* parser/parser_prod.nit:4509 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4446 */
+  /* parser/parser_prod.nit:4514 */
   CALL_parser___parser_prod___AOrElseExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:4447 */
+  /* parser/parser_prod.nit:4515 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4447);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4515);
   }
   ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:4448 */
+  /* parser/parser_prod.nit:4516 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4448);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4516);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4449 */
+  /* parser/parser_prod.nit:4517 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4449);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4517);
   }
   ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:4450 */
+  /* parser/parser_prod.nit:4518 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4450);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4518);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -24199,7 +24581,7 @@ void parser___parser_prod___AOrElseExpr___replace_child(val_t p0, val_t p1, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4453;
+  fra.me.line = 4521;
   fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -24211,11 +24593,11 @@ void parser___parser_prod___AOrElseExpr___replace_child(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4455 */
+  /* parser/parser_prod.nit:4523 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4455);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4523);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -24225,7 +24607,7 @@ void parser___parser_prod___AOrElseExpr___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4456 */
+    /* parser/parser_prod.nit:4524 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -24240,32 +24622,32 @@ void parser___parser_prod___AOrElseExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4457 */
+      /* parser/parser_prod.nit:4525 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4457);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4525);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4458 */
+      /* parser/parser_prod.nit:4526 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4458);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4526);
       }
-      /* ./parser//parser_prod.nit:4459 */
+      /* parser/parser_prod.nit:4527 */
       ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4461 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4461);
+      /* parser/parser_prod.nit:4529 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4529);
     }
-    /* ./parser//parser_prod.nit:4463 */
+    /* parser/parser_prod.nit:4531 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4465 */
+  /* parser/parser_prod.nit:4533 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4465);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4533);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -24275,7 +24657,7 @@ void parser___parser_prod___AOrElseExpr___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4466 */
+    /* parser/parser_prod.nit:4534 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -24290,25 +24672,25 @@ void parser___parser_prod___AOrElseExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4467 */
+      /* parser/parser_prod.nit:4535 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4467);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4535);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4468 */
+      /* parser/parser_prod.nit:4536 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4468);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4536);
       }
-      /* ./parser//parser_prod.nit:4469 */
+      /* parser/parser_prod.nit:4537 */
       ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4471 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4471);
+      /* parser/parser_prod.nit:4539 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4539);
     }
-    /* ./parser//parser_prod.nit:4473 */
+    /* parser/parser_prod.nit:4541 */
     goto label1;
   }
   label1: while(0);
@@ -24321,7 +24703,7 @@ void parser___parser_prod___AOrElseExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4477;
+  fra.me.line = 4545;
   fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -24331,19 +24713,19 @@ void parser___parser_prod___AOrElseExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4479 */
+  /* parser/parser_prod.nit:4547 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4479);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4547);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:4480 */
+  /* parser/parser_prod.nit:4548 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4480);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4548);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -24357,7 +24739,7 @@ void parser___parser_prod___ANotExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos145]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4484;
+  fra.me.line = 4552;
   fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -24376,7 +24758,7 @@ void parser___parser_prod___ANotExpr___init_anotexpr(val_t p0, val_t p1, val_t p
   if (init_table[itpos146]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4486;
+  fra.me.line = 4554;
   fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___init_anotexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -24388,34 +24770,34 @@ void parser___parser_prod___ANotExpr___init_anotexpr(val_t p0, val_t p1, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4486 */
+  /* parser/parser_prod.nit:4554 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4491 */
+  /* parser/parser_prod.nit:4559 */
   CALL_parser___parser_prod___ANotExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:4492 */
+  /* parser/parser_prod.nit:4560 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4492);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4560);
   }
   ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:4493 */
+  /* parser/parser_prod.nit:4561 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4493);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4561);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4494 */
+  /* parser/parser_prod.nit:4562 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4494);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4562);
   }
   ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:4495 */
+  /* parser/parser_prod.nit:4563 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4495);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4563);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -24429,7 +24811,7 @@ void parser___parser_prod___ANotExpr___replace_child(val_t p0, val_t p1, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4498;
+  fra.me.line = 4566;
   fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -24441,11 +24823,11 @@ void parser___parser_prod___ANotExpr___replace_child(val_t p0, val_t p1, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4500 */
+  /* parser/parser_prod.nit:4568 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 4500);
+    nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 4568);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -24455,7 +24837,7 @@ void parser___parser_prod___ANotExpr___replace_child(val_t p0, val_t p1, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4501 */
+    /* parser/parser_prod.nit:4569 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -24470,32 +24852,32 @@ void parser___parser_prod___ANotExpr___replace_child(val_t p0, val_t p1, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4502 */
+      /* parser/parser_prod.nit:4570 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4502);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4570);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4503 */
+      /* parser/parser_prod.nit:4571 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnot, ID_parser___parser_nodes___TKwnot)) /*cast TKwnot*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4503);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4571);
       }
-      /* ./parser//parser_prod.nit:4504 */
+      /* parser/parser_prod.nit:4572 */
       ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4506 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4506);
+      /* parser/parser_prod.nit:4574 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4574);
     }
-    /* ./parser//parser_prod.nit:4508 */
+    /* parser/parser_prod.nit:4576 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4510 */
+  /* parser/parser_prod.nit:4578 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4510);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4578);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -24505,7 +24887,7 @@ void parser___parser_prod___ANotExpr___replace_child(val_t p0, val_t p1, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4511 */
+    /* parser/parser_prod.nit:4579 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -24520,25 +24902,25 @@ void parser___parser_prod___ANotExpr___replace_child(val_t p0, val_t p1, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4512 */
+      /* parser/parser_prod.nit:4580 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4512);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4580);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4513 */
+      /* parser/parser_prod.nit:4581 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4513);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4581);
       }
-      /* ./parser//parser_prod.nit:4514 */
+      /* parser/parser_prod.nit:4582 */
       ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4516 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4516);
+      /* parser/parser_prod.nit:4584 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4584);
     }
-    /* ./parser//parser_prod.nit:4518 */
+    /* parser/parser_prod.nit:4586 */
     goto label1;
   }
   label1: while(0);
@@ -24551,7 +24933,7 @@ void parser___parser_prod___ANotExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4522;
+  fra.me.line = 4590;
   fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -24561,19 +24943,19 @@ void parser___parser_prod___ANotExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4524 */
+  /* parser/parser_prod.nit:4592 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 4524);
+    nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 4592);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:4525 */
+  /* parser/parser_prod.nit:4593 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4525);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4593);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -24587,7 +24969,7 @@ void parser___parser_prod___AEqExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos147]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4529;
+  fra.me.line = 4597;
   fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -24606,7 +24988,7 @@ void parser___parser_prod___AEqExpr___init_aeqexpr(val_t p0, val_t p1, val_t p2,
   if (init_table[itpos148]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4531;
+  fra.me.line = 4599;
   fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___init_aeqexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -24618,34 +25000,34 @@ void parser___parser_prod___AEqExpr___init_aeqexpr(val_t p0, val_t p1, val_t p2,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4531 */
+  /* parser/parser_prod.nit:4599 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4536 */
+  /* parser/parser_prod.nit:4604 */
   CALL_parser___parser_prod___AEqExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:4537 */
+  /* parser/parser_prod.nit:4605 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4537);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4605);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:4538 */
+  /* parser/parser_prod.nit:4606 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4538);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4606);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4539 */
+  /* parser/parser_prod.nit:4607 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4539);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4607);
   }
   ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:4540 */
+  /* parser/parser_prod.nit:4608 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4540);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4608);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -24659,7 +25041,7 @@ void parser___parser_prod___AEqExpr___replace_child(val_t p0, val_t p1, val_t p2
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4543;
+  fra.me.line = 4611;
   fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -24671,11 +25053,11 @@ void parser___parser_prod___AEqExpr___replace_child(val_t p0, val_t p1, val_t p2
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4545 */
+  /* parser/parser_prod.nit:4613 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4545);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4613);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -24685,7 +25067,7 @@ void parser___parser_prod___AEqExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4546 */
+    /* parser/parser_prod.nit:4614 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -24700,32 +25082,32 @@ void parser___parser_prod___AEqExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4547 */
+      /* parser/parser_prod.nit:4615 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4547);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4615);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4548 */
+      /* parser/parser_prod.nit:4616 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4548);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4616);
       }
-      /* ./parser//parser_prod.nit:4549 */
+      /* parser/parser_prod.nit:4617 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4551 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4551);
+      /* parser/parser_prod.nit:4619 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4619);
     }
-    /* ./parser//parser_prod.nit:4553 */
+    /* parser/parser_prod.nit:4621 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4555 */
+  /* parser/parser_prod.nit:4623 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4555);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4623);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -24735,7 +25117,7 @@ void parser___parser_prod___AEqExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4556 */
+    /* parser/parser_prod.nit:4624 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -24750,25 +25132,25 @@ void parser___parser_prod___AEqExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4557 */
+      /* parser/parser_prod.nit:4625 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4557);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4625);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4558 */
+      /* parser/parser_prod.nit:4626 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4558);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4626);
       }
-      /* ./parser//parser_prod.nit:4559 */
+      /* parser/parser_prod.nit:4627 */
       ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4561 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4561);
+      /* parser/parser_prod.nit:4629 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4629);
     }
-    /* ./parser//parser_prod.nit:4563 */
+    /* parser/parser_prod.nit:4631 */
     goto label1;
   }
   label1: while(0);
@@ -24781,7 +25163,7 @@ void parser___parser_prod___AEqExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4567;
+  fra.me.line = 4635;
   fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -24791,19 +25173,19 @@ void parser___parser_prod___AEqExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4569 */
+  /* parser/parser_prod.nit:4637 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4569);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4637);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:4570 */
+  /* parser/parser_prod.nit:4638 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4570);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4638);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -24817,7 +25199,7 @@ void parser___parser_prod___AEeExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos149]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4574;
+  fra.me.line = 4642;
   fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -24836,7 +25218,7 @@ void parser___parser_prod___AEeExpr___init_aeeexpr(val_t p0, val_t p1, val_t p2,
   if (init_table[itpos150]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4576;
+  fra.me.line = 4644;
   fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___init_aeeexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -24848,34 +25230,34 @@ void parser___parser_prod___AEeExpr___init_aeeexpr(val_t p0, val_t p1, val_t p2,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4576 */
+  /* parser/parser_prod.nit:4644 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4581 */
+  /* parser/parser_prod.nit:4649 */
   CALL_parser___parser_prod___AEeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:4582 */
+  /* parser/parser_prod.nit:4650 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4582);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4650);
   }
   ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:4583 */
+  /* parser/parser_prod.nit:4651 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4583);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4651);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4584 */
+  /* parser/parser_prod.nit:4652 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4584);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4652);
   }
   ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:4585 */
+  /* parser/parser_prod.nit:4653 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4585);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4653);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -24889,7 +25271,7 @@ void parser___parser_prod___AEeExpr___replace_child(val_t p0, val_t p1, val_t p2
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4588;
+  fra.me.line = 4656;
   fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -24901,11 +25283,11 @@ void parser___parser_prod___AEeExpr___replace_child(val_t p0, val_t p1, val_t p2
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4590 */
+  /* parser/parser_prod.nit:4658 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4590);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4658);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -24915,7 +25297,7 @@ void parser___parser_prod___AEeExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4591 */
+    /* parser/parser_prod.nit:4659 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -24930,32 +25312,32 @@ void parser___parser_prod___AEeExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4592 */
+      /* parser/parser_prod.nit:4660 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4592);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4660);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4593 */
+      /* parser/parser_prod.nit:4661 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4593);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4661);
       }
-      /* ./parser//parser_prod.nit:4594 */
+      /* parser/parser_prod.nit:4662 */
       ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4596 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4596);
+      /* parser/parser_prod.nit:4664 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4664);
     }
-    /* ./parser//parser_prod.nit:4598 */
+    /* parser/parser_prod.nit:4666 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4600 */
+  /* parser/parser_prod.nit:4668 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4600);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4668);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -24965,7 +25347,7 @@ void parser___parser_prod___AEeExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4601 */
+    /* parser/parser_prod.nit:4669 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -24980,25 +25362,25 @@ void parser___parser_prod___AEeExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4602 */
+      /* parser/parser_prod.nit:4670 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4602);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4670);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4603 */
+      /* parser/parser_prod.nit:4671 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4603);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4671);
       }
-      /* ./parser//parser_prod.nit:4604 */
+      /* parser/parser_prod.nit:4672 */
       ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4606 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4606);
+      /* parser/parser_prod.nit:4674 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4674);
     }
-    /* ./parser//parser_prod.nit:4608 */
+    /* parser/parser_prod.nit:4676 */
     goto label1;
   }
   label1: while(0);
@@ -25011,7 +25393,7 @@ void parser___parser_prod___AEeExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4612;
+  fra.me.line = 4680;
   fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -25021,19 +25403,19 @@ void parser___parser_prod___AEeExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4614 */
+  /* parser/parser_prod.nit:4682 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4614);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4682);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:4615 */
+  /* parser/parser_prod.nit:4683 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4615);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4683);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -25047,7 +25429,7 @@ void parser___parser_prod___ANeExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos151]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4619;
+  fra.me.line = 4687;
   fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -25066,7 +25448,7 @@ void parser___parser_prod___ANeExpr___init_aneexpr(val_t p0, val_t p1, val_t p2,
   if (init_table[itpos152]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4621;
+  fra.me.line = 4689;
   fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___init_aneexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -25078,34 +25460,34 @@ void parser___parser_prod___ANeExpr___init_aneexpr(val_t p0, val_t p1, val_t p2,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4621 */
+  /* parser/parser_prod.nit:4689 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4626 */
+  /* parser/parser_prod.nit:4694 */
   CALL_parser___parser_prod___ANeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:4627 */
+  /* parser/parser_prod.nit:4695 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4627);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4695);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:4628 */
+  /* parser/parser_prod.nit:4696 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4628);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4696);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4629 */
+  /* parser/parser_prod.nit:4697 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4629);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4697);
   }
   ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:4630 */
+  /* parser/parser_prod.nit:4698 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4630);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4698);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -25119,7 +25501,7 @@ void parser___parser_prod___ANeExpr___replace_child(val_t p0, val_t p1, val_t p2
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4633;
+  fra.me.line = 4701;
   fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -25131,11 +25513,11 @@ void parser___parser_prod___ANeExpr___replace_child(val_t p0, val_t p1, val_t p2
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4635 */
+  /* parser/parser_prod.nit:4703 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4635);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4703);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -25145,7 +25527,7 @@ void parser___parser_prod___ANeExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4636 */
+    /* parser/parser_prod.nit:4704 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -25160,32 +25542,32 @@ void parser___parser_prod___ANeExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4637 */
+      /* parser/parser_prod.nit:4705 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4637);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4705);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4638 */
+      /* parser/parser_prod.nit:4706 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4638);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4706);
       }
-      /* ./parser//parser_prod.nit:4639 */
+      /* parser/parser_prod.nit:4707 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4641 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4641);
+      /* parser/parser_prod.nit:4709 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4709);
     }
-    /* ./parser//parser_prod.nit:4643 */
+    /* parser/parser_prod.nit:4711 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4645 */
+  /* parser/parser_prod.nit:4713 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4645);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4713);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -25195,7 +25577,7 @@ void parser___parser_prod___ANeExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4646 */
+    /* parser/parser_prod.nit:4714 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -25210,25 +25592,25 @@ void parser___parser_prod___ANeExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4647 */
+      /* parser/parser_prod.nit:4715 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4647);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4715);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4648 */
+      /* parser/parser_prod.nit:4716 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4648);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4716);
       }
-      /* ./parser//parser_prod.nit:4649 */
+      /* parser/parser_prod.nit:4717 */
       ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4651 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4651);
+      /* parser/parser_prod.nit:4719 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4719);
     }
-    /* ./parser//parser_prod.nit:4653 */
+    /* parser/parser_prod.nit:4721 */
     goto label1;
   }
   label1: while(0);
@@ -25241,7 +25623,7 @@ void parser___parser_prod___ANeExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4657;
+  fra.me.line = 4725;
   fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -25251,19 +25633,19 @@ void parser___parser_prod___ANeExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4659 */
+  /* parser/parser_prod.nit:4727 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4659);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4727);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:4660 */
+  /* parser/parser_prod.nit:4728 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4660);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4728);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -25277,7 +25659,7 @@ void parser___parser_prod___ALtExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos153]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4664;
+  fra.me.line = 4732;
   fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -25296,7 +25678,7 @@ void parser___parser_prod___ALtExpr___init_altexpr(val_t p0, val_t p1, val_t p2,
   if (init_table[itpos154]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4666;
+  fra.me.line = 4734;
   fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___init_altexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -25308,34 +25690,34 @@ void parser___parser_prod___ALtExpr___init_altexpr(val_t p0, val_t p1, val_t p2,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4666 */
+  /* parser/parser_prod.nit:4734 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4671 */
+  /* parser/parser_prod.nit:4739 */
   CALL_parser___parser_prod___ALtExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:4672 */
+  /* parser/parser_prod.nit:4740 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4672);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4740);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:4673 */
+  /* parser/parser_prod.nit:4741 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4673);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4741);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4674 */
+  /* parser/parser_prod.nit:4742 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4674);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4742);
   }
   ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:4675 */
+  /* parser/parser_prod.nit:4743 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4675);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4743);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -25349,7 +25731,7 @@ void parser___parser_prod___ALtExpr___replace_child(val_t p0, val_t p1, val_t p2
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4678;
+  fra.me.line = 4746;
   fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -25361,11 +25743,11 @@ void parser___parser_prod___ALtExpr___replace_child(val_t p0, val_t p1, val_t p2
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4680 */
+  /* parser/parser_prod.nit:4748 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4680);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4748);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -25375,7 +25757,7 @@ void parser___parser_prod___ALtExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4681 */
+    /* parser/parser_prod.nit:4749 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -25390,32 +25772,32 @@ void parser___parser_prod___ALtExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4682 */
+      /* parser/parser_prod.nit:4750 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4682);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4750);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4683 */
+      /* parser/parser_prod.nit:4751 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4683);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4751);
       }
-      /* ./parser//parser_prod.nit:4684 */
+      /* parser/parser_prod.nit:4752 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4686 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4686);
+      /* parser/parser_prod.nit:4754 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4754);
     }
-    /* ./parser//parser_prod.nit:4688 */
+    /* parser/parser_prod.nit:4756 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4690 */
+  /* parser/parser_prod.nit:4758 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4690);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4758);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -25425,7 +25807,7 @@ void parser___parser_prod___ALtExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4691 */
+    /* parser/parser_prod.nit:4759 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -25440,25 +25822,25 @@ void parser___parser_prod___ALtExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4692 */
+      /* parser/parser_prod.nit:4760 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4692);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4760);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4693 */
+      /* parser/parser_prod.nit:4761 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4693);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4761);
       }
-      /* ./parser//parser_prod.nit:4694 */
+      /* parser/parser_prod.nit:4762 */
       ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4696 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4696);
+      /* parser/parser_prod.nit:4764 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4764);
     }
-    /* ./parser//parser_prod.nit:4698 */
+    /* parser/parser_prod.nit:4766 */
     goto label1;
   }
   label1: while(0);
@@ -25471,7 +25853,7 @@ void parser___parser_prod___ALtExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4702;
+  fra.me.line = 4770;
   fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -25481,19 +25863,19 @@ void parser___parser_prod___ALtExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4704 */
+  /* parser/parser_prod.nit:4772 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4704);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4772);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:4705 */
+  /* parser/parser_prod.nit:4773 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4705);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4773);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -25507,7 +25889,7 @@ void parser___parser_prod___ALeExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos155]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4709;
+  fra.me.line = 4777;
   fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -25526,7 +25908,7 @@ void parser___parser_prod___ALeExpr___init_aleexpr(val_t p0, val_t p1, val_t p2,
   if (init_table[itpos156]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4711;
+  fra.me.line = 4779;
   fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___init_aleexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -25538,34 +25920,34 @@ void parser___parser_prod___ALeExpr___init_aleexpr(val_t p0, val_t p1, val_t p2,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4711 */
+  /* parser/parser_prod.nit:4779 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4716 */
+  /* parser/parser_prod.nit:4784 */
   CALL_parser___parser_prod___ALeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:4717 */
+  /* parser/parser_prod.nit:4785 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4717);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4785);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:4718 */
+  /* parser/parser_prod.nit:4786 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4718);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4786);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4719 */
+  /* parser/parser_prod.nit:4787 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4719);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4787);
   }
   ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:4720 */
+  /* parser/parser_prod.nit:4788 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4720);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4788);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -25579,7 +25961,7 @@ void parser___parser_prod___ALeExpr___replace_child(val_t p0, val_t p1, val_t p2
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4723;
+  fra.me.line = 4791;
   fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -25591,11 +25973,11 @@ void parser___parser_prod___ALeExpr___replace_child(val_t p0, val_t p1, val_t p2
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4725 */
+  /* parser/parser_prod.nit:4793 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4725);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4793);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -25605,7 +25987,7 @@ void parser___parser_prod___ALeExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4726 */
+    /* parser/parser_prod.nit:4794 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -25620,32 +26002,32 @@ void parser___parser_prod___ALeExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4727 */
+      /* parser/parser_prod.nit:4795 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4727);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4795);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4728 */
+      /* parser/parser_prod.nit:4796 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4728);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4796);
       }
-      /* ./parser//parser_prod.nit:4729 */
+      /* parser/parser_prod.nit:4797 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4731 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4731);
+      /* parser/parser_prod.nit:4799 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4799);
     }
-    /* ./parser//parser_prod.nit:4733 */
+    /* parser/parser_prod.nit:4801 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4735 */
+  /* parser/parser_prod.nit:4803 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4735);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4803);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -25655,7 +26037,7 @@ void parser___parser_prod___ALeExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4736 */
+    /* parser/parser_prod.nit:4804 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -25670,25 +26052,25 @@ void parser___parser_prod___ALeExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4737 */
+      /* parser/parser_prod.nit:4805 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4737);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4805);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4738 */
+      /* parser/parser_prod.nit:4806 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4738);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4806);
       }
-      /* ./parser//parser_prod.nit:4739 */
+      /* parser/parser_prod.nit:4807 */
       ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4741 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4741);
+      /* parser/parser_prod.nit:4809 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4809);
     }
-    /* ./parser//parser_prod.nit:4743 */
+    /* parser/parser_prod.nit:4811 */
     goto label1;
   }
   label1: while(0);
@@ -25701,7 +26083,7 @@ void parser___parser_prod___ALeExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4747;
+  fra.me.line = 4815;
   fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -25711,19 +26093,19 @@ void parser___parser_prod___ALeExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4749 */
+  /* parser/parser_prod.nit:4817 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4749);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4817);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:4750 */
+  /* parser/parser_prod.nit:4818 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4750);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4818);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -25737,7 +26119,7 @@ void parser___parser_prod___ALlExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos157]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4754;
+  fra.me.line = 4822;
   fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -25756,7 +26138,7 @@ void parser___parser_prod___ALlExpr___init_allexpr(val_t p0, val_t p1, val_t p2,
   if (init_table[itpos158]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4756;
+  fra.me.line = 4824;
   fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___init_allexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -25768,34 +26150,34 @@ void parser___parser_prod___ALlExpr___init_allexpr(val_t p0, val_t p1, val_t p2,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4756 */
+  /* parser/parser_prod.nit:4824 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4761 */
+  /* parser/parser_prod.nit:4829 */
   CALL_parser___parser_prod___ALlExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:4762 */
+  /* parser/parser_prod.nit:4830 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4762);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4830);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:4763 */
+  /* parser/parser_prod.nit:4831 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4763);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4831);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4764 */
+  /* parser/parser_prod.nit:4832 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4764);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4832);
   }
   ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:4765 */
+  /* parser/parser_prod.nit:4833 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4765);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4833);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -25809,7 +26191,7 @@ void parser___parser_prod___ALlExpr___replace_child(val_t p0, val_t p1, val_t p2
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4768;
+  fra.me.line = 4836;
   fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -25821,11 +26203,11 @@ void parser___parser_prod___ALlExpr___replace_child(val_t p0, val_t p1, val_t p2
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4770 */
+  /* parser/parser_prod.nit:4838 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4770);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4838);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -25835,7 +26217,7 @@ void parser___parser_prod___ALlExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4771 */
+    /* parser/parser_prod.nit:4839 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -25850,32 +26232,32 @@ void parser___parser_prod___ALlExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4772 */
+      /* parser/parser_prod.nit:4840 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4772);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4840);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4773 */
+      /* parser/parser_prod.nit:4841 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4773);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4841);
       }
-      /* ./parser//parser_prod.nit:4774 */
+      /* parser/parser_prod.nit:4842 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4776 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4776);
+      /* parser/parser_prod.nit:4844 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4844);
     }
-    /* ./parser//parser_prod.nit:4778 */
+    /* parser/parser_prod.nit:4846 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4780 */
+  /* parser/parser_prod.nit:4848 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4780);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4848);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -25885,7 +26267,7 @@ void parser___parser_prod___ALlExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4781 */
+    /* parser/parser_prod.nit:4849 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -25900,25 +26282,25 @@ void parser___parser_prod___ALlExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4782 */
+      /* parser/parser_prod.nit:4850 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4782);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4850);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4783 */
+      /* parser/parser_prod.nit:4851 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4783);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4851);
       }
-      /* ./parser//parser_prod.nit:4784 */
+      /* parser/parser_prod.nit:4852 */
       ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4786 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4786);
+      /* parser/parser_prod.nit:4854 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4854);
     }
-    /* ./parser//parser_prod.nit:4788 */
+    /* parser/parser_prod.nit:4856 */
     goto label1;
   }
   label1: while(0);
@@ -25931,7 +26313,7 @@ void parser___parser_prod___ALlExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4792;
+  fra.me.line = 4860;
   fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -25941,19 +26323,19 @@ void parser___parser_prod___ALlExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4794 */
+  /* parser/parser_prod.nit:4862 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4794);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4862);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:4795 */
+  /* parser/parser_prod.nit:4863 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4795);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4863);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -25967,7 +26349,7 @@ void parser___parser_prod___AGtExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos159]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4799;
+  fra.me.line = 4867;
   fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -25986,7 +26368,7 @@ void parser___parser_prod___AGtExpr___init_agtexpr(val_t p0, val_t p1, val_t p2,
   if (init_table[itpos160]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4801;
+  fra.me.line = 4869;
   fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___init_agtexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -25998,34 +26380,34 @@ void parser___parser_prod___AGtExpr___init_agtexpr(val_t p0, val_t p1, val_t p2,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4801 */
+  /* parser/parser_prod.nit:4869 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4806 */
+  /* parser/parser_prod.nit:4874 */
   CALL_parser___parser_prod___AGtExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:4807 */
+  /* parser/parser_prod.nit:4875 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4807);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4875);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:4808 */
+  /* parser/parser_prod.nit:4876 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4808);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4876);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4809 */
+  /* parser/parser_prod.nit:4877 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4809);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4877);
   }
   ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:4810 */
+  /* parser/parser_prod.nit:4878 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4810);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4878);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -26039,7 +26421,7 @@ void parser___parser_prod___AGtExpr___replace_child(val_t p0, val_t p1, val_t p2
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4813;
+  fra.me.line = 4881;
   fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -26051,11 +26433,11 @@ void parser___parser_prod___AGtExpr___replace_child(val_t p0, val_t p1, val_t p2
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4815 */
+  /* parser/parser_prod.nit:4883 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4815);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4883);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -26065,7 +26447,7 @@ void parser___parser_prod___AGtExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4816 */
+    /* parser/parser_prod.nit:4884 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -26080,32 +26462,32 @@ void parser___parser_prod___AGtExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4817 */
+      /* parser/parser_prod.nit:4885 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4817);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4885);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4818 */
+      /* parser/parser_prod.nit:4886 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4818);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4886);
       }
-      /* ./parser//parser_prod.nit:4819 */
+      /* parser/parser_prod.nit:4887 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4821 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4821);
+      /* parser/parser_prod.nit:4889 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4889);
     }
-    /* ./parser//parser_prod.nit:4823 */
+    /* parser/parser_prod.nit:4891 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4825 */
+  /* parser/parser_prod.nit:4893 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4825);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4893);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -26115,7 +26497,7 @@ void parser___parser_prod___AGtExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4826 */
+    /* parser/parser_prod.nit:4894 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -26130,25 +26512,25 @@ void parser___parser_prod___AGtExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4827 */
+      /* parser/parser_prod.nit:4895 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4827);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4895);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4828 */
+      /* parser/parser_prod.nit:4896 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4828);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4896);
       }
-      /* ./parser//parser_prod.nit:4829 */
+      /* parser/parser_prod.nit:4897 */
       ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4831 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4831);
+      /* parser/parser_prod.nit:4899 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4899);
     }
-    /* ./parser//parser_prod.nit:4833 */
+    /* parser/parser_prod.nit:4901 */
     goto label1;
   }
   label1: while(0);
@@ -26161,7 +26543,7 @@ void parser___parser_prod___AGtExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4837;
+  fra.me.line = 4905;
   fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -26171,19 +26553,19 @@ void parser___parser_prod___AGtExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4839 */
+  /* parser/parser_prod.nit:4907 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4839);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4907);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:4840 */
+  /* parser/parser_prod.nit:4908 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4840);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4908);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -26197,7 +26579,7 @@ void parser___parser_prod___AGeExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos161]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4844;
+  fra.me.line = 4912;
   fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -26216,7 +26598,7 @@ void parser___parser_prod___AGeExpr___init_ageexpr(val_t p0, val_t p1, val_t p2,
   if (init_table[itpos162]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4846;
+  fra.me.line = 4914;
   fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___init_ageexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -26228,34 +26610,34 @@ void parser___parser_prod___AGeExpr___init_ageexpr(val_t p0, val_t p1, val_t p2,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4846 */
+  /* parser/parser_prod.nit:4914 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4851 */
+  /* parser/parser_prod.nit:4919 */
   CALL_parser___parser_prod___AGeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:4852 */
+  /* parser/parser_prod.nit:4920 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4852);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4920);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:4853 */
+  /* parser/parser_prod.nit:4921 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4853);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4921);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4854 */
+  /* parser/parser_prod.nit:4922 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4854);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4922);
   }
   ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:4855 */
+  /* parser/parser_prod.nit:4923 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4855);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4923);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -26269,7 +26651,7 @@ void parser___parser_prod___AGeExpr___replace_child(val_t p0, val_t p1, val_t p2
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4858;
+  fra.me.line = 4926;
   fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -26281,11 +26663,11 @@ void parser___parser_prod___AGeExpr___replace_child(val_t p0, val_t p1, val_t p2
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4860 */
+  /* parser/parser_prod.nit:4928 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4860);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4928);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -26295,7 +26677,7 @@ void parser___parser_prod___AGeExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4861 */
+    /* parser/parser_prod.nit:4929 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -26310,32 +26692,32 @@ void parser___parser_prod___AGeExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4862 */
+      /* parser/parser_prod.nit:4930 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4862);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4930);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4863 */
+      /* parser/parser_prod.nit:4931 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4863);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4931);
       }
-      /* ./parser//parser_prod.nit:4864 */
+      /* parser/parser_prod.nit:4932 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4866 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4866);
+      /* parser/parser_prod.nit:4934 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4934);
     }
-    /* ./parser//parser_prod.nit:4868 */
+    /* parser/parser_prod.nit:4936 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4870 */
+  /* parser/parser_prod.nit:4938 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4870);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4938);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -26345,7 +26727,7 @@ void parser___parser_prod___AGeExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4871 */
+    /* parser/parser_prod.nit:4939 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -26360,25 +26742,25 @@ void parser___parser_prod___AGeExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4872 */
+      /* parser/parser_prod.nit:4940 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4872);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4940);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4873 */
+      /* parser/parser_prod.nit:4941 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4873);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4941);
       }
-      /* ./parser//parser_prod.nit:4874 */
+      /* parser/parser_prod.nit:4942 */
       ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4876 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4876);
+      /* parser/parser_prod.nit:4944 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4944);
     }
-    /* ./parser//parser_prod.nit:4878 */
+    /* parser/parser_prod.nit:4946 */
     goto label1;
   }
   label1: while(0);
@@ -26391,7 +26773,7 @@ void parser___parser_prod___AGeExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4882;
+  fra.me.line = 4950;
   fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -26401,19 +26783,19 @@ void parser___parser_prod___AGeExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4884 */
+  /* parser/parser_prod.nit:4952 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4884);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4952);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:4885 */
+  /* parser/parser_prod.nit:4953 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4885);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4953);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -26427,7 +26809,7 @@ void parser___parser_prod___AGgExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos163]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4889;
+  fra.me.line = 4957;
   fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -26446,7 +26828,7 @@ void parser___parser_prod___AGgExpr___init_aggexpr(val_t p0, val_t p1, val_t p2,
   if (init_table[itpos164]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4891;
+  fra.me.line = 4959;
   fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___init_aggexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -26458,34 +26840,34 @@ void parser___parser_prod___AGgExpr___init_aggexpr(val_t p0, val_t p1, val_t p2,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4891 */
+  /* parser/parser_prod.nit:4959 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4896 */
+  /* parser/parser_prod.nit:4964 */
   CALL_parser___parser_prod___AGgExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:4897 */
+  /* parser/parser_prod.nit:4965 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4897);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4965);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:4898 */
+  /* parser/parser_prod.nit:4966 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4898);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4966);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4899 */
+  /* parser/parser_prod.nit:4967 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4899);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4967);
   }
   ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:4900 */
+  /* parser/parser_prod.nit:4968 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4900);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4968);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -26499,7 +26881,7 @@ void parser___parser_prod___AGgExpr___replace_child(val_t p0, val_t p1, val_t p2
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4903;
+  fra.me.line = 4971;
   fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -26511,11 +26893,11 @@ void parser___parser_prod___AGgExpr___replace_child(val_t p0, val_t p1, val_t p2
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4905 */
+  /* parser/parser_prod.nit:4973 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4905);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4973);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -26525,7 +26907,7 @@ void parser___parser_prod___AGgExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4906 */
+    /* parser/parser_prod.nit:4974 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -26540,32 +26922,32 @@ void parser___parser_prod___AGgExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4907 */
+      /* parser/parser_prod.nit:4975 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4907);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4975);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4908 */
+      /* parser/parser_prod.nit:4976 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4908);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4976);
       }
-      /* ./parser//parser_prod.nit:4909 */
+      /* parser/parser_prod.nit:4977 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4911 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4911);
+      /* parser/parser_prod.nit:4979 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4979);
     }
-    /* ./parser//parser_prod.nit:4913 */
+    /* parser/parser_prod.nit:4981 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4915 */
+  /* parser/parser_prod.nit:4983 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4915);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4983);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -26575,7 +26957,7 @@ void parser___parser_prod___AGgExpr___replace_child(val_t p0, val_t p1, val_t p2
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4916 */
+    /* parser/parser_prod.nit:4984 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -26590,25 +26972,25 @@ void parser___parser_prod___AGgExpr___replace_child(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4917 */
+      /* parser/parser_prod.nit:4985 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4917);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4985);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4918 */
+      /* parser/parser_prod.nit:4986 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4918);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4986);
       }
-      /* ./parser//parser_prod.nit:4919 */
+      /* parser/parser_prod.nit:4987 */
       ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4921 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4921);
+      /* parser/parser_prod.nit:4989 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4989);
     }
-    /* ./parser//parser_prod.nit:4923 */
+    /* parser/parser_prod.nit:4991 */
     goto label1;
   }
   label1: while(0);
@@ -26621,7 +27003,7 @@ void parser___parser_prod___AGgExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4927;
+  fra.me.line = 4995;
   fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -26631,19 +27013,19 @@ void parser___parser_prod___AGgExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4929 */
+  /* parser/parser_prod.nit:4997 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4929);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4997);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:4930 */
+  /* parser/parser_prod.nit:4998 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4930);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4998);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -26657,7 +27039,7 @@ void parser___parser_prod___AIsaExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos165]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4934;
+  fra.me.line = 5002;
   fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -26676,7 +27058,7 @@ void parser___parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val_t p1, val_t p
   if (init_table[itpos166]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4936;
+  fra.me.line = 5004;
   fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___init_aisaexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -26688,34 +27070,34 @@ void parser___parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val_t p1, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4936 */
+  /* parser/parser_prod.nit:5004 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4941 */
+  /* parser/parser_prod.nit:5009 */
   CALL_parser___parser_prod___AIsaExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:4942 */
+  /* parser/parser_prod.nit:5010 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4942);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5010);
   }
   ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:4943 */
+  /* parser/parser_prod.nit:5011 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4943);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5011);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4944 */
+  /* parser/parser_prod.nit:5012 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4944);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5012);
   }
   ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:4945 */
+  /* parser/parser_prod.nit:5013 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4945);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5013);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -26729,7 +27111,7 @@ void parser___parser_prod___AIsaExpr___replace_child(val_t p0, val_t p1, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4948;
+  fra.me.line = 5016;
   fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -26741,11 +27123,11 @@ void parser___parser_prod___AIsaExpr___replace_child(val_t p0, val_t p1, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4950 */
+  /* parser/parser_prod.nit:5018 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4950);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5018);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -26755,7 +27137,7 @@ void parser___parser_prod___AIsaExpr___replace_child(val_t p0, val_t p1, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4951 */
+    /* parser/parser_prod.nit:5019 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -26770,32 +27152,32 @@ void parser___parser_prod___AIsaExpr___replace_child(val_t p0, val_t p1, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4952 */
+      /* parser/parser_prod.nit:5020 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4952);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5020);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4953 */
+      /* parser/parser_prod.nit:5021 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4953);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5021);
       }
-      /* ./parser//parser_prod.nit:4954 */
+      /* parser/parser_prod.nit:5022 */
       ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4956 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4956);
+      /* parser/parser_prod.nit:5024 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5024);
     }
-    /* ./parser//parser_prod.nit:4958 */
+    /* parser/parser_prod.nit:5026 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:4960 */
+  /* parser/parser_prod.nit:5028 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 4960);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5028);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -26805,7 +27187,7 @@ void parser___parser_prod___AIsaExpr___replace_child(val_t p0, val_t p1, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4961 */
+    /* parser/parser_prod.nit:5029 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -26820,25 +27202,25 @@ void parser___parser_prod___AIsaExpr___replace_child(val_t p0, val_t p1, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4962 */
+      /* parser/parser_prod.nit:5030 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4962);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5030);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4963 */
+      /* parser/parser_prod.nit:5031 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4963);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5031);
       }
-      /* ./parser//parser_prod.nit:4964 */
+      /* parser/parser_prod.nit:5032 */
       ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:4966 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4966);
+      /* parser/parser_prod.nit:5034 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5034);
     }
-    /* ./parser//parser_prod.nit:4968 */
+    /* parser/parser_prod.nit:5036 */
     goto label1;
   }
   label1: while(0);
@@ -26851,7 +27233,7 @@ void parser___parser_prod___AIsaExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4972;
+  fra.me.line = 5040;
   fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -26861,19 +27243,19 @@ void parser___parser_prod___AIsaExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:4974 */
+  /* parser/parser_prod.nit:5042 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4974);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5042);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:4975 */
+  /* parser/parser_prod.nit:5043 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 4975);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5043);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -26887,7 +27269,7 @@ void parser___parser_prod___APlusExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos167]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4979;
+  fra.me.line = 5047;
   fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -26906,7 +27288,7 @@ void parser___parser_prod___APlusExpr___init_aplusexpr(val_t p0, val_t p1, val_t
   if (init_table[itpos168]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4981;
+  fra.me.line = 5049;
   fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___init_aplusexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -26918,34 +27300,34 @@ void parser___parser_prod___APlusExpr___init_aplusexpr(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4981 */
+  /* parser/parser_prod.nit:5049 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:4986 */
+  /* parser/parser_prod.nit:5054 */
   CALL_parser___parser_prod___APlusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:4987 */
+  /* parser/parser_prod.nit:5055 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4987);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5055);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:4988 */
+  /* parser/parser_prod.nit:5056 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4988);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5056);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:4989 */
+  /* parser/parser_prod.nit:5057 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4989);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5057);
   }
   ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:4990 */
+  /* parser/parser_prod.nit:5058 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4990);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5058);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -26959,7 +27341,7 @@ void parser___parser_prod___APlusExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 4993;
+  fra.me.line = 5061;
   fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -26971,11 +27353,11 @@ void parser___parser_prod___APlusExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:4995 */
+  /* parser/parser_prod.nit:5063 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4995);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5063);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -26985,7 +27367,7 @@ void parser___parser_prod___APlusExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:4996 */
+    /* parser/parser_prod.nit:5064 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -27000,32 +27382,32 @@ void parser___parser_prod___APlusExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:4997 */
+      /* parser/parser_prod.nit:5065 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4997);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5065);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:4998 */
+      /* parser/parser_prod.nit:5066 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4998);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5066);
       }
-      /* ./parser//parser_prod.nit:4999 */
+      /* parser/parser_prod.nit:5067 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5001 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5001);
+      /* parser/parser_prod.nit:5069 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5069);
     }
-    /* ./parser//parser_prod.nit:5003 */
+    /* parser/parser_prod.nit:5071 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5005 */
+  /* parser/parser_prod.nit:5073 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5005);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5073);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -27035,7 +27417,7 @@ void parser___parser_prod___APlusExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5006 */
+    /* parser/parser_prod.nit:5074 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -27050,25 +27432,25 @@ void parser___parser_prod___APlusExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5007 */
+      /* parser/parser_prod.nit:5075 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5007);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5075);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5008 */
+      /* parser/parser_prod.nit:5076 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5008);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5076);
       }
-      /* ./parser//parser_prod.nit:5009 */
+      /* parser/parser_prod.nit:5077 */
       ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5011 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5011);
+      /* parser/parser_prod.nit:5079 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5079);
     }
-    /* ./parser//parser_prod.nit:5013 */
+    /* parser/parser_prod.nit:5081 */
     goto label1;
   }
   label1: while(0);
@@ -27081,7 +27463,7 @@ void parser___parser_prod___APlusExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5017;
+  fra.me.line = 5085;
   fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -27091,19 +27473,19 @@ void parser___parser_prod___APlusExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5019 */
+  /* parser/parser_prod.nit:5087 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5019);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5087);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5020 */
+  /* parser/parser_prod.nit:5088 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5020);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5088);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -27117,7 +27499,7 @@ void parser___parser_prod___AMinusExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos169]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5024;
+  fra.me.line = 5092;
   fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -27136,7 +27518,7 @@ void parser___parser_prod___AMinusExpr___init_aminusexpr(val_t p0, val_t p1, val
   if (init_table[itpos170]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5026;
+  fra.me.line = 5094;
   fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___init_aminusexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -27148,34 +27530,34 @@ void parser___parser_prod___AMinusExpr___init_aminusexpr(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5026 */
+  /* parser/parser_prod.nit:5094 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:5031 */
+  /* parser/parser_prod.nit:5099 */
   CALL_parser___parser_prod___AMinusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:5032 */
+  /* parser/parser_prod.nit:5100 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5032);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5100);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:5033 */
+  /* parser/parser_prod.nit:5101 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5033);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5101);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:5034 */
+  /* parser/parser_prod.nit:5102 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5034);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5102);
   }
   ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:5035 */
+  /* parser/parser_prod.nit:5103 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5035);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5103);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -27189,7 +27571,7 @@ void parser___parser_prod___AMinusExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5038;
+  fra.me.line = 5106;
   fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -27201,11 +27583,11 @@ void parser___parser_prod___AMinusExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5040 */
+  /* parser/parser_prod.nit:5108 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5040);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5108);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -27215,7 +27597,7 @@ void parser___parser_prod___AMinusExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5041 */
+    /* parser/parser_prod.nit:5109 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -27230,32 +27612,32 @@ void parser___parser_prod___AMinusExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5042 */
+      /* parser/parser_prod.nit:5110 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5042);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5110);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5043 */
+      /* parser/parser_prod.nit:5111 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5043);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5111);
       }
-      /* ./parser//parser_prod.nit:5044 */
+      /* parser/parser_prod.nit:5112 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5046 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5046);
+      /* parser/parser_prod.nit:5114 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5114);
     }
-    /* ./parser//parser_prod.nit:5048 */
+    /* parser/parser_prod.nit:5116 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5050 */
+  /* parser/parser_prod.nit:5118 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5050);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5118);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -27265,7 +27647,7 @@ void parser___parser_prod___AMinusExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5051 */
+    /* parser/parser_prod.nit:5119 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -27280,25 +27662,25 @@ void parser___parser_prod___AMinusExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5052 */
+      /* parser/parser_prod.nit:5120 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5052);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5120);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5053 */
+      /* parser/parser_prod.nit:5121 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5053);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5121);
       }
-      /* ./parser//parser_prod.nit:5054 */
+      /* parser/parser_prod.nit:5122 */
       ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5056 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5056);
+      /* parser/parser_prod.nit:5124 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5124);
     }
-    /* ./parser//parser_prod.nit:5058 */
+    /* parser/parser_prod.nit:5126 */
     goto label1;
   }
   label1: while(0);
@@ -27311,7 +27693,7 @@ void parser___parser_prod___AMinusExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5062;
+  fra.me.line = 5130;
   fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -27321,19 +27703,19 @@ void parser___parser_prod___AMinusExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5064 */
+  /* parser/parser_prod.nit:5132 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5064);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5132);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5065 */
+  /* parser/parser_prod.nit:5133 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5065);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5133);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -27347,7 +27729,7 @@ void parser___parser_prod___AStarshipExpr___empty_init(val_t p0, int* init_table
   if (init_table[itpos171]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5069;
+  fra.me.line = 5137;
   fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -27366,7 +27748,7 @@ void parser___parser_prod___AStarshipExpr___init_astarshipexpr(val_t p0, val_t p
   if (init_table[itpos172]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5071;
+  fra.me.line = 5139;
   fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___init_astarshipexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -27378,34 +27760,34 @@ void parser___parser_prod___AStarshipExpr___init_astarshipexpr(val_t p0, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5071 */
+  /* parser/parser_prod.nit:5139 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:5076 */
+  /* parser/parser_prod.nit:5144 */
   CALL_parser___parser_prod___AStarshipExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:5077 */
+  /* parser/parser_prod.nit:5145 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5077);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5145);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:5078 */
+  /* parser/parser_prod.nit:5146 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5078);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5146);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:5079 */
+  /* parser/parser_prod.nit:5147 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5079);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5147);
   }
   ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:5080 */
+  /* parser/parser_prod.nit:5148 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5080);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5148);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -27419,7 +27801,7 @@ void parser___parser_prod___AStarshipExpr___replace_child(val_t p0, val_t p1, va
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5083;
+  fra.me.line = 5151;
   fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -27431,11 +27813,11 @@ void parser___parser_prod___AStarshipExpr___replace_child(val_t p0, val_t p1, va
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5085 */
+  /* parser/parser_prod.nit:5153 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5085);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5153);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -27445,7 +27827,7 @@ void parser___parser_prod___AStarshipExpr___replace_child(val_t p0, val_t p1, va
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5086 */
+    /* parser/parser_prod.nit:5154 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -27460,32 +27842,32 @@ void parser___parser_prod___AStarshipExpr___replace_child(val_t p0, val_t p1, va
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5087 */
+      /* parser/parser_prod.nit:5155 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5087);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5155);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5088 */
+      /* parser/parser_prod.nit:5156 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5088);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5156);
       }
-      /* ./parser//parser_prod.nit:5089 */
+      /* parser/parser_prod.nit:5157 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5091 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5091);
+      /* parser/parser_prod.nit:5159 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5159);
     }
-    /* ./parser//parser_prod.nit:5093 */
+    /* parser/parser_prod.nit:5161 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5095 */
+  /* parser/parser_prod.nit:5163 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5095);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5163);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -27495,7 +27877,7 @@ void parser___parser_prod___AStarshipExpr___replace_child(val_t p0, val_t p1, va
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5096 */
+    /* parser/parser_prod.nit:5164 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -27510,25 +27892,25 @@ void parser___parser_prod___AStarshipExpr___replace_child(val_t p0, val_t p1, va
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5097 */
+      /* parser/parser_prod.nit:5165 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5097);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5165);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5098 */
+      /* parser/parser_prod.nit:5166 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5098);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5166);
       }
-      /* ./parser//parser_prod.nit:5099 */
+      /* parser/parser_prod.nit:5167 */
       ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5101 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5101);
+      /* parser/parser_prod.nit:5169 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5169);
     }
-    /* ./parser//parser_prod.nit:5103 */
+    /* parser/parser_prod.nit:5171 */
     goto label1;
   }
   label1: while(0);
@@ -27541,7 +27923,7 @@ void parser___parser_prod___AStarshipExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5107;
+  fra.me.line = 5175;
   fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -27551,19 +27933,19 @@ void parser___parser_prod___AStarshipExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5109 */
+  /* parser/parser_prod.nit:5177 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5109);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5177);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5110 */
+  /* parser/parser_prod.nit:5178 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5110);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5178);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -27577,7 +27959,7 @@ void parser___parser_prod___AStarExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos173]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5114;
+  fra.me.line = 5182;
   fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -27596,7 +27978,7 @@ void parser___parser_prod___AStarExpr___init_astarexpr(val_t p0, val_t p1, val_t
   if (init_table[itpos174]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5116;
+  fra.me.line = 5184;
   fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___init_astarexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -27608,34 +27990,34 @@ void parser___parser_prod___AStarExpr___init_astarexpr(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5116 */
+  /* parser/parser_prod.nit:5184 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:5121 */
+  /* parser/parser_prod.nit:5189 */
   CALL_parser___parser_prod___AStarExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:5122 */
+  /* parser/parser_prod.nit:5190 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5122);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5190);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:5123 */
+  /* parser/parser_prod.nit:5191 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5123);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5191);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:5124 */
+  /* parser/parser_prod.nit:5192 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5124);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5192);
   }
   ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:5125 */
+  /* parser/parser_prod.nit:5193 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5125);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5193);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -27649,7 +28031,7 @@ void parser___parser_prod___AStarExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5128;
+  fra.me.line = 5196;
   fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -27661,11 +28043,11 @@ void parser___parser_prod___AStarExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5130 */
+  /* parser/parser_prod.nit:5198 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5130);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5198);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -27675,7 +28057,7 @@ void parser___parser_prod___AStarExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5131 */
+    /* parser/parser_prod.nit:5199 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -27690,32 +28072,32 @@ void parser___parser_prod___AStarExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5132 */
+      /* parser/parser_prod.nit:5200 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5132);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5200);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5133 */
+      /* parser/parser_prod.nit:5201 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5133);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5201);
       }
-      /* ./parser//parser_prod.nit:5134 */
+      /* parser/parser_prod.nit:5202 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5136 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5136);
+      /* parser/parser_prod.nit:5204 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5204);
     }
-    /* ./parser//parser_prod.nit:5138 */
+    /* parser/parser_prod.nit:5206 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5140 */
+  /* parser/parser_prod.nit:5208 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5140);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5208);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -27725,7 +28107,7 @@ void parser___parser_prod___AStarExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5141 */
+    /* parser/parser_prod.nit:5209 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -27740,25 +28122,25 @@ void parser___parser_prod___AStarExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5142 */
+      /* parser/parser_prod.nit:5210 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5142);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5210);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5143 */
+      /* parser/parser_prod.nit:5211 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5143);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5211);
       }
-      /* ./parser//parser_prod.nit:5144 */
+      /* parser/parser_prod.nit:5212 */
       ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5146 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5146);
+      /* parser/parser_prod.nit:5214 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5214);
     }
-    /* ./parser//parser_prod.nit:5148 */
+    /* parser/parser_prod.nit:5216 */
     goto label1;
   }
   label1: while(0);
@@ -27771,7 +28153,7 @@ void parser___parser_prod___AStarExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5152;
+  fra.me.line = 5220;
   fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -27781,19 +28163,19 @@ void parser___parser_prod___AStarExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5154 */
+  /* parser/parser_prod.nit:5222 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5154);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5222);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5155 */
+  /* parser/parser_prod.nit:5223 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5155);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5223);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -27807,7 +28189,7 @@ void parser___parser_prod___ASlashExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos175]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5159;
+  fra.me.line = 5227;
   fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -27826,7 +28208,7 @@ void parser___parser_prod___ASlashExpr___init_aslashexpr(val_t p0, val_t p1, val
   if (init_table[itpos176]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5161;
+  fra.me.line = 5229;
   fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___init_aslashexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -27838,34 +28220,34 @@ void parser___parser_prod___ASlashExpr___init_aslashexpr(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5161 */
+  /* parser/parser_prod.nit:5229 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:5166 */
+  /* parser/parser_prod.nit:5234 */
   CALL_parser___parser_prod___ASlashExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:5167 */
+  /* parser/parser_prod.nit:5235 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5167);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5235);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:5168 */
+  /* parser/parser_prod.nit:5236 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5168);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5236);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:5169 */
+  /* parser/parser_prod.nit:5237 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5169);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5237);
   }
   ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:5170 */
+  /* parser/parser_prod.nit:5238 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5170);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5238);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -27879,7 +28261,7 @@ void parser___parser_prod___ASlashExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5173;
+  fra.me.line = 5241;
   fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -27891,11 +28273,11 @@ void parser___parser_prod___ASlashExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5175 */
+  /* parser/parser_prod.nit:5243 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5175);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5243);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -27905,7 +28287,7 @@ void parser___parser_prod___ASlashExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5176 */
+    /* parser/parser_prod.nit:5244 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -27920,32 +28302,32 @@ void parser___parser_prod___ASlashExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5177 */
+      /* parser/parser_prod.nit:5245 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5177);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5245);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5178 */
+      /* parser/parser_prod.nit:5246 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5178);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5246);
       }
-      /* ./parser//parser_prod.nit:5179 */
+      /* parser/parser_prod.nit:5247 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5181 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5181);
+      /* parser/parser_prod.nit:5249 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5249);
     }
-    /* ./parser//parser_prod.nit:5183 */
+    /* parser/parser_prod.nit:5251 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5185 */
+  /* parser/parser_prod.nit:5253 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5185);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5253);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -27955,7 +28337,7 @@ void parser___parser_prod___ASlashExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5186 */
+    /* parser/parser_prod.nit:5254 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -27970,25 +28352,25 @@ void parser___parser_prod___ASlashExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5187 */
+      /* parser/parser_prod.nit:5255 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5187);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5255);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5188 */
+      /* parser/parser_prod.nit:5256 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5188);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5256);
       }
-      /* ./parser//parser_prod.nit:5189 */
+      /* parser/parser_prod.nit:5257 */
       ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5191 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5191);
+      /* parser/parser_prod.nit:5259 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5259);
     }
-    /* ./parser//parser_prod.nit:5193 */
+    /* parser/parser_prod.nit:5261 */
     goto label1;
   }
   label1: while(0);
@@ -28001,7 +28383,7 @@ void parser___parser_prod___ASlashExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5197;
+  fra.me.line = 5265;
   fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -28011,19 +28393,19 @@ void parser___parser_prod___ASlashExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5199 */
+  /* parser/parser_prod.nit:5267 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5199);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5267);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5200 */
+  /* parser/parser_prod.nit:5268 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5200);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5268);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -28037,7 +28419,7 @@ void parser___parser_prod___APercentExpr___empty_init(val_t p0, int* init_table)
   if (init_table[itpos177]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5204;
+  fra.me.line = 5272;
   fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -28056,7 +28438,7 @@ void parser___parser_prod___APercentExpr___init_apercentexpr(val_t p0, val_t p1,
   if (init_table[itpos178]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5206;
+  fra.me.line = 5274;
   fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___init_apercentexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -28068,34 +28450,34 @@ void parser___parser_prod___APercentExpr___init_apercentexpr(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5206 */
+  /* parser/parser_prod.nit:5274 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:5211 */
+  /* parser/parser_prod.nit:5279 */
   CALL_parser___parser_prod___APercentExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:5212 */
+  /* parser/parser_prod.nit:5280 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5212);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5280);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:5213 */
+  /* parser/parser_prod.nit:5281 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5213);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5281);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:5214 */
+  /* parser/parser_prod.nit:5282 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5214);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5282);
   }
   ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:5215 */
+  /* parser/parser_prod.nit:5283 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5215);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5283);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -28109,7 +28491,7 @@ void parser___parser_prod___APercentExpr___replace_child(val_t p0, val_t p1, val
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5218;
+  fra.me.line = 5286;
   fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -28121,11 +28503,11 @@ void parser___parser_prod___APercentExpr___replace_child(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5220 */
+  /* parser/parser_prod.nit:5288 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5220);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5288);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -28135,7 +28517,7 @@ void parser___parser_prod___APercentExpr___replace_child(val_t p0, val_t p1, val
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5221 */
+    /* parser/parser_prod.nit:5289 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -28150,32 +28532,32 @@ void parser___parser_prod___APercentExpr___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5222 */
+      /* parser/parser_prod.nit:5290 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5222);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5290);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5223 */
+      /* parser/parser_prod.nit:5291 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5223);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5291);
       }
-      /* ./parser//parser_prod.nit:5224 */
+      /* parser/parser_prod.nit:5292 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5226 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5226);
+      /* parser/parser_prod.nit:5294 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5294);
     }
-    /* ./parser//parser_prod.nit:5228 */
+    /* parser/parser_prod.nit:5296 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5230 */
+  /* parser/parser_prod.nit:5298 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5230);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5298);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -28185,7 +28567,7 @@ void parser___parser_prod___APercentExpr___replace_child(val_t p0, val_t p1, val
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5231 */
+    /* parser/parser_prod.nit:5299 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -28200,25 +28582,25 @@ void parser___parser_prod___APercentExpr___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5232 */
+      /* parser/parser_prod.nit:5300 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5232);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5300);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5233 */
+      /* parser/parser_prod.nit:5301 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5233);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5301);
       }
-      /* ./parser//parser_prod.nit:5234 */
+      /* parser/parser_prod.nit:5302 */
       ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5236 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5236);
+      /* parser/parser_prod.nit:5304 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5304);
     }
-    /* ./parser//parser_prod.nit:5238 */
+    /* parser/parser_prod.nit:5306 */
     goto label1;
   }
   label1: while(0);
@@ -28231,7 +28613,7 @@ void parser___parser_prod___APercentExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5242;
+  fra.me.line = 5310;
   fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -28241,19 +28623,19 @@ void parser___parser_prod___APercentExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5244 */
+  /* parser/parser_prod.nit:5312 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5244);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5312);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5245 */
+  /* parser/parser_prod.nit:5313 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5245);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5313);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -28267,7 +28649,7 @@ void parser___parser_prod___AUminusExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos179]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5249;
+  fra.me.line = 5317;
   fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -28286,7 +28668,7 @@ void parser___parser_prod___AUminusExpr___init_auminusexpr(val_t p0, val_t p1, v
   if (init_table[itpos180]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5251;
+  fra.me.line = 5319;
   fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___init_auminusexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -28298,34 +28680,34 @@ void parser___parser_prod___AUminusExpr___init_auminusexpr(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5251 */
+  /* parser/parser_prod.nit:5319 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:5256 */
+  /* parser/parser_prod.nit:5324 */
   CALL_parser___parser_prod___AUminusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:5257 */
+  /* parser/parser_prod.nit:5325 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5257);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5325);
   }
   ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:5258 */
+  /* parser/parser_prod.nit:5326 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5258);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5326);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:5259 */
+  /* parser/parser_prod.nit:5327 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5259);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5327);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:5260 */
+  /* parser/parser_prod.nit:5328 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5260);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5328);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -28339,7 +28721,7 @@ void parser___parser_prod___AUminusExpr___replace_child(val_t p0, val_t p1, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5263;
+  fra.me.line = 5331;
   fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -28351,11 +28733,11 @@ void parser___parser_prod___AUminusExpr___replace_child(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5265 */
+  /* parser/parser_prod.nit:5333 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 5265);
+    nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 5333);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -28365,7 +28747,7 @@ void parser___parser_prod___AUminusExpr___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5266 */
+    /* parser/parser_prod.nit:5334 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -28380,32 +28762,32 @@ void parser___parser_prod___AUminusExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5267 */
+      /* parser/parser_prod.nit:5335 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5267);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5335);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5268 */
+      /* parser/parser_prod.nit:5336 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TMinus, ID_parser___parser_nodes___TMinus)) /*cast TMinus*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5268);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5336);
       }
-      /* ./parser//parser_prod.nit:5269 */
+      /* parser/parser_prod.nit:5337 */
       ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5271 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5271);
+      /* parser/parser_prod.nit:5339 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5339);
     }
-    /* ./parser//parser_prod.nit:5273 */
+    /* parser/parser_prod.nit:5341 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5275 */
+  /* parser/parser_prod.nit:5343 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5275);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5343);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -28415,7 +28797,7 @@ void parser___parser_prod___AUminusExpr___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5276 */
+    /* parser/parser_prod.nit:5344 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -28430,25 +28812,25 @@ void parser___parser_prod___AUminusExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5277 */
+      /* parser/parser_prod.nit:5345 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5277);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5345);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5278 */
+      /* parser/parser_prod.nit:5346 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5278);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5346);
       }
-      /* ./parser//parser_prod.nit:5279 */
+      /* parser/parser_prod.nit:5347 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5281 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5281);
+      /* parser/parser_prod.nit:5349 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5349);
     }
-    /* ./parser//parser_prod.nit:5283 */
+    /* parser/parser_prod.nit:5351 */
     goto label1;
   }
   label1: while(0);
@@ -28461,7 +28843,7 @@ void parser___parser_prod___AUminusExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5287;
+  fra.me.line = 5355;
   fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -28471,19 +28853,19 @@ void parser___parser_prod___AUminusExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5289 */
+  /* parser/parser_prod.nit:5357 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 5289);
+    nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 5357);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5290 */
+  /* parser/parser_prod.nit:5358 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5290);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5358);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -28497,7 +28879,7 @@ void parser___parser_prod___ANewExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos181]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5294;
+  fra.me.line = 5362;
   fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -28517,7 +28899,7 @@ void parser___parser_prod___ANewExpr___init_anewexpr(val_t p0, val_t p1, val_t p
   if (init_table[itpos182]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5296;
+  fra.me.line = 5364;
   fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___init_anewexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -28533,39 +28915,39 @@ void parser___parser_prod___ANewExpr___init_anewexpr(val_t p0, val_t p1, val_t p
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:5296 */
+  /* parser/parser_prod.nit:5364 */
   fra.me.REG[5] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:5303 */
+  /* parser/parser_prod.nit:5371 */
   CALL_parser___parser_prod___ANewExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
-  /* ./parser//parser_prod.nit:5304 */
+  /* parser/parser_prod.nit:5372 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5304);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5372);
   }
   ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[5]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:5305 */
+  /* parser/parser_prod.nit:5373 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5305);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5373);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:5306 */
+  /* parser/parser_prod.nit:5374 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5306);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5374);
   }
   ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[5]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:5307 */
+  /* parser/parser_prod.nit:5375 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5307);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5375);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:5308 */
+  /* parser/parser_prod.nit:5376 */
   ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[5]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:5309 */
+  /* parser/parser_prod.nit:5377 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -28580,67 +28962,38 @@ void parser___parser_prod___ANewExpr___init_anewexpr(val_t p0, val_t p1, val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5310 */
+    /* parser/parser_prod.nit:5378 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5310);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5378);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
   }
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ANewExpr___init_anewexpr_1));
+  /* parser/parser_prod.nit:5380 */
+  REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5380);
+  }
+  ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[5]) = fra.me.REG[4];
+  /* parser/parser_prod.nit:5381 */
+  REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5381);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   stack_frame_head = fra.me.prev;
   init_table[itpos182] = 1;
   return;
 }
-  void OC_parser___parser_prod___ANewExpr___init_anewexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-    val_t REGB0;
-    fun_t CREG[1];
-    val_t tmp;
-    /* ./parser//parser_prod.nit:5312 */
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___init_anewexpr;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 2;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.REG[1] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:5313 */
-    REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5313);
-    }
-    /* ./parser//parser_prod.nit:5314 */
-    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(closctx->REG[5])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5314);
-    }
-    fra.me.REG[1] = ATTR_parser___parser_nodes___ANewExpr____n_args(closctx->REG[5]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:5315 */
-    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
 void parser___parser_prod___ANewExpr___replace_child(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t REGB4;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5319;
+  fra.me.line = 5384;
   fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -28652,11 +29005,11 @@ void parser___parser_prod___ANewExpr___replace_child(val_t p0, val_t p1, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5321 */
+  /* parser/parser_prod.nit:5386 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 5321);
+    nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 5386);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -28666,7 +29019,7 @@ void parser___parser_prod___ANewExpr___replace_child(val_t p0, val_t p1, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5322 */
+    /* parser/parser_prod.nit:5387 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -28681,32 +29034,32 @@ void parser___parser_prod___ANewExpr___replace_child(val_t p0, val_t p1, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5323 */
+      /* parser/parser_prod.nit:5388 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5323);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5388);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5324 */
+      /* parser/parser_prod.nit:5389 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast TKwnew*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5324);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5389);
       }
-      /* ./parser//parser_prod.nit:5325 */
+      /* parser/parser_prod.nit:5390 */
       ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5327 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5327);
+      /* parser/parser_prod.nit:5392 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5392);
     }
-    /* ./parser//parser_prod.nit:5329 */
+    /* parser/parser_prod.nit:5394 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5331 */
+  /* parser/parser_prod.nit:5396 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5331);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5396);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -28716,7 +29069,7 @@ void parser___parser_prod___ANewExpr___replace_child(val_t p0, val_t p1, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5332 */
+    /* parser/parser_prod.nit:5397 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -28731,28 +29084,28 @@ void parser___parser_prod___ANewExpr___replace_child(val_t p0, val_t p1, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5333 */
+      /* parser/parser_prod.nit:5398 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5333);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5398);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5334 */
+      /* parser/parser_prod.nit:5399 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5334);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5399);
       }
-      /* ./parser//parser_prod.nit:5335 */
+      /* parser/parser_prod.nit:5400 */
       ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5337 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5337);
+      /* parser/parser_prod.nit:5402 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5402);
     }
-    /* ./parser//parser_prod.nit:5339 */
+    /* parser/parser_prod.nit:5404 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5341 */
+  /* parser/parser_prod.nit:5406 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -28767,7 +29120,7 @@ void parser___parser_prod___ANewExpr___replace_child(val_t p0, val_t p1, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5342 */
+    /* parser/parser_prod.nit:5407 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -28782,130 +29135,77 @@ void parser___parser_prod___ANewExpr___replace_child(val_t p0, val_t p1, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5343 */
+      /* parser/parser_prod.nit:5408 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5343);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5408);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5344 */
+      /* parser/parser_prod.nit:5409 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5344);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5409);
       }
-      /* ./parser//parser_prod.nit:5345 */
+      /* parser/parser_prod.nit:5410 */
       ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5347 */
+      /* parser/parser_prod.nit:5412 */
       ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:5349 */
+    /* parser/parser_prod.nit:5414 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5351 */
-  REGB0 = TAG_Int(0);
-  REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
+  /* parser/parser_prod.nit:5416 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5351);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5416);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
-  REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
-  while(1) {
-    REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB2)) {
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:5417 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ./../lib/standard//kernel.nit:232 */
-    REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
-    if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:5351 */
-      REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:5352 */
-      REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-      if (UNTAG_Bool(REGB3)) {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5352);
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
       }
-      fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
-      fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
-      REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
-      if (UNTAG_Bool(REGB3)) {
-      } else {
-        REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-        if (UNTAG_Bool(REGB4)) {
-          REGB4 = TAG_Bool(false);
-          REGB3 = REGB4;
-        } else {
-          REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-          REGB3 = REGB4;
-        }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:5418 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5418);
       }
-      if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:5353 */
-        REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-        } else {
-          REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB4)) {
-            REGB4 = TAG_Bool(false);
-            REGB3 = REGB4;
-          } else {
-            REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
-            REGB3 = REGB4;
-          }
-        }
-        REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
-        if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:5354 */
-          REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5354);
-          }
-          /* ./parser//parser_prod.nit:5355 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5355);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:5356 */
-          REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5356);
-          }
-          CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-        } else {
-          /* ./parser//parser_prod.nit:5358 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5358);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
-        }
-        /* ./parser//parser_prod.nit:5360 */
-        goto label1;
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:5419 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5419);
       }
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
-      REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB0 = REGB2;
+      /* parser/parser_prod.nit:5420 */
+      ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
-      goto label2;
+      /* parser/parser_prod.nit:5422 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5422);
     }
+    /* parser/parser_prod.nit:5424 */
+    goto label1;
   }
-  label2: while(0);
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return;
@@ -28917,7 +29217,7 @@ void parser___parser_prod___ANewExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5365;
+  fra.me.line = 5428;
   fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -28928,25 +29228,25 @@ void parser___parser_prod___ANewExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5365 */
+  /* parser/parser_prod.nit:5428 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:5367 */
+  /* parser/parser_prod.nit:5430 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 5367);
+    nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 5430);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:5368 */
+  /* parser/parser_prod.nit:5431 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5368);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5431);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:5369 */
+  /* parser/parser_prod.nit:5432 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -28962,47 +29262,26 @@ void parser___parser_prod___ANewExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5370 */
+    /* parser/parser_prod.nit:5433 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5370);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5433);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:5372 */
+  /* parser/parser_prod.nit:5435 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5372);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5435);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[2]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ANewExpr___visit_all_1));
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_parser___parser_prod___ANewExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me;} fra;
-    fun_t CREG[1];
-    val_t tmp;
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___visit_all;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 1;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:5373 */
-    CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
 void parser___parser_prod___AAttrExpr___empty_init(val_t p0, int* init_table){
   int itpos183 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrExpr].i;
   struct {struct stack_frame_t me;} fra;
@@ -29010,7 +29289,7 @@ void parser___parser_prod___AAttrExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos183]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5378;
+  fra.me.line = 5439;
   fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -29029,7 +29308,7 @@ void parser___parser_prod___AAttrExpr___init_aattrexpr(val_t p0, val_t p1, val_t
   if (init_table[itpos184]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5380;
+  fra.me.line = 5441;
   fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___init_aattrexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -29041,34 +29320,34 @@ void parser___parser_prod___AAttrExpr___init_aattrexpr(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5380 */
+  /* parser/parser_prod.nit:5441 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:5385 */
+  /* parser/parser_prod.nit:5446 */
   CALL_parser___parser_prod___AAttrExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:5386 */
+  /* parser/parser_prod.nit:5447 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5386);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5447);
   }
   ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:5387 */
+  /* parser/parser_prod.nit:5448 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5387);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5448);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:5388 */
+  /* parser/parser_prod.nit:5449 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5388);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5449);
   }
   ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:5389 */
+  /* parser/parser_prod.nit:5450 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5389);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5450);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -29082,7 +29361,7 @@ void parser___parser_prod___AAttrExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5392;
+  fra.me.line = 5453;
   fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -29094,11 +29373,11 @@ void parser___parser_prod___AAttrExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5394 */
+  /* parser/parser_prod.nit:5455 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5394);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5455);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -29108,7 +29387,7 @@ void parser___parser_prod___AAttrExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5395 */
+    /* parser/parser_prod.nit:5456 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -29123,32 +29402,32 @@ void parser___parser_prod___AAttrExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5396 */
+      /* parser/parser_prod.nit:5457 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5396);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5457);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5397 */
+      /* parser/parser_prod.nit:5458 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5397);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5458);
       }
-      /* ./parser//parser_prod.nit:5398 */
+      /* parser/parser_prod.nit:5459 */
       ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5400 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5400);
+      /* parser/parser_prod.nit:5461 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5461);
     }
-    /* ./parser//parser_prod.nit:5402 */
+    /* parser/parser_prod.nit:5463 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5404 */
+  /* parser/parser_prod.nit:5465 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5404);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5465);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -29158,7 +29437,7 @@ void parser___parser_prod___AAttrExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5405 */
+    /* parser/parser_prod.nit:5466 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -29173,25 +29452,25 @@ void parser___parser_prod___AAttrExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5406 */
+      /* parser/parser_prod.nit:5467 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5406);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5467);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5407 */
+      /* parser/parser_prod.nit:5468 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast TAttrid*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5407);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5468);
       }
-      /* ./parser//parser_prod.nit:5408 */
+      /* parser/parser_prod.nit:5469 */
       ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5410 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5410);
+      /* parser/parser_prod.nit:5471 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5471);
     }
-    /* ./parser//parser_prod.nit:5412 */
+    /* parser/parser_prod.nit:5473 */
     goto label1;
   }
   label1: while(0);
@@ -29204,7 +29483,7 @@ void parser___parser_prod___AAttrExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5416;
+  fra.me.line = 5477;
   fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -29214,19 +29493,19 @@ void parser___parser_prod___AAttrExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5418 */
+  /* parser/parser_prod.nit:5479 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5418);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5479);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5419 */
+  /* parser/parser_prod.nit:5480 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5419);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5480);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -29240,7 +29519,7 @@ void parser___parser_prod___AAttrAssignExpr___empty_init(val_t p0, int* init_tab
   if (init_table[itpos185]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5423;
+  fra.me.line = 5484;
   fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -29259,7 +29538,7 @@ void parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr(val_t p0, val
   if (init_table[itpos186]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5425;
+  fra.me.line = 5486;
   fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -29275,60 +29554,60 @@ void parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr(val_t p0, val
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:5425 */
+  /* parser/parser_prod.nit:5486 */
   fra.me.REG[5] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:5432 */
+  /* parser/parser_prod.nit:5493 */
   CALL_parser___parser_prod___AAttrAssignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
-  /* ./parser//parser_prod.nit:5433 */
+  /* parser/parser_prod.nit:5494 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5433);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5494);
   }
   ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:5434 */
+  /* parser/parser_prod.nit:5495 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5434);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5495);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:5435 */
+  /* parser/parser_prod.nit:5496 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5435);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5496);
   }
   ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:5436 */
+  /* parser/parser_prod.nit:5497 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5436);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5497);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:5437 */
+  /* parser/parser_prod.nit:5498 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5437);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5498);
   }
   ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[5]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:5438 */
+  /* parser/parser_prod.nit:5499 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5438);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5499);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:5439 */
+  /* parser/parser_prod.nit:5500 */
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5439);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5500);
   }
   ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:5440 */
+  /* parser/parser_prod.nit:5501 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5440);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5501);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   stack_frame_head = fra.me.prev;
@@ -29342,7 +29621,7 @@ void parser___parser_prod___AAttrAssignExpr___replace_child(val_t p0, val_t p1,
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5443;
+  fra.me.line = 5504;
   fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -29354,11 +29633,11 @@ void parser___parser_prod___AAttrAssignExpr___replace_child(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5445 */
+  /* parser/parser_prod.nit:5506 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5445);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5506);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -29368,7 +29647,7 @@ void parser___parser_prod___AAttrAssignExpr___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5446 */
+    /* parser/parser_prod.nit:5507 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -29383,32 +29662,32 @@ void parser___parser_prod___AAttrAssignExpr___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5447 */
+      /* parser/parser_prod.nit:5508 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5447);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5508);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5448 */
+      /* parser/parser_prod.nit:5509 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5448);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5509);
       }
-      /* ./parser//parser_prod.nit:5449 */
+      /* parser/parser_prod.nit:5510 */
       ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5451 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5451);
+      /* parser/parser_prod.nit:5512 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5512);
     }
-    /* ./parser//parser_prod.nit:5453 */
+    /* parser/parser_prod.nit:5514 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5455 */
+  /* parser/parser_prod.nit:5516 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5455);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5516);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -29418,7 +29697,7 @@ void parser___parser_prod___AAttrAssignExpr___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5456 */
+    /* parser/parser_prod.nit:5517 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -29433,32 +29712,32 @@ void parser___parser_prod___AAttrAssignExpr___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5457 */
+      /* parser/parser_prod.nit:5518 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5457);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5518);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5458 */
+      /* parser/parser_prod.nit:5519 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast TAttrid*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5458);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5519);
       }
-      /* ./parser//parser_prod.nit:5459 */
+      /* parser/parser_prod.nit:5520 */
       ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5461 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5461);
+      /* parser/parser_prod.nit:5522 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5522);
     }
-    /* ./parser//parser_prod.nit:5463 */
+    /* parser/parser_prod.nit:5524 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5465 */
+  /* parser/parser_prod.nit:5526 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5465);
+    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5526);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -29468,7 +29747,7 @@ void parser___parser_prod___AAttrAssignExpr___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5466 */
+    /* parser/parser_prod.nit:5527 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -29483,32 +29762,32 @@ void parser___parser_prod___AAttrAssignExpr___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5467 */
+      /* parser/parser_prod.nit:5528 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5467);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5528);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5468 */
+      /* parser/parser_prod.nit:5529 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5468);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5529);
       }
-      /* ./parser//parser_prod.nit:5469 */
+      /* parser/parser_prod.nit:5530 */
       ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5471 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5471);
+      /* parser/parser_prod.nit:5532 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5532);
     }
-    /* ./parser//parser_prod.nit:5473 */
+    /* parser/parser_prod.nit:5534 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5475 */
+  /* parser/parser_prod.nit:5536 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5475);
+    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5536);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -29518,7 +29797,7 @@ void parser___parser_prod___AAttrAssignExpr___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5476 */
+    /* parser/parser_prod.nit:5537 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -29533,25 +29812,25 @@ void parser___parser_prod___AAttrAssignExpr___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5477 */
+      /* parser/parser_prod.nit:5538 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5477);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5538);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5478 */
+      /* parser/parser_prod.nit:5539 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5478);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5539);
       }
-      /* ./parser//parser_prod.nit:5479 */
+      /* parser/parser_prod.nit:5540 */
       ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5481 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5481);
+      /* parser/parser_prod.nit:5542 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5542);
     }
-    /* ./parser//parser_prod.nit:5483 */
+    /* parser/parser_prod.nit:5544 */
     goto label1;
   }
   label1: while(0);
@@ -29564,7 +29843,7 @@ void parser___parser_prod___AAttrAssignExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5487;
+  fra.me.line = 5548;
   fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -29574,35 +29853,35 @@ void parser___parser_prod___AAttrAssignExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5489 */
+  /* parser/parser_prod.nit:5550 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5489);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5550);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5490 */
+  /* parser/parser_prod.nit:5551 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5490);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5551);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5491 */
+  /* parser/parser_prod.nit:5552 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5491);
+    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5552);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5492 */
+  /* parser/parser_prod.nit:5553 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5492);
+    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5553);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -29616,7 +29895,7 @@ void parser___parser_prod___AAttrReassignExpr___empty_init(val_t p0, int* init_t
   if (init_table[itpos187]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5496;
+  fra.me.line = 5557;
   fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -29635,7 +29914,7 @@ void parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr(val_t p0,
   if (init_table[itpos188]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5498;
+  fra.me.line = 5559;
   fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -29651,60 +29930,60 @@ void parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr(val_t p0,
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:5498 */
+  /* parser/parser_prod.nit:5559 */
   fra.me.REG[5] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:5505 */
+  /* parser/parser_prod.nit:5566 */
   CALL_parser___parser_prod___AAttrReassignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
-  /* ./parser//parser_prod.nit:5506 */
+  /* parser/parser_prod.nit:5567 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5506);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5567);
   }
   ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:5507 */
+  /* parser/parser_prod.nit:5568 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5507);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5568);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:5508 */
+  /* parser/parser_prod.nit:5569 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5508);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5569);
   }
   ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:5509 */
+  /* parser/parser_prod.nit:5570 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5509);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5570);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:5510 */
+  /* parser/parser_prod.nit:5571 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5510);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5571);
   }
   ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[5]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:5511 */
+  /* parser/parser_prod.nit:5572 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5511);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5572);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:5512 */
+  /* parser/parser_prod.nit:5573 */
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5512);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5573);
   }
   ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:5513 */
+  /* parser/parser_prod.nit:5574 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5513);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5574);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   stack_frame_head = fra.me.prev;
@@ -29718,7 +29997,7 @@ void parser___parser_prod___AAttrReassignExpr___replace_child(val_t p0, val_t p1
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5516;
+  fra.me.line = 5577;
   fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -29730,11 +30009,11 @@ void parser___parser_prod___AAttrReassignExpr___replace_child(val_t p0, val_t p1
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5518 */
+  /* parser/parser_prod.nit:5579 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5518);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5579);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -29744,7 +30023,7 @@ void parser___parser_prod___AAttrReassignExpr___replace_child(val_t p0, val_t p1
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5519 */
+    /* parser/parser_prod.nit:5580 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -29759,32 +30038,32 @@ void parser___parser_prod___AAttrReassignExpr___replace_child(val_t p0, val_t p1
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5520 */
+      /* parser/parser_prod.nit:5581 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5520);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5581);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5521 */
+      /* parser/parser_prod.nit:5582 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5521);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5582);
       }
-      /* ./parser//parser_prod.nit:5522 */
+      /* parser/parser_prod.nit:5583 */
       ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5524 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5524);
+      /* parser/parser_prod.nit:5585 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5585);
     }
-    /* ./parser//parser_prod.nit:5526 */
+    /* parser/parser_prod.nit:5587 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5528 */
+  /* parser/parser_prod.nit:5589 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5528);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5589);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -29794,7 +30073,7 @@ void parser___parser_prod___AAttrReassignExpr___replace_child(val_t p0, val_t p1
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5529 */
+    /* parser/parser_prod.nit:5590 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -29809,32 +30088,32 @@ void parser___parser_prod___AAttrReassignExpr___replace_child(val_t p0, val_t p1
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5530 */
+      /* parser/parser_prod.nit:5591 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5530);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5591);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5531 */
+      /* parser/parser_prod.nit:5592 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast TAttrid*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5531);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5592);
       }
-      /* ./parser//parser_prod.nit:5532 */
+      /* parser/parser_prod.nit:5593 */
       ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5534 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5534);
+      /* parser/parser_prod.nit:5595 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5595);
     }
-    /* ./parser//parser_prod.nit:5536 */
+    /* parser/parser_prod.nit:5597 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5538 */
+  /* parser/parser_prod.nit:5599 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5538);
+    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5599);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -29844,7 +30123,7 @@ void parser___parser_prod___AAttrReassignExpr___replace_child(val_t p0, val_t p1
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5539 */
+    /* parser/parser_prod.nit:5600 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -29859,32 +30138,32 @@ void parser___parser_prod___AAttrReassignExpr___replace_child(val_t p0, val_t p1
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5540 */
+      /* parser/parser_prod.nit:5601 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5540);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5601);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5541 */
+      /* parser/parser_prod.nit:5602 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAssignOp, ID_parser___parser_nodes___AAssignOp)) /*cast AAssignOp*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5541);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5602);
       }
-      /* ./parser//parser_prod.nit:5542 */
+      /* parser/parser_prod.nit:5603 */
       ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5544 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5544);
+      /* parser/parser_prod.nit:5605 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5605);
     }
-    /* ./parser//parser_prod.nit:5546 */
+    /* parser/parser_prod.nit:5607 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5548 */
+  /* parser/parser_prod.nit:5609 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5548);
+    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5609);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -29894,7 +30173,7 @@ void parser___parser_prod___AAttrReassignExpr___replace_child(val_t p0, val_t p1
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5549 */
+    /* parser/parser_prod.nit:5610 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -29909,25 +30188,25 @@ void parser___parser_prod___AAttrReassignExpr___replace_child(val_t p0, val_t p1
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5550 */
+      /* parser/parser_prod.nit:5611 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5550);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5611);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5551 */
+      /* parser/parser_prod.nit:5612 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5551);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5612);
       }
-      /* ./parser//parser_prod.nit:5552 */
+      /* parser/parser_prod.nit:5613 */
       ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5554 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5554);
+      /* parser/parser_prod.nit:5615 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5615);
     }
-    /* ./parser//parser_prod.nit:5556 */
+    /* parser/parser_prod.nit:5617 */
     goto label1;
   }
   label1: while(0);
@@ -29940,7 +30219,7 @@ void parser___parser_prod___AAttrReassignExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5560;
+  fra.me.line = 5621;
   fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -29950,35 +30229,35 @@ void parser___parser_prod___AAttrReassignExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5562 */
+  /* parser/parser_prod.nit:5623 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5562);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5623);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5563 */
+  /* parser/parser_prod.nit:5624 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5563);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5624);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5564 */
+  /* parser/parser_prod.nit:5625 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5564);
+    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5625);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5565 */
+  /* parser/parser_prod.nit:5626 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5565);
+    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5626);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -29992,7 +30271,7 @@ void parser___parser_prod___ACallExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos189]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5569;
+  fra.me.line = 5630;
   fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -30011,7 +30290,7 @@ void parser___parser_prod___ACallExpr___init_acallexpr(val_t p0, val_t p1, val_t
   if (init_table[itpos190]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5571;
+  fra.me.line = 5632;
   fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___init_acallexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -30027,38 +30306,50 @@ void parser___parser_prod___ACallExpr___init_acallexpr(val_t p0, val_t p1, val_t
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:5571 */
+  /* parser/parser_prod.nit:5632 */
   fra.me.REG[5] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:5578 */
+  /* parser/parser_prod.nit:5639 */
   CALL_parser___parser_prod___ACallExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
-  /* ./parser//parser_prod.nit:5579 */
+  /* parser/parser_prod.nit:5640 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5579);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5640);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:5580 */
+  /* parser/parser_prod.nit:5641 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5580);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5641);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:5581 */
+  /* parser/parser_prod.nit:5642 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5581);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5642);
   }
   ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:5582 */
+  /* parser/parser_prod.nit:5643 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5582);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5643);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallExpr___init_acallexpr_1));
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallExpr___init_acallexpr_2));
+  /* parser/parser_prod.nit:5644 */
+  REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5644);
+  }
+  ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[5]) = fra.me.REG[3];
+  /* parser/parser_prod.nit:5645 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5645);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallExpr___init_acallexpr_1));
   stack_frame_head = fra.me.prev;
   init_table[itpos190] = 1;
   return;
@@ -30068,7 +30359,7 @@ void parser___parser_prod___ACallExpr___init_acallexpr(val_t p0, val_t p1, val_t
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:5583 */
+    /* parser/parser_prod.nit:5646 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -30082,59 +30373,21 @@ void parser___parser_prod___ACallExpr___init_acallexpr(val_t p0, val_t p1, val_t
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:5584 */
-    REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5584);
-    }
-    /* ./parser//parser_prod.nit:5585 */
-    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[5])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5585);
-    }
-    fra.me.REG[1] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[5]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:5586 */
-    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-  void OC_parser___parser_prod___ACallExpr___init_acallexpr_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-    val_t REGB0;
-    fun_t CREG[1];
-    val_t tmp;
-    /* ./parser//parser_prod.nit:5588 */
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___init_acallexpr;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 2;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.REG[1] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:5589 */
+    /* parser/parser_prod.nit:5647 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5589);
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5647);
     }
-    /* ./parser//parser_prod.nit:5590 */
+    /* parser/parser_prod.nit:5648 */
     REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[5])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5590);
+      nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5648);
     }
     fra.me.REG[1] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[5]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:5591 */
+    /* parser/parser_prod.nit:5649 */
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
     stack_frame_head = fra.me.prev;
     return;
@@ -30149,7 +30402,7 @@ void parser___parser_prod___ACallExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5595;
+  fra.me.line = 5653;
   fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -30161,11 +30414,11 @@ void parser___parser_prod___ACallExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5597 */
+  /* parser/parser_prod.nit:5655 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5597);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5655);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -30175,7 +30428,7 @@ void parser___parser_prod___ACallExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5598 */
+    /* parser/parser_prod.nit:5656 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -30190,32 +30443,32 @@ void parser___parser_prod___ACallExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5599 */
+      /* parser/parser_prod.nit:5657 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5599);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5657);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5600 */
+      /* parser/parser_prod.nit:5658 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5600);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5658);
       }
-      /* ./parser//parser_prod.nit:5601 */
+      /* parser/parser_prod.nit:5659 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5603 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5603);
+      /* parser/parser_prod.nit:5661 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5661);
     }
-    /* ./parser//parser_prod.nit:5605 */
+    /* parser/parser_prod.nit:5663 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5607 */
+  /* parser/parser_prod.nit:5665 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5607);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5665);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -30225,7 +30478,7 @@ void parser___parser_prod___ACallExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5608 */
+    /* parser/parser_prod.nit:5666 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -30240,157 +30493,104 @@ void parser___parser_prod___ACallExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5609 */
+      /* parser/parser_prod.nit:5667 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5609);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5667);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5610 */
+      /* parser/parser_prod.nit:5668 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5610);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5668);
       }
-      /* ./parser//parser_prod.nit:5611 */
+      /* parser/parser_prod.nit:5669 */
       ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5613 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5613);
+      /* parser/parser_prod.nit:5671 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5671);
     }
-    /* ./parser//parser_prod.nit:5615 */
+    /* parser/parser_prod.nit:5673 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5617 */
-  REGB0 = TAG_Int(0);
-  REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
+  /* parser/parser_prod.nit:5675 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5617);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5675);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
-  REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
-  while(1) {
-    REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB2)) {
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:5676 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ./../lib/standard//kernel.nit:232 */
-    REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
-    if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:5617 */
-      REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:5618 */
-      REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-      if (UNTAG_Bool(REGB3)) {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5618);
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
       }
-      fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
-      fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
-      REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
-      if (UNTAG_Bool(REGB3)) {
-      } else {
-        REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-        if (UNTAG_Bool(REGB4)) {
-          REGB4 = TAG_Bool(false);
-          REGB3 = REGB4;
-        } else {
-          REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-          REGB3 = REGB4;
-        }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:5677 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5677);
       }
-      if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:5619 */
-        REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-        } else {
-          REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB4)) {
-            REGB4 = TAG_Bool(false);
-            REGB3 = REGB4;
-          } else {
-            REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
-            REGB3 = REGB4;
-          }
-        }
-        REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
-        if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:5620 */
-          REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5620);
-          }
-          /* ./parser//parser_prod.nit:5621 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5621);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:5622 */
-          REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5622);
-          }
-          CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-        } else {
-          /* ./parser//parser_prod.nit:5624 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5624);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
-        }
-        /* ./parser//parser_prod.nit:5626 */
-        goto label1;
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:5678 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5678);
       }
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
-      REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB0 = REGB2;
+      /* parser/parser_prod.nit:5679 */
+      ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
-      goto label2;
+      /* parser/parser_prod.nit:5681 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5681);
     }
+    /* parser/parser_prod.nit:5683 */
+    goto label1;
   }
-  label2: while(0);
-  /* ./parser//parser_prod.nit:5629 */
+  /* parser/parser_prod.nit:5685 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5629);
+    nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5685);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:5629 */
+      /* parser/parser_prod.nit:5685 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:5630 */
+      /* parser/parser_prod.nit:5686 */
       REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5630);
+        nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5686);
       }
       fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
@@ -30407,7 +30607,7 @@ void parser___parser_prod___ACallExpr___replace_child(val_t p0, val_t p1, val_t
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:5631 */
+        /* parser/parser_prod.nit:5687 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -30422,51 +30622,51 @@ void parser___parser_prod___ACallExpr___replace_child(val_t p0, val_t p1, val_t
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:5632 */
+          /* parser/parser_prod.nit:5688 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5632);
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5688);
           }
-          /* ./parser//parser_prod.nit:5633 */
+          /* parser/parser_prod.nit:5689 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5633);
+            nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5689);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:5634 */
+          /* parser/parser_prod.nit:5690 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5634);
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5690);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:5636 */
+          /* parser/parser_prod.nit:5692 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5636);
+            nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5692);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:5638 */
+        /* parser/parser_prod.nit:5694 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
-      goto label3;
+      /* ../lib/standard/kernel.nit:352 */
+      goto label2;
     }
   }
-  label3: while(0);
+  label2: while(0);
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return;
@@ -30477,7 +30677,7 @@ void parser___parser_prod___ACallExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5643;
+  fra.me.line = 5699;
   fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -30487,38 +30687,38 @@ void parser___parser_prod___ACallExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5645 */
+  /* parser/parser_prod.nit:5701 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5645);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5701);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5646 */
+  /* parser/parser_prod.nit:5702 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5646);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5702);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5647 */
+  /* parser/parser_prod.nit:5703 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5647);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5703);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallExpr___visit_all_1));
-  /* ./parser//parser_prod.nit:5650 */
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:5704 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5650);
+    nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5704);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallExpr___visit_all_2));
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallExpr___visit_all_1));
   stack_frame_head = fra.me.prev;
   return;
 }
@@ -30538,28 +30738,7 @@ void parser___parser_prod___ACallExpr___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:5648 */
-    CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-  void OC_parser___parser_prod___ACallExpr___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me;} fra;
-    fun_t CREG[1];
-    val_t tmp;
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___visit_all;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 1;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:5651 */
+    /* parser/parser_prod.nit:5705 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -30571,7 +30750,7 @@ void parser___parser_prod___ACallAssignExpr___empty_init(val_t p0, int* init_tab
   if (init_table[itpos191]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5656;
+  fra.me.line = 5710;
   fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -30590,7 +30769,7 @@ void parser___parser_prod___ACallAssignExpr___init_acallassignexpr(val_t p0, val
   if (init_table[itpos192]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5658;
+  fra.me.line = 5712;
   fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___init_acallassignexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -30608,116 +30787,87 @@ void parser___parser_prod___ACallAssignExpr___init_acallassignexpr(val_t p0, val
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
-  /* ./parser//parser_prod.nit:5658 */
+  /* parser/parser_prod.nit:5712 */
   fra.me.REG[6] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:5666 */
+  /* parser/parser_prod.nit:5720 */
   CALL_parser___parser_prod___ACallAssignExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
-  /* ./parser//parser_prod.nit:5667 */
+  /* parser/parser_prod.nit:5721 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5667);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5721);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[6]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:5668 */
+  /* parser/parser_prod.nit:5722 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5668);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5722);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-  /* ./parser//parser_prod.nit:5669 */
+  /* parser/parser_prod.nit:5723 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5669);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5723);
   }
   ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[6]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:5670 */
+  /* parser/parser_prod.nit:5724 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5670);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5724);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallAssignExpr___init_acallassignexpr_1));
-  /* ./parser//parser_prod.nit:5676 */
+  /* parser/parser_prod.nit:5725 */
+  REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5725);
+  }
+  ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[6]) = fra.me.REG[3];
+  /* parser/parser_prod.nit:5726 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5726);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
+  /* parser/parser_prod.nit:5727 */
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5676);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5727);
   }
   ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[6]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:5677 */
+  /* parser/parser_prod.nit:5728 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5677);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5728);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-  /* ./parser//parser_prod.nit:5678 */
+  /* parser/parser_prod.nit:5729 */
   REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5678);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5729);
   }
   ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[6]) = fra.me.REG[5];
-  /* ./parser//parser_prod.nit:5679 */
+  /* parser/parser_prod.nit:5730 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5679);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5730);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
   stack_frame_head = fra.me.prev;
   init_table[itpos192] = 1;
   return;
 }
-  void OC_parser___parser_prod___ACallAssignExpr___init_acallassignexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-    val_t REGB0;
-    fun_t CREG[1];
-    val_t tmp;
-    /* ./parser//parser_prod.nit:5671 */
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___init_acallassignexpr;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 2;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.REG[1] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:5672 */
-    REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5672);
-    }
-    /* ./parser//parser_prod.nit:5673 */
-    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[6])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5673);
-    }
-    fra.me.REG[1] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[6]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:5674 */
-    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[6]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
 void parser___parser_prod___ACallAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t REGB4;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5682;
+  fra.me.line = 5733;
   fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -30729,11 +30879,11 @@ void parser___parser_prod___ACallAssignExpr___replace_child(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5684 */
+  /* parser/parser_prod.nit:5735 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5684);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5735);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -30743,7 +30893,7 @@ void parser___parser_prod___ACallAssignExpr___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5685 */
+    /* parser/parser_prod.nit:5736 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -30758,32 +30908,32 @@ void parser___parser_prod___ACallAssignExpr___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5686 */
+      /* parser/parser_prod.nit:5737 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5686);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5737);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5687 */
+      /* parser/parser_prod.nit:5738 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5687);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5738);
       }
-      /* ./parser//parser_prod.nit:5688 */
+      /* parser/parser_prod.nit:5739 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5690 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5690);
+      /* parser/parser_prod.nit:5741 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5741);
     }
-    /* ./parser//parser_prod.nit:5692 */
+    /* parser/parser_prod.nit:5743 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5694 */
+  /* parser/parser_prod.nit:5745 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5694);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5745);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -30793,7 +30943,7 @@ void parser___parser_prod___ACallAssignExpr___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5695 */
+    /* parser/parser_prod.nit:5746 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -30808,137 +30958,34 @@ void parser___parser_prod___ACallAssignExpr___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5696 */
+      /* parser/parser_prod.nit:5747 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5696);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5747);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5697 */
+      /* parser/parser_prod.nit:5748 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5697);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5748);
       }
-      /* ./parser//parser_prod.nit:5698 */
+      /* parser/parser_prod.nit:5749 */
       ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5700 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5700);
+      /* parser/parser_prod.nit:5751 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5751);
     }
-    /* ./parser//parser_prod.nit:5702 */
+    /* parser/parser_prod.nit:5753 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5704 */
-  REGB0 = TAG_Int(0);
-  REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5704);
-  }
-  fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
-  REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
-  while(1) {
-    REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB2)) {
-    } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ./../lib/standard//kernel.nit:232 */
-    REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
-    if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:5704 */
-      REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:5705 */
-      REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-      if (UNTAG_Bool(REGB3)) {
-      } else {
-        nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5705);
-      }
-      fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
-      fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
-      REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
-      if (UNTAG_Bool(REGB3)) {
-      } else {
-        REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-        if (UNTAG_Bool(REGB4)) {
-          REGB4 = TAG_Bool(false);
-          REGB3 = REGB4;
-        } else {
-          REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-          REGB3 = REGB4;
-        }
-      }
-      if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:5706 */
-        REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-        } else {
-          REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB4)) {
-            REGB4 = TAG_Bool(false);
-            REGB3 = REGB4;
-          } else {
-            REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
-            REGB3 = REGB4;
-          }
-        }
-        REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
-        if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:5707 */
-          REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5707);
-          }
-          /* ./parser//parser_prod.nit:5708 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5708);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:5709 */
-          REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5709);
-          }
-          CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-        } else {
-          /* ./parser//parser_prod.nit:5711 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5711);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
-        }
-        /* ./parser//parser_prod.nit:5713 */
-        goto label1;
-      }
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
-      REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB0 = REGB2;
-    } else {
-      /* ./../lib/standard//kernel.nit:352 */
-      goto label2;
-    }
-  }
-  label2: while(0);
-  /* ./parser//parser_prod.nit:5716 */
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
+  /* parser/parser_prod.nit:5755 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5716);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5755);
   }
-  fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
+  fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -30946,7 +30993,7 @@ void parser___parser_prod___ACallAssignExpr___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5717 */
+    /* parser/parser_prod.nit:5756 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -30961,32 +31008,82 @@ void parser___parser_prod___ACallAssignExpr___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5718 */
+      /* parser/parser_prod.nit:5757 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5718);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5757);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5719 */
+      /* parser/parser_prod.nit:5758 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5758);
+      }
+      /* parser/parser_prod.nit:5759 */
+      ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:5761 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5761);
+    }
+    /* parser/parser_prod.nit:5763 */
+    goto label1;
+  }
+  /* parser/parser_prod.nit:5765 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5765);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:5766 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:5767 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5767);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:5768 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5719);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5768);
       }
-      /* ./parser//parser_prod.nit:5720 */
+      /* parser/parser_prod.nit:5769 */
       ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5722 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5722);
+      /* parser/parser_prod.nit:5771 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5771);
     }
-    /* ./parser//parser_prod.nit:5724 */
+    /* parser/parser_prod.nit:5773 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5726 */
+  /* parser/parser_prod.nit:5775 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5726);
+    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5775);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -30996,7 +31093,7 @@ void parser___parser_prod___ACallAssignExpr___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5727 */
+    /* parser/parser_prod.nit:5776 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -31011,25 +31108,25 @@ void parser___parser_prod___ACallAssignExpr___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5728 */
+      /* parser/parser_prod.nit:5777 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5728);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5777);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5729 */
+      /* parser/parser_prod.nit:5778 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5729);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5778);
       }
-      /* ./parser//parser_prod.nit:5730 */
+      /* parser/parser_prod.nit:5779 */
       ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5732 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5732);
+      /* parser/parser_prod.nit:5781 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5781);
     }
-    /* ./parser//parser_prod.nit:5734 */
+    /* parser/parser_prod.nit:5783 */
     goto label1;
   }
   label1: while(0);
@@ -31042,7 +31139,7 @@ void parser___parser_prod___ACallAssignExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5738;
+  fra.me.line = 5787;
   fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -31052,70 +31149,49 @@ void parser___parser_prod___ACallAssignExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5740 */
+  /* parser/parser_prod.nit:5789 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5740);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5789);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5741 */
+  /* parser/parser_prod.nit:5790 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5741);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5790);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5742 */
+  /* parser/parser_prod.nit:5791 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5742);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5791);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallAssignExpr___visit_all_1));
-  /* ./parser//parser_prod.nit:5745 */
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:5792 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5745);
+    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5792);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5746 */
+  /* parser/parser_prod.nit:5793 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5746);
+    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5793);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_parser___parser_prod___ACallAssignExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me;} fra;
-    fun_t CREG[1];
-    val_t tmp;
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___visit_all;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 1;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:5743 */
-    CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
 void parser___parser_prod___ACallReassignExpr___empty_init(val_t p0, int* init_table){
   int itpos193 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallReassignExpr].i;
   struct {struct stack_frame_t me;} fra;
@@ -31123,7 +31199,7 @@ void parser___parser_prod___ACallReassignExpr___empty_init(val_t p0, int* init_t
   if (init_table[itpos193]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5750;
+  fra.me.line = 5797;
   fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -31142,7 +31218,7 @@ void parser___parser_prod___ACallReassignExpr___init_acallreassignexpr(val_t p0,
   if (init_table[itpos194]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5752;
+  fra.me.line = 5799;
   fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -31160,116 +31236,87 @@ void parser___parser_prod___ACallReassignExpr___init_acallreassignexpr(val_t p0,
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
-  /* ./parser//parser_prod.nit:5752 */
+  /* parser/parser_prod.nit:5799 */
   fra.me.REG[6] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:5760 */
+  /* parser/parser_prod.nit:5807 */
   CALL_parser___parser_prod___ACallReassignExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
-  /* ./parser//parser_prod.nit:5761 */
+  /* parser/parser_prod.nit:5808 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5761);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5808);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[6]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:5762 */
+  /* parser/parser_prod.nit:5809 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5762);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5809);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-  /* ./parser//parser_prod.nit:5763 */
+  /* parser/parser_prod.nit:5810 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5763);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5810);
   }
   ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[6]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:5764 */
+  /* parser/parser_prod.nit:5811 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5764);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5811);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr_1));
-  /* ./parser//parser_prod.nit:5770 */
+  /* parser/parser_prod.nit:5812 */
+  REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5812);
+  }
+  ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[6]) = fra.me.REG[3];
+  /* parser/parser_prod.nit:5813 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5813);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
+  /* parser/parser_prod.nit:5814 */
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5770);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5814);
   }
   ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[6]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:5771 */
+  /* parser/parser_prod.nit:5815 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5771);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5815);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-  /* ./parser//parser_prod.nit:5772 */
+  /* parser/parser_prod.nit:5816 */
   REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5772);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5816);
   }
   ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[6]) = fra.me.REG[5];
-  /* ./parser//parser_prod.nit:5773 */
+  /* parser/parser_prod.nit:5817 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5773);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5817);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
   stack_frame_head = fra.me.prev;
   init_table[itpos194] = 1;
   return;
 }
-  void OC_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-    val_t REGB0;
-    fun_t CREG[1];
-    val_t tmp;
-    /* ./parser//parser_prod.nit:5765 */
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 2;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.REG[1] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:5766 */
-    REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5766);
-    }
-    /* ./parser//parser_prod.nit:5767 */
-    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[6])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5767);
-    }
-    fra.me.REG[1] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(closctx->REG[6]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:5768 */
-    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[6]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
 void parser___parser_prod___ACallReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t REGB4;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5776;
+  fra.me.line = 5820;
   fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -31281,11 +31328,11 @@ void parser___parser_prod___ACallReassignExpr___replace_child(val_t p0, val_t p1
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5778 */
+  /* parser/parser_prod.nit:5822 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5778);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5822);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -31295,7 +31342,7 @@ void parser___parser_prod___ACallReassignExpr___replace_child(val_t p0, val_t p1
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5779 */
+    /* parser/parser_prod.nit:5823 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -31310,32 +31357,32 @@ void parser___parser_prod___ACallReassignExpr___replace_child(val_t p0, val_t p1
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5780 */
+      /* parser/parser_prod.nit:5824 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5780);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5824);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5781 */
+      /* parser/parser_prod.nit:5825 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5781);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5825);
       }
-      /* ./parser//parser_prod.nit:5782 */
+      /* parser/parser_prod.nit:5826 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5784 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5784);
+      /* parser/parser_prod.nit:5828 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5828);
     }
-    /* ./parser//parser_prod.nit:5786 */
+    /* parser/parser_prod.nit:5830 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5788 */
+  /* parser/parser_prod.nit:5832 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5788);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5832);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -31345,7 +31392,7 @@ void parser___parser_prod___ACallReassignExpr___replace_child(val_t p0, val_t p1
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5789 */
+    /* parser/parser_prod.nit:5833 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -31360,135 +31407,82 @@ void parser___parser_prod___ACallReassignExpr___replace_child(val_t p0, val_t p1
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5790 */
+      /* parser/parser_prod.nit:5834 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5790);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5834);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5791 */
+      /* parser/parser_prod.nit:5835 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5791);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5835);
       }
-      /* ./parser//parser_prod.nit:5792 */
+      /* parser/parser_prod.nit:5836 */
       ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5794 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5794);
+      /* parser/parser_prod.nit:5838 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5838);
     }
-    /* ./parser//parser_prod.nit:5796 */
+    /* parser/parser_prod.nit:5840 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5798 */
-  REGB0 = TAG_Int(0);
-  REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
+  /* parser/parser_prod.nit:5842 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5798);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5842);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
-  REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
-  while(1) {
-    REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB2)) {
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:5843 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ./../lib/standard//kernel.nit:232 */
-    REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
-    if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:5798 */
-      REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:5799 */
-      REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-      if (UNTAG_Bool(REGB3)) {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5799);
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
       }
-      fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
-      fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
-      REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
-      if (UNTAG_Bool(REGB3)) {
-      } else {
-        REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-        if (UNTAG_Bool(REGB4)) {
-          REGB4 = TAG_Bool(false);
-          REGB3 = REGB4;
-        } else {
-          REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-          REGB3 = REGB4;
-        }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:5844 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5844);
       }
-      if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:5800 */
-        REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-        } else {
-          REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB4)) {
-            REGB4 = TAG_Bool(false);
-            REGB3 = REGB4;
-          } else {
-            REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
-            REGB3 = REGB4;
-          }
-        }
-        REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
-        if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:5801 */
-          REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5801);
-          }
-          /* ./parser//parser_prod.nit:5802 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5802);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:5803 */
-          REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5803);
-          }
-          CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-        } else {
-          /* ./parser//parser_prod.nit:5805 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5805);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
-        }
-        /* ./parser//parser_prod.nit:5807 */
-        goto label1;
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:5845 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5845);
       }
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
-      REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB0 = REGB2;
+      /* parser/parser_prod.nit:5846 */
+      ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
-      goto label2;
+      /* parser/parser_prod.nit:5848 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5848);
     }
+    /* parser/parser_prod.nit:5850 */
+    goto label1;
   }
-  label2: while(0);
-  /* ./parser//parser_prod.nit:5810 */
+  /* parser/parser_prod.nit:5852 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5810);
+    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5852);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -31498,7 +31492,7 @@ void parser___parser_prod___ACallReassignExpr___replace_child(val_t p0, val_t p1
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5811 */
+    /* parser/parser_prod.nit:5853 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -31513,32 +31507,32 @@ void parser___parser_prod___ACallReassignExpr___replace_child(val_t p0, val_t p1
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5812 */
+      /* parser/parser_prod.nit:5854 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5812);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5854);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5813 */
+      /* parser/parser_prod.nit:5855 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAssignOp, ID_parser___parser_nodes___AAssignOp)) /*cast AAssignOp*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5813);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5855);
       }
-      /* ./parser//parser_prod.nit:5814 */
+      /* parser/parser_prod.nit:5856 */
       ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5816 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5816);
+      /* parser/parser_prod.nit:5858 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5858);
     }
-    /* ./parser//parser_prod.nit:5818 */
+    /* parser/parser_prod.nit:5860 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5820 */
+  /* parser/parser_prod.nit:5862 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5820);
+    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5862);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -31548,7 +31542,7 @@ void parser___parser_prod___ACallReassignExpr___replace_child(val_t p0, val_t p1
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5821 */
+    /* parser/parser_prod.nit:5863 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -31563,25 +31557,25 @@ void parser___parser_prod___ACallReassignExpr___replace_child(val_t p0, val_t p1
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5822 */
+      /* parser/parser_prod.nit:5864 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5822);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5864);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5823 */
+      /* parser/parser_prod.nit:5865 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5823);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5865);
       }
-      /* ./parser//parser_prod.nit:5824 */
+      /* parser/parser_prod.nit:5866 */
       ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5826 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5826);
+      /* parser/parser_prod.nit:5868 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5868);
     }
-    /* ./parser//parser_prod.nit:5828 */
+    /* parser/parser_prod.nit:5870 */
     goto label1;
   }
   label1: while(0);
@@ -31594,7 +31588,7 @@ void parser___parser_prod___ACallReassignExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5832;
+  fra.me.line = 5874;
   fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -31604,70 +31598,49 @@ void parser___parser_prod___ACallReassignExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5834 */
+  /* parser/parser_prod.nit:5876 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5834);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5876);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5835 */
+  /* parser/parser_prod.nit:5877 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5835);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5877);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5836 */
+  /* parser/parser_prod.nit:5878 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5836);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5878);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallReassignExpr___visit_all_1));
-  /* ./parser//parser_prod.nit:5839 */
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:5879 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5839);
+    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5879);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5840 */
+  /* parser/parser_prod.nit:5880 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5840);
+    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5880);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_parser___parser_prod___ACallReassignExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me;} fra;
-    fun_t CREG[1];
-    val_t tmp;
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___visit_all;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 1;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:5837 */
-    CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
 void parser___parser_prod___ASuperExpr___empty_init(val_t p0, int* init_table){
   int itpos195 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExpr].i;
   struct {struct stack_frame_t me;} fra;
@@ -31675,7 +31648,7 @@ void parser___parser_prod___ASuperExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos195]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5844;
+  fra.me.line = 5884;
   fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -31695,7 +31668,7 @@ void parser___parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val
   if (init_table[itpos196]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5846;
+  fra.me.line = 5886;
   fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___init_asuperexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -31709,13 +31682,13 @@ void parser___parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:5846 */
+  /* parser/parser_prod.nit:5886 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:5852 */
+  /* parser/parser_prod.nit:5892 */
   CALL_parser___parser_prod___ASuperExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:5853 */
+  /* parser/parser_prod.nit:5893 */
   ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:5854 */
+  /* parser/parser_prod.nit:5894 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -31730,80 +31703,51 @@ void parser___parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5855 */
+    /* parser/parser_prod.nit:5895 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5855);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5895);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
   }
-  /* ./parser//parser_prod.nit:5857 */
+  /* parser/parser_prod.nit:5897 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5857);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5897);
   }
   ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:5858 */
+  /* parser/parser_prod.nit:5898 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5858);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5898);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASuperExpr___init_asuperexpr_1));
+  /* parser/parser_prod.nit:5899 */
+  REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5899);
+  }
+  ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[4]) = fra.me.REG[3];
+  /* parser/parser_prod.nit:5900 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5900);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   stack_frame_head = fra.me.prev;
   init_table[itpos196] = 1;
   return;
 }
-  void OC_parser___parser_prod___ASuperExpr___init_asuperexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-    val_t REGB0;
-    fun_t CREG[1];
-    val_t tmp;
-    /* ./parser//parser_prod.nit:5859 */
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___init_asuperexpr;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 2;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.REG[1] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:5860 */
-    REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5860);
-    }
-    /* ./parser//parser_prod.nit:5861 */
-    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(closctx->REG[4])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5861);
-    }
-    fra.me.REG[1] = ATTR_parser___parser_nodes___ASuperExpr____n_args(closctx->REG[4]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:5862 */
-    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
 void parser___parser_prod___ASuperExpr___replace_child(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t REGB4;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5866;
+  fra.me.line = 5903;
   fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -31815,7 +31759,7 @@ void parser___parser_prod___ASuperExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5868 */
+  /* parser/parser_prod.nit:5905 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -31830,7 +31774,7 @@ void parser___parser_prod___ASuperExpr___replace_child(val_t p0, val_t p1, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5869 */
+    /* parser/parser_prod.nit:5906 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -31845,32 +31789,32 @@ void parser___parser_prod___ASuperExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5870 */
+      /* parser/parser_prod.nit:5907 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5870);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5907);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5871 */
+      /* parser/parser_prod.nit:5908 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AQualified, ID_parser___parser_nodes___AQualified)) /*cast AQualified*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5871);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5908);
       }
-      /* ./parser//parser_prod.nit:5872 */
+      /* parser/parser_prod.nit:5909 */
       ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5874 */
+      /* parser/parser_prod.nit:5911 */
       ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:5876 */
+    /* parser/parser_prod.nit:5913 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5878 */
+  /* parser/parser_prod.nit:5915 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 5878);
+    nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 5915);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -31880,7 +31824,7 @@ void parser___parser_prod___ASuperExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5879 */
+    /* parser/parser_prod.nit:5916 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -31895,130 +31839,77 @@ void parser___parser_prod___ASuperExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5880 */
+      /* parser/parser_prod.nit:5917 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5880);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5917);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5881 */
+      /* parser/parser_prod.nit:5918 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwsuper, ID_parser___parser_nodes___TKwsuper)) /*cast TKwsuper*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5881);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5918);
       }
-      /* ./parser//parser_prod.nit:5882 */
+      /* parser/parser_prod.nit:5919 */
       ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5884 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5884);
+      /* parser/parser_prod.nit:5921 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5921);
     }
-    /* ./parser//parser_prod.nit:5886 */
+    /* parser/parser_prod.nit:5923 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5888 */
-  REGB0 = TAG_Int(0);
-  REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
+  /* parser/parser_prod.nit:5925 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5888);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5925);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
-  REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
-  while(1) {
-    REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB2)) {
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:5926 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ./../lib/standard//kernel.nit:232 */
-    REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
-    if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:5888 */
-      REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:5889 */
-      REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-      if (UNTAG_Bool(REGB3)) {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5889);
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
       }
-      fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
-      fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
-      REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
-      if (UNTAG_Bool(REGB3)) {
-      } else {
-        REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-        if (UNTAG_Bool(REGB4)) {
-          REGB4 = TAG_Bool(false);
-          REGB3 = REGB4;
-        } else {
-          REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-          REGB3 = REGB4;
-        }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:5927 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5927);
       }
-      if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:5890 */
-        REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-        } else {
-          REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB4)) {
-            REGB4 = TAG_Bool(false);
-            REGB3 = REGB4;
-          } else {
-            REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
-            REGB3 = REGB4;
-          }
-        }
-        REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
-        if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:5891 */
-          REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5891);
-          }
-          /* ./parser//parser_prod.nit:5892 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5892);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:5893 */
-          REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5893);
-          }
-          CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-        } else {
-          /* ./parser//parser_prod.nit:5895 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5895);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
-        }
-        /* ./parser//parser_prod.nit:5897 */
-        goto label1;
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:5928 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5928);
       }
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
-      REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB0 = REGB2;
+      /* parser/parser_prod.nit:5929 */
+      ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
-      goto label2;
+      /* parser/parser_prod.nit:5931 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5931);
     }
+    /* parser/parser_prod.nit:5933 */
+    goto label1;
   }
-  label2: while(0);
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return;
@@ -32030,7 +31921,7 @@ void parser___parser_prod___ASuperExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5902;
+  fra.me.line = 5937;
   fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -32041,9 +31932,9 @@ void parser___parser_prod___ASuperExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5902 */
+  /* parser/parser_prod.nit:5937 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:5904 */
+  /* parser/parser_prod.nit:5939 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -32059,55 +31950,34 @@ void parser___parser_prod___ASuperExpr___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5905 */
+    /* parser/parser_prod.nit:5940 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AQualified, ID_parser___parser_nodes___AQualified)) /*cast AQualified*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5905);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5940);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:5907 */
+  /* parser/parser_prod.nit:5942 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 5907);
+    nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 5942);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:5908 */
+  /* parser/parser_prod.nit:5943 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5908);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5943);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[2]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASuperExpr___visit_all_1));
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_parser___parser_prod___ASuperExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me;} fra;
-    fun_t CREG[1];
-    val_t tmp;
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___visit_all;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 1;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:5909 */
-    CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
 void parser___parser_prod___AInitExpr___empty_init(val_t p0, int* init_table){
   int itpos197 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitExpr].i;
   struct {struct stack_frame_t me;} fra;
@@ -32115,7 +31985,7 @@ void parser___parser_prod___AInitExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos197]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5914;
+  fra.me.line = 5947;
   fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -32134,7 +32004,7 @@ void parser___parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1, val_t
   if (init_table[itpos198]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5916;
+  fra.me.line = 5949;
   fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___init_ainitexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -32148,90 +32018,61 @@ void parser___parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1, val_t
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:5916 */
+  /* parser/parser_prod.nit:5949 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:5922 */
+  /* parser/parser_prod.nit:5955 */
   CALL_parser___parser_prod___AInitExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:5923 */
+  /* parser/parser_prod.nit:5956 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5923);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5956);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:5924 */
+  /* parser/parser_prod.nit:5957 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5924);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5957);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:5925 */
+  /* parser/parser_prod.nit:5958 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5925);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5958);
   }
   ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:5926 */
+  /* parser/parser_prod.nit:5959 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5926);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5959);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AInitExpr___init_ainitexpr_1));
+  /* parser/parser_prod.nit:5960 */
+  REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5960);
+  }
+  ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[4]) = fra.me.REG[3];
+  /* parser/parser_prod.nit:5961 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5961);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   stack_frame_head = fra.me.prev;
   init_table[itpos198] = 1;
   return;
 }
-  void OC_parser___parser_prod___AInitExpr___init_ainitexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-    val_t REGB0;
-    fun_t CREG[1];
-    val_t tmp;
-    /* ./parser//parser_prod.nit:5927 */
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___init_ainitexpr;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 2;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.REG[1] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:5928 */
-    REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5928);
-    }
-    /* ./parser//parser_prod.nit:5929 */
-    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(closctx->REG[4])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5929);
-    }
-    fra.me.REG[1] = ATTR_parser___parser_nodes___AInitExpr____n_args(closctx->REG[4]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:5930 */
-    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
 void parser___parser_prod___AInitExpr___replace_child(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t REGB4;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5934;
+  fra.me.line = 5964;
   fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -32243,11 +32084,11 @@ void parser___parser_prod___AInitExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:5936 */
+  /* parser/parser_prod.nit:5966 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5936);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5966);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -32257,7 +32098,7 @@ void parser___parser_prod___AInitExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5937 */
+    /* parser/parser_prod.nit:5967 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -32272,32 +32113,32 @@ void parser___parser_prod___AInitExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5938 */
+      /* parser/parser_prod.nit:5968 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5938);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5968);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5939 */
+      /* parser/parser_prod.nit:5969 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5939);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5969);
       }
-      /* ./parser//parser_prod.nit:5940 */
+      /* parser/parser_prod.nit:5970 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5942 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5942);
+      /* parser/parser_prod.nit:5972 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5972);
     }
-    /* ./parser//parser_prod.nit:5944 */
+    /* parser/parser_prod.nit:5974 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5946 */
+  /* parser/parser_prod.nit:5976 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 5946);
+    nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 5976);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -32307,7 +32148,7 @@ void parser___parser_prod___AInitExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:5947 */
+    /* parser/parser_prod.nit:5977 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -32322,130 +32163,77 @@ void parser___parser_prod___AInitExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:5948 */
+      /* parser/parser_prod.nit:5978 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5948);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5978);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:5949 */
+      /* parser/parser_prod.nit:5979 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwinit, ID_parser___parser_nodes___TKwinit)) /*cast TKwinit*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5949);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5979);
       }
-      /* ./parser//parser_prod.nit:5950 */
+      /* parser/parser_prod.nit:5980 */
       ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:5952 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5952);
+      /* parser/parser_prod.nit:5982 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5982);
     }
-    /* ./parser//parser_prod.nit:5954 */
+    /* parser/parser_prod.nit:5984 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:5956 */
-  REGB0 = TAG_Int(0);
-  REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
+  /* parser/parser_prod.nit:5986 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5956);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5986);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
-  REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
-  while(1) {
-    REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB2)) {
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:5987 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ./../lib/standard//kernel.nit:232 */
-    REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
-    if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:5956 */
-      REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:5957 */
-      REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-      if (UNTAG_Bool(REGB3)) {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5957);
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
       }
-      fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
-      fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
-      REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
-      if (UNTAG_Bool(REGB3)) {
-      } else {
-        REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-        if (UNTAG_Bool(REGB4)) {
-          REGB4 = TAG_Bool(false);
-          REGB3 = REGB4;
-        } else {
-          REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-          REGB3 = REGB4;
-        }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:5988 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5988);
       }
-      if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:5958 */
-        REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-        } else {
-          REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB4)) {
-            REGB4 = TAG_Bool(false);
-            REGB3 = REGB4;
-          } else {
-            REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
-            REGB3 = REGB4;
-          }
-        }
-        REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
-        if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:5959 */
-          REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5959);
-          }
-          /* ./parser//parser_prod.nit:5960 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5960);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:5961 */
-          REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5961);
-          }
-          CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-        } else {
-          /* ./parser//parser_prod.nit:5963 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5963);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
-        }
-        /* ./parser//parser_prod.nit:5965 */
-        goto label1;
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:5989 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5989);
       }
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
-      REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB0 = REGB2;
+      /* parser/parser_prod.nit:5990 */
+      ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
-      goto label2;
+      /* parser/parser_prod.nit:5992 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5992);
     }
+    /* parser/parser_prod.nit:5994 */
+    goto label1;
   }
-  label2: while(0);
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return;
@@ -32456,7 +32244,7 @@ void parser___parser_prod___AInitExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5970;
+  fra.me.line = 5998;
   fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -32466,54 +32254,33 @@ void parser___parser_prod___AInitExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:5972 */
+  /* parser/parser_prod.nit:6000 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5972);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6000);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5973 */
+  /* parser/parser_prod.nit:6001 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 5973);
+    nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 6001);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:5974 */
+  /* parser/parser_prod.nit:6002 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5974);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6002);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AInitExpr___visit_all_1));
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_parser___parser_prod___AInitExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me;} fra;
-    fun_t CREG[1];
-    val_t tmp;
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___visit_all;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 1;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:5975 */
-    CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
 void parser___parser_prod___ABraExpr___empty_init(val_t p0, int* init_table){
   int itpos199 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExpr].i;
   struct {struct stack_frame_t me;} fra;
@@ -32521,7 +32288,7 @@ void parser___parser_prod___ABraExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos199]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5980;
+  fra.me.line = 6006;
   fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -32540,7 +32307,7 @@ void parser___parser_prod___ABraExpr___init_abraexpr(val_t p0, val_t p1, val_t p
   if (init_table[itpos200]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 5982;
+  fra.me.line = 6008;
   fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___init_abraexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -32554,25 +32321,37 @@ void parser___parser_prod___ABraExpr___init_abraexpr(val_t p0, val_t p1, val_t p
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:5982 */
+  /* parser/parser_prod.nit:6008 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:5988 */
+  /* parser/parser_prod.nit:6014 */
   CALL_parser___parser_prod___ABraExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:5989 */
+  /* parser/parser_prod.nit:6015 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5989);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6015);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:5990 */
+  /* parser/parser_prod.nit:6016 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5990);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6016);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExpr___init_abraexpr_1));
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExpr___init_abraexpr_2));
+  /* parser/parser_prod.nit:6017 */
+  REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6017);
+  }
+  ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[4]) = fra.me.REG[2];
+  /* parser/parser_prod.nit:6018 */
+  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6018);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExpr___init_abraexpr_1));
   stack_frame_head = fra.me.prev;
   init_table[itpos200] = 1;
   return;
@@ -32582,45 +32361,7 @@ void parser___parser_prod___ABraExpr___init_abraexpr(val_t p0, val_t p1, val_t p
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:5991 */
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___init_abraexpr;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 2;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.REG[1] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:5992 */
-    REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5992);
-    }
-    /* ./parser//parser_prod.nit:5993 */
-    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[4])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5993);
-    }
-    fra.me.REG[1] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[4]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:5994 */
-    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-  void OC_parser___parser_prod___ABraExpr___init_abraexpr_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-    val_t REGB0;
-    fun_t CREG[1];
-    val_t tmp;
-    /* ./parser//parser_prod.nit:5996 */
+    /* parser/parser_prod.nit:6019 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -32634,21 +32375,21 @@ void parser___parser_prod___ABraExpr___init_abraexpr(val_t p0, val_t p1, val_t p
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:5997 */
+    /* parser/parser_prod.nit:6020 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5997);
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6020);
     }
-    /* ./parser//parser_prod.nit:5998 */
+    /* parser/parser_prod.nit:6021 */
     REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5998);
+      nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6021);
     }
     fra.me.REG[1] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[4]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:5999 */
+    /* parser/parser_prod.nit:6022 */
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
     stack_frame_head = fra.me.prev;
     return;
@@ -32663,7 +32404,7 @@ void parser___parser_prod___ABraExpr___replace_child(val_t p0, val_t p1, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6003;
+  fra.me.line = 6026;
   fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -32675,11 +32416,11 @@ void parser___parser_prod___ABraExpr___replace_child(val_t p0, val_t p1, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6005 */
+  /* parser/parser_prod.nit:6028 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6005);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6028);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -32689,7 +32430,7 @@ void parser___parser_prod___ABraExpr___replace_child(val_t p0, val_t p1, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6006 */
+    /* parser/parser_prod.nit:6029 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -32704,157 +32445,104 @@ void parser___parser_prod___ABraExpr___replace_child(val_t p0, val_t p1, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6007 */
+      /* parser/parser_prod.nit:6030 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6007);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6030);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6008 */
+      /* parser/parser_prod.nit:6031 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6008);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6031);
       }
-      /* ./parser//parser_prod.nit:6009 */
+      /* parser/parser_prod.nit:6032 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6011 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6011);
+      /* parser/parser_prod.nit:6034 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6034);
     }
-    /* ./parser//parser_prod.nit:6013 */
+    /* parser/parser_prod.nit:6036 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:6015 */
-  REGB0 = TAG_Int(0);
-  REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
+  /* parser/parser_prod.nit:6038 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6015);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6038);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
-  REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
-  while(1) {
-    REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB2)) {
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:6039 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ./../lib/standard//kernel.nit:232 */
-    REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
-    if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:6015 */
-      REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:6016 */
-      REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-      if (UNTAG_Bool(REGB3)) {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6016);
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
       }
-      fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
-      fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
-      REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
-      if (UNTAG_Bool(REGB3)) {
-      } else {
-        REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-        if (UNTAG_Bool(REGB4)) {
-          REGB4 = TAG_Bool(false);
-          REGB3 = REGB4;
-        } else {
-          REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-          REGB3 = REGB4;
-        }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:6040 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6040);
       }
-      if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:6017 */
-        REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-        } else {
-          REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB4)) {
-            REGB4 = TAG_Bool(false);
-            REGB3 = REGB4;
-          } else {
-            REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
-            REGB3 = REGB4;
-          }
-        }
-        REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
-        if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:6018 */
-          REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6018);
-          }
-          /* ./parser//parser_prod.nit:6019 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6019);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:6020 */
-          REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6020);
-          }
-          CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-        } else {
-          /* ./parser//parser_prod.nit:6022 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6022);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
-        }
-        /* ./parser//parser_prod.nit:6024 */
-        goto label1;
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:6041 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6041);
       }
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
-      REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB0 = REGB2;
+      /* parser/parser_prod.nit:6042 */
+      ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
-      goto label2;
+      /* parser/parser_prod.nit:6044 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6044);
     }
+    /* parser/parser_prod.nit:6046 */
+    goto label1;
   }
-  label2: while(0);
-  /* ./parser//parser_prod.nit:6027 */
+  /* parser/parser_prod.nit:6048 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6027);
+    nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6048);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:6027 */
+      /* parser/parser_prod.nit:6048 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:6028 */
+      /* parser/parser_prod.nit:6049 */
       REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6028);
+        nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6049);
       }
       fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
@@ -32871,7 +32559,7 @@ void parser___parser_prod___ABraExpr___replace_child(val_t p0, val_t p1, val_t p
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:6029 */
+        /* parser/parser_prod.nit:6050 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -32886,51 +32574,51 @@ void parser___parser_prod___ABraExpr___replace_child(val_t p0, val_t p1, val_t p
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:6030 */
+          /* parser/parser_prod.nit:6051 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6030);
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6051);
           }
-          /* ./parser//parser_prod.nit:6031 */
+          /* parser/parser_prod.nit:6052 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6031);
+            nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6052);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:6032 */
+          /* parser/parser_prod.nit:6053 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6032);
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6053);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:6034 */
+          /* parser/parser_prod.nit:6055 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6034);
+            nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6055);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:6036 */
+        /* parser/parser_prod.nit:6057 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
-      goto label3;
+      /* ../lib/standard/kernel.nit:352 */
+      goto label2;
     }
   }
-  label3: while(0);
+  label2: while(0);
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return;
@@ -32941,7 +32629,7 @@ void parser___parser_prod___ABraExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6041;
+  fra.me.line = 6062;
   fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -32951,30 +32639,30 @@ void parser___parser_prod___ABraExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6043 */
+  /* parser/parser_prod.nit:6064 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6043);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6064);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:6044 */
+  /* parser/parser_prod.nit:6065 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6044);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6065);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExpr___visit_all_1));
-  /* ./parser//parser_prod.nit:6047 */
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:6066 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6047);
+    nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6066);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExpr___visit_all_2));
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExpr___visit_all_1));
   stack_frame_head = fra.me.prev;
   return;
 }
@@ -32994,28 +32682,7 @@ void parser___parser_prod___ABraExpr___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:6045 */
-    CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-  void OC_parser___parser_prod___ABraExpr___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me;} fra;
-    fun_t CREG[1];
-    val_t tmp;
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___visit_all;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 1;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:6048 */
+    /* parser/parser_prod.nit:6067 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -33027,7 +32694,7 @@ void parser___parser_prod___ABraAssignExpr___empty_init(val_t p0, int* init_tabl
   if (init_table[itpos201]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6053;
+  fra.me.line = 6072;
   fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -33046,7 +32713,7 @@ void parser___parser_prod___ABraAssignExpr___init_abraassignexpr(val_t p0, val_t
   if (init_table[itpos202]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6055;
+  fra.me.line = 6074;
   fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___init_abraassignexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -33062,103 +32729,74 @@ void parser___parser_prod___ABraAssignExpr___init_abraassignexpr(val_t p0, val_t
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:6055 */
+  /* parser/parser_prod.nit:6074 */
   fra.me.REG[5] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:6062 */
+  /* parser/parser_prod.nit:6081 */
   CALL_parser___parser_prod___ABraAssignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
-  /* ./parser//parser_prod.nit:6063 */
+  /* parser/parser_prod.nit:6082 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6063);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6082);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:6064 */
+  /* parser/parser_prod.nit:6083 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6064);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6083);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraAssignExpr___init_abraassignexpr_1));
-  /* ./parser//parser_prod.nit:6070 */
+  /* parser/parser_prod.nit:6084 */
+  REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6084);
+  }
+  ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[5]) = fra.me.REG[2];
+  /* parser/parser_prod.nit:6085 */
+  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6085);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
+  /* parser/parser_prod.nit:6086 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6070);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6086);
   }
   ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[5]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:6071 */
+  /* parser/parser_prod.nit:6087 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6071);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6087);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:6072 */
+  /* parser/parser_prod.nit:6088 */
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6072);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6088);
   }
   ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:6073 */
+  /* parser/parser_prod.nit:6089 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6073);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6089);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   stack_frame_head = fra.me.prev;
   init_table[itpos202] = 1;
   return;
 }
-  void OC_parser___parser_prod___ABraAssignExpr___init_abraassignexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-    val_t REGB0;
-    fun_t CREG[1];
-    val_t tmp;
-    /* ./parser//parser_prod.nit:6065 */
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___init_abraassignexpr;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 2;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.REG[1] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:6066 */
-    REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6066);
-    }
-    /* ./parser//parser_prod.nit:6067 */
-    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[5])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6067);
-    }
-    fra.me.REG[1] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[5]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:6068 */
-    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
 void parser___parser_prod___ABraAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t REGB4;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6076;
+  fra.me.line = 6092;
   fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -33170,11 +32808,11 @@ void parser___parser_prod___ABraAssignExpr___replace_child(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6078 */
+  /* parser/parser_prod.nit:6094 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6078);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6094);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -33184,7 +32822,7 @@ void parser___parser_prod___ABraAssignExpr___replace_child(val_t p0, val_t p1, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6079 */
+    /* parser/parser_prod.nit:6095 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -33199,135 +32837,82 @@ void parser___parser_prod___ABraAssignExpr___replace_child(val_t p0, val_t p1, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6080 */
+      /* parser/parser_prod.nit:6096 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6080);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6096);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6081 */
+      /* parser/parser_prod.nit:6097 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6081);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6097);
       }
-      /* ./parser//parser_prod.nit:6082 */
+      /* parser/parser_prod.nit:6098 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6084 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6084);
+      /* parser/parser_prod.nit:6100 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6100);
     }
-    /* ./parser//parser_prod.nit:6086 */
+    /* parser/parser_prod.nit:6102 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:6088 */
-  REGB0 = TAG_Int(0);
-  REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
+  /* parser/parser_prod.nit:6104 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6088);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6104);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
-  REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
-  while(1) {
-    REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB2)) {
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:6105 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ./../lib/standard//kernel.nit:232 */
-    REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
-    if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:6088 */
-      REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:6089 */
-      REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-      if (UNTAG_Bool(REGB3)) {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6089);
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
       }
-      fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
-      fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
-      REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
-      if (UNTAG_Bool(REGB3)) {
-      } else {
-        REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-        if (UNTAG_Bool(REGB4)) {
-          REGB4 = TAG_Bool(false);
-          REGB3 = REGB4;
-        } else {
-          REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-          REGB3 = REGB4;
-        }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:6106 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6106);
       }
-      if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:6090 */
-        REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-        } else {
-          REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB4)) {
-            REGB4 = TAG_Bool(false);
-            REGB3 = REGB4;
-          } else {
-            REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
-            REGB3 = REGB4;
-          }
-        }
-        REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
-        if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:6091 */
-          REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6091);
-          }
-          /* ./parser//parser_prod.nit:6092 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6092);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:6093 */
-          REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6093);
-          }
-          CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-        } else {
-          /* ./parser//parser_prod.nit:6095 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6095);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
-        }
-        /* ./parser//parser_prod.nit:6097 */
-        goto label1;
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:6107 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6107);
       }
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
-      REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB0 = REGB2;
+      /* parser/parser_prod.nit:6108 */
+      ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
-      goto label2;
+      /* parser/parser_prod.nit:6110 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6110);
     }
+    /* parser/parser_prod.nit:6112 */
+    goto label1;
   }
-  label2: while(0);
-  /* ./parser//parser_prod.nit:6100 */
+  /* parser/parser_prod.nit:6114 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6100);
+    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6114);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -33337,7 +32922,7 @@ void parser___parser_prod___ABraAssignExpr___replace_child(val_t p0, val_t p1, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6101 */
+    /* parser/parser_prod.nit:6115 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -33352,32 +32937,32 @@ void parser___parser_prod___ABraAssignExpr___replace_child(val_t p0, val_t p1, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6102 */
+      /* parser/parser_prod.nit:6116 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6102);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6116);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6103 */
+      /* parser/parser_prod.nit:6117 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6103);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6117);
       }
-      /* ./parser//parser_prod.nit:6104 */
+      /* parser/parser_prod.nit:6118 */
       ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6106 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6106);
+      /* parser/parser_prod.nit:6120 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6120);
     }
-    /* ./parser//parser_prod.nit:6108 */
+    /* parser/parser_prod.nit:6122 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:6110 */
+  /* parser/parser_prod.nit:6124 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6110);
+    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6124);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -33387,7 +32972,7 @@ void parser___parser_prod___ABraAssignExpr___replace_child(val_t p0, val_t p1, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6111 */
+    /* parser/parser_prod.nit:6125 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -33402,25 +32987,25 @@ void parser___parser_prod___ABraAssignExpr___replace_child(val_t p0, val_t p1, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6112 */
+      /* parser/parser_prod.nit:6126 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6112);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6126);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6113 */
+      /* parser/parser_prod.nit:6127 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6113);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6127);
       }
-      /* ./parser//parser_prod.nit:6114 */
+      /* parser/parser_prod.nit:6128 */
       ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6116 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6116);
+      /* parser/parser_prod.nit:6130 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6130);
     }
-    /* ./parser//parser_prod.nit:6118 */
+    /* parser/parser_prod.nit:6132 */
     goto label1;
   }
   label1: while(0);
@@ -33433,7 +33018,7 @@ void parser___parser_prod___ABraAssignExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6122;
+  fra.me.line = 6136;
   fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -33443,62 +33028,41 @@ void parser___parser_prod___ABraAssignExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6124 */
+  /* parser/parser_prod.nit:6138 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6124);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6138);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:6125 */
+  /* parser/parser_prod.nit:6139 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6125);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6139);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraAssignExpr___visit_all_1));
-  /* ./parser//parser_prod.nit:6128 */
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:6140 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6128);
+    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6140);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:6129 */
+  /* parser/parser_prod.nit:6141 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6129);
+    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6141);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_parser___parser_prod___ABraAssignExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me;} fra;
-    fun_t CREG[1];
-    val_t tmp;
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___visit_all;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 1;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:6126 */
-    CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
 void parser___parser_prod___ABraReassignExpr___empty_init(val_t p0, int* init_table){
   int itpos203 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraReassignExpr].i;
   struct {struct stack_frame_t me;} fra;
@@ -33506,7 +33070,7 @@ void parser___parser_prod___ABraReassignExpr___empty_init(val_t p0, int* init_ta
   if (init_table[itpos203]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6133;
+  fra.me.line = 6145;
   fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -33525,7 +33089,7 @@ void parser___parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t p0, v
   if (init_table[itpos204]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6135;
+  fra.me.line = 6147;
   fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -33541,103 +33105,74 @@ void parser___parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t p0, v
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:6135 */
+  /* parser/parser_prod.nit:6147 */
   fra.me.REG[5] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:6142 */
+  /* parser/parser_prod.nit:6154 */
   CALL_parser___parser_prod___ABraReassignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
-  /* ./parser//parser_prod.nit:6143 */
+  /* parser/parser_prod.nit:6155 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6143);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6155);
   }
   ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:6144 */
+  /* parser/parser_prod.nit:6156 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6144);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6156);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr_1));
-  /* ./parser//parser_prod.nit:6150 */
+  /* parser/parser_prod.nit:6157 */
+  REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6157);
+  }
+  ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[5]) = fra.me.REG[2];
+  /* parser/parser_prod.nit:6158 */
+  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6158);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
+  /* parser/parser_prod.nit:6159 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6150);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6159);
   }
   ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[5]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:6151 */
+  /* parser/parser_prod.nit:6160 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6151);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6160);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:6152 */
+  /* parser/parser_prod.nit:6161 */
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6152);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6161);
   }
   ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:6153 */
+  /* parser/parser_prod.nit:6162 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6153);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6162);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   stack_frame_head = fra.me.prev;
   init_table[itpos204] = 1;
   return;
 }
-  void OC_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-    val_t REGB0;
-    fun_t CREG[1];
-    val_t tmp;
-    /* ./parser//parser_prod.nit:6145 */
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 2;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.REG[1] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:6146 */
-    REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6146);
-    }
-    /* ./parser//parser_prod.nit:6147 */
-    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[5])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6147);
-    }
-    fra.me.REG[1] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(closctx->REG[5]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:6148 */
-    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
 void parser___parser_prod___ABraReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t REGB4;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6156;
+  fra.me.line = 6165;
   fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -33649,11 +33184,11 @@ void parser___parser_prod___ABraReassignExpr___replace_child(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6158 */
+  /* parser/parser_prod.nit:6167 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6158);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6167);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -33663,7 +33198,7 @@ void parser___parser_prod___ABraReassignExpr___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6159 */
+    /* parser/parser_prod.nit:6168 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -33678,135 +33213,82 @@ void parser___parser_prod___ABraReassignExpr___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6160 */
+      /* parser/parser_prod.nit:6169 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6160);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6169);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6161 */
+      /* parser/parser_prod.nit:6170 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6161);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6170);
       }
-      /* ./parser//parser_prod.nit:6162 */
+      /* parser/parser_prod.nit:6171 */
       ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6164 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6164);
+      /* parser/parser_prod.nit:6173 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6173);
     }
-    /* ./parser//parser_prod.nit:6166 */
+    /* parser/parser_prod.nit:6175 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:6168 */
-  REGB0 = TAG_Int(0);
-  REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
+  /* parser/parser_prod.nit:6177 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6168);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6177);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
-  REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
-  while(1) {
-    REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB2)) {
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:6178 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ./../lib/standard//kernel.nit:232 */
-    REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
-    if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:6168 */
-      REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:6169 */
-      REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-      if (UNTAG_Bool(REGB3)) {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6169);
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
       }
-      fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
-      fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
-      REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
-      if (UNTAG_Bool(REGB3)) {
-      } else {
-        REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-        if (UNTAG_Bool(REGB4)) {
-          REGB4 = TAG_Bool(false);
-          REGB3 = REGB4;
-        } else {
-          REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-          REGB3 = REGB4;
-        }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:6179 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6179);
       }
-      if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:6170 */
-        REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-        } else {
-          REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB4)) {
-            REGB4 = TAG_Bool(false);
-            REGB3 = REGB4;
-          } else {
-            REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
-            REGB3 = REGB4;
-          }
-        }
-        REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
-        if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:6171 */
-          REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6171);
-          }
-          /* ./parser//parser_prod.nit:6172 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6172);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:6173 */
-          REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6173);
-          }
-          CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-        } else {
-          /* ./parser//parser_prod.nit:6175 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6175);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
-        }
-        /* ./parser//parser_prod.nit:6177 */
-        goto label1;
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:6180 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6180);
       }
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
-      REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB0 = REGB2;
+      /* parser/parser_prod.nit:6181 */
+      ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
-      goto label2;
+      /* parser/parser_prod.nit:6183 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6183);
     }
+    /* parser/parser_prod.nit:6185 */
+    goto label1;
   }
-  label2: while(0);
-  /* ./parser//parser_prod.nit:6180 */
+  /* parser/parser_prod.nit:6187 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6180);
+    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6187);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -33816,7 +33298,7 @@ void parser___parser_prod___ABraReassignExpr___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6181 */
+    /* parser/parser_prod.nit:6188 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -33831,32 +33313,32 @@ void parser___parser_prod___ABraReassignExpr___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6182 */
+      /* parser/parser_prod.nit:6189 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6182);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6189);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6183 */
+      /* parser/parser_prod.nit:6190 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAssignOp, ID_parser___parser_nodes___AAssignOp)) /*cast AAssignOp*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6183);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6190);
       }
-      /* ./parser//parser_prod.nit:6184 */
+      /* parser/parser_prod.nit:6191 */
       ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6186 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6186);
+      /* parser/parser_prod.nit:6193 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6193);
     }
-    /* ./parser//parser_prod.nit:6188 */
+    /* parser/parser_prod.nit:6195 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:6190 */
+  /* parser/parser_prod.nit:6197 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6190);
+    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6197);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -33866,7 +33348,7 @@ void parser___parser_prod___ABraReassignExpr___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6191 */
+    /* parser/parser_prod.nit:6198 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -33881,25 +33363,25 @@ void parser___parser_prod___ABraReassignExpr___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6192 */
+      /* parser/parser_prod.nit:6199 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6192);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6199);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6193 */
+      /* parser/parser_prod.nit:6200 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6193);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6200);
       }
-      /* ./parser//parser_prod.nit:6194 */
+      /* parser/parser_prod.nit:6201 */
       ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6196 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6196);
+      /* parser/parser_prod.nit:6203 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6203);
     }
-    /* ./parser//parser_prod.nit:6198 */
+    /* parser/parser_prod.nit:6205 */
     goto label1;
   }
   label1: while(0);
@@ -33912,7 +33394,7 @@ void parser___parser_prod___ABraReassignExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6202;
+  fra.me.line = 6209;
   fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -33922,62 +33404,41 @@ void parser___parser_prod___ABraReassignExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6204 */
+  /* parser/parser_prod.nit:6211 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6204);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6211);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:6205 */
+  /* parser/parser_prod.nit:6212 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6205);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6212);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraReassignExpr___visit_all_1));
-  /* ./parser//parser_prod.nit:6208 */
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:6213 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6208);
+    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6213);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:6209 */
+  /* parser/parser_prod.nit:6214 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6209);
+    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6214);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_parser___parser_prod___ABraReassignExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me;} fra;
-    fun_t CREG[1];
-    val_t tmp;
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___visit_all;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 1;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:6206 */
-    CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
 void parser___parser_prod___AClosureCallExpr___empty_init(val_t p0, int* init_table){
   int itpos205 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureCallExpr].i;
   struct {struct stack_frame_t me;} fra;
@@ -33985,7 +33446,7 @@ void parser___parser_prod___AClosureCallExpr___empty_init(val_t p0, int* init_ta
   if (init_table[itpos205]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6213;
+  fra.me.line = 6218;
   fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -34004,7 +33465,7 @@ void parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(val_t p0, v
   if (init_table[itpos206]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6215;
+  fra.me.line = 6220;
   fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -34018,25 +33479,37 @@ void parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(val_t p0, v
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:6215 */
+  /* parser/parser_prod.nit:6220 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:6221 */
+  /* parser/parser_prod.nit:6226 */
   CALL_parser___parser_prod___AClosureCallExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:6222 */
+  /* parser/parser_prod.nit:6227 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6222);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6227);
   }
   ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:6223 */
+  /* parser/parser_prod.nit:6228 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6223);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6228);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr_1));
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr_2));
+  /* parser/parser_prod.nit:6229 */
+  REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6229);
+  }
+  ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[4]) = fra.me.REG[2];
+  /* parser/parser_prod.nit:6230 */
+  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6230);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr_1));
   stack_frame_head = fra.me.prev;
   init_table[itpos206] = 1;
   return;
@@ -34046,7 +33519,7 @@ void parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(val_t p0, v
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:6224 */
+    /* parser/parser_prod.nit:6231 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -34060,59 +33533,21 @@ void parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(val_t p0, v
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:6225 */
-    REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6225);
-    }
-    /* ./parser//parser_prod.nit:6226 */
-    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(closctx->REG[4])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6226);
-    }
-    fra.me.REG[1] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(closctx->REG[4]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:6227 */
-    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-  void OC_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-    val_t REGB0;
-    fun_t CREG[1];
-    val_t tmp;
-    /* ./parser//parser_prod.nit:6229 */
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 2;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.REG[1] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:6230 */
+    /* parser/parser_prod.nit:6232 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6230);
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6232);
     }
-    /* ./parser//parser_prod.nit:6231 */
+    /* parser/parser_prod.nit:6233 */
     REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(closctx->REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6231);
+      nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6233);
     }
     fra.me.REG[1] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(closctx->REG[4]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:6232 */
+    /* parser/parser_prod.nit:6234 */
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
     stack_frame_head = fra.me.prev;
     return;
@@ -34127,7 +33562,7 @@ void parser___parser_prod___AClosureCallExpr___replace_child(val_t p0, val_t p1,
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6236;
+  fra.me.line = 6238;
   fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -34139,11 +33574,11 @@ void parser___parser_prod___AClosureCallExpr___replace_child(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6238 */
+  /* parser/parser_prod.nit:6240 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6238);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6240);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -34153,7 +33588,7 @@ void parser___parser_prod___AClosureCallExpr___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6239 */
+    /* parser/parser_prod.nit:6241 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -34168,131 +33603,78 @@ void parser___parser_prod___AClosureCallExpr___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6240 */
+      /* parser/parser_prod.nit:6242 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6240);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6242);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6241 */
+      /* parser/parser_prod.nit:6243 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6241);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6243);
       }
-      /* ./parser//parser_prod.nit:6242 */
+      /* parser/parser_prod.nit:6244 */
       ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6244 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6244);
+      /* parser/parser_prod.nit:6246 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6246);
     }
-    /* ./parser//parser_prod.nit:6246 */
+    /* parser/parser_prod.nit:6248 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:6248 */
-  REGB0 = TAG_Int(0);
-  REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
+  /* parser/parser_prod.nit:6250 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6248);
+    nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6250);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
-  REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
-  while(1) {
-    REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB2)) {
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:6251 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ./../lib/standard//kernel.nit:232 */
-    REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
-    if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:6248 */
-      REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:6249 */
-      REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-      if (UNTAG_Bool(REGB3)) {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6249);
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
       }
-      fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
-      fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
-      REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
-      if (UNTAG_Bool(REGB3)) {
-      } else {
-        REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-        if (UNTAG_Bool(REGB4)) {
-          REGB4 = TAG_Bool(false);
-          REGB3 = REGB4;
-        } else {
-          REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-          REGB3 = REGB4;
-        }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:6252 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6252);
       }
-      if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:6250 */
-        REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-        } else {
-          REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB4)) {
-            REGB4 = TAG_Bool(false);
-            REGB3 = REGB4;
-          } else {
-            REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
-            REGB3 = REGB4;
-          }
-        }
-        REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
-        if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:6251 */
-          REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6251);
-          }
-          /* ./parser//parser_prod.nit:6252 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6252);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:6253 */
-          REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6253);
-          }
-          CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-        } else {
-          /* ./parser//parser_prod.nit:6255 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6255);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
-        }
-        /* ./parser//parser_prod.nit:6257 */
-        goto label1;
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:6253 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6253);
       }
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
-      REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB0 = REGB2;
+      /* parser/parser_prod.nit:6254 */
+      ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
-      goto label2;
+      /* parser/parser_prod.nit:6256 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6256);
     }
+    /* parser/parser_prod.nit:6258 */
+    goto label1;
   }
-  label2: while(0);
-  /* ./parser//parser_prod.nit:6260 */
+  /* parser/parser_prod.nit:6260 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -34301,20 +33683,20 @@ void parser___parser_prod___AClosureCallExpr___replace_child(val_t p0, val_t p1,
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:6260 */
+      /* parser/parser_prod.nit:6260 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:6261 */
+      /* parser/parser_prod.nit:6261 */
       REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
@@ -34335,7 +33717,7 @@ void parser___parser_prod___AClosureCallExpr___replace_child(val_t p0, val_t p1,
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:6262 */
+        /* parser/parser_prod.nit:6262 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -34350,13 +33732,13 @@ void parser___parser_prod___AClosureCallExpr___replace_child(val_t p0, val_t p1,
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:6263 */
+          /* parser/parser_prod.nit:6263 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
             nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6263);
           }
-          /* ./parser//parser_prod.nit:6264 */
+          /* parser/parser_prod.nit:6264 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
@@ -34364,14 +33746,14 @@ void parser___parser_prod___AClosureCallExpr___replace_child(val_t p0, val_t p1,
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:6265 */
+          /* parser/parser_prod.nit:6265 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
             nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6265);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:6267 */
+          /* parser/parser_prod.nit:6267 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
@@ -34380,21 +33762,21 @@ void parser___parser_prod___AClosureCallExpr___replace_child(val_t p0, val_t p1,
           fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:6269 */
+        /* parser/parser_prod.nit:6269 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
-      goto label3;
+      /* ../lib/standard/kernel.nit:352 */
+      goto label2;
     }
   }
-  label3: while(0);
+  label2: while(0);
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return;
@@ -34415,7 +33797,7 @@ void parser___parser_prod___AClosureCallExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6276 */
+  /* parser/parser_prod.nit:6276 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -34423,22 +33805,22 @@ void parser___parser_prod___AClosureCallExpr___visit_all(val_t p0, val_t p1){
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:6277 */
+  /* parser/parser_prod.nit:6277 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6277);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AClosureCallExpr___visit_all_1));
-  /* ./parser//parser_prod.nit:6280 */
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:6278 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6280);
+    nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6278);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AClosureCallExpr___visit_all_2));
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AClosureCallExpr___visit_all_1));
   stack_frame_head = fra.me.prev;
   return;
 }
@@ -34458,28 +33840,7 @@ void parser___parser_prod___AClosureCallExpr___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:6278 */
-    CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-  void OC_parser___parser_prod___AClosureCallExpr___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me;} fra;
-    fun_t CREG[1];
-    val_t tmp;
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___visit_all;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 1;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:6281 */
+    /* parser/parser_prod.nit:6279 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -34491,7 +33852,7 @@ void parser___parser_prod___AVarExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos207]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6286;
+  fra.me.line = 6284;
   fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -34510,7 +33871,7 @@ void parser___parser_prod___AVarExpr___init_avarexpr(val_t p0, val_t p1, int* in
   if (init_table[itpos208]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6288;
+  fra.me.line = 6286;
   fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___init_avarexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -34520,21 +33881,21 @@ void parser___parser_prod___AVarExpr___init_avarexpr(val_t p0, val_t p1, int* in
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6288 */
+  /* parser/parser_prod.nit:6286 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:6292 */
+  /* parser/parser_prod.nit:6290 */
   CALL_parser___parser_prod___AVarExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:6293 */
+  /* parser/parser_prod.nit:6291 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6293);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6291);
   }
   ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:6294 */
+  /* parser/parser_prod.nit:6292 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6294);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6292);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -34548,7 +33909,7 @@ void parser___parser_prod___AVarExpr___replace_child(val_t p0, val_t p1, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6297;
+  fra.me.line = 6295;
   fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -34560,11 +33921,11 @@ void parser___parser_prod___AVarExpr___replace_child(val_t p0, val_t p1, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6299 */
+  /* parser/parser_prod.nit:6297 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6299);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6297);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -34574,7 +33935,7 @@ void parser___parser_prod___AVarExpr___replace_child(val_t p0, val_t p1, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6300 */
+    /* parser/parser_prod.nit:6298 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -34589,25 +33950,25 @@ void parser___parser_prod___AVarExpr___replace_child(val_t p0, val_t p1, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6301 */
+      /* parser/parser_prod.nit:6299 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6301);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6299);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6302 */
+      /* parser/parser_prod.nit:6300 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6302);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6300);
       }
-      /* ./parser//parser_prod.nit:6303 */
+      /* parser/parser_prod.nit:6301 */
       ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6305 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6305);
+      /* parser/parser_prod.nit:6303 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6303);
     }
-    /* ./parser//parser_prod.nit:6307 */
+    /* parser/parser_prod.nit:6305 */
     goto label1;
   }
   label1: while(0);
@@ -34620,7 +33981,7 @@ void parser___parser_prod___AVarExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6311;
+  fra.me.line = 6309;
   fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -34629,11 +33990,11 @@ void parser___parser_prod___AVarExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6313 */
+  /* parser/parser_prod.nit:6311 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6313);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6311);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -34647,7 +34008,7 @@ void parser___parser_prod___AVarAssignExpr___empty_init(val_t p0, int* init_tabl
   if (init_table[itpos209]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6317;
+  fra.me.line = 6315;
   fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -34666,7 +34027,7 @@ void parser___parser_prod___AVarAssignExpr___init_avarassignexpr(val_t p0, val_t
   if (init_table[itpos210]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6319;
+  fra.me.line = 6317;
   fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___init_avarassignexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -34680,47 +34041,47 @@ void parser___parser_prod___AVarAssignExpr___init_avarassignexpr(val_t p0, val_t
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:6319 */
+  /* parser/parser_prod.nit:6317 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:6325 */
+  /* parser/parser_prod.nit:6323 */
   CALL_parser___parser_prod___AVarAssignExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:6326 */
+  /* parser/parser_prod.nit:6324 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6326);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6324);
   }
   ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:6327 */
+  /* parser/parser_prod.nit:6325 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6327);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6325);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:6328 */
+  /* parser/parser_prod.nit:6326 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6328);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6326);
   }
   ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:6329 */
+  /* parser/parser_prod.nit:6327 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6329);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6327);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:6330 */
+  /* parser/parser_prod.nit:6328 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6330);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6328);
   }
   ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[4]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:6331 */
+  /* parser/parser_prod.nit:6329 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6331);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6329);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   stack_frame_head = fra.me.prev;
@@ -34734,7 +34095,7 @@ void parser___parser_prod___AVarAssignExpr___replace_child(val_t p0, val_t p1, v
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6334;
+  fra.me.line = 6332;
   fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -34746,11 +34107,11 @@ void parser___parser_prod___AVarAssignExpr___replace_child(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6336 */
+  /* parser/parser_prod.nit:6334 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6336);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6334);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -34760,7 +34121,7 @@ void parser___parser_prod___AVarAssignExpr___replace_child(val_t p0, val_t p1, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6337 */
+    /* parser/parser_prod.nit:6335 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -34775,32 +34136,32 @@ void parser___parser_prod___AVarAssignExpr___replace_child(val_t p0, val_t p1, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6338 */
+      /* parser/parser_prod.nit:6336 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6338);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6336);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6339 */
+      /* parser/parser_prod.nit:6337 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6339);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6337);
       }
-      /* ./parser//parser_prod.nit:6340 */
+      /* parser/parser_prod.nit:6338 */
       ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6342 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6342);
+      /* parser/parser_prod.nit:6340 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6340);
     }
-    /* ./parser//parser_prod.nit:6344 */
+    /* parser/parser_prod.nit:6342 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:6346 */
+  /* parser/parser_prod.nit:6344 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6346);
+    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6344);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -34810,7 +34171,7 @@ void parser___parser_prod___AVarAssignExpr___replace_child(val_t p0, val_t p1, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6347 */
+    /* parser/parser_prod.nit:6345 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -34825,32 +34186,32 @@ void parser___parser_prod___AVarAssignExpr___replace_child(val_t p0, val_t p1, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6348 */
+      /* parser/parser_prod.nit:6346 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6348);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6346);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6349 */
+      /* parser/parser_prod.nit:6347 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6349);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6347);
       }
-      /* ./parser//parser_prod.nit:6350 */
+      /* parser/parser_prod.nit:6348 */
       ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6352 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6352);
+      /* parser/parser_prod.nit:6350 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6350);
     }
-    /* ./parser//parser_prod.nit:6354 */
+    /* parser/parser_prod.nit:6352 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:6356 */
+  /* parser/parser_prod.nit:6354 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6356);
+    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6354);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -34860,7 +34221,7 @@ void parser___parser_prod___AVarAssignExpr___replace_child(val_t p0, val_t p1, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6357 */
+    /* parser/parser_prod.nit:6355 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -34875,25 +34236,25 @@ void parser___parser_prod___AVarAssignExpr___replace_child(val_t p0, val_t p1, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6358 */
+      /* parser/parser_prod.nit:6356 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6358);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6356);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6359 */
+      /* parser/parser_prod.nit:6357 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6359);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6357);
       }
-      /* ./parser//parser_prod.nit:6360 */
+      /* parser/parser_prod.nit:6358 */
       ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6362 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6362);
+      /* parser/parser_prod.nit:6360 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6360);
     }
-    /* ./parser//parser_prod.nit:6364 */
+    /* parser/parser_prod.nit:6362 */
     goto label1;
   }
   label1: while(0);
@@ -34906,7 +34267,7 @@ void parser___parser_prod___AVarAssignExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6368;
+  fra.me.line = 6366;
   fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -34916,27 +34277,27 @@ void parser___parser_prod___AVarAssignExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6370 */
+  /* parser/parser_prod.nit:6368 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6370);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6368);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:6371 */
+  /* parser/parser_prod.nit:6369 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6371);
+    nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6369);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:6372 */
+  /* parser/parser_prod.nit:6370 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6372);
+    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6370);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -34950,7 +34311,7 @@ void parser___parser_prod___AVarReassignExpr___empty_init(val_t p0, int* init_ta
   if (init_table[itpos211]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6376;
+  fra.me.line = 6374;
   fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -34969,7 +34330,7 @@ void parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t p0, v
   if (init_table[itpos212]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6378;
+  fra.me.line = 6376;
   fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -34983,47 +34344,47 @@ void parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t p0, v
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:6378 */
+  /* parser/parser_prod.nit:6376 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:6384 */
+  /* parser/parser_prod.nit:6382 */
   CALL_parser___parser_prod___AVarReassignExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:6385 */
+  /* parser/parser_prod.nit:6383 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6385);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6383);
   }
   ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:6386 */
+  /* parser/parser_prod.nit:6384 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6386);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6384);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:6387 */
+  /* parser/parser_prod.nit:6385 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6387);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6385);
   }
   ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:6388 */
+  /* parser/parser_prod.nit:6386 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6388);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6386);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:6389 */
+  /* parser/parser_prod.nit:6387 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6389);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6387);
   }
   ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[4]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:6390 */
+  /* parser/parser_prod.nit:6388 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6390);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6388);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   stack_frame_head = fra.me.prev;
@@ -35037,7 +34398,7 @@ void parser___parser_prod___AVarReassignExpr___replace_child(val_t p0, val_t p1,
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6393;
+  fra.me.line = 6391;
   fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -35049,11 +34410,11 @@ void parser___parser_prod___AVarReassignExpr___replace_child(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6395 */
+  /* parser/parser_prod.nit:6393 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6395);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6393);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -35063,7 +34424,7 @@ void parser___parser_prod___AVarReassignExpr___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6396 */
+    /* parser/parser_prod.nit:6394 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -35078,32 +34439,32 @@ void parser___parser_prod___AVarReassignExpr___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6397 */
+      /* parser/parser_prod.nit:6395 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6397);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6395);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6398 */
+      /* parser/parser_prod.nit:6396 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6398);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6396);
       }
-      /* ./parser//parser_prod.nit:6399 */
+      /* parser/parser_prod.nit:6397 */
       ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6401 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6401);
+      /* parser/parser_prod.nit:6399 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6399);
     }
-    /* ./parser//parser_prod.nit:6403 */
+    /* parser/parser_prod.nit:6401 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:6405 */
+  /* parser/parser_prod.nit:6403 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6405);
+    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6403);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -35113,7 +34474,7 @@ void parser___parser_prod___AVarReassignExpr___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6406 */
+    /* parser/parser_prod.nit:6404 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -35128,32 +34489,32 @@ void parser___parser_prod___AVarReassignExpr___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6407 */
+      /* parser/parser_prod.nit:6405 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6407);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6405);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6408 */
+      /* parser/parser_prod.nit:6406 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAssignOp, ID_parser___parser_nodes___AAssignOp)) /*cast AAssignOp*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6408);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6406);
       }
-      /* ./parser//parser_prod.nit:6409 */
+      /* parser/parser_prod.nit:6407 */
       ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6411 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6411);
+      /* parser/parser_prod.nit:6409 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6409);
     }
-    /* ./parser//parser_prod.nit:6413 */
+    /* parser/parser_prod.nit:6411 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:6415 */
+  /* parser/parser_prod.nit:6413 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6415);
+    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6413);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -35163,7 +34524,7 @@ void parser___parser_prod___AVarReassignExpr___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6416 */
+    /* parser/parser_prod.nit:6414 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -35178,25 +34539,25 @@ void parser___parser_prod___AVarReassignExpr___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6417 */
+      /* parser/parser_prod.nit:6415 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6417);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6415);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6418 */
+      /* parser/parser_prod.nit:6416 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6418);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6416);
       }
-      /* ./parser//parser_prod.nit:6419 */
+      /* parser/parser_prod.nit:6417 */
       ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6421 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6421);
+      /* parser/parser_prod.nit:6419 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6419);
     }
-    /* ./parser//parser_prod.nit:6423 */
+    /* parser/parser_prod.nit:6421 */
     goto label1;
   }
   label1: while(0);
@@ -35209,7 +34570,7 @@ void parser___parser_prod___AVarReassignExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6427;
+  fra.me.line = 6425;
   fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -35219,27 +34580,27 @@ void parser___parser_prod___AVarReassignExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6429 */
+  /* parser/parser_prod.nit:6427 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6429);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6427);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:6430 */
+  /* parser/parser_prod.nit:6428 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6430);
+    nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6428);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:6431 */
+  /* parser/parser_prod.nit:6429 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6431);
+    nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6429);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -35253,7 +34614,7 @@ void parser___parser_prod___ARangeExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos213]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6435;
+  fra.me.line = 6433;
   fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -35272,7 +34633,7 @@ void parser___parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1, val
   if (init_table[itpos214]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6437;
+  fra.me.line = 6435;
   fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___init_arangeexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -35284,34 +34645,34 @@ void parser___parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6437 */
+  /* parser/parser_prod.nit:6435 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:6442 */
+  /* parser/parser_prod.nit:6440 */
   CALL_parser___parser_prod___ARangeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:6443 */
+  /* parser/parser_prod.nit:6441 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6443);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6441);
   }
   ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:6444 */
+  /* parser/parser_prod.nit:6442 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6444);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6442);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:6445 */
+  /* parser/parser_prod.nit:6443 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6445);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6443);
   }
   ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:6446 */
+  /* parser/parser_prod.nit:6444 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6446);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6444);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -35325,7 +34686,7 @@ void parser___parser_prod___ARangeExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6449;
+  fra.me.line = 6447;
   fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -35337,11 +34698,11 @@ void parser___parser_prod___ARangeExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6451 */
+  /* parser/parser_prod.nit:6449 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6451);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6449);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -35351,7 +34712,7 @@ void parser___parser_prod___ARangeExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6452 */
+    /* parser/parser_prod.nit:6450 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -35366,32 +34727,32 @@ void parser___parser_prod___ARangeExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6453 */
+      /* parser/parser_prod.nit:6451 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6453);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6451);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6454 */
+      /* parser/parser_prod.nit:6452 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6454);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6452);
       }
-      /* ./parser//parser_prod.nit:6455 */
+      /* parser/parser_prod.nit:6453 */
       ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6457 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6457);
+      /* parser/parser_prod.nit:6455 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6455);
     }
-    /* ./parser//parser_prod.nit:6459 */
+    /* parser/parser_prod.nit:6457 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:6461 */
+  /* parser/parser_prod.nit:6459 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6461);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6459);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -35401,7 +34762,7 @@ void parser___parser_prod___ARangeExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6462 */
+    /* parser/parser_prod.nit:6460 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -35416,25 +34777,25 @@ void parser___parser_prod___ARangeExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6463 */
+      /* parser/parser_prod.nit:6461 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6463);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6461);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6464 */
+      /* parser/parser_prod.nit:6462 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6464);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6462);
       }
-      /* ./parser//parser_prod.nit:6465 */
+      /* parser/parser_prod.nit:6463 */
       ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6467 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6467);
+      /* parser/parser_prod.nit:6465 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6465);
     }
-    /* ./parser//parser_prod.nit:6469 */
+    /* parser/parser_prod.nit:6467 */
     goto label1;
   }
   label1: while(0);
@@ -35447,7 +34808,7 @@ void parser___parser_prod___ARangeExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6473;
+  fra.me.line = 6471;
   fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -35457,19 +34818,19 @@ void parser___parser_prod___ARangeExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6475 */
+  /* parser/parser_prod.nit:6473 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6475);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6473);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:6476 */
+  /* parser/parser_prod.nit:6474 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6476);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6474);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -35483,7 +34844,7 @@ void parser___parser_prod___ACrangeExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos215]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6480;
+  fra.me.line = 6478;
   fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -35494,56 +34855,86 @@ void parser___parser_prod___ACrangeExpr___empty_init(val_t p0, int* init_table){
   init_table[itpos215] = 1;
   return;
 }
-void parser___parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
+void parser___parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
   int itpos216 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACrangeExpr].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   if (init_table[itpos216]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6482;
+  fra.me.line = 6480;
   fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___init_acrangeexpr;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
+  fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6482 */
-  fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:6487 */
-  CALL_parser___parser_prod___ACrangeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:6488 */
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  /* parser/parser_prod.nit:6480 */
+  fra.me.REG[5] = fra.me.REG[0];
+  /* parser/parser_prod.nit:6487 */
+  CALL_parser___parser_prod___ACrangeExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
+  /* parser/parser_prod.nit:6488 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6488);
   }
-  ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:6489 */
+  ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[5]) = fra.me.REG[1];
+  /* parser/parser_prod.nit:6489 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6489);
   }
-  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:6490 */
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+  /* parser/parser_prod.nit:6490 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6490);
   }
-  ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:6491 */
+  ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[5]) = fra.me.REG[2];
+  /* parser/parser_prod.nit:6491 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6491);
   }
-  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
+  /* parser/parser_prod.nit:6492 */
+  REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6492);
+  }
+  ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[5]) = fra.me.REG[3];
+  /* parser/parser_prod.nit:6493 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6493);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
+  /* parser/parser_prod.nit:6494 */
+  REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6494);
+  }
+  ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[5]) = fra.me.REG[4];
+  /* parser/parser_prod.nit:6495 */
+  REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6495);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   stack_frame_head = fra.me.prev;
   init_table[itpos216] = 1;
   return;
@@ -35555,7 +34946,7 @@ void parser___parser_prod___ACrangeExpr___replace_child(val_t p0, val_t p1, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6494;
+  fra.me.line = 6498;
   fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -35567,11 +34958,61 @@ void parser___parser_prod___ACrangeExpr___replace_child(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6496 */
+  /* parser/parser_prod.nit:6500 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 6500);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:6501 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:6502 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6502);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:6503 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast TObra*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6503);
+      }
+      /* parser/parser_prod.nit:6504 */
+      ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:6506 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6506);
+    }
+    /* parser/parser_prod.nit:6508 */
+    goto label1;
+  }
+  /* parser/parser_prod.nit:6510 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6496);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6510);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -35581,7 +35022,7 @@ void parser___parser_prod___ACrangeExpr___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6497 */
+    /* parser/parser_prod.nit:6511 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -35596,32 +35037,32 @@ void parser___parser_prod___ACrangeExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6498 */
+      /* parser/parser_prod.nit:6512 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6498);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6512);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6499 */
+      /* parser/parser_prod.nit:6513 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6499);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6513);
       }
-      /* ./parser//parser_prod.nit:6500 */
+      /* parser/parser_prod.nit:6514 */
       ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6502 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6502);
+      /* parser/parser_prod.nit:6516 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6516);
     }
-    /* ./parser//parser_prod.nit:6504 */
+    /* parser/parser_prod.nit:6518 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:6506 */
+  /* parser/parser_prod.nit:6520 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6506);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6520);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -35631,7 +35072,7 @@ void parser___parser_prod___ACrangeExpr___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6507 */
+    /* parser/parser_prod.nit:6521 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -35646,25 +35087,75 @@ void parser___parser_prod___ACrangeExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6508 */
+      /* parser/parser_prod.nit:6522 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6508);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6522);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6509 */
+      /* parser/parser_prod.nit:6523 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6509);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6523);
       }
-      /* ./parser//parser_prod.nit:6510 */
+      /* parser/parser_prod.nit:6524 */
       ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6512 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6512);
+      /* parser/parser_prod.nit:6526 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6526);
     }
-    /* ./parser//parser_prod.nit:6514 */
+    /* parser/parser_prod.nit:6528 */
+    goto label1;
+  }
+  /* parser/parser_prod.nit:6530 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 6530);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:6531 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:6532 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6532);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:6533 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCbra, ID_parser___parser_nodes___TCbra)) /*cast TCbra*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6533);
+      }
+      /* parser/parser_prod.nit:6534 */
+      ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:6536 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6536);
+    }
+    /* parser/parser_prod.nit:6538 */
     goto label1;
   }
   label1: while(0);
@@ -35677,7 +35168,7 @@ void parser___parser_prod___ACrangeExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6518;
+  fra.me.line = 6542;
   fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -35687,21 +35178,37 @@ void parser___parser_prod___ACrangeExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6520 */
+  /* parser/parser_prod.nit:6544 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 6544);
+  }
+  fra.me.REG[2] = ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0]);
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:6545 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6520);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6545);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:6521 */
+  /* parser/parser_prod.nit:6546 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6521);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6546);
   }
-  fra.me.REG[0] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
+  fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:6547 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 6547);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
@@ -35713,7 +35220,7 @@ void parser___parser_prod___AOrangeExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos217]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6525;
+  fra.me.line = 6551;
   fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -35724,56 +35231,86 @@ void parser___parser_prod___AOrangeExpr___empty_init(val_t p0, int* init_table){
   init_table[itpos217] = 1;
   return;
 }
-void parser___parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
+void parser___parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
   int itpos218 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrangeExpr].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
   if (init_table[itpos218]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6527;
+  fra.me.line = 6553;
   fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___init_aorangeexpr;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
+  fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6527 */
-  fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:6532 */
-  CALL_parser___parser_prod___AOrangeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:6533 */
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  /* parser/parser_prod.nit:6553 */
+  fra.me.REG[5] = fra.me.REG[0];
+  /* parser/parser_prod.nit:6560 */
+  CALL_parser___parser_prod___AOrangeExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
+  /* parser/parser_prod.nit:6561 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6533);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6561);
   }
-  ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:6534 */
+  ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[5]) = fra.me.REG[1];
+  /* parser/parser_prod.nit:6562 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6534);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6562);
   }
-  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:6535 */
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+  /* parser/parser_prod.nit:6563 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6535);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6563);
   }
-  ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:6536 */
+  ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[5]) = fra.me.REG[2];
+  /* parser/parser_prod.nit:6564 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6536);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6564);
   }
-  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
+  /* parser/parser_prod.nit:6565 */
+  REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6565);
+  }
+  ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[5]) = fra.me.REG[3];
+  /* parser/parser_prod.nit:6566 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6566);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
+  /* parser/parser_prod.nit:6567 */
+  REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6567);
+  }
+  ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[5]) = fra.me.REG[4];
+  /* parser/parser_prod.nit:6568 */
+  REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6568);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   stack_frame_head = fra.me.prev;
   init_table[itpos218] = 1;
   return;
@@ -35785,7 +35322,7 @@ void parser___parser_prod___AOrangeExpr___replace_child(val_t p0, val_t p1, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6539;
+  fra.me.line = 6571;
   fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -35797,11 +35334,61 @@ void parser___parser_prod___AOrangeExpr___replace_child(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6541 */
+  /* parser/parser_prod.nit:6573 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 6573);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:6574 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:6575 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6575);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:6576 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast TObra*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6576);
+      }
+      /* parser/parser_prod.nit:6577 */
+      ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:6579 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6579);
+    }
+    /* parser/parser_prod.nit:6581 */
+    goto label1;
+  }
+  /* parser/parser_prod.nit:6583 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6541);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6583);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -35811,7 +35398,7 @@ void parser___parser_prod___AOrangeExpr___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6542 */
+    /* parser/parser_prod.nit:6584 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -35826,32 +35413,32 @@ void parser___parser_prod___AOrangeExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6543 */
+      /* parser/parser_prod.nit:6585 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6543);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6585);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6544 */
+      /* parser/parser_prod.nit:6586 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6544);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6586);
       }
-      /* ./parser//parser_prod.nit:6545 */
+      /* parser/parser_prod.nit:6587 */
       ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6547 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6547);
+      /* parser/parser_prod.nit:6589 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6589);
     }
-    /* ./parser//parser_prod.nit:6549 */
+    /* parser/parser_prod.nit:6591 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:6551 */
+  /* parser/parser_prod.nit:6593 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6551);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6593);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -35861,7 +35448,7 @@ void parser___parser_prod___AOrangeExpr___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6552 */
+    /* parser/parser_prod.nit:6594 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -35876,25 +35463,75 @@ void parser___parser_prod___AOrangeExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6553 */
+      /* parser/parser_prod.nit:6595 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6553);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6595);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6554 */
+      /* parser/parser_prod.nit:6596 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6554);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6596);
       }
-      /* ./parser//parser_prod.nit:6555 */
+      /* parser/parser_prod.nit:6597 */
       ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6557 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6557);
+      /* parser/parser_prod.nit:6599 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6599);
     }
-    /* ./parser//parser_prod.nit:6559 */
+    /* parser/parser_prod.nit:6601 */
+    goto label1;
+  }
+  /* parser/parser_prod.nit:6603 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 6603);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:6604 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:6605 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6605);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:6606 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast TObra*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6606);
+      }
+      /* parser/parser_prod.nit:6607 */
+      ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:6609 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6609);
+    }
+    /* parser/parser_prod.nit:6611 */
     goto label1;
   }
   label1: while(0);
@@ -35907,7 +35544,7 @@ void parser___parser_prod___AOrangeExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6563;
+  fra.me.line = 6615;
   fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -35917,21 +35554,37 @@ void parser___parser_prod___AOrangeExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6565 */
+  /* parser/parser_prod.nit:6617 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 6617);
+  }
+  fra.me.REG[2] = ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0]);
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:6618 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6565);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6618);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:6566 */
+  /* parser/parser_prod.nit:6619 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6566);
+    nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6619);
   }
-  fra.me.REG[0] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
+  fra.me.REG[2] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:6620 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 6620);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
@@ -35943,7 +35596,7 @@ void parser___parser_prod___AArrayExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos219]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6570;
+  fra.me.line = 6624;
   fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -35956,76 +35609,51 @@ void parser___parser_prod___AArrayExpr___empty_init(val_t p0, int* init_table){
 }
 void parser___parser_prod___AArrayExpr___init_aarrayexpr(val_t p0, val_t p1, int* init_table){
   int itpos220 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AArrayExpr].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
   val_t tmp;
   if (init_table[itpos220]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6572;
+  fra.me.line = 6626;
   fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___init_aarrayexpr;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6576 */
-  CALL_parser___parser_prod___AArrayExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AArrayExpr___init_aarrayexpr_1));
+  /* parser/parser_prod.nit:6626 */
+  fra.me.REG[2] = fra.me.REG[0];
+  /* parser/parser_prod.nit:6630 */
+  CALL_parser___parser_prod___AArrayExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
+  /* parser/parser_prod.nit:6631 */
+  REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6631);
+  }
+  ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[2]) = fra.me.REG[1];
+  /* parser/parser_prod.nit:6632 */
+  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6632);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   init_table[itpos220] = 1;
   return;
 }
-  void OC_parser___parser_prod___AArrayExpr___init_aarrayexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-    val_t REGB0;
-    fun_t CREG[1];
-    val_t tmp;
-    /* ./parser//parser_prod.nit:6577 */
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___init_aarrayexpr;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 2;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.REG[1] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:6578 */
-    REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6578);
-    }
-    /* ./parser//parser_prod.nit:6579 */
-    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(closctx->REG[0])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6579);
-    }
-    fra.me.REG[1] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(closctx->REG[0]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:6580 */
-    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
 void parser___parser_prod___AArrayExpr___replace_child(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t REGB4;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6584;
+  fra.me.line = 6635;
   fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -36037,109 +35665,56 @@ void parser___parser_prod___AArrayExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6586 */
-  REGB0 = TAG_Int(0);
-  REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
+  /* parser/parser_prod.nit:6637 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6586);
+    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6637);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
-  REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
-  while(1) {
-    REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB2)) {
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:6638 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ./../lib/standard//kernel.nit:232 */
-    REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
-    if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:6586 */
-      REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:6587 */
-      REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
-      if (UNTAG_Bool(REGB3)) {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6587);
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
       }
-      fra.me.REG[3] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
-      fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
-      REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
-      if (UNTAG_Bool(REGB3)) {
-      } else {
-        REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-        if (UNTAG_Bool(REGB4)) {
-          REGB4 = TAG_Bool(false);
-          REGB3 = REGB4;
-        } else {
-          REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-          REGB3 = REGB4;
-        }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:6639 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6639);
       }
-      if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:6588 */
-        REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-        } else {
-          REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB4)) {
-            REGB4 = TAG_Bool(false);
-            REGB3 = REGB4;
-          } else {
-            REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
-            REGB3 = REGB4;
-          }
-        }
-        REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
-        if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:6589 */
-          REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6589);
-          }
-          /* ./parser//parser_prod.nit:6590 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6590);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:6591 */
-          REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6591);
-          }
-          CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-        } else {
-          /* ./parser//parser_prod.nit:6593 */
-          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6593);
-          }
-          fra.me.REG[3] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
-          CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
-        }
-        /* ./parser//parser_prod.nit:6595 */
-        goto label1;
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:6640 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6640);
       }
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
-      REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
-      REGB0 = REGB2;
+      /* parser/parser_prod.nit:6641 */
+      ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
-      goto label2;
+      /* parser/parser_prod.nit:6643 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6643);
     }
+    /* parser/parser_prod.nit:6645 */
+    goto label1;
   }
-  label2: while(0);
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return;
@@ -36150,7 +35725,7 @@ void parser___parser_prod___AArrayExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6600;
+  fra.me.line = 6649;
   fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -36159,38 +35734,17 @@ void parser___parser_prod___AArrayExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6602 */
+  /* parser/parser_prod.nit:6651 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6602);
+    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6651);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AArrayExpr___visit_all_1));
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
 }
-  void OC_parser___parser_prod___AArrayExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
-    struct {struct stack_frame_t me;} fra;
-    fun_t CREG[1];
-    val_t tmp;
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_parser___parser_prod;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___visit_all;
-    fra.me.has_broke = 0;
-    fra.me.REG_size = 1;
-    fra.me.nitni_local_ref_head = NULL;
-    fra.me.REG[0] = NIT_NULL;
-    fra.me.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:6603 */
-    CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
 void parser___parser_prod___ASelfExpr___empty_init(val_t p0, int* init_table){
   int itpos221 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASelfExpr].i;
   struct {struct stack_frame_t me;} fra;
@@ -36198,7 +35752,7 @@ void parser___parser_prod___ASelfExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos221]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6608;
+  fra.me.line = 6655;
   fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -36217,7 +35771,7 @@ void parser___parser_prod___ASelfExpr___init_aselfexpr(val_t p0, val_t p1, int*
   if (init_table[itpos222]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6610;
+  fra.me.line = 6657;
   fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___init_aselfexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -36227,21 +35781,21 @@ void parser___parser_prod___ASelfExpr___init_aselfexpr(val_t p0, val_t p1, int*
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6610 */
+  /* parser/parser_prod.nit:6657 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:6614 */
+  /* parser/parser_prod.nit:6661 */
   CALL_parser___parser_prod___ASelfExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:6615 */
+  /* parser/parser_prod.nit:6662 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6615);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6662);
   }
   ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:6616 */
+  /* parser/parser_prod.nit:6663 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6616);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6663);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -36255,7 +35809,7 @@ void parser___parser_prod___ASelfExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6619;
+  fra.me.line = 6666;
   fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -36267,7 +35821,7 @@ void parser___parser_prod___ASelfExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6621 */
+  /* parser/parser_prod.nit:6668 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -36282,7 +35836,7 @@ void parser___parser_prod___ASelfExpr___replace_child(val_t p0, val_t p1, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6622 */
+    /* parser/parser_prod.nit:6669 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -36297,25 +35851,25 @@ void parser___parser_prod___ASelfExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6623 */
+      /* parser/parser_prod.nit:6670 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6623);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6670);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6624 */
+      /* parser/parser_prod.nit:6671 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwself, ID_parser___parser_nodes___TKwself)) /*cast TKwself*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6624);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6671);
       }
-      /* ./parser//parser_prod.nit:6625 */
+      /* parser/parser_prod.nit:6672 */
       ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6627 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6627);
+      /* parser/parser_prod.nit:6674 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6674);
     }
-    /* ./parser//parser_prod.nit:6629 */
+    /* parser/parser_prod.nit:6676 */
     goto label1;
   }
   label1: while(0);
@@ -36327,7 +35881,7 @@ void parser___parser_prod___ASelfExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6633;
+  fra.me.line = 6680;
   fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -36336,7 +35890,7 @@ void parser___parser_prod___ASelfExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6635 */
+  /* parser/parser_prod.nit:6682 */
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -36349,7 +35903,7 @@ void parser___parser_prod___AImplicitSelfExpr___empty_init(val_t p0, int* init_t
   if (init_table[itpos223]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6639;
+  fra.me.line = 6686;
   fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -36367,14 +35921,14 @@ void parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(val_t p0,
   if (init_table[itpos224]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6641;
+  fra.me.line = 6688;
   fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:6643 */
+  /* parser/parser_prod.nit:6690 */
   CALL_parser___parser_prod___AImplicitSelfExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos224] = 1;
@@ -36385,7 +35939,7 @@ void parser___parser_prod___AImplicitSelfExpr___replace_child(val_t p0, val_t p1
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6646;
+  fra.me.line = 6693;
   fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -36404,7 +35958,7 @@ void parser___parser_prod___AImplicitSelfExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6650;
+  fra.me.line = 6697;
   fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -36423,7 +35977,7 @@ void parser___parser_prod___ATrueExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos225]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6655;
+  fra.me.line = 6702;
   fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -36442,7 +35996,7 @@ void parser___parser_prod___ATrueExpr___init_atrueexpr(val_t p0, val_t p1, int*
   if (init_table[itpos226]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6657;
+  fra.me.line = 6704;
   fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___init_atrueexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -36452,21 +36006,21 @@ void parser___parser_prod___ATrueExpr___init_atrueexpr(val_t p0, val_t p1, int*
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6657 */
+  /* parser/parser_prod.nit:6704 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:6661 */
+  /* parser/parser_prod.nit:6708 */
   CALL_parser___parser_prod___ATrueExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:6662 */
+  /* parser/parser_prod.nit:6709 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6662);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6709);
   }
   ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:6663 */
+  /* parser/parser_prod.nit:6710 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6663);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6710);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -36480,7 +36034,7 @@ void parser___parser_prod___ATrueExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6666;
+  fra.me.line = 6713;
   fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -36492,11 +36046,11 @@ void parser___parser_prod___ATrueExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6668 */
+  /* parser/parser_prod.nit:6715 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser___parser_prod, 6668);
+    nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser___parser_prod, 6715);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -36506,7 +36060,7 @@ void parser___parser_prod___ATrueExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6669 */
+    /* parser/parser_prod.nit:6716 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -36521,25 +36075,25 @@ void parser___parser_prod___ATrueExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6670 */
+      /* parser/parser_prod.nit:6717 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6670);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6717);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6671 */
+      /* parser/parser_prod.nit:6718 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwtrue, ID_parser___parser_nodes___TKwtrue)) /*cast TKwtrue*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6671);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6718);
       }
-      /* ./parser//parser_prod.nit:6672 */
+      /* parser/parser_prod.nit:6719 */
       ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6674 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6674);
+      /* parser/parser_prod.nit:6721 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6721);
     }
-    /* ./parser//parser_prod.nit:6676 */
+    /* parser/parser_prod.nit:6723 */
     goto label1;
   }
   label1: while(0);
@@ -36552,7 +36106,7 @@ void parser___parser_prod___ATrueExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6680;
+  fra.me.line = 6727;
   fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -36561,11 +36115,11 @@ void parser___parser_prod___ATrueExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6682 */
+  /* parser/parser_prod.nit:6729 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser___parser_prod, 6682);
+    nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser___parser_prod, 6729);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -36579,7 +36133,7 @@ void parser___parser_prod___AFalseExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos227]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6686;
+  fra.me.line = 6733;
   fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -36598,7 +36152,7 @@ void parser___parser_prod___AFalseExpr___init_afalseexpr(val_t p0, val_t p1, int
   if (init_table[itpos228]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6688;
+  fra.me.line = 6735;
   fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___init_afalseexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -36608,21 +36162,21 @@ void parser___parser_prod___AFalseExpr___init_afalseexpr(val_t p0, val_t p1, int
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6688 */
+  /* parser/parser_prod.nit:6735 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:6692 */
+  /* parser/parser_prod.nit:6739 */
   CALL_parser___parser_prod___AFalseExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:6693 */
+  /* parser/parser_prod.nit:6740 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6693);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6740);
   }
   ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:6694 */
+  /* parser/parser_prod.nit:6741 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6694);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6741);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -36636,7 +36190,7 @@ void parser___parser_prod___AFalseExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6697;
+  fra.me.line = 6744;
   fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -36648,11 +36202,11 @@ void parser___parser_prod___AFalseExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6699 */
+  /* parser/parser_prod.nit:6746 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser___parser_prod, 6699);
+    nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser___parser_prod, 6746);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -36662,7 +36216,7 @@ void parser___parser_prod___AFalseExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6700 */
+    /* parser/parser_prod.nit:6747 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -36677,25 +36231,25 @@ void parser___parser_prod___AFalseExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6701 */
+      /* parser/parser_prod.nit:6748 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6701);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6748);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6702 */
+      /* parser/parser_prod.nit:6749 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwfalse, ID_parser___parser_nodes___TKwfalse)) /*cast TKwfalse*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6702);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6749);
       }
-      /* ./parser//parser_prod.nit:6703 */
+      /* parser/parser_prod.nit:6750 */
       ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6705 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6705);
+      /* parser/parser_prod.nit:6752 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6752);
     }
-    /* ./parser//parser_prod.nit:6707 */
+    /* parser/parser_prod.nit:6754 */
     goto label1;
   }
   label1: while(0);
@@ -36708,7 +36262,7 @@ void parser___parser_prod___AFalseExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6711;
+  fra.me.line = 6758;
   fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -36717,11 +36271,11 @@ void parser___parser_prod___AFalseExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6713 */
+  /* parser/parser_prod.nit:6760 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser___parser_prod, 6713);
+    nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser___parser_prod, 6760);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -36735,7 +36289,7 @@ void parser___parser_prod___ANullExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos229]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6717;
+  fra.me.line = 6764;
   fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -36754,7 +36308,7 @@ void parser___parser_prod___ANullExpr___init_anullexpr(val_t p0, val_t p1, int*
   if (init_table[itpos230]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6719;
+  fra.me.line = 6766;
   fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___init_anullexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -36764,21 +36318,21 @@ void parser___parser_prod___ANullExpr___init_anullexpr(val_t p0, val_t p1, int*
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6719 */
+  /* parser/parser_prod.nit:6766 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:6723 */
+  /* parser/parser_prod.nit:6770 */
   CALL_parser___parser_prod___ANullExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:6724 */
+  /* parser/parser_prod.nit:6771 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6724);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6771);
   }
   ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:6725 */
+  /* parser/parser_prod.nit:6772 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6725);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6772);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -36792,7 +36346,7 @@ void parser___parser_prod___ANullExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6728;
+  fra.me.line = 6775;
   fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -36804,11 +36358,11 @@ void parser___parser_prod___ANullExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6730 */
+  /* parser/parser_prod.nit:6777 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 6730);
+    nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 6777);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -36818,7 +36372,7 @@ void parser___parser_prod___ANullExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6731 */
+    /* parser/parser_prod.nit:6778 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -36833,25 +36387,25 @@ void parser___parser_prod___ANullExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6732 */
+      /* parser/parser_prod.nit:6779 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6732);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6779);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6733 */
+      /* parser/parser_prod.nit:6780 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnull, ID_parser___parser_nodes___TKwnull)) /*cast TKwnull*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6733);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6780);
       }
-      /* ./parser//parser_prod.nit:6734 */
+      /* parser/parser_prod.nit:6781 */
       ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6736 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6736);
+      /* parser/parser_prod.nit:6783 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6783);
     }
-    /* ./parser//parser_prod.nit:6738 */
+    /* parser/parser_prod.nit:6785 */
     goto label1;
   }
   label1: while(0);
@@ -36864,7 +36418,7 @@ void parser___parser_prod___ANullExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6742;
+  fra.me.line = 6789;
   fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -36873,11 +36427,11 @@ void parser___parser_prod___ANullExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6744 */
+  /* parser/parser_prod.nit:6791 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 6744);
+    nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 6791);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -36891,7 +36445,7 @@ void parser___parser_prod___AIntExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos231]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6748;
+  fra.me.line = 6795;
   fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -36910,7 +36464,7 @@ void parser___parser_prod___AIntExpr___init_aintexpr(val_t p0, val_t p1, int* in
   if (init_table[itpos232]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6750;
+  fra.me.line = 6797;
   fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___init_aintexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -36920,21 +36474,21 @@ void parser___parser_prod___AIntExpr___init_aintexpr(val_t p0, val_t p1, int* in
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6750 */
+  /* parser/parser_prod.nit:6797 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:6754 */
+  /* parser/parser_prod.nit:6801 */
   CALL_parser___parser_prod___AIntExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:6755 */
+  /* parser/parser_prod.nit:6802 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6755);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6802);
   }
   ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:6756 */
+  /* parser/parser_prod.nit:6803 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6756);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6803);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -36948,7 +36502,7 @@ void parser___parser_prod___AIntExpr___replace_child(val_t p0, val_t p1, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6759;
+  fra.me.line = 6806;
   fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -36960,11 +36514,11 @@ void parser___parser_prod___AIntExpr___replace_child(val_t p0, val_t p1, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6761 */
+  /* parser/parser_prod.nit:6808 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser___parser_prod, 6761);
+    nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser___parser_prod, 6808);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -36974,7 +36528,7 @@ void parser___parser_prod___AIntExpr___replace_child(val_t p0, val_t p1, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6762 */
+    /* parser/parser_prod.nit:6809 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -36989,25 +36543,25 @@ void parser___parser_prod___AIntExpr___replace_child(val_t p0, val_t p1, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6763 */
+      /* parser/parser_prod.nit:6810 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6763);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6810);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6764 */
+      /* parser/parser_prod.nit:6811 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TNumber, ID_parser___parser_nodes___TNumber)) /*cast TNumber*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6764);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6811);
       }
-      /* ./parser//parser_prod.nit:6765 */
+      /* parser/parser_prod.nit:6812 */
       ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6767 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6767);
+      /* parser/parser_prod.nit:6814 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6814);
     }
-    /* ./parser//parser_prod.nit:6769 */
+    /* parser/parser_prod.nit:6816 */
     goto label1;
   }
   label1: while(0);
@@ -37020,7 +36574,7 @@ void parser___parser_prod___AIntExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6773;
+  fra.me.line = 6820;
   fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -37029,11 +36583,11 @@ void parser___parser_prod___AIntExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6775 */
+  /* parser/parser_prod.nit:6822 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser___parser_prod, 6775);
+    nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser___parser_prod, 6822);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -37047,7 +36601,7 @@ void parser___parser_prod___AFloatExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos233]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6779;
+  fra.me.line = 6826;
   fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -37066,7 +36620,7 @@ void parser___parser_prod___AFloatExpr___init_afloatexpr(val_t p0, val_t p1, int
   if (init_table[itpos234]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6781;
+  fra.me.line = 6828;
   fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___init_afloatexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -37076,21 +36630,21 @@ void parser___parser_prod___AFloatExpr___init_afloatexpr(val_t p0, val_t p1, int
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6781 */
+  /* parser/parser_prod.nit:6828 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:6785 */
+  /* parser/parser_prod.nit:6832 */
   CALL_parser___parser_prod___AFloatExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:6786 */
+  /* parser/parser_prod.nit:6833 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6786);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6833);
   }
   ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:6787 */
+  /* parser/parser_prod.nit:6834 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6787);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6834);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -37104,7 +36658,7 @@ void parser___parser_prod___AFloatExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6790;
+  fra.me.line = 6837;
   fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -37116,11 +36670,11 @@ void parser___parser_prod___AFloatExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6792 */
+  /* parser/parser_prod.nit:6839 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser___parser_prod, 6792);
+    nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser___parser_prod, 6839);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -37130,7 +36684,7 @@ void parser___parser_prod___AFloatExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6793 */
+    /* parser/parser_prod.nit:6840 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -37145,25 +36699,25 @@ void parser___parser_prod___AFloatExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6794 */
+      /* parser/parser_prod.nit:6841 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6794);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6841);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6795 */
+      /* parser/parser_prod.nit:6842 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TFloat, ID_parser___parser_nodes___TFloat)) /*cast TFloat*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6795);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6842);
       }
-      /* ./parser//parser_prod.nit:6796 */
+      /* parser/parser_prod.nit:6843 */
       ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6798 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6798);
+      /* parser/parser_prod.nit:6845 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6845);
     }
-    /* ./parser//parser_prod.nit:6800 */
+    /* parser/parser_prod.nit:6847 */
     goto label1;
   }
   label1: while(0);
@@ -37176,7 +36730,7 @@ void parser___parser_prod___AFloatExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6804;
+  fra.me.line = 6851;
   fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -37185,11 +36739,11 @@ void parser___parser_prod___AFloatExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6806 */
+  /* parser/parser_prod.nit:6853 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser___parser_prod, 6806);
+    nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser___parser_prod, 6853);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -37203,7 +36757,7 @@ void parser___parser_prod___ACharExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos235]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6810;
+  fra.me.line = 6857;
   fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -37222,7 +36776,7 @@ void parser___parser_prod___ACharExpr___init_acharexpr(val_t p0, val_t p1, int*
   if (init_table[itpos236]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6812;
+  fra.me.line = 6859;
   fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___init_acharexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -37232,21 +36786,21 @@ void parser___parser_prod___ACharExpr___init_acharexpr(val_t p0, val_t p1, int*
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6812 */
+  /* parser/parser_prod.nit:6859 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:6816 */
+  /* parser/parser_prod.nit:6863 */
   CALL_parser___parser_prod___ACharExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:6817 */
+  /* parser/parser_prod.nit:6864 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6817);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6864);
   }
   ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:6818 */
+  /* parser/parser_prod.nit:6865 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6818);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6865);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -37260,7 +36814,7 @@ void parser___parser_prod___ACharExpr___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6821;
+  fra.me.line = 6868;
   fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -37272,11 +36826,11 @@ void parser___parser_prod___ACharExpr___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6823 */
+  /* parser/parser_prod.nit:6870 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser___parser_prod, 6823);
+    nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser___parser_prod, 6870);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -37286,7 +36840,7 @@ void parser___parser_prod___ACharExpr___replace_child(val_t p0, val_t p1, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6824 */
+    /* parser/parser_prod.nit:6871 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -37301,25 +36855,25 @@ void parser___parser_prod___ACharExpr___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6825 */
+      /* parser/parser_prod.nit:6872 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6825);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6872);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6826 */
+      /* parser/parser_prod.nit:6873 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TChar, ID_parser___parser_nodes___TChar)) /*cast TChar*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6826);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6873);
       }
-      /* ./parser//parser_prod.nit:6827 */
+      /* parser/parser_prod.nit:6874 */
       ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6829 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6829);
+      /* parser/parser_prod.nit:6876 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6876);
     }
-    /* ./parser//parser_prod.nit:6831 */
+    /* parser/parser_prod.nit:6878 */
     goto label1;
   }
   label1: while(0);
@@ -37332,7 +36886,7 @@ void parser___parser_prod___ACharExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6835;
+  fra.me.line = 6882;
   fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -37341,11 +36895,11 @@ void parser___parser_prod___ACharExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6837 */
+  /* parser/parser_prod.nit:6884 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser___parser_prod, 6837);
+    nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser___parser_prod, 6884);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -37359,7 +36913,7 @@ void parser___parser_prod___AStringExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos237]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6841;
+  fra.me.line = 6888;
   fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -37378,7 +36932,7 @@ void parser___parser_prod___AStringExpr___init_astringexpr(val_t p0, val_t p1, i
   if (init_table[itpos238]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6843;
+  fra.me.line = 6890;
   fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___init_astringexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -37388,21 +36942,21 @@ void parser___parser_prod___AStringExpr___init_astringexpr(val_t p0, val_t p1, i
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6843 */
+  /* parser/parser_prod.nit:6890 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:6847 */
+  /* parser/parser_prod.nit:6894 */
   CALL_parser___parser_prod___AStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:6848 */
+  /* parser/parser_prod.nit:6895 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6848);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6895);
   }
   ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:6849 */
+  /* parser/parser_prod.nit:6896 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6849);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6896);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -37416,7 +36970,7 @@ void parser___parser_prod___AStringExpr___replace_child(val_t p0, val_t p1, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6852;
+  fra.me.line = 6899;
   fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -37428,11 +36982,11 @@ void parser___parser_prod___AStringExpr___replace_child(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6854 */
+  /* parser/parser_prod.nit:6901 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6854);
+    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6901);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -37442,7 +36996,7 @@ void parser___parser_prod___AStringExpr___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6855 */
+    /* parser/parser_prod.nit:6902 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -37457,25 +37011,25 @@ void parser___parser_prod___AStringExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6856 */
+      /* parser/parser_prod.nit:6903 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6856);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6903);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6857 */
+      /* parser/parser_prod.nit:6904 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast TString*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6857);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6904);
       }
-      /* ./parser//parser_prod.nit:6858 */
+      /* parser/parser_prod.nit:6905 */
       ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6860 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6860);
+      /* parser/parser_prod.nit:6907 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6907);
     }
-    /* ./parser//parser_prod.nit:6862 */
+    /* parser/parser_prod.nit:6909 */
     goto label1;
   }
   label1: while(0);
@@ -37488,7 +37042,7 @@ void parser___parser_prod___AStringExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6866;
+  fra.me.line = 6913;
   fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -37497,11 +37051,11 @@ void parser___parser_prod___AStringExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6868 */
+  /* parser/parser_prod.nit:6915 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6868);
+    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6915);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AStringExpr____n_string(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -37515,7 +37069,7 @@ void parser___parser_prod___AStartStringExpr___empty_init(val_t p0, int* init_ta
   if (init_table[itpos239]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6872;
+  fra.me.line = 6919;
   fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -37534,7 +37088,7 @@ void parser___parser_prod___AStartStringExpr___init_astartstringexpr(val_t p0, v
   if (init_table[itpos240]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6874;
+  fra.me.line = 6921;
   fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___init_astartstringexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -37544,21 +37098,21 @@ void parser___parser_prod___AStartStringExpr___init_astartstringexpr(val_t p0, v
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6874 */
+  /* parser/parser_prod.nit:6921 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:6878 */
+  /* parser/parser_prod.nit:6925 */
   CALL_parser___parser_prod___AStartStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:6879 */
+  /* parser/parser_prod.nit:6926 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6879);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6926);
   }
   ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:6880 */
+  /* parser/parser_prod.nit:6927 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6880);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6927);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -37572,7 +37126,7 @@ void parser___parser_prod___AStartStringExpr___replace_child(val_t p0, val_t p1,
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6883;
+  fra.me.line = 6930;
   fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -37584,11 +37138,11 @@ void parser___parser_prod___AStartStringExpr___replace_child(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6885 */
+  /* parser/parser_prod.nit:6932 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6885);
+    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6932);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -37598,7 +37152,7 @@ void parser___parser_prod___AStartStringExpr___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6886 */
+    /* parser/parser_prod.nit:6933 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -37613,25 +37167,25 @@ void parser___parser_prod___AStartStringExpr___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6887 */
+      /* parser/parser_prod.nit:6934 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6887);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6934);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6888 */
+      /* parser/parser_prod.nit:6935 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TStartString, ID_parser___parser_nodes___TStartString)) /*cast TStartString*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6888);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6935);
       }
-      /* ./parser//parser_prod.nit:6889 */
+      /* parser/parser_prod.nit:6936 */
       ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6891 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6891);
+      /* parser/parser_prod.nit:6938 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6938);
     }
-    /* ./parser//parser_prod.nit:6893 */
+    /* parser/parser_prod.nit:6940 */
     goto label1;
   }
   label1: while(0);
@@ -37644,7 +37198,7 @@ void parser___parser_prod___AStartStringExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6897;
+  fra.me.line = 6944;
   fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -37653,11 +37207,11 @@ void parser___parser_prod___AStartStringExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6899 */
+  /* parser/parser_prod.nit:6946 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6899);
+    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6946);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -37671,7 +37225,7 @@ void parser___parser_prod___AMidStringExpr___empty_init(val_t p0, int* init_tabl
   if (init_table[itpos241]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6903;
+  fra.me.line = 6950;
   fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -37690,7 +37244,7 @@ void parser___parser_prod___AMidStringExpr___init_amidstringexpr(val_t p0, val_t
   if (init_table[itpos242]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6905;
+  fra.me.line = 6952;
   fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___init_amidstringexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -37700,21 +37254,21 @@ void parser___parser_prod___AMidStringExpr___init_amidstringexpr(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6905 */
+  /* parser/parser_prod.nit:6952 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:6909 */
+  /* parser/parser_prod.nit:6956 */
   CALL_parser___parser_prod___AMidStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:6910 */
+  /* parser/parser_prod.nit:6957 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6910);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6957);
   }
   ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:6911 */
+  /* parser/parser_prod.nit:6958 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6911);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6958);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -37728,7 +37282,7 @@ void parser___parser_prod___AMidStringExpr___replace_child(val_t p0, val_t p1, v
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6914;
+  fra.me.line = 6961;
   fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -37740,11 +37294,11 @@ void parser___parser_prod___AMidStringExpr___replace_child(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6916 */
+  /* parser/parser_prod.nit:6963 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6916);
+    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6963);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -37754,7 +37308,7 @@ void parser___parser_prod___AMidStringExpr___replace_child(val_t p0, val_t p1, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6917 */
+    /* parser/parser_prod.nit:6964 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -37769,25 +37323,25 @@ void parser___parser_prod___AMidStringExpr___replace_child(val_t p0, val_t p1, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6918 */
+      /* parser/parser_prod.nit:6965 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6918);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6965);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6919 */
+      /* parser/parser_prod.nit:6966 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TMidString, ID_parser___parser_nodes___TMidString)) /*cast TMidString*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6919);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6966);
       }
-      /* ./parser//parser_prod.nit:6920 */
+      /* parser/parser_prod.nit:6967 */
       ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6922 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6922);
+      /* parser/parser_prod.nit:6969 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6969);
     }
-    /* ./parser//parser_prod.nit:6924 */
+    /* parser/parser_prod.nit:6971 */
     goto label1;
   }
   label1: while(0);
@@ -37800,7 +37354,7 @@ void parser___parser_prod___AMidStringExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6928;
+  fra.me.line = 6975;
   fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -37809,11 +37363,11 @@ void parser___parser_prod___AMidStringExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6930 */
+  /* parser/parser_prod.nit:6977 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6930);
+    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6977);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -37827,7 +37381,7 @@ void parser___parser_prod___AEndStringExpr___empty_init(val_t p0, int* init_tabl
   if (init_table[itpos243]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6934;
+  fra.me.line = 6981;
   fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -37846,7 +37400,7 @@ void parser___parser_prod___AEndStringExpr___init_aendstringexpr(val_t p0, val_t
   if (init_table[itpos244]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6936;
+  fra.me.line = 6983;
   fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___init_aendstringexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -37856,21 +37410,21 @@ void parser___parser_prod___AEndStringExpr___init_aendstringexpr(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6936 */
+  /* parser/parser_prod.nit:6983 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:6940 */
+  /* parser/parser_prod.nit:6987 */
   CALL_parser___parser_prod___AEndStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:6941 */
+  /* parser/parser_prod.nit:6988 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6941);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6988);
   }
   ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:6942 */
+  /* parser/parser_prod.nit:6989 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6942);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6989);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -37884,7 +37438,7 @@ void parser___parser_prod___AEndStringExpr___replace_child(val_t p0, val_t p1, v
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6945;
+  fra.me.line = 6992;
   fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -37896,11 +37450,11 @@ void parser___parser_prod___AEndStringExpr___replace_child(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6947 */
+  /* parser/parser_prod.nit:6994 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6947);
+    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6994);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -37910,7 +37464,7 @@ void parser___parser_prod___AEndStringExpr___replace_child(val_t p0, val_t p1, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:6948 */
+    /* parser/parser_prod.nit:6995 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -37925,25 +37479,25 @@ void parser___parser_prod___AEndStringExpr___replace_child(val_t p0, val_t p1, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:6949 */
+      /* parser/parser_prod.nit:6996 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6949);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6996);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:6950 */
+      /* parser/parser_prod.nit:6997 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TEndString, ID_parser___parser_nodes___TEndString)) /*cast TEndString*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6950);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6997);
       }
-      /* ./parser//parser_prod.nit:6951 */
+      /* parser/parser_prod.nit:6998 */
       ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:6953 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6953);
+      /* parser/parser_prod.nit:7000 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7000);
     }
-    /* ./parser//parser_prod.nit:6955 */
+    /* parser/parser_prod.nit:7002 */
     goto label1;
   }
   label1: while(0);
@@ -37956,7 +37510,7 @@ void parser___parser_prod___AEndStringExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6959;
+  fra.me.line = 7006;
   fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -37965,11 +37519,11 @@ void parser___parser_prod___AEndStringExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6961 */
+  /* parser/parser_prod.nit:7008 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 6961);
+    nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 7008);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -37983,7 +37537,7 @@ void parser___parser_prod___ASuperstringExpr___empty_init(val_t p0, int* init_ta
   if (init_table[itpos245]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6965;
+  fra.me.line = 7012;
   fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -38001,7 +37555,7 @@ void parser___parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0, v
   if (init_table[itpos246]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6967;
+  fra.me.line = 7014;
   fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -38010,7 +37564,7 @@ void parser___parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0, v
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6971 */
+  /* parser/parser_prod.nit:7018 */
   CALL_parser___parser_prod___ASuperstringExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr_1));
   stack_frame_head = fra.me.prev;
@@ -38022,7 +37576,7 @@ void parser___parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0, v
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:6972 */
+    /* parser/parser_prod.nit:7019 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -38036,21 +37590,21 @@ void parser___parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0, v
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:6973 */
+    /* parser/parser_prod.nit:7020 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6973);
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7020);
     }
-    /* ./parser//parser_prod.nit:6974 */
+    /* parser/parser_prod.nit:7021 */
     REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(closctx->REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6974);
+      nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7021);
     }
     fra.me.REG[1] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(closctx->REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:6975 */
+    /* parser/parser_prod.nit:7022 */
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -38065,7 +37619,7 @@ void parser___parser_prod___ASuperstringExpr___replace_child(val_t p0, val_t p1,
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6979;
+  fra.me.line = 7026;
   fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -38077,33 +37631,33 @@ void parser___parser_prod___ASuperstringExpr___replace_child(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:6981 */
+  /* parser/parser_prod.nit:7028 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6981);
+    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7028);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:6981 */
+      /* parser/parser_prod.nit:7028 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:6982 */
+      /* parser/parser_prod.nit:7029 */
       REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6982);
+        nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7029);
       }
       fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
@@ -38120,7 +37674,7 @@ void parser___parser_prod___ASuperstringExpr___replace_child(val_t p0, val_t p1,
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:6983 */
+        /* parser/parser_prod.nit:7030 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -38135,47 +37689,47 @@ void parser___parser_prod___ASuperstringExpr___replace_child(val_t p0, val_t p1,
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:6984 */
+          /* parser/parser_prod.nit:7031 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6984);
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7031);
           }
-          /* ./parser//parser_prod.nit:6985 */
+          /* parser/parser_prod.nit:7032 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6985);
+            nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7032);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:6986 */
+          /* parser/parser_prod.nit:7033 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6986);
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7033);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:6988 */
+          /* parser/parser_prod.nit:7035 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6988);
+            nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7035);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:6990 */
+        /* parser/parser_prod.nit:7037 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label2;
     }
   }
@@ -38190,7 +37744,7 @@ void parser___parser_prod___ASuperstringExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 6995;
+  fra.me.line = 7042;
   fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -38199,11 +37753,11 @@ void parser___parser_prod___ASuperstringExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:6997 */
+  /* parser/parser_prod.nit:7044 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 6997);
+    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7044);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASuperstringExpr___visit_all_1));
@@ -38226,7 +37780,7 @@ void parser___parser_prod___ASuperstringExpr___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:6998 */
+    /* parser/parser_prod.nit:7045 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -38238,7 +37792,7 @@ void parser___parser_prod___AParExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos247]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7003;
+  fra.me.line = 7050;
   fra.me.meth = LOCATE_parser___parser_prod___AParExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -38249,41 +37803,71 @@ void parser___parser_prod___AParExpr___empty_init(val_t p0, int* init_table){
   init_table[itpos247] = 1;
   return;
 }
-void parser___parser_prod___AParExpr___init_aparexpr(val_t p0, val_t p1, int* init_table){
+void parser___parser_prod___AParExpr___init_aparexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
   int itpos248 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExpr].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
   if (init_table[itpos248]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7005;
+  fra.me.line = 7052;
   fra.me.meth = LOCATE_parser___parser_prod___AParExpr___init_aparexpr;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
+  fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7005 */
-  fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7009 */
-  CALL_parser___parser_prod___AParExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:7010 */
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  /* parser/parser_prod.nit:7052 */
+  fra.me.REG[4] = fra.me.REG[0];
+  /* parser/parser_prod.nit:7058 */
+  CALL_parser___parser_prod___AParExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
+  /* parser/parser_prod.nit:7059 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7010);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7059);
   }
-  ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:7011 */
+  ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[4]) = fra.me.REG[1];
+  /* parser/parser_prod.nit:7060 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7011);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7060);
   }
-  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
+  /* parser/parser_prod.nit:7061 */
+  REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7061);
+  }
+  ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[4]) = fra.me.REG[2];
+  /* parser/parser_prod.nit:7062 */
+  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7062);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
+  /* parser/parser_prod.nit:7063 */
+  REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7063);
+  }
+  ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[4]) = fra.me.REG[3];
+  /* parser/parser_prod.nit:7064 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7064);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   stack_frame_head = fra.me.prev;
   init_table[itpos248] = 1;
   return;
@@ -38295,7 +37879,7 @@ void parser___parser_prod___AParExpr___replace_child(val_t p0, val_t p1, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7014;
+  fra.me.line = 7067;
   fra.me.meth = LOCATE_parser___parser_prod___AParExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -38307,11 +37891,61 @@ void parser___parser_prod___AParExpr___replace_child(val_t p0, val_t p1, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7016 */
+  /* parser/parser_prod.nit:7069 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7069);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:7070 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:7071 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7071);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:7072 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7072);
+      }
+      /* parser/parser_prod.nit:7073 */
+      ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:7075 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7075);
+    }
+    /* parser/parser_prod.nit:7077 */
+    goto label1;
+  }
+  /* parser/parser_prod.nit:7079 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7016);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7079);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -38321,7 +37955,7 @@ void parser___parser_prod___AParExpr___replace_child(val_t p0, val_t p1, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7017 */
+    /* parser/parser_prod.nit:7080 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -38336,25 +37970,75 @@ void parser___parser_prod___AParExpr___replace_child(val_t p0, val_t p1, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7018 */
+      /* parser/parser_prod.nit:7081 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7018);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7081);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7019 */
+      /* parser/parser_prod.nit:7082 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7019);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7082);
       }
-      /* ./parser//parser_prod.nit:7020 */
+      /* parser/parser_prod.nit:7083 */
       ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7022 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7022);
+      /* parser/parser_prod.nit:7085 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7085);
+    }
+    /* parser/parser_prod.nit:7087 */
+    goto label1;
+  }
+  /* parser/parser_prod.nit:7089 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7089);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:7090 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:7091 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7091);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:7092 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7092);
+      }
+      /* parser/parser_prod.nit:7093 */
+      ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:7095 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7095);
     }
-    /* ./parser//parser_prod.nit:7024 */
+    /* parser/parser_prod.nit:7097 */
     goto label1;
   }
   label1: while(0);
@@ -38362,27 +38046,44 @@ void parser___parser_prod___AParExpr___replace_child(val_t p0, val_t p1, val_t p
   return;
 }
 void parser___parser_prod___AParExpr___visit_all(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7028;
+  fra.me.line = 7101;
   fra.me.meth = LOCATE_parser___parser_prod___AParExpr___visit_all;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7030 */
+  /* parser/parser_prod.nit:7103 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7103);
+  }
+  fra.me.REG[2] = ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0]);
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:7104 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7030);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7104);
   }
-  fra.me.REG[0] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
+  fra.me.REG[2] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:7105 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7105);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
@@ -38394,7 +38095,7 @@ void parser___parser_prod___AAsCastExpr___empty_init(val_t p0, int* init_table){
   if (init_table[itpos249]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7034;
+  fra.me.line = 7109;
   fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -38405,71 +38106,101 @@ void parser___parser_prod___AAsCastExpr___empty_init(val_t p0, int* init_table){
   init_table[itpos249] = 1;
   return;
 }
-void parser___parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
+void parser___parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
   int itpos250 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsCastExpr].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
   val_t tmp;
   if (init_table[itpos250]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7036;
+  fra.me.line = 7111;
   fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___init_aascastexpr;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
+  fra.me.REG_size = 7;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:7036 */
-  fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7042 */
-  CALL_parser___parser_prod___AAsCastExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:7043 */
+  fra.me.REG[4] = p4;
+  fra.me.REG[5] = p5;
+  /* parser/parser_prod.nit:7111 */
+  fra.me.REG[6] = fra.me.REG[0];
+  /* parser/parser_prod.nit:7119 */
+  CALL_parser___parser_prod___AAsCastExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
+  /* parser/parser_prod.nit:7120 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7043);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7120);
   }
-  ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:7044 */
+  ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[6]) = fra.me.REG[1];
+  /* parser/parser_prod.nit:7121 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7044);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7121);
   }
-  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:7045 */
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
+  /* parser/parser_prod.nit:7122 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7045);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7122);
   }
-  ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:7046 */
+  ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[6]) = fra.me.REG[2];
+  /* parser/parser_prod.nit:7123 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7046);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7123);
   }
-  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:7047 */
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
+  /* parser/parser_prod.nit:7124 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7047);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7124);
   }
-  ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[4]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:7048 */
+  ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[6]) = fra.me.REG[3];
+  /* parser/parser_prod.nit:7125 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7048);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7125);
   }
-  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
+  /* parser/parser_prod.nit:7126 */
+  REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7126);
+  }
+  ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[6]) = fra.me.REG[4];
+  /* parser/parser_prod.nit:7127 */
+  REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7127);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
+  /* parser/parser_prod.nit:7128 */
+  REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7128);
+  }
+  ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[6]) = fra.me.REG[5];
+  /* parser/parser_prod.nit:7129 */
+  REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7129);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
   stack_frame_head = fra.me.prev;
   init_table[itpos250] = 1;
   return;
@@ -38481,7 +38212,7 @@ void parser___parser_prod___AAsCastExpr___replace_child(val_t p0, val_t p1, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7051;
+  fra.me.line = 7132;
   fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -38493,11 +38224,11 @@ void parser___parser_prod___AAsCastExpr___replace_child(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7053 */
+  /* parser/parser_prod.nit:7134 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7053);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7134);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -38507,7 +38238,7 @@ void parser___parser_prod___AAsCastExpr___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7054 */
+    /* parser/parser_prod.nit:7135 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -38522,32 +38253,32 @@ void parser___parser_prod___AAsCastExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7055 */
+      /* parser/parser_prod.nit:7136 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7055);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7136);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7056 */
+      /* parser/parser_prod.nit:7137 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7056);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7137);
       }
-      /* ./parser//parser_prod.nit:7057 */
+      /* parser/parser_prod.nit:7138 */
       ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7059 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7059);
+      /* parser/parser_prod.nit:7140 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7140);
     }
-    /* ./parser//parser_prod.nit:7061 */
+    /* parser/parser_prod.nit:7142 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7063 */
+  /* parser/parser_prod.nit:7144 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7063);
+    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7144);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -38557,7 +38288,7 @@ void parser___parser_prod___AAsCastExpr___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7064 */
+    /* parser/parser_prod.nit:7145 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -38572,32 +38303,82 @@ void parser___parser_prod___AAsCastExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7065 */
+      /* parser/parser_prod.nit:7146 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7065);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7146);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7066 */
+      /* parser/parser_prod.nit:7147 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast TKwas*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7066);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7147);
       }
-      /* ./parser//parser_prod.nit:7067 */
+      /* parser/parser_prod.nit:7148 */
       ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7069 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7069);
+      /* parser/parser_prod.nit:7150 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7150);
+    }
+    /* parser/parser_prod.nit:7152 */
+    goto label1;
+  }
+  /* parser/parser_prod.nit:7154 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7154);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:7155 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:7156 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7156);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:7157 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7157);
+      }
+      /* parser/parser_prod.nit:7158 */
+      ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:7160 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7160);
     }
-    /* ./parser//parser_prod.nit:7071 */
+    /* parser/parser_prod.nit:7162 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7073 */
+  /* parser/parser_prod.nit:7164 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7073);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7164);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -38607,7 +38388,7 @@ void parser___parser_prod___AAsCastExpr___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7074 */
+    /* parser/parser_prod.nit:7165 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -38622,25 +38403,75 @@ void parser___parser_prod___AAsCastExpr___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7075 */
+      /* parser/parser_prod.nit:7166 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7075);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7166);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7076 */
+      /* parser/parser_prod.nit:7167 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7076);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7167);
       }
-      /* ./parser//parser_prod.nit:7077 */
+      /* parser/parser_prod.nit:7168 */
       ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7079 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7079);
+      /* parser/parser_prod.nit:7170 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7170);
     }
-    /* ./parser//parser_prod.nit:7081 */
+    /* parser/parser_prod.nit:7172 */
+    goto label1;
+  }
+  /* parser/parser_prod.nit:7174 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7174);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:7175 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:7176 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7176);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:7177 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7177);
+      }
+      /* parser/parser_prod.nit:7178 */
+      ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:7180 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7180);
+    }
+    /* parser/parser_prod.nit:7182 */
     goto label1;
   }
   label1: while(0);
@@ -38653,7 +38484,7 @@ void parser___parser_prod___AAsCastExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7085;
+  fra.me.line = 7186;
   fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -38663,29 +38494,45 @@ void parser___parser_prod___AAsCastExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7087 */
+  /* parser/parser_prod.nit:7188 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7087);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7188);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:7088 */
+  /* parser/parser_prod.nit:7189 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7088);
+    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7189);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:7089 */
+  /* parser/parser_prod.nit:7190 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7190);
+  }
+  fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0]);
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:7191 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7089);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7191);
+  }
+  fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]);
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:7192 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7192);
   }
-  fra.me.REG[0] = ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
@@ -38697,7 +38544,7 @@ void parser___parser_prod___AAsNotnullExpr___empty_init(val_t p0, int* init_tabl
   if (init_table[itpos251]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7093;
+  fra.me.line = 7196;
   fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -38708,18 +38555,18 @@ void parser___parser_prod___AAsNotnullExpr___empty_init(val_t p0, int* init_tabl
   init_table[itpos251] = 1;
   return;
 }
-void parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
+void parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, int* init_table){
   int itpos252 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotnullExpr].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t tmp;
   if (init_table[itpos252]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7095;
+  fra.me.line = 7198;
   fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
+  fra.me.REG_size = 8;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
@@ -38727,67 +38574,97 @@ void parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:7095 */
-  fra.me.REG[5] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7102 */
-  CALL_parser___parser_prod___AAsNotnullExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
-  /* ./parser//parser_prod.nit:7103 */
+  fra.me.REG[5] = p5;
+  fra.me.REG[6] = p6;
+  /* parser/parser_prod.nit:7198 */
+  fra.me.REG[7] = fra.me.REG[0];
+  /* parser/parser_prod.nit:7207 */
+  CALL_parser___parser_prod___AAsNotnullExpr___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
+  /* parser/parser_prod.nit:7208 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7103);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7208);
   }
-  ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:7104 */
+  ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[7]) = fra.me.REG[1];
+  /* parser/parser_prod.nit:7209 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7104);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7209);
   }
-  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:7105 */
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
+  /* parser/parser_prod.nit:7210 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7105);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7210);
   }
-  ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[5]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:7106 */
+  ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[7]) = fra.me.REG[2];
+  /* parser/parser_prod.nit:7211 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7106);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7211);
   }
-  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:7107 */
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
+  /* parser/parser_prod.nit:7212 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7107);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7212);
   }
-  ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[5]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:7108 */
+  ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[7]) = fra.me.REG[3];
+  /* parser/parser_prod.nit:7213 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7108);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7213);
   }
-  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:7109 */
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
+  /* parser/parser_prod.nit:7214 */
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7109);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7214);
   }
-  ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[5]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:7110 */
+  ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[7]) = fra.me.REG[4];
+  /* parser/parser_prod.nit:7215 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7110);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7215);
   }
-  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
+  /* parser/parser_prod.nit:7216 */
+  REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7216);
+  }
+  ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[7]) = fra.me.REG[5];
+  /* parser/parser_prod.nit:7217 */
+  REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7217);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
+  /* parser/parser_prod.nit:7218 */
+  REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7218);
+  }
+  ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[7]) = fra.me.REG[6];
+  /* parser/parser_prod.nit:7219 */
+  REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7219);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
   stack_frame_head = fra.me.prev;
   init_table[itpos252] = 1;
   return;
@@ -38799,7 +38676,7 @@ void parser___parser_prod___AAsNotnullExpr___replace_child(val_t p0, val_t p1, v
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7113;
+  fra.me.line = 7222;
   fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -38811,11 +38688,11 @@ void parser___parser_prod___AAsNotnullExpr___replace_child(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7115 */
+  /* parser/parser_prod.nit:7224 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7115);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7224);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -38825,7 +38702,7 @@ void parser___parser_prod___AAsNotnullExpr___replace_child(val_t p0, val_t p1, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7116 */
+    /* parser/parser_prod.nit:7225 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -38840,32 +38717,32 @@ void parser___parser_prod___AAsNotnullExpr___replace_child(val_t p0, val_t p1, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7117 */
+      /* parser/parser_prod.nit:7226 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7117);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7226);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7118 */
+      /* parser/parser_prod.nit:7227 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7118);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7227);
       }
-      /* ./parser//parser_prod.nit:7119 */
+      /* parser/parser_prod.nit:7228 */
       ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7121 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7121);
+      /* parser/parser_prod.nit:7230 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7230);
     }
-    /* ./parser//parser_prod.nit:7123 */
+    /* parser/parser_prod.nit:7232 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7125 */
+  /* parser/parser_prod.nit:7234 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7125);
+    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7234);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -38875,7 +38752,7 @@ void parser___parser_prod___AAsNotnullExpr___replace_child(val_t p0, val_t p1, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7126 */
+    /* parser/parser_prod.nit:7235 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -38890,32 +38767,82 @@ void parser___parser_prod___AAsNotnullExpr___replace_child(val_t p0, val_t p1, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7127 */
+      /* parser/parser_prod.nit:7236 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7127);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7236);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7128 */
+      /* parser/parser_prod.nit:7237 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast TKwas*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7128);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7237);
       }
-      /* ./parser//parser_prod.nit:7129 */
+      /* parser/parser_prod.nit:7238 */
       ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7131 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7131);
+      /* parser/parser_prod.nit:7240 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7240);
     }
-    /* ./parser//parser_prod.nit:7133 */
+    /* parser/parser_prod.nit:7242 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7135 */
+  /* parser/parser_prod.nit:7244 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7244);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:7245 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:7246 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7246);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:7247 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7247);
+      }
+      /* parser/parser_prod.nit:7248 */
+      ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:7250 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7250);
+    }
+    /* parser/parser_prod.nit:7252 */
+    goto label1;
+  }
+  /* parser/parser_prod.nit:7254 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 7135);
+    nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 7254);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -38925,7 +38852,7 @@ void parser___parser_prod___AAsNotnullExpr___replace_child(val_t p0, val_t p1, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7136 */
+    /* parser/parser_prod.nit:7255 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -38940,32 +38867,32 @@ void parser___parser_prod___AAsNotnullExpr___replace_child(val_t p0, val_t p1, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7137 */
+      /* parser/parser_prod.nit:7256 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7137);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7256);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7138 */
+      /* parser/parser_prod.nit:7257 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnot, ID_parser___parser_nodes___TKwnot)) /*cast TKwnot*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7138);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7257);
       }
-      /* ./parser//parser_prod.nit:7139 */
+      /* parser/parser_prod.nit:7258 */
       ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7141 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7141);
+      /* parser/parser_prod.nit:7260 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7260);
     }
-    /* ./parser//parser_prod.nit:7143 */
+    /* parser/parser_prod.nit:7262 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7145 */
+  /* parser/parser_prod.nit:7264 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 7145);
+    nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 7264);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -38975,7 +38902,7 @@ void parser___parser_prod___AAsNotnullExpr___replace_child(val_t p0, val_t p1, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7146 */
+    /* parser/parser_prod.nit:7265 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -38990,25 +38917,75 @@ void parser___parser_prod___AAsNotnullExpr___replace_child(val_t p0, val_t p1, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7147 */
+      /* parser/parser_prod.nit:7266 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7147);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7266);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7148 */
+      /* parser/parser_prod.nit:7267 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnull, ID_parser___parser_nodes___TKwnull)) /*cast TKwnull*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7148);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7267);
       }
-      /* ./parser//parser_prod.nit:7149 */
+      /* parser/parser_prod.nit:7268 */
       ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7151 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7151);
+      /* parser/parser_prod.nit:7270 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7270);
+    }
+    /* parser/parser_prod.nit:7272 */
+    goto label1;
+  }
+  /* parser/parser_prod.nit:7274 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7274);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:7275 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:7276 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7276);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:7277 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7277);
+      }
+      /* parser/parser_prod.nit:7278 */
+      ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:7280 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7280);
     }
-    /* ./parser//parser_prod.nit:7153 */
+    /* parser/parser_prod.nit:7282 */
     goto label1;
   }
   label1: while(0);
@@ -39021,7 +38998,7 @@ void parser___parser_prod___AAsNotnullExpr___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7157;
+  fra.me.line = 7286;
   fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -39031,37 +39008,53 @@ void parser___parser_prod___AAsNotnullExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7159 */
+  /* parser/parser_prod.nit:7288 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7159);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7288);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:7160 */
+  /* parser/parser_prod.nit:7289 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7160);
+    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7289);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:7161 */
+  /* parser/parser_prod.nit:7290 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7290);
+  }
+  fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0]);
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:7291 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 7161);
+    nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 7291);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:7162 */
+  /* parser/parser_prod.nit:7292 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 7162);
+    nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 7292);
+  }
+  fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]);
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:7293 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7293);
   }
-  fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
@@ -39073,7 +39066,7 @@ void parser___parser_prod___AIssetAttrExpr___empty_init(val_t p0, int* init_tabl
   if (init_table[itpos253]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7166;
+  fra.me.line = 7297;
   fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -39092,7 +39085,7 @@ void parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr(val_t p0, val_t
   if (init_table[itpos254]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7168;
+  fra.me.line = 7299;
   fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -39106,47 +39099,47 @@ void parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr(val_t p0, val_t
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:7168 */
+  /* parser/parser_prod.nit:7299 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7174 */
+  /* parser/parser_prod.nit:7305 */
   CALL_parser___parser_prod___AIssetAttrExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:7175 */
+  /* parser/parser_prod.nit:7306 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7175);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7306);
   }
   ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:7176 */
+  /* parser/parser_prod.nit:7307 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7176);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7307);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:7177 */
+  /* parser/parser_prod.nit:7308 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7177);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7308);
   }
   ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:7178 */
+  /* parser/parser_prod.nit:7309 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7178);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7309);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:7179 */
+  /* parser/parser_prod.nit:7310 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7179);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7310);
   }
   ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:7180 */
+  /* parser/parser_prod.nit:7311 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7180);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7311);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   stack_frame_head = fra.me.prev;
@@ -39160,7 +39153,7 @@ void parser___parser_prod___AIssetAttrExpr___replace_child(val_t p0, val_t p1, v
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7183;
+  fra.me.line = 7314;
   fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -39172,11 +39165,11 @@ void parser___parser_prod___AIssetAttrExpr___replace_child(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7185 */
+  /* parser/parser_prod.nit:7316 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser___parser_prod, 7185);
+    nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser___parser_prod, 7316);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -39186,7 +39179,7 @@ void parser___parser_prod___AIssetAttrExpr___replace_child(val_t p0, val_t p1, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7186 */
+    /* parser/parser_prod.nit:7317 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -39201,32 +39194,32 @@ void parser___parser_prod___AIssetAttrExpr___replace_child(val_t p0, val_t p1, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7187 */
+      /* parser/parser_prod.nit:7318 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7187);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7318);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7188 */
+      /* parser/parser_prod.nit:7319 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwisset, ID_parser___parser_nodes___TKwisset)) /*cast TKwisset*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7188);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7319);
       }
-      /* ./parser//parser_prod.nit:7189 */
+      /* parser/parser_prod.nit:7320 */
       ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7191 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7191);
+      /* parser/parser_prod.nit:7322 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7322);
     }
-    /* ./parser//parser_prod.nit:7193 */
+    /* parser/parser_prod.nit:7324 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7195 */
+  /* parser/parser_prod.nit:7326 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7195);
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7326);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -39236,7 +39229,1326 @@ void parser___parser_prod___AIssetAttrExpr___replace_child(val_t p0, val_t p1, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7196 */
+    /* parser/parser_prod.nit:7327 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:7328 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7328);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:7329 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7329);
+      }
+      /* parser/parser_prod.nit:7330 */
+      ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:7332 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7332);
+    }
+    /* parser/parser_prod.nit:7334 */
+    goto label1;
+  }
+  /* parser/parser_prod.nit:7336 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7336);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:7337 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:7338 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7338);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:7339 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast TAttrid*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7339);
+      }
+      /* parser/parser_prod.nit:7340 */
+      ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:7342 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7342);
+    }
+    /* parser/parser_prod.nit:7344 */
+    goto label1;
+  }
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void parser___parser_prod___AIssetAttrExpr___visit_all(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_prod;
+  fra.me.line = 7348;
+  fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___visit_all;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* parser/parser_prod.nit:7350 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser___parser_prod, 7350);
+  }
+  fra.me.REG[2] = ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]);
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:7351 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7351);
+  }
+  fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:7352 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7352);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void parser___parser_prod___ADebugTypeExpr___empty_init(val_t p0, int* init_table){
+  int itpos255 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADebugTypeExpr].i;
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  if (init_table[itpos255]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_prod;
+  fra.me.line = 7356;
+  fra.me.meth = LOCATE_parser___parser_prod___ADebugTypeExpr___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  stack_frame_head = fra.me.prev;
+  init_table[itpos255] = 1;
+  return;
+}
+void parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
+  int itpos256 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADebugTypeExpr].i;
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
+  val_t REGB0;
+  val_t tmp;
+  if (init_table[itpos256]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_prod;
+  fra.me.line = 7358;
+  fra.me.meth = LOCATE_parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 6;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  fra.me.REG[4] = p4;
+  /* parser/parser_prod.nit:7358 */
+  fra.me.REG[5] = fra.me.REG[0];
+  /* parser/parser_prod.nit:7365 */
+  CALL_parser___parser_prod___ADebugTypeExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
+  /* parser/parser_prod.nit:7366 */
+  REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7366);
+  }
+  ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[5]) = fra.me.REG[1];
+  /* parser/parser_prod.nit:7367 */
+  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7367);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+  /* parser/parser_prod.nit:7368 */
+  REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7368);
+  }
+  ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[5]) = fra.me.REG[2];
+  /* parser/parser_prod.nit:7369 */
+  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7369);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
+  /* parser/parser_prod.nit:7370 */
+  REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7370);
+  }
+  ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[5]) = fra.me.REG[3];
+  /* parser/parser_prod.nit:7371 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7371);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
+  /* parser/parser_prod.nit:7372 */
+  REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7372);
+  }
+  ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[5]) = fra.me.REG[4];
+  /* parser/parser_prod.nit:7373 */
+  REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7373);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
+  stack_frame_head = fra.me.prev;
+  init_table[itpos256] = 1;
+  return;
+}
+void parser___parser_prod___ADebugTypeExpr___replace_child(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_prod;
+  fra.me.line = 7376;
+  fra.me.meth = LOCATE_parser___parser_prod___ADebugTypeExpr___replace_child;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  /* parser/parser_prod.nit:7378 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_kwdebug", LOCATE_parser___parser_prod, 7378);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:7379 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:7380 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7380);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:7381 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwdebug, ID_parser___parser_nodes___TKwdebug)) /*cast TKwdebug*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7381);
+      }
+      /* parser/parser_prod.nit:7382 */
+      ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:7384 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7384);
+    }
+    /* parser/parser_prod.nit:7386 */
+    goto label1;
+  }
+  /* parser/parser_prod.nit:7388 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 7388);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:7389 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:7390 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7390);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:7391 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwtype, ID_parser___parser_nodes___TKwtype)) /*cast TKwtype*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7391);
+      }
+      /* parser/parser_prod.nit:7392 */
+      ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:7394 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7394);
+    }
+    /* parser/parser_prod.nit:7396 */
+    goto label1;
+  }
+  /* parser/parser_prod.nit:7398 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7398);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:7399 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:7400 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7400);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:7401 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7401);
+      }
+      /* parser/parser_prod.nit:7402 */
+      ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:7404 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7404);
+    }
+    /* parser/parser_prod.nit:7406 */
+    goto label1;
+  }
+  /* parser/parser_prod.nit:7408 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7408);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:7409 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:7410 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7410);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:7411 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7411);
+      }
+      /* parser/parser_prod.nit:7412 */
+      ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:7414 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7414);
+    }
+    /* parser/parser_prod.nit:7416 */
+    goto label1;
+  }
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void parser___parser_prod___ADebugTypeExpr___visit_all(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_prod;
+  fra.me.line = 7420;
+  fra.me.meth = LOCATE_parser___parser_prod___ADebugTypeExpr___visit_all;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* parser/parser_prod.nit:7422 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_kwdebug", LOCATE_parser___parser_prod, 7422);
+  }
+  fra.me.REG[2] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0]);
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:7423 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 7423);
+  }
+  fra.me.REG[2] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0]);
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:7424 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7424);
+  }
+  fra.me.REG[2] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0]);
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:7425 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7425);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0]);
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void parser___parser_prod___AListExprs___empty_init(val_t p0, int* init_table){
+  int itpos257 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AListExprs].i;
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  if (init_table[itpos257]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_prod;
+  fra.me.line = 7429;
+  fra.me.meth = LOCATE_parser___parser_prod___AListExprs___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  stack_frame_head = fra.me.prev;
+  init_table[itpos257] = 1;
+  return;
+}
+void parser___parser_prod___AListExprs___init_alistexprs(val_t p0, val_t p1, int* init_table){
+  int itpos258 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AListExprs].i;
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  if (init_table[itpos258]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_prod;
+  fra.me.line = 7431;
+  fra.me.meth = LOCATE_parser___parser_prod___AListExprs___init_alistexprs;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* parser/parser_prod.nit:7435 */
+  CALL_parser___parser_prod___AListExprs___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AListExprs___init_alistexprs_1));
+  stack_frame_head = fra.me.prev;
+  init_table[itpos258] = 1;
+  return;
+}
+  void OC_parser___parser_prod___AListExprs___init_alistexprs_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+    struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+    val_t REGB0;
+    fun_t CREG[1];
+    val_t tmp;
+    /* parser/parser_prod.nit:7436 */
+    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+    fra.me.file = LOCATE_parser___parser_prod;
+    fra.me.line = 0;
+    fra.me.meth = LOCATE_parser___parser_prod___AListExprs___init_alistexprs;
+    fra.me.has_broke = 0;
+    fra.me.REG_size = 2;
+    fra.me.nitni_local_ref_head = NULL;
+    fra.me.REG[0] = NIT_NULL;
+    fra.me.REG[1] = NIT_NULL;
+    fra.me.closure_ctx = closctx_param;
+    fra.me.closure_funs = CREG;
+    fra.me.REG[0] = p0;
+    CREG[0] = clos_fun0;
+    /* parser/parser_prod.nit:7437 */
+    REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7437);
+    }
+    /* parser/parser_prod.nit:7438 */
+    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[0])!=NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7438);
+    }
+    fra.me.REG[1] = ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[0]);
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+    /* parser/parser_prod.nit:7439 */
+    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
+    stack_frame_head = fra.me.prev;
+    return;
+  }
+void parser___parser_prod___AListExprs___replace_child(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t REGB2;
+  val_t REGB3;
+  val_t REGB4;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_prod;
+  fra.me.line = 7443;
+  fra.me.meth = LOCATE_parser___parser_prod___AListExprs___replace_child;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  /* parser/parser_prod.nit:7445 */
+  REGB0 = TAG_Int(0);
+  REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB1)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7445);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
+  REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
+  /* ../lib/standard/kernel.nit:352 */
+  while(1) {
+    REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
+    if (UNTAG_Bool(REGB2)) {
+    } else {
+      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+    }
+    /* ../lib/standard/kernel.nit:232 */
+    REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
+    /* ../lib/standard/kernel.nit:352 */
+    if (UNTAG_Bool(REGB2)) {
+      /* parser/parser_prod.nit:7445 */
+      REGB2 = REGB0;
+      /* parser/parser_prod.nit:7446 */
+      REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
+      if (UNTAG_Bool(REGB3)) {
+      } else {
+        nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7446);
+      }
+      fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
+      fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
+      REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
+      if (UNTAG_Bool(REGB3)) {
+      } else {
+        REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+        if (UNTAG_Bool(REGB4)) {
+          REGB4 = TAG_Bool(false);
+          REGB3 = REGB4;
+        } else {
+          REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+          REGB3 = REGB4;
+        }
+      }
+      if (UNTAG_Bool(REGB3)) {
+        /* parser/parser_prod.nit:7447 */
+        REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+        if (UNTAG_Bool(REGB3)) {
+        } else {
+          REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+          if (UNTAG_Bool(REGB4)) {
+            REGB4 = TAG_Bool(false);
+            REGB3 = REGB4;
+          } else {
+            REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+            REGB3 = REGB4;
+          }
+        }
+        REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
+        if (UNTAG_Bool(REGB3)) {
+          /* parser/parser_prod.nit:7448 */
+          REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
+          if (UNTAG_Bool(REGB3)) {
+          } else {
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7448);
+          }
+          /* parser/parser_prod.nit:7449 */
+          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
+          if (UNTAG_Bool(REGB3)) {
+          } else {
+            nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7449);
+          }
+          fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
+          CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
+          /* parser/parser_prod.nit:7450 */
+          REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+          if (UNTAG_Bool(REGB3)) {
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7450);
+          }
+          CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+        } else {
+          /* parser/parser_prod.nit:7452 */
+          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
+          if (UNTAG_Bool(REGB3)) {
+          } else {
+            nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7452);
+          }
+          fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
+          CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
+        }
+        /* parser/parser_prod.nit:7454 */
+        goto label1;
+      }
+      /* ../lib/standard/kernel.nit:354 */
+      REGB2 = TAG_Int(1);
+      /* ../lib/standard/kernel.nit:235 */
+      REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
+      /* ../lib/standard/kernel.nit:354 */
+      REGB0 = REGB2;
+    } else {
+      /* ../lib/standard/kernel.nit:352 */
+      goto label2;
+    }
+  }
+  label2: while(0);
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void parser___parser_prod___AListExprs___visit_all(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_prod;
+  fra.me.line = 7459;
+  fra.me.meth = LOCATE_parser___parser_prod___AListExprs___visit_all;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* parser/parser_prod.nit:7461 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7461);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AListExprs___visit_all_1));
+  stack_frame_head = fra.me.prev;
+  return;
+}
+  void OC_parser___parser_prod___AListExprs___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+    struct {struct stack_frame_t me;} fra;
+    fun_t CREG[1];
+    val_t tmp;
+    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+    fra.me.file = LOCATE_parser___parser_prod;
+    fra.me.line = 0;
+    fra.me.meth = LOCATE_parser___parser_prod___AListExprs___visit_all;
+    fra.me.has_broke = 0;
+    fra.me.REG_size = 1;
+    fra.me.nitni_local_ref_head = NULL;
+    fra.me.REG[0] = NIT_NULL;
+    fra.me.closure_ctx = closctx_param;
+    fra.me.closure_funs = CREG;
+    fra.me.REG[0] = p0;
+    CREG[0] = clos_fun0;
+    /* parser/parser_prod.nit:7462 */
+    CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
+    stack_frame_head = fra.me.prev;
+    return;
+  }
+void parser___parser_prod___AParExprs___empty_init(val_t p0, int* init_table){
+  int itpos259 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExprs].i;
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  if (init_table[itpos259]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_prod;
+  fra.me.line = 7467;
+  fra.me.meth = LOCATE_parser___parser_prod___AParExprs___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  stack_frame_head = fra.me.prev;
+  init_table[itpos259] = 1;
+  return;
+}
+void parser___parser_prod___AParExprs___init_aparexprs(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
+  int itpos260 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExprs].i;
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  val_t REGB0;
+  val_t tmp;
+  if (init_table[itpos260]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_prod;
+  fra.me.line = 7469;
+  fra.me.meth = LOCATE_parser___parser_prod___AParExprs___init_aparexprs;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 5;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  /* parser/parser_prod.nit:7469 */
+  fra.me.REG[4] = fra.me.REG[0];
+  /* parser/parser_prod.nit:7475 */
+  CALL_parser___parser_prod___AParExprs___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
+  /* parser/parser_prod.nit:7476 */
+  REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7476);
+  }
+  ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[4]) = fra.me.REG[1];
+  /* parser/parser_prod.nit:7477 */
+  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7477);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AParExprs___init_aparexprs_1));
+  /* parser/parser_prod.nit:7483 */
+  REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7483);
+  }
+  ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[4]) = fra.me.REG[3];
+  /* parser/parser_prod.nit:7484 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7484);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
+  stack_frame_head = fra.me.prev;
+  init_table[itpos260] = 1;
+  return;
+}
+  void OC_parser___parser_prod___AParExprs___init_aparexprs_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+    struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+    val_t REGB0;
+    fun_t CREG[1];
+    val_t tmp;
+    /* parser/parser_prod.nit:7478 */
+    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+    fra.me.file = LOCATE_parser___parser_prod;
+    fra.me.line = 0;
+    fra.me.meth = LOCATE_parser___parser_prod___AParExprs___init_aparexprs;
+    fra.me.has_broke = 0;
+    fra.me.REG_size = 2;
+    fra.me.nitni_local_ref_head = NULL;
+    fra.me.REG[0] = NIT_NULL;
+    fra.me.REG[1] = NIT_NULL;
+    fra.me.closure_ctx = closctx_param;
+    fra.me.closure_funs = CREG;
+    fra.me.REG[0] = p0;
+    CREG[0] = clos_fun0;
+    /* parser/parser_prod.nit:7479 */
+    REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7479);
+    }
+    /* parser/parser_prod.nit:7480 */
+    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[4])!=NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7480);
+    }
+    fra.me.REG[1] = ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[4]);
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+    /* parser/parser_prod.nit:7481 */
+    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
+    stack_frame_head = fra.me.prev;
+    return;
+  }
+void parser___parser_prod___AParExprs___replace_child(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t REGB2;
+  val_t REGB3;
+  val_t REGB4;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_prod;
+  fra.me.line = 7487;
+  fra.me.meth = LOCATE_parser___parser_prod___AParExprs___replace_child;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  /* parser/parser_prod.nit:7489 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7489);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:7490 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:7491 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7491);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:7492 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7492);
+      }
+      /* parser/parser_prod.nit:7493 */
+      ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:7495 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7495);
+    }
+    /* parser/parser_prod.nit:7497 */
+    goto label1;
+  }
+  /* parser/parser_prod.nit:7499 */
+  REGB0 = TAG_Int(0);
+  REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB1)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7499);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
+  REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
+  /* ../lib/standard/kernel.nit:352 */
+  while(1) {
+    REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
+    if (UNTAG_Bool(REGB2)) {
+    } else {
+      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+    }
+    /* ../lib/standard/kernel.nit:232 */
+    REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
+    /* ../lib/standard/kernel.nit:352 */
+    if (UNTAG_Bool(REGB2)) {
+      /* parser/parser_prod.nit:7499 */
+      REGB2 = REGB0;
+      /* parser/parser_prod.nit:7500 */
+      REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
+      if (UNTAG_Bool(REGB3)) {
+      } else {
+        nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7500);
+      }
+      fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
+      fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
+      REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
+      if (UNTAG_Bool(REGB3)) {
+      } else {
+        REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+        if (UNTAG_Bool(REGB4)) {
+          REGB4 = TAG_Bool(false);
+          REGB3 = REGB4;
+        } else {
+          REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+          REGB3 = REGB4;
+        }
+      }
+      if (UNTAG_Bool(REGB3)) {
+        /* parser/parser_prod.nit:7501 */
+        REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+        if (UNTAG_Bool(REGB3)) {
+        } else {
+          REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+          if (UNTAG_Bool(REGB4)) {
+            REGB4 = TAG_Bool(false);
+            REGB3 = REGB4;
+          } else {
+            REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+            REGB3 = REGB4;
+          }
+        }
+        REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
+        if (UNTAG_Bool(REGB3)) {
+          /* parser/parser_prod.nit:7502 */
+          REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
+          if (UNTAG_Bool(REGB3)) {
+          } else {
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7502);
+          }
+          /* parser/parser_prod.nit:7503 */
+          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
+          if (UNTAG_Bool(REGB3)) {
+          } else {
+            nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7503);
+          }
+          fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
+          CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
+          /* parser/parser_prod.nit:7504 */
+          REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+          if (UNTAG_Bool(REGB3)) {
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7504);
+          }
+          CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+        } else {
+          /* parser/parser_prod.nit:7506 */
+          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
+          if (UNTAG_Bool(REGB3)) {
+          } else {
+            nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7506);
+          }
+          fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
+          CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
+        }
+        /* parser/parser_prod.nit:7508 */
+        goto label1;
+      }
+      /* ../lib/standard/kernel.nit:354 */
+      REGB2 = TAG_Int(1);
+      /* ../lib/standard/kernel.nit:235 */
+      REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
+      /* ../lib/standard/kernel.nit:354 */
+      REGB0 = REGB2;
+    } else {
+      /* ../lib/standard/kernel.nit:352 */
+      goto label2;
+    }
+  }
+  label2: while(0);
+  /* parser/parser_prod.nit:7511 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7511);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:7512 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* parser/parser_prod.nit:7513 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7513);
+      }
+      CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+      /* parser/parser_prod.nit:7514 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7514);
+      }
+      /* parser/parser_prod.nit:7515 */
+      ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
+    } else {
+      /* parser/parser_prod.nit:7517 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7517);
+    }
+    /* parser/parser_prod.nit:7519 */
+    goto label1;
+  }
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void parser___parser_prod___AParExprs___visit_all(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_prod;
+  fra.me.line = 7523;
+  fra.me.meth = LOCATE_parser___parser_prod___AParExprs___visit_all;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* parser/parser_prod.nit:7525 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7525);
+  }
+  fra.me.REG[2] = ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0]);
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  /* parser/parser_prod.nit:7526 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7526);
+  }
+  fra.me.REG[2] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AParExprs___visit_all_1));
+  /* parser/parser_prod.nit:7529 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7529);
+  }
+  fra.me.REG[0] = ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0]);
+  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+  void OC_parser___parser_prod___AParExprs___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+    struct {struct stack_frame_t me;} fra;
+    fun_t CREG[1];
+    val_t tmp;
+    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+    fra.me.file = LOCATE_parser___parser_prod;
+    fra.me.line = 0;
+    fra.me.meth = LOCATE_parser___parser_prod___AParExprs___visit_all;
+    fra.me.has_broke = 0;
+    fra.me.REG_size = 1;
+    fra.me.nitni_local_ref_head = NULL;
+    fra.me.REG[0] = NIT_NULL;
+    fra.me.closure_ctx = closctx_param;
+    fra.me.closure_funs = CREG;
+    fra.me.REG[0] = p0;
+    CREG[0] = clos_fun0;
+    /* parser/parser_prod.nit:7527 */
+    CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
+    stack_frame_head = fra.me.prev;
+    return;
+  }
+void parser___parser_prod___ABraExprs___empty_init(val_t p0, int* init_table){
+  int itpos261 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExprs].i;
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  if (init_table[itpos261]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_prod;
+  fra.me.line = 7533;
+  fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___empty_init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  stack_frame_head = fra.me.prev;
+  init_table[itpos261] = 1;
+  return;
+}
+void parser___parser_prod___ABraExprs___init_abraexprs(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
+  int itpos262 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExprs].i;
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  val_t REGB0;
+  val_t tmp;
+  if (init_table[itpos262]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_prod;
+  fra.me.line = 7535;
+  fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___init_abraexprs;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 5;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  fra.me.REG[3] = p3;
+  /* parser/parser_prod.nit:7535 */
+  fra.me.REG[4] = fra.me.REG[0];
+  /* parser/parser_prod.nit:7541 */
+  CALL_parser___parser_prod___ABraExprs___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
+  /* parser/parser_prod.nit:7542 */
+  REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7542);
+  }
+  ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[4]) = fra.me.REG[1];
+  /* parser/parser_prod.nit:7543 */
+  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7543);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExprs___init_abraexprs_1));
+  /* parser/parser_prod.nit:7549 */
+  REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7549);
+  }
+  ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[4]) = fra.me.REG[3];
+  /* parser/parser_prod.nit:7550 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7550);
+  }
+  CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
+  stack_frame_head = fra.me.prev;
+  init_table[itpos262] = 1;
+  return;
+}
+  void OC_parser___parser_prod___ABraExprs___init_abraexprs_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+    struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+    val_t REGB0;
+    fun_t CREG[1];
+    val_t tmp;
+    /* parser/parser_prod.nit:7544 */
+    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+    fra.me.file = LOCATE_parser___parser_prod;
+    fra.me.line = 0;
+    fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___init_abraexprs;
+    fra.me.has_broke = 0;
+    fra.me.REG_size = 2;
+    fra.me.nitni_local_ref_head = NULL;
+    fra.me.REG[0] = NIT_NULL;
+    fra.me.REG[1] = NIT_NULL;
+    fra.me.closure_ctx = closctx_param;
+    fra.me.closure_funs = CREG;
+    fra.me.REG[0] = p0;
+    CREG[0] = clos_fun0;
+    /* parser/parser_prod.nit:7545 */
+    REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7545);
+    }
+    /* parser/parser_prod.nit:7546 */
+    REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[4])!=NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7546);
+    }
+    fra.me.REG[1] = ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[4]);
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+    /* parser/parser_prod.nit:7547 */
+    CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
+    stack_frame_head = fra.me.prev;
+    return;
+  }
+void parser___parser_prod___ABraExprs___replace_child(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t REGB2;
+  val_t REGB3;
+  val_t REGB4;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_parser___parser_prod;
+  fra.me.line = 7553;
+  fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___replace_child;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  /* parser/parser_prod.nit:7555 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 7555);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0]);
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* parser/parser_prod.nit:7556 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -39251,34 +40563,137 @@ void parser___parser_prod___AIssetAttrExpr___replace_child(val_t p0, val_t p1, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7197 */
+      /* parser/parser_prod.nit:7557 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7197);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7557);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7198 */
-      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
+      /* parser/parser_prod.nit:7558 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast TObra*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7198);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7558);
       }
-      /* ./parser//parser_prod.nit:7199 */
-      ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
+      /* parser/parser_prod.nit:7559 */
+      ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7201 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7201);
+      /* parser/parser_prod.nit:7561 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7561);
     }
-    /* ./parser//parser_prod.nit:7203 */
+    /* parser/parser_prod.nit:7563 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7205 */
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  /* parser/parser_prod.nit:7565 */
+  REGB0 = TAG_Int(0);
+  REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB1)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7565);
+  }
+  fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
+  REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
+  /* ../lib/standard/kernel.nit:352 */
+  while(1) {
+    REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
+    if (UNTAG_Bool(REGB2)) {
+    } else {
+      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+    }
+    /* ../lib/standard/kernel.nit:232 */
+    REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
+    /* ../lib/standard/kernel.nit:352 */
+    if (UNTAG_Bool(REGB2)) {
+      /* parser/parser_prod.nit:7565 */
+      REGB2 = REGB0;
+      /* parser/parser_prod.nit:7566 */
+      REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
+      if (UNTAG_Bool(REGB3)) {
+      } else {
+        nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7566);
+      }
+      fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
+      fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
+      REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
+      if (UNTAG_Bool(REGB3)) {
+      } else {
+        REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+        if (UNTAG_Bool(REGB4)) {
+          REGB4 = TAG_Bool(false);
+          REGB3 = REGB4;
+        } else {
+          REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+          REGB3 = REGB4;
+        }
+      }
+      if (UNTAG_Bool(REGB3)) {
+        /* parser/parser_prod.nit:7567 */
+        REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+        if (UNTAG_Bool(REGB3)) {
+        } else {
+          REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+          if (UNTAG_Bool(REGB4)) {
+            REGB4 = TAG_Bool(false);
+            REGB3 = REGB4;
+          } else {
+            REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+            REGB3 = REGB4;
+          }
+        }
+        REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
+        if (UNTAG_Bool(REGB3)) {
+          /* parser/parser_prod.nit:7568 */
+          REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
+          if (UNTAG_Bool(REGB3)) {
+          } else {
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7568);
+          }
+          /* parser/parser_prod.nit:7569 */
+          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
+          if (UNTAG_Bool(REGB3)) {
+          } else {
+            nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7569);
+          }
+          fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
+          CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
+          /* parser/parser_prod.nit:7570 */
+          REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+          if (UNTAG_Bool(REGB3)) {
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7570);
+          }
+          CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+        } else {
+          /* parser/parser_prod.nit:7572 */
+          REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
+          if (UNTAG_Bool(REGB3)) {
+          } else {
+            nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7572);
+          }
+          fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
+          CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
+        }
+        /* parser/parser_prod.nit:7574 */
+        goto label1;
+      }
+      /* ../lib/standard/kernel.nit:354 */
+      REGB2 = TAG_Int(1);
+      /* ../lib/standard/kernel.nit:235 */
+      REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
+      /* ../lib/standard/kernel.nit:354 */
+      REGB0 = REGB2;
+    } else {
+      /* ../lib/standard/kernel.nit:352 */
+      goto label2;
+    }
+  }
+  label2: while(0);
+  /* parser/parser_prod.nit:7577 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7205);
+    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 7577);
   }
-  fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
+  fra.me.REG[3] = ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -39286,7 +40701,7 @@ void parser___parser_prod___AIssetAttrExpr___replace_child(val_t p0, val_t p1, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7206 */
+    /* parser/parser_prod.nit:7578 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -39301,39 +40716,39 @@ void parser___parser_prod___AIssetAttrExpr___replace_child(val_t p0, val_t p1, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7207 */
+      /* parser/parser_prod.nit:7579 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7207);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7579);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7208 */
-      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast TAttrid*/;
+      /* parser/parser_prod.nit:7580 */
+      REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCbra, ID_parser___parser_nodes___TCbra)) /*cast TCbra*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7208);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7580);
       }
-      /* ./parser//parser_prod.nit:7209 */
-      ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
+      /* parser/parser_prod.nit:7581 */
+      ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7211 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7211);
+      /* parser/parser_prod.nit:7583 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7583);
     }
-    /* ./parser//parser_prod.nit:7213 */
+    /* parser/parser_prod.nit:7585 */
     goto label1;
   }
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return;
 }
-void parser___parser_prod___AIssetAttrExpr___visit_all(val_t p0, val_t p1){
+void parser___parser_prod___ABraExprs___visit_all(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7217;
-  fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___visit_all;
+  fra.me.line = 7589;
+  fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
@@ -39342,41 +40757,62 @@ void parser___parser_prod___AIssetAttrExpr___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7219 */
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
+  /* parser/parser_prod.nit:7591 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser___parser_prod, 7219);
+    nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 7591);
   }
-  fra.me.REG[2] = ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]);
+  fra.me.REG[2] = ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:7220 */
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
+  /* parser/parser_prod.nit:7592 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7220);
+    nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7592);
   }
-  fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
-  CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:7221 */
-  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
+  fra.me.REG[2] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExprs___visit_all_1));
+  /* parser/parser_prod.nit:7595 */
+  REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7221);
+    nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 7595);
   }
-  fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
 }
+  void OC_parser___parser_prod___ABraExprs___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+    struct {struct stack_frame_t me;} fra;
+    fun_t CREG[1];
+    val_t tmp;
+    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+    fra.me.file = LOCATE_parser___parser_prod;
+    fra.me.line = 0;
+    fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___visit_all;
+    fra.me.has_broke = 0;
+    fra.me.REG_size = 1;
+    fra.me.nitni_local_ref_head = NULL;
+    fra.me.REG[0] = NIT_NULL;
+    fra.me.closure_ctx = closctx_param;
+    fra.me.closure_funs = CREG;
+    fra.me.REG[0] = p0;
+    CREG[0] = clos_fun0;
+    /* parser/parser_prod.nit:7593 */
+    CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
+    stack_frame_head = fra.me.prev;
+    return;
+  }
 void parser___parser_prod___APlusAssignOp___empty_init(val_t p0, int* init_table){
-  int itpos255 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusAssignOp].i;
+  int itpos263 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusAssignOp].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos255]) return;
+  if (init_table[itpos263]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7225;
+  fra.me.line = 7599;
   fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -39384,18 +40820,18 @@ void parser___parser_prod___APlusAssignOp___empty_init(val_t p0, int* init_table
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   stack_frame_head = fra.me.prev;
-  init_table[itpos255] = 1;
+  init_table[itpos263] = 1;
   return;
 }
 void parser___parser_prod___APlusAssignOp___init_aplusassignop(val_t p0, val_t p1, int* init_table){
-  int itpos256 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusAssignOp].i;
+  int itpos264 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusAssignOp].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
-  if (init_table[itpos256]) return;
+  if (init_table[itpos264]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7227;
+  fra.me.line = 7601;
   fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___init_aplusassignop;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -39405,25 +40841,25 @@ void parser___parser_prod___APlusAssignOp___init_aplusassignop(val_t p0, val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7227 */
+  /* parser/parser_prod.nit:7601 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7231 */
+  /* parser/parser_prod.nit:7605 */
   CALL_parser___parser_prod___APlusAssignOp___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:7232 */
+  /* parser/parser_prod.nit:7606 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7232);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7606);
   }
   ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:7233 */
+  /* parser/parser_prod.nit:7607 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7233);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7607);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  init_table[itpos256] = 1;
+  init_table[itpos264] = 1;
   return;
 }
 void parser___parser_prod___APlusAssignOp___replace_child(val_t p0, val_t p1, val_t p2){
@@ -39433,7 +40869,7 @@ void parser___parser_prod___APlusAssignOp___replace_child(val_t p0, val_t p1, va
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7236;
+  fra.me.line = 7610;
   fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -39445,11 +40881,11 @@ void parser___parser_prod___APlusAssignOp___replace_child(val_t p0, val_t p1, va
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7238 */
+  /* parser/parser_prod.nit:7612 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser___parser_prod, 7238);
+    nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser___parser_prod, 7612);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -39459,7 +40895,7 @@ void parser___parser_prod___APlusAssignOp___replace_child(val_t p0, val_t p1, va
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7239 */
+    /* parser/parser_prod.nit:7613 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -39474,25 +40910,25 @@ void parser___parser_prod___APlusAssignOp___replace_child(val_t p0, val_t p1, va
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7240 */
+      /* parser/parser_prod.nit:7614 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7240);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7614);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7241 */
+      /* parser/parser_prod.nit:7615 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TPluseq, ID_parser___parser_nodes___TPluseq)) /*cast TPluseq*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7241);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7615);
       }
-      /* ./parser//parser_prod.nit:7242 */
+      /* parser/parser_prod.nit:7616 */
       ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7244 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7244);
+      /* parser/parser_prod.nit:7618 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7618);
     }
-    /* ./parser//parser_prod.nit:7246 */
+    /* parser/parser_prod.nit:7620 */
     goto label1;
   }
   label1: while(0);
@@ -39505,7 +40941,7 @@ void parser___parser_prod___APlusAssignOp___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7250;
+  fra.me.line = 7624;
   fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -39514,11 +40950,11 @@ void parser___parser_prod___APlusAssignOp___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7252 */
+  /* parser/parser_prod.nit:7626 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser___parser_prod, 7252);
+    nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser___parser_prod, 7626);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -39526,13 +40962,13 @@ void parser___parser_prod___APlusAssignOp___visit_all(val_t p0, val_t p1){
   return;
 }
 void parser___parser_prod___AMinusAssignOp___empty_init(val_t p0, int* init_table){
-  int itpos257 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusAssignOp].i;
+  int itpos265 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusAssignOp].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos257]) return;
+  if (init_table[itpos265]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7256;
+  fra.me.line = 7630;
   fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -39540,18 +40976,18 @@ void parser___parser_prod___AMinusAssignOp___empty_init(val_t p0, int* init_tabl
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   stack_frame_head = fra.me.prev;
-  init_table[itpos257] = 1;
+  init_table[itpos265] = 1;
   return;
 }
 void parser___parser_prod___AMinusAssignOp___init_aminusassignop(val_t p0, val_t p1, int* init_table){
-  int itpos258 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusAssignOp].i;
+  int itpos266 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusAssignOp].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
-  if (init_table[itpos258]) return;
+  if (init_table[itpos266]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7258;
+  fra.me.line = 7632;
   fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___init_aminusassignop;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -39561,25 +40997,25 @@ void parser___parser_prod___AMinusAssignOp___init_aminusassignop(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7258 */
+  /* parser/parser_prod.nit:7632 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7262 */
+  /* parser/parser_prod.nit:7636 */
   CALL_parser___parser_prod___AMinusAssignOp___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:7263 */
+  /* parser/parser_prod.nit:7637 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7263);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7637);
   }
   ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:7264 */
+  /* parser/parser_prod.nit:7638 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7264);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7638);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  init_table[itpos258] = 1;
+  init_table[itpos266] = 1;
   return;
 }
 void parser___parser_prod___AMinusAssignOp___replace_child(val_t p0, val_t p1, val_t p2){
@@ -39589,7 +41025,7 @@ void parser___parser_prod___AMinusAssignOp___replace_child(val_t p0, val_t p1, v
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7267;
+  fra.me.line = 7641;
   fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -39601,11 +41037,11 @@ void parser___parser_prod___AMinusAssignOp___replace_child(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7269 */
+  /* parser/parser_prod.nit:7643 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser___parser_prod, 7269);
+    nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser___parser_prod, 7643);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -39615,7 +41051,7 @@ void parser___parser_prod___AMinusAssignOp___replace_child(val_t p0, val_t p1, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7270 */
+    /* parser/parser_prod.nit:7644 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -39630,25 +41066,25 @@ void parser___parser_prod___AMinusAssignOp___replace_child(val_t p0, val_t p1, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7271 */
+      /* parser/parser_prod.nit:7645 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7271);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7645);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7272 */
+      /* parser/parser_prod.nit:7646 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TMinuseq, ID_parser___parser_nodes___TMinuseq)) /*cast TMinuseq*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7272);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7646);
       }
-      /* ./parser//parser_prod.nit:7273 */
+      /* parser/parser_prod.nit:7647 */
       ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7275 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7275);
+      /* parser/parser_prod.nit:7649 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7649);
     }
-    /* ./parser//parser_prod.nit:7277 */
+    /* parser/parser_prod.nit:7651 */
     goto label1;
   }
   label1: while(0);
@@ -39661,7 +41097,7 @@ void parser___parser_prod___AMinusAssignOp___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7281;
+  fra.me.line = 7655;
   fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -39670,11 +41106,11 @@ void parser___parser_prod___AMinusAssignOp___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7283 */
+  /* parser/parser_prod.nit:7657 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser___parser_prod, 7283);
+    nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser___parser_prod, 7657);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -39682,13 +41118,13 @@ void parser___parser_prod___AMinusAssignOp___visit_all(val_t p0, val_t p1){
   return;
 }
 void parser___parser_prod___AClosureDef___empty_init(val_t p0, int* init_table){
-  int itpos259 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDef].i;
+  int itpos267 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDef].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos259]) return;
+  if (init_table[itpos267]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7287;
+  fra.me.line = 7661;
   fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -39696,19 +41132,19 @@ void parser___parser_prod___AClosureDef___empty_init(val_t p0, int* init_table){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   stack_frame_head = fra.me.prev;
-  init_table[itpos259] = 1;
+  init_table[itpos267] = 1;
   return;
 }
 void parser___parser_prod___AClosureDef___init_aclosuredef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, int* init_table){
-  int itpos260 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDef].i;
+  int itpos268 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDef].i;
   struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
-  if (init_table[itpos260]) return;
+  if (init_table[itpos268]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7289;
+  fra.me.line = 7663;
   fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___init_aclosuredef;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -39728,40 +41164,40 @@ void parser___parser_prod___AClosureDef___init_aclosuredef(val_t p0, val_t p1, v
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
   fra.me.REG[6] = p6;
-  /* ./parser//parser_prod.nit:7289 */
+  /* parser/parser_prod.nit:7663 */
   fra.me.REG[7] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7298 */
+  /* parser/parser_prod.nit:7672 */
   CALL_parser___parser_prod___AClosureDef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
-  /* ./parser//parser_prod.nit:7299 */
+  /* parser/parser_prod.nit:7673 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7299);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7673);
   }
   ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[7]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:7300 */
+  /* parser/parser_prod.nit:7674 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7300);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7674);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
-  /* ./parser//parser_prod.nit:7301 */
+  /* parser/parser_prod.nit:7675 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7301);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7675);
   }
   ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[7]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:7302 */
+  /* parser/parser_prod.nit:7676 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7302);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7676);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AClosureDef___init_aclosuredef_1));
-  /* ./parser//parser_prod.nit:7308 */
+  /* parser/parser_prod.nit:7682 */
   ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[7]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:7309 */
+  /* parser/parser_prod.nit:7683 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -39776,16 +41212,16 @@ void parser___parser_prod___AClosureDef___init_aclosuredef(val_t p0, val_t p1, v
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7310 */
+    /* parser/parser_prod.nit:7684 */
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7310);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7684);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
   }
-  /* ./parser//parser_prod.nit:7312 */
+  /* parser/parser_prod.nit:7686 */
   ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[7]) = fra.me.REG[5];
-  /* ./parser//parser_prod.nit:7313 */
+  /* parser/parser_prod.nit:7687 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -39800,16 +41236,16 @@ void parser___parser_prod___AClosureDef___init_aclosuredef(val_t p0, val_t p1, v
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7314 */
+    /* parser/parser_prod.nit:7688 */
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7314);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7688);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
   }
-  /* ./parser//parser_prod.nit:7316 */
+  /* parser/parser_prod.nit:7690 */
   ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[7]) = fra.me.REG[6];
-  /* ./parser//parser_prod.nit:7317 */
+  /* parser/parser_prod.nit:7691 */
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -39824,15 +41260,15 @@ void parser___parser_prod___AClosureDef___init_aclosuredef(val_t p0, val_t p1, v
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7318 */
+    /* parser/parser_prod.nit:7692 */
     REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7318);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7692);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
   }
   stack_frame_head = fra.me.prev;
-  init_table[itpos260] = 1;
+  init_table[itpos268] = 1;
   return;
 }
   void OC_parser___parser_prod___AClosureDef___init_aclosuredef_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
@@ -39840,7 +41276,7 @@ void parser___parser_prod___AClosureDef___init_aclosuredef(val_t p0, val_t p1, v
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:7303 */
+    /* parser/parser_prod.nit:7677 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -39854,21 +41290,21 @@ void parser___parser_prod___AClosureDef___init_aclosuredef(val_t p0, val_t p1, v
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:7304 */
+    /* parser/parser_prod.nit:7678 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7304);
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7678);
     }
-    /* ./parser//parser_prod.nit:7305 */
+    /* parser/parser_prod.nit:7679 */
     REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(closctx->REG[7])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7305);
+      nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7679);
     }
     fra.me.REG[1] = ATTR_parser___parser_nodes___AClosureDef____n_ids(closctx->REG[7]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:7306 */
+    /* parser/parser_prod.nit:7680 */
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[7]);
     stack_frame_head = fra.me.prev;
     return;
@@ -39883,7 +41319,7 @@ void parser___parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7322;
+  fra.me.line = 7696;
   fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -39895,11 +41331,11 @@ void parser___parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7324 */
+  /* parser/parser_prod.nit:7698 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 7324);
+    nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 7698);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -39909,7 +41345,7 @@ void parser___parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7325 */
+    /* parser/parser_prod.nit:7699 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -39924,32 +41360,32 @@ void parser___parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7326 */
+      /* parser/parser_prod.nit:7700 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7326);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7700);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7327 */
+      /* parser/parser_prod.nit:7701 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast TBang*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7327);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7701);
       }
-      /* ./parser//parser_prod.nit:7328 */
+      /* parser/parser_prod.nit:7702 */
       ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7330 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7330);
+      /* parser/parser_prod.nit:7704 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7704);
     }
-    /* ./parser//parser_prod.nit:7332 */
+    /* parser/parser_prod.nit:7706 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7334 */
+  /* parser/parser_prod.nit:7708 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7334);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7708);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -39959,7 +41395,7 @@ void parser___parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7335 */
+    /* parser/parser_prod.nit:7709 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -39974,54 +41410,54 @@ void parser___parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7336 */
+      /* parser/parser_prod.nit:7710 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7336);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7710);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7337 */
+      /* parser/parser_prod.nit:7711 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClosureId, ID_parser___parser_nodes___AClosureId)) /*cast AClosureId*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7337);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7711);
       }
-      /* ./parser//parser_prod.nit:7338 */
+      /* parser/parser_prod.nit:7712 */
       ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7340 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7340);
+      /* parser/parser_prod.nit:7714 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7714);
     }
-    /* ./parser//parser_prod.nit:7342 */
+    /* parser/parser_prod.nit:7716 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7344 */
+  /* parser/parser_prod.nit:7718 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7344);
+    nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7718);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:7344 */
+      /* parser/parser_prod.nit:7718 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:7345 */
+      /* parser/parser_prod.nit:7719 */
       REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7345);
+        nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7719);
       }
       fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
@@ -40038,7 +41474,7 @@ void parser___parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:7346 */
+        /* parser/parser_prod.nit:7720 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -40053,52 +41489,52 @@ void parser___parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:7347 */
+          /* parser/parser_prod.nit:7721 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7347);
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7721);
           }
-          /* ./parser//parser_prod.nit:7348 */
+          /* parser/parser_prod.nit:7722 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7348);
+            nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7722);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:7349 */
+          /* parser/parser_prod.nit:7723 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7349);
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7723);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:7351 */
+          /* parser/parser_prod.nit:7725 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7351);
+            nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7725);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:7353 */
+        /* parser/parser_prod.nit:7727 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./parser//parser_prod.nit:7356 */
+  /* parser/parser_prod.nit:7730 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -40113,7 +41549,7 @@ void parser___parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7357 */
+    /* parser/parser_prod.nit:7731 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -40128,28 +41564,28 @@ void parser___parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7358 */
+      /* parser/parser_prod.nit:7732 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7358);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7732);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7359 */
+      /* parser/parser_prod.nit:7733 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast TKwdo*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7359);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7733);
       }
-      /* ./parser//parser_prod.nit:7360 */
+      /* parser/parser_prod.nit:7734 */
       ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7362 */
+      /* parser/parser_prod.nit:7736 */
       ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:7364 */
+    /* parser/parser_prod.nit:7738 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7366 */
+  /* parser/parser_prod.nit:7740 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -40164,7 +41600,7 @@ void parser___parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7367 */
+    /* parser/parser_prod.nit:7741 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -40179,28 +41615,28 @@ void parser___parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7368 */
+      /* parser/parser_prod.nit:7742 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7368);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7742);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7369 */
+      /* parser/parser_prod.nit:7743 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7369);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7743);
       }
-      /* ./parser//parser_prod.nit:7370 */
+      /* parser/parser_prod.nit:7744 */
       ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7372 */
+      /* parser/parser_prod.nit:7746 */
       ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:7374 */
+    /* parser/parser_prod.nit:7748 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7376 */
+  /* parser/parser_prod.nit:7750 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -40215,7 +41651,7 @@ void parser___parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7377 */
+    /* parser/parser_prod.nit:7751 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -40230,25 +41666,25 @@ void parser___parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7378 */
+      /* parser/parser_prod.nit:7752 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7378);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7752);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7379 */
+      /* parser/parser_prod.nit:7753 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7379);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7753);
       }
-      /* ./parser//parser_prod.nit:7380 */
+      /* parser/parser_prod.nit:7754 */
       ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7382 */
+      /* parser/parser_prod.nit:7756 */
       ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:7384 */
+    /* parser/parser_prod.nit:7758 */
     goto label1;
   }
   label1: while(0);
@@ -40262,7 +41698,7 @@ void parser___parser_prod___AClosureDef___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7388;
+  fra.me.line = 7762;
   fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -40273,33 +41709,33 @@ void parser___parser_prod___AClosureDef___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7388 */
+  /* parser/parser_prod.nit:7762 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7390 */
+  /* parser/parser_prod.nit:7764 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 7390);
+    nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 7764);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:7391 */
+  /* parser/parser_prod.nit:7765 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7391);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7765);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:7392 */
+  /* parser/parser_prod.nit:7766 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7392);
+    nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 7766);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AClosureDef___visit_all_1));
-  /* ./parser//parser_prod.nit:7395 */
+  /* parser/parser_prod.nit:7769 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -40315,16 +41751,16 @@ void parser___parser_prod___AClosureDef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7396 */
+    /* parser/parser_prod.nit:7770 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast TKwdo*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7396);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7770);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:7398 */
+  /* parser/parser_prod.nit:7772 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -40340,16 +41776,16 @@ void parser___parser_prod___AClosureDef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7399 */
+    /* parser/parser_prod.nit:7773 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7399);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7773);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:7401 */
+  /* parser/parser_prod.nit:7775 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -40365,12 +41801,12 @@ void parser___parser_prod___AClosureDef___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7402 */
+    /* parser/parser_prod.nit:7776 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7402);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7776);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -40393,19 +41829,19 @@ void parser___parser_prod___AClosureDef___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:7393 */
+    /* parser/parser_prod.nit:7767 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
   }
 void parser___parser_prod___ASimpleClosureId___empty_init(val_t p0, int* init_table){
-  int itpos261 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASimpleClosureId].i;
+  int itpos269 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASimpleClosureId].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos261]) return;
+  if (init_table[itpos269]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7407;
+  fra.me.line = 7781;
   fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -40413,18 +41849,18 @@ void parser___parser_prod___ASimpleClosureId___empty_init(val_t p0, int* init_ta
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   stack_frame_head = fra.me.prev;
-  init_table[itpos261] = 1;
+  init_table[itpos269] = 1;
   return;
 }
 void parser___parser_prod___ASimpleClosureId___init_asimpleclosureid(val_t p0, val_t p1, int* init_table){
-  int itpos262 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASimpleClosureId].i;
+  int itpos270 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASimpleClosureId].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
-  if (init_table[itpos262]) return;
+  if (init_table[itpos270]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7409;
+  fra.me.line = 7783;
   fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___init_asimpleclosureid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -40434,25 +41870,25 @@ void parser___parser_prod___ASimpleClosureId___init_asimpleclosureid(val_t p0, v
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7409 */
+  /* parser/parser_prod.nit:7783 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7413 */
+  /* parser/parser_prod.nit:7787 */
   CALL_parser___parser_prod___ASimpleClosureId___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:7414 */
+  /* parser/parser_prod.nit:7788 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7414);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7788);
   }
   ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:7415 */
+  /* parser/parser_prod.nit:7789 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7415);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7789);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  init_table[itpos262] = 1;
+  init_table[itpos270] = 1;
   return;
 }
 void parser___parser_prod___ASimpleClosureId___replace_child(val_t p0, val_t p1, val_t p2){
@@ -40462,7 +41898,7 @@ void parser___parser_prod___ASimpleClosureId___replace_child(val_t p0, val_t p1,
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7418;
+  fra.me.line = 7792;
   fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -40474,11 +41910,11 @@ void parser___parser_prod___ASimpleClosureId___replace_child(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7420 */
+  /* parser/parser_prod.nit:7794 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7420);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7794);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -40488,7 +41924,7 @@ void parser___parser_prod___ASimpleClosureId___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7421 */
+    /* parser/parser_prod.nit:7795 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -40503,25 +41939,25 @@ void parser___parser_prod___ASimpleClosureId___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7422 */
+      /* parser/parser_prod.nit:7796 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7422);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7796);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7423 */
+      /* parser/parser_prod.nit:7797 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7423);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7797);
       }
-      /* ./parser//parser_prod.nit:7424 */
+      /* parser/parser_prod.nit:7798 */
       ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7426 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7426);
+      /* parser/parser_prod.nit:7800 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7800);
     }
-    /* ./parser//parser_prod.nit:7428 */
+    /* parser/parser_prod.nit:7802 */
     goto label1;
   }
   label1: while(0);
@@ -40534,7 +41970,7 @@ void parser___parser_prod___ASimpleClosureId___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7432;
+  fra.me.line = 7806;
   fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -40543,11 +41979,11 @@ void parser___parser_prod___ASimpleClosureId___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7434 */
+  /* parser/parser_prod.nit:7808 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7434);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7808);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -40555,13 +41991,13 @@ void parser___parser_prod___ASimpleClosureId___visit_all(val_t p0, val_t p1){
   return;
 }
 void parser___parser_prod___ABreakClosureId___empty_init(val_t p0, int* init_table){
-  int itpos263 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakClosureId].i;
+  int itpos271 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakClosureId].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos263]) return;
+  if (init_table[itpos271]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7438;
+  fra.me.line = 7812;
   fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -40569,18 +42005,18 @@ void parser___parser_prod___ABreakClosureId___empty_init(val_t p0, int* init_tab
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   stack_frame_head = fra.me.prev;
-  init_table[itpos263] = 1;
+  init_table[itpos271] = 1;
   return;
 }
 void parser___parser_prod___ABreakClosureId___init_abreakclosureid(val_t p0, val_t p1, int* init_table){
-  int itpos264 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakClosureId].i;
+  int itpos272 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakClosureId].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
-  if (init_table[itpos264]) return;
+  if (init_table[itpos272]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7440;
+  fra.me.line = 7814;
   fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___init_abreakclosureid;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -40590,25 +42026,25 @@ void parser___parser_prod___ABreakClosureId___init_abreakclosureid(val_t p0, val
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7440 */
+  /* parser/parser_prod.nit:7814 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7444 */
+  /* parser/parser_prod.nit:7818 */
   CALL_parser___parser_prod___ABreakClosureId___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:7445 */
+  /* parser/parser_prod.nit:7819 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7445);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7819);
   }
   ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:7446 */
+  /* parser/parser_prod.nit:7820 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7446);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7820);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  init_table[itpos264] = 1;
+  init_table[itpos272] = 1;
   return;
 }
 void parser___parser_prod___ABreakClosureId___replace_child(val_t p0, val_t p1, val_t p2){
@@ -40618,7 +42054,7 @@ void parser___parser_prod___ABreakClosureId___replace_child(val_t p0, val_t p1,
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7449;
+  fra.me.line = 7823;
   fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -40630,11 +42066,11 @@ void parser___parser_prod___ABreakClosureId___replace_child(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7451 */
+  /* parser/parser_prod.nit:7825 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 7451);
+    nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 7825);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -40644,7 +42080,7 @@ void parser___parser_prod___ABreakClosureId___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7452 */
+    /* parser/parser_prod.nit:7826 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -40659,25 +42095,25 @@ void parser___parser_prod___ABreakClosureId___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7453 */
+      /* parser/parser_prod.nit:7827 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7453);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7827);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7454 */
+      /* parser/parser_prod.nit:7828 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwbreak, ID_parser___parser_nodes___TKwbreak)) /*cast TKwbreak*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7454);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7828);
       }
-      /* ./parser//parser_prod.nit:7455 */
+      /* parser/parser_prod.nit:7829 */
       ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7457 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7457);
+      /* parser/parser_prod.nit:7831 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7831);
     }
-    /* ./parser//parser_prod.nit:7459 */
+    /* parser/parser_prod.nit:7833 */
     goto label1;
   }
   label1: while(0);
@@ -40690,7 +42126,7 @@ void parser___parser_prod___ABreakClosureId___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7463;
+  fra.me.line = 7837;
   fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -40699,11 +42135,11 @@ void parser___parser_prod___ABreakClosureId___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7465 */
+  /* parser/parser_prod.nit:7839 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 7465);
+    nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 7839);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -40711,13 +42147,13 @@ void parser___parser_prod___ABreakClosureId___visit_all(val_t p0, val_t p1){
   return;
 }
 void parser___parser_prod___AModuleName___empty_init(val_t p0, int* init_table){
-  int itpos265 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuleName].i;
+  int itpos273 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuleName].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos265]) return;
+  if (init_table[itpos273]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7469;
+  fra.me.line = 7843;
   fra.me.meth = LOCATE_parser___parser_prod___AModuleName___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -40725,19 +42161,19 @@ void parser___parser_prod___AModuleName___empty_init(val_t p0, int* init_table){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   stack_frame_head = fra.me.prev;
-  init_table[itpos265] = 1;
+  init_table[itpos273] = 1;
   return;
 }
 void parser___parser_prod___AModuleName___init_amodulename(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
-  int itpos266 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuleName].i;
+  int itpos274 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuleName].i;
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
-  if (init_table[itpos266]) return;
+  if (init_table[itpos274]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7471;
+  fra.me.line = 7845;
   fra.me.meth = LOCATE_parser___parser_prod___AModuleName___init_amodulename;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -40751,13 +42187,13 @@ void parser___parser_prod___AModuleName___init_amodulename(val_t p0, val_t p1, v
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:7471 */
+  /* parser/parser_prod.nit:7845 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7477 */
+  /* parser/parser_prod.nit:7851 */
   CALL_parser___parser_prod___AModuleName___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:7478 */
+  /* parser/parser_prod.nit:7852 */
   ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:7479 */
+  /* parser/parser_prod.nit:7853 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -40772,29 +42208,29 @@ void parser___parser_prod___AModuleName___init_amodulename(val_t p0, val_t p1, v
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7480 */
+    /* parser/parser_prod.nit:7854 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7480);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7854);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
   }
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AModuleName___init_amodulename_1));
-  /* ./parser//parser_prod.nit:7487 */
+  /* parser/parser_prod.nit:7861 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7487);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7861);
   }
   ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[4]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:7488 */
+  /* parser/parser_prod.nit:7862 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7488);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7862);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   stack_frame_head = fra.me.prev;
-  init_table[itpos266] = 1;
+  init_table[itpos274] = 1;
   return;
 }
   void OC_parser___parser_prod___AModuleName___init_amodulename_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
@@ -40802,7 +42238,7 @@ void parser___parser_prod___AModuleName___init_amodulename(val_t p0, val_t p1, v
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:7482 */
+    /* parser/parser_prod.nit:7856 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -40816,21 +42252,21 @@ void parser___parser_prod___AModuleName___init_amodulename(val_t p0, val_t p1, v
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:7483 */
+    /* parser/parser_prod.nit:7857 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7483);
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7857);
     }
-    /* ./parser//parser_prod.nit:7484 */
+    /* parser/parser_prod.nit:7858 */
     REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(closctx->REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7484);
+      nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7858);
     }
     fra.me.REG[1] = ATTR_parser___parser_nodes___AModuleName____n_path(closctx->REG[4]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:7485 */
+    /* parser/parser_prod.nit:7859 */
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
     stack_frame_head = fra.me.prev;
     return;
@@ -40845,7 +42281,7 @@ void parser___parser_prod___AModuleName___replace_child(val_t p0, val_t p1, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7491;
+  fra.me.line = 7865;
   fra.me.meth = LOCATE_parser___parser_prod___AModuleName___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -40857,7 +42293,7 @@ void parser___parser_prod___AModuleName___replace_child(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7493 */
+  /* parser/parser_prod.nit:7867 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -40872,7 +42308,7 @@ void parser___parser_prod___AModuleName___replace_child(val_t p0, val_t p1, val_
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7494 */
+    /* parser/parser_prod.nit:7868 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -40887,54 +42323,54 @@ void parser___parser_prod___AModuleName___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7495 */
+      /* parser/parser_prod.nit:7869 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7495);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7869);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7496 */
+      /* parser/parser_prod.nit:7870 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TQuad, ID_parser___parser_nodes___TQuad)) /*cast TQuad*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7496);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7870);
       }
-      /* ./parser//parser_prod.nit:7497 */
+      /* parser/parser_prod.nit:7871 */
       ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7499 */
+      /* parser/parser_prod.nit:7873 */
       ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:7501 */
+    /* parser/parser_prod.nit:7875 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7503 */
+  /* parser/parser_prod.nit:7877 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7503);
+    nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7877);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:7503 */
+      /* parser/parser_prod.nit:7877 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:7504 */
+      /* parser/parser_prod.nit:7878 */
       REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7504);
+        nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7878);
       }
       fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
@@ -40951,7 +42387,7 @@ void parser___parser_prod___AModuleName___replace_child(val_t p0, val_t p1, val_
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:7505 */
+        /* parser/parser_prod.nit:7879 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -40966,56 +42402,56 @@ void parser___parser_prod___AModuleName___replace_child(val_t p0, val_t p1, val_
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:7506 */
+          /* parser/parser_prod.nit:7880 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7506);
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7880);
           }
-          /* ./parser//parser_prod.nit:7507 */
+          /* parser/parser_prod.nit:7881 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7507);
+            nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7881);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:7508 */
+          /* parser/parser_prod.nit:7882 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7508);
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7882);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:7510 */
+          /* parser/parser_prod.nit:7884 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7510);
+            nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7884);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:7512 */
+        /* parser/parser_prod.nit:7886 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./parser//parser_prod.nit:7515 */
+  /* parser/parser_prod.nit:7889 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7515);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7889);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -41025,7 +42461,7 @@ void parser___parser_prod___AModuleName___replace_child(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7516 */
+    /* parser/parser_prod.nit:7890 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -41040,25 +42476,25 @@ void parser___parser_prod___AModuleName___replace_child(val_t p0, val_t p1, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7517 */
+      /* parser/parser_prod.nit:7891 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7517);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7891);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7518 */
+      /* parser/parser_prod.nit:7892 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7518);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7892);
       }
-      /* ./parser//parser_prod.nit:7519 */
+      /* parser/parser_prod.nit:7893 */
       ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7521 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7521);
+      /* parser/parser_prod.nit:7895 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7895);
     }
-    /* ./parser//parser_prod.nit:7523 */
+    /* parser/parser_prod.nit:7897 */
     goto label1;
   }
   label1: while(0);
@@ -41072,7 +42508,7 @@ void parser___parser_prod___AModuleName___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7527;
+  fra.me.line = 7901;
   fra.me.meth = LOCATE_parser___parser_prod___AModuleName___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -41083,9 +42519,9 @@ void parser___parser_prod___AModuleName___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7527 */
+  /* parser/parser_prod.nit:7901 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7529 */
+  /* parser/parser_prod.nit:7903 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -41101,28 +42537,28 @@ void parser___parser_prod___AModuleName___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7530 */
+    /* parser/parser_prod.nit:7904 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TQuad, ID_parser___parser_nodes___TQuad)) /*cast TQuad*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7530);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7904);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:7532 */
+  /* parser/parser_prod.nit:7906 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7532);
+    nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 7906);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AModuleName___visit_all_1));
-  /* ./parser//parser_prod.nit:7535 */
+  /* parser/parser_prod.nit:7909 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7535);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7909);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
@@ -41145,19 +42581,19 @@ void parser___parser_prod___AModuleName___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:7533 */
+    /* parser/parser_prod.nit:7907 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
   }
 void parser___parser_prod___AExternCalls___empty_init(val_t p0, int* init_table){
-  int itpos267 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCalls].i;
+  int itpos275 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCalls].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos267]) return;
+  if (init_table[itpos275]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7539;
+  fra.me.line = 7913;
   fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -41165,18 +42601,18 @@ void parser___parser_prod___AExternCalls___empty_init(val_t p0, int* init_table)
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   stack_frame_head = fra.me.prev;
-  init_table[itpos267] = 1;
+  init_table[itpos275] = 1;
   return;
 }
 void parser___parser_prod___AExternCalls___init_aexterncalls(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos268 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCalls].i;
+  int itpos276 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCalls].i;
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
-  if (init_table[itpos268]) return;
+  if (init_table[itpos276]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7541;
+  fra.me.line = 7915;
   fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___init_aexterncalls;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -41188,26 +42624,26 @@ void parser___parser_prod___AExternCalls___init_aexterncalls(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7541 */
+  /* parser/parser_prod.nit:7915 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7546 */
+  /* parser/parser_prod.nit:7920 */
   CALL_parser___parser_prod___AExternCalls___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
-  /* ./parser//parser_prod.nit:7547 */
+  /* parser/parser_prod.nit:7921 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7547);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7921);
   }
   ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:7548 */
+  /* parser/parser_prod.nit:7922 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7548);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7922);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AExternCalls___init_aexterncalls_1));
   stack_frame_head = fra.me.prev;
-  init_table[itpos268] = 1;
+  init_table[itpos276] = 1;
   return;
 }
   void OC_parser___parser_prod___AExternCalls___init_aexterncalls_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
@@ -41215,7 +42651,7 @@ void parser___parser_prod___AExternCalls___init_aexterncalls(val_t p0, val_t p1,
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:7549 */
+    /* parser/parser_prod.nit:7923 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -41229,21 +42665,21 @@ void parser___parser_prod___AExternCalls___init_aexterncalls(val_t p0, val_t p1,
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:7550 */
+    /* parser/parser_prod.nit:7924 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExternCall, ID_parser___parser_nodes___AExternCall)) /*cast AExternCall*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7550);
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7924);
     }
-    /* ./parser//parser_prod.nit:7551 */
+    /* parser/parser_prod.nit:7925 */
     REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(closctx->REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7551);
+      nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7925);
     }
     fra.me.REG[1] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(closctx->REG[3]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:7552 */
+    /* parser/parser_prod.nit:7926 */
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[3]);
     stack_frame_head = fra.me.prev;
     return;
@@ -41258,7 +42694,7 @@ void parser___parser_prod___AExternCalls___replace_child(val_t p0, val_t p1, val
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7556;
+  fra.me.line = 7930;
   fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -41270,11 +42706,11 @@ void parser___parser_prod___AExternCalls___replace_child(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7558 */
+  /* parser/parser_prod.nit:7932 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 7558);
+    nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 7932);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -41284,7 +42720,7 @@ void parser___parser_prod___AExternCalls___replace_child(val_t p0, val_t p1, val
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7559 */
+    /* parser/parser_prod.nit:7933 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -41299,54 +42735,54 @@ void parser___parser_prod___AExternCalls___replace_child(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7560 */
+      /* parser/parser_prod.nit:7934 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7560);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7934);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7561 */
+      /* parser/parser_prod.nit:7935 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwimport, ID_parser___parser_nodes___TKwimport)) /*cast TKwimport*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7561);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7935);
       }
-      /* ./parser//parser_prod.nit:7562 */
+      /* parser/parser_prod.nit:7936 */
       ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7564 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7564);
+      /* parser/parser_prod.nit:7938 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7938);
     }
-    /* ./parser//parser_prod.nit:7566 */
+    /* parser/parser_prod.nit:7940 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7568 */
+  /* parser/parser_prod.nit:7942 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7568);
+    nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7942);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:7568 */
+      /* parser/parser_prod.nit:7942 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:7569 */
+      /* parser/parser_prod.nit:7943 */
       REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7569);
+        nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7943);
       }
       fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
@@ -41363,7 +42799,7 @@ void parser___parser_prod___AExternCalls___replace_child(val_t p0, val_t p1, val
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:7570 */
+        /* parser/parser_prod.nit:7944 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -41378,47 +42814,47 @@ void parser___parser_prod___AExternCalls___replace_child(val_t p0, val_t p1, val
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:7571 */
+          /* parser/parser_prod.nit:7945 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCall, ID_parser___parser_nodes___AExternCall)) /*cast AExternCall*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7571);
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7945);
           }
-          /* ./parser//parser_prod.nit:7572 */
+          /* parser/parser_prod.nit:7946 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7572);
+            nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7946);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:7573 */
+          /* parser/parser_prod.nit:7947 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7573);
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7947);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:7575 */
+          /* parser/parser_prod.nit:7949 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7575);
+            nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7949);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:7577 */
+        /* parser/parser_prod.nit:7951 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label2;
     }
   }
@@ -41433,7 +42869,7 @@ void parser___parser_prod___AExternCalls___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7582;
+  fra.me.line = 7956;
   fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -41443,19 +42879,19 @@ void parser___parser_prod___AExternCalls___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7584 */
+  /* parser/parser_prod.nit:7958 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 7584);
+    nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 7958);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:7585 */
+  /* parser/parser_prod.nit:7959 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7585);
+    nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 7959);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AExternCalls___visit_all_1));
@@ -41478,19 +42914,19 @@ void parser___parser_prod___AExternCalls___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:7586 */
+    /* parser/parser_prod.nit:7960 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
   }
 void parser___parser_prod___AExternCall___empty_init(val_t p0, int* init_table){
-  int itpos269 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCall].i;
+  int itpos277 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCall].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos269]) return;
+  if (init_table[itpos277]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7591;
+  fra.me.line = 7965;
   fra.me.meth = LOCATE_parser___parser_prod___AExternCall___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -41498,27 +42934,27 @@ void parser___parser_prod___AExternCall___empty_init(val_t p0, int* init_table){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   stack_frame_head = fra.me.prev;
-  init_table[itpos269] = 1;
+  init_table[itpos277] = 1;
   return;
 }
 void parser___parser_prod___AExternCall___init_aexterncall(val_t p0, int* init_table){
-  int itpos270 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCall].i;
+  int itpos278 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCall].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos270]) return;
+  if (init_table[itpos278]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7593;
+  fra.me.line = 7967;
   fra.me.meth = LOCATE_parser___parser_prod___AExternCall___init_aexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./parser//parser_prod.nit:7595 */
+  /* parser/parser_prod.nit:7969 */
   CALL_parser___parser_prod___AExternCall___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
   stack_frame_head = fra.me.prev;
-  init_table[itpos270] = 1;
+  init_table[itpos278] = 1;
   return;
 }
 void parser___parser_prod___AExternCall___replace_child(val_t p0, val_t p1, val_t p2){
@@ -41526,7 +42962,7 @@ void parser___parser_prod___AExternCall___replace_child(val_t p0, val_t p1, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7598;
+  fra.me.line = 7972;
   fra.me.meth = LOCATE_parser___parser_prod___AExternCall___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -41545,7 +42981,7 @@ void parser___parser_prod___AExternCall___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7602;
+  fra.me.line = 7976;
   fra.me.meth = LOCATE_parser___parser_prod___AExternCall___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -41558,13 +42994,13 @@ void parser___parser_prod___AExternCall___visit_all(val_t p0, val_t p1){
   return;
 }
 void parser___parser_prod___ASuperExternCall___empty_init(val_t p0, int* init_table){
-  int itpos271 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExternCall].i;
+  int itpos279 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExternCall].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos271]) return;
+  if (init_table[itpos279]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7607;
+  fra.me.line = 7981;
   fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -41572,18 +43008,18 @@ void parser___parser_prod___ASuperExternCall___empty_init(val_t p0, int* init_ta
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   stack_frame_head = fra.me.prev;
-  init_table[itpos271] = 1;
+  init_table[itpos279] = 1;
   return;
 }
 void parser___parser_prod___ASuperExternCall___init_asuperexterncall(val_t p0, val_t p1, int* init_table){
-  int itpos272 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExternCall].i;
+  int itpos280 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExternCall].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
-  if (init_table[itpos272]) return;
+  if (init_table[itpos280]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7609;
+  fra.me.line = 7983;
   fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___init_asuperexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -41593,25 +43029,25 @@ void parser___parser_prod___ASuperExternCall___init_asuperexterncall(val_t p0, v
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7609 */
+  /* parser/parser_prod.nit:7983 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7613 */
+  /* parser/parser_prod.nit:7987 */
   CALL_parser___parser_prod___ASuperExternCall___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:7614 */
+  /* parser/parser_prod.nit:7988 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7614);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7988);
   }
   ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:7615 */
+  /* parser/parser_prod.nit:7989 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7615);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7989);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  init_table[itpos272] = 1;
+  init_table[itpos280] = 1;
   return;
 }
 void parser___parser_prod___ASuperExternCall___replace_child(val_t p0, val_t p1, val_t p2){
@@ -41621,7 +43057,7 @@ void parser___parser_prod___ASuperExternCall___replace_child(val_t p0, val_t p1,
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7618;
+  fra.me.line = 7992;
   fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -41633,11 +43069,11 @@ void parser___parser_prod___ASuperExternCall___replace_child(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7620 */
+  /* parser/parser_prod.nit:7994 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 7620);
+    nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 7994);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -41647,7 +43083,7 @@ void parser___parser_prod___ASuperExternCall___replace_child(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7621 */
+    /* parser/parser_prod.nit:7995 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -41662,25 +43098,25 @@ void parser___parser_prod___ASuperExternCall___replace_child(val_t p0, val_t p1,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7622 */
+      /* parser/parser_prod.nit:7996 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7622);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7996);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7623 */
+      /* parser/parser_prod.nit:7997 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwsuper, ID_parser___parser_nodes___TKwsuper)) /*cast TKwsuper*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7623);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7997);
       }
-      /* ./parser//parser_prod.nit:7624 */
+      /* parser/parser_prod.nit:7998 */
       ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7626 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7626);
+      /* parser/parser_prod.nit:8000 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8000);
     }
-    /* ./parser//parser_prod.nit:7628 */
+    /* parser/parser_prod.nit:8002 */
     goto label1;
   }
   label1: while(0);
@@ -41693,7 +43129,7 @@ void parser___parser_prod___ASuperExternCall___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7632;
+  fra.me.line = 8006;
   fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -41702,11 +43138,11 @@ void parser___parser_prod___ASuperExternCall___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7634 */
+  /* parser/parser_prod.nit:8008 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 7634);
+    nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 8008);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -41714,13 +43150,13 @@ void parser___parser_prod___ASuperExternCall___visit_all(val_t p0, val_t p1){
   return;
 }
 void parser___parser_prod___ALocalPropExternCall___empty_init(val_t p0, int* init_table){
-  int itpos273 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALocalPropExternCall].i;
+  int itpos281 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALocalPropExternCall].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos273]) return;
+  if (init_table[itpos281]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7638;
+  fra.me.line = 8012;
   fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -41728,18 +43164,18 @@ void parser___parser_prod___ALocalPropExternCall___empty_init(val_t p0, int* ini
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   stack_frame_head = fra.me.prev;
-  init_table[itpos273] = 1;
+  init_table[itpos281] = 1;
   return;
 }
 void parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall(val_t p0, val_t p1, int* init_table){
-  int itpos274 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALocalPropExternCall].i;
+  int itpos282 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALocalPropExternCall].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
-  if (init_table[itpos274]) return;
+  if (init_table[itpos282]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7640;
+  fra.me.line = 8014;
   fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -41749,25 +43185,25 @@ void parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall(val
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7640 */
+  /* parser/parser_prod.nit:8014 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7644 */
+  /* parser/parser_prod.nit:8018 */
   CALL_parser___parser_prod___ALocalPropExternCall___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:7645 */
+  /* parser/parser_prod.nit:8019 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7645);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8019);
   }
   ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:7646 */
+  /* parser/parser_prod.nit:8020 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7646);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8020);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  init_table[itpos274] = 1;
+  init_table[itpos282] = 1;
   return;
 }
 void parser___parser_prod___ALocalPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
@@ -41777,7 +43213,7 @@ void parser___parser_prod___ALocalPropExternCall___replace_child(val_t p0, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7649;
+  fra.me.line = 8023;
   fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -41789,11 +43225,11 @@ void parser___parser_prod___ALocalPropExternCall___replace_child(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7651 */
+  /* parser/parser_prod.nit:8025 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 7651);
+    nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 8025);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -41803,7 +43239,7 @@ void parser___parser_prod___ALocalPropExternCall___replace_child(val_t p0, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7652 */
+    /* parser/parser_prod.nit:8026 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -41818,25 +43254,25 @@ void parser___parser_prod___ALocalPropExternCall___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7653 */
+      /* parser/parser_prod.nit:8027 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7653);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8027);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7654 */
+      /* parser/parser_prod.nit:8028 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7654);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8028);
       }
-      /* ./parser//parser_prod.nit:7655 */
+      /* parser/parser_prod.nit:8029 */
       ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7657 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7657);
+      /* parser/parser_prod.nit:8031 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8031);
     }
-    /* ./parser//parser_prod.nit:7659 */
+    /* parser/parser_prod.nit:8033 */
     goto label1;
   }
   label1: while(0);
@@ -41849,7 +43285,7 @@ void parser___parser_prod___ALocalPropExternCall___visit_all(val_t p0, val_t p1)
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7663;
+  fra.me.line = 8037;
   fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -41858,11 +43294,11 @@ void parser___parser_prod___ALocalPropExternCall___visit_all(val_t p0, val_t p1)
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7665 */
+  /* parser/parser_prod.nit:8039 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 7665);
+    nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 8039);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -41870,13 +43306,13 @@ void parser___parser_prod___ALocalPropExternCall___visit_all(val_t p0, val_t p1)
   return;
 }
 void parser___parser_prod___AFullPropExternCall___empty_init(val_t p0, int* init_table){
-  int itpos275 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFullPropExternCall].i;
+  int itpos283 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFullPropExternCall].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos275]) return;
+  if (init_table[itpos283]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7669;
+  fra.me.line = 8043;
   fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -41884,19 +43320,19 @@ void parser___parser_prod___AFullPropExternCall___empty_init(val_t p0, int* init
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   stack_frame_head = fra.me.prev;
-  init_table[itpos275] = 1;
+  init_table[itpos283] = 1;
   return;
 }
 void parser___parser_prod___AFullPropExternCall___init_afullpropexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
-  int itpos276 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFullPropExternCall].i;
+  int itpos284 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFullPropExternCall].i;
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
-  if (init_table[itpos276]) return;
+  if (init_table[itpos284]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7671;
+  fra.me.line = 8045;
   fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___init_afullpropexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -41910,26 +43346,26 @@ void parser___parser_prod___AFullPropExternCall___init_afullpropexterncall(val_t
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:7671 */
+  /* parser/parser_prod.nit:8045 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7677 */
+  /* parser/parser_prod.nit:8051 */
   CALL_parser___parser_prod___AFullPropExternCall___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:7678 */
+  /* parser/parser_prod.nit:8052 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7678);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8052);
   }
   ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:7679 */
+  /* parser/parser_prod.nit:8053 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7679);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8053);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:7680 */
+  /* parser/parser_prod.nit:8054 */
   ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:7681 */
+  /* parser/parser_prod.nit:8055 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -41944,28 +43380,28 @@ void parser___parser_prod___AFullPropExternCall___init_afullpropexterncall(val_t
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7682 */
+    /* parser/parser_prod.nit:8056 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7682);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8056);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
   }
-  /* ./parser//parser_prod.nit:7684 */
+  /* parser/parser_prod.nit:8058 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7684);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8058);
   }
   ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[4]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:7685 */
+  /* parser/parser_prod.nit:8059 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7685);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8059);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   stack_frame_head = fra.me.prev;
-  init_table[itpos276] = 1;
+  init_table[itpos284] = 1;
   return;
 }
 void parser___parser_prod___AFullPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
@@ -41975,7 +43411,7 @@ void parser___parser_prod___AFullPropExternCall___replace_child(val_t p0, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7688;
+  fra.me.line = 8062;
   fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -41987,11 +43423,11 @@ void parser___parser_prod___AFullPropExternCall___replace_child(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7690 */
+  /* parser/parser_prod.nit:8064 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 7690);
+    nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 8064);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -42001,7 +43437,7 @@ void parser___parser_prod___AFullPropExternCall___replace_child(val_t p0, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7691 */
+    /* parser/parser_prod.nit:8065 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -42016,28 +43452,28 @@ void parser___parser_prod___AFullPropExternCall___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7692 */
+      /* parser/parser_prod.nit:8066 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7692);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8066);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7693 */
+      /* parser/parser_prod.nit:8067 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7693);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8067);
       }
-      /* ./parser//parser_prod.nit:7694 */
+      /* parser/parser_prod.nit:8068 */
       ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7696 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7696);
+      /* parser/parser_prod.nit:8070 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8070);
     }
-    /* ./parser//parser_prod.nit:7698 */
+    /* parser/parser_prod.nit:8072 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7700 */
+  /* parser/parser_prod.nit:8074 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -42052,7 +43488,7 @@ void parser___parser_prod___AFullPropExternCall___replace_child(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7701 */
+    /* parser/parser_prod.nit:8075 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -42067,32 +43503,32 @@ void parser___parser_prod___AFullPropExternCall___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7702 */
+      /* parser/parser_prod.nit:8076 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7702);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8076);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7703 */
+      /* parser/parser_prod.nit:8077 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TQuad, ID_parser___parser_nodes___TQuad)) /*cast TQuad*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7703);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8077);
       }
-      /* ./parser//parser_prod.nit:7704 */
+      /* parser/parser_prod.nit:8078 */
       ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7706 */
+      /* parser/parser_prod.nit:8080 */
       ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:7708 */
+    /* parser/parser_prod.nit:8082 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7710 */
+  /* parser/parser_prod.nit:8084 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 7710);
+    nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 8084);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -42102,7 +43538,7 @@ void parser___parser_prod___AFullPropExternCall___replace_child(val_t p0, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7711 */
+    /* parser/parser_prod.nit:8085 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -42117,25 +43553,25 @@ void parser___parser_prod___AFullPropExternCall___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7712 */
+      /* parser/parser_prod.nit:8086 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7712);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8086);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7713 */
+      /* parser/parser_prod.nit:8087 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7713);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8087);
       }
-      /* ./parser//parser_prod.nit:7714 */
+      /* parser/parser_prod.nit:8088 */
       ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7716 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7716);
+      /* parser/parser_prod.nit:8090 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8090);
     }
-    /* ./parser//parser_prod.nit:7718 */
+    /* parser/parser_prod.nit:8092 */
     goto label1;
   }
   label1: while(0);
@@ -42149,7 +43585,7 @@ void parser___parser_prod___AFullPropExternCall___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7722;
+  fra.me.line = 8096;
   fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -42160,17 +43596,17 @@ void parser___parser_prod___AFullPropExternCall___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7722 */
+  /* parser/parser_prod.nit:8096 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7724 */
+  /* parser/parser_prod.nit:8098 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 7724);
+    nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 8098);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./parser//parser_prod.nit:7725 */
+  /* parser/parser_prod.nit:8099 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -42186,20 +43622,20 @@ void parser___parser_prod___AFullPropExternCall___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7726 */
+    /* parser/parser_prod.nit:8100 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TQuad, ID_parser___parser_nodes___TQuad)) /*cast TQuad*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7726);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8100);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:7728 */
+  /* parser/parser_prod.nit:8102 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 7728);
+    nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 8102);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
@@ -42207,13 +43643,13 @@ void parser___parser_prod___AFullPropExternCall___visit_all(val_t p0, val_t p1){
   return;
 }
 void parser___parser_prod___AInitPropExternCall___empty_init(val_t p0, int* init_table){
-  int itpos277 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitPropExternCall].i;
+  int itpos285 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitPropExternCall].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos277]) return;
+  if (init_table[itpos285]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7732;
+  fra.me.line = 8106;
   fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -42221,18 +43657,18 @@ void parser___parser_prod___AInitPropExternCall___empty_init(val_t p0, int* init
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   stack_frame_head = fra.me.prev;
-  init_table[itpos277] = 1;
+  init_table[itpos285] = 1;
   return;
 }
 void parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall(val_t p0, val_t p1, int* init_table){
-  int itpos278 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitPropExternCall].i;
+  int itpos286 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitPropExternCall].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
-  if (init_table[itpos278]) return;
+  if (init_table[itpos286]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7734;
+  fra.me.line = 8108;
   fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -42242,25 +43678,25 @@ void parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall(val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7734 */
+  /* parser/parser_prod.nit:8108 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7738 */
+  /* parser/parser_prod.nit:8112 */
   CALL_parser___parser_prod___AInitPropExternCall___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
-  /* ./parser//parser_prod.nit:7739 */
+  /* parser/parser_prod.nit:8113 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7739);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8113);
   }
   ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:7740 */
+  /* parser/parser_prod.nit:8114 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7740);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8114);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
-  init_table[itpos278] = 1;
+  init_table[itpos286] = 1;
   return;
 }
 void parser___parser_prod___AInitPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
@@ -42270,7 +43706,7 @@ void parser___parser_prod___AInitPropExternCall___replace_child(val_t p0, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7743;
+  fra.me.line = 8117;
   fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -42282,11 +43718,11 @@ void parser___parser_prod___AInitPropExternCall___replace_child(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7745 */
+  /* parser/parser_prod.nit:8119 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 7745);
+    nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 8119);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -42296,7 +43732,7 @@ void parser___parser_prod___AInitPropExternCall___replace_child(val_t p0, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7746 */
+    /* parser/parser_prod.nit:8120 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -42311,25 +43747,25 @@ void parser___parser_prod___AInitPropExternCall___replace_child(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7747 */
+      /* parser/parser_prod.nit:8121 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7747);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8121);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7748 */
+      /* parser/parser_prod.nit:8122 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7748);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8122);
       }
-      /* ./parser//parser_prod.nit:7749 */
+      /* parser/parser_prod.nit:8123 */
       ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7751 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7751);
+      /* parser/parser_prod.nit:8125 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8125);
     }
-    /* ./parser//parser_prod.nit:7753 */
+    /* parser/parser_prod.nit:8127 */
     goto label1;
   }
   label1: while(0);
@@ -42342,7 +43778,7 @@ void parser___parser_prod___AInitPropExternCall___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7757;
+  fra.me.line = 8131;
   fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -42351,11 +43787,11 @@ void parser___parser_prod___AInitPropExternCall___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7759 */
+  /* parser/parser_prod.nit:8133 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 7759);
+    nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 8133);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -42363,13 +43799,13 @@ void parser___parser_prod___AInitPropExternCall___visit_all(val_t p0, val_t p1){
   return;
 }
 void parser___parser_prod___ACastAsExternCall___empty_init(val_t p0, int* init_table){
-  int itpos279 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACastAsExternCall].i;
+  int itpos287 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACastAsExternCall].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos279]) return;
+  if (init_table[itpos287]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7763;
+  fra.me.line = 8137;
   fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -42377,18 +43813,18 @@ void parser___parser_prod___ACastAsExternCall___empty_init(val_t p0, int* init_t
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   stack_frame_head = fra.me.prev;
-  init_table[itpos279] = 1;
+  init_table[itpos287] = 1;
   return;
 }
 void parser___parser_prod___ACastAsExternCall___init_acastasexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
-  int itpos280 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACastAsExternCall].i;
+  int itpos288 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACastAsExternCall].i;
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
-  if (init_table[itpos280]) return;
+  if (init_table[itpos288]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7765;
+  fra.me.line = 8139;
   fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___init_acastasexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -42402,51 +43838,51 @@ void parser___parser_prod___ACastAsExternCall___init_acastasexterncall(val_t p0,
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:7765 */
+  /* parser/parser_prod.nit:8139 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7771 */
+  /* parser/parser_prod.nit:8145 */
   CALL_parser___parser_prod___ACastAsExternCall___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:7772 */
+  /* parser/parser_prod.nit:8146 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7772);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8146);
   }
   ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:7773 */
+  /* parser/parser_prod.nit:8147 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7773);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8147);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:7774 */
+  /* parser/parser_prod.nit:8148 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7774);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8148);
   }
   ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:7775 */
+  /* parser/parser_prod.nit:8149 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7775);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8149);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:7776 */
+  /* parser/parser_prod.nit:8150 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7776);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8150);
   }
   ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[4]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:7777 */
+  /* parser/parser_prod.nit:8151 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7777);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8151);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   stack_frame_head = fra.me.prev;
-  init_table[itpos280] = 1;
+  init_table[itpos288] = 1;
   return;
 }
 void parser___parser_prod___ACastAsExternCall___replace_child(val_t p0, val_t p1, val_t p2){
@@ -42456,7 +43892,7 @@ void parser___parser_prod___ACastAsExternCall___replace_child(val_t p0, val_t p1
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7780;
+  fra.me.line = 8154;
   fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -42468,11 +43904,11 @@ void parser___parser_prod___ACastAsExternCall___replace_child(val_t p0, val_t p1
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7782 */
+  /* parser/parser_prod.nit:8156 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_from_type", LOCATE_parser___parser_prod, 7782);
+    nit_abort("Uninitialized attribute %s", "_n_from_type", LOCATE_parser___parser_prod, 8156);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -42482,7 +43918,7 @@ void parser___parser_prod___ACastAsExternCall___replace_child(val_t p0, val_t p1
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7783 */
+    /* parser/parser_prod.nit:8157 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -42497,32 +43933,32 @@ void parser___parser_prod___ACastAsExternCall___replace_child(val_t p0, val_t p1
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7784 */
+      /* parser/parser_prod.nit:8158 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7784);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8158);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7785 */
+      /* parser/parser_prod.nit:8159 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7785);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8159);
       }
-      /* ./parser//parser_prod.nit:7786 */
+      /* parser/parser_prod.nit:8160 */
       ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7788 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7788);
+      /* parser/parser_prod.nit:8162 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8162);
     }
-    /* ./parser//parser_prod.nit:7790 */
+    /* parser/parser_prod.nit:8164 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7792 */
+  /* parser/parser_prod.nit:8166 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7792);
+    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8166);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -42532,7 +43968,7 @@ void parser___parser_prod___ACastAsExternCall___replace_child(val_t p0, val_t p1
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7793 */
+    /* parser/parser_prod.nit:8167 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -42547,32 +43983,32 @@ void parser___parser_prod___ACastAsExternCall___replace_child(val_t p0, val_t p1
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7794 */
+      /* parser/parser_prod.nit:8168 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7794);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8168);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7795 */
+      /* parser/parser_prod.nit:8169 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast TKwas*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7795);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8169);
       }
-      /* ./parser//parser_prod.nit:7796 */
+      /* parser/parser_prod.nit:8170 */
       ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7798 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7798);
+      /* parser/parser_prod.nit:8172 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8172);
     }
-    /* ./parser//parser_prod.nit:7800 */
+    /* parser/parser_prod.nit:8174 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7802 */
+  /* parser/parser_prod.nit:8176 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_to_type", LOCATE_parser___parser_prod, 7802);
+    nit_abort("Uninitialized attribute %s", "_n_to_type", LOCATE_parser___parser_prod, 8176);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -42582,7 +44018,7 @@ void parser___parser_prod___ACastAsExternCall___replace_child(val_t p0, val_t p1
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7803 */
+    /* parser/parser_prod.nit:8177 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -42597,25 +44033,25 @@ void parser___parser_prod___ACastAsExternCall___replace_child(val_t p0, val_t p1
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7804 */
+      /* parser/parser_prod.nit:8178 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7804);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8178);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7805 */
+      /* parser/parser_prod.nit:8179 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7805);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8179);
       }
-      /* ./parser//parser_prod.nit:7806 */
+      /* parser/parser_prod.nit:8180 */
       ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7808 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7808);
+      /* parser/parser_prod.nit:8182 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8182);
     }
-    /* ./parser//parser_prod.nit:7810 */
+    /* parser/parser_prod.nit:8184 */
     goto label1;
   }
   label1: while(0);
@@ -42628,7 +44064,7 @@ void parser___parser_prod___ACastAsExternCall___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7814;
+  fra.me.line = 8188;
   fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -42638,27 +44074,27 @@ void parser___parser_prod___ACastAsExternCall___visit_all(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7816 */
+  /* parser/parser_prod.nit:8190 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_from_type", LOCATE_parser___parser_prod, 7816);
+    nit_abort("Uninitialized attribute %s", "_n_from_type", LOCATE_parser___parser_prod, 8190);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:7817 */
+  /* parser/parser_prod.nit:8191 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7817);
+    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8191);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:7818 */
+  /* parser/parser_prod.nit:8192 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_to_type", LOCATE_parser___parser_prod, 7818);
+    nit_abort("Uninitialized attribute %s", "_n_to_type", LOCATE_parser___parser_prod, 8192);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -42666,13 +44102,13 @@ void parser___parser_prod___ACastAsExternCall___visit_all(val_t p0, val_t p1){
   return;
 }
 void parser___parser_prod___AAsNullableExternCall___empty_init(val_t p0, int* init_table){
-  int itpos281 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNullableExternCall].i;
+  int itpos289 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNullableExternCall].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos281]) return;
+  if (init_table[itpos289]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7822;
+  fra.me.line = 8196;
   fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -42680,18 +44116,18 @@ void parser___parser_prod___AAsNullableExternCall___empty_init(val_t p0, int* in
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   stack_frame_head = fra.me.prev;
-  init_table[itpos281] = 1;
+  init_table[itpos289] = 1;
   return;
 }
 void parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
-  int itpos282 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNullableExternCall].i;
+  int itpos290 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNullableExternCall].i;
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t tmp;
-  if (init_table[itpos282]) return;
+  if (init_table[itpos290]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7824;
+  fra.me.line = 8198;
   fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -42705,51 +44141,51 @@ void parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall(v
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./parser//parser_prod.nit:7824 */
+  /* parser/parser_prod.nit:8198 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7830 */
+  /* parser/parser_prod.nit:8204 */
   CALL_parser___parser_prod___AAsNullableExternCall___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
-  /* ./parser//parser_prod.nit:7831 */
+  /* parser/parser_prod.nit:8205 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7831);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8205);
   }
   ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:7832 */
+  /* parser/parser_prod.nit:8206 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7832);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8206);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:7833 */
+  /* parser/parser_prod.nit:8207 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7833);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8207);
   }
   ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:7834 */
+  /* parser/parser_prod.nit:8208 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7834);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8208);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* ./parser//parser_prod.nit:7835 */
+  /* parser/parser_prod.nit:8209 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7835);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8209);
   }
   ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[4]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:7836 */
+  /* parser/parser_prod.nit:8210 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7836);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8210);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   stack_frame_head = fra.me.prev;
-  init_table[itpos282] = 1;
+  init_table[itpos290] = 1;
   return;
 }
 void parser___parser_prod___AAsNullableExternCall___replace_child(val_t p0, val_t p1, val_t p2){
@@ -42759,7 +44195,7 @@ void parser___parser_prod___AAsNullableExternCall___replace_child(val_t p0, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7839;
+  fra.me.line = 8213;
   fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -42771,11 +44207,11 @@ void parser___parser_prod___AAsNullableExternCall___replace_child(val_t p0, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7841 */
+  /* parser/parser_prod.nit:8215 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7841);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 8215);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -42785,7 +44221,7 @@ void parser___parser_prod___AAsNullableExternCall___replace_child(val_t p0, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7842 */
+    /* parser/parser_prod.nit:8216 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -42800,32 +44236,32 @@ void parser___parser_prod___AAsNullableExternCall___replace_child(val_t p0, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7843 */
+      /* parser/parser_prod.nit:8217 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7843);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8217);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7844 */
+      /* parser/parser_prod.nit:8218 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7844);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8218);
       }
-      /* ./parser//parser_prod.nit:7845 */
+      /* parser/parser_prod.nit:8219 */
       ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7847 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7847);
+      /* parser/parser_prod.nit:8221 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8221);
     }
-    /* ./parser//parser_prod.nit:7849 */
+    /* parser/parser_prod.nit:8223 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7851 */
+  /* parser/parser_prod.nit:8225 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7851);
+    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8225);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -42835,7 +44271,7 @@ void parser___parser_prod___AAsNullableExternCall___replace_child(val_t p0, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7852 */
+    /* parser/parser_prod.nit:8226 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -42850,32 +44286,32 @@ void parser___parser_prod___AAsNullableExternCall___replace_child(val_t p0, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7853 */
+      /* parser/parser_prod.nit:8227 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7853);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8227);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7854 */
+      /* parser/parser_prod.nit:8228 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast TKwas*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7854);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8228);
       }
-      /* ./parser//parser_prod.nit:7855 */
+      /* parser/parser_prod.nit:8229 */
       ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7857 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7857);
+      /* parser/parser_prod.nit:8231 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8231);
     }
-    /* ./parser//parser_prod.nit:7859 */
+    /* parser/parser_prod.nit:8233 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7861 */
+  /* parser/parser_prod.nit:8235 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 7861);
+    nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 8235);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -42885,7 +44321,7 @@ void parser___parser_prod___AAsNullableExternCall___replace_child(val_t p0, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7862 */
+    /* parser/parser_prod.nit:8236 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -42900,25 +44336,25 @@ void parser___parser_prod___AAsNullableExternCall___replace_child(val_t p0, val_
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7863 */
+      /* parser/parser_prod.nit:8237 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7863);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8237);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7864 */
+      /* parser/parser_prod.nit:8238 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnullable, ID_parser___parser_nodes___TKwnullable)) /*cast TKwnullable*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7864);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8238);
       }
-      /* ./parser//parser_prod.nit:7865 */
+      /* parser/parser_prod.nit:8239 */
       ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7867 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7867);
+      /* parser/parser_prod.nit:8241 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8241);
     }
-    /* ./parser//parser_prod.nit:7869 */
+    /* parser/parser_prod.nit:8243 */
     goto label1;
   }
   label1: while(0);
@@ -42931,7 +44367,7 @@ void parser___parser_prod___AAsNullableExternCall___visit_all(val_t p0, val_t p1
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7873;
+  fra.me.line = 8247;
   fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -42941,27 +44377,27 @@ void parser___parser_prod___AAsNullableExternCall___visit_all(val_t p0, val_t p1
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7875 */
+  /* parser/parser_prod.nit:8249 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7875);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 8249);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:7876 */
+  /* parser/parser_prod.nit:8250 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7876);
+    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8250);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:7877 */
+  /* parser/parser_prod.nit:8251 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 7877);
+    nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 8251);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -42969,13 +44405,13 @@ void parser___parser_prod___AAsNullableExternCall___visit_all(val_t p0, val_t p1
   return;
 }
 void parser___parser_prod___AAsNotNullableExternCall___empty_init(val_t p0, int* init_table){
-  int itpos283 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotNullableExternCall].i;
+  int itpos291 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotNullableExternCall].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos283]) return;
+  if (init_table[itpos291]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7881;
+  fra.me.line = 8255;
   fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -42983,18 +44419,18 @@ void parser___parser_prod___AAsNotNullableExternCall___empty_init(val_t p0, int*
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   stack_frame_head = fra.me.prev;
-  init_table[itpos283] = 1;
+  init_table[itpos291] = 1;
   return;
 }
 void parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
-  int itpos284 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotNullableExternCall].i;
+  int itpos292 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotNullableExternCall].i;
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t tmp;
-  if (init_table[itpos284]) return;
+  if (init_table[itpos292]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7883;
+  fra.me.line = 8257;
   fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -43010,64 +44446,64 @@ void parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableextern
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./parser//parser_prod.nit:7883 */
+  /* parser/parser_prod.nit:8257 */
   fra.me.REG[5] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:7890 */
+  /* parser/parser_prod.nit:8264 */
   CALL_parser___parser_prod___AAsNotNullableExternCall___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
-  /* ./parser//parser_prod.nit:7891 */
+  /* parser/parser_prod.nit:8265 */
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7891);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8265);
   }
   ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[5]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:7892 */
+  /* parser/parser_prod.nit:8266 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7892);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8266);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:7893 */
+  /* parser/parser_prod.nit:8267 */
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7893);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8267);
   }
   ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[5]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:7894 */
+  /* parser/parser_prod.nit:8268 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7894);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8268);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:7895 */
+  /* parser/parser_prod.nit:8269 */
   REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7895);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8269);
   }
   ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[5]) = fra.me.REG[3];
-  /* ./parser//parser_prod.nit:7896 */
+  /* parser/parser_prod.nit:8270 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7896);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8270);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-  /* ./parser//parser_prod.nit:7897 */
+  /* parser/parser_prod.nit:8271 */
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7897);
+    nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8271);
   }
   ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[5]) = fra.me.REG[4];
-  /* ./parser//parser_prod.nit:7898 */
+  /* parser/parser_prod.nit:8272 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7898);
+    nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8272);
   }
   CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   stack_frame_head = fra.me.prev;
-  init_table[itpos284] = 1;
+  init_table[itpos292] = 1;
   return;
 }
 void parser___parser_prod___AAsNotNullableExternCall___replace_child(val_t p0, val_t p1, val_t p2){
@@ -43077,7 +44513,7 @@ void parser___parser_prod___AAsNotNullableExternCall___replace_child(val_t p0, v
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7901;
+  fra.me.line = 8275;
   fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -43089,11 +44525,11 @@ void parser___parser_prod___AAsNotNullableExternCall___replace_child(val_t p0, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7903 */
+  /* parser/parser_prod.nit:8277 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7903);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 8277);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -43103,7 +44539,7 @@ void parser___parser_prod___AAsNotNullableExternCall___replace_child(val_t p0, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7904 */
+    /* parser/parser_prod.nit:8278 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -43118,32 +44554,32 @@ void parser___parser_prod___AAsNotNullableExternCall___replace_child(val_t p0, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7905 */
+      /* parser/parser_prod.nit:8279 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7905);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8279);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7906 */
+      /* parser/parser_prod.nit:8280 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7906);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8280);
       }
-      /* ./parser//parser_prod.nit:7907 */
+      /* parser/parser_prod.nit:8281 */
       ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7909 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7909);
+      /* parser/parser_prod.nit:8283 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8283);
     }
-    /* ./parser//parser_prod.nit:7911 */
+    /* parser/parser_prod.nit:8285 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7913 */
+  /* parser/parser_prod.nit:8287 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7913);
+    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8287);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -43153,7 +44589,7 @@ void parser___parser_prod___AAsNotNullableExternCall___replace_child(val_t p0, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7914 */
+    /* parser/parser_prod.nit:8288 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -43168,32 +44604,32 @@ void parser___parser_prod___AAsNotNullableExternCall___replace_child(val_t p0, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7915 */
+      /* parser/parser_prod.nit:8289 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7915);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8289);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7916 */
+      /* parser/parser_prod.nit:8290 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast TKwas*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7916);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8290);
       }
-      /* ./parser//parser_prod.nit:7917 */
+      /* parser/parser_prod.nit:8291 */
       ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7919 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7919);
+      /* parser/parser_prod.nit:8293 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8293);
     }
-    /* ./parser//parser_prod.nit:7921 */
+    /* parser/parser_prod.nit:8295 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7923 */
+  /* parser/parser_prod.nit:8297 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 7923);
+    nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 8297);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -43203,7 +44639,7 @@ void parser___parser_prod___AAsNotNullableExternCall___replace_child(val_t p0, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7924 */
+    /* parser/parser_prod.nit:8298 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -43218,32 +44654,32 @@ void parser___parser_prod___AAsNotNullableExternCall___replace_child(val_t p0, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7925 */
+      /* parser/parser_prod.nit:8299 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7925);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8299);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7926 */
+      /* parser/parser_prod.nit:8300 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnot, ID_parser___parser_nodes___TKwnot)) /*cast TKwnot*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7926);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8300);
       }
-      /* ./parser//parser_prod.nit:7927 */
+      /* parser/parser_prod.nit:8301 */
       ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7929 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7929);
+      /* parser/parser_prod.nit:8303 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8303);
     }
-    /* ./parser//parser_prod.nit:7931 */
+    /* parser/parser_prod.nit:8305 */
     goto label1;
   }
-  /* ./parser//parser_prod.nit:7933 */
+  /* parser/parser_prod.nit:8307 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 7933);
+    nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 8307);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
@@ -43253,7 +44689,7 @@ void parser___parser_prod___AAsNotNullableExternCall___replace_child(val_t p0, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7934 */
+    /* parser/parser_prod.nit:8308 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -43268,25 +44704,25 @@ void parser___parser_prod___AAsNotNullableExternCall___replace_child(val_t p0, v
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7935 */
+      /* parser/parser_prod.nit:8309 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7935);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8309);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7936 */
+      /* parser/parser_prod.nit:8310 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnullable, ID_parser___parser_nodes___TKwnullable)) /*cast TKwnullable*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7936);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8310);
       }
-      /* ./parser//parser_prod.nit:7937 */
+      /* parser/parser_prod.nit:8311 */
       ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7939 */
-      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7939);
+      /* parser/parser_prod.nit:8313 */
+      nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8313);
     }
-    /* ./parser//parser_prod.nit:7941 */
+    /* parser/parser_prod.nit:8315 */
     goto label1;
   }
   label1: while(0);
@@ -43299,7 +44735,7 @@ void parser___parser_prod___AAsNotNullableExternCall___visit_all(val_t p0, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7945;
+  fra.me.line = 8319;
   fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -43309,35 +44745,35 @@ void parser___parser_prod___AAsNotNullableExternCall___visit_all(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7947 */
+  /* parser/parser_prod.nit:8321 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7947);
+    nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 8321);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:7948 */
+  /* parser/parser_prod.nit:8322 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7948);
+    nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8322);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:7949 */
+  /* parser/parser_prod.nit:8323 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 7949);
+    nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 8323);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./parser//parser_prod.nit:7950 */
+  /* parser/parser_prod.nit:8324 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 7950);
+    nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 8324);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -43345,13 +44781,13 @@ void parser___parser_prod___AAsNotNullableExternCall___visit_all(val_t p0, val_t
   return;
 }
 void parser___parser_prod___AQualified___empty_init(val_t p0, int* init_table){
-  int itpos285 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AQualified].i;
+  int itpos293 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AQualified].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos285]) return;
+  if (init_table[itpos293]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7954;
+  fra.me.line = 8328;
   fra.me.meth = LOCATE_parser___parser_prod___AQualified___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -43359,19 +44795,19 @@ void parser___parser_prod___AQualified___empty_init(val_t p0, int* init_table){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   stack_frame_head = fra.me.prev;
-  init_table[itpos285] = 1;
+  init_table[itpos293] = 1;
   return;
 }
 void parser___parser_prod___AQualified___init_aqualified(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos286 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AQualified].i;
+  int itpos294 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AQualified].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
-  if (init_table[itpos286]) return;
+  if (init_table[itpos294]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7956;
+  fra.me.line = 8330;
   fra.me.meth = LOCATE_parser___parser_prod___AQualified___init_aqualified;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -43382,12 +44818,12 @@ void parser___parser_prod___AQualified___init_aqualified(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7961 */
+  /* parser/parser_prod.nit:8335 */
   CALL_parser___parser_prod___AQualified___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AQualified___init_aqualified_1));
-  /* ./parser//parser_prod.nit:7967 */
+  /* parser/parser_prod.nit:8341 */
   ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./parser//parser_prod.nit:7968 */
+  /* parser/parser_prod.nit:8342 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -43402,15 +44838,15 @@ void parser___parser_prod___AQualified___init_aqualified(val_t p0, val_t p1, val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7969 */
+    /* parser/parser_prod.nit:8343 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7969);
+      nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8343);
     }
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
   }
   stack_frame_head = fra.me.prev;
-  init_table[itpos286] = 1;
+  init_table[itpos294] = 1;
   return;
 }
   void OC_parser___parser_prod___AQualified___init_aqualified_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
@@ -43418,7 +44854,7 @@ void parser___parser_prod___AQualified___init_aqualified(val_t p0, val_t p1, val
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:7962 */
+    /* parser/parser_prod.nit:8336 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -43432,21 +44868,21 @@ void parser___parser_prod___AQualified___init_aqualified(val_t p0, val_t p1, val
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:7963 */
+    /* parser/parser_prod.nit:8337 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7963);
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8337);
     }
-    /* ./parser//parser_prod.nit:7964 */
+    /* parser/parser_prod.nit:8338 */
     REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(closctx->REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7964);
+      nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8338);
     }
     fra.me.REG[1] = ATTR_parser___parser_nodes___AQualified____n_id(closctx->REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:7965 */
+    /* parser/parser_prod.nit:8339 */
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -43461,7 +44897,7 @@ void parser___parser_prod___AQualified___replace_child(val_t p0, val_t p1, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7973;
+  fra.me.line = 8347;
   fra.me.meth = LOCATE_parser___parser_prod___AQualified___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -43473,33 +44909,33 @@ void parser___parser_prod___AQualified___replace_child(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:7975 */
+  /* parser/parser_prod.nit:8349 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7975);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8349);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:7975 */
+      /* parser/parser_prod.nit:8349 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:7976 */
+      /* parser/parser_prod.nit:8350 */
       REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7976);
+        nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8350);
       }
       fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
@@ -43516,7 +44952,7 @@ void parser___parser_prod___AQualified___replace_child(val_t p0, val_t p1, val_t
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:7977 */
+        /* parser/parser_prod.nit:8351 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -43531,52 +44967,52 @@ void parser___parser_prod___AQualified___replace_child(val_t p0, val_t p1, val_t
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:7978 */
+          /* parser/parser_prod.nit:8352 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7978);
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8352);
           }
-          /* ./parser//parser_prod.nit:7979 */
+          /* parser/parser_prod.nit:8353 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7979);
+            nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8353);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:7980 */
+          /* parser/parser_prod.nit:8354 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7980);
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8354);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:7982 */
+          /* parser/parser_prod.nit:8356 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7982);
+            nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8356);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:7984 */
+        /* parser/parser_prod.nit:8358 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./parser//parser_prod.nit:7987 */
+  /* parser/parser_prod.nit:8361 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -43591,7 +45027,7 @@ void parser___parser_prod___AQualified___replace_child(val_t p0, val_t p1, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:7988 */
+    /* parser/parser_prod.nit:8362 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -43606,25 +45042,25 @@ void parser___parser_prod___AQualified___replace_child(val_t p0, val_t p1, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./parser//parser_prod.nit:7989 */
+      /* parser/parser_prod.nit:8363 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7989);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8363);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:7990 */
+      /* parser/parser_prod.nit:8364 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7990);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8364);
       }
-      /* ./parser//parser_prod.nit:7991 */
+      /* parser/parser_prod.nit:8365 */
       ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = fra.me.REG[2];
     } else {
-      /* ./parser//parser_prod.nit:7993 */
+      /* parser/parser_prod.nit:8367 */
       ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = NIT_NULL;
     }
-    /* ./parser//parser_prod.nit:7995 */
+    /* parser/parser_prod.nit:8369 */
     goto label1;
   }
   label1: while(0);
@@ -43638,7 +45074,7 @@ void parser___parser_prod___AQualified___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 7999;
+  fra.me.line = 8373;
   fra.me.meth = LOCATE_parser___parser_prod___AQualified___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -43649,17 +45085,17 @@ void parser___parser_prod___AQualified___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:7999 */
+  /* parser/parser_prod.nit:8373 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:8001 */
+  /* parser/parser_prod.nit:8375 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8001);
+    nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8375);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AQualified___visit_all_1));
-  /* ./parser//parser_prod.nit:8004 */
+  /* parser/parser_prod.nit:8378 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -43675,12 +45111,12 @@ void parser___parser_prod___AQualified___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:8005 */
+    /* parser/parser_prod.nit:8379 */
     fra.me.REG[2] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8005);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8379);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
@@ -43703,19 +45139,19 @@ void parser___parser_prod___AQualified___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:8002 */
+    /* parser/parser_prod.nit:8376 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
   }
 void parser___parser_prod___ADoc___empty_init(val_t p0, int* init_table){
-  int itpos287 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoc].i;
+  int itpos295 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoc].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos287]) return;
+  if (init_table[itpos295]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 8010;
+  fra.me.line = 8384;
   fra.me.meth = LOCATE_parser___parser_prod___ADoc___empty_init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -43723,17 +45159,17 @@ void parser___parser_prod___ADoc___empty_init(val_t p0, int* init_table){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   stack_frame_head = fra.me.prev;
-  init_table[itpos287] = 1;
+  init_table[itpos295] = 1;
   return;
 }
 void parser___parser_prod___ADoc___init_adoc(val_t p0, val_t p1, int* init_table){
-  int itpos288 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoc].i;
+  int itpos296 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoc].i;
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
-  if (init_table[itpos288]) return;
+  if (init_table[itpos296]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 8012;
+  fra.me.line = 8386;
   fra.me.meth = LOCATE_parser___parser_prod___ADoc___init_adoc;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -43742,11 +45178,11 @@ void parser___parser_prod___ADoc___init_adoc(val_t p0, val_t p1, int* init_table
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:8016 */
+  /* parser/parser_prod.nit:8390 */
   CALL_parser___parser_prod___ADoc___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ADoc___init_adoc_1));
   stack_frame_head = fra.me.prev;
-  init_table[itpos288] = 1;
+  init_table[itpos296] = 1;
   return;
 }
   void OC_parser___parser_prod___ADoc___init_adoc_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
@@ -43754,7 +45190,7 @@ void parser___parser_prod___ADoc___init_adoc(val_t p0, val_t p1, int* init_table
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./parser//parser_prod.nit:8017 */
+    /* parser/parser_prod.nit:8391 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_parser___parser_prod;
     fra.me.line = 0;
@@ -43768,21 +45204,21 @@ void parser___parser_prod___ADoc___init_adoc(val_t p0, val_t p1, int* init_table
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:8018 */
+    /* parser/parser_prod.nit:8392 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TComment, ID_parser___parser_nodes___TComment)) /*cast TComment*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8018);
+      nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8392);
     }
-    /* ./parser//parser_prod.nit:8019 */
+    /* parser/parser_prod.nit:8393 */
     REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(closctx->REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8019);
+      nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8393);
     }
     fra.me.REG[1] = ATTR_parser___parser_nodes___ADoc____n_comment(closctx->REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./parser//parser_prod.nit:8020 */
+    /* parser/parser_prod.nit:8394 */
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -43797,7 +45233,7 @@ void parser___parser_prod___ADoc___replace_child(val_t p0, val_t p1, val_t p2){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 8024;
+  fra.me.line = 8398;
   fra.me.meth = LOCATE_parser___parser_prod___ADoc___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -43809,33 +45245,33 @@ void parser___parser_prod___ADoc___replace_child(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:8026 */
+  /* parser/parser_prod.nit:8400 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8026);
+    nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8400);
   }
   fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./parser//parser_prod.nit:8026 */
+      /* parser/parser_prod.nit:8400 */
       REGB2 = REGB0;
-      /* ./parser//parser_prod.nit:8027 */
+      /* parser/parser_prod.nit:8401 */
       REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8027);
+        nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8401);
       }
       fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
@@ -43852,7 +45288,7 @@ void parser___parser_prod___ADoc___replace_child(val_t p0, val_t p1, val_t p2){
         }
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./parser//parser_prod.nit:8028 */
+        /* parser/parser_prod.nit:8402 */
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -43867,47 +45303,47 @@ void parser___parser_prod___ADoc___replace_child(val_t p0, val_t p1, val_t p2){
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./parser//parser_prod.nit:8029 */
+          /* parser/parser_prod.nit:8403 */
           REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TComment, ID_parser___parser_nodes___TComment)) /*cast TComment*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8029);
+            nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8403);
           }
-          /* ./parser//parser_prod.nit:8030 */
+          /* parser/parser_prod.nit:8404 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8030);
+            nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8404);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
-          /* ./parser//parser_prod.nit:8031 */
+          /* parser/parser_prod.nit:8405 */
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
-            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8031);
+            nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8405);
           }
           CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         } else {
-          /* ./parser//parser_prod.nit:8033 */
+          /* parser/parser_prod.nit:8407 */
           REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
-            nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8033);
+            nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8407);
           }
           fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
           CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
         }
-        /* ./parser//parser_prod.nit:8035 */
+        /* parser/parser_prod.nit:8409 */
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label2;
     }
   }
@@ -43922,7 +45358,7 @@ void parser___parser_prod___ADoc___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 8040;
+  fra.me.line = 8414;
   fra.me.meth = LOCATE_parser___parser_prod___ADoc___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -43931,11 +45367,11 @@ void parser___parser_prod___ADoc___visit_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:8042 */
+  /* parser/parser_prod.nit:8416 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8042);
+    nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 8416);
   }
   fra.me.REG[0] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ADoc___visit_all_1));
@@ -43958,37 +45394,11 @@ void parser___parser_prod___ADoc___visit_all(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./parser//parser_prod.nit:8043 */
+    /* parser/parser_prod.nit:8417 */
     CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
   }
-void parser___parser_prod___Start___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos289 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___Start].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  if (init_table[itpos289]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 8049;
-  fra.me.meth = LOCATE_parser___parser_prod___Start___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:8053 */
-  ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./parser//parser_prod.nit:8054 */
-  ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[0]) = fra.me.REG[2];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos289] = 1;
-  return;
-}
 void parser___parser_prod___Start___replace_child(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -43996,7 +45406,7 @@ void parser___parser_prod___Start___replace_child(val_t p0, val_t p1, val_t p2){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 8057;
+  fra.me.line = 8423;
   fra.me.meth = LOCATE_parser___parser_prod___Start___replace_child;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -44008,7 +45418,7 @@ void parser___parser_prod___Start___replace_child(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./parser//parser_prod.nit:8059 */
+  /* parser/parser_prod.nit:8425 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
@@ -44023,7 +45433,7 @@ void parser___parser_prod___Start___replace_child(val_t p0, val_t p1, val_t p2){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:8060 */
+    /* parser/parser_prod.nit:8426 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -44038,24 +45448,24 @@ void parser___parser_prod___Start___replace_child(val_t p0, val_t p1, val_t p2){
     }
     if (UNTAG_Bool(REGB0)) {
     } else {
-      /* ./parser//parser_prod.nit:8062 */
+      /* parser/parser_prod.nit:8428 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8062);
+        nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8428);
       }
       CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./parser//parser_prod.nit:8063 */
+      /* parser/parser_prod.nit:8429 */
       REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AModule, ID_parser___parser_nodes___AModule)) /*cast AModule*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8063);
+        nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8429);
       }
-      /* ./parser//parser_prod.nit:8064 */
+      /* parser/parser_prod.nit:8430 */
       ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]) = fra.me.REG[2];
     }
-    /* ./parser//parser_prod.nit:8066 */
+    /* parser/parser_prod.nit:8432 */
     CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-    /* ./parser//parser_prod.nit:8067 */
+    /* parser/parser_prod.nit:8433 */
     goto label1;
   }
   label1: while(0);
@@ -44069,7 +45479,7 @@ void parser___parser_prod___Start___visit_all(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_parser___parser_prod;
-  fra.me.line = 8071;
+  fra.me.line = 8437;
   fra.me.meth = LOCATE_parser___parser_prod___Start___visit_all;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -44080,9 +45490,9 @@ void parser___parser_prod___Start___visit_all(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./parser//parser_prod.nit:8071 */
+  /* parser/parser_prod.nit:8437 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./parser//parser_prod.nit:8073 */
+  /* parser/parser_prod.nit:8439 */
   fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -44098,20 +45508,20 @@ void parser___parser_prod___Start___visit_all(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./parser//parser_prod.nit:8074 */
+    /* parser/parser_prod.nit:8440 */
     fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AModule, ID_parser___parser_nodes___AModule)) /*cast AModule*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8074);
+      nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8440);
     }
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./parser//parser_prod.nit:8076 */
+  /* parser/parser_prod.nit:8442 */
   REGB0 = TAG_Bool(ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_n_eof", LOCATE_parser___parser_prod, 8076);
+    nit_abort("Uninitialized attribute %s", "_n_eof", LOCATE_parser___parser_prod, 8442);
   }
   fra.me.REG[2] = ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[2]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
index 1c691bb..8e31e83 100644 (file)
@@ -277,41 +277,48 @@ extern const int SFT_parser___parser_prod[];
 #define CALL_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(recv) ((parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr_t)CALL((recv), (SFT_parser___parser_prod[132] + 1)))
 #define CALL_parser___parser_prod___AIssetAttrExpr___empty_init(recv) ((parser___parser_prod___AIssetAttrExpr___empty_init_t)CALL((recv), (SFT_parser___parser_prod[133] + 0)))
 #define CALL_parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr(recv) ((parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr_t)CALL((recv), (SFT_parser___parser_prod[133] + 1)))
-#define CALL_parser___parser_prod___APlusAssignOp___empty_init(recv) ((parser___parser_prod___APlusAssignOp___empty_init_t)CALL((recv), (SFT_parser___parser_prod[134] + 0)))
-#define CALL_parser___parser_prod___APlusAssignOp___init_aplusassignop(recv) ((parser___parser_prod___APlusAssignOp___init_aplusassignop_t)CALL((recv), (SFT_parser___parser_prod[134] + 1)))
-#define CALL_parser___parser_prod___AMinusAssignOp___empty_init(recv) ((parser___parser_prod___AMinusAssignOp___empty_init_t)CALL((recv), (SFT_parser___parser_prod[135] + 0)))
-#define CALL_parser___parser_prod___AMinusAssignOp___init_aminusassignop(recv) ((parser___parser_prod___AMinusAssignOp___init_aminusassignop_t)CALL((recv), (SFT_parser___parser_prod[135] + 1)))
-#define CALL_parser___parser_prod___AClosureDef___empty_init(recv) ((parser___parser_prod___AClosureDef___empty_init_t)CALL((recv), (SFT_parser___parser_prod[136] + 0)))
-#define CALL_parser___parser_prod___AClosureDef___init_aclosuredef(recv) ((parser___parser_prod___AClosureDef___init_aclosuredef_t)CALL((recv), (SFT_parser___parser_prod[136] + 1)))
-#define CALL_parser___parser_prod___ASimpleClosureId___empty_init(recv) ((parser___parser_prod___ASimpleClosureId___empty_init_t)CALL((recv), (SFT_parser___parser_prod[137] + 0)))
-#define CALL_parser___parser_prod___ASimpleClosureId___init_asimpleclosureid(recv) ((parser___parser_prod___ASimpleClosureId___init_asimpleclosureid_t)CALL((recv), (SFT_parser___parser_prod[137] + 1)))
-#define CALL_parser___parser_prod___ABreakClosureId___empty_init(recv) ((parser___parser_prod___ABreakClosureId___empty_init_t)CALL((recv), (SFT_parser___parser_prod[138] + 0)))
-#define CALL_parser___parser_prod___ABreakClosureId___init_abreakclosureid(recv) ((parser___parser_prod___ABreakClosureId___init_abreakclosureid_t)CALL((recv), (SFT_parser___parser_prod[138] + 1)))
-#define CALL_parser___parser_prod___AModuleName___empty_init(recv) ((parser___parser_prod___AModuleName___empty_init_t)CALL((recv), (SFT_parser___parser_prod[139] + 0)))
-#define CALL_parser___parser_prod___AModuleName___init_amodulename(recv) ((parser___parser_prod___AModuleName___init_amodulename_t)CALL((recv), (SFT_parser___parser_prod[139] + 1)))
-#define CALL_parser___parser_prod___AExternCalls___empty_init(recv) ((parser___parser_prod___AExternCalls___empty_init_t)CALL((recv), (SFT_parser___parser_prod[140] + 0)))
-#define CALL_parser___parser_prod___AExternCalls___init_aexterncalls(recv) ((parser___parser_prod___AExternCalls___init_aexterncalls_t)CALL((recv), (SFT_parser___parser_prod[140] + 1)))
-#define CALL_parser___parser_prod___AExternCall___empty_init(recv) ((parser___parser_prod___AExternCall___empty_init_t)CALL((recv), (SFT_parser___parser_prod[141] + 0)))
-#define CALL_parser___parser_prod___AExternCall___init_aexterncall(recv) ((parser___parser_prod___AExternCall___init_aexterncall_t)CALL((recv), (SFT_parser___parser_prod[141] + 1)))
-#define CALL_parser___parser_prod___ASuperExternCall___empty_init(recv) ((parser___parser_prod___ASuperExternCall___empty_init_t)CALL((recv), (SFT_parser___parser_prod[142] + 0)))
-#define CALL_parser___parser_prod___ASuperExternCall___init_asuperexterncall(recv) ((parser___parser_prod___ASuperExternCall___init_asuperexterncall_t)CALL((recv), (SFT_parser___parser_prod[142] + 1)))
-#define CALL_parser___parser_prod___ALocalPropExternCall___empty_init(recv) ((parser___parser_prod___ALocalPropExternCall___empty_init_t)CALL((recv), (SFT_parser___parser_prod[143] + 0)))
-#define CALL_parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall(recv) ((parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall_t)CALL((recv), (SFT_parser___parser_prod[143] + 1)))
-#define CALL_parser___parser_prod___AFullPropExternCall___empty_init(recv) ((parser___parser_prod___AFullPropExternCall___empty_init_t)CALL((recv), (SFT_parser___parser_prod[144] + 0)))
-#define CALL_parser___parser_prod___AFullPropExternCall___init_afullpropexterncall(recv) ((parser___parser_prod___AFullPropExternCall___init_afullpropexterncall_t)CALL((recv), (SFT_parser___parser_prod[144] + 1)))
-#define CALL_parser___parser_prod___AInitPropExternCall___empty_init(recv) ((parser___parser_prod___AInitPropExternCall___empty_init_t)CALL((recv), (SFT_parser___parser_prod[145] + 0)))
-#define CALL_parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall(recv) ((parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall_t)CALL((recv), (SFT_parser___parser_prod[145] + 1)))
-#define CALL_parser___parser_prod___ACastAsExternCall___empty_init(recv) ((parser___parser_prod___ACastAsExternCall___empty_init_t)CALL((recv), (SFT_parser___parser_prod[146] + 0)))
-#define CALL_parser___parser_prod___ACastAsExternCall___init_acastasexterncall(recv) ((parser___parser_prod___ACastAsExternCall___init_acastasexterncall_t)CALL((recv), (SFT_parser___parser_prod[146] + 1)))
-#define CALL_parser___parser_prod___AAsNullableExternCall___empty_init(recv) ((parser___parser_prod___AAsNullableExternCall___empty_init_t)CALL((recv), (SFT_parser___parser_prod[147] + 0)))
-#define CALL_parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall(recv) ((parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall_t)CALL((recv), (SFT_parser___parser_prod[147] + 1)))
-#define CALL_parser___parser_prod___AAsNotNullableExternCall___empty_init(recv) ((parser___parser_prod___AAsNotNullableExternCall___empty_init_t)CALL((recv), (SFT_parser___parser_prod[148] + 0)))
-#define CALL_parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall(recv) ((parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall_t)CALL((recv), (SFT_parser___parser_prod[148] + 1)))
-#define CALL_parser___parser_prod___AQualified___empty_init(recv) ((parser___parser_prod___AQualified___empty_init_t)CALL((recv), (SFT_parser___parser_prod[149] + 0)))
-#define CALL_parser___parser_prod___AQualified___init_aqualified(recv) ((parser___parser_prod___AQualified___init_aqualified_t)CALL((recv), (SFT_parser___parser_prod[149] + 1)))
-#define CALL_parser___parser_prod___ADoc___empty_init(recv) ((parser___parser_prod___ADoc___empty_init_t)CALL((recv), (SFT_parser___parser_prod[150] + 0)))
-#define CALL_parser___parser_prod___ADoc___init_adoc(recv) ((parser___parser_prod___ADoc___init_adoc_t)CALL((recv), (SFT_parser___parser_prod[150] + 1)))
-#define CALL_parser___parser_prod___Start___init(recv) ((parser___parser_prod___Start___init_t)CALL((recv), (SFT_parser___parser_prod[151] + 0)))
+#define CALL_parser___parser_prod___ADebugTypeExpr___empty_init(recv) ((parser___parser_prod___ADebugTypeExpr___empty_init_t)CALL((recv), (SFT_parser___parser_prod[134] + 0)))
+#define CALL_parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr(recv) ((parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr_t)CALL((recv), (SFT_parser___parser_prod[134] + 1)))
+#define CALL_parser___parser_prod___AListExprs___empty_init(recv) ((parser___parser_prod___AListExprs___empty_init_t)CALL((recv), (SFT_parser___parser_prod[135] + 0)))
+#define CALL_parser___parser_prod___AListExprs___init_alistexprs(recv) ((parser___parser_prod___AListExprs___init_alistexprs_t)CALL((recv), (SFT_parser___parser_prod[135] + 1)))
+#define CALL_parser___parser_prod___AParExprs___empty_init(recv) ((parser___parser_prod___AParExprs___empty_init_t)CALL((recv), (SFT_parser___parser_prod[136] + 0)))
+#define CALL_parser___parser_prod___AParExprs___init_aparexprs(recv) ((parser___parser_prod___AParExprs___init_aparexprs_t)CALL((recv), (SFT_parser___parser_prod[136] + 1)))
+#define CALL_parser___parser_prod___ABraExprs___empty_init(recv) ((parser___parser_prod___ABraExprs___empty_init_t)CALL((recv), (SFT_parser___parser_prod[137] + 0)))
+#define CALL_parser___parser_prod___ABraExprs___init_abraexprs(recv) ((parser___parser_prod___ABraExprs___init_abraexprs_t)CALL((recv), (SFT_parser___parser_prod[137] + 1)))
+#define CALL_parser___parser_prod___APlusAssignOp___empty_init(recv) ((parser___parser_prod___APlusAssignOp___empty_init_t)CALL((recv), (SFT_parser___parser_prod[138] + 0)))
+#define CALL_parser___parser_prod___APlusAssignOp___init_aplusassignop(recv) ((parser___parser_prod___APlusAssignOp___init_aplusassignop_t)CALL((recv), (SFT_parser___parser_prod[138] + 1)))
+#define CALL_parser___parser_prod___AMinusAssignOp___empty_init(recv) ((parser___parser_prod___AMinusAssignOp___empty_init_t)CALL((recv), (SFT_parser___parser_prod[139] + 0)))
+#define CALL_parser___parser_prod___AMinusAssignOp___init_aminusassignop(recv) ((parser___parser_prod___AMinusAssignOp___init_aminusassignop_t)CALL((recv), (SFT_parser___parser_prod[139] + 1)))
+#define CALL_parser___parser_prod___AClosureDef___empty_init(recv) ((parser___parser_prod___AClosureDef___empty_init_t)CALL((recv), (SFT_parser___parser_prod[140] + 0)))
+#define CALL_parser___parser_prod___AClosureDef___init_aclosuredef(recv) ((parser___parser_prod___AClosureDef___init_aclosuredef_t)CALL((recv), (SFT_parser___parser_prod[140] + 1)))
+#define CALL_parser___parser_prod___ASimpleClosureId___empty_init(recv) ((parser___parser_prod___ASimpleClosureId___empty_init_t)CALL((recv), (SFT_parser___parser_prod[141] + 0)))
+#define CALL_parser___parser_prod___ASimpleClosureId___init_asimpleclosureid(recv) ((parser___parser_prod___ASimpleClosureId___init_asimpleclosureid_t)CALL((recv), (SFT_parser___parser_prod[141] + 1)))
+#define CALL_parser___parser_prod___ABreakClosureId___empty_init(recv) ((parser___parser_prod___ABreakClosureId___empty_init_t)CALL((recv), (SFT_parser___parser_prod[142] + 0)))
+#define CALL_parser___parser_prod___ABreakClosureId___init_abreakclosureid(recv) ((parser___parser_prod___ABreakClosureId___init_abreakclosureid_t)CALL((recv), (SFT_parser___parser_prod[142] + 1)))
+#define CALL_parser___parser_prod___AModuleName___empty_init(recv) ((parser___parser_prod___AModuleName___empty_init_t)CALL((recv), (SFT_parser___parser_prod[143] + 0)))
+#define CALL_parser___parser_prod___AModuleName___init_amodulename(recv) ((parser___parser_prod___AModuleName___init_amodulename_t)CALL((recv), (SFT_parser___parser_prod[143] + 1)))
+#define CALL_parser___parser_prod___AExternCalls___empty_init(recv) ((parser___parser_prod___AExternCalls___empty_init_t)CALL((recv), (SFT_parser___parser_prod[144] + 0)))
+#define CALL_parser___parser_prod___AExternCalls___init_aexterncalls(recv) ((parser___parser_prod___AExternCalls___init_aexterncalls_t)CALL((recv), (SFT_parser___parser_prod[144] + 1)))
+#define CALL_parser___parser_prod___AExternCall___empty_init(recv) ((parser___parser_prod___AExternCall___empty_init_t)CALL((recv), (SFT_parser___parser_prod[145] + 0)))
+#define CALL_parser___parser_prod___AExternCall___init_aexterncall(recv) ((parser___parser_prod___AExternCall___init_aexterncall_t)CALL((recv), (SFT_parser___parser_prod[145] + 1)))
+#define CALL_parser___parser_prod___ASuperExternCall___empty_init(recv) ((parser___parser_prod___ASuperExternCall___empty_init_t)CALL((recv), (SFT_parser___parser_prod[146] + 0)))
+#define CALL_parser___parser_prod___ASuperExternCall___init_asuperexterncall(recv) ((parser___parser_prod___ASuperExternCall___init_asuperexterncall_t)CALL((recv), (SFT_parser___parser_prod[146] + 1)))
+#define CALL_parser___parser_prod___ALocalPropExternCall___empty_init(recv) ((parser___parser_prod___ALocalPropExternCall___empty_init_t)CALL((recv), (SFT_parser___parser_prod[147] + 0)))
+#define CALL_parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall(recv) ((parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall_t)CALL((recv), (SFT_parser___parser_prod[147] + 1)))
+#define CALL_parser___parser_prod___AFullPropExternCall___empty_init(recv) ((parser___parser_prod___AFullPropExternCall___empty_init_t)CALL((recv), (SFT_parser___parser_prod[148] + 0)))
+#define CALL_parser___parser_prod___AFullPropExternCall___init_afullpropexterncall(recv) ((parser___parser_prod___AFullPropExternCall___init_afullpropexterncall_t)CALL((recv), (SFT_parser___parser_prod[148] + 1)))
+#define CALL_parser___parser_prod___AInitPropExternCall___empty_init(recv) ((parser___parser_prod___AInitPropExternCall___empty_init_t)CALL((recv), (SFT_parser___parser_prod[149] + 0)))
+#define CALL_parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall(recv) ((parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall_t)CALL((recv), (SFT_parser___parser_prod[149] + 1)))
+#define CALL_parser___parser_prod___ACastAsExternCall___empty_init(recv) ((parser___parser_prod___ACastAsExternCall___empty_init_t)CALL((recv), (SFT_parser___parser_prod[150] + 0)))
+#define CALL_parser___parser_prod___ACastAsExternCall___init_acastasexterncall(recv) ((parser___parser_prod___ACastAsExternCall___init_acastasexterncall_t)CALL((recv), (SFT_parser___parser_prod[150] + 1)))
+#define CALL_parser___parser_prod___AAsNullableExternCall___empty_init(recv) ((parser___parser_prod___AAsNullableExternCall___empty_init_t)CALL((recv), (SFT_parser___parser_prod[151] + 0)))
+#define CALL_parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall(recv) ((parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall_t)CALL((recv), (SFT_parser___parser_prod[151] + 1)))
+#define CALL_parser___parser_prod___AAsNotNullableExternCall___empty_init(recv) ((parser___parser_prod___AAsNotNullableExternCall___empty_init_t)CALL((recv), (SFT_parser___parser_prod[152] + 0)))
+#define CALL_parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall(recv) ((parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall_t)CALL((recv), (SFT_parser___parser_prod[152] + 1)))
+#define CALL_parser___parser_prod___AQualified___empty_init(recv) ((parser___parser_prod___AQualified___empty_init_t)CALL((recv), (SFT_parser___parser_prod[153] + 0)))
+#define CALL_parser___parser_prod___AQualified___init_aqualified(recv) ((parser___parser_prod___AQualified___init_aqualified_t)CALL((recv), (SFT_parser___parser_prod[153] + 1)))
+#define CALL_parser___parser_prod___ADoc___empty_init(recv) ((parser___parser_prod___ADoc___empty_init_t)CALL((recv), (SFT_parser___parser_prod[154] + 0)))
+#define CALL_parser___parser_prod___ADoc___init_adoc(recv) ((parser___parser_prod___ADoc___init_adoc_t)CALL((recv), (SFT_parser___parser_prod[154] + 1)))
 static const char * const LOCATE_parser___parser_prod___ANode___parent = "parser_prod::ANode::parent";
 val_t parser___parser_prod___ANode___parent(val_t p0);
 typedef val_t (*parser___parser_prod___ANode___parent_t)(val_t p0);
@@ -330,18 +337,18 @@ typedef void (*parser___parser_prod___ANode___replace_with_t)(val_t p0, val_t p1
 static const char * const LOCATE_parser___parser_prod___ANode___visit_all = "parser_prod::ANode::visit_all";
 void parser___parser_prod___ANode___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ANode___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ANode_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANode_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___Token___visit_all = "parser_prod::Token::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___Token___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___Token___visit_all_t)(val_t p0, val_t p1);
 static const char * const LOCATE_parser___parser_prod___Token___replace_child = "parser_prod::Token::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___Token___replace_child(val_t p0, val_t p1, val_t p2);
 typedef void (*parser___parser_prod___Token___replace_child_t)(val_t p0, val_t p1, val_t p2);
-val_t NEW_Token_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_Token_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___Prod___replace_with = "parser_prod::Prod::(parser_prod::ANode::replace_with)";
 void parser___parser_prod___Prod___replace_with(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___Prod___replace_with_t)(val_t p0, val_t p1);
-val_t NEW_Prod_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_Prod_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___Visitor___visit = "parser_prod::Visitor::visit";
 void parser___parser_prod___Visitor___visit(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___Visitor___visit_t)(val_t p0, val_t p1);
@@ -381,7 +388,7 @@ typedef void (*parser___parser_prod___AModule___visit_all_t)(val_t p0, val_t p1)
   typedef void (*CLOS_OC_parser___parser_prod___AModule___visit_all_2_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___AModule___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___AModule___visit_all_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_AModule_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AModule_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AModuledecl___empty_init = "parser_prod::AModuledecl::empty_init";
 void parser___parser_prod___AModuledecl___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AModuledecl___empty_init_t)(val_t p0, int* init_table);
@@ -396,7 +403,7 @@ typedef void (*parser___parser_prod___AModuledecl___replace_child_t)(val_t p0, v
 static const char * const LOCATE_parser___parser_prod___AModuledecl___visit_all = "parser_prod::AModuledecl::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AModuledecl___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AModuledecl___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AModuledecl_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AModuledecl_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AStdImport___empty_init = "parser_prod::AStdImport::empty_init";
 void parser___parser_prod___AStdImport___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AStdImport___empty_init_t)(val_t p0, int* init_table);
@@ -411,7 +418,7 @@ typedef void (*parser___parser_prod___AStdImport___replace_child_t)(val_t p0, va
 static const char * const LOCATE_parser___parser_prod___AStdImport___visit_all = "parser_prod::AStdImport::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AStdImport___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AStdImport___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AStdImport_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStdImport_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ANoImport___empty_init = "parser_prod::ANoImport::empty_init";
 void parser___parser_prod___ANoImport___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ANoImport___empty_init_t)(val_t p0, int* init_table);
@@ -426,7 +433,7 @@ typedef void (*parser___parser_prod___ANoImport___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___ANoImport___visit_all = "parser_prod::ANoImport::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ANoImport___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ANoImport___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ANoImport_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANoImport_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___APublicVisibility___empty_init = "parser_prod::APublicVisibility::empty_init";
 void parser___parser_prod___APublicVisibility___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___APublicVisibility___empty_init_t)(val_t p0, int* init_table);
@@ -441,7 +448,7 @@ typedef void (*parser___parser_prod___APublicVisibility___replace_child_t)(val_t
 static const char * const LOCATE_parser___parser_prod___APublicVisibility___visit_all = "parser_prod::APublicVisibility::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___APublicVisibility___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___APublicVisibility___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_APublicVisibility_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_APublicVisibility_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___APrivateVisibility___empty_init = "parser_prod::APrivateVisibility::empty_init";
 void parser___parser_prod___APrivateVisibility___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___APrivateVisibility___empty_init_t)(val_t p0, int* init_table);
@@ -456,7 +463,7 @@ typedef void (*parser___parser_prod___APrivateVisibility___replace_child_t)(val_
 static const char * const LOCATE_parser___parser_prod___APrivateVisibility___visit_all = "parser_prod::APrivateVisibility::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___APrivateVisibility___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___APrivateVisibility___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_APrivateVisibility_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_APrivateVisibility_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AProtectedVisibility___empty_init = "parser_prod::AProtectedVisibility::empty_init";
 void parser___parser_prod___AProtectedVisibility___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AProtectedVisibility___empty_init_t)(val_t p0, int* init_table);
@@ -471,7 +478,7 @@ typedef void (*parser___parser_prod___AProtectedVisibility___replace_child_t)(va
 static const char * const LOCATE_parser___parser_prod___AProtectedVisibility___visit_all = "parser_prod::AProtectedVisibility::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AProtectedVisibility___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AProtectedVisibility___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AProtectedVisibility_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AProtectedVisibility_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AIntrudeVisibility___empty_init = "parser_prod::AIntrudeVisibility::empty_init";
 void parser___parser_prod___AIntrudeVisibility___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AIntrudeVisibility___empty_init_t)(val_t p0, int* init_table);
@@ -486,14 +493,14 @@ typedef void (*parser___parser_prod___AIntrudeVisibility___replace_child_t)(val_
 static const char * const LOCATE_parser___parser_prod___AIntrudeVisibility___visit_all = "parser_prod::AIntrudeVisibility::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AIntrudeVisibility___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AIntrudeVisibility___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AIntrudeVisibility_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIntrudeVisibility_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AStdClassdef___empty_init = "parser_prod::AStdClassdef::empty_init";
 void parser___parser_prod___AStdClassdef___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AStdClassdef___empty_init_t)(val_t p0, int* init_table);
 val_t NEW_AStdClassdef_parser___parser_prod___AStdClassdef___empty_init();
 static const char * const LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef = "parser_prod::AStdClassdef::init_astdclassdef";
-void parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, int* init_table);
-typedef void (*parser___parser_prod___AStdClassdef___init_astdclassdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, int* init_table);
+void parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, val_t p9, int* init_table);
+typedef void (*parser___parser_prod___AStdClassdef___init_astdclassdef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, val_t p9, int* init_table);
   typedef void (*CLOS_OC_parser___parser_prod___AStdClassdef___init_astdclassdef_1_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___AStdClassdef___init_astdclassdef_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___AStdClassdef___init_astdclassdef_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
@@ -503,7 +510,7 @@ typedef void (*parser___parser_prod___AStdClassdef___init_astdclassdef_t)(val_t
   typedef void (*CLOS_OC_parser___parser_prod___AStdClassdef___init_astdclassdef_3_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___AStdClassdef___init_astdclassdef_3(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___AStdClassdef___init_astdclassdef_3_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7);
+val_t NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8);
 static const char * const LOCATE_parser___parser_prod___AStdClassdef___replace_child = "parser_prod::AStdClassdef::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val_t p2);
 typedef void (*parser___parser_prod___AStdClassdef___replace_child_t)(val_t p0, val_t p1, val_t p2);
@@ -519,7 +526,7 @@ typedef void (*parser___parser_prod___AStdClassdef___visit_all_t)(val_t p0, val_
   typedef void (*CLOS_OC_parser___parser_prod___AStdClassdef___visit_all_3_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___AStdClassdef___visit_all_3(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___AStdClassdef___visit_all_3_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_AStdClassdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStdClassdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ATopClassdef___empty_init = "parser_prod::ATopClassdef::empty_init";
 void parser___parser_prod___ATopClassdef___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ATopClassdef___empty_init_t)(val_t p0, int* init_table);
@@ -540,7 +547,7 @@ typedef void (*parser___parser_prod___ATopClassdef___visit_all_t)(val_t p0, val_
   typedef void (*CLOS_OC_parser___parser_prod___ATopClassdef___visit_all_1_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___ATopClassdef___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___ATopClassdef___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_ATopClassdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ATopClassdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AMainClassdef___empty_init = "parser_prod::AMainClassdef::empty_init";
 void parser___parser_prod___AMainClassdef___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AMainClassdef___empty_init_t)(val_t p0, int* init_table);
@@ -561,7 +568,7 @@ typedef void (*parser___parser_prod___AMainClassdef___visit_all_t)(val_t p0, val
   typedef void (*CLOS_OC_parser___parser_prod___AMainClassdef___visit_all_1_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___AMainClassdef___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___AMainClassdef___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_AMainClassdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMainClassdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AConcreteClasskind___empty_init = "parser_prod::AConcreteClasskind::empty_init";
 void parser___parser_prod___AConcreteClasskind___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AConcreteClasskind___empty_init_t)(val_t p0, int* init_table);
@@ -576,7 +583,7 @@ typedef void (*parser___parser_prod___AConcreteClasskind___replace_child_t)(val_
 static const char * const LOCATE_parser___parser_prod___AConcreteClasskind___visit_all = "parser_prod::AConcreteClasskind::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AConcreteClasskind___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AConcreteClasskind___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AConcreteClasskind_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AConcreteClasskind_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AAbstractClasskind___empty_init = "parser_prod::AAbstractClasskind::empty_init";
 void parser___parser_prod___AAbstractClasskind___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AAbstractClasskind___empty_init_t)(val_t p0, int* init_table);
@@ -591,7 +598,7 @@ typedef void (*parser___parser_prod___AAbstractClasskind___replace_child_t)(val_
 static const char * const LOCATE_parser___parser_prod___AAbstractClasskind___visit_all = "parser_prod::AAbstractClasskind::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AAbstractClasskind___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AAbstractClasskind___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AAbstractClasskind_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAbstractClasskind_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AInterfaceClasskind___empty_init = "parser_prod::AInterfaceClasskind::empty_init";
 void parser___parser_prod___AInterfaceClasskind___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AInterfaceClasskind___empty_init_t)(val_t p0, int* init_table);
@@ -606,7 +613,7 @@ typedef void (*parser___parser_prod___AInterfaceClasskind___replace_child_t)(val
 static const char * const LOCATE_parser___parser_prod___AInterfaceClasskind___visit_all = "parser_prod::AInterfaceClasskind::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AInterfaceClasskind___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AInterfaceClasskind___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AInterfaceClasskind_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AInterfaceClasskind_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AEnumClasskind___empty_init = "parser_prod::AEnumClasskind::empty_init";
 void parser___parser_prod___AEnumClasskind___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AEnumClasskind___empty_init_t)(val_t p0, int* init_table);
@@ -621,7 +628,7 @@ typedef void (*parser___parser_prod___AEnumClasskind___replace_child_t)(val_t p0
 static const char * const LOCATE_parser___parser_prod___AEnumClasskind___visit_all = "parser_prod::AEnumClasskind::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AEnumClasskind___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AEnumClasskind___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AEnumClasskind_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AEnumClasskind_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AExternClasskind___empty_init = "parser_prod::AExternClasskind::empty_init";
 void parser___parser_prod___AExternClasskind___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AExternClasskind___empty_init_t)(val_t p0, int* init_table);
@@ -636,7 +643,7 @@ typedef void (*parser___parser_prod___AExternClasskind___replace_child_t)(val_t
 static const char * const LOCATE_parser___parser_prod___AExternClasskind___visit_all = "parser_prod::AExternClasskind::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AExternClasskind___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AExternClasskind___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AExternClasskind_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AExternClasskind_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AFormaldef___empty_init = "parser_prod::AFormaldef::empty_init";
 void parser___parser_prod___AFormaldef___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AFormaldef___empty_init_t)(val_t p0, int* init_table);
@@ -651,7 +658,7 @@ typedef void (*parser___parser_prod___AFormaldef___replace_child_t)(val_t p0, va
 static const char * const LOCATE_parser___parser_prod___AFormaldef___visit_all = "parser_prod::AFormaldef::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AFormaldef___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AFormaldef___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AFormaldef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AFormaldef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ASuperclass___empty_init = "parser_prod::ASuperclass::empty_init";
 void parser___parser_prod___ASuperclass___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ASuperclass___empty_init_t)(val_t p0, int* init_table);
@@ -666,7 +673,7 @@ typedef void (*parser___parser_prod___ASuperclass___replace_child_t)(val_t p0, v
 static const char * const LOCATE_parser___parser_prod___ASuperclass___visit_all = "parser_prod::ASuperclass::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ASuperclass___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ASuperclass___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ASuperclass_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASuperclass_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AAttrPropdef___empty_init = "parser_prod::AAttrPropdef::empty_init";
 void parser___parser_prod___AAttrPropdef___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AAttrPropdef___empty_init_t)(val_t p0, int* init_table);
@@ -681,7 +688,7 @@ typedef void (*parser___parser_prod___AAttrPropdef___replace_child_t)(val_t p0,
 static const char * const LOCATE_parser___parser_prod___AAttrPropdef___visit_all = "parser_prod::AAttrPropdef::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AAttrPropdef___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AAttrPropdef___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AAttrPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAttrPropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AMethPropdef___empty_init = "parser_prod::AMethPropdef::empty_init";
 void parser___parser_prod___AMethPropdef___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AMethPropdef___empty_init_t)(val_t p0, int* init_table);
@@ -696,7 +703,7 @@ typedef void (*parser___parser_prod___AMethPropdef___replace_child_t)(val_t p0,
 static const char * const LOCATE_parser___parser_prod___AMethPropdef___visit_all = "parser_prod::AMethPropdef::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AMethPropdef___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AMethPropdef___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMethPropdef_parser___parser_nodes___ANode___init();
 val_t NEW_ADeferredMethPropdef_parser___parser_prod___AMethPropdef___empty_init();
 static const char * const LOCATE_parser___parser_prod___ADeferredMethPropdef___empty_init = "parser_prod::ADeferredMethPropdef::empty_init";
 void parser___parser_prod___ADeferredMethPropdef___empty_init(val_t p0, int* init_table);
@@ -712,7 +719,7 @@ typedef void (*parser___parser_prod___ADeferredMethPropdef___replace_child_t)(va
 static const char * const LOCATE_parser___parser_prod___ADeferredMethPropdef___visit_all = "parser_prod::ADeferredMethPropdef::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ADeferredMethPropdef___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ADeferredMethPropdef___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ADeferredMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ADeferredMethPropdef_parser___parser_nodes___ANode___init();
 val_t NEW_ADeferredMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 val_t NEW_AInternMethPropdef_parser___parser_prod___AMethPropdef___empty_init();
 static const char * const LOCATE_parser___parser_prod___AInternMethPropdef___empty_init = "parser_prod::AInternMethPropdef::empty_init";
@@ -729,7 +736,7 @@ typedef void (*parser___parser_prod___AInternMethPropdef___replace_child_t)(val_
 static const char * const LOCATE_parser___parser_prod___AInternMethPropdef___visit_all = "parser_prod::AInternMethPropdef::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AInternMethPropdef___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AInternMethPropdef___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AInternMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AInternMethPropdef_parser___parser_nodes___ANode___init();
 val_t NEW_AInternMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 val_t NEW_AExternMethPropdef_parser___parser_prod___AMethPropdef___empty_init();
 static const char * const LOCATE_parser___parser_prod___AExternMethPropdef___empty_init = "parser_prod::AExternMethPropdef::empty_init";
@@ -746,7 +753,7 @@ typedef void (*parser___parser_prod___AExternMethPropdef___replace_child_t)(val_
 static const char * const LOCATE_parser___parser_prod___AExternMethPropdef___visit_all = "parser_prod::AExternMethPropdef::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AExternMethPropdef___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AExternMethPropdef___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AExternMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AExternMethPropdef_parser___parser_nodes___ANode___init();
 val_t NEW_AExternMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 val_t NEW_AConcreteMethPropdef_parser___parser_prod___AMethPropdef___empty_init();
 static const char * const LOCATE_parser___parser_prod___AConcreteMethPropdef___empty_init = "parser_prod::AConcreteMethPropdef::empty_init";
@@ -763,8 +770,9 @@ typedef void (*parser___parser_prod___AConcreteMethPropdef___replace_child_t)(va
 static const char * const LOCATE_parser___parser_prod___AConcreteMethPropdef___visit_all = "parser_prod::AConcreteMethPropdef::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AConcreteMethPropdef___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AConcreteMethPropdef___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AConcreteMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AConcreteMethPropdef_parser___parser_nodes___ANode___init();
 val_t NEW_AConcreteMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+val_t NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteMethPropdef___empty_init();
 static const char * const LOCATE_parser___parser_prod___AConcreteInitPropdef___empty_init = "parser_prod::AConcreteInitPropdef::empty_init";
 void parser___parser_prod___AConcreteInitPropdef___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AConcreteInitPropdef___empty_init_t)(val_t p0, int* init_table);
@@ -779,7 +787,11 @@ typedef void (*parser___parser_prod___AConcreteInitPropdef___replace_child_t)(va
 static const char * const LOCATE_parser___parser_prod___AConcreteInitPropdef___visit_all = "parser_prod::AConcreteInitPropdef::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AConcreteInitPropdef___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AConcreteInitPropdef___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AConcreteInitPropdef_parser___parser_nodes___AConcreteInitPropdef___init();
+val_t NEW_AConcreteInitPropdef_parser___parser_nodes___ANode___init();
+val_t NEW_AConcreteInitPropdef_parser___parser_prod___AMethPropdef___empty_init();
+val_t NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
+val_t NEW_AConcreteInitPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+val_t NEW_AExternInitPropdef_parser___parser_prod___AMethPropdef___empty_init();
 static const char * const LOCATE_parser___parser_prod___AExternInitPropdef___empty_init = "parser_prod::AExternInitPropdef::empty_init";
 void parser___parser_prod___AExternInitPropdef___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AExternInitPropdef___empty_init_t)(val_t p0, int* init_table);
@@ -794,7 +806,8 @@ typedef void (*parser___parser_prod___AExternInitPropdef___replace_child_t)(val_
 static const char * const LOCATE_parser___parser_prod___AExternInitPropdef___visit_all = "parser_prod::AExternInitPropdef::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AExternInitPropdef___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AExternInitPropdef___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AExternInitPropdef_parser___parser_nodes___AExternInitPropdef___init();
+val_t NEW_AExternInitPropdef_parser___parser_nodes___ANode___init();
+val_t NEW_AExternInitPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 val_t NEW_AMainMethPropdef_parser___parser_prod___AConcreteMethPropdef___empty_init();
 static const char * const LOCATE_parser___parser_prod___AMainMethPropdef___empty_init = "parser_prod::AMainMethPropdef::empty_init";
 void parser___parser_prod___AMainMethPropdef___empty_init(val_t p0, int* init_table);
@@ -810,7 +823,7 @@ typedef void (*parser___parser_prod___AMainMethPropdef___replace_child_t)(val_t
 static const char * const LOCATE_parser___parser_prod___AMainMethPropdef___visit_all = "parser_prod::AMainMethPropdef::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AMainMethPropdef___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AMainMethPropdef___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AMainMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMainMethPropdef_parser___parser_nodes___ANode___init();
 val_t NEW_AMainMethPropdef_parser___parser_prod___AMethPropdef___empty_init();
 val_t NEW_AMainMethPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
 val_t NEW_AMainMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
@@ -828,7 +841,7 @@ typedef void (*parser___parser_prod___ATypePropdef___replace_child_t)(val_t p0,
 static const char * const LOCATE_parser___parser_prod___ATypePropdef___visit_all = "parser_prod::ATypePropdef::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ATypePropdef___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ATypePropdef___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ATypePropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ATypePropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AReadAble___empty_init = "parser_prod::AReadAble::empty_init";
 void parser___parser_prod___AReadAble___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AReadAble___empty_init_t)(val_t p0, int* init_table);
@@ -843,7 +856,7 @@ typedef void (*parser___parser_prod___AReadAble___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___AReadAble___visit_all = "parser_prod::AReadAble::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AReadAble___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AReadAble___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AReadAble_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AReadAble_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AWriteAble___empty_init = "parser_prod::AWriteAble::empty_init";
 void parser___parser_prod___AWriteAble___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AWriteAble___empty_init_t)(val_t p0, int* init_table);
@@ -858,7 +871,7 @@ typedef void (*parser___parser_prod___AWriteAble___replace_child_t)(val_t p0, va
 static const char * const LOCATE_parser___parser_prod___AWriteAble___visit_all = "parser_prod::AWriteAble::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AWriteAble___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AWriteAble___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AWriteAble_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AWriteAble_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AIdMethid___empty_init = "parser_prod::AIdMethid::empty_init";
 void parser___parser_prod___AIdMethid___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AIdMethid___empty_init_t)(val_t p0, int* init_table);
@@ -873,7 +886,7 @@ typedef void (*parser___parser_prod___AIdMethid___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___AIdMethid___visit_all = "parser_prod::AIdMethid::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AIdMethid___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AIdMethid___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AIdMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIdMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___APlusMethid___empty_init = "parser_prod::APlusMethid::empty_init";
 void parser___parser_prod___APlusMethid___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___APlusMethid___empty_init_t)(val_t p0, int* init_table);
@@ -888,7 +901,7 @@ typedef void (*parser___parser_prod___APlusMethid___replace_child_t)(val_t p0, v
 static const char * const LOCATE_parser___parser_prod___APlusMethid___visit_all = "parser_prod::APlusMethid::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___APlusMethid___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___APlusMethid___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_APlusMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_APlusMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AMinusMethid___empty_init = "parser_prod::AMinusMethid::empty_init";
 void parser___parser_prod___AMinusMethid___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AMinusMethid___empty_init_t)(val_t p0, int* init_table);
@@ -903,7 +916,7 @@ typedef void (*parser___parser_prod___AMinusMethid___replace_child_t)(val_t p0,
 static const char * const LOCATE_parser___parser_prod___AMinusMethid___visit_all = "parser_prod::AMinusMethid::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AMinusMethid___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AMinusMethid___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AMinusMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMinusMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AStarMethid___empty_init = "parser_prod::AStarMethid::empty_init";
 void parser___parser_prod___AStarMethid___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AStarMethid___empty_init_t)(val_t p0, int* init_table);
@@ -918,7 +931,7 @@ typedef void (*parser___parser_prod___AStarMethid___replace_child_t)(val_t p0, v
 static const char * const LOCATE_parser___parser_prod___AStarMethid___visit_all = "parser_prod::AStarMethid::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AStarMethid___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AStarMethid___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AStarMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStarMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ASlashMethid___empty_init = "parser_prod::ASlashMethid::empty_init";
 void parser___parser_prod___ASlashMethid___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ASlashMethid___empty_init_t)(val_t p0, int* init_table);
@@ -933,7 +946,7 @@ typedef void (*parser___parser_prod___ASlashMethid___replace_child_t)(val_t p0,
 static const char * const LOCATE_parser___parser_prod___ASlashMethid___visit_all = "parser_prod::ASlashMethid::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ASlashMethid___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ASlashMethid___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ASlashMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASlashMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___APercentMethid___empty_init = "parser_prod::APercentMethid::empty_init";
 void parser___parser_prod___APercentMethid___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___APercentMethid___empty_init_t)(val_t p0, int* init_table);
@@ -948,7 +961,7 @@ typedef void (*parser___parser_prod___APercentMethid___replace_child_t)(val_t p0
 static const char * const LOCATE_parser___parser_prod___APercentMethid___visit_all = "parser_prod::APercentMethid::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___APercentMethid___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___APercentMethid___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_APercentMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_APercentMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AEqMethid___empty_init = "parser_prod::AEqMethid::empty_init";
 void parser___parser_prod___AEqMethid___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AEqMethid___empty_init_t)(val_t p0, int* init_table);
@@ -963,7 +976,7 @@ typedef void (*parser___parser_prod___AEqMethid___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___AEqMethid___visit_all = "parser_prod::AEqMethid::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AEqMethid___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AEqMethid___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AEqMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AEqMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ANeMethid___empty_init = "parser_prod::ANeMethid::empty_init";
 void parser___parser_prod___ANeMethid___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ANeMethid___empty_init_t)(val_t p0, int* init_table);
@@ -978,7 +991,7 @@ typedef void (*parser___parser_prod___ANeMethid___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___ANeMethid___visit_all = "parser_prod::ANeMethid::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ANeMethid___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ANeMethid___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ANeMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANeMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ALeMethid___empty_init = "parser_prod::ALeMethid::empty_init";
 void parser___parser_prod___ALeMethid___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ALeMethid___empty_init_t)(val_t p0, int* init_table);
@@ -993,7 +1006,7 @@ typedef void (*parser___parser_prod___ALeMethid___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___ALeMethid___visit_all = "parser_prod::ALeMethid::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ALeMethid___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ALeMethid___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ALeMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALeMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AGeMethid___empty_init = "parser_prod::AGeMethid::empty_init";
 void parser___parser_prod___AGeMethid___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AGeMethid___empty_init_t)(val_t p0, int* init_table);
@@ -1008,7 +1021,7 @@ typedef void (*parser___parser_prod___AGeMethid___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___AGeMethid___visit_all = "parser_prod::AGeMethid::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AGeMethid___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AGeMethid___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AGeMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AGeMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ALtMethid___empty_init = "parser_prod::ALtMethid::empty_init";
 void parser___parser_prod___ALtMethid___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ALtMethid___empty_init_t)(val_t p0, int* init_table);
@@ -1023,7 +1036,7 @@ typedef void (*parser___parser_prod___ALtMethid___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___ALtMethid___visit_all = "parser_prod::ALtMethid::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ALtMethid___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ALtMethid___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ALtMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALtMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AGtMethid___empty_init = "parser_prod::AGtMethid::empty_init";
 void parser___parser_prod___AGtMethid___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AGtMethid___empty_init_t)(val_t p0, int* init_table);
@@ -1038,7 +1051,7 @@ typedef void (*parser___parser_prod___AGtMethid___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___AGtMethid___visit_all = "parser_prod::AGtMethid::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AGtMethid___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AGtMethid___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AGtMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AGtMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ALlMethid___empty_init = "parser_prod::ALlMethid::empty_init";
 void parser___parser_prod___ALlMethid___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ALlMethid___empty_init_t)(val_t p0, int* init_table);
@@ -1053,7 +1066,7 @@ typedef void (*parser___parser_prod___ALlMethid___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___ALlMethid___visit_all = "parser_prod::ALlMethid::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ALlMethid___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ALlMethid___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ALlMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALlMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AGgMethid___empty_init = "parser_prod::AGgMethid::empty_init";
 void parser___parser_prod___AGgMethid___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AGgMethid___empty_init_t)(val_t p0, int* init_table);
@@ -1068,7 +1081,7 @@ typedef void (*parser___parser_prod___AGgMethid___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___AGgMethid___visit_all = "parser_prod::AGgMethid::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AGgMethid___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AGgMethid___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AGgMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AGgMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ABraMethid___empty_init = "parser_prod::ABraMethid::empty_init";
 void parser___parser_prod___ABraMethid___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ABraMethid___empty_init_t)(val_t p0, int* init_table);
@@ -1083,7 +1096,7 @@ typedef void (*parser___parser_prod___ABraMethid___replace_child_t)(val_t p0, va
 static const char * const LOCATE_parser___parser_prod___ABraMethid___visit_all = "parser_prod::ABraMethid::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ABraMethid___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ABraMethid___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ABraMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABraMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AStarshipMethid___empty_init = "parser_prod::AStarshipMethid::empty_init";
 void parser___parser_prod___AStarshipMethid___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AStarshipMethid___empty_init_t)(val_t p0, int* init_table);
@@ -1098,7 +1111,7 @@ typedef void (*parser___parser_prod___AStarshipMethid___replace_child_t)(val_t p
 static const char * const LOCATE_parser___parser_prod___AStarshipMethid___visit_all = "parser_prod::AStarshipMethid::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AStarshipMethid___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AStarshipMethid___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AStarshipMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStarshipMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AAssignMethid___empty_init = "parser_prod::AAssignMethid::empty_init";
 void parser___parser_prod___AAssignMethid___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AAssignMethid___empty_init_t)(val_t p0, int* init_table);
@@ -1113,7 +1126,7 @@ typedef void (*parser___parser_prod___AAssignMethid___replace_child_t)(val_t p0,
 static const char * const LOCATE_parser___parser_prod___AAssignMethid___visit_all = "parser_prod::AAssignMethid::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AAssignMethid___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AAssignMethid___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AAssignMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAssignMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ABraassignMethid___empty_init = "parser_prod::ABraassignMethid::empty_init";
 void parser___parser_prod___ABraassignMethid___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ABraassignMethid___empty_init_t)(val_t p0, int* init_table);
@@ -1128,21 +1141,21 @@ typedef void (*parser___parser_prod___ABraassignMethid___replace_child_t)(val_t
 static const char * const LOCATE_parser___parser_prod___ABraassignMethid___visit_all = "parser_prod::ABraassignMethid::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ABraassignMethid___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ABraassignMethid___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ABraassignMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABraassignMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ASignature___empty_init = "parser_prod::ASignature::empty_init";
 void parser___parser_prod___ASignature___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ASignature___empty_init_t)(val_t p0, int* init_table);
 val_t NEW_ASignature_parser___parser_prod___ASignature___empty_init();
 static const char * const LOCATE_parser___parser_prod___ASignature___init_asignature = "parser_prod::ASignature::init_asignature";
-void parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table);
-typedef void (*parser___parser_prod___ASignature___init_asignature_t)(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table);
+void parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table);
+typedef void (*parser___parser_prod___ASignature___init_asignature_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table);
   typedef void (*CLOS_OC_parser___parser_prod___ASignature___init_asignature_1_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___ASignature___init_asignature_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___ASignature___init_asignature_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*CLOS_OC_parser___parser_prod___ASignature___init_asignature_2_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___ASignature___init_asignature_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___ASignature___init_asignature_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_ASignature_parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2);
+val_t NEW_ASignature_parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_parser___parser_prod___ASignature___replace_child = "parser_prod::ASignature::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___ASignature___replace_child(val_t p0, val_t p1, val_t p2);
 typedef void (*parser___parser_prod___ASignature___replace_child_t)(val_t p0, val_t p1, val_t p2);
@@ -1155,7 +1168,7 @@ typedef void (*parser___parser_prod___ASignature___visit_all_t)(val_t p0, val_t
   typedef void (*CLOS_OC_parser___parser_prod___ASignature___visit_all_2_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___ASignature___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___ASignature___visit_all_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_ASignature_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASignature_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AParam___empty_init = "parser_prod::AParam::empty_init";
 void parser___parser_prod___AParam___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AParam___empty_init_t)(val_t p0, int* init_table);
@@ -1170,7 +1183,7 @@ typedef void (*parser___parser_prod___AParam___replace_child_t)(val_t p0, val_t
 static const char * const LOCATE_parser___parser_prod___AParam___visit_all = "parser_prod::AParam::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AParam___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AParam___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AParam_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AParam_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AClosureDecl___empty_init = "parser_prod::AClosureDecl::empty_init";
 void parser___parser_prod___AClosureDecl___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AClosureDecl___empty_init_t)(val_t p0, int* init_table);
@@ -1185,7 +1198,7 @@ typedef void (*parser___parser_prod___AClosureDecl___replace_child_t)(val_t p0,
 static const char * const LOCATE_parser___parser_prod___AClosureDecl___visit_all = "parser_prod::AClosureDecl::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AClosureDecl___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AClosureDecl___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AClosureDecl_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AClosureDecl_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AType___empty_init = "parser_prod::AType::empty_init";
 void parser___parser_prod___AType___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AType___empty_init_t)(val_t p0, int* init_table);
@@ -1206,7 +1219,7 @@ typedef void (*parser___parser_prod___AType___visit_all_t)(val_t p0, val_t p1);
   typedef void (*CLOS_OC_parser___parser_prod___AType___visit_all_1_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___AType___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___AType___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_AType_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AType_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ALabel___empty_init = "parser_prod::ALabel::empty_init";
 void parser___parser_prod___ALabel___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ALabel___empty_init_t)(val_t p0, int* init_table);
@@ -1221,18 +1234,18 @@ typedef void (*parser___parser_prod___ALabel___replace_child_t)(val_t p0, val_t
 static const char * const LOCATE_parser___parser_prod___ALabel___visit_all = "parser_prod::ALabel::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ALabel___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ALabel___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ALabel_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALabel_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ABlockExpr___empty_init = "parser_prod::ABlockExpr::empty_init";
 void parser___parser_prod___ABlockExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ABlockExpr___empty_init_t)(val_t p0, int* init_table);
 val_t NEW_ABlockExpr_parser___parser_prod___ABlockExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___ABlockExpr___init_ablockexpr = "parser_prod::ABlockExpr::init_ablockexpr";
-void parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0, val_t p1, int* init_table);
-typedef void (*parser___parser_prod___ABlockExpr___init_ablockexpr_t)(val_t p0, val_t p1, int* init_table);
+void parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0, val_t p1, val_t p2, int* init_table);
+typedef void (*parser___parser_prod___ABlockExpr___init_ablockexpr_t)(val_t p0, val_t p1, val_t p2, int* init_table);
   typedef void (*CLOS_OC_parser___parser_prod___ABlockExpr___init_ablockexpr_1_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___ABlockExpr___init_ablockexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___ABlockExpr___init_ablockexpr_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0);
+val_t NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0, val_t p1);
 static const char * const LOCATE_parser___parser_prod___ABlockExpr___replace_child = "parser_prod::ABlockExpr::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___ABlockExpr___replace_child(val_t p0, val_t p1, val_t p2);
 typedef void (*parser___parser_prod___ABlockExpr___replace_child_t)(val_t p0, val_t p1, val_t p2);
@@ -1242,7 +1255,7 @@ typedef void (*parser___parser_prod___ABlockExpr___visit_all_t)(val_t p0, val_t
   typedef void (*CLOS_OC_parser___parser_prod___ABlockExpr___visit_all_1_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___ABlockExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___ABlockExpr___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_ABlockExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABlockExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AVardeclExpr___empty_init = "parser_prod::AVardeclExpr::empty_init";
 void parser___parser_prod___AVardeclExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AVardeclExpr___empty_init_t)(val_t p0, int* init_table);
@@ -1257,7 +1270,7 @@ typedef void (*parser___parser_prod___AVardeclExpr___replace_child_t)(val_t p0,
 static const char * const LOCATE_parser___parser_prod___AVardeclExpr___visit_all = "parser_prod::AVardeclExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AVardeclExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AVardeclExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AVardeclExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AVardeclExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AReturnExpr___empty_init = "parser_prod::AReturnExpr::empty_init";
 void parser___parser_prod___AReturnExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AReturnExpr___empty_init_t)(val_t p0, int* init_table);
@@ -1272,7 +1285,7 @@ typedef void (*parser___parser_prod___AReturnExpr___replace_child_t)(val_t p0, v
 static const char * const LOCATE_parser___parser_prod___AReturnExpr___visit_all = "parser_prod::AReturnExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AReturnExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AReturnExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AReturnExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AReturnExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ABreakExpr___empty_init = "parser_prod::ABreakExpr::empty_init";
 void parser___parser_prod___ABreakExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ABreakExpr___empty_init_t)(val_t p0, int* init_table);
@@ -1287,7 +1300,7 @@ typedef void (*parser___parser_prod___ABreakExpr___replace_child_t)(val_t p0, va
 static const char * const LOCATE_parser___parser_prod___ABreakExpr___visit_all = "parser_prod::ABreakExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ABreakExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ABreakExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ABreakExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABreakExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AAbortExpr___empty_init = "parser_prod::AAbortExpr::empty_init";
 void parser___parser_prod___AAbortExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AAbortExpr___empty_init_t)(val_t p0, int* init_table);
@@ -1302,7 +1315,7 @@ typedef void (*parser___parser_prod___AAbortExpr___replace_child_t)(val_t p0, va
 static const char * const LOCATE_parser___parser_prod___AAbortExpr___visit_all = "parser_prod::AAbortExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AAbortExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AAbortExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AAbortExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAbortExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AContinueExpr___empty_init = "parser_prod::AContinueExpr::empty_init";
 void parser___parser_prod___AContinueExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AContinueExpr___empty_init_t)(val_t p0, int* init_table);
@@ -1317,7 +1330,7 @@ typedef void (*parser___parser_prod___AContinueExpr___replace_child_t)(val_t p0,
 static const char * const LOCATE_parser___parser_prod___AContinueExpr___visit_all = "parser_prod::AContinueExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AContinueExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AContinueExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AContinueExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AContinueExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ADoExpr___empty_init = "parser_prod::ADoExpr::empty_init";
 void parser___parser_prod___ADoExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ADoExpr___empty_init_t)(val_t p0, int* init_table);
@@ -1332,7 +1345,7 @@ typedef void (*parser___parser_prod___ADoExpr___replace_child_t)(val_t p0, val_t
 static const char * const LOCATE_parser___parser_prod___ADoExpr___visit_all = "parser_prod::ADoExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ADoExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ADoExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ADoExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ADoExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AIfExpr___empty_init = "parser_prod::AIfExpr::empty_init";
 void parser___parser_prod___AIfExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AIfExpr___empty_init_t)(val_t p0, int* init_table);
@@ -1347,7 +1360,7 @@ typedef void (*parser___parser_prod___AIfExpr___replace_child_t)(val_t p0, val_t
 static const char * const LOCATE_parser___parser_prod___AIfExpr___visit_all = "parser_prod::AIfExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AIfExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AIfExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AIfExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIfExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AIfexprExpr___empty_init = "parser_prod::AIfexprExpr::empty_init";
 void parser___parser_prod___AIfexprExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AIfexprExpr___empty_init_t)(val_t p0, int* init_table);
@@ -1362,7 +1375,7 @@ typedef void (*parser___parser_prod___AIfexprExpr___replace_child_t)(val_t p0, v
 static const char * const LOCATE_parser___parser_prod___AIfexprExpr___visit_all = "parser_prod::AIfexprExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AIfexprExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AIfexprExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AIfexprExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIfexprExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AWhileExpr___empty_init = "parser_prod::AWhileExpr::empty_init";
 void parser___parser_prod___AWhileExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AWhileExpr___empty_init_t)(val_t p0, int* init_table);
@@ -1377,7 +1390,7 @@ typedef void (*parser___parser_prod___AWhileExpr___replace_child_t)(val_t p0, va
 static const char * const LOCATE_parser___parser_prod___AWhileExpr___visit_all = "parser_prod::AWhileExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AWhileExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AWhileExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AWhileExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AWhileExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ALoopExpr___empty_init = "parser_prod::ALoopExpr::empty_init";
 void parser___parser_prod___ALoopExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ALoopExpr___empty_init_t)(val_t p0, int* init_table);
@@ -1392,7 +1405,7 @@ typedef void (*parser___parser_prod___ALoopExpr___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___ALoopExpr___visit_all = "parser_prod::ALoopExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ALoopExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ALoopExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ALoopExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALoopExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AForExpr___empty_init = "parser_prod::AForExpr::empty_init";
 void parser___parser_prod___AForExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AForExpr___empty_init_t)(val_t p0, int* init_table);
@@ -1413,7 +1426,7 @@ typedef void (*parser___parser_prod___AForExpr___visit_all_t)(val_t p0, val_t p1
   typedef void (*CLOS_OC_parser___parser_prod___AForExpr___visit_all_1_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___AForExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___AForExpr___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_AForExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AForExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AAssertExpr___empty_init = "parser_prod::AAssertExpr::empty_init";
 void parser___parser_prod___AAssertExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AAssertExpr___empty_init_t)(val_t p0, int* init_table);
@@ -1428,7 +1441,7 @@ typedef void (*parser___parser_prod___AAssertExpr___replace_child_t)(val_t p0, v
 static const char * const LOCATE_parser___parser_prod___AAssertExpr___visit_all = "parser_prod::AAssertExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AAssertExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AAssertExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AAssertExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAssertExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AOnceExpr___empty_init = "parser_prod::AOnceExpr::empty_init";
 void parser___parser_prod___AOnceExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AOnceExpr___empty_init_t)(val_t p0, int* init_table);
@@ -1443,7 +1456,7 @@ typedef void (*parser___parser_prod___AOnceExpr___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___AOnceExpr___visit_all = "parser_prod::AOnceExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AOnceExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AOnceExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AOnceExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AOnceExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ASendExpr___empty_init = "parser_prod::ASendExpr::empty_init";
 void parser___parser_prod___ASendExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ASendExpr___empty_init_t)(val_t p0, int* init_table);
@@ -1458,7 +1471,7 @@ typedef void (*parser___parser_prod___ASendExpr___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___ASendExpr___visit_all = "parser_prod::ASendExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ASendExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ASendExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ASendExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASendExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ABinopExpr_parser___parser_prod___ASendExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___ABinopExpr___empty_init = "parser_prod::ABinopExpr::empty_init";
 void parser___parser_prod___ABinopExpr___empty_init(val_t p0, int* init_table);
@@ -1474,7 +1487,7 @@ typedef void (*parser___parser_prod___ABinopExpr___replace_child_t)(val_t p0, va
 static const char * const LOCATE_parser___parser_prod___ABinopExpr___visit_all = "parser_prod::ABinopExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ABinopExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ABinopExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ABinopExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABinopExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ABinopExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 static const char * const LOCATE_parser___parser_prod___AOrExpr___empty_init = "parser_prod::AOrExpr::empty_init";
 void parser___parser_prod___AOrExpr___empty_init(val_t p0, int* init_table);
@@ -1490,7 +1503,7 @@ typedef void (*parser___parser_prod___AOrExpr___replace_child_t)(val_t p0, val_t
 static const char * const LOCATE_parser___parser_prod___AOrExpr___visit_all = "parser_prod::AOrExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AOrExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AOrExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AOrExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AOrExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AAndExpr___empty_init = "parser_prod::AAndExpr::empty_init";
 void parser___parser_prod___AAndExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AAndExpr___empty_init_t)(val_t p0, int* init_table);
@@ -1505,7 +1518,7 @@ typedef void (*parser___parser_prod___AAndExpr___replace_child_t)(val_t p0, val_
 static const char * const LOCATE_parser___parser_prod___AAndExpr___visit_all = "parser_prod::AAndExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AAndExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AAndExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AAndExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAndExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AOrElseExpr___empty_init = "parser_prod::AOrElseExpr::empty_init";
 void parser___parser_prod___AOrElseExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AOrElseExpr___empty_init_t)(val_t p0, int* init_table);
@@ -1520,7 +1533,7 @@ typedef void (*parser___parser_prod___AOrElseExpr___replace_child_t)(val_t p0, v
 static const char * const LOCATE_parser___parser_prod___AOrElseExpr___visit_all = "parser_prod::AOrElseExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AOrElseExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AOrElseExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AOrElseExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AOrElseExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ANotExpr___empty_init = "parser_prod::ANotExpr::empty_init";
 void parser___parser_prod___ANotExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ANotExpr___empty_init_t)(val_t p0, int* init_table);
@@ -1535,7 +1548,7 @@ typedef void (*parser___parser_prod___ANotExpr___replace_child_t)(val_t p0, val_
 static const char * const LOCATE_parser___parser_prod___ANotExpr___visit_all = "parser_prod::ANotExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ANotExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ANotExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ANotExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANotExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AEqExpr_parser___parser_prod___ABinopExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___AEqExpr___empty_init = "parser_prod::AEqExpr::empty_init";
 void parser___parser_prod___AEqExpr___empty_init(val_t p0, int* init_table);
@@ -1551,7 +1564,7 @@ typedef void (*parser___parser_prod___AEqExpr___replace_child_t)(val_t p0, val_t
 static const char * const LOCATE_parser___parser_prod___AEqExpr___visit_all = "parser_prod::AEqExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AEqExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AEqExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AEqExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AEqExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AEqExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_AEqExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_AEqExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -1569,7 +1582,7 @@ typedef void (*parser___parser_prod___AEeExpr___replace_child_t)(val_t p0, val_t
 static const char * const LOCATE_parser___parser_prod___AEeExpr___visit_all = "parser_prod::AEeExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AEeExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AEeExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AEeExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AEeExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ANeExpr_parser___parser_prod___ABinopExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___ANeExpr___empty_init = "parser_prod::ANeExpr::empty_init";
 void parser___parser_prod___ANeExpr___empty_init(val_t p0, int* init_table);
@@ -1585,7 +1598,7 @@ typedef void (*parser___parser_prod___ANeExpr___replace_child_t)(val_t p0, val_t
 static const char * const LOCATE_parser___parser_prod___ANeExpr___visit_all = "parser_prod::ANeExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ANeExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ANeExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ANeExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANeExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ANeExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ANeExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_ANeExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -1604,7 +1617,7 @@ typedef void (*parser___parser_prod___ALtExpr___replace_child_t)(val_t p0, val_t
 static const char * const LOCATE_parser___parser_prod___ALtExpr___visit_all = "parser_prod::ALtExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ALtExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ALtExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ALtExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALtExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ALtExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ALtExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_ALtExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -1623,7 +1636,7 @@ typedef void (*parser___parser_prod___ALeExpr___replace_child_t)(val_t p0, val_t
 static const char * const LOCATE_parser___parser_prod___ALeExpr___visit_all = "parser_prod::ALeExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ALeExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ALeExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ALeExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALeExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ALeExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ALeExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_ALeExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -1642,7 +1655,7 @@ typedef void (*parser___parser_prod___ALlExpr___replace_child_t)(val_t p0, val_t
 static const char * const LOCATE_parser___parser_prod___ALlExpr___visit_all = "parser_prod::ALlExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ALlExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ALlExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ALlExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALlExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ALlExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ALlExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_ALlExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -1661,7 +1674,7 @@ typedef void (*parser___parser_prod___AGtExpr___replace_child_t)(val_t p0, val_t
 static const char * const LOCATE_parser___parser_prod___AGtExpr___visit_all = "parser_prod::AGtExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AGtExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AGtExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AGtExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AGtExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AGtExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_AGtExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_AGtExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -1680,7 +1693,7 @@ typedef void (*parser___parser_prod___AGeExpr___replace_child_t)(val_t p0, val_t
 static const char * const LOCATE_parser___parser_prod___AGeExpr___visit_all = "parser_prod::AGeExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AGeExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AGeExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AGeExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AGeExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AGeExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_AGeExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_AGeExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -1699,7 +1712,7 @@ typedef void (*parser___parser_prod___AGgExpr___replace_child_t)(val_t p0, val_t
 static const char * const LOCATE_parser___parser_prod___AGgExpr___visit_all = "parser_prod::AGgExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AGgExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AGgExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AGgExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AGgExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AGgExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_AGgExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_AGgExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -1717,7 +1730,7 @@ typedef void (*parser___parser_prod___AIsaExpr___replace_child_t)(val_t p0, val_
 static const char * const LOCATE_parser___parser_prod___AIsaExpr___visit_all = "parser_prod::AIsaExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AIsaExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AIsaExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AIsaExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIsaExpr_parser___parser_nodes___ANode___init();
 val_t NEW_APlusExpr_parser___parser_prod___ABinopExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___APlusExpr___empty_init = "parser_prod::APlusExpr::empty_init";
 void parser___parser_prod___APlusExpr___empty_init(val_t p0, int* init_table);
@@ -1733,7 +1746,7 @@ typedef void (*parser___parser_prod___APlusExpr___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___APlusExpr___visit_all = "parser_prod::APlusExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___APlusExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___APlusExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_APlusExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_APlusExpr_parser___parser_nodes___ANode___init();
 val_t NEW_APlusExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_APlusExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_APlusExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -1752,7 +1765,7 @@ typedef void (*parser___parser_prod___AMinusExpr___replace_child_t)(val_t p0, va
 static const char * const LOCATE_parser___parser_prod___AMinusExpr___visit_all = "parser_prod::AMinusExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AMinusExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AMinusExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AMinusExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMinusExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AMinusExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_AMinusExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_AMinusExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -1771,7 +1784,7 @@ typedef void (*parser___parser_prod___AStarshipExpr___replace_child_t)(val_t p0,
 static const char * const LOCATE_parser___parser_prod___AStarshipExpr___visit_all = "parser_prod::AStarshipExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AStarshipExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AStarshipExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AStarshipExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStarshipExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AStarshipExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_AStarshipExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_AStarshipExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -1790,7 +1803,7 @@ typedef void (*parser___parser_prod___AStarExpr___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___AStarExpr___visit_all = "parser_prod::AStarExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AStarExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AStarExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AStarExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStarExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AStarExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_AStarExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_AStarExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -1809,7 +1822,7 @@ typedef void (*parser___parser_prod___ASlashExpr___replace_child_t)(val_t p0, va
 static const char * const LOCATE_parser___parser_prod___ASlashExpr___visit_all = "parser_prod::ASlashExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ASlashExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ASlashExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ASlashExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASlashExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ASlashExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ASlashExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_ASlashExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -1828,7 +1841,7 @@ typedef void (*parser___parser_prod___APercentExpr___replace_child_t)(val_t p0,
 static const char * const LOCATE_parser___parser_prod___APercentExpr___visit_all = "parser_prod::APercentExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___APercentExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___APercentExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_APercentExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_APercentExpr_parser___parser_nodes___ANode___init();
 val_t NEW_APercentExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_APercentExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_APercentExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -1847,7 +1860,7 @@ typedef void (*parser___parser_prod___AUminusExpr___replace_child_t)(val_t p0, v
 static const char * const LOCATE_parser___parser_prod___AUminusExpr___visit_all = "parser_prod::AUminusExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AUminusExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AUminusExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AUminusExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AUminusExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AUminusExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 static const char * const LOCATE_parser___parser_prod___ANewExpr___empty_init = "parser_prod::ANewExpr::empty_init";
 void parser___parser_prod___ANewExpr___empty_init(val_t p0, int* init_table);
@@ -1856,9 +1869,6 @@ val_t NEW_ANewExpr_parser___parser_prod___ANewExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___ANewExpr___init_anewexpr = "parser_prod::ANewExpr::init_anewexpr";
 void parser___parser_prod___ANewExpr___init_anewexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table);
 typedef void (*parser___parser_prod___ANewExpr___init_anewexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table);
-  typedef void (*CLOS_OC_parser___parser_prod___ANewExpr___init_anewexpr_1_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___ANewExpr___init_anewexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___ANewExpr___init_anewexpr_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_ANewExpr_parser___parser_prod___ANewExpr___init_anewexpr(val_t p0, val_t p1, val_t p2, val_t p3);
 static const char * const LOCATE_parser___parser_prod___ANewExpr___replace_child = "parser_prod::ANewExpr::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___ANewExpr___replace_child(val_t p0, val_t p1, val_t p2);
@@ -1866,10 +1876,7 @@ typedef void (*parser___parser_prod___ANewExpr___replace_child_t)(val_t p0, val_
 static const char * const LOCATE_parser___parser_prod___ANewExpr___visit_all = "parser_prod::ANewExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ANewExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ANewExpr___visit_all_t)(val_t p0, val_t p1);
-  typedef void (*CLOS_OC_parser___parser_prod___ANewExpr___visit_all_1_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___ANewExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___ANewExpr___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_ANewExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANewExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AAttrExpr___empty_init = "parser_prod::AAttrExpr::empty_init";
 void parser___parser_prod___AAttrExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AAttrExpr___empty_init_t)(val_t p0, int* init_table);
@@ -1884,7 +1891,7 @@ typedef void (*parser___parser_prod___AAttrExpr___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___AAttrExpr___visit_all = "parser_prod::AAttrExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AAttrExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AAttrExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AAttrExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAttrExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AAttrAssignExpr___empty_init = "parser_prod::AAttrAssignExpr::empty_init";
 void parser___parser_prod___AAttrAssignExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AAttrAssignExpr___empty_init_t)(val_t p0, int* init_table);
@@ -1899,7 +1906,7 @@ typedef void (*parser___parser_prod___AAttrAssignExpr___replace_child_t)(val_t p
 static const char * const LOCATE_parser___parser_prod___AAttrAssignExpr___visit_all = "parser_prod::AAttrAssignExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AAttrAssignExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AAttrAssignExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AAttrAssignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAttrAssignExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AAttrReassignExpr___empty_init = "parser_prod::AAttrReassignExpr::empty_init";
 void parser___parser_prod___AAttrReassignExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AAttrReassignExpr___empty_init_t)(val_t p0, int* init_table);
@@ -1914,7 +1921,7 @@ typedef void (*parser___parser_prod___AAttrReassignExpr___replace_child_t)(val_t
 static const char * const LOCATE_parser___parser_prod___AAttrReassignExpr___visit_all = "parser_prod::AAttrReassignExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AAttrReassignExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AAttrReassignExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AAttrReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAttrReassignExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ACallExpr_parser___parser_prod___ASendExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___ACallExpr___empty_init = "parser_prod::ACallExpr::empty_init";
 void parser___parser_prod___ACallExpr___empty_init(val_t p0, int* init_table);
@@ -1926,9 +1933,6 @@ typedef void (*parser___parser_prod___ACallExpr___init_acallexpr_t)(val_t p0, va
   typedef void (*CLOS_OC_parser___parser_prod___ACallExpr___init_acallexpr_1_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___ACallExpr___init_acallexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___ACallExpr___init_acallexpr_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*CLOS_OC_parser___parser_prod___ACallExpr___init_acallexpr_2_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___ACallExpr___init_acallexpr_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___ACallExpr___init_acallexpr_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_ACallExpr_parser___parser_prod___ACallExpr___init_acallexpr(val_t p0, val_t p1, val_t p2, val_t p3);
 static const char * const LOCATE_parser___parser_prod___ACallExpr___replace_child = "parser_prod::ACallExpr::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___ACallExpr___replace_child(val_t p0, val_t p1, val_t p2);
@@ -1939,10 +1943,7 @@ typedef void (*parser___parser_prod___ACallExpr___visit_all_t)(val_t p0, val_t p
   typedef void (*CLOS_OC_parser___parser_prod___ACallExpr___visit_all_1_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___ACallExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___ACallExpr___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*CLOS_OC_parser___parser_prod___ACallExpr___visit_all_2_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___ACallExpr___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___ACallExpr___visit_all_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_ACallExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ACallExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ACallExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 val_t NEW_ACallAssignExpr_parser___parser_prod___ASendExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___ACallAssignExpr___empty_init = "parser_prod::ACallAssignExpr::empty_init";
@@ -1952,9 +1953,6 @@ val_t NEW_ACallAssignExpr_parser___parser_prod___ACallAssignExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___ACallAssignExpr___init_acallassignexpr = "parser_prod::ACallAssignExpr::init_acallassignexpr";
 void parser___parser_prod___ACallAssignExpr___init_acallassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table);
 typedef void (*parser___parser_prod___ACallAssignExpr___init_acallassignexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table);
-  typedef void (*CLOS_OC_parser___parser_prod___ACallAssignExpr___init_acallassignexpr_1_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___ACallAssignExpr___init_acallassignexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___ACallAssignExpr___init_acallassignexpr_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_ACallAssignExpr_parser___parser_prod___ACallAssignExpr___init_acallassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_parser___parser_prod___ACallAssignExpr___replace_child = "parser_prod::ACallAssignExpr::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___ACallAssignExpr___replace_child(val_t p0, val_t p1, val_t p2);
@@ -1962,10 +1960,7 @@ typedef void (*parser___parser_prod___ACallAssignExpr___replace_child_t)(val_t p
 static const char * const LOCATE_parser___parser_prod___ACallAssignExpr___visit_all = "parser_prod::ACallAssignExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ACallAssignExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ACallAssignExpr___visit_all_t)(val_t p0, val_t p1);
-  typedef void (*CLOS_OC_parser___parser_prod___ACallAssignExpr___visit_all_1_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___ACallAssignExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___ACallAssignExpr___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_ACallAssignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ACallAssignExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ACallAssignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 val_t NEW_ACallReassignExpr_parser___parser_prod___ASendExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___ACallReassignExpr___empty_init = "parser_prod::ACallReassignExpr::empty_init";
@@ -1975,9 +1970,6 @@ val_t NEW_ACallReassignExpr_parser___parser_prod___ACallReassignExpr___empty_ini
 static const char * const LOCATE_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr = "parser_prod::ACallReassignExpr::init_acallreassignexpr";
 void parser___parser_prod___ACallReassignExpr___init_acallreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table);
 typedef void (*parser___parser_prod___ACallReassignExpr___init_acallreassignexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table);
-  typedef void (*CLOS_OC_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr_1_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_ACallReassignExpr_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_parser___parser_prod___ACallReassignExpr___replace_child = "parser_prod::ACallReassignExpr::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___ACallReassignExpr___replace_child(val_t p0, val_t p1, val_t p2);
@@ -1985,10 +1977,7 @@ typedef void (*parser___parser_prod___ACallReassignExpr___replace_child_t)(val_t
 static const char * const LOCATE_parser___parser_prod___ACallReassignExpr___visit_all = "parser_prod::ACallReassignExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ACallReassignExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ACallReassignExpr___visit_all_t)(val_t p0, val_t p1);
-  typedef void (*CLOS_OC_parser___parser_prod___ACallReassignExpr___visit_all_1_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___ACallReassignExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___ACallReassignExpr___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_ACallReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ACallReassignExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ACallReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 static const char * const LOCATE_parser___parser_prod___ASuperExpr___empty_init = "parser_prod::ASuperExpr::empty_init";
 void parser___parser_prod___ASuperExpr___empty_init(val_t p0, int* init_table);
@@ -1997,9 +1986,6 @@ val_t NEW_ASuperExpr_parser___parser_prod___ASuperExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___ASuperExpr___init_asuperexpr = "parser_prod::ASuperExpr::init_asuperexpr";
 void parser___parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table);
 typedef void (*parser___parser_prod___ASuperExpr___init_asuperexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table);
-  typedef void (*CLOS_OC_parser___parser_prod___ASuperExpr___init_asuperexpr_1_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___ASuperExpr___init_asuperexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___ASuperExpr___init_asuperexpr_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_ASuperExpr_parser___parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_parser___parser_prod___ASuperExpr___replace_child = "parser_prod::ASuperExpr::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___ASuperExpr___replace_child(val_t p0, val_t p1, val_t p2);
@@ -2007,10 +1993,7 @@ typedef void (*parser___parser_prod___ASuperExpr___replace_child_t)(val_t p0, va
 static const char * const LOCATE_parser___parser_prod___ASuperExpr___visit_all = "parser_prod::ASuperExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ASuperExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ASuperExpr___visit_all_t)(val_t p0, val_t p1);
-  typedef void (*CLOS_OC_parser___parser_prod___ASuperExpr___visit_all_1_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___ASuperExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___ASuperExpr___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_ASuperExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASuperExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AInitExpr_parser___parser_prod___ASendExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___AInitExpr___empty_init = "parser_prod::AInitExpr::empty_init";
 void parser___parser_prod___AInitExpr___empty_init(val_t p0, int* init_table);
@@ -2019,9 +2002,6 @@ val_t NEW_AInitExpr_parser___parser_prod___AInitExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___AInitExpr___init_ainitexpr = "parser_prod::AInitExpr::init_ainitexpr";
 void parser___parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table);
 typedef void (*parser___parser_prod___AInitExpr___init_ainitexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table);
-  typedef void (*CLOS_OC_parser___parser_prod___AInitExpr___init_ainitexpr_1_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___AInitExpr___init_ainitexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___AInitExpr___init_ainitexpr_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_AInitExpr_parser___parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_parser___parser_prod___AInitExpr___replace_child = "parser_prod::AInitExpr::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___AInitExpr___replace_child(val_t p0, val_t p1, val_t p2);
@@ -2029,10 +2009,7 @@ typedef void (*parser___parser_prod___AInitExpr___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___AInitExpr___visit_all = "parser_prod::AInitExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AInitExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AInitExpr___visit_all_t)(val_t p0, val_t p1);
-  typedef void (*CLOS_OC_parser___parser_prod___AInitExpr___visit_all_1_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___AInitExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___AInitExpr___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_AInitExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AInitExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AInitExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 val_t NEW_ABraExpr_parser___parser_prod___ASendExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___ABraExpr___empty_init = "parser_prod::ABraExpr::empty_init";
@@ -2045,9 +2022,6 @@ typedef void (*parser___parser_prod___ABraExpr___init_abraexpr_t)(val_t p0, val_
   typedef void (*CLOS_OC_parser___parser_prod___ABraExpr___init_abraexpr_1_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___ABraExpr___init_abraexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___ABraExpr___init_abraexpr_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*CLOS_OC_parser___parser_prod___ABraExpr___init_abraexpr_2_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___ABraExpr___init_abraexpr_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___ABraExpr___init_abraexpr_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_ABraExpr_parser___parser_prod___ABraExpr___init_abraexpr(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_parser___parser_prod___ABraExpr___replace_child = "parser_prod::ABraExpr::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___ABraExpr___replace_child(val_t p0, val_t p1, val_t p2);
@@ -2058,10 +2032,7 @@ typedef void (*parser___parser_prod___ABraExpr___visit_all_t)(val_t p0, val_t p1
   typedef void (*CLOS_OC_parser___parser_prod___ABraExpr___visit_all_1_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___ABraExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___ABraExpr___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*CLOS_OC_parser___parser_prod___ABraExpr___visit_all_2_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___ABraExpr___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___ABraExpr___visit_all_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_ABraExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABraExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ABraExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 val_t NEW_ABraAssignExpr_parser___parser_prod___ASendExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___ABraAssignExpr___empty_init = "parser_prod::ABraAssignExpr::empty_init";
@@ -2071,9 +2042,6 @@ val_t NEW_ABraAssignExpr_parser___parser_prod___ABraAssignExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___ABraAssignExpr___init_abraassignexpr = "parser_prod::ABraAssignExpr::init_abraassignexpr";
 void parser___parser_prod___ABraAssignExpr___init_abraassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table);
 typedef void (*parser___parser_prod___ABraAssignExpr___init_abraassignexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table);
-  typedef void (*CLOS_OC_parser___parser_prod___ABraAssignExpr___init_abraassignexpr_1_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___ABraAssignExpr___init_abraassignexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___ABraAssignExpr___init_abraassignexpr_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_ABraAssignExpr_parser___parser_prod___ABraAssignExpr___init_abraassignexpr(val_t p0, val_t p1, val_t p2, val_t p3);
 static const char * const LOCATE_parser___parser_prod___ABraAssignExpr___replace_child = "parser_prod::ABraAssignExpr::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___ABraAssignExpr___replace_child(val_t p0, val_t p1, val_t p2);
@@ -2081,10 +2049,7 @@ typedef void (*parser___parser_prod___ABraAssignExpr___replace_child_t)(val_t p0
 static const char * const LOCATE_parser___parser_prod___ABraAssignExpr___visit_all = "parser_prod::ABraAssignExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ABraAssignExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ABraAssignExpr___visit_all_t)(val_t p0, val_t p1);
-  typedef void (*CLOS_OC_parser___parser_prod___ABraAssignExpr___visit_all_1_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___ABraAssignExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___ABraAssignExpr___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_ABraAssignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABraAssignExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ABraAssignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 val_t NEW_ABraReassignExpr_parser___parser_prod___ASendExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___ABraReassignExpr___empty_init = "parser_prod::ABraReassignExpr::empty_init";
@@ -2094,9 +2059,6 @@ val_t NEW_ABraReassignExpr_parser___parser_prod___ABraReassignExpr___empty_init(
 static const char * const LOCATE_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr = "parser_prod::ABraReassignExpr::init_abrareassignexpr";
 void parser___parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table);
 typedef void (*parser___parser_prod___ABraReassignExpr___init_abrareassignexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table);
-  typedef void (*CLOS_OC_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr_1_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_ABraReassignExpr_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t p0, val_t p1, val_t p2, val_t p3);
 static const char * const LOCATE_parser___parser_prod___ABraReassignExpr___replace_child = "parser_prod::ABraReassignExpr::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___ABraReassignExpr___replace_child(val_t p0, val_t p1, val_t p2);
@@ -2104,10 +2066,7 @@ typedef void (*parser___parser_prod___ABraReassignExpr___replace_child_t)(val_t
 static const char * const LOCATE_parser___parser_prod___ABraReassignExpr___visit_all = "parser_prod::ABraReassignExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ABraReassignExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ABraReassignExpr___visit_all_t)(val_t p0, val_t p1);
-  typedef void (*CLOS_OC_parser___parser_prod___ABraReassignExpr___visit_all_1_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___ABraReassignExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___ABraReassignExpr___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_ABraReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABraReassignExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ABraReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 static const char * const LOCATE_parser___parser_prod___AClosureCallExpr___empty_init = "parser_prod::AClosureCallExpr::empty_init";
 void parser___parser_prod___AClosureCallExpr___empty_init(val_t p0, int* init_table);
@@ -2119,9 +2078,6 @@ typedef void (*parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr_t
   typedef void (*CLOS_OC_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr_1_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*CLOS_OC_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr_2_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_parser___parser_prod___AClosureCallExpr___replace_child = "parser_prod::AClosureCallExpr::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___AClosureCallExpr___replace_child(val_t p0, val_t p1, val_t p2);
@@ -2132,10 +2088,7 @@ typedef void (*parser___parser_prod___AClosureCallExpr___visit_all_t)(val_t p0,
   typedef void (*CLOS_OC_parser___parser_prod___AClosureCallExpr___visit_all_1_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___AClosureCallExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___AClosureCallExpr___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*CLOS_OC_parser___parser_prod___AClosureCallExpr___visit_all_2_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___AClosureCallExpr___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___AClosureCallExpr___visit_all_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_AClosureCallExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AClosureCallExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AVarExpr___empty_init = "parser_prod::AVarExpr::empty_init";
 void parser___parser_prod___AVarExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AVarExpr___empty_init_t)(val_t p0, int* init_table);
@@ -2150,7 +2103,7 @@ typedef void (*parser___parser_prod___AVarExpr___replace_child_t)(val_t p0, val_
 static const char * const LOCATE_parser___parser_prod___AVarExpr___visit_all = "parser_prod::AVarExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AVarExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AVarExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AVarExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AVarExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AVarAssignExpr___empty_init = "parser_prod::AVarAssignExpr::empty_init";
 void parser___parser_prod___AVarAssignExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AVarAssignExpr___empty_init_t)(val_t p0, int* init_table);
@@ -2165,7 +2118,7 @@ typedef void (*parser___parser_prod___AVarAssignExpr___replace_child_t)(val_t p0
 static const char * const LOCATE_parser___parser_prod___AVarAssignExpr___visit_all = "parser_prod::AVarAssignExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AVarAssignExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AVarAssignExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AVarAssignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AVarAssignExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AVarReassignExpr___empty_init = "parser_prod::AVarReassignExpr::empty_init";
 void parser___parser_prod___AVarReassignExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AVarReassignExpr___empty_init_t)(val_t p0, int* init_table);
@@ -2180,7 +2133,7 @@ typedef void (*parser___parser_prod___AVarReassignExpr___replace_child_t)(val_t
 static const char * const LOCATE_parser___parser_prod___AVarReassignExpr___visit_all = "parser_prod::AVarReassignExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AVarReassignExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AVarReassignExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AVarReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AVarReassignExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ARangeExpr___empty_init = "parser_prod::ARangeExpr::empty_init";
 void parser___parser_prod___ARangeExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ARangeExpr___empty_init_t)(val_t p0, int* init_table);
@@ -2195,23 +2148,23 @@ typedef void (*parser___parser_prod___ARangeExpr___replace_child_t)(val_t p0, va
 static const char * const LOCATE_parser___parser_prod___ARangeExpr___visit_all = "parser_prod::ARangeExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ARangeExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ARangeExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ARangeExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ARangeExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ACrangeExpr_parser___parser_prod___ARangeExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___ACrangeExpr___empty_init = "parser_prod::ACrangeExpr::empty_init";
 void parser___parser_prod___ACrangeExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ACrangeExpr___empty_init_t)(val_t p0, int* init_table);
 val_t NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___ACrangeExpr___init_acrangeexpr = "parser_prod::ACrangeExpr::init_acrangeexpr";
-void parser___parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1, val_t p2, int* init_table);
-typedef void (*parser___parser_prod___ACrangeExpr___init_acrangeexpr_t)(val_t p0, val_t p1, val_t p2, int* init_table);
-val_t NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1);
+void parser___parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table);
+typedef void (*parser___parser_prod___ACrangeExpr___init_acrangeexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table);
+val_t NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1, val_t p2, val_t p3);
 static const char * const LOCATE_parser___parser_prod___ACrangeExpr___replace_child = "parser_prod::ACrangeExpr::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___ACrangeExpr___replace_child(val_t p0, val_t p1, val_t p2);
 typedef void (*parser___parser_prod___ACrangeExpr___replace_child_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_parser___parser_prod___ACrangeExpr___visit_all = "parser_prod::ACrangeExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ACrangeExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ACrangeExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ACrangeExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ACrangeExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ACrangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1);
 val_t NEW_AOrangeExpr_parser___parser_prod___ARangeExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___AOrangeExpr___empty_init = "parser_prod::AOrangeExpr::empty_init";
@@ -2219,16 +2172,16 @@ void parser___parser_prod___AOrangeExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AOrangeExpr___empty_init_t)(val_t p0, int* init_table);
 val_t NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___AOrangeExpr___init_aorangeexpr = "parser_prod::AOrangeExpr::init_aorangeexpr";
-void parser___parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1, val_t p2, int* init_table);
-typedef void (*parser___parser_prod___AOrangeExpr___init_aorangeexpr_t)(val_t p0, val_t p1, val_t p2, int* init_table);
-val_t NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1);
+void parser___parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table);
+typedef void (*parser___parser_prod___AOrangeExpr___init_aorangeexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table);
+val_t NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1, val_t p2, val_t p3);
 static const char * const LOCATE_parser___parser_prod___AOrangeExpr___replace_child = "parser_prod::AOrangeExpr::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___AOrangeExpr___replace_child(val_t p0, val_t p1, val_t p2);
 typedef void (*parser___parser_prod___AOrangeExpr___replace_child_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_parser___parser_prod___AOrangeExpr___visit_all = "parser_prod::AOrangeExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AOrangeExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AOrangeExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AOrangeExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AOrangeExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AOrangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1);
 static const char * const LOCATE_parser___parser_prod___AArrayExpr___empty_init = "parser_prod::AArrayExpr::empty_init";
 void parser___parser_prod___AArrayExpr___empty_init(val_t p0, int* init_table);
@@ -2237,9 +2190,6 @@ val_t NEW_AArrayExpr_parser___parser_prod___AArrayExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___AArrayExpr___init_aarrayexpr = "parser_prod::AArrayExpr::init_aarrayexpr";
 void parser___parser_prod___AArrayExpr___init_aarrayexpr(val_t p0, val_t p1, int* init_table);
 typedef void (*parser___parser_prod___AArrayExpr___init_aarrayexpr_t)(val_t p0, val_t p1, int* init_table);
-  typedef void (*CLOS_OC_parser___parser_prod___AArrayExpr___init_aarrayexpr_1_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___AArrayExpr___init_aarrayexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___AArrayExpr___init_aarrayexpr_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_AArrayExpr_parser___parser_prod___AArrayExpr___init_aarrayexpr(val_t p0);
 static const char * const LOCATE_parser___parser_prod___AArrayExpr___replace_child = "parser_prod::AArrayExpr::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___AArrayExpr___replace_child(val_t p0, val_t p1, val_t p2);
@@ -2247,10 +2197,7 @@ typedef void (*parser___parser_prod___AArrayExpr___replace_child_t)(val_t p0, va
 static const char * const LOCATE_parser___parser_prod___AArrayExpr___visit_all = "parser_prod::AArrayExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AArrayExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AArrayExpr___visit_all_t)(val_t p0, val_t p1);
-  typedef void (*CLOS_OC_parser___parser_prod___AArrayExpr___visit_all_1_0)(struct stack_frame_t *);
-  void OC_parser___parser_prod___AArrayExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-  typedef void (*OC_parser___parser_prod___AArrayExpr___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_AArrayExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AArrayExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ASelfExpr___empty_init = "parser_prod::ASelfExpr::empty_init";
 void parser___parser_prod___ASelfExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ASelfExpr___empty_init_t)(val_t p0, int* init_table);
@@ -2265,7 +2212,7 @@ typedef void (*parser___parser_prod___ASelfExpr___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___ASelfExpr___visit_all = "parser_prod::ASelfExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ASelfExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ASelfExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ASelfExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASelfExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AImplicitSelfExpr_parser___parser_prod___ASelfExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___AImplicitSelfExpr___empty_init = "parser_prod::AImplicitSelfExpr::empty_init";
 void parser___parser_prod___AImplicitSelfExpr___empty_init(val_t p0, int* init_table);
@@ -2281,7 +2228,7 @@ typedef void (*parser___parser_prod___AImplicitSelfExpr___replace_child_t)(val_t
 static const char * const LOCATE_parser___parser_prod___AImplicitSelfExpr___visit_all = "parser_prod::AImplicitSelfExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AImplicitSelfExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AImplicitSelfExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AImplicitSelfExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AImplicitSelfExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AImplicitSelfExpr_parser___parser_prod___ASelfExpr___init_aselfexpr(val_t p0);
 static const char * const LOCATE_parser___parser_prod___ATrueExpr___empty_init = "parser_prod::ATrueExpr::empty_init";
 void parser___parser_prod___ATrueExpr___empty_init(val_t p0, int* init_table);
@@ -2297,7 +2244,7 @@ typedef void (*parser___parser_prod___ATrueExpr___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___ATrueExpr___visit_all = "parser_prod::ATrueExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ATrueExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ATrueExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ATrueExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ATrueExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AFalseExpr___empty_init = "parser_prod::AFalseExpr::empty_init";
 void parser___parser_prod___AFalseExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AFalseExpr___empty_init_t)(val_t p0, int* init_table);
@@ -2312,7 +2259,7 @@ typedef void (*parser___parser_prod___AFalseExpr___replace_child_t)(val_t p0, va
 static const char * const LOCATE_parser___parser_prod___AFalseExpr___visit_all = "parser_prod::AFalseExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AFalseExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AFalseExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AFalseExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AFalseExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ANullExpr___empty_init = "parser_prod::ANullExpr::empty_init";
 void parser___parser_prod___ANullExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ANullExpr___empty_init_t)(val_t p0, int* init_table);
@@ -2327,7 +2274,7 @@ typedef void (*parser___parser_prod___ANullExpr___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___ANullExpr___visit_all = "parser_prod::ANullExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ANullExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ANullExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ANullExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANullExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AIntExpr___empty_init = "parser_prod::AIntExpr::empty_init";
 void parser___parser_prod___AIntExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AIntExpr___empty_init_t)(val_t p0, int* init_table);
@@ -2342,7 +2289,7 @@ typedef void (*parser___parser_prod___AIntExpr___replace_child_t)(val_t p0, val_
 static const char * const LOCATE_parser___parser_prod___AIntExpr___visit_all = "parser_prod::AIntExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AIntExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AIntExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AIntExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIntExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AFloatExpr___empty_init = "parser_prod::AFloatExpr::empty_init";
 void parser___parser_prod___AFloatExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AFloatExpr___empty_init_t)(val_t p0, int* init_table);
@@ -2357,7 +2304,7 @@ typedef void (*parser___parser_prod___AFloatExpr___replace_child_t)(val_t p0, va
 static const char * const LOCATE_parser___parser_prod___AFloatExpr___visit_all = "parser_prod::AFloatExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AFloatExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AFloatExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AFloatExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AFloatExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ACharExpr___empty_init = "parser_prod::ACharExpr::empty_init";
 void parser___parser_prod___ACharExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ACharExpr___empty_init_t)(val_t p0, int* init_table);
@@ -2372,7 +2319,7 @@ typedef void (*parser___parser_prod___ACharExpr___replace_child_t)(val_t p0, val
 static const char * const LOCATE_parser___parser_prod___ACharExpr___visit_all = "parser_prod::ACharExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ACharExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ACharExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ACharExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ACharExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AStringExpr___empty_init = "parser_prod::AStringExpr::empty_init";
 void parser___parser_prod___AStringExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AStringExpr___empty_init_t)(val_t p0, int* init_table);
@@ -2387,7 +2334,7 @@ typedef void (*parser___parser_prod___AStringExpr___replace_child_t)(val_t p0, v
 static const char * const LOCATE_parser___parser_prod___AStringExpr___visit_all = "parser_prod::AStringExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AStringExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AStringExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AStringExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStringExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AStartStringExpr___empty_init = "parser_prod::AStartStringExpr::empty_init";
 void parser___parser_prod___AStartStringExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AStartStringExpr___empty_init_t)(val_t p0, int* init_table);
@@ -2402,7 +2349,7 @@ typedef void (*parser___parser_prod___AStartStringExpr___replace_child_t)(val_t
 static const char * const LOCATE_parser___parser_prod___AStartStringExpr___visit_all = "parser_prod::AStartStringExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AStartStringExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AStartStringExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AStartStringExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStartStringExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AMidStringExpr___empty_init = "parser_prod::AMidStringExpr::empty_init";
 void parser___parser_prod___AMidStringExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AMidStringExpr___empty_init_t)(val_t p0, int* init_table);
@@ -2417,7 +2364,7 @@ typedef void (*parser___parser_prod___AMidStringExpr___replace_child_t)(val_t p0
 static const char * const LOCATE_parser___parser_prod___AMidStringExpr___visit_all = "parser_prod::AMidStringExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AMidStringExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AMidStringExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AMidStringExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMidStringExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AEndStringExpr___empty_init = "parser_prod::AEndStringExpr::empty_init";
 void parser___parser_prod___AEndStringExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AEndStringExpr___empty_init_t)(val_t p0, int* init_table);
@@ -2432,7 +2379,7 @@ typedef void (*parser___parser_prod___AEndStringExpr___replace_child_t)(val_t p0
 static const char * const LOCATE_parser___parser_prod___AEndStringExpr___visit_all = "parser_prod::AEndStringExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AEndStringExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AEndStringExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AEndStringExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AEndStringExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ASuperstringExpr___empty_init = "parser_prod::ASuperstringExpr::empty_init";
 void parser___parser_prod___ASuperstringExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ASuperstringExpr___empty_init_t)(val_t p0, int* init_table);
@@ -2453,52 +2400,52 @@ typedef void (*parser___parser_prod___ASuperstringExpr___visit_all_t)(val_t p0,
   typedef void (*CLOS_OC_parser___parser_prod___ASuperstringExpr___visit_all_1_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___ASuperstringExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___ASuperstringExpr___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_ASuperstringExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASuperstringExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AParExpr___empty_init = "parser_prod::AParExpr::empty_init";
 void parser___parser_prod___AParExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AParExpr___empty_init_t)(val_t p0, int* init_table);
 val_t NEW_AParExpr_parser___parser_prod___AParExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___AParExpr___init_aparexpr = "parser_prod::AParExpr::init_aparexpr";
-void parser___parser_prod___AParExpr___init_aparexpr(val_t p0, val_t p1, int* init_table);
-typedef void (*parser___parser_prod___AParExpr___init_aparexpr_t)(val_t p0, val_t p1, int* init_table);
-val_t NEW_AParExpr_parser___parser_prod___AParExpr___init_aparexpr(val_t p0);
+void parser___parser_prod___AParExpr___init_aparexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table);
+typedef void (*parser___parser_prod___AParExpr___init_aparexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table);
+val_t NEW_AParExpr_parser___parser_prod___AParExpr___init_aparexpr(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_parser___parser_prod___AParExpr___replace_child = "parser_prod::AParExpr::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___AParExpr___replace_child(val_t p0, val_t p1, val_t p2);
 typedef void (*parser___parser_prod___AParExpr___replace_child_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_parser___parser_prod___AParExpr___visit_all = "parser_prod::AParExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AParExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AParExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AParExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AParExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AAsCastExpr___empty_init = "parser_prod::AAsCastExpr::empty_init";
 void parser___parser_prod___AAsCastExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AAsCastExpr___empty_init_t)(val_t p0, int* init_table);
 val_t NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___AAsCastExpr___init_aascastexpr = "parser_prod::AAsCastExpr::init_aascastexpr";
-void parser___parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table);
-typedef void (*parser___parser_prod___AAsCastExpr___init_aascastexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table);
-val_t NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2);
+void parser___parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table);
+typedef void (*parser___parser_prod___AAsCastExpr___init_aascastexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table);
+val_t NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_parser___parser_prod___AAsCastExpr___replace_child = "parser_prod::AAsCastExpr::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___AAsCastExpr___replace_child(val_t p0, val_t p1, val_t p2);
 typedef void (*parser___parser_prod___AAsCastExpr___replace_child_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_parser___parser_prod___AAsCastExpr___visit_all = "parser_prod::AAsCastExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AAsCastExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AAsCastExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AAsCastExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAsCastExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AAsNotnullExpr___empty_init = "parser_prod::AAsNotnullExpr::empty_init";
 void parser___parser_prod___AAsNotnullExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AAsNotnullExpr___empty_init_t)(val_t p0, int* init_table);
 val_t NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___empty_init();
 static const char * const LOCATE_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr = "parser_prod::AAsNotnullExpr::init_aasnotnullexpr";
-void parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table);
-typedef void (*parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table);
-val_t NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3);
+void parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, int* init_table);
+typedef void (*parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, int* init_table);
+val_t NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
 static const char * const LOCATE_parser___parser_prod___AAsNotnullExpr___replace_child = "parser_prod::AAsNotnullExpr::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___AAsNotnullExpr___replace_child(val_t p0, val_t p1, val_t p2);
 typedef void (*parser___parser_prod___AAsNotnullExpr___replace_child_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_parser___parser_prod___AAsNotnullExpr___visit_all = "parser_prod::AAsNotnullExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AAsNotnullExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AAsNotnullExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AAsNotnullExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAsNotnullExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AIssetAttrExpr___empty_init = "parser_prod::AIssetAttrExpr::empty_init";
 void parser___parser_prod___AIssetAttrExpr___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AIssetAttrExpr___empty_init_t)(val_t p0, int* init_table);
@@ -2513,7 +2460,85 @@ typedef void (*parser___parser_prod___AIssetAttrExpr___replace_child_t)(val_t p0
 static const char * const LOCATE_parser___parser_prod___AIssetAttrExpr___visit_all = "parser_prod::AIssetAttrExpr::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AIssetAttrExpr___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AIssetAttrExpr___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AIssetAttrExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIssetAttrExpr_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_prod___ADebugTypeExpr___empty_init = "parser_prod::ADebugTypeExpr::empty_init";
+void parser___parser_prod___ADebugTypeExpr___empty_init(val_t p0, int* init_table);
+typedef void (*parser___parser_prod___ADebugTypeExpr___empty_init_t)(val_t p0, int* init_table);
+val_t NEW_ADebugTypeExpr_parser___parser_prod___ADebugTypeExpr___empty_init();
+static const char * const LOCATE_parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr = "parser_prod::ADebugTypeExpr::init_adebugtypeexpr";
+void parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table);
+typedef void (*parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table);
+val_t NEW_ADebugTypeExpr_parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr(val_t p0, val_t p1, val_t p2, val_t p3);
+static const char * const LOCATE_parser___parser_prod___ADebugTypeExpr___replace_child = "parser_prod::ADebugTypeExpr::(parser_prod::ANode::replace_child)";
+void parser___parser_prod___ADebugTypeExpr___replace_child(val_t p0, val_t p1, val_t p2);
+typedef void (*parser___parser_prod___ADebugTypeExpr___replace_child_t)(val_t p0, val_t p1, val_t p2);
+static const char * const LOCATE_parser___parser_prod___ADebugTypeExpr___visit_all = "parser_prod::ADebugTypeExpr::(parser_prod::ANode::visit_all)";
+void parser___parser_prod___ADebugTypeExpr___visit_all(val_t p0, val_t p1);
+typedef void (*parser___parser_prod___ADebugTypeExpr___visit_all_t)(val_t p0, val_t p1);
+val_t NEW_ADebugTypeExpr_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_prod___AListExprs___empty_init = "parser_prod::AListExprs::empty_init";
+void parser___parser_prod___AListExprs___empty_init(val_t p0, int* init_table);
+typedef void (*parser___parser_prod___AListExprs___empty_init_t)(val_t p0, int* init_table);
+val_t NEW_AListExprs_parser___parser_prod___AListExprs___empty_init();
+static const char * const LOCATE_parser___parser_prod___AListExprs___init_alistexprs = "parser_prod::AListExprs::init_alistexprs";
+void parser___parser_prod___AListExprs___init_alistexprs(val_t p0, val_t p1, int* init_table);
+typedef void (*parser___parser_prod___AListExprs___init_alistexprs_t)(val_t p0, val_t p1, int* init_table);
+  typedef void (*CLOS_OC_parser___parser_prod___AListExprs___init_alistexprs_1_0)(struct stack_frame_t *);
+  void OC_parser___parser_prod___AListExprs___init_alistexprs_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+  typedef void (*OC_parser___parser_prod___AListExprs___init_alistexprs_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+val_t NEW_AListExprs_parser___parser_prod___AListExprs___init_alistexprs(val_t p0);
+static const char * const LOCATE_parser___parser_prod___AListExprs___replace_child = "parser_prod::AListExprs::(parser_prod::ANode::replace_child)";
+void parser___parser_prod___AListExprs___replace_child(val_t p0, val_t p1, val_t p2);
+typedef void (*parser___parser_prod___AListExprs___replace_child_t)(val_t p0, val_t p1, val_t p2);
+static const char * const LOCATE_parser___parser_prod___AListExprs___visit_all = "parser_prod::AListExprs::(parser_prod::ANode::visit_all)";
+void parser___parser_prod___AListExprs___visit_all(val_t p0, val_t p1);
+typedef void (*parser___parser_prod___AListExprs___visit_all_t)(val_t p0, val_t p1);
+  typedef void (*CLOS_OC_parser___parser_prod___AListExprs___visit_all_1_0)(struct stack_frame_t *);
+  void OC_parser___parser_prod___AListExprs___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+  typedef void (*OC_parser___parser_prod___AListExprs___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+val_t NEW_AListExprs_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_prod___AParExprs___empty_init = "parser_prod::AParExprs::empty_init";
+void parser___parser_prod___AParExprs___empty_init(val_t p0, int* init_table);
+typedef void (*parser___parser_prod___AParExprs___empty_init_t)(val_t p0, int* init_table);
+val_t NEW_AParExprs_parser___parser_prod___AParExprs___empty_init();
+static const char * const LOCATE_parser___parser_prod___AParExprs___init_aparexprs = "parser_prod::AParExprs::init_aparexprs";
+void parser___parser_prod___AParExprs___init_aparexprs(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table);
+typedef void (*parser___parser_prod___AParExprs___init_aparexprs_t)(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table);
+  typedef void (*CLOS_OC_parser___parser_prod___AParExprs___init_aparexprs_1_0)(struct stack_frame_t *);
+  void OC_parser___parser_prod___AParExprs___init_aparexprs_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+  typedef void (*OC_parser___parser_prod___AParExprs___init_aparexprs_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+val_t NEW_AParExprs_parser___parser_prod___AParExprs___init_aparexprs(val_t p0, val_t p1, val_t p2);
+static const char * const LOCATE_parser___parser_prod___AParExprs___replace_child = "parser_prod::AParExprs::(parser_prod::ANode::replace_child)";
+void parser___parser_prod___AParExprs___replace_child(val_t p0, val_t p1, val_t p2);
+typedef void (*parser___parser_prod___AParExprs___replace_child_t)(val_t p0, val_t p1, val_t p2);
+static const char * const LOCATE_parser___parser_prod___AParExprs___visit_all = "parser_prod::AParExprs::(parser_prod::ANode::visit_all)";
+void parser___parser_prod___AParExprs___visit_all(val_t p0, val_t p1);
+typedef void (*parser___parser_prod___AParExprs___visit_all_t)(val_t p0, val_t p1);
+  typedef void (*CLOS_OC_parser___parser_prod___AParExprs___visit_all_1_0)(struct stack_frame_t *);
+  void OC_parser___parser_prod___AParExprs___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+  typedef void (*OC_parser___parser_prod___AParExprs___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+val_t NEW_AParExprs_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_parser___parser_prod___ABraExprs___empty_init = "parser_prod::ABraExprs::empty_init";
+void parser___parser_prod___ABraExprs___empty_init(val_t p0, int* init_table);
+typedef void (*parser___parser_prod___ABraExprs___empty_init_t)(val_t p0, int* init_table);
+val_t NEW_ABraExprs_parser___parser_prod___ABraExprs___empty_init();
+static const char * const LOCATE_parser___parser_prod___ABraExprs___init_abraexprs = "parser_prod::ABraExprs::init_abraexprs";
+void parser___parser_prod___ABraExprs___init_abraexprs(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table);
+typedef void (*parser___parser_prod___ABraExprs___init_abraexprs_t)(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table);
+  typedef void (*CLOS_OC_parser___parser_prod___ABraExprs___init_abraexprs_1_0)(struct stack_frame_t *);
+  void OC_parser___parser_prod___ABraExprs___init_abraexprs_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+  typedef void (*OC_parser___parser_prod___ABraExprs___init_abraexprs_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+val_t NEW_ABraExprs_parser___parser_prod___ABraExprs___init_abraexprs(val_t p0, val_t p1, val_t p2);
+static const char * const LOCATE_parser___parser_prod___ABraExprs___replace_child = "parser_prod::ABraExprs::(parser_prod::ANode::replace_child)";
+void parser___parser_prod___ABraExprs___replace_child(val_t p0, val_t p1, val_t p2);
+typedef void (*parser___parser_prod___ABraExprs___replace_child_t)(val_t p0, val_t p1, val_t p2);
+static const char * const LOCATE_parser___parser_prod___ABraExprs___visit_all = "parser_prod::ABraExprs::(parser_prod::ANode::visit_all)";
+void parser___parser_prod___ABraExprs___visit_all(val_t p0, val_t p1);
+typedef void (*parser___parser_prod___ABraExprs___visit_all_t)(val_t p0, val_t p1);
+  typedef void (*CLOS_OC_parser___parser_prod___ABraExprs___visit_all_1_0)(struct stack_frame_t *);
+  void OC_parser___parser_prod___ABraExprs___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+  typedef void (*OC_parser___parser_prod___ABraExprs___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+val_t NEW_ABraExprs_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___APlusAssignOp___empty_init = "parser_prod::APlusAssignOp::empty_init";
 void parser___parser_prod___APlusAssignOp___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___APlusAssignOp___empty_init_t)(val_t p0, int* init_table);
@@ -2528,7 +2553,7 @@ typedef void (*parser___parser_prod___APlusAssignOp___replace_child_t)(val_t p0,
 static const char * const LOCATE_parser___parser_prod___APlusAssignOp___visit_all = "parser_prod::APlusAssignOp::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___APlusAssignOp___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___APlusAssignOp___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_APlusAssignOp_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_APlusAssignOp_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AMinusAssignOp___empty_init = "parser_prod::AMinusAssignOp::empty_init";
 void parser___parser_prod___AMinusAssignOp___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AMinusAssignOp___empty_init_t)(val_t p0, int* init_table);
@@ -2543,7 +2568,7 @@ typedef void (*parser___parser_prod___AMinusAssignOp___replace_child_t)(val_t p0
 static const char * const LOCATE_parser___parser_prod___AMinusAssignOp___visit_all = "parser_prod::AMinusAssignOp::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AMinusAssignOp___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AMinusAssignOp___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AMinusAssignOp_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMinusAssignOp_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AClosureDef___empty_init = "parser_prod::AClosureDef::empty_init";
 void parser___parser_prod___AClosureDef___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AClosureDef___empty_init_t)(val_t p0, int* init_table);
@@ -2564,7 +2589,7 @@ typedef void (*parser___parser_prod___AClosureDef___visit_all_t)(val_t p0, val_t
   typedef void (*CLOS_OC_parser___parser_prod___AClosureDef___visit_all_1_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___AClosureDef___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___AClosureDef___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_AClosureDef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AClosureDef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ASimpleClosureId___empty_init = "parser_prod::ASimpleClosureId::empty_init";
 void parser___parser_prod___ASimpleClosureId___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ASimpleClosureId___empty_init_t)(val_t p0, int* init_table);
@@ -2579,7 +2604,7 @@ typedef void (*parser___parser_prod___ASimpleClosureId___replace_child_t)(val_t
 static const char * const LOCATE_parser___parser_prod___ASimpleClosureId___visit_all = "parser_prod::ASimpleClosureId::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ASimpleClosureId___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ASimpleClosureId___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ASimpleClosureId_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASimpleClosureId_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ABreakClosureId___empty_init = "parser_prod::ABreakClosureId::empty_init";
 void parser___parser_prod___ABreakClosureId___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ABreakClosureId___empty_init_t)(val_t p0, int* init_table);
@@ -2594,7 +2619,7 @@ typedef void (*parser___parser_prod___ABreakClosureId___replace_child_t)(val_t p
 static const char * const LOCATE_parser___parser_prod___ABreakClosureId___visit_all = "parser_prod::ABreakClosureId::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ABreakClosureId___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ABreakClosureId___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ABreakClosureId_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABreakClosureId_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AModuleName___empty_init = "parser_prod::AModuleName::empty_init";
 void parser___parser_prod___AModuleName___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AModuleName___empty_init_t)(val_t p0, int* init_table);
@@ -2615,7 +2640,7 @@ typedef void (*parser___parser_prod___AModuleName___visit_all_t)(val_t p0, val_t
   typedef void (*CLOS_OC_parser___parser_prod___AModuleName___visit_all_1_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___AModuleName___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___AModuleName___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_AModuleName_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AModuleName_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AExternCalls___empty_init = "parser_prod::AExternCalls::empty_init";
 void parser___parser_prod___AExternCalls___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AExternCalls___empty_init_t)(val_t p0, int* init_table);
@@ -2636,7 +2661,7 @@ typedef void (*parser___parser_prod___AExternCalls___visit_all_t)(val_t p0, val_
   typedef void (*CLOS_OC_parser___parser_prod___AExternCalls___visit_all_1_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___AExternCalls___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___AExternCalls___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_AExternCalls_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AExternCalls_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___AExternCall___empty_init = "parser_prod::AExternCall::empty_init";
 void parser___parser_prod___AExternCall___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___AExternCall___empty_init_t)(val_t p0, int* init_table);
@@ -2651,7 +2676,7 @@ typedef void (*parser___parser_prod___AExternCall___replace_child_t)(val_t p0, v
 static const char * const LOCATE_parser___parser_prod___AExternCall___visit_all = "parser_prod::AExternCall::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AExternCall___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AExternCall___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AExternCall_parser___parser_nodes___ANode___init();
 val_t NEW_ASuperExternCall_parser___parser_prod___AExternCall___empty_init();
 static const char * const LOCATE_parser___parser_prod___ASuperExternCall___empty_init = "parser_prod::ASuperExternCall::empty_init";
 void parser___parser_prod___ASuperExternCall___empty_init(val_t p0, int* init_table);
@@ -2667,7 +2692,7 @@ typedef void (*parser___parser_prod___ASuperExternCall___replace_child_t)(val_t
 static const char * const LOCATE_parser___parser_prod___ASuperExternCall___visit_all = "parser_prod::ASuperExternCall::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ASuperExternCall___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ASuperExternCall___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ASuperExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASuperExternCall_parser___parser_nodes___ANode___init();
 val_t NEW_ASuperExternCall_parser___parser_prod___AExternCall___init_aexterncall();
 val_t NEW_ALocalPropExternCall_parser___parser_prod___AExternCall___empty_init();
 static const char * const LOCATE_parser___parser_prod___ALocalPropExternCall___empty_init = "parser_prod::ALocalPropExternCall::empty_init";
@@ -2684,7 +2709,7 @@ typedef void (*parser___parser_prod___ALocalPropExternCall___replace_child_t)(va
 static const char * const LOCATE_parser___parser_prod___ALocalPropExternCall___visit_all = "parser_prod::ALocalPropExternCall::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ALocalPropExternCall___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ALocalPropExternCall___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ALocalPropExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALocalPropExternCall_parser___parser_nodes___ANode___init();
 val_t NEW_ALocalPropExternCall_parser___parser_prod___AExternCall___init_aexterncall();
 val_t NEW_AFullPropExternCall_parser___parser_prod___AExternCall___empty_init();
 static const char * const LOCATE_parser___parser_prod___AFullPropExternCall___empty_init = "parser_prod::AFullPropExternCall::empty_init";
@@ -2701,7 +2726,7 @@ typedef void (*parser___parser_prod___AFullPropExternCall___replace_child_t)(val
 static const char * const LOCATE_parser___parser_prod___AFullPropExternCall___visit_all = "parser_prod::AFullPropExternCall::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AFullPropExternCall___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AFullPropExternCall___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AFullPropExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AFullPropExternCall_parser___parser_nodes___ANode___init();
 val_t NEW_AFullPropExternCall_parser___parser_prod___AExternCall___init_aexterncall();
 val_t NEW_AInitPropExternCall_parser___parser_prod___AExternCall___empty_init();
 static const char * const LOCATE_parser___parser_prod___AInitPropExternCall___empty_init = "parser_prod::AInitPropExternCall::empty_init";
@@ -2718,7 +2743,7 @@ typedef void (*parser___parser_prod___AInitPropExternCall___replace_child_t)(val
 static const char * const LOCATE_parser___parser_prod___AInitPropExternCall___visit_all = "parser_prod::AInitPropExternCall::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AInitPropExternCall___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AInitPropExternCall___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AInitPropExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AInitPropExternCall_parser___parser_nodes___ANode___init();
 val_t NEW_AInitPropExternCall_parser___parser_prod___AExternCall___init_aexterncall();
 val_t NEW_ACastAsExternCall_parser___parser_prod___AExternCall___empty_init();
 static const char * const LOCATE_parser___parser_prod___ACastAsExternCall___empty_init = "parser_prod::ACastAsExternCall::empty_init";
@@ -2735,7 +2760,7 @@ typedef void (*parser___parser_prod___ACastAsExternCall___replace_child_t)(val_t
 static const char * const LOCATE_parser___parser_prod___ACastAsExternCall___visit_all = "parser_prod::ACastAsExternCall::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___ACastAsExternCall___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___ACastAsExternCall___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_ACastAsExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ACastAsExternCall_parser___parser_nodes___ANode___init();
 val_t NEW_ACastAsExternCall_parser___parser_prod___AExternCall___init_aexterncall();
 val_t NEW_AAsNullableExternCall_parser___parser_prod___AExternCall___empty_init();
 static const char * const LOCATE_parser___parser_prod___AAsNullableExternCall___empty_init = "parser_prod::AAsNullableExternCall::empty_init";
@@ -2752,7 +2777,7 @@ typedef void (*parser___parser_prod___AAsNullableExternCall___replace_child_t)(v
 static const char * const LOCATE_parser___parser_prod___AAsNullableExternCall___visit_all = "parser_prod::AAsNullableExternCall::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AAsNullableExternCall___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AAsNullableExternCall___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AAsNullableExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAsNullableExternCall_parser___parser_nodes___ANode___init();
 val_t NEW_AAsNullableExternCall_parser___parser_prod___AExternCall___init_aexterncall();
 val_t NEW_AAsNotNullableExternCall_parser___parser_prod___AExternCall___empty_init();
 static const char * const LOCATE_parser___parser_prod___AAsNotNullableExternCall___empty_init = "parser_prod::AAsNotNullableExternCall::empty_init";
@@ -2769,7 +2794,7 @@ typedef void (*parser___parser_prod___AAsNotNullableExternCall___replace_child_t
 static const char * const LOCATE_parser___parser_prod___AAsNotNullableExternCall___visit_all = "parser_prod::AAsNotNullableExternCall::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___AAsNotNullableExternCall___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___AAsNotNullableExternCall___visit_all_t)(val_t p0, val_t p1);
-val_t NEW_AAsNotNullableExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAsNotNullableExternCall_parser___parser_nodes___ANode___init();
 val_t NEW_AAsNotNullableExternCall_parser___parser_prod___AExternCall___init_aexterncall();
 static const char * const LOCATE_parser___parser_prod___AQualified___empty_init = "parser_prod::AQualified::empty_init";
 void parser___parser_prod___AQualified___empty_init(val_t p0, int* init_table);
@@ -2791,7 +2816,7 @@ typedef void (*parser___parser_prod___AQualified___visit_all_t)(val_t p0, val_t
   typedef void (*CLOS_OC_parser___parser_prod___AQualified___visit_all_1_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___AQualified___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___AQualified___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_AQualified_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AQualified_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___ADoc___empty_init = "parser_prod::ADoc::empty_init";
 void parser___parser_prod___ADoc___empty_init(val_t p0, int* init_table);
 typedef void (*parser___parser_prod___ADoc___empty_init_t)(val_t p0, int* init_table);
@@ -2812,16 +2837,12 @@ typedef void (*parser___parser_prod___ADoc___visit_all_t)(val_t p0, val_t p1);
   typedef void (*CLOS_OC_parser___parser_prod___ADoc___visit_all_1_0)(struct stack_frame_t *);
   void OC_parser___parser_prod___ADoc___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_parser___parser_prod___ADoc___visit_all_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_ADoc_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_Start_parser___parser_nodes___ANode___init(val_t p0);
-static const char * const LOCATE_parser___parser_prod___Start___init = "parser_prod::Start::init";
-void parser___parser_prod___Start___init(val_t p0, val_t p1, val_t p2, int* init_table);
-typedef void (*parser___parser_prod___Start___init_t)(val_t p0, val_t p1, val_t p2, int* init_table);
-val_t NEW_Start_parser___parser_prod___Start___init(val_t p0, val_t p1);
+val_t NEW_ADoc_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_parser___parser_prod___Start___replace_child = "parser_prod::Start::(parser_prod::ANode::replace_child)";
 void parser___parser_prod___Start___replace_child(val_t p0, val_t p1, val_t p2);
 typedef void (*parser___parser_prod___Start___replace_child_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_parser___parser_prod___Start___visit_all = "parser_prod::Start::(parser_prod::ANode::visit_all)";
 void parser___parser_prod___Start___visit_all(val_t p0, val_t p1);
 typedef void (*parser___parser_prod___Start___visit_all_t)(val_t p0, val_t p1);
+val_t NEW_Start_parser___parser_nodes___Start___init(val_t p0, val_t p1);
 #endif
index 3109b0e..79306d7 100644 (file)
@@ -16,7 +16,7 @@ val_t parser___tables___TablesCapable___lexer_goto(val_t p0, val_t p1, val_t p2)
   fra.me.REG[0] = p0;
   REGB0 = p1;
   REGB1 = p2;
-  /* ./parser//tables.nit:20 */
+  /* parser/tables.nit:20 */
   REGB1 = TablesCapable_lexer_goto___out(fra.me.REG[0], REGB0, REGB1);
   stack_frame_head = fra.me.prev;
   return REGB1;
@@ -35,7 +35,7 @@ val_t parser___tables___TablesCapable___lexer_accept(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./parser//tables.nit:24 */
+  /* parser/tables.nit:24 */
   REGB0 = TablesCapable_lexer_accept___out(fra.me.REG[0], REGB0);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -56,7 +56,7 @@ val_t parser___tables___TablesCapable___parser_goto(val_t p0, val_t p1, val_t p2
   fra.me.REG[0] = p0;
   REGB0 = p1;
   REGB1 = p2;
-  /* ./parser//tables.nit:27 */
+  /* parser/tables.nit:27 */
   REGB1 = TablesCapable_parser_goto___out(fra.me.REG[0], REGB0, REGB1);
   stack_frame_head = fra.me.prev;
   return REGB1;
@@ -77,7 +77,7 @@ val_t parser___tables___TablesCapable___parser_action(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   REGB0 = p1;
   REGB1 = p2;
-  /* ./parser//tables.nit:31 */
+  /* parser/tables.nit:31 */
   REGB1 = TablesCapable_parser_action___out(fra.me.REG[0], REGB0, REGB1);
   stack_frame_head = fra.me.prev;
   return REGB1;
index 28c4712..c0fc524 100644 (file)
@@ -20,7 +20,7 @@ val_t primitive_info___MMLocalClass___primitive_info(val_t p0){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./primitive_info.nit:35 */
+  /* primitive_info.nit:35 */
   REGB0 = TAG_Bool(ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -31,81 +31,81 @@ val_t primitive_info___MMLocalClass___primitive_info(val_t p0){
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:195 */
+    /* ../lib/standard/kernel.nit:195 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./primitive_info.nit:35 */
+    /* primitive_info.nit:35 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
     fra.me.REG[1] = ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]);
     goto label1;
   }
-  /* ./primitive_info.nit:37 */
+  /* primitive_info.nit:37 */
   if (!once_value_2) {
     fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_ctypes(fra.me.REG[0])(fra.me.REG[0]);
     once_value_2 = fra.me.REG[2];
     register_static_object(&once_value_2);
   } else fra.me.REG[2] = once_value_2;
   fra.me.REG[2] = fra.me.REG[2];
-  /* ./primitive_info.nit:38 */
+  /* primitive_info.nit:38 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
   REGB2 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   if (UNTAG_Bool(REGB2)) {
-    /* ./primitive_info.nit:39 */
+    /* primitive_info.nit:39 */
     fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
     ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]) = fra.me.REG[3];
-    /* ./primitive_info.nit:40 */
+    /* primitive_info.nit:40 */
     REGB2 = TAG_Bool(true);
     ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB2;
-    /* ./primitive_info.nit:41 */
+    /* primitive_info.nit:41 */
     fra.me.REG[3] = ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]);
     fra.me.REG[1] = fra.me.REG[3];
     goto label1;
   }
-  /* ./primitive_info.nit:43 */
+  /* primitive_info.nit:43 */
   fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./primitive_info.nit:44 */
+  /* primitive_info.nit:44 */
   while(1) {
     REGB2 = CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
     if (UNTAG_Bool(REGB2)) {
-      /* ./primitive_info.nit:45 */
+      /* primitive_info.nit:45 */
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapIterator___key(fra.me.REG[2])(fra.me.REG[2]);
-      /* ./primitive_info.nit:46 */
+      /* primitive_info.nit:46 */
       fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
       REGB2 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
       if (UNTAG_Bool(REGB2)) {
-        /* ./primitive_info.nit:47 */
+        /* primitive_info.nit:47 */
         fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
         fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-        /* ./primitive_info.nit:48 */
+        /* primitive_info.nit:48 */
         fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
         REGB2 = CALL_metamodel___partial_order___PartialOrderElement_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
         if (UNTAG_Bool(REGB2)) {
-          /* ./primitive_info.nit:49 */
+          /* primitive_info.nit:49 */
           fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapIterator___item(fra.me.REG[2])(fra.me.REG[2]);
           ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]) = fra.me.REG[3];
-          /* ./primitive_info.nit:50 */
+          /* primitive_info.nit:50 */
           REGB2 = TAG_Bool(true);
           ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB2;
-          /* ./primitive_info.nit:51 */
+          /* primitive_info.nit:51 */
           fra.me.REG[3] = ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]);
           fra.me.REG[1] = fra.me.REG[3];
           goto label1;
         }
       }
-      /* ./primitive_info.nit:54 */
+      /* primitive_info.nit:54 */
       CALL_standard___collection___abstract_collection___MapIterator___next(fra.me.REG[2])(fra.me.REG[2]);
     } else {
-      /* ./primitive_info.nit:44 */
+      /* primitive_info.nit:44 */
       goto label3;
     }
   }
   label3: while(0);
-  /* ./primitive_info.nit:56 */
+  /* primitive_info.nit:56 */
   REGB2 = TAG_Bool(true);
   ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB2;
-  /* ./primitive_info.nit:57 */
+  /* primitive_info.nit:57 */
   fra.me.REG[1] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -148,9 +148,9 @@ val_t primitive_info___MMLocalClass___primitive_ctypes(val_t p0){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./primitive_info.nit:63 */
+  /* primitive_info.nit:63 */
   fra.me.REG[0] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  /* ./primitive_info.nit:64 */
+  /* primitive_info.nit:64 */
   REGB0 = TAG_Int(6);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -207,7 +207,7 @@ val_t primitive_info___MMLocalClass___primitive_ctypes(val_t p0){
   } else fra.me.REG[2] = once_value_6;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./primitive_info.nit:65 */
+  /* primitive_info.nit:65 */
   REGB0 = TAG_Int(6);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   REGB0 = TAG_Bool(true);
@@ -222,7 +222,7 @@ val_t primitive_info___MMLocalClass___primitive_ctypes(val_t p0){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB0);
   REGB0 = TAG_Bool(false);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB0);
-  /* ./primitive_info.nit:66 */
+  /* primitive_info.nit:66 */
   REGB0 = TAG_Int(6);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_7) {
@@ -279,41 +279,41 @@ val_t primitive_info___MMLocalClass___primitive_ctypes(val_t p0){
   } else fra.me.REG[4] = once_value_12;
   fra.me.REG[4] = fra.me.REG[4];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./primitive_info.nit:67 */
+  /* primitive_info.nit:67 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./primitive_info.nit:67 */
+      /* primitive_info.nit:67 */
       REGB2 = REGB0;
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       fra.me.REG[4] = fra.me.REG[1];
       REGB3 = REGB2;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB4 = TAG_Int(0);
       REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB5)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB4)) {
         REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
         if (UNTAG_Bool(REGB4)) {
@@ -326,47 +326,47 @@ val_t primitive_info___MMLocalClass___primitive_ctypes(val_t p0){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB5 = TAG_Bool(false);
         REGB4 = REGB5;
       }
       if (UNTAG_Bool(REGB4)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
       REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB4)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB3)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label13;
       label13: while(0);
-      /* ./primitive_info.nit:68 */
+      /* primitive_info.nit:68 */
       REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
         nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 68);
       }
       fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       fra.me.REG[5] = fra.me.REG[2];
       REGB3 = REGB2;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB4 = TAG_Int(0);
       REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB5)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB4)) {
         REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
         if (UNTAG_Bool(REGB4)) {
@@ -379,40 +379,40 @@ val_t primitive_info___MMLocalClass___primitive_ctypes(val_t p0){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB5 = TAG_Bool(false);
         REGB4 = REGB5;
       }
       if (UNTAG_Bool(REGB4)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
       REGB4 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB4)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB3)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label14;
       label14: while(0);
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       fra.me.REG[6] = fra.me.REG[3];
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB3 = TAG_Int(0);
       REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB4)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB3)) {
         REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
@@ -425,45 +425,45 @@ val_t primitive_info___MMLocalClass___primitive_ctypes(val_t p0){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB4 = TAG_Bool(false);
         REGB3 = REGB4;
       }
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
       REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB2)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label15;
       label15: while(0);
-      /* ./primitive_info.nit:69 */
+      /* primitive_info.nit:69 */
       fra.me.REG[6] = NEW_PrimitiveInfo_primitive_info___PrimitiveInfo___init(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
-      /* ./primitive_info.nit:70 */
+      /* primitive_info.nit:70 */
       CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[6]);
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label16;
     }
   }
   label16: while(0);
-  /* ./primitive_info.nit:72 */
+  /* primitive_info.nit:72 */
   goto label17;
   label17: while(0);
   stack_frame_head = fra.me.prev;
@@ -482,7 +482,7 @@ val_t primitive_info___PrimitiveInfo___name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./primitive_info.nit:78 */
+  /* primitive_info.nit:78 */
   REGB0 = TAG_Bool(ATTR_primitive_info___PrimitiveInfo____name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -505,7 +505,7 @@ val_t primitive_info___PrimitiveInfo___tagged(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./primitive_info.nit:81 */
+  /* primitive_info.nit:81 */
   REGB0 = TAG_Bool(ATTR_primitive_info___PrimitiveInfo____tagged(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -528,7 +528,7 @@ val_t primitive_info___PrimitiveInfo___cname(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./primitive_info.nit:84 */
+  /* primitive_info.nit:84 */
   REGB0 = TAG_Bool(ATTR_primitive_info___PrimitiveInfo____cname(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -558,11 +558,11 @@ void primitive_info___PrimitiveInfo___init(val_t p0, val_t p1, val_t p2, val_t p
   fra.me.REG[1] = p1;
   REGB0 = p2;
   fra.me.REG[2] = p3;
-  /* ./primitive_info.nit:89 */
+  /* primitive_info.nit:89 */
   ATTR_primitive_info___PrimitiveInfo____name(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./primitive_info.nit:90 */
+  /* primitive_info.nit:90 */
   ATTR_primitive_info___PrimitiveInfo____tagged(fra.me.REG[0]) = REGB0;
-  /* ./primitive_info.nit:91 */
+  /* primitive_info.nit:91 */
   ATTR_primitive_info___PrimitiveInfo____cname(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -584,10 +584,10 @@ val_t primitive_info___MMType___cname(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./primitive_info.nit:99 */
+  /* primitive_info.nit:99 */
   fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./primitive_info.nit:100 */
+  /* primitive_info.nit:100 */
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -601,7 +601,7 @@ val_t primitive_info___MMType___cname(val_t p0){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./primitive_info.nit:101 */
+    /* primitive_info.nit:101 */
     if (!once_value_1) {
       fra.me.REG[1] = BOX_NativeString("val_t");
       REGB0 = TAG_Int(5);
@@ -612,7 +612,7 @@ val_t primitive_info___MMType___cname(val_t p0){
     fra.me.REG[1] = fra.me.REG[1];
     goto label2;
   } else {
-    /* ./primitive_info.nit:103 */
+    /* primitive_info.nit:103 */
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 103);
@@ -640,16 +640,16 @@ val_t primitive_info___MMType___is_tagged(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./primitive_info.nit:110 */
+  /* primitive_info.nit:110 */
   REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(false);
     goto label1;
   }
-  /* ./primitive_info.nit:111 */
+  /* primitive_info.nit:111 */
   fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./primitive_info.nit:112 */
+  /* primitive_info.nit:112 */
   REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -700,10 +700,10 @@ val_t primitive_info___MMType___default_cvalue(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./primitive_info.nit:119 */
+  /* primitive_info.nit:119 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./primitive_info.nit:120 */
+  /* primitive_info.nit:120 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -728,7 +728,7 @@ val_t primitive_info___MMType___default_cvalue(val_t p0){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./primitive_info.nit:121 */
+    /* primitive_info.nit:121 */
     REGB0 = TAG_Int(5);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -771,7 +771,7 @@ val_t primitive_info___MMType___default_cvalue(val_t p0){
     fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
     goto label4;
   } else {
-    /* ./primitive_info.nit:123 */
+    /* primitive_info.nit:123 */
     if (!once_value_5) {
       fra.me.REG[1] = BOX_NativeString("NIT_NULL");
       REGB0 = TAG_Int(8);
@@ -812,10 +812,10 @@ val_t primitive_info___MMType___boxtype(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./primitive_info.nit:131 */
+  /* primitive_info.nit:131 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./primitive_info.nit:132 */
+  /* primitive_info.nit:132 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -835,18 +835,18 @@ val_t primitive_info___MMType___boxtype(val_t p0, val_t p1){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./primitive_info.nit:133 */
+    /* primitive_info.nit:133 */
     fra.me.REG[3] = fra.me.REG[1];
     goto label1;
   } else {
-    /* ./primitive_info.nit:134 */
+    /* primitive_info.nit:134 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 134);
     }
     REGB0 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[2])(fra.me.REG[2]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./primitive_info.nit:135 */
+      /* primitive_info.nit:135 */
       REGB0 = TAG_Int(5);
       fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_2) {
@@ -885,7 +885,7 @@ val_t primitive_info___MMType___boxtype(val_t p0, val_t p1){
       fra.me.REG[3] = fra.me.REG[2];
       goto label1;
     } else {
-      /* ./primitive_info.nit:137 */
+      /* primitive_info.nit:137 */
       REGB0 = TAG_Int(5);
       fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_5) {
@@ -954,10 +954,10 @@ val_t primitive_info___MMType___unboxtype(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./primitive_info.nit:145 */
+  /* primitive_info.nit:145 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./primitive_info.nit:146 */
+  /* primitive_info.nit:146 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -977,18 +977,18 @@ val_t primitive_info___MMType___unboxtype(val_t p0, val_t p1){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./primitive_info.nit:147 */
+    /* primitive_info.nit:147 */
     fra.me.REG[3] = fra.me.REG[1];
     goto label1;
   } else {
-    /* ./primitive_info.nit:148 */
+    /* primitive_info.nit:148 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 148);
     }
     REGB0 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[2])(fra.me.REG[2]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./primitive_info.nit:149 */
+      /* primitive_info.nit:149 */
       REGB0 = TAG_Int(5);
       fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_2) {
@@ -1027,7 +1027,7 @@ val_t primitive_info___MMType___unboxtype(val_t p0, val_t p1){
       fra.me.REG[3] = fra.me.REG[2];
       goto label1;
     } else {
-      /* ./primitive_info.nit:151 */
+      /* primitive_info.nit:151 */
       REGB0 = TAG_Int(5);
       fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_5) {
@@ -1088,7 +1088,7 @@ val_t primitive_info___MMMethod___default_extern_name(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./primitive_info.nit:159 */
+  /* primitive_info.nit:159 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -1183,15 +1183,15 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./primitive_info.nit:166 */
+  /* primitive_info.nit:166 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./primitive_info.nit:168 */
+    /* primitive_info.nit:168 */
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-    /* ./primitive_info.nit:169 */
+    /* primitive_info.nit:169 */
     if (!once_value_1) {
       fra.me.REG[3] = BOX_NativeString("+");
       REGB0 = TAG_Int(1);
@@ -1207,7 +1207,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./primitive_info.nit:170 */
+      /* primitive_info.nit:170 */
       if (!once_value_2) {
         fra.me.REG[3] = BOX_NativeString("_plus");
         REGB0 = TAG_Int(5);
@@ -1217,7 +1217,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
       } else fra.me.REG[3] = once_value_2;
       fra.me.REG[3] = fra.me.REG[3];
     } else {
-      /* ./primitive_info.nit:171 */
+      /* primitive_info.nit:171 */
       if (!once_value_3) {
         fra.me.REG[4] = BOX_NativeString("-");
         REGB0 = TAG_Int(1);
@@ -1233,7 +1233,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
         REGB0 = REGB1;
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./primitive_info.nit:172 */
+        /* primitive_info.nit:172 */
         if (!once_value_4) {
           fra.me.REG[4] = BOX_NativeString("_minus");
           REGB0 = TAG_Int(6);
@@ -1244,7 +1244,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
         fra.me.REG[4] = fra.me.REG[4];
         fra.me.REG[3] = fra.me.REG[4];
       } else {
-        /* ./primitive_info.nit:173 */
+        /* primitive_info.nit:173 */
         if (!once_value_5) {
           fra.me.REG[4] = BOX_NativeString("*");
           REGB0 = TAG_Int(1);
@@ -1260,7 +1260,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
           REGB0 = REGB1;
         }
         if (UNTAG_Bool(REGB0)) {
-          /* ./primitive_info.nit:174 */
+          /* primitive_info.nit:174 */
           if (!once_value_6) {
             fra.me.REG[4] = BOX_NativeString("_star");
             REGB0 = TAG_Int(5);
@@ -1271,7 +1271,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
           fra.me.REG[4] = fra.me.REG[4];
           fra.me.REG[3] = fra.me.REG[4];
         } else {
-          /* ./primitive_info.nit:175 */
+          /* primitive_info.nit:175 */
           if (!once_value_7) {
             fra.me.REG[4] = BOX_NativeString("/");
             REGB0 = TAG_Int(1);
@@ -1287,7 +1287,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
             REGB0 = REGB1;
           }
           if (UNTAG_Bool(REGB0)) {
-            /* ./primitive_info.nit:176 */
+            /* primitive_info.nit:176 */
             if (!once_value_8) {
               fra.me.REG[4] = BOX_NativeString("_slash");
               REGB0 = TAG_Int(6);
@@ -1298,7 +1298,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
             fra.me.REG[4] = fra.me.REG[4];
             fra.me.REG[3] = fra.me.REG[4];
           } else {
-            /* ./primitive_info.nit:177 */
+            /* primitive_info.nit:177 */
             if (!once_value_9) {
               fra.me.REG[4] = BOX_NativeString("%");
               REGB0 = TAG_Int(1);
@@ -1314,7 +1314,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
               REGB0 = REGB1;
             }
             if (UNTAG_Bool(REGB0)) {
-              /* ./primitive_info.nit:178 */
+              /* primitive_info.nit:178 */
               if (!once_value_10) {
                fra.me.REG[4] = BOX_NativeString("_percent");
                REGB0 = TAG_Int(8);
@@ -1325,7 +1325,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
               fra.me.REG[4] = fra.me.REG[4];
               fra.me.REG[3] = fra.me.REG[4];
             } else {
-              /* ./primitive_info.nit:179 */
+              /* primitive_info.nit:179 */
               if (!once_value_11) {
                fra.me.REG[4] = BOX_NativeString("[]");
                REGB0 = TAG_Int(2);
@@ -1341,7 +1341,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                REGB0 = REGB1;
               }
               if (UNTAG_Bool(REGB0)) {
-               /* ./primitive_info.nit:180 */
+               /* primitive_info.nit:180 */
                if (!once_value_12) {
                fra.me.REG[4] = BOX_NativeString("_index");
                REGB0 = TAG_Int(6);
@@ -1352,7 +1352,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                fra.me.REG[4] = fra.me.REG[4];
                fra.me.REG[3] = fra.me.REG[4];
               } else {
-               /* ./primitive_info.nit:181 */
+               /* primitive_info.nit:181 */
                if (!once_value_13) {
                fra.me.REG[4] = BOX_NativeString("[]=");
                REGB0 = TAG_Int(3);
@@ -1368,7 +1368,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                REGB0 = REGB1;
                }
                if (UNTAG_Bool(REGB0)) {
-               /* ./primitive_info.nit:182 */
+               /* primitive_info.nit:182 */
                if (!once_value_14) {
                fra.me.REG[4] = BOX_NativeString("_index_assign");
                REGB0 = TAG_Int(13);
@@ -1379,7 +1379,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                fra.me.REG[4] = fra.me.REG[4];
                fra.me.REG[3] = fra.me.REG[4];
                } else {
-               /* ./primitive_info.nit:183 */
+               /* primitive_info.nit:183 */
                if (!once_value_15) {
                fra.me.REG[4] = BOX_NativeString("==");
                REGB0 = TAG_Int(2);
@@ -1395,7 +1395,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                REGB0 = REGB1;
                }
                if (UNTAG_Bool(REGB0)) {
-               /* ./primitive_info.nit:184 */
+               /* primitive_info.nit:184 */
                if (!once_value_16) {
                fra.me.REG[4] = BOX_NativeString("_equal");
                REGB0 = TAG_Int(6);
@@ -1406,7 +1406,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                fra.me.REG[4] = fra.me.REG[4];
                fra.me.REG[3] = fra.me.REG[4];
                } else {
-               /* ./primitive_info.nit:185 */
+               /* primitive_info.nit:185 */
                if (!once_value_17) {
                fra.me.REG[4] = BOX_NativeString("<");
                REGB0 = TAG_Int(1);
@@ -1422,7 +1422,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                REGB0 = REGB1;
                }
                if (UNTAG_Bool(REGB0)) {
-               /* ./primitive_info.nit:186 */
+               /* primitive_info.nit:186 */
                if (!once_value_18) {
                fra.me.REG[4] = BOX_NativeString("_less");
                REGB0 = TAG_Int(5);
@@ -1433,7 +1433,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                fra.me.REG[4] = fra.me.REG[4];
                fra.me.REG[3] = fra.me.REG[4];
                } else {
-               /* ./primitive_info.nit:187 */
+               /* primitive_info.nit:187 */
                if (!once_value_19) {
                fra.me.REG[4] = BOX_NativeString(">");
                REGB0 = TAG_Int(1);
@@ -1449,7 +1449,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                REGB0 = REGB1;
                }
                if (UNTAG_Bool(REGB0)) {
-               /* ./primitive_info.nit:188 */
+               /* primitive_info.nit:188 */
                if (!once_value_20) {
                fra.me.REG[4] = BOX_NativeString("_greater");
                REGB0 = TAG_Int(8);
@@ -1460,7 +1460,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                fra.me.REG[4] = fra.me.REG[4];
                fra.me.REG[3] = fra.me.REG[4];
                } else {
-               /* ./primitive_info.nit:189 */
+               /* primitive_info.nit:189 */
                if (!once_value_21) {
                fra.me.REG[4] = BOX_NativeString("<=");
                REGB0 = TAG_Int(2);
@@ -1476,7 +1476,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                REGB0 = REGB1;
                }
                if (UNTAG_Bool(REGB0)) {
-               /* ./primitive_info.nit:190 */
+               /* primitive_info.nit:190 */
                if (!once_value_22) {
                fra.me.REG[4] = BOX_NativeString("_less_or_equal");
                REGB0 = TAG_Int(14);
@@ -1487,7 +1487,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                fra.me.REG[4] = fra.me.REG[4];
                fra.me.REG[3] = fra.me.REG[4];
                } else {
-               /* ./primitive_info.nit:191 */
+               /* primitive_info.nit:191 */
                if (!once_value_23) {
                fra.me.REG[4] = BOX_NativeString(">=");
                REGB0 = TAG_Int(2);
@@ -1503,7 +1503,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                REGB0 = REGB1;
                }
                if (UNTAG_Bool(REGB0)) {
-               /* ./primitive_info.nit:192 */
+               /* primitive_info.nit:192 */
                if (!once_value_24) {
                fra.me.REG[4] = BOX_NativeString("_ge");
                REGB0 = TAG_Int(3);
@@ -1514,7 +1514,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                fra.me.REG[4] = fra.me.REG[4];
                fra.me.REG[3] = fra.me.REG[4];
                } else {
-               /* ./primitive_info.nit:193 */
+               /* primitive_info.nit:193 */
                if (!once_value_25) {
                fra.me.REG[4] = BOX_NativeString("!=");
                REGB0 = TAG_Int(2);
@@ -1530,7 +1530,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                REGB0 = REGB1;
                }
                if (UNTAG_Bool(REGB0)) {
-               /* ./primitive_info.nit:194 */
+               /* primitive_info.nit:194 */
                if (!once_value_26) {
                fra.me.REG[4] = BOX_NativeString("_not_equal");
                REGB0 = TAG_Int(10);
@@ -1541,7 +1541,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                fra.me.REG[4] = fra.me.REG[4];
                fra.me.REG[3] = fra.me.REG[4];
                } else {
-               /* ./primitive_info.nit:195 */
+               /* primitive_info.nit:195 */
                if (!once_value_27) {
                fra.me.REG[4] = BOX_NativeString(">>");
                REGB0 = TAG_Int(2);
@@ -1557,7 +1557,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                REGB0 = REGB1;
                }
                if (UNTAG_Bool(REGB0)) {
-               /* ./primitive_info.nit:196 */
+               /* primitive_info.nit:196 */
                if (!once_value_28) {
                fra.me.REG[4] = BOX_NativeString("_right");
                REGB0 = TAG_Int(6);
@@ -1568,7 +1568,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                fra.me.REG[4] = fra.me.REG[4];
                fra.me.REG[3] = fra.me.REG[4];
                } else {
-               /* ./primitive_info.nit:197 */
+               /* primitive_info.nit:197 */
                if (!once_value_29) {
                fra.me.REG[4] = BOX_NativeString("<<");
                REGB0 = TAG_Int(2);
@@ -1584,7 +1584,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                REGB0 = REGB1;
                }
                if (UNTAG_Bool(REGB0)) {
-               /* ./primitive_info.nit:198 */
+               /* primitive_info.nit:198 */
                if (!once_value_30) {
                fra.me.REG[4] = BOX_NativeString("_left");
                REGB0 = TAG_Int(5);
@@ -1595,7 +1595,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                fra.me.REG[4] = fra.me.REG[4];
                fra.me.REG[3] = fra.me.REG[4];
                } else {
-               /* ./primitive_info.nit:199 */
+               /* primitive_info.nit:199 */
                if (!once_value_31) {
                fra.me.REG[4] = BOX_NativeString("<=>");
                REGB0 = TAG_Int(3);
@@ -1611,7 +1611,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                REGB0 = REGB1;
                }
                if (UNTAG_Bool(REGB0)) {
-               /* ./primitive_info.nit:200 */
+               /* primitive_info.nit:200 */
                if (!once_value_32) {
                fra.me.REG[4] = BOX_NativeString("_starship");
                REGB0 = TAG_Int(9);
@@ -1622,30 +1622,30 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                fra.me.REG[4] = fra.me.REG[4];
                fra.me.REG[3] = fra.me.REG[4];
                } else {
-               /* ./../lib/standard//collection//array.nit:24 */
+               /* ../lib/standard/collection/array.nit:24 */
                REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
                }
                REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-               /* ./primitive_info.nit:201 */
+               /* primitive_info.nit:201 */
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//kernel.nit:237 */
+               /* ../lib/standard/kernel.nit:237 */
                REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-               /* ./primitive_info.nit:201 */
+               /* primitive_info.nit:201 */
                REGB1 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[2])(fra.me.REG[2], REGB1);
                REGB0 = TAG_Char('=');
                REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
                if (UNTAG_Bool(REGB2)) {
                } else {
-               /* ./../lib/standard//kernel.nit:378 */
+               /* ../lib/standard/kernel.nit:378 */
                REGB0 = TAG_Bool((REGB1)==(REGB0));
-               /* ./primitive_info.nit:201 */
+               /* primitive_info.nit:201 */
                REGB2 = REGB0;
                }
                if (UNTAG_Bool(REGB2)) {
-               /* ./primitive_info.nit:202 */
+               /* primitive_info.nit:202 */
                REGB2 = TAG_Int(3);
                fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
                if (!once_value_33) {
@@ -1658,18 +1658,18 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                fra.me.REG[5] = fra.me.REG[5];
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
                REGB2 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:24 */
+               /* ../lib/standard/collection/array.nit:24 */
                REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
                if (UNTAG_Bool(REGB0)) {
                } else {
                nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
                }
                REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-               /* ./primitive_info.nit:202 */
+               /* primitive_info.nit:202 */
                REGB1 = TAG_Int(1);
-               /* ./../lib/standard//kernel.nit:237 */
+               /* ../lib/standard/kernel.nit:237 */
                REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-               /* ./primitive_info.nit:202 */
+               /* primitive_info.nit:202 */
                fra.me.REG[5] = CALL_standard___string___AbstractString___substring(fra.me.REG[2])(fra.me.REG[2], REGB2, REGB1);
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
                if (!once_value_34) {
@@ -1684,7 +1684,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
                fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
                fra.me.REG[3] = fra.me.REG[4];
                } else {
-               /* ./primitive_info.nit:204 */
+               /* primitive_info.nit:204 */
                fra.me.REG[3] = fra.me.REG[2];
                }
                }
@@ -1703,7 +1703,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
         }
       }
     }
-    /* ./primitive_info.nit:207 */
+    /* primitive_info.nit:207 */
     REGB1 = TAG_Int(5);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
     if (!once_value_35) {
@@ -1740,7 +1740,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
     fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
     goto label38;
   } else {
-    /* ./primitive_info.nit:209 */
+    /* primitive_info.nit:209 */
     fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
     if (!once_value_39) {
       if (!once_value_40) {
@@ -1763,7 +1763,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
       REGB1 = REGB2;
     }
     if (UNTAG_Bool(REGB1)) {
-      /* ./primitive_info.nit:210 */
+      /* primitive_info.nit:210 */
       REGB1 = TAG_Int(3);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_41) {
@@ -1791,7 +1791,7 @@ val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){
       fra.me.REG[2] = fra.me.REG[4];
       goto label38;
     } else {
-      /* ./primitive_info.nit:212 */
+      /* primitive_info.nit:212 */
       REGB1 = TAG_Int(5);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_43) {
index 4c1984e..ca9fe21 100644 (file)
@@ -13,7 +13,7 @@ val_t program___ToolContext___global(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./program.nit:26 */
+  /* program.nit:26 */
   REGB0 = TAG_Bool(ATTR_program___ToolContext____global(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -37,7 +37,7 @@ void program___ToolContext___global__eq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./program.nit:26 */
+  /* program.nit:26 */
   ATTR_program___ToolContext____global(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -56,7 +56,7 @@ void program___ToolContext___use_SFT_optimization__eq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./program.nit:27 */
+  /* program.nit:27 */
   ATTR_program___ToolContext____use_SFT_optimization(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -75,7 +75,7 @@ val_t program___ToolContext___use_SFT_optimization(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./program.nit:31 */
+  /* program.nit:31 */
   REGB0 = CALL_program___ToolContext___global(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(ATTR_program___ToolContext____use_SFT_optimization(fra.me.REG[0])!=NIT_NULL);
@@ -106,7 +106,7 @@ val_t program___Program___tc(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./program.nit:37 */
+  /* program.nit:37 */
   REGB0 = TAG_Bool(ATTR_program___Program____tc(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -129,7 +129,7 @@ val_t program___Program___main_module(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./program.nit:41 */
+  /* program.nit:41 */
   REGB0 = TAG_Bool(ATTR_program___Program____main_module(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -151,7 +151,7 @@ val_t program___Program___main_method(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./program.nit:44 */
+  /* program.nit:44 */
   fra.me.REG[0] = ATTR_program___Program____main_method(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -168,7 +168,7 @@ val_t program___Program___main_class(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./program.nit:48 */
+  /* program.nit:48 */
   fra.me.REG[0] = ATTR_program___Program____main_class(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -190,26 +190,26 @@ void program___Program___finish_processing_classes(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./program.nit:55 */
+  /* program.nit:55 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  /* ./program.nit:56 */
+  /* program.nit:56 */
   fra.me.REG[0] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_program___Program___finish_processing_classes_1));
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -221,27 +221,27 @@ void program___Program___finish_processing_classes(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
-      /* ./program.nit:62 */
+      /* program.nit:62 */
       CALL_metamodel___inheritance___MMLocalClass___compute_ancestors(fra.me.REG[2])(fra.me.REG[2]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label2;
     }
   }
@@ -265,9 +265,9 @@ void program___Program___finish_processing_classes(val_t p0){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./program.nit:57 */
+    /* program.nit:57 */
     CALL_metamodel___inheritance___MMLocalClass___compute_super_classes(fra.me.REG[0])(fra.me.REG[0]);
-    /* ./program.nit:58 */
+    /* program.nit:58 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -291,7 +291,7 @@ void program___Program___compute_main_method(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./program.nit:68 */
+  /* program.nit:68 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[1] = BOX_NativeString("Sys");
@@ -306,17 +306,17 @@ void program___Program___compute_main_method(val_t p0){
     register_static_object(&once_value_1);
   } else fra.me.REG[1] = once_value_1;
   fra.me.REG[1] = fra.me.REG[1];
-  /* ./program.nit:69 */
+  /* program.nit:69 */
   fra.me.REG[2] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label3;
   }
-  /* ./program.nit:70 */
+  /* program.nit:70 */
   fra.me.REG[2] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./program.nit:73 */
+  /* program.nit:73 */
   if (!once_value_4) {
     if (!once_value_5) {
       fra.me.REG[2] = BOX_NativeString("main");
@@ -331,16 +331,16 @@ void program___Program___compute_main_method(val_t p0){
     register_static_object(&once_value_4);
   } else fra.me.REG[2] = once_value_4;
   fra.me.REG[2] = fra.me.REG[2];
-  /* ./program.nit:74 */
+  /* program.nit:74 */
   REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label3;
   }
-  /* ./program.nit:76 */
+  /* program.nit:76 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   ATTR_program___Program____main_method(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./program.nit:77 */
+  /* program.nit:77 */
   ATTR_program___Program____main_class(fra.me.REG[0]) = fra.me.REG[1];
   label3: while(0);
   stack_frame_head = fra.me.prev;
@@ -363,9 +363,9 @@ void program___Program___generate_allocation_iroutines(val_t p0){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./program.nit:80 */
+  /* program.nit:80 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./program.nit:83 */
+  /* program.nit:83 */
   fra.me.REG[2] = CALL_program___Program___main_module(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_program___Program___generate_allocation_iroutines_1));
@@ -392,7 +392,7 @@ void program___Program___generate_allocation_iroutines(val_t p0){
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
     closctx->REG[2] = fra.me.REG[0];
-    /* ./program.nit:84 */
+    /* program.nit:84 */
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(closctx->REG[2])(closctx->REG[2]);
     REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[0])(fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
@@ -405,9 +405,9 @@ void program___Program___generate_allocation_iroutines(val_t p0){
     if (UNTAG_Bool(REGB0)) {
       goto label2;
     }
-    /* ./program.nit:85 */
+    /* program.nit:85 */
     fra.me.REG[0] = CALL_primitive_info___MMLocalClass___primitive_info(closctx->REG[2])(closctx->REG[2]);
-    /* ./program.nit:86 */
+    /* program.nit:86 */
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -421,46 +421,46 @@ void program___Program___generate_allocation_iroutines(val_t p0){
       }
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./program.nit:89 */
+      /* program.nit:89 */
       fra.me.REG[0] = CALL_metamodel___static_type___MMLocalClass___get_type(closctx->REG[2])(closctx->REG[2]);
       fra.me.REG[0] = NEW_IRegister_icode___icode_base___IRegister___init(fra.me.REG[0]);
       closctx->REG[3] = fra.me.REG[0];
-      /* ./program.nit:90 */
+      /* program.nit:90 */
       REGB0 = TAG_Int(1);
       fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], closctx->REG[3]);
       closctx->REG[4] = fra.me.REG[0];
-      /* ./program.nit:91 */
+      /* program.nit:91 */
       fra.me.REG[0] = NEW_IRoutine_icode___icode_base___IRoutine___init(closctx->REG[4], NIT_NULL);
-      /* ./program.nit:92 */
+      /* program.nit:92 */
       fra.me.REG[1] = CALL_program___Program___main_module(closctx->REG[1])(closctx->REG[1]);
       fra.me.REG[1] = NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init(fra.me.REG[1], fra.me.REG[0]);
       closctx->REG[5] = fra.me.REG[1];
-      /* ./program.nit:94 */
+      /* program.nit:94 */
       fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(closctx->REG[2])(closctx->REG[2]);
       CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], closctx, ((fun_t)OC_program___Program___generate_allocation_iroutines_3));
-      /* ./program.nit:107 */
+      /* program.nit:107 */
       CALL_program___MMLocalClass___init_var_iroutine__eq(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
-      /* ./program.nit:111 */
+      /* program.nit:111 */
       fra.me.REG[0] = CALL_metamodel___static_type___MMLocalClass___get_type(closctx->REG[2])(closctx->REG[2]);
       fra.me.REG[0] = NEW_IRegister_icode___icode_base___IRegister___init(fra.me.REG[0]);
       closctx->REG[5] = fra.me.REG[0];
-      /* ./program.nit:112 */
+      /* program.nit:112 */
       REGB0 = TAG_Int(1);
       fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
-      /* ./program.nit:113 */
+      /* program.nit:113 */
       fra.me.REG[0] = NEW_IRoutine_icode___icode_base___IRoutine___init(fra.me.REG[0], NIT_NULL);
-      /* ./program.nit:114 */
+      /* program.nit:114 */
       fra.me.REG[1] = CALL_program___Program___main_module(closctx->REG[1])(closctx->REG[1]);
       fra.me.REG[1] = NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init(fra.me.REG[1], fra.me.REG[0]);
       closctx->REG[3] = fra.me.REG[1];
-      /* ./program.nit:115 */
+      /* program.nit:115 */
       fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(closctx->REG[2])(closctx->REG[2]);
       CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], closctx, ((fun_t)OC_program___Program___generate_allocation_iroutines_5));
-      /* ./program.nit:124 */
+      /* program.nit:124 */
       CALL_program___MMLocalClass___checknew_iroutine__eq(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
-      /* ./program.nit:127 */
+      /* program.nit:127 */
       fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(closctx->REG[2])(closctx->REG[2]);
       CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], closctx, ((fun_t)OC_program___Program___generate_allocation_iroutines_7));
     }
@@ -487,23 +487,23 @@ void program___Program___generate_allocation_iroutines(val_t p0){
         fra.me.closure_funs = CREG;
         fra.me.REG[0] = p0;
         CREG[0] = clos_fun0;
-        /* ./program.nit:95 */
+        /* program.nit:95 */
         fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
         REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___abstractmetamodel___MMAttribute, ID_metamodel___abstractmetamodel___MMAttribute)) /*cast MMAttribute*/;
         REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
         if (UNTAG_Bool(REGB0)) {
           goto label4;
         }
-        /* ./program.nit:96 */
+        /* program.nit:96 */
         fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
-        /* ./program.nit:97 */
+        /* program.nit:97 */
         fra.me.REG[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
         REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
           nit_abort("Reciever is null", NULL, LOCATE_program, 97);
         }
         fra.me.REG[1] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]);
-        /* ./program.nit:98 */
+        /* program.nit:98 */
         REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMAttribute, ID_metamodel___abstractmetamodel___MMAttribute)) /*cast MMAttribute*/;
         if (UNTAG_Bool(REGB0)) {
           REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
@@ -524,9 +524,9 @@ void program___Program___generate_allocation_iroutines(val_t p0){
           REGB0 = REGB1;
         }
         if (UNTAG_Bool(REGB0)) {
-          /* ./program.nit:99 */
+          /* program.nit:99 */
           fra.me.REG[1] = CALL_icode___icode_base___MMAttribute___iroutine(fra.me.REG[0])(fra.me.REG[0]);
-          /* ./program.nit:100 */
+          /* program.nit:100 */
           REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
           if (UNTAG_Bool(REGB0)) {
           } else {
@@ -542,14 +542,14 @@ void program___Program___generate_allocation_iroutines(val_t p0){
           if (UNTAG_Bool(REGB0)) {
             goto label4;
           }
-          /* ./program.nit:102 */
+          /* program.nit:102 */
           fra.me.REG[1] = CALL_icode___icode_tools___ICodeBuilder___inline_routine(closctx->REG[5])(closctx->REG[5], fra.me.REG[1], closctx->REG[4], NIT_NULL);
           REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_icode___icode_base___IRegister, ID_icode___icode_base___IRegister)) /*cast IRegister*/;
           if (UNTAG_Bool(REGB0)) {
           } else {
             nit_abort("Cast failed", NULL, LOCATE_program, 102);
           }
-          /* ./program.nit:103 */
+          /* program.nit:103 */
           fra.me.REG[1] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra.me.REG[0], closctx->REG[3], fra.me.REG[1]);
           CALL_icode___icode_builder___ICodeBuilder___stmt(closctx->REG[5])(closctx->REG[5], fra.me.REG[1]);
         }
@@ -576,23 +576,23 @@ void program___Program___generate_allocation_iroutines(val_t p0){
         fra.me.closure_funs = CREG;
         fra.me.REG[0] = p0;
         CREG[0] = clos_fun0;
-        /* ./program.nit:116 */
+        /* program.nit:116 */
         fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
         REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___abstractmetamodel___MMAttribute, ID_metamodel___abstractmetamodel___MMAttribute)) /*cast MMAttribute*/;
         REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
         if (UNTAG_Bool(REGB0)) {
           goto label6;
         }
-        /* ./program.nit:117 */
+        /* program.nit:117 */
         fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
-        /* ./program.nit:118 */
+        /* program.nit:118 */
         fra.me.REG[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
         REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
           nit_abort("Reciever is null", NULL, LOCATE_program, 118);
         }
         fra.me.REG[1] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]);
-        /* ./program.nit:119 */
+        /* program.nit:119 */
         REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMAttribute, ID_metamodel___abstractmetamodel___MMAttribute)) /*cast MMAttribute*/;
         if (UNTAG_Bool(REGB0)) {
           REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
@@ -624,7 +624,7 @@ void program___Program___generate_allocation_iroutines(val_t p0){
           REGB0 = REGB1;
         }
         if (UNTAG_Bool(REGB0)) {
-          /* ./program.nit:120 */
+          /* program.nit:120 */
           CALL_icode___icode_builder___ICodeBuilder___add_attr_check(closctx->REG[3])(closctx->REG[3], fra.me.REG[0], closctx->REG[5]);
         }
         label6: while(0);
@@ -656,26 +656,26 @@ void program___Program___generate_allocation_iroutines(val_t p0){
         fra.me.closure_funs = CREG;
         fra.me.REG[0] = p0;
         CREG[0] = clos_fun0;
-        /* ./program.nit:129 */
+        /* program.nit:129 */
         REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra.me.REG[0])(fra.me.REG[0], closctx->REG[2]);
         REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
         if (UNTAG_Bool(REGB0)) {
           goto label8;
         }
-        /* ./program.nit:130 */
+        /* program.nit:130 */
         fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
-        /* ./program.nit:131 */
+        /* program.nit:131 */
         REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
         if (UNTAG_Bool(REGB0)) {
         } else {
           nit_abort("Assert failed", NULL, LOCATE_program, 131);
         }
-        /* ./program.nit:133 */
+        /* program.nit:133 */
         fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(closctx->REG[2])(closctx->REG[2]);
         fra.me.REG[1] = NEW_IRegister_icode___icode_base___IRegister___init(fra.me.REG[1]);
-        /* ./program.nit:134 */
+        /* program.nit:134 */
         fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-        /* ./program.nit:135 */
+        /* program.nit:135 */
         REGB0 = TAG_Int(0);
         fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
         REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
@@ -683,18 +683,18 @@ void program___Program___generate_allocation_iroutines(val_t p0){
           nit_abort("Reciever is null", NULL, LOCATE_program, 135);
         }
         REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]);
-        /* ./../lib/standard//kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:352 */
         while(1) {
           REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
           if (UNTAG_Bool(REGB2)) {
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-          /* ./../lib/standard//kernel.nit:352 */
+          /* ../lib/standard/kernel.nit:352 */
           if (UNTAG_Bool(REGB2)) {
-            /* ./program.nit:135 */
+            /* program.nit:135 */
             REGB2 = REGB0;
             fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
             REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
@@ -704,21 +704,21 @@ void program___Program___generate_allocation_iroutines(val_t p0){
             fra.me.REG[3] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
             fra.me.REG[3] = NEW_IRegister_icode___icode_base___IRegister___init(fra.me.REG[3]);
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-            /* ./../lib/standard//kernel.nit:354 */
+            /* ../lib/standard/kernel.nit:354 */
             REGB2 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-            /* ./../lib/standard//kernel.nit:354 */
+            /* ../lib/standard/kernel.nit:354 */
             REGB0 = REGB2;
           } else {
-            /* ./../lib/standard//kernel.nit:352 */
+            /* ../lib/standard/kernel.nit:352 */
             goto label9;
           }
         }
         label9: while(0);
-        /* ./program.nit:136 */
+        /* program.nit:136 */
         fra.me.REG[3] = NEW_IRoutine_icode___icode_base___IRoutine___init(fra.me.REG[2], fra.me.REG[1]);
-        /* ./program.nit:137 */
+        /* program.nit:137 */
         fra.me.REG[4] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
         REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
@@ -726,34 +726,34 @@ void program___Program___generate_allocation_iroutines(val_t p0){
         }
         fra.me.REG[4] = CALL_icode___icode_base___IRoutine___location(fra.me.REG[4])(fra.me.REG[4]);
         CALL_icode___icode_base___IRoutine___location__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-        /* ./program.nit:138 */
+        /* program.nit:138 */
         fra.me.REG[4] = CALL_program___Program___main_module(closctx->REG[1])(closctx->REG[1]);
         fra.me.REG[4] = NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init(fra.me.REG[4], fra.me.REG[3]);
-        /* ./program.nit:140 */
+        /* program.nit:140 */
         fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(closctx->REG[2])(closctx->REG[2]);
         fra.me.REG[5] = NEW_IAllocateInstance_icode___icode_base___IAllocateInstance___init(fra.me.REG[5]);
-        /* ./program.nit:141 */
+        /* program.nit:141 */
         CALL_icode___icode_base___ICode___result__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
-        /* ./program.nit:142 */
+        /* program.nit:142 */
         CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-        /* ./program.nit:143 */
+        /* program.nit:143 */
         REGB0 = TAG_Int(1);
         fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
-        /* ./program.nit:144 */
+        /* program.nit:144 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
-        /* ./program.nit:146 */
+        /* program.nit:146 */
         fra.me.REG[2] = CALL_metamodel___static_type___MMLocalClass___get_type(closctx->REG[2])(closctx->REG[2]);
         fra.me.REG[2] = NEW_IInitAttributes_icode___icode_base___IInitAttributes___init(fra.me.REG[2], fra.me.REG[1]);
         CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-        /* ./program.nit:147 */
+        /* program.nit:147 */
         fra.me.REG[5] = NEW_IStaticCall_icode___icode_base___IStaticCall___init(fra.me.REG[0], fra.me.REG[5]);
         CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-        /* ./program.nit:148 */
+        /* program.nit:148 */
         fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(closctx->REG[2])(closctx->REG[2]);
         fra.me.REG[1] = NEW_ICheckInstance_icode___icode_base___ICheckInstance___init(fra.me.REG[5], fra.me.REG[1]);
         CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
-        /* ./program.nit:150 */
+        /* program.nit:150 */
         fra.me.REG[1] = CALL_program___MMLocalClass___new_instance_iroutine(closctx->REG[2])(closctx->REG[2]);
         CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
         label8: while(0);
@@ -779,7 +779,7 @@ void program___Program___with_each_iroutines(val_t p0, struct stack_frame_t *clo
   fra.me.closure_funs = CREG;
   fra.me.REG[0] = p0;
   CREG[0] = clos_fun0;
-  /* ./program.nit:161 */
+  /* program.nit:161 */
   fra.me.REG[1] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
@@ -813,7 +813,7 @@ void program___Program___with_each_iroutines(val_t p0, struct stack_frame_t *clo
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
     closctx->REG[1] = fra.me.REG[0];
-    /* ./program.nit:162 */
+    /* program.nit:162 */
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(closctx->REG[1])(closctx->REG[1]);
     CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], closctx, ((fun_t)OC_program___Program___with_each_iroutines_2));
     switch (closctx->has_broke) {
@@ -843,19 +843,19 @@ void program___Program___with_each_iroutines(val_t p0, struct stack_frame_t *clo
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./program.nit:163 */
+      /* program.nit:163 */
       closctx->REG[2] = NIT_NULL;
-      /* ./program.nit:166 */
+      /* program.nit:166 */
       fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___local_local_properties(fra.me.REG[0])(fra.me.REG[0]);
       CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], closctx, ((fun_t)OC_program___Program___with_each_iroutines_3));
       switch (closctx->has_broke) {
         case 0: break;
         default: goto label5;
       }
-      /* ./program.nit:177 */
+      /* program.nit:177 */
       fra.me.REG[1] = CALL_program___MMLocalClass___init_var_iroutine(fra.me.REG[0])(fra.me.REG[0]);
       closctx->REG[2] = fra.me.REG[1];
-      /* ./program.nit:178 */
+      /* program.nit:178 */
       REGB0 = TAG_Bool(closctx->REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -870,17 +870,17 @@ void program___Program___with_each_iroutines(val_t p0, struct stack_frame_t *clo
       }
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
-        /* ./program.nit:179 */
+        /* program.nit:179 */
         ((void (*)(struct stack_frame_t *, val_t, val_t))(closctx->closure_funs[0]))(closctx->closure_ctx, closctx->REG[2], closctx->REG[1]);
         if (closctx->closure_ctx->has_broke) {
           closctx->has_broke = 1;
           goto label5;
         }
       }
-      /* ./program.nit:181 */
+      /* program.nit:181 */
       fra.me.REG[1] = CALL_program___MMLocalClass___checknew_iroutine(fra.me.REG[0])(fra.me.REG[0]);
       closctx->REG[2] = fra.me.REG[1];
-      /* ./program.nit:182 */
+      /* program.nit:182 */
       REGB0 = TAG_Bool(closctx->REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -895,14 +895,14 @@ void program___Program___with_each_iroutines(val_t p0, struct stack_frame_t *clo
       }
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
-        /* ./program.nit:183 */
+        /* program.nit:183 */
         ((void (*)(struct stack_frame_t *, val_t, val_t))(closctx->closure_funs[0]))(closctx->closure_ctx, closctx->REG[2], closctx->REG[1]);
         if (closctx->closure_ctx->has_broke) {
           closctx->has_broke = 1;
           goto label5;
         }
       }
-      /* ./program.nit:185 */
+      /* program.nit:185 */
       fra.me.REG[0] = CALL_program___MMLocalClass___new_instance_iroutine(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___values(fra.me.REG[0])(fra.me.REG[0]);
       CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], closctx, ((fun_t)OC_program___Program___with_each_iroutines_6));
@@ -933,22 +933,22 @@ void program___Program___with_each_iroutines(val_t p0, struct stack_frame_t *clo
         fra.me.closure_funs = CREG;
         fra.me.REG[0] = p0;
         CREG[0] = clos_fun0;
-        /* ./program.nit:167 */
+        /* program.nit:167 */
         REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMAttribute, ID_metamodel___abstractmetamodel___MMAttribute)) /*cast MMAttribute*/;
         if (UNTAG_Bool(REGB0)) {
-          /* ./program.nit:168 */
+          /* program.nit:168 */
           fra.me.REG[1] = CALL_icode___icode_base___MMAttribute___iroutine(fra.me.REG[0])(fra.me.REG[0]);
           closctx->REG[2] = fra.me.REG[1];
         } else {
-          /* ./program.nit:169 */
+          /* program.nit:169 */
           REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
           if (UNTAG_Bool(REGB0)) {
-            /* ./program.nit:170 */
+            /* program.nit:170 */
             fra.me.REG[0] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
             closctx->REG[2] = fra.me.REG[0];
           }
         }
-        /* ./program.nit:172 */
+        /* program.nit:172 */
         REGB0 = TAG_Bool(closctx->REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
         } else {
@@ -964,7 +964,7 @@ void program___Program___with_each_iroutines(val_t p0, struct stack_frame_t *clo
         if (UNTAG_Bool(REGB0)) {
           goto label4;
         }
-        /* ./program.nit:173 */
+        /* program.nit:173 */
         ((void (*)(struct stack_frame_t *, val_t, val_t))(closctx->closure_funs[0]))(closctx->closure_ctx, closctx->REG[2], closctx->REG[1]);
         if (closctx->closure_ctx->has_broke) {
           closctx->has_broke = 1;
@@ -990,7 +990,7 @@ void program___Program___with_each_iroutines(val_t p0, struct stack_frame_t *clo
         fra.me.closure_funs = CREG;
         fra.me.REG[0] = p0;
         CREG[0] = clos_fun0;
-        /* ./program.nit:186 */
+        /* program.nit:186 */
         ((void (*)(struct stack_frame_t *, val_t, val_t))(closctx->closure_funs[0]))(closctx->closure_ctx, fra.me.REG[0], closctx->REG[1]);
         if (closctx->closure_ctx->has_broke) {
           closctx->has_broke = 1;
@@ -1018,7 +1018,7 @@ void program___Program___with_each_methods(val_t p0, struct stack_frame_t *closc
   fra.me.closure_funs = CREG;
   fra.me.REG[0] = p0;
   CREG[0] = clos_fun0;
-  /* ./program.nit:197 */
+  /* program.nit:197 */
   fra.me.REG[1] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
@@ -1051,7 +1051,7 @@ void program___Program___with_each_methods(val_t p0, struct stack_frame_t *closc
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./program.nit:198 */
+    /* program.nit:198 */
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], closctx, ((fun_t)OC_program___Program___with_each_methods_2));
     switch (closctx->has_broke) {
@@ -1078,7 +1078,7 @@ void program___Program___with_each_methods(val_t p0, struct stack_frame_t *closc
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./program.nit:200 */
+      /* program.nit:200 */
       fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___local_local_properties(fra.me.REG[0])(fra.me.REG[0]);
       CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], closctx, ((fun_t)OC_program___Program___with_each_methods_3));
       switch (closctx->has_broke) {
@@ -1106,10 +1106,10 @@ void program___Program___with_each_methods(val_t p0, struct stack_frame_t *closc
         fra.me.closure_funs = CREG;
         fra.me.REG[0] = p0;
         CREG[0] = clos_fun0;
-        /* ./program.nit:201 */
+        /* program.nit:201 */
         REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
         if (UNTAG_Bool(REGB0)) {
-          /* ./program.nit:202 */
+          /* program.nit:202 */
           ((void (*)(struct stack_frame_t *, val_t))(closctx->closure_funs[0]))(closctx->closure_ctx, fra.me.REG[0]);
           if (closctx->closure_ctx->has_broke) {
             closctx->has_broke = 1;
@@ -1136,7 +1136,7 @@ void program___Program___with_each_live_local_classes(val_t p0, struct stack_fra
   fra.me.closure_funs = CREG;
   fra.me.REG[0] = p0;
   CREG[0] = clos_fun0;
-  /* ./program.nit:214 */
+  /* program.nit:214 */
   fra.me.REG[0] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_program___Program___with_each_live_local_classes_1));
@@ -1164,7 +1164,7 @@ void program___Program___with_each_live_local_classes(val_t p0, struct stack_fra
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./program.nit:215 */
+    /* program.nit:215 */
     ((void (*)(struct stack_frame_t *, val_t))(closctx->closure_funs[0]))(closctx->closure_ctx, fra.me.REG[0]);
     if (closctx->closure_ctx->has_broke) {
       closctx->has_broke = 1;
@@ -1192,11 +1192,11 @@ void program___Program___init(val_t p0, val_t p1, val_t p2, int* init_table){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./program.nit:220 */
+  /* program.nit:220 */
   ATTR_program___Program____main_module(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./program.nit:221 */
+  /* program.nit:221 */
   ATTR_program___Program____tc(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./program.nit:222 */
+  /* program.nit:222 */
   CALL_program___Program___finish_processing_classes(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -1214,7 +1214,7 @@ val_t program___MMLocalClass___init_var_iroutine(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./program.nit:227 */
+  /* program.nit:227 */
   fra.me.REG[0] = ATTR_program___MMLocalClass____init_var_iroutine(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1233,7 +1233,7 @@ void program___MMLocalClass___init_var_iroutine__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./program.nit:227 */
+  /* program.nit:227 */
   ATTR_program___MMLocalClass____init_var_iroutine(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1250,7 +1250,7 @@ val_t program___MMLocalClass___checknew_iroutine(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./program.nit:229 */
+  /* program.nit:229 */
   fra.me.REG[0] = ATTR_program___MMLocalClass____checknew_iroutine(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1269,7 +1269,7 @@ void program___MMLocalClass___checknew_iroutine__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./program.nit:229 */
+  /* program.nit:229 */
   ATTR_program___MMLocalClass____checknew_iroutine(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1287,7 +1287,7 @@ val_t program___MMLocalClass___new_instance_iroutine(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./program.nit:231 */
+  /* program.nit:231 */
   REGB0 = TAG_Bool(ATTR_program___MMLocalClass____new_instance_iroutine(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
index 36155f3..5f95941 100644 (file)
@@ -53,7 +53,7 @@ typedef void (*program___ToolContext___use_SFT_optimization__eq_t)(val_t p0, val
 static const char * const LOCATE_program___ToolContext___use_SFT_optimization = "program::ToolContext::use_SFT_optimization";
 val_t program___ToolContext___use_SFT_optimization(val_t p0);
 typedef val_t (*program___ToolContext___use_SFT_optimization_t)(val_t p0);
-val_t NEW_ToolContext_mmloader___ToolContext___init();
+val_t NEW_ToolContext_toolcontext___ToolContext___init();
 static const char * const LOCATE_program___Program___tc = "program::Program::tc";
 val_t program___Program___tc(val_t p0);
 typedef val_t (*program___Program___tc_t)(val_t p0);
index 2d677df..7a1e5aa 100644 (file)
@@ -13,7 +13,7 @@ val_t separate_options___ToolContext___separate_options(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./separate_options.nit:10 */
+  /* separate_options.nit:10 */
   REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atseparate_options(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -37,7 +37,7 @@ void separate_options___ToolContext___separate_options__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./separate_options.nit:10 */
+  /* separate_options.nit:10 */
   ATTR_separate_options___ToolContext_____atseparate_options(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -55,7 +55,7 @@ val_t separate_options___ToolContext___opt_cc_lib_paths(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./separate_options.nit:12 */
+  /* separate_options.nit:12 */
   REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atopt_cc_lib_paths(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -79,7 +79,7 @@ void separate_options___ToolContext___opt_cc_lib_paths__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./separate_options.nit:12 */
+  /* separate_options.nit:12 */
   ATTR_separate_options___ToolContext_____atopt_cc_lib_paths(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -97,7 +97,7 @@ val_t separate_options___ToolContext___opt_cc_libs(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./separate_options.nit:13 */
+  /* separate_options.nit:13 */
   REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atopt_cc_libs(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -121,7 +121,7 @@ void separate_options___ToolContext___opt_cc_libs__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./separate_options.nit:13 */
+  /* separate_options.nit:13 */
   ATTR_separate_options___ToolContext_____atopt_cc_libs(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -139,7 +139,7 @@ val_t separate_options___ToolContext___opt_cc_include_paths(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./separate_options.nit:14 */
+  /* separate_options.nit:14 */
   REGB0 = TAG_Bool(ATTR_separate_options___ToolContext_____atopt_cc_include_paths(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -163,13 +163,13 @@ void separate_options___ToolContext___opt_cc_include_paths__eq(val_t p0, val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./separate_options.nit:14 */
+  /* separate_options.nit:14 */
   ATTR_separate_options___ToolContext_____atopt_cc_include_paths(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
 }
 void separate_options___ToolContext___init(val_t p0, int* init_table){
-  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_mmloader___ToolContext].i;
+  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_toolcontext___ToolContext].i;
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
   val_t tmp;
@@ -186,25 +186,25 @@ void separate_options___ToolContext___init(val_t p0, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./separate_options.nit:16 */
+  /* separate_options.nit:16 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./separate_options.nit:18 */
+  /* separate_options.nit:18 */
   CALL_SUPER_separate_options___ToolContext___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./separate_options.nit:20 */
+  /* separate_options.nit:20 */
   fra.me.REG[0] = CALL_separate_options___ToolContext___separate_options(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   fra.me.REG[3] = CALL_separate_options___ToolContext___opt_cc_lib_paths(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   CALL_opts___OptionContext___add_option(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./separate_options.nit:21 */
+  /* separate_options.nit:21 */
   fra.me.REG[2] = CALL_separate_options___ToolContext___separate_options(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(0);
   fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   fra.me.REG[3] = CALL_separate_options___ToolContext___opt_cc_libs(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
   CALL_opts___OptionContext___add_option(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* ./separate_options.nit:22 */
+  /* separate_options.nit:22 */
   fra.me.REG[0] = CALL_separate_options___ToolContext___separate_options(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -242,22 +242,22 @@ void separate_options___ToolContext___integrate_separate_options(val_t p0, val_t
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./separate_options.nit:27 */
+  /* separate_options.nit:27 */
   fra.me.REG[1] = CALL_standard___string_search___String___split(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -269,18 +269,18 @@ void separate_options___ToolContext___integrate_separate_options(val_t p0, val_t
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./separate_options.nit:28 */
+      /* separate_options.nit:28 */
       if (!once_value_1) {
         fra.me.REG[4] = BOX_NativeString("\n");
         REGB1 = TAG_Int(1);
@@ -291,33 +291,33 @@ void separate_options___ToolContext___integrate_separate_options(val_t p0, val_t
       fra.me.REG[4] = fra.me.REG[4];
       fra.me.REG[4] = CALL_standard___file___String___strip_extension(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
       fra.me.REG[3] = fra.me.REG[4];
-      /* ./separate_options.nit:29 */
+      /* separate_options.nit:29 */
       fra.me.REG[4] = CALL_separate_options___ToolContext___separate_options(fra.me.REG[0])(fra.me.REG[0]);
       REGB1 = TAG_Char(' ');
       fra.me.REG[3] = CALL_standard___string_search___String___split_with(fra.me.REG[3])(fra.me.REG[3], REGB1);
       CALL_opts___OptionContext___parse(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-      /* ./separate_options.nit:30 */
+      /* separate_options.nit:30 */
       fra.me.REG[3] = CALL_separate_options___ToolContext___separate_options(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[3] = CALL_opts___OptionContext___rest(fra.me.REG[3])(fra.me.REG[3]);
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
       }
       REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-      /* ./separate_options.nit:30 */
+      /* separate_options.nit:30 */
       REGB2 = TAG_Int(0);
       REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB3)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:234 */
+      /* ../lib/standard/kernel.nit:234 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
-      /* ./separate_options.nit:30 */
+      /* separate_options.nit:30 */
       if (UNTAG_Bool(REGB2)) {
-        /* ./separate_options.nit:31 */
+        /* separate_options.nit:31 */
         REGB2 = TAG_Int(5);
         fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
         if (!once_value_2) {
@@ -362,31 +362,31 @@ void separate_options___ToolContext___integrate_separate_options(val_t p0, val_t
         fra.me.REG[5] = fra.me.REG[5];
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
         fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-        CALL_mmloader___ToolContext___warning(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[3]);
+        CALL_toolcontext___ToolContext___warning(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[3]);
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label6;
     }
   }
   label6: while(0);
-  /* ./separate_options.nit:35 */
+  /* separate_options.nit:35 */
   fra.me.REG[2] = CALL_compiling___compiling_base___ToolContext___cc_lib_paths(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_separate_options___ToolContext___opt_cc_lib_paths(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./separate_options.nit:36 */
+  /* separate_options.nit:36 */
   fra.me.REG[1] = CALL_compiling___compiling_base___ToolContext___cc_libs(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_separate_options___ToolContext___opt_cc_libs(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./separate_options.nit:37 */
+  /* separate_options.nit:37 */
   fra.me.REG[2] = CALL_compiling___compiling_base___ToolContext___cc_include_paths(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_separate_options___ToolContext___opt_cc_include_paths(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
@@ -413,12 +413,12 @@ void separate_options___MMSrcModule___compile_separate_module(val_t p0, val_t p1
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./separate_options.nit:43 */
+  /* separate_options.nit:43 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./separate_options.nit:45 */
+  /* separate_options.nit:45 */
   CALL_SUPER_separate_options___MMSrcModule___compile_separate_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./separate_options.nit:48 */
+  /* separate_options.nit:48 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -448,16 +448,16 @@ void separate_options___MMSrcModule___compile_separate_module(val_t p0, val_t p1
   fra.me.REG[2] = fra.me.REG[2];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./separate_options.nit:49 */
+  /* separate_options.nit:49 */
   REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./separate_options.nit:50 */
+    /* separate_options.nit:50 */
     fra.me.REG[1] = NEW_IFStream_standard___file___IFStream___open(fra.me.REG[1]);
-    /* ./separate_options.nit:51 */
+    /* separate_options.nit:51 */
     fra.me.REG[2] = CALL_standard___stream___IStream___read_all(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./separate_options.nit:52 */
+    /* separate_options.nit:52 */
     CALL_standard___stream___IOS___close(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./separate_options.nit:54 */
+    /* separate_options.nit:54 */
     fra.me.REG[3] = CALL_compiling___compiling_base___CProgram___program(fra.me.REG[3])(fra.me.REG[3]);
     fra.me.REG[3] = CALL_program___Program___tc(fra.me.REG[3])(fra.me.REG[3]);
     CALL_separate_options___ToolContext___integrate_separate_options(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
index 4f4b1a3..4dafe7b 100644 (file)
@@ -44,10 +44,10 @@ typedef val_t (*separate_options___ToolContext___opt_cc_include_paths_t)(val_t p
 static const char * const LOCATE_separate_options___ToolContext___opt_cc_include_paths__eq = "separate_options::ToolContext::opt_cc_include_paths=";
 void separate_options___ToolContext___opt_cc_include_paths__eq(val_t p0, val_t p1);
 typedef void (*separate_options___ToolContext___opt_cc_include_paths__eq_t)(val_t p0, val_t p1);
-static const char * const LOCATE_separate_options___ToolContext___init = "separate_options::ToolContext::(mmloader::ToolContext::init)";
+static const char * const LOCATE_separate_options___ToolContext___init = "separate_options::ToolContext::(toolcontext::ToolContext::init)";
 void separate_options___ToolContext___init(val_t p0, int* init_table);
 typedef void (*separate_options___ToolContext___init_t)(val_t p0, int* init_table);
-val_t NEW_ToolContext_mmloader___ToolContext___init();
+val_t NEW_ToolContext_toolcontext___ToolContext___init();
 static const char * const LOCATE_separate_options___ToolContext___integrate_separate_options = "separate_options::ToolContext::integrate_separate_options";
 void separate_options___ToolContext___integrate_separate_options(val_t p0, val_t p1);
 typedef void (*separate_options___ToolContext___integrate_separate_options_t)(val_t p0, val_t p1);
index 4e00bec..8002dca 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/standard/standard. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/standard/standard. */
 #ifndef standard_sep
 #define standard_sep
 #include "standard___environ._sep.h"
index 60128ac..d635ced 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/standard/collection/collection. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/standard/collection/collection. */
 #ifndef standard___collection_sep
 #define standard___collection_sep
 #include "standard___collection___range._sep.h"
index b25592b..e03e1a3 100644 (file)
@@ -10,7 +10,7 @@ val_t standard___collection___abstract_collection___Collection___iterator(val_t
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:42 */
+  /* ../lib/standard/collection/abstract_collection.nit:42 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 42);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -33,22 +33,22 @@ void standard___collection___abstract_collection___Collection___iterate(val_t p0
   fra.me.closure_funs = CREG;
   fra.me.REG[0] = p0;
   CREG[0] = clos_fun0;
-  /* ./../lib/standard//collection//abstract_collection.nit:49 */
+  /* ../lib/standard/collection/abstract_collection.nit:49 */
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//abstract_collection.nit:50 */
+  /* ../lib/standard/collection/abstract_collection.nit:50 */
   while(1) {
     REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//abstract_collection.nit:51 */
+      /* ../lib/standard/collection/abstract_collection.nit:51 */
       fra.me.REG[1] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
       ((void (*)(struct stack_frame_t *, val_t))(CREG[0]))(closctx_param, fra.me.REG[1]);
       if (closctx_param->has_broke) {
         goto label1;
       }
-      /* ./../lib/standard//collection//abstract_collection.nit:52 */
+      /* ../lib/standard/collection/abstract_collection.nit:52 */
       CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
     } else {
-      /* ./../lib/standard//collection//abstract_collection.nit:50 */
+      /* ../lib/standard/collection/abstract_collection.nit:50 */
       goto label2;
     }
   }
@@ -67,7 +67,7 @@ val_t standard___collection___abstract_collection___Collection___is_empty(val_t
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:56 */
+  /* ../lib/standard/collection/abstract_collection.nit:56 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 56);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -82,7 +82,7 @@ val_t standard___collection___abstract_collection___Collection___length(val_t p0
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:59 */
+  /* ../lib/standard/collection/abstract_collection.nit:59 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 59);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -97,7 +97,7 @@ val_t standard___collection___abstract_collection___Collection___has(val_t p0, v
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:62 */
+  /* ../lib/standard/collection/abstract_collection.nit:62 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 62);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -112,7 +112,7 @@ val_t standard___collection___abstract_collection___Collection___has_only(val_t
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:66 */
+  /* ../lib/standard/collection/abstract_collection.nit:66 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 66);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -127,7 +127,7 @@ val_t standard___collection___abstract_collection___Collection___count(val_t p0,
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:71 */
+  /* ../lib/standard/collection/abstract_collection.nit:71 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 71);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -142,7 +142,7 @@ val_t standard___collection___abstract_collection___Collection___first(val_t p0)
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:75 */
+  /* ../lib/standard/collection/abstract_collection.nit:75 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 75);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -162,15 +162,15 @@ val_t standard___collection___abstract_collection___NaiveCollection___is_empty(v
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:83 */
+  /* ../lib/standard/collection/abstract_collection.nit:83 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./../lib/standard//collection//abstract_collection.nit:83 */
+    /* ../lib/standard/collection/abstract_collection.nit:83 */
     REGB2 = REGB1;
   }
   goto label1;
@@ -192,11 +192,11 @@ val_t standard___collection___abstract_collection___NaiveCollection___length(val
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:87 */
+  /* ../lib/standard/collection/abstract_collection.nit:87 */
   REGB0 = TAG_Int(0);
   fra.me.REG[1] = REGB0;
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_standard___collection___abstract_collection___NaiveCollection___length_1));
-  /* ./../lib/standard//collection//abstract_collection.nit:89 */
+  /* ../lib/standard/collection/abstract_collection.nit:89 */
   REGB0 = fra.me.REG[1];
   goto label2;
   label2: while(0);
@@ -208,7 +208,7 @@ val_t standard___collection___abstract_collection___NaiveCollection___length(val
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./../lib/standard//collection//abstract_collection.nit:88 */
+    /* ../lib/standard/collection/abstract_collection.nit:88 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_standard___collection___abstract_collection;
     fra.me.line = 0;
@@ -222,9 +222,9 @@ val_t standard___collection___abstract_collection___NaiveCollection___length(val
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
     REGB0 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB0 = TAG_Int(UNTAG_Int(closctx->REG[1])+UNTAG_Int(REGB0));
-    /* ./../lib/standard//collection//abstract_collection.nit:88 */
+    /* ../lib/standard/collection/abstract_collection.nit:88 */
     closctx->REG[1] = REGB0;
     stack_frame_head = fra.me.prev;
     return;
@@ -249,7 +249,7 @@ val_t standard___collection___abstract_collection___NaiveCollection___has(val_t
     case 0: break;
     case 1: (&(fra.me))->has_broke = 0; goto label3;
   }
-  /* ./../lib/standard//collection//abstract_collection.nit:95 */
+  /* ../lib/standard/collection/abstract_collection.nit:95 */
   REGB0 = TAG_Bool(false);
   fra.me.REG[0] = REGB0;
   goto label3;
@@ -263,7 +263,7 @@ val_t standard___collection___abstract_collection___NaiveCollection___has(val_t
     val_t REGB1;
     fun_t CREG[1];
     val_t tmp;
-    /* ./../lib/standard//collection//abstract_collection.nit:94 */
+    /* ../lib/standard/collection/abstract_collection.nit:94 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_standard___collection___abstract_collection;
     fra.me.line = 0;
@@ -318,7 +318,7 @@ val_t standard___collection___abstract_collection___NaiveCollection___has_only(v
     case 0: break;
     case 1: (&(fra.me))->has_broke = 0; goto label3;
   }
-  /* ./../lib/standard//collection//abstract_collection.nit:101 */
+  /* ../lib/standard/collection/abstract_collection.nit:101 */
   REGB0 = TAG_Bool(true);
   fra.me.REG[0] = REGB0;
   goto label3;
@@ -332,7 +332,7 @@ val_t standard___collection___abstract_collection___NaiveCollection___has_only(v
     val_t REGB1;
     fun_t CREG[1];
     val_t tmp;
-    /* ./../lib/standard//collection//abstract_collection.nit:100 */
+    /* ../lib/standard/collection/abstract_collection.nit:100 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_standard___collection___abstract_collection;
     fra.me.line = 0;
@@ -384,11 +384,11 @@ val_t standard___collection___abstract_collection___NaiveCollection___count(val_
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:106 */
+  /* ../lib/standard/collection/abstract_collection.nit:106 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = REGB0;
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_standard___collection___abstract_collection___NaiveCollection___count_1));
-  /* ./../lib/standard//collection//abstract_collection.nit:108 */
+  /* ../lib/standard/collection/abstract_collection.nit:108 */
   REGB0 = fra.me.REG[2];
   goto label2;
   label2: while(0);
@@ -401,7 +401,7 @@ val_t standard___collection___abstract_collection___NaiveCollection___count(val_
     val_t REGB1;
     fun_t CREG[1];
     val_t tmp;
-    /* ./../lib/standard//collection//abstract_collection.nit:107 */
+    /* ../lib/standard/collection/abstract_collection.nit:107 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_standard___collection___abstract_collection;
     fra.me.line = 0;
@@ -428,9 +428,9 @@ val_t standard___collection___abstract_collection___NaiveCollection___count(val_
     }
     if (UNTAG_Bool(REGB0)) {
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB0 = TAG_Int(UNTAG_Int(closctx->REG[2])+UNTAG_Int(REGB0));
-      /* ./../lib/standard//collection//abstract_collection.nit:107 */
+      /* ../lib/standard/collection/abstract_collection.nit:107 */
       closctx->REG[2] = REGB0;
     }
     stack_frame_head = fra.me.prev;
@@ -451,7 +451,7 @@ val_t standard___collection___abstract_collection___NaiveCollection___first(val_
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:113 */
+  /* ../lib/standard/collection/abstract_collection.nit:113 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -459,14 +459,14 @@ val_t standard___collection___abstract_collection___NaiveCollection___first(val_
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//abstract_collection.nit:113 */
+  /* ../lib/standard/collection/abstract_collection.nit:113 */
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_standard___collection___abstract_collection, 113);
   }
-  /* ./../lib/standard//collection//abstract_collection.nit:114 */
+  /* ../lib/standard/collection/abstract_collection.nit:114 */
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -484,7 +484,7 @@ val_t standard___collection___abstract_collection___Iterator___item(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:121 */
+  /* ../lib/standard/collection/abstract_collection.nit:121 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 121);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -499,7 +499,7 @@ void standard___collection___abstract_collection___Iterator___next(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:125 */
+  /* ../lib/standard/collection/abstract_collection.nit:125 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 125);
   stack_frame_head = fra.me.prev;
   return;
@@ -514,7 +514,7 @@ val_t standard___collection___abstract_collection___Iterator___is_ok(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:129 */
+  /* ../lib/standard/collection/abstract_collection.nit:129 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 129);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -531,7 +531,7 @@ val_t standard___collection___abstract_collection___Container___first(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:137 */
+  /* ../lib/standard/collection/abstract_collection.nit:137 */
   fra.me.REG[0] = ATTR_standard___collection___abstract_collection___Container____item(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -551,7 +551,7 @@ val_t standard___collection___abstract_collection___Container___is_empty(val_t p
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:139 */
+  /* ../lib/standard/collection/abstract_collection.nit:139 */
   REGB0 = TAG_Bool(false);
   goto label1;
   label1: while(0);
@@ -571,7 +571,7 @@ val_t standard___collection___abstract_collection___Container___length(val_t p0)
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:141 */
+  /* ../lib/standard/collection/abstract_collection.nit:141 */
   REGB0 = TAG_Int(1);
   goto label1;
   label1: while(0);
@@ -594,7 +594,7 @@ val_t standard___collection___abstract_collection___Container___has(val_t p0, va
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:143 */
+  /* ../lib/standard/collection/abstract_collection.nit:143 */
   fra.me.REG[0] = ATTR_standard___collection___abstract_collection___Container____item(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[0],fra.me.REG[1]));
   if (UNTAG_Bool(REGB0)) {
@@ -629,7 +629,7 @@ val_t standard___collection___abstract_collection___Container___has_only(val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:145 */
+  /* ../lib/standard/collection/abstract_collection.nit:145 */
   fra.me.REG[0] = ATTR_standard___collection___abstract_collection___Container____item(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[0],fra.me.REG[1]));
   if (UNTAG_Bool(REGB0)) {
@@ -664,7 +664,7 @@ val_t standard___collection___abstract_collection___Container___count(val_t p0,
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:149 */
+  /* ../lib/standard/collection/abstract_collection.nit:149 */
   fra.me.REG[0] = ATTR_standard___collection___abstract_collection___Container____item(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[0],fra.me.REG[1]));
   if (UNTAG_Bool(REGB0)) {
@@ -679,11 +679,11 @@ val_t standard___collection___abstract_collection___Container___count(val_t p0,
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//collection//abstract_collection.nit:150 */
+    /* ../lib/standard/collection/abstract_collection.nit:150 */
     REGB0 = TAG_Int(1);
     goto label1;
   } else {
-    /* ./../lib/standard//collection//abstract_collection.nit:152 */
+    /* ../lib/standard/collection/abstract_collection.nit:152 */
     REGB1 = TAG_Int(0);
     REGB0 = REGB1;
     goto label1;
@@ -704,7 +704,7 @@ val_t standard___collection___abstract_collection___Container___iterator(val_t p
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:156 */
+  /* ../lib/standard/collection/abstract_collection.nit:156 */
   fra.me.REG[0] = NEW_ContainerIterator_standard___collection___abstract_collection___ContainerIterator___init(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -727,7 +727,7 @@ void standard___collection___abstract_collection___Container___init(val_t p0, va
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:159 */
+  /* ../lib/standard/collection/abstract_collection.nit:159 */
   ATTR_standard___collection___abstract_collection___Container____item(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -745,7 +745,7 @@ val_t standard___collection___abstract_collection___Container___item(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:161 */
+  /* ../lib/standard/collection/abstract_collection.nit:161 */
   fra.me.REG[0] = ATTR_standard___collection___abstract_collection___Container____item(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -764,7 +764,7 @@ void standard___collection___abstract_collection___Container___item__eq(val_t p0
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:161 */
+  /* ../lib/standard/collection/abstract_collection.nit:161 */
   ATTR_standard___collection___abstract_collection___Container____item(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -782,7 +782,7 @@ val_t standard___collection___abstract_collection___ContainerIterator___item(val
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:168 */
+  /* ../lib/standard/collection/abstract_collection.nit:168 */
   REGB0 = TAG_Bool(ATTR_standard___collection___abstract_collection___ContainerIterator____container(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -808,7 +808,7 @@ void standard___collection___abstract_collection___ContainerIterator___next(val_
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:170 */
+  /* ../lib/standard/collection/abstract_collection.nit:170 */
   REGB0 = TAG_Bool(false);
   ATTR_standard___collection___abstract_collection___ContainerIterator____is_ok(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -830,7 +830,7 @@ void standard___collection___abstract_collection___ContainerIterator___init(val_
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:172 */
+  /* ../lib/standard/collection/abstract_collection.nit:172 */
   ATTR_standard___collection___abstract_collection___ContainerIterator____container(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
@@ -849,7 +849,7 @@ val_t standard___collection___abstract_collection___ContainerIterator___is_ok(va
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:174 */
+  /* ../lib/standard/collection/abstract_collection.nit:174 */
   REGB0 = TAG_Bool(ATTR_standard___collection___abstract_collection___ContainerIterator____is_ok(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -869,7 +869,7 @@ void standard___collection___abstract_collection___RemovableCollection___clear(v
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:182 */
+  /* ../lib/standard/collection/abstract_collection.nit:182 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 182);
   stack_frame_head = fra.me.prev;
   return;
@@ -884,7 +884,7 @@ void standard___collection___abstract_collection___RemovableCollection___remove(
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:185 */
+  /* ../lib/standard/collection/abstract_collection.nit:185 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 185);
   stack_frame_head = fra.me.prev;
   return;
@@ -904,7 +904,7 @@ void standard___collection___abstract_collection___RemovableCollection___remove_
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:189 */
+  /* ../lib/standard/collection/abstract_collection.nit:189 */
   while(1) {
     REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
     if (UNTAG_Bool(REGB0)) {
@@ -927,7 +927,7 @@ void standard___collection___abstract_collection___SimpleCollection___add(val_t
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:195 */
+  /* ../lib/standard/collection/abstract_collection.nit:195 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 195);
   stack_frame_head = fra.me.prev;
   return;
@@ -954,7 +954,7 @@ void standard___collection___abstract_collection___SimpleCollection___add_all(va
     struct {struct stack_frame_t me;} fra;
     fun_t CREG[1];
     val_t tmp;
-    /* ./../lib/standard//collection//abstract_collection.nit:200 */
+    /* ../lib/standard/collection/abstract_collection.nit:200 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_standard___collection___abstract_collection;
     fra.me.line = 0;
@@ -989,40 +989,40 @@ val_t standard___collection___abstract_collection___Set___has_only(val_t p0, val
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:217 */
+  /* ../lib/standard/collection/abstract_collection.nit:217 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//abstract_collection.nit:218 */
+  /* ../lib/standard/collection/abstract_collection.nit:218 */
   REGB1 = TAG_Int(1);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./../lib/standard//collection//abstract_collection.nit:218 */
+    /* ../lib/standard/collection/abstract_collection.nit:218 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//collection//abstract_collection.nit:219 */
+    /* ../lib/standard/collection/abstract_collection.nit:219 */
     REGB2 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
     goto label1;
   } else {
-    /* ./../lib/standard//collection//abstract_collection.nit:220 */
+    /* ../lib/standard/collection/abstract_collection.nit:220 */
     REGB1 = TAG_Int(0);
     REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
     if (UNTAG_Bool(REGB3)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB1 = TAG_Bool((REGB0)==(REGB1));
-      /* ./../lib/standard//collection//abstract_collection.nit:220 */
+      /* ../lib/standard/collection/abstract_collection.nit:220 */
       REGB3 = REGB1;
     }
     if (UNTAG_Bool(REGB3)) {
-      /* ./../lib/standard//collection//abstract_collection.nit:221 */
+      /* ../lib/standard/collection/abstract_collection.nit:221 */
       REGB3 = TAG_Bool(true);
       REGB2 = REGB3;
       goto label1;
     } else {
-      /* ./../lib/standard//collection//abstract_collection.nit:223 */
+      /* ../lib/standard/collection/abstract_collection.nit:223 */
       REGB3 = TAG_Bool(false);
       REGB2 = REGB3;
       goto label1;
@@ -1048,14 +1048,14 @@ val_t standard___collection___abstract_collection___Set___count(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:230 */
+  /* ../lib/standard/collection/abstract_collection.nit:230 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//collection//abstract_collection.nit:231 */
+    /* ../lib/standard/collection/abstract_collection.nit:231 */
     REGB0 = TAG_Int(1);
     goto label1;
   } else {
-    /* ./../lib/standard//collection//abstract_collection.nit:233 */
+    /* ../lib/standard/collection/abstract_collection.nit:233 */
     REGB1 = TAG_Int(0);
     REGB0 = REGB1;
     goto label1;
@@ -1078,7 +1078,7 @@ void standard___collection___abstract_collection___Set___remove_all(val_t p0, va
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:238 */
+  /* ../lib/standard/collection/abstract_collection.nit:238 */
   CALL_standard___collection___abstract_collection___RemovableCollection___remove(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -1093,7 +1093,7 @@ val_t standard___collection___abstract_collection___MapRead_____bra(val_t p0, va
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:243 */
+  /* ../lib/standard/collection/abstract_collection.nit:243 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 243);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1113,7 +1113,7 @@ val_t standard___collection___abstract_collection___MapRead___has_key(val_t p0,
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:247 */
+  /* ../lib/standard/collection/abstract_collection.nit:247 */
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___keys(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   goto label1;
@@ -1131,7 +1131,7 @@ val_t standard___collection___abstract_collection___MapRead___iterator(val_t p0)
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:249 */
+  /* ../lib/standard/collection/abstract_collection.nit:249 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 249);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1155,23 +1155,23 @@ void standard___collection___abstract_collection___MapRead___iterate(val_t p0, s
   fra.me.closure_funs = CREG;
   fra.me.REG[0] = p0;
   CREG[0] = clos_fun0;
-  /* ./../lib/standard//collection//abstract_collection.nit:256 */
+  /* ../lib/standard/collection/abstract_collection.nit:256 */
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//abstract_collection.nit:257 */
+  /* ../lib/standard/collection/abstract_collection.nit:257 */
   while(1) {
     REGB0 = CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//abstract_collection.nit:258 */
+      /* ../lib/standard/collection/abstract_collection.nit:258 */
       fra.me.REG[1] = CALL_standard___collection___abstract_collection___MapIterator___key(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapIterator___item(fra.me.REG[0])(fra.me.REG[0]);
       ((void (*)(struct stack_frame_t *, val_t, val_t))(CREG[0]))(closctx_param, fra.me.REG[1], fra.me.REG[2]);
       if (closctx_param->has_broke) {
         goto label1;
       }
-      /* ./../lib/standard//collection//abstract_collection.nit:259 */
+      /* ../lib/standard/collection/abstract_collection.nit:259 */
       CALL_standard___collection___abstract_collection___MapIterator___next(fra.me.REG[0])(fra.me.REG[0]);
     } else {
-      /* ./../lib/standard//collection//abstract_collection.nit:257 */
+      /* ../lib/standard/collection/abstract_collection.nit:257 */
       goto label2;
     }
   }
@@ -1190,7 +1190,7 @@ val_t standard___collection___abstract_collection___MapRead___values(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:263 */
+  /* ../lib/standard/collection/abstract_collection.nit:263 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 263);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1205,7 +1205,7 @@ val_t standard___collection___abstract_collection___MapRead___keys(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:268 */
+  /* ../lib/standard/collection/abstract_collection.nit:268 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 268);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1220,7 +1220,7 @@ val_t standard___collection___abstract_collection___MapRead___is_empty(val_t p0)
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:273 */
+  /* ../lib/standard/collection/abstract_collection.nit:273 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 273);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1235,7 +1235,7 @@ val_t standard___collection___abstract_collection___MapRead___length(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:276 */
+  /* ../lib/standard/collection/abstract_collection.nit:276 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 276);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1250,7 +1250,7 @@ void standard___collection___abstract_collection___Map_____braeq(val_t p0, val_t
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:304 */
+  /* ../lib/standard/collection/abstract_collection.nit:304 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 304);
   stack_frame_head = fra.me.prev;
   return;
@@ -1272,20 +1272,20 @@ void standard___collection___abstract_collection___Map___recover_with(val_t p0,
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:311 */
+  /* ../lib/standard/collection/abstract_collection.nit:311 */
   fra.me.REG[1] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./../lib/standard//collection//abstract_collection.nit:312 */
+  /* ../lib/standard/collection/abstract_collection.nit:312 */
   while(1) {
     REGB0 = CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//abstract_collection.nit:313 */
+      /* ../lib/standard/collection/abstract_collection.nit:313 */
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapIterator___key(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapIterator___item(fra.me.REG[1])(fra.me.REG[1]);
       CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]);
-      /* ./../lib/standard//collection//abstract_collection.nit:314 */
+      /* ../lib/standard/collection/abstract_collection.nit:314 */
       CALL_standard___collection___abstract_collection___MapIterator___next(fra.me.REG[1])(fra.me.REG[1]);
     } else {
-      /* ./../lib/standard//collection//abstract_collection.nit:312 */
+      /* ../lib/standard/collection/abstract_collection.nit:312 */
       goto label1;
     }
   }
@@ -1303,7 +1303,7 @@ void standard___collection___abstract_collection___Map___clear(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:318 */
+  /* ../lib/standard/collection/abstract_collection.nit:318 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 318);
   stack_frame_head = fra.me.prev;
   return;
@@ -1318,7 +1318,7 @@ val_t standard___collection___abstract_collection___Map___values(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:321 */
+  /* ../lib/standard/collection/abstract_collection.nit:321 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 321);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1333,7 +1333,7 @@ val_t standard___collection___abstract_collection___Map___keys(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:323 */
+  /* ../lib/standard/collection/abstract_collection.nit:323 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 323);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1348,7 +1348,7 @@ val_t standard___collection___abstract_collection___MapIterator___item(val_t p0)
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:328 */
+  /* ../lib/standard/collection/abstract_collection.nit:328 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 328);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1363,7 +1363,7 @@ val_t standard___collection___abstract_collection___MapIterator___key(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:332 */
+  /* ../lib/standard/collection/abstract_collection.nit:332 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 332);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1378,7 +1378,7 @@ void standard___collection___abstract_collection___MapIterator___next(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:336 */
+  /* ../lib/standard/collection/abstract_collection.nit:336 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 336);
   stack_frame_head = fra.me.prev;
   return;
@@ -1393,7 +1393,7 @@ val_t standard___collection___abstract_collection___MapIterator___is_ok(val_t p0
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:340 */
+  /* ../lib/standard/collection/abstract_collection.nit:340 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 340);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1411,7 +1411,7 @@ val_t standard___collection___abstract_collection___MapKeysIterator___iterator(v
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:350 */
+  /* ../lib/standard/collection/abstract_collection.nit:350 */
   REGB0 = TAG_Bool(ATTR_standard___collection___abstract_collection___MapKeysIterator_____atiterator(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1435,7 +1435,7 @@ void standard___collection___abstract_collection___MapKeysIterator___iterator__e
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:350 */
+  /* ../lib/standard/collection/abstract_collection.nit:350 */
   ATTR_standard___collection___abstract_collection___MapKeysIterator_____atiterator(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1453,7 +1453,7 @@ val_t standard___collection___abstract_collection___MapKeysIterator___is_ok(val_
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:353 */
+  /* ../lib/standard/collection/abstract_collection.nit:353 */
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapKeysIterator___iterator(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -1473,7 +1473,7 @@ void standard___collection___abstract_collection___MapKeysIterator___next(val_t
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:354 */
+  /* ../lib/standard/collection/abstract_collection.nit:354 */
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapKeysIterator___iterator(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___MapIterator___next(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1491,7 +1491,7 @@ val_t standard___collection___abstract_collection___MapKeysIterator___item(val_t
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:355 */
+  /* ../lib/standard/collection/abstract_collection.nit:355 */
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapKeysIterator___iterator(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapIterator___key(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -1533,7 +1533,7 @@ val_t standard___collection___abstract_collection___MapValuesIterator___iterator
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:361 */
+  /* ../lib/standard/collection/abstract_collection.nit:361 */
   REGB0 = TAG_Bool(ATTR_standard___collection___abstract_collection___MapValuesIterator_____atiterator(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1557,7 +1557,7 @@ void standard___collection___abstract_collection___MapValuesIterator___iterator_
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:361 */
+  /* ../lib/standard/collection/abstract_collection.nit:361 */
   ATTR_standard___collection___abstract_collection___MapValuesIterator_____atiterator(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1575,7 +1575,7 @@ val_t standard___collection___abstract_collection___MapValuesIterator___is_ok(va
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:364 */
+  /* ../lib/standard/collection/abstract_collection.nit:364 */
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapValuesIterator___iterator(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -1595,7 +1595,7 @@ void standard___collection___abstract_collection___MapValuesIterator___next(val_
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:365 */
+  /* ../lib/standard/collection/abstract_collection.nit:365 */
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapValuesIterator___iterator(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___MapIterator___next(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1613,7 +1613,7 @@ val_t standard___collection___abstract_collection___MapValuesIterator___item(val
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:366 */
+  /* ../lib/standard/collection/abstract_collection.nit:366 */
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapValuesIterator___iterator(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapIterator___item(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -1655,14 +1655,14 @@ val_t standard___collection___abstract_collection___SequenceRead___first(val_t p
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:377 */
+  /* ../lib/standard/collection/abstract_collection.nit:377 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert %s  failed", "'not_empty'", LOCATE_standard___collection___abstract_collection, 377);
+    nit_abort("Assert '%s' failed", "not_empty", LOCATE_standard___collection___abstract_collection, 377);
   }
-  /* ./../lib/standard//collection//abstract_collection.nit:378 */
+  /* ../lib/standard/collection/abstract_collection.nit:378 */
   REGB0 = TAG_Int(0);
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
   goto label1;
@@ -1680,7 +1680,7 @@ val_t standard___collection___abstract_collection___SequenceRead_____bra(val_t p
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:381 */
+  /* ../lib/standard/collection/abstract_collection.nit:381 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 381);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1699,19 +1699,19 @@ val_t standard___collection___abstract_collection___SequenceRead___last(val_t p0
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:390 */
+  /* ../lib/standard/collection/abstract_collection.nit:390 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert %s  failed", "'not_empty'", LOCATE_standard___collection___abstract_collection, 390);
+    nit_abort("Assert '%s' failed", "not_empty", LOCATE_standard___collection___abstract_collection, 390);
   }
-  /* ./../lib/standard//collection//abstract_collection.nit:391 */
+  /* ../lib/standard/collection/abstract_collection.nit:391 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//abstract_collection.nit:391 */
+  /* ../lib/standard/collection/abstract_collection.nit:391 */
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB1);
   goto label1;
   label1: while(0);
@@ -1735,13 +1735,13 @@ val_t standard___collection___abstract_collection___SequenceRead___index_of(val_
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:399 */
+  /* ../lib/standard/collection/abstract_collection.nit:399 */
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//abstract_collection.nit:400 */
+  /* ../lib/standard/collection/abstract_collection.nit:400 */
   while(1) {
     REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//abstract_collection.nit:401 */
+      /* ../lib/standard/collection/abstract_collection.nit:401 */
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
       REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
       if (UNTAG_Bool(REGB0)) {
@@ -1759,19 +1759,19 @@ val_t standard___collection___abstract_collection___SequenceRead___index_of(val_
         REGB0 = CALL_standard___collection___abstract_collection___IndexedIterator___index(fra.me.REG[0])(fra.me.REG[0]);
         goto label1;
       }
-      /* ./../lib/standard//collection//abstract_collection.nit:402 */
+      /* ../lib/standard/collection/abstract_collection.nit:402 */
       CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
     } else {
-      /* ./../lib/standard//collection//abstract_collection.nit:400 */
+      /* ../lib/standard/collection/abstract_collection.nit:400 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//collection//abstract_collection.nit:404 */
+  /* ../lib/standard/collection/abstract_collection.nit:404 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:236 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB1 = TAG_Int(-UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//abstract_collection.nit:404 */
+  /* ../lib/standard/collection/abstract_collection.nit:404 */
   REGB0 = REGB1;
   goto label1;
   label1: while(0);
@@ -1788,7 +1788,7 @@ val_t standard___collection___abstract_collection___SequenceRead___iterator(val_
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:407 */
+  /* ../lib/standard/collection/abstract_collection.nit:407 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 407);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1808,7 +1808,7 @@ void standard___collection___abstract_collection___Sequence___first__eq(val_t p0
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:419 */
+  /* ../lib/standard/collection/abstract_collection.nit:419 */
   REGB0 = TAG_Int(0);
   CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
@@ -1831,27 +1831,27 @@ void standard___collection___abstract_collection___Sequence___last__eq(val_t p0,
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:425 */
+  /* ../lib/standard/collection/abstract_collection.nit:425 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//abstract_collection.nit:426 */
+  /* ../lib/standard/collection/abstract_collection.nit:426 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//abstract_collection.nit:426 */
+  /* ../lib/standard/collection/abstract_collection.nit:426 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//collection//abstract_collection.nit:427 */
+    /* ../lib/standard/collection/abstract_collection.nit:427 */
     REGB1 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:237 */
+    /* ../lib/standard/kernel.nit:237 */
     REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//abstract_collection.nit:427 */
+    /* ../lib/standard/collection/abstract_collection.nit:427 */
     CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB1, fra.me.REG[1]);
   } else {
-    /* ./../lib/standard//collection//abstract_collection.nit:429 */
+    /* ../lib/standard/collection/abstract_collection.nit:429 */
     REGB1 = TAG_Int(0);
     CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB1, fra.me.REG[1]);
   }
@@ -1872,7 +1872,7 @@ void standard___collection___abstract_collection___Sequence___add(val_t p0, val_
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:434 */
+  /* ../lib/standard/collection/abstract_collection.nit:434 */
   CALL_standard___collection___abstract_collection___Sequence___push(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -1887,7 +1887,7 @@ void standard___collection___abstract_collection___Sequence___push(val_t p0, val
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:436 */
+  /* ../lib/standard/collection/abstract_collection.nit:436 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 436);
   stack_frame_head = fra.me.prev;
   return;
@@ -1914,7 +1914,7 @@ void standard___collection___abstract_collection___Sequence___append(val_t p0, v
     struct {struct stack_frame_t me;} fra;
     fun_t CREG[1];
     val_t tmp;
-    /* ./../lib/standard//collection//abstract_collection.nit:440 */
+    /* ../lib/standard/collection/abstract_collection.nit:440 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_standard___collection___abstract_collection;
     fra.me.line = 0;
@@ -1941,7 +1941,7 @@ val_t standard___collection___abstract_collection___Sequence___pop(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:442 */
+  /* ../lib/standard/collection/abstract_collection.nit:442 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 442);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1956,7 +1956,7 @@ void standard___collection___abstract_collection___Sequence___unshift(val_t p0,
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:445 */
+  /* ../lib/standard/collection/abstract_collection.nit:445 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 445);
   stack_frame_head = fra.me.prev;
   return;
@@ -1971,7 +1971,7 @@ val_t standard___collection___abstract_collection___Sequence___shift(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:448 */
+  /* ../lib/standard/collection/abstract_collection.nit:448 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 448);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1986,7 +1986,7 @@ void standard___collection___abstract_collection___Sequence_____braeq(val_t p0,
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:452 */
+  /* ../lib/standard/collection/abstract_collection.nit:452 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 452);
   stack_frame_head = fra.me.prev;
   return;
@@ -2001,7 +2001,7 @@ void standard___collection___abstract_collection___Sequence___remove_at(val_t p0
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:455 */
+  /* ../lib/standard/collection/abstract_collection.nit:455 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 455);
   stack_frame_head = fra.me.prev;
   return;
@@ -2016,7 +2016,7 @@ val_t standard___collection___abstract_collection___IndexedIterator___index(val_
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:462 */
+  /* ../lib/standard/collection/abstract_collection.nit:462 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 462);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -2031,7 +2031,7 @@ val_t standard___collection___abstract_collection___CoupleMap___couple_at(val_t
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//abstract_collection.nit:469 */
+  /* ../lib/standard/collection/abstract_collection.nit:469 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 469);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -2052,9 +2052,9 @@ val_t standard___collection___abstract_collection___CoupleMap_____bra(val_t p0,
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:475 */
+  /* ../lib/standard/collection/abstract_collection.nit:475 */
   fra.me.REG[1] = CALL_standard___collection___abstract_collection___CoupleMap___couple_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./../lib/standard//collection//abstract_collection.nit:476 */
+  /* ../lib/standard/collection/abstract_collection.nit:476 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2068,10 +2068,10 @@ val_t standard___collection___abstract_collection___CoupleMap_____bra(val_t p0,
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//collection//abstract_collection.nit:477 */
+    /* ../lib/standard/collection/abstract_collection.nit:477 */
     nit_abort("Aborted", NULL, LOCATE_standard___collection___abstract_collection, 477);
   } else {
-    /* ./../lib/standard//collection//abstract_collection.nit:479 */
+    /* ../lib/standard/collection/abstract_collection.nit:479 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___collection___abstract_collection, 479);
@@ -2096,7 +2096,7 @@ val_t standard___collection___abstract_collection___CoupleMapIterator___item(val
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:489 */
+  /* ../lib/standard/collection/abstract_collection.nit:489 */
   REGB0 = TAG_Bool(ATTR_standard___collection___abstract_collection___CoupleMapIterator____iter(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2127,7 +2127,7 @@ val_t standard___collection___abstract_collection___CoupleMapIterator___key(val_
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:493 */
+  /* ../lib/standard/collection/abstract_collection.nit:493 */
   REGB0 = TAG_Bool(ATTR_standard___collection___abstract_collection___CoupleMapIterator____iter(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2158,7 +2158,7 @@ val_t standard___collection___abstract_collection___CoupleMapIterator___is_ok(va
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:495 */
+  /* ../lib/standard/collection/abstract_collection.nit:495 */
   REGB0 = TAG_Bool(ATTR_standard___collection___abstract_collection___CoupleMapIterator____iter(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2184,7 +2184,7 @@ void standard___collection___abstract_collection___CoupleMapIterator___next(val_
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:499 */
+  /* ../lib/standard/collection/abstract_collection.nit:499 */
   REGB0 = TAG_Bool(ATTR_standard___collection___abstract_collection___CoupleMapIterator____iter(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2211,7 +2211,7 @@ void standard___collection___abstract_collection___CoupleMapIterator___init(val_
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:504 */
+  /* ../lib/standard/collection/abstract_collection.nit:504 */
   ATTR_standard___collection___abstract_collection___CoupleMapIterator____iter(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos4] = 1;
@@ -2229,7 +2229,7 @@ val_t standard___collection___abstract_collection___Couple___first(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:512 */
+  /* ../lib/standard/collection/abstract_collection.nit:512 */
   fra.me.REG[0] = ATTR_standard___collection___abstract_collection___Couple____first(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -2248,7 +2248,7 @@ void standard___collection___abstract_collection___Couple___first__eq(val_t p0,
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:512 */
+  /* ../lib/standard/collection/abstract_collection.nit:512 */
   ATTR_standard___collection___abstract_collection___Couple____first(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2265,7 +2265,7 @@ val_t standard___collection___abstract_collection___Couple___second(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//abstract_collection.nit:515 */
+  /* ../lib/standard/collection/abstract_collection.nit:515 */
   fra.me.REG[0] = ATTR_standard___collection___abstract_collection___Couple____second(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -2284,7 +2284,7 @@ void standard___collection___abstract_collection___Couple___second__eq(val_t p0,
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//abstract_collection.nit:515 */
+  /* ../lib/standard/collection/abstract_collection.nit:515 */
   ATTR_standard___collection___abstract_collection___Couple____second(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2307,9 +2307,9 @@ void standard___collection___abstract_collection___Couple___init(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/standard//collection//abstract_collection.nit:521 */
+  /* ../lib/standard/collection/abstract_collection.nit:521 */
   ATTR_standard___collection___abstract_collection___Couple____first(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//abstract_collection.nit:522 */
+  /* ../lib/standard/collection/abstract_collection.nit:522 */
   ATTR_standard___collection___abstract_collection___Couple____second(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos5] = 1;
index eae428c..0355572 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/standard/collection/abstract_collection. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/standard/collection/abstract_collection. */
 #ifndef standard___collection___abstract_collection_sep
 #define standard___collection___abstract_collection_sep
 #include "standard___kernel._sep.h"
index 403abfa..f9f92e0 100644 (file)
@@ -13,7 +13,7 @@ val_t standard___collection___array___AbstractArrayRead___length(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -38,7 +38,7 @@ val_t standard___collection___array___AbstractArrayRead___is_empty(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:26 */
+  /* ../lib/standard/collection/array.nit:26 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -49,9 +49,9 @@ val_t standard___collection___array___AbstractArrayRead___is_empty(val_t p0){
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./../lib/standard//collection//array.nit:26 */
+    /* ../lib/standard/collection/array.nit:26 */
     REGB2 = REGB1;
   }
   goto label1;
@@ -78,27 +78,27 @@ val_t standard___collection___array___AbstractArrayRead___has(val_t p0, val_t p1
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:30 */
+  /* ../lib/standard/collection/array.nit:30 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:32 */
+  /* ../lib/standard/collection/array.nit:32 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:32 */
+    /* ../lib/standard/collection/array.nit:32 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:33 */
+      /* ../lib/standard/collection/array.nit:33 */
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
       REGB2 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
       if (UNTAG_Bool(REGB2)) {
@@ -116,19 +116,19 @@ val_t standard___collection___array___AbstractArrayRead___has(val_t p0, val_t p1
         REGB2 = TAG_Bool(true);
         goto label1;
       }
-      /* ./../lib/standard//collection//array.nit:34 */
+      /* ../lib/standard/collection/array.nit:34 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:34 */
+      /* ../lib/standard/collection/array.nit:34 */
       REGB0 = REGB3;
     } else {
-      /* ./../lib/standard//collection//array.nit:32 */
+      /* ../lib/standard/collection/array.nit:32 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//collection//array.nit:36 */
+  /* ../lib/standard/collection/array.nit:36 */
   REGB0 = TAG_Bool(false);
   REGB2 = REGB0;
   goto label1;
@@ -155,27 +155,27 @@ val_t standard___collection___array___AbstractArrayRead___has_only(val_t p0, val
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:41 */
+  /* ../lib/standard/collection/array.nit:41 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:43 */
+  /* ../lib/standard/collection/array.nit:43 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:43 */
+    /* ../lib/standard/collection/array.nit:43 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:44 */
+      /* ../lib/standard/collection/array.nit:44 */
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
       REGB2 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
       if (UNTAG_Bool(REGB2)) {
@@ -194,19 +194,19 @@ val_t standard___collection___array___AbstractArrayRead___has_only(val_t p0, val
         REGB2 = TAG_Bool(false);
         goto label1;
       }
-      /* ./../lib/standard//collection//array.nit:45 */
+      /* ../lib/standard/collection/array.nit:45 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:45 */
+      /* ../lib/standard/collection/array.nit:45 */
       REGB0 = REGB3;
     } else {
-      /* ./../lib/standard//collection//array.nit:43 */
+      /* ../lib/standard/collection/array.nit:43 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//collection//array.nit:47 */
+  /* ../lib/standard/collection/array.nit:47 */
   REGB0 = TAG_Bool(true);
   REGB2 = REGB0;
   goto label1;
@@ -234,29 +234,29 @@ val_t standard___collection___array___AbstractArrayRead___count(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:52 */
+  /* ../lib/standard/collection/array.nit:52 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:53 */
+  /* ../lib/standard/collection/array.nit:53 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:55 */
+  /* ../lib/standard/collection/array.nit:55 */
   while(1) {
     REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:55 */
+    /* ../lib/standard/collection/array.nit:55 */
     if (UNTAG_Bool(REGB3)) {
-      /* ./../lib/standard//collection//array.nit:56 */
+      /* ../lib/standard/collection/array.nit:56 */
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB1);
       REGB3 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
       if (UNTAG_Bool(REGB3)) {
@@ -272,24 +272,24 @@ val_t standard___collection___array___AbstractArrayRead___count(val_t p0, val_t
       }
       if (UNTAG_Bool(REGB3)) {
         REGB3 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-        /* ./../lib/standard//collection//array.nit:56 */
+        /* ../lib/standard/collection/array.nit:56 */
         REGB0 = REGB3;
       }
-      /* ./../lib/standard//collection//array.nit:57 */
+      /* ../lib/standard/collection/array.nit:57 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:57 */
+      /* ../lib/standard/collection/array.nit:57 */
       REGB1 = REGB3;
     } else {
-      /* ./../lib/standard//collection//array.nit:55 */
+      /* ../lib/standard/collection/array.nit:55 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//collection//array.nit:59 */
+  /* ../lib/standard/collection/array.nit:59 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -310,7 +310,7 @@ val_t standard___collection___array___AbstractArrayRead___index_of(val_t p0, val
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:62 */
+  /* ../lib/standard/collection/array.nit:62 */
   REGB0 = TAG_Int(0);
   REGB0 = CALL_standard___collection___array___AbstractArrayRead___index_of_from(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
   goto label1;
@@ -334,18 +334,18 @@ val_t standard___collection___array___AbstractArrayRead___last_index_of(val_t p0
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:66 */
+  /* ../lib/standard/collection/array.nit:66 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:66 */
+  /* ../lib/standard/collection/array.nit:66 */
   REGB1 = CALL_standard___collection___array___AbstractArrayRead___last_index_of_from(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB1);
   goto label1;
   label1: while(0);
@@ -372,25 +372,25 @@ val_t standard___collection___array___AbstractArrayRead___index_of_from(val_t p0
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   REGB0 = p2;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:74 */
+  /* ../lib/standard/collection/array.nit:74 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:74 */
+    /* ../lib/standard/collection/array.nit:74 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:75 */
+      /* ../lib/standard/collection/array.nit:75 */
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
       REGB2 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
       if (UNTAG_Bool(REGB2)) {
@@ -405,27 +405,27 @@ val_t standard___collection___array___AbstractArrayRead___index_of_from(val_t p0
         }
       }
       if (UNTAG_Bool(REGB2)) {
-        /* ./../lib/standard//collection//array.nit:76 */
+        /* ../lib/standard/collection/array.nit:76 */
         REGB2 = REGB0;
         goto label1;
       }
-      /* ./../lib/standard//collection//array.nit:78 */
+      /* ../lib/standard/collection/array.nit:78 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:78 */
+      /* ../lib/standard/collection/array.nit:78 */
       REGB0 = REGB3;
     } else {
-      /* ./../lib/standard//collection//array.nit:74 */
+      /* ../lib/standard/collection/array.nit:74 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//collection//array.nit:80 */
+  /* ../lib/standard/collection/array.nit:80 */
   REGB0 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:236 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB0 = TAG_Int(-UNTAG_Int(REGB0));
-  /* ./../lib/standard//collection//array.nit:80 */
+  /* ../lib/standard/collection/array.nit:80 */
   REGB2 = REGB0;
   goto label1;
   label1: while(0);
@@ -451,7 +451,7 @@ val_t standard___collection___array___AbstractArrayRead___last_index_of_from(val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   REGB0 = p2;
-  /* ./../lib/standard//collection//array.nit:88 */
+  /* ../lib/standard/collection/array.nit:88 */
   while(1) {
     REGB1 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -459,11 +459,11 @@ val_t standard___collection___array___AbstractArrayRead___last_index_of_from(val
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:88 */
+    /* ../lib/standard/collection/array.nit:88 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:89 */
+      /* ../lib/standard/collection/array.nit:89 */
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
       REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
       if (UNTAG_Bool(REGB1)) {
@@ -478,28 +478,28 @@ val_t standard___collection___array___AbstractArrayRead___last_index_of_from(val
         }
       }
       if (UNTAG_Bool(REGB1)) {
-        /* ./../lib/standard//collection//array.nit:90 */
+        /* ../lib/standard/collection/array.nit:90 */
         REGB1 = REGB0;
         goto label1;
       } else {
-        /* ./../lib/standard//collection//array.nit:92 */
+        /* ../lib/standard/collection/array.nit:92 */
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:237 */
+        /* ../lib/standard/kernel.nit:237 */
         REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
-        /* ./../lib/standard//collection//array.nit:92 */
+        /* ../lib/standard/collection/array.nit:92 */
         REGB0 = REGB2;
       }
     } else {
-      /* ./../lib/standard//collection//array.nit:88 */
+      /* ../lib/standard/collection/array.nit:88 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//collection//array.nit:95 */
+  /* ../lib/standard/collection/array.nit:95 */
   REGB0 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:236 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB0 = TAG_Int(-UNTAG_Int(REGB0));
-  /* ./../lib/standard//collection//array.nit:95 */
+  /* ../lib/standard/collection/array.nit:95 */
   REGB1 = REGB0;
   goto label1;
   label1: while(0);
@@ -523,16 +523,16 @@ val_t standard___collection___array___AbstractArrayRead___reversed(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:103 */
+  /* ../lib/standard/collection/array.nit:103 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 103);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:104 */
+  /* ../lib/standard/collection/array.nit:104 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  /* ./../lib/standard//collection//array.nit:105 */
+  /* ../lib/standard/collection/array.nit:105 */
   while(1) {
     REGB1 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -540,26 +540,26 @@ val_t standard___collection___array___AbstractArrayRead___reversed(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:105 */
+    /* ../lib/standard/collection/array.nit:105 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:106 */
+      /* ../lib/standard/collection/array.nit:106 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:106 */
+      /* ../lib/standard/collection/array.nit:106 */
       REGB0 = REGB1;
-      /* ./../lib/standard//collection//array.nit:107 */
+      /* ../lib/standard/collection/array.nit:107 */
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
     } else {
-      /* ./../lib/standard//collection//array.nit:105 */
+      /* ../lib/standard/collection/array.nit:105 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//collection//array.nit:109 */
+  /* ../lib/standard/collection/array.nit:109 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -588,7 +588,7 @@ void standard___collection___array___AbstractArrayRead___copy_to(val_t p0, val_t
   REGB1 = p2;
   fra.me.REG[1] = p3;
   REGB2 = p4;
-  /* ./../lib/standard//collection//array.nit:122 */
+  /* ../lib/standard/collection/array.nit:122 */
   while(1) {
     REGB3 = TAG_Int(0);
     REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
@@ -596,24 +596,24 @@ void standard___collection___array___AbstractArrayRead___copy_to(val_t p0, val_t
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB3));
-    /* ./../lib/standard//collection//array.nit:122 */
+    /* ../lib/standard/collection/array.nit:122 */
     if (UNTAG_Bool(REGB3)) {
-      /* ./../lib/standard//collection//array.nit:123 */
+      /* ../lib/standard/collection/array.nit:123 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB3 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:123 */
+      /* ../lib/standard/collection/array.nit:123 */
       REGB1 = REGB3;
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1));
       REGB4 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:124 */
+      /* ../lib/standard/collection/array.nit:124 */
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB4);
       CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB3, fra.me.REG[2]);
     } else {
-      /* ./../lib/standard//collection//array.nit:122 */
+      /* ../lib/standard/collection/array.nit:122 */
       goto label1;
     }
   }
@@ -638,29 +638,29 @@ void standard___collection___array___AbstractArrayRead___output(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:130 */
+  /* ../lib/standard/collection/array.nit:130 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:132 */
+  /* ../lib/standard/collection/array.nit:132 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:132 */
+    /* ../lib/standard/collection/array.nit:132 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:133 */
+      /* ../lib/standard/collection/array.nit:133 */
       fra.me.REG[1] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
-      /* ./../lib/standard//collection//array.nit:134 */
+      /* ../lib/standard/collection/array.nit:134 */
       REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -681,14 +681,14 @@ void standard___collection___array___AbstractArrayRead___output(val_t p0){
         }
         CALL_standard___kernel___Object___output(fra.me.REG[1])(fra.me.REG[1]);
       }
-      /* ./../lib/standard//collection//array.nit:135 */
+      /* ../lib/standard/collection/array.nit:135 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:135 */
+      /* ../lib/standard/collection/array.nit:135 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:132 */
+      /* ../lib/standard/collection/array.nit:132 */
       goto label1;
     }
   }
@@ -708,7 +708,7 @@ val_t standard___collection___array___AbstractArrayRead___iterator(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:139 */
+  /* ../lib/standard/collection/array.nit:139 */
   fra.me.REG[0] = NEW_ArrayIterator_standard___collection___array___ArrayIterator___init(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -736,7 +736,7 @@ val_t standard___collection___array___AbstractArrayRead_____eqeq(val_t p0, val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:144 */
+  /* ../lib/standard/collection/array.nit:144 */
   REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_standard___collection___array___AbstractArray, ID_standard___collection___array___AbstractArray)) /*cast AbstractArray[E]*/;
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
@@ -749,32 +749,32 @@ val_t standard___collection___array___AbstractArrayRead_____eqeq(val_t p0, val_t
     REGB0 = TAG_Bool(false);
     goto label1;
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:146 */
+  /* ../lib/standard/collection/array.nit:146 */
   REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 146);
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:146 */
+  /* ../lib/standard/collection/array.nit:146 */
   REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
   if (UNTAG_Bool(REGB3)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB2 = TAG_Bool((REGB2)==(REGB1));
-    /* ./../lib/standard//collection//array.nit:146 */
+    /* ../lib/standard/collection/array.nit:146 */
     REGB3 = REGB2;
   }
   REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
@@ -783,20 +783,20 @@ val_t standard___collection___array___AbstractArrayRead_____eqeq(val_t p0, val_t
     REGB0 = REGB3;
     goto label1;
   }
-  /* ./../lib/standard//collection//array.nit:147 */
+  /* ../lib/standard/collection/array.nit:147 */
   REGB3 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:148 */
+  /* ../lib/standard/collection/array.nit:148 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:148 */
+    /* ../lib/standard/collection/array.nit:148 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:149 */
+      /* ../lib/standard/collection/array.nit:149 */
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB3);
       REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
@@ -821,19 +821,19 @@ val_t standard___collection___array___AbstractArrayRead_____eqeq(val_t p0, val_t
         REGB0 = REGB2;
         goto label1;
       }
-      /* ./../lib/standard//collection//array.nit:150 */
+      /* ../lib/standard/collection/array.nit:150 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:150 */
+      /* ../lib/standard/collection/array.nit:150 */
       REGB3 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:148 */
+      /* ../lib/standard/collection/array.nit:148 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//collection//array.nit:152 */
+  /* ../lib/standard/collection/array.nit:152 */
   REGB3 = TAG_Bool(true);
   REGB0 = REGB3;
   goto label1;
@@ -867,7 +867,7 @@ void standard___collection___array___AbstractArray___enlarge(val_t p0, val_t p1)
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//array.nit:161 */
+  /* ../lib/standard/collection/array.nit:161 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___array, 161);
   stack_frame_head = fra.me.prev;
   return;
@@ -886,7 +886,7 @@ void standard___collection___array___AbstractArray___push(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:166 */
+  /* ../lib/standard/collection/array.nit:166 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -906,23 +906,23 @@ val_t standard___collection___array___AbstractArray___pop(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:170 */
+  /* ../lib/standard/collection/array.nit:170 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert %s  failed", "'not_empty'", LOCATE_standard___collection___array, 170);
+    nit_abort("Assert '%s' failed", "not_empty", LOCATE_standard___collection___array, 170);
   }
-  /* ./../lib/standard//collection//array.nit:171 */
+  /* ../lib/standard/collection/array.nit:171 */
   fra.me.REG[1] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:172 */
+  /* ../lib/standard/collection/array.nit:172 */
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:172 */
+  /* ../lib/standard/collection/array.nit:172 */
   ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB1;
-  /* ./../lib/standard//collection//array.nit:173 */
+  /* ../lib/standard/collection/array.nit:173 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -945,61 +945,61 @@ val_t standard___collection___array___AbstractArray___shift(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:178 */
+  /* ../lib/standard/collection/array.nit:178 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert %s  failed", "'not_empty'", LOCATE_standard___collection___array, 178);
+    nit_abort("Assert '%s' failed", "not_empty", LOCATE_standard___collection___array, 178);
   }
-  /* ./../lib/standard//collection//array.nit:179 */
+  /* ../lib/standard/collection/array.nit:179 */
   fra.me.REG[1] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:180 */
+  /* ../lib/standard/collection/array.nit:180 */
   REGB0 = TAG_Int(1);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:182 */
+  /* ../lib/standard/collection/array.nit:182 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:182 */
+    /* ../lib/standard/collection/array.nit:182 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:183 */
+      /* ../lib/standard/collection/array.nit:183 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:183 */
+      /* ../lib/standard/collection/array.nit:183 */
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
       CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB2, fra.me.REG[2]);
-      /* ./../lib/standard//collection//array.nit:184 */
+      /* ../lib/standard/collection/array.nit:184 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:184 */
+      /* ../lib/standard/collection/array.nit:184 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:182 */
+      /* ../lib/standard/collection/array.nit:182 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//collection//array.nit:186 */
+  /* ../lib/standard/collection/array.nit:186 */
   REGB0 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
-  /* ./../lib/standard//collection//array.nit:186 */
+  /* ../lib/standard/collection/array.nit:186 */
   ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
-  /* ./../lib/standard//collection//array.nit:187 */
+  /* ../lib/standard/collection/array.nit:187 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -1023,18 +1023,18 @@ void standard___collection___array___AbstractArray___unshift(val_t p0, val_t p1)
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:192 */
+  /* ../lib/standard/collection/array.nit:192 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:193 */
+  /* ../lib/standard/collection/array.nit:193 */
   while(1) {
     REGB0 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
@@ -1042,30 +1042,30 @@ void standard___collection___array___AbstractArray___unshift(val_t p0, val_t p1)
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
-    /* ./../lib/standard//collection//array.nit:193 */
+    /* ../lib/standard/collection/array.nit:193 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//array.nit:194 */
+      /* ../lib/standard/collection/array.nit:194 */
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
-      /* ./../lib/standard//collection//array.nit:194 */
+      /* ../lib/standard/collection/array.nit:194 */
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB1);
       CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[2]);
-      /* ./../lib/standard//collection//array.nit:195 */
+      /* ../lib/standard/collection/array.nit:195 */
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
-      /* ./../lib/standard//collection//array.nit:195 */
+      /* ../lib/standard/collection/array.nit:195 */
       REGB1 = REGB0;
     } else {
-      /* ./../lib/standard//collection//array.nit:193 */
+      /* ../lib/standard/collection/array.nit:193 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//collection//array.nit:197 */
+  /* ../lib/standard/collection/array.nit:197 */
   REGB1 = TAG_Int(0);
   CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB1, fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
@@ -1089,35 +1089,35 @@ void standard___collection___array___AbstractArray___insert(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   REGB0 = p2;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:207 */
+  /* ../lib/standard/collection/array.nit:207 */
   REGB2 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-  /* ./../lib/standard//collection//array.nit:207 */
+  /* ../lib/standard/collection/array.nit:207 */
   CALL_standard___collection___array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB2);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB2 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB0));
-  /* ./../lib/standard//collection//array.nit:208 */
+  /* ../lib/standard/collection/array.nit:208 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:208 */
+  /* ../lib/standard/collection/array.nit:208 */
   CALL_standard___collection___array___AbstractArrayRead___copy_to(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB2, fra.me.REG[0], REGB1);
-  /* ./../lib/standard//collection//array.nit:209 */
+  /* ../lib/standard/collection/array.nit:209 */
   CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -1137,14 +1137,14 @@ void standard___collection___array___AbstractArray___add(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:212 */
+  /* ../lib/standard/collection/array.nit:212 */
   CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -1162,7 +1162,7 @@ void standard___collection___array___AbstractArray___clear(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:214 */
+  /* ../lib/standard/collection/array.nit:214 */
   REGB0 = TAG_Int(0);
   ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -1183,7 +1183,7 @@ void standard___collection___array___AbstractArray___remove(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:216 */
+  /* ../lib/standard/collection/array.nit:216 */
   REGB0 = CALL_standard___collection___abstract_collection___SequenceRead___index_of(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[0])(fra.me.REG[0], REGB0);
   stack_frame_head = fra.me.prev;
@@ -1206,9 +1206,9 @@ void standard___collection___array___AbstractArray___remove_all(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:220 */
+  /* ../lib/standard/collection/array.nit:220 */
   REGB0 = CALL_standard___collection___abstract_collection___SequenceRead___index_of(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:221 */
+  /* ../lib/standard/collection/array.nit:221 */
   while(1) {
     REGB1 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -1216,17 +1216,17 @@ void standard___collection___array___AbstractArray___remove_all(val_t p0, val_t
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:221 */
+    /* ../lib/standard/collection/array.nit:221 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:222 */
+      /* ../lib/standard/collection/array.nit:222 */
       CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[0])(fra.me.REG[0], REGB0);
-      /* ./../lib/standard//collection//array.nit:223 */
+      /* ../lib/standard/collection/array.nit:223 */
       REGB1 = CALL_standard___collection___array___AbstractArrayRead___index_of_from(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:221 */
+      /* ../lib/standard/collection/array.nit:221 */
       goto label1;
     }
   }
@@ -1252,76 +1252,76 @@ void standard___collection___array___AbstractArray___remove_at(val_t p0, val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:230 */
+  /* ../lib/standard/collection/array.nit:230 */
   REGB2 = TAG_Int(0);
   REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB3)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
-  /* ./../lib/standard//collection//array.nit:230 */
+  /* ../lib/standard/collection/array.nit:230 */
   if (UNTAG_Bool(REGB2)) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
   } else {
-    /* ./../lib/standard//collection//array.nit:230 */
+    /* ../lib/standard/collection/array.nit:230 */
     REGB3 = TAG_Bool(false);
     REGB2 = REGB3;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//collection//array.nit:231 */
+    /* ../lib/standard/collection/array.nit:231 */
     REGB2 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:232 */
+    /* ../lib/standard/collection/array.nit:232 */
     while(1) {
       REGB0 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:232 */
+      /* ../lib/standard/collection/array.nit:232 */
       if (UNTAG_Bool(REGB0)) {
-        /* ./../lib/standard//collection//array.nit:233 */
+        /* ../lib/standard/collection/array.nit:233 */
         REGB0 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:237 */
+        /* ../lib/standard/kernel.nit:237 */
         REGB0 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB0));
-        /* ./../lib/standard//collection//array.nit:233 */
+        /* ../lib/standard/collection/array.nit:233 */
         fra.me.REG[1] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB2);
         CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
-        /* ./../lib/standard//collection//array.nit:234 */
+        /* ../lib/standard/collection/array.nit:234 */
         REGB0 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
-        /* ./../lib/standard//collection//array.nit:234 */
+        /* ../lib/standard/collection/array.nit:234 */
         REGB2 = REGB0;
       } else {
-        /* ./../lib/standard//collection//array.nit:232 */
+        /* ../lib/standard/collection/array.nit:232 */
         goto label1;
       }
     }
     label1: while(0);
-    /* ./../lib/standard//collection//array.nit:236 */
+    /* ../lib/standard/collection/array.nit:236 */
     REGB2 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:237 */
+    /* ../lib/standard/kernel.nit:237 */
     REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:236 */
+    /* ../lib/standard/collection/array.nit:236 */
     ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB2;
   }
   stack_frame_head = fra.me.prev;
@@ -1344,11 +1344,11 @@ void standard___collection___array___AbstractArray___swap_at(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   REGB0 = p1;
   REGB1 = p2;
-  /* ./../lib/standard//collection//array.nit:247 */
+  /* ../lib/standard/collection/array.nit:247 */
   fra.me.REG[1] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
-  /* ./../lib/standard//collection//array.nit:248 */
+  /* ../lib/standard/collection/array.nit:248 */
   CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB1);
-  /* ./../lib/standard//collection//array.nit:249 */
+  /* ../lib/standard/collection/array.nit:249 */
   CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB1, fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -1374,20 +1374,20 @@ void standard___collection___array___Array___iterate(val_t p0, struct stack_fram
   fra.me.closure_funs = CREG;
   fra.me.REG[0] = p0;
   CREG[0] = clos_fun0;
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1399,30 +1399,30 @@ void standard___collection___array___Array___iterate(val_t p0, struct stack_fram
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)];
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       ((void (*)(struct stack_frame_t *, val_t))(CREG[0]))(closctx_param, fra.me.REG[2]);
       if (closctx_param->has_broke) {
         goto label1;
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label2;
     }
   }
@@ -1447,16 +1447,16 @@ val_t standard___collection___array___Array_____bra(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -1469,26 +1469,26 @@ val_t standard___collection___array___Array_____bra(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
   } else {
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB2 = TAG_Bool(false);
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+    nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
   }
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
   REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
   }
-  /* ./../lib/standard//collection//array.nit:718 */
+  /* ../lib/standard/collection/array.nit:718 */
   fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -1512,16 +1512,16 @@ void standard___collection___array___Array_____braeq(val_t p0, val_t p1, val_t p
   fra.me.REG[0] = p0;
   REGB0 = p1;
   fra.me.REG[1] = p2;
-  /* ./../lib/standard//collection//array.nit:286 */
+  /* ../lib/standard/collection/array.nit:286 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:286 */
+  /* ../lib/standard/collection/array.nit:286 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -1530,25 +1530,25 @@ void standard___collection___array___Array_____braeq(val_t p0, val_t p1, val_t p
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
     REGB2 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
     REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
   } else {
-    /* ./../lib/standard//collection//array.nit:286 */
+    /* ../lib/standard/collection/array.nit:286 */
     REGB1 = TAG_Bool(false);
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
   } else {
-    nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 286);
+    nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 286);
   }
-  /* ./../lib/standard//collection//array.nit:287 */
+  /* ../lib/standard/collection/array.nit:287 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___Array____capacity(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -1560,18 +1560,18 @@ void standard___collection___array___Array_____braeq(val_t p0, val_t p1, val_t p
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:231 */
+  /* ../lib/standard/kernel.nit:231 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB0));
-  /* ./../lib/standard//collection//array.nit:287 */
+  /* ../lib/standard/collection/array.nit:287 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//collection//array.nit:288 */
+    /* ../lib/standard/collection/array.nit:288 */
     REGB2 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:288 */
+    /* ../lib/standard/collection/array.nit:288 */
     CALL_standard___collection___array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB2);
   }
-  /* ./../lib/standard//collection//array.nit:290 */
+  /* ../lib/standard/collection/array.nit:290 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -1583,24 +1583,24 @@ void standard___collection___array___Array_____braeq(val_t p0, val_t p1, val_t p
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:231 */
+  /* ../lib/standard/kernel.nit:231 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB0));
-  /* ./../lib/standard//collection//array.nit:290 */
+  /* ../lib/standard/collection/array.nit:290 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//collection//array.nit:291 */
+    /* ../lib/standard/collection/array.nit:291 */
     REGB2 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:291 */
+    /* ../lib/standard/collection/array.nit:291 */
     ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB2;
   }
-  /* ./../lib/standard//collection//array.nit:293 */
+  /* ../lib/standard/collection/array.nit:293 */
   fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
   REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 293);
   }
-  /* ./../lib/standard//collection//array.nit:719 */
+  /* ../lib/standard/collection/array.nit:719 */
   ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)]=fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1622,14 +1622,14 @@ void standard___collection___array___Array___add(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:298 */
+  /* ../lib/standard/collection/array.nit:298 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 298);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:299 */
+  /* ../lib/standard/collection/array.nit:299 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___Array____capacity(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -1641,30 +1641,30 @@ void standard___collection___array___Array___add(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:231 */
+  /* ../lib/standard/kernel.nit:231 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB1)<=UNTAG_Int(REGB0));
-  /* ./../lib/standard//collection//array.nit:299 */
+  /* ../lib/standard/collection/array.nit:299 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//collection//array.nit:300 */
+    /* ../lib/standard/collection/array.nit:300 */
     REGB1 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:300 */
+    /* ../lib/standard/collection/array.nit:300 */
     CALL_standard___collection___array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB1);
   }
-  /* ./../lib/standard//collection//array.nit:302 */
+  /* ../lib/standard/collection/array.nit:302 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:302 */
+  /* ../lib/standard/collection/array.nit:302 */
   ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB1;
-  /* ./../lib/standard//collection//array.nit:303 */
+  /* ../lib/standard/collection/array.nit:303 */
   fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
   REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 303);
   }
-  /* ./../lib/standard//collection//array.nit:719 */
+  /* ../lib/standard/collection/array.nit:719 */
   ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)]=fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1688,7 +1688,7 @@ void standard___collection___array___Array___enlarge(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//collection//array.nit:308 */
+  /* ../lib/standard/collection/array.nit:308 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___Array____capacity(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -1700,40 +1700,40 @@ void standard___collection___array___Array___enlarge(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:231 */
+  /* ../lib/standard/kernel.nit:231 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:309 */
+  /* ../lib/standard/collection/array.nit:309 */
   if (UNTAG_Bool(REGB2)) {
     goto label1;
   }
-  /* ./../lib/standard//collection//array.nit:310 */
+  /* ../lib/standard/collection/array.nit:310 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:231 */
+    /* ../lib/standard/kernel.nit:231 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<=UNTAG_Int(REGB0));
-    /* ./../lib/standard//collection//array.nit:310 */
+    /* ../lib/standard/collection/array.nit:310 */
     if (UNTAG_Bool(REGB2)) {
       REGB2 = TAG_Int(2);
-      /* ./../lib/standard//kernel.nit:238 */
+      /* ../lib/standard/kernel.nit:238 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)*UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:310 */
+      /* ../lib/standard/collection/array.nit:310 */
       REGB3 = TAG_Int(2);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:310 */
+      /* ../lib/standard/collection/array.nit:310 */
       REGB1 = REGB3;
     } else {
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//collection//array.nit:712 */
+  /* ../lib/standard/collection/array.nit:712 */
   fra.me.REG[1] = NEW_NativeArray(UNTAG_Int(REGB1), sizeof(val_t));
-  /* ./../lib/standard//collection//array.nit:312 */
+  /* ../lib/standard/collection/array.nit:312 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___Array____capacity(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1746,9 +1746,9 @@ void standard___collection___array___Array___enlarge(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB3 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB3));
-  /* ./../lib/standard//collection//array.nit:312 */
+  /* ../lib/standard/collection/array.nit:312 */
   if (UNTAG_Bool(REGB3)) {
     fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
     REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
@@ -1761,12 +1761,12 @@ void standard___collection___array___Array___enlarge(val_t p0, val_t p1){
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 312);
     }
-    /* ./../lib/standard//collection//array.nit:720 */
+    /* ../lib/standard/collection/array.nit:720 */
     (void)memcpy(((Nit_NativeArray )fra.me.REG[1])->val, ((Nit_NativeArray)fra.me.REG[2])->val, UNTAG_Int(REGB3)*sizeof(val_t));
   }
-  /* ./../lib/standard//collection//array.nit:313 */
+  /* ../lib/standard/collection/array.nit:313 */
   ATTR_standard___collection___array___Array____items(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//array.nit:314 */
+  /* ../lib/standard/collection/array.nit:314 */
   ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]) = REGB1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -1787,10 +1787,10 @@ void standard___collection___array___Array___init(val_t p0, int* init_table){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:320 */
+  /* ../lib/standard/collection/array.nit:320 */
   REGB0 = TAG_Int(0);
   ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]) = REGB0;
-  /* ./../lib/standard//collection//array.nit:321 */
+  /* ../lib/standard/collection/array.nit:321 */
   REGB0 = TAG_Int(0);
   ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -1815,17 +1815,17 @@ void standard___collection___array___Array___with_items(val_t p0, val_t p1, int*
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:324 */
+  /* ../lib/standard/collection/array.nit:324 */
   fra.me.REG[2] = fra.me.REG[0];
   REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[E]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___collection___array, 324);
   }
-  /* ./../lib/standard//collection//array.nit:327 */
+  /* ../lib/standard/collection/array.nit:327 */
   fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
   ATTR_standard___collection___array___Array____items(fra.me.REG[2]) = fra.me.REG[0];
-  /* ./../lib/standard//collection//array.nit:328 */
+  /* ../lib/standard/collection/array.nit:328 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___Array____capacity(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1833,14 +1833,14 @@ void standard___collection___array___Array___with_items(val_t p0, val_t p1, int*
   }
   REGB0 = ATTR_standard___collection___array___Array____capacity(fra.me.REG[1]);
   ATTR_standard___collection___array___Array____capacity(fra.me.REG[2]) = REGB0;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:329 */
+  /* ../lib/standard/collection/array.nit:329 */
   ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]) = REGB0;
   stack_frame_head = fra.me.prev;
   init_table[itpos2] = 1;
@@ -1865,27 +1865,27 @@ void standard___collection___array___Array___with_capacity(val_t p0, val_t p1, i
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//collection//array.nit:335 */
+  /* ../lib/standard/collection/array.nit:335 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:335 */
+  /* ../lib/standard/collection/array.nit:335 */
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Assert %s  failed", "'positive'", LOCATE_standard___collection___array, 335);
+    nit_abort("Assert '%s' failed", "positive", LOCATE_standard___collection___array, 335);
   }
-  /* ./../lib/standard//collection//array.nit:712 */
+  /* ../lib/standard/collection/array.nit:712 */
   fra.me.REG[1] = NEW_NativeArray(UNTAG_Int(REGB0), sizeof(val_t));
-  /* ./../lib/standard//collection//array.nit:336 */
+  /* ../lib/standard/collection/array.nit:336 */
   ATTR_standard___collection___array___Array____items(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//array.nit:337 */
+  /* ../lib/standard/collection/array.nit:337 */
   ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]) = REGB0;
-  /* ./../lib/standard//collection//array.nit:338 */
+  /* ../lib/standard/collection/array.nit:338 */
   REGB0 = TAG_Int(0);
   ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -1913,51 +1913,51 @@ void standard___collection___array___Array___filled_with(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   REGB0 = p2;
-  /* ./../lib/standard//collection//array.nit:344 */
+  /* ../lib/standard/collection/array.nit:344 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:344 */
+  /* ../lib/standard/collection/array.nit:344 */
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Assert %s  failed", "'positive'", LOCATE_standard___collection___array, 344);
+    nit_abort("Assert '%s' failed", "positive", LOCATE_standard___collection___array, 344);
   }
-  /* ./../lib/standard//collection//array.nit:712 */
+  /* ../lib/standard/collection/array.nit:712 */
   fra.me.REG[2] = NEW_NativeArray(UNTAG_Int(REGB0), sizeof(val_t));
-  /* ./../lib/standard//collection//array.nit:345 */
+  /* ../lib/standard/collection/array.nit:345 */
   ATTR_standard___collection___array___Array____items(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./../lib/standard//collection//array.nit:346 */
+  /* ../lib/standard/collection/array.nit:346 */
   ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]) = REGB0;
-  /* ./../lib/standard//collection//array.nit:347 */
+  /* ../lib/standard/collection/array.nit:347 */
   ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
-  /* ./../lib/standard//collection//array.nit:348 */
+  /* ../lib/standard/collection/array.nit:348 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:349 */
+  /* ../lib/standard/collection/array.nit:349 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-    /* ./../lib/standard//collection//array.nit:349 */
+    /* ../lib/standard/collection/array.nit:349 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:350 */
+      /* ../lib/standard/collection/array.nit:350 */
       CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB1, fra.me.REG[1]);
-      /* ./../lib/standard//collection//array.nit:351 */
+      /* ../lib/standard/collection/array.nit:351 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:351 */
+      /* ../lib/standard/collection/array.nit:351 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:349 */
+      /* ../lib/standard/collection/array.nit:349 */
       goto label1;
     }
   }
@@ -1986,25 +1986,25 @@ void standard___collection___array___Array___with_native(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   REGB0 = p2;
-  /* ./../lib/standard//collection//array.nit:358 */
+  /* ../lib/standard/collection/array.nit:358 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:358 */
+  /* ../lib/standard/collection/array.nit:358 */
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Assert %s  failed", "'positive'", LOCATE_standard___collection___array, 358);
+    nit_abort("Assert '%s' failed", "positive", LOCATE_standard___collection___array, 358);
   }
-  /* ./../lib/standard//collection//array.nit:359 */
+  /* ../lib/standard/collection/array.nit:359 */
   ATTR_standard___collection___array___Array____items(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//array.nit:360 */
+  /* ../lib/standard/collection/array.nit:360 */
   ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]) = REGB0;
-  /* ./../lib/standard//collection//array.nit:361 */
+  /* ../lib/standard/collection/array.nit:361 */
   ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   init_table[itpos5] = 1;
@@ -2024,9 +2024,9 @@ val_t standard___collection___array___Array___intern_items(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:367 */
+  /* ../lib/standard/collection/array.nit:367 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./../lib/standard//collection//array.nit:369 */
+  /* ../lib/standard/collection/array.nit:369 */
   fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2057,18 +2057,18 @@ void standard___collection___array___Array___sort(val_t p0, struct stack_frame_t
   fra.me.closure_funs = CREG;
   fra.me.REG[0] = p0;
   CREG[0] = clos_fun0;
-  /* ./../lib/standard//collection//array.nit:378 */
+  /* ../lib/standard/collection/array.nit:378 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:378 */
+  /* ../lib/standard/collection/array.nit:378 */
   REGB2 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
   CALL_standard___collection___array___Array___sub_sort(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB2, (&(fra.me)), ((fun_t)OC_standard___collection___array___Array___sort_1));
   switch ((&(fra.me))->has_broke) {
@@ -2083,7 +2083,7 @@ void standard___collection___array___Array___sort(val_t p0, struct stack_frame_t
     struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
     val_t REGB0;
     val_t tmp;
-    /* ./../lib/standard//collection//array.nit:378 */
+    /* ../lib/standard/collection/array.nit:378 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_standard___collection___array;
     fra.me.line = 378;
@@ -2138,39 +2138,39 @@ void standard___collection___array___Array___sub_sort(val_t p0, val_t p1, val_t
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:385 */
+  /* ../lib/standard/collection/array.nit:385 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//collection//array.nit:386 */
+    /* ../lib/standard/collection/array.nit:386 */
     goto label1;
   } else {
-    /* ./../lib/standard//collection//array.nit:387 */
+    /* ../lib/standard/collection/array.nit:387 */
     REGB2 = TAG_Int(7);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
     REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:387 */
+    /* ../lib/standard/collection/array.nit:387 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       fra.me.REG[1] = fra.me.REG[0];
       REGB2 = REGB0;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB3 = TAG_Int(0);
       REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB4)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB3)) {
         REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
@@ -2183,67 +2183,67 @@ void standard___collection___array___Array___sub_sort(val_t p0, val_t p1, val_t
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB4 = TAG_Bool(false);
         REGB3 = REGB4;
       }
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
       REGB3 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB2)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label2;
       label2: while(0);
-      /* ./../lib/standard//collection//array.nit:389 */
+      /* ../lib/standard/collection/array.nit:389 */
       REGB2 = REGB0;
-      /* ./../lib/standard//collection//array.nit:390 */
+      /* ../lib/standard/collection/array.nit:390 */
       REGB3 = REGB1;
-      /* ./../lib/standard//collection//array.nit:391 */
+      /* ../lib/standard/collection/array.nit:391 */
       while(1) {
         REGB4 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB4)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:234 */
+        /* ../lib/standard/kernel.nit:234 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
-        /* ./../lib/standard//collection//array.nit:391 */
+        /* ../lib/standard/collection/array.nit:391 */
         if (UNTAG_Bool(REGB4)) {
-          /* ./../lib/standard//collection//array.nit:392 */
+          /* ../lib/standard/collection/array.nit:392 */
           while(1) {
             REGB4 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
             if (UNTAG_Bool(REGB4)) {
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:231 */
+            /* ../lib/standard/kernel.nit:231 */
             REGB4 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB1));
-            /* ./../lib/standard//collection//array.nit:392 */
+            /* ../lib/standard/collection/array.nit:392 */
             if (UNTAG_Bool(REGB4)) {
-              /* ./../lib/standard//collection//array.nit:278 */
+              /* ../lib/standard/collection/array.nit:278 */
               fra.me.REG[2] = fra.me.REG[0];
               REGB4 = REGB2;
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB5 = TAG_Int(0);
               REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
               if (UNTAG_Bool(REGB6)) {
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:233 */
+              /* ../lib/standard/kernel.nit:233 */
               REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               if (UNTAG_Bool(REGB5)) {
                REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
                if (UNTAG_Bool(REGB5)) {
@@ -2256,29 +2256,29 @@ void standard___collection___array___Array___sub_sort(val_t p0, val_t p1, val_t
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
               } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB6 = TAG_Bool(false);
                REGB5 = REGB6;
               }
               if (UNTAG_Bool(REGB5)) {
               } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
               }
-              /* ./../lib/standard//collection//array.nit:281 */
+              /* ../lib/standard/collection/array.nit:281 */
               fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
               REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
               if (UNTAG_Bool(REGB5)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
               }
-              /* ./../lib/standard//collection//array.nit:718 */
+              /* ../lib/standard/collection/array.nit:718 */
               fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB4)];
-              /* ./../lib/standard//collection//array.nit:281 */
+              /* ../lib/standard/collection/array.nit:281 */
               goto label3;
               label3: while(0);
-              /* ./../lib/standard//collection//array.nit:392 */
+              /* ../lib/standard/collection/array.nit:392 */
               REGB4 = ((val_t (*)(struct stack_frame_t *, val_t, val_t))(CREG[0]))(closctx_param, fra.me.REG[2], fra.me.REG[1]);
               if (closctx_param->has_broke) {
                goto label1;
@@ -2289,48 +2289,48 @@ void standard___collection___array___Array___sub_sort(val_t p0, val_t p1, val_t
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:231 */
+              /* ../lib/standard/kernel.nit:231 */
               REGB5 = TAG_Bool(UNTAG_Int(REGB4)<=UNTAG_Int(REGB5));
             } else {
-              /* ./../lib/standard//collection//array.nit:392 */
+              /* ../lib/standard/collection/array.nit:392 */
               REGB4 = TAG_Bool(false);
               REGB5 = REGB4;
             }
             if (UNTAG_Bool(REGB5)) {
               REGB5 = TAG_Int(1);
-              /* ./../lib/standard//kernel.nit:235 */
+              /* ../lib/standard/kernel.nit:235 */
               REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
-              /* ./../lib/standard//collection//array.nit:392 */
+              /* ../lib/standard/collection/array.nit:392 */
               REGB2 = REGB5;
             } else {
               goto label4;
             }
           }
           label4: while(0);
-          /* ./../lib/standard//collection//array.nit:393 */
+          /* ../lib/standard/collection/array.nit:393 */
           while(1) {
             REGB5 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
             if (UNTAG_Bool(REGB5)) {
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:234 */
+            /* ../lib/standard/kernel.nit:234 */
             REGB5 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
-            /* ./../lib/standard//collection//array.nit:393 */
+            /* ../lib/standard/collection/array.nit:393 */
             if (UNTAG_Bool(REGB5)) {
-              /* ./../lib/standard//collection//array.nit:278 */
+              /* ../lib/standard/collection/array.nit:278 */
               fra.me.REG[2] = fra.me.REG[0];
               REGB5 = REGB3;
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB4 = TAG_Int(0);
               REGB6 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
               if (UNTAG_Bool(REGB6)) {
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:233 */
+              /* ../lib/standard/kernel.nit:233 */
               REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               if (UNTAG_Bool(REGB4)) {
                REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
                if (UNTAG_Bool(REGB4)) {
@@ -2343,29 +2343,29 @@ void standard___collection___array___Array___sub_sort(val_t p0, val_t p1, val_t
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
               } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB6 = TAG_Bool(false);
                REGB4 = REGB6;
               }
               if (UNTAG_Bool(REGB4)) {
               } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
               }
-              /* ./../lib/standard//collection//array.nit:281 */
+              /* ../lib/standard/collection/array.nit:281 */
               fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
               REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
               if (UNTAG_Bool(REGB4)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
               }
-              /* ./../lib/standard//collection//array.nit:718 */
+              /* ../lib/standard/collection/array.nit:718 */
               fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB5)];
-              /* ./../lib/standard//collection//array.nit:281 */
+              /* ../lib/standard/collection/array.nit:281 */
               goto label5;
               label5: while(0);
-              /* ./../lib/standard//collection//array.nit:393 */
+              /* ../lib/standard/collection/array.nit:393 */
               REGB5 = ((val_t (*)(struct stack_frame_t *, val_t, val_t))(CREG[0]))(closctx_param, fra.me.REG[2], fra.me.REG[1]);
               if (closctx_param->has_broke) {
                goto label1;
@@ -2376,18 +2376,18 @@ void standard___collection___array___Array___sub_sort(val_t p0, val_t p1, val_t
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:233 */
+              /* ../lib/standard/kernel.nit:233 */
               REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
             } else {
-              /* ./../lib/standard//collection//array.nit:393 */
+              /* ../lib/standard/collection/array.nit:393 */
               REGB5 = TAG_Bool(false);
               REGB4 = REGB5;
             }
             if (UNTAG_Bool(REGB4)) {
               REGB4 = TAG_Int(1);
-              /* ./../lib/standard//kernel.nit:237 */
+              /* ../lib/standard/kernel.nit:237 */
               REGB4 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB4));
-              /* ./../lib/standard//collection//array.nit:393 */
+              /* ../lib/standard/collection/array.nit:393 */
               REGB3 = REGB4;
             } else {
               goto label6;
@@ -2399,23 +2399,23 @@ void standard___collection___array___Array___sub_sort(val_t p0, val_t p1, val_t
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:234 */
+          /* ../lib/standard/kernel.nit:234 */
           REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
-          /* ./../lib/standard//collection//array.nit:394 */
+          /* ../lib/standard/collection/array.nit:394 */
           if (UNTAG_Bool(REGB4)) {
-            /* ./../lib/standard//collection//array.nit:278 */
+            /* ../lib/standard/collection/array.nit:278 */
             fra.me.REG[2] = fra.me.REG[0];
             REGB4 = REGB2;
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB5 = TAG_Int(0);
             REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
             if (UNTAG_Bool(REGB6)) {
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:233 */
+            /* ../lib/standard/kernel.nit:233 */
             REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             if (UNTAG_Bool(REGB5)) {
               REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
               if (UNTAG_Bool(REGB5)) {
@@ -2428,41 +2428,41 @@ void standard___collection___array___Array___sub_sort(val_t p0, val_t p1, val_t
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:232 */
+              /* ../lib/standard/kernel.nit:232 */
               REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
             } else {
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB6 = TAG_Bool(false);
               REGB5 = REGB6;
             }
             if (UNTAG_Bool(REGB5)) {
             } else {
-              nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+              nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
             }
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
             REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
             if (UNTAG_Bool(REGB5)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB4)];
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             goto label7;
             label7: while(0);
-            /* ./../lib/standard//collection//array.nit:278 */
+            /* ../lib/standard/collection/array.nit:278 */
             fra.me.REG[3] = fra.me.REG[0];
             REGB4 = REGB3;
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB5 = TAG_Int(0);
             REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
             if (UNTAG_Bool(REGB6)) {
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:233 */
+            /* ../lib/standard/kernel.nit:233 */
             REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             if (UNTAG_Bool(REGB5)) {
               REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
               if (UNTAG_Bool(REGB5)) {
@@ -2475,55 +2475,55 @@ void standard___collection___array___Array___sub_sort(val_t p0, val_t p1, val_t
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:232 */
+              /* ../lib/standard/kernel.nit:232 */
               REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
             } else {
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB6 = TAG_Bool(false);
               REGB5 = REGB6;
             }
             if (UNTAG_Bool(REGB5)) {
             } else {
-              nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+              nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
             }
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
             REGB5 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
             if (UNTAG_Bool(REGB5)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB4)];
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             goto label8;
             label8: while(0);
-            /* ./../lib/standard//collection//array.nit:396 */
+            /* ../lib/standard/collection/array.nit:396 */
             CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB2, fra.me.REG[3]);
-            /* ./../lib/standard//collection//array.nit:397 */
+            /* ../lib/standard/collection/array.nit:397 */
             CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB3, fra.me.REG[2]);
           }
         } else {
-          /* ./../lib/standard//collection//array.nit:391 */
+          /* ../lib/standard/collection/array.nit:391 */
           goto label9;
         }
       }
       label9: while(0);
-      /* ./../lib/standard//collection//array.nit:400 */
+      /* ../lib/standard/collection/array.nit:400 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       fra.me.REG[2] = fra.me.REG[0];
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB4 = TAG_Int(0);
       REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB5)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB4)) {
         REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
         if (UNTAG_Bool(REGB4)) {
@@ -2536,39 +2536,39 @@ void standard___collection___array___Array___sub_sort(val_t p0, val_t p1, val_t
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB5 = TAG_Bool(false);
         REGB4 = REGB5;
       }
       if (UNTAG_Bool(REGB4)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
       REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB4)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB3)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label10;
       label10: while(0);
-      /* ./../lib/standard//collection//array.nit:400 */
+      /* ../lib/standard/collection/array.nit:400 */
       CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[2]);
-      /* ./../lib/standard//collection//array.nit:401 */
+      /* ../lib/standard/collection/array.nit:401 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:401 */
+      /* ../lib/standard/collection/array.nit:401 */
       CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB3, fra.me.REG[1]);
-      /* ./../lib/standard//collection//array.nit:402 */
+      /* ../lib/standard/collection/array.nit:402 */
       REGB3 = TAG_Int(2);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
       CALL_standard___collection___array___Array___sub_sort(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB3, (&(fra.me)), ((fun_t)OC_standard___collection___array___Array___sub_sort_11));
       switch ((&(fra.me))->has_broke) {
@@ -2581,32 +2581,32 @@ void standard___collection___array___Array___sub_sort(val_t p0, val_t p1, val_t
         case 1: (&(fra.me))->has_broke = 0; goto label1;
       }
     } else {
-      /* ./../lib/standard//collection//array.nit:406 */
+      /* ../lib/standard/collection/array.nit:406 */
       while(1) {
         REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB2)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:406 */
+        /* ../lib/standard/collection/array.nit:406 */
         if (UNTAG_Bool(REGB2)) {
-          /* ./../lib/standard//collection//array.nit:407 */
+          /* ../lib/standard/collection/array.nit:407 */
           REGB2 = REGB0;
-          /* ./../lib/standard//collection//array.nit:278 */
+          /* ../lib/standard/collection/array.nit:278 */
           fra.me.REG[1] = fra.me.REG[0];
           REGB3 = REGB0;
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB4 = TAG_Int(0);
           REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
           if (UNTAG_Bool(REGB5)) {
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:233 */
+          /* ../lib/standard/kernel.nit:233 */
           REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           if (UNTAG_Bool(REGB4)) {
             REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
             if (UNTAG_Bool(REGB4)) {
@@ -2619,54 +2619,54 @@ void standard___collection___array___Array___sub_sort(val_t p0, val_t p1, val_t
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:232 */
+            /* ../lib/standard/kernel.nit:232 */
             REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
           } else {
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB5 = TAG_Bool(false);
             REGB4 = REGB5;
           }
           if (UNTAG_Bool(REGB4)) {
           } else {
-            nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+            nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
           }
-          /* ./../lib/standard//collection//array.nit:281 */
+          /* ../lib/standard/collection/array.nit:281 */
           fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
           REGB4 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
           if (UNTAG_Bool(REGB4)) {
             nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
           }
-          /* ./../lib/standard//collection//array.nit:718 */
+          /* ../lib/standard/collection/array.nit:718 */
           fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB3)];
-          /* ./../lib/standard//collection//array.nit:281 */
+          /* ../lib/standard/collection/array.nit:281 */
           goto label15;
           label15: while(0);
-          /* ./../lib/standard//collection//array.nit:409 */
+          /* ../lib/standard/collection/array.nit:409 */
           REGB3 = REGB0;
-          /* ./../lib/standard//collection//array.nit:410 */
+          /* ../lib/standard/collection/array.nit:410 */
           while(1) {
             REGB4 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
             if (UNTAG_Bool(REGB4)) {
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:231 */
+            /* ../lib/standard/kernel.nit:231 */
             REGB4 = TAG_Bool(UNTAG_Int(REGB3)<=UNTAG_Int(REGB1));
-            /* ./../lib/standard//collection//array.nit:410 */
+            /* ../lib/standard/collection/array.nit:410 */
             if (UNTAG_Bool(REGB4)) {
-              /* ./../lib/standard//collection//array.nit:278 */
+              /* ../lib/standard/collection/array.nit:278 */
               fra.me.REG[2] = fra.me.REG[0];
               REGB4 = REGB3;
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB5 = TAG_Int(0);
               REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
               if (UNTAG_Bool(REGB6)) {
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:233 */
+              /* ../lib/standard/kernel.nit:233 */
               REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               if (UNTAG_Bool(REGB5)) {
                REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
                if (UNTAG_Bool(REGB5)) {
@@ -2679,29 +2679,29 @@ void standard___collection___array___Array___sub_sort(val_t p0, val_t p1, val_t
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
               } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB6 = TAG_Bool(false);
                REGB5 = REGB6;
               }
               if (UNTAG_Bool(REGB5)) {
               } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
               }
-              /* ./../lib/standard//collection//array.nit:281 */
+              /* ../lib/standard/collection/array.nit:281 */
               fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
               REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
               if (UNTAG_Bool(REGB5)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
               }
-              /* ./../lib/standard//collection//array.nit:718 */
+              /* ../lib/standard/collection/array.nit:718 */
               fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB4)];
-              /* ./../lib/standard//collection//array.nit:281 */
+              /* ../lib/standard/collection/array.nit:281 */
               goto label16;
               label16: while(0);
-              /* ./../lib/standard//collection//array.nit:411 */
+              /* ../lib/standard/collection/array.nit:411 */
               REGB4 = ((val_t (*)(struct stack_frame_t *, val_t, val_t))(CREG[0]))(closctx_param, fra.me.REG[1], fra.me.REG[2]);
               if (closctx_param->has_broke) {
                goto label1;
@@ -2712,25 +2712,25 @@ void standard___collection___array___Array___sub_sort(val_t p0, val_t p1, val_t
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:234 */
+              /* ../lib/standard/kernel.nit:234 */
               REGB5 = TAG_Bool(UNTAG_Int(REGB4)>UNTAG_Int(REGB5));
-              /* ./../lib/standard//collection//array.nit:411 */
+              /* ../lib/standard/collection/array.nit:411 */
               if (UNTAG_Bool(REGB5)) {
-               /* ./../lib/standard//collection//array.nit:412 */
+               /* ../lib/standard/collection/array.nit:412 */
                REGB2 = REGB3;
-               /* ./../lib/standard//collection//array.nit:278 */
+               /* ../lib/standard/collection/array.nit:278 */
                fra.me.REG[2] = fra.me.REG[0];
                REGB5 = REGB3;
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB4 = TAG_Int(0);
                REGB6 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
                if (UNTAG_Bool(REGB6)) {
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:233 */
+               /* ../lib/standard/kernel.nit:233 */
                REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                if (UNTAG_Bool(REGB4)) {
                REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
                if (UNTAG_Bool(REGB4)) {
@@ -2743,67 +2743,67 @@ void standard___collection___array___Array___sub_sort(val_t p0, val_t p1, val_t
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
                } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB6 = TAG_Bool(false);
                REGB4 = REGB6;
                }
                if (UNTAG_Bool(REGB4)) {
                } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
                }
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
                REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
                if (UNTAG_Bool(REGB4)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB5)];
-               /* ./../lib/standard//collection//array.nit:281 */
+               /* ../lib/standard/collection/array.nit:281 */
                goto label17;
                label17: while(0);
-               /* ./../lib/standard//collection//array.nit:413 */
+               /* ../lib/standard/collection/array.nit:413 */
                fra.me.REG[1] = fra.me.REG[2];
               }
-              /* ./../lib/standard//collection//array.nit:415 */
+              /* ../lib/standard/collection/array.nit:415 */
               REGB5 = TAG_Int(1);
-              /* ./../lib/standard//kernel.nit:235 */
+              /* ../lib/standard/kernel.nit:235 */
               REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
-              /* ./../lib/standard//collection//array.nit:415 */
+              /* ../lib/standard/collection/array.nit:415 */
               REGB3 = REGB5;
             } else {
-              /* ./../lib/standard//collection//array.nit:410 */
+              /* ../lib/standard/collection/array.nit:410 */
               goto label18;
             }
           }
           label18: while(0);
-          /* ./../lib/standard//collection//array.nit:417 */
+          /* ../lib/standard/collection/array.nit:417 */
           REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB0));
           if (UNTAG_Bool(REGB3)) {
           } else {
-            /* ./../lib/standard//kernel.nit:227 */
+            /* ../lib/standard/kernel.nit:227 */
             REGB5 = TAG_Bool((REGB2)==(REGB0));
-            /* ./../lib/standard//collection//array.nit:417 */
+            /* ../lib/standard/collection/array.nit:417 */
             REGB3 = REGB5;
           }
           REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
           if (UNTAG_Bool(REGB3)) {
-            /* ./../lib/standard//collection//array.nit:278 */
+            /* ../lib/standard/collection/array.nit:278 */
             fra.me.REG[2] = fra.me.REG[0];
             REGB3 = REGB0;
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB5 = TAG_Int(0);
             REGB4 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
             if (UNTAG_Bool(REGB4)) {
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:233 */
+            /* ../lib/standard/kernel.nit:233 */
             REGB5 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB5));
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             if (UNTAG_Bool(REGB5)) {
               REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
               if (UNTAG_Bool(REGB5)) {
@@ -2816,41 +2816,41 @@ void standard___collection___array___Array___sub_sort(val_t p0, val_t p1, val_t
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:232 */
+              /* ../lib/standard/kernel.nit:232 */
               REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB5));
             } else {
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB4 = TAG_Bool(false);
               REGB5 = REGB4;
             }
             if (UNTAG_Bool(REGB5)) {
             } else {
-              nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+              nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
             }
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
             REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
             if (UNTAG_Bool(REGB5)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB3)];
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             goto label19;
             label19: while(0);
-            /* ./../lib/standard//collection//array.nit:418 */
+            /* ../lib/standard/collection/array.nit:418 */
             CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB2, fra.me.REG[2]);
-            /* ./../lib/standard//collection//array.nit:419 */
+            /* ../lib/standard/collection/array.nit:419 */
             CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
           }
-          /* ./../lib/standard//collection//array.nit:421 */
+          /* ../lib/standard/collection/array.nit:421 */
           REGB2 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-          /* ./../lib/standard//collection//array.nit:421 */
+          /* ../lib/standard/collection/array.nit:421 */
           REGB0 = REGB2;
         } else {
-          /* ./../lib/standard//collection//array.nit:406 */
+          /* ../lib/standard/collection/array.nit:406 */
           goto label20;
         }
       }
@@ -2865,7 +2865,7 @@ void standard___collection___array___Array___sub_sort(val_t p0, val_t p1, val_t
         struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
         val_t REGB0;
         val_t tmp;
-        /* ./../lib/standard//collection//array.nit:402 */
+        /* ../lib/standard/collection/array.nit:402 */
         fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
         fra.me.file = LOCATE_standard___collection___array;
         fra.me.line = 402;
@@ -2891,7 +2891,7 @@ void standard___collection___array___Array___sub_sort(val_t p0, val_t p1, val_t
         struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
         val_t REGB0;
         val_t tmp;
-        /* ./../lib/standard//collection//array.nit:403 */
+        /* ../lib/standard/collection/array.nit:403 */
         fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
         fra.me.file = LOCATE_standard___collection___array;
         fra.me.line = 403;
@@ -2927,7 +2927,7 @@ val_t standard___collection___array___ArrayIterator___item(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:431 */
+  /* ../lib/standard/collection/array.nit:431 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayIterator____array(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2961,7 +2961,7 @@ val_t standard___collection___array___ArrayIterator___is_ok(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:435 */
+  /* ../lib/standard/collection/array.nit:435 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2974,7 +2974,7 @@ val_t standard___collection___array___ArrayIterator___is_ok(val_t p0){
     nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 435);
   }
   fra.me.REG[0] = ATTR_standard___collection___array___ArrayIterator____array(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -2986,9 +2986,9 @@ val_t standard___collection___array___ArrayIterator___is_ok(val_t p0){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:435 */
+  /* ../lib/standard/collection/array.nit:435 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -3008,12 +3008,12 @@ void standard___collection___array___ArrayIterator___next(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:437 */
+  /* ../lib/standard/collection/array.nit:437 */
   REGB0 = ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0]);
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:437 */
+  /* ../lib/standard/collection/array.nit:437 */
   ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0]) = REGB1;
   stack_frame_head = fra.me.prev;
   return;
@@ -3035,9 +3035,9 @@ void standard___collection___array___ArrayIterator___init(val_t p0, val_t p1, in
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:441 */
+  /* ../lib/standard/collection/array.nit:441 */
   ATTR_standard___collection___array___ArrayIterator____array(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//array.nit:442 */
+  /* ../lib/standard/collection/array.nit:442 */
   REGB0 = TAG_Int(0);
   ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -3057,7 +3057,7 @@ val_t standard___collection___array___ArrayIterator___index(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:445 */
+  /* ../lib/standard/collection/array.nit:445 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3082,7 +3082,7 @@ val_t standard___collection___array___ArraySet___has(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:458 */
+  /* ../lib/standard/collection/array.nit:458 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3111,7 +3111,7 @@ void standard___collection___array___ArraySet___add(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:460 */
+  /* ../lib/standard/collection/array.nit:460 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3145,7 +3145,7 @@ val_t standard___collection___array___ArraySet___is_empty(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:462 */
+  /* ../lib/standard/collection/array.nit:462 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3171,21 +3171,21 @@ val_t standard___collection___array___ArraySet___length(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:464 */
+  /* ../lib/standard/collection/array.nit:464 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 464);
   }
   fra.me.REG[0] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:464 */
+  /* ../lib/standard/collection/array.nit:464 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -3207,35 +3207,35 @@ val_t standard___collection___array___ArraySet___first(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:468 */
+  /* ../lib/standard/collection/array.nit:468 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 468);
   }
   fra.me.REG[1] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:468 */
+  /* ../lib/standard/collection/array.nit:468 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:468 */
+  /* ../lib/standard/collection/array.nit:468 */
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_standard___collection___array, 468);
   }
-  /* ./../lib/standard//collection//array.nit:469 */
+  /* ../lib/standard/collection/array.nit:469 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -3266,7 +3266,7 @@ void standard___collection___array___ArraySet___remove(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:474 */
+  /* ../lib/standard/collection/array.nit:474 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3274,16 +3274,16 @@ void standard___collection___array___ArraySet___remove(val_t p0, val_t p1){
   }
   fra.me.REG[2] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___SequenceRead___index_of(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:475 */
+  /* ../lib/standard/collection/array.nit:475 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:475 */
+  /* ../lib/standard/collection/array.nit:475 */
   if (UNTAG_Bool(REGB1)) {
     CALL_standard___collection___array___ArraySet___remove_at(fra.me.REG[0])(fra.me.REG[0], REGB0);
   }
@@ -3304,7 +3304,7 @@ void standard___collection___array___ArraySet___remove_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:478 */
+  /* ../lib/standard/collection/array.nit:478 */
   CALL_standard___collection___abstract_collection___RemovableCollection___remove(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -3322,7 +3322,7 @@ void standard___collection___array___ArraySet___clear(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:480 */
+  /* ../lib/standard/collection/array.nit:480 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3346,7 +3346,7 @@ val_t standard___collection___array___ArraySet___iterator(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:482 */
+  /* ../lib/standard/collection/array.nit:482 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3375,7 +3375,7 @@ void standard___collection___array___ArraySet___enlarge(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//collection//array.nit:485 */
+  /* ../lib/standard/collection/array.nit:485 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -3403,7 +3403,7 @@ void standard___collection___array___ArraySet___remove_at(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//collection//array.nit:489 */
+  /* ../lib/standard/collection/array.nit:489 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -3418,7 +3418,7 @@ void standard___collection___array___ArraySet___remove_at(val_t p0, val_t p1){
   fra.me.REG[2] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
   fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:490 */
+  /* ../lib/standard/collection/array.nit:490 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3444,7 +3444,7 @@ void standard___collection___array___ArraySet___init(val_t p0, int* init_table){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:494 */
+  /* ../lib/standard/collection/array.nit:494 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -3468,7 +3468,7 @@ void standard___collection___array___ArraySet___with_capacity(val_t p0, val_t p1
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//collection//array.nit:497 */
+  /* ../lib/standard/collection/array.nit:497 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -3488,7 +3488,7 @@ val_t standard___collection___array___ArraySetIterator___is_ok(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:504 */
+  /* ../lib/standard/collection/array.nit:504 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySetIterator____iter(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3514,7 +3514,7 @@ void standard___collection___array___ArraySetIterator___next(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:506 */
+  /* ../lib/standard/collection/array.nit:506 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySetIterator____iter(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3538,7 +3538,7 @@ val_t standard___collection___array___ArraySetIterator___item(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:508 */
+  /* ../lib/standard/collection/array.nit:508 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySetIterator____iter(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3567,7 +3567,7 @@ void standard___collection___array___ArraySetIterator___init(val_t p0, val_t p1,
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:510 */
+  /* ../lib/standard/collection/array.nit:510 */
   ATTR_standard___collection___array___ArraySetIterator____iter(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos9] = 1;
@@ -3590,36 +3590,36 @@ val_t standard___collection___array___ArrayMap_____bra(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:523 */
+  /* ../lib/standard/collection/array.nit:523 */
   REGB0 = CALL_standard___collection___array___ArrayMap___index(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:524 */
+  /* ../lib/standard/collection/array.nit:524 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:524 */
+  /* ../lib/standard/collection/array.nit:524 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//collection//array.nit:525 */
+    /* ../lib/standard/collection/array.nit:525 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 525);
     }
     fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB1 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     if (UNTAG_Bool(REGB1)) {
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
@@ -3632,29 +3632,29 @@ val_t standard___collection___array___ArrayMap_____bra(val_t p0, val_t p1){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
     } else {
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB2 = TAG_Bool(false);
       REGB1 = REGB2;
     }
     if (UNTAG_Bool(REGB1)) {
     } else {
-      nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+      nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
     }
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
     REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
     }
-    /* ./../lib/standard//collection//array.nit:718 */
+    /* ../lib/standard/collection/array.nit:718 */
     fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     goto label1;
     label1: while(0);
-    /* ./../lib/standard//collection//array.nit:525 */
+    /* ../lib/standard/collection/array.nit:525 */
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 525);
@@ -3662,7 +3662,7 @@ val_t standard___collection___array___ArrayMap_____bra(val_t p0, val_t p1){
     fra.me.REG[0] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[0])(fra.me.REG[0]);
     goto label2;
   } else {
-    /* ./../lib/standard//collection//array.nit:527 */
+    /* ../lib/standard/collection/array.nit:527 */
     nit_abort("Aborted", NULL, LOCATE_standard___collection___array, 527);
   }
   label2: while(0);
@@ -3689,36 +3689,36 @@ void standard___collection___array___ArrayMap_____braeq(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/standard//collection//array.nit:534 */
+  /* ../lib/standard/collection/array.nit:534 */
   REGB0 = CALL_standard___collection___array___ArrayMap___index(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:535 */
+  /* ../lib/standard/collection/array.nit:535 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:535 */
+  /* ../lib/standard/collection/array.nit:535 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//collection//array.nit:536 */
+    /* ../lib/standard/collection/array.nit:536 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 536);
     }
     fra.me.REG[3] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB1 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     if (UNTAG_Bool(REGB1)) {
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
@@ -3731,36 +3731,36 @@ void standard___collection___array___ArrayMap_____braeq(val_t p0, val_t p1, val_
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
     } else {
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB2 = TAG_Bool(false);
       REGB1 = REGB2;
     }
     if (UNTAG_Bool(REGB1)) {
     } else {
-      nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+      nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
     }
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
     REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
     }
-    /* ./../lib/standard//collection//array.nit:718 */
+    /* ../lib/standard/collection/array.nit:718 */
     fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     goto label1;
     label1: while(0);
-    /* ./../lib/standard//collection//array.nit:536 */
+    /* ../lib/standard/collection/array.nit:536 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 536);
     }
     CALL_standard___collection___abstract_collection___Couple___second__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
   } else {
-    /* ./../lib/standard//collection//array.nit:538 */
+    /* ../lib/standard/collection/array.nit:538 */
     REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -3786,7 +3786,7 @@ val_t standard___collection___array___ArrayMap___keys(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:542 */
+  /* ../lib/standard/collection/array.nit:542 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap_____atkeys(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3810,7 +3810,7 @@ void standard___collection___array___ArrayMap___keys__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:542 */
+  /* ../lib/standard/collection/array.nit:542 */
   ATTR_standard___collection___array___ArrayMap_____atkeys(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -3828,7 +3828,7 @@ val_t standard___collection___array___ArrayMap___values(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:543 */
+  /* ../lib/standard/collection/array.nit:543 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap_____atvalues(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3852,7 +3852,7 @@ void standard___collection___array___ArrayMap___values__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:543 */
+  /* ../lib/standard/collection/array.nit:543 */
   ATTR_standard___collection___array___ArrayMap_____atvalues(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -3870,21 +3870,21 @@ val_t standard___collection___array___ArrayMap___length(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:546 */
+  /* ../lib/standard/collection/array.nit:546 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 546);
   }
   fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:546 */
+  /* ../lib/standard/collection/array.nit:546 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -3903,7 +3903,7 @@ val_t standard___collection___array___ArrayMap___iterator(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:548 */
+  /* ../lib/standard/collection/array.nit:548 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3930,7 +3930,7 @@ val_t standard___collection___array___ArrayMap___is_empty(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:550 */
+  /* ../lib/standard/collection/array.nit:550 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3956,7 +3956,7 @@ void standard___collection___array___ArrayMap___clear(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:552 */
+  /* ../lib/standard/collection/array.nit:552 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3982,7 +3982,7 @@ void standard___collection___array___ArrayMap___enlarge(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//collection//array.nit:555 */
+  /* ../lib/standard/collection/array.nit:555 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -4010,36 +4010,36 @@ val_t standard___collection___array___ArrayMap___couple_at(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:559 */
+  /* ../lib/standard/collection/array.nit:559 */
   REGB0 = CALL_standard___collection___array___ArrayMap___index(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:560 */
+  /* ../lib/standard/collection/array.nit:560 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:560 */
+  /* ../lib/standard/collection/array.nit:560 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//collection//array.nit:561 */
+    /* ../lib/standard/collection/array.nit:561 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 561);
     }
     fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB1 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     if (UNTAG_Bool(REGB1)) {
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
@@ -4052,32 +4052,32 @@ val_t standard___collection___array___ArrayMap___couple_at(val_t p0, val_t p1){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
     } else {
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB2 = TAG_Bool(false);
       REGB1 = REGB2;
     }
     if (UNTAG_Bool(REGB1)) {
     } else {
-      nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+      nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
     }
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
     REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
     }
-    /* ./../lib/standard//collection//array.nit:718 */
+    /* ../lib/standard/collection/array.nit:718 */
     fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     goto label1;
     label1: while(0);
-    /* ./../lib/standard//collection//array.nit:561 */
+    /* ../lib/standard/collection/array.nit:561 */
     goto label2;
   } else {
-    /* ./../lib/standard//collection//array.nit:563 */
+    /* ../lib/standard/collection/array.nit:563 */
     fra.me.REG[0] = NIT_NULL;
     goto label2;
   }
@@ -4102,7 +4102,7 @@ void standard___collection___array___ArrayMap___remove_at_index(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//collection//array.nit:573 */
+  /* ../lib/standard/collection/array.nit:573 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -4117,7 +4117,7 @@ void standard___collection___array___ArrayMap___remove_at_index(val_t p0, val_t
   fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
   fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:574 */
+  /* ../lib/standard/collection/array.nit:574 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -4148,21 +4148,21 @@ val_t standard___collection___array___ArrayMap___index(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:584 */
+  /* ../lib/standard/collection/array.nit:584 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____last_index(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_last_index", LOCATE_standard___collection___array, 584);
   }
   REGB0 = ATTR_standard___collection___array___ArrayMap____last_index(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:585 */
+  /* ../lib/standard/collection/array.nit:585 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 585);
   }
   fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -4174,9 +4174,9 @@ val_t standard___collection___array___ArrayMap___index(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:585 */
+  /* ../lib/standard/collection/array.nit:585 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -4184,18 +4184,18 @@ val_t standard___collection___array___ArrayMap___index(val_t p0, val_t p1){
       nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 585);
     }
     fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
-    /* ./../lib/standard//collection//array.nit:278 */
+    /* ../lib/standard/collection/array.nit:278 */
     REGB1 = REGB0;
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB2 = TAG_Int(0);
     REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     if (UNTAG_Bool(REGB2)) {
       REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
@@ -4208,29 +4208,29 @@ val_t standard___collection___array___ArrayMap___index(val_t p0, val_t p1){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
     } else {
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB3 = TAG_Bool(false);
       REGB2 = REGB3;
     }
     if (UNTAG_Bool(REGB2)) {
     } else {
-      nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+      nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
     }
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
     REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
     }
-    /* ./../lib/standard//collection//array.nit:718 */
+    /* ../lib/standard/collection/array.nit:718 */
     fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     goto label1;
     label1: while(0);
-    /* ./../lib/standard//collection//array.nit:585 */
+    /* ../lib/standard/collection/array.nit:585 */
     REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 585);
@@ -4255,9 +4255,9 @@ val_t standard___collection___array___ArrayMap___index(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB1)) {
     goto label2;
   }
-  /* ./../lib/standard//collection//array.nit:587 */
+  /* ../lib/standard/collection/array.nit:587 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:588 */
+  /* ../lib/standard/collection/array.nit:588 */
   while(1) {
     REGB2 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
@@ -4265,7 +4265,7 @@ val_t standard___collection___array___ArrayMap___index(val_t p0, val_t p1){
       nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 588);
     }
     fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -4277,29 +4277,29 @@ val_t standard___collection___array___ArrayMap___index(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:588 */
+    /* ../lib/standard/collection/array.nit:588 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:589 */
+      /* ../lib/standard/collection/array.nit:589 */
       REGB2 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 589);
       }
       fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       REGB2 = REGB1;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB3 = TAG_Int(0);
       REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB4)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB3)) {
         REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
@@ -4312,29 +4312,29 @@ val_t standard___collection___array___ArrayMap___index(val_t p0, val_t p1){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB4 = TAG_Bool(false);
         REGB3 = REGB4;
       }
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
       REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB2)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label3;
       label3: while(0);
-      /* ./../lib/standard//collection//array.nit:589 */
+      /* ../lib/standard/collection/array.nit:589 */
       REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 589);
@@ -4353,29 +4353,29 @@ val_t standard___collection___array___ArrayMap___index(val_t p0, val_t p1){
         }
       }
       if (UNTAG_Bool(REGB2)) {
-        /* ./../lib/standard//collection//array.nit:590 */
+        /* ../lib/standard/collection/array.nit:590 */
         ATTR_standard___collection___array___ArrayMap____last_index(fra.me.REG[0]) = REGB1;
-        /* ./../lib/standard//collection//array.nit:591 */
+        /* ../lib/standard/collection/array.nit:591 */
         REGB0 = REGB1;
         goto label2;
       }
-      /* ./../lib/standard//collection//array.nit:593 */
+      /* ../lib/standard/collection/array.nit:593 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:593 */
+      /* ../lib/standard/collection/array.nit:593 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:588 */
+      /* ../lib/standard/collection/array.nit:588 */
       goto label4;
     }
   }
   label4: while(0);
-  /* ./../lib/standard//collection//array.nit:595 */
+  /* ../lib/standard/collection/array.nit:595 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:236 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB1 = TAG_Int(-UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:595 */
+  /* ../lib/standard/collection/array.nit:595 */
   REGB0 = REGB1;
   goto label2;
   label2: while(0);
@@ -4397,7 +4397,7 @@ void standard___collection___array___ArrayMap___init(val_t p0, int* init_table){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:601 */
+  /* ../lib/standard/collection/array.nit:601 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -4417,7 +4417,7 @@ val_t standard___collection___array___ArrayMapKeys___map(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:607 */
+  /* ../lib/standard/collection/array.nit:607 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMapKeys_____atmap(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -4441,7 +4441,7 @@ void standard___collection___array___ArrayMapKeys___map__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:607 */
+  /* ../lib/standard/collection/array.nit:607 */
   ATTR_standard___collection___array___ArrayMapKeys_____atmap(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -4462,7 +4462,7 @@ val_t standard___collection___array___ArrayMapKeys___count(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:609 */
+  /* ../lib/standard/collection/array.nit:609 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Int(1);
@@ -4489,7 +4489,7 @@ val_t standard___collection___array___ArrayMapKeys___first(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:610 */
+  /* ../lib/standard/collection/array.nit:610 */
   fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -4525,7 +4525,7 @@ val_t standard___collection___array___ArrayMapKeys___has(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:611 */
+  /* ../lib/standard/collection/array.nit:611 */
   fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___array___ArrayMap___index(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   REGB1 = TAG_Int(0);
@@ -4534,9 +4534,9 @@ val_t standard___collection___array___ArrayMapKeys___has(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:611 */
+  /* ../lib/standard/collection/array.nit:611 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -4559,7 +4559,7 @@ val_t standard___collection___array___ArrayMapKeys___has_only(val_t p0, val_t p1
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:612 */
+  /* ../lib/standard/collection/array.nit:612 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
     REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
@@ -4567,9 +4567,9 @@ val_t standard___collection___array___ArrayMapKeys___has_only(val_t p0, val_t p1
     REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
     if (UNTAG_Bool(REGB2)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB1 = TAG_Bool((REGB0)==(REGB1));
-      /* ./../lib/standard//collection//array.nit:612 */
+      /* ../lib/standard/collection/array.nit:612 */
       REGB2 = REGB1;
     }
   } else {
@@ -4600,7 +4600,7 @@ val_t standard___collection___array___ArrayMapKeys___is_empty(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:613 */
+  /* ../lib/standard/collection/array.nit:613 */
   fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___is_empty(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -4621,7 +4621,7 @@ val_t standard___collection___array___ArrayMapKeys___length(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:614 */
+  /* ../lib/standard/collection/array.nit:614 */
   fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___length(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -4641,7 +4641,7 @@ val_t standard___collection___array___ArrayMapKeys___iterator(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:615 */
+  /* ../lib/standard/collection/array.nit:615 */
   fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = NEW_MapKeysIterator_standard___collection___abstract_collection___MapKeysIterator___init(fra.me.REG[0]);
@@ -4662,7 +4662,7 @@ void standard___collection___array___ArrayMapKeys___clear(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:616 */
+  /* ../lib/standard/collection/array.nit:616 */
   fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Map___clear(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -4686,19 +4686,19 @@ void standard___collection___array___ArrayMapKeys___remove(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:619 */
+  /* ../lib/standard/collection/array.nit:619 */
   fra.me.REG[2] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___array___ArrayMap___index(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:620 */
+  /* ../lib/standard/collection/array.nit:620 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:620 */
+  /* ../lib/standard/collection/array.nit:620 */
   if (UNTAG_Bool(REGB1)) {
     fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
     CALL_standard___collection___array___ArrayMap___remove_at_index(fra.me.REG[0])(fra.me.REG[0], REGB0);
@@ -4720,7 +4720,7 @@ void standard___collection___array___ArrayMapKeys___remove_all(val_t p0, val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:622 */
+  /* ../lib/standard/collection/array.nit:622 */
   CALL_standard___collection___abstract_collection___RemovableCollection___remove(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -4759,7 +4759,7 @@ val_t standard___collection___array___ArrayMapValues___map(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:627 */
+  /* ../lib/standard/collection/array.nit:627 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMapValues_____atmap(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -4783,7 +4783,7 @@ void standard___collection___array___ArrayMapValues___map__eq(val_t p0, val_t p1
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:627 */
+  /* ../lib/standard/collection/array.nit:627 */
   ATTR_standard___collection___array___ArrayMapValues_____atmap(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -4801,7 +4801,7 @@ val_t standard___collection___array___ArrayMapValues___first(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:629 */
+  /* ../lib/standard/collection/array.nit:629 */
   fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -4833,7 +4833,7 @@ val_t standard___collection___array___ArrayMapValues___is_empty(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:630 */
+  /* ../lib/standard/collection/array.nit:630 */
   fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___is_empty(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -4854,7 +4854,7 @@ val_t standard___collection___array___ArrayMapValues___length(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:631 */
+  /* ../lib/standard/collection/array.nit:631 */
   fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___length(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -4874,7 +4874,7 @@ val_t standard___collection___array___ArrayMapValues___iterator(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:632 */
+  /* ../lib/standard/collection/array.nit:632 */
   fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = NEW_MapValuesIterator_standard___collection___abstract_collection___MapValuesIterator___init(fra.me.REG[0]);
@@ -4902,7 +4902,7 @@ val_t standard___collection___array___ArrayMapValues___has(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:637 */
+  /* ../lib/standard/collection/array.nit:637 */
   fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -4910,20 +4910,20 @@ val_t standard___collection___array___ArrayMapValues___has(val_t p0, val_t p1){
     nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 637);
   }
   fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -4935,20 +4935,20 @@ val_t standard___collection___array___ArrayMapValues___has(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./../lib/standard//collection//array.nit:637 */
+      /* ../lib/standard/collection/array.nit:637 */
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[3])(fra.me.REG[3]);
-      REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
+      REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[1]));
       if (UNTAG_Bool(REGB1)) {
       } else {
         REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
@@ -4964,19 +4964,19 @@ val_t standard___collection___array___ArrayMapValues___has(val_t p0, val_t p1){
         REGB1 = TAG_Bool(true);
         goto label1;
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//collection//array.nit:638 */
+  /* ../lib/standard/collection/array.nit:638 */
   REGB0 = TAG_Bool(false);
   REGB1 = REGB0;
   goto label1;
@@ -5003,7 +5003,7 @@ val_t standard___collection___array___ArrayMapValues___has_only(val_t p0, val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:644 */
+  /* ../lib/standard/collection/array.nit:644 */
   fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -5011,20 +5011,20 @@ val_t standard___collection___array___ArrayMapValues___has_only(val_t p0, val_t
     nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 644);
   }
   fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -5036,20 +5036,20 @@ val_t standard___collection___array___ArrayMapValues___has_only(val_t p0, val_t
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./../lib/standard//collection//array.nit:644 */
+      /* ../lib/standard/collection/array.nit:644 */
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[3])(fra.me.REG[3]);
-      REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
+      REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[1]));
       if (UNTAG_Bool(REGB1)) {
       } else {
         REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
@@ -5066,19 +5066,19 @@ val_t standard___collection___array___ArrayMapValues___has_only(val_t p0, val_t
         REGB1 = TAG_Bool(false);
         goto label1;
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//collection//array.nit:645 */
+  /* ../lib/standard/collection/array.nit:645 */
   REGB0 = TAG_Bool(true);
   REGB1 = REGB0;
   goto label1;
@@ -5106,9 +5106,9 @@ val_t standard___collection___array___ArrayMapValues___count(val_t p0, val_t p1)
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:651 */
+  /* ../lib/standard/collection/array.nit:651 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:652 */
+  /* ../lib/standard/collection/array.nit:652 */
   fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -5116,20 +5116,20 @@ val_t standard___collection___array___ArrayMapValues___count(val_t p0, val_t p1)
     nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 652);
   }
   fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -5141,20 +5141,20 @@ val_t standard___collection___array___ArrayMapValues___count(val_t p0, val_t p1)
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
-      /* ./../lib/standard//collection//array.nit:652 */
+      /* ../lib/standard/collection/array.nit:652 */
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[3])(fra.me.REG[3]);
-      REGB2 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
+      REGB2 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[1]));
       if (UNTAG_Bool(REGB2)) {
       } else {
         REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
@@ -5168,24 +5168,24 @@ val_t standard___collection___array___ArrayMapValues___count(val_t p0, val_t p1)
       }
       if (UNTAG_Bool(REGB2)) {
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-        /* ./../lib/standard//collection//array.nit:652 */
+        /* ../lib/standard/collection/array.nit:652 */
         REGB0 = REGB2;
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//collection//array.nit:653 */
+  /* ../lib/standard/collection/array.nit:653 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -5203,7 +5203,7 @@ void standard___collection___array___ArrayMapValues___clear(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:656 */
+  /* ../lib/standard/collection/array.nit:656 */
   fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Map___clear(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -5228,27 +5228,27 @@ void standard___collection___array___ArrayMapValues___remove(val_t p0, val_t p1)
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:660 */
+  /* ../lib/standard/collection/array.nit:660 */
   fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:661 */
+  /* ../lib/standard/collection/array.nit:661 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 661);
   }
   fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:661 */
+  /* ../lib/standard/collection/array.nit:661 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:662 */
+  /* ../lib/standard/collection/array.nit:662 */
   while(1) {
     REGB0 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
@@ -5256,29 +5256,29 @@ void standard___collection___array___ArrayMapValues___remove(val_t p0, val_t p1)
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
-    /* ./../lib/standard//collection//array.nit:662 */
+    /* ../lib/standard/collection/array.nit:662 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//array.nit:663 */
+      /* ../lib/standard/collection/array.nit:663 */
       REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 663);
       }
       fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       REGB0 = REGB1;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB2 = TAG_Int(0);
       REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB3)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB2)) {
         REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
@@ -5291,35 +5291,35 @@ void standard___collection___array___ArrayMapValues___remove(val_t p0, val_t p1)
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB3 = TAG_Bool(false);
         REGB2 = REGB3;
       }
       if (UNTAG_Bool(REGB2)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
       REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label1;
       label1: while(0);
-      /* ./../lib/standard//collection//array.nit:663 */
+      /* ../lib/standard/collection/array.nit:663 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 663);
       }
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[2])(fra.me.REG[2]);
-      REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[2]));
+      REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
       if (UNTAG_Bool(REGB0)) {
       } else {
         REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -5332,19 +5332,19 @@ void standard___collection___array___ArrayMapValues___remove(val_t p0, val_t p1)
         }
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./../lib/standard//collection//array.nit:664 */
+        /* ../lib/standard/collection/array.nit:664 */
         CALL_standard___collection___array___ArrayMap___remove_at_index(fra.me.REG[0])(fra.me.REG[0], REGB1);
-        /* ./../lib/standard//collection//array.nit:665 */
+        /* ../lib/standard/collection/array.nit:665 */
         goto label2;
       }
-      /* ./../lib/standard//collection//array.nit:667 */
+      /* ../lib/standard/collection/array.nit:667 */
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
-      /* ./../lib/standard//collection//array.nit:667 */
+      /* ../lib/standard/collection/array.nit:667 */
       REGB1 = REGB0;
     } else {
-      /* ./../lib/standard//collection//array.nit:662 */
+      /* ../lib/standard/collection/array.nit:662 */
       goto label3;
     }
   }
@@ -5372,27 +5372,27 @@ void standard___collection___array___ArrayMapValues___remove_all(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:673 */
+  /* ../lib/standard/collection/array.nit:673 */
   fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:674 */
+  /* ../lib/standard/collection/array.nit:674 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 674);
   }
   fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:674 */
+  /* ../lib/standard/collection/array.nit:674 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:675 */
+  /* ../lib/standard/collection/array.nit:675 */
   while(1) {
     REGB0 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
@@ -5400,29 +5400,29 @@ void standard___collection___array___ArrayMapValues___remove_all(val_t p0, val_t
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
-    /* ./../lib/standard//collection//array.nit:675 */
+    /* ../lib/standard/collection/array.nit:675 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//array.nit:676 */
+      /* ../lib/standard/collection/array.nit:676 */
       REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 676);
       }
       fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       REGB0 = REGB1;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB2 = TAG_Int(0);
       REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB3)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB2)) {
         REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
@@ -5435,35 +5435,35 @@ void standard___collection___array___ArrayMapValues___remove_all(val_t p0, val_t
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB3 = TAG_Bool(false);
         REGB2 = REGB3;
       }
       if (UNTAG_Bool(REGB2)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
       REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label1;
       label1: while(0);
-      /* ./../lib/standard//collection//array.nit:676 */
+      /* ../lib/standard/collection/array.nit:676 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 676);
       }
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[2])(fra.me.REG[2]);
-      REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[2]));
+      REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
       if (UNTAG_Bool(REGB0)) {
       } else {
         REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -5476,17 +5476,17 @@ void standard___collection___array___ArrayMapValues___remove_all(val_t p0, val_t
         }
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./../lib/standard//collection//array.nit:677 */
+        /* ../lib/standard/collection/array.nit:677 */
         CALL_standard___collection___array___ArrayMap___remove_at_index(fra.me.REG[0])(fra.me.REG[0], REGB1);
       }
-      /* ./../lib/standard//collection//array.nit:679 */
+      /* ../lib/standard/collection/array.nit:679 */
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
-      /* ./../lib/standard//collection//array.nit:679 */
+      /* ../lib/standard/collection/array.nit:679 */
       REGB1 = REGB0;
     } else {
-      /* ./../lib/standard//collection//array.nit:675 */
+      /* ../lib/standard/collection/array.nit:675 */
       goto label2;
     }
   }
@@ -5530,24 +5530,24 @@ val_t standard___collection___array___Iterator___to_a(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:691 */
+  /* ../lib/standard/collection/array.nit:691 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  /* ./../lib/standard//collection//array.nit:692 */
+  /* ../lib/standard/collection/array.nit:692 */
   while(1) {
     REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//array.nit:693 */
+      /* ../lib/standard/collection/array.nit:693 */
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-      /* ./../lib/standard//collection//array.nit:694 */
+      /* ../lib/standard/collection/array.nit:694 */
       CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
     } else {
-      /* ./../lib/standard//collection//array.nit:692 */
+      /* ../lib/standard/collection/array.nit:692 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//collection//array.nit:696 */
+  /* ../lib/standard/collection/array.nit:696 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -5565,7 +5565,7 @@ val_t standard___collection___array___Collection___to_a(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:704 */
+  /* ../lib/standard/collection/array.nit:704 */
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___collection___array___Iterator___to_a(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -5587,7 +5587,7 @@ val_t standard___collection___array___ArrayCapable___calloc_array(val_t p0, val_
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//collection//array.nit:712 */
+  /* ../lib/standard/collection/array.nit:712 */
   fra.me.REG[0] = NEW_NativeArray(UNTAG_Int(REGB0), sizeof(val_t));
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -5606,7 +5606,7 @@ val_t standard___collection___array___NativeArray_____bra(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//collection//array.nit:718 */
+  /* ../lib/standard/collection/array.nit:718 */
   fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -5627,7 +5627,7 @@ void standard___collection___array___NativeArray_____braeq(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   REGB0 = p1;
   fra.me.REG[1] = p2;
-  /* ./../lib/standard//collection//array.nit:719 */
+  /* ../lib/standard/collection/array.nit:719 */
   ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)]=fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -5648,7 +5648,7 @@ void standard___collection___array___NativeArray___copy_to(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   REGB0 = p2;
-  /* ./../lib/standard//collection//array.nit:720 */
+  /* ../lib/standard/collection/array.nit:720 */
   (void)memcpy(((Nit_NativeArray )fra.me.REG[1])->val, ((Nit_NativeArray)fra.me.REG[0])->val, UNTAG_Int(REGB0)*sizeof(val_t));
   stack_frame_head = fra.me.prev;
   return;
index e485633..4bba17b 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/standard/collection/array. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/standard/collection/array. */
 #ifndef standard___collection___array_sep
 #define standard___collection___array_sep
 #include "standard___collection___abstract_collection._sep.h"
index 72f65a6..b0468ca 100644 (file)
@@ -12,7 +12,7 @@ val_t standard___collection___hash_collection___HashCollection___first_item(val_
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:27 */
+  /* ../lib/standard/collection/hash_collection.nit:27 */
   fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -34,7 +34,7 @@ val_t standard___collection___hash_collection___HashCollection___index_at(val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:39 */
+  /* ../lib/standard/collection/hash_collection.nit:39 */
   REGB0 = CALL_standard___hash___Object___hash(fra.me.REG[1])(fra.me.REG[1]);
   REGB1 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -42,25 +42,25 @@ val_t standard___collection___hash_collection___HashCollection___index_at(val_t
     nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___hash_collection, 39);
   }
   REGB1 = ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0]);
-  /* ./../lib/standard//kernel.nit:240 */
+  /* ../lib/standard/kernel.nit:240 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)%UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//hash_collection.nit:40 */
+  /* ../lib/standard/collection/hash_collection.nit:40 */
   REGB0 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-  /* ./../lib/standard//collection//hash_collection.nit:40 */
+  /* ../lib/standard/collection/hash_collection.nit:40 */
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:236 */
     REGB0 = TAG_Int(-UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//hash_collection.nit:40 */
+    /* ../lib/standard/collection/hash_collection.nit:40 */
     REGB1 = REGB0;
   }
-  /* ./../lib/standard//collection//hash_collection.nit:41 */
+  /* ../lib/standard/collection/hash_collection.nit:41 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -83,21 +83,21 @@ val_t standard___collection___hash_collection___HashCollection___node_at(val_t p
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:48 */
+  /* ../lib/standard/collection/hash_collection.nit:48 */
   fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[2]));
   if (UNTAG_Bool(REGB0)) {
     fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashCollection____last_accessed_node(fra.me.REG[0]);
     goto label1;
   }
-  /* ./../lib/standard//collection//hash_collection.nit:50 */
+  /* ../lib/standard/collection/hash_collection.nit:50 */
   REGB0 = CALL_standard___collection___hash_collection___HashCollection___index_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   fra.me.REG[3] = CALL_standard___collection___hash_collection___HashCollection___node_at_idx(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
-  /* ./../lib/standard//collection//hash_collection.nit:51 */
+  /* ../lib/standard/collection/hash_collection.nit:51 */
   ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:52 */
+  /* ../lib/standard/collection/hash_collection.nit:52 */
   ATTR_standard___collection___hash_collection___HashCollection____last_accessed_node(fra.me.REG[0]) = fra.me.REG[3];
-  /* ./../lib/standard//collection//hash_collection.nit:53 */
+  /* ../lib/standard/collection/hash_collection.nit:53 */
   fra.me.REG[2] = fra.me.REG[3];
   goto label1;
   label1: while(0);
@@ -123,15 +123,15 @@ val_t standard___collection___hash_collection___HashCollection___node_at_idx(val
   fra.me.REG[0] = p0;
   REGB0 = p1;
   fra.me.REG[1] = p2;
-  /* ./../lib/standard//collection//hash_collection.nit:59 */
+  /* ../lib/standard/collection/hash_collection.nit:59 */
   fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____array(fra.me.REG[0]);
   REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 59);
   }
-  /* ./../lib/standard//collection//array.nit:718 */
+  /* ../lib/standard/collection/array.nit:718 */
   fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
-  /* ./../lib/standard//collection//hash_collection.nit:60 */
+  /* ../lib/standard/collection/hash_collection.nit:60 */
   while(1) {
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -147,14 +147,14 @@ val_t standard___collection___hash_collection___HashCollection___node_at_idx(val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//hash_collection.nit:61 */
+      /* ../lib/standard/collection/hash_collection.nit:61 */
       REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection, 61);
       }
       fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0]);
-      /* ./../lib/standard//collection//hash_collection.nit:62 */
+      /* ../lib/standard/collection/hash_collection.nit:62 */
       REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[1]));
       if (UNTAG_Bool(REGB0)) {
         REGB0 = TAG_Bool(true);
@@ -168,19 +168,19 @@ val_t standard___collection___hash_collection___HashCollection___node_at_idx(val
         REGB0 = REGB1;
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./../lib/standard//collection//hash_collection.nit:63 */
+        /* ../lib/standard/collection/hash_collection.nit:63 */
         goto label1;
       }
-      /* ./../lib/standard//collection//hash_collection.nit:65 */
+      /* ../lib/standard/collection/hash_collection.nit:65 */
       fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____next_in_bucklet(fra.me.REG[0]);
       fra.me.REG[0] = fra.me.REG[2];
     } else {
-      /* ./../lib/standard//collection//hash_collection.nit:60 */
+      /* ../lib/standard/collection/hash_collection.nit:60 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//collection//hash_collection.nit:67 */
+  /* ../lib/standard/collection/hash_collection.nit:67 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -206,7 +206,7 @@ void standard___collection___hash_collection___HashCollection___store(val_t p0,
   fra.me.REG[0] = p0;
   REGB0 = p1;
   fra.me.REG[1] = p2;
-  /* ./../lib/standard//collection//hash_collection.nit:74 */
+  /* ../lib/standard/collection/hash_collection.nit:74 */
   fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
   REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -221,10 +221,10 @@ void standard___collection___hash_collection___HashCollection___store(val_t p0,
     }
   }
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//collection//hash_collection.nit:75 */
+    /* ../lib/standard/collection/hash_collection.nit:75 */
     ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]) = fra.me.REG[1];
   } else {
-    /* ./../lib/standard//collection//hash_collection.nit:77 */
+    /* ../lib/standard/collection/hash_collection.nit:77 */
     fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashCollection____last_item(fra.me.REG[0]);
     REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -232,32 +232,32 @@ void standard___collection___hash_collection___HashCollection___store(val_t p0,
     }
     ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[2]) = fra.me.REG[1];
   }
-  /* ./../lib/standard//collection//hash_collection.nit:79 */
+  /* ../lib/standard/collection/hash_collection.nit:79 */
   fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashCollection____last_item(fra.me.REG[0]);
   ATTR_standard___collection___hash_collection___HashNode____prev_item(fra.me.REG[1]) = fra.me.REG[2];
-  /* ./../lib/standard//collection//hash_collection.nit:80 */
+  /* ../lib/standard/collection/hash_collection.nit:80 */
   ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[1]) = NIT_NULL;
-  /* ./../lib/standard//collection//hash_collection.nit:81 */
+  /* ../lib/standard/collection/hash_collection.nit:81 */
   ATTR_standard___collection___hash_collection___HashCollection____last_item(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:84 */
+  /* ../lib/standard/collection/hash_collection.nit:84 */
   fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashCollection____array(fra.me.REG[0]);
   REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 84);
   }
-  /* ./../lib/standard//collection//array.nit:718 */
+  /* ../lib/standard/collection/array.nit:718 */
   fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-  /* ./../lib/standard//collection//hash_collection.nit:85 */
+  /* ../lib/standard/collection/hash_collection.nit:85 */
   fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashCollection____array(fra.me.REG[0]);
   REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 85);
   }
-  /* ./../lib/standard//collection//array.nit:719 */
+  /* ../lib/standard/collection/array.nit:719 */
   ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)]=fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:86 */
+  /* ../lib/standard/collection/hash_collection.nit:86 */
   ATTR_standard___collection___hash_collection___HashNode____next_in_bucklet(fra.me.REG[1]) = fra.me.REG[2];
-  /* ./../lib/standard//collection//hash_collection.nit:87 */
+  /* ../lib/standard/collection/hash_collection.nit:87 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -274,7 +274,7 @@ void standard___collection___hash_collection___HashCollection___store(val_t p0,
   if (UNTAG_Bool(REGB0)) {
     ATTR_standard___collection___hash_collection___HashNode____prev_in_bucklet(fra.me.REG[2]) = fra.me.REG[1];
   }
-  /* ./../lib/standard//collection//hash_collection.nit:89 */
+  /* ../lib/standard/collection/hash_collection.nit:89 */
   REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -282,36 +282,36 @@ void standard___collection___hash_collection___HashCollection___store(val_t p0,
   }
   fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[1]);
   ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./../lib/standard//collection//hash_collection.nit:90 */
+  /* ../lib/standard/collection/hash_collection.nit:90 */
   ATTR_standard___collection___hash_collection___HashCollection____last_accessed_node(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:93 */
+  /* ../lib/standard/collection/hash_collection.nit:93 */
   REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection, 93);
   }
   REGB0 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//hash_collection.nit:94 */
+  /* ../lib/standard/collection/hash_collection.nit:94 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//hash_collection.nit:94 */
+  /* ../lib/standard/collection/hash_collection.nit:94 */
   ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]) = REGB1;
-  /* ./../lib/standard//collection//hash_collection.nit:95 */
+  /* ../lib/standard/collection/hash_collection.nit:95 */
   REGB1 = TAG_Int(5);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//hash_collection.nit:95 */
+  /* ../lib/standard/collection/hash_collection.nit:95 */
   REGB2 = TAG_Int(3);
-  /* ./../lib/standard//kernel.nit:238 */
+  /* ../lib/standard/kernel.nit:238 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)*UNTAG_Int(REGB2));
-  /* ./../lib/standard//collection//hash_collection.nit:95 */
+  /* ../lib/standard/collection/hash_collection.nit:95 */
   REGB1 = TAG_Int(2);
-  /* ./../lib/standard//kernel.nit:239 */
+  /* ../lib/standard/kernel.nit:239 */
   REGB1 = TAG_Int(UNTAG_Int(REGB2)/UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//hash_collection.nit:95 */
+  /* ../lib/standard/collection/hash_collection.nit:95 */
   REGB0 = REGB1;
-  /* ./../lib/standard//collection//hash_collection.nit:96 */
+  /* ../lib/standard/collection/hash_collection.nit:96 */
   REGB1 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -323,15 +323,15 @@ void standard___collection___hash_collection___HashCollection___store(val_t p0,
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//hash_collection.nit:96 */
+  /* ../lib/standard/collection/hash_collection.nit:96 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//collection//hash_collection.nit:97 */
+    /* ../lib/standard/collection/hash_collection.nit:97 */
     REGB1 = TAG_Int(2);
-    /* ./../lib/standard//kernel.nit:238 */
+    /* ../lib/standard/kernel.nit:238 */
     REGB1 = TAG_Int(UNTAG_Int(REGB0)*UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//hash_collection.nit:97 */
+    /* ../lib/standard/collection/hash_collection.nit:97 */
     CALL_standard___collection___hash_collection___HashCollection___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB1);
   }
   stack_frame_head = fra.me.prev;
@@ -357,11 +357,11 @@ void standard___collection___hash_collection___HashCollection___remove_node(val_
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:104 */
+  /* ../lib/standard/collection/hash_collection.nit:104 */
   REGB0 = CALL_standard___collection___hash_collection___HashCollection___index_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./../lib/standard//collection//hash_collection.nit:105 */
+  /* ../lib/standard/collection/hash_collection.nit:105 */
   fra.me.REG[1] = CALL_standard___collection___hash_collection___HashCollection___node_at_idx(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
-  /* ./../lib/standard//collection//hash_collection.nit:106 */
+  /* ../lib/standard/collection/hash_collection.nit:106 */
   REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -377,11 +377,11 @@ void standard___collection___hash_collection___HashCollection___remove_node(val_
   if (UNTAG_Bool(REGB1)) {
     goto label1;
   }
-  /* ./../lib/standard//collection//hash_collection.nit:109 */
+  /* ../lib/standard/collection/hash_collection.nit:109 */
   fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____prev_item(fra.me.REG[1]);
-  /* ./../lib/standard//collection//hash_collection.nit:110 */
+  /* ../lib/standard/collection/hash_collection.nit:110 */
   fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[1]);
-  /* ./../lib/standard//collection//hash_collection.nit:111 */
+  /* ../lib/standard/collection/hash_collection.nit:111 */
   REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -396,13 +396,13 @@ void standard___collection___hash_collection___HashCollection___remove_node(val_
   }
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//collection//hash_collection.nit:112 */
+    /* ../lib/standard/collection/hash_collection.nit:112 */
     ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[2]) = fra.me.REG[3];
   } else {
-    /* ./../lib/standard//collection//hash_collection.nit:114 */
+    /* ../lib/standard/collection/hash_collection.nit:114 */
     ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]) = fra.me.REG[3];
   }
-  /* ./../lib/standard//collection//hash_collection.nit:116 */
+  /* ../lib/standard/collection/hash_collection.nit:116 */
   REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -417,26 +417,26 @@ void standard___collection___hash_collection___HashCollection___remove_node(val_
   }
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//collection//hash_collection.nit:117 */
+    /* ../lib/standard/collection/hash_collection.nit:117 */
     ATTR_standard___collection___hash_collection___HashNode____prev_item(fra.me.REG[3]) = fra.me.REG[2];
   } else {
-    /* ./../lib/standard//collection//hash_collection.nit:119 */
+    /* ../lib/standard/collection/hash_collection.nit:119 */
     ATTR_standard___collection___hash_collection___HashCollection____last_item(fra.me.REG[0]) = fra.me.REG[2];
   }
-  /* ./../lib/standard//collection//hash_collection.nit:123 */
+  /* ../lib/standard/collection/hash_collection.nit:123 */
   REGB1 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
   REGB2 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-  /* ./../lib/standard//collection//hash_collection.nit:123 */
+  /* ../lib/standard/collection/hash_collection.nit:123 */
   ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]) = REGB2;
-  /* ./../lib/standard//collection//hash_collection.nit:124 */
+  /* ../lib/standard/collection/hash_collection.nit:124 */
   fra.me.REG[4] = ATTR_standard___collection___hash_collection___HashNode____prev_in_bucklet(fra.me.REG[1]);
   fra.me.REG[2] = fra.me.REG[4];
-  /* ./../lib/standard//collection//hash_collection.nit:125 */
+  /* ../lib/standard/collection/hash_collection.nit:125 */
   fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashNode____next_in_bucklet(fra.me.REG[1]);
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:126 */
+  /* ../lib/standard/collection/hash_collection.nit:126 */
   REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -451,19 +451,19 @@ void standard___collection___hash_collection___HashCollection___remove_node(val_
   }
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//collection//hash_collection.nit:127 */
+    /* ../lib/standard/collection/hash_collection.nit:127 */
     ATTR_standard___collection___hash_collection___HashNode____next_in_bucklet(fra.me.REG[2]) = fra.me.REG[3];
   } else {
-    /* ./../lib/standard//collection//hash_collection.nit:129 */
+    /* ../lib/standard/collection/hash_collection.nit:129 */
     fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashCollection____array(fra.me.REG[0]);
     REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 129);
     }
-    /* ./../lib/standard//collection//array.nit:719 */
+    /* ../lib/standard/collection/array.nit:719 */
     ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)]=fra.me.REG[3];
   }
-  /* ./../lib/standard//collection//hash_collection.nit:131 */
+  /* ../lib/standard/collection/hash_collection.nit:131 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -478,10 +478,10 @@ void standard___collection___hash_collection___HashCollection___remove_node(val_
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//collection//hash_collection.nit:132 */
+    /* ../lib/standard/collection/hash_collection.nit:132 */
     ATTR_standard___collection___hash_collection___HashNode____prev_in_bucklet(fra.me.REG[3]) = fra.me.REG[2];
   }
-  /* ./../lib/standard//collection//hash_collection.nit:135 */
+  /* ../lib/standard/collection/hash_collection.nit:135 */
   ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = NIT_NULL;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -503,7 +503,7 @@ void standard___collection___hash_collection___HashCollection___raz(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:141 */
+  /* ../lib/standard/collection/hash_collection.nit:141 */
   REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -511,9 +511,9 @@ void standard___collection___hash_collection___HashCollection___raz(val_t p0){
   }
   REGB0 = ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0]);
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//hash_collection.nit:142 */
+  /* ../lib/standard/collection/hash_collection.nit:142 */
   while(1) {
     REGB0 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
@@ -521,38 +521,38 @@ void standard___collection___hash_collection___HashCollection___raz(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
-    /* ./../lib/standard//collection//hash_collection.nit:142 */
+    /* ../lib/standard/collection/hash_collection.nit:142 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//hash_collection.nit:143 */
+      /* ../lib/standard/collection/hash_collection.nit:143 */
       fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashCollection____array(fra.me.REG[0]);
       REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 143);
       }
-      /* ./../lib/standard//collection//array.nit:719 */
+      /* ../lib/standard/collection/array.nit:719 */
       ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB1)]=NIT_NULL;
-      /* ./../lib/standard//collection//hash_collection.nit:144 */
+      /* ../lib/standard/collection/hash_collection.nit:144 */
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
-      /* ./../lib/standard//collection//hash_collection.nit:144 */
+      /* ../lib/standard/collection/hash_collection.nit:144 */
       REGB1 = REGB0;
     } else {
-      /* ./../lib/standard//collection//hash_collection.nit:142 */
+      /* ../lib/standard/collection/hash_collection.nit:142 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//collection//hash_collection.nit:146 */
+  /* ../lib/standard/collection/hash_collection.nit:146 */
   REGB1 = TAG_Int(0);
   ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]) = REGB1;
-  /* ./../lib/standard//collection//hash_collection.nit:147 */
+  /* ../lib/standard/collection/hash_collection.nit:147 */
   ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]) = NIT_NULL;
-  /* ./../lib/standard//collection//hash_collection.nit:148 */
+  /* ../lib/standard/collection/hash_collection.nit:148 */
   ATTR_standard___collection___hash_collection___HashCollection____last_item(fra.me.REG[0]) = NIT_NULL;
-  /* ./../lib/standard//collection//hash_collection.nit:149 */
+  /* ../lib/standard/collection/hash_collection.nit:149 */
   ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = NIT_NULL;
   stack_frame_head = fra.me.prev;
   return;
@@ -577,14 +577,14 @@ void standard___collection___hash_collection___HashCollection___enlarge(val_t p0
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:155 */
+  /* ../lib/standard/collection/hash_collection.nit:155 */
   REGB1 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___hash_collection, 155);
   }
   REGB1 = ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0]);
-  /* ./../lib/standard//collection//hash_collection.nit:157 */
+  /* ../lib/standard/collection/hash_collection.nit:157 */
   REGB2 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -592,16 +592,16 @@ void standard___collection___hash_collection___HashCollection___enlarge(val_t p0
   }
   REGB2 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
   REGB3 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
   REGB2 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
-  /* ./../lib/standard//collection//hash_collection.nit:157 */
+  /* ../lib/standard/collection/hash_collection.nit:157 */
   if (UNTAG_Bool(REGB3)) {
     REGB3 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB3)) {
@@ -610,12 +610,12 @@ void standard___collection___hash_collection___HashCollection___enlarge(val_t p0
     }
     REGB3 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
     REGB2 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB2 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//hash_collection.nit:157 */
+    /* ../lib/standard/collection/hash_collection.nit:157 */
     REGB0 = REGB2;
   }
-  /* ./../lib/standard//collection//hash_collection.nit:158 */
+  /* ../lib/standard/collection/hash_collection.nit:158 */
   REGB2 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -627,25 +627,25 @@ void standard___collection___hash_collection___HashCollection___enlarge(val_t p0
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:231 */
+  /* ../lib/standard/kernel.nit:231 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB2));
-  /* ./../lib/standard//collection//hash_collection.nit:158 */
+  /* ../lib/standard/collection/hash_collection.nit:158 */
   if (UNTAG_Bool(REGB2)) {
     goto label1;
   }
-  /* ./../lib/standard//collection//hash_collection.nit:159 */
+  /* ../lib/standard/collection/hash_collection.nit:159 */
   ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0]) = REGB0;
-  /* ./../lib/standard//collection//hash_collection.nit:160 */
+  /* ../lib/standard/collection/hash_collection.nit:160 */
   ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = NIT_NULL;
-  /* ./../lib/standard//collection//array.nit:712 */
+  /* ../lib/standard/collection/array.nit:712 */
   fra.me.REG[1] = NEW_NativeArray(UNTAG_Int(REGB0), sizeof(val_t));
-  /* ./../lib/standard//collection//hash_collection.nit:164 */
+  /* ../lib/standard/collection/hash_collection.nit:164 */
   ATTR_standard___collection___hash_collection___HashCollection____array(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:167 */
+  /* ../lib/standard/collection/hash_collection.nit:167 */
   REGB2 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
-  /* ./../lib/standard//collection//hash_collection.nit:168 */
+  /* ../lib/standard/collection/hash_collection.nit:168 */
   while(1) {
     REGB0 = TAG_Int(0);
     REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
@@ -653,25 +653,25 @@ void standard___collection___hash_collection___HashCollection___enlarge(val_t p0
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB0));
-    /* ./../lib/standard//collection//hash_collection.nit:168 */
+    /* ../lib/standard/collection/hash_collection.nit:168 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//array.nit:719 */
+      /* ../lib/standard/collection/array.nit:719 */
       ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB2)]=NIT_NULL;
-      /* ./../lib/standard//collection//hash_collection.nit:170 */
+      /* ../lib/standard/collection/hash_collection.nit:170 */
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB0 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB0));
-      /* ./../lib/standard//collection//hash_collection.nit:170 */
+      /* ../lib/standard/collection/hash_collection.nit:170 */
       REGB2 = REGB0;
     } else {
-      /* ./../lib/standard//collection//hash_collection.nit:168 */
+      /* ../lib/standard/collection/hash_collection.nit:168 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//collection//hash_collection.nit:173 */
+  /* ../lib/standard/collection/hash_collection.nit:173 */
   REGB2 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -683,15 +683,15 @@ void standard___collection___hash_collection___HashCollection___enlarge(val_t p0
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:231 */
+  /* ../lib/standard/kernel.nit:231 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//hash_collection.nit:173 */
+  /* ../lib/standard/collection/hash_collection.nit:173 */
   if (UNTAG_Bool(REGB1)) {
     goto label1;
   }
-  /* ./../lib/standard//collection//hash_collection.nit:176 */
+  /* ../lib/standard/collection/hash_collection.nit:176 */
   fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
-  /* ./../lib/standard//collection//hash_collection.nit:177 */
+  /* ../lib/standard/collection/hash_collection.nit:177 */
   while(1) {
     REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -707,7 +707,7 @@ void standard___collection___hash_collection___HashCollection___enlarge(val_t p0
     }
     REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//hash_collection.nit:178 */
+      /* ../lib/standard/collection/hash_collection.nit:178 */
       REGB1 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[2])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -715,13 +715,13 @@ void standard___collection___hash_collection___HashCollection___enlarge(val_t p0
       }
       fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[2]);
       REGB1 = CALL_standard___collection___hash_collection___HashCollection___index_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB1)];
-      /* ./../lib/standard//collection//array.nit:719 */
+      /* ../lib/standard/collection/array.nit:719 */
       ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB1)]=fra.me.REG[2];
-      /* ./../lib/standard//collection//hash_collection.nit:182 */
+      /* ../lib/standard/collection/hash_collection.nit:182 */
       ATTR_standard___collection___hash_collection___HashNode____next_in_bucklet(fra.me.REG[2]) = fra.me.REG[3];
-      /* ./../lib/standard//collection//hash_collection.nit:183 */
+      /* ../lib/standard/collection/hash_collection.nit:183 */
       REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -738,11 +738,11 @@ void standard___collection___hash_collection___HashCollection___enlarge(val_t p0
       if (UNTAG_Bool(REGB1)) {
         ATTR_standard___collection___hash_collection___HashNode____prev_in_bucklet(fra.me.REG[3]) = fra.me.REG[2];
       }
-      /* ./../lib/standard//collection//hash_collection.nit:184 */
+      /* ../lib/standard/collection/hash_collection.nit:184 */
       fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[2]);
       fra.me.REG[2] = fra.me.REG[3];
     } else {
-      /* ./../lib/standard//collection//hash_collection.nit:177 */
+      /* ../lib/standard/collection/hash_collection.nit:177 */
       goto label3;
     }
   }
@@ -779,7 +779,7 @@ val_t standard___collection___hash_collection___HashNode___next_item(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:192 */
+  /* ../lib/standard/collection/hash_collection.nit:192 */
   fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -798,7 +798,7 @@ void standard___collection___hash_collection___HashNode___next_item__eq(val_t p0
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:192 */
+  /* ../lib/standard/collection/hash_collection.nit:192 */
   ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -815,7 +815,7 @@ val_t standard___collection___hash_collection___HashNode___prev_item(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:193 */
+  /* ../lib/standard/collection/hash_collection.nit:193 */
   fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashNode____prev_item(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -834,7 +834,7 @@ void standard___collection___hash_collection___HashNode___prev_item__eq(val_t p0
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:193 */
+  /* ../lib/standard/collection/hash_collection.nit:193 */
   ATTR_standard___collection___hash_collection___HashNode____prev_item(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -855,7 +855,7 @@ void standard___collection___hash_collection___HashNode___init(val_t p0, val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:198 */
+  /* ../lib/standard/collection/hash_collection.nit:198 */
   ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
@@ -877,9 +877,9 @@ val_t standard___collection___hash_collection___HashMap_____bra(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:210 */
+  /* ../lib/standard/collection/hash_collection.nit:210 */
   fra.me.REG[1] = CALL_standard___collection___hash_collection___HashCollection___node_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./../lib/standard//collection//hash_collection.nit:211 */
+  /* ../lib/standard/collection/hash_collection.nit:211 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -893,10 +893,10 @@ val_t standard___collection___hash_collection___HashMap_____bra(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//collection//hash_collection.nit:212 */
+    /* ../lib/standard/collection/hash_collection.nit:212 */
     nit_abort("Aborted", NULL, LOCATE_standard___collection___hash_collection, 212);
   } else {
-    /* ./../lib/standard//collection//hash_collection.nit:214 */
+    /* ../lib/standard/collection/hash_collection.nit:214 */
     fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[1]);
     goto label1;
   }
@@ -916,7 +916,7 @@ val_t standard___collection___hash_collection___HashMap___iterator(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:218 */
+  /* ../lib/standard/collection/hash_collection.nit:218 */
   fra.me.REG[0] = NEW_HashMapIterator_standard___collection___hash_collection___HashMapIterator___init(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -943,9 +943,9 @@ void standard___collection___hash_collection___HashMap___iterate(val_t p0, struc
   fra.me.closure_funs = CREG;
   fra.me.REG[0] = p0;
   CREG[0] = clos_fun0;
-  /* ./../lib/standard//collection//hash_collection.nit:223 */
+  /* ../lib/standard/collection/hash_collection.nit:223 */
   fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
-  /* ./../lib/standard//collection//hash_collection.nit:224 */
+  /* ../lib/standard/collection/hash_collection.nit:224 */
   while(1) {
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -961,7 +961,7 @@ void standard___collection___hash_collection___HashMap___iterate(val_t p0, struc
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//hash_collection.nit:225 */
+      /* ../lib/standard/collection/hash_collection.nit:225 */
       REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -973,11 +973,11 @@ void standard___collection___hash_collection___HashMap___iterate(val_t p0, struc
       if (closctx_param->has_broke) {
         goto label1;
       }
-      /* ./../lib/standard//collection//hash_collection.nit:226 */
+      /* ../lib/standard/collection/hash_collection.nit:226 */
       fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[0]);
       fra.me.REG[0] = fra.me.REG[2];
     } else {
-      /* ./../lib/standard//collection//hash_collection.nit:224 */
+      /* ../lib/standard/collection/hash_collection.nit:224 */
       goto label2;
     }
   }
@@ -999,7 +999,7 @@ val_t standard___collection___hash_collection___HashMap___length(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:230 */
+  /* ../lib/standard/collection/hash_collection.nit:230 */
   REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1026,7 +1026,7 @@ val_t standard___collection___hash_collection___HashMap___is_empty(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:232 */
+  /* ../lib/standard/collection/hash_collection.nit:232 */
   REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1037,9 +1037,9 @@ val_t standard___collection___hash_collection___HashMap___is_empty(val_t p0){
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./../lib/standard//collection//hash_collection.nit:232 */
+    /* ../lib/standard/collection/hash_collection.nit:232 */
     REGB2 = REGB1;
   }
   goto label1;
@@ -1067,11 +1067,11 @@ void standard___collection___hash_collection___HashMap_____braeq(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/standard//collection//hash_collection.nit:236 */
+  /* ../lib/standard/collection/hash_collection.nit:236 */
   REGB0 = CALL_standard___collection___hash_collection___HashCollection___index_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./../lib/standard//collection//hash_collection.nit:237 */
+  /* ../lib/standard/collection/hash_collection.nit:237 */
   fra.me.REG[3] = CALL_standard___collection___hash_collection___HashCollection___node_at_idx(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
-  /* ./../lib/standard//collection//hash_collection.nit:238 */
+  /* ../lib/standard/collection/hash_collection.nit:238 */
   REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -1086,12 +1086,12 @@ void standard___collection___hash_collection___HashMap_____braeq(val_t p0, val_t
   }
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//collection//hash_collection.nit:239 */
+    /* ../lib/standard/collection/hash_collection.nit:239 */
     ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[3]) = fra.me.REG[1];
-    /* ./../lib/standard//collection//hash_collection.nit:240 */
+    /* ../lib/standard/collection/hash_collection.nit:240 */
     ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[3]) = fra.me.REG[2];
   } else {
-    /* ./../lib/standard//collection//hash_collection.nit:242 */
+    /* ../lib/standard/collection/hash_collection.nit:242 */
     fra.me.REG[2] = NEW_HashMapNode_standard___collection___hash_collection___HashMapNode___init(fra.me.REG[1], fra.me.REG[2]);
     CALL_standard___collection___hash_collection___HashCollection___store(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[2]);
   }
@@ -1110,7 +1110,7 @@ void standard___collection___hash_collection___HashMap___clear(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:246 */
+  /* ../lib/standard/collection/hash_collection.nit:246 */
   CALL_standard___collection___hash_collection___HashCollection___raz(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
@@ -1131,16 +1131,16 @@ void standard___collection___hash_collection___HashMap___init(val_t p0, int* ini
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:248 */
+  /* ../lib/standard/collection/hash_collection.nit:248 */
   fra.me.REG[1] = fra.me.REG[0];
   CALL_standard___collection___hash_collection___HashCollection___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./../lib/standard//collection//hash_collection.nit:250 */
+  /* ../lib/standard/collection/hash_collection.nit:250 */
   REGB0 = TAG_Int(0);
   ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[1]) = REGB0;
-  /* ./../lib/standard//collection//hash_collection.nit:251 */
+  /* ../lib/standard/collection/hash_collection.nit:251 */
   REGB0 = TAG_Int(0);
   ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[1]) = REGB0;
-  /* ./../lib/standard//collection//hash_collection.nit:252 */
+  /* ../lib/standard/collection/hash_collection.nit:252 */
   REGB0 = TAG_Int(0);
   CALL_standard___collection___hash_collection___HashCollection___enlarge(fra.me.REG[1])(fra.me.REG[1], REGB0);
   stack_frame_head = fra.me.prev;
@@ -1160,7 +1160,7 @@ val_t standard___collection___hash_collection___HashMap___keys(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:255 */
+  /* ../lib/standard/collection/hash_collection.nit:255 */
   REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashMap_____atkeys(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1184,7 +1184,7 @@ void standard___collection___hash_collection___HashMap___keys__eq(val_t p0, val_
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:255 */
+  /* ../lib/standard/collection/hash_collection.nit:255 */
   ATTR_standard___collection___hash_collection___HashMap_____atkeys(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1202,7 +1202,7 @@ val_t standard___collection___hash_collection___HashMap___values(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:256 */
+  /* ../lib/standard/collection/hash_collection.nit:256 */
   REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashMap_____atvalues(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1226,7 +1226,7 @@ void standard___collection___hash_collection___HashMap___values__eq(val_t p0, va
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:256 */
+  /* ../lib/standard/collection/hash_collection.nit:256 */
   ATTR_standard___collection___hash_collection___HashMap_____atvalues(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1244,7 +1244,7 @@ val_t standard___collection___hash_collection___HashMapKeys___map(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:262 */
+  /* ../lib/standard/collection/hash_collection.nit:262 */
   REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashMapKeys_____atmap(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1268,7 +1268,7 @@ void standard___collection___hash_collection___HashMapKeys___map__eq(val_t p0, v
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:262 */
+  /* ../lib/standard/collection/hash_collection.nit:262 */
   ATTR_standard___collection___hash_collection___HashMapKeys_____atmap(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1289,7 +1289,7 @@ val_t standard___collection___hash_collection___HashMapKeys___count(val_t p0, va
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:265 */
+  /* ../lib/standard/collection/hash_collection.nit:265 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Int(1);
@@ -1316,7 +1316,7 @@ val_t standard___collection___hash_collection___HashMapKeys___first(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:266 */
+  /* ../lib/standard/collection/hash_collection.nit:266 */
   fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
@@ -1350,7 +1350,7 @@ val_t standard___collection___hash_collection___HashMapKeys___has(val_t p0, val_
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:267 */
+  /* ../lib/standard/collection/hash_collection.nit:267 */
   fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_standard___collection___hash_collection___HashCollection___node_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
@@ -1388,7 +1388,7 @@ val_t standard___collection___hash_collection___HashMapKeys___has_only(val_t p0,
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:268 */
+  /* ../lib/standard/collection/hash_collection.nit:268 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
     REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
@@ -1396,9 +1396,9 @@ val_t standard___collection___hash_collection___HashMapKeys___has_only(val_t p0,
     REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
     if (UNTAG_Bool(REGB2)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB1 = TAG_Bool((REGB0)==(REGB1));
-      /* ./../lib/standard//collection//hash_collection.nit:268 */
+      /* ../lib/standard/collection/hash_collection.nit:268 */
       REGB2 = REGB1;
     }
   } else {
@@ -1429,7 +1429,7 @@ val_t standard___collection___hash_collection___HashMapKeys___is_empty(val_t p0)
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:269 */
+  /* ../lib/standard/collection/hash_collection.nit:269 */
   fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___is_empty(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -1450,7 +1450,7 @@ val_t standard___collection___hash_collection___HashMapKeys___length(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:270 */
+  /* ../lib/standard/collection/hash_collection.nit:270 */
   fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___length(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -1470,7 +1470,7 @@ val_t standard___collection___hash_collection___HashMapKeys___iterator(val_t p0)
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:272 */
+  /* ../lib/standard/collection/hash_collection.nit:272 */
   fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = NEW_MapKeysIterator_standard___collection___abstract_collection___MapKeysIterator___init(fra.me.REG[0]);
@@ -1491,7 +1491,7 @@ void standard___collection___hash_collection___HashMapKeys___clear(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:274 */
+  /* ../lib/standard/collection/hash_collection.nit:274 */
   fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Map___clear(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1511,7 +1511,7 @@ void standard___collection___hash_collection___HashMapKeys___remove(val_t p0, va
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:276 */
+  /* ../lib/standard/collection/hash_collection.nit:276 */
   fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___hash_collection___HashCollection___remove_node(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
@@ -1531,7 +1531,7 @@ void standard___collection___hash_collection___HashMapKeys___remove_all(val_t p0
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:277 */
+  /* ../lib/standard/collection/hash_collection.nit:277 */
   fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___hash_collection___HashCollection___remove_node(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
@@ -1571,7 +1571,7 @@ val_t standard___collection___hash_collection___HashMapValues___map(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:283 */
+  /* ../lib/standard/collection/hash_collection.nit:283 */
   REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashMapValues_____atmap(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1595,7 +1595,7 @@ void standard___collection___hash_collection___HashMapValues___map__eq(val_t p0,
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:283 */
+  /* ../lib/standard/collection/hash_collection.nit:283 */
   ATTR_standard___collection___hash_collection___HashMapValues_____atmap(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1618,12 +1618,12 @@ val_t standard___collection___hash_collection___HashMapValues___count(val_t p0,
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:288 */
+  /* ../lib/standard/collection/hash_collection.nit:288 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//hash_collection.nit:289 */
+  /* ../lib/standard/collection/hash_collection.nit:289 */
   fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
-  /* ./../lib/standard//collection//hash_collection.nit:290 */
+  /* ../lib/standard/collection/hash_collection.nit:290 */
   while(1) {
     REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -1639,7 +1639,7 @@ val_t standard___collection___hash_collection___HashMapValues___count(val_t p0,
     }
     REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//hash_collection.nit:291 */
+      /* ../lib/standard/collection/hash_collection.nit:291 */
       fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[0]);
       REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
       if (UNTAG_Bool(REGB1)) {
@@ -1655,21 +1655,21 @@ val_t standard___collection___hash_collection___HashMapValues___count(val_t p0,
       }
       if (UNTAG_Bool(REGB1)) {
         REGB1 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//hash_collection.nit:291 */
+        /* ../lib/standard/collection/hash_collection.nit:291 */
         REGB0 = REGB1;
       }
-      /* ./../lib/standard//collection//hash_collection.nit:292 */
+      /* ../lib/standard/collection/hash_collection.nit:292 */
       fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[0]);
       fra.me.REG[0] = fra.me.REG[2];
     } else {
-      /* ./../lib/standard//collection//hash_collection.nit:290 */
+      /* ../lib/standard/collection/hash_collection.nit:290 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//collection//hash_collection.nit:294 */
+  /* ../lib/standard/collection/hash_collection.nit:294 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -1688,7 +1688,7 @@ val_t standard___collection___hash_collection___HashMapValues___first(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:296 */
+  /* ../lib/standard/collection/hash_collection.nit:296 */
   fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
@@ -1718,10 +1718,10 @@ val_t standard___collection___hash_collection___HashMapValues___has(val_t p0, va
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:300 */
+  /* ../lib/standard/collection/hash_collection.nit:300 */
   fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
-  /* ./../lib/standard//collection//hash_collection.nit:301 */
+  /* ../lib/standard/collection/hash_collection.nit:301 */
   while(1) {
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -1737,7 +1737,7 @@ val_t standard___collection___hash_collection___HashMapValues___has(val_t p0, va
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//hash_collection.nit:302 */
+      /* ../lib/standard/collection/hash_collection.nit:302 */
       fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[0]);
       REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
       if (UNTAG_Bool(REGB0)) {
@@ -1755,16 +1755,16 @@ val_t standard___collection___hash_collection___HashMapValues___has(val_t p0, va
         REGB0 = TAG_Bool(true);
         goto label1;
       }
-      /* ./../lib/standard//collection//hash_collection.nit:303 */
+      /* ../lib/standard/collection/hash_collection.nit:303 */
       fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[0]);
       fra.me.REG[0] = fra.me.REG[2];
     } else {
-      /* ./../lib/standard//collection//hash_collection.nit:301 */
+      /* ../lib/standard/collection/hash_collection.nit:301 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//collection//hash_collection.nit:305 */
+  /* ../lib/standard/collection/hash_collection.nit:305 */
   REGB1 = TAG_Bool(false);
   REGB0 = REGB1;
   goto label1;
@@ -1789,10 +1789,10 @@ val_t standard___collection___hash_collection___HashMapValues___has_only(val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:310 */
+  /* ../lib/standard/collection/hash_collection.nit:310 */
   fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
-  /* ./../lib/standard//collection//hash_collection.nit:311 */
+  /* ../lib/standard/collection/hash_collection.nit:311 */
   while(1) {
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -1808,7 +1808,7 @@ val_t standard___collection___hash_collection___HashMapValues___has_only(val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//hash_collection.nit:312 */
+      /* ../lib/standard/collection/hash_collection.nit:312 */
       fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[0]);
       REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
       if (UNTAG_Bool(REGB0)) {
@@ -1827,16 +1827,16 @@ val_t standard___collection___hash_collection___HashMapValues___has_only(val_t p
         REGB0 = TAG_Bool(false);
         goto label1;
       }
-      /* ./../lib/standard//collection//hash_collection.nit:313 */
+      /* ../lib/standard/collection/hash_collection.nit:313 */
       fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[0]);
       fra.me.REG[0] = fra.me.REG[2];
     } else {
-      /* ./../lib/standard//collection//hash_collection.nit:311 */
+      /* ../lib/standard/collection/hash_collection.nit:311 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//collection//hash_collection.nit:315 */
+  /* ../lib/standard/collection/hash_collection.nit:315 */
   REGB1 = TAG_Bool(true);
   REGB0 = REGB1;
   goto label1;
@@ -1857,7 +1857,7 @@ val_t standard___collection___hash_collection___HashMapValues___is_empty(val_t p
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:318 */
+  /* ../lib/standard/collection/hash_collection.nit:318 */
   fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___is_empty(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -1878,7 +1878,7 @@ val_t standard___collection___hash_collection___HashMapValues___length(val_t p0)
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:319 */
+  /* ../lib/standard/collection/hash_collection.nit:319 */
   fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___length(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -1898,7 +1898,7 @@ val_t standard___collection___hash_collection___HashMapValues___iterator(val_t p
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:321 */
+  /* ../lib/standard/collection/hash_collection.nit:321 */
   fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = NEW_MapValuesIterator_standard___collection___abstract_collection___MapValuesIterator___init(fra.me.REG[0]);
@@ -1919,7 +1919,7 @@ void standard___collection___hash_collection___HashMapValues___clear(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:323 */
+  /* ../lib/standard/collection/hash_collection.nit:323 */
   fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Map___clear(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -1943,11 +1943,11 @@ void standard___collection___hash_collection___HashMapValues___remove(val_t p0,
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:327 */
+  /* ../lib/standard/collection/hash_collection.nit:327 */
   fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//hash_collection.nit:328 */
+  /* ../lib/standard/collection/hash_collection.nit:328 */
   fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
-  /* ./../lib/standard//collection//hash_collection.nit:329 */
+  /* ../lib/standard/collection/hash_collection.nit:329 */
   while(1) {
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -1963,7 +1963,7 @@ void standard___collection___hash_collection___HashMapValues___remove(val_t p0,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//hash_collection.nit:330 */
+      /* ../lib/standard/collection/hash_collection.nit:330 */
       fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[2]);
       REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[1]));
       if (UNTAG_Bool(REGB0)) {
@@ -1978,7 +1978,7 @@ void standard___collection___hash_collection___HashMapValues___remove(val_t p0,
         }
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./../lib/standard//collection//hash_collection.nit:331 */
+        /* ../lib/standard/collection/hash_collection.nit:331 */
         REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[2])!=NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
         } else {
@@ -1986,14 +1986,14 @@ void standard___collection___hash_collection___HashMapValues___remove(val_t p0,
         }
         fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[2]);
         CALL_standard___collection___hash_collection___HashCollection___remove_node(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-        /* ./../lib/standard//collection//hash_collection.nit:332 */
+        /* ../lib/standard/collection/hash_collection.nit:332 */
         goto label1;
       }
-      /* ./../lib/standard//collection//hash_collection.nit:334 */
+      /* ../lib/standard/collection/hash_collection.nit:334 */
       fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[2]);
       fra.me.REG[2] = fra.me.REG[3];
     } else {
-      /* ./../lib/standard//collection//hash_collection.nit:329 */
+      /* ../lib/standard/collection/hash_collection.nit:329 */
       goto label2;
     }
   }
@@ -2020,11 +2020,11 @@ void standard___collection___hash_collection___HashMapValues___remove_all(val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:340 */
+  /* ../lib/standard/collection/hash_collection.nit:340 */
   fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//hash_collection.nit:341 */
+  /* ../lib/standard/collection/hash_collection.nit:341 */
   fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
-  /* ./../lib/standard//collection//hash_collection.nit:342 */
+  /* ../lib/standard/collection/hash_collection.nit:342 */
   while(1) {
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -2040,7 +2040,7 @@ void standard___collection___hash_collection___HashMapValues___remove_all(val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//hash_collection.nit:343 */
+      /* ../lib/standard/collection/hash_collection.nit:343 */
       fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[2]);
       REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[1]));
       if (UNTAG_Bool(REGB0)) {
@@ -2055,7 +2055,7 @@ void standard___collection___hash_collection___HashMapValues___remove_all(val_t
         }
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./../lib/standard//collection//hash_collection.nit:344 */
+        /* ../lib/standard/collection/hash_collection.nit:344 */
         REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[2])!=NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
         } else {
@@ -2064,11 +2064,11 @@ void standard___collection___hash_collection___HashMapValues___remove_all(val_t
         fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[2]);
         CALL_standard___collection___hash_collection___HashCollection___remove_node(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
       }
-      /* ./../lib/standard//collection//hash_collection.nit:346 */
+      /* ../lib/standard/collection/hash_collection.nit:346 */
       fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[2]);
       fra.me.REG[2] = fra.me.REG[3];
     } else {
-      /* ./../lib/standard//collection//hash_collection.nit:342 */
+      /* ../lib/standard/collection/hash_collection.nit:342 */
       goto label1;
     }
   }
@@ -2116,11 +2116,11 @@ void standard___collection___hash_collection___HashMapNode___init(val_t p0, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/standard//collection//hash_collection.nit:356 */
+  /* ../lib/standard/collection/hash_collection.nit:356 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./../lib/standard//collection//hash_collection.nit:358 */
+  /* ../lib/standard/collection/hash_collection.nit:358 */
   CALL_standard___collection___hash_collection___HashNode___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
-  /* ./../lib/standard//collection//hash_collection.nit:359 */
+  /* ../lib/standard/collection/hash_collection.nit:359 */
   ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[3]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos5] = 1;
@@ -2140,7 +2140,7 @@ val_t standard___collection___hash_collection___HashMapIterator___is_ok(val_t p0
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:365 */
+  /* ../lib/standard/collection/hash_collection.nit:365 */
   fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashMapIterator____node(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2173,13 +2173,13 @@ val_t standard___collection___hash_collection___HashMapIterator___item(val_t p0)
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:369 */
+  /* ../lib/standard/collection/hash_collection.nit:369 */
   REGB0 = CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_standard___collection___hash_collection, 369);
   }
-  /* ./../lib/standard//collection//hash_collection.nit:370 */
+  /* ../lib/standard/collection/hash_collection.nit:370 */
   fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashMapIterator____node(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2204,13 +2204,13 @@ val_t standard___collection___hash_collection___HashMapIterator___key(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:381 */
+  /* ../lib/standard/collection/hash_collection.nit:381 */
   REGB0 = CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_standard___collection___hash_collection, 381);
   }
-  /* ./../lib/standard//collection//hash_collection.nit:382 */
+  /* ../lib/standard/collection/hash_collection.nit:382 */
   fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashMapIterator____node(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2241,13 +2241,13 @@ void standard___collection___hash_collection___HashMapIterator___next(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:387 */
+  /* ../lib/standard/collection/hash_collection.nit:387 */
   REGB0 = CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_standard___collection___hash_collection, 387);
   }
-  /* ./../lib/standard//collection//hash_collection.nit:388 */
+  /* ../lib/standard/collection/hash_collection.nit:388 */
   fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashMapIterator____node(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2274,9 +2274,9 @@ void standard___collection___hash_collection___HashMapIterator___init(val_t p0,
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:399 */
+  /* ../lib/standard/collection/hash_collection.nit:399 */
   ATTR_standard___collection___hash_collection___HashMapIterator____map(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:400 */
+  /* ../lib/standard/collection/hash_collection.nit:400 */
   fra.me.REG[1] = CALL_standard___collection___hash_collection___HashCollection___first_item(fra.me.REG[1])(fra.me.REG[1]);
   ATTR_standard___collection___hash_collection___HashMapIterator____node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -2296,7 +2296,7 @@ val_t standard___collection___hash_collection___HashSet___length(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:410 */
+  /* ../lib/standard/collection/hash_collection.nit:410 */
   REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2323,7 +2323,7 @@ val_t standard___collection___hash_collection___HashSet___is_empty(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:412 */
+  /* ../lib/standard/collection/hash_collection.nit:412 */
   REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2334,9 +2334,9 @@ val_t standard___collection___hash_collection___HashSet___is_empty(val_t p0){
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./../lib/standard//collection//hash_collection.nit:412 */
+    /* ../lib/standard/collection/hash_collection.nit:412 */
     REGB2 = REGB1;
   }
   goto label1;
@@ -2359,7 +2359,7 @@ val_t standard___collection___hash_collection___HashSet___first(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:416 */
+  /* ../lib/standard/collection/hash_collection.nit:416 */
   REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2372,14 +2372,14 @@ val_t standard___collection___hash_collection___HashSet___first(val_t p0){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//hash_collection.nit:416 */
+  /* ../lib/standard/collection/hash_collection.nit:416 */
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_standard___collection___hash_collection, 416);
   }
-  /* ./../lib/standard//collection//hash_collection.nit:417 */
+  /* ../lib/standard/collection/hash_collection.nit:417 */
   fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
   REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -2412,7 +2412,7 @@ val_t standard___collection___hash_collection___HashSet___has(val_t p0, val_t p1
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:422 */
+  /* ../lib/standard/collection/hash_collection.nit:422 */
   fra.me.REG[1] = CALL_standard___collection___hash_collection___HashCollection___node_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2450,11 +2450,11 @@ void standard___collection___hash_collection___HashSet___add(val_t p0, val_t p1)
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:427 */
+  /* ../lib/standard/collection/hash_collection.nit:427 */
   REGB0 = CALL_standard___collection___hash_collection___HashCollection___index_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./../lib/standard//collection//hash_collection.nit:428 */
+  /* ../lib/standard/collection/hash_collection.nit:428 */
   fra.me.REG[2] = CALL_standard___collection___hash_collection___HashCollection___node_at_idx(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
-  /* ./../lib/standard//collection//hash_collection.nit:429 */
+  /* ../lib/standard/collection/hash_collection.nit:429 */
   REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -2469,10 +2469,10 @@ void standard___collection___hash_collection___HashSet___add(val_t p0, val_t p1)
   }
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//collection//hash_collection.nit:430 */
+    /* ../lib/standard/collection/hash_collection.nit:430 */
     ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[2]) = fra.me.REG[1];
   } else {
-    /* ./../lib/standard//collection//hash_collection.nit:432 */
+    /* ../lib/standard/collection/hash_collection.nit:432 */
     fra.me.REG[1] = NEW_HashSetNode_standard___collection___hash_collection___HashSetNode___init(fra.me.REG[1]);
     CALL_standard___collection___hash_collection___HashCollection___store(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
   }
@@ -2493,7 +2493,7 @@ void standard___collection___hash_collection___HashSet___remove(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:436 */
+  /* ../lib/standard/collection/hash_collection.nit:436 */
   CALL_standard___collection___hash_collection___HashCollection___remove_node(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -2510,7 +2510,7 @@ void standard___collection___hash_collection___HashSet___clear(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:438 */
+  /* ../lib/standard/collection/hash_collection.nit:438 */
   CALL_standard___collection___hash_collection___HashCollection___raz(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
@@ -2527,7 +2527,7 @@ val_t standard___collection___hash_collection___HashSet___iterator(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:440 */
+  /* ../lib/standard/collection/hash_collection.nit:440 */
   fra.me.REG[0] = NEW_HashSetIterator_standard___collection___hash_collection___HashSetIterator___init(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -2550,16 +2550,16 @@ void standard___collection___hash_collection___HashSet___init(val_t p0, int* ini
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:442 */
+  /* ../lib/standard/collection/hash_collection.nit:442 */
   fra.me.REG[1] = fra.me.REG[0];
   CALL_standard___collection___hash_collection___HashCollection___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./../lib/standard//collection//hash_collection.nit:444 */
+  /* ../lib/standard/collection/hash_collection.nit:444 */
   REGB0 = TAG_Int(0);
   ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[1]) = REGB0;
-  /* ./../lib/standard//collection//hash_collection.nit:445 */
+  /* ../lib/standard/collection/hash_collection.nit:445 */
   REGB0 = TAG_Int(0);
   ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[1]) = REGB0;
-  /* ./../lib/standard//collection//hash_collection.nit:446 */
+  /* ../lib/standard/collection/hash_collection.nit:446 */
   REGB0 = TAG_Int(0);
   CALL_standard___collection___hash_collection___HashCollection___enlarge(fra.me.REG[1])(fra.me.REG[1], REGB0);
   stack_frame_head = fra.me.prev;
@@ -2584,11 +2584,11 @@ void standard___collection___hash_collection___HashSetNode___init(val_t p0, val_
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:454 */
+  /* ../lib/standard/collection/hash_collection.nit:454 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
   CALL_standard___collection___hash_collection___HashNode___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
-  /* ./../lib/standard//collection//hash_collection.nit:456 */
+  /* ../lib/standard/collection/hash_collection.nit:456 */
   ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[2]) = fra.me.REG[3];
   stack_frame_head = fra.me.prev;
   init_table[itpos8] = 1;
@@ -2608,7 +2608,7 @@ val_t standard___collection___hash_collection___HashSetIterator___is_ok(val_t p0
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:462 */
+  /* ../lib/standard/collection/hash_collection.nit:462 */
   fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashSetIterator____node(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2641,13 +2641,13 @@ val_t standard___collection___hash_collection___HashSetIterator___item(val_t p0)
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:466 */
+  /* ../lib/standard/collection/hash_collection.nit:466 */
   REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_standard___collection___hash_collection, 466);
   }
-  /* ./../lib/standard//collection//hash_collection.nit:467 */
+  /* ../lib/standard/collection/hash_collection.nit:467 */
   fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashSetIterator____node(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2678,13 +2678,13 @@ void standard___collection___hash_collection___HashSetIterator___next(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//hash_collection.nit:472 */
+  /* ../lib/standard/collection/hash_collection.nit:472 */
   REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_standard___collection___hash_collection, 472);
   }
-  /* ./../lib/standard//collection//hash_collection.nit:473 */
+  /* ../lib/standard/collection/hash_collection.nit:473 */
   fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashSetIterator____node(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2711,9 +2711,9 @@ void standard___collection___hash_collection___HashSetIterator___init(val_t p0,
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//hash_collection.nit:484 */
+  /* ../lib/standard/collection/hash_collection.nit:484 */
   ATTR_standard___collection___hash_collection___HashSetIterator____set(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//hash_collection.nit:485 */
+  /* ../lib/standard/collection/hash_collection.nit:485 */
   fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[1]);
   ATTR_standard___collection___hash_collection___HashSetIterator____node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
index aece29b..7475c16 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/standard/collection/hash_collection. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/standard/collection/hash_collection. */
 #ifndef standard___collection___hash_collection_sep
 #define standard___collection___hash_collection_sep
 #include "standard___collection___array._sep.h"
index 456fd45..0888ac0 100644 (file)
@@ -14,7 +14,7 @@ val_t standard___collection___list___List_____bra(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//collection//list.nit:22 */
+  /* ../lib/standard/collection/list.nit:22 */
   fra.me.REG[0] = CALL_standard___collection___list___List___get_node(fra.me.REG[0])(fra.me.REG[0], REGB0);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -42,7 +42,7 @@ void standard___collection___list___List_____braeq(val_t p0, val_t p1, val_t p2)
   fra.me.REG[0] = p0;
   REGB0 = p1;
   fra.me.REG[1] = p2;
-  /* ./../lib/standard//collection//list.nit:24 */
+  /* ../lib/standard/collection/list.nit:24 */
   fra.me.REG[0] = CALL_standard___collection___list___List___get_node(fra.me.REG[0])(fra.me.REG[0], REGB0);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -65,7 +65,7 @@ val_t standard___collection___list___List___first(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//list.nit:27 */
+  /* ../lib/standard/collection/list.nit:27 */
   fra.me.REG[0] = ATTR_standard___collection___list___List____head(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -92,7 +92,7 @@ void standard___collection___list___List___first__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//list.nit:30 */
+  /* ../lib/standard/collection/list.nit:30 */
   fra.me.REG[0] = ATTR_standard___collection___list___List____head(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -115,7 +115,7 @@ val_t standard___collection___list___List___last(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//list.nit:33 */
+  /* ../lib/standard/collection/list.nit:33 */
   fra.me.REG[0] = ATTR_standard___collection___list___List____tail(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -142,7 +142,7 @@ void standard___collection___list___List___last__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//list.nit:36 */
+  /* ../lib/standard/collection/list.nit:36 */
   fra.me.REG[0] = ATTR_standard___collection___list___List____tail(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -166,7 +166,7 @@ val_t standard___collection___list___List___is_empty(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//list.nit:41 */
+  /* ../lib/standard/collection/list.nit:41 */
   fra.me.REG[0] = ATTR_standard___collection___list___List____head(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -201,11 +201,11 @@ val_t standard___collection___list___List___length(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//list.nit:46 */
+  /* ../lib/standard/collection/list.nit:46 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//list.nit:47 */
+  /* ../lib/standard/collection/list.nit:47 */
   fra.me.REG[0] = ATTR_standard___collection___list___List____head(fra.me.REG[0]);
-  /* ./../lib/standard//collection//list.nit:48 */
+  /* ../lib/standard/collection/list.nit:48 */
   while(1) {
     REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -221,13 +221,13 @@ val_t standard___collection___list___List___length(val_t p0){
     }
     REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//list.nit:49 */
+      /* ../lib/standard/collection/list.nit:49 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//list.nit:49 */
+      /* ../lib/standard/collection/list.nit:49 */
       REGB0 = REGB1;
-      /* ./../lib/standard//collection//list.nit:50 */
+      /* ../lib/standard/collection/list.nit:50 */
       REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___list, 50);
@@ -235,12 +235,12 @@ val_t standard___collection___list___List___length(val_t p0){
       fra.me.REG[1] = CALL_standard___collection___list___ListNode___next(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[0] = fra.me.REG[1];
     } else {
-      /* ./../lib/standard//collection//list.nit:48 */
+      /* ../lib/standard/collection/list.nit:48 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//collection//list.nit:52 */
+  /* ../lib/standard/collection/list.nit:52 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -263,7 +263,7 @@ val_t standard___collection___list___List___has(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//list.nit:56 */
+  /* ../lib/standard/collection/list.nit:56 */
   fra.me.REG[2] = ATTR_standard___collection___list___List____head(fra.me.REG[0]);
   fra.me.REG[2] = CALL_standard___collection___list___List___search_node_after(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -301,9 +301,9 @@ val_t standard___collection___list___List___has_only(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//list.nit:60 */
+  /* ../lib/standard/collection/list.nit:60 */
   fra.me.REG[0] = ATTR_standard___collection___list___List____head(fra.me.REG[0]);
-  /* ./../lib/standard//collection//list.nit:61 */
+  /* ../lib/standard/collection/list.nit:61 */
   while(1) {
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -319,7 +319,7 @@ val_t standard___collection___list___List___has_only(val_t p0, val_t p1){
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//list.nit:62 */
+      /* ../lib/standard/collection/list.nit:62 */
       REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___list, 62);
@@ -342,7 +342,7 @@ val_t standard___collection___list___List___has_only(val_t p0, val_t p1){
         REGB0 = TAG_Bool(false);
         goto label1;
       }
-      /* ./../lib/standard//collection//list.nit:63 */
+      /* ../lib/standard/collection/list.nit:63 */
       REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___list, 63);
@@ -350,12 +350,12 @@ val_t standard___collection___list___List___has_only(val_t p0, val_t p1){
       fra.me.REG[2] = CALL_standard___collection___list___ListNode___next(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[0] = fra.me.REG[2];
     } else {
-      /* ./../lib/standard//collection//list.nit:61 */
+      /* ../lib/standard/collection/list.nit:61 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//collection//list.nit:65 */
+  /* ../lib/standard/collection/list.nit:65 */
   REGB1 = TAG_Bool(true);
   REGB0 = REGB1;
   goto label1;
@@ -381,11 +381,11 @@ val_t standard___collection___list___List___count(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//list.nit:70 */
+  /* ../lib/standard/collection/list.nit:70 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//list.nit:71 */
+  /* ../lib/standard/collection/list.nit:71 */
   fra.me.REG[0] = ATTR_standard___collection___list___List____head(fra.me.REG[0]);
-  /* ./../lib/standard//collection//list.nit:72 */
+  /* ../lib/standard/collection/list.nit:72 */
   while(1) {
     REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -401,7 +401,7 @@ val_t standard___collection___list___List___count(val_t p0, val_t p1){
     }
     REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//list.nit:73 */
+      /* ../lib/standard/collection/list.nit:73 */
       REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___list, 73);
@@ -422,12 +422,12 @@ val_t standard___collection___list___List___count(val_t p0, val_t p1){
       REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
       if (UNTAG_Bool(REGB1)) {
         REGB1 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//list.nit:73 */
+        /* ../lib/standard/collection/list.nit:73 */
         REGB0 = REGB1;
       }
-      /* ./../lib/standard//collection//list.nit:74 */
+      /* ../lib/standard/collection/list.nit:74 */
       REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___list, 74);
@@ -435,12 +435,12 @@ val_t standard___collection___list___List___count(val_t p0, val_t p1){
       fra.me.REG[2] = CALL_standard___collection___list___ListNode___next(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[0] = fra.me.REG[2];
     } else {
-      /* ./../lib/standard//collection//list.nit:72 */
+      /* ../lib/standard/collection/list.nit:72 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//collection//list.nit:76 */
+  /* ../lib/standard/collection/list.nit:76 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -463,9 +463,9 @@ void standard___collection___list___List___push(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//list.nit:84 */
+  /* ../lib/standard/collection/list.nit:84 */
   fra.me.REG[1] = NEW_ListNode_standard___collection___list___ListNode___init(fra.me.REG[1]);
-  /* ./../lib/standard//collection//list.nit:85 */
+  /* ../lib/standard/collection/list.nit:85 */
   fra.me.REG[2] = ATTR_standard___collection___list___List____tail(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -480,21 +480,21 @@ void standard___collection___list___List___push(val_t p0, val_t p1){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//collection//list.nit:86 */
+    /* ../lib/standard/collection/list.nit:86 */
     ATTR_standard___collection___list___List____head(fra.me.REG[0]) = fra.me.REG[1];
   } else {
-    /* ./../lib/standard//collection//list.nit:88 */
+    /* ../lib/standard/collection/list.nit:88 */
     fra.me.REG[2] = ATTR_standard___collection___list___List____tail(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___collection___list, 88);
     }
     CALL_standard___collection___list___ListNode___next__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-    /* ./../lib/standard//collection//list.nit:89 */
+    /* ../lib/standard/collection/list.nit:89 */
     fra.me.REG[2] = ATTR_standard___collection___list___List____tail(fra.me.REG[0]);
     CALL_standard___collection___list___ListNode___prev__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
-  /* ./../lib/standard//collection//list.nit:91 */
+  /* ../lib/standard/collection/list.nit:91 */
   ATTR_standard___collection___list___List____tail(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -516,9 +516,9 @@ void standard___collection___list___List___unshift(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//list.nit:97 */
+  /* ../lib/standard/collection/list.nit:97 */
   fra.me.REG[1] = NEW_ListNode_standard___collection___list___ListNode___init(fra.me.REG[1]);
-  /* ./../lib/standard//collection//list.nit:98 */
+  /* ../lib/standard/collection/list.nit:98 */
   fra.me.REG[2] = ATTR_standard___collection___list___List____head(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -533,13 +533,13 @@ void standard___collection___list___List___unshift(val_t p0, val_t p1){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//collection//list.nit:99 */
+    /* ../lib/standard/collection/list.nit:99 */
     ATTR_standard___collection___list___List____tail(fra.me.REG[0]) = fra.me.REG[1];
   } else {
-    /* ./../lib/standard//collection//list.nit:101 */
+    /* ../lib/standard/collection/list.nit:101 */
     fra.me.REG[2] = ATTR_standard___collection___list___List____head(fra.me.REG[0]);
     CALL_standard___collection___list___ListNode___next__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-    /* ./../lib/standard//collection//list.nit:102 */
+    /* ../lib/standard/collection/list.nit:102 */
     fra.me.REG[2] = ATTR_standard___collection___list___List____head(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -547,7 +547,7 @@ void standard___collection___list___List___unshift(val_t p0, val_t p1){
     }
     CALL_standard___collection___list___ListNode___prev__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   }
-  /* ./../lib/standard//collection//list.nit:104 */
+  /* ../lib/standard/collection/list.nit:104 */
   ATTR_standard___collection___list___List____head(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -570,7 +570,7 @@ void standard___collection___list___List___link(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//list.nit:112 */
+  /* ../lib/standard/collection/list.nit:112 */
   fra.me.REG[2] = ATTR_standard___collection___list___List____tail(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -585,11 +585,11 @@ void standard___collection___list___List___link(val_t p0, val_t p1){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//collection//list.nit:113 */
+    /* ../lib/standard/collection/list.nit:113 */
     fra.me.REG[2] = ATTR_standard___collection___list___List____head(fra.me.REG[1]);
     ATTR_standard___collection___list___List____head(fra.me.REG[0]) = fra.me.REG[2];
   } else {
-    /* ./../lib/standard//collection//list.nit:114 */
+    /* ../lib/standard/collection/list.nit:114 */
     fra.me.REG[2] = ATTR_standard___collection___list___List____head(fra.me.REG[1]);
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -605,7 +605,7 @@ void standard___collection___list___List___link(val_t p0, val_t p1){
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//list.nit:115 */
+      /* ../lib/standard/collection/list.nit:115 */
       fra.me.REG[2] = ATTR_standard___collection___list___List____tail(fra.me.REG[0]);
       fra.me.REG[3] = ATTR_standard___collection___list___List____head(fra.me.REG[1]);
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -613,7 +613,7 @@ void standard___collection___list___List___link(val_t p0, val_t p1){
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___list, 115);
       }
       CALL_standard___collection___list___ListNode___next__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-      /* ./../lib/standard//collection//list.nit:116 */
+      /* ../lib/standard/collection/list.nit:116 */
       fra.me.REG[3] = ATTR_standard___collection___list___List____tail(fra.me.REG[0]);
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
@@ -628,10 +628,10 @@ void standard___collection___list___List___link(val_t p0, val_t p1){
       CALL_standard___collection___list___ListNode___prev__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
     }
   }
-  /* ./../lib/standard//collection//list.nit:118 */
+  /* ../lib/standard/collection/list.nit:118 */
   fra.me.REG[2] = ATTR_standard___collection___list___List____tail(fra.me.REG[1]);
   ATTR_standard___collection___list___List____tail(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./../lib/standard//collection//list.nit:119 */
+  /* ../lib/standard/collection/list.nit:119 */
   CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[1])(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -652,22 +652,22 @@ val_t standard___collection___list___List___pop(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//list.nit:127 */
+  /* ../lib/standard/collection/list.nit:127 */
   fra.me.REG[1] = ATTR_standard___collection___list___List____tail(fra.me.REG[0]);
-  /* ./../lib/standard//collection//list.nit:128 */
+  /* ../lib/standard/collection/list.nit:128 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___list, 128);
   }
   fra.me.REG[2] = CALL_standard___collection___list___ListNode___prev(fra.me.REG[1])(fra.me.REG[1]);
   ATTR_standard___collection___list___List____tail(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./../lib/standard//collection//list.nit:129 */
+  /* ../lib/standard/collection/list.nit:129 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___list, 129);
   }
   CALL_standard___collection___list___ListNode___prev__eq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-  /* ./../lib/standard//collection//list.nit:130 */
+  /* ../lib/standard/collection/list.nit:130 */
   fra.me.REG[2] = ATTR_standard___collection___list___List____tail(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -682,10 +682,10 @@ val_t standard___collection___list___List___pop(val_t p0){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//collection//list.nit:131 */
+    /* ../lib/standard/collection/list.nit:131 */
     ATTR_standard___collection___list___List____head(fra.me.REG[0]) = NIT_NULL;
   } else {
-    /* ./../lib/standard//collection//list.nit:133 */
+    /* ../lib/standard/collection/list.nit:133 */
     fra.me.REG[0] = ATTR_standard___collection___list___List____tail(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -693,7 +693,7 @@ val_t standard___collection___list___List___pop(val_t p0){
     }
     CALL_standard___collection___list___ListNode___next__eq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
   }
-  /* ./../lib/standard//collection//list.nit:135 */
+  /* ../lib/standard/collection/list.nit:135 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___list, 135);
@@ -720,22 +720,22 @@ val_t standard___collection___list___List___shift(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//list.nit:141 */
+  /* ../lib/standard/collection/list.nit:141 */
   fra.me.REG[1] = ATTR_standard___collection___list___List____head(fra.me.REG[0]);
-  /* ./../lib/standard//collection//list.nit:142 */
+  /* ../lib/standard/collection/list.nit:142 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___list, 142);
   }
   fra.me.REG[2] = CALL_standard___collection___list___ListNode___next(fra.me.REG[1])(fra.me.REG[1]);
   ATTR_standard___collection___list___List____head(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./../lib/standard//collection//list.nit:143 */
+  /* ../lib/standard/collection/list.nit:143 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___list, 143);
   }
   CALL_standard___collection___list___ListNode___next__eq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-  /* ./../lib/standard//collection//list.nit:144 */
+  /* ../lib/standard/collection/list.nit:144 */
   fra.me.REG[2] = ATTR_standard___collection___list___List____head(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -750,10 +750,10 @@ val_t standard___collection___list___List___shift(val_t p0){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//collection//list.nit:145 */
+    /* ../lib/standard/collection/list.nit:145 */
     ATTR_standard___collection___list___List____tail(fra.me.REG[0]) = NIT_NULL;
   } else {
-    /* ./../lib/standard//collection//list.nit:147 */
+    /* ../lib/standard/collection/list.nit:147 */
     fra.me.REG[0] = ATTR_standard___collection___list___List____head(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -761,7 +761,7 @@ val_t standard___collection___list___List___shift(val_t p0){
     }
     CALL_standard___collection___list___ListNode___prev__eq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
   }
-  /* ./../lib/standard//collection//list.nit:149 */
+  /* ../lib/standard/collection/list.nit:149 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___list, 149);
@@ -789,10 +789,10 @@ void standard___collection___list___List___remove(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//list.nit:154 */
+  /* ../lib/standard/collection/list.nit:154 */
   fra.me.REG[2] = ATTR_standard___collection___list___List____head(fra.me.REG[0]);
   fra.me.REG[2] = CALL_standard___collection___list___List___search_node_after(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
-  /* ./../lib/standard//collection//list.nit:155 */
+  /* ../lib/standard/collection/list.nit:155 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -828,9 +828,9 @@ void standard___collection___list___List___remove_at(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//collection//list.nit:160 */
+  /* ../lib/standard/collection/list.nit:160 */
   fra.me.REG[1] = CALL_standard___collection___list___List___get_node(fra.me.REG[0])(fra.me.REG[0], REGB0);
-  /* ./../lib/standard//collection//list.nit:161 */
+  /* ../lib/standard/collection/list.nit:161 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -862,9 +862,9 @@ void standard___collection___list___List___clear(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//list.nit:166 */
+  /* ../lib/standard/collection/list.nit:166 */
   ATTR_standard___collection___list___List____head(fra.me.REG[0]) = NIT_NULL;
-  /* ./../lib/standard//collection//list.nit:167 */
+  /* ../lib/standard/collection/list.nit:167 */
   ATTR_standard___collection___list___List____tail(fra.me.REG[0]) = NIT_NULL;
   stack_frame_head = fra.me.prev;
   return;
@@ -881,7 +881,7 @@ val_t standard___collection___list___List___iterator(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//list.nit:171 */
+  /* ../lib/standard/collection/list.nit:171 */
   fra.me.REG[0] = NEW_ListIterator_standard___collection___list___ListIterator___init(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -922,7 +922,7 @@ void standard___collection___list___List___from(val_t p0, val_t p1, int* init_ta
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//list.nit:177 */
+  /* ../lib/standard/collection/list.nit:177 */
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
@@ -946,24 +946,24 @@ val_t standard___collection___list___List___get_node(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//collection//list.nit:188 */
+  /* ../lib/standard/collection/list.nit:188 */
   fra.me.REG[0] = ATTR_standard___collection___list___List____head(fra.me.REG[0]);
-  /* ./../lib/standard//collection//list.nit:189 */
+  /* ../lib/standard/collection/list.nit:189 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//list.nit:189 */
+  /* ../lib/standard/collection/list.nit:189 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//collection//list.nit:190 */
+    /* ../lib/standard/collection/list.nit:190 */
     fra.me.REG[1] = NIT_NULL;
     goto label1;
   }
-  /* ./../lib/standard//collection//list.nit:192 */
+  /* ../lib/standard/collection/list.nit:192 */
   while(1) {
     REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -985,34 +985,34 @@ val_t standard___collection___list___List___get_node(val_t p0, val_t p1){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:234 */
+      /* ../lib/standard/kernel.nit:234 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
     } else {
-      /* ./../lib/standard//collection//list.nit:192 */
+      /* ../lib/standard/collection/list.nit:192 */
       REGB2 = TAG_Bool(false);
       REGB1 = REGB2;
     }
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//list.nit:193 */
+      /* ../lib/standard/collection/list.nit:193 */
       REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___list, 193);
       }
       fra.me.REG[2] = CALL_standard___collection___list___ListNode___next(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[0] = fra.me.REG[2];
-      /* ./../lib/standard//collection//list.nit:194 */
+      /* ../lib/standard/collection/list.nit:194 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//list.nit:194 */
+      /* ../lib/standard/collection/list.nit:194 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//list.nit:192 */
+      /* ../lib/standard/collection/list.nit:192 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//collection//list.nit:196 */
+  /* ../lib/standard/collection/list.nit:196 */
   fra.me.REG[1] = fra.me.REG[0];
   goto label1;
   label1: while(0);
@@ -1037,7 +1037,7 @@ val_t standard___collection___list___List___search_node_after(val_t p0, val_t p1
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/standard//collection//list.nit:203 */
+  /* ../lib/standard/collection/list.nit:203 */
   while(1) {
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -1087,7 +1087,7 @@ val_t standard___collection___list___List___search_node_after(val_t p0, val_t p1
     }
   }
   label1: while(0);
-  /* ./../lib/standard//collection//list.nit:204 */
+  /* ../lib/standard/collection/list.nit:204 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -1110,7 +1110,7 @@ void standard___collection___list___List___remove_node(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//list.nit:210 */
+  /* ../lib/standard/collection/list.nit:210 */
   fra.me.REG[2] = CALL_standard___collection___list___ListNode___prev(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1125,10 +1125,10 @@ void standard___collection___list___List___remove_node(val_t p0, val_t p1){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//collection//list.nit:211 */
+    /* ../lib/standard/collection/list.nit:211 */
     fra.me.REG[2] = CALL_standard___collection___list___ListNode___next(fra.me.REG[1])(fra.me.REG[1]);
     ATTR_standard___collection___list___List____head(fra.me.REG[0]) = fra.me.REG[2];
-    /* ./../lib/standard//collection//list.nit:212 */
+    /* ../lib/standard/collection/list.nit:212 */
     fra.me.REG[2] = CALL_standard___collection___list___ListNode___next(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -1143,10 +1143,10 @@ void standard___collection___list___List___remove_node(val_t p0, val_t p1){
       }
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//list.nit:213 */
+      /* ../lib/standard/collection/list.nit:213 */
       ATTR_standard___collection___list___List____tail(fra.me.REG[0]) = NIT_NULL;
     } else {
-      /* ./../lib/standard//collection//list.nit:215 */
+      /* ../lib/standard/collection/list.nit:215 */
       fra.me.REG[2] = CALL_standard___collection___list___ListNode___next(fra.me.REG[1])(fra.me.REG[1]);
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
@@ -1155,7 +1155,7 @@ void standard___collection___list___List___remove_node(val_t p0, val_t p1){
       CALL_standard___collection___list___ListNode___prev__eq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
     }
   } else {
-    /* ./../lib/standard//collection//list.nit:217 */
+    /* ../lib/standard/collection/list.nit:217 */
     fra.me.REG[2] = CALL_standard___collection___list___ListNode___next(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -1170,10 +1170,10 @@ void standard___collection___list___List___remove_node(val_t p0, val_t p1){
       }
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//list.nit:218 */
+      /* ../lib/standard/collection/list.nit:218 */
       fra.me.REG[2] = CALL_standard___collection___list___ListNode___prev(fra.me.REG[1])(fra.me.REG[1]);
       ATTR_standard___collection___list___List____tail(fra.me.REG[0]) = fra.me.REG[2];
-      /* ./../lib/standard//collection//list.nit:219 */
+      /* ../lib/standard/collection/list.nit:219 */
       fra.me.REG[2] = CALL_standard___collection___list___ListNode___prev(fra.me.REG[1])(fra.me.REG[1]);
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
@@ -1181,7 +1181,7 @@ void standard___collection___list___List___remove_node(val_t p0, val_t p1){
       }
       CALL_standard___collection___list___ListNode___next__eq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
     } else {
-      /* ./../lib/standard//collection//list.nit:221 */
+      /* ../lib/standard/collection/list.nit:221 */
       fra.me.REG[2] = CALL_standard___collection___list___ListNode___prev(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[0] = CALL_standard___collection___list___ListNode___next(fra.me.REG[1])(fra.me.REG[1]);
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -1189,7 +1189,7 @@ void standard___collection___list___List___remove_node(val_t p0, val_t p1){
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___list, 221);
       }
       CALL_standard___collection___list___ListNode___next__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      /* ./../lib/standard//collection//list.nit:222 */
+      /* ../lib/standard/collection/list.nit:222 */
       fra.me.REG[0] = CALL_standard___collection___list___ListNode___next(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[1] = CALL_standard___collection___list___ListNode___prev(fra.me.REG[1])(fra.me.REG[1]);
       REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
@@ -1221,11 +1221,11 @@ void standard___collection___list___List___insert_before(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/standard//collection//list.nit:228 */
+  /* ../lib/standard/collection/list.nit:228 */
   fra.me.REG[1] = NEW_ListNode_standard___collection___list___ListNode___init(fra.me.REG[1]);
-  /* ./../lib/standard//collection//list.nit:229 */
+  /* ../lib/standard/collection/list.nit:229 */
   fra.me.REG[3] = CALL_standard___collection___list___ListNode___prev(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./../lib/standard//collection//list.nit:230 */
+  /* ../lib/standard/collection/list.nit:230 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1239,21 +1239,21 @@ void standard___collection___list___List___insert_before(val_t p0, val_t p1, val
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//collection//list.nit:231 */
+    /* ../lib/standard/collection/list.nit:231 */
     ATTR_standard___collection___list___List____head(fra.me.REG[0]) = fra.me.REG[1];
   } else {
-    /* ./../lib/standard//collection//list.nit:233 */
+    /* ../lib/standard/collection/list.nit:233 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___collection___list, 233);
     }
     CALL_standard___collection___list___ListNode___next__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
   }
-  /* ./../lib/standard//collection//list.nit:235 */
+  /* ../lib/standard/collection/list.nit:235 */
   CALL_standard___collection___list___ListNode___prev__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./../lib/standard//collection//list.nit:236 */
+  /* ../lib/standard/collection/list.nit:236 */
   CALL_standard___collection___list___ListNode___next__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./../lib/standard//collection//list.nit:237 */
+  /* ../lib/standard/collection/list.nit:237 */
   CALL_standard___collection___list___ListNode___prev__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -1271,7 +1271,7 @@ val_t standard___collection___list___ListIterator___item(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//list.nit:244 */
+  /* ../lib/standard/collection/list.nit:244 */
   fra.me.REG[0] = ATTR_standard___collection___list___ListIterator____node(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1298,7 +1298,7 @@ void standard___collection___list___ListIterator___item__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//list.nit:246 */
+  /* ../lib/standard/collection/list.nit:246 */
   fra.me.REG[0] = ATTR_standard___collection___list___ListIterator____node(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1322,7 +1322,7 @@ val_t standard___collection___list___ListIterator___is_ok(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//list.nit:248 */
+  /* ../lib/standard/collection/list.nit:248 */
   fra.me.REG[0] = ATTR_standard___collection___list___ListIterator____node(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1357,7 +1357,7 @@ void standard___collection___list___ListIterator___next(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//list.nit:252 */
+  /* ../lib/standard/collection/list.nit:252 */
   fra.me.REG[1] = ATTR_standard___collection___list___ListIterator____node(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1365,12 +1365,12 @@ void standard___collection___list___ListIterator___next(val_t p0){
   }
   fra.me.REG[1] = CALL_standard___collection___list___ListNode___next(fra.me.REG[1])(fra.me.REG[1]);
   ATTR_standard___collection___list___ListIterator____node(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//list.nit:253 */
+  /* ../lib/standard/collection/list.nit:253 */
   REGB0 = ATTR_standard___collection___list___ListIterator____index(fra.me.REG[0]);
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//list.nit:253 */
+  /* ../lib/standard/collection/list.nit:253 */
   ATTR_standard___collection___list___ListIterator____index(fra.me.REG[0]) = REGB1;
   stack_frame_head = fra.me.prev;
   return;
@@ -1392,12 +1392,12 @@ void standard___collection___list___ListIterator___init(val_t p0, val_t p1, int*
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//list.nit:259 */
+  /* ../lib/standard/collection/list.nit:259 */
   ATTR_standard___collection___list___ListIterator____list(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//list.nit:260 */
+  /* ../lib/standard/collection/list.nit:260 */
   fra.me.REG[1] = ATTR_standard___collection___list___List____head(fra.me.REG[1]);
   ATTR_standard___collection___list___ListIterator____node(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//list.nit:261 */
+  /* ../lib/standard/collection/list.nit:261 */
   REGB0 = TAG_Int(0);
   ATTR_standard___collection___list___ListIterator____index(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -1417,7 +1417,7 @@ val_t standard___collection___list___ListIterator___index(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//list.nit:270 */
+  /* ../lib/standard/collection/list.nit:270 */
   REGB0 = TAG_Bool(ATTR_standard___collection___list___ListIterator____index(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1442,9 +1442,9 @@ void standard___collection___list___ListIterator___delete(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//list.nit:273 */
+  /* ../lib/standard/collection/list.nit:273 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./../lib/standard//collection//list.nit:276 */
+  /* ../lib/standard/collection/list.nit:276 */
   REGB0 = TAG_Bool(ATTR_standard___collection___list___ListIterator____list(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1478,9 +1478,9 @@ void standard___collection___list___ListIterator___insert_before(val_t p0, val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//list.nit:279 */
+  /* ../lib/standard/collection/list.nit:279 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./../lib/standard//collection//list.nit:282 */
+  /* ../lib/standard/collection/list.nit:282 */
   REGB0 = TAG_Bool(ATTR_standard___collection___list___ListIterator____list(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1515,11 +1515,11 @@ void standard___collection___list___ListNode___init(val_t p0, val_t p1, int* ini
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//list.nit:289 */
+  /* ../lib/standard/collection/list.nit:289 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___Container___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
-  /* ./../lib/standard//collection//list.nit:291 */
+  /* ../lib/standard/collection/list.nit:291 */
   CALL_standard___collection___abstract_collection___Container___item__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
   init_table[itpos3] = 1;
@@ -1537,7 +1537,7 @@ val_t standard___collection___list___ListNode___next(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//list.nit:294 */
+  /* ../lib/standard/collection/list.nit:294 */
   fra.me.REG[0] = ATTR_standard___collection___list___ListNode____next(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1556,7 +1556,7 @@ void standard___collection___list___ListNode___next__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//list.nit:294 */
+  /* ../lib/standard/collection/list.nit:294 */
   ATTR_standard___collection___list___ListNode____next(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1573,7 +1573,7 @@ val_t standard___collection___list___ListNode___prev(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//list.nit:297 */
+  /* ../lib/standard/collection/list.nit:297 */
   fra.me.REG[0] = ATTR_standard___collection___list___ListNode____prev(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1592,7 +1592,7 @@ void standard___collection___list___ListNode___prev__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//list.nit:297 */
+  /* ../lib/standard/collection/list.nit:297 */
   ATTR_standard___collection___list___ListNode____prev(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
index da8498e..578a661 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/standard/collection/list. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/standard/collection/list. */
 #ifndef standard___collection___list_sep
 #define standard___collection___list_sep
 #include "standard___collection___abstract_collection._sep.h"
index b43b2b4..15ebc72 100644 (file)
@@ -13,7 +13,7 @@ val_t standard___collection___range___Range___first(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//range.nit:22 */
+  /* ../lib/standard/collection/range.nit:22 */
   REGB0 = TAG_Bool(ATTR_standard___collection___range___Range____first(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -36,7 +36,7 @@ val_t standard___collection___range___Range___last(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//range.nit:24 */
+  /* ../lib/standard/collection/range.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___range___Range____last(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -59,7 +59,7 @@ val_t standard___collection___range___Range___after(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//range.nit:27 */
+  /* ../lib/standard/collection/range.nit:27 */
   REGB0 = TAG_Bool(ATTR_standard___collection___range___Range____after(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -86,7 +86,7 @@ val_t standard___collection___range___Range___has(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//range.nit:30 */
+  /* ../lib/standard/collection/range.nit:30 */
   REGB0 = TAG_Bool(ATTR_standard___collection___range___Range____first(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -128,7 +128,7 @@ val_t standard___collection___range___Range___has_only(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//range.nit:32 */
+  /* ../lib/standard/collection/range.nit:32 */
   REGB0 = TAG_Bool(ATTR_standard___collection___range___Range____first(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -179,14 +179,14 @@ val_t standard___collection___range___Range___count(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//range.nit:36 */
+  /* ../lib/standard/collection/range.nit:36 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//collection//range.nit:37 */
+    /* ../lib/standard/collection/range.nit:37 */
     REGB0 = TAG_Int(1);
     goto label1;
   } else {
-    /* ./../lib/standard//collection//range.nit:39 */
+    /* ../lib/standard/collection/range.nit:39 */
     REGB1 = TAG_Int(0);
     REGB0 = REGB1;
     goto label1;
@@ -207,7 +207,7 @@ val_t standard___collection___range___Range___iterator(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//range.nit:43 */
+  /* ../lib/standard/collection/range.nit:43 */
   fra.me.REG[0] = NEW_IteratorRange_standard___collection___range___IteratorRange___init(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -233,34 +233,34 @@ void standard___collection___range___Range___iterate(val_t p0, struct stack_fram
   fra.me.closure_funs = CREG;
   fra.me.REG[0] = p0;
   CREG[0] = clos_fun0;
-  /* ./../lib/standard//collection//range.nit:48 */
+  /* ../lib/standard/collection/range.nit:48 */
   REGB0 = TAG_Bool(ATTR_standard___collection___range___Range____first(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_first", LOCATE_standard___collection___range, 48);
   }
   fra.me.REG[1] = ATTR_standard___collection___range___Range____first(fra.me.REG[0]);
-  /* ./../lib/standard//collection//range.nit:49 */
+  /* ../lib/standard/collection/range.nit:49 */
   REGB0 = TAG_Bool(ATTR_standard___collection___range___Range____last(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_last", LOCATE_standard___collection___range, 49);
   }
   fra.me.REG[0] = ATTR_standard___collection___range___Range____last(fra.me.REG[0]);
-  /* ./../lib/standard//collection//range.nit:50 */
+  /* ../lib/standard/collection/range.nit:50 */
   while(1) {
     REGB0 = CALL_standard___kernel___Comparable_____leq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//range.nit:51 */
+      /* ../lib/standard/collection/range.nit:51 */
       ((void (*)(struct stack_frame_t *, val_t))(CREG[0]))(closctx_param, fra.me.REG[1]);
       if (closctx_param->has_broke) {
         goto label1;
       }
-      /* ./../lib/standard//collection//range.nit:52 */
+      /* ../lib/standard/collection/range.nit:52 */
       fra.me.REG[2] = CALL_standard___kernel___Discrete___succ(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[1] = fra.me.REG[2];
     } else {
-      /* ./../lib/standard//collection//range.nit:50 */
+      /* ../lib/standard/collection/range.nit:50 */
       goto label2;
     }
   }
@@ -285,7 +285,7 @@ val_t standard___collection___range___Range___length(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//range.nit:58 */
+  /* ../lib/standard/collection/range.nit:58 */
   REGB0 = TAG_Bool(ATTR_standard___collection___range___Range____first(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -299,21 +299,21 @@ val_t standard___collection___range___Range___length(val_t p0){
   }
   fra.me.REG[0] = ATTR_standard___collection___range___Range____after(fra.me.REG[0]);
   REGB0 = CALL_standard___kernel___Discrete___distance(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./../lib/standard//collection//range.nit:59 */
+  /* ../lib/standard/collection/range.nit:59 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//range.nit:59 */
+  /* ../lib/standard/collection/range.nit:59 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//collection//range.nit:60 */
+    /* ../lib/standard/collection/range.nit:60 */
     goto label1;
   } else {
-    /* ./../lib/standard//collection//range.nit:62 */
+    /* ../lib/standard/collection/range.nit:62 */
     REGB1 = TAG_Int(0);
     REGB0 = REGB1;
     goto label1;
@@ -336,7 +336,7 @@ val_t standard___collection___range___Range___is_empty(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//range.nit:66 */
+  /* ../lib/standard/collection/range.nit:66 */
   REGB0 = TAG_Bool(ATTR_standard___collection___range___Range____first(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -373,11 +373,11 @@ void standard___collection___range___Range___init(val_t p0, val_t p1, val_t p2,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/standard//collection//range.nit:72 */
+  /* ../lib/standard/collection/range.nit:72 */
   ATTR_standard___collection___range___Range____first(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//range.nit:73 */
+  /* ../lib/standard/collection/range.nit:73 */
   ATTR_standard___collection___range___Range____last(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./../lib/standard//collection//range.nit:74 */
+  /* ../lib/standard/collection/range.nit:74 */
   fra.me.REG[2] = CALL_standard___kernel___Discrete___succ(fra.me.REG[2])(fra.me.REG[2]);
   ATTR_standard___collection___range___Range____after(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
@@ -402,12 +402,12 @@ void standard___collection___range___Range___without_last(val_t p0, val_t p1, va
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/standard//collection//range.nit:81 */
+  /* ../lib/standard/collection/range.nit:81 */
   ATTR_standard___collection___range___Range____first(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//range.nit:82 */
+  /* ../lib/standard/collection/range.nit:82 */
   fra.me.REG[1] = CALL_standard___kernel___Discrete___prec(fra.me.REG[2])(fra.me.REG[2]);
   ATTR_standard___collection___range___Range____last(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//range.nit:83 */
+  /* ../lib/standard/collection/range.nit:83 */
   ATTR_standard___collection___range___Range____after(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
@@ -426,7 +426,7 @@ val_t standard___collection___range___IteratorRange___item(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//range.nit:91 */
+  /* ../lib/standard/collection/range.nit:91 */
   REGB0 = TAG_Bool(ATTR_standard___collection___range___IteratorRange____item(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -450,7 +450,7 @@ val_t standard___collection___range___IteratorRange___is_ok(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//range.nit:93 */
+  /* ../lib/standard/collection/range.nit:93 */
   REGB0 = TAG_Bool(ATTR_standard___collection___range___IteratorRange____item(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -484,7 +484,7 @@ void standard___collection___range___IteratorRange___next(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//range.nit:95 */
+  /* ../lib/standard/collection/range.nit:95 */
   REGB0 = TAG_Bool(ATTR_standard___collection___range___IteratorRange____item(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -512,9 +512,9 @@ void standard___collection___range___IteratorRange___init(val_t p0, val_t p1, in
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//range.nit:99 */
+  /* ../lib/standard/collection/range.nit:99 */
   ATTR_standard___collection___range___IteratorRange____range(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//range.nit:100 */
+  /* ../lib/standard/collection/range.nit:100 */
   fra.me.REG[1] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
   ATTR_standard___collection___range___IteratorRange____item(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
index 29fdbb9..c501baf 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/standard/collection/range. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/standard/collection/range. */
 #ifndef standard___collection___range_sep
 #define standard___collection___range_sep
 #include "standard___collection___abstract_collection._sep.h"
index 4e89e02..e1c1ea5 100644 (file)
@@ -10,7 +10,7 @@ val_t standard___collection___sorter___AbstractSorter___compare(val_t p0, val_t
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//collection//sorter.nit:22 */
+  /* ../lib/standard/collection/sorter.nit:22 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___collection___sorter, 22);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -32,20 +32,20 @@ void standard___collection___sorter___AbstractSorter___sort(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//sorter.nit:30 */
+  /* ../lib/standard/collection/sorter.nit:30 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//sorter.nit:30 */
+  /* ../lib/standard/collection/sorter.nit:30 */
   REGB2 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-  /* ./../lib/standard//collection//sorter.nit:30 */
+  /* ../lib/standard/collection/sorter.nit:30 */
   CALL_standard___collection___sorter___AbstractSorter___sub_sort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, REGB2);
   stack_frame_head = fra.me.prev;
   return;
@@ -75,30 +75,30 @@ void standard___collection___sorter___AbstractSorter___sub_sort(val_t p0, val_t
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//sorter.nit:35 */
+  /* ../lib/standard/collection/sorter.nit:35 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//collection//sorter.nit:36 */
+    /* ../lib/standard/collection/sorter.nit:36 */
     goto label1;
   } else {
-    /* ./../lib/standard//collection//sorter.nit:37 */
+    /* ../lib/standard/collection/sorter.nit:37 */
     REGB2 = TAG_Int(7);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
     REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//sorter.nit:37 */
+    /* ../lib/standard/collection/sorter.nit:37 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//sorter.nit:38 */
+      /* ../lib/standard/collection/sorter.nit:38 */
       CALL_standard___collection___sorter___AbstractSorter___quick_sort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, REGB1);
     } else {
-      /* ./../lib/standard//collection//sorter.nit:40 */
+      /* ../lib/standard/collection/sorter.nit:40 */
       CALL_standard___collection___sorter___AbstractSorter___bubble_sort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, REGB1);
     }
   }
@@ -132,19 +132,19 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
   fra.me.REG[1] = p1;
   REGB0 = p2;
   REGB1 = p3;
-  /* ./../lib/standard//collection//array.nit:278 */
+  /* ../lib/standard/collection/array.nit:278 */
   fra.me.REG[2] = fra.me.REG[1];
   REGB2 = REGB0;
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   REGB3 = TAG_Int(0);
   REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB4)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   if (UNTAG_Bool(REGB3)) {
     REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB3)) {
@@ -157,67 +157,67 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
   } else {
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB4 = TAG_Bool(false);
     REGB3 = REGB4;
   }
   if (UNTAG_Bool(REGB3)) {
   } else {
-    nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+    nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
   }
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
   REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB3)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
   }
-  /* ./../lib/standard//collection//array.nit:718 */
+  /* ../lib/standard/collection/array.nit:718 */
   fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB2)];
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   goto label1;
   label1: while(0);
-  /* ./../lib/standard//collection//sorter.nit:48 */
+  /* ../lib/standard/collection/sorter.nit:48 */
   REGB2 = REGB0;
-  /* ./../lib/standard//collection//sorter.nit:49 */
+  /* ../lib/standard/collection/sorter.nit:49 */
   REGB3 = REGB1;
-  /* ./../lib/standard//collection//sorter.nit:50 */
+  /* ../lib/standard/collection/sorter.nit:50 */
   while(1) {
     REGB4 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB4)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//sorter.nit:50 */
+    /* ../lib/standard/collection/sorter.nit:50 */
     if (UNTAG_Bool(REGB4)) {
-      /* ./../lib/standard//collection//sorter.nit:51 */
+      /* ../lib/standard/collection/sorter.nit:51 */
       while(1) {
         REGB4 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB4)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:231 */
+        /* ../lib/standard/kernel.nit:231 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//sorter.nit:51 */
+        /* ../lib/standard/collection/sorter.nit:51 */
         if (UNTAG_Bool(REGB4)) {
-          /* ./../lib/standard//collection//array.nit:278 */
+          /* ../lib/standard/collection/array.nit:278 */
           fra.me.REG[3] = fra.me.REG[1];
           REGB4 = REGB2;
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB5 = TAG_Int(0);
           REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
           if (UNTAG_Bool(REGB6)) {
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:233 */
+          /* ../lib/standard/kernel.nit:233 */
           REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           if (UNTAG_Bool(REGB5)) {
             REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
             if (UNTAG_Bool(REGB5)) {
@@ -230,29 +230,29 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:232 */
+            /* ../lib/standard/kernel.nit:232 */
             REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
           } else {
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB6 = TAG_Bool(false);
             REGB5 = REGB6;
           }
           if (UNTAG_Bool(REGB5)) {
           } else {
-            nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+            nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
           }
-          /* ./../lib/standard//collection//array.nit:281 */
+          /* ../lib/standard/collection/array.nit:281 */
           fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
           REGB5 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
           if (UNTAG_Bool(REGB5)) {
             nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
           }
-          /* ./../lib/standard//collection//array.nit:718 */
+          /* ../lib/standard/collection/array.nit:718 */
           fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB4)];
-          /* ./../lib/standard//collection//array.nit:281 */
+          /* ../lib/standard/collection/array.nit:281 */
           goto label2;
           label2: while(0);
-          /* ./../lib/standard//collection//sorter.nit:51 */
+          /* ../lib/standard/collection/sorter.nit:51 */
           REGB4 = CALL_standard___collection___sorter___AbstractSorter___compare(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
           REGB5 = TAG_Int(0);
           REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
@@ -260,48 +260,48 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:231 */
+          /* ../lib/standard/kernel.nit:231 */
           REGB5 = TAG_Bool(UNTAG_Int(REGB4)<=UNTAG_Int(REGB5));
         } else {
-          /* ./../lib/standard//collection//sorter.nit:51 */
+          /* ../lib/standard/collection/sorter.nit:51 */
           REGB4 = TAG_Bool(false);
           REGB5 = REGB4;
         }
         if (UNTAG_Bool(REGB5)) {
           REGB5 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
-          /* ./../lib/standard//collection//sorter.nit:51 */
+          /* ../lib/standard/collection/sorter.nit:51 */
           REGB2 = REGB5;
         } else {
           goto label3;
         }
       }
       label3: while(0);
-      /* ./../lib/standard//collection//sorter.nit:52 */
+      /* ../lib/standard/collection/sorter.nit:52 */
       while(1) {
         REGB5 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB5)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:234 */
+        /* ../lib/standard/kernel.nit:234 */
         REGB5 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
-        /* ./../lib/standard//collection//sorter.nit:52 */
+        /* ../lib/standard/collection/sorter.nit:52 */
         if (UNTAG_Bool(REGB5)) {
-          /* ./../lib/standard//collection//array.nit:278 */
+          /* ../lib/standard/collection/array.nit:278 */
           fra.me.REG[3] = fra.me.REG[1];
           REGB5 = REGB3;
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB4 = TAG_Int(0);
           REGB6 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
           if (UNTAG_Bool(REGB6)) {
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:233 */
+          /* ../lib/standard/kernel.nit:233 */
           REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           if (UNTAG_Bool(REGB4)) {
             REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
             if (UNTAG_Bool(REGB4)) {
@@ -314,29 +314,29 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:232 */
+            /* ../lib/standard/kernel.nit:232 */
             REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
           } else {
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB6 = TAG_Bool(false);
             REGB4 = REGB6;
           }
           if (UNTAG_Bool(REGB4)) {
           } else {
-            nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+            nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
           }
-          /* ./../lib/standard//collection//array.nit:281 */
+          /* ../lib/standard/collection/array.nit:281 */
           fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
           REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
           if (UNTAG_Bool(REGB4)) {
             nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
           }
-          /* ./../lib/standard//collection//array.nit:718 */
+          /* ../lib/standard/collection/array.nit:718 */
           fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB5)];
-          /* ./../lib/standard//collection//array.nit:281 */
+          /* ../lib/standard/collection/array.nit:281 */
           goto label4;
           label4: while(0);
-          /* ./../lib/standard//collection//sorter.nit:52 */
+          /* ../lib/standard/collection/sorter.nit:52 */
           REGB5 = CALL_standard___collection___sorter___AbstractSorter___compare(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
           REGB4 = TAG_Int(0);
           REGB6 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
@@ -344,18 +344,18 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:233 */
+          /* ../lib/standard/kernel.nit:233 */
           REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
         } else {
-          /* ./../lib/standard//collection//sorter.nit:52 */
+          /* ../lib/standard/collection/sorter.nit:52 */
           REGB5 = TAG_Bool(false);
           REGB4 = REGB5;
         }
         if (UNTAG_Bool(REGB4)) {
           REGB4 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:237 */
+          /* ../lib/standard/kernel.nit:237 */
           REGB4 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB4));
-          /* ./../lib/standard//collection//sorter.nit:52 */
+          /* ../lib/standard/collection/sorter.nit:52 */
           REGB3 = REGB4;
         } else {
           goto label5;
@@ -367,23 +367,23 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:234 */
+      /* ../lib/standard/kernel.nit:234 */
       REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//sorter.nit:53 */
+      /* ../lib/standard/collection/sorter.nit:53 */
       if (UNTAG_Bool(REGB4)) {
-        /* ./../lib/standard//collection//array.nit:278 */
+        /* ../lib/standard/collection/array.nit:278 */
         fra.me.REG[3] = fra.me.REG[1];
         REGB4 = REGB2;
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB5 = TAG_Int(0);
         REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB6)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB5)) {
           REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
           if (UNTAG_Bool(REGB5)) {
@@ -396,41 +396,41 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
         } else {
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB6 = TAG_Bool(false);
           REGB5 = REGB6;
         }
         if (UNTAG_Bool(REGB5)) {
         } else {
-          nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+          nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
         }
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
         REGB5 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB5)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB4)];
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         goto label6;
         label6: while(0);
-        /* ./../lib/standard//collection//array.nit:278 */
+        /* ../lib/standard/collection/array.nit:278 */
         fra.me.REG[4] = fra.me.REG[1];
         REGB4 = REGB3;
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB5 = TAG_Int(0);
         REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB6)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB5)) {
           REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
           if (UNTAG_Bool(REGB5)) {
@@ -443,55 +443,55 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
         } else {
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB6 = TAG_Bool(false);
           REGB5 = REGB6;
         }
         if (UNTAG_Bool(REGB5)) {
         } else {
-          nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+          nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
         }
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
         REGB5 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
         if (UNTAG_Bool(REGB5)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB4)];
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         goto label7;
         label7: while(0);
-        /* ./../lib/standard//collection//sorter.nit:55 */
+        /* ../lib/standard/collection/sorter.nit:55 */
         CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB2, fra.me.REG[4]);
-        /* ./../lib/standard//collection//sorter.nit:56 */
+        /* ../lib/standard/collection/sorter.nit:56 */
         CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB3, fra.me.REG[3]);
       }
     } else {
-      /* ./../lib/standard//collection//sorter.nit:50 */
+      /* ../lib/standard/collection/sorter.nit:50 */
       goto label8;
     }
   }
   label8: while(0);
-  /* ./../lib/standard//collection//sorter.nit:59 */
+  /* ../lib/standard/collection/sorter.nit:59 */
   REGB3 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
-  /* ./../lib/standard//collection//array.nit:278 */
+  /* ../lib/standard/collection/array.nit:278 */
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   REGB4 = TAG_Int(0);
   REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB5)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   if (UNTAG_Bool(REGB4)) {
     REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB4)) {
@@ -504,43 +504,43 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
   } else {
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB5 = TAG_Bool(false);
     REGB4 = REGB5;
   }
   if (UNTAG_Bool(REGB4)) {
   } else {
-    nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+    nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
   }
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
   REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB4)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
   }
-  /* ./../lib/standard//collection//array.nit:718 */
+  /* ../lib/standard/collection/array.nit:718 */
   fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB3)];
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   goto label9;
   label9: while(0);
-  /* ./../lib/standard//collection//sorter.nit:59 */
+  /* ../lib/standard/collection/sorter.nit:59 */
   CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[3]);
-  /* ./../lib/standard//collection//sorter.nit:60 */
+  /* ../lib/standard/collection/sorter.nit:60 */
   REGB3 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
-  /* ./../lib/standard//collection//sorter.nit:60 */
+  /* ../lib/standard/collection/sorter.nit:60 */
   CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB3, fra.me.REG[2]);
-  /* ./../lib/standard//collection//sorter.nit:61 */
+  /* ../lib/standard/collection/sorter.nit:61 */
   REGB3 = TAG_Int(2);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
-  /* ./../lib/standard//collection//sorter.nit:61 */
+  /* ../lib/standard/collection/sorter.nit:61 */
   CALL_standard___collection___sorter___AbstractSorter___sub_sort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, REGB3);
-  /* ./../lib/standard//collection//sorter.nit:62 */
+  /* ../lib/standard/collection/sorter.nit:62 */
   CALL_standard___collection___sorter___AbstractSorter___sub_sort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB2, REGB1);
   stack_frame_head = fra.me.prev;
   return;
@@ -570,32 +570,32 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
   fra.me.REG[1] = p1;
   REGB0 = p2;
   REGB1 = p3;
-  /* ./../lib/standard//collection//sorter.nit:69 */
+  /* ../lib/standard/collection/sorter.nit:69 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//sorter.nit:69 */
+    /* ../lib/standard/collection/sorter.nit:69 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//sorter.nit:70 */
+      /* ../lib/standard/collection/sorter.nit:70 */
       REGB2 = REGB0;
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       fra.me.REG[2] = fra.me.REG[1];
       REGB3 = REGB0;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB4 = TAG_Int(0);
       REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB5)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB4)) {
         REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
         if (UNTAG_Bool(REGB4)) {
@@ -608,54 +608,54 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB5 = TAG_Bool(false);
         REGB4 = REGB5;
       }
       if (UNTAG_Bool(REGB4)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
       REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB4)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB3)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label1;
       label1: while(0);
-      /* ./../lib/standard//collection//sorter.nit:72 */
+      /* ../lib/standard/collection/sorter.nit:72 */
       REGB3 = REGB0;
-      /* ./../lib/standard//collection//sorter.nit:73 */
+      /* ../lib/standard/collection/sorter.nit:73 */
       while(1) {
         REGB4 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB4)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:231 */
+        /* ../lib/standard/kernel.nit:231 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB3)<=UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//sorter.nit:73 */
+        /* ../lib/standard/collection/sorter.nit:73 */
         if (UNTAG_Bool(REGB4)) {
-          /* ./../lib/standard//collection//array.nit:278 */
+          /* ../lib/standard/collection/array.nit:278 */
           fra.me.REG[3] = fra.me.REG[1];
           REGB4 = REGB3;
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB5 = TAG_Int(0);
           REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
           if (UNTAG_Bool(REGB6)) {
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:233 */
+          /* ../lib/standard/kernel.nit:233 */
           REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           if (UNTAG_Bool(REGB5)) {
             REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
             if (UNTAG_Bool(REGB5)) {
@@ -668,29 +668,29 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:232 */
+            /* ../lib/standard/kernel.nit:232 */
             REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
           } else {
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB6 = TAG_Bool(false);
             REGB5 = REGB6;
           }
           if (UNTAG_Bool(REGB5)) {
           } else {
-            nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+            nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
           }
-          /* ./../lib/standard//collection//array.nit:281 */
+          /* ../lib/standard/collection/array.nit:281 */
           fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
           REGB5 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
           if (UNTAG_Bool(REGB5)) {
             nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
           }
-          /* ./../lib/standard//collection//array.nit:718 */
+          /* ../lib/standard/collection/array.nit:718 */
           fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB4)];
-          /* ./../lib/standard//collection//array.nit:281 */
+          /* ../lib/standard/collection/array.nit:281 */
           goto label2;
           label2: while(0);
-          /* ./../lib/standard//collection//sorter.nit:74 */
+          /* ../lib/standard/collection/sorter.nit:74 */
           REGB4 = CALL_standard___collection___sorter___AbstractSorter___compare(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]);
           REGB5 = TAG_Int(0);
           REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
@@ -698,25 +698,25 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:234 */
+          /* ../lib/standard/kernel.nit:234 */
           REGB5 = TAG_Bool(UNTAG_Int(REGB4)>UNTAG_Int(REGB5));
-          /* ./../lib/standard//collection//sorter.nit:74 */
+          /* ../lib/standard/collection/sorter.nit:74 */
           if (UNTAG_Bool(REGB5)) {
-            /* ./../lib/standard//collection//sorter.nit:75 */
+            /* ../lib/standard/collection/sorter.nit:75 */
             REGB2 = REGB3;
-            /* ./../lib/standard//collection//array.nit:278 */
+            /* ../lib/standard/collection/array.nit:278 */
             fra.me.REG[3] = fra.me.REG[1];
             REGB5 = REGB3;
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB4 = TAG_Int(0);
             REGB6 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
             if (UNTAG_Bool(REGB6)) {
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:233 */
+            /* ../lib/standard/kernel.nit:233 */
             REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             if (UNTAG_Bool(REGB4)) {
               REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
               if (UNTAG_Bool(REGB4)) {
@@ -729,67 +729,67 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:232 */
+              /* ../lib/standard/kernel.nit:232 */
               REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
             } else {
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB6 = TAG_Bool(false);
               REGB4 = REGB6;
             }
             if (UNTAG_Bool(REGB4)) {
             } else {
-              nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+              nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
             }
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
             REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
             if (UNTAG_Bool(REGB4)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB5)];
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             goto label3;
             label3: while(0);
-            /* ./../lib/standard//collection//sorter.nit:76 */
+            /* ../lib/standard/collection/sorter.nit:76 */
             fra.me.REG[2] = fra.me.REG[3];
           }
-          /* ./../lib/standard//collection//sorter.nit:78 */
+          /* ../lib/standard/collection/sorter.nit:78 */
           REGB5 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
-          /* ./../lib/standard//collection//sorter.nit:78 */
+          /* ../lib/standard/collection/sorter.nit:78 */
           REGB3 = REGB5;
         } else {
-          /* ./../lib/standard//collection//sorter.nit:73 */
+          /* ../lib/standard/collection/sorter.nit:73 */
           goto label4;
         }
       }
       label4: while(0);
-      /* ./../lib/standard//collection//sorter.nit:80 */
+      /* ../lib/standard/collection/sorter.nit:80 */
       REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB0));
       if (UNTAG_Bool(REGB3)) {
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB5 = TAG_Bool((REGB2)==(REGB0));
-        /* ./../lib/standard//collection//sorter.nit:80 */
+        /* ../lib/standard/collection/sorter.nit:80 */
         REGB3 = REGB5;
       }
       REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
       if (UNTAG_Bool(REGB3)) {
-        /* ./../lib/standard//collection//array.nit:278 */
+        /* ../lib/standard/collection/array.nit:278 */
         fra.me.REG[3] = fra.me.REG[1];
         REGB3 = REGB0;
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB5 = TAG_Int(0);
         REGB4 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB4)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB5 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB5));
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB5)) {
           REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
           if (UNTAG_Bool(REGB5)) {
@@ -802,41 +802,41 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB5));
         } else {
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB4 = TAG_Bool(false);
           REGB5 = REGB4;
         }
         if (UNTAG_Bool(REGB5)) {
         } else {
-          nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+          nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
         }
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
         REGB5 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB5)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB3)];
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         goto label5;
         label5: while(0);
-        /* ./../lib/standard//collection//sorter.nit:81 */
+        /* ../lib/standard/collection/sorter.nit:81 */
         CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB2, fra.me.REG[3]);
-        /* ./../lib/standard//collection//sorter.nit:82 */
+        /* ../lib/standard/collection/sorter.nit:82 */
         CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
       }
-      /* ./../lib/standard//collection//sorter.nit:84 */
+      /* ../lib/standard/collection/sorter.nit:84 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//sorter.nit:84 */
+      /* ../lib/standard/collection/sorter.nit:84 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//collection//sorter.nit:69 */
+      /* ../lib/standard/collection/sorter.nit:69 */
       goto label6;
     }
   }
@@ -844,22 +844,6 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
   stack_frame_head = fra.me.prev;
   return;
 }
-void standard___collection___sorter___AbstractSorter___init(val_t p0, int* init_table){
-  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___sorter___AbstractSorter].i;
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  if (init_table[itpos0]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_standard___collection___sorter;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_standard___collection___sorter___AbstractSorter___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-  init_table[itpos0] = 1;
-  return;
-}
 val_t standard___collection___sorter___ComparableSorter___compare(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
@@ -877,7 +861,7 @@ val_t standard___collection___sorter___ComparableSorter___compare(val_t p0, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/standard//collection//sorter.nit:94 */
+  /* ../lib/standard/collection/sorter.nit:94 */
   REGB0 = CALL_standard___kernel___Comparable_____leqg(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   goto label1;
   label1: while(0);
@@ -885,10 +869,10 @@ val_t standard___collection___sorter___ComparableSorter___compare(val_t p0, val_
   return REGB0;
 }
 void standard___collection___sorter___ComparableSorter___init(val_t p0, int* init_table){
-  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___sorter___ComparableSorter].i;
+  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___sorter___ComparableSorter].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos1]) return;
+  if (init_table[itpos0]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___collection___sorter;
   fra.me.line = 96;
@@ -898,9 +882,7 @@ void standard___collection___sorter___ComparableSorter___init(val_t p0, int* ini
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//sorter.nit:96 */
-  CALL_standard___collection___sorter___AbstractSorter___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   stack_frame_head = fra.me.prev;
-  init_table[itpos1] = 1;
+  init_table[itpos0] = 1;
   return;
 }
index 1016d22..1306f48 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/standard/collection/sorter. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/standard/collection/sorter. */
 #ifndef standard___collection___sorter_sep
 #define standard___collection___sorter_sep
 #include "standard___collection___array._sep.h"
@@ -17,7 +17,6 @@ extern const int SFT_standard___collection___sorter[];
 #define CALL_standard___collection___sorter___AbstractSorter___sub_sort(recv) ((standard___collection___sorter___AbstractSorter___sub_sort_t)CALL((recv), (SFT_standard___collection___sorter[2] + 3)))
 #define CALL_standard___collection___sorter___AbstractSorter___quick_sort(recv) ((standard___collection___sorter___AbstractSorter___quick_sort_t)CALL((recv), (SFT_standard___collection___sorter[2] + 4)))
 #define CALL_standard___collection___sorter___AbstractSorter___bubble_sort(recv) ((standard___collection___sorter___AbstractSorter___bubble_sort_t)CALL((recv), (SFT_standard___collection___sorter[2] + 5)))
-#define CALL_standard___collection___sorter___AbstractSorter___init(recv) ((standard___collection___sorter___AbstractSorter___init_t)CALL((recv), (SFT_standard___collection___sorter[2] + 6)))
 #define ID_standard___collection___sorter___ComparableSorter (SFT_standard___collection___sorter[3])
 #define COLOR_standard___collection___sorter___ComparableSorter (SFT_standard___collection___sorter[4])
 #define INIT_TABLE_POS_standard___collection___sorter___ComparableSorter (SFT_standard___collection___sorter[5] + 0)
@@ -37,10 +36,6 @@ typedef void (*standard___collection___sorter___AbstractSorter___quick_sort_t)(v
 static const char * const LOCATE_standard___collection___sorter___AbstractSorter___bubble_sort = "sorter::AbstractSorter::bubble_sort";
 void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val_t p1, val_t p2, val_t p3);
 typedef void (*standard___collection___sorter___AbstractSorter___bubble_sort_t)(val_t p0, val_t p1, val_t p2, val_t p3);
-static const char * const LOCATE_standard___collection___sorter___AbstractSorter___init = "sorter::AbstractSorter::init";
-void standard___collection___sorter___AbstractSorter___init(val_t p0, int* init_table);
-typedef void (*standard___collection___sorter___AbstractSorter___init_t)(val_t p0, int* init_table);
-val_t NEW_AbstractSorter_standard___collection___sorter___AbstractSorter___init();
 static const char * const LOCATE_standard___collection___sorter___ComparableSorter___compare = "sorter::ComparableSorter::(sorter::AbstractSorter::compare)";
 val_t standard___collection___sorter___ComparableSorter___compare(val_t p0, val_t p1, val_t p2);
 typedef val_t (*standard___collection___sorter___ComparableSorter___compare_t)(val_t p0, val_t p1, val_t p2);
index ce68ba7..143ab37 100644 (file)
@@ -10,7 +10,7 @@ val_t standard___environ___Symbol___environ(val_t p0){
     static val_t once_value_4; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___environ;
-  fra.me.line = 20;
+  fra.me.line = 22;
   fra.me.meth = LOCATE_standard___environ___Symbol___environ;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -18,11 +18,11 @@ val_t standard___environ___Symbol___environ(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//environ.nit:24 */
+  /* ../lib/standard/environ.nit:26 */
   fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___string___String___to_cstring(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___environ___NativeString___get_environ(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//environ.nit:26 */
+  /* ../lib/standard/environ.nit:28 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[1] = BOX_NativeString("");
@@ -38,7 +38,7 @@ val_t standard___environ___Symbol___environ(val_t p0){
     register_static_object(&once_value_1);
   } else fra.me.REG[1] = once_value_1;
   fra.me.REG[1] = fra.me.REG[1];
-  /* ./../lib/standard//environ.nit:27 */
+  /* ../lib/standard/environ.nit:29 */
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[1]));
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -47,11 +47,11 @@ val_t standard___environ___Symbol___environ(val_t p0){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//environ.nit:28 */
+    /* ../lib/standard/environ.nit:30 */
     fra.me.REG[0] = NEW_String_standard___string___String___from_cstring(fra.me.REG[0]);
     goto label3;
   } else {
-    /* ./../lib/standard//environ.nit:30 */
+    /* ../lib/standard/environ.nit:32 */
     if (!once_value_4) {
       fra.me.REG[1] = BOX_NativeString("");
       REGB0 = TAG_Int(0);
@@ -72,14 +72,14 @@ val_t standard___environ___NativeString___get_environ(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___environ;
-  fra.me.line = 36;
+  fra.me.line = 38;
   fra.me.meth = LOCATE_standard___environ___NativeString___get_environ;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//environ.nit:36 */
+  /* ../lib/standard/environ.nit:38 */
   fra.me.REG[0] = NativeString_get_environ___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
index 3dc5c61..3015b93 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/standard/environ. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/standard/environ. */
 #ifndef standard___environ_sep
 #define standard___environ_sep
 #include "standard___symbol._sep.h"
index def202d..9902813 100644 (file)
@@ -6,20 +6,15 @@ val_t standard___exec___Process___id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 23;
+  fra.me.line = 22;
   fra.me.meth = LOCATE_standard___exec___Process___id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:24 */
-  REGB0 = TAG_Bool(ATTR_standard___exec___Process____data(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_data", LOCATE_standard___exec, 24);
-  }
-  fra.me.REG[0] = ATTR_standard___exec___Process____data(fra.me.REG[0]);
+  /* ../lib/standard/exec.nit:23 */
+  fra.me.REG[0] = CALL_standard___exec___Process___data(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___exec___NativeProcess___id(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -32,20 +27,15 @@ val_t standard___exec___Process___is_finished(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 26;
+  fra.me.line = 25;
   fra.me.meth = LOCATE_standard___exec___Process___is_finished;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:27 */
-  REGB0 = TAG_Bool(ATTR_standard___exec___Process____data(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_data", LOCATE_standard___exec, 27);
-  }
-  fra.me.REG[0] = ATTR_standard___exec___Process____data(fra.me.REG[0]);
+  /* ../lib/standard/exec.nit:26 */
+  fra.me.REG[0] = CALL_standard___exec___Process___data(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___exec___NativeProcess___is_finished(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -58,7 +48,7 @@ void standard___exec___Process___wait(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 29;
+  fra.me.line = 28;
   fra.me.meth = LOCATE_standard___exec___Process___wait;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -66,19 +56,14 @@ void standard___exec___Process___wait(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:32 */
-  REGB0 = TAG_Bool(ATTR_standard___exec___Process____data(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_data", LOCATE_standard___exec, 32);
-  }
-  fra.me.REG[1] = ATTR_standard___exec___Process____data(fra.me.REG[0]);
+  /* ../lib/standard/exec.nit:31 */
+  fra.me.REG[1] = CALL_standard___exec___Process___data(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___exec___NativeProcess___wait(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./../lib/standard//exec.nit:33 */
+  /* ../lib/standard/exec.nit:32 */
   REGB0 = CALL_standard___exec___Process___is_finished(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_standard___exec, 33);
+    nit_abort("Assert failed", NULL, LOCATE_standard___exec, 32);
   }
   stack_frame_head = fra.me.prev;
   return;
@@ -89,26 +74,21 @@ val_t standard___exec___Process___status(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 36;
+  fra.me.line = 35;
   fra.me.meth = LOCATE_standard___exec___Process___status;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:39 */
+  /* ../lib/standard/exec.nit:38 */
   REGB0 = CALL_standard___exec___Process___is_finished(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_standard___exec, 39);
-  }
-  /* ./../lib/standard//exec.nit:40 */
-  REGB0 = TAG_Bool(ATTR_standard___exec___Process____data(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_data", LOCATE_standard___exec, 40);
+    nit_abort("Assert failed", NULL, LOCATE_standard___exec, 38);
   }
-  fra.me.REG[0] = ATTR_standard___exec___Process____data(fra.me.REG[0]);
+  /* ../lib/standard/exec.nit:39 */
+  fra.me.REG[0] = CALL_standard___exec___Process___data(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___exec___NativeProcess___status(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -123,7 +103,7 @@ void standard___exec___Process___init(val_t p0, val_t p1, val_t p2, int* init_ta
   if (init_table[itpos0]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 43;
+  fra.me.line = 42;
   fra.me.meth = LOCATE_standard___exec___Process___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -135,14 +115,14 @@ void standard___exec___Process___init(val_t p0, val_t p1, val_t p2, int* init_ta
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/standard//exec.nit:43 */
+  /* ../lib/standard/exec.nit:42 */
   fra.me.REG[3] = fra.me.REG[0];
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[String]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_standard___exec, 43);
+    nit_abort("Cast failed", NULL, LOCATE_standard___exec, 42);
   }
-  /* ./../lib/standard//exec.nit:46 */
+  /* ../lib/standard/exec.nit:45 */
   REGB0 = TAG_Int(0);
   CALL_standard___exec___Process___execute(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2], REGB0, init_table);
   stack_frame_head = fra.me.prev;
@@ -157,7 +137,7 @@ void standard___exec___Process___init_(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos1]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 49;
+  fra.me.line = 48;
   fra.me.meth = LOCATE_standard___exec___Process___init_;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -166,7 +146,7 @@ void standard___exec___Process___init_(val_t p0, val_t p1, int* init_table){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//exec.nit:52 */
+  /* ../lib/standard/exec.nit:51 */
   REGB0 = TAG_Int(0);
   CALL_standard___exec___Process___execute(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0, init_table);
   stack_frame_head = fra.me.prev;
@@ -185,7 +165,7 @@ void standard___exec___Process___execute(val_t p0, val_t p1, val_t p2, val_t p3,
   if (init_table[itpos2]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 55;
+  fra.me.line = 54;
   fra.me.meth = LOCATE_standard___exec___Process___execute;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -201,13 +181,13 @@ void standard___exec___Process___execute(val_t p0, val_t p1, val_t p2, val_t p3,
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   REGB0 = p3;
-  /* ./../lib/standard//exec.nit:58 */
+  /* ../lib/standard/exec.nit:57 */
   fra.me.REG[3] = NEW_Buffer_standard___string___Buffer___init();
-  /* ./../lib/standard//exec.nit:59 */
+  /* ../lib/standard/exec.nit:58 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//exec.nit:60 */
+  /* ../lib/standard/exec.nit:59 */
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-  /* ./../lib/standard//exec.nit:61 */
+  /* ../lib/standard/exec.nit:60 */
   REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -222,27 +202,27 @@ void standard___exec___Process___execute(val_t p0, val_t p1, val_t p2, val_t p3,
   }
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//exec.nit:62 */
+    /* ../lib/standard/exec.nit:61 */
     REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
-      nit_abort("Reciever is null", NULL, LOCATE_standard___exec, 62);
+      nit_abort("Reciever is null", NULL, LOCATE_standard___exec, 61);
     }
-    /* ./../lib/standard//collection//array.nit:266 */
+    /* ../lib/standard/collection/array.nit:266 */
     fra.me.REG[4] = fra.me.REG[2];
-    /* ./../lib/standard//collection//array.nit:269 */
+    /* ../lib/standard/collection/array.nit:269 */
     REGB2 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:270 */
+    /* ../lib/standard/collection/array.nit:270 */
     REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
     }
     REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-    /* ./../lib/standard//collection//array.nit:271 */
+    /* ../lib/standard/collection/array.nit:271 */
     fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     while(1) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
@@ -254,61 +234,103 @@ void standard___exec___Process___execute(val_t p0, val_t p1, val_t p2, val_t p3,
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       if (UNTAG_Bool(REGB3)) {
-        /* ./../lib/standard//collection//array.nit:273 */
+        /* ../lib/standard/collection/array.nit:273 */
         REGB3 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB2)];
-        /* ./../lib/standard//exec.nit:63 */
+        /* ../lib/standard/exec.nit:62 */
         REGB3 = TAG_Char('\0');
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], REGB3);
-        /* ./../lib/standard//exec.nit:64 */
+        /* ../lib/standard/exec.nit:63 */
         CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB3 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB2 = REGB3;
       } else {
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         goto label1;
       }
     }
     label1: while(0);
-    /* ./../lib/standard//exec.nit:66 */
+    /* ../lib/standard/exec.nit:65 */
     REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
-      nit_abort("Reciever is null", NULL, LOCATE_standard___exec, 66);
+      nit_abort("Reciever is null", NULL, LOCATE_standard___exec, 65);
     }
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-    /* ./../lib/standard//exec.nit:66 */
+    /* ../lib/standard/exec.nit:65 */
     REGB1 = REGB2;
   }
-  /* ./../lib/standard//exec.nit:68 */
+  /* ../lib/standard/exec.nit:67 */
   fra.me.REG[1] = CALL_standard___string___String___to_cstring(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_standard___string___String___to_cstring(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_standard___exec___Process___basic_exec_execute(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3], REGB1, REGB0);
-  ATTR_standard___exec___Process____data(fra.me.REG[0]) = fra.me.REG[3];
+  CALL_standard___exec___Process___data__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
   init_table[itpos2] = 1;
   return;
 }
+val_t standard___exec___Process___data(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_standard___exec;
+  fra.me.line = 70;
+  fra.me.meth = LOCATE_standard___exec___Process___data;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* ../lib/standard/exec.nit:70 */
+  REGB0 = TAG_Bool(ATTR_standard___exec___Process_____atdata(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "@data", LOCATE_standard___exec, 70);
+  }
+  fra.me.REG[0] = ATTR_standard___exec___Process_____atdata(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+void standard___exec___Process___data__eq(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_standard___exec;
+  fra.me.line = 70;
+  fra.me.meth = LOCATE_standard___exec___Process___data__eq;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* ../lib/standard/exec.nit:70 */
+  ATTR_standard___exec___Process_____atdata(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+  return;
+}
 val_t standard___exec___Process___basic_exec_execute(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
@@ -316,7 +338,7 @@ val_t standard___exec___Process___basic_exec_execute(val_t p0, val_t p1, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 72;
+  fra.me.line = 71;
   fra.me.meth = LOCATE_standard___exec___Process___basic_exec_execute;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -329,31 +351,67 @@ val_t standard___exec___Process___basic_exec_execute(val_t p0, val_t p1, val_t p
   fra.me.REG[2] = p2;
   REGB0 = p3;
   REGB1 = p4;
-  /* ./../lib/standard//exec.nit:72 */
+  /* ../lib/standard/exec.nit:71 */
   fra.me.REG[2] = Process_basic_exec_execute___out(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, REGB1);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
-void standard___exec___IProcess___close(val_t p0){
+val_t standard___exec___IProcess___stream_in(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 81;
-  fra.me.meth = LOCATE_standard___exec___IProcess___close;
+  fra.me.line = 78;
+  fra.me.meth = LOCATE_standard___exec___IProcess___stream_in;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:81 */
-  REGB0 = TAG_Bool(ATTR_standard___exec___IProcess____in(fra.me.REG[0])!=NIT_NULL);
+  /* ../lib/standard/exec.nit:78 */
+  REGB0 = TAG_Bool(ATTR_standard___exec___IProcess_____atstream_in(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_in", LOCATE_standard___exec, 81);
+    nit_abort("Uninitialized attribute %s", "@stream_in", LOCATE_standard___exec, 78);
   }
-  fra.me.REG[0] = ATTR_standard___exec___IProcess____in(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_standard___exec___IProcess_____atstream_in(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+void standard___exec___IProcess___stream_in__eq(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_standard___exec;
+  fra.me.line = 78;
+  fra.me.meth = LOCATE_standard___exec___IProcess___stream_in__eq;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* ../lib/standard/exec.nit:78 */
+  ATTR_standard___exec___IProcess_____atstream_in(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void standard___exec___IProcess___close(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_standard___exec;
+  fra.me.line = 80;
+  fra.me.meth = LOCATE_standard___exec___IProcess___close;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* ../lib/standard/exec.nit:80 */
+  fra.me.REG[0] = CALL_standard___exec___IProcess___stream_in(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___stream___IOS___close(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
@@ -364,20 +422,15 @@ val_t standard___exec___IProcess___read_char(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 83;
+  fra.me.line = 82;
   fra.me.meth = LOCATE_standard___exec___IProcess___read_char;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:83 */
-  REGB0 = TAG_Bool(ATTR_standard___exec___IProcess____in(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_in", LOCATE_standard___exec, 83);
-  }
-  fra.me.REG[0] = ATTR_standard___exec___IProcess____in(fra.me.REG[0]);
+  /* ../lib/standard/exec.nit:82 */
+  fra.me.REG[0] = CALL_standard___exec___IProcess___stream_in(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___stream___IStream___read_char(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -390,20 +443,15 @@ val_t standard___exec___IProcess___eof(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 85;
+  fra.me.line = 84;
   fra.me.meth = LOCATE_standard___exec___IProcess___eof;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:85 */
-  REGB0 = TAG_Bool(ATTR_standard___exec___IProcess____in(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_in", LOCATE_standard___exec, 85);
-  }
-  fra.me.REG[0] = ATTR_standard___exec___IProcess____in(fra.me.REG[0]);
+  /* ../lib/standard/exec.nit:84 */
+  fra.me.REG[0] = CALL_standard___exec___IProcess___stream_in(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___stream___IStream___eof(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -418,7 +466,7 @@ void standard___exec___IProcess___init(val_t p0, val_t p1, val_t p2, int* init_t
   if (init_table[itpos3]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 87;
+  fra.me.line = 86;
   fra.me.meth = LOCATE_standard___exec___IProcess___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -430,26 +478,21 @@ void standard___exec___IProcess___init(val_t p0, val_t p1, val_t p2, int* init_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/standard//exec.nit:87 */
+  /* ../lib/standard/exec.nit:86 */
   fra.me.REG[3] = fra.me.REG[0];
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[String]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_standard___exec, 87);
+    nit_abort("Cast failed", NULL, LOCATE_standard___exec, 86);
   }
-  /* ./../lib/standard//exec.nit:89 */
+  /* ../lib/standard/exec.nit:88 */
   REGB0 = TAG_Int(2);
   CALL_standard___exec___Process___execute(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2], REGB0, init_table);
-  /* ./../lib/standard//exec.nit:90 */
-  REGB0 = TAG_Bool(ATTR_standard___exec___Process____data(fra.me.REG[3])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_data", LOCATE_standard___exec, 90);
-  }
-  fra.me.REG[2] = ATTR_standard___exec___Process____data(fra.me.REG[3]);
+  /* ../lib/standard/exec.nit:89 */
+  fra.me.REG[2] = CALL_standard___exec___Process___data(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = CALL_standard___exec___NativeProcess___out_fd(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = NEW_FDIStream_standard___stream___FDIStream___init(REGB0);
-  ATTR_standard___exec___IProcess____in(fra.me.REG[3]) = fra.me.REG[2];
+  CALL_standard___exec___IProcess___stream_in__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   init_table[itpos3] = 1;
   return;
@@ -462,7 +505,7 @@ void standard___exec___IProcess___init_(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos4]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 93;
+  fra.me.line = 92;
   fra.me.meth = LOCATE_standard___exec___IProcess___init_;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -471,43 +514,74 @@ void standard___exec___IProcess___init_(val_t p0, val_t p1, int* init_table){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//exec.nit:95 */
+  /* ../lib/standard/exec.nit:94 */
   REGB0 = TAG_Int(2);
   CALL_standard___exec___Process___execute(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0, init_table);
-  /* ./../lib/standard//exec.nit:96 */
-  REGB0 = TAG_Bool(ATTR_standard___exec___Process____data(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_data", LOCATE_standard___exec, 96);
-  }
-  fra.me.REG[1] = ATTR_standard___exec___Process____data(fra.me.REG[0]);
+  /* ../lib/standard/exec.nit:95 */
+  fra.me.REG[1] = CALL_standard___exec___Process___data(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___exec___NativeProcess___out_fd(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = NEW_FDIStream_standard___stream___FDIStream___init(REGB0);
-  ATTR_standard___exec___IProcess____in(fra.me.REG[0]) = fra.me.REG[1];
+  CALL_standard___exec___IProcess___stream_in__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   init_table[itpos4] = 1;
   return;
 }
-void standard___exec___OProcess___close(val_t p0){
+val_t standard___exec___OProcess___stream_out(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 106;
-  fra.me.meth = LOCATE_standard___exec___OProcess___close;
+  fra.me.line = 103;
+  fra.me.meth = LOCATE_standard___exec___OProcess___stream_out;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:106 */
-  REGB0 = TAG_Bool(ATTR_standard___exec___OProcess____out(fra.me.REG[0])!=NIT_NULL);
+  /* ../lib/standard/exec.nit:103 */
+  REGB0 = TAG_Bool(ATTR_standard___exec___OProcess_____atstream_out(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_out", LOCATE_standard___exec, 106);
+    nit_abort("Uninitialized attribute %s", "@stream_out", LOCATE_standard___exec, 103);
   }
-  fra.me.REG[0] = ATTR_standard___exec___OProcess____out(fra.me.REG[0]);
+  fra.me.REG[0] = ATTR_standard___exec___OProcess_____atstream_out(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+void standard___exec___OProcess___stream_out__eq(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_standard___exec;
+  fra.me.line = 103;
+  fra.me.meth = LOCATE_standard___exec___OProcess___stream_out__eq;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* ../lib/standard/exec.nit:103 */
+  ATTR_standard___exec___OProcess_____atstream_out(fra.me.REG[0]) = fra.me.REG[1];
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void standard___exec___OProcess___close(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_standard___exec;
+  fra.me.line = 105;
+  fra.me.meth = LOCATE_standard___exec___OProcess___close;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* ../lib/standard/exec.nit:105 */
+  fra.me.REG[0] = CALL_standard___exec___OProcess___stream_out(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___stream___IOS___close(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
@@ -518,20 +592,15 @@ val_t standard___exec___OProcess___is_writable(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 108;
+  fra.me.line = 107;
   fra.me.meth = LOCATE_standard___exec___OProcess___is_writable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:108 */
-  REGB0 = TAG_Bool(ATTR_standard___exec___OProcess____out(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_out", LOCATE_standard___exec, 108);
-  }
-  fra.me.REG[0] = ATTR_standard___exec___OProcess____out(fra.me.REG[0]);
+  /* ../lib/standard/exec.nit:107 */
+  fra.me.REG[0] = CALL_standard___exec___OProcess___stream_out(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___stream___OStream___is_writable(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -540,11 +609,10 @@ val_t standard___exec___OProcess___is_writable(val_t p0){
 }
 void standard___exec___OProcess___write(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 110;
+  fra.me.line = 109;
   fra.me.meth = LOCATE_standard___exec___OProcess___write;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -553,13 +621,8 @@ void standard___exec___OProcess___write(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//exec.nit:110 */
-  REGB0 = TAG_Bool(ATTR_standard___exec___OProcess____out(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_out", LOCATE_standard___exec, 110);
-  }
-  fra.me.REG[0] = ATTR_standard___exec___OProcess____out(fra.me.REG[0]);
+  /* ../lib/standard/exec.nit:109 */
+  fra.me.REG[0] = CALL_standard___exec___OProcess___stream_out(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___stream___OStream___write(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -572,7 +635,7 @@ void standard___exec___OProcess___init(val_t p0, val_t p1, val_t p2, int* init_t
   if (init_table[itpos5]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 112;
+  fra.me.line = 111;
   fra.me.meth = LOCATE_standard___exec___OProcess___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -584,26 +647,21 @@ void standard___exec___OProcess___init(val_t p0, val_t p1, val_t p2, int* init_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/standard//exec.nit:112 */
+  /* ../lib/standard/exec.nit:111 */
   fra.me.REG[3] = fra.me.REG[0];
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[String]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_standard___exec, 112);
+    nit_abort("Cast failed", NULL, LOCATE_standard___exec, 111);
   }
-  /* ./../lib/standard//exec.nit:114 */
+  /* ../lib/standard/exec.nit:113 */
   REGB0 = TAG_Int(1);
   CALL_standard___exec___Process___execute(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2], REGB0, init_table);
-  /* ./../lib/standard//exec.nit:115 */
-  REGB0 = TAG_Bool(ATTR_standard___exec___Process____data(fra.me.REG[3])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_data", LOCATE_standard___exec, 115);
-  }
-  fra.me.REG[2] = ATTR_standard___exec___Process____data(fra.me.REG[3]);
+  /* ../lib/standard/exec.nit:114 */
+  fra.me.REG[2] = CALL_standard___exec___Process___data(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = CALL_standard___exec___NativeProcess___in_fd(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = NEW_FDOStream_standard___stream___FDOStream___init(REGB0);
-  ATTR_standard___exec___OProcess____out(fra.me.REG[3]) = fra.me.REG[2];
+  CALL_standard___exec___OProcess___stream_out__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   init_table[itpos5] = 1;
   return;
@@ -616,7 +674,7 @@ void standard___exec___OProcess___init_(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos6]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 118;
+  fra.me.line = 117;
   fra.me.meth = LOCATE_standard___exec___OProcess___init_;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -625,30 +683,24 @@ void standard___exec___OProcess___init_(val_t p0, val_t p1, int* init_table){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//exec.nit:120 */
+  /* ../lib/standard/exec.nit:119 */
   REGB0 = TAG_Int(1);
   CALL_standard___exec___Process___execute(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0, init_table);
-  /* ./../lib/standard//exec.nit:121 */
-  REGB0 = TAG_Bool(ATTR_standard___exec___Process____data(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_data", LOCATE_standard___exec, 121);
-  }
-  fra.me.REG[1] = ATTR_standard___exec___Process____data(fra.me.REG[0]);
+  /* ../lib/standard/exec.nit:120 */
+  fra.me.REG[1] = CALL_standard___exec___Process___data(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___exec___NativeProcess___in_fd(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = NEW_FDOStream_standard___stream___FDOStream___init(REGB0);
-  ATTR_standard___exec___OProcess____out(fra.me.REG[0]) = fra.me.REG[1];
+  CALL_standard___exec___OProcess___stream_out__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   init_table[itpos6] = 1;
   return;
 }
 void standard___exec___IOProcess___close(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 131;
+  fra.me.line = 130;
   fra.me.meth = LOCATE_standard___exec___IOProcess___close;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -656,21 +708,11 @@ void standard___exec___IOProcess___close(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:133 */
-  REGB0 = TAG_Bool(ATTR_standard___exec___IProcess____in(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_in", LOCATE_standard___exec, 133);
-  }
-  fra.me.REG[1] = ATTR_standard___exec___IProcess____in(fra.me.REG[0]);
+  /* ../lib/standard/exec.nit:132 */
+  fra.me.REG[1] = CALL_standard___exec___IProcess___stream_in(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___stream___IOS___close(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./../lib/standard//exec.nit:134 */
-  REGB0 = TAG_Bool(ATTR_standard___exec___OProcess____out(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_out", LOCATE_standard___exec, 134);
-  }
-  fra.me.REG[0] = ATTR_standard___exec___OProcess____out(fra.me.REG[0]);
+  /* ../lib/standard/exec.nit:133 */
+  fra.me.REG[0] = CALL_standard___exec___OProcess___stream_out(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___stream___IOS___close(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
@@ -683,7 +725,7 @@ void standard___exec___IOProcess___init(val_t p0, val_t p1, val_t p2, int* init_
   if (init_table[itpos7]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 137;
+  fra.me.line = 136;
   fra.me.meth = LOCATE_standard___exec___IOProcess___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -697,40 +739,30 @@ void standard___exec___IOProcess___init(val_t p0, val_t p1, val_t p2, int* init_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/standard//exec.nit:137 */
+  /* ../lib/standard/exec.nit:136 */
   fra.me.REG[3] = fra.me.REG[0];
   fra.me.REG[4] = fra.me.REG[1];
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[String]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_standard___exec, 137);
+    nit_abort("Cast failed", NULL, LOCATE_standard___exec, 136);
   }
   fra.me.REG[5] = fra.me.REG[2];
-  /* ./../lib/standard//exec.nit:139 */
+  /* ../lib/standard/exec.nit:138 */
   REGB0 = TAG_Int(3);
   CALL_standard___exec___Process___execute(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5], REGB0, init_table);
   CALL_standard___exec___IProcess___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
   CALL_standard___exec___OProcess___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  /* ./../lib/standard//exec.nit:140 */
-  REGB0 = TAG_Bool(ATTR_standard___exec___Process____data(fra.me.REG[3])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_data", LOCATE_standard___exec, 140);
-  }
-  fra.me.REG[2] = ATTR_standard___exec___Process____data(fra.me.REG[3]);
+  /* ../lib/standard/exec.nit:139 */
+  fra.me.REG[2] = CALL_standard___exec___Process___data(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = CALL_standard___exec___NativeProcess___out_fd(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = NEW_FDIStream_standard___stream___FDIStream___init(REGB0);
-  ATTR_standard___exec___IProcess____in(fra.me.REG[3]) = fra.me.REG[2];
-  /* ./../lib/standard//exec.nit:141 */
-  REGB0 = TAG_Bool(ATTR_standard___exec___Process____data(fra.me.REG[3])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_data", LOCATE_standard___exec, 141);
-  }
-  fra.me.REG[2] = ATTR_standard___exec___Process____data(fra.me.REG[3]);
+  CALL_standard___exec___IProcess___stream_in__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
+  /* ../lib/standard/exec.nit:140 */
+  fra.me.REG[2] = CALL_standard___exec___Process___data(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = CALL_standard___exec___NativeProcess___in_fd(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = NEW_FDOStream_standard___stream___FDOStream___init(REGB0);
-  ATTR_standard___exec___OProcess____out(fra.me.REG[3]) = fra.me.REG[2];
+  CALL_standard___exec___OProcess___stream_out__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   init_table[itpos7] = 1;
   return;
@@ -743,7 +775,7 @@ void standard___exec___IOProcess___init_(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos8]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 144;
+  fra.me.line = 143;
   fra.me.meth = LOCATE_standard___exec___IOProcess___init_;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -754,34 +786,24 @@ void standard___exec___IOProcess___init_(val_t p0, val_t p1, int* init_table){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//exec.nit:144 */
+  /* ../lib/standard/exec.nit:143 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./../lib/standard//exec.nit:146 */
+  /* ../lib/standard/exec.nit:145 */
   REGB0 = TAG_Int(3);
   CALL_standard___exec___Process___execute(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], NIT_NULL, REGB0, init_table);
   CALL_standard___exec___IProcess___init_(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
   CALL_standard___exec___OProcess___init_(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
-  /* ./../lib/standard//exec.nit:147 */
-  REGB0 = TAG_Bool(ATTR_standard___exec___Process____data(fra.me.REG[2])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_data", LOCATE_standard___exec, 147);
-  }
-  fra.me.REG[1] = ATTR_standard___exec___Process____data(fra.me.REG[2]);
+  /* ../lib/standard/exec.nit:146 */
+  fra.me.REG[1] = CALL_standard___exec___Process___data(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_standard___exec___NativeProcess___out_fd(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = NEW_FDIStream_standard___stream___FDIStream___init(REGB0);
-  ATTR_standard___exec___IProcess____in(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./../lib/standard//exec.nit:148 */
-  REGB0 = TAG_Bool(ATTR_standard___exec___Process____data(fra.me.REG[2])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_data", LOCATE_standard___exec, 148);
-  }
-  fra.me.REG[1] = ATTR_standard___exec___Process____data(fra.me.REG[2]);
+  CALL_standard___exec___IProcess___stream_in__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  /* ../lib/standard/exec.nit:147 */
+  fra.me.REG[1] = CALL_standard___exec___Process___data(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_standard___exec___NativeProcess___in_fd(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = NEW_FDOStream_standard___stream___FDOStream___init(REGB0);
-  ATTR_standard___exec___OProcess____out(fra.me.REG[2]) = fra.me.REG[1];
+  CALL_standard___exec___OProcess___stream_out__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   init_table[itpos8] = 1;
   return;
@@ -792,7 +814,7 @@ val_t standard___exec___Sys___system(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 153;
+  fra.me.line = 152;
   fra.me.meth = LOCATE_standard___exec___Sys___system;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -801,7 +823,7 @@ val_t standard___exec___Sys___system(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//exec.nit:156 */
+  /* ../lib/standard/exec.nit:155 */
   fra.me.REG[1] = CALL_standard___string___String___to_cstring(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = CALL_standard___exec___NativeString___system(fra.me.REG[1])(fra.me.REG[1]);
   goto label1;
@@ -815,14 +837,14 @@ val_t standard___exec___NativeString___system(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 161;
+  fra.me.line = 160;
   fra.me.meth = LOCATE_standard___exec___NativeString___system;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:161 */
+  /* ../lib/standard/exec.nit:160 */
   REGB0 = NativeString_system___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -833,14 +855,14 @@ val_t standard___exec___NativeProcess___id(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 165;
+  fra.me.line = 164;
   fra.me.meth = LOCATE_standard___exec___NativeProcess___id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:165 */
+  /* ../lib/standard/exec.nit:164 */
   REGB0 = NativeProcess_id___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -851,14 +873,14 @@ val_t standard___exec___NativeProcess___is_finished(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 166;
+  fra.me.line = 165;
   fra.me.meth = LOCATE_standard___exec___NativeProcess___is_finished;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:166 */
+  /* ../lib/standard/exec.nit:165 */
   REGB0 = NativeProcess_is_finished___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -869,14 +891,14 @@ val_t standard___exec___NativeProcess___status(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 167;
+  fra.me.line = 166;
   fra.me.meth = LOCATE_standard___exec___NativeProcess___status;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:167 */
+  /* ../lib/standard/exec.nit:166 */
   REGB0 = NativeProcess_status___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -886,14 +908,14 @@ void standard___exec___NativeProcess___wait(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 168;
+  fra.me.line = 167;
   fra.me.meth = LOCATE_standard___exec___NativeProcess___wait;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:168 */
+  /* ../lib/standard/exec.nit:167 */
   NativeProcess_wait___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
@@ -904,14 +926,14 @@ val_t standard___exec___NativeProcess___in_fd(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 170;
+  fra.me.line = 169;
   fra.me.meth = LOCATE_standard___exec___NativeProcess___in_fd;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:170 */
+  /* ../lib/standard/exec.nit:169 */
   REGB0 = NativeProcess_in_fd___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -922,14 +944,14 @@ val_t standard___exec___NativeProcess___out_fd(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 171;
+  fra.me.line = 170;
   fra.me.meth = LOCATE_standard___exec___NativeProcess___out_fd;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:171 */
+  /* ../lib/standard/exec.nit:170 */
   REGB0 = NativeProcess_out_fd___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -940,14 +962,14 @@ val_t standard___exec___NativeProcess___err_fd(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___exec;
-  fra.me.line = 172;
+  fra.me.line = 171;
   fra.me.meth = LOCATE_standard___exec___NativeProcess___err_fd;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//exec.nit:172 */
+  /* ../lib/standard/exec.nit:171 */
   REGB0 = NativeProcess_err_fd___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
index 111dd89..f71e87b 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/standard/exec. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/standard/exec. */
 #ifndef standard___exec_sep
 #define standard___exec_sep
 #include "standard___stream._sep.h"
@@ -21,7 +21,7 @@ extern const char *LOCATE_standard___exec;
 extern const int SFT_standard___exec[];
 #define ID_standard___exec___Process (SFT_standard___exec[0])
 #define COLOR_standard___exec___Process (SFT_standard___exec[1])
-#define ATTR_standard___exec___Process____data(recv) ATTR(recv, (SFT_standard___exec[2] + 0))
+#define ATTR_standard___exec___Process_____atdata(recv) ATTR(recv, (SFT_standard___exec[2] + 0))
 #define INIT_TABLE_POS_standard___exec___Process (SFT_standard___exec[3] + 0)
 #define CALL_standard___exec___Process___id(recv) ((standard___exec___Process___id_t)CALL((recv), (SFT_standard___exec[3] + 1)))
 #define CALL_standard___exec___Process___is_finished(recv) ((standard___exec___Process___is_finished_t)CALL((recv), (SFT_standard___exec[3] + 2)))
@@ -30,19 +30,25 @@ extern const int SFT_standard___exec[];
 #define CALL_standard___exec___Process___init(recv) ((standard___exec___Process___init_t)CALL((recv), (SFT_standard___exec[3] + 5)))
 #define CALL_standard___exec___Process___init_(recv) ((standard___exec___Process___init__t)CALL((recv), (SFT_standard___exec[3] + 6)))
 #define CALL_standard___exec___Process___execute(recv) ((standard___exec___Process___execute_t)CALL((recv), (SFT_standard___exec[3] + 7)))
-#define CALL_standard___exec___Process___basic_exec_execute(recv) ((standard___exec___Process___basic_exec_execute_t)CALL((recv), (SFT_standard___exec[3] + 8)))
+#define CALL_standard___exec___Process___data(recv) ((standard___exec___Process___data_t)CALL((recv), (SFT_standard___exec[3] + 8)))
+#define CALL_standard___exec___Process___data__eq(recv) ((standard___exec___Process___data__eq_t)CALL((recv), (SFT_standard___exec[3] + 9)))
+#define CALL_standard___exec___Process___basic_exec_execute(recv) ((standard___exec___Process___basic_exec_execute_t)CALL((recv), (SFT_standard___exec[3] + 10)))
 #define ID_standard___exec___IProcess (SFT_standard___exec[4])
 #define COLOR_standard___exec___IProcess (SFT_standard___exec[5])
-#define ATTR_standard___exec___IProcess____in(recv) ATTR(recv, (SFT_standard___exec[6] + 0))
+#define ATTR_standard___exec___IProcess_____atstream_in(recv) ATTR(recv, (SFT_standard___exec[6] + 0))
 #define INIT_TABLE_POS_standard___exec___IProcess (SFT_standard___exec[7] + 0)
-#define CALL_standard___exec___IProcess___init(recv) ((standard___exec___IProcess___init_t)CALL((recv), (SFT_standard___exec[7] + 1)))
-#define CALL_standard___exec___IProcess___init_(recv) ((standard___exec___IProcess___init__t)CALL((recv), (SFT_standard___exec[7] + 2)))
+#define CALL_standard___exec___IProcess___stream_in(recv) ((standard___exec___IProcess___stream_in_t)CALL((recv), (SFT_standard___exec[7] + 1)))
+#define CALL_standard___exec___IProcess___stream_in__eq(recv) ((standard___exec___IProcess___stream_in__eq_t)CALL((recv), (SFT_standard___exec[7] + 2)))
+#define CALL_standard___exec___IProcess___init(recv) ((standard___exec___IProcess___init_t)CALL((recv), (SFT_standard___exec[7] + 3)))
+#define CALL_standard___exec___IProcess___init_(recv) ((standard___exec___IProcess___init__t)CALL((recv), (SFT_standard___exec[7] + 4)))
 #define ID_standard___exec___OProcess (SFT_standard___exec[8])
 #define COLOR_standard___exec___OProcess (SFT_standard___exec[9])
-#define ATTR_standard___exec___OProcess____out(recv) ATTR(recv, (SFT_standard___exec[10] + 0))
+#define ATTR_standard___exec___OProcess_____atstream_out(recv) ATTR(recv, (SFT_standard___exec[10] + 0))
 #define INIT_TABLE_POS_standard___exec___OProcess (SFT_standard___exec[11] + 0)
-#define CALL_standard___exec___OProcess___init(recv) ((standard___exec___OProcess___init_t)CALL((recv), (SFT_standard___exec[11] + 1)))
-#define CALL_standard___exec___OProcess___init_(recv) ((standard___exec___OProcess___init__t)CALL((recv), (SFT_standard___exec[11] + 2)))
+#define CALL_standard___exec___OProcess___stream_out(recv) ((standard___exec___OProcess___stream_out_t)CALL((recv), (SFT_standard___exec[11] + 1)))
+#define CALL_standard___exec___OProcess___stream_out__eq(recv) ((standard___exec___OProcess___stream_out__eq_t)CALL((recv), (SFT_standard___exec[11] + 2)))
+#define CALL_standard___exec___OProcess___init(recv) ((standard___exec___OProcess___init_t)CALL((recv), (SFT_standard___exec[11] + 3)))
+#define CALL_standard___exec___OProcess___init_(recv) ((standard___exec___OProcess___init__t)CALL((recv), (SFT_standard___exec[11] + 4)))
 #define ID_standard___exec___IOProcess (SFT_standard___exec[12])
 #define COLOR_standard___exec___IOProcess (SFT_standard___exec[13])
 #define INIT_TABLE_POS_standard___exec___IOProcess (SFT_standard___exec[14] + 0)
@@ -84,9 +90,21 @@ static const char * const LOCATE_standard___exec___Process___execute = "exec::Pr
 void standard___exec___Process___execute(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table);
 typedef void (*standard___exec___Process___execute_t)(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table);
 val_t NEW_Process_standard___exec___Process___execute(val_t p0, val_t p1, val_t p2);
+static const char * const LOCATE_standard___exec___Process___data = "exec::Process::data";
+val_t standard___exec___Process___data(val_t p0);
+typedef val_t (*standard___exec___Process___data_t)(val_t p0);
+static const char * const LOCATE_standard___exec___Process___data__eq = "exec::Process::data=";
+void standard___exec___Process___data__eq(val_t p0, val_t p1);
+typedef void (*standard___exec___Process___data__eq_t)(val_t p0, val_t p1);
 static const char * const LOCATE_standard___exec___Process___basic_exec_execute = "exec::Process::basic_exec_execute";
 val_t standard___exec___Process___basic_exec_execute(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 typedef val_t (*standard___exec___Process___basic_exec_execute_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+static const char * const LOCATE_standard___exec___IProcess___stream_in = "exec::IProcess::stream_in";
+val_t standard___exec___IProcess___stream_in(val_t p0);
+typedef val_t (*standard___exec___IProcess___stream_in_t)(val_t p0);
+static const char * const LOCATE_standard___exec___IProcess___stream_in__eq = "exec::IProcess::stream_in=";
+void standard___exec___IProcess___stream_in__eq(val_t p0, val_t p1);
+typedef void (*standard___exec___IProcess___stream_in__eq_t)(val_t p0, val_t p1);
 static const char * const LOCATE_standard___exec___IProcess___close = "exec::IProcess::(stream::IOS::close)";
 void standard___exec___IProcess___close(val_t p0);
 typedef void (*standard___exec___IProcess___close_t)(val_t p0);
@@ -104,6 +122,12 @@ static const char * const LOCATE_standard___exec___IProcess___init_ = "exec::IPr
 void standard___exec___IProcess___init_(val_t p0, val_t p1, int* init_table);
 typedef void (*standard___exec___IProcess___init__t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_IProcess_standard___exec___IProcess___init_(val_t p0);
+static const char * const LOCATE_standard___exec___OProcess___stream_out = "exec::OProcess::stream_out";
+val_t standard___exec___OProcess___stream_out(val_t p0);
+typedef val_t (*standard___exec___OProcess___stream_out_t)(val_t p0);
+static const char * const LOCATE_standard___exec___OProcess___stream_out__eq = "exec::OProcess::stream_out=";
+void standard___exec___OProcess___stream_out__eq(val_t p0, val_t p1);
+typedef void (*standard___exec___OProcess___stream_out__eq_t)(val_t p0, val_t p1);
 static const char * const LOCATE_standard___exec___OProcess___close = "exec::OProcess::(stream::IOS::close)";
 void standard___exec___OProcess___close(val_t p0);
 typedef void (*standard___exec___OProcess___close_t)(val_t p0);
index 58cb7ae..f9ee6ae 100644 (file)
@@ -16,14 +16,14 @@ void standard___file___Object___printn(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//file.nit:25 */
+  /* ../lib/standard/file.nit:25 */
   fra.me.REG[2] = fra.me.REG[0];
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Object]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___file, 25);
   }
-  /* ./../lib/standard//file.nit:28 */
+  /* ../lib/standard/file.nit:28 */
   fra.me.REG[2] = CALL_standard___file___Object___stdout(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
@@ -47,11 +47,11 @@ void standard___file___Object___print(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//file.nit:34 */
+  /* ../lib/standard/file.nit:34 */
   fra.me.REG[2] = CALL_standard___file___Object___stdout(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./../lib/standard//file.nit:35 */
+  /* ../lib/standard/file.nit:35 */
   fra.me.REG[0] = CALL_standard___file___Object___stdout(fra.me.REG[0])(fra.me.REG[0]);
   if (!once_value_1) {
     fra.me.REG[1] = BOX_NativeString("\n");
@@ -78,12 +78,12 @@ val_t standard___file___Object___getc(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:41 */
+  /* ../lib/standard/file.nit:41 */
   fra.me.REG[0] = CALL_standard___file___Object___stdin(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___stream___IStream___read_char(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//kernel.nit:297 */
+  /* ../lib/standard/kernel.nit:297 */
   REGB0 = TAG_Char(UNTAG_Int(REGB0));
-  /* ./../lib/standard//file.nit:41 */
+  /* ../lib/standard/file.nit:41 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -101,7 +101,7 @@ val_t standard___file___Object___gets(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:47 */
+  /* ../lib/standard/file.nit:47 */
   fra.me.REG[0] = CALL_standard___file___Object___stdin(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___stream___IStream___read_line(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -115,14 +115,14 @@ val_t standard___file___Object___stdin(val_t p0){
   static val_t once_value_1; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 323;
+  fra.me.line = 346;
   fra.me.meth = LOCATE_standard___file___Object___stdin;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:324 */
+  /* ../lib/standard/file.nit:347 */
   if (!once_value_1) {
     fra.me.REG[0] = NEW_Stdin_standard___file___Stdin___init();
     once_value_1 = fra.me.REG[0];
@@ -140,14 +140,14 @@ val_t standard___file___Object___stdout(val_t p0){
   static val_t once_value_1; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 326;
+  fra.me.line = 349;
   fra.me.meth = LOCATE_standard___file___Object___stdout;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:327 */
+  /* ../lib/standard/file.nit:350 */
   if (!once_value_1) {
     fra.me.REG[0] = NEW_Stdout_standard___file___Stdout___init();
     once_value_1 = fra.me.REG[0];
@@ -165,14 +165,14 @@ val_t standard___file___Object___stderr(val_t p0){
   static val_t once_value_1; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 329;
+  fra.me.line = 352;
   fra.me.meth = LOCATE_standard___file___Object___stderr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:330 */
+  /* ../lib/standard/file.nit:353 */
   if (!once_value_1) {
     fra.me.REG[0] = NEW_Stderr_standard___file___Stderr___init();
     once_value_1 = fra.me.REG[0];
@@ -189,14 +189,14 @@ val_t standard___file___FStream___path(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 55;
+  fra.me.line = 54;
   fra.me.meth = LOCATE_standard___file___FStream___path;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:55 */
+  /* ../lib/standard/file.nit:54 */
   fra.me.REG[0] = ATTR_standard___file___FStream____path(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -207,18 +207,18 @@ val_t standard___file___FStream___file_stat(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 61;
+  fra.me.line = 60;
   fra.me.meth = LOCATE_standard___file___FStream___file_stat;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:62 */
+  /* ../lib/standard/file.nit:61 */
   fra.me.REG[0] = ATTR_standard___file___FStream____file(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 62);
+    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 61);
   }
   fra.me.REG[0] = CALL_standard___file___NativeFile___file_stat(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -226,13 +226,29 @@ val_t standard___file___FStream___file_stat(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+void standard___file___FStream___init(val_t p0, int* init_table){
+  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___FStream].i;
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  if (init_table[itpos0]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_standard___file;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_standard___file___FStream___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+  init_table[itpos0] = 1;
+  return;
+}
 void standard___file___IFStream___reopen(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 71;
+  fra.me.line = 70;
   fra.me.meth = LOCATE_standard___file___IFStream___reopen;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -240,32 +256,32 @@ void standard___file___IFStream___reopen(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:75 */
+  /* ../lib/standard/file.nit:74 */
   REGB0 = CALL_standard___stream___IStream___eof(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     CALL_standard___stream___IOS___close(fra.me.REG[0])(fra.me.REG[0]);
   }
-  /* ./../lib/standard//file.nit:76 */
+  /* ../lib/standard/file.nit:75 */
   fra.me.REG[1] = ATTR_standard___file___FStream____path(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 76);
+    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 75);
   }
   fra.me.REG[1] = CALL_standard___string___String___to_cstring(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[1] = CALL_standard___file___NativeFileCapable___io_open_read(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  fra.me.REG[1] = NEW_NativeFile_standard___file___NativeFile___io_open_read(fra.me.REG[1]);
   ATTR_standard___file___FStream____file(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//file.nit:77 */
+  /* ../lib/standard/file.nit:76 */
   REGB0 = TAG_Bool(false);
   ATTR_standard___file___IFStream____end_reached(fra.me.REG[0]) = REGB0;
-  /* ./../lib/standard//file.nit:78 */
+  /* ../lib/standard/file.nit:77 */
   REGB0 = TAG_Int(0);
   ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB0;
-  /* ./../lib/standard//file.nit:79 */
+  /* ../lib/standard/file.nit:78 */
   fra.me.REG[0] = ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 79);
+    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 78);
   }
   CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -277,7 +293,7 @@ void standard___file___IFStream___close(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 82;
+  fra.me.line = 81;
   fra.me.meth = LOCATE_standard___file___IFStream___close;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -285,14 +301,14 @@ void standard___file___IFStream___close(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:84 */
+  /* ../lib/standard/file.nit:83 */
   fra.me.REG[1] = ATTR_standard___file___FStream____file(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 84);
+    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 83);
   }
   REGB0 = CALL_standard___file___NativeFile___io_close(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./../lib/standard//file.nit:85 */
+  /* ../lib/standard/file.nit:84 */
   REGB0 = TAG_Bool(true);
   ATTR_standard___file___IFStream____end_reached(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -306,7 +322,7 @@ void standard___file___IFStream___fill_buffer(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 88;
+  fra.me.line = 87;
   fra.me.meth = LOCATE_standard___file___IFStream___fill_buffer;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -316,61 +332,61 @@ void standard___file___IFStream___fill_buffer(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:90 */
+  /* ../lib/standard/file.nit:89 */
   fra.me.REG[1] = ATTR_standard___file___FStream____file(fra.me.REG[0]);
   fra.me.REG[2] = ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 90);
+    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 89);
   }
   REGB0 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___file, 90);
+    nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___file, 89);
   }
   fra.me.REG[2] = ATTR_standard___string___AbstractString____items(fra.me.REG[2]);
   fra.me.REG[3] = ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 90);
+    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 89);
   }
   REGB0 = TAG_Bool(ATTR_standard___string___Buffer____capacity(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___file, 90);
+    nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___file, 89);
   }
   REGB0 = ATTR_standard___string___Buffer____capacity(fra.me.REG[3]);
   REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
-    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 90);
+    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 89);
   }
   REGB0 = CALL_standard___file___NativeFile___io_read(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], REGB0);
-  /* ./../lib/standard//file.nit:91 */
+  /* ../lib/standard/file.nit:90 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:231 */
+  /* ../lib/standard/kernel.nit:231 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1));
-  /* ./../lib/standard//file.nit:91 */
+  /* ../lib/standard/file.nit:90 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//file.nit:92 */
+    /* ../lib/standard/file.nit:91 */
     REGB1 = TAG_Bool(true);
     ATTR_standard___file___IFStream____end_reached(fra.me.REG[0]) = REGB1;
-    /* ./../lib/standard//file.nit:93 */
+    /* ../lib/standard/file.nit:92 */
     REGB1 = TAG_Int(0);
     REGB0 = REGB1;
   }
-  /* ./../lib/standard//file.nit:95 */
+  /* ../lib/standard/file.nit:94 */
   fra.me.REG[2] = ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]);
   REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
-    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 95);
+    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 94);
   }
   ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]) = REGB0;
-  /* ./../lib/standard//file.nit:96 */
+  /* ../lib/standard/file.nit:95 */
   REGB0 = TAG_Int(0);
   ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -382,112 +398,123 @@ val_t standard___file___IFStream___end_reached(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 99;
+  fra.me.line = 98;
   fra.me.meth = LOCATE_standard___file___IFStream___end_reached;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:99 */
+  /* ../lib/standard/file.nit:98 */
   REGB0 = TAG_Bool(ATTR_standard___file___IFStream____end_reached(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_end_reached", LOCATE_standard___file, 99);
+    nit_abort("Uninitialized attribute %s", "_end_reached", LOCATE_standard___file, 98);
   }
   REGB0 = ATTR_standard___file___IFStream____end_reached(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
 void standard___file___IFStream___open(val_t p0, val_t p1, int* init_table){
-  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___IFStream].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___IFStream].i;
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
-  if (init_table[itpos0]) return;
+  if (init_table[itpos1]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 102;
+  fra.me.line = 101;
   fra.me.meth = LOCATE_standard___file___IFStream___open;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//file.nit:105 */
-  ATTR_standard___file___FStream____path(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//file.nit:106 */
+  /* ../lib/standard/file.nit:101 */
+  fra.me.REG[2] = fra.me.REG[0];
+  CALL_standard___file___FStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
+  CALL_standard___stream___BufferedIStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
+  /* ../lib/standard/file.nit:104 */
+  ATTR_standard___file___FStream____path(fra.me.REG[2]) = fra.me.REG[1];
+  /* ../lib/standard/file.nit:105 */
   REGB0 = TAG_Int(10);
-  CALL_standard___stream___BufferedIStream___prepare_buffer(fra.me.REG[0])(fra.me.REG[0], REGB0);
-  /* ./../lib/standard//file.nit:107 */
-  fra.me.REG[1] = ATTR_standard___file___FStream____path(fra.me.REG[0]);
+  CALL_standard___stream___BufferedIStream___prepare_buffer(fra.me.REG[2])(fra.me.REG[2], REGB0);
+  /* ../lib/standard/file.nit:106 */
+  fra.me.REG[1] = ATTR_standard___file___FStream____path(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 107);
+    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 106);
   }
   fra.me.REG[1] = CALL_standard___string___String___to_cstring(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[1] = CALL_standard___file___NativeFileCapable___io_open_read(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  ATTR_standard___file___FStream____file(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//file.nit:108 */
-  fra.me.REG[0] = ATTR_standard___file___FStream____file(fra.me.REG[0]);
-  REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
+  fra.me.REG[1] = NEW_NativeFile_standard___file___NativeFile___io_open_read(fra.me.REG[1]);
+  ATTR_standard___file___FStream____file(fra.me.REG[2]) = fra.me.REG[1];
+  /* ../lib/standard/file.nit:107 */
+  fra.me.REG[2] = ATTR_standard___file___FStream____file(fra.me.REG[2]);
+  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
+    REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       REGB1 = TAG_Bool(false);
       REGB0 = REGB1;
     } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
       REGB0 = REGB1;
     }
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert %s  failed", "'cant_open_file'", LOCATE_standard___file, 108);
+    nit_abort("Assert '%s' failed", "cant_open_file", LOCATE_standard___file, 107);
   }
   stack_frame_head = fra.me.prev;
-  init_table[itpos0] = 1;
+  init_table[itpos1] = 1;
   return;
 }
 void standard___file___IFStream___init(val_t p0, int* init_table){
-  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___IFStream].i;
+  int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___IFStream].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos1]) return;
+  if (init_table[itpos2]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 111;
+  fra.me.line = 110;
   fra.me.meth = LOCATE_standard___file___IFStream___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
+  /* ../lib/standard/file.nit:110 */
+  CALL_standard___file___FStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
+  CALL_standard___stream___BufferedIStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   stack_frame_head = fra.me.prev;
-  init_table[itpos1] = 1;
+  init_table[itpos2] = 1;
   return;
 }
 void standard___file___IFStream___without_file(val_t p0, int* init_table){
-  int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___IFStream].i;
+  int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___IFStream].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos2]) return;
+  if (init_table[itpos3]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 112;
+  fra.me.line = 111;
   fra.me.meth = LOCATE_standard___file___IFStream___without_file;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
+  /* ../lib/standard/file.nit:111 */
+  CALL_standard___file___FStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
+  CALL_standard___stream___BufferedIStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   stack_frame_head = fra.me.prev;
-  init_table[itpos2] = 1;
+  init_table[itpos3] = 1;
   return;
 }
 void standard___file___OFStream___write(val_t p0, val_t p1){
@@ -496,7 +523,7 @@ void standard___file___OFStream___write(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 120;
+  fra.me.line = 119;
   fra.me.meth = LOCATE_standard___file___OFStream___write;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -506,27 +533,27 @@ void standard___file___OFStream___write(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//file.nit:122 */
+  /* ../lib/standard/file.nit:121 */
   REGB0 = TAG_Bool(ATTR_standard___file___OFStream____writable(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_writable", LOCATE_standard___file, 122);
+    nit_abort("Uninitialized attribute %s", "_writable", LOCATE_standard___file, 121);
   }
   REGB0 = ATTR_standard___file___OFStream____writable(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_standard___file, 122);
+    nit_abort("Assert failed", NULL, LOCATE_standard___file, 121);
   }
-  /* ./../lib/standard//file.nit:123 */
+  /* ../lib/standard/file.nit:122 */
   fra.me.REG[2] = CALL_standard___string___String___to_cstring(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//file.nit:123 */
+  /* ../lib/standard/file.nit:122 */
   CALL_standard___file___OFStream___write_native(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], REGB0);
   stack_frame_head = fra.me.prev;
   return;
@@ -537,18 +564,18 @@ val_t standard___file___OFStream___is_writable(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 126;
+  fra.me.line = 125;
   fra.me.meth = LOCATE_standard___file___OFStream___is_writable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:126 */
+  /* ../lib/standard/file.nit:125 */
   REGB0 = TAG_Bool(ATTR_standard___file___OFStream____writable(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_writable", LOCATE_standard___file, 126);
+    nit_abort("Uninitialized attribute %s", "_writable", LOCATE_standard___file, 125);
   }
   REGB0 = ATTR_standard___file___OFStream____writable(fra.me.REG[0]);
   goto label1;
@@ -562,7 +589,7 @@ void standard___file___OFStream___close(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 128;
+  fra.me.line = 127;
   fra.me.meth = LOCATE_standard___file___OFStream___close;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -570,14 +597,14 @@ void standard___file___OFStream___close(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:130 */
+  /* ../lib/standard/file.nit:129 */
   fra.me.REG[1] = ATTR_standard___file___FStream____file(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 130);
+    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 129);
   }
   REGB0 = CALL_standard___file___NativeFile___io_close(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./../lib/standard//file.nit:131 */
+  /* ../lib/standard/file.nit:130 */
   REGB0 = TAG_Bool(false);
   ATTR_standard___file___OFStream____writable(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -595,7 +622,7 @@ void standard___file___OFStream___write_native(val_t p0, val_t p1, val_t p2){
     static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 137;
+  fra.me.line = 136;
   fra.me.meth = LOCATE_standard___file___OFStream___write_native;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -606,36 +633,36 @@ void standard___file___OFStream___write_native(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   REGB0 = p2;
-  /* ./../lib/standard//file.nit:140 */
+  /* ../lib/standard/file.nit:139 */
   REGB1 = TAG_Bool(ATTR_standard___file___OFStream____writable(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_writable", LOCATE_standard___file, 140);
+    nit_abort("Uninitialized attribute %s", "_writable", LOCATE_standard___file, 139);
   }
   REGB1 = ATTR_standard___file___OFStream____writable(fra.me.REG[0]);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_standard___file, 140);
+    nit_abort("Assert failed", NULL, LOCATE_standard___file, 139);
   }
-  /* ./../lib/standard//file.nit:141 */
+  /* ../lib/standard/file.nit:140 */
   fra.me.REG[2] = ATTR_standard___file___FStream____file(fra.me.REG[0]);
   REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
-    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 141);
+    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 140);
   }
   REGB1 = CALL_standard___file___NativeFile___io_write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], REGB0);
-  /* ./../lib/standard//file.nit:142 */
+  /* ../lib/standard/file.nit:141 */
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB3 = TAG_Bool((REGB1)==(REGB0));
-    /* ./../lib/standard//file.nit:142 */
+    /* ../lib/standard/file.nit:141 */
     REGB2 = REGB3;
   }
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//file.nit:144 */
+    /* ../lib/standard/file.nit:143 */
     REGB2 = TAG_Int(4);
     fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
     if (!once_value_1) {
@@ -673,15 +700,15 @@ void standard___file___OFStream___write_native(val_t p0, val_t p1, val_t p2){
   return;
 }
 void standard___file___OFStream___open(val_t p0, val_t p1, int* init_table){
-  int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___OFStream].i;
+  int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___OFStream].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
-  if (init_table[itpos3]) return;
+  if (init_table[itpos4]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 148;
+  fra.me.line = 147;
   fra.me.meth = LOCATE_standard___file___OFStream___open;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -691,84 +718,91 @@ void standard___file___OFStream___open(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//file.nit:151 */
-  fra.me.REG[2] = CALL_standard___string___String___to_cstring(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[2] = CALL_standard___file___NativeFileCapable___io_open_write(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  ATTR_standard___file___FStream____file(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./../lib/standard//file.nit:152 */
-  fra.me.REG[2] = ATTR_standard___file___FStream____file(fra.me.REG[0]);
-  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+  /* ../lib/standard/file.nit:147 */
+  fra.me.REG[2] = fra.me.REG[0];
+  CALL_standard___file___FStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
+  /* ../lib/standard/file.nit:150 */
+  fra.me.REG[0] = CALL_standard___string___String___to_cstring(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[0] = NEW_NativeFile_standard___file___NativeFile___io_open_write(fra.me.REG[0]);
+  ATTR_standard___file___FStream____file(fra.me.REG[2]) = fra.me.REG[0];
+  /* ../lib/standard/file.nit:151 */
+  fra.me.REG[0] = ATTR_standard___file___FStream____file(fra.me.REG[2]);
+  REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       REGB1 = TAG_Bool(false);
       REGB0 = REGB1;
     } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
       REGB0 = REGB1;
     }
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert %s  failed", "'cant_open_file'", LOCATE_standard___file, 152);
+    nit_abort("Assert '%s' failed", "cant_open_file", LOCATE_standard___file, 151);
   }
-  /* ./../lib/standard//file.nit:153 */
-  ATTR_standard___file___FStream____path(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//file.nit:154 */
+  /* ../lib/standard/file.nit:152 */
+  ATTR_standard___file___FStream____path(fra.me.REG[2]) = fra.me.REG[1];
+  /* ../lib/standard/file.nit:153 */
   REGB0 = TAG_Bool(true);
-  ATTR_standard___file___OFStream____writable(fra.me.REG[0]) = REGB0;
+  ATTR_standard___file___OFStream____writable(fra.me.REG[2]) = REGB0;
   stack_frame_head = fra.me.prev;
-  init_table[itpos3] = 1;
+  init_table[itpos4] = 1;
   return;
 }
 void standard___file___OFStream___init(val_t p0, int* init_table){
-  int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___OFStream].i;
+  int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___OFStream].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos4]) return;
+  if (init_table[itpos5]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 157;
+  fra.me.line = 156;
   fra.me.meth = LOCATE_standard___file___OFStream___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
+  /* ../lib/standard/file.nit:156 */
+  CALL_standard___file___FStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   stack_frame_head = fra.me.prev;
-  init_table[itpos4] = 1;
+  init_table[itpos5] = 1;
   return;
 }
 void standard___file___OFStream___without_file(val_t p0, int* init_table){
-  int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___OFStream].i;
+  int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___OFStream].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
-  if (init_table[itpos5]) return;
+  if (init_table[itpos6]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 158;
+  fra.me.line = 157;
   fra.me.meth = LOCATE_standard___file___OFStream___without_file;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
+  /* ../lib/standard/file.nit:157 */
+  CALL_standard___file___FStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   stack_frame_head = fra.me.prev;
-  init_table[itpos5] = 1;
+  init_table[itpos6] = 1;
   return;
 }
 void standard___file___Stdin___init(val_t p0, int* init_table){
-  int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___Stdin].i;
+  int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___Stdin].i;
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
-  if (init_table[itpos6]) return;
+  if (init_table[itpos7]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 165;
+  fra.me.line = 164;
   fra.me.meth = LOCATE_standard___file___Stdin___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -776,13 +810,13 @@ void standard___file___Stdin___init(val_t p0, int* init_table){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:165 */
+  /* ../lib/standard/file.nit:164 */
   fra.me.REG[1] = fra.me.REG[0];
   CALL_standard___file___IFStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./../lib/standard//file.nit:166 */
-  fra.me.REG[0] = CALL_standard___file___NativeFileCapable___native_stdin(fra.me.REG[1])(fra.me.REG[1]);
+  /* ../lib/standard/file.nit:165 */
+  fra.me.REG[0] = NEW_NativeFile_standard___file___NativeFile___native_stdin();
   ATTR_standard___file___FStream____file(fra.me.REG[1]) = fra.me.REG[0];
-  /* ./../lib/standard//file.nit:167 */
+  /* ../lib/standard/file.nit:166 */
   if (!once_value_1) {
     fra.me.REG[0] = BOX_NativeString("/dev/stdin");
     REGB0 = TAG_Int(10);
@@ -792,23 +826,23 @@ void standard___file___Stdin___init(val_t p0, int* init_table){
   } else fra.me.REG[0] = once_value_1;
   fra.me.REG[0] = fra.me.REG[0];
   ATTR_standard___file___FStream____path(fra.me.REG[1]) = fra.me.REG[0];
-  /* ./../lib/standard//file.nit:168 */
+  /* ../lib/standard/file.nit:167 */
   REGB0 = TAG_Int(1);
   CALL_standard___stream___BufferedIStream___prepare_buffer(fra.me.REG[1])(fra.me.REG[1], REGB0);
   stack_frame_head = fra.me.prev;
-  init_table[itpos6] = 1;
+  init_table[itpos7] = 1;
   return;
 }
 void standard___file___Stdout___init(val_t p0, int* init_table){
-  int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___Stdout].i;
+  int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___Stdout].i;
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
-  if (init_table[itpos7]) return;
+  if (init_table[itpos8]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 174;
+  fra.me.line = 173;
   fra.me.meth = LOCATE_standard___file___Stdout___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -816,13 +850,13 @@ void standard___file___Stdout___init(val_t p0, int* init_table){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:174 */
+  /* ../lib/standard/file.nit:173 */
   fra.me.REG[1] = fra.me.REG[0];
   CALL_standard___file___OFStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./../lib/standard//file.nit:175 */
-  fra.me.REG[0] = CALL_standard___file___NativeFileCapable___native_stdout(fra.me.REG[1])(fra.me.REG[1]);
+  /* ../lib/standard/file.nit:174 */
+  fra.me.REG[0] = NEW_NativeFile_standard___file___NativeFile___native_stdout();
   ATTR_standard___file___FStream____file(fra.me.REG[1]) = fra.me.REG[0];
-  /* ./../lib/standard//file.nit:176 */
+  /* ../lib/standard/file.nit:175 */
   if (!once_value_1) {
     fra.me.REG[0] = BOX_NativeString("/dev/stdout");
     REGB0 = TAG_Int(11);
@@ -832,23 +866,23 @@ void standard___file___Stdout___init(val_t p0, int* init_table){
   } else fra.me.REG[0] = once_value_1;
   fra.me.REG[0] = fra.me.REG[0];
   ATTR_standard___file___FStream____path(fra.me.REG[1]) = fra.me.REG[0];
-  /* ./../lib/standard//file.nit:177 */
+  /* ../lib/standard/file.nit:176 */
   REGB0 = TAG_Bool(true);
   ATTR_standard___file___OFStream____writable(fra.me.REG[1]) = REGB0;
   stack_frame_head = fra.me.prev;
-  init_table[itpos7] = 1;
+  init_table[itpos8] = 1;
   return;
 }
 void standard___file___Stderr___init(val_t p0, int* init_table){
-  int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___Stderr].i;
+  int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___Stderr].i;
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   static val_t once_value_1; /* Once value */
-  if (init_table[itpos8]) return;
+  if (init_table[itpos9]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 183;
+  fra.me.line = 182;
   fra.me.meth = LOCATE_standard___file___Stderr___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -856,13 +890,13 @@ void standard___file___Stderr___init(val_t p0, int* init_table){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:183 */
+  /* ../lib/standard/file.nit:182 */
   fra.me.REG[1] = fra.me.REG[0];
   CALL_standard___file___OFStream___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./../lib/standard//file.nit:184 */
-  fra.me.REG[0] = CALL_standard___file___NativeFileCapable___native_stderr(fra.me.REG[1])(fra.me.REG[1]);
+  /* ../lib/standard/file.nit:183 */
+  fra.me.REG[0] = NEW_NativeFile_standard___file___NativeFile___native_stderr();
   ATTR_standard___file___FStream____file(fra.me.REG[1]) = fra.me.REG[0];
-  /* ./../lib/standard//file.nit:185 */
+  /* ../lib/standard/file.nit:184 */
   if (!once_value_1) {
     fra.me.REG[0] = BOX_NativeString("/dev/stderr");
     REGB0 = TAG_Int(11);
@@ -872,11 +906,11 @@ void standard___file___Stderr___init(val_t p0, int* init_table){
   } else fra.me.REG[0] = once_value_1;
   fra.me.REG[0] = fra.me.REG[0];
   ATTR_standard___file___FStream____path(fra.me.REG[1]) = fra.me.REG[0];
-  /* ./../lib/standard//file.nit:186 */
+  /* ../lib/standard/file.nit:185 */
   REGB0 = TAG_Bool(true);
   ATTR_standard___file___OFStream____writable(fra.me.REG[1]) = REGB0;
   stack_frame_head = fra.me.prev;
-  init_table[itpos8] = 1;
+  init_table[itpos9] = 1;
   return;
 }
 val_t standard___file___String___file_exists(val_t p0){
@@ -885,14 +919,14 @@ val_t standard___file___String___file_exists(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 193;
+  fra.me.line = 192;
   fra.me.meth = LOCATE_standard___file___String___file_exists;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:194 */
+  /* ../lib/standard/file.nit:193 */
   fra.me.REG[0] = CALL_standard___string___String___to_cstring(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___file___NativeString___file_exists(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -905,14 +939,14 @@ val_t standard___file___String___file_stat(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 196;
+  fra.me.line = 195;
   fra.me.meth = LOCATE_standard___file___String___file_stat;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:196 */
+  /* ../lib/standard/file.nit:195 */
   fra.me.REG[0] = CALL_standard___string___String___to_cstring(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___file___NativeString___file_stat(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -926,14 +960,14 @@ val_t standard___file___String___file_delete(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 198;
+  fra.me.line = 197;
   fra.me.meth = LOCATE_standard___file___String___file_delete;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:199 */
+  /* ../lib/standard/file.nit:198 */
   fra.me.REG[0] = CALL_standard___string___String___to_cstring(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___file___NativeString___file_delete(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -949,7 +983,7 @@ val_t standard___file___String___strip_extension(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 201;
+  fra.me.line = 200;
   fra.me.meth = LOCATE_standard___file___String___strip_extension;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -958,12 +992,12 @@ val_t standard___file___String___strip_extension(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//file.nit:204 */
+  /* ../lib/standard/file.nit:203 */
   REGB0 = CALL_standard___string___AbstractString___has_suffix(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//file.nit:205 */
+    /* ../lib/standard/file.nit:204 */
     REGB0 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -976,13 +1010,13 @@ val_t standard___file___String___strip_extension(val_t p0, val_t p1){
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-    /* ./../lib/standard//kernel.nit:237 */
+    /* ../lib/standard/kernel.nit:237 */
     REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-    /* ./../lib/standard//file.nit:205 */
+    /* ../lib/standard/file.nit:204 */
     fra.me.REG[1] = CALL_standard___string___AbstractString___substring(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB2);
     goto label1;
   }
-  /* ./../lib/standard//file.nit:207 */
+  /* ../lib/standard/file.nit:206 */
   fra.me.REG[1] = fra.me.REG[0];
   goto label1;
   label1: while(0);
@@ -997,7 +1031,7 @@ val_t standard___file___String___basename(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 210;
+  fra.me.line = 209;
   fra.me.meth = LOCATE_standard___file___String___basename;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1007,41 +1041,41 @@ val_t standard___file___String___basename(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//file.nit:213 */
+  /* ../lib/standard/file.nit:212 */
   REGB0 = TAG_Char('/');
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___file, 213);
+    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___file, 212);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
   REGB2 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-  /* ./../lib/standard//file.nit:213 */
+  /* ../lib/standard/file.nit:212 */
   REGB2 = CALL_standard___collection___array___AbstractArrayRead___last_index_of_from(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB2);
-  /* ./../lib/standard//file.nit:214 */
+  /* ../lib/standard/file.nit:213 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./../lib/standard//file.nit:215 */
+  /* ../lib/standard/file.nit:214 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB0 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB0));
-  /* ./../lib/standard//file.nit:215 */
+  /* ../lib/standard/file.nit:214 */
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//file.nit:216 */
+    /* ../lib/standard/file.nit:215 */
     REGB0 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
-    /* ./../lib/standard//file.nit:216 */
+    /* ../lib/standard/file.nit:215 */
     fra.me.REG[0] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
     fra.me.REG[2] = fra.me.REG[0];
   }
-  /* ./../lib/standard//file.nit:218 */
+  /* ../lib/standard/file.nit:217 */
   fra.me.REG[1] = CALL_standard___file___String___strip_extension(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   goto label1;
   label1: while(0);
@@ -1057,7 +1091,7 @@ val_t standard___file___String___dirname(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 221;
+  fra.me.line = 220;
   fra.me.meth = LOCATE_standard___file___String___dirname;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -1065,36 +1099,36 @@ val_t standard___file___String___dirname(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:224 */
+  /* ../lib/standard/file.nit:223 */
   REGB0 = TAG_Char('/');
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___file, 224);
+    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___file, 223);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
   REGB2 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-  /* ./../lib/standard//file.nit:224 */
+  /* ../lib/standard/file.nit:223 */
   REGB2 = CALL_standard___collection___array___AbstractArrayRead___last_index_of_from(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB2);
-  /* ./../lib/standard//file.nit:225 */
+  /* ../lib/standard/file.nit:224 */
   REGB0 = TAG_Int(0);
   REGB1 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB0 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB0));
-  /* ./../lib/standard//file.nit:225 */
+  /* ../lib/standard/file.nit:224 */
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//file.nit:226 */
+    /* ../lib/standard/file.nit:225 */
     REGB0 = TAG_Int(0);
     fra.me.REG[0] = CALL_standard___string___AbstractString___substring(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB2);
     goto label1;
   } else {
-    /* ./../lib/standard//file.nit:228 */
+    /* ../lib/standard/file.nit:227 */
     if (!once_value_2) {
       fra.me.REG[1] = BOX_NativeString(".");
       REGB2 = TAG_Int(1);
@@ -1111,7 +1145,7 @@ val_t standard___file___String___dirname(val_t p0){
   return fra.me.REG[0];
 }
 val_t standard___file___String___simplify_path(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t REGB2;
@@ -1120,21 +1154,23 @@ val_t standard___file___String___simplify_path(val_t p0){
       static val_t once_value_2; /* Once value */
       static val_t once_value_4; /* Once value */
       static val_t once_value_5; /* Once value */
-  static val_t once_value_7; /* Once value */
+        static val_t once_value_6; /* Once value */
+  static val_t once_value_8; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 232;
+  fra.me.line = 231;
   fra.me.meth = LOCATE_standard___file___String___simplify_path;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
+  fra.me.REG_size = 6;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:247 */
+  /* ../lib/standard/file.nit:246 */
   if (!once_value_1) {
     fra.me.REG[1] = BOX_NativeString("/");
     REGB0 = TAG_Int(1);
@@ -1144,22 +1180,22 @@ val_t standard___file___String___simplify_path(val_t p0){
   } else fra.me.REG[1] = once_value_1;
   fra.me.REG[1] = fra.me.REG[1];
   fra.me.REG[1] = CALL_standard___string_search___String___split_with(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./../lib/standard//file.nit:248 */
+  /* ../lib/standard/file.nit:247 */
   fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1171,18 +1207,18 @@ val_t standard___file___String___simplify_path(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./../lib/standard//file.nit:250 */
+      /* ../lib/standard/file.nit:249 */
       if (!once_value_2) {
         fra.me.REG[4] = BOX_NativeString(".");
         REGB1 = TAG_Int(1);
@@ -1200,7 +1236,7 @@ val_t standard___file___String___simplify_path(val_t p0){
       if (UNTAG_Bool(REGB1)) {
         goto label3;
       }
-      /* ./../lib/standard//file.nit:251 */
+      /* ../lib/standard/file.nit:250 */
       if (!once_value_4) {
         fra.me.REG[4] = BOX_NativeString("");
         REGB1 = TAG_Int(0);
@@ -1225,7 +1261,7 @@ val_t standard___file___String___simplify_path(val_t p0){
       if (UNTAG_Bool(REGB1)) {
         goto label3;
       }
-      /* ./../lib/standard//file.nit:252 */
+      /* ../lib/standard/file.nit:251 */
       if (!once_value_5) {
         fra.me.REG[4] = BOX_NativeString("..");
         REGB1 = TAG_Int(2);
@@ -1248,38 +1284,155 @@ val_t standard___file___String___simplify_path(val_t p0){
         REGB1 = REGB2;
       }
       if (UNTAG_Bool(REGB1)) {
-        /* ./../lib/standard//file.nit:253 */
+        fra.me.REG[4] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra.me.REG[0])(fra.me.REG[0]);
+        if (!once_value_6) {
+          fra.me.REG[5] = BOX_NativeString("..");
+          REGB1 = TAG_Int(2);
+          fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
+          once_value_6 = fra.me.REG[5];
+          register_static_object(&once_value_6);
+        } else fra.me.REG[5] = once_value_6;
+        fra.me.REG[5] = fra.me.REG[5];
+        REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[5],fra.me.REG[4]));
+        if (UNTAG_Bool(REGB1)) {
+        } else {
+          REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+          if (UNTAG_Bool(REGB2)) {
+            REGB2 = TAG_Bool(false);
+            REGB1 = REGB2;
+          } else {
+            REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
+            REGB1 = REGB2;
+          }
+        }
+        REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
+      } else {
+        REGB2 = TAG_Bool(false);
+        REGB1 = REGB2;
+      }
+      if (UNTAG_Bool(REGB1)) {
+        /* ../lib/standard/file.nit:252 */
         CALL_standard___collection___abstract_collection___Sequence___pop(fra.me.REG[0])(fra.me.REG[0]);
-        /* ./../lib/standard//file.nit:254 */
+        /* ../lib/standard/file.nit:253 */
         goto label3;
       }
-      /* ./../lib/standard//file.nit:256 */
+      /* ../lib/standard/file.nit:255 */
       CALL_standard___collection___abstract_collection___Sequence___push(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
       label3: while(0);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
-      goto label6;
+      /* ../lib/standard/collection/array.nit:272 */
+      goto label7;
     }
   }
-  label6: while(0);
-  /* ./../lib/standard//file.nit:258 */
-  if (!once_value_7) {
+  label7: while(0);
+  /* ../lib/standard/file.nit:257 */
+  if (!once_value_8) {
     fra.me.REG[2] = BOX_NativeString("/");
     REGB0 = TAG_Int(1);
     fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
-    once_value_7 = fra.me.REG[2];
-    register_static_object(&once_value_7);
-  } else fra.me.REG[2] = once_value_7;
+    once_value_8 = fra.me.REG[2];
+    register_static_object(&once_value_8);
+  } else fra.me.REG[2] = once_value_8;
   fra.me.REG[2] = fra.me.REG[2];
   fra.me.REG[2] = CALL_standard___string___Collection___join(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  goto label8;
-  label8: while(0);
+  goto label9;
+  label9: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t standard___file___String___join_path(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t REGB2;
+  val_t tmp;
+  static val_t once_value_2; /* Once value */
+  static val_t once_value_3; /* Once value */
+  static val_t once_value_4; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_standard___file;
+  fra.me.line = 260;
+  fra.me.meth = LOCATE_standard___file___String___join_path;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 5;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* ../lib/standard/file.nit:277 */
+  REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
+  if (UNTAG_Bool(REGB0)) {
+    fra.me.REG[2] = fra.me.REG[0];
+    goto label1;
+  }
+  /* ../lib/standard/file.nit:278 */
+  REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
+  if (UNTAG_Bool(REGB0)) {
+    fra.me.REG[2] = fra.me.REG[1];
+    goto label1;
+  }
+  /* ../lib/standard/file.nit:279 */
+  REGB0 = TAG_Int(0);
+  REGB0 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB0);
+  REGB1 = TAG_Char('/');
+  REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
+  if (UNTAG_Bool(REGB2)) {
+  } else {
+    /* ../lib/standard/kernel.nit:378 */
+    REGB1 = TAG_Bool((REGB0)==(REGB1));
+    /* ../lib/standard/file.nit:279 */
+    REGB2 = REGB1;
+  }
+  if (UNTAG_Bool(REGB2)) {
+    fra.me.REG[2] = fra.me.REG[1];
+    goto label1;
+  }
+  /* ../lib/standard/file.nit:280 */
+  REGB2 = TAG_Int(5);
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
+  if (!once_value_2) {
+    fra.me.REG[4] = BOX_NativeString("");
+    REGB2 = TAG_Int(0);
+    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
+    once_value_2 = fra.me.REG[4];
+    register_static_object(&once_value_2);
+  } else fra.me.REG[4] = once_value_2;
+  fra.me.REG[4] = fra.me.REG[4];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
+  if (!once_value_3) {
+    fra.me.REG[0] = BOX_NativeString("/");
+    REGB2 = TAG_Int(1);
+    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB2);
+    once_value_3 = fra.me.REG[0];
+    register_static_object(&once_value_3);
+  } else fra.me.REG[0] = once_value_3;
+  fra.me.REG[0] = fra.me.REG[0];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  if (!once_value_4) {
+    fra.me.REG[1] = BOX_NativeString("");
+    REGB2 = TAG_Int(0);
+    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB2);
+    once_value_4 = fra.me.REG[1];
+    register_static_object(&once_value_4);
+  } else fra.me.REG[1] = once_value_4;
+  fra.me.REG[1] = fra.me.REG[1];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
+  fra.me.REG[2] = fra.me.REG[3];
+  goto label1;
+  label1: while(0);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
@@ -1292,7 +1445,7 @@ void standard___file___String___mkdir(val_t p0){
   static val_t once_value_1; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 261;
+  fra.me.line = 283;
   fra.me.meth = LOCATE_standard___file___String___mkdir;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -1302,7 +1455,7 @@ void standard___file___String___mkdir(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:264 */
+  /* ../lib/standard/file.nit:286 */
   if (!once_value_1) {
     fra.me.REG[1] = BOX_NativeString("/");
     REGB0 = TAG_Int(1);
@@ -1312,27 +1465,27 @@ void standard___file___String___mkdir(val_t p0){
   } else fra.me.REG[1] = once_value_1;
   fra.me.REG[1] = fra.me.REG[1];
   fra.me.REG[1] = CALL_standard___string_search___String___split_with(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./../lib/standard//file.nit:265 */
+  /* ../lib/standard/file.nit:287 */
   fra.me.REG[0] = NEW_Buffer_standard___string___Buffer___init();
-  /* ./../lib/standard//file.nit:266 */
+  /* ../lib/standard/file.nit:288 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
     goto label2;
   }
-  /* ./../lib/standard//file.nit:267 */
+  /* ../lib/standard/file.nit:289 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:278 */
+  /* ../lib/standard/collection/array.nit:278 */
   fra.me.REG[2] = fra.me.REG[1];
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -1345,53 +1498,53 @@ void standard___file___String___mkdir(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
   } else {
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB2 = TAG_Bool(false);
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+    nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
   }
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
   REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
   }
-  /* ./../lib/standard//collection//array.nit:718 */
+  /* ../lib/standard/collection/array.nit:718 */
   fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   goto label3;
   label3: while(0);
-  /* ./../lib/standard//file.nit:267 */
+  /* ../lib/standard/file.nit:289 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 267);
+    nit_abort("Reciever is null", NULL, LOCATE_standard___file, 289);
   }
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//file.nit:269 */
+    /* ../lib/standard/file.nit:291 */
     REGB0 = TAG_Char('/');
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], REGB0);
   }
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1403,40 +1556,40 @@ void standard___file___String___mkdir(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./../lib/standard//file.nit:272 */
+      /* ../lib/standard/file.nit:294 */
       REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
       if (UNTAG_Bool(REGB1)) {
         goto label4;
       }
-      /* ./../lib/standard//file.nit:273 */
+      /* ../lib/standard/file.nit:295 */
       CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-      /* ./../lib/standard//file.nit:274 */
+      /* ../lib/standard/file.nit:296 */
       REGB1 = TAG_Char('/');
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], REGB1);
-      /* ./../lib/standard//file.nit:275 */
+      /* ../lib/standard/file.nit:297 */
       fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[3] = CALL_standard___string___String___to_cstring(fra.me.REG[3])(fra.me.REG[3]);
       CALL_standard___file___NativeString___file_mkdir(fra.me.REG[3])(fra.me.REG[3]);
       label4: while(0);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label5;
     }
   }
@@ -1453,43 +1606,43 @@ val_t standard___file___String___file_extension(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 279;
+  fra.me.line = 301;
   fra.me.meth = LOCATE_standard___file___String___file_extension;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:282 */
+  /* ../lib/standard/file.nit:304 */
   REGB0 = TAG_Char('.');
   REGB0 = CALL_standard___collection___array___AbstractArrayRead___last_index_of(fra.me.REG[0])(fra.me.REG[0], REGB0);
-  /* ./../lib/standard//file.nit:283 */
+  /* ../lib/standard/file.nit:305 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//file.nit:283 */
+  /* ../lib/standard/file.nit:305 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//file.nit:284 */
+    /* ../lib/standard/file.nit:306 */
     REGB1 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-    /* ./../lib/standard//file.nit:284 */
+    /* ../lib/standard/file.nit:306 */
     fra.me.REG[0] = CALL_standard___string___AbstractString___substring(fra.me.REG[0])(fra.me.REG[0], REGB1, REGB0);
     goto label1;
   } else {
-    /* ./../lib/standard//file.nit:286 */
+    /* ../lib/standard/file.nit:308 */
     fra.me.REG[0] = NIT_NULL;
     goto label1;
   }
@@ -1497,20 +1650,41 @@ val_t standard___file___String___file_extension(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+val_t standard___file___String___files(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_standard___file;
+  fra.me.line = 312;
+  fra.me.meth = LOCATE_standard___file___String___files;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* ../lib/standard/file.nit:312 */
+  fra.me.REG[0] = String_files___out(fra.me.REG[0]);
+  ;
+  ;
+  ;
+  ;
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
 val_t standard___file___NativeString___file_exists(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 292;
+  fra.me.line = 317;
   fra.me.meth = LOCATE_standard___file___NativeString___file_exists;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:292 */
+  /* ../lib/standard/file.nit:317 */
   REGB0 = NativeString_file_exists___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -1520,14 +1694,14 @@ val_t standard___file___NativeString___file_stat(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 293;
+  fra.me.line = 318;
   fra.me.meth = LOCATE_standard___file___NativeString___file_stat;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:293 */
+  /* ../lib/standard/file.nit:318 */
   fra.me.REG[0] = NativeString_file_stat___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1538,14 +1712,14 @@ val_t standard___file___NativeString___file_mkdir(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 294;
+  fra.me.line = 319;
   fra.me.meth = LOCATE_standard___file___NativeString___file_mkdir;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:294 */
+  /* ../lib/standard/file.nit:319 */
   REGB0 = NativeString_file_mkdir___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -1556,14 +1730,14 @@ val_t standard___file___NativeString___file_delete(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 295;
+  fra.me.line = 320;
   fra.me.meth = LOCATE_standard___file___NativeString___file_delete;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:295 */
+  /* ../lib/standard/file.nit:320 */
   REGB0 = NativeString_file_delete___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -1574,14 +1748,14 @@ val_t standard___file___FileStat___mode(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 299;
+  fra.me.line = 324;
   fra.me.meth = LOCATE_standard___file___FileStat___mode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:299 */
+  /* ../lib/standard/file.nit:324 */
   REGB0 = FileStat_mode___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -1592,14 +1766,14 @@ val_t standard___file___FileStat___atime(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 301;
+  fra.me.line = 326;
   fra.me.meth = LOCATE_standard___file___FileStat___atime;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:301 */
+  /* ../lib/standard/file.nit:326 */
   REGB0 = FileStat_atime___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -1610,14 +1784,14 @@ val_t standard___file___FileStat___ctime(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 302;
+  fra.me.line = 327;
   fra.me.meth = LOCATE_standard___file___FileStat___ctime;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:302 */
+  /* ../lib/standard/file.nit:327 */
   REGB0 = FileStat_ctime___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -1628,14 +1802,14 @@ val_t standard___file___FileStat___mtime(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 303;
+  fra.me.line = 328;
   fra.me.meth = LOCATE_standard___file___FileStat___mtime;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:303 */
+  /* ../lib/standard/file.nit:328 */
   REGB0 = FileStat_mtime___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -1646,14 +1820,14 @@ val_t standard___file___FileStat___size(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 304;
+  fra.me.line = 329;
   fra.me.meth = LOCATE_standard___file___FileStat___size;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:304 */
+  /* ../lib/standard/file.nit:329 */
   REGB0 = FileStat_size___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -1664,7 +1838,7 @@ val_t standard___file___NativeFile___io_read(val_t p0, val_t p1, val_t p2){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 309;
+  fra.me.line = 334;
   fra.me.meth = LOCATE_standard___file___NativeFile___io_read;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -1674,7 +1848,7 @@ val_t standard___file___NativeFile___io_read(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   REGB0 = p2;
-  /* ./../lib/standard//file.nit:309 */
+  /* ../lib/standard/file.nit:334 */
   REGB0 = NativeFile_io_read___out(fra.me.REG[0], fra.me.REG[1], REGB0);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -1685,7 +1859,7 @@ val_t standard___file___NativeFile___io_write(val_t p0, val_t p1, val_t p2){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 310;
+  fra.me.line = 335;
   fra.me.meth = LOCATE_standard___file___NativeFile___io_write;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -1695,7 +1869,7 @@ val_t standard___file___NativeFile___io_write(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   REGB0 = p2;
-  /* ./../lib/standard//file.nit:310 */
+  /* ../lib/standard/file.nit:335 */
   REGB0 = NativeFile_io_write___out(fra.me.REG[0], fra.me.REG[1], REGB0);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -1706,14 +1880,14 @@ val_t standard___file___NativeFile___io_close(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 311;
+  fra.me.line = 336;
   fra.me.meth = LOCATE_standard___file___NativeFile___io_close;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:311 */
+  /* ../lib/standard/file.nit:336 */
   REGB0 = NativeFile_io_close___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -1723,25 +1897,27 @@ val_t standard___file___NativeFile___file_stat(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 312;
+  fra.me.line = 337;
   fra.me.meth = LOCATE_standard___file___NativeFile___file_stat;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:312 */
+  /* ../lib/standard/file.nit:337 */
   fra.me.REG[0] = NativeFile_file_stat___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t standard___file___NativeFileCapable___io_open_read(val_t p0, val_t p1){
+void standard___file___NativeFile___io_open_read(val_t p0, val_t p1, int* init_table){
+  int itpos10 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___NativeFile].i;
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
+  if (init_table[itpos10]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 316;
-  fra.me.meth = LOCATE_standard___file___NativeFileCapable___io_open_read;
+  fra.me.line = 339;
+  fra.me.meth = LOCATE_standard___file___NativeFile___io_open_read;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
@@ -1749,18 +1925,20 @@ val_t standard___file___NativeFileCapable___io_open_read(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//file.nit:316 */
-  fra.me.REG[1] = NativeFileCapable_io_open_read___out(fra.me.REG[0], fra.me.REG[1]);
+  /* ../lib/standard/file.nit:339 */
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  init_table[itpos10] = 1;
+  return;
 }
-val_t standard___file___NativeFileCapable___io_open_write(val_t p0, val_t p1){
+void standard___file___NativeFile___io_open_write(val_t p0, val_t p1, int* init_table){
+  int itpos11 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___NativeFile].i;
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
+  if (init_table[itpos11]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 317;
-  fra.me.meth = LOCATE_standard___file___NativeFileCapable___io_open_write;
+  fra.me.line = 340;
+  fra.me.meth = LOCATE_standard___file___NativeFile___io_open_write;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.nitni_local_ref_head = NULL;
@@ -1768,59 +1946,65 @@ val_t standard___file___NativeFileCapable___io_open_write(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//file.nit:317 */
-  fra.me.REG[1] = NativeFileCapable_io_open_write___out(fra.me.REG[0], fra.me.REG[1]);
+  /* ../lib/standard/file.nit:340 */
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
+  init_table[itpos11] = 1;
+  return;
 }
-val_t standard___file___NativeFileCapable___native_stdin(val_t p0){
+void standard___file___NativeFile___native_stdin(val_t p0, int* init_table){
+  int itpos12 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___NativeFile].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
+  if (init_table[itpos12]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 318;
-  fra.me.meth = LOCATE_standard___file___NativeFileCapable___native_stdin;
+  fra.me.line = 341;
+  fra.me.meth = LOCATE_standard___file___NativeFile___native_stdin;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:318 */
-  fra.me.REG[0] = NativeFileCapable_native_stdin___out(fra.me.REG[0]);
+  /* ../lib/standard/file.nit:341 */
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
+  init_table[itpos12] = 1;
+  return;
 }
-val_t standard___file___NativeFileCapable___native_stdout(val_t p0){
+void standard___file___NativeFile___native_stdout(val_t p0, int* init_table){
+  int itpos13 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___NativeFile].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
+  if (init_table[itpos13]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 319;
-  fra.me.meth = LOCATE_standard___file___NativeFileCapable___native_stdout;
+  fra.me.line = 342;
+  fra.me.meth = LOCATE_standard___file___NativeFile___native_stdout;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:319 */
-  fra.me.REG[0] = NativeFileCapable_native_stdout___out(fra.me.REG[0]);
+  /* ../lib/standard/file.nit:342 */
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
+  init_table[itpos13] = 1;
+  return;
 }
-val_t standard___file___NativeFileCapable___native_stderr(val_t p0){
+void standard___file___NativeFile___native_stderr(val_t p0, int* init_table){
+  int itpos14 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___file___NativeFile].i;
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
+  if (init_table[itpos14]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___file;
-  fra.me.line = 320;
-  fra.me.meth = LOCATE_standard___file___NativeFileCapable___native_stderr;
+  fra.me.line = 343;
+  fra.me.meth = LOCATE_standard___file___NativeFile___native_stderr;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//file.nit:320 */
-  fra.me.REG[0] = NativeFileCapable_native_stderr___out(fra.me.REG[0]);
+  /* ../lib/standard/file.nit:343 */
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
+  init_table[itpos14] = 1;
+  return;
 }
index 6156c26..aaef870 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/standard/file. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/standard/file. */
 #ifndef standard___file_sep
 #define standard___file_sep
 #include "standard___stream._sep.h"
@@ -27,8 +27,6 @@ extern const classtable_elt_t VFT_standard___file___NativeFile[];
 struct TBOX_NativeFile { const classtable_elt_t * vft; bigint object_id; void * val;};
 val_t BOX_NativeFile(void * val);
 #define UNBOX_NativeFile(x) (((struct TBOX_NativeFile *)(VAL2OBJ(x)))->val)
-
-extern const classtable_elt_t VFT_standard___file___NativeFileCapable[];
 extern const char *LOCATE_standard___file;
 extern const int SFT_standard___file[];
 #define CALL_standard___file___Object___printn(recv) ((standard___file___Object___printn_t)CALL((recv), (SFT_standard___file[0] + 0)))
@@ -45,6 +43,7 @@ extern const int SFT_standard___file[];
 #define INIT_TABLE_POS_standard___file___FStream (SFT_standard___file[4] + 0)
 #define CALL_standard___file___FStream___path(recv) ((standard___file___FStream___path_t)CALL((recv), (SFT_standard___file[4] + 1)))
 #define CALL_standard___file___FStream___file_stat(recv) ((standard___file___FStream___file_stat_t)CALL((recv), (SFT_standard___file[4] + 2)))
+#define CALL_standard___file___FStream___init(recv) ((standard___file___FStream___init_t)CALL((recv), (SFT_standard___file[4] + 3)))
 #define ID_standard___file___IFStream (SFT_standard___file[5])
 #define COLOR_standard___file___IFStream (SFT_standard___file[6])
 #define ATTR_standard___file___IFStream____end_reached(recv) ATTR(recv, (SFT_standard___file[7] + 0))
@@ -80,8 +79,10 @@ extern const int SFT_standard___file[];
 #define CALL_standard___file___String___basename(recv) ((standard___file___String___basename_t)CALL((recv), (SFT_standard___file[22] + 4)))
 #define CALL_standard___file___String___dirname(recv) ((standard___file___String___dirname_t)CALL((recv), (SFT_standard___file[22] + 5)))
 #define CALL_standard___file___String___simplify_path(recv) ((standard___file___String___simplify_path_t)CALL((recv), (SFT_standard___file[22] + 6)))
-#define CALL_standard___file___String___mkdir(recv) ((standard___file___String___mkdir_t)CALL((recv), (SFT_standard___file[22] + 7)))
-#define CALL_standard___file___String___file_extension(recv) ((standard___file___String___file_extension_t)CALL((recv), (SFT_standard___file[22] + 8)))
+#define CALL_standard___file___String___join_path(recv) ((standard___file___String___join_path_t)CALL((recv), (SFT_standard___file[22] + 7)))
+#define CALL_standard___file___String___mkdir(recv) ((standard___file___String___mkdir_t)CALL((recv), (SFT_standard___file[22] + 8)))
+#define CALL_standard___file___String___file_extension(recv) ((standard___file___String___file_extension_t)CALL((recv), (SFT_standard___file[22] + 9)))
+#define CALL_standard___file___String___files(recv) ((standard___file___String___files_t)CALL((recv), (SFT_standard___file[22] + 10)))
 #define CALL_standard___file___NativeString___file_exists(recv) ((standard___file___NativeString___file_exists_t)CALL((recv), (SFT_standard___file[23] + 0)))
 #define CALL_standard___file___NativeString___file_stat(recv) ((standard___file___NativeString___file_stat_t)CALL((recv), (SFT_standard___file[23] + 1)))
 #define CALL_standard___file___NativeString___file_mkdir(recv) ((standard___file___NativeString___file_mkdir_t)CALL((recv), (SFT_standard___file[23] + 2)))
@@ -101,14 +102,11 @@ extern const int SFT_standard___file[];
 #define CALL_standard___file___NativeFile___io_write(recv) ((standard___file___NativeFile___io_write_t)CALL((recv), (SFT_standard___file[29] + 2)))
 #define CALL_standard___file___NativeFile___io_close(recv) ((standard___file___NativeFile___io_close_t)CALL((recv), (SFT_standard___file[29] + 3)))
 #define CALL_standard___file___NativeFile___file_stat(recv) ((standard___file___NativeFile___file_stat_t)CALL((recv), (SFT_standard___file[29] + 4)))
-#define ID_standard___file___NativeFileCapable (SFT_standard___file[30])
-#define COLOR_standard___file___NativeFileCapable (SFT_standard___file[31])
-#define INIT_TABLE_POS_standard___file___NativeFileCapable (SFT_standard___file[32] + 0)
-#define CALL_standard___file___NativeFileCapable___io_open_read(recv) ((standard___file___NativeFileCapable___io_open_read_t)CALL((recv), (SFT_standard___file[32] + 1)))
-#define CALL_standard___file___NativeFileCapable___io_open_write(recv) ((standard___file___NativeFileCapable___io_open_write_t)CALL((recv), (SFT_standard___file[32] + 2)))
-#define CALL_standard___file___NativeFileCapable___native_stdin(recv) ((standard___file___NativeFileCapable___native_stdin_t)CALL((recv), (SFT_standard___file[32] + 3)))
-#define CALL_standard___file___NativeFileCapable___native_stdout(recv) ((standard___file___NativeFileCapable___native_stdout_t)CALL((recv), (SFT_standard___file[32] + 4)))
-#define CALL_standard___file___NativeFileCapable___native_stderr(recv) ((standard___file___NativeFileCapable___native_stderr_t)CALL((recv), (SFT_standard___file[32] + 5)))
+#define CALL_standard___file___NativeFile___io_open_read(recv) ((standard___file___NativeFile___io_open_read_t)CALL((recv), (SFT_standard___file[29] + 5)))
+#define CALL_standard___file___NativeFile___io_open_write(recv) ((standard___file___NativeFile___io_open_write_t)CALL((recv), (SFT_standard___file[29] + 6)))
+#define CALL_standard___file___NativeFile___native_stdin(recv) ((standard___file___NativeFile___native_stdin_t)CALL((recv), (SFT_standard___file[29] + 7)))
+#define CALL_standard___file___NativeFile___native_stdout(recv) ((standard___file___NativeFile___native_stdout_t)CALL((recv), (SFT_standard___file[29] + 8)))
+#define CALL_standard___file___NativeFile___native_stderr(recv) ((standard___file___NativeFile___native_stderr_t)CALL((recv), (SFT_standard___file[29] + 9)))
 static const char * const LOCATE_standard___file___Object___printn = "file::Object::printn";
 void standard___file___Object___printn(val_t p0, val_t p1);
 typedef void (*standard___file___Object___printn_t)(val_t p0, val_t p1);
@@ -136,7 +134,10 @@ typedef val_t (*standard___file___FStream___path_t)(val_t p0);
 static const char * const LOCATE_standard___file___FStream___file_stat = "file::FStream::file_stat";
 val_t standard___file___FStream___file_stat(val_t p0);
 typedef val_t (*standard___file___FStream___file_stat_t)(val_t p0);
-val_t NEW_FStream_standard___stream___IOS___init();
+static const char * const LOCATE_standard___file___FStream___init = "file::FStream::init";
+void standard___file___FStream___init(val_t p0, int* init_table);
+typedef void (*standard___file___FStream___init_t)(val_t p0, int* init_table);
+val_t NEW_FStream_standard___file___FStream___init();
 static const char * const LOCATE_standard___file___IFStream___reopen = "file::IFStream::reopen";
 void standard___file___IFStream___reopen(val_t p0);
 typedef void (*standard___file___IFStream___reopen_t)(val_t p0);
@@ -218,14 +219,20 @@ typedef val_t (*standard___file___String___dirname_t)(val_t p0);
 static const char * const LOCATE_standard___file___String___simplify_path = "file::String::simplify_path";
 val_t standard___file___String___simplify_path(val_t p0);
 typedef val_t (*standard___file___String___simplify_path_t)(val_t p0);
+static const char * const LOCATE_standard___file___String___join_path = "file::String::join_path";
+val_t standard___file___String___join_path(val_t p0, val_t p1);
+typedef val_t (*standard___file___String___join_path_t)(val_t p0, val_t p1);
 static const char * const LOCATE_standard___file___String___mkdir = "file::String::mkdir";
 void standard___file___String___mkdir(val_t p0);
 typedef void (*standard___file___String___mkdir_t)(val_t p0);
 static const char * const LOCATE_standard___file___String___file_extension = "file::String::file_extension";
 val_t standard___file___String___file_extension(val_t p0);
 typedef val_t (*standard___file___String___file_extension_t)(val_t p0);
-val_t NEW_String_standard___string___String___with_native(val_t p0, val_t p1);
+static const char * const LOCATE_standard___file___String___files = "file::String::files";
+val_t standard___file___String___files(val_t p0);
+typedef val_t (*standard___file___String___files_t)(val_t p0);
 val_t NEW_String_standard___string___String___from_cstring(val_t p0);
+val_t NEW_String_standard___string___String___with_native(val_t p0, val_t p1);
 static const char * const LOCATE_standard___file___NativeString___file_exists = "file::NativeString::file_exists";
 val_t standard___file___NativeString___file_exists(val_t p0);
 typedef val_t (*standard___file___NativeString___file_exists_t)(val_t p0);
@@ -266,19 +273,24 @@ typedef val_t (*standard___file___NativeFile___io_close_t)(val_t p0);
 static const char * const LOCATE_standard___file___NativeFile___file_stat = "file::NativeFile::file_stat";
 val_t standard___file___NativeFile___file_stat(val_t p0);
 typedef val_t (*standard___file___NativeFile___file_stat_t)(val_t p0);
-static const char * const LOCATE_standard___file___NativeFileCapable___io_open_read = "file::NativeFileCapable::io_open_read";
-val_t standard___file___NativeFileCapable___io_open_read(val_t p0, val_t p1);
-typedef val_t (*standard___file___NativeFileCapable___io_open_read_t)(val_t p0, val_t p1);
-static const char * const LOCATE_standard___file___NativeFileCapable___io_open_write = "file::NativeFileCapable::io_open_write";
-val_t standard___file___NativeFileCapable___io_open_write(val_t p0, val_t p1);
-typedef val_t (*standard___file___NativeFileCapable___io_open_write_t)(val_t p0, val_t p1);
-static const char * const LOCATE_standard___file___NativeFileCapable___native_stdin = "file::NativeFileCapable::native_stdin";
-val_t standard___file___NativeFileCapable___native_stdin(val_t p0);
-typedef val_t (*standard___file___NativeFileCapable___native_stdin_t)(val_t p0);
-static const char * const LOCATE_standard___file___NativeFileCapable___native_stdout = "file::NativeFileCapable::native_stdout";
-val_t standard___file___NativeFileCapable___native_stdout(val_t p0);
-typedef val_t (*standard___file___NativeFileCapable___native_stdout_t)(val_t p0);
-static const char * const LOCATE_standard___file___NativeFileCapable___native_stderr = "file::NativeFileCapable::native_stderr";
-val_t standard___file___NativeFileCapable___native_stderr(val_t p0);
-typedef val_t (*standard___file___NativeFileCapable___native_stderr_t)(val_t p0);
+static const char * const LOCATE_standard___file___NativeFile___io_open_read = "file::NativeFile::io_open_read";
+void standard___file___NativeFile___io_open_read(val_t p0, val_t p1, int* init_table);
+typedef void (*standard___file___NativeFile___io_open_read_t)(val_t p0, val_t p1, int* init_table);
+val_t NEW_NativeFile_standard___file___NativeFile___io_open_read(val_t p0);
+static const char * const LOCATE_standard___file___NativeFile___io_open_write = "file::NativeFile::io_open_write";
+void standard___file___NativeFile___io_open_write(val_t p0, val_t p1, int* init_table);
+typedef void (*standard___file___NativeFile___io_open_write_t)(val_t p0, val_t p1, int* init_table);
+val_t NEW_NativeFile_standard___file___NativeFile___io_open_write(val_t p0);
+static const char * const LOCATE_standard___file___NativeFile___native_stdin = "file::NativeFile::native_stdin";
+void standard___file___NativeFile___native_stdin(val_t p0, int* init_table);
+typedef void (*standard___file___NativeFile___native_stdin_t)(val_t p0, int* init_table);
+val_t NEW_NativeFile_standard___file___NativeFile___native_stdin();
+static const char * const LOCATE_standard___file___NativeFile___native_stdout = "file::NativeFile::native_stdout";
+void standard___file___NativeFile___native_stdout(val_t p0, int* init_table);
+typedef void (*standard___file___NativeFile___native_stdout_t)(val_t p0, int* init_table);
+val_t NEW_NativeFile_standard___file___NativeFile___native_stdout();
+static const char * const LOCATE_standard___file___NativeFile___native_stderr = "file::NativeFile::native_stderr";
+void standard___file___NativeFile___native_stderr(val_t p0, int* init_table);
+typedef void (*standard___file___NativeFile___native_stderr_t)(val_t p0, int* init_table);
+val_t NEW_NativeFile_standard___file___NativeFile___native_stderr();
 #endif
index dd53f0e..65a7f8c 100644 (file)
@@ -12,7 +12,7 @@ void standard___gc___Sys___force_garbage_collection(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//gc.nit:4 */
+  /* ../lib/standard/gc.nit:4 */
   Nit_gc_force_garbage_collection();
   stack_frame_head = fra.me.prev;
   return;
index 210bdc5..1ae9846 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/standard/gc. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/standard/gc. */
 #ifndef standard___gc_sep
 #define standard___gc_sep
 #include "standard___kernel._sep.h"
index 994a576..441cab1 100644 (file)
@@ -14,12 +14,12 @@ val_t standard___hash___Object___hash(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//hash.nit:24 */
+  /* ../lib/standard/hash.nit:24 */
   REGB0 = CALL_standard___kernel___Object___object_id(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = TAG_Int(8);
-  /* ./../lib/standard//kernel.nit:239 */
+  /* ../lib/standard/kernel.nit:239 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)/UNTAG_Int(REGB1));
-  /* ./../lib/standard//hash.nit:24 */
+  /* ../lib/standard/hash.nit:24 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -37,7 +37,7 @@ val_t standard___hash___Int___hash(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//hash.nit:28 */
+  /* ../lib/standard/hash.nit:28 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -55,9 +55,9 @@ val_t standard___hash___Char___hash(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:413 */
+  /* ../lib/standard/kernel.nit:413 */
   REGB0 = TAG_Int((unsigned char)UNTAG_Char(REGB0));
-  /* ./../lib/standard//hash.nit:32 */
+  /* ../lib/standard/hash.nit:32 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -76,13 +76,13 @@ val_t standard___hash___Bool___hash(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//hash.nit:38 */
+  /* ../lib/standard/hash.nit:38 */
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//hash.nit:39 */
+    /* ../lib/standard/hash.nit:39 */
     REGB0 = TAG_Int(1);
     goto label1;
   } else {
-    /* ./../lib/standard//hash.nit:41 */
+    /* ../lib/standard/hash.nit:41 */
     REGB1 = TAG_Int(0);
     REGB0 = REGB1;
     goto label1;
index 648615a..dfb6162 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/standard/hash. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/standard/hash. */
 #ifndef standard___hash_sep
 #define standard___hash_sep
 #include "standard___kernel._sep.h"
index 291f53b..c3c7daa 100644 (file)
@@ -13,7 +13,7 @@ val_t standard___kernel___Object___object_id(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//kernel.nit:28 */
+  /* ../lib/standard/kernel.nit:28 */
   REGB0 = TAG_Int((bigint)((obj_t)fra.me.REG[0])[1].object_id);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -33,7 +33,7 @@ val_t standard___kernel___Object___is_same_type(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:33 */
+  /* ../lib/standard/kernel.nit:33 */
   REGB0 = TAG_Bool((VAL2VFT(fra.me.REG[0])==VAL2VFT(fra.me.REG[1])));
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -53,7 +53,7 @@ val_t standard___kernel___Object_____eqeq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:41 */
+  /* ../lib/standard/kernel.nit:41 */
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[1]));
   goto label1;
   label1: while(0);
@@ -76,7 +76,7 @@ val_t standard___kernel___Object_____neq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:46 */
+  /* ../lib/standard/kernel.nit:46 */
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[1]));
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -102,17 +102,17 @@ void standard___kernel___Object___output(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//kernel.nit:52 */
+  /* ../lib/standard/kernel.nit:52 */
   REGB0 = TAG_Char('<');
-  /* ./../lib/standard//kernel.nit:380 */
+  /* ../lib/standard/kernel.nit:380 */
   printf("%c", (unsigned char)UNTAG_Char(REGB0));;
-  /* ./../lib/standard//kernel.nit:53 */
+  /* ../lib/standard/kernel.nit:53 */
   REGB0 = CALL_standard___kernel___Object___object_id(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//kernel.nit:229 */
+  /* ../lib/standard/kernel.nit:229 */
   printf("%ld\n", UNTAG_Int(REGB0));;
-  /* ./../lib/standard//kernel.nit:54 */
+  /* ../lib/standard/kernel.nit:54 */
   REGB0 = TAG_Char('>');
-  /* ./../lib/standard//kernel.nit:380 */
+  /* ../lib/standard/kernel.nit:380 */
   printf("%c", (unsigned char)UNTAG_Char(REGB0));;
   stack_frame_head = fra.me.prev;
   return;
@@ -129,7 +129,7 @@ void standard___kernel___Object___output_class_name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//kernel.nit:57 */
+  /* ../lib/standard/kernel.nit:57 */
   printf("%s\n", VAL2VFT(fra.me.REG[0])[2].cname);;
   stack_frame_head = fra.me.prev;
   return;
@@ -148,7 +148,7 @@ void standard___kernel___Object___exit(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//kernel.nit:61 */
+  /* ../lib/standard/kernel.nit:61 */
   exit(UNTAG_Int(REGB0));;
   stack_frame_head = fra.me.prev;
   return;
@@ -165,7 +165,7 @@ val_t standard___kernel___Object___sys(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//kernel.nit:64 */
+  /* ../lib/standard/kernel.nit:64 */
   fra.me.REG[0] = (G_sys);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -221,7 +221,7 @@ val_t standard___kernel___Comparable_____l(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:86 */
+  /* ../lib/standard/kernel.nit:86 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___kernel, 86);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -246,7 +246,7 @@ val_t standard___kernel___Comparable_____leq(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:91 */
+  /* ../lib/standard/kernel.nit:91 */
   REGB0 = CALL_standard___kernel___Comparable_____l(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   goto label1;
@@ -274,7 +274,7 @@ val_t standard___kernel___Comparable_____geq(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:95 */
+  /* ../lib/standard/kernel.nit:95 */
   REGB0 = CALL_standard___kernel___Comparable_____l(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   goto label1;
@@ -302,7 +302,7 @@ val_t standard___kernel___Comparable_____g(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:98 */
+  /* ../lib/standard/kernel.nit:98 */
   REGB0 = CALL_standard___kernel___Comparable_____l(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -330,25 +330,25 @@ val_t standard___kernel___Comparable_____leqg(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:104 */
+  /* ../lib/standard/kernel.nit:104 */
   REGB0 = CALL_standard___kernel___Comparable_____l(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//kernel.nit:105 */
+    /* ../lib/standard/kernel.nit:105 */
     REGB0 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:236 */
     REGB0 = TAG_Int(-UNTAG_Int(REGB0));
-    /* ./../lib/standard//kernel.nit:105 */
+    /* ../lib/standard/kernel.nit:105 */
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:106 */
+    /* ../lib/standard/kernel.nit:106 */
     REGB1 = CALL_standard___kernel___Comparable_____l(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//kernel.nit:107 */
+      /* ../lib/standard/kernel.nit:107 */
       REGB1 = TAG_Int(1);
       REGB0 = REGB1;
       goto label1;
     } else {
-      /* ./../lib/standard//kernel.nit:109 */
+      /* ../lib/standard/kernel.nit:109 */
       REGB1 = TAG_Int(0);
       REGB0 = REGB1;
       goto label1;
@@ -386,7 +386,7 @@ val_t standard___kernel___Comparable___is_between(val_t p0, val_t p1, val_t p2){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:116 */
+  /* ../lib/standard/kernel.nit:116 */
   REGB0 = CALL_standard___kernel___Comparable_____leq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
     REGB0 = CALL_standard___kernel___Comparable_____leq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
@@ -419,13 +419,13 @@ val_t standard___kernel___Comparable___max(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:122 */
+  /* ../lib/standard/kernel.nit:122 */
   REGB0 = CALL_standard___kernel___Comparable_____l(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//kernel.nit:123 */
+    /* ../lib/standard/kernel.nit:123 */
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:125 */
+    /* ../lib/standard/kernel.nit:125 */
     fra.me.REG[1] = fra.me.REG[0];
     goto label1;
   }
@@ -453,13 +453,13 @@ val_t standard___kernel___Comparable___min(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:132 */
+  /* ../lib/standard/kernel.nit:132 */
   REGB0 = CALL_standard___kernel___Comparable_____l(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//kernel.nit:133 */
+    /* ../lib/standard/kernel.nit:133 */
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:135 */
+    /* ../lib/standard/kernel.nit:135 */
     fra.me.REG[1] = fra.me.REG[0];
     goto label1;
   }
@@ -480,7 +480,7 @@ val_t standard___kernel___Discrete___succ(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//kernel.nit:147 */
+  /* ../lib/standard/kernel.nit:147 */
   REGB0 = TAG_Int(1);
   fra.me.REG[0] = CALL_standard___kernel___Discrete_____plus(fra.me.REG[0])(fra.me.REG[0], REGB0);
   goto label1;
@@ -501,7 +501,7 @@ val_t standard___kernel___Discrete___prec(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//kernel.nit:150 */
+  /* ../lib/standard/kernel.nit:150 */
   REGB0 = TAG_Int(1);
   fra.me.REG[0] = CALL_standard___kernel___Discrete_____minus(fra.me.REG[0])(fra.me.REG[0], REGB0);
   goto label1;
@@ -519,7 +519,7 @@ val_t standard___kernel___Discrete_____plus(val_t p0, val_t p1){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//kernel.nit:152 */
+  /* ../lib/standard/kernel.nit:152 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___kernel, 152);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -534,7 +534,7 @@ val_t standard___kernel___Discrete_____minus(val_t p0, val_t p1){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//kernel.nit:155 */
+  /* ../lib/standard/kernel.nit:155 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___kernel, 155);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -563,49 +563,49 @@ val_t standard___kernel___Discrete___distance(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:165 */
+  /* ../lib/standard/kernel.nit:165 */
   REGB0 = CALL_standard___kernel___Comparable_____l(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//kernel.nit:166 */
+    /* ../lib/standard/kernel.nit:166 */
     fra.me.REG[2] = fra.me.REG[0];
-    /* ./../lib/standard//kernel.nit:167 */
+    /* ../lib/standard/kernel.nit:167 */
     fra.me.REG[3] = fra.me.REG[1];
   } else {
-    /* ./../lib/standard//kernel.nit:168 */
+    /* ../lib/standard/kernel.nit:168 */
     REGB0 = CALL_standard___kernel___Comparable_____g(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//kernel.nit:169 */
+      /* ../lib/standard/kernel.nit:169 */
       fra.me.REG[2] = fra.me.REG[1];
-      /* ./../lib/standard//kernel.nit:170 */
+      /* ../lib/standard/kernel.nit:170 */
       fra.me.REG[3] = fra.me.REG[0];
     } else {
-      /* ./../lib/standard//kernel.nit:172 */
+      /* ../lib/standard/kernel.nit:172 */
       REGB0 = TAG_Int(0);
       goto label1;
     }
   }
-  /* ./../lib/standard//kernel.nit:175 */
+  /* ../lib/standard/kernel.nit:175 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//kernel.nit:176 */
+  /* ../lib/standard/kernel.nit:176 */
   while(1) {
     REGB2 = CALL_standard___kernel___Comparable_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//kernel.nit:177 */
+      /* ../lib/standard/kernel.nit:177 */
       fra.me.REG[0] = CALL_standard___kernel___Discrete___succ(fra.me.REG[2])(fra.me.REG[2]);
       fra.me.REG[2] = fra.me.REG[0];
-      /* ./../lib/standard//kernel.nit:178 */
+      /* ../lib/standard/kernel.nit:178 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:178 */
+      /* ../lib/standard/kernel.nit:178 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:176 */
+      /* ../lib/standard/kernel.nit:176 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//kernel.nit:180 */
+  /* ../lib/standard/kernel.nit:180 */
   REGB0 = REGB1;
   goto label1;
   label1: while(0);
@@ -624,7 +624,7 @@ val_t standard___kernel___Bool___object_id(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:194 */
+  /* ../lib/standard/kernel.nit:194 */
   REGB0 = TAG_Int(UNTAG_Bool(REGB0));
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -643,7 +643,7 @@ val_t standard___kernel___Bool_____eqeq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
   fra.me.REG[0] = p1;
-  /* ./../lib/standard//kernel.nit:195 */
+  /* ../lib/standard/kernel.nit:195 */
   REGB0 = TAG_Bool((REGB0)==(fra.me.REG[0]));
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -662,7 +662,7 @@ val_t standard___kernel___Bool_____neq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
   fra.me.REG[0] = p1;
-  /* ./../lib/standard//kernel.nit:196 */
+  /* ../lib/standard/kernel.nit:196 */
   REGB0 = TAG_Bool((REGB0)!=(fra.me.REG[0]));
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -679,7 +679,7 @@ void standard___kernel___Bool___output(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:197 */
+  /* ../lib/standard/kernel.nit:197 */
   (void)printf(UNTAG_Bool(REGB0)?"true\n":"false\n");;
   stack_frame_head = fra.me.prev;
   return;
@@ -697,7 +697,7 @@ val_t standard___kernel___Float___object_id(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//kernel.nit:203 */
+  /* ../lib/standard/kernel.nit:203 */
   REGB0 = TAG_Int((bigint)UNBOX_Float(fra.me.REG[0]));
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -714,7 +714,7 @@ void standard___kernel___Float___output(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//kernel.nit:204 */
+  /* ../lib/standard/kernel.nit:204 */
   printf("%f\n", UNBOX_Float(fra.me.REG[0]));;
   stack_frame_head = fra.me.prev;
   return;
@@ -734,7 +734,7 @@ val_t standard___kernel___Float_____leq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:206 */
+  /* ../lib/standard/kernel.nit:206 */
   REGB0 = TAG_Bool(UNBOX_Float(fra.me.REG[0])<=UNBOX_Float(fra.me.REG[1]));
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -754,7 +754,7 @@ val_t standard___kernel___Float_____l(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:207 */
+  /* ../lib/standard/kernel.nit:207 */
   REGB0 = TAG_Bool(UNBOX_Float(fra.me.REG[0])<UNBOX_Float(fra.me.REG[1]));
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -774,7 +774,7 @@ val_t standard___kernel___Float_____geq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:208 */
+  /* ../lib/standard/kernel.nit:208 */
   REGB0 = TAG_Bool(UNBOX_Float(fra.me.REG[0])>=UNBOX_Float(fra.me.REG[1]));
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -794,7 +794,7 @@ val_t standard___kernel___Float_____g(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:209 */
+  /* ../lib/standard/kernel.nit:209 */
   REGB0 = TAG_Bool(UNBOX_Float(fra.me.REG[0])>UNBOX_Float(fra.me.REG[1]));
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -813,7 +813,7 @@ val_t standard___kernel___Float_____plus(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:210 */
+  /* ../lib/standard/kernel.nit:210 */
   fra.me.REG[1] = BOX_Float(UNBOX_Float(fra.me.REG[0])+UNBOX_Float(fra.me.REG[1]));
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
@@ -830,7 +830,7 @@ val_t standard___kernel___Float___unary__minus(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//kernel.nit:211 */
+  /* ../lib/standard/kernel.nit:211 */
   fra.me.REG[0] = BOX_Float(-UNBOX_Float(fra.me.REG[0]));
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -849,7 +849,7 @@ val_t standard___kernel___Float_____minus(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:212 */
+  /* ../lib/standard/kernel.nit:212 */
   fra.me.REG[1] = BOX_Float(UNBOX_Float(fra.me.REG[0])-UNBOX_Float(fra.me.REG[1]));
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
@@ -868,7 +868,7 @@ val_t standard___kernel___Float_____star(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:213 */
+  /* ../lib/standard/kernel.nit:213 */
   fra.me.REG[1] = BOX_Float(UNBOX_Float(fra.me.REG[0])*UNBOX_Float(fra.me.REG[1]));
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
@@ -887,7 +887,7 @@ val_t standard___kernel___Float_____slash(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:214 */
+  /* ../lib/standard/kernel.nit:214 */
   fra.me.REG[1] = BOX_Float(UNBOX_Float(fra.me.REG[0])/UNBOX_Float(fra.me.REG[1]));
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
@@ -905,7 +905,7 @@ val_t standard___kernel___Float___to_i(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//kernel.nit:216 */
+  /* ../lib/standard/kernel.nit:216 */
   REGB0 = TAG_Int((bigint)UNBOX_Float(fra.me.REG[0]));
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -922,7 +922,7 @@ val_t standard___kernel___Int___object_id(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:226 */
+  /* ../lib/standard/kernel.nit:226 */
   REGB0 = REGB0;
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -941,7 +941,7 @@ val_t standard___kernel___Int_____eqeq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
   fra.me.REG[0] = p1;
-  /* ./../lib/standard//kernel.nit:227 */
+  /* ../lib/standard/kernel.nit:227 */
   REGB0 = TAG_Bool((REGB0)==(fra.me.REG[0]));
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -960,7 +960,7 @@ val_t standard___kernel___Int_____neq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
   fra.me.REG[0] = p1;
-  /* ./../lib/standard//kernel.nit:228 */
+  /* ../lib/standard/kernel.nit:228 */
   REGB0 = TAG_Bool((REGB0)!=(fra.me.REG[0]));
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -977,7 +977,7 @@ void standard___kernel___Int___output(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:229 */
+  /* ../lib/standard/kernel.nit:229 */
   printf("%ld\n", UNTAG_Int(REGB0));;
   stack_frame_head = fra.me.prev;
   return;
@@ -1002,7 +1002,7 @@ val_t standard___kernel___Int_____leq(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:231 */
+  /* ../lib/standard/kernel.nit:231 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
@@ -1027,7 +1027,7 @@ val_t standard___kernel___Int_____l(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
@@ -1052,7 +1052,7 @@ val_t standard___kernel___Int_____geq(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
@@ -1077,7 +1077,7 @@ val_t standard___kernel___Int_____g(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
@@ -1096,7 +1096,7 @@ val_t standard___kernel___Int_____plus(val_t p0, val_t p1){
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
   REGB1 = p1;
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
@@ -1113,7 +1113,7 @@ val_t standard___kernel___Int___unary__minus(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:236 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB0 = TAG_Int(-UNTAG_Int(REGB0));
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -1132,7 +1132,7 @@ val_t standard___kernel___Int_____minus(val_t p0, val_t p1){
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
   REGB1 = p1;
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
@@ -1151,7 +1151,7 @@ val_t standard___kernel___Int_____star(val_t p0, val_t p1){
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
   REGB1 = p1;
-  /* ./../lib/standard//kernel.nit:238 */
+  /* ../lib/standard/kernel.nit:238 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)*UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
@@ -1170,7 +1170,7 @@ val_t standard___kernel___Int_____slash(val_t p0, val_t p1){
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
   REGB1 = p1;
-  /* ./../lib/standard//kernel.nit:239 */
+  /* ../lib/standard/kernel.nit:239 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)/UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
@@ -1189,7 +1189,7 @@ val_t standard___kernel___Int_____percent(val_t p0, val_t p1){
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
   REGB1 = p1;
-  /* ./../lib/standard//kernel.nit:240 */
+  /* ../lib/standard/kernel.nit:240 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)%UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
@@ -1208,7 +1208,7 @@ val_t standard___kernel___Int___lshift(val_t p0, val_t p1){
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
   REGB1 = p1;
-  /* ./../lib/standard//kernel.nit:241 */
+  /* ../lib/standard/kernel.nit:241 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)<<UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
@@ -1227,7 +1227,7 @@ val_t standard___kernel___Int___rshift(val_t p0, val_t p1){
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
   REGB1 = p1;
-  /* ./../lib/standard//kernel.nit:242 */
+  /* ../lib/standard/kernel.nit:242 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)>>UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
@@ -1245,7 +1245,7 @@ val_t standard___kernel___Int___to_f(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:244 */
+  /* ../lib/standard/kernel.nit:244 */
   fra.me.REG[0] = BOX_Float((float)UNTAG_Int(REGB0));
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1262,7 +1262,7 @@ val_t standard___kernel___Int___succ(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:247 */
+  /* ../lib/standard/kernel.nit:247 */
   REGB0 = TAG_Int(UNTAG_Int(REGB0)+1);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -1279,7 +1279,7 @@ val_t standard___kernel___Int___prec(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:248 */
+  /* ../lib/standard/kernel.nit:248 */
   REGB0 = TAG_Int(UNTAG_Int(REGB0)-1);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -1304,26 +1304,26 @@ val_t standard___kernel___Int___distance(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./../lib/standard//kernel.nit:252 */
+  /* ../lib/standard/kernel.nit:252 */
   REGB0 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
-  /* ./../lib/standard//kernel.nit:252 */
+  /* ../lib/standard/kernel.nit:252 */
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//kernel.nit:253 */
+    /* ../lib/standard/kernel.nit:253 */
     REGB0 = REGB1;
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:236 */
     REGB1 = TAG_Int(-UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:255 */
+    /* ../lib/standard/kernel.nit:255 */
     REGB0 = REGB1;
     goto label1;
   }
@@ -1357,15 +1357,15 @@ val_t standard___kernel___Int_____leqg(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-  /* ./../lib/standard//kernel.nit:261 */
+  /* ../lib/standard/kernel.nit:261 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//kernel.nit:262 */
+    /* ../lib/standard/kernel.nit:262 */
     REGB2 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:236 */
     REGB2 = TAG_Int(-UNTAG_Int(REGB2));
-    /* ./../lib/standard//kernel.nit:262 */
+    /* ../lib/standard/kernel.nit:262 */
     goto label1;
   } else {
     REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
@@ -1373,16 +1373,16 @@ val_t standard___kernel___Int_____leqg(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-    /* ./../lib/standard//kernel.nit:263 */
+    /* ../lib/standard/kernel.nit:263 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//kernel.nit:264 */
+      /* ../lib/standard/kernel.nit:264 */
       REGB0 = TAG_Int(1);
       REGB2 = REGB0;
       goto label1;
     } else {
-      /* ./../lib/standard//kernel.nit:266 */
+      /* ../lib/standard/kernel.nit:266 */
       REGB0 = TAG_Int(0);
       REGB2 = REGB0;
       goto label1;
@@ -1424,9 +1424,9 @@ val_t standard___kernel___Int___is_between(val_t p0, val_t p1, val_t p2){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-  /* ./../lib/standard//kernel.nit:272 */
+  /* ../lib/standard/kernel.nit:272 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(true);
   } else {
@@ -1435,17 +1435,17 @@ val_t standard___kernel___Int___is_between(val_t p0, val_t p1, val_t p2){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
-    /* ./../lib/standard//kernel.nit:272 */
+    /* ../lib/standard/kernel.nit:272 */
     REGB1 = REGB0;
   }
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//kernel.nit:273 */
+    /* ../lib/standard/kernel.nit:273 */
     REGB1 = TAG_Bool(false);
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:275 */
+    /* ../lib/standard/kernel.nit:275 */
     REGB0 = TAG_Bool(true);
     REGB1 = REGB0;
     goto label1;
@@ -1479,14 +1479,14 @@ val_t standard___kernel___Int___max(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-  /* ./../lib/standard//kernel.nit:281 */
+  /* ../lib/standard/kernel.nit:281 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//kernel.nit:282 */
+    /* ../lib/standard/kernel.nit:282 */
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:284 */
+    /* ../lib/standard/kernel.nit:284 */
     REGB1 = REGB0;
     goto label1;
   }
@@ -1519,14 +1519,14 @@ val_t standard___kernel___Int___min(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-  /* ./../lib/standard//kernel.nit:290 */
+  /* ../lib/standard/kernel.nit:290 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//kernel.nit:291 */
+    /* ../lib/standard/kernel.nit:291 */
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:293 */
+    /* ../lib/standard/kernel.nit:293 */
     REGB1 = REGB0;
     goto label1;
   }
@@ -1546,7 +1546,7 @@ val_t standard___kernel___Int___ascii(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:297 */
+  /* ../lib/standard/kernel.nit:297 */
   REGB0 = TAG_Char(UNTAG_Int(REGB0));
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -1569,45 +1569,45 @@ val_t standard___kernel___Int___digit_count(val_t p0, val_t p1){
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
   REGB1 = p1;
-  /* ./../lib/standard//kernel.nit:306 */
+  /* ../lib/standard/kernel.nit:306 */
   REGB2 = TAG_Int(0);
   REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB3)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
-  /* ./../lib/standard//kernel.nit:306 */
+  /* ../lib/standard/kernel.nit:306 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//kernel.nit:307 */
+    /* ../lib/standard/kernel.nit:307 */
     REGB2 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:236 */
     REGB3 = TAG_Int(-UNTAG_Int(REGB0));
   } else {
-    /* ./../lib/standard//kernel.nit:309 */
+    /* ../lib/standard/kernel.nit:309 */
     REGB4 = TAG_Int(0);
     REGB5 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB4));
     if (UNTAG_Bool(REGB5)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB4 = TAG_Bool((REGB0)==(REGB4));
-      /* ./../lib/standard//kernel.nit:309 */
+      /* ../lib/standard/kernel.nit:309 */
       REGB5 = REGB4;
     }
     if (UNTAG_Bool(REGB5)) {
-      /* ./../lib/standard//kernel.nit:310 */
+      /* ../lib/standard/kernel.nit:310 */
       REGB5 = TAG_Int(1);
       goto label1;
     } else {
-      /* ./../lib/standard//kernel.nit:312 */
+      /* ../lib/standard/kernel.nit:312 */
       REGB4 = TAG_Int(0);
       REGB2 = REGB4;
-      /* ./../lib/standard//kernel.nit:313 */
+      /* ../lib/standard/kernel.nit:313 */
       REGB3 = REGB0;
     }
   }
-  /* ./../lib/standard//kernel.nit:316 */
+  /* ../lib/standard/kernel.nit:316 */
   while(1) {
     REGB0 = TAG_Int(0);
     REGB4 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
@@ -1615,27 +1615,27 @@ val_t standard___kernel___Int___digit_count(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB0));
-    /* ./../lib/standard//kernel.nit:316 */
+    /* ../lib/standard/kernel.nit:316 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//kernel.nit:317 */
+      /* ../lib/standard/kernel.nit:317 */
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
-      /* ./../lib/standard//kernel.nit:317 */
+      /* ../lib/standard/kernel.nit:317 */
       REGB2 = REGB0;
-      /* ./../lib/standard//kernel.nit:239 */
+      /* ../lib/standard/kernel.nit:239 */
       REGB0 = TAG_Int(UNTAG_Int(REGB3)/UNTAG_Int(REGB1));
-      /* ./../lib/standard//kernel.nit:318 */
+      /* ../lib/standard/kernel.nit:318 */
       REGB3 = REGB0;
     } else {
-      /* ./../lib/standard//kernel.nit:316 */
+      /* ../lib/standard/kernel.nit:316 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//kernel.nit:320 */
+  /* ../lib/standard/kernel.nit:320 */
   REGB5 = REGB2;
   goto label1;
   label1: while(0);
@@ -1657,16 +1657,16 @@ val_t standard___kernel___Int___to_c(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:328 */
+  /* ../lib/standard/kernel.nit:328 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//kernel.nit:328 */
+  /* ../lib/standard/kernel.nit:328 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Int(36);
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -1674,10 +1674,10 @@ val_t standard___kernel___Int___to_c(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:231 */
+    /* ../lib/standard/kernel.nit:231 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1));
   } else {
-    /* ./../lib/standard//kernel.nit:328 */
+    /* ../lib/standard/kernel.nit:328 */
     REGB2 = TAG_Bool(false);
     REGB1 = REGB2;
   }
@@ -1685,41 +1685,41 @@ val_t standard___kernel___Int___to_c(val_t p0){
   } else {
     nit_abort("Assert failed", NULL, LOCATE_standard___kernel, 328);
   }
-  /* ./../lib/standard//kernel.nit:329 */
+  /* ../lib/standard/kernel.nit:329 */
   REGB1 = TAG_Int(10);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-  /* ./../lib/standard//kernel.nit:329 */
+  /* ../lib/standard/kernel.nit:329 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//kernel.nit:330 */
+    /* ../lib/standard/kernel.nit:330 */
     REGB1 = TAG_Char('0');
-    /* ./../lib/standard//kernel.nit:413 */
+    /* ../lib/standard/kernel.nit:413 */
     REGB1 = TAG_Int((unsigned char)UNTAG_Char(REGB1));
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:297 */
+    /* ../lib/standard/kernel.nit:297 */
     REGB1 = TAG_Char(UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:330 */
+    /* ../lib/standard/kernel.nit:330 */
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:332 */
+    /* ../lib/standard/kernel.nit:332 */
     REGB2 = TAG_Char('a');
-    /* ./../lib/standard//kernel.nit:413 */
+    /* ../lib/standard/kernel.nit:413 */
     REGB2 = TAG_Int((unsigned char)UNTAG_Char(REGB2));
-    /* ./../lib/standard//kernel.nit:332 */
+    /* ../lib/standard/kernel.nit:332 */
     REGB3 = TAG_Int(10);
-    /* ./../lib/standard//kernel.nit:237 */
+    /* ../lib/standard/kernel.nit:237 */
     REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-    /* ./../lib/standard//kernel.nit:297 */
+    /* ../lib/standard/kernel.nit:297 */
     REGB3 = TAG_Char(UNTAG_Int(REGB3));
-    /* ./../lib/standard//kernel.nit:332 */
+    /* ../lib/standard/kernel.nit:332 */
     REGB1 = REGB3;
     goto label1;
   }
@@ -1746,30 +1746,30 @@ void standard___kernel___Int___enumerate_to(val_t p0, val_t p1, struct stack_fra
   REGB0 = p0;
   REGB1 = p1;
   CREG[0] = clos_fun0;
-  /* ./../lib/standard//kernel.nit:341 */
+  /* ../lib/standard/kernel.nit:341 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:231 */
+    /* ../lib/standard/kernel.nit:231 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:341 */
+    /* ../lib/standard/kernel.nit:341 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//kernel.nit:342 */
+      /* ../lib/standard/kernel.nit:342 */
       ((void (*)(struct stack_frame_t *, val_t))(CREG[0]))(closctx_param, REGB0);
       if (closctx_param->has_broke) {
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:343 */
+      /* ../lib/standard/kernel.nit:343 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:343 */
+      /* ../lib/standard/kernel.nit:343 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:341 */
+      /* ../lib/standard/kernel.nit:341 */
       goto label2;
     }
   }
@@ -1797,30 +1797,30 @@ void standard___kernel___Int___enumerate_before(val_t p0, val_t p1, struct stack
   REGB0 = p0;
   REGB1 = p1;
   CREG[0] = clos_fun0;
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//kernel.nit:353 */
+      /* ../lib/standard/kernel.nit:353 */
       ((void (*)(struct stack_frame_t *, val_t))(CREG[0]))(closctx_param, REGB0);
       if (closctx_param->has_broke) {
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label2;
     }
   }
@@ -1843,28 +1843,28 @@ val_t standard___kernel___Int___abs(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:361 */
+  /* ../lib/standard/kernel.nit:361 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//kernel.nit:361 */
+  /* ../lib/standard/kernel.nit:361 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//kernel.nit:363 */
+    /* ../lib/standard/kernel.nit:363 */
     REGB1 = REGB0;
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:365 */
+    /* ../lib/standard/kernel.nit:365 */
     REGB2 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:236 */
     REGB2 = TAG_Int(-UNTAG_Int(REGB2));
-    /* ./../lib/standard//kernel.nit:238 */
+    /* ../lib/standard/kernel.nit:238 */
     REGB0 = TAG_Int(UNTAG_Int(REGB2)*UNTAG_Int(REGB0));
-    /* ./../lib/standard//kernel.nit:365 */
+    /* ../lib/standard/kernel.nit:365 */
     REGB1 = REGB0;
     goto label1;
   }
@@ -1884,7 +1884,7 @@ val_t standard___kernel___Char___object_id(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:377 */
+  /* ../lib/standard/kernel.nit:377 */
   REGB0 = TAG_Int(UNTAG_Char(REGB0));
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -1903,7 +1903,7 @@ val_t standard___kernel___Char_____eqeq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
   fra.me.REG[0] = p1;
-  /* ./../lib/standard//kernel.nit:378 */
+  /* ../lib/standard/kernel.nit:378 */
   REGB0 = TAG_Bool((REGB0)==(fra.me.REG[0]));
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -1922,7 +1922,7 @@ val_t standard___kernel___Char_____neq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
   fra.me.REG[0] = p1;
-  /* ./../lib/standard//kernel.nit:379 */
+  /* ../lib/standard/kernel.nit:379 */
   REGB0 = TAG_Bool((REGB0)!=(fra.me.REG[0]));
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -1939,7 +1939,7 @@ void standard___kernel___Char___output(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:380 */
+  /* ../lib/standard/kernel.nit:380 */
   printf("%c", (unsigned char)UNTAG_Char(REGB0));;
   stack_frame_head = fra.me.prev;
   return;
@@ -1964,7 +1964,7 @@ val_t standard___kernel___Char_____leq(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:382 */
+  /* ../lib/standard/kernel.nit:382 */
   REGB1 = TAG_Bool(UNTAG_Char(REGB0)<=UNTAG_Char(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
@@ -1989,7 +1989,7 @@ val_t standard___kernel___Char_____l(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:383 */
+  /* ../lib/standard/kernel.nit:383 */
   REGB1 = TAG_Bool(UNTAG_Char(REGB0)<UNTAG_Char(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
@@ -2014,7 +2014,7 @@ val_t standard___kernel___Char_____geq(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:384 */
+  /* ../lib/standard/kernel.nit:384 */
   REGB1 = TAG_Bool(UNTAG_Char(REGB0)>=UNTAG_Char(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
@@ -2039,7 +2039,7 @@ val_t standard___kernel___Char_____g(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:385 */
+  /* ../lib/standard/kernel.nit:385 */
   REGB1 = TAG_Bool(UNTAG_Char(REGB0)>UNTAG_Char(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
@@ -2056,7 +2056,7 @@ val_t standard___kernel___Char___succ(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:387 */
+  /* ../lib/standard/kernel.nit:387 */
   REGB0 = TAG_Char(UNTAG_Char(REGB0)+1);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -2073,7 +2073,7 @@ val_t standard___kernel___Char___prec(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:388 */
+  /* ../lib/standard/kernel.nit:388 */
   REGB0 = TAG_Char(UNTAG_Char(REGB0)-1);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -2098,29 +2098,29 @@ val_t standard___kernel___Char___distance(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:413 */
+  /* ../lib/standard/kernel.nit:413 */
   REGB0 = TAG_Int((unsigned char)UNTAG_Char(REGB0));
   REGB1 = TAG_Int((unsigned char)UNTAG_Char(REGB1));
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./../lib/standard//kernel.nit:393 */
+  /* ../lib/standard/kernel.nit:393 */
   REGB0 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
-  /* ./../lib/standard//kernel.nit:393 */
+  /* ../lib/standard/kernel.nit:393 */
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//kernel.nit:394 */
+    /* ../lib/standard/kernel.nit:394 */
     REGB0 = REGB1;
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:236 */
     REGB1 = TAG_Int(-UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:396 */
+    /* ../lib/standard/kernel.nit:396 */
     REGB0 = REGB1;
     goto label1;
   }
@@ -2143,54 +2143,54 @@ val_t standard___kernel___Char___to_i(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:404 */
+  /* ../lib/standard/kernel.nit:404 */
   REGB1 = TAG_Char('-');
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:378 */
+    /* ../lib/standard/kernel.nit:378 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./../lib/standard//kernel.nit:404 */
+    /* ../lib/standard/kernel.nit:404 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//kernel.nit:405 */
+    /* ../lib/standard/kernel.nit:405 */
     REGB2 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:236 */
     REGB2 = TAG_Int(-UNTAG_Int(REGB2));
-    /* ./../lib/standard//kernel.nit:405 */
+    /* ../lib/standard/kernel.nit:405 */
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:406 */
+    /* ../lib/standard/kernel.nit:406 */
     REGB1 = CALL_standard___kernel___Char___is_digit(REGB0)(REGB0);
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//kernel.nit:413 */
+      /* ../lib/standard/kernel.nit:413 */
       REGB1 = TAG_Int((unsigned char)UNTAG_Char(REGB0));
-      /* ./../lib/standard//kernel.nit:407 */
+      /* ../lib/standard/kernel.nit:407 */
       REGB3 = TAG_Char('0');
-      /* ./../lib/standard//kernel.nit:413 */
+      /* ../lib/standard/kernel.nit:413 */
       REGB3 = TAG_Int((unsigned char)UNTAG_Char(REGB3));
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB3 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB3));
-      /* ./../lib/standard//kernel.nit:407 */
+      /* ../lib/standard/kernel.nit:407 */
       REGB2 = REGB3;
       goto label1;
     } else {
-      /* ./../lib/standard//kernel.nit:409 */
+      /* ../lib/standard/kernel.nit:409 */
       REGB0 = CALL_standard___kernel___Char___to_lower(REGB0)(REGB0);
-      /* ./../lib/standard//kernel.nit:413 */
+      /* ../lib/standard/kernel.nit:413 */
       REGB0 = TAG_Int((unsigned char)UNTAG_Char(REGB0));
-      /* ./../lib/standard//kernel.nit:409 */
+      /* ../lib/standard/kernel.nit:409 */
       REGB3 = TAG_Char('a');
-      /* ./../lib/standard//kernel.nit:413 */
+      /* ../lib/standard/kernel.nit:413 */
       REGB3 = TAG_Int((unsigned char)UNTAG_Char(REGB3));
-      /* ./../lib/standard//kernel.nit:409 */
+      /* ../lib/standard/kernel.nit:409 */
       REGB1 = TAG_Int(10);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-      /* ./../lib/standard//kernel.nit:409 */
+      /* ../lib/standard/kernel.nit:409 */
       REGB2 = REGB1;
       goto label1;
     }
@@ -2211,7 +2211,7 @@ val_t standard___kernel___Char___ascii(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:413 */
+  /* ../lib/standard/kernel.nit:413 */
   REGB0 = TAG_Int((unsigned char)UNTAG_Char(REGB0));
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -2230,7 +2230,7 @@ val_t standard___kernel___Char_____plus(val_t p0, val_t p1){
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
   REGB1 = p1;
-  /* ./../lib/standard//kernel.nit:416 */
+  /* ../lib/standard/kernel.nit:416 */
   REGB1 = TAG_Char(UNTAG_Char(REGB0)+UNTAG_Char(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
@@ -2249,7 +2249,7 @@ val_t standard___kernel___Char_____minus(val_t p0, val_t p1){
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
   REGB1 = p1;
-  /* ./../lib/standard//kernel.nit:417 */
+  /* ../lib/standard/kernel.nit:417 */
   REGB1 = TAG_Char(UNTAG_Char(REGB0)-UNTAG_Char(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
@@ -2269,23 +2269,23 @@ val_t standard___kernel___Char___to_lower(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:423 */
+  /* ../lib/standard/kernel.nit:423 */
   REGB1 = CALL_standard___kernel___Char___is_upper(REGB0)(REGB0);
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//kernel.nit:413 */
+    /* ../lib/standard/kernel.nit:413 */
     REGB1 = TAG_Int((unsigned char)UNTAG_Char(REGB0));
-    /* ./../lib/standard//kernel.nit:424 */
+    /* ../lib/standard/kernel.nit:424 */
     REGB2 = TAG_Char('a');
     REGB3 = TAG_Char('A');
     REGB3 = CALL_standard___kernel___Discrete___distance(REGB2)(REGB2, REGB3);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
-    /* ./../lib/standard//kernel.nit:297 */
+    /* ../lib/standard/kernel.nit:297 */
     REGB3 = TAG_Char(UNTAG_Int(REGB3));
-    /* ./../lib/standard//kernel.nit:424 */
+    /* ../lib/standard/kernel.nit:424 */
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:426 */
+    /* ../lib/standard/kernel.nit:426 */
     REGB3 = REGB0;
     goto label1;
   }
@@ -2308,23 +2308,23 @@ val_t standard___kernel___Char___to_upper(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:434 */
+  /* ../lib/standard/kernel.nit:434 */
   REGB1 = CALL_standard___kernel___Char___is_lower(REGB0)(REGB0);
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//kernel.nit:413 */
+    /* ../lib/standard/kernel.nit:413 */
     REGB1 = TAG_Int((unsigned char)UNTAG_Char(REGB0));
-    /* ./../lib/standard//kernel.nit:435 */
+    /* ../lib/standard/kernel.nit:435 */
     REGB2 = TAG_Char('a');
     REGB3 = TAG_Char('A');
     REGB3 = CALL_standard___kernel___Discrete___distance(REGB2)(REGB2, REGB3);
-    /* ./../lib/standard//kernel.nit:237 */
+    /* ../lib/standard/kernel.nit:237 */
     REGB3 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB3));
-    /* ./../lib/standard//kernel.nit:297 */
+    /* ../lib/standard/kernel.nit:297 */
     REGB3 = TAG_Char(UNTAG_Int(REGB3));
-    /* ./../lib/standard//kernel.nit:435 */
+    /* ../lib/standard/kernel.nit:435 */
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:437 */
+    /* ../lib/standard/kernel.nit:437 */
     REGB3 = REGB0;
     goto label1;
   }
@@ -2346,16 +2346,16 @@ val_t standard___kernel___Char___is_digit(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:444 */
+  /* ../lib/standard/kernel.nit:444 */
   REGB1 = TAG_Char('0');
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:384 */
+  /* ../lib/standard/kernel.nit:384 */
   REGB1 = TAG_Bool(UNTAG_Char(REGB0)>=UNTAG_Char(REGB1));
-  /* ./../lib/standard//kernel.nit:444 */
+  /* ../lib/standard/kernel.nit:444 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Char('9');
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -2363,10 +2363,10 @@ val_t standard___kernel___Char___is_digit(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:382 */
+    /* ../lib/standard/kernel.nit:382 */
     REGB1 = TAG_Bool(UNTAG_Char(REGB0)<=UNTAG_Char(REGB1));
   } else {
-    /* ./../lib/standard//kernel.nit:444 */
+    /* ../lib/standard/kernel.nit:444 */
     REGB0 = TAG_Bool(false);
     REGB1 = REGB0;
   }
@@ -2389,16 +2389,16 @@ val_t standard___kernel___Char___is_lower(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:450 */
+  /* ../lib/standard/kernel.nit:450 */
   REGB1 = TAG_Char('a');
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:384 */
+  /* ../lib/standard/kernel.nit:384 */
   REGB1 = TAG_Bool(UNTAG_Char(REGB0)>=UNTAG_Char(REGB1));
-  /* ./../lib/standard//kernel.nit:450 */
+  /* ../lib/standard/kernel.nit:450 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Char('z');
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -2406,10 +2406,10 @@ val_t standard___kernel___Char___is_lower(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:382 */
+    /* ../lib/standard/kernel.nit:382 */
     REGB1 = TAG_Bool(UNTAG_Char(REGB0)<=UNTAG_Char(REGB1));
   } else {
-    /* ./../lib/standard//kernel.nit:450 */
+    /* ../lib/standard/kernel.nit:450 */
     REGB0 = TAG_Bool(false);
     REGB1 = REGB0;
   }
@@ -2432,16 +2432,16 @@ val_t standard___kernel___Char___is_upper(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:456 */
+  /* ../lib/standard/kernel.nit:456 */
   REGB1 = TAG_Char('A');
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:384 */
+  /* ../lib/standard/kernel.nit:384 */
   REGB1 = TAG_Bool(UNTAG_Char(REGB0)>=UNTAG_Char(REGB1));
-  /* ./../lib/standard//kernel.nit:456 */
+  /* ../lib/standard/kernel.nit:456 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Char('Z');
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -2449,10 +2449,10 @@ val_t standard___kernel___Char___is_upper(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:382 */
+    /* ../lib/standard/kernel.nit:382 */
     REGB1 = TAG_Bool(UNTAG_Char(REGB0)<=UNTAG_Char(REGB1));
   } else {
-    /* ./../lib/standard//kernel.nit:456 */
+    /* ../lib/standard/kernel.nit:456 */
     REGB0 = TAG_Bool(false);
     REGB1 = REGB0;
   }
@@ -2474,7 +2474,7 @@ val_t standard___kernel___Char___is_letter(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:462 */
+  /* ../lib/standard/kernel.nit:462 */
   REGB1 = CALL_standard___kernel___Char___is_lower(REGB0)(REGB0);
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(true);
index aea21b5..e6d8a20 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/standard/kernel. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/standard/kernel. */
 #ifndef standard___kernel_sep
 #define standard___kernel_sep
 #include <nit_common.h>
index bc034f2..89543c7 100644 (file)
@@ -12,7 +12,7 @@ val_t standard___math___Int___rand(val_t p0){
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//math.nit:20 */
+  /* ../lib/standard/math.nit:20 */
   REGB0 = Int_rand___out(REGB0);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -29,7 +29,7 @@ val_t standard___math___Float___sqrt(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//math.nit:24 */
+  /* ../lib/standard/math.nit:24 */
   fra.me.REG[0] = Float_sqrt___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -46,7 +46,7 @@ val_t standard___math___Float___cos(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//math.nit:25 */
+  /* ../lib/standard/math.nit:25 */
   fra.me.REG[0] = Float_cos___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -63,7 +63,7 @@ val_t standard___math___Float___sin(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//math.nit:26 */
+  /* ../lib/standard/math.nit:26 */
   fra.me.REG[0] = Float_sin___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -80,7 +80,7 @@ val_t standard___math___Float___tan(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//math.nit:27 */
+  /* ../lib/standard/math.nit:27 */
   fra.me.REG[0] = Float_tan___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -97,7 +97,7 @@ val_t standard___math___Float___acos(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//math.nit:28 */
+  /* ../lib/standard/math.nit:28 */
   fra.me.REG[0] = Float_acos___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -114,7 +114,7 @@ val_t standard___math___Float___asin(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//math.nit:29 */
+  /* ../lib/standard/math.nit:29 */
   fra.me.REG[0] = Float_asin___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -131,7 +131,7 @@ val_t standard___math___Float___atan(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//math.nit:30 */
+  /* ../lib/standard/math.nit:30 */
   fra.me.REG[0] = Float_atan___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -150,7 +150,7 @@ val_t standard___math___Float___pow(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//math.nit:32 */
+  /* ../lib/standard/math.nit:32 */
   fra.me.REG[1] = Float_pow___out(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
@@ -167,7 +167,7 @@ val_t standard___math___Float___log(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//math.nit:33 */
+  /* ../lib/standard/math.nit:33 */
   fra.me.REG[0] = Float_log___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -184,7 +184,7 @@ val_t standard___math___Float___exp(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//math.nit:34 */
+  /* ../lib/standard/math.nit:34 */
   fra.me.REG[0] = Float_exp___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -201,7 +201,7 @@ val_t standard___math___Float___rand(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//math.nit:36 */
+  /* ../lib/standard/math.nit:36 */
   fra.me.REG[0] = Float_rand___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -220,7 +220,7 @@ val_t standard___math___Float___hypot_with(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//math.nit:37 */
+  /* ../lib/standard/math.nit:37 */
   fra.me.REG[1] = Float_hypot_with___out(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
@@ -241,17 +241,17 @@ val_t standard___math___Collection___rand(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//math.nit:44 */
+  /* ../lib/standard/math.nit:44 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
     fra.me.REG[1] = NIT_NULL;
     goto label1;
   }
-  /* ./../lib/standard//math.nit:46 */
+  /* ../lib/standard/math.nit:46 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___math___Int___rand(REGB0)(REGB0);
   fra.me.REG[2] = REGB0;
-  /* ./../lib/standard//math.nit:47 */
+  /* ../lib/standard/math.nit:47 */
   fra.me.REG[3] = NIT_NULL;
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_standard___math___Collection___rand_2));
   switch ((&(fra.me))->has_broke) {
@@ -259,7 +259,7 @@ val_t standard___math___Collection___rand(val_t p0){
     case 1: (&(fra.me))->has_broke = 0; goto label4;
   }
   label4: while(0);
-  /* ./../lib/standard//math.nit:59 */
+  /* ../lib/standard/math.nit:59 */
   fra.me.REG[1] = fra.me.REG[3];
   goto label1;
   label1: while(0);
@@ -271,7 +271,7 @@ val_t standard___math___Collection___rand(val_t p0){
     val_t REGB0;
     val_t REGB1;
     val_t tmp;
-    /* ./../lib/standard//math.nit:49 */
+    /* ../lib/standard/math.nit:49 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_standard___math;
     fra.me.line = 49;
@@ -281,28 +281,28 @@ val_t standard___math___Collection___rand(val_t p0){
     fra.me.nitni_local_ref_head = NULL;
     fra.me.REG[0] = NIT_NULL;
     fra.me.REG[0] = p0;
-    /* ./../lib/standard//math.nit:50 */
+    /* ../lib/standard/math.nit:50 */
     REGB0 = TAG_Int(0);
     REGB1 = TAG_Bool(IS_EQUAL_OO(closctx->REG[2],REGB0));
     if (UNTAG_Bool(REGB1)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB0 = TAG_Bool((closctx->REG[2])==(REGB0));
-      /* ./../lib/standard//math.nit:50 */
+      /* ../lib/standard/math.nit:50 */
       REGB1 = REGB0;
     }
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//math.nit:52 */
+      /* ../lib/standard/math.nit:52 */
       closctx->REG[3] = fra.me.REG[0];
-      /* ./../lib/standard//math.nit:53 */
+      /* ../lib/standard/math.nit:53 */
       closctx->has_broke = 1;
       goto label3;
     } else {
-      /* ./../lib/standard//math.nit:55 */
+      /* ../lib/standard/math.nit:55 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB1 = TAG_Int(UNTAG_Int(closctx->REG[2])-UNTAG_Int(REGB1));
-      /* ./../lib/standard//math.nit:55 */
+      /* ../lib/standard/math.nit:55 */
       closctx->REG[2] = REGB1;
     }
     label3: while(0);
@@ -325,7 +325,7 @@ val_t standard___math___Object___atan2(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/standard//math.nit:63 */
+  /* ../lib/standard/math.nit:63 */
   fra.me.REG[2] = Object_atan2___out(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
@@ -342,7 +342,7 @@ val_t standard___math___Object___pi(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//math.nit:64 */
+  /* ../lib/standard/math.nit:64 */
   fra.me.REG[0] = Object_pi___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -361,7 +361,7 @@ void standard___math___Object___srand_from(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//math.nit:65 */
+  /* ../lib/standard/math.nit:65 */
   Object_srand_from___out(fra.me.REG[0], REGB0);
   stack_frame_head = fra.me.prev;
   return;
@@ -378,7 +378,7 @@ void standard___math___Object___srand(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//math.nit:66 */
+  /* ../lib/standard/math.nit:66 */
   Object_srand___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
index 0d368c8..8ec7e1b 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/standard/math. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/standard/math. */
 #ifndef standard___math_sep
 #define standard___math_sep
 #include "standard___collection._sep.h"
index f4fda6d..5cbd63e 100644 (file)
@@ -10,27 +10,11 @@ void standard___stream___IOS___close(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//stream.nit:20 */
+  /* ../lib/standard/stream.nit:20 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___stream, 20);
   stack_frame_head = fra.me.prev;
   return;
 }
-void standard___stream___IOS___init(val_t p0, int* init_table){
-  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___stream___IOS].i;
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  if (init_table[itpos0]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_standard___stream;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_standard___stream___IOS___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-  init_table[itpos0] = 1;
-  return;
-}
 val_t standard___stream___IStream___read_char(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -41,7 +25,7 @@ val_t standard___stream___IStream___read_char(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//stream.nit:27 */
+  /* ../lib/standard/stream.nit:27 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___stream, 27);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -64,9 +48,9 @@ val_t standard___stream___IStream___read(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//stream.nit:33 */
+  /* ../lib/standard/stream.nit:33 */
   fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___with_capacity(REGB0);
-  /* ./../lib/standard//stream.nit:34 */
+  /* ../lib/standard/stream.nit:34 */
   while(1) {
     REGB1 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -74,9 +58,9 @@ val_t standard___stream___IStream___read(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-    /* ./../lib/standard//stream.nit:34 */
+    /* ../lib/standard/stream.nit:34 */
     if (UNTAG_Bool(REGB1)) {
       REGB1 = CALL_standard___stream___IStream___eof(fra.me.REG[0])(fra.me.REG[0]);
       REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
@@ -85,37 +69,37 @@ val_t standard___stream___IStream___read(val_t p0, val_t p1){
       REGB1 = REGB2;
     }
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//stream.nit:35 */
+      /* ../lib/standard/stream.nit:35 */
       REGB1 = CALL_standard___stream___IStream___read_char(fra.me.REG[0])(fra.me.REG[0]);
-      /* ./../lib/standard//stream.nit:36 */
+      /* ../lib/standard/stream.nit:36 */
       REGB2 = TAG_Int(0);
       REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB3)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-      /* ./../lib/standard//stream.nit:36 */
+      /* ../lib/standard/stream.nit:36 */
       if (UNTAG_Bool(REGB2)) {
-        /* ./../lib/standard//kernel.nit:297 */
+        /* ../lib/standard/kernel.nit:297 */
         REGB1 = TAG_Char(UNTAG_Int(REGB1));
-        /* ./../lib/standard//stream.nit:37 */
+        /* ../lib/standard/stream.nit:37 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], REGB1);
-        /* ./../lib/standard//stream.nit:38 */
+        /* ../lib/standard/stream.nit:38 */
         REGB1 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:237 */
+        /* ../lib/standard/kernel.nit:237 */
         REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-        /* ./../lib/standard//stream.nit:38 */
+        /* ../lib/standard/stream.nit:38 */
         REGB0 = REGB1;
       }
     } else {
-      /* ./../lib/standard//stream.nit:34 */
+      /* ../lib/standard/stream.nit:34 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//stream.nit:41 */
+  /* ../lib/standard/stream.nit:41 */
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   goto label2;
   label2: while(0);
@@ -136,18 +120,18 @@ val_t standard___stream___IStream___read_line(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//stream.nit:47 */
+  /* ../lib/standard/stream.nit:47 */
   REGB0 = CALL_standard___stream___IStream___eof(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_standard___stream, 47);
   }
-  /* ./../lib/standard//stream.nit:48 */
+  /* ../lib/standard/stream.nit:48 */
   fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___init();
-  /* ./../lib/standard//stream.nit:49 */
+  /* ../lib/standard/stream.nit:49 */
   CALL_standard___stream___IStream___append_line_to(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./../lib/standard//stream.nit:50 */
+  /* ../lib/standard/stream.nit:50 */
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   goto label1;
   label1: while(0);
@@ -170,38 +154,38 @@ val_t standard___stream___IStream___read_all(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//stream.nit:56 */
+  /* ../lib/standard/stream.nit:56 */
   fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___init();
-  /* ./../lib/standard//stream.nit:57 */
+  /* ../lib/standard/stream.nit:57 */
   while(1) {
     REGB0 = CALL_standard___stream___IStream___eof(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//stream.nit:58 */
+      /* ../lib/standard/stream.nit:58 */
       REGB0 = CALL_standard___stream___IStream___read_char(fra.me.REG[0])(fra.me.REG[0]);
-      /* ./../lib/standard//stream.nit:59 */
+      /* ../lib/standard/stream.nit:59 */
       REGB1 = TAG_Int(0);
       REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-      /* ./../lib/standard//stream.nit:59 */
+      /* ../lib/standard/stream.nit:59 */
       if (UNTAG_Bool(REGB1)) {
-        /* ./../lib/standard//kernel.nit:297 */
+        /* ../lib/standard/kernel.nit:297 */
         REGB0 = TAG_Char(UNTAG_Int(REGB0));
-        /* ./../lib/standard//stream.nit:59 */
+        /* ../lib/standard/stream.nit:59 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], REGB0);
       }
     } else {
-      /* ./../lib/standard//stream.nit:57 */
+      /* ../lib/standard/stream.nit:57 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//stream.nit:61 */
+  /* ../lib/standard/stream.nit:61 */
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   goto label2;
   label2: while(0);
@@ -225,42 +209,42 @@ void standard___stream___IStream___append_line_to(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//stream.nit:67 */
+  /* ../lib/standard/stream.nit:67 */
   while(1) {
-    /* ./../lib/standard//stream.nit:68 */
+    /* ../lib/standard/stream.nit:68 */
     REGB0 = CALL_standard___stream___IStream___read_char(fra.me.REG[0])(fra.me.REG[0]);
-    /* ./../lib/standard//stream.nit:69 */
+    /* ../lib/standard/stream.nit:69 */
     REGB1 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:236 */
     REGB1 = TAG_Int(-UNTAG_Int(REGB1));
-    /* ./../lib/standard//stream.nit:69 */
+    /* ../lib/standard/stream.nit:69 */
     REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
     if (UNTAG_Bool(REGB2)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB1 = TAG_Bool((REGB0)==(REGB1));
-      /* ./../lib/standard//stream.nit:69 */
+      /* ../lib/standard/stream.nit:69 */
       REGB2 = REGB1;
     }
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//stream.nit:70 */
+      /* ../lib/standard/stream.nit:70 */
       REGB2 = CALL_standard___stream___IStream___eof(fra.me.REG[0])(fra.me.REG[0]);
       if (UNTAG_Bool(REGB2)) {
         goto label1;
       }
     } else {
-      /* ./../lib/standard//kernel.nit:297 */
+      /* ../lib/standard/kernel.nit:297 */
       REGB0 = TAG_Char(UNTAG_Int(REGB0));
-      /* ./../lib/standard//stream.nit:73 */
+      /* ../lib/standard/stream.nit:73 */
       CALL_standard___collection___abstract_collection___Sequence___push(fra.me.REG[1])(fra.me.REG[1], REGB0);
-      /* ./../lib/standard//stream.nit:74 */
+      /* ../lib/standard/stream.nit:74 */
       REGB2 = TAG_Char('\n');
       REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
       if (UNTAG_Bool(REGB1)) {
       } else {
-        /* ./../lib/standard//kernel.nit:378 */
+        /* ../lib/standard/kernel.nit:378 */
         REGB2 = TAG_Bool((REGB0)==(REGB2));
-        /* ./../lib/standard//stream.nit:74 */
+        /* ../lib/standard/stream.nit:74 */
         REGB1 = REGB2;
       }
       if (UNTAG_Bool(REGB1)) {
@@ -282,7 +266,7 @@ val_t standard___stream___IStream___eof(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//stream.nit:79 */
+  /* ../lib/standard/stream.nit:79 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___stream, 79);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -297,7 +281,7 @@ void standard___stream___OStream___write(val_t p0, val_t p1){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//stream.nit:86 */
+  /* ../lib/standard/stream.nit:86 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___stream, 86);
   stack_frame_head = fra.me.prev;
   return;
@@ -312,7 +296,7 @@ val_t standard___stream___OStream___is_writable(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//stream.nit:89 */
+  /* ../lib/standard/stream.nit:89 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___stream, 89);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -334,14 +318,14 @@ val_t standard___stream___BufferedIStream___read_char(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//stream.nit:98 */
+  /* ../lib/standard/stream.nit:98 */
   REGB0 = CALL_standard___stream___IStream___eof(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_standard___stream, 98);
   }
-  /* ./../lib/standard//stream.nit:99 */
+  /* ../lib/standard/stream.nit:99 */
   REGB0 = TAG_Bool(ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -353,7 +337,7 @@ val_t standard___stream___BufferedIStream___read_char(val_t p0){
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___stream, 99);
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -365,14 +349,14 @@ val_t standard___stream___BufferedIStream___read_char(val_t p0){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//stream.nit:99 */
+  /* ../lib/standard/stream.nit:99 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//stream.nit:100 */
+    /* ../lib/standard/stream.nit:100 */
     CALL_standard___stream___BufferedIStream___fill_buffer(fra.me.REG[0])(fra.me.REG[0]);
   }
-  /* ./../lib/standard//stream.nit:102 */
+  /* ../lib/standard/stream.nit:102 */
   REGB1 = TAG_Bool(ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -384,7 +368,7 @@ val_t standard___stream___BufferedIStream___read_char(val_t p0){
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___stream, 102);
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -396,18 +380,18 @@ val_t standard___stream___BufferedIStream___read_char(val_t p0){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
-  /* ./../lib/standard//stream.nit:102 */
+  /* ../lib/standard/stream.nit:102 */
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//stream.nit:103 */
+    /* ../lib/standard/stream.nit:103 */
     REGB0 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:236 */
     REGB0 = TAG_Int(-UNTAG_Int(REGB0));
-    /* ./../lib/standard//stream.nit:103 */
+    /* ../lib/standard/stream.nit:103 */
     goto label1;
   }
-  /* ./../lib/standard//stream.nit:105 */
+  /* ../lib/standard/stream.nit:105 */
   fra.me.REG[1] = ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]);
   REGB1 = TAG_Bool(ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -420,16 +404,16 @@ val_t standard___stream___BufferedIStream___read_char(val_t p0){
     nit_abort("Reciever is null", NULL, LOCATE_standard___stream, 105);
   }
   REGB1 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB1);
-  /* ./../lib/standard//stream.nit:106 */
+  /* ../lib/standard/stream.nit:106 */
   REGB2 = ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]);
   REGB3 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-  /* ./../lib/standard//stream.nit:106 */
+  /* ../lib/standard/stream.nit:106 */
   ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB3;
-  /* ./../lib/standard//kernel.nit:413 */
+  /* ../lib/standard/kernel.nit:413 */
   REGB1 = TAG_Int((unsigned char)UNTAG_Char(REGB1));
-  /* ./../lib/standard//stream.nit:107 */
+  /* ../lib/standard/stream.nit:107 */
   REGB0 = REGB1;
   goto label1;
   label1: while(0);
@@ -457,29 +441,29 @@ val_t standard___stream___BufferedIStream___read(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//stream.nit:112 */
+  /* ../lib/standard/stream.nit:112 */
   fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___with_capacity(REGB0);
-  /* ./../lib/standard//stream.nit:113 */
+  /* ../lib/standard/stream.nit:113 */
   REGB1 = TAG_Bool(ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_buffer_pos", LOCATE_standard___stream, 113);
   }
   REGB1 = ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]);
-  /* ./../lib/standard//stream.nit:114 */
+  /* ../lib/standard/stream.nit:114 */
   fra.me.REG[2] = ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]);
   REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___stream, 114);
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./../lib/standard//stream.nit:115 */
+  /* ../lib/standard/stream.nit:115 */
   while(1) {
     REGB3 = TAG_Int(0);
     REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -487,28 +471,28 @@ val_t standard___stream___BufferedIStream___read(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB3));
-    /* ./../lib/standard//stream.nit:115 */
+    /* ../lib/standard/stream.nit:115 */
     if (UNTAG_Bool(REGB3)) {
       REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB3)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB3 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-      /* ./../lib/standard//stream.nit:116 */
+      /* ../lib/standard/stream.nit:116 */
       if (UNTAG_Bool(REGB3)) {
-        /* ./../lib/standard//stream.nit:117 */
+        /* ../lib/standard/stream.nit:117 */
         CALL_standard___stream___BufferedIStream___fill_buffer(fra.me.REG[0])(fra.me.REG[0]);
-        /* ./../lib/standard//stream.nit:118 */
+        /* ../lib/standard/stream.nit:118 */
         REGB3 = CALL_standard___stream___IStream___eof(fra.me.REG[0])(fra.me.REG[0]);
         if (UNTAG_Bool(REGB3)) {
           fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
           goto label1;
         }
-        /* ./../lib/standard//stream.nit:119 */
+        /* ../lib/standard/stream.nit:119 */
         REGB3 = TAG_Bool(ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
@@ -516,32 +500,32 @@ val_t standard___stream___BufferedIStream___read(val_t p0, val_t p1){
         }
         REGB3 = ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]);
         REGB1 = REGB3;
-        /* ./../lib/standard//stream.nit:120 */
+        /* ../lib/standard/stream.nit:120 */
         fra.me.REG[3] = ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]);
         REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___stream, 120);
         }
-        /* ./../lib/standard//collection//array.nit:24 */
+        /* ../lib/standard/collection/array.nit:24 */
         REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
         }
         REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-        /* ./../lib/standard//stream.nit:120 */
+        /* ../lib/standard/stream.nit:120 */
         REGB2 = REGB3;
       }
-      /* ./../lib/standard//stream.nit:122 */
+      /* ../lib/standard/stream.nit:122 */
       while(1) {
         REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB3)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-        /* ./../lib/standard//stream.nit:122 */
+        /* ../lib/standard/stream.nit:122 */
         if (UNTAG_Bool(REGB3)) {
           REGB3 = TAG_Int(0);
           REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -549,15 +533,15 @@ val_t standard___stream___BufferedIStream___read(val_t p0, val_t p1){
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:234 */
+          /* ../lib/standard/kernel.nit:234 */
           REGB3 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB3));
         } else {
-          /* ./../lib/standard//stream.nit:122 */
+          /* ../lib/standard/stream.nit:122 */
           REGB4 = TAG_Bool(false);
           REGB3 = REGB4;
         }
         if (UNTAG_Bool(REGB3)) {
-          /* ./../lib/standard//stream.nit:123 */
+          /* ../lib/standard/stream.nit:123 */
           fra.me.REG[3] = ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]);
           REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
@@ -565,33 +549,33 @@ val_t standard___stream___BufferedIStream___read(val_t p0, val_t p1){
           }
           REGB3 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB1);
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], REGB3);
-          /* ./../lib/standard//stream.nit:124 */
+          /* ../lib/standard/stream.nit:124 */
           REGB3 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
-          /* ./../lib/standard//stream.nit:124 */
+          /* ../lib/standard/stream.nit:124 */
           REGB1 = REGB3;
-          /* ./../lib/standard//stream.nit:125 */
+          /* ../lib/standard/stream.nit:125 */
           REGB3 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:237 */
+          /* ../lib/standard/kernel.nit:237 */
           REGB3 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB3));
-          /* ./../lib/standard//stream.nit:125 */
+          /* ../lib/standard/stream.nit:125 */
           REGB0 = REGB3;
         } else {
-          /* ./../lib/standard//stream.nit:122 */
+          /* ../lib/standard/stream.nit:122 */
           goto label2;
         }
       }
       label2: while(0);
     } else {
-      /* ./../lib/standard//stream.nit:115 */
+      /* ../lib/standard/stream.nit:115 */
       goto label3;
     }
   }
   label3: while(0);
-  /* ./../lib/standard//stream.nit:128 */
+  /* ../lib/standard/stream.nit:128 */
   ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB1;
-  /* ./../lib/standard//stream.nit:129 */
+  /* ../lib/standard/stream.nit:129 */
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = fra.me.REG[1];
   goto label1;
@@ -616,45 +600,45 @@ val_t standard___stream___BufferedIStream___read_all(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//stream.nit:134 */
+  /* ../lib/standard/stream.nit:134 */
   fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___init();
-  /* ./../lib/standard//stream.nit:135 */
+  /* ../lib/standard/stream.nit:135 */
   while(1) {
     REGB0 = CALL_standard___stream___IStream___eof(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//stream.nit:136 */
+      /* ../lib/standard/stream.nit:136 */
       REGB0 = TAG_Bool(ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_buffer_pos", LOCATE_standard___stream, 136);
       }
       REGB0 = ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]);
-      /* ./../lib/standard//stream.nit:137 */
+      /* ../lib/standard/stream.nit:137 */
       fra.me.REG[2] = ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]);
       REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___stream, 137);
       }
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
       }
       REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-      /* ./../lib/standard//stream.nit:138 */
+      /* ../lib/standard/stream.nit:138 */
       while(1) {
         REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB2)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-        /* ./../lib/standard//stream.nit:138 */
+        /* ../lib/standard/stream.nit:138 */
         if (UNTAG_Bool(REGB2)) {
-          /* ./../lib/standard//stream.nit:139 */
+          /* ../lib/standard/stream.nit:139 */
           fra.me.REG[2] = ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]);
           REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
@@ -662,29 +646,29 @@ val_t standard___stream___BufferedIStream___read_all(val_t p0){
           }
           REGB2 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[2])(fra.me.REG[2], REGB0);
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], REGB2);
-          /* ./../lib/standard//stream.nit:140 */
+          /* ../lib/standard/stream.nit:140 */
           REGB2 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-          /* ./../lib/standard//stream.nit:140 */
+          /* ../lib/standard/stream.nit:140 */
           REGB0 = REGB2;
         } else {
-          /* ./../lib/standard//stream.nit:138 */
+          /* ../lib/standard/stream.nit:138 */
           goto label1;
         }
       }
       label1: while(0);
-      /* ./../lib/standard//stream.nit:142 */
+      /* ../lib/standard/stream.nit:142 */
       ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB0;
-      /* ./../lib/standard//stream.nit:143 */
+      /* ../lib/standard/stream.nit:143 */
       CALL_standard___stream___BufferedIStream___fill_buffer(fra.me.REG[0])(fra.me.REG[0]);
     } else {
-      /* ./../lib/standard//stream.nit:135 */
+      /* ../lib/standard/stream.nit:135 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//stream.nit:145 */
+  /* ../lib/standard/stream.nit:145 */
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   goto label3;
   label3: while(0);
@@ -710,23 +694,23 @@ void standard___stream___BufferedIStream___append_line_to(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//stream.nit:150 */
+  /* ../lib/standard/stream.nit:150 */
   while(1) {
-    /* ./../lib/standard//stream.nit:152 */
+    /* ../lib/standard/stream.nit:152 */
     REGB0 = TAG_Bool(ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_buffer_pos", LOCATE_standard___stream, 152);
     }
     REGB0 = ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]);
-    /* ./../lib/standard//stream.nit:153 */
+    /* ../lib/standard/stream.nit:153 */
     while(1) {
       fra.me.REG[2] = ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]);
       REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___stream, 153);
       }
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -738,9 +722,9 @@ void standard___stream___BufferedIStream___append_line_to(val_t p0, val_t p1){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//stream.nit:153 */
+      /* ../lib/standard/stream.nit:153 */
       if (UNTAG_Bool(REGB1)) {
         fra.me.REG[2] = ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]);
         REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -752,9 +736,9 @@ void standard___stream___BufferedIStream___append_line_to(val_t p0, val_t p1){
         REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
         if (UNTAG_Bool(REGB3)) {
         } else {
-          /* ./../lib/standard//kernel.nit:378 */
+          /* ../lib/standard/kernel.nit:378 */
           REGB2 = TAG_Bool((REGB1)==(REGB2));
-          /* ./../lib/standard//stream.nit:153 */
+          /* ../lib/standard/stream.nit:153 */
           REGB3 = REGB2;
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
@@ -764,16 +748,16 @@ void standard___stream___BufferedIStream___append_line_to(val_t p0, val_t p1){
       }
       if (UNTAG_Bool(REGB3)) {
         REGB3 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-        /* ./../lib/standard//stream.nit:153 */
+        /* ../lib/standard/stream.nit:153 */
         REGB0 = REGB3;
       } else {
         goto label1;
       }
     }
     label1: while(0);
-    /* ./../lib/standard//stream.nit:156 */
+    /* ../lib/standard/stream.nit:156 */
     REGB3 = TAG_Bool(ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB3)) {
     } else {
@@ -785,49 +769,49 @@ void standard___stream___BufferedIStream___append_line_to(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB3));
-    /* ./../lib/standard//stream.nit:156 */
+    /* ../lib/standard/stream.nit:156 */
     if (UNTAG_Bool(REGB3)) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
       }
       REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
-      /* ./../lib/standard//stream.nit:158 */
+      /* ../lib/standard/stream.nit:158 */
       REGB2 = TAG_Bool(ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_buffer_pos", LOCATE_standard___stream, 158);
       }
       REGB2 = ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB2 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB2));
-      /* ./../lib/standard//stream.nit:158 */
+      /* ../lib/standard/stream.nit:158 */
       CALL_standard___collection___array___AbstractArray___enlarge(fra.me.REG[1])(fra.me.REG[1], REGB2);
-      /* ./../lib/standard//stream.nit:161 */
+      /* ../lib/standard/stream.nit:161 */
       REGB2 = TAG_Bool(ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_buffer_pos", LOCATE_standard___stream, 161);
       }
       REGB2 = ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]);
-      /* ./../lib/standard//stream.nit:162 */
+      /* ../lib/standard/stream.nit:162 */
       while(1) {
         REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB3)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
-        /* ./../lib/standard//stream.nit:162 */
+        /* ../lib/standard/stream.nit:162 */
         if (UNTAG_Bool(REGB3)) {
-          /* ./../lib/standard//stream.nit:163 */
+          /* ../lib/standard/stream.nit:163 */
           fra.me.REG[2] = ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]);
           REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
@@ -835,26 +819,26 @@ void standard___stream___BufferedIStream___append_line_to(val_t p0, val_t p1){
           }
           REGB3 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[2])(fra.me.REG[2], REGB2);
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], REGB3);
-          /* ./../lib/standard//stream.nit:164 */
+          /* ../lib/standard/stream.nit:164 */
           REGB3 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-          /* ./../lib/standard//stream.nit:164 */
+          /* ../lib/standard/stream.nit:164 */
           REGB2 = REGB3;
         } else {
-          /* ./../lib/standard//stream.nit:162 */
+          /* ../lib/standard/stream.nit:162 */
           goto label2;
         }
       }
       label2: while(0);
     }
-    /* ./../lib/standard//stream.nit:168 */
+    /* ../lib/standard/stream.nit:168 */
     fra.me.REG[2] = ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]);
     REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___stream, 168);
     }
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -866,28 +850,28 @@ void standard___stream___BufferedIStream___append_line_to(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//stream.nit:168 */
+    /* ../lib/standard/stream.nit:168 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//stream.nit:170 */
+      /* ../lib/standard/stream.nit:170 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//stream.nit:170 */
+      /* ../lib/standard/stream.nit:170 */
       ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB2;
-      /* ./../lib/standard//stream.nit:171 */
+      /* ../lib/standard/stream.nit:171 */
       goto label3;
     } else {
-      /* ./../lib/standard//stream.nit:174 */
+      /* ../lib/standard/stream.nit:174 */
       ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB0;
-      /* ./../lib/standard//stream.nit:175 */
+      /* ../lib/standard/stream.nit:175 */
       REGB0 = CALL_standard___stream___BufferedIStream___end_reached(fra.me.REG[0])(fra.me.REG[0]);
       if (UNTAG_Bool(REGB0)) {
-        /* ./../lib/standard//stream.nit:176 */
+        /* ../lib/standard/stream.nit:176 */
         goto label3;
       } else {
-        /* ./../lib/standard//stream.nit:178 */
+        /* ../lib/standard/stream.nit:178 */
         CALL_standard___stream___BufferedIStream___fill_buffer(fra.me.REG[0])(fra.me.REG[0]);
       }
     }
@@ -912,7 +896,7 @@ val_t standard___stream___BufferedIStream___eof(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//stream.nit:184 */
+  /* ../lib/standard/stream.nit:184 */
   REGB0 = TAG_Bool(ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -924,7 +908,7 @@ val_t standard___stream___BufferedIStream___eof(val_t p0){
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___stream, 184);
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -936,9 +920,9 @@ val_t standard___stream___BufferedIStream___eof(val_t p0){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//stream.nit:184 */
+  /* ../lib/standard/stream.nit:184 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = CALL_standard___stream___BufferedIStream___end_reached(fra.me.REG[0])(fra.me.REG[0]);
   } else {
@@ -960,7 +944,7 @@ void standard___stream___BufferedIStream___fill_buffer(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//stream.nit:192 */
+  /* ../lib/standard/stream.nit:192 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___stream, 192);
   stack_frame_head = fra.me.prev;
   return;
@@ -975,7 +959,7 @@ val_t standard___stream___BufferedIStream___end_reached(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//stream.nit:195 */
+  /* ../lib/standard/stream.nit:195 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___stream, 195);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -995,35 +979,88 @@ void standard___stream___BufferedIStream___prepare_buffer(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//stream.nit:201 */
+  /* ../lib/standard/stream.nit:201 */
   fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___with_capacity(REGB0);
   ATTR_standard___stream___BufferedIStream____buffer(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//stream.nit:202 */
+  /* ../lib/standard/stream.nit:202 */
   REGB0 = TAG_Int(0);
   ATTR_standard___stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
 }
-void standard___stream___FDStream___close(val_t p0){
+void standard___stream___BufferedIStream___init(val_t p0, int* init_table){
+  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___stream___BufferedIStream].i;
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  if (init_table[itpos0]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_standard___stream;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_standard___stream___BufferedIStream___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  stack_frame_head = fra.me.prev;
+  init_table[itpos0] = 1;
+  return;
+}
+val_t standard___stream___FDStream___fd(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___stream;
-  fra.me.line = 218;
-  fra.me.meth = LOCATE_standard___stream___FDStream___close;
+  fra.me.line = 215;
+  fra.me.meth = LOCATE_standard___stream___FDStream___fd;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//stream.nit:218 */
-  REGB0 = TAG_Bool(ATTR_standard___stream___FDStream____fd(fra.me.REG[0])!=NIT_NULL);
+  /* ../lib/standard/stream.nit:215 */
+  REGB0 = TAG_Bool(ATTR_standard___stream___FDStream_____atfd(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_fd", LOCATE_standard___stream, 218);
+    nit_abort("Uninitialized attribute %s", "@fd", LOCATE_standard___stream, 215);
   }
-  REGB0 = ATTR_standard___stream___FDStream____fd(fra.me.REG[0]);
+  REGB0 = ATTR_standard___stream___FDStream_____atfd(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return REGB0;
+}
+void standard___stream___FDStream___fd__eq(val_t p0, val_t p1){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_standard___stream;
+  fra.me.line = 215;
+  fra.me.meth = LOCATE_standard___stream___FDStream___fd__eq;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = p1;
+  /* ../lib/standard/stream.nit:215 */
+  ATTR_standard___stream___FDStream_____atfd(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void standard___stream___FDStream___close(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_standard___stream;
+  fra.me.line = 218;
+  fra.me.meth = LOCATE_standard___stream___FDStream___close;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* ../lib/standard/stream.nit:218 */
+  REGB0 = CALL_standard___stream___FDStream___fd(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___stream___FDStream___native_close(fra.me.REG[0])(fra.me.REG[0], REGB0);
   stack_frame_head = fra.me.prev;
   return;
@@ -1042,7 +1079,7 @@ val_t standard___stream___FDStream___native_close(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//stream.nit:220 */
+  /* ../lib/standard/stream.nit:220 */
   REGB0 = FDStream_native_close___out(fra.me.REG[0], REGB0);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -1061,7 +1098,7 @@ val_t standard___stream___FDStream___native_read_char(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//stream.nit:221 */
+  /* ../lib/standard/stream.nit:221 */
   REGB0 = FDStream_native_read_char___out(fra.me.REG[0], REGB0);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -1084,7 +1121,7 @@ val_t standard___stream___FDStream___native_read(val_t p0, val_t p1, val_t p2, v
   REGB0 = p1;
   fra.me.REG[1] = p2;
   REGB1 = p3;
-  /* ./../lib/standard//stream.nit:222 */
+  /* ../lib/standard/stream.nit:222 */
   REGB1 = FDStream_native_read___out(fra.me.REG[0], REGB0, fra.me.REG[1], REGB1);
   stack_frame_head = fra.me.prev;
   return REGB1;
@@ -1107,14 +1144,14 @@ val_t standard___stream___FDStream___native_write(val_t p0, val_t p1, val_t p2,
   REGB0 = p1;
   fra.me.REG[1] = p2;
   REGB1 = p3;
-  /* ./../lib/standard//stream.nit:223 */
+  /* ../lib/standard/stream.nit:223 */
   REGB1 = FDStream_native_write___out(fra.me.REG[0], REGB0, fra.me.REG[1], REGB1);
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
 void standard___stream___FDStream___init(val_t p0, val_t p1, int* init_table){
   int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___stream___FDStream].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   if (init_table[itpos1]) return;
@@ -1123,16 +1160,13 @@ void standard___stream___FDStream___init(val_t p0, val_t p1, int* init_table){
   fra.me.line = 225;
   fra.me.meth = LOCATE_standard___stream___FDStream___init;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//stream.nit:225 */
-  fra.me.REG[1] = fra.me.REG[0];
-  CALL_standard___stream___IOS___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  ATTR_standard___stream___FDStream____fd(fra.me.REG[1]) = REGB0;
+  /* ../lib/standard/stream.nit:225 */
+  CALL_standard___stream___FDStream___fd__eq(fra.me.REG[0])(fra.me.REG[0], REGB0);
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
   return;
@@ -1150,16 +1184,35 @@ val_t standard___stream___FDIStream___eof(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//stream.nit:231 */
-  REGB0 = TAG_Bool(ATTR_standard___stream___FDIStream____eof(fra.me.REG[0])!=NIT_NULL);
+  /* ../lib/standard/stream.nit:231 */
+  REGB0 = TAG_Bool(ATTR_standard___stream___FDIStream_____ateof(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_eof", LOCATE_standard___stream, 231);
+    nit_abort("Uninitialized attribute %s", "@eof", LOCATE_standard___stream, 231);
   }
-  REGB0 = ATTR_standard___stream___FDIStream____eof(fra.me.REG[0]);
+  REGB0 = ATTR_standard___stream___FDIStream_____ateof(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+void standard___stream___FDIStream___eof__eq(val_t p0, val_t p1){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_standard___stream;
+  fra.me.line = 231;
+  fra.me.meth = LOCATE_standard___stream___FDIStream___eof__eq;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = p1;
+  /* ../lib/standard/stream.nit:231 */
+  ATTR_standard___stream___FDIStream_____ateof(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+  return;
+}
 val_t standard___stream___FDIStream___read_char(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1175,32 +1228,27 @@ val_t standard___stream___FDIStream___read_char(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//stream.nit:235 */
-  REGB0 = TAG_Bool(ATTR_standard___stream___FDStream____fd(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_fd", LOCATE_standard___stream, 235);
-  }
-  REGB0 = ATTR_standard___stream___FDStream____fd(fra.me.REG[0]);
+  /* ../lib/standard/stream.nit:235 */
+  REGB0 = CALL_standard___stream___FDStream___fd(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___stream___FDStream___native_read_char(fra.me.REG[0])(fra.me.REG[0], REGB0);
-  /* ./../lib/standard//stream.nit:236 */
+  /* ../lib/standard/stream.nit:236 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:236 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB1 = TAG_Int(-UNTAG_Int(REGB1));
-  /* ./../lib/standard//stream.nit:236 */
+  /* ../lib/standard/stream.nit:236 */
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./../lib/standard//stream.nit:236 */
+    /* ../lib/standard/stream.nit:236 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
     REGB2 = TAG_Bool(true);
-    ATTR_standard___stream___FDIStream____eof(fra.me.REG[0]) = REGB2;
+    CALL_standard___stream___FDIStream___eof__eq(fra.me.REG[0])(fra.me.REG[0], REGB2);
   }
-  /* ./../lib/standard//stream.nit:237 */
+  /* ../lib/standard/stream.nit:237 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -1222,7 +1270,7 @@ void standard___stream___FDIStream___init(val_t p0, val_t p1, int* init_table){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//stream.nit:240 */
+  /* ../lib/standard/stream.nit:240 */
   CALL_standard___stream___FDStream___init(fra.me.REG[0])(fra.me.REG[0], REGB0, init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos2] = 1;
@@ -1241,16 +1289,35 @@ val_t standard___stream___FDOStream___is_writable(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//stream.nit:246 */
-  REGB0 = TAG_Bool(ATTR_standard___stream___FDOStream____is_writable(fra.me.REG[0])!=NIT_NULL);
+  /* ../lib/standard/stream.nit:246 */
+  REGB0 = TAG_Bool(ATTR_standard___stream___FDOStream_____atis_writable(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_is_writable", LOCATE_standard___stream, 246);
+    nit_abort("Uninitialized attribute %s", "@is_writable", LOCATE_standard___stream, 246);
   }
-  REGB0 = ATTR_standard___stream___FDOStream____is_writable(fra.me.REG[0]);
+  REGB0 = ATTR_standard___stream___FDOStream_____atis_writable(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+void standard___stream___FDOStream___is_writable__eq(val_t p0, val_t p1){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_standard___stream;
+  fra.me.line = 246;
+  fra.me.meth = LOCATE_standard___stream___FDOStream___is_writable__eq;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = p1;
+  /* ../lib/standard/stream.nit:246 */
+  ATTR_standard___stream___FDOStream_____atis_writable(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
+  return;
+}
 void standard___stream___FDOStream___write(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
@@ -1269,24 +1336,19 @@ void standard___stream___FDOStream___write(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//stream.nit:250 */
-  REGB0 = TAG_Bool(ATTR_standard___stream___FDStream____fd(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_fd", LOCATE_standard___stream, 250);
-  }
-  REGB0 = ATTR_standard___stream___FDStream____fd(fra.me.REG[0]);
+  /* ../lib/standard/stream.nit:250 */
+  REGB0 = CALL_standard___stream___FDStream___fd(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_standard___string___String___to_cstring(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//stream.nit:250 */
+  /* ../lib/standard/stream.nit:250 */
   REGB1 = CALL_standard___stream___FDStream___native_write(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[2], REGB1);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1298,12 +1360,12 @@ void standard___stream___FDOStream___write(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-  /* ./../lib/standard//stream.nit:251 */
+  /* ../lib/standard/stream.nit:251 */
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(false);
-    ATTR_standard___stream___FDOStream____is_writable(fra.me.REG[0]) = REGB0;
+    CALL_standard___stream___FDOStream___is_writable__eq(fra.me.REG[0])(fra.me.REG[0], REGB0);
   }
   stack_frame_head = fra.me.prev;
   return;
@@ -1325,12 +1387,12 @@ void standard___stream___FDOStream___init(val_t p0, val_t p1, int* init_table){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//stream.nit:254 */
+  /* ../lib/standard/stream.nit:254 */
   fra.me.REG[1] = fra.me.REG[0];
   CALL_standard___stream___FDStream___init(fra.me.REG[0])(fra.me.REG[0], REGB0, init_table);
-  /* ./../lib/standard//stream.nit:256 */
+  /* ../lib/standard/stream.nit:256 */
   REGB0 = TAG_Bool(true);
-  ATTR_standard___stream___FDOStream____is_writable(fra.me.REG[1]) = REGB0;
+  CALL_standard___stream___FDOStream___is_writable__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
   stack_frame_head = fra.me.prev;
   init_table[itpos3] = 1;
   return;
@@ -1353,17 +1415,133 @@ void standard___stream___FDIOStream___init(val_t p0, val_t p1, int* init_table){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//stream.nit:264 */
+  /* ../lib/standard/stream.nit:264 */
   fra.me.REG[1] = fra.me.REG[0];
   REGB1 = REGB0;
   CALL_standard___stream___FDIStream___init(fra.me.REG[0])(fra.me.REG[0], REGB0, init_table);
   CALL_standard___stream___FDOStream___init(fra.me.REG[0])(fra.me.REG[0], REGB0, init_table);
-  /* ./../lib/standard//stream.nit:266 */
-  ATTR_standard___stream___FDStream____fd(fra.me.REG[1]) = REGB1;
-  /* ./../lib/standard//stream.nit:267 */
+  /* ../lib/standard/stream.nit:266 */
+  CALL_standard___stream___FDStream___fd__eq(fra.me.REG[1])(fra.me.REG[1], REGB1);
+  /* ../lib/standard/stream.nit:267 */
   REGB1 = TAG_Bool(true);
-  ATTR_standard___stream___FDOStream____is_writable(fra.me.REG[1]) = REGB1;
+  CALL_standard___stream___FDOStream___is_writable__eq(fra.me.REG[1])(fra.me.REG[1], REGB1);
   stack_frame_head = fra.me.prev;
   init_table[itpos4] = 1;
   return;
 }
+val_t standard___stream___Object___poll(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_standard___stream;
+  fra.me.line = 272;
+  fra.me.meth = LOCATE_standard___stream___Object___poll;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 5;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* ../lib/standard/stream.nit:276 */
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
+  /* ../lib/standard/stream.nit:277 */
+  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
+  /* ../lib/standard/stream.nit:278 */
+  fra.me.REG[4] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_standard___stream___Object___poll_1));
+  /* ../lib/standard/stream.nit:287 */
+  fra.me.REG[3] = CALL_standard___stream___Object___intern_poll(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]);
+  /* ../lib/standard/stream.nit:289 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      /* ../lib/standard/kernel.nit:227 */
+      REGB1 = TAG_Bool((fra.me.REG[3])==(NIT_NULL));
+      /* ../lib/standard/stream.nit:289 */
+      REGB0 = REGB1;
+    }
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* ../lib/standard/stream.nit:290 */
+    fra.me.REG[2] = NIT_NULL;
+    goto label2;
+  } else {
+    /* ../lib/standard/stream.nit:292 */
+    fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
+    fra.me.REG[2] = fra.me.REG[3];
+    goto label2;
+  }
+  label2: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+  void OC_standard___stream___Object___poll_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+    struct {struct stack_frame_t me;} fra;
+    val_t REGB0;
+    val_t REGB1;
+    fun_t CREG[1];
+    val_t tmp;
+    /* ../lib/standard/stream.nit:279 */
+    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+    fra.me.file = LOCATE_standard___stream;
+    fra.me.line = 0;
+    fra.me.meth = LOCATE_standard___stream___Object___poll;
+    fra.me.has_broke = 0;
+    fra.me.REG_size = 1;
+    fra.me.nitni_local_ref_head = NULL;
+    fra.me.REG[0] = NIT_NULL;
+    fra.me.closure_ctx = closctx_param;
+    fra.me.closure_funs = CREG;
+    fra.me.REG[0] = p0;
+    CREG[0] = clos_fun0;
+    /* ../lib/standard/stream.nit:280 */
+    REGB0 = CALL_standard___stream___FDStream___fd(fra.me.REG[0])(fra.me.REG[0]);
+    /* ../lib/standard/stream.nit:281 */
+    REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_standard___stream___FDIStream, ID_standard___stream___FDIStream)) /*cast FDIStream*/;
+    if (UNTAG_Bool(REGB1)) {
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], REGB0);
+    }
+    /* ../lib/standard/stream.nit:282 */
+    REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_standard___stream___FDOStream, ID_standard___stream___FDOStream)) /*cast FDOStream*/;
+    if (UNTAG_Bool(REGB1)) {
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], REGB0);
+    }
+    /* ../lib/standard/stream.nit:284 */
+    CALL_standard___collection___abstract_collection___Map_____braeq(closctx->REG[4])(closctx->REG[4], REGB0, fra.me.REG[0]);
+    stack_frame_head = fra.me.prev;
+    return;
+  }
+val_t standard___stream___Object___intern_poll(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_standard___stream;
+  fra.me.line = 296;
+  fra.me.meth = LOCATE_standard___stream___Object___intern_poll;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  /* ../lib/standard/stream.nit:296 */
+  fra.me.REG[2] = Object_intern_poll___out(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
+  ;
+  ;
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
index 0055784..90f4e10 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/standard/stream. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/standard/stream. */
 #ifndef standard___stream_sep
 #define standard___stream_sep
 #include "standard___string._sep.h"
@@ -28,7 +28,6 @@ extern const int SFT_standard___stream[];
 #define COLOR_standard___stream___IOS (SFT_standard___stream[1])
 #define INIT_TABLE_POS_standard___stream___IOS (SFT_standard___stream[2] + 0)
 #define CALL_standard___stream___IOS___close(recv) ((standard___stream___IOS___close_t)CALL((recv), (SFT_standard___stream[2] + 1)))
-#define CALL_standard___stream___IOS___init(recv) ((standard___stream___IOS___init_t)CALL((recv), (SFT_standard___stream[2] + 2)))
 #define ID_standard___stream___IStream (SFT_standard___stream[3])
 #define COLOR_standard___stream___IStream (SFT_standard___stream[4])
 #define INIT_TABLE_POS_standard___stream___IStream (SFT_standard___stream[5] + 0)
@@ -51,39 +50,42 @@ extern const int SFT_standard___stream[];
 #define CALL_standard___stream___BufferedIStream___fill_buffer(recv) ((standard___stream___BufferedIStream___fill_buffer_t)CALL((recv), (SFT_standard___stream[12] + 1)))
 #define CALL_standard___stream___BufferedIStream___end_reached(recv) ((standard___stream___BufferedIStream___end_reached_t)CALL((recv), (SFT_standard___stream[12] + 2)))
 #define CALL_standard___stream___BufferedIStream___prepare_buffer(recv) ((standard___stream___BufferedIStream___prepare_buffer_t)CALL((recv), (SFT_standard___stream[12] + 3)))
+#define CALL_standard___stream___BufferedIStream___init(recv) ((standard___stream___BufferedIStream___init_t)CALL((recv), (SFT_standard___stream[12] + 4)))
 #define ID_standard___stream___IOStream (SFT_standard___stream[13])
 #define COLOR_standard___stream___IOStream (SFT_standard___stream[14])
 #define INIT_TABLE_POS_standard___stream___IOStream (SFT_standard___stream[15] + 0)
 #define ID_standard___stream___FDStream (SFT_standard___stream[16])
 #define COLOR_standard___stream___FDStream (SFT_standard___stream[17])
-#define ATTR_standard___stream___FDStream____fd(recv) ATTR(recv, (SFT_standard___stream[18] + 0))
+#define ATTR_standard___stream___FDStream_____atfd(recv) ATTR(recv, (SFT_standard___stream[18] + 0))
 #define INIT_TABLE_POS_standard___stream___FDStream (SFT_standard___stream[19] + 0)
-#define CALL_standard___stream___FDStream___native_close(recv) ((standard___stream___FDStream___native_close_t)CALL((recv), (SFT_standard___stream[19] + 1)))
-#define CALL_standard___stream___FDStream___native_read_char(recv) ((standard___stream___FDStream___native_read_char_t)CALL((recv), (SFT_standard___stream[19] + 2)))
-#define CALL_standard___stream___FDStream___native_read(recv) ((standard___stream___FDStream___native_read_t)CALL((recv), (SFT_standard___stream[19] + 3)))
-#define CALL_standard___stream___FDStream___native_write(recv) ((standard___stream___FDStream___native_write_t)CALL((recv), (SFT_standard___stream[19] + 4)))
-#define CALL_standard___stream___FDStream___init(recv) ((standard___stream___FDStream___init_t)CALL((recv), (SFT_standard___stream[19] + 5)))
+#define CALL_standard___stream___FDStream___fd(recv) ((standard___stream___FDStream___fd_t)CALL((recv), (SFT_standard___stream[19] + 1)))
+#define CALL_standard___stream___FDStream___fd__eq(recv) ((standard___stream___FDStream___fd__eq_t)CALL((recv), (SFT_standard___stream[19] + 2)))
+#define CALL_standard___stream___FDStream___native_close(recv) ((standard___stream___FDStream___native_close_t)CALL((recv), (SFT_standard___stream[19] + 3)))
+#define CALL_standard___stream___FDStream___native_read_char(recv) ((standard___stream___FDStream___native_read_char_t)CALL((recv), (SFT_standard___stream[19] + 4)))
+#define CALL_standard___stream___FDStream___native_read(recv) ((standard___stream___FDStream___native_read_t)CALL((recv), (SFT_standard___stream[19] + 5)))
+#define CALL_standard___stream___FDStream___native_write(recv) ((standard___stream___FDStream___native_write_t)CALL((recv), (SFT_standard___stream[19] + 6)))
+#define CALL_standard___stream___FDStream___init(recv) ((standard___stream___FDStream___init_t)CALL((recv), (SFT_standard___stream[19] + 7)))
 #define ID_standard___stream___FDIStream (SFT_standard___stream[20])
 #define COLOR_standard___stream___FDIStream (SFT_standard___stream[21])
-#define ATTR_standard___stream___FDIStream____eof(recv) ATTR(recv, (SFT_standard___stream[22] + 0))
+#define ATTR_standard___stream___FDIStream_____ateof(recv) ATTR(recv, (SFT_standard___stream[22] + 0))
 #define INIT_TABLE_POS_standard___stream___FDIStream (SFT_standard___stream[23] + 0)
-#define CALL_standard___stream___FDIStream___init(recv) ((standard___stream___FDIStream___init_t)CALL((recv), (SFT_standard___stream[23] + 1)))
+#define CALL_standard___stream___FDIStream___eof__eq(recv) ((standard___stream___FDIStream___eof__eq_t)CALL((recv), (SFT_standard___stream[23] + 1)))
+#define CALL_standard___stream___FDIStream___init(recv) ((standard___stream___FDIStream___init_t)CALL((recv), (SFT_standard___stream[23] + 2)))
 #define ID_standard___stream___FDOStream (SFT_standard___stream[24])
 #define COLOR_standard___stream___FDOStream (SFT_standard___stream[25])
-#define ATTR_standard___stream___FDOStream____is_writable(recv) ATTR(recv, (SFT_standard___stream[26] + 0))
+#define ATTR_standard___stream___FDOStream_____atis_writable(recv) ATTR(recv, (SFT_standard___stream[26] + 0))
 #define INIT_TABLE_POS_standard___stream___FDOStream (SFT_standard___stream[27] + 0)
-#define CALL_standard___stream___FDOStream___init(recv) ((standard___stream___FDOStream___init_t)CALL((recv), (SFT_standard___stream[27] + 1)))
+#define CALL_standard___stream___FDOStream___is_writable__eq(recv) ((standard___stream___FDOStream___is_writable__eq_t)CALL((recv), (SFT_standard___stream[27] + 1)))
+#define CALL_standard___stream___FDOStream___init(recv) ((standard___stream___FDOStream___init_t)CALL((recv), (SFT_standard___stream[27] + 2)))
 #define ID_standard___stream___FDIOStream (SFT_standard___stream[28])
 #define COLOR_standard___stream___FDIOStream (SFT_standard___stream[29])
 #define INIT_TABLE_POS_standard___stream___FDIOStream (SFT_standard___stream[30] + 0)
 #define CALL_standard___stream___FDIOStream___init(recv) ((standard___stream___FDIOStream___init_t)CALL((recv), (SFT_standard___stream[30] + 1)))
+#define CALL_standard___stream___Object___poll(recv) ((standard___stream___Object___poll_t)CALL((recv), (SFT_standard___stream[31] + 0)))
+#define CALL_standard___stream___Object___intern_poll(recv) ((standard___stream___Object___intern_poll_t)CALL((recv), (SFT_standard___stream[31] + 1)))
 static const char * const LOCATE_standard___stream___IOS___close = "stream::IOS::close";
 void standard___stream___IOS___close(val_t p0);
 typedef void (*standard___stream___IOS___close_t)(val_t p0);
-static const char * const LOCATE_standard___stream___IOS___init = "stream::IOS::init";
-void standard___stream___IOS___init(val_t p0, int* init_table);
-typedef void (*standard___stream___IOS___init_t)(val_t p0, int* init_table);
-val_t NEW_IOS_standard___stream___IOS___init();
 static const char * const LOCATE_standard___stream___IStream___read_char = "stream::IStream::read_char";
 val_t standard___stream___IStream___read_char(val_t p0);
 typedef val_t (*standard___stream___IStream___read_char_t)(val_t p0);
@@ -102,14 +104,12 @@ typedef void (*standard___stream___IStream___append_line_to_t)(val_t p0, val_t p
 static const char * const LOCATE_standard___stream___IStream___eof = "stream::IStream::eof";
 val_t standard___stream___IStream___eof(val_t p0);
 typedef val_t (*standard___stream___IStream___eof_t)(val_t p0);
-val_t NEW_IStream_standard___stream___IOS___init();
 static const char * const LOCATE_standard___stream___OStream___write = "stream::OStream::write";
 void standard___stream___OStream___write(val_t p0, val_t p1);
 typedef void (*standard___stream___OStream___write_t)(val_t p0, val_t p1);
 static const char * const LOCATE_standard___stream___OStream___is_writable = "stream::OStream::is_writable";
 val_t standard___stream___OStream___is_writable(val_t p0);
 typedef val_t (*standard___stream___OStream___is_writable_t)(val_t p0);
-val_t NEW_OStream_standard___stream___IOS___init();
 static const char * const LOCATE_standard___stream___BufferedIStream___read_char = "stream::BufferedIStream::(stream::IStream::read_char)";
 val_t standard___stream___BufferedIStream___read_char(val_t p0);
 typedef val_t (*standard___stream___BufferedIStream___read_char_t)(val_t p0);
@@ -134,8 +134,16 @@ typedef val_t (*standard___stream___BufferedIStream___end_reached_t)(val_t p0);
 static const char * const LOCATE_standard___stream___BufferedIStream___prepare_buffer = "stream::BufferedIStream::prepare_buffer";
 void standard___stream___BufferedIStream___prepare_buffer(val_t p0, val_t p1);
 typedef void (*standard___stream___BufferedIStream___prepare_buffer_t)(val_t p0, val_t p1);
-val_t NEW_BufferedIStream_standard___stream___IOS___init();
-val_t NEW_IOStream_standard___stream___IOS___init();
+static const char * const LOCATE_standard___stream___BufferedIStream___init = "stream::BufferedIStream::init";
+void standard___stream___BufferedIStream___init(val_t p0, int* init_table);
+typedef void (*standard___stream___BufferedIStream___init_t)(val_t p0, int* init_table);
+val_t NEW_BufferedIStream_standard___stream___BufferedIStream___init();
+static const char * const LOCATE_standard___stream___FDStream___fd = "stream::FDStream::fd";
+val_t standard___stream___FDStream___fd(val_t p0);
+typedef val_t (*standard___stream___FDStream___fd_t)(val_t p0);
+static const char * const LOCATE_standard___stream___FDStream___fd__eq = "stream::FDStream::fd=";
+void standard___stream___FDStream___fd__eq(val_t p0, val_t p1);
+typedef void (*standard___stream___FDStream___fd__eq_t)(val_t p0, val_t p1);
 static const char * const LOCATE_standard___stream___FDStream___close = "stream::FDStream::(stream::IOS::close)";
 void standard___stream___FDStream___close(val_t p0);
 typedef void (*standard___stream___FDStream___close_t)(val_t p0);
@@ -158,6 +166,9 @@ val_t NEW_FDStream_standard___stream___FDStream___init(val_t p0);
 static const char * const LOCATE_standard___stream___FDIStream___eof = "stream::FDIStream::(stream::IStream::eof)";
 val_t standard___stream___FDIStream___eof(val_t p0);
 typedef val_t (*standard___stream___FDIStream___eof_t)(val_t p0);
+static const char * const LOCATE_standard___stream___FDIStream___eof__eq = "stream::FDIStream::eof=";
+void standard___stream___FDIStream___eof__eq(val_t p0, val_t p1);
+typedef void (*standard___stream___FDIStream___eof__eq_t)(val_t p0, val_t p1);
 static const char * const LOCATE_standard___stream___FDIStream___read_char = "stream::FDIStream::(stream::IStream::read_char)";
 val_t standard___stream___FDIStream___read_char(val_t p0);
 typedef val_t (*standard___stream___FDIStream___read_char_t)(val_t p0);
@@ -168,6 +179,9 @@ val_t NEW_FDIStream_standard___stream___FDIStream___init(val_t p0);
 static const char * const LOCATE_standard___stream___FDOStream___is_writable = "stream::FDOStream::(stream::OStream::is_writable)";
 val_t standard___stream___FDOStream___is_writable(val_t p0);
 typedef val_t (*standard___stream___FDOStream___is_writable_t)(val_t p0);
+static const char * const LOCATE_standard___stream___FDOStream___is_writable__eq = "stream::FDOStream::is_writable=";
+void standard___stream___FDOStream___is_writable__eq(val_t p0, val_t p1);
+typedef void (*standard___stream___FDOStream___is_writable__eq_t)(val_t p0, val_t p1);
 static const char * const LOCATE_standard___stream___FDOStream___write = "stream::FDOStream::(stream::OStream::write)";
 void standard___stream___FDOStream___write(val_t p0, val_t p1);
 typedef void (*standard___stream___FDOStream___write_t)(val_t p0, val_t p1);
@@ -179,4 +193,13 @@ static const char * const LOCATE_standard___stream___FDIOStream___init = "stream
 void standard___stream___FDIOStream___init(val_t p0, val_t p1, int* init_table);
 typedef void (*standard___stream___FDIOStream___init_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_FDIOStream_standard___stream___FDIOStream___init(val_t p0);
+static const char * const LOCATE_standard___stream___Object___poll = "stream::Object::poll";
+val_t standard___stream___Object___poll(val_t p0, val_t p1);
+typedef val_t (*standard___stream___Object___poll_t)(val_t p0, val_t p1);
+  typedef void (*CLOS_OC_standard___stream___Object___poll_1_0)(struct stack_frame_t *);
+  void OC_standard___stream___Object___poll_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+  typedef void (*OC_standard___stream___Object___poll_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
+static const char * const LOCATE_standard___stream___Object___intern_poll = "stream::Object::intern_poll";
+val_t standard___stream___Object___intern_poll(val_t p0, val_t p1, val_t p2);
+typedef val_t (*standard___stream___Object___intern_poll_t)(val_t p0, val_t p1, val_t p2);
 #endif
index 731905d..d9fa511 100644 (file)
@@ -13,7 +13,7 @@ val_t standard___string___AbstractString___items(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:28 */
+  /* ../lib/standard/string.nit:28 */
   REGB0 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -38,16 +38,16 @@ val_t standard___string___AbstractString_____bra(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//string.nit:30 */
+  /* ../lib/standard/string.nit:30 */
   REGB1 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 30);
   }
   fra.me.REG[0] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:593 */
+  /* ../lib/standard/string.nit:595 */
   REGB0 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]);
-  /* ./../lib/standard//string.nit:30 */
+  /* ../lib/standard/string.nit:30 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -74,39 +74,39 @@ val_t standard___string___AbstractString___substring(val_t p0, val_t p1, val_t p
   fra.me.REG[0] = p0;
   REGB0 = p1;
   REGB1 = p2;
-  /* ./../lib/standard//string.nit:40 */
+  /* ../lib/standard/string.nit:40 */
   REGB2 = TAG_Int(0);
   REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB3)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-  /* ./../lib/standard//string.nit:40 */
+  /* ../lib/standard/string.nit:40 */
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_standard___string, 40);
   }
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
-  /* ./../lib/standard//string.nit:41 */
+  /* ../lib/standard/string.nit:41 */
   REGB1 = REGB2;
-  /* ./../lib/standard//string.nit:42 */
+  /* ../lib/standard/string.nit:42 */
   REGB2 = TAG_Int(0);
   REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB3)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
-  /* ./../lib/standard//string.nit:42 */
+  /* ../lib/standard/string.nit:42 */
   if (UNTAG_Bool(REGB2)) {
     REGB2 = TAG_Int(0);
     REGB0 = REGB2;
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -118,18 +118,18 @@ val_t standard___string___AbstractString___substring(val_t p0, val_t p1, val_t p
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
-  /* ./../lib/standard//string.nit:43 */
+  /* ../lib/standard/string.nit:43 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-    /* ./../lib/standard//string.nit:43 */
+    /* ../lib/standard/string.nit:43 */
     REGB1 = REGB2;
   }
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -137,53 +137,53 @@ val_t standard___string___AbstractString___substring(val_t p0, val_t p1, val_t p
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-  /* ./../lib/standard//string.nit:44 */
+  /* ../lib/standard/string.nit:44 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//kernel.nit:237 */
+    /* ../lib/standard/kernel.nit:237 */
     REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
-    /* ./../lib/standard//string.nit:45 */
+    /* ../lib/standard/string.nit:45 */
     fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___with_capacity(REGB2);
-    /* ./../lib/standard//string.nit:46 */
+    /* ../lib/standard/string.nit:46 */
     while(1) {
       REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//string.nit:46 */
+      /* ../lib/standard/string.nit:46 */
       if (UNTAG_Bool(REGB2)) {
-        /* ./../lib/standard//string.nit:47 */
+        /* ../lib/standard/string.nit:47 */
         REGB2 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 47);
         }
         fra.me.REG[2] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
-        /* ./../lib/standard//string.nit:593 */
+        /* ../lib/standard/string.nit:595 */
         REGB2 = TAG_Char(UNBOX_NativeString(fra.me.REG[2])[UNTAG_Int(REGB0)]);
-        /* ./../lib/standard//string.nit:47 */
+        /* ../lib/standard/string.nit:47 */
         CALL_standard___collection___abstract_collection___Sequence___push(fra.me.REG[1])(fra.me.REG[1], REGB2);
-        /* ./../lib/standard//string.nit:48 */
+        /* ../lib/standard/string.nit:48 */
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-        /* ./../lib/standard//string.nit:48 */
+        /* ../lib/standard/string.nit:48 */
         REGB0 = REGB2;
       } else {
-        /* ./../lib/standard//string.nit:46 */
+        /* ../lib/standard/string.nit:46 */
         goto label1;
       }
     }
     label1: while(0);
-    /* ./../lib/standard//string.nit:50 */
+    /* ../lib/standard/string.nit:50 */
     fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
     goto label2;
   } else {
-    /* ./../lib/standard//string.nit:52 */
+    /* ../lib/standard/string.nit:52 */
     if (!once_value_3) {
       fra.me.REG[0] = BOX_NativeString("");
       REGB0 = TAG_Int(0);
@@ -215,7 +215,7 @@ val_t standard___string___AbstractString___substring_from(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -227,23 +227,23 @@ val_t standard___string___AbstractString___substring_from(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-  /* ./../lib/standard//string.nit:63 */
+  /* ../lib/standard/string.nit:63 */
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_standard___string, 63);
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
-  /* ./../lib/standard//string.nit:64 */
+  /* ../lib/standard/string.nit:64 */
   fra.me.REG[0] = CALL_standard___string___AbstractString___substring(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB1);
   goto label1;
   label1: while(0);
@@ -272,34 +272,34 @@ val_t standard___string___AbstractString___has_substring(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   REGB0 = p2;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//string.nit:73 */
+  /* ../lib/standard/string.nit:73 */
   REGB2 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB0 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-  /* ./../lib/standard//string.nit:75 */
+  /* ../lib/standard/string.nit:75 */
   REGB1 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 75);
   }
   fra.me.REG[2] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:76 */
+  /* ../lib/standard/string.nit:76 */
   REGB1 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 76);
   }
   fra.me.REG[1] = ATTR_standard___string___AbstractString____items(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -311,9 +311,9 @@ val_t standard___string___AbstractString___has_substring(val_t p0, val_t p1, val
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-  /* ./../lib/standard//string.nit:77 */
+  /* ../lib/standard/string.nit:77 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(true);
   } else {
@@ -322,16 +322,16 @@ val_t standard___string___AbstractString___has_substring(val_t p0, val_t p1, val
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB2)>UNTAG_Int(REGB0));
-    /* ./../lib/standard//string.nit:77 */
+    /* ../lib/standard/string.nit:77 */
     REGB1 = REGB3;
   }
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(false);
     goto label1;
   }
-  /* ./../lib/standard//string.nit:78 */
+  /* ../lib/standard/string.nit:78 */
   while(1) {
     REGB3 = TAG_Int(0);
     REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
@@ -339,20 +339,20 @@ val_t standard___string___AbstractString___has_substring(val_t p0, val_t p1, val
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
-    /* ./../lib/standard//string.nit:78 */
+    /* ../lib/standard/string.nit:78 */
     if (UNTAG_Bool(REGB3)) {
-      /* ./../lib/standard//string.nit:593 */
+      /* ../lib/standard/string.nit:595 */
       REGB3 = TAG_Char(UNBOX_NativeString(fra.me.REG[2])[UNTAG_Int(REGB0)]);
       REGB4 = TAG_Char(UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB2)]);
-      /* ./../lib/standard//string.nit:79 */
+      /* ../lib/standard/string.nit:79 */
       REGB5 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4));
       if (UNTAG_Bool(REGB5)) {
       } else {
-        /* ./../lib/standard//kernel.nit:378 */
+        /* ../lib/standard/kernel.nit:378 */
         REGB4 = TAG_Bool((REGB3)==(REGB4));
-        /* ./../lib/standard//string.nit:79 */
+        /* ../lib/standard/string.nit:79 */
         REGB5 = REGB4;
       }
       REGB5 = TAG_Bool(!UNTAG_Bool(REGB5));
@@ -361,25 +361,25 @@ val_t standard___string___AbstractString___has_substring(val_t p0, val_t p1, val
         REGB1 = REGB5;
         goto label1;
       }
-      /* ./../lib/standard//string.nit:80 */
+      /* ../lib/standard/string.nit:80 */
       REGB5 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB5 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB5));
-      /* ./../lib/standard//string.nit:80 */
+      /* ../lib/standard/string.nit:80 */
       REGB0 = REGB5;
-      /* ./../lib/standard//string.nit:81 */
+      /* ../lib/standard/string.nit:81 */
       REGB5 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB5 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB5));
-      /* ./../lib/standard//string.nit:81 */
+      /* ../lib/standard/string.nit:81 */
       REGB2 = REGB5;
     } else {
-      /* ./../lib/standard//string.nit:78 */
+      /* ../lib/standard/string.nit:78 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//string.nit:83 */
+  /* ../lib/standard/string.nit:83 */
   REGB2 = TAG_Bool(true);
   REGB1 = REGB2;
   goto label1;
@@ -402,7 +402,7 @@ val_t standard___string___AbstractString___has_prefix(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//string.nit:90 */
+  /* ../lib/standard/string.nit:90 */
   REGB0 = TAG_Int(0);
   REGB0 = CALL_standard___string___AbstractString___has_substring(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
   goto label1;
@@ -426,7 +426,7 @@ val_t standard___string___AbstractString___has_suffix(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -439,9 +439,9 @@ val_t standard___string___AbstractString___has_suffix(val_t p0, val_t p1){
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./../lib/standard//string.nit:96 */
+  /* ../lib/standard/string.nit:96 */
   REGB1 = CALL_standard___string___AbstractString___has_substring(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB1);
   goto label1;
   label1: while(0);
@@ -461,12 +461,12 @@ val_t standard___string___AbstractString___to_i(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:102 */
+  /* ../lib/standard/string.nit:102 */
   fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___string___String___to_cstring(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:604 */
+  /* ../lib/standard/string.nit:606 */
   REGB0 = TAG_Int(atoi(UNBOX_NativeString(fra.me.REG[0])));
-  /* ./../lib/standard//string.nit:102 */
+  /* ../lib/standard/string.nit:102 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -485,7 +485,7 @@ val_t standard___string___AbstractString___to_hex(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:106 */
+  /* ../lib/standard/string.nit:106 */
   REGB0 = TAG_Int(16);
   REGB0 = CALL_standard___string___AbstractString___a_to(fra.me.REG[0])(fra.me.REG[0], REGB0);
   goto label1;
@@ -510,12 +510,12 @@ val_t standard___string___AbstractString___a_to(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//string.nit:108 */
+  /* ../lib/standard/string.nit:108 */
   fra.me.REG[1] = REGB0;
-  /* ./../lib/standard//string.nit:111 */
+  /* ../lib/standard/string.nit:111 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = REGB0;
-  /* ./../lib/standard//string.nit:112 */
+  /* ../lib/standard/string.nit:112 */
   REGB0 = TAG_Bool(false);
   fra.me.REG[3] = REGB0;
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_standard___string___AbstractString___a_to_1));
@@ -523,15 +523,15 @@ val_t standard___string___AbstractString___a_to(val_t p0, val_t p1){
     case 0: break;
     case 1: (&(fra.me))->has_broke = 0; goto label3;
   }
-  /* ./../lib/standard//string.nit:129 */
+  /* ../lib/standard/string.nit:129 */
   if (UNTAG_Bool(fra.me.REG[3])) {
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:236 */
     REGB0 = TAG_Int(-UNTAG_Int(fra.me.REG[2]));
-    /* ./../lib/standard//string.nit:130 */
+    /* ../lib/standard/string.nit:130 */
     fra.me.REG[0] = REGB0;
     goto label3;
   } else {
-    /* ./../lib/standard//string.nit:132 */
+    /* ../lib/standard/string.nit:132 */
     fra.me.REG[0] = fra.me.REG[2];
     goto label3;
   }
@@ -546,7 +546,7 @@ val_t standard___string___AbstractString___a_to(val_t p0, val_t p1){
     val_t REGB2;
     fun_t CREG[1];
     val_t tmp;
-    /* ./../lib/standard//string.nit:114 */
+    /* ../lib/standard/string.nit:114 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_standard___string;
     fra.me.line = 0;
@@ -560,52 +560,52 @@ val_t standard___string___AbstractString___a_to(val_t p0, val_t p1){
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
     REGB0 = fra.me.REG[0];
-    /* ./../lib/standard//string.nit:116 */
+    /* ../lib/standard/string.nit:116 */
     REGB0 = CALL_standard___kernel___Char___to_i(REGB0)(REGB0);
     REGB1 = TAG_Bool(VAL_ISA(closctx->REG[1], VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(closctx->REG[1]));
-    /* ./../lib/standard//string.nit:117 */
+    /* ../lib/standard/string.nit:117 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//string.nit:118 */
+      /* ../lib/standard/string.nit:118 */
       if (UNTAG_Bool(closctx->REG[3])) {
-        /* ./../lib/standard//kernel.nit:236 */
+        /* ../lib/standard/kernel.nit:236 */
         REGB1 = TAG_Int(-UNTAG_Int(closctx->REG[2]));
-        /* ./../lib/standard//string.nit:119 */
+        /* ../lib/standard/string.nit:119 */
         closctx->REG[0] = REGB1;
         closctx->has_broke = 1;
         goto label2;
       } else {
-        /* ./../lib/standard//string.nit:121 */
+        /* ../lib/standard/string.nit:121 */
         closctx->REG[0] = closctx->REG[2];
         closctx->has_broke = 1;
         goto label2;
       }
     } else {
-      /* ./../lib/standard//string.nit:123 */
+      /* ../lib/standard/string.nit:123 */
       REGB1 = TAG_Int(0);
       REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//string.nit:123 */
+      /* ../lib/standard/string.nit:123 */
       if (UNTAG_Bool(REGB1)) {
-        /* ./../lib/standard//string.nit:124 */
+        /* ../lib/standard/string.nit:124 */
         REGB1 = TAG_Bool(true);
         closctx->REG[3] = REGB1;
       } else {
-        /* ./../lib/standard//kernel.nit:238 */
+        /* ../lib/standard/kernel.nit:238 */
         REGB1 = TAG_Int(UNTAG_Int(closctx->REG[2])*UNTAG_Int(closctx->REG[1]));
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
-        /* ./../lib/standard//string.nit:126 */
+        /* ../lib/standard/string.nit:126 */
         closctx->REG[2] = REGB0;
       }
     }
@@ -627,17 +627,17 @@ val_t standard___string___AbstractString___to_upper(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:139 */
+  /* ../lib/standard/string.nit:139 */
   fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___with_capacity(REGB0);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_standard___string___AbstractString___to_upper_1));
-  /* ./../lib/standard//string.nit:141 */
+  /* ../lib/standard/string.nit:141 */
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   goto label2;
   label2: while(0);
@@ -649,7 +649,7 @@ val_t standard___string___AbstractString___to_upper(val_t p0){
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./../lib/standard//string.nit:140 */
+    /* ../lib/standard/string.nit:140 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_standard___string;
     fra.me.line = 0;
@@ -682,17 +682,17 @@ val_t standard___string___AbstractString___to_lower(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:147 */
+  /* ../lib/standard/string.nit:147 */
   fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___with_capacity(REGB0);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_standard___string___AbstractString___to_lower_1));
-  /* ./../lib/standard//string.nit:149 */
+  /* ../lib/standard/string.nit:149 */
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   goto label2;
   label2: while(0);
@@ -704,7 +704,7 @@ val_t standard___string___AbstractString___to_lower(val_t p0){
     val_t REGB0;
     fun_t CREG[1];
     val_t tmp;
-    /* ./../lib/standard//string.nit:148 */
+    /* ../lib/standard/string.nit:148 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_standard___string;
     fra.me.line = 0;
@@ -739,11 +739,11 @@ void standard___string___AbstractString___output(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:155 */
+  /* ../lib/standard/string.nit:155 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//string.nit:156 */
+  /* ../lib/standard/string.nit:156 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -755,29 +755,29 @@ void standard___string___AbstractString___output(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//string.nit:156 */
+    /* ../lib/standard/string.nit:156 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//string.nit:157 */
+      /* ../lib/standard/string.nit:157 */
       REGB1 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 157);
       }
       fra.me.REG[1] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
-      /* ./../lib/standard//string.nit:593 */
+      /* ../lib/standard/string.nit:595 */
       REGB1 = TAG_Char(UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB0)]);
-      /* ./../lib/standard//kernel.nit:380 */
+      /* ../lib/standard/kernel.nit:380 */
       printf("%c", (unsigned char)UNTAG_Char(REGB1));;
-      /* ./../lib/standard//string.nit:158 */
+      /* ../lib/standard/string.nit:158 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//string.nit:158 */
+      /* ../lib/standard/string.nit:158 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//string.nit:156 */
+      /* ../lib/standard/string.nit:156 */
       goto label1;
     }
   }
@@ -805,23 +805,23 @@ void standard___string___String___with_native(val_t p0, val_t p1, val_t p2, int*
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   REGB0 = p2;
-  /* ./../lib/standard//string.nit:173 */
+  /* ../lib/standard/string.nit:173 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//string.nit:173 */
+  /* ../lib/standard/string.nit:173 */
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_standard___string, 173);
   }
-  /* ./../lib/standard//string.nit:174 */
+  /* ../lib/standard/string.nit:174 */
   ATTR_standard___string___AbstractString____items(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//string.nit:175 */
+  /* ../lib/standard/string.nit:175 */
   ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -844,11 +844,11 @@ void standard___string___String___from_cstring(val_t p0, val_t p1, int* init_tab
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//string.nit:181 */
+  /* ../lib/standard/string.nit:181 */
   REGB0 = CALL_standard___string___NativeString___cstring_length(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./../lib/standard//string.nit:182 */
+  /* ../lib/standard/string.nit:182 */
   ATTR_standard___string___AbstractString____items(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//string.nit:183 */
+  /* ../lib/standard/string.nit:183 */
   ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
@@ -867,7 +867,7 @@ val_t standard___string___String___to_cstring(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:189 */
+  /* ../lib/standard/string.nit:189 */
   REGB0 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -899,7 +899,7 @@ val_t standard___string___String_____eqeq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//string.nit:194 */
+  /* ../lib/standard/string.nit:194 */
   REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_standard___string___String, ID_standard___string___String)) /*cast String*/;
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
@@ -912,32 +912,32 @@ val_t standard___string___String_____eqeq(val_t p0, val_t p1){
     REGB0 = TAG_Bool(false);
     goto label1;
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:196 */
+  /* ../lib/standard/string.nit:196 */
   REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___string, 196);
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//string.nit:196 */
+  /* ../lib/standard/string.nit:196 */
   REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
   if (UNTAG_Bool(REGB3)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB2 = TAG_Bool((REGB2)==(REGB1));
-    /* ./../lib/standard//string.nit:196 */
+    /* ../lib/standard/string.nit:196 */
     REGB3 = REGB2;
   }
   REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
@@ -946,43 +946,43 @@ val_t standard___string___String_____eqeq(val_t p0, val_t p1){
     REGB0 = REGB3;
     goto label1;
   }
-  /* ./../lib/standard//string.nit:197 */
+  /* ../lib/standard/string.nit:197 */
   REGB3 = TAG_Int(0);
-  /* ./../lib/standard//string.nit:198 */
+  /* ../lib/standard/string.nit:198 */
   REGB2 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 198);
   }
   fra.me.REG[0] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:199 */
+  /* ../lib/standard/string.nit:199 */
   REGB2 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 199);
   }
   fra.me.REG[1] = ATTR_standard___string___AbstractString____items(fra.me.REG[1]);
-  /* ./../lib/standard//string.nit:200 */
+  /* ../lib/standard/string.nit:200 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//string.nit:200 */
+    /* ../lib/standard/string.nit:200 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//string.nit:593 */
+      /* ../lib/standard/string.nit:595 */
       REGB2 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB3)]);
       REGB4 = TAG_Char(UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB3)]);
-      /* ./../lib/standard//string.nit:201 */
+      /* ../lib/standard/string.nit:201 */
       REGB5 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB4));
       if (UNTAG_Bool(REGB5)) {
       } else {
-        /* ./../lib/standard//kernel.nit:378 */
+        /* ../lib/standard/kernel.nit:378 */
         REGB4 = TAG_Bool((REGB2)==(REGB4));
-        /* ./../lib/standard//string.nit:201 */
+        /* ../lib/standard/string.nit:201 */
         REGB5 = REGB4;
       }
       REGB5 = TAG_Bool(!UNTAG_Bool(REGB5));
@@ -991,19 +991,19 @@ val_t standard___string___String_____eqeq(val_t p0, val_t p1){
         REGB0 = REGB5;
         goto label1;
       }
-      /* ./../lib/standard//string.nit:202 */
+      /* ../lib/standard/string.nit:202 */
       REGB5 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
-      /* ./../lib/standard//string.nit:202 */
+      /* ../lib/standard/string.nit:202 */
       REGB3 = REGB5;
     } else {
-      /* ./../lib/standard//string.nit:200 */
+      /* ../lib/standard/string.nit:200 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//string.nit:204 */
+  /* ../lib/standard/string.nit:204 */
   REGB3 = TAG_Bool(true);
   REGB0 = REGB3;
   goto label1;
@@ -1037,9 +1037,9 @@ val_t standard___string___String_____l(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___string, 0);
   }
-  /* ./../lib/standard//string.nit:209 */
+  /* ../lib/standard/string.nit:209 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -1052,62 +1052,62 @@ val_t standard___string___String_____l(val_t p0, val_t p1){
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//string.nit:212 */
+  /* ../lib/standard/string.nit:212 */
   REGB3 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB3)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 212);
   }
   fra.me.REG[0] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:213 */
+  /* ../lib/standard/string.nit:213 */
   REGB3 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB3)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 213);
   }
   fra.me.REG[1] = ATTR_standard___string___AbstractString____items(fra.me.REG[1]);
-  /* ./../lib/standard//string.nit:214 */
+  /* ../lib/standard/string.nit:214 */
   while(1) {
     REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//string.nit:214 */
+    /* ../lib/standard/string.nit:214 */
     if (UNTAG_Bool(REGB3)) {
       REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB3)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
     } else {
-      /* ./../lib/standard//string.nit:214 */
+      /* ../lib/standard/string.nit:214 */
       REGB4 = TAG_Bool(false);
       REGB3 = REGB4;
     }
     if (UNTAG_Bool(REGB3)) {
-      /* ./../lib/standard//string.nit:593 */
+      /* ../lib/standard/string.nit:595 */
       REGB3 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]);
-      /* ./../lib/standard//kernel.nit:413 */
+      /* ../lib/standard/kernel.nit:413 */
       REGB3 = TAG_Int((unsigned char)UNTAG_Char(REGB3));
-      /* ./../lib/standard//string.nit:593 */
+      /* ../lib/standard/string.nit:595 */
       REGB4 = TAG_Char(UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB0)]);
-      /* ./../lib/standard//kernel.nit:413 */
+      /* ../lib/standard/kernel.nit:413 */
       REGB4 = TAG_Int((unsigned char)UNTAG_Char(REGB4));
       REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB5)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
-      /* ./../lib/standard//string.nit:217 */
+      /* ../lib/standard/string.nit:217 */
       if (UNTAG_Bool(REGB5)) {
-        /* ./../lib/standard//string.nit:218 */
+        /* ../lib/standard/string.nit:218 */
         REGB5 = TAG_Bool(true);
         goto label1;
       } else {
@@ -1116,24 +1116,24 @@ val_t standard___string___String_____l(val_t p0, val_t p1){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB3));
-        /* ./../lib/standard//string.nit:219 */
+        /* ../lib/standard/string.nit:219 */
         if (UNTAG_Bool(REGB3)) {
-          /* ./../lib/standard//string.nit:220 */
+          /* ../lib/standard/string.nit:220 */
           REGB3 = TAG_Bool(false);
           REGB5 = REGB3;
           goto label1;
         }
       }
-      /* ./../lib/standard//string.nit:222 */
+      /* ../lib/standard/string.nit:222 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//string.nit:222 */
+      /* ../lib/standard/string.nit:222 */
       REGB0 = REGB3;
     } else {
-      /* ./../lib/standard//string.nit:214 */
+      /* ../lib/standard/string.nit:214 */
       goto label2;
     }
   }
@@ -1143,16 +1143,16 @@ val_t standard___string___String_____l(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-  /* ./../lib/standard//string.nit:224 */
+  /* ../lib/standard/string.nit:224 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//string.nit:225 */
+    /* ../lib/standard/string.nit:225 */
     REGB2 = TAG_Bool(true);
     REGB5 = REGB2;
     goto label1;
   } else {
-    /* ./../lib/standard//string.nit:227 */
+    /* ../lib/standard/string.nit:227 */
     REGB2 = TAG_Bool(false);
     REGB5 = REGB2;
     goto label1;
@@ -1178,7 +1178,7 @@ val_t standard___string___String_____plus(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1191,15 +1191,15 @@ val_t standard___string___String_____plus(val_t p0, val_t p1){
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./../lib/standard//string.nit:234 */
+  /* ../lib/standard/string.nit:234 */
   fra.me.REG[2] = NEW_Buffer_standard___string___Buffer___with_capacity(REGB1);
-  /* ./../lib/standard//string.nit:235 */
+  /* ../lib/standard/string.nit:235 */
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:236 */
+  /* ../lib/standard/string.nit:236 */
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./../lib/standard//string.nit:237 */
+  /* ../lib/standard/string.nit:237 */
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   goto label1;
   label1: while(0);
@@ -1223,32 +1223,32 @@ val_t standard___string___String_____star(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//string.nit:243 */
+  /* ../lib/standard/string.nit:243 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//string.nit:243 */
+  /* ../lib/standard/string.nit:243 */
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_standard___string, 243);
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//kernel.nit:238 */
+  /* ../lib/standard/kernel.nit:238 */
   REGB1 = TAG_Int(UNTAG_Int(REGB1)*UNTAG_Int(REGB0));
-  /* ./../lib/standard//string.nit:244 */
+  /* ../lib/standard/string.nit:244 */
   fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___with_capacity(REGB1);
-  /* ./../lib/standard//string.nit:245 */
+  /* ../lib/standard/string.nit:245 */
   while(1) {
     REGB1 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -1256,25 +1256,25 @@ val_t standard___string___String_____star(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-    /* ./../lib/standard//string.nit:245 */
+    /* ../lib/standard/string.nit:245 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//string.nit:246 */
+      /* ../lib/standard/string.nit:246 */
       CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-      /* ./../lib/standard//string.nit:247 */
+      /* ../lib/standard/string.nit:247 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-      /* ./../lib/standard//string.nit:247 */
+      /* ../lib/standard/string.nit:247 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//string.nit:245 */
+      /* ../lib/standard/string.nit:245 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//string.nit:249 */
+  /* ../lib/standard/string.nit:249 */
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   goto label2;
   label2: while(0);
@@ -1293,7 +1293,7 @@ val_t standard___string___String___to_s(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:252 */
+  /* ../lib/standard/string.nit:252 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -1315,9 +1315,9 @@ val_t standard___string___String___hash(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:257 */
+  /* ../lib/standard/string.nit:257 */
   REGB0 = TAG_Int(5381);
-  /* ./../lib/standard//string.nit:258 */
+  /* ../lib/standard/string.nit:258 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -1325,16 +1325,16 @@ val_t standard___string___String___hash(val_t p0){
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
   REGB2 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-  /* ./../lib/standard//string.nit:259 */
+  /* ../lib/standard/string.nit:259 */
   REGB1 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 259);
   }
   fra.me.REG[0] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:260 */
+  /* ../lib/standard/string.nit:260 */
   while(1) {
     REGB1 = TAG_Int(0);
     REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
@@ -1342,42 +1342,60 @@ val_t standard___string___String___hash(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB1));
-    /* ./../lib/standard//string.nit:260 */
+    /* ../lib/standard/string.nit:260 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//string.nit:261 */
+      /* ../lib/standard/string.nit:261 */
       REGB1 = TAG_Int(32);
-      /* ./../lib/standard//kernel.nit:238 */
+      /* ../lib/standard/kernel.nit:238 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)*UNTAG_Int(REGB1));
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
-      /* ./../lib/standard//string.nit:593 */
+      /* ../lib/standard/string.nit:595 */
       REGB3 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB2)]);
-      /* ./../lib/standard//kernel.nit:413 */
+      /* ../lib/standard/kernel.nit:413 */
       REGB3 = TAG_Int((unsigned char)UNTAG_Char(REGB3));
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//string.nit:261 */
+      /* ../lib/standard/string.nit:261 */
       REGB0 = REGB3;
-      /* ./../lib/standard//string.nit:262 */
+      /* ../lib/standard/string.nit:262 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
-      /* ./../lib/standard//string.nit:262 */
+      /* ../lib/standard/string.nit:262 */
       REGB2 = REGB3;
     } else {
-      /* ./../lib/standard//string.nit:260 */
+      /* ../lib/standard/string.nit:260 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//string.nit:264 */
+  /* ../lib/standard/string.nit:264 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+val_t standard___string___String___to_f(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_standard___string;
+  fra.me.line = 268;
+  fra.me.meth = LOCATE_standard___string___String___to_f;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* ../lib/standard/string.nit:268 */
+  fra.me.REG[0] = String_to_f___out(fra.me.REG[0]);
+  ;
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
 void standard___string___Buffer_____braeq(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1387,7 +1405,7 @@ void standard___string___Buffer_____braeq(val_t p0, val_t p1, val_t p2){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 278;
+  fra.me.line = 280;
   fra.me.meth = LOCATE_standard___string___Buffer_____braeq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -1396,40 +1414,40 @@ void standard___string___Buffer_____braeq(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   REGB0 = p1;
   REGB1 = p2;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:280 */
+  /* ../lib/standard/string.nit:282 */
   REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
   if (UNTAG_Bool(REGB3)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB2 = TAG_Bool((REGB0)==(REGB2));
-    /* ./../lib/standard//string.nit:280 */
+    /* ../lib/standard/string.nit:282 */
     REGB3 = REGB2;
   }
   if (UNTAG_Bool(REGB3)) {
-    /* ./../lib/standard//string.nit:281 */
+    /* ../lib/standard/string.nit:283 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], REGB1);
-    /* ./../lib/standard//string.nit:282 */
+    /* ../lib/standard/string.nit:284 */
     goto label1;
   }
-  /* ./../lib/standard//string.nit:284 */
+  /* ../lib/standard/string.nit:286 */
   REGB3 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB3 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB3));
-  /* ./../lib/standard//string.nit:284 */
+  /* ../lib/standard/string.nit:286 */
   if (UNTAG_Bool(REGB3)) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB3)) {
     } else {
@@ -1441,25 +1459,25 @@ void standard___string___Buffer_____braeq(val_t p0, val_t p1, val_t p2){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
   } else {
-    /* ./../lib/standard//string.nit:284 */
+    /* ../lib/standard/string.nit:286 */
     REGB2 = TAG_Bool(false);
     REGB3 = REGB2;
   }
   if (UNTAG_Bool(REGB3)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_standard___string, 284);
+    nit_abort("Assert failed", NULL, LOCATE_standard___string, 286);
   }
-  /* ./../lib/standard//string.nit:285 */
+  /* ../lib/standard/string.nit:287 */
   REGB3 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB3)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 285);
+    nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 287);
   }
   fra.me.REG[0] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:594 */
+  /* ../lib/standard/string.nit:596 */
   UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]=UNTAG_Char(REGB1);;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -1474,7 +1492,7 @@ void standard___string___Buffer___add(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 288;
+  fra.me.line = 290;
   fra.me.meth = LOCATE_standard___string___Buffer___add;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -1483,14 +1501,14 @@ void standard___string___Buffer___add(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//string.nit:290 */
+  /* ../lib/standard/string.nit:292 */
   REGB1 = TAG_Bool(ATTR_standard___string___Buffer____capacity(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___string, 290);
+    nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___string, 292);
   }
   REGB1 = ATTR_standard___string___Buffer____capacity(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -1502,46 +1520,46 @@ void standard___string___Buffer___add(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:231 */
+  /* ../lib/standard/kernel.nit:231 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB1)<=UNTAG_Int(REGB2));
-  /* ./../lib/standard//string.nit:290 */
+  /* ../lib/standard/string.nit:292 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-    /* ./../lib/standard//string.nit:290 */
+    /* ../lib/standard/string.nit:292 */
     REGB1 = TAG_Int(5);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB1 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1));
-    /* ./../lib/standard//string.nit:290 */
+    /* ../lib/standard/string.nit:292 */
     CALL_standard___collection___array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB1);
   }
-  /* ./../lib/standard//string.nit:291 */
+  /* ../lib/standard/string.nit:293 */
   REGB1 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 291);
+    nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 293);
   }
   fra.me.REG[1] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:594 */
+  /* ../lib/standard/string.nit:596 */
   UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB1)]=UNTAG_Char(REGB0);;
-  /* ./../lib/standard//string.nit:292 */
+  /* ../lib/standard/string.nit:294 */
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./../lib/standard//string.nit:292 */
+  /* ../lib/standard/string.nit:294 */
   ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB1;
   stack_frame_head = fra.me.prev;
   return;
@@ -1555,7 +1573,7 @@ void standard___string___Buffer___enlarge(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 295;
+  fra.me.line = 297;
   fra.me.meth = LOCATE_standard___string___Buffer___enlarge;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1565,11 +1583,11 @@ void standard___string___Buffer___enlarge(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//string.nit:297 */
+  /* ../lib/standard/string.nit:299 */
   REGB1 = TAG_Bool(ATTR_standard___string___Buffer____capacity(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___string, 297);
+    nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___string, 299);
   }
   REGB1 = ATTR_standard___string___Buffer____capacity(fra.me.REG[0]);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -1577,65 +1595,65 @@ void standard___string___Buffer___enlarge(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:231 */
+  /* ../lib/standard/kernel.nit:231 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1));
-  /* ./../lib/standard//string.nit:298 */
+  /* ../lib/standard/string.nit:300 */
   if (UNTAG_Bool(REGB2)) {
     goto label1;
   }
-  /* ./../lib/standard//string.nit:299 */
+  /* ../lib/standard/string.nit:301 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:231 */
+    /* ../lib/standard/kernel.nit:231 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<=UNTAG_Int(REGB0));
-    /* ./../lib/standard//string.nit:299 */
+    /* ../lib/standard/string.nit:301 */
     if (UNTAG_Bool(REGB2)) {
       REGB2 = TAG_Int(2);
-      /* ./../lib/standard//kernel.nit:238 */
+      /* ../lib/standard/kernel.nit:238 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)*UNTAG_Int(REGB2));
-      /* ./../lib/standard//string.nit:299 */
+      /* ../lib/standard/string.nit:301 */
       REGB3 = TAG_Int(2);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//string.nit:299 */
+      /* ../lib/standard/string.nit:301 */
       REGB1 = REGB3;
     } else {
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//string.nit:300 */
+  /* ../lib/standard/string.nit:302 */
   REGB0 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
-  /* ./../lib/standard//string.nit:609 */
+  /* ../lib/standard/string.nit:611 */
   fra.me.REG[1] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB0) * sizeof(char))));
-  /* ./../lib/standard//string.nit:301 */
+  /* ../lib/standard/string.nit:303 */
   REGB0 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 301);
+    nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 303);
   }
   fra.me.REG[2] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:301 */
+  /* ../lib/standard/string.nit:303 */
   REGB3 = TAG_Int(0);
   REGB2 = TAG_Int(0);
-  /* ./../lib/standard//string.nit:595 */
+  /* ../lib/standard/string.nit:597 */
   (void)memcpy(UNBOX_NativeString(fra.me.REG[1])+UNTAG_Int(REGB2), UNBOX_NativeString(fra.me.REG[2])+UNTAG_Int(REGB3), UNTAG_Int(REGB0));;
-  /* ./../lib/standard//string.nit:302 */
+  /* ../lib/standard/string.nit:304 */
   ATTR_standard___string___AbstractString____items(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//string.nit:303 */
+  /* ../lib/standard/string.nit:305 */
   ATTR_standard___string___Buffer____capacity(fra.me.REG[0]) = REGB1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -1650,7 +1668,7 @@ void standard___string___Buffer___append(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 306;
+  fra.me.line = 308;
   fra.me.meth = LOCATE_standard___string___Buffer___append;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -1662,82 +1680,82 @@ void standard___string___Buffer___append(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//string.nit:306 */
+  /* ../lib/standard/string.nit:308 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./../lib/standard//string.nit:308 */
+  /* ../lib/standard/string.nit:310 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_standard___string___String, ID_standard___string___String)) /*cast String*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-    /* ./../lib/standard//string.nit:310 */
+    /* ../lib/standard/string.nit:312 */
     REGB1 = TAG_Bool(ATTR_standard___string___Buffer____capacity(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___string, 310);
+      nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___string, 312);
     }
     REGB1 = ATTR_standard___string___Buffer____capacity(fra.me.REG[2]);
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB2 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
     REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//string.nit:310 */
+    /* ../lib/standard/string.nit:312 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
       }
       REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
-      /* ./../lib/standard//string.nit:310 */
+      /* ../lib/standard/string.nit:312 */
       CALL_standard___collection___array___AbstractArray___enlarge(fra.me.REG[2])(fra.me.REG[2], REGB2);
     }
-    /* ./../lib/standard//string.nit:311 */
+    /* ../lib/standard/string.nit:313 */
     fra.me.REG[3] = CALL_standard___string___AbstractString___items(fra.me.REG[3])(fra.me.REG[3]);
     REGB2 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 311);
+      nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 313);
     }
     fra.me.REG[4] = ATTR_standard___string___AbstractString____items(fra.me.REG[2]);
     REGB2 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-    /* ./../lib/standard//string.nit:595 */
+    /* ../lib/standard/string.nit:597 */
     (void)memcpy(UNBOX_NativeString(fra.me.REG[4])+UNTAG_Int(REGB1), UNBOX_NativeString(fra.me.REG[3])+UNTAG_Int(REGB2), UNTAG_Int(REGB0));;
-    /* ./../lib/standard//string.nit:312 */
+    /* ../lib/standard/string.nit:314 */
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
-    /* ./../lib/standard//string.nit:312 */
+    /* ../lib/standard/string.nit:314 */
     ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]) = REGB0;
   } else {
-    /* ./../lib/standard//string.nit:314 */
+    /* ../lib/standard/string.nit:316 */
     CALL_SUPER_standard___string___Buffer___append(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   }
   stack_frame_head = fra.me.prev;
@@ -1751,7 +1769,7 @@ val_t standard___string___Buffer___to_s(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 318;
+  fra.me.line = 320;
   fra.me.meth = LOCATE_standard___string___Buffer___to_s;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1760,49 +1778,49 @@ val_t standard___string___Buffer___to_s(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:321 */
+  /* ../lib/standard/string.nit:323 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./../lib/standard//string.nit:609 */
+  /* ../lib/standard/string.nit:611 */
   fra.me.REG[1] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB1) * sizeof(char))));
-  /* ./../lib/standard//string.nit:322 */
+  /* ../lib/standard/string.nit:324 */
   REGB1 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 322);
+    nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 324);
   }
   fra.me.REG[2] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Int(0);
-  /* ./../lib/standard//string.nit:595 */
+  /* ../lib/standard/string.nit:597 */
   (void)memcpy(UNBOX_NativeString(fra.me.REG[1])+UNTAG_Int(REGB2), UNBOX_NativeString(fra.me.REG[2])+UNTAG_Int(REGB1), UNTAG_Int(REGB0));;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:325 */
+  /* ../lib/standard/string.nit:327 */
   REGB1 = TAG_Char('\0');
-  /* ./../lib/standard//string.nit:594 */
+  /* ../lib/standard/string.nit:596 */
   UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB2)]=UNTAG_Char(REGB1);;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:327 */
+  /* ../lib/standard/string.nit:329 */
   fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB1);
   goto label1;
   label1: while(0);
@@ -1821,7 +1839,7 @@ val_t standard___string___Buffer_____l(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 330;
+  fra.me.line = 332;
   fra.me.meth = LOCATE_standard___string___Buffer_____l;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -1835,9 +1853,9 @@ val_t standard___string___Buffer_____l(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___string, 0);
   }
-  /* ./../lib/standard//string.nit:332 */
+  /* ../lib/standard/string.nit:334 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -1850,48 +1868,48 @@ val_t standard___string___Buffer_____l(val_t p0, val_t p1){
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//string.nit:335 */
+  /* ../lib/standard/string.nit:337 */
   while(1) {
     REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//string.nit:335 */
+    /* ../lib/standard/string.nit:337 */
     if (UNTAG_Bool(REGB3)) {
       REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB3)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
     } else {
-      /* ./../lib/standard//string.nit:335 */
+      /* ../lib/standard/string.nit:337 */
       REGB4 = TAG_Bool(false);
       REGB3 = REGB4;
     }
     if (UNTAG_Bool(REGB3)) {
-      /* ./../lib/standard//string.nit:336 */
+      /* ../lib/standard/string.nit:338 */
       REGB3 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
-      /* ./../lib/standard//kernel.nit:413 */
+      /* ../lib/standard/kernel.nit:413 */
       REGB3 = TAG_Int((unsigned char)UNTAG_Char(REGB3));
-      /* ./../lib/standard//string.nit:337 */
+      /* ../lib/standard/string.nit:339 */
       REGB4 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB0);
-      /* ./../lib/standard//kernel.nit:413 */
+      /* ../lib/standard/kernel.nit:413 */
       REGB4 = TAG_Int((unsigned char)UNTAG_Char(REGB4));
       REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB5)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
-      /* ./../lib/standard//string.nit:338 */
+      /* ../lib/standard/string.nit:340 */
       if (UNTAG_Bool(REGB5)) {
-        /* ./../lib/standard//string.nit:339 */
+        /* ../lib/standard/string.nit:341 */
         REGB5 = TAG_Bool(true);
         goto label1;
       } else {
@@ -1900,24 +1918,24 @@ val_t standard___string___Buffer_____l(val_t p0, val_t p1){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB3));
-        /* ./../lib/standard//string.nit:340 */
+        /* ../lib/standard/string.nit:342 */
         if (UNTAG_Bool(REGB3)) {
-          /* ./../lib/standard//string.nit:341 */
+          /* ../lib/standard/string.nit:343 */
           REGB3 = TAG_Bool(false);
           REGB5 = REGB3;
           goto label1;
         }
       }
-      /* ./../lib/standard//string.nit:343 */
+      /* ../lib/standard/string.nit:345 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//string.nit:343 */
+      /* ../lib/standard/string.nit:345 */
       REGB0 = REGB3;
     } else {
-      /* ./../lib/standard//string.nit:335 */
+      /* ../lib/standard/string.nit:337 */
       goto label2;
     }
   }
@@ -1927,16 +1945,16 @@ val_t standard___string___Buffer_____l(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-  /* ./../lib/standard//string.nit:345 */
+  /* ../lib/standard/string.nit:347 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//string.nit:346 */
+    /* ../lib/standard/string.nit:348 */
     REGB2 = TAG_Bool(true);
     REGB5 = REGB2;
     goto label1;
   } else {
-    /* ./../lib/standard//string.nit:348 */
+    /* ../lib/standard/string.nit:350 */
     REGB2 = TAG_Bool(false);
     REGB5 = REGB2;
     goto label1;
@@ -1953,14 +1971,14 @@ void standard___string___Buffer___init(val_t p0, int* init_table){
   if (init_table[itpos2]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 352;
+  fra.me.line = 354;
   fra.me.meth = LOCATE_standard___string___Buffer___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:355 */
+  /* ../lib/standard/string.nit:357 */
   REGB0 = TAG_Int(5);
   CALL_standard___string___Buffer___with_capacity(fra.me.REG[0])(fra.me.REG[0], REGB0, init_table);
   stack_frame_head = fra.me.prev;
@@ -1977,7 +1995,7 @@ void standard___string___Buffer___from(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos3]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 358;
+  fra.me.line = 360;
   fra.me.meth = LOCATE_standard___string___Buffer___from;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1987,60 +2005,57 @@ void standard___string___Buffer___from(val_t p0, val_t p1, int* init_table){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//string.nit:358 */
-  fra.me.REG[2] = fra.me.REG[0];
-  CALL_standard___string___StringCapable___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//string.nit:360 */
+  /* ../lib/standard/string.nit:362 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./../lib/standard//string.nit:360 */
-  ATTR_standard___string___Buffer____capacity(fra.me.REG[2]) = REGB1;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/string.nit:362 */
+  ATTR_standard___string___Buffer____capacity(fra.me.REG[0]) = REGB1;
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//string.nit:361 */
-  ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]) = REGB1;
-  /* ./../lib/standard//string.nit:362 */
-  REGB1 = TAG_Bool(ATTR_standard___string___Buffer____capacity(fra.me.REG[2])!=NIT_NULL);
+  /* ../lib/standard/string.nit:363 */
+  ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB1;
+  /* ../lib/standard/string.nit:364 */
+  REGB1 = TAG_Bool(ATTR_standard___string___Buffer____capacity(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___string, 362);
+    nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___string, 364);
   }
-  REGB1 = ATTR_standard___string___Buffer____capacity(fra.me.REG[2]);
-  /* ./../lib/standard//string.nit:609 */
-  fra.me.REG[0] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB1) * sizeof(char))));
-  /* ./../lib/standard//string.nit:362 */
-  ATTR_standard___string___AbstractString____items(fra.me.REG[2]) = fra.me.REG[0];
-  /* ./../lib/standard//string.nit:363 */
+  REGB1 = ATTR_standard___string___Buffer____capacity(fra.me.REG[0]);
+  /* ../lib/standard/string.nit:611 */
+  fra.me.REG[2] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB1) * sizeof(char))));
+  /* ../lib/standard/string.nit:364 */
+  ATTR_standard___string___AbstractString____items(fra.me.REG[0]) = fra.me.REG[2];
+  /* ../lib/standard/string.nit:365 */
   fra.me.REG[1] = CALL_standard___string___AbstractString___items(fra.me.REG[1])(fra.me.REG[1]);
-  REGB1 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[2])!=NIT_NULL);
+  REGB1 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 363);
+    nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 365);
   }
-  fra.me.REG[0] = ATTR_standard___string___AbstractString____items(fra.me.REG[2]);
-  REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
+  fra.me.REG[2] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
+  REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___string, 363);
+    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___string, 365);
   }
-  REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
+  REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
   REGB0 = TAG_Int(0);
   REGB2 = TAG_Int(0);
-  /* ./../lib/standard//string.nit:595 */
-  (void)memcpy(UNBOX_NativeString(fra.me.REG[0])+UNTAG_Int(REGB2), UNBOX_NativeString(fra.me.REG[1])+UNTAG_Int(REGB0), UNTAG_Int(REGB1));;
+  /* ../lib/standard/string.nit:597 */
+  (void)memcpy(UNBOX_NativeString(fra.me.REG[2])+UNTAG_Int(REGB2), UNBOX_NativeString(fra.me.REG[1])+UNTAG_Int(REGB0), UNTAG_Int(REGB1));;
   stack_frame_head = fra.me.prev;
   init_table[itpos3] = 1;
   return;
@@ -2055,7 +2070,7 @@ void standard___string___Buffer___with_capacity(val_t p0, val_t p1, int* init_ta
   if (init_table[itpos4]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 366;
+  fra.me.line = 368;
   fra.me.meth = LOCATE_standard___string___Buffer___with_capacity;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2064,36 +2079,33 @@ void standard___string___Buffer___with_capacity(val_t p0, val_t p1, int* init_ta
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//string.nit:366 */
-  fra.me.REG[1] = fra.me.REG[0];
-  CALL_standard___string___StringCapable___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./../lib/standard//string.nit:369 */
+  /* ../lib/standard/string.nit:371 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//string.nit:369 */
+  /* ../lib/standard/string.nit:371 */
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_standard___string, 369);
+    nit_abort("Assert failed", NULL, LOCATE_standard___string, 371);
   }
-  /* ./../lib/standard//string.nit:371 */
+  /* ../lib/standard/string.nit:373 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./../lib/standard//string.nit:609 */
-  fra.me.REG[0] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB1) * sizeof(char))));
-  /* ./../lib/standard//string.nit:371 */
-  ATTR_standard___string___AbstractString____items(fra.me.REG[1]) = fra.me.REG[0];
-  /* ./../lib/standard//string.nit:372 */
-  ATTR_standard___string___Buffer____capacity(fra.me.REG[1]) = REGB0;
-  /* ./../lib/standard//string.nit:373 */
+  /* ../lib/standard/string.nit:611 */
+  fra.me.REG[1] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB1) * sizeof(char))));
+  /* ../lib/standard/string.nit:373 */
+  ATTR_standard___string___AbstractString____items(fra.me.REG[0]) = fra.me.REG[1];
+  /* ../lib/standard/string.nit:374 */
+  ATTR_standard___string___Buffer____capacity(fra.me.REG[0]) = REGB0;
+  /* ../lib/standard/string.nit:375 */
   REGB0 = TAG_Int(0);
-  ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]) = REGB0;
+  ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   init_table[itpos4] = 1;
   return;
@@ -2109,7 +2121,7 @@ val_t standard___string___Buffer_____eqeq(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 376;
+  fra.me.line = 378;
   fra.me.meth = LOCATE_standard___string___Buffer_____eqeq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2118,7 +2130,7 @@ val_t standard___string___Buffer_____eqeq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//string.nit:378 */
+  /* ../lib/standard/string.nit:380 */
   REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_standard___string___Buffer, ID_standard___string___Buffer)) /*cast Buffer*/;
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
@@ -2131,32 +2143,32 @@ val_t standard___string___Buffer_____eqeq(val_t p0, val_t p1){
     REGB0 = TAG_Bool(false);
     goto label1;
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:380 */
+  /* ../lib/standard/string.nit:382 */
   REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
-    nit_abort("Reciever is null", NULL, LOCATE_standard___string, 380);
+    nit_abort("Reciever is null", NULL, LOCATE_standard___string, 382);
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//string.nit:380 */
+  /* ../lib/standard/string.nit:382 */
   REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
   if (UNTAG_Bool(REGB3)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB2 = TAG_Bool((REGB2)==(REGB1));
-    /* ./../lib/standard//string.nit:380 */
+    /* ../lib/standard/string.nit:382 */
     REGB3 = REGB2;
   }
   REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
@@ -2165,43 +2177,43 @@ val_t standard___string___Buffer_____eqeq(val_t p0, val_t p1){
     REGB0 = REGB3;
     goto label1;
   }
-  /* ./../lib/standard//string.nit:381 */
+  /* ../lib/standard/string.nit:383 */
   REGB3 = TAG_Int(0);
-  /* ./../lib/standard//string.nit:382 */
+  /* ../lib/standard/string.nit:384 */
   REGB2 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 382);
+    nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 384);
   }
   fra.me.REG[0] = ATTR_standard___string___AbstractString____items(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:383 */
+  /* ../lib/standard/string.nit:385 */
   REGB2 = TAG_Bool(ATTR_standard___string___AbstractString____items(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 383);
+    nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___string, 385);
   }
   fra.me.REG[1] = ATTR_standard___string___AbstractString____items(fra.me.REG[1]);
-  /* ./../lib/standard//string.nit:384 */
+  /* ../lib/standard/string.nit:386 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//string.nit:384 */
+    /* ../lib/standard/string.nit:386 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//string.nit:593 */
+      /* ../lib/standard/string.nit:595 */
       REGB2 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB3)]);
       REGB4 = TAG_Char(UNBOX_NativeString(fra.me.REG[1])[UNTAG_Int(REGB3)]);
-      /* ./../lib/standard//string.nit:385 */
+      /* ../lib/standard/string.nit:387 */
       REGB5 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB4));
       if (UNTAG_Bool(REGB5)) {
       } else {
-        /* ./../lib/standard//kernel.nit:378 */
+        /* ../lib/standard/kernel.nit:378 */
         REGB4 = TAG_Bool((REGB2)==(REGB4));
-        /* ./../lib/standard//string.nit:385 */
+        /* ../lib/standard/string.nit:387 */
         REGB5 = REGB4;
       }
       REGB5 = TAG_Bool(!UNTAG_Bool(REGB5));
@@ -2210,19 +2222,19 @@ val_t standard___string___Buffer_____eqeq(val_t p0, val_t p1){
         REGB0 = REGB5;
         goto label1;
       }
-      /* ./../lib/standard//string.nit:386 */
+      /* ../lib/standard/string.nit:388 */
       REGB5 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
-      /* ./../lib/standard//string.nit:386 */
+      /* ../lib/standard/string.nit:388 */
       REGB3 = REGB5;
     } else {
-      /* ./../lib/standard//string.nit:384 */
+      /* ../lib/standard/string.nit:386 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//string.nit:388 */
+  /* ../lib/standard/string.nit:390 */
   REGB3 = TAG_Bool(true);
   REGB0 = REGB3;
   goto label1;
@@ -2236,18 +2248,18 @@ val_t standard___string___Buffer___capacity(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 391;
+  fra.me.line = 393;
   fra.me.meth = LOCATE_standard___string___Buffer___capacity;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:391 */
+  /* ../lib/standard/string.nit:393 */
   REGB0 = TAG_Bool(ATTR_standard___string___Buffer____capacity(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___string, 391);
+    nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___string, 393);
   }
   REGB0 = ATTR_standard___string___Buffer____capacity(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2258,14 +2270,14 @@ val_t standard___string___Object___to_s(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 401;
+  fra.me.line = 403;
   fra.me.meth = LOCATE_standard___string___Object___to_s;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:402 */
+  /* ../lib/standard/string.nit:404 */
   fra.me.REG[0] = CALL_standard___string___Object___inspect(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -2277,14 +2289,14 @@ val_t standard___string___Object___native_class_name(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 404;
+  fra.me.line = 406;
   fra.me.meth = LOCATE_standard___string___Object___native_class_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:404 */
+  /* ../lib/standard/string.nit:406 */
   fra.me.REG[0] = BOX_NativeString(VAL2VFT(fra.me.REG[0])[2].cname);;
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -2294,14 +2306,14 @@ val_t standard___string___Object___class_name(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 407;
+  fra.me.line = 409;
   fra.me.meth = LOCATE_standard___string___Object___class_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:409 */
+  /* ../lib/standard/string.nit:411 */
   fra.me.REG[0] = CALL_standard___string___Object___native_class_name(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = NEW_String_standard___string___String___from_cstring(fra.me.REG[0]);
   goto label1;
@@ -2317,7 +2329,7 @@ val_t standard___string___Object___inspect(val_t p0){
   static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 411;
+  fra.me.line = 413;
   fra.me.meth = LOCATE_standard___string___Object___inspect;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2326,7 +2338,7 @@ val_t standard___string___Object___inspect(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:415 */
+  /* ../lib/standard/string.nit:417 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2364,7 +2376,7 @@ val_t standard___string___Object___inspect_head(val_t p0){
   static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 418;
+  fra.me.line = 420;
   fra.me.meth = LOCATE_standard___string___Object___inspect_head;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2373,7 +2385,7 @@ val_t standard___string___Object___inspect_head(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:422 */
+  /* ../lib/standard/string.nit:424 */
   REGB0 = TAG_Int(5);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2419,14 +2431,14 @@ val_t standard___string___Object___args(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 425;
+  fra.me.line = 427;
   fra.me.meth = LOCATE_standard___string___Object___args;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:427 */
+  /* ../lib/standard/string.nit:429 */
   fra.me.REG[0] = CALL_standard___kernel___Object___sys(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___string___Object___args(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -2444,7 +2456,7 @@ val_t standard___string___Bool___to_s(val_t p0){
       static val_t once_value_5; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 432;
+  fra.me.line = 434;
   fra.me.meth = LOCATE_standard___string___Bool___to_s;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2452,9 +2464,9 @@ val_t standard___string___Bool___to_s(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   REGB0 = p0;
-  /* ./../lib/standard//string.nit:434 */
+  /* ../lib/standard/string.nit:436 */
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//string.nit:435 */
+    /* ../lib/standard/string.nit:437 */
     if (!once_value_1) {
       if (!once_value_2) {
         fra.me.REG[0] = BOX_NativeString("true");
@@ -2470,7 +2482,7 @@ val_t standard___string___Bool___to_s(val_t p0){
     fra.me.REG[0] = fra.me.REG[0];
     goto label3;
   } else {
-    /* ./../lib/standard//string.nit:437 */
+    /* ../lib/standard/string.nit:439 */
     if (!once_value_4) {
       if (!once_value_5) {
         fra.me.REG[1] = BOX_NativeString("false");
@@ -2501,7 +2513,7 @@ void standard___string___Int___fill_buffer(val_t p0, val_t p1, val_t p2, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 443;
+  fra.me.line = 445;
   fra.me.meth = LOCATE_standard___string___Int___fill_buffer;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -2511,52 +2523,52 @@ void standard___string___Int___fill_buffer(val_t p0, val_t p1, val_t p2, val_t p
   fra.me.REG[0] = p1;
   REGB1 = p2;
   REGB2 = p3;
-  /* ./../lib/standard//string.nit:449 */
+  /* ../lib/standard/string.nit:451 */
   REGB2 = TAG_Int(0);
   REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB3)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
-  /* ./../lib/standard//string.nit:449 */
+  /* ../lib/standard/string.nit:451 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:236 */
     REGB2 = TAG_Int(-UNTAG_Int(REGB0));
-    /* ./../lib/standard//string.nit:451 */
+    /* ../lib/standard/string.nit:453 */
     REGB3 = TAG_Int(0);
     REGB4 = TAG_Char('-');
     CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB3, REGB4);
   } else {
-    /* ./../lib/standard//string.nit:452 */
+    /* ../lib/standard/string.nit:454 */
     REGB4 = TAG_Int(0);
     REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB4));
     if (UNTAG_Bool(REGB3)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB4 = TAG_Bool((REGB0)==(REGB4));
-      /* ./../lib/standard//string.nit:452 */
+      /* ../lib/standard/string.nit:454 */
       REGB3 = REGB4;
     }
     if (UNTAG_Bool(REGB3)) {
-      /* ./../lib/standard//string.nit:453 */
+      /* ../lib/standard/string.nit:455 */
       REGB3 = TAG_Int(0);
       REGB4 = TAG_Char('0');
       CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB3, REGB4);
-      /* ./../lib/standard//string.nit:454 */
+      /* ../lib/standard/string.nit:456 */
       goto label1;
     } else {
-      /* ./../lib/standard//string.nit:456 */
+      /* ../lib/standard/string.nit:458 */
       REGB2 = REGB0;
     }
   }
-  /* ./../lib/standard//string.nit:459 */
+  /* ../lib/standard/string.nit:461 */
   REGB0 = CALL_standard___kernel___Int___digit_count(REGB0)(REGB0, REGB1);
   REGB4 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB4 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB4));
-  /* ./../lib/standard//string.nit:460 */
+  /* ../lib/standard/string.nit:462 */
   while(1) {
     REGB0 = TAG_Int(0);
     REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
@@ -2564,9 +2576,9 @@ void standard___string___Int___fill_buffer(val_t p0, val_t p1, val_t p2, val_t p
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB0));
-    /* ./../lib/standard//string.nit:460 */
+    /* ../lib/standard/string.nit:462 */
     if (UNTAG_Bool(REGB0)) {
       REGB0 = TAG_Int(0);
       REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
@@ -2574,31 +2586,31 @@ void standard___string___Int___fill_buffer(val_t p0, val_t p1, val_t p2, val_t p
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:234 */
+      /* ../lib/standard/kernel.nit:234 */
       REGB0 = TAG_Bool(UNTAG_Int(REGB2)>UNTAG_Int(REGB0));
     } else {
-      /* ./../lib/standard//string.nit:460 */
+      /* ../lib/standard/string.nit:462 */
       REGB3 = TAG_Bool(false);
       REGB0 = REGB3;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//kernel.nit:240 */
+      /* ../lib/standard/kernel.nit:240 */
       REGB0 = TAG_Int(UNTAG_Int(REGB2)%UNTAG_Int(REGB1));
-      /* ./../lib/standard//string.nit:461 */
+      /* ../lib/standard/string.nit:463 */
       REGB0 = CALL_standard___kernel___Int___to_c(REGB0)(REGB0);
       CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB4, REGB0);
-      /* ./../lib/standard//kernel.nit:239 */
+      /* ../lib/standard/kernel.nit:239 */
       REGB0 = TAG_Int(UNTAG_Int(REGB2)/UNTAG_Int(REGB1));
-      /* ./../lib/standard//string.nit:462 */
+      /* ../lib/standard/string.nit:464 */
       REGB2 = REGB0;
-      /* ./../lib/standard//string.nit:463 */
+      /* ../lib/standard/string.nit:465 */
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB0 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB0));
-      /* ./../lib/standard//string.nit:463 */
+      /* ../lib/standard/string.nit:465 */
       REGB4 = REGB0;
     } else {
-      /* ./../lib/standard//string.nit:460 */
+      /* ../lib/standard/string.nit:462 */
       goto label2;
     }
   }
@@ -2615,14 +2627,14 @@ val_t standard___string___Int___to_s(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 467;
+  fra.me.line = 469;
   fra.me.meth = LOCATE_standard___string___Int___to_s;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./../lib/standard//string.nit:468 */
+  /* ../lib/standard/string.nit:470 */
   REGB1 = TAG_Int(10);
   REGB2 = TAG_Bool(true);
   fra.me.REG[0] = CALL_standard___string___Int___to_base(REGB0)(REGB0, REGB1, REGB2);
@@ -2639,14 +2651,14 @@ val_t standard___string___Int___to_hex(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 470;
+  fra.me.line = 472;
   fra.me.meth = LOCATE_standard___string___Int___to_hex;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./../lib/standard//string.nit:471 */
+  /* ../lib/standard/string.nit:473 */
   REGB1 = TAG_Int(16);
   REGB2 = TAG_Bool(false);
   fra.me.REG[0] = CALL_standard___string___Int___to_base(REGB0)(REGB0, REGB1, REGB2);
@@ -2666,7 +2678,7 @@ val_t standard___string___Int___to_base(val_t p0, val_t p1, val_t p2){
   static val_t once_value_1; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 473;
+  fra.me.line = 475;
   fra.me.meth = LOCATE_standard___string___Int___to_base;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -2675,9 +2687,9 @@ val_t standard___string___Int___to_base(val_t p0, val_t p1, val_t p2){
   REGB0 = p0;
   REGB1 = p1;
   REGB2 = p2;
-  /* ./../lib/standard//string.nit:476 */
+  /* ../lib/standard/string.nit:478 */
   REGB3 = CALL_standard___kernel___Int___digit_count(REGB0)(REGB0, REGB1);
-  /* ./../lib/standard//string.nit:477 */
+  /* ../lib/standard/string.nit:479 */
   if (!once_value_1) {
     fra.me.REG[0] = BOX_NativeString(" ");
     REGB4 = TAG_Int(1);
@@ -2688,9 +2700,9 @@ val_t standard___string___Int___to_base(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = fra.me.REG[0];
   fra.me.REG[0] = CALL_standard___string___String_____star(fra.me.REG[0])(fra.me.REG[0], REGB3);
   fra.me.REG[0] = NEW_Buffer_standard___string___Buffer___from(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:478 */
+  /* ../lib/standard/string.nit:480 */
   CALL_standard___string___Int___fill_buffer(REGB0)(REGB0, fra.me.REG[0], REGB1, REGB2);
-  /* ./../lib/standard//string.nit:479 */
+  /* ../lib/standard/string.nit:481 */
   fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
   goto label2;
   label2: while(0);
@@ -2703,14 +2715,14 @@ val_t standard___string___Float___to_s(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 484;
+  fra.me.line = 486;
   fra.me.meth = LOCATE_standard___string___Float___to_s;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:484 */
+  /* ../lib/standard/string.nit:486 */
   REGB0 = TAG_Int(6);
   fra.me.REG[0] = CALL_standard___string___Float___to_precision(fra.me.REG[0])(fra.me.REG[0], REGB0);
   goto label1;
@@ -2730,7 +2742,7 @@ val_t standard___string___Float___to_precision(val_t p0, val_t p1){
   static val_t once_value_5; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 486;
+  fra.me.line = 488;
   fra.me.meth = LOCATE_standard___string___Float___to_precision;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -2741,28 +2753,28 @@ val_t standard___string___Float___to_precision(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//string.nit:489 */
+  /* ../lib/standard/string.nit:491 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./../lib/standard//string.nit:489 */
+    /* ../lib/standard/string.nit:491 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//kernel.nit:216 */
+    /* ../lib/standard/kernel.nit:216 */
     REGB2 = TAG_Int((bigint)UNBOX_Float(fra.me.REG[0]));
-    /* ./../lib/standard//string.nit:489 */
+    /* ../lib/standard/string.nit:491 */
     fra.me.REG[1] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
     goto label1;
   }
-  /* ./../lib/standard//kernel.nit:216 */
+  /* ../lib/standard/kernel.nit:216 */
   REGB2 = TAG_Int((bigint)UNBOX_Float(fra.me.REG[0]));
-  /* ./../lib/standard//string.nit:492 */
+  /* ../lib/standard/string.nit:494 */
   fra.me.REG[2] = BOX_Float(1.0);
-  /* ./../lib/standard//string.nit:493 */
+  /* ../lib/standard/string.nit:495 */
   while(1) {
     REGB1 = TAG_Int(0);
     REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -2770,37 +2782,37 @@ val_t standard___string___Float___to_precision(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-    /* ./../lib/standard//string.nit:493 */
+    /* ../lib/standard/string.nit:495 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//string.nit:494 */
+      /* ../lib/standard/string.nit:496 */
       fra.me.REG[3] = BOX_Float(10.0);
-      /* ./../lib/standard//kernel.nit:213 */
+      /* ../lib/standard/kernel.nit:213 */
       fra.me.REG[3] = BOX_Float(UNBOX_Float(fra.me.REG[2])*UNBOX_Float(fra.me.REG[3]));
-      /* ./../lib/standard//string.nit:494 */
+      /* ../lib/standard/string.nit:496 */
       fra.me.REG[2] = fra.me.REG[3];
-      /* ./../lib/standard//string.nit:495 */
+      /* ../lib/standard/string.nit:497 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-      /* ./../lib/standard//string.nit:495 */
+      /* ../lib/standard/string.nit:497 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//string.nit:493 */
+      /* ../lib/standard/string.nit:495 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//kernel.nit:244 */
+  /* ../lib/standard/kernel.nit:244 */
   fra.me.REG[3] = BOX_Float((float)UNTAG_Int(REGB2));
-  /* ./../lib/standard//kernel.nit:212 */
+  /* ../lib/standard/kernel.nit:212 */
   fra.me.REG[3] = BOX_Float(UNBOX_Float(fra.me.REG[0])-UNBOX_Float(fra.me.REG[3]));
-  /* ./../lib/standard//kernel.nit:213 */
+  /* ../lib/standard/kernel.nit:213 */
   fra.me.REG[2] = BOX_Float(UNBOX_Float(fra.me.REG[3])*UNBOX_Float(fra.me.REG[2]));
-  /* ./../lib/standard//kernel.nit:216 */
+  /* ../lib/standard/kernel.nit:216 */
   REGB0 = TAG_Int((bigint)UNBOX_Float(fra.me.REG[2]));
-  /* ./../lib/standard//string.nit:498 */
+  /* ../lib/standard/string.nit:500 */
   REGB1 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
   if (!once_value_3) {
@@ -2848,20 +2860,20 @@ val_t standard___string___Char___to_s(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 503;
+  fra.me.line = 505;
   fra.me.meth = LOCATE_standard___string___Char___to_s;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./../lib/standard//string.nit:505 */
+  /* ../lib/standard/string.nit:507 */
   REGB1 = TAG_Int(1);
   fra.me.REG[0] = NEW_Buffer_standard___string___Buffer___with_capacity(REGB1);
-  /* ./../lib/standard//string.nit:506 */
+  /* ../lib/standard/string.nit:508 */
   REGB1 = TAG_Int(0);
   CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB1, REGB0);
-  /* ./../lib/standard//string.nit:507 */
+  /* ../lib/standard/string.nit:509 */
   fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -2873,7 +2885,7 @@ val_t standard___string___Collection___to_s(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 512;
+  fra.me.line = 514;
   fra.me.meth = LOCATE_standard___string___Collection___to_s;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2881,10 +2893,10 @@ val_t standard___string___Collection___to_s(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:515 */
+  /* ../lib/standard/string.nit:517 */
   fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___init();
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_standard___string___Collection___to_s_1));
-  /* ./../lib/standard//string.nit:517 */
+  /* ../lib/standard/string.nit:519 */
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   goto label2;
   label2: while(0);
@@ -2897,7 +2909,7 @@ val_t standard___string___Collection___to_s(val_t p0){
     val_t REGB1;
     fun_t CREG[1];
     val_t tmp;
-    /* ./../lib/standard//string.nit:516 */
+    /* ../lib/standard/string.nit:518 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_standard___string;
     fra.me.line = 0;
@@ -2926,7 +2938,7 @@ val_t standard___string___Collection___to_s(val_t p0){
     if (UNTAG_Bool(REGB0)) {
       REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_standard___string, 516);
+        nit_abort("Reciever is null", NULL, LOCATE_standard___string, 518);
       }
       fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
       CALL_standard___collection___abstract_collection___Sequence___append(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
@@ -2942,7 +2954,7 @@ val_t standard___string___Collection___join(val_t p0, val_t p1){
     static val_t once_value_1; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 520;
+  fra.me.line = 522;
   fra.me.meth = LOCATE_standard___string___Collection___join;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -2955,7 +2967,7 @@ val_t standard___string___Collection___join(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//string.nit:523 */
+  /* ../lib/standard/string.nit:525 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
     if (!once_value_1) {
@@ -2968,13 +2980,13 @@ val_t standard___string___Collection___join(val_t p0, val_t p1){
     fra.me.REG[2] = fra.me.REG[2];
     goto label2;
   }
-  /* ./../lib/standard//string.nit:525 */
+  /* ../lib/standard/string.nit:527 */
   fra.me.REG[3] = NEW_Buffer_standard___string___Buffer___init();
-  /* ./../lib/standard//string.nit:528 */
+  /* ../lib/standard/string.nit:530 */
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:529 */
+  /* ../lib/standard/string.nit:531 */
   fra.me.REG[4] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:530 */
+  /* ../lib/standard/string.nit:532 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2991,23 +3003,23 @@ val_t standard___string___Collection___join(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_standard___string, 530);
+      nit_abort("Reciever is null", NULL, LOCATE_standard___string, 532);
     }
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
   }
-  /* ./../lib/standard//string.nit:533 */
+  /* ../lib/standard/string.nit:535 */
   CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:534 */
+  /* ../lib/standard/string.nit:536 */
   while(1) {
     REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//string.nit:535 */
+      /* ../lib/standard/string.nit:537 */
       CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-      /* ./../lib/standard//string.nit:536 */
+      /* ../lib/standard/string.nit:538 */
       fra.me.REG[5] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[4] = fra.me.REG[5];
-      /* ./../lib/standard//string.nit:537 */
+      /* ../lib/standard/string.nit:539 */
       REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -3024,20 +3036,20 @@ val_t standard___string___Collection___join(val_t p0, val_t p1){
       if (UNTAG_Bool(REGB0)) {
         REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
-          nit_abort("Reciever is null", NULL, LOCATE_standard___string, 537);
+          nit_abort("Reciever is null", NULL, LOCATE_standard___string, 539);
         }
         fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
         CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
       }
-      /* ./../lib/standard//string.nit:538 */
+      /* ../lib/standard/string.nit:540 */
       CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
     } else {
-      /* ./../lib/standard//string.nit:534 */
+      /* ../lib/standard/string.nit:536 */
       goto label3;
     }
   }
   label3: while(0);
-  /* ./../lib/standard//string.nit:540 */
+  /* ../lib/standard/string.nit:542 */
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[2] = fra.me.REG[3];
   goto label2;
@@ -3055,7 +3067,7 @@ val_t standard___string___Array___to_s(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 545;
+  fra.me.line = 547;
   fra.me.meth = LOCATE_standard___string___Array___to_s;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3064,41 +3076,41 @@ val_t standard___string___Array___to_s(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:548 */
+  /* ../lib/standard/string.nit:550 */
   fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___init();
-  /* ./../lib/standard//string.nit:549 */
+  /* ../lib/standard/string.nit:551 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:551 */
+  /* ../lib/standard/string.nit:553 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//string.nit:551 */
+    /* ../lib/standard/string.nit:553 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       fra.me.REG[2] = fra.me.REG[0];
       REGB2 = REGB0;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB3 = TAG_Int(0);
       REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB4)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB3)) {
         REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
@@ -3111,29 +3123,29 @@ val_t standard___string___Array___to_s(val_t p0){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB4 = TAG_Bool(false);
         REGB3 = REGB4;
       }
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
       REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB2)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label1;
       label1: while(0);
-      /* ./../lib/standard//string.nit:553 */
+      /* ../lib/standard/string.nit:555 */
       REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -3150,24 +3162,24 @@ val_t standard___string___Array___to_s(val_t p0){
       if (UNTAG_Bool(REGB2)) {
         REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
-          nit_abort("Reciever is null", NULL, LOCATE_standard___string, 553);
+          nit_abort("Reciever is null", NULL, LOCATE_standard___string, 555);
         }
         fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
         CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
       }
-      /* ./../lib/standard//string.nit:554 */
+      /* ../lib/standard/string.nit:556 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//string.nit:554 */
+      /* ../lib/standard/string.nit:556 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//string.nit:551 */
+      /* ../lib/standard/string.nit:553 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//string.nit:556 */
+  /* ../lib/standard/string.nit:558 */
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   goto label3;
   label3: while(0);
@@ -3190,7 +3202,7 @@ val_t standard___string___Map___join(val_t p0, val_t p1, val_t p2){
         static val_t once_value_10; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 561;
+  fra.me.line = 563;
   fra.me.meth = LOCATE_standard___string___Map___join;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -3207,7 +3219,7 @@ val_t standard___string___Map___join(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/standard//string.nit:564 */
+  /* ../lib/standard/string.nit:566 */
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___is_empty(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
     if (!once_value_1) {
@@ -3220,15 +3232,15 @@ val_t standard___string___Map___join(val_t p0, val_t p1, val_t p2){
     fra.me.REG[3] = fra.me.REG[3];
     goto label2;
   }
-  /* ./../lib/standard//string.nit:566 */
+  /* ../lib/standard/string.nit:568 */
   fra.me.REG[4] = NEW_Buffer_standard___string___Buffer___init();
-  /* ./../lib/standard//string.nit:569 */
+  /* ../lib/standard/string.nit:571 */
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:570 */
+  /* ../lib/standard/string.nit:572 */
   fra.me.REG[5] = CALL_standard___collection___abstract_collection___MapIterator___key(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:571 */
+  /* ../lib/standard/string.nit:573 */
   fra.me.REG[6] = CALL_standard___collection___abstract_collection___MapIterator___item(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:572 */
+  /* ../lib/standard/string.nit:574 */
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3289,21 +3301,21 @@ val_t standard___string___Map___join(val_t p0, val_t p1, val_t p2){
     fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
   }
-  /* ./../lib/standard//string.nit:575 */
+  /* ../lib/standard/string.nit:577 */
   CALL_standard___collection___abstract_collection___MapIterator___next(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:576 */
+  /* ../lib/standard/string.nit:578 */
   while(1) {
     REGB0 = CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//string.nit:577 */
+      /* ../lib/standard/string.nit:579 */
       CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
-      /* ./../lib/standard//string.nit:578 */
+      /* ../lib/standard/string.nit:580 */
       fra.me.REG[7] = CALL_standard___collection___abstract_collection___MapIterator___key(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[5] = fra.me.REG[7];
-      /* ./../lib/standard//string.nit:579 */
+      /* ../lib/standard/string.nit:581 */
       fra.me.REG[7] = CALL_standard___collection___abstract_collection___MapIterator___item(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[6] = fra.me.REG[7];
-      /* ./../lib/standard//string.nit:580 */
+      /* ../lib/standard/string.nit:582 */
       REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -3364,15 +3376,15 @@ val_t standard___string___Map___join(val_t p0, val_t p1, val_t p2){
         fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
         CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
       }
-      /* ./../lib/standard//string.nit:581 */
+      /* ../lib/standard/string.nit:583 */
       CALL_standard___collection___abstract_collection___MapIterator___next(fra.me.REG[0])(fra.me.REG[0]);
     } else {
-      /* ./../lib/standard//string.nit:576 */
+      /* ../lib/standard/string.nit:578 */
       goto label11;
     }
   }
   label11: while(0);
-  /* ./../lib/standard//string.nit:583 */
+  /* ../lib/standard/string.nit:585 */
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[3] = fra.me.REG[4];
   goto label2;
@@ -3386,7 +3398,7 @@ val_t standard___string___NativeString_____bra(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 593;
+  fra.me.line = 595;
   fra.me.meth = LOCATE_standard___string___NativeString_____bra;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -3394,7 +3406,7 @@ val_t standard___string___NativeString_____bra(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//string.nit:593 */
+  /* ../lib/standard/string.nit:595 */
   REGB0 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -3406,7 +3418,7 @@ void standard___string___NativeString_____braeq(val_t p0, val_t p1, val_t p2){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 594;
+  fra.me.line = 596;
   fra.me.meth = LOCATE_standard___string___NativeString_____braeq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -3415,7 +3427,7 @@ void standard___string___NativeString_____braeq(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   REGB0 = p1;
   REGB1 = p2;
-  /* ./../lib/standard//string.nit:594 */
+  /* ../lib/standard/string.nit:596 */
   UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]=UNTAG_Char(REGB1);;
   stack_frame_head = fra.me.prev;
   return;
@@ -3428,7 +3440,7 @@ void standard___string___NativeString___copy_to(val_t p0, val_t p1, val_t p2, va
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 595;
+  fra.me.line = 597;
   fra.me.meth = LOCATE_standard___string___NativeString___copy_to;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -3440,7 +3452,7 @@ void standard___string___NativeString___copy_to(val_t p0, val_t p1, val_t p2, va
   REGB0 = p2;
   REGB1 = p3;
   REGB2 = p4;
-  /* ./../lib/standard//string.nit:595 */
+  /* ../lib/standard/string.nit:597 */
   (void)memcpy(UNBOX_NativeString(fra.me.REG[1])+UNTAG_Int(REGB2), UNBOX_NativeString(fra.me.REG[0])+UNTAG_Int(REGB1), UNTAG_Int(REGB0));;
   stack_frame_head = fra.me.prev;
   return;
@@ -3454,42 +3466,42 @@ val_t standard___string___NativeString___cstring_length(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 597;
+  fra.me.line = 599;
   fra.me.meth = LOCATE_standard___string___NativeString___cstring_length;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:600 */
+  /* ../lib/standard/string.nit:602 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//string.nit:601 */
+  /* ../lib/standard/string.nit:603 */
   while(1) {
-    /* ./../lib/standard//string.nit:593 */
+    /* ../lib/standard/string.nit:595 */
     REGB1 = TAG_Char(UNBOX_NativeString(fra.me.REG[0])[UNTAG_Int(REGB0)]);
-    /* ./../lib/standard//string.nit:601 */
+    /* ../lib/standard/string.nit:603 */
     REGB2 = TAG_Char('\0');
     REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
     if (UNTAG_Bool(REGB3)) {
     } else {
-      /* ./../lib/standard//kernel.nit:378 */
+      /* ../lib/standard/kernel.nit:378 */
       REGB2 = TAG_Bool((REGB1)==(REGB2));
-      /* ./../lib/standard//string.nit:601 */
+      /* ../lib/standard/string.nit:603 */
       REGB3 = REGB2;
     }
     REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
     if (UNTAG_Bool(REGB3)) {
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//string.nit:601 */
+      /* ../lib/standard/string.nit:603 */
       REGB0 = REGB3;
     } else {
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//string.nit:602 */
+  /* ../lib/standard/string.nit:604 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -3501,14 +3513,14 @@ val_t standard___string___NativeString___atoi(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 604;
+  fra.me.line = 606;
   fra.me.meth = LOCATE_standard___string___NativeString___atoi;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:604 */
+  /* ../lib/standard/string.nit:606 */
   REGB0 = TAG_Int(atoi(UNBOX_NativeString(fra.me.REG[0])));
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -3535,7 +3547,7 @@ val_t standard___string___StringCapable___calloc_string(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 609;
+  fra.me.line = 611;
   fra.me.meth = LOCATE_standard___string___StringCapable___calloc_string;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -3543,27 +3555,11 @@ val_t standard___string___StringCapable___calloc_string(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//string.nit:609 */
+  /* ../lib/standard/string.nit:611 */
   fra.me.REG[0] = BOX_NativeString((char*)raw_alloc((UNTAG_Int(REGB0) * sizeof(char))));
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-void standard___string___StringCapable___init(val_t p0, int* init_table){
-  int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___string___StringCapable].i;
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  if (init_table[itpos6]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_standard___string;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_standard___string___StringCapable___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-  init_table[itpos6] = 1;
-  return;
-}
 val_t standard___string___Sys___args(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
@@ -3571,7 +3567,7 @@ val_t standard___string___Sys___args(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 615;
+  fra.me.line = 617;
   fra.me.meth = LOCATE_standard___string___Sys___args;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3580,9 +3576,9 @@ val_t standard___string___Sys___args(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:615 */
+  /* ../lib/standard/string.nit:617 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./../lib/standard//string.nit:617 */
+  /* ../lib/standard/string.nit:619 */
   fra.me.REG[2] = ATTR_standard___string___Sys____args_cache(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -3599,12 +3595,12 @@ val_t standard___string___Sys___args(val_t p0){
   if (UNTAG_Bool(REGB0)) {
     CALL_standard___string___Sys___init_args(fra.me.REG[1])(fra.me.REG[1]);
   }
-  /* ./../lib/standard//string.nit:618 */
+  /* ../lib/standard/string.nit:620 */
   fra.me.REG[1] = ATTR_standard___string___Sys____args_cache(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_standard___string, 618);
+    nit_abort("Cast failed", NULL, LOCATE_standard___string, 620);
   }
   goto label1;
   label1: while(0);
@@ -3617,14 +3613,14 @@ val_t standard___string___Sys___program_name(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 621;
+  fra.me.line = 623;
   fra.me.meth = LOCATE_standard___string___Sys___program_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:624 */
+  /* ../lib/standard/string.nit:626 */
   REGB0 = TAG_Int(0);
   fra.me.REG[0] = CALL_standard___string___Sys___native_argv(fra.me.REG[0])(fra.me.REG[0], REGB0);
   fra.me.REG[0] = NEW_String_standard___string___String___from_cstring(fra.me.REG[0]);
@@ -3641,7 +3637,7 @@ void standard___string___Sys___init_args(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 627;
+  fra.me.line = 629;
   fra.me.meth = LOCATE_standard___string___Sys___init_args;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3650,45 +3646,45 @@ void standard___string___Sys___init_args(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:630 */
+  /* ../lib/standard/string.nit:632 */
   REGB0 = CALL_standard___string___Sys___native_argc(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//string.nit:631 */
+  /* ../lib/standard/string.nit:633 */
   REGB1 = TAG_Int(0);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-  /* ./../lib/standard//string.nit:632 */
+  /* ../lib/standard/string.nit:634 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//string.nit:633 */
+  /* ../lib/standard/string.nit:635 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-    /* ./../lib/standard//string.nit:633 */
+    /* ../lib/standard/string.nit:635 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//string.nit:634 */
+      /* ../lib/standard/string.nit:636 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-      /* ./../lib/standard//string.nit:634 */
+      /* ../lib/standard/string.nit:636 */
       fra.me.REG[2] = CALL_standard___string___Sys___native_argv(fra.me.REG[0])(fra.me.REG[0], REGB1);
       fra.me.REG[2] = NEW_String_standard___string___String___from_cstring(fra.me.REG[2]);
       CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB2, fra.me.REG[2]);
-      /* ./../lib/standard//string.nit:635 */
+      /* ../lib/standard/string.nit:637 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//string.nit:635 */
+      /* ../lib/standard/string.nit:637 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//string.nit:633 */
+      /* ../lib/standard/string.nit:635 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//string.nit:637 */
+  /* ../lib/standard/string.nit:639 */
   ATTR_standard___string___Sys____args_cache(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -3699,14 +3695,14 @@ val_t standard___string___Sys___native_argc(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 640;
+  fra.me.line = 642;
   fra.me.meth = LOCATE_standard___string___Sys___native_argc;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string.nit:640 */
+  /* ../lib/standard/string.nit:642 */
   REGB0 = Sys_native_argc___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
@@ -3717,7 +3713,7 @@ val_t standard___string___Sys___native_argv(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___string;
-  fra.me.line = 642;
+  fra.me.line = 644;
   fra.me.meth = LOCATE_standard___string___Sys___native_argv;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -3725,7 +3721,7 @@ val_t standard___string___Sys___native_argv(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//string.nit:642 */
+  /* ../lib/standard/string.nit:644 */
   fra.me.REG[0] = Sys_native_argv___out(fra.me.REG[0], REGB0);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
index 26382e4..2baf927 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/standard/string. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/standard/string. */
 #ifndef standard___string_sep
 #define standard___string_sep
 #include "standard___collection._sep.h"
@@ -42,6 +42,7 @@ extern const int SFT_standard___string[];
 #define CALL_standard___string___String___to_cstring(recv) ((standard___string___String___to_cstring_t)CALL((recv), (SFT_standard___string[6] + 3)))
 #define CALL_standard___string___String_____plus(recv) ((standard___string___String_____plus_t)CALL((recv), (SFT_standard___string[6] + 4)))
 #define CALL_standard___string___String_____star(recv) ((standard___string___String_____star_t)CALL((recv), (SFT_standard___string[6] + 5)))
+#define CALL_standard___string___String___to_f(recv) ((standard___string___String___to_f_t)CALL((recv), (SFT_standard___string[6] + 6)))
 #define ID_standard___string___Buffer (SFT_standard___string[7])
 #define COLOR_standard___string___Buffer (SFT_standard___string[8])
 #define ATTR_standard___string___Buffer____capacity(recv) ATTR(recv, (SFT_standard___string[9] + 0))
@@ -76,7 +77,6 @@ extern const int SFT_standard___string[];
 #define COLOR_standard___string___StringCapable (SFT_standard___string[20])
 #define INIT_TABLE_POS_standard___string___StringCapable (SFT_standard___string[21] + 0)
 #define CALL_standard___string___StringCapable___calloc_string(recv) ((standard___string___StringCapable___calloc_string_t)CALL((recv), (SFT_standard___string[21] + 1)))
-#define CALL_standard___string___StringCapable___init(recv) ((standard___string___StringCapable___init_t)CALL((recv), (SFT_standard___string[21] + 2)))
 #define ATTR_standard___string___Sys____args_cache(recv) ATTR(recv, (SFT_standard___string[22] + 0))
 #define CALL_standard___string___Sys___program_name(recv) ((standard___string___Sys___program_name_t)CALL((recv), (SFT_standard___string[23] + 0)))
 #define CALL_standard___string___Sys___init_args(recv) ((standard___string___Sys___init_args_t)CALL((recv), (SFT_standard___string[23] + 1)))
@@ -160,6 +160,9 @@ typedef val_t (*standard___string___String___to_s_t)(val_t p0);
 static const char * const LOCATE_standard___string___String___hash = "string::String::(hash::Object::hash)";
 val_t standard___string___String___hash(val_t p0);
 typedef val_t (*standard___string___String___hash_t)(val_t p0);
+static const char * const LOCATE_standard___string___String___to_f = "string::String::to_f";
+val_t standard___string___String___to_f(val_t p0);
+typedef val_t (*standard___string___String___to_f_t)(val_t p0);
 static const char * const LOCATE_standard___string___Buffer_____braeq = "string::Buffer::(abstract_collection::Sequence::[]=)";
 void standard___string___Buffer_____braeq(val_t p0, val_t p1, val_t p2);
 typedef void (*standard___string___Buffer_____braeq_t)(val_t p0, val_t p1, val_t p2);
@@ -280,10 +283,6 @@ val_t NEW_NativeString_standard___string___NativeString___init();
 static const char * const LOCATE_standard___string___StringCapable___calloc_string = "string::StringCapable::calloc_string";
 val_t standard___string___StringCapable___calloc_string(val_t p0, val_t p1);
 typedef val_t (*standard___string___StringCapable___calloc_string_t)(val_t p0, val_t p1);
-static const char * const LOCATE_standard___string___StringCapable___init = "string::StringCapable::init";
-void standard___string___StringCapable___init(val_t p0, int* init_table);
-typedef void (*standard___string___StringCapable___init_t)(val_t p0, int* init_table);
-val_t NEW_StringCapable_standard___string___StringCapable___init();
 static const char * const LOCATE_standard___string___Sys___args = "string::Sys::(string::Object::args)";
 val_t standard___string___Sys___args(val_t p0);
 typedef val_t (*standard___string___Sys___args_t)(val_t p0);
index 98bf698..ce93f5c 100644 (file)
@@ -10,7 +10,7 @@ val_t standard___string_search___Pattern___search_index_in(val_t p0, val_t p1, v
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//string_search.nit:21 */
+  /* ../lib/standard/string_search.nit:21 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___string_search, 21);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -25,7 +25,7 @@ val_t standard___string_search___Pattern___search_in(val_t p0, val_t p1, val_t p
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//string_search.nit:26 */
+  /* ../lib/standard/string_search.nit:26 */
   nit_abort("Deferred method called", NULL, LOCATE_standard___string_search, 26);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -49,12 +49,12 @@ val_t standard___string_search___Pattern___search_all_in(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//string_search.nit:33 */
+  /* ../lib/standard/string_search.nit:33 */
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-  /* ./../lib/standard//string_search.nit:34 */
+  /* ../lib/standard/string_search.nit:34 */
   REGB0 = TAG_Int(0);
   fra.me.REG[3] = CALL_standard___string_search___Pattern___search_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
-  /* ./../lib/standard//string_search.nit:35 */
+  /* ../lib/standard/string_search.nit:35 */
   while(1) {
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -70,9 +70,9 @@ val_t standard___string_search___Pattern___search_all_in(val_t p0, val_t p1){
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//string_search.nit:36 */
+      /* ../lib/standard/string_search.nit:36 */
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-      /* ./../lib/standard//string_search.nit:37 */
+      /* ../lib/standard/string_search.nit:37 */
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___string_search, 37);
@@ -81,12 +81,12 @@ val_t standard___string_search___Pattern___search_all_in(val_t p0, val_t p1){
       fra.me.REG[4] = CALL_standard___string_search___Pattern___search_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
       fra.me.REG[3] = fra.me.REG[4];
     } else {
-      /* ./../lib/standard//string_search.nit:35 */
+      /* ../lib/standard/string_search.nit:35 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//string_search.nit:39 */
+  /* ../lib/standard/string_search.nit:39 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -112,14 +112,14 @@ val_t standard___string_search___Pattern___split_in(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//string_search.nit:45 */
+  /* ../lib/standard/string_search.nit:45 */
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-  /* ./../lib/standard//string_search.nit:46 */
+  /* ../lib/standard/string_search.nit:46 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//string_search.nit:47 */
+  /* ../lib/standard/string_search.nit:47 */
   REGB1 = TAG_Int(0);
   fra.me.REG[3] = CALL_standard___string_search___Pattern___search_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB1);
-  /* ./../lib/standard//string_search.nit:48 */
+  /* ../lib/standard/string_search.nit:48 */
   while(1) {
     REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -135,46 +135,46 @@ val_t standard___string_search___Pattern___split_in(val_t p0, val_t p1){
     }
     REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//string_search.nit:50 */
+      /* ../lib/standard/string_search.nit:50 */
       REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___string_search, 50);
       }
       REGB1 = CALL_standard___string_search___Match___from(fra.me.REG[3])(fra.me.REG[3]);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB1 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
-      /* ./../lib/standard//string_search.nit:51 */
+      /* ../lib/standard/string_search.nit:51 */
       fra.me.REG[4] = NEW_Match_standard___string_search___Match___init(fra.me.REG[1], REGB0, REGB1);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-      /* ./../lib/standard//string_search.nit:52 */
+      /* ../lib/standard/string_search.nit:52 */
       REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___string_search, 52);
       }
       REGB1 = CALL_standard___string_search___Match___after(fra.me.REG[3])(fra.me.REG[3]);
       REGB0 = REGB1;
-      /* ./../lib/standard//string_search.nit:53 */
+      /* ../lib/standard/string_search.nit:53 */
       fra.me.REG[4] = CALL_standard___string_search___Pattern___search_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
       fra.me.REG[3] = fra.me.REG[4];
     } else {
-      /* ./../lib/standard//string_search.nit:48 */
+      /* ../lib/standard/string_search.nit:48 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
-  /* ./../lib/standard//string_search.nit:56 */
+  /* ../lib/standard/string_search.nit:56 */
   fra.me.REG[1] = NEW_Match_standard___string_search___Match___init(fra.me.REG[1], REGB0, REGB1);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./../lib/standard//string_search.nit:57 */
+  /* ../lib/standard/string_search.nit:57 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -193,7 +193,7 @@ val_t standard___string_search___BM_Pattern___to_s(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string_search.nit:68 */
+  /* ../lib/standard/string_search.nit:68 */
   REGB0 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -229,56 +229,56 @@ val_t standard___string_search___BM_Pattern___search_index_in(val_t p0, val_t p1
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   REGB0 = p2;
-  /* ./../lib/standard//string_search.nit:73 */
+  /* ../lib/standard/string_search.nit:73 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//string_search.nit:73 */
+  /* ../lib/standard/string_search.nit:73 */
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_standard___string_search, 73);
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//string_search.nit:75 */
+  /* ../lib/standard/string_search.nit:75 */
   REGB2 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___string_search, 75);
   }
   REGB2 = ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0]);
-  /* ./../lib/standard//string_search.nit:78 */
+  /* ../lib/standard/string_search.nit:78 */
   while(1) {
-    /* ./../lib/standard//kernel.nit:237 */
+    /* ../lib/standard/kernel.nit:237 */
     REGB3 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-    /* ./../lib/standard//string_search.nit:78 */
+    /* ../lib/standard/string_search.nit:78 */
     REGB4 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
     REGB3 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB4 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB4));
-    /* ./../lib/standard//string_search.nit:78 */
+    /* ../lib/standard/string_search.nit:78 */
     if (UNTAG_Bool(REGB4)) {
-      /* ./../lib/standard//string_search.nit:79 */
+      /* ../lib/standard/string_search.nit:79 */
       REGB4 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB4 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB4));
-      /* ./../lib/standard//string_search.nit:80 */
+      /* ../lib/standard/string_search.nit:80 */
       while(1) {
         REGB3 = TAG_Int(0);
         REGB5 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
@@ -286,9 +286,9 @@ val_t standard___string_search___BM_Pattern___search_index_in(val_t p0, val_t p1
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB3));
-        /* ./../lib/standard//string_search.nit:80 */
+        /* ../lib/standard/string_search.nit:80 */
         if (UNTAG_Bool(REGB3)) {
           REGB3 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
@@ -297,16 +297,16 @@ val_t standard___string_search___BM_Pattern___search_index_in(val_t p0, val_t p1
           }
           fra.me.REG[2] = ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0]);
           REGB3 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[2])(fra.me.REG[2], REGB4);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB5 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB0));
-          /* ./../lib/standard//string_search.nit:80 */
+          /* ../lib/standard/string_search.nit:80 */
           REGB5 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB5);
           REGB6 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB5));
           if (UNTAG_Bool(REGB6)) {
           } else {
-            /* ./../lib/standard//kernel.nit:378 */
+            /* ../lib/standard/kernel.nit:378 */
             REGB5 = TAG_Bool((REGB3)==(REGB5));
-            /* ./../lib/standard//string_search.nit:80 */
+            /* ../lib/standard/string_search.nit:80 */
             REGB6 = REGB5;
           }
         } else {
@@ -315,49 +315,49 @@ val_t standard___string_search___BM_Pattern___search_index_in(val_t p0, val_t p1
         }
         if (UNTAG_Bool(REGB6)) {
           REGB6 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:237 */
+          /* ../lib/standard/kernel.nit:237 */
           REGB6 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB6));
-          /* ./../lib/standard//string_search.nit:80 */
+          /* ../lib/standard/string_search.nit:80 */
           REGB4 = REGB6;
         } else {
           goto label1;
         }
       }
       label1: while(0);
-      /* ./../lib/standard//string_search.nit:81 */
+      /* ../lib/standard/string_search.nit:81 */
       REGB6 = TAG_Int(0);
       REGB5 = TAG_Bool(VAL_ISA(REGB6, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB5)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB6 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB6));
-      /* ./../lib/standard//string_search.nit:81 */
+      /* ../lib/standard/string_search.nit:81 */
       if (UNTAG_Bool(REGB6)) {
-        /* ./../lib/standard//string_search.nit:82 */
+        /* ../lib/standard/string_search.nit:82 */
         REGB6 = REGB0;
         goto label2;
       } else {
-        /* ./../lib/standard//string_search.nit:84 */
+        /* ../lib/standard/string_search.nit:84 */
         REGB5 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB5)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_gs", LOCATE_standard___string_search, 84);
         }
         fra.me.REG[2] = ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0]);
-        /* ./../lib/standard//collection//array.nit:278 */
+        /* ../lib/standard/collection/array.nit:278 */
         REGB5 = REGB4;
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB3 = TAG_Int(0);
         REGB7 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB7)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB3));
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB3)) {
           REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
@@ -370,40 +370,40 @@ val_t standard___string_search___BM_Pattern___search_index_in(val_t p0, val_t p1
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB3 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB3));
         } else {
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB7 = TAG_Bool(false);
           REGB3 = REGB7;
         }
         if (UNTAG_Bool(REGB3)) {
         } else {
-          nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+          nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
         }
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
         REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB5)];
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         goto label3;
         label3: while(0);
-        /* ./../lib/standard//string_search.nit:84 */
+        /* ../lib/standard/string_search.nit:84 */
         REGB5 = fra.me.REG[2];
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB3 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB0));
-        /* ./../lib/standard//string_search.nit:85 */
+        /* ../lib/standard/string_search.nit:85 */
         REGB3 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB3);
         REGB3 = CALL_standard___string_search___BM_Pattern___bc(fra.me.REG[0])(fra.me.REG[0], REGB3);
-        /* ./../lib/standard//kernel.nit:237 */
+        /* ../lib/standard/kernel.nit:237 */
         REGB3 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB2));
-        /* ./../lib/standard//string_search.nit:85 */
+        /* ../lib/standard/string_search.nit:85 */
         REGB7 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB7 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB7));
         REGB4 = TAG_Int(UNTAG_Int(REGB7)+UNTAG_Int(REGB4));
         REGB7 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
@@ -411,32 +411,32 @@ val_t standard___string_search___BM_Pattern___search_index_in(val_t p0, val_t p1
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:234 */
+        /* ../lib/standard/kernel.nit:234 */
         REGB7 = TAG_Bool(UNTAG_Int(REGB5)>UNTAG_Int(REGB4));
-        /* ./../lib/standard//string_search.nit:87 */
+        /* ../lib/standard/string_search.nit:87 */
         if (UNTAG_Bool(REGB7)) {
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB5 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB5));
-          /* ./../lib/standard//string_search.nit:88 */
+          /* ../lib/standard/string_search.nit:88 */
           REGB0 = REGB5;
         } else {
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB4 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB4));
-          /* ./../lib/standard//string_search.nit:90 */
+          /* ../lib/standard/string_search.nit:90 */
           REGB0 = REGB4;
         }
       }
     } else {
-      /* ./../lib/standard//string_search.nit:78 */
+      /* ../lib/standard/string_search.nit:78 */
       goto label4;
     }
   }
   label4: while(0);
-  /* ./../lib/standard//string_search.nit:94 */
+  /* ../lib/standard/string_search.nit:94 */
   REGB0 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:236 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB0 = TAG_Int(-UNTAG_Int(REGB0));
-  /* ./../lib/standard//string_search.nit:94 */
+  /* ../lib/standard/string_search.nit:94 */
   REGB6 = REGB0;
   goto label2;
   label2: while(0);
@@ -462,24 +462,24 @@ val_t standard___string_search___BM_Pattern___search_in(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   REGB0 = p2;
-  /* ./../lib/standard//string_search.nit:100 */
+  /* ../lib/standard/string_search.nit:100 */
   REGB0 = CALL_standard___string_search___Pattern___search_index_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
-  /* ./../lib/standard//string_search.nit:101 */
+  /* ../lib/standard/string_search.nit:101 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-  /* ./../lib/standard//string_search.nit:101 */
+  /* ../lib/standard/string_search.nit:101 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//string_search.nit:102 */
+    /* ../lib/standard/string_search.nit:102 */
     fra.me.REG[2] = NIT_NULL;
     goto label1;
   } else {
-    /* ./../lib/standard//string_search.nit:104 */
+    /* ../lib/standard/string_search.nit:104 */
     REGB1 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -511,18 +511,18 @@ void standard___string_search___BM_Pattern___init(val_t p0, val_t p1, int* init_
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//string_search.nit:111 */
+  /* ../lib/standard/string_search.nit:111 */
   ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//string_search.nit:112 */
+  /* ../lib/standard/string_search.nit:112 */
   ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0]) = REGB0;
-  /* ./../lib/standard//string_search.nit:113 */
+  /* ../lib/standard/string_search.nit:113 */
   REGB0 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -531,12 +531,12 @@ void standard___string_search___BM_Pattern___init(val_t p0, val_t p1, int* init_
   REGB0 = ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0]);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//string_search.nit:114 */
+  /* ../lib/standard/string_search.nit:114 */
   fra.me.REG[1] = NEW_ArrayMap_standard___collection___array___ArrayMap___init();
   ATTR_standard___string_search___BM_Pattern____bc_table(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//string_search.nit:115 */
+  /* ../lib/standard/string_search.nit:115 */
   CALL_standard___string_search___BM_Pattern___compute_gs(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//string_search.nit:116 */
+  /* ../lib/standard/string_search.nit:116 */
   CALL_standard___string_search___BM_Pattern___compute_bc(fra.me.REG[0])(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -558,7 +558,7 @@ val_t standard___string_search___BM_Pattern___bc(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//string_search.nit:127 */
+  /* ../lib/standard/string_search.nit:127 */
   REGB1 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____bc_table(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -567,7 +567,7 @@ val_t standard___string_search___BM_Pattern___bc(val_t p0, val_t p1){
   fra.me.REG[1] = ATTR_standard___string_search___BM_Pattern____bc_table(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[1])(fra.me.REG[1], REGB0);
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//string_search.nit:128 */
+    /* ../lib/standard/string_search.nit:128 */
     REGB1 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____bc_table(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -578,7 +578,7 @@ val_t standard___string_search___BM_Pattern___bc(val_t p0, val_t p1){
     REGB0 = fra.me.REG[1];
     goto label1;
   } else {
-    /* ./../lib/standard//string_search.nit:130 */
+    /* ../lib/standard/string_search.nit:130 */
     REGB1 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -611,37 +611,37 @@ void standard___string_search___BM_Pattern___compute_bc(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string_search.nit:142 */
+  /* ../lib/standard/string_search.nit:142 */
   REGB0 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_motif", LOCATE_standard___string_search, 142);
   }
   fra.me.REG[1] = ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0]);
-  /* ./../lib/standard//string_search.nit:143 */
+  /* ../lib/standard/string_search.nit:143 */
   REGB0 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___string_search, 143);
   }
   REGB0 = ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0]);
-  /* ./../lib/standard//string_search.nit:144 */
+  /* ../lib/standard/string_search.nit:144 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//string_search.nit:145 */
+  /* ../lib/standard/string_search.nit:145 */
   while(1) {
     REGB2 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:237 */
+    /* ../lib/standard/kernel.nit:237 */
     REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
     REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//string_search.nit:145 */
+    /* ../lib/standard/string_search.nit:145 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//string_search.nit:146 */
+      /* ../lib/standard/string_search.nit:146 */
       REGB2 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____bc_table(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -649,22 +649,22 @@ void standard___string_search___BM_Pattern___compute_bc(val_t p0){
       }
       fra.me.REG[2] = ATTR_standard___string_search___BM_Pattern____bc_table(fra.me.REG[0]);
       REGB2 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB3 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-      /* ./../lib/standard//string_search.nit:146 */
+      /* ../lib/standard/string_search.nit:146 */
       REGB4 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB4 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB4));
-      /* ./../lib/standard//string_search.nit:146 */
+      /* ../lib/standard/string_search.nit:146 */
       CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], REGB2, REGB4);
-      /* ./../lib/standard//string_search.nit:147 */
+      /* ../lib/standard/string_search.nit:147 */
       REGB4 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB4 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB4));
-      /* ./../lib/standard//string_search.nit:147 */
+      /* ../lib/standard/string_search.nit:147 */
       REGB1 = REGB4;
     } else {
-      /* ./../lib/standard//string_search.nit:145 */
+      /* ../lib/standard/string_search.nit:145 */
       goto label1;
     }
   }
@@ -693,33 +693,33 @@ val_t standard___string_search___BM_Pattern___suffixes(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string_search.nit:153 */
+  /* ../lib/standard/string_search.nit:153 */
   REGB0 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_motif", LOCATE_standard___string_search, 153);
   }
   fra.me.REG[1] = ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0]);
-  /* ./../lib/standard//string_search.nit:154 */
+  /* ../lib/standard/string_search.nit:154 */
   REGB0 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___string_search, 154);
   }
   REGB0 = ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0]);
-  /* ./../lib/standard//string_search.nit:155 */
+  /* ../lib/standard/string_search.nit:155 */
   fra.me.REG[0] = NEW_Array_standard___collection___array___Array___filled_with(REGB0, REGB0);
-  /* ./../lib/standard//string_search.nit:157 */
+  /* ../lib/standard/string_search.nit:157 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//string_search.nit:158 */
+  /* ../lib/standard/string_search.nit:158 */
   REGB2 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
-  /* ./../lib/standard//string_search.nit:159 */
+  /* ../lib/standard/string_search.nit:159 */
   REGB3 = TAG_Int(2);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB3 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB3));
-  /* ./../lib/standard//string_search.nit:160 */
+  /* ../lib/standard/string_search.nit:160 */
   while(1) {
     REGB4 = TAG_Int(0);
     REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
@@ -727,38 +727,38 @@ val_t standard___string_search___BM_Pattern___suffixes(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
-    /* ./../lib/standard//string_search.nit:160 */
+    /* ../lib/standard/string_search.nit:160 */
     if (UNTAG_Bool(REGB4)) {
       REGB4 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB4)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:234 */
+      /* ../lib/standard/kernel.nit:234 */
       REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
-      /* ./../lib/standard//string_search.nit:161 */
+      /* ../lib/standard/string_search.nit:161 */
       if (UNTAG_Bool(REGB4)) {
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
-        /* ./../lib/standard//string_search.nit:161 */
+        /* ../lib/standard/string_search.nit:161 */
         REGB5 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:237 */
+        /* ../lib/standard/kernel.nit:237 */
         REGB5 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB5));
         REGB5 = TAG_Int(UNTAG_Int(REGB5)-UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:278 */
+        /* ../lib/standard/collection/array.nit:278 */
         fra.me.REG[2] = fra.me.REG[0];
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB4 = TAG_Int(0);
         REGB6 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB6)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB4)) {
           REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
           if (UNTAG_Bool(REGB4)) {
@@ -771,31 +771,31 @@ val_t standard___string_search___BM_Pattern___suffixes(val_t p0){
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
         } else {
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB6 = TAG_Bool(false);
           REGB4 = REGB6;
         }
         if (UNTAG_Bool(REGB4)) {
         } else {
-          nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+          nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
         }
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
         REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB4)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB5)];
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         goto label1;
         label1: while(0);
-        /* ./../lib/standard//kernel.nit:237 */
+        /* ../lib/standard/kernel.nit:237 */
         REGB5 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB2));
-        /* ./../lib/standard//string_search.nit:161 */
+        /* ../lib/standard/string_search.nit:161 */
         REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB4)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___string_search, 161);
@@ -805,33 +805,33 @@ val_t standard___string_search___BM_Pattern___suffixes(val_t p0){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB5 = TAG_Bool(UNTAG_Int(fra.me.REG[2])<UNTAG_Int(REGB5));
       } else {
-        /* ./../lib/standard//string_search.nit:161 */
+        /* ../lib/standard/string_search.nit:161 */
         REGB4 = TAG_Bool(false);
         REGB5 = REGB4;
       }
       if (UNTAG_Bool(REGB5)) {
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
-        /* ./../lib/standard//string_search.nit:162 */
+        /* ../lib/standard/string_search.nit:162 */
         REGB4 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:237 */
+        /* ../lib/standard/kernel.nit:237 */
         REGB4 = TAG_Int(UNTAG_Int(REGB5)-UNTAG_Int(REGB4));
         REGB4 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:278 */
+        /* ../lib/standard/collection/array.nit:278 */
         fra.me.REG[2] = fra.me.REG[0];
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB5 = TAG_Int(0);
         REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB6)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB5)) {
           REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
           if (UNTAG_Bool(REGB5)) {
@@ -844,29 +844,29 @@ val_t standard___string_search___BM_Pattern___suffixes(val_t p0){
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
         } else {
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB6 = TAG_Bool(false);
           REGB5 = REGB6;
         }
         if (UNTAG_Bool(REGB5)) {
         } else {
-          nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+          nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
         }
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
         REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB5)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB4)];
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         goto label2;
         label2: while(0);
-        /* ./../lib/standard//string_search.nit:162 */
+        /* ../lib/standard/string_search.nit:162 */
         CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB3, fra.me.REG[2]);
       } else {
         REGB4 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
@@ -874,15 +874,15 @@ val_t standard___string_search___BM_Pattern___suffixes(val_t p0){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
-        /* ./../lib/standard//string_search.nit:164 */
+        /* ../lib/standard/string_search.nit:164 */
         if (UNTAG_Bool(REGB4)) {
           REGB2 = REGB3;
         }
-        /* ./../lib/standard//string_search.nit:165 */
+        /* ../lib/standard/string_search.nit:165 */
         REGB1 = REGB3;
-        /* ./../lib/standard//string_search.nit:166 */
+        /* ../lib/standard/string_search.nit:166 */
         while(1) {
           REGB4 = TAG_Int(0);
           REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
@@ -890,26 +890,26 @@ val_t standard___string_search___BM_Pattern___suffixes(val_t p0){
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:233 */
+          /* ../lib/standard/kernel.nit:233 */
           REGB4 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB4));
-          /* ./../lib/standard//string_search.nit:166 */
+          /* ../lib/standard/string_search.nit:166 */
           if (UNTAG_Bool(REGB4)) {
             REGB4 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB2);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
-            /* ./../lib/standard//string_search.nit:166 */
+            /* ../lib/standard/string_search.nit:166 */
             REGB6 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:237 */
+            /* ../lib/standard/kernel.nit:237 */
             REGB6 = TAG_Int(UNTAG_Int(REGB5)-UNTAG_Int(REGB6));
             REGB6 = TAG_Int(UNTAG_Int(REGB6)-UNTAG_Int(REGB1));
-            /* ./../lib/standard//string_search.nit:166 */
+            /* ../lib/standard/string_search.nit:166 */
             REGB6 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB6);
             REGB5 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB6));
             if (UNTAG_Bool(REGB5)) {
             } else {
-              /* ./../lib/standard//kernel.nit:378 */
+              /* ../lib/standard/kernel.nit:378 */
               REGB6 = TAG_Bool((REGB4)==(REGB6));
-              /* ./../lib/standard//string_search.nit:166 */
+              /* ../lib/standard/string_search.nit:166 */
               REGB5 = REGB6;
             }
           } else {
@@ -918,33 +918,33 @@ val_t standard___string_search___BM_Pattern___suffixes(val_t p0){
           }
           if (UNTAG_Bool(REGB5)) {
             REGB5 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:237 */
+            /* ../lib/standard/kernel.nit:237 */
             REGB5 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB5));
-            /* ./../lib/standard//string_search.nit:166 */
+            /* ../lib/standard/string_search.nit:166 */
             REGB2 = REGB5;
           } else {
             goto label3;
           }
         }
         label3: while(0);
-        /* ./../lib/standard//kernel.nit:237 */
+        /* ../lib/standard/kernel.nit:237 */
         REGB5 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-        /* ./../lib/standard//string_search.nit:167 */
+        /* ../lib/standard/string_search.nit:167 */
         CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB3, REGB5);
       }
-      /* ./../lib/standard//string_search.nit:169 */
+      /* ../lib/standard/string_search.nit:169 */
       REGB5 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB5 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB5));
-      /* ./../lib/standard//string_search.nit:169 */
+      /* ../lib/standard/string_search.nit:169 */
       REGB3 = REGB5;
     } else {
-      /* ./../lib/standard//string_search.nit:160 */
+      /* ../lib/standard/string_search.nit:160 */
       goto label4;
     }
   }
   label4: while(0);
-  /* ./../lib/standard//string_search.nit:171 */
+  /* ../lib/standard/string_search.nit:171 */
   goto label5;
   label5: while(0);
   stack_frame_head = fra.me.prev;
@@ -972,36 +972,36 @@ void standard___string_search___BM_Pattern___compute_gs(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string_search.nit:176 */
+  /* ../lib/standard/string_search.nit:176 */
   REGB0 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_motif", LOCATE_standard___string_search, 176);
   }
   fra.me.REG[1] = ATTR_standard___string_search___BM_Pattern____motif(fra.me.REG[0]);
-  /* ./../lib/standard//string_search.nit:177 */
+  /* ../lib/standard/string_search.nit:177 */
   REGB0 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___string_search, 177);
   }
   REGB0 = ATTR_standard___string_search___BM_Pattern____length(fra.me.REG[0]);
-  /* ./../lib/standard//string_search.nit:178 */
+  /* ../lib/standard/string_search.nit:178 */
   fra.me.REG[1] = CALL_standard___string_search___BM_Pattern___suffixes(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//string_search.nit:179 */
+  /* ../lib/standard/string_search.nit:179 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//string_search.nit:180 */
+  /* ../lib/standard/string_search.nit:180 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-    /* ./../lib/standard//string_search.nit:180 */
+    /* ../lib/standard/string_search.nit:180 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//string_search.nit:181 */
+      /* ../lib/standard/string_search.nit:181 */
       REGB2 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -1009,69 +1009,69 @@ void standard___string_search___BM_Pattern___compute_gs(val_t p0){
       }
       fra.me.REG[2] = ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0]);
       CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[2])(fra.me.REG[2], REGB1, REGB0);
-      /* ./../lib/standard//string_search.nit:182 */
+      /* ../lib/standard/string_search.nit:182 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//string_search.nit:182 */
+      /* ../lib/standard/string_search.nit:182 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//string_search.nit:180 */
+      /* ../lib/standard/string_search.nit:180 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//string_search.nit:184 */
+  /* ../lib/standard/string_search.nit:184 */
   REGB2 = TAG_Int(0);
-  /* ./../lib/standard//string_search.nit:185 */
+  /* ../lib/standard/string_search.nit:185 */
   REGB3 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB3 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB3));
-  /* ./../lib/standard//string_search.nit:185 */
+  /* ../lib/standard/string_search.nit:185 */
   REGB1 = REGB3;
-  /* ./../lib/standard//string_search.nit:186 */
+  /* ../lib/standard/string_search.nit:186 */
   while(1) {
     REGB3 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:236 */
     REGB3 = TAG_Int(-UNTAG_Int(REGB3));
     REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB4)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB3));
-    /* ./../lib/standard//string_search.nit:186 */
+    /* ../lib/standard/string_search.nit:186 */
     if (UNTAG_Bool(REGB3)) {
-      /* ./../lib/standard//string_search.nit:187 */
+      /* ../lib/standard/string_search.nit:187 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:236 */
+      /* ../lib/standard/kernel.nit:236 */
       REGB3 = TAG_Int(-UNTAG_Int(REGB3));
-      /* ./../lib/standard//string_search.nit:187 */
+      /* ../lib/standard/string_search.nit:187 */
       REGB4 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB3));
       if (UNTAG_Bool(REGB4)) {
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB3 = TAG_Bool((REGB1)==(REGB3));
-        /* ./../lib/standard//string_search.nit:187 */
+        /* ../lib/standard/string_search.nit:187 */
         REGB4 = REGB3;
       }
       if (UNTAG_Bool(REGB4)) {
         REGB4 = TAG_Bool(true);
       } else {
-        /* ./../lib/standard//collection//array.nit:278 */
+        /* ../lib/standard/collection/array.nit:278 */
         fra.me.REG[2] = fra.me.REG[1];
         REGB3 = REGB1;
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB5 = TAG_Int(0);
         REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB6)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB5 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB5));
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB5)) {
           REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
           if (UNTAG_Bool(REGB5)) {
@@ -1084,33 +1084,33 @@ void standard___string_search___BM_Pattern___compute_gs(val_t p0){
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB5));
         } else {
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB6 = TAG_Bool(false);
           REGB5 = REGB6;
         }
         if (UNTAG_Bool(REGB5)) {
         } else {
-          nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+          nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
         }
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
         REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB5)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB3)];
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         goto label2;
         label2: while(0);
-        /* ./../lib/standard//string_search.nit:187 */
+        /* ../lib/standard/string_search.nit:187 */
         REGB3 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
-        /* ./../lib/standard//string_search.nit:187 */
+        /* ../lib/standard/string_search.nit:187 */
         REGB5 = TAG_Bool(IS_EQUAL_ON(REGB3,fra.me.REG[2]));
         if (UNTAG_Bool(REGB5)) {
         } else {
@@ -1119,19 +1119,19 @@ void standard___string_search___BM_Pattern___compute_gs(val_t p0){
             REGB6 = TAG_Bool(false);
             REGB5 = REGB6;
           } else {
-            /* ./../lib/standard//kernel.nit:227 */
+            /* ../lib/standard/kernel.nit:227 */
             REGB3 = TAG_Bool((fra.me.REG[2])==(REGB3));
-            /* ./../lib/standard//string_search.nit:187 */
+            /* ../lib/standard/string_search.nit:187 */
             REGB5 = REGB3;
           }
         }
         REGB4 = REGB5;
       }
       if (UNTAG_Bool(REGB4)) {
-        /* ./../lib/standard//string_search.nit:188 */
+        /* ../lib/standard/string_search.nit:188 */
         while(1) {
           REGB4 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:237 */
+          /* ../lib/standard/kernel.nit:237 */
           REGB4 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB4));
           REGB4 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB1));
           REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
@@ -1139,29 +1139,29 @@ void standard___string_search___BM_Pattern___compute_gs(val_t p0){
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB4 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB4));
-          /* ./../lib/standard//string_search.nit:188 */
+          /* ../lib/standard/string_search.nit:188 */
           if (UNTAG_Bool(REGB4)) {
-            /* ./../lib/standard//string_search.nit:189 */
+            /* ../lib/standard/string_search.nit:189 */
             REGB4 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0])!=NIT_NULL);
             if (UNTAG_Bool(REGB4)) {
             } else {
               nit_abort("Uninitialized attribute %s", "_gs", LOCATE_standard___string_search, 189);
             }
             fra.me.REG[2] = ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0]);
-            /* ./../lib/standard//collection//array.nit:278 */
+            /* ../lib/standard/collection/array.nit:278 */
             REGB4 = REGB2;
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB5 = TAG_Int(0);
             REGB3 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
             if (UNTAG_Bool(REGB3)) {
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:233 */
+            /* ../lib/standard/kernel.nit:233 */
             REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             if (UNTAG_Bool(REGB5)) {
               REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
               if (UNTAG_Bool(REGB5)) {
@@ -1174,29 +1174,29 @@ void standard___string_search___BM_Pattern___compute_gs(val_t p0){
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:232 */
+              /* ../lib/standard/kernel.nit:232 */
               REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
             } else {
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB3 = TAG_Bool(false);
               REGB5 = REGB3;
             }
             if (UNTAG_Bool(REGB5)) {
             } else {
-              nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+              nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
             }
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
             REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
             if (UNTAG_Bool(REGB5)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB4)];
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             goto label3;
             label3: while(0);
-            /* ./../lib/standard//string_search.nit:189 */
+            /* ../lib/standard/string_search.nit:189 */
             REGB4 = TAG_Bool(IS_EQUAL_ON(REGB0,fra.me.REG[2]));
             if (UNTAG_Bool(REGB4)) {
             } else {
@@ -1205,9 +1205,9 @@ void standard___string_search___BM_Pattern___compute_gs(val_t p0){
                REGB5 = TAG_Bool(false);
                REGB4 = REGB5;
               } else {
-               /* ./../lib/standard//kernel.nit:227 */
+               /* ../lib/standard/kernel.nit:227 */
                REGB5 = TAG_Bool((fra.me.REG[2])==(REGB0));
-               /* ./../lib/standard//string_search.nit:189 */
+               /* ../lib/standard/string_search.nit:189 */
                REGB4 = REGB5;
               }
             }
@@ -1219,55 +1219,55 @@ void standard___string_search___BM_Pattern___compute_gs(val_t p0){
               }
               fra.me.REG[2] = ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0]);
               REGB4 = TAG_Int(1);
-              /* ./../lib/standard//kernel.nit:237 */
+              /* ../lib/standard/kernel.nit:237 */
               REGB4 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB4));
               REGB4 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB1));
-              /* ./../lib/standard//string_search.nit:189 */
+              /* ../lib/standard/string_search.nit:189 */
               CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[2])(fra.me.REG[2], REGB2, REGB4);
             }
-            /* ./../lib/standard//string_search.nit:190 */
+            /* ../lib/standard/string_search.nit:190 */
             REGB4 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB4 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
-            /* ./../lib/standard//string_search.nit:190 */
+            /* ../lib/standard/string_search.nit:190 */
             REGB2 = REGB4;
           } else {
-            /* ./../lib/standard//string_search.nit:188 */
+            /* ../lib/standard/string_search.nit:188 */
             goto label4;
           }
         }
         label4: while(0);
       }
-      /* ./../lib/standard//string_search.nit:193 */
+      /* ../lib/standard/string_search.nit:193 */
       REGB4 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB4 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB4));
-      /* ./../lib/standard//string_search.nit:193 */
+      /* ../lib/standard/string_search.nit:193 */
       REGB1 = REGB4;
     } else {
-      /* ./../lib/standard//string_search.nit:186 */
+      /* ../lib/standard/string_search.nit:186 */
       goto label5;
     }
   }
   label5: while(0);
-  /* ./../lib/standard//string_search.nit:195 */
+  /* ../lib/standard/string_search.nit:195 */
   REGB2 = TAG_Int(0);
   REGB1 = REGB2;
-  /* ./../lib/standard//string_search.nit:196 */
+  /* ../lib/standard/string_search.nit:196 */
   while(1) {
     REGB2 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:237 */
+    /* ../lib/standard/kernel.nit:237 */
     REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
     REGB4 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB4)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//string_search.nit:196 */
+    /* ../lib/standard/string_search.nit:196 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//string_search.nit:197 */
+      /* ../lib/standard/string_search.nit:197 */
       REGB2 = TAG_Bool(ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -1275,21 +1275,21 @@ void standard___string_search___BM_Pattern___compute_gs(val_t p0){
       }
       fra.me.REG[2] = ATTR_standard___string_search___BM_Pattern____gs(fra.me.REG[0]);
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       fra.me.REG[3] = fra.me.REG[1];
       REGB4 = REGB1;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB5 = TAG_Int(0);
       REGB3 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB3)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB5)) {
         REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
         if (UNTAG_Bool(REGB5)) {
@@ -1302,45 +1302,45 @@ void standard___string_search___BM_Pattern___compute_gs(val_t p0){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB3 = TAG_Bool(false);
         REGB5 = REGB3;
       }
       if (UNTAG_Bool(REGB5)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
       REGB5 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB5)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB4)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label6;
       label6: while(0);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB2 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(fra.me.REG[3]));
-      /* ./../lib/standard//string_search.nit:197 */
+      /* ../lib/standard/string_search.nit:197 */
       REGB4 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB4 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB4));
       REGB4 = TAG_Int(UNTAG_Int(REGB4)-UNTAG_Int(REGB1));
-      /* ./../lib/standard//string_search.nit:197 */
+      /* ../lib/standard/string_search.nit:197 */
       CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[2])(fra.me.REG[2], REGB2, REGB4);
-      /* ./../lib/standard//string_search.nit:198 */
+      /* ../lib/standard/string_search.nit:198 */
       REGB4 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB4 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB4));
-      /* ./../lib/standard//string_search.nit:198 */
+      /* ../lib/standard/string_search.nit:198 */
       REGB1 = REGB4;
     } else {
-      /* ./../lib/standard//string_search.nit:196 */
+      /* ../lib/standard/string_search.nit:196 */
       goto label7;
     }
   }
@@ -1361,7 +1361,7 @@ val_t standard___string_search___Match___string(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string_search.nit:205 */
+  /* ../lib/standard/string_search.nit:205 */
   REGB0 = TAG_Bool(ATTR_standard___string_search___Match____string(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1384,7 +1384,7 @@ val_t standard___string_search___Match___from(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string_search.nit:208 */
+  /* ../lib/standard/string_search.nit:208 */
   REGB0 = TAG_Bool(ATTR_standard___string_search___Match____from(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1407,7 +1407,7 @@ val_t standard___string_search___Match___length(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string_search.nit:211 */
+  /* ../lib/standard/string_search.nit:211 */
   REGB0 = TAG_Bool(ATTR_standard___string_search___Match____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1431,7 +1431,7 @@ val_t standard___string_search___Match___after(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string_search.nit:216 */
+  /* ../lib/standard/string_search.nit:216 */
   REGB0 = TAG_Bool(ATTR_standard___string_search___Match____from(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1444,9 +1444,9 @@ val_t standard___string_search___Match___after(val_t p0){
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___string_search, 216);
   }
   REGB1 = ATTR_standard___string_search___Match____length(fra.me.REG[0]);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./../lib/standard//string_search.nit:216 */
+  /* ../lib/standard/string_search.nit:216 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -1467,7 +1467,7 @@ val_t standard___string_search___Match___to_s(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string_search.nit:219 */
+  /* ../lib/standard/string_search.nit:219 */
   REGB0 = TAG_Bool(ATTR_standard___string_search___Match____string(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1515,37 +1515,37 @@ void standard___string_search___Match___init(val_t p0, val_t p1, val_t p2, val_t
   fra.me.REG[1] = p1;
   REGB0 = p2;
   REGB1 = p3;
-  /* ./../lib/standard//string_search.nit:224 */
+  /* ../lib/standard/string_search.nit:224 */
   REGB2 = TAG_Int(0);
   REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB3)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-  /* ./../lib/standard//string_search.nit:224 */
+  /* ../lib/standard/string_search.nit:224 */
   if (UNTAG_Bool(REGB2)) {
   } else {
-    nit_abort("Assert %s  failed", "'positive_length'", LOCATE_standard___string_search, 224);
+    nit_abort("Assert '%s' failed", "positive_length", LOCATE_standard___string_search, 224);
   }
-  /* ./../lib/standard//string_search.nit:225 */
+  /* ../lib/standard/string_search.nit:225 */
   REGB2 = TAG_Int(0);
   REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB3)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
-  /* ./../lib/standard//string_search.nit:225 */
+  /* ../lib/standard/string_search.nit:225 */
   if (UNTAG_Bool(REGB2)) {
   } else {
-    nit_abort("Assert %s  failed", "'valid_from'", LOCATE_standard___string_search, 225);
+    nit_abort("Assert '%s' failed", "valid_from", LOCATE_standard___string_search, 225);
   }
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB3)) {
   } else {
@@ -1557,18 +1557,18 @@ void standard___string_search___Match___init(val_t p0, val_t p1, val_t p2, val_t
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:231 */
+  /* ../lib/standard/kernel.nit:231 */
   REGB3 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB3));
-  /* ./../lib/standard//string_search.nit:226 */
+  /* ../lib/standard/string_search.nit:226 */
   if (UNTAG_Bool(REGB3)) {
   } else {
-    nit_abort("Assert %s  failed", "'valid_after'", LOCATE_standard___string_search, 226);
+    nit_abort("Assert '%s' failed", "valid_after", LOCATE_standard___string_search, 226);
   }
-  /* ./../lib/standard//string_search.nit:227 */
+  /* ../lib/standard/string_search.nit:227 */
   ATTR_standard___string_search___Match____string(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//string_search.nit:228 */
+  /* ../lib/standard/string_search.nit:228 */
   ATTR_standard___string_search___Match____from(fra.me.REG[0]) = REGB0;
-  /* ./../lib/standard//string_search.nit:229 */
+  /* ../lib/standard/string_search.nit:229 */
   ATTR_standard___string_search___Match____length(fra.me.REG[0]) = REGB1;
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
@@ -1593,55 +1593,55 @@ val_t standard___string_search___Char___search_index_in(val_t p0, val_t p1, val_
   REGB0 = p0;
   fra.me.REG[0] = p1;
   REGB1 = p2;
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//string_search.nit:239 */
+  /* ../lib/standard/string_search.nit:239 */
   while(1) {
     REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//string_search.nit:239 */
+    /* ../lib/standard/string_search.nit:239 */
     if (UNTAG_Bool(REGB3)) {
-      /* ./../lib/standard//string_search.nit:240 */
+      /* ../lib/standard/string_search.nit:240 */
       REGB3 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB1);
       REGB4 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB0));
       if (UNTAG_Bool(REGB4)) {
       } else {
-        /* ./../lib/standard//kernel.nit:378 */
+        /* ../lib/standard/kernel.nit:378 */
         REGB3 = TAG_Bool((REGB3)==(REGB0));
-        /* ./../lib/standard//string_search.nit:240 */
+        /* ../lib/standard/string_search.nit:240 */
         REGB4 = REGB3;
       }
       if (UNTAG_Bool(REGB4)) {
         REGB4 = REGB1;
         goto label1;
       }
-      /* ./../lib/standard//string_search.nit:241 */
+      /* ../lib/standard/string_search.nit:241 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//string_search.nit:241 */
+      /* ../lib/standard/string_search.nit:241 */
       REGB1 = REGB3;
     } else {
-      /* ./../lib/standard//string_search.nit:239 */
+      /* ../lib/standard/string_search.nit:239 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//string_search.nit:243 */
+  /* ../lib/standard/string_search.nit:243 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:236 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB1 = TAG_Int(-UNTAG_Int(REGB1));
-  /* ./../lib/standard//string_search.nit:243 */
+  /* ../lib/standard/string_search.nit:243 */
   REGB4 = REGB1;
   goto label1;
   label1: while(0);
@@ -1666,24 +1666,24 @@ val_t standard___string_search___Char___search_in(val_t p0, val_t p1, val_t p2){
   REGB0 = p0;
   fra.me.REG[0] = p1;
   REGB1 = p2;
-  /* ./../lib/standard//string_search.nit:248 */
+  /* ../lib/standard/string_search.nit:248 */
   REGB1 = CALL_standard___string_search___Pattern___search_index_in(REGB0)(REGB0, fra.me.REG[0], REGB1);
-  /* ./../lib/standard//string_search.nit:249 */
+  /* ../lib/standard/string_search.nit:249 */
   REGB0 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-  /* ./../lib/standard//string_search.nit:249 */
+  /* ../lib/standard/string_search.nit:249 */
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//string_search.nit:250 */
+    /* ../lib/standard/string_search.nit:250 */
     fra.me.REG[1] = NIT_NULL;
     goto label1;
   } else {
-    /* ./../lib/standard//string_search.nit:252 */
+    /* ../lib/standard/string_search.nit:252 */
     REGB0 = TAG_Int(1);
     fra.me.REG[0] = NEW_Match_standard___string_search___Match___init(fra.me.REG[0], REGB1, REGB0);
     fra.me.REG[1] = fra.me.REG[0];
@@ -1714,21 +1714,21 @@ val_t standard___string_search___String___search_index_in(val_t p0, val_t p1, va
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   REGB0 = p2;
-  /* ./../lib/standard//string_search.nit:262 */
+  /* ../lib/standard/string_search.nit:262 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//string_search.nit:262 */
+  /* ../lib/standard/string_search.nit:262 */
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_standard___string_search, 262);
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -1741,35 +1741,35 @@ val_t standard___string_search___String___search_index_in(val_t p0, val_t p1, va
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-  /* ./../lib/standard//string_search.nit:263 */
+  /* ../lib/standard/string_search.nit:263 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1));
-  /* ./../lib/standard//string_search.nit:264 */
+  /* ../lib/standard/string_search.nit:264 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//string_search.nit:264 */
+    /* ../lib/standard/string_search.nit:264 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
       }
       REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-      /* ./../lib/standard//string_search.nit:265 */
+      /* ../lib/standard/string_search.nit:265 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
-      /* ./../lib/standard//string_search.nit:266 */
+      /* ../lib/standard/string_search.nit:266 */
       while(1) {
         REGB2 = TAG_Int(0);
         REGB4 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
@@ -1777,21 +1777,21 @@ val_t standard___string_search___String___search_index_in(val_t p0, val_t p1, va
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB2 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB2));
-        /* ./../lib/standard//string_search.nit:266 */
+        /* ../lib/standard/string_search.nit:266 */
         if (UNTAG_Bool(REGB2)) {
           REGB2 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB3);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
-          /* ./../lib/standard//string_search.nit:266 */
+          /* ../lib/standard/string_search.nit:266 */
           REGB4 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB4);
           REGB5 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB4));
           if (UNTAG_Bool(REGB5)) {
           } else {
-            /* ./../lib/standard//kernel.nit:378 */
+            /* ../lib/standard/kernel.nit:378 */
             REGB4 = TAG_Bool((REGB2)==(REGB4));
-            /* ./../lib/standard//string_search.nit:266 */
+            /* ../lib/standard/string_search.nit:266 */
             REGB5 = REGB4;
           }
         } else {
@@ -1800,46 +1800,46 @@ val_t standard___string_search___String___search_index_in(val_t p0, val_t p1, va
         }
         if (UNTAG_Bool(REGB5)) {
           REGB5 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:237 */
+          /* ../lib/standard/kernel.nit:237 */
           REGB5 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB5));
-          /* ./../lib/standard//string_search.nit:266 */
+          /* ../lib/standard/string_search.nit:266 */
           REGB3 = REGB5;
         } else {
           goto label1;
         }
       }
       label1: while(0);
-      /* ./../lib/standard//string_search.nit:268 */
+      /* ../lib/standard/string_search.nit:268 */
       REGB5 = TAG_Int(0);
       REGB4 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB4)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB5));
-      /* ./../lib/standard//string_search.nit:268 */
+      /* ../lib/standard/string_search.nit:268 */
       if (UNTAG_Bool(REGB5)) {
         REGB5 = REGB0;
         goto label2;
       }
-      /* ./../lib/standard//string_search.nit:270 */
+      /* ../lib/standard/string_search.nit:270 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//string_search.nit:270 */
+      /* ../lib/standard/string_search.nit:270 */
       REGB0 = REGB3;
     } else {
-      /* ./../lib/standard//string_search.nit:264 */
+      /* ../lib/standard/string_search.nit:264 */
       goto label3;
     }
   }
   label3: while(0);
-  /* ./../lib/standard//string_search.nit:272 */
+  /* ../lib/standard/string_search.nit:272 */
   REGB0 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:236 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB0 = TAG_Int(-UNTAG_Int(REGB0));
-  /* ./../lib/standard//string_search.nit:272 */
+  /* ../lib/standard/string_search.nit:272 */
   REGB5 = REGB0;
   goto label2;
   label2: while(0);
@@ -1865,31 +1865,31 @@ val_t standard___string_search___String___search_in(val_t p0, val_t p1, val_t p2
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   REGB0 = p2;
-  /* ./../lib/standard//string_search.nit:277 */
+  /* ../lib/standard/string_search.nit:277 */
   REGB0 = CALL_standard___string_search___Pattern___search_index_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
-  /* ./../lib/standard//string_search.nit:278 */
+  /* ../lib/standard/string_search.nit:278 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-  /* ./../lib/standard//string_search.nit:278 */
+  /* ../lib/standard/string_search.nit:278 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//string_search.nit:279 */
+    /* ../lib/standard/string_search.nit:279 */
     fra.me.REG[2] = NIT_NULL;
     goto label1;
   } else {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-    /* ./../lib/standard//string_search.nit:281 */
+    /* ../lib/standard/string_search.nit:281 */
     fra.me.REG[1] = NEW_Match_standard___string_search___Match___init(fra.me.REG[1], REGB0, REGB1);
     fra.me.REG[2] = fra.me.REG[1];
     goto label1;
@@ -1913,7 +1913,7 @@ val_t standard___string_search___String___search(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//string_search.nit:286 */
+  /* ../lib/standard/string_search.nit:286 */
   REGB0 = TAG_Int(0);
   fra.me.REG[0] = CALL_standard___string_search___Pattern___search_in(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], REGB0);
   goto label1;
@@ -1937,7 +1937,7 @@ val_t standard___string_search___String___search_from(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   REGB0 = p2;
-  /* ./../lib/standard//string_search.nit:291 */
+  /* ../lib/standard/string_search.nit:291 */
   fra.me.REG[0] = CALL_standard___string_search___Pattern___search_in(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], REGB0);
   goto label1;
   label1: while(0);
@@ -1958,7 +1958,7 @@ val_t standard___string_search___String___search_all(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//string_search.nit:300 */
+  /* ../lib/standard/string_search.nit:300 */
   fra.me.REG[0] = CALL_standard___string_search___Pattern___search_all_in(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -1984,31 +1984,31 @@ val_t standard___string_search___String___split_with(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//string_search.nit:306 */
+  /* ../lib/standard/string_search.nit:306 */
   fra.me.REG[0] = CALL_standard___string_search___Pattern___split_in(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//string_search.nit:307 */
+  /* ../lib/standard/string_search.nit:307 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -2020,33 +2020,33 @@ val_t standard___string_search___String___split_with(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./../lib/standard//string_search.nit:308 */
+      /* ../lib/standard/string_search.nit:308 */
       fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//string_search.nit:309 */
+  /* ../lib/standard/string_search.nit:309 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
@@ -2065,7 +2065,7 @@ val_t standard___string_search___String___split(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string_search.nit:314 */
+  /* ../lib/standard/string_search.nit:314 */
   REGB0 = TAG_Char('\n');
   fra.me.REG[0] = CALL_standard___string_search___String___split_with(fra.me.REG[0])(fra.me.REG[0], REGB0);
   goto label1;
@@ -2089,7 +2089,7 @@ val_t standard___string_search___String___replace(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/standard//string_search.nit:322 */
+  /* ../lib/standard/string_search.nit:322 */
   fra.me.REG[1] = CALL_standard___string_search___String___split_with(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   fra.me.REG[2] = CALL_standard___string___Collection___join(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   goto label1;
@@ -2116,7 +2116,7 @@ val_t standard___string_search___String___html_escape(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//string_search.nit:331 */
+  /* ../lib/standard/string_search.nit:331 */
   REGB0 = TAG_Char('&');
   REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], REGB0);
   if (UNTAG_Bool(REGB0)) {
@@ -2132,7 +2132,7 @@ val_t standard___string_search___String___html_escape(val_t p0){
     fra.me.REG[1] = CALL_standard___string_search___String___replace(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
     fra.me.REG[0] = fra.me.REG[1];
   }
-  /* ./../lib/standard//string_search.nit:332 */
+  /* ../lib/standard/string_search.nit:332 */
   REGB0 = TAG_Char('<');
   REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], REGB0);
   if (UNTAG_Bool(REGB0)) {
@@ -2148,7 +2148,7 @@ val_t standard___string_search___String___html_escape(val_t p0){
     fra.me.REG[1] = CALL_standard___string_search___String___replace(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
     fra.me.REG[0] = fra.me.REG[1];
   }
-  /* ./../lib/standard//string_search.nit:333 */
+  /* ../lib/standard/string_search.nit:333 */
   REGB0 = TAG_Char('>');
   REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], REGB0);
   if (UNTAG_Bool(REGB0)) {
@@ -2164,7 +2164,7 @@ val_t standard___string_search___String___html_escape(val_t p0){
     fra.me.REG[1] = CALL_standard___string_search___String___replace(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
     fra.me.REG[0] = fra.me.REG[1];
   }
-  /* ./../lib/standard//string_search.nit:334 */
+  /* ../lib/standard/string_search.nit:334 */
   REGB0 = TAG_Char('"');
   REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], REGB0);
   if (UNTAG_Bool(REGB0)) {
@@ -2180,7 +2180,7 @@ val_t standard___string_search___String___html_escape(val_t p0){
     fra.me.REG[1] = CALL_standard___string_search___String___replace(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
     fra.me.REG[0] = fra.me.REG[1];
   }
-  /* ./../lib/standard//string_search.nit:335 */
+  /* ../lib/standard/string_search.nit:335 */
   goto label5;
   label5: while(0);
   stack_frame_head = fra.me.prev;
index 4101f8a..3ab3f81 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/standard/string_search. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/standard/string_search. */
 #ifndef standard___string_search_sep
 #define standard___string_search_sep
 #include "standard___string._sep.h"
index 6460ba5..08b83e7 100644 (file)
@@ -17,25 +17,25 @@ val_t standard___symbol___String___to_symbol(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//symbol.nit:23 */
+  /* ../lib/standard/symbol.nit:23 */
   if (!once_value_1) {
     fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
     once_value_1 = fra.me.REG[1];
     register_static_object(&once_value_1);
   } else fra.me.REG[1] = once_value_1;
   fra.me.REG[1] = fra.me.REG[1];
-  /* ./../lib/standard//symbol.nit:24 */
+  /* ../lib/standard/symbol.nit:24 */
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//symbol.nit:25 */
+    /* ../lib/standard/symbol.nit:25 */
     fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
     goto label2;
   } else {
-    /* ./../lib/standard//symbol.nit:27 */
+    /* ../lib/standard/symbol.nit:27 */
     fra.me.REG[3] = NEW_Symbol_standard___symbol___Symbol___init(fra.me.REG[0]);
-    /* ./../lib/standard//symbol.nit:28 */
+    /* ../lib/standard/symbol.nit:28 */
     CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
-    /* ./../lib/standard//symbol.nit:29 */
+    /* ../lib/standard/symbol.nit:29 */
     fra.me.REG[2] = fra.me.REG[3];
     goto label2;
   }
@@ -56,7 +56,7 @@ val_t standard___symbol___Symbol___to_s(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//symbol.nit:37 */
+  /* ../lib/standard/symbol.nit:37 */
   REGB0 = TAG_Bool(ATTR_standard___symbol___Symbol____string(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -85,7 +85,7 @@ void standard___symbol___Symbol___init(val_t p0, val_t p1, int* init_table){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//symbol.nit:40 */
+  /* ../lib/standard/symbol.nit:40 */
   ATTR_standard___symbol___Symbol____string(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
index 08f91ee..e5635d6 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/standard/symbol. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/standard/symbol. */
 #ifndef standard___symbol_sep
 #define standard___symbol_sep
 #include "standard___string._sep.h"
index ea76e55..6cb4f0b 100644 (file)
@@ -13,7 +13,7 @@ val_t standard___time___Object___get_time(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//time.nit:19 */
+  /* ../lib/standard/time.nit:19 */
   REGB0 = Object_get_time___out(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return REGB0;
index b81a760..aa70330 100644 (file)
@@ -1,4 +1,4 @@
-/* This C header file is generated by NIT to compile modules and programs that requires ./../lib/standard/time. */
+/* This C header file is generated by NIT to compile modules and programs that requires ../lib/standard/time. */
 #ifndef standard___time_sep
 #define standard___time_sep
 #include "standard___kernel._sep.h"
index 1025632..6176220 100644 (file)
@@ -80,3 +80,114 @@ return___nit = TAG_Int(return___nitni);
 nitni_local_ref_clean(  );
 return return___nit;
 }
+/* out/indirect function for stream::Object::intern_poll */
+val_t Object_intern_poll___out( val_t recv, val_t in_fds, val_t out_fds )
+{
+Object recv___nitni;
+Array in_fds___nitni;
+Array out_fds___nitni;
+nullable_Int return___nitni;
+val_t return___nit;
+recv___nitni = malloc( sizeof( struct s_Object ) );
+recv___nitni->ref.val = NIT_NULL;
+recv___nitni->ref.count = 0;
+nitni_local_ref_add( (struct nitni_ref *)recv___nitni );
+recv___nitni->ref.val = recv;
+in_fds___nitni = malloc( sizeof( struct s_Array ) );
+in_fds___nitni->ref.val = NIT_NULL;
+in_fds___nitni->ref.count = 0;
+nitni_local_ref_add( (struct nitni_ref *)in_fds___nitni );
+in_fds___nitni->ref.val = in_fds;
+out_fds___nitni = malloc( sizeof( struct s_Array ) );
+out_fds___nitni->ref.val = NIT_NULL;
+out_fds___nitni->ref.count = 0;
+nitni_local_ref_add( (struct nitni_ref *)out_fds___nitni );
+out_fds___nitni->ref.val = out_fds;
+return___nitni = malloc( sizeof( struct s_nullable_Int ) );
+return___nitni->ref.val = NIT_NULL;
+return___nitni->ref.count = 0;
+return___nitni = Object_intern_poll___impl( recv___nitni, in_fds___nitni, out_fds___nitni );
+return___nit = return___nitni->ref.val;
+nitni_local_ref_clean(  );
+return return___nit;
+}
+nullable_Int stream_null_Int()
+{
+nullable_Int n;
+n = malloc( sizeof( struct s_nullable_Int ) );
+n->ref.val = NIT_NULL;
+n->ref.count = 0;
+nitni_local_ref_add( (struct nitni_ref *)n );
+return n;
+}
+nullable_Object stream_null_Object()
+{
+nullable_Object n;
+n = malloc( sizeof( struct s_nullable_Object ) );
+n->ref.val = NIT_NULL;
+n->ref.count = 0;
+nitni_local_ref_add( (struct nitni_ref *)n );
+return n;
+}
+/* friendly for array::AbstractArrayRead::(abstract_collection::Collection::length) */
+bigint stream_Array_length( Array recv )
+{
+val_t recv___nit;
+bigint result___nitni;
+val_t result___nit;
+recv___nit = recv->ref.val;
+result___nit = CALL_standard___collection___abstract_collection___Collection___length( recv___nit )( recv___nit );
+result___nitni = UNTAG_Int(result___nit);
+return result___nitni;
+}
+/* friendly for array::Array::(abstract_collection::SequenceRead::[]) */
+nullable_Object stream_Array__index( Array recv, bigint index )
+{
+val_t recv___nit;
+val_t index___nit;
+nullable_Object result___nitni;
+val_t result___nit;
+recv___nit = recv->ref.val;
+index___nit = TAG_Int(index);
+result___nitni = malloc( sizeof( struct s_nullable_Object ) );
+result___nitni->ref.val = NIT_NULL;
+result___nitni->ref.count = 0;
+nitni_local_ref_add( (struct nitni_ref *)result___nitni );
+result___nit = CALL_standard___collection___abstract_collection___SequenceRead_____bra( recv___nit )( recv___nit, index___nit );
+result___nitni->ref.val = result___nit;
+return result___nitni;
+}
+int stream_nullable_Object_is_a_Int( nullable_Object value )
+{
+val_t temp;
+temp = value->ref.val;
+if ( ISNULL(temp) ) return 0;
+if ( ! ( ISOBJ( temp ) ? OBJISA( temp, standard___kernel___Int ): VALISA( temp, standard___kernel___Int ) ) ) return 0;
+return 1;
+}
+bigint stream_nullable_Object_as_Int( nullable_Object value )
+{
+val_t temp;
+bigint out;
+temp = value->ref.val;
+if ( ISNULL(temp) ){   fprintf( stderr, "Casting from nullable Object to Int failed because value is null." );
+       abort();
+}if ( ! ( ISOBJ( temp ) ? OBJISA( temp, standard___kernel___Int ): VALISA( temp, standard___kernel___Int ) ) ){
+       fprintf( stderr, "Casting to Int failed because value is not a Int." );
+       abort();
+}
+out = UNTAG_Int(temp);
+return out;
+}
+nullable_Int stream_Int_as_nullable( bigint value )
+{
+val_t temp;
+nullable_Int out;
+out = malloc( sizeof( struct s_nullable_Int ) );
+out->ref.val = NIT_NULL;
+out->ref.count = 0;
+nitni_local_ref_add( (struct nitni_ref *)out );
+temp = TAG_Int(value);
+out->ref.val = temp;
+return out;
+}
index 7ef9316..5f2e0b6 100644 (file)
@@ -12,6 +12,59 @@ typedef struct s_FDStream *FDStream;
 #define FDStream_incr_ref( x ) nitni_global_ref_incr( (struct nitni_ref*)(x) )
 #define FDStream_decr_ref( x ) nitni_global_ref_decr( (struct nitni_ref*)(x) )
 #endif
+#ifndef OBJECT_TYPE
+#define OBJECT_TYPE
+struct s_Object{
+               struct nitni_ref ref; /* real ref struct, must be first */
+};
+typedef struct s_Object *Object;
+#define Object_incr_ref( x ) nitni_global_ref_incr( (struct nitni_ref*)(x) )
+#define Object_decr_ref( x ) nitni_global_ref_decr( (struct nitni_ref*)(x) )
+#endif
+#ifndef ARRAY_TYPE
+#define ARRAY_TYPE
+struct s_Array{
+               struct nitni_ref ref; /* real ref struct, must be first */
+};
+typedef struct s_Array *Array;
+#define Array_incr_ref( x ) nitni_global_ref_incr( (struct nitni_ref*)(x) )
+#define Array_decr_ref( x ) nitni_global_ref_decr( (struct nitni_ref*)(x) )
+#endif
+#ifndef NULLABLE_INT_TYPE
+#define NULLABLE_INT_TYPE
+struct s_nullable_Int{
+               struct nitni_ref ref; /* real ref struct, must be first */
+};
+typedef struct s_nullable_Int *nullable_Int;
+#ifndef null_Int
+#define null_Int stream_null_Int
+#endif
+nullable_Int stream_null_Int();
+#define Int_incr_ref( x ) nitni_global_ref_incr( (struct nitni_ref*)(x) )
+#define Int_decr_ref( x ) nitni_global_ref_decr( (struct nitni_ref*)(x) )
+#endif
+#ifndef ARRAY_TYPE
+#define ARRAY_TYPE
+struct s_Array{
+               struct nitni_ref ref; /* real ref struct, must be first */
+};
+typedef struct s_Array *Array;
+#define Array_incr_ref( x ) nitni_global_ref_incr( (struct nitni_ref*)(x) )
+#define Array_decr_ref( x ) nitni_global_ref_decr( (struct nitni_ref*)(x) )
+#endif
+#ifndef NULLABLE_OBJECT_TYPE
+#define NULLABLE_OBJECT_TYPE
+struct s_nullable_Object{
+               struct nitni_ref ref; /* real ref struct, must be first */
+};
+typedef struct s_nullable_Object *nullable_Object;
+#ifndef null_Object
+#define null_Object stream_null_Object
+#endif
+nullable_Object stream_null_Object();
+#define Object_incr_ref( x ) nitni_global_ref_incr( (struct nitni_ref*)(x) )
+#define Object_decr_ref( x ) nitni_global_ref_decr( (struct nitni_ref*)(x) )
+#endif
 #include "stream_nit.h"
 
 /* out/indirect function for stream::FDStream::native_close */
@@ -25,4 +78,35 @@ val_t FDStream_native_read___out( val_t recv, val_t i, val_t buf, val_t len );
 
 /* out/indirect function for stream::FDStream::native_write */
 val_t FDStream_native_write___out( val_t recv, val_t i, val_t buf, val_t len );
+
+/* out/indirect function for stream::Object::intern_poll */
+val_t Object_intern_poll___out( val_t recv, val_t in_fds, val_t out_fds );
+#endif
+/* friendly for array::AbstractArrayRead::(abstract_collection::Collection::length) */
+bigint stream_Array_length( Array recv );
+#ifndef Array_length
+#define Array_length stream_Array_length
+#endif
+/* friendly for array::Array::(abstract_collection::SequenceRead::[]) */
+nullable_Object stream_Array__index( Array recv, bigint index );
+#ifndef Array__index
+#define Array__index stream_Array__index
+#endif
+
+/* Type check for nullable Object with Int */
+int stream_nullable_Object_is_a_Int( nullable_Object value );
+#ifndef nullable_Object_is_a_Int
+#define nullable_Object_is_a_Int stream_nullable_Object_is_a_Int
+#endif
+
+/* Cast for nullable Object to Int */
+bigint stream_nullable_Object_as_Int( nullable_Object value );
+#ifndef nullable_Object_as_Int
+#define nullable_Object_as_Int stream_nullable_Object_as_Int
+#endif
+
+/* Cast for Int to nullable Int */
+nullable_Int stream_Int_as_nullable( bigint value );
+#ifndef Int_as_nullable
+#define Int_as_nullable stream_Int_as_nullable
 #endif
index de0c031..54b2a3c 100644 (file)
@@ -13,6 +13,9 @@
 
 #include "stream_nit.h"
 
+#include <poll.h>
+#include <errno.h>
+
 int stream_FDStream_FDStream_native_read_char_1(FDStream s, int fd) {
        int result;
        char buf;
@@ -28,3 +31,67 @@ void stream_FDStream_FDStream_write_char_1(FDStream s, int fd, int c) {
        write(fd, &c, 1);
 }
 
+
+/*
+C implementation of stream::Object::intern_poll
+
+Imported methods signatures:
+       bigint Array_length( Array recv ) for array::AbstractArrayRead::(abstract_collection::Collection::length)
+       nullable_Object Array__index( Array recv, bigint index ) for array::Array::(abstract_collection::SequenceRead::[])
+       int nullable_Object_is_a_bigint( nullable_Object value ) to check if a nullable Object is a Int
+       bigint nullable_Object_as_bigint( nullable_Object value ) to cast from nullable Object to Int
+       int Int_is_null( nullable_Int value ) to check if a nullable Int is a Int
+       bigint bigint_as_not_null( nullable_Int value ) to cast from nullable Int to Int
+*/
+nullable_Int Object_intern_poll___impl( Object recv, Array in_fds, Array out_fds ) {
+       int in_len, out_len, total_len;
+       struct pollfd *c_fds;
+       sigset_t sigmask;
+       int i;
+       nullable_Object tmp_nit_obj;
+       int first_polled_fd = -1;
+       int result;
+
+       in_len = Array_length( in_fds );
+       out_len = Array_length( out_fds );
+       total_len = in_len + out_len;
+       c_fds = malloc( sizeof(struct pollfd) * total_len );
+
+       /* input streams */
+       for ( i=0; i<in_len; i ++ ) {
+               tmp_nit_obj = Array__index( in_fds, i );
+               int fd = nullable_Object_as_Int( tmp_nit_obj );
+
+               c_fds[i].fd = fd;
+               c_fds[i].events = POLLIN;
+       }
+
+       /* output streams */
+       for ( i=0; i<out_len; i ++ ) {
+               tmp_nit_obj = Array__index( out_fds, i );
+               int fd = nullable_Object_as_Int( tmp_nit_obj );
+
+               c_fds[i].fd = fd;
+               c_fds[i].events = POLLOUT;
+       }
+
+       /* poll all fds, unlimited timeout */
+       result = poll( c_fds, total_len, -1 );
+
+       if ( result > 0 ) {
+               /* analyse results */
+               for ( i=0; i<total_len; i++ )
+                       if ( c_fds[i].revents & c_fds[i].events || /* awaited event */
+                                c_fds[i].revents & POLLHUP ) /* closed */
+                       {
+                               first_polled_fd = c_fds[i].fd;
+                               break;
+                       }
+
+               return Int_as_nullable( first_polled_fd );
+       }
+       else if ( result < 0 )
+               fprintf( stderr, "Error in Stream:poll: %s\n", strerror( errno ) );
+
+       return null_Int();
+}
index 3ee6d51..f28d3b8 100644 (file)
@@ -24,4 +24,6 @@ void stream_FDStream_FDStream_write_char_1(FDStream s, int fd, int c);
 #define stream_FDStream_FDStream_native_read_3(s, i, b, l) read((i), ((b)), ((l)))
 #define stream_FDStream_FDStream_native_write_3(s, i, b, l) write((i), ((b)), ((l)))
 
+nullable_Int Object_intern_poll___impl( Object recv, Array in_fds, Array out_fds );
+
 #endif
index b96ec8d..1bccb57 100644 (file)
@@ -1,5 +1,21 @@
 #include "string._nitni.h"
 #include "string_nit.h"
+/* out/indirect function for string::String::to_f */
+val_t String_to_f___out( val_t recv )
+{
+String recv___nitni;
+float return___nitni;
+val_t return___nit;
+recv___nitni = malloc( sizeof( struct s_String ) );
+recv___nitni->ref.val = NIT_NULL;
+recv___nitni->ref.count = 0;
+nitni_local_ref_add( (struct nitni_ref *)recv___nitni );
+recv___nitni->ref.val = recv;
+return___nitni = String_to_f___impl( recv___nitni );
+return___nit = BOX_Float(return___nitni);
+nitni_local_ref_clean(  );
+return return___nit;
+}
 /* out/indirect function for string::Sys::native_argc */
 val_t Sys_native_argc___out( val_t recv )
 {
@@ -34,3 +50,14 @@ return___nit = BOX_NativeString(return___nitni);
 nitni_local_ref_clean(  );
 return return___nit;
 }
+/* friendly for string::String::to_cstring */
+char * string_String_to_cstring( String recv )
+{
+val_t recv___nit;
+char * result___nitni;
+val_t result___nit;
+recv___nit = recv->ref.val;
+result___nit = CALL_standard___string___String___to_cstring( recv___nit )( recv___nit );
+result___nitni = UNBOX_NativeString(result___nit);
+return result___nitni;
+}
index 50344aa..5e856ad 100644 (file)
@@ -3,6 +3,15 @@
 #ifndef STRING_NITNI_H
 #define STRING_NITNI_H
 
+#ifndef STRING_TYPE
+#define STRING_TYPE
+struct s_String{
+               struct nitni_ref ref; /* real ref struct, must be first */
+};
+typedef struct s_String *String;
+#define String_incr_ref( x ) nitni_global_ref_incr( (struct nitni_ref*)(x) )
+#define String_decr_ref( x ) nitni_global_ref_decr( (struct nitni_ref*)(x) )
+#endif
 #ifndef SYS_TYPE
 #define SYS_TYPE
 struct s_Sys{
@@ -14,9 +23,17 @@ typedef struct s_Sys *Sys;
 #endif
 #include "string_nit.h"
 
+/* out/indirect function for string::String::to_f */
+val_t String_to_f___out( val_t recv );
+
 /* out/indirect function for string::Sys::native_argc */
 val_t Sys_native_argc___out( val_t recv );
 
 /* out/indirect function for string::Sys::native_argv */
 val_t Sys_native_argv___out( val_t recv, val_t i );
 #endif
+/* friendly for string::String::to_cstring */
+char * string_String_to_cstring( String recv );
+#ifndef String_to_cstring
+#define String_to_cstring string_String_to_cstring
+#endif
diff --git a/c_src/string_nit.c b/c_src/string_nit.c
new file mode 100644 (file)
index 0000000..d29de0c
--- /dev/null
@@ -0,0 +1,39 @@
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * Copyright 2012 Alexis Laferrière <alexis.laf@xymus.net>
+ *
+ * This file is free software, which comes along with NIT.  This software is
+ * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without  even  the implied warranty of  MERCHANTABILITY or  FITNESS FOR A
+ * PARTICULAR PURPOSE.  You can modify it is you want,  provided this header
+ * is kept unaltered, and a notification of the changes is added.
+ * You  are  allowed  to  redistribute it and sell it, alone or is a part of
+ * another product.
+ */
+
+#include "string_nit.h"
+
+/*
+C implementation of string::String::to_f
+
+Imported methods signatures:
+       char * String_to_cstring( String recv ) for string::String::to_cstring
+*/
+float String_to_f___impl( String recv )
+{
+    float value;
+    char *str;
+    int read;
+
+    str = String_to_cstring( recv );
+
+    read = sscanf( str, "%f", &value );
+
+    if ( read <= 0 )
+    {
+        fprintf( stderr, "Failed to convert string \"\" to float." );
+        abort();
+    }
+
+    return value;
+}
index d451800..97e656f 100644 (file)
@@ -17,5 +17,6 @@
 
 #define kernel_Sys_Sys_native_argc_0(self) (glob_argc)
 #define kernel_Sys_Sys_native_argv_1(self, p0) (glob_argv[(p0)])
+float String_to_f___impl( String recv );
 
 #endif
index 6980ed7..c0d2297 100644 (file)
@@ -14,7 +14,7 @@ val_t syntax___SrcModuleLoader___file_type(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax.nit:31 */
+  /* syntax/syntax.nit:31 */
   if (!once_value_1) {
     fra.me.REG[0] = BOX_NativeString("nit");
     REGB0 = TAG_Int(3);
@@ -58,25 +58,25 @@ val_t syntax___SrcModuleLoader___parse_file(val_t p0, val_t p1, val_t p2, val_t
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
-  /* ./syntax//syntax.nit:35 */
+  /* syntax/syntax.nit:35 */
   fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
-  /* ./syntax//syntax.nit:35 */
+  /* syntax/syntax.nit:35 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-  /* ./syntax//syntax.nit:35 */
+  /* syntax/syntax.nit:35 */
   if (UNTAG_Bool(REGB1)) {
     fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     REGB1 = TAG_Int(0);
@@ -87,7 +87,7 @@ val_t syntax___SrcModuleLoader___parse_file(val_t p0, val_t p1, val_t p2, val_t
     REGB1 = REGB0;
   }
   fra.me.REG[6] = REGB1;
-  /* ./syntax//syntax.nit:36 */
+  /* syntax/syntax.nit:36 */
   fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[7])(fra.me.REG[7], (&(fra.me)), ((fun_t)OC_syntax___SrcModuleLoader___parse_file_1));
   switch ((&(fra.me))->has_broke) {
@@ -95,10 +95,10 @@ val_t syntax___SrcModuleLoader___parse_file(val_t p0, val_t p1, val_t p2, val_t
     case 1: (&(fra.me))->has_broke = 0; goto label3;
   }
   label3: while(0);
-  /* ./syntax//syntax.nit:41 */
+  /* syntax/syntax.nit:41 */
   REGB1 = TAG_Bool(!UNTAG_Bool(fra.me.REG[6]));
   if (UNTAG_Bool(REGB1)) {
-    /* ./syntax//syntax.nit:42 */
+    /* syntax/syntax.nit:42 */
     REGB1 = TAG_Int(5);
     fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
     if (!once_value_4) {
@@ -132,17 +132,17 @@ val_t syntax___SrcModuleLoader___parse_file(val_t p0, val_t p1, val_t p2, val_t
     fra.me.REG[7] = fra.me.REG[7];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
     fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-    CALL_mmloader___ToolContext___error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[6]);
+    CALL_toolcontext___ToolContext___error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[6]);
   }
-  /* ./syntax//syntax.nit:45 */
+  /* syntax/syntax.nit:45 */
   fra.me.REG[2] = NEW_SourceFile_location___SourceFile___init(fra.me.REG[3], fra.me.REG[2]);
-  /* ./syntax//syntax.nit:46 */
+  /* syntax/syntax.nit:46 */
   fra.me.REG[3] = NEW_Lexer_parser___lexer___Lexer___init(fra.me.REG[2]);
-  /* ./syntax//syntax.nit:47 */
+  /* syntax/syntax.nit:47 */
   fra.me.REG[3] = NEW_Parser_parser___Parser___init(fra.me.REG[3]);
-  /* ./syntax//syntax.nit:48 */
+  /* syntax/syntax.nit:48 */
   fra.me.REG[3] = CALL_parser___Parser___parse(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//syntax.nit:49 */
+  /* syntax/syntax.nit:49 */
   fra.me.REG[6] = CALL_parser___parser_nodes___Start___n_base(fra.me.REG[3])(fra.me.REG[3]);
   REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -157,22 +157,22 @@ val_t syntax___SrcModuleLoader___parse_file(val_t p0, val_t p1, val_t p2, val_t
     }
   }
   if (UNTAG_Bool(REGB1)) {
-    /* ./syntax//syntax.nit:50 */
+    /* syntax/syntax.nit:50 */
     fra.me.REG[6] = CALL_parser___parser_nodes___Start___n_eof(fra.me.REG[3])(fra.me.REG[3]);
-    /* ./syntax//syntax.nit:51 */
+    /* syntax/syntax.nit:51 */
     REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[6], COLOR_parser___parser_nodes___AError, ID_parser___parser_nodes___AError)) /*cast AError*/;
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Assert failed", NULL, LOCATE_syntax, 51);
     }
-    /* ./syntax//syntax.nit:52 */
+    /* syntax/syntax.nit:52 */
     fra.me.REG[0] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[6])(fra.me.REG[6]);
     fra.me.REG[6] = CALL_parser___lexer___AError___message(fra.me.REG[6])(fra.me.REG[6]);
-    CALL_mmloader___ToolContext___fatal_error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[6]);
+    CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[6]);
   }
-  /* ./syntax//syntax.nit:54 */
+  /* syntax/syntax.nit:54 */
   fra.me.REG[3] = CALL_parser___parser_nodes___Start___n_base(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//syntax.nit:55 */
+  /* syntax/syntax.nit:55 */
   REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -190,11 +190,11 @@ val_t syntax___SrcModuleLoader___parse_file(val_t p0, val_t p1, val_t p2, val_t
   } else {
     nit_abort("Assert failed", NULL, LOCATE_syntax, 55);
   }
-  /* ./syntax//syntax.nit:56 */
+  /* syntax/syntax.nit:56 */
   fra.me.REG[2] = NEW_Location_location___Location___with_file(fra.me.REG[2]);
-  /* ./syntax//syntax.nit:57 */
+  /* syntax/syntax.nit:57 */
   fra.me.REG[2] = NEW_MMSrcModule_syntax___syntax_base___MMSrcModule___init(fra.me.REG[1], fra.me.REG[3], fra.me.REG[5], fra.me.REG[4], fra.me.REG[2]);
-  /* ./syntax//syntax.nit:58 */
+  /* syntax/syntax.nit:58 */
   goto label7;
   label7: while(0);
   stack_frame_head = fra.me.prev;
@@ -234,9 +234,9 @@ val_t syntax___SrcModuleLoader___parse_file(val_t p0, val_t p1, val_t p2, val_t
       REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
       if (UNTAG_Bool(REGB2)) {
       } else {
-        /* ./../lib/standard//kernel.nit:378 */
+        /* ../lib/standard/kernel.nit:378 */
         REGB1 = TAG_Bool((REGB0)==(REGB1));
-        /* ./syntax//syntax.nit:36 */
+        /* syntax/syntax.nit:36 */
         REGB2 = REGB1;
       }
       REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
@@ -245,10 +245,10 @@ val_t syntax___SrcModuleLoader___parse_file(val_t p0, val_t p1, val_t p2, val_t
       REGB2 = REGB1;
     }
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//syntax.nit:38 */
+      /* syntax/syntax.nit:38 */
       REGB2 = TAG_Bool(false);
       closctx->REG[6] = REGB2;
-      /* ./syntax//syntax.nit:39 */
+      /* syntax/syntax.nit:39 */
       closctx->has_broke = 1;
       goto label2;
     }
@@ -281,9 +281,9 @@ void syntax___SrcModuleLoader___process_metamodel(val_t p0, val_t p1, val_t p2){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_syntax, 0);
   }
-  /* ./syntax//syntax.nit:63 */
+  /* syntax/syntax.nit:63 */
   CALL_syntax___MMSrcModule___process_supermodules(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./syntax//syntax.nit:64 */
+  /* syntax/syntax.nit:64 */
   REGB0 = TAG_Int(3);
   fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -309,8 +309,8 @@ void syntax___SrcModuleLoader___process_metamodel(val_t p0, val_t p1, val_t p2){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
   fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Int(2);
-  CALL_mmloader___ToolContext___info(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], REGB0);
-  /* ./syntax//syntax.nit:65 */
+  CALL_toolcontext___ToolContext___info(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], REGB0);
+  /* syntax/syntax.nit:65 */
   CALL_syntax___MMSrcModule___process_syntax(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -329,8 +329,6 @@ void syntax___SrcModuleLoader___init(val_t p0, int* init_table){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax.nit:68 */
-  CALL_mmloader___ModuleLoader___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
   return;
@@ -350,7 +348,7 @@ void syntax___MMSrcModule___process_supermodules(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax.nit:75 */
+  /* syntax/syntax.nit:75 */
   fra.me.REG[2] = CALL_syntax___syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___mmbuilder___AModule___import_super_modules(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -371,19 +369,19 @@ void syntax___MMSrcModule___process_syntax(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax.nit:82 */
+  /* syntax/syntax.nit:82 */
   CALL_syntax___mmbuilder___MMSrcModule___do_mmbuilder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//syntax.nit:83 */
-  CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//syntax.nit:85 */
+  /* syntax/syntax.nit:83 */
+  CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
+  /* syntax/syntax.nit:85 */
   CALL_syntax___typing___MMSrcModule___do_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//syntax.nit:86 */
-  CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//syntax.nit:88 */
+  /* syntax/syntax.nit:86 */
+  CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
+  /* syntax/syntax.nit:88 */
   CALL_syntax___icode_generation___MMSrcModule___generate_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//syntax.nit:89 */
-  CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//syntax.nit:91 */
+  /* syntax/syntax.nit:89 */
+  CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
+  /* syntax/syntax.nit:91 */
   REGB0 = CALL_syntax___ToolContext___keep_ast(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
@@ -405,7 +403,7 @@ val_t syntax___ToolContext___keep_ast(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax.nit:96 */
+  /* syntax/syntax.nit:96 */
   REGB0 = TAG_Bool(ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -429,7 +427,7 @@ void syntax___ToolContext___keep_ast__eq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./syntax//syntax.nit:96 */
+  /* syntax/syntax.nit:96 */
   ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
index 5161fac..172a4d4 100644 (file)
@@ -46,5 +46,5 @@ typedef val_t (*syntax___ToolContext___keep_ast_t)(val_t p0);
 static const char * const LOCATE_syntax___ToolContext___keep_ast__eq = "syntax::ToolContext::keep_ast=";
 void syntax___ToolContext___keep_ast__eq(val_t p0, val_t p1);
 typedef void (*syntax___ToolContext___keep_ast__eq_t)(val_t p0, val_t p1);
-val_t NEW_ToolContext_mmloader___ToolContext___init();
+val_t NEW_ToolContext_toolcontext___ToolContext___init();
 #endif
index c3e053a..2a0de5a 100644 (file)
@@ -22,7 +22,7 @@ void syntax___flow___FlowContext___check_is_set(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//flow.nit:37 */
+  /* syntax/flow.nit:37 */
   REGB0 = CALL_syntax___flow___Variable___must_be_set(fra.me.REG[2])(fra.me.REG[2]);
   if (UNTAG_Bool(REGB0)) {
     REGB0 = CALL_syntax___flow___FlowContext___is_set(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
@@ -32,7 +32,7 @@ void syntax___flow___FlowContext___check_is_set(val_t p0, val_t p1, val_t p2){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//flow.nit:38 */
+    /* syntax/flow.nit:38 */
     REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____visitor(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -81,7 +81,7 @@ val_t syntax___flow___FlowContext___stype(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//flow.nit:46 */
+  /* syntax/flow.nit:46 */
   fra.me.REG[1] = CALL_syntax___syntax_base___Variable___stype(fra.me.REG[1])(fra.me.REG[1]);
   goto label1;
   label1: while(0);
@@ -104,10 +104,10 @@ val_t syntax___flow___FlowContext___sub_setvariable(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//flow.nit:52 */
+  /* syntax/flow.nit:52 */
   fra.me.REG[2] = CALL_syntax___flow___FlowContext___node(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = NEW_SubFlowContext_syntax___flow___SubFlowContext___with_prev(fra.me.REG[0], fra.me.REG[2]);
-  /* ./syntax//flow.nit:53 */
+  /* syntax/flow.nit:53 */
   REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -115,7 +115,7 @@ val_t syntax___flow___FlowContext___sub_setvariable(val_t p0, val_t p1){
   }
   fra.me.REG[0] = ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//flow.nit:54 */
+  /* syntax/flow.nit:54 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -136,12 +136,12 @@ val_t syntax___flow___FlowContext___sub_unreash(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//flow.nit:60 */
+  /* syntax/flow.nit:60 */
   fra.me.REG[1] = NEW_SubFlowContext_syntax___flow___SubFlowContext___with_prev(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//flow.nit:61 */
+  /* syntax/flow.nit:61 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___flow___FlowContext____unreash(fra.me.REG[1]) = REGB0;
-  /* ./syntax//flow.nit:62 */
+  /* syntax/flow.nit:62 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -165,7 +165,7 @@ val_t syntax___flow___FlowContext___sub_with(val_t p0, val_t p1, val_t p2, val_t
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./syntax//flow.nit:68 */
+  /* syntax/flow.nit:68 */
   fra.me.REG[3] = NEW_CastFlowContext_syntax___flow___CastFlowContext___init(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
   goto label1;
   label1: while(0);
@@ -194,22 +194,22 @@ val_t syntax___flow___FlowContext___merge(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/standard//collection//array.nit:266 */
+  /* ../lib/standard/collection/array.nit:266 */
   fra.me.REG[3] = fra.me.REG[2];
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -221,58 +221,58 @@ val_t syntax___flow___FlowContext___merge(val_t p0, val_t p1, val_t p2){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-      /* ./syntax//flow.nit:76 */
+      /* syntax/flow.nit:76 */
       REGB1 = CALL_syntax___flow___FlowContext___unreash(fra.me.REG[5])(fra.me.REG[5]);
       REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
       if (UNTAG_Bool(REGB1)) {
       } else {
         nit_abort("Assert failed", NULL, LOCATE_syntax___flow, 76);
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./syntax//flow.nit:77 */
+  /* syntax/flow.nit:77 */
   REGB1 = TAG_Int(1);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./syntax//flow.nit:77 */
+    /* syntax/flow.nit:77 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
     fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
     goto label2;
   }
-  /* ./syntax//flow.nit:78 */
+  /* syntax/flow.nit:78 */
   fra.me.REG[2] = NEW_MergeFlowContext_syntax___flow___MergeFlowContext___init(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
   fra.me.REG[4] = fra.me.REG[2];
   goto label2;
@@ -303,25 +303,25 @@ val_t syntax___flow___FlowContext___merge_reash(val_t p0, val_t p1, val_t p2, va
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./syntax//flow.nit:86 */
+  /* syntax/flow.nit:86 */
   REGB0 = CALL_syntax___flow___FlowContext___unreash(fra.me.REG[2])(fra.me.REG[2]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//flow.nit:87 */
+    /* syntax/flow.nit:87 */
     REGB0 = CALL_syntax___flow___FlowContext___unreash(fra.me.REG[3])(fra.me.REG[3]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//flow.nit:88 */
+      /* syntax/flow.nit:88 */
       fra.me.REG[4] = CALL_syntax___flow___FlowContext___sub_unreash(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
       goto label1;
     } else {
-      /* ./syntax//flow.nit:90 */
+      /* syntax/flow.nit:90 */
       fra.me.REG[5] = fra.me.REG[3];
-      /* ./syntax//flow.nit:91 */
+      /* syntax/flow.nit:91 */
       fra.me.REG[3] = fra.me.REG[2];
-      /* ./syntax//flow.nit:92 */
+      /* syntax/flow.nit:92 */
       fra.me.REG[2] = fra.me.REG[5];
     }
   }
-  /* ./syntax//flow.nit:96 */
+  /* syntax/flow.nit:96 */
   REGB0 = CALL_syntax___flow___FlowContext___unreash(fra.me.REG[3])(fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(true);
@@ -335,11 +335,11 @@ val_t syntax___flow___FlowContext___merge_reash(val_t p0, val_t p1, val_t p2, va
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//flow.nit:97 */
+    /* syntax/flow.nit:97 */
     fra.me.REG[4] = fra.me.REG[2];
     goto label1;
   } else {
-    /* ./syntax//flow.nit:104 */
+    /* syntax/flow.nit:104 */
     REGB0 = TAG_Int(2);
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
@@ -365,7 +365,7 @@ val_t syntax___flow___FlowContext___node(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//flow.nit:111 */
+  /* syntax/flow.nit:111 */
   REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____node(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -393,9 +393,9 @@ void syntax___flow___FlowContext___init(val_t p0, val_t p1, val_t p2, int* init_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//flow.nit:116 */
+  /* syntax/flow.nit:116 */
   ATTR_syntax___flow___FlowContext____visitor(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//flow.nit:117 */
+  /* syntax/flow.nit:117 */
   ATTR_syntax___flow___FlowContext____node(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -414,7 +414,7 @@ val_t syntax___flow___FlowContext___unreash(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//flow.nit:120 */
+  /* syntax/flow.nit:120 */
   REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____unreash(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -437,7 +437,7 @@ val_t syntax___flow___FlowContext___already_unreash(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//flow.nit:123 */
+  /* syntax/flow.nit:123 */
   REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____already_unreash(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -461,7 +461,7 @@ void syntax___flow___FlowContext___already_unreash__eq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./syntax//flow.nit:123 */
+  /* syntax/flow.nit:123 */
   ATTR_syntax___flow___FlowContext____already_unreash(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -479,7 +479,7 @@ val_t syntax___flow___FlowContext___set_variables(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//flow.nit:127 */
+  /* syntax/flow.nit:127 */
   REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -504,7 +504,7 @@ val_t syntax___flow___FlowContext___is_set(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//flow.nit:133 */
+  /* syntax/flow.nit:133 */
   REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -535,7 +535,7 @@ void syntax___flow___RootFlowContext___init(val_t p0, val_t p1, val_t p2, int* i
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//flow.nit:142 */
+  /* syntax/flow.nit:142 */
   CALL_syntax___flow___FlowContext___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
@@ -554,7 +554,7 @@ val_t syntax___flow___SubFlowContext___prev(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//flow.nit:149 */
+  /* syntax/flow.nit:149 */
   REGB0 = TAG_Bool(ATTR_syntax___flow___SubFlowContext____prev(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -581,7 +581,7 @@ val_t syntax___flow___SubFlowContext___is_set(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//flow.nit:153 */
+  /* syntax/flow.nit:153 */
   REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -620,7 +620,7 @@ val_t syntax___flow___SubFlowContext___stype(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//flow.nit:158 */
+  /* syntax/flow.nit:158 */
   fra.me.REG[0] = CALL_syntax___flow___SubFlowContext___prev(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   goto label1;
@@ -648,7 +648,7 @@ void syntax___flow___SubFlowContext___with_prev(val_t p0, val_t p1, val_t p2, in
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//flow.nit:163 */
+  /* syntax/flow.nit:163 */
   REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____visitor(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -656,7 +656,7 @@ void syntax___flow___SubFlowContext___with_prev(val_t p0, val_t p1, val_t p2, in
   }
   fra.me.REG[3] = ATTR_syntax___flow___FlowContext____visitor(fra.me.REG[1]);
   CALL_syntax___flow___FlowContext___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2], init_table);
-  /* ./syntax//flow.nit:164 */
+  /* syntax/flow.nit:164 */
   ATTR_syntax___flow___SubFlowContext____prev(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos2] = 1;
@@ -679,7 +679,7 @@ val_t syntax___flow___CastFlowContext___stype(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//flow.nit:179 */
+  /* syntax/flow.nit:179 */
   REGB0 = TAG_Bool(ATTR_syntax___flow___CastFlowContext____variable(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -693,11 +693,11 @@ val_t syntax___flow___CastFlowContext___stype(val_t p0, val_t p1){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//flow.nit:180 */
+    /* syntax/flow.nit:180 */
     fra.me.REG[2] = ATTR_syntax___flow___CastFlowContext____stype(fra.me.REG[0]);
     goto label1;
   } else {
-    /* ./syntax//flow.nit:182 */
+    /* syntax/flow.nit:182 */
     fra.me.REG[0] = CALL_syntax___flow___SubFlowContext___prev(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
     fra.me.REG[2] = fra.me.REG[1];
@@ -729,11 +729,11 @@ void syntax___flow___CastFlowContext___init(val_t p0, val_t p1, val_t p2, val_t
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./syntax//flow.nit:188 */
+  /* syntax/flow.nit:188 */
   CALL_syntax___flow___SubFlowContext___with_prev(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  /* ./syntax//flow.nit:189 */
+  /* syntax/flow.nit:189 */
   ATTR_syntax___flow___CastFlowContext____variable(fra.me.REG[0]) = fra.me.REG[3];
-  /* ./syntax//flow.nit:190 */
+  /* syntax/flow.nit:190 */
   ATTR_syntax___flow___CastFlowContext____stype(fra.me.REG[0]) = fra.me.REG[4];
   stack_frame_head = fra.me.prev;
   init_table[itpos3] = 1;
@@ -762,9 +762,9 @@ void syntax___flow___MergeFlowContext___init(val_t p0, val_t p1, val_t p2, val_t
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./syntax//flow.nit:204 */
+  /* syntax/flow.nit:204 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./syntax//flow.nit:206 */
+  /* syntax/flow.nit:206 */
   REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____visitor(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -772,9 +772,9 @@ void syntax___flow___MergeFlowContext___init(val_t p0, val_t p1, val_t p2, val_t
   }
   fra.me.REG[5] = ATTR_syntax___flow___FlowContext____visitor(fra.me.REG[1]);
   CALL_syntax___flow___FlowContext___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[2], init_table);
-  /* ./syntax//flow.nit:207 */
+  /* syntax/flow.nit:207 */
   ATTR_syntax___flow___MergeFlowContext____alts(fra.me.REG[4]) = fra.me.REG[3];
-  /* ./syntax//flow.nit:208 */
+  /* syntax/flow.nit:208 */
   ATTR_syntax___flow___MergeFlowContext____base(fra.me.REG[4]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos4] = 1;
@@ -797,7 +797,7 @@ val_t syntax___flow___MergeFlowContext___stype(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//flow.nit:213 */
+  /* syntax/flow.nit:213 */
   REGB0 = TAG_Bool(ATTR_syntax___flow___MergeFlowContext____stypes(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -806,7 +806,7 @@ val_t syntax___flow___MergeFlowContext___stype(val_t p0, val_t p1){
   fra.me.REG[2] = ATTR_syntax___flow___MergeFlowContext____stypes(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//flow.nit:214 */
+    /* syntax/flow.nit:214 */
     REGB0 = TAG_Bool(ATTR_syntax___flow___MergeFlowContext____stypes(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -816,9 +816,9 @@ val_t syntax___flow___MergeFlowContext___stype(val_t p0, val_t p1){
     fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
     goto label1;
   } else {
-    /* ./syntax//flow.nit:216 */
+    /* syntax/flow.nit:216 */
     fra.me.REG[3] = CALL_syntax___flow___MergeFlowContext___merge_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    /* ./syntax//flow.nit:217 */
+    /* syntax/flow.nit:217 */
     REGB0 = TAG_Bool(ATTR_syntax___flow___MergeFlowContext____stypes(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -826,7 +826,7 @@ val_t syntax___flow___MergeFlowContext___stype(val_t p0, val_t p1){
     }
     fra.me.REG[0] = ATTR_syntax___flow___MergeFlowContext____stypes(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
-    /* ./syntax//flow.nit:218 */
+    /* syntax/flow.nit:218 */
     fra.me.REG[2] = fra.me.REG[3];
     goto label1;
   }
@@ -859,11 +859,11 @@ val_t syntax___flow___MergeFlowContext___merge_stype(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//flow.nit:224 */
+  /* syntax/flow.nit:224 */
   fra.me.REG[2] = NIT_NULL;
-  /* ./syntax//flow.nit:225 */
+  /* syntax/flow.nit:225 */
   REGB0 = TAG_Bool(false);
-  /* ./syntax//flow.nit:226 */
+  /* syntax/flow.nit:226 */
   REGB1 = TAG_Bool(ATTR_syntax___flow___MergeFlowContext____alts(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -876,27 +876,27 @@ val_t syntax___flow___MergeFlowContext___merge_stype(val_t p0, val_t p1){
     nit_abort("Reciever is null", NULL, LOCATE_syntax___flow, 226);
   }
   fra.me.REG[3] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-  /* ./syntax//flow.nit:227 */
+  /* syntax/flow.nit:227 */
   REGB1 = TAG_Bool(ATTR_syntax___flow___MergeFlowContext____alts(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_alts", LOCATE_syntax___flow, 227);
   }
   fra.me.REG[4] = ATTR_syntax___flow___MergeFlowContext____alts(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -908,20 +908,20 @@ val_t syntax___flow___MergeFlowContext___merge_stype(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
-      /* ./syntax//flow.nit:228 */
+      /* syntax/flow.nit:228 */
       fra.me.REG[6] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1]);
-      /* ./syntax//flow.nit:229 */
+      /* syntax/flow.nit:229 */
       REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -935,11 +935,11 @@ val_t syntax___flow___MergeFlowContext___merge_stype(val_t p0, val_t p1){
         }
       }
       if (UNTAG_Bool(REGB2)) {
-        /* ./syntax//flow.nit:230 */
+        /* syntax/flow.nit:230 */
         fra.me.REG[7] = NIT_NULL;
         goto label1;
       }
-      /* ./syntax//flow.nit:232 */
+      /* syntax/flow.nit:232 */
       REGB2 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[6],fra.me.REG[3]));
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -954,25 +954,25 @@ val_t syntax___flow___MergeFlowContext___merge_stype(val_t p0, val_t p1){
       }
       REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
       if (UNTAG_Bool(REGB2)) {
-        /* ./syntax//flow.nit:233 */
+        /* syntax/flow.nit:233 */
         fra.me.REG[3] = NIT_NULL;
       }
-      /* ./syntax//flow.nit:235 */
+      /* syntax/flow.nit:235 */
       REGB2 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
       if (UNTAG_Bool(REGB2)) {
-        /* ./syntax//flow.nit:236 */
+        /* syntax/flow.nit:236 */
         REGB2 = TAG_Bool(true);
         REGB0 = REGB2;
-        /* ./syntax//flow.nit:237 */
+        /* syntax/flow.nit:237 */
         goto label2;
       }
-      /* ./syntax//flow.nit:239 */
+      /* syntax/flow.nit:239 */
       REGB2 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_metamodel___static_type___MMNullableType, ID_metamodel___static_type___MMNullableType)) /*cast MMNullableType*/;
       if (UNTAG_Bool(REGB2)) {
-        /* ./syntax//flow.nit:240 */
+        /* syntax/flow.nit:240 */
         REGB2 = TAG_Bool(true);
         REGB0 = REGB2;
-        /* ./syntax//flow.nit:241 */
+        /* syntax/flow.nit:241 */
         REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
           nit_abort("Reciever is null", NULL, LOCATE_syntax___flow, 241);
@@ -980,7 +980,7 @@ val_t syntax___flow___MergeFlowContext___merge_stype(val_t p0, val_t p1){
         fra.me.REG[8] = CALL_metamodel___static_type___MMType___as_notnull(fra.me.REG[6])(fra.me.REG[6]);
         fra.me.REG[6] = fra.me.REG[8];
       }
-      /* ./syntax//flow.nit:243 */
+      /* syntax/flow.nit:243 */
       REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -1004,23 +1004,23 @@ val_t syntax___flow___MergeFlowContext___merge_stype(val_t p0, val_t p1){
         REGB2 = REGB3;
       }
       if (UNTAG_Bool(REGB2)) {
-        /* ./syntax//flow.nit:244 */
+        /* syntax/flow.nit:244 */
         fra.me.REG[2] = fra.me.REG[6];
       }
       label2: while(0);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label3;
     }
   }
   label3: while(0);
-  /* ./syntax//flow.nit:247 */
+  /* syntax/flow.nit:247 */
   REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -1035,13 +1035,13 @@ val_t syntax___flow___MergeFlowContext___merge_stype(val_t p0, val_t p1){
   }
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
   if (UNTAG_Bool(REGB1)) {
-    /* ./syntax//flow.nit:248 */
+    /* syntax/flow.nit:248 */
     fra.me.REG[7] = fra.me.REG[3];
     goto label1;
   }
-  /* ./syntax//flow.nit:250 */
+  /* syntax/flow.nit:250 */
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//flow.nit:251 */
+    /* syntax/flow.nit:251 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1055,7 +1055,7 @@ val_t syntax___flow___MergeFlowContext___merge_stype(val_t p0, val_t p1){
       }
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//flow.nit:252 */
+      /* syntax/flow.nit:252 */
       REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____visitor(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -1066,7 +1066,7 @@ val_t syntax___flow___MergeFlowContext___merge_stype(val_t p0, val_t p1){
       fra.me.REG[7] = fra.me.REG[3];
       goto label1;
     } else {
-      /* ./syntax//flow.nit:254 */
+      /* syntax/flow.nit:254 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___flow, 254);
@@ -1075,7 +1075,7 @@ val_t syntax___flow___MergeFlowContext___merge_stype(val_t p0, val_t p1){
       fra.me.REG[2] = fra.me.REG[3];
     }
   }
-  /* ./syntax//flow.nit:257 */
+  /* syntax/flow.nit:257 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1089,7 +1089,7 @@ val_t syntax___flow___MergeFlowContext___merge_stype(val_t p0, val_t p1){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//flow.nit:258 */
+    /* syntax/flow.nit:258 */
     REGB0 = TAG_Bool(ATTR_syntax___flow___MergeFlowContext____base(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1100,27 +1100,27 @@ val_t syntax___flow___MergeFlowContext___merge_stype(val_t p0, val_t p1){
     fra.me.REG[7] = fra.me.REG[3];
     goto label1;
   } else {
-    /* ./syntax//flow.nit:260 */
+    /* syntax/flow.nit:260 */
     REGB0 = TAG_Bool(ATTR_syntax___flow___MergeFlowContext____alts(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_alts", LOCATE_syntax___flow, 260);
     }
     fra.me.REG[3] = ATTR_syntax___flow___MergeFlowContext____alts(fra.me.REG[0]);
-    /* ./../lib/standard//collection//array.nit:269 */
+    /* ../lib/standard/collection/array.nit:269 */
     REGB0 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:270 */
+    /* ../lib/standard/collection/array.nit:270 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-    /* ./../lib/standard//collection//array.nit:271 */
+    /* ../lib/standard/collection/array.nit:271 */
     fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     while(1) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -1132,20 +1132,20 @@ val_t syntax___flow___MergeFlowContext___merge_stype(val_t p0, val_t p1){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       if (UNTAG_Bool(REGB1)) {
-        /* ./../lib/standard//collection//array.nit:273 */
+        /* ../lib/standard/collection/array.nit:273 */
         REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-        /* ./syntax//flow.nit:261 */
+        /* syntax/flow.nit:261 */
         fra.me.REG[4] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
-        /* ./syntax//flow.nit:262 */
+        /* syntax/flow.nit:262 */
         REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_syntax___flow, 262);
@@ -1153,7 +1153,7 @@ val_t syntax___flow___MergeFlowContext___merge_stype(val_t p0, val_t p1){
         REGB1 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
         REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
         if (UNTAG_Bool(REGB1)) {
-          /* ./syntax//flow.nit:263 */
+          /* syntax/flow.nit:263 */
           REGB1 = TAG_Bool(ATTR_syntax___flow___MergeFlowContext____base(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
           } else {
@@ -1164,20 +1164,20 @@ val_t syntax___flow___MergeFlowContext___merge_stype(val_t p0, val_t p1){
           fra.me.REG[7] = fra.me.REG[4];
           goto label1;
         }
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB1 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB0 = REGB1;
       } else {
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         goto label4;
       }
     }
     label4: while(0);
   }
-  /* ./syntax//flow.nit:267 */
+  /* syntax/flow.nit:267 */
   fra.me.REG[7] = fra.me.REG[2];
   goto label1;
   label1: while(0);
@@ -1205,7 +1205,7 @@ val_t syntax___flow___MergeFlowContext___is_set(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//flow.nit:272 */
+  /* syntax/flow.nit:272 */
   REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1214,31 +1214,31 @@ val_t syntax___flow___MergeFlowContext___is_set(val_t p0, val_t p1){
   fra.me.REG[2] = ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//flow.nit:273 */
+    /* syntax/flow.nit:273 */
     REGB0 = TAG_Bool(true);
     goto label1;
   } else {
-    /* ./syntax//flow.nit:275 */
+    /* syntax/flow.nit:275 */
     REGB1 = TAG_Bool(ATTR_syntax___flow___MergeFlowContext____alts(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_alts", LOCATE_syntax___flow, 275);
     }
     fra.me.REG[2] = ATTR_syntax___flow___MergeFlowContext____alts(fra.me.REG[0]);
-    /* ./../lib/standard//collection//array.nit:269 */
+    /* ../lib/standard/collection/array.nit:269 */
     REGB1 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:270 */
+    /* ../lib/standard/collection/array.nit:270 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
     }
     REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-    /* ./../lib/standard//collection//array.nit:271 */
+    /* ../lib/standard/collection/array.nit:271 */
     fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     while(1) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -1250,39 +1250,39 @@ val_t syntax___flow___MergeFlowContext___is_set(val_t p0, val_t p1){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       if (UNTAG_Bool(REGB2)) {
-        /* ./../lib/standard//collection//array.nit:273 */
+        /* ../lib/standard/collection/array.nit:273 */
         REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB1)];
-        /* ./syntax//flow.nit:276 */
+        /* syntax/flow.nit:276 */
         REGB2 = CALL_syntax___flow___FlowContext___is_set(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
         REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
         if (UNTAG_Bool(REGB2)) {
-          /* ./syntax//flow.nit:277 */
+          /* syntax/flow.nit:277 */
           REGB2 = TAG_Bool(false);
           REGB0 = REGB2;
           goto label1;
         }
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB1 = REGB2;
       } else {
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         goto label2;
       }
     }
     label2: while(0);
-    /* ./syntax//flow.nit:280 */
+    /* syntax/flow.nit:280 */
     REGB1 = TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1290,7 +1290,7 @@ val_t syntax___flow___MergeFlowContext___is_set(val_t p0, val_t p1){
     }
     fra.me.REG[0] = ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    /* ./syntax//flow.nit:281 */
+    /* syntax/flow.nit:281 */
     REGB1 = TAG_Bool(true);
     REGB0 = REGB1;
     goto label1;
@@ -1312,7 +1312,7 @@ val_t syntax___flow___Variable___must_be_set(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//flow.nit:289 */
+  /* syntax/flow.nit:289 */
   REGB0 = TAG_Bool(false);
   goto label1;
   label1: while(0);
@@ -1332,7 +1332,7 @@ val_t syntax___flow___VarVariable___must_be_set(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//flow.nit:293 */
+  /* syntax/flow.nit:293 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
index c912d17..3107406 100644 (file)
@@ -18,9 +18,9 @@ void syntax___icode_generation___A2IContext___stmt(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:28 */
+  /* syntax/icode_generation.nit:28 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//icode_generation.nit:30 */
+  /* syntax/icode_generation.nit:30 */
   fra.me.REG[3] = ATTR_syntax___icode_generation___A2IContext____current_node(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -36,7 +36,7 @@ void syntax___icode_generation___A2IContext___stmt(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:31 */
+    /* syntax/icode_generation.nit:31 */
     fra.me.REG[3] = ATTR_syntax___icode_generation___A2IContext____current_node(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -45,7 +45,7 @@ void syntax___icode_generation___A2IContext___stmt(val_t p0, val_t p1){
     fra.me.REG[3] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[3])(fra.me.REG[3]);
     CALL_icode___icode_builder___ICodeBuilder___current_location__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   } else {
-    /* ./syntax//icode_generation.nit:32 */
+    /* syntax/icode_generation.nit:32 */
     fra.me.REG[3] = CALL_syntax___icode_generation___A2IContext___visitor(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[3] = CALL_parser___parser_prod___Visitor___current_node(fra.me.REG[3])(fra.me.REG[3]);
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
@@ -62,7 +62,7 @@ void syntax___icode_generation___A2IContext___stmt(val_t p0, val_t p1){
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//icode_generation.nit:33 */
+      /* syntax/icode_generation.nit:33 */
       fra.me.REG[3] = CALL_syntax___icode_generation___A2IContext___visitor(fra.me.REG[2])(fra.me.REG[2]);
       fra.me.REG[3] = CALL_parser___parser_prod___Visitor___current_node(fra.me.REG[3])(fra.me.REG[3]);
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
@@ -73,7 +73,7 @@ void syntax___icode_generation___A2IContext___stmt(val_t p0, val_t p1){
       CALL_icode___icode_builder___ICodeBuilder___current_location__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
     }
   }
-  /* ./syntax//icode_generation.nit:35 */
+  /* syntax/icode_generation.nit:35 */
   CALL_SUPER_syntax___icode_generation___A2IContext___stmt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -100,7 +100,7 @@ val_t syntax___icode_generation___A2IContext___add_new_array(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   REGB0 = p2;
-  /* ./syntax//icode_generation.nit:41 */
+  /* syntax/icode_generation.nit:41 */
   fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___visitor(fra.me.REG[0])(fra.me.REG[0]);
   if (!once_value_1) {
     if (!once_value_2) {
@@ -117,13 +117,13 @@ val_t syntax___icode_generation___A2IContext___add_new_array(val_t p0, val_t p1,
   } else fra.me.REG[3] = once_value_1;
   fra.me.REG[3] = fra.me.REG[3];
   fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:42 */
+  /* syntax/icode_generation.nit:42 */
   fra.me.REG[2] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
   fra.me.REG[2] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra.me.REG[2]);
   fra.me.REG[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:43 */
+  /* syntax/icode_generation.nit:43 */
   REGB0 = TAG_Int(1);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
@@ -156,9 +156,9 @@ void syntax___icode_generation___A2IContext___add_call_array_add(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//icode_generation.nit:49 */
+  /* syntax/icode_generation.nit:49 */
   fra.me.REG[3] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:50 */
+  /* syntax/icode_generation.nit:50 */
   fra.me.REG[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra.me.REG[0])(fra.me.REG[0]);
   if (!once_value_1) {
     if (!once_value_2) {
@@ -175,7 +175,7 @@ void syntax___icode_generation___A2IContext___add_call_array_add(val_t p0, val_t
   } else fra.me.REG[5] = once_value_1;
   fra.me.REG[5] = fra.me.REG[5];
   fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:51 */
+  /* syntax/icode_generation.nit:51 */
   REGB0 = TAG_Int(2);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
@@ -203,9 +203,9 @@ val_t syntax___icode_generation___A2IContext___variable(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:54 */
+  /* syntax/icode_generation.nit:54 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//icode_generation.nit:58 */
+  /* syntax/icode_generation.nit:58 */
   REGB0 = TAG_Bool(ATTR_syntax___icode_generation___A2IContext____variables(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -214,7 +214,7 @@ val_t syntax___icode_generation___A2IContext___variable(val_t p0, val_t p1){
   fra.me.REG[3] = ATTR_syntax___icode_generation___A2IContext____variables(fra.me.REG[2]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:59 */
+    /* syntax/icode_generation.nit:59 */
     REGB0 = TAG_Bool(ATTR_syntax___icode_generation___A2IContext____variables(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -224,7 +224,7 @@ val_t syntax___icode_generation___A2IContext___variable(val_t p0, val_t p1){
     fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
     goto label1;
   } else {
-    /* ./syntax//icode_generation.nit:61 */
+    /* syntax/icode_generation.nit:61 */
     fra.me.REG[4] = CALL_syntax___syntax_base___Variable___stype(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMType, ID_metamodel___static_type___MMType)) /*cast MMType*/;
     if (UNTAG_Bool(REGB0)) {
@@ -232,7 +232,7 @@ val_t syntax___icode_generation___A2IContext___variable(val_t p0, val_t p1){
       nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 61);
     }
     fra.me.REG[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-    /* ./syntax//icode_generation.nit:62 */
+    /* syntax/icode_generation.nit:62 */
     REGB0 = TAG_Bool(ATTR_syntax___icode_generation___A2IContext____variables(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -240,7 +240,7 @@ val_t syntax___icode_generation___A2IContext___variable(val_t p0, val_t p1){
     }
     fra.me.REG[2] = ATTR_syntax___icode_generation___A2IContext____variables(fra.me.REG[2]);
     CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[4]);
-    /* ./syntax//icode_generation.nit:63 */
+    /* syntax/icode_generation.nit:63 */
     fra.me.REG[3] = fra.me.REG[4];
     goto label1;
   }
@@ -261,7 +261,7 @@ val_t syntax___icode_generation___A2IContext___closurevariables(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//icode_generation.nit:70 */
+  /* syntax/icode_generation.nit:70 */
   REGB0 = TAG_Bool(ATTR_syntax___icode_generation___A2IContext____closurevariables(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -284,7 +284,7 @@ val_t syntax___icode_generation___A2IContext___visitor(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//icode_generation.nit:73 */
+  /* syntax/icode_generation.nit:73 */
   REGB0 = TAG_Bool(ATTR_syntax___icode_generation___A2IContext____visitor(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -306,7 +306,7 @@ val_t syntax___icode_generation___A2IContext___return_seq(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//icode_generation.nit:76 */
+  /* syntax/icode_generation.nit:76 */
   fra.me.REG[0] = ATTR_syntax___icode_generation___A2IContext____return_seq(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -325,7 +325,7 @@ void syntax___icode_generation___A2IContext___return_seq__eq(val_t p0, val_t p1)
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:76 */
+  /* syntax/icode_generation.nit:76 */
   ATTR_syntax___icode_generation___A2IContext____return_seq(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -342,7 +342,7 @@ val_t syntax___icode_generation___A2IContext___return_value(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//icode_generation.nit:79 */
+  /* syntax/icode_generation.nit:79 */
   fra.me.REG[0] = ATTR_syntax___icode_generation___A2IContext____return_value(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -361,7 +361,7 @@ void syntax___icode_generation___A2IContext___return_value__eq(val_t p0, val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:79 */
+  /* syntax/icode_generation.nit:79 */
   ATTR_syntax___icode_generation___A2IContext____return_value(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -378,7 +378,7 @@ val_t syntax___icode_generation___A2IContext___method(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//icode_generation.nit:82 */
+  /* syntax/icode_generation.nit:82 */
   fra.me.REG[0] = ATTR_syntax___icode_generation___A2IContext____method(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -395,7 +395,7 @@ val_t syntax___icode_generation___A2IContext___selfreg(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//icode_generation.nit:85 */
+  /* syntax/icode_generation.nit:85 */
   fra.me.REG[0] = ATTR_syntax___icode_generation___A2IContext_____atselfreg(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -414,7 +414,7 @@ void syntax___icode_generation___A2IContext___selfreg__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:85 */
+  /* syntax/icode_generation.nit:85 */
   ATTR_syntax___icode_generation___A2IContext_____atselfreg(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -441,20 +441,20 @@ void syntax___icode_generation___A2IContext___init(val_t p0, val_t p1, val_t p2,
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./syntax//icode_generation.nit:88 */
+  /* syntax/icode_generation.nit:88 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./syntax//icode_generation.nit:90 */
+  /* syntax/icode_generation.nit:90 */
   fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
   CALL_icode___icode_builder___ICodeBuilder___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[2], init_table);
-  /* ./syntax//icode_generation.nit:91 */
+  /* syntax/icode_generation.nit:91 */
   ATTR_syntax___icode_generation___A2IContext____visitor(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./syntax//icode_generation.nit:92 */
+  /* syntax/icode_generation.nit:92 */
   fra.me.REG[1] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[2])(fra.me.REG[2]);
   ATTR_syntax___icode_generation___A2IContext____return_seq(fra.me.REG[4]) = fra.me.REG[1];
-  /* ./syntax//icode_generation.nit:93 */
+  /* syntax/icode_generation.nit:93 */
   fra.me.REG[2] = CALL_icode___icode_base___IRoutine___result(fra.me.REG[2])(fra.me.REG[2]);
   ATTR_syntax___icode_generation___A2IContext____return_value(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./syntax//icode_generation.nit:94 */
+  /* syntax/icode_generation.nit:94 */
   ATTR_syntax___icode_generation___A2IContext____method(fra.me.REG[4]) = fra.me.REG[3];
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -483,27 +483,27 @@ void syntax___icode_generation___A2IContext___invoke_super_init_calls_after(val_
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:100 */
+  /* syntax/icode_generation.nit:100 */
   fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___method(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:101 */
+  /* syntax/icode_generation.nit:101 */
   REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_syntax___syntax_base___MMSrcMethod, ID_syntax___syntax_base___MMSrcMethod)) /*cast MMSrcMethod*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_syntax___icode_generation, 101);
   }
-  /* ./syntax//icode_generation.nit:102 */
+  /* syntax/icode_generation.nit:102 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 102);
   }
   fra.me.REG[2] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:103 */
+  /* syntax/icode_generation.nit:103 */
   REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AConcreteInitPropdef, ID_parser___parser_nodes___AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_syntax___icode_generation, 103);
   }
-  /* ./syntax//icode_generation.nit:105 */
+  /* syntax/icode_generation.nit:105 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 105);
@@ -513,11 +513,11 @@ void syntax___icode_generation___A2IContext___invoke_super_init_calls_after(val_
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//icode_generation.nit:106 */
+  /* syntax/icode_generation.nit:106 */
   REGB0 = TAG_Int(0);
-  /* ./syntax//icode_generation.nit:107 */
+  /* syntax/icode_generation.nit:107 */
   REGB1 = TAG_Int(0);
-  /* ./syntax//icode_generation.nit:108 */
+  /* syntax/icode_generation.nit:108 */
   REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -532,25 +532,25 @@ void syntax___icode_generation___A2IContext___invoke_super_init_calls_after(val_
   }
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//icode_generation.nit:109 */
+    /* syntax/icode_generation.nit:109 */
     while(1) {
       REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 109);
       }
       fra.me.REG[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra.me.REG[2])(fra.me.REG[2]);
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       REGB2 = REGB0;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB3 = TAG_Int(0);
       REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB4)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB3)) {
         REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
@@ -563,29 +563,29 @@ void syntax___icode_generation___A2IContext___invoke_super_init_calls_after(val_
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB4 = TAG_Bool(false);
         REGB3 = REGB4;
       }
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
       REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB2)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label2;
       label2: while(0);
-      /* ./syntax//icode_generation.nit:109 */
+      /* syntax/icode_generation.nit:109 */
       REGB2 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[1]));
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -600,43 +600,43 @@ void syntax___icode_generation___A2IContext___invoke_super_init_calls_after(val_
       }
       REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
       if (UNTAG_Bool(REGB2)) {
-        /* ./syntax//icode_generation.nit:110 */
+        /* syntax/icode_generation.nit:110 */
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-        /* ./syntax//icode_generation.nit:110 */
+        /* syntax/icode_generation.nit:110 */
         REGB0 = REGB2;
       } else {
-        /* ./syntax//icode_generation.nit:109 */
+        /* syntax/icode_generation.nit:109 */
         goto label3;
       }
     }
     label3: while(0);
-    /* ./syntax//icode_generation.nit:112 */
+    /* syntax/icode_generation.nit:112 */
     REGB2 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-    /* ./syntax//icode_generation.nit:112 */
+    /* syntax/icode_generation.nit:112 */
     REGB0 = REGB2;
-    /* ./syntax//icode_generation.nit:114 */
+    /* syntax/icode_generation.nit:114 */
     while(1) {
       REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 114);
       }
       fra.me.REG[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra.me.REG[2])(fra.me.REG[2]);
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       REGB2 = REGB1;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB3 = TAG_Int(0);
       REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB4)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB3)) {
         REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
@@ -649,29 +649,29 @@ void syntax___icode_generation___A2IContext___invoke_super_init_calls_after(val_
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB4 = TAG_Bool(false);
         REGB3 = REGB4;
       }
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
       REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB2)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label4;
       label4: while(0);
-      /* ./syntax//icode_generation.nit:114 */
+      /* syntax/icode_generation.nit:114 */
       REGB2 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[1]));
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -686,34 +686,34 @@ void syntax___icode_generation___A2IContext___invoke_super_init_calls_after(val_
       }
       REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
       if (UNTAG_Bool(REGB2)) {
-        /* ./syntax//icode_generation.nit:115 */
+        /* syntax/icode_generation.nit:115 */
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-        /* ./syntax//icode_generation.nit:115 */
+        /* syntax/icode_generation.nit:115 */
         REGB1 = REGB2;
       } else {
-        /* ./syntax//icode_generation.nit:114 */
+        /* syntax/icode_generation.nit:114 */
         goto label5;
       }
     }
     label5: while(0);
-    /* ./syntax//icode_generation.nit:117 */
+    /* syntax/icode_generation.nit:117 */
     REGB2 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-    /* ./syntax//icode_generation.nit:117 */
+    /* syntax/icode_generation.nit:117 */
     REGB1 = REGB2;
   }
-  /* ./syntax//icode_generation.nit:119 */
+  /* syntax/icode_generation.nit:119 */
   fra.me.REG[1] = NIT_NULL;
-  /* ./syntax//icode_generation.nit:120 */
+  /* syntax/icode_generation.nit:120 */
   REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 120);
   }
   fra.me.REG[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -725,26 +725,26 @@ void syntax___icode_generation___A2IContext___invoke_super_init_calls_after(val_
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-  /* ./syntax//icode_generation.nit:120 */
+  /* syntax/icode_generation.nit:120 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//icode_generation.nit:121 */
+    /* syntax/icode_generation.nit:121 */
     REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
       nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 121);
     }
     fra.me.REG[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra.me.REG[2])(fra.me.REG[2]);
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB2 = TAG_Int(0);
     REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     if (UNTAG_Bool(REGB2)) {
       REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
@@ -757,73 +757,73 @@ void syntax___icode_generation___A2IContext___invoke_super_init_calls_after(val_
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
     } else {
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB3 = TAG_Bool(false);
       REGB2 = REGB3;
     }
     if (UNTAG_Bool(REGB2)) {
     } else {
-      nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+      nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
     }
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
     REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
       nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
     }
-    /* ./../lib/standard//collection//array.nit:718 */
+    /* ../lib/standard/collection/array.nit:718 */
     fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB1)];
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:281 */
     goto label6;
     label6: while(0);
-    /* ./syntax//icode_generation.nit:121 */
+    /* syntax/icode_generation.nit:121 */
     fra.me.REG[1] = fra.me.REG[3];
   }
-  /* ./syntax//icode_generation.nit:123 */
+  /* syntax/icode_generation.nit:123 */
   REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 123);
   }
   fra.me.REG[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:124 */
+  /* syntax/icode_generation.nit:124 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./syntax//icode_generation.nit:124 */
+    /* syntax/icode_generation.nit:124 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//icode_generation.nit:125 */
+      /* syntax/icode_generation.nit:125 */
       REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 125);
       }
       fra.me.REG[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra.me.REG[2])(fra.me.REG[2]);
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       REGB2 = REGB0;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB3 = TAG_Int(0);
       REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB4)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB3)) {
         REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
@@ -836,29 +836,29 @@ void syntax___icode_generation___A2IContext___invoke_super_init_calls_after(val_
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB4 = TAG_Bool(false);
         REGB3 = REGB4;
       }
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
       REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB2)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label7;
       label7: while(0);
-      /* ./syntax//icode_generation.nit:126 */
+      /* syntax/icode_generation.nit:126 */
       REGB2 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[3],fra.me.REG[1]));
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -868,9 +868,9 @@ void syntax___icode_generation___A2IContext___invoke_super_init_calls_after(val_
       if (UNTAG_Bool(REGB2)) {
         goto label8;
       }
-      /* ./syntax//icode_generation.nit:127 */
+      /* syntax/icode_generation.nit:127 */
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-      /* ./syntax//icode_generation.nit:128 */
+      /* syntax/icode_generation.nit:128 */
       fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[3])(fra.me.REG[3]);
       REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
@@ -881,34 +881,34 @@ void syntax___icode_generation___A2IContext___invoke_super_init_calls_after(val_
       REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB3));
       if (UNTAG_Bool(REGB4)) {
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB3 = TAG_Bool((REGB2)==(REGB3));
-        /* ./syntax//icode_generation.nit:128 */
+        /* syntax/icode_generation.nit:128 */
         REGB4 = REGB3;
       }
       if (UNTAG_Bool(REGB4)) {
-        /* ./syntax//icode_generation.nit:129 */
+        /* syntax/icode_generation.nit:129 */
         fra.me.REG[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[0])(fra.me.REG[0]);
         fra.me.REG[5] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[5])(fra.me.REG[5]);
         fra.me.REG[5] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[5])(fra.me.REG[5]);
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
       } else {
-        /* ./syntax//icode_generation.nit:131 */
+        /* syntax/icode_generation.nit:131 */
         fra.me.REG[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[0])(fra.me.REG[0]);
         fra.me.REG[5] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[5])(fra.me.REG[5]);
         CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_syntax___icode_generation___A2IContext___invoke_super_init_calls_after_9));
       }
-      /* ./syntax//icode_generation.nit:135 */
+      /* syntax/icode_generation.nit:135 */
       fra.me.REG[4] = NEW_ICall_icode___icode_base___ICall___init(fra.me.REG[3], fra.me.REG[4]);
       CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-      /* ./syntax//icode_generation.nit:136 */
+      /* syntax/icode_generation.nit:136 */
       REGB4 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB4 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB4));
-      /* ./syntax//icode_generation.nit:136 */
+      /* syntax/icode_generation.nit:136 */
       REGB0 = REGB4;
     } else {
-      /* ./syntax//icode_generation.nit:124 */
+      /* syntax/icode_generation.nit:124 */
       goto label8;
     }
   }
@@ -933,7 +933,7 @@ void syntax___icode_generation___A2IContext___invoke_super_init_calls_after(val_
           fra.me.closure_funs = CREG;
           fra.me.REG[0] = p0;
           CREG[0] = clos_fun0;
-          /* ./syntax//icode_generation.nit:132 */
+          /* syntax/icode_generation.nit:132 */
           CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[4])(closctx->REG[4], fra.me.REG[0]);
           stack_frame_head = fra.me.prev;
           return;
@@ -955,7 +955,7 @@ void syntax___icode_generation___A2IContext___generate_stmt(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:146 */
+  /* syntax/icode_generation.nit:146 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -971,17 +971,17 @@ void syntax___icode_generation___A2IContext___generate_stmt(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//icode_generation.nit:147 */
+  /* syntax/icode_generation.nit:147 */
   fra.me.REG[2] = ATTR_syntax___icode_generation___A2IContext____current_node(fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:148 */
+  /* syntax/icode_generation.nit:148 */
   ATTR_syntax___icode_generation___A2IContext____current_node(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//icode_generation.nit:149 */
+  /* syntax/icode_generation.nit:149 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 149);
   }
   CALL_syntax___icode_generation___AExpr___generate_icode(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:150 */
+  /* syntax/icode_generation.nit:150 */
   ATTR_syntax___icode_generation___A2IContext____current_node(fra.me.REG[0]) = fra.me.REG[2];
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -1004,22 +1004,22 @@ val_t syntax___icode_generation___A2IContext___generate_expr(val_t p0, val_t p1)
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:153 */
+  /* syntax/icode_generation.nit:153 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//icode_generation.nit:156 */
+  /* syntax/icode_generation.nit:156 */
   fra.me.REG[3] = ATTR_syntax___icode_generation___A2IContext____current_node(fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:157 */
+  /* syntax/icode_generation.nit:157 */
   ATTR_syntax___icode_generation___A2IContext____current_node(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./syntax//icode_generation.nit:158 */
+  /* syntax/icode_generation.nit:158 */
   fra.me.REG[1] = CALL_syntax___icode_generation___AExpr___generate_icode(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 158);
   }
-  /* ./syntax//icode_generation.nit:159 */
+  /* syntax/icode_generation.nit:159 */
   ATTR_syntax___icode_generation___A2IContext____current_node(fra.me.REG[2]) = fra.me.REG[3];
-  /* ./syntax//icode_generation.nit:160 */
+  /* syntax/icode_generation.nit:160 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -1037,7 +1037,7 @@ val_t syntax___icode_generation___EscapableBlock___break_seq(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//icode_generation.nit:165 */
+  /* syntax/icode_generation.nit:165 */
   fra.me.REG[0] = ATTR_syntax___icode_generation___EscapableBlock____break_seq(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1056,7 +1056,7 @@ void syntax___icode_generation___EscapableBlock___break_seq__eq(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:165 */
+  /* syntax/icode_generation.nit:165 */
   ATTR_syntax___icode_generation___EscapableBlock____break_seq(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1073,7 +1073,7 @@ val_t syntax___icode_generation___EscapableBlock___continue_seq(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//icode_generation.nit:168 */
+  /* syntax/icode_generation.nit:168 */
   fra.me.REG[0] = ATTR_syntax___icode_generation___EscapableBlock____continue_seq(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1092,7 +1092,7 @@ void syntax___icode_generation___EscapableBlock___continue_seq__eq(val_t p0, val
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:168 */
+  /* syntax/icode_generation.nit:168 */
   ATTR_syntax___icode_generation___EscapableBlock____continue_seq(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1109,7 +1109,7 @@ val_t syntax___icode_generation___EscapableBlock___break_value(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//icode_generation.nit:171 */
+  /* syntax/icode_generation.nit:171 */
   fra.me.REG[0] = ATTR_syntax___icode_generation___EscapableBlock____break_value(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1128,7 +1128,7 @@ void syntax___icode_generation___EscapableBlock___break_value__eq(val_t p0, val_
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:171 */
+  /* syntax/icode_generation.nit:171 */
   ATTR_syntax___icode_generation___EscapableBlock____break_value(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1145,7 +1145,7 @@ val_t syntax___icode_generation___EscapableBlock___continue_value(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//icode_generation.nit:174 */
+  /* syntax/icode_generation.nit:174 */
   fra.me.REG[0] = ATTR_syntax___icode_generation___EscapableBlock____continue_value(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1164,7 +1164,7 @@ void syntax___icode_generation___EscapableBlock___continue_value__eq(val_t p0, v
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:174 */
+  /* syntax/icode_generation.nit:174 */
   ATTR_syntax___icode_generation___EscapableBlock____continue_value(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1184,9 +1184,9 @@ void syntax___icode_generation___MMSrcModule___generate_icode(val_t p0, val_t p1
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:182 */
+  /* syntax/icode_generation.nit:182 */
   fra.me.REG[1] = NEW_A2IVisitor_syntax___icode_generation___A2IVisitor___init(fra.me.REG[1], fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:183 */
+  /* syntax/icode_generation.nit:183 */
   fra.me.REG[2] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead___values(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_syntax___icode_generation___MMSrcModule___generate_icode_1));
@@ -1209,7 +1209,7 @@ void syntax___icode_generation___MMSrcModule___generate_icode(val_t p0, val_t p1
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./syntax//icode_generation.nit:184 */
+    /* syntax/icode_generation.nit:184 */
     fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___values(fra.me.REG[0])(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], closctx, ((fun_t)OC_syntax___icode_generation___MMSrcModule___generate_icode_2));
@@ -1233,16 +1233,16 @@ void syntax___icode_generation___MMSrcModule___generate_icode(val_t p0, val_t p1
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./syntax//icode_generation.nit:185 */
+      /* syntax/icode_generation.nit:185 */
       REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_syntax___syntax_base___MMSrcMethod, ID_syntax___syntax_base___MMSrcMethod)) /*cast MMSrcMethod*/;
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//icode_generation.nit:186 */
+        /* syntax/icode_generation.nit:186 */
         CALL_syntax___icode_generation___MMSrcMethod___generate_iroutine(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
       } else {
-        /* ./syntax//icode_generation.nit:187 */
+        /* syntax/icode_generation.nit:187 */
         REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_syntax___syntax_base___MMSrcAttribute, ID_syntax___syntax_base___MMSrcAttribute)) /*cast MMSrcAttribute*/;
         if (UNTAG_Bool(REGB0)) {
-          /* ./syntax//icode_generation.nit:188 */
+          /* syntax/icode_generation.nit:188 */
           CALL_syntax___icode_generation___MMSrcAttribute___generate_iroutine(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
         }
       }
@@ -1261,7 +1261,7 @@ val_t syntax___icode_generation___MMSrcAttribute___iroutine(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//icode_generation.nit:196 */
+  /* syntax/icode_generation.nit:196 */
   fra.me.REG[0] = ATTR_syntax___icode_generation___MMSrcAttribute____iroutine(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1280,7 +1280,7 @@ void syntax___icode_generation___MMSrcAttribute___iroutine__eq(val_t p0, val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:196 */
+  /* syntax/icode_generation.nit:196 */
   ATTR_syntax___icode_generation___MMSrcAttribute____iroutine(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1303,7 +1303,7 @@ void syntax___icode_generation___MMSrcAttribute___generate_iroutine(val_t p0, va
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:201 */
+  /* syntax/icode_generation.nit:201 */
   fra.me.REG[2] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1324,14 +1324,14 @@ void syntax___icode_generation___MMSrcAttribute___generate_iroutine(val_t p0, va
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:202 */
+    /* syntax/icode_generation.nit:202 */
     fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 202);
     }
     fra.me.REG[2] = CALL_icode___icode_builder___MMSignature___generate_empty_iroutine(fra.me.REG[2])(fra.me.REG[2]);
-    /* ./syntax//icode_generation.nit:203 */
+    /* syntax/icode_generation.nit:203 */
     fra.me.REG[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -1339,16 +1339,16 @@ void syntax___icode_generation___MMSrcAttribute___generate_iroutine(val_t p0, va
     }
     fra.me.REG[3] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[3])(fra.me.REG[3]);
     CALL_icode___icode_base___IRoutine___location__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-    /* ./syntax//icode_generation.nit:204 */
+    /* syntax/icode_generation.nit:204 */
     fra.me.REG[3] = NEW_A2IContext_syntax___icode_generation___A2IContext___init(fra.me.REG[1], fra.me.REG[2], NIT_NULL);
-    /* ./syntax//icode_generation.nit:205 */
+    /* syntax/icode_generation.nit:205 */
     CALL_syntax___icode_generation___A2IVisitor___icode_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-    /* ./syntax//icode_generation.nit:206 */
+    /* syntax/icode_generation.nit:206 */
     fra.me.REG[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[0])(fra.me.REG[0]);
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-    /* ./syntax//icode_generation.nit:207 */
+    /* syntax/icode_generation.nit:207 */
     CALL_syntax___icode_generation___A2IVisitor___icode_ctx__eq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-    /* ./syntax//icode_generation.nit:208 */
+    /* syntax/icode_generation.nit:208 */
     ATTR_syntax___icode_generation___MMSrcAttribute____iroutine(fra.me.REG[0]) = fra.me.REG[2];
   }
   stack_frame_head = fra.me.prev;
@@ -1366,7 +1366,7 @@ val_t syntax___icode_generation___MMSrcMethod___iroutine(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//icode_generation.nit:214 */
+  /* syntax/icode_generation.nit:214 */
   fra.me.REG[0] = ATTR_syntax___icode_generation___MMSrcMethod____iroutine(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1385,7 +1385,7 @@ void syntax___icode_generation___MMSrcMethod___iroutine__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:214 */
+  /* syntax/icode_generation.nit:214 */
   ATTR_syntax___icode_generation___MMSrcMethod____iroutine(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1408,14 +1408,14 @@ void syntax___icode_generation___MMSrcMethod___generate_iroutine(val_t p0, val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:219 */
+  /* syntax/icode_generation.nit:219 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 219);
   }
   fra.me.REG[2] = CALL_icode___icode_builder___MMSignature___generate_empty_iroutine(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:220 */
+  /* syntax/icode_generation.nit:220 */
   fra.me.REG[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1431,7 +1431,7 @@ void syntax___icode_generation___MMSrcMethod___generate_iroutine(val_t p0, val_t
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:221 */
+    /* syntax/icode_generation.nit:221 */
     fra.me.REG[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -1440,15 +1440,15 @@ void syntax___icode_generation___MMSrcMethod___generate_iroutine(val_t p0, val_t
     fra.me.REG[3] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[3])(fra.me.REG[3]);
     CALL_icode___icode_base___IRoutine___location__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   }
-  /* ./syntax//icode_generation.nit:223 */
+  /* syntax/icode_generation.nit:223 */
   fra.me.REG[3] = NEW_A2IContext_syntax___icode_generation___A2IContext___init(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:224 */
+  /* syntax/icode_generation.nit:224 */
   CALL_syntax___icode_generation___A2IVisitor___icode_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:225 */
+  /* syntax/icode_generation.nit:225 */
   CALL_syntax___icode_generation___MMSrcMethod___inner_generate_iroutine(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:226 */
+  /* syntax/icode_generation.nit:226 */
   CALL_syntax___icode_generation___A2IVisitor___icode_ctx__eq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-  /* ./syntax//icode_generation.nit:227 */
+  /* syntax/icode_generation.nit:227 */
   ATTR_syntax___icode_generation___MMSrcMethod____iroutine(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   return;
@@ -1463,7 +1463,7 @@ void syntax___icode_generation___MMSrcMethod___inner_generate_iroutine(val_t p0,
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//icode_generation.nit:230 */
+  /* syntax/icode_generation.nit:230 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___icode_generation, 230);
   stack_frame_head = fra.me.prev;
   return;
@@ -1484,7 +1484,7 @@ void syntax___icode_generation___MMReadImplementationMethod___inner_generate_iro
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:237 */
+  /* syntax/icode_generation.nit:237 */
   fra.me.REG[0] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1495,7 +1495,7 @@ void syntax___icode_generation___MMReadImplementationMethod___inner_generate_iro
   fra.me.REG[2] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___add_attr_read(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:238 */
+  /* syntax/icode_generation.nit:238 */
   CALL_icode___icode_builder___ICodeBuilder___add_return_value(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
@@ -1517,10 +1517,10 @@ void syntax___icode_generation___MMWriteImplementationMethod___inner_generate_ir
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:245 */
+  /* syntax/icode_generation.nit:245 */
   fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:246 */
+  /* syntax/icode_generation.nit:246 */
   fra.me.REG[0] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1550,7 +1550,7 @@ void syntax___icode_generation___MMMethSrcMethod___inner_generate_iroutine(val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:253 */
+  /* syntax/icode_generation.nit:253 */
   fra.me.REG[1] = CALL_syntax___icode_generation___A2IContext___visitor(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[0])(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -1586,39 +1586,39 @@ void syntax___icode_generation___MMImplicitInit___inner_generate_iroutine(val_t
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:260 */
+  /* syntax/icode_generation.nit:260 */
   fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:261 */
+  /* syntax/icode_generation.nit:261 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_syntax___syntax_base___MMImplicitInit___unassigned_attributes(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./syntax//icode_generation.nit:262 */
+  /* syntax/icode_generation.nit:262 */
   fra.me.REG[3] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:263 */
+  /* syntax/icode_generation.nit:263 */
   fra.me.REG[4] = CALL_syntax___syntax_base___MMImplicitInit___super_inits(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -1630,28 +1630,28 @@ void syntax___icode_generation___MMImplicitInit___inner_generate_iroutine(val_t
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-      /* ./syntax//icode_generation.nit:264 */
+      /* syntax/icode_generation.nit:264 */
       REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[6], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Assert failed", NULL, LOCATE_syntax___icode_generation, 264);
       }
-      /* ./syntax//icode_generation.nit:265 */
+      /* syntax/icode_generation.nit:265 */
       REGB2 = TAG_Int(1);
       fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
-      /* ./syntax//icode_generation.nit:266 */
+      /* syntax/icode_generation.nit:266 */
       fra.me.REG[8] = CALL_syntax___syntax_base___MMImplicitInit___super_init(fra.me.REG[0])(fra.me.REG[0]);
       REGB2 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[6],fra.me.REG[8]));
       if (UNTAG_Bool(REGB2)) {
@@ -1660,93 +1660,93 @@ void syntax___icode_generation___MMImplicitInit___inner_generate_iroutine(val_t
         REGB2 = REGB3;
       }
       if (UNTAG_Bool(REGB2)) {
-        /* ./syntax//icode_generation.nit:267 */
+        /* syntax/icode_generation.nit:267 */
         fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-        /* ./syntax//icode_generation.nit:268 */
+        /* syntax/icode_generation.nit:268 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
-        /* ./syntax//icode_generation.nit:269 */
+        /* syntax/icode_generation.nit:269 */
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:347 */
+        /* ../lib/standard/kernel.nit:347 */
         REGB3 = REGB1;
-        /* ./../lib/standard//kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:352 */
         while(1) {
           REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
           if (UNTAG_Bool(REGB4)) {
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB4 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
-          /* ./../lib/standard//kernel.nit:352 */
+          /* ../lib/standard/kernel.nit:352 */
           if (UNTAG_Bool(REGB4)) {
-            /* ./syntax//icode_generation.nit:269 */
+            /* syntax/icode_generation.nit:269 */
             REGB4 = REGB2;
-            /* ./syntax//icode_generation.nit:270 */
+            /* syntax/icode_generation.nit:270 */
             fra.me.REG[9] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[2])(fra.me.REG[2], REGB4);
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
-            /* ./../lib/standard//kernel.nit:354 */
+            /* ../lib/standard/kernel.nit:354 */
             REGB4 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB4 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
-            /* ./../lib/standard//kernel.nit:354 */
+            /* ../lib/standard/kernel.nit:354 */
             REGB2 = REGB4;
           } else {
-            /* ./../lib/standard//kernel.nit:352 */
+            /* ../lib/standard/kernel.nit:352 */
             goto label1;
           }
         }
         label1: while(0);
-        /* ./syntax//icode_generation.nit:272 */
+        /* syntax/icode_generation.nit:272 */
         fra.me.REG[8] = NEW_ICall_icode___icode_base___ICall___init(fra.me.REG[6], fra.me.REG[8]);
         CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
       } else {
-        /* ./syntax//icode_generation.nit:274 */
+        /* syntax/icode_generation.nit:274 */
         fra.me.REG[7] = NEW_ICall_icode___icode_base___ICall___init(fra.me.REG[6], fra.me.REG[7]);
         CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./syntax//icode_generation.nit:277 */
+  /* syntax/icode_generation.nit:277 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./../lib/standard//kernel.nit:347 */
+  /* ../lib/standard/kernel.nit:347 */
   REGB2 = REGB1;
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB3)) {
-      /* ./syntax//icode_generation.nit:277 */
+      /* syntax/icode_generation.nit:277 */
       REGB3 = REGB2;
-      /* ./syntax//icode_generation.nit:278 */
+      /* syntax/icode_generation.nit:278 */
       fra.me.REG[5] = CALL_syntax___syntax_base___MMImplicitInit___unassigned_attributes(fra.me.REG[0])(fra.me.REG[0]);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB4 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB5 = TAG_Int(0);
       REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB6)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB5)) {
         REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
         if (UNTAG_Bool(REGB5)) {
@@ -1759,40 +1759,40 @@ void syntax___icode_generation___MMImplicitInit___inner_generate_iroutine(val_t
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB6 = TAG_Bool(false);
         REGB5 = REGB6;
       }
       if (UNTAG_Bool(REGB5)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
       REGB5 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB5)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB4)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label3;
       label3: while(0);
-      /* ./syntax//icode_generation.nit:279 */
+      /* syntax/icode_generation.nit:279 */
       fra.me.REG[4] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[2])(fra.me.REG[2], REGB3);
       fra.me.REG[4] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra.me.REG[5], fra.me.REG[3], fra.me.REG[4]);
       CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = REGB3;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label4;
     }
   }
@@ -1814,7 +1814,7 @@ void syntax___icode_generation___A2IVisitor___icode_ctx__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:286 */
+  /* syntax/icode_generation.nit:286 */
   ATTR_syntax___icode_generation___A2IVisitor____icode_ctx(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1833,7 +1833,7 @@ val_t syntax___icode_generation___A2IVisitor___icode_ctx(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//icode_generation.nit:287 */
+  /* syntax/icode_generation.nit:287 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_syntax___icode_generation___A2IVisitor____icode_ctx(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
@@ -1861,7 +1861,7 @@ void syntax___icode_generation___A2IVisitor___visit(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:288 */
+  /* syntax/icode_generation.nit:288 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 288);
@@ -1888,7 +1888,7 @@ void syntax___icode_generation___A2IVisitor___init(val_t p0, val_t p1, val_t p2,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//icode_generation.nit:289 */
+  /* syntax/icode_generation.nit:289 */
   CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
@@ -1908,7 +1908,7 @@ void syntax___icode_generation___ANode___accept_icode_generation(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:296 */
+  /* syntax/icode_generation.nit:296 */
   CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -1933,12 +1933,12 @@ void syntax___icode_generation___AAttrPropdef___accept_icode_generation(val_t p0
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:300 */
+  /* syntax/icode_generation.nit:300 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//icode_generation.nit:302 */
+  /* syntax/icode_generation.nit:302 */
   fra.me.REG[3] = CALL_syntax___icode_generation___A2IVisitor___icode_ctx(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:303 */
+  /* syntax/icode_generation.nit:303 */
   fra.me.REG[4] = CALL_syntax___syntax_base___APropdef___self_var(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[4] = CALL_syntax___icode_generation___A2IContext___variable(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[3])(fra.me.REG[3]);
@@ -1946,11 +1946,11 @@ void syntax___icode_generation___AAttrPropdef___accept_icode_generation(val_t p0
   fra.me.REG[5] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[5])(fra.me.REG[5]);
   fra.me.REG[5] = NEW_IMove_icode___icode_base___IMove___init(fra.me.REG[4], fra.me.REG[5]);
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:304 */
+  /* syntax/icode_generation.nit:304 */
   CALL_SUPER_syntax___icode_generation___AAttrPropdef___accept_icode_generation(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:305 */
+  /* syntax/icode_generation.nit:305 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:306 */
+  /* syntax/icode_generation.nit:306 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1965,7 +1965,7 @@ void syntax___icode_generation___AAttrPropdef___accept_icode_generation(val_t p0
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:307 */
+    /* syntax/icode_generation.nit:307 */
     fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[3])(fra.me.REG[3]);
     fra.me.REG[1] = CALL_icode___icode_base___IRoutine___result(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_icode___icode_base___IRegister, ID_icode___icode_base___IRegister)) /*cast IRegister*/;
@@ -1996,12 +1996,12 @@ void syntax___icode_generation___AMethPropdef___accept_icode_generation(val_t p0
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:313 */
+  /* syntax/icode_generation.nit:313 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//icode_generation.nit:315 */
+  /* syntax/icode_generation.nit:315 */
   CALL_SUPER_syntax___icode_generation___AMethPropdef___accept_icode_generation(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:316 */
+  /* syntax/icode_generation.nit:316 */
   fra.me.REG[3] = CALL_syntax___icode_generation___A2IVisitor___icode_ctx(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
   CALL_syntax___icode_generation___AMethPropdef___fill_iroutine(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[1]);
@@ -2018,7 +2018,7 @@ void syntax___icode_generation___AMethPropdef___fill_iroutine(val_t p0, val_t p1
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//icode_generation.nit:319 */
+  /* syntax/icode_generation.nit:319 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___icode_generation, 319);
   stack_frame_head = fra.me.prev;
   return;
@@ -2049,32 +2049,32 @@ void syntax___icode_generation___ASignature___fill_iroutine_parameters(val_t p0,
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./syntax//icode_generation.nit:324 */
+  /* syntax/icode_generation.nit:324 */
   fra.me.REG[5] = fra.me.REG[0];
-  /* ./syntax//icode_generation.nit:326 */
+  /* syntax/icode_generation.nit:326 */
   fra.me.REG[6] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[5])(fra.me.REG[5]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[6])(fra.me.REG[6], (&(fra.me)), ((fun_t)OC_syntax___icode_generation___ASignature___fill_iroutine_parameters_1));
-  /* ./syntax//icode_generation.nit:335 */
+  /* syntax/icode_generation.nit:335 */
   REGB0 = TAG_Int(0);
   fra.me.REG[3] = CALL_parser___parser_nodes___ASignature___n_closure_decls(fra.me.REG[5])(fra.me.REG[5]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//icode_generation.nit:335 */
+      /* syntax/icode_generation.nit:335 */
       REGB2 = REGB0;
-      /* ./syntax//icode_generation.nit:336 */
+      /* syntax/icode_generation.nit:336 */
       fra.me.REG[3] = CALL_parser___parser_nodes___ASignature___n_closure_decls(fra.me.REG[5])(fra.me.REG[5]);
       fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
-      /* ./syntax//icode_generation.nit:337 */
+      /* syntax/icode_generation.nit:337 */
       fra.me.REG[0] = CALL_syntax___icode_generation___A2IContext___closurevariables(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[3] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[3])(fra.me.REG[3]);
       REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
@@ -2083,14 +2083,14 @@ void syntax___icode_generation___ASignature___fill_iroutine_parameters(val_t p0,
       }
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[4])(fra.me.REG[4], REGB2);
       CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label2;
     }
   }
@@ -2118,13 +2118,13 @@ void syntax___icode_generation___ASignature___fill_iroutine_parameters(val_t p0,
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./syntax//icode_generation.nit:327 */
+    /* syntax/icode_generation.nit:327 */
     fra.me.REG[1] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = CALL_syntax___icode_generation___A2IContext___variable(closctx->REG[1])(closctx->REG[1], fra.me.REG[1]);
-    /* ./syntax//icode_generation.nit:328 */
+    /* syntax/icode_generation.nit:328 */
     REGB0 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[2] = CALL_metamodel___static_type___MMSignature_____bra(closctx->REG[2])(closctx->REG[2], REGB0);
-    /* ./syntax//icode_generation.nit:329 */
+    /* syntax/icode_generation.nit:329 */
     fra.me.REG[3] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[3] = CALL_syntax___syntax_base___Variable___stype(fra.me.REG[3])(fra.me.REG[3]);
     REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_metamodel___static_type___MMType, ID_metamodel___static_type___MMType)) /*cast MMType*/;
@@ -2132,16 +2132,16 @@ void syntax___icode_generation___ASignature___fill_iroutine_parameters(val_t p0,
     } else {
       nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 329);
     }
-    /* ./syntax//icode_generation.nit:330 */
+    /* syntax/icode_generation.nit:330 */
     REGB0 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//icode_generation.nit:331 */
+      /* syntax/icode_generation.nit:331 */
       REGB0 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(closctx->REG[3])(closctx->REG[3], REGB0);
       CALL_icode___icode_builder___ICodeBuilder___add_type_cast(closctx->REG[1])(closctx->REG[1], fra.me.REG[2], fra.me.REG[3]);
     }
-    /* ./syntax//icode_generation.nit:333 */
+    /* syntax/icode_generation.nit:333 */
     REGB0 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[0] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(closctx->REG[3])(closctx->REG[3], REGB0);
     fra.me.REG[0] = NEW_IMove_icode___icode_base___IMove___init(fra.me.REG[1], fra.me.REG[0]);
@@ -2171,21 +2171,21 @@ void syntax___icode_generation___AClosureDecl___accept_icode_generation(val_t p0
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:343 */
+  /* syntax/icode_generation.nit:343 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//icode_generation.nit:345 */
+  /* syntax/icode_generation.nit:345 */
   fra.me.REG[1] = CALL_syntax___icode_generation___A2IVisitor___icode_ctx(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:346 */
+  /* syntax/icode_generation.nit:346 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_icode___icode_builder___MMSignature___generate_empty_iclosuredef(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:347 */
+  /* syntax/icode_generation.nit:347 */
   fra.me.REG[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:348 */
+  /* syntax/icode_generation.nit:348 */
   fra.me.REG[5] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[3])(fra.me.REG[3]);
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:349 */
+  /* syntax/icode_generation.nit:349 */
   fra.me.REG[5] = CALL_syntax___typing___AClosureDecl___escapable(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[6] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
@@ -2193,7 +2193,7 @@ void syntax___icode_generation___AClosureDecl___accept_icode_generation(val_t p0
     nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 349);
   }
   CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-  /* ./syntax//icode_generation.nit:350 */
+  /* syntax/icode_generation.nit:350 */
   fra.me.REG[6] = CALL_syntax___typing___AClosureDecl___escapable(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[5] = CALL_icode___icode_base___IRoutine___result(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
@@ -2201,7 +2201,7 @@ void syntax___icode_generation___AClosureDecl___accept_icode_generation(val_t p0
     nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 350);
   }
   CALL_syntax___icode_generation___EscapableBlock___continue_value__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:351 */
+  /* syntax/icode_generation.nit:351 */
   fra.me.REG[5] = CALL_syntax___typing___AClosureDecl___escapable(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[6] = CALL_syntax___icode_generation___A2IContext___return_seq(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
@@ -2209,7 +2209,7 @@ void syntax___icode_generation___AClosureDecl___accept_icode_generation(val_t p0
     nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 351);
   }
   CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-  /* ./syntax//icode_generation.nit:352 */
+  /* syntax/icode_generation.nit:352 */
   fra.me.REG[6] = CALL_syntax___typing___AClosureDecl___escapable(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[5] = CALL_syntax___icode_generation___A2IContext___return_value(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
@@ -2217,14 +2217,14 @@ void syntax___icode_generation___AClosureDecl___accept_icode_generation(val_t p0
     nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 352);
   }
   CALL_syntax___icode_generation___EscapableBlock___break_value__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:353 */
+  /* syntax/icode_generation.nit:353 */
   fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_signature(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[6] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[6] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[6])(fra.me.REG[6]);
   fra.me.REG[6] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[6])(fra.me.REG[6]);
   fra.me.REG[7] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[3])(fra.me.REG[3]);
   CALL_syntax___icode_generation___ASignature___fill_iroutine_parameters(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[6], fra.me.REG[7], NIT_NULL);
-  /* ./syntax//icode_generation.nit:355 */
+  /* syntax/icode_generation.nit:355 */
   fra.me.REG[7] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2240,10 +2240,10 @@ void syntax___icode_generation___AClosureDecl___accept_icode_generation(val_t p0
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:356 */
+    /* syntax/icode_generation.nit:356 */
     fra.me.REG[7] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra.me.REG[2])(fra.me.REG[2]);
     CALL_syntax___icode_generation___A2IContext___generate_stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
-    /* ./syntax//icode_generation.nit:357 */
+    /* syntax/icode_generation.nit:357 */
     fra.me.REG[7] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[7] = CALL_icode___icode_base___IRoutine___closure_decls(fra.me.REG[7])(fra.me.REG[7]);
     REGB0 = CALL_syntax___syntax_base___AClosureDecl___position(fra.me.REG[2])(fra.me.REG[2]);
@@ -2257,7 +2257,7 @@ void syntax___icode_generation___AClosureDecl___accept_icode_generation(val_t p0
       nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 357);
     }
     CALL_icode___icode_base___IClosureDecl___default__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
-    /* ./syntax//icode_generation.nit:360 */
+    /* syntax/icode_generation.nit:360 */
     fra.me.REG[2] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[2] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = CALL_metamodel___static_type___MMClosure___is_break(fra.me.REG[2])(fra.me.REG[2]);
@@ -2280,7 +2280,7 @@ void syntax___icode_generation___AClosureDecl___accept_icode_generation(val_t p0
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//icode_generation.nit:361 */
+      /* syntax/icode_generation.nit:361 */
       fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___return_seq(fra.me.REG[1])(fra.me.REG[1]);
       REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
@@ -2290,7 +2290,7 @@ void syntax___icode_generation___AClosureDecl___accept_icode_generation(val_t p0
       CALL_icode___icode_builder___ICodeBuilder___add_escape(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
     }
   }
-  /* ./syntax//icode_generation.nit:364 */
+  /* syntax/icode_generation.nit:364 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
   stack_frame_head = fra.me.prev;
   return;
@@ -2317,27 +2317,27 @@ void syntax___icode_generation___AConcreteMethPropdef___fill_iroutine(val_t p0,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//icode_generation.nit:371 */
+  /* syntax/icode_generation.nit:371 */
   fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:372 */
+  /* syntax/icode_generation.nit:372 */
   fra.me.REG[4] = CALL_syntax___syntax_base___APropdef___self_var(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_syntax___icode_generation___A2IContext___variable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:373 */
+  /* syntax/icode_generation.nit:373 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:278 */
+  /* ../lib/standard/collection/array.nit:278 */
   fra.me.REG[5] = fra.me.REG[3];
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//array.nit:280 */
+  /* ../lib/standard/collection/array.nit:280 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -2350,39 +2350,39 @@ void syntax___icode_generation___AConcreteMethPropdef___fill_iroutine(val_t p0,
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
   } else {
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:280 */
     REGB2 = TAG_Bool(false);
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+    nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
   }
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
   REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
   }
-  /* ./../lib/standard//collection//array.nit:718 */
+  /* ../lib/standard/collection/array.nit:718 */
   fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-  /* ./../lib/standard//collection//array.nit:281 */
+  /* ../lib/standard/collection/array.nit:281 */
   goto label1;
   label1: while(0);
-  /* ./syntax//icode_generation.nit:373 */
+  /* syntax/icode_generation.nit:373 */
   fra.me.REG[5] = NEW_IMove_icode___icode_base___IMove___init(fra.me.REG[4], fra.me.REG[5]);
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:374 */
+  /* syntax/icode_generation.nit:374 */
   CALL_syntax___icode_generation___A2IContext___selfreg__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:375 */
+  /* syntax/icode_generation.nit:375 */
   CALL_standard___collection___abstract_collection___Sequence___shift(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:377 */
+  /* syntax/icode_generation.nit:377 */
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:378 */
+  /* syntax/icode_generation.nit:378 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2390,7 +2390,7 @@ void syntax___icode_generation___AConcreteMethPropdef___fill_iroutine(val_t p0,
   }
   fra.me.REG[2] = CALL_metamodel___static_type___MMSignature___recv(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:379 */
+  /* syntax/icode_generation.nit:379 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2406,7 +2406,7 @@ void syntax___icode_generation___AConcreteMethPropdef___fill_iroutine(val_t p0,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:380 */
+    /* syntax/icode_generation.nit:380 */
     fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[5] = CALL_icode___icode_base___IRoutine___closure_decls(fra.me.REG[5])(fra.me.REG[5]);
@@ -2416,13 +2416,13 @@ void syntax___icode_generation___AConcreteMethPropdef___fill_iroutine(val_t p0,
     }
     CALL_syntax___icode_generation___ASignature___fill_iroutine_parameters(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[5]);
   }
-  /* ./syntax//icode_generation.nit:383 */
+  /* syntax/icode_generation.nit:383 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AConcreteInitPropdef, ID_parser___parser_nodes___AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:384 */
+    /* syntax/icode_generation.nit:384 */
     CALL_syntax___icode_generation___A2IContext___invoke_super_init_calls_after(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
   }
-  /* ./syntax//icode_generation.nit:387 */
+  /* syntax/icode_generation.nit:387 */
   fra.me.REG[5] = CALL_parser___parser_nodes___AConcreteMethPropdef___n_block(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2438,11 +2438,11 @@ void syntax___icode_generation___AConcreteMethPropdef___fill_iroutine(val_t p0,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:388 */
+    /* syntax/icode_generation.nit:388 */
     fra.me.REG[0] = CALL_parser___parser_nodes___AConcreteMethPropdef___n_block(fra.me.REG[0])(fra.me.REG[0]);
     CALL_syntax___icode_generation___A2IContext___generate_stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
-  /* ./syntax//icode_generation.nit:390 */
+  /* syntax/icode_generation.nit:390 */
   CALL_syntax___icode_generation___A2IContext___selfreg__eq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
   stack_frame_head = fra.me.prev;
   return;
@@ -2464,7 +2464,7 @@ void syntax___icode_generation___AExternPropdef___fill_iroutine(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//icode_generation.nit:398 */
+  /* syntax/icode_generation.nit:398 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_syntax___syntax_base___MMMethSrcMethod, ID_syntax___syntax_base___MMMethSrcMethod)) /*cast MMMethSrcMethod*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2494,12 +2494,12 @@ void syntax___icode_generation___AExternPropdef___fill_iroutine(val_t p0, val_t
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./syntax//icode_generation.nit:400 */
+    /* syntax/icode_generation.nit:400 */
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra.me.REG[0])(fra.me.REG[0]);
-    /* ./syntax//icode_generation.nit:402 */
+    /* syntax/icode_generation.nit:402 */
     REGB0 = CALL_syntax___syntax_base___MMLocalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//icode_generation.nit:403 */
+      /* syntax/icode_generation.nit:403 */
       fra.me.REG[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
       REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
@@ -2509,15 +2509,15 @@ void syntax___icode_generation___AExternPropdef___fill_iroutine(val_t p0, val_t
       fra.me.REG[2] = NEW_List_standard___collection___list___List___init();
       fra.me.REG[2] = NEW_INew_icode___icode_base___INew___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
     } else {
-      /* ./syntax//icode_generation.nit:405 */
+      /* syntax/icode_generation.nit:405 */
       fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
       fra.me.REG[1] = NEW_ICall_icode___icode_base___ICall___init(fra.me.REG[0], fra.me.REG[1]);
       fra.me.REG[2] = fra.me.REG[1];
     }
-    /* ./syntax//icode_generation.nit:407 */
+    /* syntax/icode_generation.nit:407 */
     REGB0 = TAG_Bool(true);
     CALL_icode___icode_base___IAbsCall___is_explicit_from_extern__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    /* ./syntax//icode_generation.nit:408 */
+    /* syntax/icode_generation.nit:408 */
     CALL_icode___icode_builder___ICodeBuilder___stmt(closctx->REG[1])(closctx->REG[1], fra.me.REG[2]);
     stack_frame_head = fra.me.prev;
     return;
@@ -2546,15 +2546,15 @@ void syntax___icode_generation___AExternInitPropdef___fill_iroutine(val_t p0, va
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//icode_generation.nit:414 */
+  /* syntax/icode_generation.nit:414 */
   fra.me.REG[3] = fra.me.REG[1];
   fra.me.REG[4] = fra.me.REG[2];
-  /* ./syntax//icode_generation.nit:416 */
+  /* syntax/icode_generation.nit:416 */
   fra.me.REG[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[5] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[5])(fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:417 */
+  /* syntax/icode_generation.nit:417 */
   fra.me.REG[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:418 */
+  /* syntax/icode_generation.nit:418 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[5])(fra.me.REG[5]);
   REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -2562,43 +2562,33 @@ void syntax___icode_generation___AExternInitPropdef___fill_iroutine(val_t p0, va
   }
   REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]);
   REGB2 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-  /* ./syntax//icode_generation.nit:418 */
+  /* syntax/icode_generation.nit:418 */
   REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
   if (UNTAG_Bool(REGB1)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB2 = TAG_Bool((REGB0)==(REGB2));
-    /* ./syntax//icode_generation.nit:418 */
+    /* syntax/icode_generation.nit:418 */
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_syntax___icode_generation, 418);
   }
-  /* ./syntax//icode_generation.nit:419 */
+  /* syntax/icode_generation.nit:419 */
   REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 419);
   }
   fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___recv(fra.me.REG[6])(fra.me.REG[6]);
-  /* ./syntax//icode_generation.nit:420 */
-  REGB1 = TAG_Bool(0);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
-    REGB1 = REGB2;
-  }
-  REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-  if (UNTAG_Bool(REGB1)) {
-    /* ./syntax//icode_generation.nit:421 */
-    fra.me.REG[7] = NEW_IRegister_icode___icode_base___IRegister___init(fra.me.REG[6]);
-    fra.me.REG[5] = NEW_INative_icode___icode_base___INative___init(fra.me.REG[4], fra.me.REG[5]);
-    fra.me.REG[6] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5], fra.me.REG[6]);
-    CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7], fra.me.REG[6]);
-  }
-  /* ./syntax//icode_generation.nit:424 */
+  /* syntax/icode_generation.nit:420 */
+  fra.me.REG[7] = NEW_IRegister_icode___icode_base___IRegister___init(fra.me.REG[6]);
+  fra.me.REG[5] = NEW_INative_icode___icode_base___INative___init(fra.me.REG[4], fra.me.REG[5]);
+  fra.me.REG[6] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5], fra.me.REG[6]);
+  CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7], fra.me.REG[6]);
+  /* syntax/icode_generation.nit:422 */
   CALL_SUPER_syntax___icode_generation___AExternInitPropdef___fill_iroutine(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
@@ -2610,7 +2600,7 @@ void syntax___icode_generation___ADeferredMethPropdef___fill_iroutine(val_t p0,
   static val_t once_value_1; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 429;
+  fra.me.line = 427;
   fra.me.meth = LOCATE_syntax___icode_generation___ADeferredMethPropdef___fill_iroutine;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2621,7 +2611,7 @@ void syntax___icode_generation___ADeferredMethPropdef___fill_iroutine(val_t p0,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//icode_generation.nit:431 */
+  /* syntax/icode_generation.nit:429 */
   REGB0 = TAG_Int(0);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2644,7 +2634,7 @@ void syntax___icode_generation___AExternMethPropdef___fill_iroutine(val_t p0, va
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 436;
+  fra.me.line = 434;
   fra.me.meth = LOCATE_syntax___icode_generation___AExternMethPropdef___fill_iroutine;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -2660,20 +2650,20 @@ void syntax___icode_generation___AExternMethPropdef___fill_iroutine(val_t p0, va
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//icode_generation.nit:436 */
+  /* syntax/icode_generation.nit:434 */
   fra.me.REG[3] = fra.me.REG[1];
   fra.me.REG[4] = fra.me.REG[2];
-  /* ./syntax//icode_generation.nit:438 */
+  /* syntax/icode_generation.nit:436 */
   fra.me.REG[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[5] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[5])(fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:439 */
+  /* syntax/icode_generation.nit:437 */
   fra.me.REG[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 439);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 437);
   }
   fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[6])(fra.me.REG[6]);
-  /* ./syntax//icode_generation.nit:440 */
+  /* syntax/icode_generation.nit:438 */
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2688,16 +2678,16 @@ void syntax___icode_generation___AExternMethPropdef___fill_iroutine(val_t p0, va
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:441 */
+    /* syntax/icode_generation.nit:439 */
     fra.me.REG[7] = NEW_INative_icode___icode_base___INative___init(fra.me.REG[4], fra.me.REG[5]);
     fra.me.REG[6] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7], fra.me.REG[6]);
     CALL_icode___icode_builder___ICodeBuilder___add_return_value(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
   } else {
-    /* ./syntax//icode_generation.nit:443 */
+    /* syntax/icode_generation.nit:441 */
     fra.me.REG[5] = NEW_INative_icode___icode_base___INative___init(fra.me.REG[4], fra.me.REG[5]);
     CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
   }
-  /* ./syntax//icode_generation.nit:446 */
+  /* syntax/icode_generation.nit:444 */
   CALL_SUPER_syntax___icode_generation___AExternMethPropdef___fill_iroutine(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
@@ -2709,7 +2699,7 @@ void syntax___icode_generation___AInternMethPropdef___fill_iroutine(val_t p0, va
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 451;
+  fra.me.line = 449;
   fra.me.meth = LOCATE_syntax___icode_generation___AInternMethPropdef___fill_iroutine;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -2722,17 +2712,17 @@ void syntax___icode_generation___AInternMethPropdef___fill_iroutine(val_t p0, va
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//icode_generation.nit:453 */
+  /* syntax/icode_generation.nit:451 */
   fra.me.REG[0] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:454 */
+  /* syntax/icode_generation.nit:452 */
   fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 454);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 452);
   }
   fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:455 */
+  /* syntax/icode_generation.nit:453 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2747,12 +2737,12 @@ void syntax___icode_generation___AInternMethPropdef___fill_iroutine(val_t p0, va
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:456 */
+    /* syntax/icode_generation.nit:454 */
     fra.me.REG[4] = NEW_INative_icode___icode_base___INative___init(fra.me.REG[2], fra.me.REG[0]);
     fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[3]);
     CALL_icode___icode_builder___ICodeBuilder___add_return_value(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   } else {
-    /* ./syntax//icode_generation.nit:458 */
+    /* syntax/icode_generation.nit:456 */
     fra.me.REG[0] = NEW_INative_icode___icode_base___INative___init(fra.me.REG[2], fra.me.REG[0]);
     CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
@@ -2764,7 +2754,7 @@ void syntax___icode_generation___AExpr___accept_icode_generation(val_t p0, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 466;
+  fra.me.line = 464;
   fra.me.meth = LOCATE_syntax___icode_generation___AExpr___accept_icode_generation;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2781,13 +2771,13 @@ val_t syntax___icode_generation___AExpr___generate_icode(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 468;
+  fra.me.line = 466;
   fra.me.meth = LOCATE_syntax___icode_generation___AExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//icode_generation.nit:468 */
-  nit_abort("Deferred method called", NULL, LOCATE_syntax___icode_generation, 468);
+  /* syntax/icode_generation.nit:466 */
+  nit_abort("Deferred method called", NULL, LOCATE_syntax___icode_generation, 466);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
@@ -2798,7 +2788,7 @@ val_t syntax___icode_generation___AVardeclExpr___generate_icode(val_t p0, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 474;
+  fra.me.line = 472;
   fra.me.meth = LOCATE_syntax___icode_generation___AVardeclExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2808,12 +2798,12 @@ val_t syntax___icode_generation___AVardeclExpr___generate_icode(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:476 */
+  /* syntax/icode_generation.nit:474 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AVardeclExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___variable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:477 */
+  /* syntax/icode_generation.nit:475 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AVardeclExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:478 */
+  /* syntax/icode_generation.nit:476 */
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2828,11 +2818,11 @@ val_t syntax___icode_generation___AVardeclExpr___generate_icode(val_t p0, val_t
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:479 */
+    /* syntax/icode_generation.nit:477 */
     fra.me.REG[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
     CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
   }
-  /* ./syntax//icode_generation.nit:481 */
+  /* syntax/icode_generation.nit:479 */
   fra.me.REG[0] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -2844,7 +2834,7 @@ val_t syntax___icode_generation___ABlockExpr___generate_icode(val_t p0, val_t p1
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 486;
+  fra.me.line = 484;
   fra.me.meth = LOCATE_syntax___icode_generation___ABlockExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2853,10 +2843,10 @@ val_t syntax___icode_generation___ABlockExpr___generate_icode(val_t p0, val_t p1
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:488 */
+  /* syntax/icode_generation.nit:486 */
   fra.me.REG[0] = CALL_parser___parser_nodes___ABlockExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_syntax___icode_generation___ABlockExpr___generate_icode_1));
-  /* ./syntax//icode_generation.nit:489 */
+  /* syntax/icode_generation.nit:487 */
   fra.me.REG[1] = NIT_NULL;
   goto label2;
   label2: while(0);
@@ -2889,7 +2879,7 @@ val_t syntax___icode_generation___ADoExpr___generate_icode(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 494;
+  fra.me.line = 492;
   fra.me.meth = LOCATE_syntax___icode_generation___ADoExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -2901,27 +2891,27 @@ val_t syntax___icode_generation___ADoExpr___generate_icode(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:496 */
+  /* syntax/icode_generation.nit:494 */
   fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:497 */
+  /* syntax/icode_generation.nit:495 */
   fra.me.REG[3] = NEW_ISeq_icode___icode_base___ISeq___init();
-  /* ./syntax//icode_generation.nit:498 */
+  /* syntax/icode_generation.nit:496 */
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:499 */
+  /* syntax/icode_generation.nit:497 */
   fra.me.REG[4] = CALL_syntax___typing___AAbsControl___escapable(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 499);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 497);
   }
   CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:500 */
+  /* syntax/icode_generation.nit:498 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:502 */
+  /* syntax/icode_generation.nit:500 */
   fra.me.REG[0] = CALL_parser___parser_nodes___ADoExpr___n_block(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___icode_generation___A2IContext___generate_stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:504 */
+  /* syntax/icode_generation.nit:502 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:505 */
+  /* syntax/icode_generation.nit:503 */
   fra.me.REG[2] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -2935,7 +2925,7 @@ val_t syntax___icode_generation___AReturnExpr___generate_icode(val_t p0, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 510;
+  fra.me.line = 508;
   fra.me.meth = LOCATE_syntax___icode_generation___AReturnExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -2946,11 +2936,11 @@ val_t syntax___icode_generation___AReturnExpr___generate_icode(val_t p0, val_t p
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:510 */
+  /* syntax/icode_generation.nit:508 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//icode_generation.nit:512 */
+  /* syntax/icode_generation.nit:510 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AReturnExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:513 */
+  /* syntax/icode_generation.nit:511 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2965,25 +2955,25 @@ val_t syntax___icode_generation___AReturnExpr___generate_icode(val_t p0, val_t p
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:514 */
+    /* syntax/icode_generation.nit:512 */
     fra.me.REG[3] = CALL_syntax___icode_generation___A2IContext___return_value(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 514);
+      nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 512);
     }
     fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
     CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]);
   }
-  /* ./syntax//icode_generation.nit:516 */
+  /* syntax/icode_generation.nit:514 */
   fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___return_seq(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 516);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 514);
   }
   CALL_icode___icode_builder___ICodeBuilder___add_escape(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:517 */
+  /* syntax/icode_generation.nit:515 */
   fra.me.REG[2] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -2997,7 +2987,7 @@ val_t syntax___icode_generation___ABreakExpr___generate_icode(val_t p0, val_t p1
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 522;
+  fra.me.line = 520;
   fra.me.meth = LOCATE_syntax___icode_generation___ABreakExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -3009,11 +2999,11 @@ val_t syntax___icode_generation___ABreakExpr___generate_icode(val_t p0, val_t p1
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:522 */
+  /* syntax/icode_generation.nit:520 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//icode_generation.nit:524 */
+  /* syntax/icode_generation.nit:522 */
   fra.me.REG[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:525 */
+  /* syntax/icode_generation.nit:523 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3028,35 +3018,35 @@ val_t syntax___icode_generation___ABreakExpr___generate_icode(val_t p0, val_t p1
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:526 */
+    /* syntax/icode_generation.nit:524 */
     fra.me.REG[4] = CALL_syntax___scope___AEscapeExpr___escapable(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 526);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 524);
     }
     fra.me.REG[4] = CALL_syntax___icode_generation___EscapableBlock___break_value(fra.me.REG[4])(fra.me.REG[4]);
     REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 526);
+      nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 524);
     }
     fra.me.REG[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
     CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./syntax//icode_generation.nit:528 */
+  /* syntax/icode_generation.nit:526 */
   fra.me.REG[2] = CALL_syntax___scope___AEscapeExpr___escapable(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 528);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 526);
   }
   fra.me.REG[2] = CALL_syntax___icode_generation___EscapableBlock___break_seq(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 528);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 526);
   }
   CALL_icode___icode_builder___ICodeBuilder___add_escape(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:529 */
+  /* syntax/icode_generation.nit:527 */
   fra.me.REG[2] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -3070,7 +3060,7 @@ val_t syntax___icode_generation___AContinueExpr___generate_icode(val_t p0, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 534;
+  fra.me.line = 532;
   fra.me.meth = LOCATE_syntax___icode_generation___AContinueExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -3082,11 +3072,11 @@ val_t syntax___icode_generation___AContinueExpr___generate_icode(val_t p0, val_t
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:534 */
+  /* syntax/icode_generation.nit:532 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//icode_generation.nit:536 */
+  /* syntax/icode_generation.nit:534 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:537 */
+  /* syntax/icode_generation.nit:535 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3101,35 +3091,35 @@ val_t syntax___icode_generation___AContinueExpr___generate_icode(val_t p0, val_t
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:538 */
+    /* syntax/icode_generation.nit:536 */
     fra.me.REG[4] = CALL_syntax___scope___AEscapeExpr___escapable(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 538);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 536);
     }
     fra.me.REG[4] = CALL_syntax___icode_generation___EscapableBlock___continue_value(fra.me.REG[4])(fra.me.REG[4]);
     REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 538);
+      nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 536);
     }
     fra.me.REG[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
     CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./syntax//icode_generation.nit:540 */
+  /* syntax/icode_generation.nit:538 */
   fra.me.REG[2] = CALL_syntax___scope___AEscapeExpr___escapable(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 540);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 538);
   }
   fra.me.REG[2] = CALL_syntax___icode_generation___EscapableBlock___continue_seq(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 540);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 538);
   }
   CALL_icode___icode_builder___ICodeBuilder___add_escape(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:541 */
+  /* syntax/icode_generation.nit:539 */
   fra.me.REG[2] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -3143,7 +3133,7 @@ val_t syntax___icode_generation___AAbortExpr___generate_icode(val_t p0, val_t p1
   static val_t once_value_1; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 546;
+  fra.me.line = 544;
   fra.me.meth = LOCATE_syntax___icode_generation___AAbortExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3153,7 +3143,7 @@ val_t syntax___icode_generation___AAbortExpr___generate_icode(val_t p0, val_t p1
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:548 */
+  /* syntax/icode_generation.nit:546 */
   REGB0 = TAG_Int(0);
   fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -3166,7 +3156,7 @@ val_t syntax___icode_generation___AAbortExpr___generate_icode(val_t p0, val_t p1
   fra.me.REG[2] = fra.me.REG[2];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
   CALL_icode___icode_builder___ICodeBuilder___add_abort(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:549 */
+  /* syntax/icode_generation.nit:547 */
   fra.me.REG[0] = NIT_NULL;
   goto label2;
   label2: while(0);
@@ -3180,7 +3170,7 @@ val_t syntax___icode_generation___AIfExpr___generate_icode(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 554;
+  fra.me.line = 552;
   fra.me.meth = LOCATE_syntax___icode_generation___AIfExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -3192,15 +3182,15 @@ val_t syntax___icode_generation___AIfExpr___generate_icode(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:556 */
+  /* syntax/icode_generation.nit:554 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   fra.me.REG[2] = NEW_IIf_icode___icode_base___IIf___init(fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:557 */
+  /* syntax/icode_generation.nit:555 */
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:558 */
+  /* syntax/icode_generation.nit:556 */
   fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:560 */
+  /* syntax/icode_generation.nit:558 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AIfExpr___n_then(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -3216,14 +3206,14 @@ val_t syntax___icode_generation___AIfExpr___generate_icode(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:561 */
+    /* syntax/icode_generation.nit:559 */
     fra.me.REG[4] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[2])(fra.me.REG[2]);
     CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-    /* ./syntax//icode_generation.nit:562 */
+    /* syntax/icode_generation.nit:560 */
     fra.me.REG[4] = CALL_parser___parser_nodes___AIfExpr___n_then(fra.me.REG[0])(fra.me.REG[0]);
     CALL_syntax___icode_generation___A2IContext___generate_stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
   }
-  /* ./syntax//icode_generation.nit:565 */
+  /* syntax/icode_generation.nit:563 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AIfExpr___n_else(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -3239,16 +3229,16 @@ val_t syntax___icode_generation___AIfExpr___generate_icode(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:566 */
+    /* syntax/icode_generation.nit:564 */
     fra.me.REG[2] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[2])(fra.me.REG[2]);
     CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-    /* ./syntax//icode_generation.nit:567 */
+    /* syntax/icode_generation.nit:565 */
     fra.me.REG[0] = CALL_parser___parser_nodes___AIfExpr___n_else(fra.me.REG[0])(fra.me.REG[0]);
     CALL_syntax___icode_generation___A2IContext___generate_stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
-  /* ./syntax//icode_generation.nit:570 */
+  /* syntax/icode_generation.nit:568 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:571 */
+  /* syntax/icode_generation.nit:569 */
   fra.me.REG[3] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -3262,7 +3252,7 @@ val_t syntax___icode_generation___AWhileExpr___generate_icode(val_t p0, val_t p1
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 576;
+  fra.me.line = 574;
   fra.me.meth = LOCATE_syntax___icode_generation___AWhileExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -3276,28 +3266,28 @@ val_t syntax___icode_generation___AWhileExpr___generate_icode(val_t p0, val_t p1
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:578 */
+  /* syntax/icode_generation.nit:576 */
   fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:579 */
+  /* syntax/icode_generation.nit:577 */
   fra.me.REG[3] = NEW_ILoop_icode___icode_base___ILoop___init();
-  /* ./syntax//icode_generation.nit:580 */
+  /* syntax/icode_generation.nit:578 */
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:581 */
+  /* syntax/icode_generation.nit:579 */
   fra.me.REG[4] = CALL_syntax___typing___AAbsControl___escapable(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 581);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 579);
   }
   CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:582 */
+  /* syntax/icode_generation.nit:580 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:585 */
+  /* syntax/icode_generation.nit:583 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
   fra.me.REG[4] = NEW_IIf_icode___icode_base___IIf___init(fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:586 */
+  /* syntax/icode_generation.nit:584 */
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:589 */
+  /* syntax/icode_generation.nit:587 */
   fra.me.REG[5] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -3313,29 +3303,29 @@ val_t syntax___icode_generation___AWhileExpr___generate_icode(val_t p0, val_t p1
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:590 */
+    /* syntax/icode_generation.nit:588 */
     fra.me.REG[5] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[4])(fra.me.REG[4]);
     CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* ./syntax//icode_generation.nit:591 */
+    /* syntax/icode_generation.nit:589 */
     fra.me.REG[5] = CALL_syntax___typing___AAbsControl___escapable(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[6] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[4])(fra.me.REG[4]);
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 591);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 589);
     }
     CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-    /* ./syntax//icode_generation.nit:592 */
+    /* syntax/icode_generation.nit:590 */
     fra.me.REG[0] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra.me.REG[0])(fra.me.REG[0]);
     CALL_syntax___icode_generation___A2IContext___generate_stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
-  /* ./syntax//icode_generation.nit:596 */
+  /* syntax/icode_generation.nit:594 */
   fra.me.REG[4] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[4])(fra.me.REG[4]);
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:597 */
+  /* syntax/icode_generation.nit:595 */
   CALL_icode___icode_builder___ICodeBuilder___add_escape(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:599 */
+  /* syntax/icode_generation.nit:597 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:600 */
+  /* syntax/icode_generation.nit:598 */
   fra.me.REG[2] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -3349,7 +3339,7 @@ val_t syntax___icode_generation___ALoopExpr___generate_icode(val_t p0, val_t p1)
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 605;
+  fra.me.line = 603;
   fra.me.meth = LOCATE_syntax___icode_generation___ALoopExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -3361,22 +3351,22 @@ val_t syntax___icode_generation___ALoopExpr___generate_icode(val_t p0, val_t p1)
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:607 */
+  /* syntax/icode_generation.nit:605 */
   fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:608 */
+  /* syntax/icode_generation.nit:606 */
   fra.me.REG[3] = NEW_ILoop_icode___icode_base___ILoop___init();
-  /* ./syntax//icode_generation.nit:609 */
+  /* syntax/icode_generation.nit:607 */
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:610 */
+  /* syntax/icode_generation.nit:608 */
   fra.me.REG[4] = CALL_syntax___typing___AAbsControl___escapable(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 610);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 608);
   }
   CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:611 */
+  /* syntax/icode_generation.nit:609 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:614 */
+  /* syntax/icode_generation.nit:612 */
   fra.me.REG[3] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -3392,26 +3382,26 @@ val_t syntax___icode_generation___ALoopExpr___generate_icode(val_t p0, val_t p1)
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:615 */
+    /* syntax/icode_generation.nit:613 */
     fra.me.REG[3] = NEW_ISeq_icode___icode_base___ISeq___init();
-    /* ./syntax//icode_generation.nit:616 */
+    /* syntax/icode_generation.nit:614 */
     CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-    /* ./syntax//icode_generation.nit:617 */
+    /* syntax/icode_generation.nit:615 */
     CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-    /* ./syntax//icode_generation.nit:618 */
+    /* syntax/icode_generation.nit:616 */
     fra.me.REG[4] = CALL_syntax___typing___AAbsControl___escapable(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 618);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 616);
     }
     CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-    /* ./syntax//icode_generation.nit:619 */
+    /* syntax/icode_generation.nit:617 */
     fra.me.REG[0] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra.me.REG[0])(fra.me.REG[0]);
     CALL_syntax___icode_generation___A2IContext___generate_stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
-  /* ./syntax//icode_generation.nit:622 */
+  /* syntax/icode_generation.nit:620 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:623 */
+  /* syntax/icode_generation.nit:621 */
   fra.me.REG[2] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -3435,7 +3425,7 @@ val_t syntax___icode_generation___AForExpr___generate_icode(val_t p0, val_t p1){
       static val_t once_value_6; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 628;
+  fra.me.line = 626;
   fra.me.meth = LOCATE_syntax___icode_generation___AForExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -3451,14 +3441,14 @@ val_t syntax___icode_generation___AForExpr___generate_icode(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:630 */
+  /* syntax/icode_generation.nit:628 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AForExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:631 */
+  /* syntax/icode_generation.nit:629 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:632 */
+  /* syntax/icode_generation.nit:630 */
   fra.me.REG[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:636 */
+  /* syntax/icode_generation.nit:634 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ARangeExpr, ID_parser___parser_nodes___ARangeExpr)) /*cast ARangeExpr*/;
   if (UNTAG_Bool(REGB0)) {
     fra.me.REG[5] = CALL_syntax___icode_generation___A2IContext___visitor(fra.me.REG[1])(fra.me.REG[1]);
@@ -3474,7 +3464,7 @@ val_t syntax___icode_generation___AForExpr___generate_icode(val_t p0, val_t p1){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:641 */
+    /* syntax/icode_generation.nit:639 */
     REGB0 = TAG_Int(2);
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     fra.me.REG[6] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
@@ -3483,10 +3473,10 @@ val_t syntax___icode_generation___AForExpr___generate_icode(val_t p0, val_t p1){
     fra.me.REG[6] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[6] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-    /* ./syntax//icode_generation.nit:642 */
+    /* syntax/icode_generation.nit:640 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ACrangeExpr, ID_parser___parser_nodes___ACrangeExpr)) /*cast ACrangeExpr*/;
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//icode_generation.nit:643 */
+      /* syntax/icode_generation.nit:641 */
       fra.me.REG[6] = CALL_syntax___icode_generation___A2IContext___visitor(fra.me.REG[1])(fra.me.REG[1]);
       if (!once_value_1) {
         if (!once_value_2) {
@@ -3504,13 +3494,13 @@ val_t syntax___icode_generation___AForExpr___generate_icode(val_t p0, val_t p1){
       fra.me.REG[7] = fra.me.REG[7];
       fra.me.REG[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4], fra.me.REG[7]);
     } else {
-      /* ./syntax//icode_generation.nit:645 */
+      /* syntax/icode_generation.nit:643 */
       REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AOrangeExpr, ID_parser___parser_nodes___AOrangeExpr)) /*cast AOrangeExpr*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_syntax___icode_generation, 645);
+        nit_abort("Assert failed", NULL, LOCATE_syntax___icode_generation, 643);
       }
-      /* ./syntax//icode_generation.nit:646 */
+      /* syntax/icode_generation.nit:644 */
       fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___visitor(fra.me.REG[1])(fra.me.REG[1]);
       if (!once_value_3) {
         if (!once_value_4) {
@@ -3530,7 +3520,7 @@ val_t syntax___icode_generation___AForExpr___generate_icode(val_t p0, val_t p1){
       fra.me.REG[7] = fra.me.REG[6];
     }
   } else {
-    /* ./syntax//icode_generation.nit:652 */
+    /* syntax/icode_generation.nit:650 */
     fra.me.REG[6] = CALL_syntax___icode_generation___A2IContext___visitor(fra.me.REG[1])(fra.me.REG[1]);
     if (!once_value_5) {
       if (!once_value_6) {
@@ -3548,7 +3538,7 @@ val_t syntax___icode_generation___AForExpr___generate_icode(val_t p0, val_t p1){
     fra.me.REG[4] = fra.me.REG[4];
     fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3], fra.me.REG[4]);
     fra.me.REG[7] = fra.me.REG[4];
-    /* ./syntax//icode_generation.nit:653 */
+    /* syntax/icode_generation.nit:651 */
     REGB0 = TAG_Int(1);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     fra.me.REG[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
@@ -3556,101 +3546,101 @@ val_t syntax___icode_generation___AForExpr___generate_icode(val_t p0, val_t p1){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
     fra.me.REG[5] = fra.me.REG[4];
   }
-  /* ./syntax//icode_generation.nit:657 */
+  /* syntax/icode_generation.nit:655 */
   REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 657);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 655);
   }
   fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[7])(fra.me.REG[7]);
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 657);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 655);
   }
   fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 657);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 655);
   }
   fra.me.REG[4] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = CALL_icode___icode_builder___MMSignature___generate_empty_iclosuredef(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:658 */
+  /* syntax/icode_generation.nit:656 */
   fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:660 */
+  /* syntax/icode_generation.nit:658 */
   fra.me.REG[6] = NEW_ISeq_icode___icode_base___ISeq___init();
-  /* ./syntax//icode_generation.nit:661 */
+  /* syntax/icode_generation.nit:659 */
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-  /* ./syntax//icode_generation.nit:662 */
+  /* syntax/icode_generation.nit:660 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-  /* ./syntax//icode_generation.nit:663 */
+  /* syntax/icode_generation.nit:661 */
   fra.me.REG[2] = CALL_syntax___typing___AAbsControl___escapable(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 663);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 661);
   }
   CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
-  /* ./syntax//icode_generation.nit:664 */
+  /* syntax/icode_generation.nit:662 */
   fra.me.REG[2] = CALL_syntax___typing___AAbsControl___escapable(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 664);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 662);
   }
   CALL_syntax___icode_generation___EscapableBlock___break_value__eq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
-  /* ./syntax//icode_generation.nit:666 */
+  /* syntax/icode_generation.nit:664 */
   fra.me.REG[2] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[4])(fra.me.REG[4]);
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:667 */
+  /* syntax/icode_generation.nit:665 */
   fra.me.REG[2] = CALL_syntax___typing___AAbsControl___escapable(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[8] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 667);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 665);
   }
   CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
-  /* ./syntax//icode_generation.nit:668 */
+  /* syntax/icode_generation.nit:666 */
   fra.me.REG[8] = CALL_syntax___typing___AAbsControl___escapable(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 668);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 666);
   }
   CALL_syntax___icode_generation___EscapableBlock___continue_value__eq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
-  /* ./syntax//icode_generation.nit:669 */
+  /* syntax/icode_generation.nit:667 */
   REGB0 = TAG_Int(0);
   fra.me.REG[8] = CALL_syntax___syntax_base___AForExpr___variables(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//icode_generation.nit:669 */
+      /* syntax/icode_generation.nit:667 */
       REGB2 = REGB0;
-      /* ./syntax//icode_generation.nit:670 */
+      /* syntax/icode_generation.nit:668 */
       fra.me.REG[8] = CALL_syntax___syntax_base___AForExpr___variables(fra.me.REG[0])(fra.me.REG[0]);
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       REGB3 = REGB2;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB4 = TAG_Int(0);
       REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB5)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB4)) {
         REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
         if (UNTAG_Bool(REGB4)) {
@@ -3663,59 +3653,59 @@ val_t syntax___icode_generation___AForExpr___generate_icode(val_t p0, val_t p1){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB5 = TAG_Bool(false);
         REGB4 = REGB5;
       }
       if (UNTAG_Bool(REGB4)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[8] = ATTR_standard___collection___array___Array____items(fra.me.REG[8]);
       REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
       if (UNTAG_Bool(REGB4)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[8])->val[UNTAG_Int(REGB3)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label7;
       label7: while(0);
-      /* ./syntax//icode_generation.nit:670 */
+      /* syntax/icode_generation.nit:668 */
       fra.me.REG[8] = CALL_syntax___icode_generation___A2IContext___variable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
       fra.me.REG[2] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[4])(fra.me.REG[4]);
       fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[2])(fra.me.REG[2], REGB2);
       fra.me.REG[2] = NEW_IMove_icode___icode_base___IMove___init(fra.me.REG[8], fra.me.REG[2]);
       CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label8;
     }
   }
   label8: while(0);
-  /* ./syntax//icode_generation.nit:672 */
+  /* syntax/icode_generation.nit:670 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AForExpr___n_block(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___icode_generation___A2IContext___generate_stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:675 */
+  /* syntax/icode_generation.nit:673 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-  /* ./syntax//icode_generation.nit:676 */
+  /* syntax/icode_generation.nit:674 */
   REGB0 = TAG_Int(1);
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
   CALL_icode___icode_builder___ICodeBuilder___add_call(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7], fra.me.REG[5], fra.me.REG[6]);
-  /* ./syntax//icode_generation.nit:678 */
+  /* syntax/icode_generation.nit:676 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:679 */
+  /* syntax/icode_generation.nit:677 */
   fra.me.REG[3] = NIT_NULL;
   goto label9;
   label9: while(0);
@@ -3731,7 +3721,7 @@ val_t syntax___icode_generation___AAssertExpr___generate_icode(val_t p0, val_t p
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 684;
+  fra.me.line = 682;
   fra.me.meth = LOCATE_syntax___icode_generation___AAssertExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -3743,24 +3733,24 @@ val_t syntax___icode_generation___AAssertExpr___generate_icode(val_t p0, val_t p
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:686 */
+  /* syntax/icode_generation.nit:684 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:687 */
+  /* syntax/icode_generation.nit:685 */
   fra.me.REG[2] = NEW_IIf_icode___icode_base___IIf___init(fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:688 */
+  /* syntax/icode_generation.nit:686 */
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:689 */
+  /* syntax/icode_generation.nit:687 */
   fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:690 */
+  /* syntax/icode_generation.nit:688 */
   fra.me.REG[2] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[2])(fra.me.REG[2]);
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:691 */
+  /* syntax/icode_generation.nit:689 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___icode_generation___A2IContext___generate_stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:692 */
+  /* syntax/icode_generation.nit:690 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AAssertExpr___n_id(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:693 */
+  /* syntax/icode_generation.nit:691 */
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3774,7 +3764,7 @@ val_t syntax___icode_generation___AAssertExpr___generate_icode(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:694 */
+    /* syntax/icode_generation.nit:692 */
     REGB0 = TAG_Int(0);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -3788,12 +3778,12 @@ val_t syntax___icode_generation___AAssertExpr___generate_icode(val_t p0, val_t p
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
     CALL_icode___icode_builder___ICodeBuilder___add_abort(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   } else {
-    /* ./syntax//icode_generation.nit:696 */
+    /* syntax/icode_generation.nit:694 */
     REGB0 = TAG_Int(1);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_2) {
-      fra.me.REG[4] = BOX_NativeString("Assert %s  failed");
-      REGB0 = TAG_Int(17);
+      fra.me.REG[4] = BOX_NativeString("Assert '%s' failed");
+      REGB0 = TAG_Int(18);
       fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
       once_value_2 = fra.me.REG[4];
       register_static_object(&once_value_2);
@@ -3802,15 +3792,16 @@ val_t syntax___icode_generation___AAssertExpr___generate_icode(val_t p0, val_t p
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 696);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 694);
     }
+    fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
     CALL_icode___icode_builder___ICodeBuilder___add_abort(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
-  /* ./syntax//icode_generation.nit:698 */
+  /* syntax/icode_generation.nit:696 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:699 */
+  /* syntax/icode_generation.nit:697 */
   fra.me.REG[3] = NIT_NULL;
   goto label3;
   label3: while(0);
@@ -3822,7 +3813,7 @@ val_t syntax___icode_generation___AVarExpr___generate_icode(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 704;
+  fra.me.line = 702;
   fra.me.meth = LOCATE_syntax___icode_generation___AVarExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -3831,7 +3822,7 @@ val_t syntax___icode_generation___AVarExpr___generate_icode(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:706 */
+  /* syntax/icode_generation.nit:704 */
   fra.me.REG[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___icode_generation___A2IContext___variable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   goto label1;
@@ -3844,7 +3835,7 @@ val_t syntax___icode_generation___AVarAssignExpr___generate_icode(val_t p0, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 711;
+  fra.me.line = 709;
   fra.me.meth = LOCATE_syntax___icode_generation___AVarAssignExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3854,14 +3845,14 @@ val_t syntax___icode_generation___AVarAssignExpr___generate_icode(val_t p0, val_
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:713 */
+  /* syntax/icode_generation.nit:711 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:714 */
+  /* syntax/icode_generation.nit:712 */
   fra.me.REG[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___icode_generation___A2IContext___variable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:715 */
+  /* syntax/icode_generation.nit:713 */
   fra.me.REG[2] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -3874,7 +3865,7 @@ val_t syntax___icode_generation___AVarReassignExpr___generate_icode(val_t p0, va
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 720;
+  fra.me.line = 718;
   fra.me.meth = LOCATE_syntax___icode_generation___AVarReassignExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -3888,15 +3879,15 @@ val_t syntax___icode_generation___AVarReassignExpr___generate_icode(val_t p0, va
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:720 */
+  /* syntax/icode_generation.nit:718 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//icode_generation.nit:722 */
+  /* syntax/icode_generation.nit:720 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_syntax___icode_generation___A2IContext___variable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:723 */
+  /* syntax/icode_generation.nit:721 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[4] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:724 */
+  /* syntax/icode_generation.nit:722 */
   fra.me.REG[5] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Int(2);
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -3907,18 +3898,18 @@ val_t syntax___icode_generation___AVarReassignExpr___generate_icode(val_t p0, va
   fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 724);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 722);
   }
   fra.me.REG[2] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_metamodel___static_type___MMType, ID_metamodel___static_type___MMType)) /*cast MMType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 724);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 722);
   }
   fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:725 */
+  /* syntax/icode_generation.nit:723 */
   CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:726 */
+  /* syntax/icode_generation.nit:724 */
   fra.me.REG[2] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -3930,7 +3921,7 @@ val_t syntax___icode_generation___ASelfExpr___generate_icode(val_t p0, val_t p1)
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 731;
+  fra.me.line = 729;
   fra.me.meth = LOCATE_syntax___icode_generation___ASelfExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -3939,7 +3930,7 @@ val_t syntax___icode_generation___ASelfExpr___generate_icode(val_t p0, val_t p1)
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:733 */
+  /* syntax/icode_generation.nit:731 */
   fra.me.REG[0] = CALL_syntax___syntax_base___ASelfExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___icode_generation___A2IContext___variable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   goto label1;
@@ -3952,7 +3943,7 @@ val_t syntax___icode_generation___AIfexprExpr___generate_icode(val_t p0, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 738;
+  fra.me.line = 736;
   fra.me.meth = LOCATE_syntax___icode_generation___AIfexprExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -3965,34 +3956,34 @@ val_t syntax___icode_generation___AIfexprExpr___generate_icode(val_t p0, val_t p
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:741 */
+  /* syntax/icode_generation.nit:739 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   fra.me.REG[2] = NEW_IIf_icode___icode_base___IIf___init(fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:742 */
+  /* syntax/icode_generation.nit:740 */
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:743 */
+  /* syntax/icode_generation.nit:741 */
   fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:746 */
+  /* syntax/icode_generation.nit:744 */
   fra.me.REG[4] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:749 */
+  /* syntax/icode_generation.nit:747 */
   fra.me.REG[5] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[2])(fra.me.REG[2]);
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:750 */
+  /* syntax/icode_generation.nit:748 */
   fra.me.REG[5] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[5] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
   CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:753 */
+  /* syntax/icode_generation.nit:751 */
   fra.me.REG[2] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[2])(fra.me.REG[2]);
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:754 */
+  /* syntax/icode_generation.nit:752 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:756 */
+  /* syntax/icode_generation.nit:754 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:757 */
+  /* syntax/icode_generation.nit:755 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -4003,7 +3994,7 @@ val_t syntax___icode_generation___AEeExpr___generate_icode(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 762;
+  fra.me.line = 760;
   fra.me.meth = LOCATE_syntax___icode_generation___AEeExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -4014,13 +4005,13 @@ val_t syntax___icode_generation___AEeExpr___generate_icode(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:764 */
+  /* syntax/icode_generation.nit:762 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AEeExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:765 */
+  /* syntax/icode_generation.nit:763 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AEeExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:766 */
+  /* syntax/icode_generation.nit:764 */
   fra.me.REG[3] = NEW_IIs_icode___icode_base___IIs___init(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[0] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[0]);
@@ -4034,7 +4025,7 @@ val_t syntax___icode_generation___AOrExpr___generate_icode(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 771;
+  fra.me.line = 769;
   fra.me.meth = LOCATE_syntax___icode_generation___AOrExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -4047,33 +4038,33 @@ val_t syntax___icode_generation___AOrExpr___generate_icode(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:774 */
+  /* syntax/icode_generation.nit:772 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:777 */
+  /* syntax/icode_generation.nit:775 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   fra.me.REG[3] = NEW_IIf_icode___icode_base___IIf___init(fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:778 */
+  /* syntax/icode_generation.nit:776 */
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:779 */
+  /* syntax/icode_generation.nit:777 */
   fra.me.REG[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:780 */
+  /* syntax/icode_generation.nit:778 */
   fra.me.REG[5] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[3])(fra.me.REG[3]);
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:781 */
+  /* syntax/icode_generation.nit:779 */
   fra.me.REG[5] = CALL_icode___icode_builder___ICodeBuilder___lit_true_reg(fra.me.REG[1])(fra.me.REG[1]);
   CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:784 */
+  /* syntax/icode_generation.nit:782 */
   fra.me.REG[3] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[3])(fra.me.REG[3]);
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:785 */
+  /* syntax/icode_generation.nit:783 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:787 */
+  /* syntax/icode_generation.nit:785 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:788 */
+  /* syntax/icode_generation.nit:786 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -4084,7 +4075,7 @@ val_t syntax___icode_generation___AAndExpr___generate_icode(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 793;
+  fra.me.line = 791;
   fra.me.meth = LOCATE_syntax___icode_generation___AAndExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -4097,33 +4088,33 @@ val_t syntax___icode_generation___AAndExpr___generate_icode(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:796 */
+  /* syntax/icode_generation.nit:794 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:799 */
+  /* syntax/icode_generation.nit:797 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   fra.me.REG[3] = NEW_IIf_icode___icode_base___IIf___init(fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:800 */
+  /* syntax/icode_generation.nit:798 */
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:801 */
+  /* syntax/icode_generation.nit:799 */
   fra.me.REG[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:802 */
+  /* syntax/icode_generation.nit:800 */
   fra.me.REG[5] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[3])(fra.me.REG[3]);
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:803 */
+  /* syntax/icode_generation.nit:801 */
   fra.me.REG[5] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra.me.REG[1])(fra.me.REG[1]);
   CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:806 */
+  /* syntax/icode_generation.nit:804 */
   fra.me.REG[3] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[3])(fra.me.REG[3]);
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:807 */
+  /* syntax/icode_generation.nit:805 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:809 */
+  /* syntax/icode_generation.nit:807 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:810 */
+  /* syntax/icode_generation.nit:808 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -4134,7 +4125,7 @@ val_t syntax___icode_generation___ANotExpr___generate_icode(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 815;
+  fra.me.line = 813;
   fra.me.meth = LOCATE_syntax___icode_generation___ANotExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4144,10 +4135,10 @@ val_t syntax___icode_generation___ANotExpr___generate_icode(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:817 */
+  /* syntax/icode_generation.nit:815 */
   fra.me.REG[2] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:818 */
+  /* syntax/icode_generation.nit:816 */
   fra.me.REG[2] = NEW_INot_icode___icode_base___INot___init(fra.me.REG[2]);
   fra.me.REG[0] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
@@ -4161,7 +4152,7 @@ val_t syntax___icode_generation___AOrElseExpr___generate_icode(val_t p0, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 823;
+  fra.me.line = 821;
   fra.me.meth = LOCATE_syntax___icode_generation___AOrElseExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -4175,40 +4166,40 @@ val_t syntax___icode_generation___AOrElseExpr___generate_icode(val_t p0, val_t p
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:826 */
+  /* syntax/icode_generation.nit:824 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:829 */
+  /* syntax/icode_generation.nit:827 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:832 */
+  /* syntax/icode_generation.nit:830 */
   fra.me.REG[4] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:833 */
+  /* syntax/icode_generation.nit:831 */
   fra.me.REG[4] = NEW_IIs_icode___icode_base___IIs___init(fra.me.REG[2], fra.me.REG[4]);
   fra.me.REG[5] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[5] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[5])(fra.me.REG[5]);
   fra.me.REG[5] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:834 */
+  /* syntax/icode_generation.nit:832 */
   fra.me.REG[5] = NEW_IIf_icode___icode_base___IIf___init(fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:835 */
+  /* syntax/icode_generation.nit:833 */
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:836 */
+  /* syntax/icode_generation.nit:834 */
   fra.me.REG[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:839 */
+  /* syntax/icode_generation.nit:837 */
   fra.me.REG[6] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[5])(fra.me.REG[5]);
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-  /* ./syntax//icode_generation.nit:840 */
+  /* syntax/icode_generation.nit:838 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:843 */
+  /* syntax/icode_generation.nit:841 */
   fra.me.REG[5] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[5])(fra.me.REG[5]);
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:844 */
+  /* syntax/icode_generation.nit:842 */
   CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:846 */
+  /* syntax/icode_generation.nit:844 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:848 */
+  /* syntax/icode_generation.nit:846 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -4220,7 +4211,7 @@ val_t syntax___icode_generation___AIsaExpr___generate_icode(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 853;
+  fra.me.line = 851;
   fra.me.meth = LOCATE_syntax___icode_generation___AIsaExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -4232,17 +4223,17 @@ val_t syntax___icode_generation___AIsaExpr___generate_icode(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:853 */
+  /* syntax/icode_generation.nit:851 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//icode_generation.nit:855 */
+  /* syntax/icode_generation.nit:853 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:856 */
+  /* syntax/icode_generation.nit:854 */
   fra.me.REG[4] = CALL_syntax___icode_generation___A2IContext___selfreg(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 856);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 854);
   }
   fra.me.REG[0] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[0] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[0])(fra.me.REG[0]);
@@ -4259,7 +4250,7 @@ val_t syntax___icode_generation___AAsCastExpr___generate_icode(val_t p0, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 861;
+  fra.me.line = 859;
   fra.me.meth = LOCATE_syntax___icode_generation___AAsCastExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4269,13 +4260,13 @@ val_t syntax___icode_generation___AAsCastExpr___generate_icode(val_t p0, val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:863 */
+  /* syntax/icode_generation.nit:861 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAsCastExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:864 */
+  /* syntax/icode_generation.nit:862 */
   fra.me.REG[0] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
   CALL_icode___icode_builder___ICodeBuilder___add_type_cast(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:865 */
+  /* syntax/icode_generation.nit:863 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -4286,7 +4277,7 @@ val_t syntax___icode_generation___AAsNotnullExpr___generate_icode(val_t p0, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 870;
+  fra.me.line = 868;
   fra.me.meth = LOCATE_syntax___icode_generation___AAsNotnullExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4296,13 +4287,13 @@ val_t syntax___icode_generation___AAsNotnullExpr___generate_icode(val_t p0, val_
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:872 */
+  /* syntax/icode_generation.nit:870 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:873 */
+  /* syntax/icode_generation.nit:871 */
   fra.me.REG[0] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
   CALL_icode___icode_builder___ICodeBuilder___add_type_cast(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:874 */
+  /* syntax/icode_generation.nit:872 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -4313,7 +4304,7 @@ val_t syntax___icode_generation___ATrueExpr___generate_icode(val_t p0, val_t p1)
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 879;
+  fra.me.line = 877;
   fra.me.meth = LOCATE_syntax___icode_generation___ATrueExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -4322,7 +4313,7 @@ val_t syntax___icode_generation___ATrueExpr___generate_icode(val_t p0, val_t p1)
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:881 */
+  /* syntax/icode_generation.nit:879 */
   fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___lit_true_reg(fra.me.REG[1])(fra.me.REG[1]);
   goto label1;
   label1: while(0);
@@ -4334,7 +4325,7 @@ val_t syntax___icode_generation___AFalseExpr___generate_icode(val_t p0, val_t p1
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 886;
+  fra.me.line = 884;
   fra.me.meth = LOCATE_syntax___icode_generation___AFalseExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -4343,7 +4334,7 @@ val_t syntax___icode_generation___AFalseExpr___generate_icode(val_t p0, val_t p1
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:888 */
+  /* syntax/icode_generation.nit:886 */
   fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra.me.REG[1])(fra.me.REG[1]);
   goto label1;
   label1: while(0);
@@ -4355,7 +4346,7 @@ val_t syntax___icode_generation___AIntExpr___generate_icode(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 893;
+  fra.me.line = 891;
   fra.me.meth = LOCATE_syntax___icode_generation___AIntExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4365,9 +4356,9 @@ val_t syntax___icode_generation___AIntExpr___generate_icode(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:895 */
+  /* syntax/icode_generation.nit:893 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AIntExpr___n_number(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[2] = CALL_parser___lexer___Token___text(fra.me.REG[2])(fra.me.REG[2]);
+  fra.me.REG[2] = CALL_parser___parser_nodes___Token___text(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra.me.REG[2]);
   fra.me.REG[0] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
@@ -4381,7 +4372,7 @@ val_t syntax___icode_generation___AFloatExpr___generate_icode(val_t p0, val_t p1
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 900;
+  fra.me.line = 898;
   fra.me.meth = LOCATE_syntax___icode_generation___AFloatExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4391,9 +4382,9 @@ val_t syntax___icode_generation___AFloatExpr___generate_icode(val_t p0, val_t p1
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:902 */
+  /* syntax/icode_generation.nit:900 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AFloatExpr___n_float(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[2] = CALL_parser___lexer___Token___text(fra.me.REG[2])(fra.me.REG[2]);
+  fra.me.REG[2] = CALL_parser___parser_nodes___Token___text(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = NEW_IFloatValue_icode___icode_base___IFloatValue___init(fra.me.REG[2]);
   fra.me.REG[0] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
@@ -4407,7 +4398,7 @@ val_t syntax___icode_generation___ACharExpr___generate_icode(val_t p0, val_t p1)
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 907;
+  fra.me.line = 905;
   fra.me.meth = LOCATE_syntax___icode_generation___ACharExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4417,9 +4408,9 @@ val_t syntax___icode_generation___ACharExpr___generate_icode(val_t p0, val_t p1)
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:909 */
+  /* syntax/icode_generation.nit:907 */
   fra.me.REG[2] = CALL_parser___parser_nodes___ACharExpr___n_char(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[2] = CALL_parser___lexer___Token___text(fra.me.REG[2])(fra.me.REG[2]);
+  fra.me.REG[2] = CALL_parser___parser_nodes___Token___text(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = NEW_ICharValue_icode___icode_base___ICharValue___init(fra.me.REG[2]);
   fra.me.REG[0] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
@@ -4436,7 +4427,7 @@ val_t syntax___icode_generation___AStringFormExpr___generate_icode(val_t p0, val
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 914;
+  fra.me.line = 912;
   fra.me.meth = LOCATE_syntax___icode_generation___AStringFormExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -4452,43 +4443,43 @@ val_t syntax___icode_generation___AStringFormExpr___generate_icode(val_t p0, val
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:914 */
+  /* syntax/icode_generation.nit:912 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//icode_generation.nit:916 */
+  /* syntax/icode_generation.nit:914 */
   CALL_syntax___icode_generation___AStringFormExpr___compute_string_infos(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:917 */
+  /* syntax/icode_generation.nit:915 */
   fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:918 */
+  /* syntax/icode_generation.nit:916 */
   fra.me.REG[4] = NEW_IOnce_icode___icode_base___IOnce___init();
-  /* ./syntax//icode_generation.nit:919 */
+  /* syntax/icode_generation.nit:917 */
   fra.me.REG[5] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[5] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:920 */
+  /* syntax/icode_generation.nit:918 */
   fra.me.REG[4] = CALL_icode___icode_base___IOnce___body(fra.me.REG[4])(fra.me.REG[4]);
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:921 */
+  /* syntax/icode_generation.nit:919 */
   fra.me.REG[4] = ATTR_syntax___icode_generation___AStringFormExpr____cstring(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 921);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 919);
   }
   fra.me.REG[4] = NEW_IStringValue_icode___icode_base___IStringValue___init(fra.me.REG[4]);
   fra.me.REG[0] = CALL_syntax___icode_generation___A2IContext___visitor(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_nativestring(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:922 */
+  /* syntax/icode_generation.nit:920 */
   fra.me.REG[4] = ATTR_syntax___icode_generation___AStringFormExpr____cstring_length(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 922);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 920);
   }
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra.me.REG[4]);
   fra.me.REG[6] = CALL_syntax___icode_generation___A2IContext___visitor(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra.me.REG[6])(fra.me.REG[6]);
   fra.me.REG[6] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[6]);
-  /* ./syntax//icode_generation.nit:923 */
+  /* syntax/icode_generation.nit:921 */
   fra.me.REG[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[7] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]);
   if (!once_value_1) {
@@ -4506,7 +4497,7 @@ val_t syntax___icode_generation___AStringFormExpr___generate_icode(val_t p0, val
   } else fra.me.REG[8] = once_value_1;
   fra.me.REG[8] = fra.me.REG[8];
   fra.me.REG[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7], fra.me.REG[8]);
-  /* ./syntax//icode_generation.nit:924 */
+  /* syntax/icode_generation.nit:922 */
   fra.me.REG[7] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Int(2);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -4515,11 +4506,11 @@ val_t syntax___icode_generation___AStringFormExpr___generate_icode(val_t p0, val
   fra.me.REG[4] = NEW_INew_icode___icode_base___INew___init(fra.me.REG[7], fra.me.REG[8], fra.me.REG[4]);
   fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:925 */
+  /* syntax/icode_generation.nit:923 */
   CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:926 */
+  /* syntax/icode_generation.nit:924 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:927 */
+  /* syntax/icode_generation.nit:925 */
   goto label3;
   label3: while(0);
   stack_frame_head = fra.me.prev;
@@ -4530,13 +4521,13 @@ val_t syntax___icode_generation___AStringFormExpr___string_text(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 930;
+  fra.me.line = 928;
   fra.me.meth = LOCATE_syntax___icode_generation___AStringFormExpr___string_text;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//icode_generation.nit:930 */
-  nit_abort("Deferred method called", NULL, LOCATE_syntax___icode_generation, 930);
+  /* syntax/icode_generation.nit:928 */
+  nit_abort("Deferred method called", NULL, LOCATE_syntax___icode_generation, 928);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
@@ -4551,7 +4542,7 @@ void syntax___icode_generation___AStringFormExpr___compute_string_infos(val_t p0
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 939;
+  fra.me.line = 937;
   fra.me.meth = LOCATE_syntax___icode_generation___AStringFormExpr___compute_string_infos;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -4560,17 +4551,17 @@ void syntax___icode_generation___AStringFormExpr___compute_string_infos(val_t p0
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//icode_generation.nit:942 */
+  /* syntax/icode_generation.nit:940 */
   REGB0 = TAG_Int(0);
-  /* ./syntax//icode_generation.nit:943 */
+  /* syntax/icode_generation.nit:941 */
   fra.me.REG[1] = CALL_syntax___icode_generation___AStringFormExpr___string_text(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:944 */
+  /* syntax/icode_generation.nit:942 */
   fra.me.REG[2] = NEW_Buffer_standard___string___Buffer___init();
-  /* ./syntax//icode_generation.nit:945 */
+  /* syntax/icode_generation.nit:943 */
   REGB1 = TAG_Int(0);
-  /* ./syntax//icode_generation.nit:946 */
+  /* syntax/icode_generation.nit:944 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -4582,39 +4573,39 @@ void syntax___icode_generation___AStringFormExpr___compute_string_infos(val_t p0
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./syntax//icode_generation.nit:946 */
+    /* syntax/icode_generation.nit:944 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//icode_generation.nit:947 */
+      /* syntax/icode_generation.nit:945 */
       REGB2 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB1);
-      /* ./syntax//icode_generation.nit:948 */
+      /* syntax/icode_generation.nit:946 */
       REGB3 = TAG_Char('\\');
       REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB3));
       if (UNTAG_Bool(REGB4)) {
       } else {
-        /* ./../lib/standard//kernel.nit:378 */
+        /* ../lib/standard/kernel.nit:378 */
         REGB3 = TAG_Bool((REGB2)==(REGB3));
-        /* ./syntax//icode_generation.nit:948 */
+        /* syntax/icode_generation.nit:946 */
         REGB4 = REGB3;
       }
       if (UNTAG_Bool(REGB4)) {
-        /* ./syntax//icode_generation.nit:949 */
+        /* syntax/icode_generation.nit:947 */
         REGB4 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB4 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB4));
-        /* ./syntax//icode_generation.nit:949 */
+        /* syntax/icode_generation.nit:947 */
         REGB1 = REGB4;
-        /* ./syntax//icode_generation.nit:950 */
+        /* syntax/icode_generation.nit:948 */
         REGB4 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB1);
-        /* ./syntax//icode_generation.nit:951 */
+        /* syntax/icode_generation.nit:949 */
         REGB3 = TAG_Char('{');
         REGB5 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB3));
         if (UNTAG_Bool(REGB5)) {
         } else {
-          /* ./../lib/standard//kernel.nit:378 */
+          /* ../lib/standard/kernel.nit:378 */
           REGB3 = TAG_Bool((REGB4)==(REGB3));
-          /* ./syntax//icode_generation.nit:951 */
+          /* syntax/icode_generation.nit:949 */
           REGB5 = REGB3;
         }
         REGB5 = TAG_Bool(!UNTAG_Bool(REGB5));
@@ -4623,9 +4614,9 @@ void syntax___icode_generation___AStringFormExpr___compute_string_infos(val_t p0
           REGB3 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB5));
           if (UNTAG_Bool(REGB3)) {
           } else {
-            /* ./../lib/standard//kernel.nit:378 */
+            /* ../lib/standard/kernel.nit:378 */
             REGB5 = TAG_Bool((REGB4)==(REGB5));
-            /* ./syntax//icode_generation.nit:951 */
+            /* syntax/icode_generation.nit:949 */
             REGB3 = REGB5;
           }
           REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
@@ -4634,36 +4625,36 @@ void syntax___icode_generation___AStringFormExpr___compute_string_infos(val_t p0
           REGB3 = REGB5;
         }
         if (UNTAG_Bool(REGB3)) {
-          /* ./syntax//icode_generation.nit:952 */
+          /* syntax/icode_generation.nit:950 */
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB2);
         }
-        /* ./syntax//icode_generation.nit:954 */
+        /* syntax/icode_generation.nit:952 */
         REGB2 = REGB4;
       }
-      /* ./syntax//icode_generation.nit:956 */
+      /* syntax/icode_generation.nit:954 */
       REGB4 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB4 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB4));
-      /* ./syntax//icode_generation.nit:956 */
+      /* syntax/icode_generation.nit:954 */
       REGB0 = REGB4;
-      /* ./syntax//icode_generation.nit:957 */
+      /* syntax/icode_generation.nit:955 */
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB2);
-      /* ./syntax//icode_generation.nit:958 */
+      /* syntax/icode_generation.nit:956 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./syntax//icode_generation.nit:958 */
+      /* syntax/icode_generation.nit:956 */
       REGB1 = REGB2;
     } else {
-      /* ./syntax//icode_generation.nit:946 */
+      /* syntax/icode_generation.nit:944 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./syntax//icode_generation.nit:960 */
+  /* syntax/icode_generation.nit:958 */
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   ATTR_syntax___icode_generation___AStringFormExpr____cstring(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./syntax//icode_generation.nit:961 */
+  /* syntax/icode_generation.nit:959 */
   ATTR_syntax___icode_generation___AStringFormExpr____cstring_length(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -4676,7 +4667,7 @@ val_t syntax___icode_generation___AStringExpr___string_text(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 966;
+  fra.me.line = 964;
   fra.me.meth = LOCATE_syntax___icode_generation___AStringExpr___string_text;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -4684,24 +4675,24 @@ val_t syntax___icode_generation___AStringExpr___string_text(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//icode_generation.nit:966 */
+  /* syntax/icode_generation.nit:964 */
   fra.me.REG[1] = CALL_parser___parser_nodes___AStringExpr___n_string(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[1] = CALL_parser___lexer___Token___text(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[1] = CALL_parser___parser_nodes___Token___text(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(1);
   fra.me.REG[0] = CALL_parser___parser_nodes___AStringExpr___n_string(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_parser___lexer___Token___text(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:966 */
+  /* syntax/icode_generation.nit:964 */
   REGB2 = TAG_Int(2);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-  /* ./syntax//icode_generation.nit:966 */
+  /* syntax/icode_generation.nit:964 */
   fra.me.REG[1] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB0, REGB2);
   goto label1;
   label1: while(0);
@@ -4716,7 +4707,7 @@ val_t syntax___icode_generation___AStartStringExpr___string_text(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 969;
+  fra.me.line = 967;
   fra.me.meth = LOCATE_syntax___icode_generation___AStartStringExpr___string_text;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -4724,24 +4715,24 @@ val_t syntax___icode_generation___AStartStringExpr___string_text(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//icode_generation.nit:969 */
+  /* syntax/icode_generation.nit:967 */
   fra.me.REG[1] = CALL_parser___parser_nodes___AStartStringExpr___n_string(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[1] = CALL_parser___lexer___Token___text(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[1] = CALL_parser___parser_nodes___Token___text(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(1);
   fra.me.REG[0] = CALL_parser___parser_nodes___AStartStringExpr___n_string(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_parser___lexer___Token___text(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:969 */
+  /* syntax/icode_generation.nit:967 */
   REGB2 = TAG_Int(2);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-  /* ./syntax//icode_generation.nit:969 */
+  /* syntax/icode_generation.nit:967 */
   fra.me.REG[1] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB0, REGB2);
   goto label1;
   label1: while(0);
@@ -4756,7 +4747,7 @@ val_t syntax___icode_generation___AMidStringExpr___string_text(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 972;
+  fra.me.line = 970;
   fra.me.meth = LOCATE_syntax___icode_generation___AMidStringExpr___string_text;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -4764,24 +4755,24 @@ val_t syntax___icode_generation___AMidStringExpr___string_text(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//icode_generation.nit:972 */
+  /* syntax/icode_generation.nit:970 */
   fra.me.REG[1] = CALL_parser___parser_nodes___AMidStringExpr___n_string(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[1] = CALL_parser___lexer___Token___text(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[1] = CALL_parser___parser_nodes___Token___text(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(1);
   fra.me.REG[0] = CALL_parser___parser_nodes___AMidStringExpr___n_string(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_parser___lexer___Token___text(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:972 */
+  /* syntax/icode_generation.nit:970 */
   REGB2 = TAG_Int(2);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-  /* ./syntax//icode_generation.nit:972 */
+  /* syntax/icode_generation.nit:970 */
   fra.me.REG[1] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB0, REGB2);
   goto label1;
   label1: while(0);
@@ -4796,7 +4787,7 @@ val_t syntax___icode_generation___AEndStringExpr___string_text(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 975;
+  fra.me.line = 973;
   fra.me.meth = LOCATE_syntax___icode_generation___AEndStringExpr___string_text;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -4804,24 +4795,24 @@ val_t syntax___icode_generation___AEndStringExpr___string_text(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//icode_generation.nit:975 */
+  /* syntax/icode_generation.nit:973 */
   fra.me.REG[1] = CALL_parser___parser_nodes___AEndStringExpr___n_string(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[1] = CALL_parser___lexer___Token___text(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[1] = CALL_parser___parser_nodes___Token___text(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Int(1);
   fra.me.REG[0] = CALL_parser___parser_nodes___AEndStringExpr___n_string(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_parser___lexer___Token___text(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:975 */
+  /* syntax/icode_generation.nit:973 */
   REGB2 = TAG_Int(2);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-  /* ./syntax//icode_generation.nit:975 */
+  /* syntax/icode_generation.nit:973 */
   fra.me.REG[1] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB0, REGB2);
   goto label1;
   label1: while(0);
@@ -4836,7 +4827,7 @@ val_t syntax___icode_generation___ASuperstringExpr___generate_icode(val_t p0, va
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 979;
+  fra.me.line = 977;
   fra.me.meth = LOCATE_syntax___icode_generation___ASuperstringExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -4849,12 +4840,12 @@ val_t syntax___icode_generation___ASuperstringExpr___generate_icode(val_t p0, va
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:981 */
+  /* syntax/icode_generation.nit:979 */
   fra.me.REG[2] = CALL_syntax___syntax_base___ASuperstringExpr___atype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___add_new_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], REGB0);
-  /* ./syntax//icode_generation.nit:982 */
+  /* syntax/icode_generation.nit:980 */
   fra.me.REG[3] = CALL_syntax___icode_generation___A2IContext___visitor(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra.me.REG[4])(fra.me.REG[4]);
@@ -4873,10 +4864,10 @@ val_t syntax___icode_generation___ASuperstringExpr___generate_icode(val_t p0, va
   } else fra.me.REG[5] = once_value_1;
   fra.me.REG[5] = fra.me.REG[5];
   fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:983 */
+  /* syntax/icode_generation.nit:981 */
   fra.me.REG[4] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_syntax___icode_generation___ASuperstringExpr___generate_icode_3));
-  /* ./syntax//icode_generation.nit:990 */
+  /* syntax/icode_generation.nit:988 */
   REGB0 = TAG_Int(1);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
@@ -4908,9 +4899,9 @@ val_t syntax___icode_generation___ASuperstringExpr___generate_icode(val_t p0, va
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./syntax//icode_generation.nit:984 */
+    /* syntax/icode_generation.nit:982 */
     fra.me.REG[1] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
-    /* ./syntax//icode_generation.nit:985 */
+    /* syntax/icode_generation.nit:983 */
     fra.me.REG[0] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(closctx->REG[0])(closctx->REG[0]);
     REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[2]));
@@ -4921,7 +4912,7 @@ val_t syntax___icode_generation___ASuperstringExpr___generate_icode(val_t p0, va
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//icode_generation.nit:986 */
+      /* syntax/icode_generation.nit:984 */
       REGB0 = TAG_Int(1);
       fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
@@ -4930,7 +4921,7 @@ val_t syntax___icode_generation___ASuperstringExpr___generate_icode(val_t p0, va
       fra.me.REG[0] = CALL_icode___icode_builder___ICodeBuilder___expr(closctx->REG[1])(closctx->REG[1], fra.me.REG[2], fra.me.REG[0]);
       fra.me.REG[1] = fra.me.REG[0];
     }
-    /* ./syntax//icode_generation.nit:988 */
+    /* syntax/icode_generation.nit:986 */
     CALL_syntax___icode_generation___A2IContext___add_call_array_add(closctx->REG[1])(closctx->REG[1], closctx->REG[2], fra.me.REG[1]);
     stack_frame_head = fra.me.prev;
     return;
@@ -4940,7 +4931,7 @@ val_t syntax___icode_generation___ANullExpr___generate_icode(val_t p0, val_t p1)
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 995;
+  fra.me.line = 993;
   fra.me.meth = LOCATE_syntax___icode_generation___ANullExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -4949,7 +4940,7 @@ val_t syntax___icode_generation___ANullExpr___generate_icode(val_t p0, val_t p1)
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:997 */
+  /* syntax/icode_generation.nit:995 */
   fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra.me.REG[1])(fra.me.REG[1]);
   goto label1;
   label1: while(0);
@@ -4957,40 +4948,40 @@ val_t syntax___icode_generation___ANullExpr___generate_icode(val_t p0, val_t p1)
   return fra.me.REG[1];
 }
 val_t syntax___icode_generation___AArrayExpr___generate_icode(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 1002;
+  fra.me.line = 1000;
   fra.me.meth = LOCATE_syntax___icode_generation___AArrayExpr___generate_icode;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
+  fra.me.REG_size = 3;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:1004 */
-  fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[3] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___add_new_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], REGB0);
-  /* ./syntax//icode_generation.nit:1005 */
-  fra.me.REG[0] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_syntax___icode_generation___AArrayExpr___generate_icode_1));
-  /* ./syntax//icode_generation.nit:1009 */
+  /* syntax/icode_generation.nit:1002 */
+  fra.me.REG[2] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[2] = CALL_parser___parser_nodes___AExprs___n_exprs(fra.me.REG[2])(fra.me.REG[2]);
+  /* syntax/icode_generation.nit:1003 */
+  fra.me.REG[0] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[2])(fra.me.REG[2]);
+  fra.me.REG[0] = CALL_syntax___icode_generation___A2IContext___add_new_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], REGB0);
+  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_syntax___icode_generation___AArrayExpr___generate_icode_1));
+  /* syntax/icode_generation.nit:1008 */
   goto label2;
   label2: while(0);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
+  return fra.me.REG[0];
 }
   void OC_syntax___icode_generation___AArrayExpr___generate_icode_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
     struct {struct stack_frame_t me;} fra;
     fun_t CREG[1];
     val_t tmp;
+    /* syntax/icode_generation.nit:1004 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_syntax___icode_generation;
     fra.me.line = 0;
@@ -5003,10 +4994,10 @@ val_t syntax___icode_generation___AArrayExpr___generate_icode(val_t p0, val_t p1
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./syntax//icode_generation.nit:1006 */
+    /* syntax/icode_generation.nit:1005 */
     fra.me.REG[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
-    /* ./syntax//icode_generation.nit:1007 */
-    CALL_syntax___icode_generation___A2IContext___add_call_array_add(closctx->REG[1])(closctx->REG[1], closctx->REG[2], fra.me.REG[0]);
+    /* syntax/icode_generation.nit:1006 */
+    CALL_syntax___icode_generation___A2IContext___add_call_array_add(closctx->REG[1])(closctx->REG[1], closctx->REG[0], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
   }
@@ -5018,7 +5009,7 @@ val_t syntax___icode_generation___ACrangeExpr___generate_icode(val_t p0, val_t p
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 1014;
+  fra.me.line = 1013;
   fra.me.meth = LOCATE_syntax___icode_generation___ACrangeExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -5032,13 +5023,13 @@ val_t syntax___icode_generation___ACrangeExpr___generate_icode(val_t p0, val_t p
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:1016 */
+  /* syntax/icode_generation.nit:1015 */
   fra.me.REG[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:1017 */
+  /* syntax/icode_generation.nit:1016 */
   fra.me.REG[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:1018 */
+  /* syntax/icode_generation.nit:1017 */
   fra.me.REG[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[5] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
   if (!once_value_1) {
@@ -5056,7 +5047,7 @@ val_t syntax___icode_generation___ACrangeExpr___generate_icode(val_t p0, val_t p
   } else fra.me.REG[6] = once_value_1;
   fra.me.REG[6] = fra.me.REG[6];
   fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
-  /* ./syntax//icode_generation.nit:1019 */
+  /* syntax/icode_generation.nit:1018 */
   fra.me.REG[5] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Int(2);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -5078,7 +5069,7 @@ val_t syntax___icode_generation___AOrangeExpr___generate_icode(val_t p0, val_t p
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 1024;
+  fra.me.line = 1023;
   fra.me.meth = LOCATE_syntax___icode_generation___AOrangeExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -5092,13 +5083,13 @@ val_t syntax___icode_generation___AOrangeExpr___generate_icode(val_t p0, val_t p
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:1026 */
+  /* syntax/icode_generation.nit:1025 */
   fra.me.REG[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:1027 */
+  /* syntax/icode_generation.nit:1026 */
   fra.me.REG[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:1028 */
+  /* syntax/icode_generation.nit:1027 */
   fra.me.REG[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[5] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
   if (!once_value_1) {
@@ -5116,7 +5107,7 @@ val_t syntax___icode_generation___AOrangeExpr___generate_icode(val_t p0, val_t p
   } else fra.me.REG[6] = once_value_1;
   fra.me.REG[6] = fra.me.REG[6];
   fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
-  /* ./syntax//icode_generation.nit:1029 */
+  /* syntax/icode_generation.nit:1028 */
   fra.me.REG[5] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Int(2);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -5139,7 +5130,7 @@ val_t syntax___icode_generation___ASuperExpr___generate_icode(val_t p0, val_t p1
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___icode_generation;
-  fra.me.line = 1034;
+  fra.me.line = 1033;
   fra.me.meth = LOCATE_syntax___icode_generation___ASuperExpr___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -5152,14 +5143,14 @@ val_t syntax___icode_generation___ASuperExpr___generate_icode(val_t p0, val_t p1
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:1036 */
+  /* syntax/icode_generation.nit:1035 */
   fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[2])(fra.me.REG[2]);
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./syntax//icode_generation.nit:1037 */
+  /* syntax/icode_generation.nit:1036 */
   fra.me.REG[2] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -5175,89 +5166,89 @@ val_t syntax___icode_generation___ASuperExpr___generate_icode(val_t p0, val_t p1
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:1038 */
+    /* syntax/icode_generation.nit:1037 */
     fra.me.REG[2] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 1038);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 1037);
     }
     fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 1038);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 1037);
     }
     REGB0 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
     REGB1 = REGB0;
   }
-  /* ./syntax//icode_generation.nit:1040 */
+  /* syntax/icode_generation.nit:1039 */
   REGB0 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
-  /* ./syntax//icode_generation.nit:1040 */
+  /* syntax/icode_generation.nit:1039 */
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  /* ./syntax//icode_generation.nit:1041 */
+  /* syntax/icode_generation.nit:1040 */
   fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Int(0);
   fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB0);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:1042 */
+  /* syntax/icode_generation.nit:1041 */
   fra.me.REG[3] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[3] = CALL_parser___parser_nodes___AExprs___n_exprs(fra.me.REG[3])(fra.me.REG[3]);
+  /* syntax/icode_generation.nit:1042 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB0 = TAG_Bool((REGB0)==(REGB1));
-    /* ./syntax//icode_generation.nit:1042 */
+    /* syntax/icode_generation.nit:1042 */
     REGB2 = REGB0;
   }
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//icode_generation.nit:1043 */
+    /* syntax/icode_generation.nit:1043 */
     REGB2 = TAG_Int(0);
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     while(1) {
       REGB0 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//icode_generation.nit:1043 */
+        /* syntax/icode_generation.nit:1043 */
         REGB0 = REGB2;
-        /* ./syntax//icode_generation.nit:1044 */
-        fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[1])(fra.me.REG[1]);
-        fra.me.REG[3] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[3])(fra.me.REG[3]);
+        /* syntax/icode_generation.nit:1044 */
+        fra.me.REG[4] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[1])(fra.me.REG[1]);
+        fra.me.REG[4] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[4])(fra.me.REG[4]);
         REGB3 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-        /* ./syntax//icode_generation.nit:1044 */
-        fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB3);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-        /* ./../lib/standard//kernel.nit:354 */
+        /* syntax/icode_generation.nit:1044 */
+        fra.me.REG[4] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[4])(fra.me.REG[4], REGB3);
+        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
+        /* ../lib/standard/kernel.nit:354 */
         REGB3 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB2 = REGB3;
       } else {
-        /* ./../lib/standard//kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:352 */
         goto label1;
       }
     }
     label1: while(0);
   } else {
-    /* ./syntax//icode_generation.nit:1047 */
-    fra.me.REG[3] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra.me.REG[0])(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_syntax___icode_generation___ASuperExpr___generate_icode_2));
   }
-  /* ./syntax//icode_generation.nit:1051 */
+  /* syntax/icode_generation.nit:1051 */
   fra.me.REG[3] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:1052 */
+  /* syntax/icode_generation.nit:1052 */
   REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -5272,7 +5263,7 @@ val_t syntax___icode_generation___ASuperExpr___generate_icode(val_t p0, val_t p1
   }
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//icode_generation.nit:1053 */
+    /* syntax/icode_generation.nit:1053 */
     REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
       nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 1053);
@@ -5283,7 +5274,7 @@ val_t syntax___icode_generation___ASuperExpr___generate_icode(val_t p0, val_t p1
       nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 1053);
     }
     fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]);
-    /* ./syntax//icode_generation.nit:1054 */
+    /* syntax/icode_generation.nit:1054 */
     REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -5298,23 +5289,23 @@ val_t syntax___icode_generation___ASuperExpr___generate_icode(val_t p0, val_t p1
     }
     REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//icode_generation.nit:1055 */
+      /* syntax/icode_generation.nit:1055 */
       fra.me.REG[5] = NEW_ICall_icode___icode_base___ICall___init(fra.me.REG[3], fra.me.REG[2]);
       fra.me.REG[4] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5], fra.me.REG[4]);
       goto label3;
     } else {
-      /* ./syntax//icode_generation.nit:1057 */
+      /* syntax/icode_generation.nit:1057 */
       fra.me.REG[5] = NEW_ICall_icode___icode_base___ICall___init(fra.me.REG[3], fra.me.REG[2]);
       CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-      /* ./syntax//icode_generation.nit:1058 */
+      /* syntax/icode_generation.nit:1058 */
       fra.me.REG[4] = NIT_NULL;
       goto label3;
     }
   } else {
-    /* ./syntax//icode_generation.nit:1061 */
+    /* syntax/icode_generation.nit:1061 */
     fra.me.REG[0] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[3] = fra.me.REG[0];
-    /* ./syntax//icode_generation.nit:1062 */
+    /* syntax/icode_generation.nit:1062 */
     REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
       nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 1062);
@@ -5325,7 +5316,7 @@ val_t syntax___icode_generation___ASuperExpr___generate_icode(val_t p0, val_t p1
       nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 1062);
     }
     fra.me.REG[0] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[0])(fra.me.REG[0]);
-    /* ./syntax//icode_generation.nit:1063 */
+    /* syntax/icode_generation.nit:1063 */
     REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -5339,14 +5330,14 @@ val_t syntax___icode_generation___ASuperExpr___generate_icode(val_t p0, val_t p1
       }
     }
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//icode_generation.nit:1064 */
+      /* syntax/icode_generation.nit:1064 */
       fra.me.REG[5] = NEW_ISuper_icode___icode_base___ISuper___init(fra.me.REG[3], fra.me.REG[2]);
       CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-      /* ./syntax//icode_generation.nit:1065 */
+      /* syntax/icode_generation.nit:1065 */
       fra.me.REG[4] = NIT_NULL;
       goto label3;
     } else {
-      /* ./syntax//icode_generation.nit:1067 */
+      /* syntax/icode_generation.nit:1067 */
       fra.me.REG[2] = NEW_ISuper_icode___icode_base___ISuper___init(fra.me.REG[3], fra.me.REG[2]);
       fra.me.REG[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
       fra.me.REG[4] = fra.me.REG[0];
@@ -5361,6 +5352,7 @@ val_t syntax___icode_generation___ASuperExpr___generate_icode(val_t p0, val_t p1
       struct {struct stack_frame_t me;} fra;
       fun_t CREG[1];
       val_t tmp;
+      /* syntax/icode_generation.nit:1047 */
       fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
       fra.me.file = LOCATE_syntax___icode_generation;
       fra.me.line = 0;
@@ -5373,7 +5365,7 @@ val_t syntax___icode_generation___ASuperExpr___generate_icode(val_t p0, val_t p1
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./syntax//icode_generation.nit:1048 */
+      /* syntax/icode_generation.nit:1048 */
       fra.me.REG[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
       stack_frame_head = fra.me.prev;
@@ -5396,17 +5388,17 @@ val_t syntax___icode_generation___AAttrExpr___generate_icode(val_t p0, val_t p1)
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:1076 */
+  /* syntax/icode_generation.nit:1076 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:1077 */
+  /* syntax/icode_generation.nit:1077 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
     CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
-  /* ./syntax//icode_generation.nit:1078 */
+  /* syntax/icode_generation.nit:1078 */
   fra.me.REG[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___add_attr_read(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
   goto label1;
@@ -5431,24 +5423,24 @@ val_t syntax___icode_generation___AAttrAssignExpr___generate_icode(val_t p0, val
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:1085 */
+  /* syntax/icode_generation.nit:1085 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:1086 */
+  /* syntax/icode_generation.nit:1086 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
     CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
-  /* ./syntax//icode_generation.nit:1087 */
+  /* syntax/icode_generation.nit:1087 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:1088 */
+  /* syntax/icode_generation.nit:1088 */
   fra.me.REG[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]);
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:1089 */
+  /* syntax/icode_generation.nit:1089 */
   fra.me.REG[3] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -5475,25 +5467,25 @@ val_t syntax___icode_generation___AAttrReassignExpr___generate_icode(val_t p0, v
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:1095 */
+  /* syntax/icode_generation.nit:1095 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:1096 */
+  /* syntax/icode_generation.nit:1096 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
     CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
-  /* ./syntax//icode_generation.nit:1097 */
+  /* syntax/icode_generation.nit:1097 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = NEW_IAttrRead_icode___icode_base___IAttrRead___init(fra.me.REG[3], fra.me.REG[2]);
   fra.me.REG[4] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:1098 */
+  /* syntax/icode_generation.nit:1098 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:1099 */
+  /* syntax/icode_generation.nit:1099 */
   fra.me.REG[5] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Int(2);
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -5502,11 +5494,11 @@ val_t syntax___icode_generation___AAttrReassignExpr___generate_icode(val_t p0, v
   fra.me.REG[6] = NEW_ICall_icode___icode_base___ICall___init(fra.me.REG[5], fra.me.REG[6]);
   fra.me.REG[5] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[5] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:1100 */
+  /* syntax/icode_generation.nit:1100 */
   fra.me.REG[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[5] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra.me.REG[0], fra.me.REG[2], fra.me.REG[5]);
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:1101 */
+  /* syntax/icode_generation.nit:1101 */
   fra.me.REG[5] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -5530,17 +5522,17 @@ val_t syntax___icode_generation___AIssetAttrExpr___generate_icode(val_t p0, val_
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:1108 */
+  /* syntax/icode_generation.nit:1108 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:1109 */
+  /* syntax/icode_generation.nit:1109 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
     CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
-  /* ./syntax//icode_generation.nit:1110 */
+  /* syntax/icode_generation.nit:1110 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = NEW_IAttrIsset_icode___icode_base___IAttrIsset___init(fra.me.REG[3], fra.me.REG[2]);
   fra.me.REG[0] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
@@ -5582,85 +5574,85 @@ void syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./syntax//icode_generation.nit:1118 */
+  /* syntax/icode_generation.nit:1118 */
   REGB0 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:1119 */
+  /* syntax/icode_generation.nit:1119 */
   REGB1 = CALL_metamodel___vararg___MMSignature___vararg_rank(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:1120 */
+  /* syntax/icode_generation.nit:1120 */
   fra.me.REG[0] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:1122 */
+  /* syntax/icode_generation.nit:1122 */
   REGB3 = TAG_Int(0);
-  /* ./syntax//icode_generation.nit:1123 */
+  /* syntax/icode_generation.nit:1123 */
   REGB4 = TAG_Int(0);
-  /* ./../lib/standard//kernel.nit:347 */
+  /* ../lib/standard/kernel.nit:347 */
   REGB5 = REGB0;
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB6)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB6 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB6)) {
-      /* ./syntax//icode_generation.nit:1123 */
+      /* syntax/icode_generation.nit:1123 */
       REGB6 = REGB4;
-      /* ./syntax//icode_generation.nit:1125 */
+      /* syntax/icode_generation.nit:1125 */
       fra.me.REG[4] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[3])(fra.me.REG[3], REGB6);
-      /* ./syntax//icode_generation.nit:1126 */
+      /* syntax/icode_generation.nit:1126 */
       REGB7 = TAG_Bool(IS_EQUAL_OO(REGB6,REGB1));
       if (UNTAG_Bool(REGB7)) {
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB6 = TAG_Bool((REGB6)==(REGB1));
-        /* ./syntax//icode_generation.nit:1126 */
+        /* syntax/icode_generation.nit:1126 */
         REGB7 = REGB6;
       }
       if (UNTAG_Bool(REGB7)) {
-        /* ./syntax//icode_generation.nit:1127 */
+        /* syntax/icode_generation.nit:1127 */
         fra.me.REG[5] = CALL_syntax___icode_generation___A2IContext___visitor(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-        /* ./../lib/standard//kernel.nit:237 */
+        /* ../lib/standard/kernel.nit:237 */
         REGB7 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB0));
-        /* ./syntax//icode_generation.nit:1127 */
+        /* syntax/icode_generation.nit:1127 */
         fra.me.REG[4] = CALL_syntax___icode_generation___A2IContext___add_new_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], REGB7);
-        /* ./syntax//icode_generation.nit:1128 */
+        /* syntax/icode_generation.nit:1128 */
         REGB7 = TAG_Int(0);
-        /* ./../lib/standard//kernel.nit:237 */
+        /* ../lib/standard/kernel.nit:237 */
         REGB6 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB0));
-        /* ./../lib/standard//kernel.nit:341 */
+        /* ../lib/standard/kernel.nit:341 */
         while(1) {
           REGB8 = TAG_Bool(VAL_ISA(REGB6, VTCOLOR_standard___kernel___Comparable___OTHER(REGB7), VTID_standard___kernel___Comparable___OTHER(REGB7))) /*cast OTHER*/;
           if (UNTAG_Bool(REGB8)) {
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:231 */
+          /* ../lib/standard/kernel.nit:231 */
           REGB8 = TAG_Bool(UNTAG_Int(REGB7)<=UNTAG_Int(REGB6));
-          /* ./../lib/standard//kernel.nit:341 */
+          /* ../lib/standard/kernel.nit:341 */
           if (UNTAG_Bool(REGB8)) {
-            /* ./../lib/standard//collection//array.nit:278 */
+            /* ../lib/standard/collection/array.nit:278 */
             fra.me.REG[5] = fra.me.REG[0];
             REGB8 = REGB3;
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB9 = TAG_Int(0);
             REGB10 = TAG_Bool(VAL_ISA(REGB9, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8), VTID_standard___kernel___Comparable___OTHER(REGB8))) /*cast OTHER*/;
             if (UNTAG_Bool(REGB10)) {
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:233 */
+            /* ../lib/standard/kernel.nit:233 */
             REGB9 = TAG_Bool(UNTAG_Int(REGB8)>=UNTAG_Int(REGB9));
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             if (UNTAG_Bool(REGB9)) {
               REGB9 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
               if (UNTAG_Bool(REGB9)) {
@@ -5673,65 +5665,65 @@ void syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:232 */
+              /* ../lib/standard/kernel.nit:232 */
               REGB9 = TAG_Bool(UNTAG_Int(REGB8)<UNTAG_Int(REGB9));
             } else {
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB10 = TAG_Bool(false);
               REGB9 = REGB10;
             }
             if (UNTAG_Bool(REGB9)) {
             } else {
-              nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+              nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
             }
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
             REGB9 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
             if (UNTAG_Bool(REGB9)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB8)];
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             goto label1;
             label1: while(0);
-            /* ./syntax//icode_generation.nit:1130 */
+            /* syntax/icode_generation.nit:1130 */
             fra.me.REG[6] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
             CALL_syntax___icode_generation___A2IContext___add_call_array_add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[6]);
-            /* ./syntax//icode_generation.nit:1131 */
+            /* syntax/icode_generation.nit:1131 */
             REGB8 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB8 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB8));
-            /* ./syntax//icode_generation.nit:1131 */
+            /* syntax/icode_generation.nit:1131 */
             REGB3 = REGB8;
-            /* ./../lib/standard//kernel.nit:343 */
+            /* ../lib/standard/kernel.nit:343 */
             REGB8 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB8 = TAG_Int(UNTAG_Int(REGB7)+UNTAG_Int(REGB8));
-            /* ./../lib/standard//kernel.nit:343 */
+            /* ../lib/standard/kernel.nit:343 */
             REGB7 = REGB8;
           } else {
-            /* ./../lib/standard//kernel.nit:341 */
+            /* ../lib/standard/kernel.nit:341 */
             goto label2;
           }
         }
         label2: while(0);
-        /* ./syntax//icode_generation.nit:1133 */
+        /* syntax/icode_generation.nit:1133 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
       } else {
-        /* ./../lib/standard//collection//array.nit:278 */
+        /* ../lib/standard/collection/array.nit:278 */
         fra.me.REG[4] = fra.me.REG[0];
         REGB7 = REGB3;
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB6 = TAG_Int(0);
         REGB8 = TAG_Bool(VAL_ISA(REGB6, VTCOLOR_standard___kernel___Comparable___OTHER(REGB7), VTID_standard___kernel___Comparable___OTHER(REGB7))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB8)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB6 = TAG_Bool(UNTAG_Int(REGB7)>=UNTAG_Int(REGB6));
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB6)) {
           REGB6 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
           if (UNTAG_Bool(REGB6)) {
@@ -5744,48 +5736,48 @@ void syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB6 = TAG_Bool(UNTAG_Int(REGB7)<UNTAG_Int(REGB6));
         } else {
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB8 = TAG_Bool(false);
           REGB6 = REGB8;
         }
         if (UNTAG_Bool(REGB6)) {
         } else {
-          nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+          nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
         }
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
         REGB6 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
         if (UNTAG_Bool(REGB6)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB7)];
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         goto label3;
         label3: while(0);
-        /* ./syntax//icode_generation.nit:1135 */
+        /* syntax/icode_generation.nit:1135 */
         fra.me.REG[5] = fra.me.REG[4];
-        /* ./syntax//icode_generation.nit:1136 */
+        /* syntax/icode_generation.nit:1136 */
         fra.me.REG[5] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-        /* ./syntax//icode_generation.nit:1137 */
+        /* syntax/icode_generation.nit:1137 */
         REGB7 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB7 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB7));
-        /* ./syntax//icode_generation.nit:1137 */
+        /* syntax/icode_generation.nit:1137 */
         REGB3 = REGB7;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB7 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB7 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB7));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB4 = REGB7;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label4;
     }
   }
@@ -5826,18 +5818,18 @@ val_t syntax___icode_generation___ASendExpr___generate_icode(val_t p0, val_t p1)
   fra.me.REG[15] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:1144 */
+  /* syntax/icode_generation.nit:1144 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//icode_generation.nit:1146 */
+  /* syntax/icode_generation.nit:1146 */
   fra.me.REG[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:1147 */
+  /* syntax/icode_generation.nit:1147 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./syntax//icode_generation.nit:1148 */
+  /* syntax/icode_generation.nit:1148 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:1149 */
+  /* syntax/icode_generation.nit:1149 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:1150 */
+  /* syntax/icode_generation.nit:1150 */
   fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_metamodel___static_type___MMSignature, ID_metamodel___static_type___MMSignature)) /*cast MMSignature*/;
   if (UNTAG_Bool(REGB0)) {
@@ -5845,22 +5837,22 @@ val_t syntax___icode_generation___ASendExpr___generate_icode(val_t p0, val_t p1)
     nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 1150);
   }
   CALL_syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:1151 */
+  /* syntax/icode_generation.nit:1151 */
   fra.me.REG[5] = NIT_NULL;
-  /* ./syntax//icode_generation.nit:1155 */
+  /* syntax/icode_generation.nit:1155 */
   fra.me.REG[0] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:1156 */
+  /* syntax/icode_generation.nit:1156 */
   fra.me.REG[6] = NIT_NULL;
-  /* ./syntax//icode_generation.nit:1157 */
+  /* syntax/icode_generation.nit:1157 */
   fra.me.REG[7] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[7] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[7])(fra.me.REG[7]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[7])(fra.me.REG[7]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:1158 */
+    /* syntax/icode_generation.nit:1158 */
     fra.me.REG[7] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[7] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[7])(fra.me.REG[7]);
-    /* ./syntax//icode_generation.nit:1159 */
+    /* syntax/icode_generation.nit:1159 */
     REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -5875,22 +5867,22 @@ val_t syntax___icode_generation___ASendExpr___generate_icode(val_t p0, val_t p1)
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//icode_generation.nit:1160 */
+      /* syntax/icode_generation.nit:1160 */
       fra.me.REG[7] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
       fra.me.REG[5] = fra.me.REG[7];
     }
-    /* ./syntax//icode_generation.nit:1162 */
+    /* syntax/icode_generation.nit:1162 */
     fra.me.REG[7] = NEW_ISeq_icode___icode_base___ISeq___init();
-    /* ./syntax//icode_generation.nit:1163 */
+    /* syntax/icode_generation.nit:1163 */
     CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
-    /* ./syntax//icode_generation.nit:1164 */
+    /* syntax/icode_generation.nit:1164 */
     CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
-    /* ./syntax//icode_generation.nit:1165 */
+    /* syntax/icode_generation.nit:1165 */
     fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
     fra.me.REG[6] = fra.me.REG[8];
-    /* ./syntax//icode_generation.nit:1166 */
+    /* syntax/icode_generation.nit:1166 */
     REGB0 = TAG_Int(0);
-    /* ./syntax//icode_generation.nit:1167 */
+    /* syntax/icode_generation.nit:1167 */
     fra.me.REG[8] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -5911,7 +5903,7 @@ val_t syntax___icode_generation___ASendExpr___generate_icode(val_t p0, val_t p1)
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 1167);
       }
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -5919,25 +5911,25 @@ val_t syntax___icode_generation___ASendExpr___generate_icode(val_t p0, val_t p1)
       }
       REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
     }
-    /* ./syntax//icode_generation.nit:1168 */
+    /* syntax/icode_generation.nit:1168 */
     fra.me.REG[8] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra.me.REG[2])(fra.me.REG[2]);
-    /* ./syntax//icode_generation.nit:1169 */
+    /* syntax/icode_generation.nit:1169 */
     fra.me.REG[9] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[9] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[9])(fra.me.REG[9]);
-    /* ./../lib/standard//collection//array.nit:269 */
+    /* ../lib/standard/collection/array.nit:269 */
     REGB0 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:270 */
+    /* ../lib/standard/collection/array.nit:270 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[9])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[9]);
-    /* ./../lib/standard//collection//array.nit:271 */
+    /* ../lib/standard/collection/array.nit:271 */
     fra.me.REG[10] = ATTR_standard___collection___array___Array____items(fra.me.REG[9]);
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     while(1) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[9])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -5949,22 +5941,22 @@ val_t syntax___icode_generation___ASendExpr___generate_icode(val_t p0, val_t p1)
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       if (UNTAG_Bool(REGB1)) {
-        /* ./../lib/standard//collection//array.nit:273 */
+        /* ../lib/standard/collection/array.nit:273 */
         REGB1 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[11] = ((Nit_NativeArray)fra.me.REG[10])->val[UNTAG_Int(REGB0)];
-        /* ./syntax//icode_generation.nit:1170 */
+        /* syntax/icode_generation.nit:1170 */
         REGB1 = TAG_Bool(false);
-        /* ./syntax//icode_generation.nit:1171 */
+        /* syntax/icode_generation.nit:1171 */
         fra.me.REG[11] = CALL_metamodel___static_type___MMClosure___name(fra.me.REG[11])(fra.me.REG[11]);
-        /* ./syntax//icode_generation.nit:1172 */
+        /* syntax/icode_generation.nit:1172 */
         REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
         } else {
@@ -5979,27 +5971,27 @@ val_t syntax___icode_generation___ASendExpr___generate_icode(val_t p0, val_t p1)
         }
         REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
         if (UNTAG_Bool(REGB2)) {
-          /* ./syntax//icode_generation.nit:1173 */
+          /* syntax/icode_generation.nit:1173 */
           REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
             nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 1173);
           }
-          /* ./../lib/standard//collection//array.nit:266 */
+          /* ../lib/standard/collection/array.nit:266 */
           fra.me.REG[12] = fra.me.REG[8];
-          /* ./../lib/standard//collection//array.nit:269 */
+          /* ../lib/standard/collection/array.nit:269 */
           REGB2 = TAG_Int(0);
-          /* ./../lib/standard//collection//array.nit:270 */
+          /* ../lib/standard/collection/array.nit:270 */
           REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[12])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
             nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
           }
           REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[12]);
-          /* ./../lib/standard//collection//array.nit:271 */
+          /* ../lib/standard/collection/array.nit:271 */
           fra.me.REG[13] = ATTR_standard___collection___array___Array____items(fra.me.REG[12]);
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           while(1) {
-            /* ./../lib/standard//collection//array.nit:24 */
+            /* ../lib/standard/collection/array.nit:24 */
             REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[12])!=NIT_NULL);
             if (UNTAG_Bool(REGB3)) {
             } else {
@@ -6011,18 +6003,18 @@ val_t syntax___icode_generation___ASendExpr___generate_icode(val_t p0, val_t p1)
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:232 */
+            /* ../lib/standard/kernel.nit:232 */
             REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
-            /* ./../lib/standard//collection//array.nit:272 */
+            /* ../lib/standard/collection/array.nit:272 */
             if (UNTAG_Bool(REGB3)) {
-              /* ./../lib/standard//collection//array.nit:273 */
+              /* ../lib/standard/collection/array.nit:273 */
               REGB3 = TAG_Bool(fra.me.REG[13]==NIT_NULL);
               if (UNTAG_Bool(REGB3)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
               }
-              /* ./../lib/standard//collection//array.nit:718 */
+              /* ../lib/standard/collection/array.nit:718 */
               fra.me.REG[14] = ((Nit_NativeArray)fra.me.REG[13])->val[UNTAG_Int(REGB2)];
-              /* ./syntax//icode_generation.nit:1174 */
+              /* syntax/icode_generation.nit:1174 */
               fra.me.REG[15] = CALL_parser___parser_nodes___AClosureDef___n_id(fra.me.REG[14])(fra.me.REG[14]);
               fra.me.REG[15] = CALL_syntax___typing___AClosureId___to_symbol(fra.me.REG[15])(fra.me.REG[15]);
               REGB3 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[15],fra.me.REG[11]));
@@ -6035,91 +6027,91 @@ val_t syntax___icode_generation___ASendExpr___generate_icode(val_t p0, val_t p1)
               if (UNTAG_Bool(REGB3)) {
                goto label1;
               }
-              /* ./syntax//icode_generation.nit:1175 */
+              /* syntax/icode_generation.nit:1175 */
               REGB3 = TAG_Bool(false);
               REGB4 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB3));
               if (UNTAG_Bool(REGB4)) {
               } else {
-               /* ./../lib/standard//kernel.nit:195 */
+               /* ../lib/standard/kernel.nit:195 */
                REGB3 = TAG_Bool((REGB1)==(REGB3));
-               /* ./syntax//icode_generation.nit:1175 */
+               /* syntax/icode_generation.nit:1175 */
                REGB4 = REGB3;
               }
               if (UNTAG_Bool(REGB4)) {
               } else {
                nit_abort("Assert failed", NULL, LOCATE_syntax___icode_generation, 1175);
               }
-              /* ./syntax//icode_generation.nit:1176 */
+              /* syntax/icode_generation.nit:1176 */
               REGB4 = TAG_Bool(true);
               REGB1 = REGB4;
-              /* ./syntax//icode_generation.nit:1177 */
+              /* syntax/icode_generation.nit:1177 */
               fra.me.REG[15] = CALL_syntax___typing___AClosureDef___escapable(fra.me.REG[14])(fra.me.REG[14]);
               REGB4 = TAG_Bool(fra.me.REG[15]==NIT_NULL);
               if (UNTAG_Bool(REGB4)) {
                nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 1177);
               }
               CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra.me.REG[15])(fra.me.REG[15], fra.me.REG[7]);
-              /* ./syntax//icode_generation.nit:1178 */
+              /* syntax/icode_generation.nit:1178 */
               fra.me.REG[15] = CALL_syntax___typing___AClosureDef___escapable(fra.me.REG[14])(fra.me.REG[14]);
               REGB4 = TAG_Bool(fra.me.REG[15]==NIT_NULL);
               if (UNTAG_Bool(REGB4)) {
                nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 1178);
               }
               CALL_syntax___icode_generation___EscapableBlock___break_value__eq(fra.me.REG[15])(fra.me.REG[15], fra.me.REG[5]);
-              /* ./syntax//icode_generation.nit:1179 */
+              /* syntax/icode_generation.nit:1179 */
               fra.me.REG[14] = CALL_syntax___icode_generation___AClosureDef___generate_iclosuredef(fra.me.REG[14])(fra.me.REG[14], fra.me.REG[1]);
-              /* ./syntax//icode_generation.nit:1180 */
+              /* syntax/icode_generation.nit:1180 */
               REGB4 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
               if (UNTAG_Bool(REGB4)) {
                nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 1180);
               }
               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[14]);
               label1: while(0);
-              /* ./../lib/standard//collection//array.nit:274 */
+              /* ../lib/standard/collection/array.nit:274 */
               REGB4 = TAG_Int(1);
-              /* ./../lib/standard//kernel.nit:235 */
+              /* ../lib/standard/kernel.nit:235 */
               REGB4 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
-              /* ./../lib/standard//collection//array.nit:274 */
+              /* ../lib/standard/collection/array.nit:274 */
               REGB2 = REGB4;
             } else {
-              /* ./../lib/standard//collection//array.nit:272 */
+              /* ../lib/standard/collection/array.nit:272 */
               goto label2;
             }
           }
           label2: while(0);
         }
-        /* ./syntax//icode_generation.nit:1183 */
+        /* syntax/icode_generation.nit:1183 */
         REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
         if (UNTAG_Bool(REGB1)) {
-          /* ./syntax//icode_generation.nit:1184 */
+          /* syntax/icode_generation.nit:1184 */
           REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
             nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 1184);
           }
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
         }
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB1 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB0 = REGB1;
       } else {
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         goto label3;
       }
     }
     label3: while(0);
   }
-  /* ./syntax//icode_generation.nit:1189 */
+  /* syntax/icode_generation.nit:1189 */
   fra.me.REG[6] = CALL_icode___icode_builder___ICodeBuilder___add_call(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[4], fra.me.REG[6]);
-  /* ./syntax//icode_generation.nit:1192 */
+  /* syntax/icode_generation.nit:1192 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:1193 */
+    /* syntax/icode_generation.nit:1193 */
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -6154,20 +6146,20 @@ val_t syntax___icode_generation___ASendExpr___generate_icode(val_t p0, val_t p1)
     if (UNTAG_Bool(REGB0)) {
       CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5], fra.me.REG[6]);
     }
-    /* ./syntax//icode_generation.nit:1194 */
+    /* syntax/icode_generation.nit:1194 */
     CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   } else {
-    /* ./syntax//icode_generation.nit:1196 */
+    /* syntax/icode_generation.nit:1196 */
     fra.me.REG[5] = fra.me.REG[6];
   }
-  /* ./syntax//icode_generation.nit:1199 */
+  /* syntax/icode_generation.nit:1199 */
   fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[6])(fra.me.REG[6]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:1200 */
+    /* syntax/icode_generation.nit:1200 */
     CALL_syntax___icode_generation___A2IContext___invoke_super_init_calls_after(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./syntax//icode_generation.nit:1202 */
+  /* syntax/icode_generation.nit:1202 */
   goto label4;
   label4: while(0);
   stack_frame_head = fra.me.prev;
@@ -6194,23 +6186,23 @@ val_t syntax___icode_generation___ASendReassignExpr___generate_icode(val_t p0, v
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:1207 */
+  /* syntax/icode_generation.nit:1207 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//icode_generation.nit:1209 */
+  /* syntax/icode_generation.nit:1209 */
   fra.me.REG[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:1210 */
+  /* syntax/icode_generation.nit:1210 */
   fra.me.REG[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[4] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]);
   if (UNTAG_Bool(REGB0)) {
     CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./syntax//icode_generation.nit:1211 */
+  /* syntax/icode_generation.nit:1211 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./syntax//icode_generation.nit:1212 */
+  /* syntax/icode_generation.nit:1212 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:1213 */
+  /* syntax/icode_generation.nit:1213 */
   fra.me.REG[3] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_metamodel___static_type___MMSignature, ID_metamodel___static_type___MMSignature)) /*cast MMSignature*/;
@@ -6219,7 +6211,7 @@ val_t syntax___icode_generation___ASendReassignExpr___generate_icode(val_t p0, v
     nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 1213);
   }
   CALL_syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[4], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:1215 */
+  /* syntax/icode_generation.nit:1215 */
   fra.me.REG[3] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = NEW_ICall_icode___icode_base___ICall___init(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[5] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra.me.REG[2])(fra.me.REG[2]);
@@ -6235,10 +6227,10 @@ val_t syntax___icode_generation___ASendReassignExpr___generate_icode(val_t p0, v
     nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 1215);
   }
   fra.me.REG[5] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:1216 */
+  /* syntax/icode_generation.nit:1216 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:1217 */
+  /* syntax/icode_generation.nit:1217 */
   fra.me.REG[6] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Int(2);
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -6258,15 +6250,15 @@ val_t syntax___icode_generation___ASendReassignExpr___generate_icode(val_t p0, v
     nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 1217);
   }
   fra.me.REG[6] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7], fra.me.REG[6]);
-  /* ./syntax//icode_generation.nit:1218 */
+  /* syntax/icode_generation.nit:1218 */
   fra.me.REG[4] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:1219 */
+  /* syntax/icode_generation.nit:1219 */
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-  /* ./syntax//icode_generation.nit:1220 */
+  /* syntax/icode_generation.nit:1220 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[4] = NEW_ICall_icode___icode_base___ICall___init(fra.me.REG[2], fra.me.REG[4]);
   CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:1221 */
+  /* syntax/icode_generation.nit:1221 */
   fra.me.REG[4] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -6291,11 +6283,11 @@ val_t syntax___icode_generation___ANewExpr___generate_icode(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:1226 */
+  /* syntax/icode_generation.nit:1226 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//icode_generation.nit:1228 */
+  /* syntax/icode_generation.nit:1228 */
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-  /* ./syntax//icode_generation.nit:1229 */
+  /* syntax/icode_generation.nit:1229 */
   fra.me.REG[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMSignature, ID_metamodel___static_type___MMSignature)) /*cast MMSignature*/;
@@ -6304,7 +6296,7 @@ val_t syntax___icode_generation___ANewExpr___generate_icode(val_t p0, val_t p1){
     nit_abort("Cast failed", NULL, LOCATE_syntax___icode_generation, 1229);
   }
   CALL_syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[3], fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:1230 */
+  /* syntax/icode_generation.nit:1230 */
   fra.me.REG[4] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[0] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = NEW_INew_icode___icode_base___INew___init(fra.me.REG[4], fra.me.REG[0], fra.me.REG[3]);
@@ -6329,7 +6321,7 @@ val_t syntax___icode_generation___AProxyExpr___generate_icode(val_t p0, val_t p1
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:1237 */
+  /* syntax/icode_generation.nit:1237 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   goto label1;
@@ -6354,24 +6346,24 @@ val_t syntax___icode_generation___AOnceExpr___generate_icode(val_t p0, val_t p1)
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:1244 */
+  /* syntax/icode_generation.nit:1244 */
   fra.me.REG[2] = NEW_IOnce_icode___icode_base___IOnce___init();
-  /* ./syntax//icode_generation.nit:1245 */
+  /* syntax/icode_generation.nit:1245 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:1246 */
+  /* syntax/icode_generation.nit:1246 */
   fra.me.REG[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:1247 */
+  /* syntax/icode_generation.nit:1247 */
   fra.me.REG[2] = CALL_icode___icode_base___IOnce___body(fra.me.REG[2])(fra.me.REG[2]);
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:1249 */
+  /* syntax/icode_generation.nit:1249 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:1250 */
+  /* syntax/icode_generation.nit:1250 */
   CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:1252 */
+  /* syntax/icode_generation.nit:1252 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:1253 */
+  /* syntax/icode_generation.nit:1253 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -6402,50 +6394,50 @@ val_t syntax___icode_generation___AClosureDef___generate_iclosuredef(val_t p0, v
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:1261 */
+  /* syntax/icode_generation.nit:1261 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//icode_generation.nit:1264 */
+  /* syntax/icode_generation.nit:1264 */
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-  /* ./syntax//icode_generation.nit:1265 */
+  /* syntax/icode_generation.nit:1265 */
   fra.me.REG[4] = CALL_syntax___syntax_base___AClosureDef___closure(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[4] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:1266 */
+  /* syntax/icode_generation.nit:1266 */
   REGB0 = TAG_Int(0);
   REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//icode_generation.nit:1266 */
+      /* syntax/icode_generation.nit:1266 */
       REGB2 = REGB0;
-      /* ./syntax//icode_generation.nit:1267 */
+      /* syntax/icode_generation.nit:1267 */
       fra.me.REG[5] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB2);
       fra.me.REG[5] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./syntax//icode_generation.nit:1269 */
+  /* syntax/icode_generation.nit:1269 */
   fra.me.REG[5] = NIT_NULL;
-  /* ./syntax//icode_generation.nit:1270 */
+  /* syntax/icode_generation.nit:1270 */
   fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:1271 */
+  /* syntax/icode_generation.nit:1271 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -6460,21 +6452,21 @@ val_t syntax___icode_generation___AClosureDef___generate_iclosuredef(val_t p0, v
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:1272 */
+    /* syntax/icode_generation.nit:1272 */
     fra.me.REG[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
     fra.me.REG[5] = fra.me.REG[4];
   }
-  /* ./syntax//icode_generation.nit:1275 */
+  /* syntax/icode_generation.nit:1275 */
   fra.me.REG[5] = NEW_IClosureDef_icode___icode_base___IClosureDef___init(fra.me.REG[3], fra.me.REG[5]);
-  /* ./syntax//icode_generation.nit:1276 */
+  /* syntax/icode_generation.nit:1276 */
   fra.me.REG[3] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[2])(fra.me.REG[2]);
   CALL_icode___icode_base___IRoutine___location__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:1279 */
+  /* syntax/icode_generation.nit:1279 */
   fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:1280 */
+  /* syntax/icode_generation.nit:1280 */
   fra.me.REG[4] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[5])(fra.me.REG[5]);
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:1281 */
+  /* syntax/icode_generation.nit:1281 */
   fra.me.REG[4] = CALL_syntax___typing___AClosureDef___escapable(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[6] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[5])(fra.me.REG[5]);
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
@@ -6482,7 +6474,7 @@ val_t syntax___icode_generation___AClosureDef___generate_iclosuredef(val_t p0, v
     nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 1281);
   }
   CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-  /* ./syntax//icode_generation.nit:1282 */
+  /* syntax/icode_generation.nit:1282 */
   fra.me.REG[6] = CALL_syntax___typing___AClosureDef___escapable(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[4] = CALL_icode___icode_base___IRoutine___result(fra.me.REG[5])(fra.me.REG[5]);
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
@@ -6490,51 +6482,51 @@ val_t syntax___icode_generation___AClosureDef___generate_iclosuredef(val_t p0, v
     nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 1282);
   }
   CALL_syntax___icode_generation___EscapableBlock___continue_value__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:1285 */
+  /* syntax/icode_generation.nit:1285 */
   REGB0 = TAG_Int(0);
   fra.me.REG[4] = CALL_syntax___syntax_base___AClosureDef___variables(fra.me.REG[2])(fra.me.REG[2]);
   REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 1285);
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//icode_generation.nit:1285 */
+      /* syntax/icode_generation.nit:1285 */
       REGB2 = REGB0;
-      /* ./syntax//icode_generation.nit:1286 */
+      /* syntax/icode_generation.nit:1286 */
       fra.me.REG[4] = CALL_syntax___syntax_base___AClosureDef___variables(fra.me.REG[2])(fra.me.REG[2]);
       REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 1286);
       }
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       REGB3 = REGB2;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB4 = TAG_Int(0);
       REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB5)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB4)) {
         REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
         if (UNTAG_Bool(REGB4)) {
@@ -6547,50 +6539,50 @@ val_t syntax___icode_generation___AClosureDef___generate_iclosuredef(val_t p0, v
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB5 = TAG_Bool(false);
         REGB4 = REGB5;
       }
       if (UNTAG_Bool(REGB4)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
       REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB4)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB3)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label2;
       label2: while(0);
-      /* ./syntax//icode_generation.nit:1286 */
+      /* syntax/icode_generation.nit:1286 */
       fra.me.REG[4] = CALL_syntax___icode_generation___A2IContext___variable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-      /* ./syntax//icode_generation.nit:1287 */
+      /* syntax/icode_generation.nit:1287 */
       fra.me.REG[6] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[5])(fra.me.REG[5]);
       fra.me.REG[6] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[6])(fra.me.REG[6], REGB2);
       CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[6]);
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label3;
     }
   }
   label3: while(0);
-  /* ./syntax//icode_generation.nit:1290 */
+  /* syntax/icode_generation.nit:1290 */
   fra.me.REG[6] = CALL_parser___parser_nodes___AClosureDef___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   CALL_syntax___icode_generation___A2IContext___generate_stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-  /* ./syntax//icode_generation.nit:1293 */
+  /* syntax/icode_generation.nit:1293 */
   fra.me.REG[6] = CALL_syntax___syntax_base___AClosureDef___closure(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_metamodel___static_type___MMClosure___is_break(fra.me.REG[6])(fra.me.REG[6]);
   if (UNTAG_Bool(REGB0)) {
@@ -6617,7 +6609,7 @@ val_t syntax___icode_generation___AClosureDef___generate_iclosuredef(val_t p0, v
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//icode_generation.nit:1294 */
+    /* syntax/icode_generation.nit:1294 */
     fra.me.REG[6] = CALL_syntax___typing___AClosureDef___escapable(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -6631,11 +6623,11 @@ val_t syntax___icode_generation___AClosureDef___generate_iclosuredef(val_t p0, v
     }
     CALL_icode___icode_builder___ICodeBuilder___add_escape(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
   }
-  /* ./syntax//icode_generation.nit:1297 */
+  /* syntax/icode_generation.nit:1297 */
   CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:1298 */
+  /* syntax/icode_generation.nit:1298 */
   ATTR_syntax___icode_generation___AClosureDef____iclosure_def(fra.me.REG[2]) = fra.me.REG[5];
-  /* ./syntax//icode_generation.nit:1299 */
+  /* syntax/icode_generation.nit:1299 */
   goto label4;
   label4: while(0);
   stack_frame_head = fra.me.prev;
@@ -6665,41 +6657,41 @@ val_t syntax___icode_generation___AClosureCallExpr___generate_icode(val_t p0, va
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//icode_generation.nit:1307 */
+  /* syntax/icode_generation.nit:1307 */
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-  /* ./syntax//icode_generation.nit:1308 */
+  /* syntax/icode_generation.nit:1308 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[3])(fra.me.REG[3]);
   CALL_syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
-  /* ./syntax//icode_generation.nit:1311 */
+  /* syntax/icode_generation.nit:1311 */
   fra.me.REG[3] = CALL_syntax___icode_generation___A2IContext___closurevariables(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[4] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:1312 */
+  /* syntax/icode_generation.nit:1312 */
   fra.me.REG[3] = NEW_IClosCall_icode___icode_base___IClosCall___init(fra.me.REG[4], fra.me.REG[2]);
-  /* ./syntax//icode_generation.nit:1313 */
+  /* syntax/icode_generation.nit:1313 */
   fra.me.REG[5] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//icode_generation.nit:1316 */
+  /* syntax/icode_generation.nit:1316 */
   fra.me.REG[6] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[6])(fra.me.REG[6]);
   REGB1 = TAG_Int(1);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./syntax//icode_generation.nit:1316 */
+    /* syntax/icode_generation.nit:1316 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//icode_generation.nit:1317 */
+    /* syntax/icode_generation.nit:1317 */
     fra.me.REG[6] = NEW_ISeq_icode___icode_base___ISeq___init();
-    /* ./syntax//icode_generation.nit:1318 */
+    /* syntax/icode_generation.nit:1318 */
     CALL_icode___icode_base___IClosCall___break_seq__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
-    /* ./syntax//icode_generation.nit:1319 */
+    /* syntax/icode_generation.nit:1319 */
     CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-    /* ./syntax//icode_generation.nit:1320 */
+    /* syntax/icode_generation.nit:1320 */
     fra.me.REG[6] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[6] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[6])(fra.me.REG[6]);
     REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
@@ -6708,14 +6700,14 @@ val_t syntax___icode_generation___AClosureCallExpr___generate_icode(val_t p0, va
     }
     fra.me.REG[6] = CALL_parser___parser_nodes___AClosureDef___n_expr(fra.me.REG[6])(fra.me.REG[6]);
     CALL_syntax___icode_generation___A2IContext___generate_stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-    /* ./syntax//icode_generation.nit:1321 */
+    /* syntax/icode_generation.nit:1321 */
     CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
   }
-  /* ./syntax//icode_generation.nit:1325 */
+  /* syntax/icode_generation.nit:1325 */
   fra.me.REG[6] = NIT_NULL;
-  /* ./syntax//icode_generation.nit:1326 */
+  /* syntax/icode_generation.nit:1326 */
   fra.me.REG[7] = CALL_icode___icode_base___IClosureDecl___default(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./syntax//icode_generation.nit:1327 */
+  /* syntax/icode_generation.nit:1327 */
   REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -6730,16 +6722,16 @@ val_t syntax___icode_generation___AClosureCallExpr___generate_icode(val_t p0, va
   }
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//icode_generation.nit:1328 */
+    /* syntax/icode_generation.nit:1328 */
     fra.me.REG[4] = NEW_IHasClos_icode___icode_base___IHasClos___init(fra.me.REG[4]);
     fra.me.REG[8] = CALL_syntax___icode_generation___A2IContext___visitor(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[8])(fra.me.REG[8]);
     fra.me.REG[8] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[8]);
     fra.me.REG[8] = NEW_IIf_icode___icode_base___IIf___init(fra.me.REG[8]);
     fra.me.REG[6] = fra.me.REG[8];
-    /* ./syntax//icode_generation.nit:1329 */
+    /* syntax/icode_generation.nit:1329 */
     CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-    /* ./syntax//icode_generation.nit:1330 */
+    /* syntax/icode_generation.nit:1330 */
     REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
       nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 1330);
@@ -6747,14 +6739,14 @@ val_t syntax___icode_generation___AClosureCallExpr___generate_icode(val_t p0, va
     fra.me.REG[8] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[6])(fra.me.REG[6]);
     CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
   }
-  /* ./syntax//icode_generation.nit:1334 */
+  /* syntax/icode_generation.nit:1334 */
   fra.me.REG[8] = NIT_NULL;
-  /* ./syntax//icode_generation.nit:1335 */
+  /* syntax/icode_generation.nit:1335 */
   fra.me.REG[0] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./syntax//icode_generation.nit:1336 */
+  /* syntax/icode_generation.nit:1336 */
   REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -6768,16 +6760,16 @@ val_t syntax___icode_generation___AClosureCallExpr___generate_icode(val_t p0, va
     }
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//icode_generation.nit:1337 */
+    /* syntax/icode_generation.nit:1337 */
     CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   } else {
-    /* ./syntax//icode_generation.nit:1339 */
+    /* syntax/icode_generation.nit:1339 */
     fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[0]);
     fra.me.REG[8] = fra.me.REG[3];
   }
-  /* ./syntax//icode_generation.nit:1343 */
+  /* syntax/icode_generation.nit:1343 */
   fra.me.REG[3] = NIT_NULL;
-  /* ./syntax//icode_generation.nit:1344 */
+  /* syntax/icode_generation.nit:1344 */
   REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -6792,7 +6784,7 @@ val_t syntax___icode_generation___AClosureCallExpr___generate_icode(val_t p0, va
   }
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//icode_generation.nit:1345 */
+    /* syntax/icode_generation.nit:1345 */
     REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -6810,7 +6802,7 @@ val_t syntax___icode_generation___AClosureCallExpr___generate_icode(val_t p0, va
     } else {
       nit_abort("Assert failed", NULL, LOCATE_syntax___icode_generation, 1345);
     }
-    /* ./syntax//icode_generation.nit:1346 */
+    /* syntax/icode_generation.nit:1346 */
     REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -6825,7 +6817,7 @@ val_t syntax___icode_generation___AClosureCallExpr___generate_icode(val_t p0, va
     }
     REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//icode_generation.nit:1347 */
+      /* syntax/icode_generation.nit:1347 */
       REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -6843,22 +6835,22 @@ val_t syntax___icode_generation___AClosureCallExpr___generate_icode(val_t p0, va
       } else {
         nit_abort("Assert failed", NULL, LOCATE_syntax___icode_generation, 1347);
       }
-      /* ./syntax//icode_generation.nit:1348 */
+      /* syntax/icode_generation.nit:1348 */
       fra.me.REG[0] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
       fra.me.REG[3] = fra.me.REG[0];
-      /* ./syntax//icode_generation.nit:1349 */
+      /* syntax/icode_generation.nit:1349 */
       CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[8]);
     }
-    /* ./syntax//icode_generation.nit:1351 */
+    /* syntax/icode_generation.nit:1351 */
     REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
       nit_abort("Reciever is null", NULL, LOCATE_syntax___icode_generation, 1351);
     }
     fra.me.REG[6] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[6])(fra.me.REG[6]);
     CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-    /* ./syntax//icode_generation.nit:1352 */
+    /* syntax/icode_generation.nit:1352 */
     fra.me.REG[2] = CALL_icode___icode_tools___ICodeBuilder___inline_routine(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7], fra.me.REG[2], NIT_NULL);
-    /* ./syntax//icode_generation.nit:1353 */
+    /* syntax/icode_generation.nit:1353 */
     REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -6873,7 +6865,7 @@ val_t syntax___icode_generation___AClosureCallExpr___generate_icode(val_t p0, va
     }
     REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//icode_generation.nit:1354 */
+      /* syntax/icode_generation.nit:1354 */
       REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -6891,18 +6883,39 @@ val_t syntax___icode_generation___AClosureCallExpr___generate_icode(val_t p0, va
       } else {
         nit_abort("Assert failed", NULL, LOCATE_syntax___icode_generation, 1354);
       }
-      /* ./syntax//icode_generation.nit:1355 */
+      /* syntax/icode_generation.nit:1355 */
       CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]);
     }
-    /* ./syntax//icode_generation.nit:1357 */
+    /* syntax/icode_generation.nit:1357 */
     CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
   } else {
-    /* ./syntax//icode_generation.nit:1359 */
+    /* syntax/icode_generation.nit:1359 */
     fra.me.REG[3] = fra.me.REG[8];
   }
-  /* ./syntax//icode_generation.nit:1361 */
+  /* syntax/icode_generation.nit:1361 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
+val_t syntax___icode_generation___ADebugTypeExpr___generate_icode(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_syntax___icode_generation;
+  fra.me.line = 1366;
+  fra.me.meth = LOCATE_syntax___icode_generation___ADebugTypeExpr___generate_icode;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* syntax/icode_generation.nit:1369 */
+  fra.me.REG[1] = NIT_NULL;
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
index ad6dbc6..0f5a8ed 100644 (file)
@@ -226,13 +226,13 @@ val_t NEW_A2IVisitor_syntax___icode_generation___A2IVisitor___init(val_t p0, val
 static const char * const LOCATE_syntax___icode_generation___ANode___accept_icode_generation = "icode_generation::ANode::accept_icode_generation";
 void syntax___icode_generation___ANode___accept_icode_generation(val_t p0, val_t p1);
 typedef void (*syntax___icode_generation___ANode___accept_icode_generation_t)(val_t p0, val_t p1);
-val_t NEW_ANode_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANode_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AAttrPropdef___accept_icode_generation = "icode_generation::AAttrPropdef::(icode_generation::ANode::accept_icode_generation)";
 void syntax___icode_generation___AAttrPropdef___accept_icode_generation(val_t p0, val_t p1);
 typedef void (*syntax___icode_generation___AAttrPropdef___accept_icode_generation_t)(val_t p0, val_t p1);
 val_t NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___empty_init();
 val_t NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, val_t p9);
-val_t NEW_AAttrPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAttrPropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AMethPropdef___accept_icode_generation = "icode_generation::AMethPropdef::(icode_generation::ANode::accept_icode_generation)";
 void syntax___icode_generation___AMethPropdef___accept_icode_generation(val_t p0, val_t p1);
 typedef void (*syntax___icode_generation___AMethPropdef___accept_icode_generation_t)(val_t p0, val_t p1);
@@ -241,7 +241,7 @@ void syntax___icode_generation___AMethPropdef___fill_iroutine(val_t p0, val_t p1
 typedef void (*syntax___icode_generation___AMethPropdef___fill_iroutine_t)(val_t p0, val_t p1, val_t p2);
 val_t NEW_AMethPropdef_parser___parser_prod___AMethPropdef___empty_init();
 val_t NEW_AMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-val_t NEW_AMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMethPropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___ASignature___fill_iroutine_parameters = "icode_generation::ASignature::fill_iroutine_parameters";
 void syntax___icode_generation___ASignature___fill_iroutine_parameters(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 typedef void (*syntax___icode_generation___ASignature___fill_iroutine_parameters_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
@@ -249,21 +249,21 @@ typedef void (*syntax___icode_generation___ASignature___fill_iroutine_parameters
   void OC_syntax___icode_generation___ASignature___fill_iroutine_parameters_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_syntax___icode_generation___ASignature___fill_iroutine_parameters_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_ASignature_parser___parser_prod___ASignature___empty_init();
-val_t NEW_ASignature_parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2);
-val_t NEW_ASignature_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASignature_parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+val_t NEW_ASignature_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AClosureDecl___accept_icode_generation = "icode_generation::AClosureDecl::(icode_generation::ANode::accept_icode_generation)";
 void syntax___icode_generation___AClosureDecl___accept_icode_generation(val_t p0, val_t p1);
 typedef void (*syntax___icode_generation___AClosureDecl___accept_icode_generation_t)(val_t p0, val_t p1);
 val_t NEW_AClosureDecl_parser___parser_prod___AClosureDecl___empty_init();
 val_t NEW_AClosureDecl_parser___parser_prod___AClosureDecl___init_aclosuredecl(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-val_t NEW_AClosureDecl_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AClosureDecl_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AConcreteMethPropdef___fill_iroutine = "icode_generation::AConcreteMethPropdef::(icode_generation::AMethPropdef::fill_iroutine)";
 void syntax___icode_generation___AConcreteMethPropdef___fill_iroutine(val_t p0, val_t p1, val_t p2);
 typedef void (*syntax___icode_generation___AConcreteMethPropdef___fill_iroutine_t)(val_t p0, val_t p1, val_t p2);
 val_t NEW_AConcreteMethPropdef_parser___parser_prod___AMethPropdef___empty_init();
 val_t NEW_AConcreteMethPropdef_parser___parser_prod___AConcreteMethPropdef___empty_init();
 val_t NEW_AConcreteMethPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
-val_t NEW_AConcreteMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AConcreteMethPropdef_parser___parser_nodes___ANode___init();
 val_t NEW_AConcreteMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_syntax___icode_generation___AExternPropdef___fill_iroutine = "icode_generation::AExternPropdef::(icode_generation::AMethPropdef::fill_iroutine)";
 void syntax___icode_generation___AExternPropdef___fill_iroutine(val_t p0, val_t p1, val_t p2);
@@ -271,22 +271,24 @@ typedef void (*syntax___icode_generation___AExternPropdef___fill_iroutine_t)(val
   typedef void (*CLOS_OC_syntax___icode_generation___AExternPropdef___fill_iroutine_1_0)(struct stack_frame_t *);
   void OC_syntax___icode_generation___AExternPropdef___fill_iroutine_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_syntax___icode_generation___AExternPropdef___fill_iroutine_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
-val_t NEW_AExternPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AExternPropdef_parser___parser_nodes___ANode___init();
 val_t NEW_AExternPropdef_parser___parser_prod___AMethPropdef___empty_init();
 val_t NEW_AExternPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_syntax___icode_generation___AExternInitPropdef___fill_iroutine = "icode_generation::AExternInitPropdef::(icode_generation::AMethPropdef::fill_iroutine)";
 void syntax___icode_generation___AExternInitPropdef___fill_iroutine(val_t p0, val_t p1, val_t p2);
 typedef void (*syntax___icode_generation___AExternInitPropdef___fill_iroutine_t)(val_t p0, val_t p1, val_t p2);
+val_t NEW_AExternInitPropdef_parser___parser_prod___AMethPropdef___empty_init();
 val_t NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___empty_init();
 val_t NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7);
-val_t NEW_AExternInitPropdef_parser___parser_nodes___AExternInitPropdef___init();
+val_t NEW_AExternInitPropdef_parser___parser_nodes___ANode___init();
+val_t NEW_AExternInitPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_syntax___icode_generation___ADeferredMethPropdef___fill_iroutine = "icode_generation::ADeferredMethPropdef::(icode_generation::AMethPropdef::fill_iroutine)";
 void syntax___icode_generation___ADeferredMethPropdef___fill_iroutine(val_t p0, val_t p1, val_t p2);
 typedef void (*syntax___icode_generation___ADeferredMethPropdef___fill_iroutine_t)(val_t p0, val_t p1, val_t p2);
 val_t NEW_ADeferredMethPropdef_parser___parser_prod___AMethPropdef___empty_init();
 val_t NEW_ADeferredMethPropdef_parser___parser_prod___ADeferredMethPropdef___empty_init();
 val_t NEW_ADeferredMethPropdef_parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
-val_t NEW_ADeferredMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ADeferredMethPropdef_parser___parser_nodes___ANode___init();
 val_t NEW_ADeferredMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_syntax___icode_generation___AExternMethPropdef___fill_iroutine = "icode_generation::AExternMethPropdef::(icode_generation::AMethPropdef::fill_iroutine)";
 void syntax___icode_generation___AExternMethPropdef___fill_iroutine(val_t p0, val_t p1, val_t p2);
@@ -294,7 +296,7 @@ typedef void (*syntax___icode_generation___AExternMethPropdef___fill_iroutine_t)
 val_t NEW_AExternMethPropdef_parser___parser_prod___AMethPropdef___empty_init();
 val_t NEW_AExternMethPropdef_parser___parser_prod___AExternMethPropdef___empty_init();
 val_t NEW_AExternMethPropdef_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7);
-val_t NEW_AExternMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AExternMethPropdef_parser___parser_nodes___ANode___init();
 val_t NEW_AExternMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_syntax___icode_generation___AInternMethPropdef___fill_iroutine = "icode_generation::AInternMethPropdef::(icode_generation::AMethPropdef::fill_iroutine)";
 void syntax___icode_generation___AInternMethPropdef___fill_iroutine(val_t p0, val_t p1, val_t p2);
@@ -302,7 +304,7 @@ typedef void (*syntax___icode_generation___AInternMethPropdef___fill_iroutine_t)
 val_t NEW_AInternMethPropdef_parser___parser_prod___AMethPropdef___empty_init();
 val_t NEW_AInternMethPropdef_parser___parser_prod___AInternMethPropdef___empty_init();
 val_t NEW_AInternMethPropdef_parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
-val_t NEW_AInternMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AInternMethPropdef_parser___parser_nodes___ANode___init();
 val_t NEW_AInternMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_syntax___icode_generation___AExpr___accept_icode_generation = "icode_generation::AExpr::(icode_generation::ANode::accept_icode_generation)";
 void syntax___icode_generation___AExpr___accept_icode_generation(val_t p0, val_t p1);
@@ -310,13 +312,13 @@ typedef void (*syntax___icode_generation___AExpr___accept_icode_generation_t)(va
 static const char * const LOCATE_syntax___icode_generation___AExpr___generate_icode = "icode_generation::AExpr::generate_icode";
 val_t syntax___icode_generation___AExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AExpr___generate_icode_t)(val_t p0, val_t p1);
-val_t NEW_AExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AVardeclExpr___generate_icode = "icode_generation::AVardeclExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AVardeclExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AVardeclExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AVardeclExpr_parser___parser_prod___AVardeclExpr___empty_init();
 val_t NEW_AVardeclExpr_parser___parser_prod___AVardeclExpr___init_avardeclexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-val_t NEW_AVardeclExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AVardeclExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___ABlockExpr___generate_icode = "icode_generation::ABlockExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___ABlockExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___ABlockExpr___generate_icode_t)(val_t p0, val_t p1);
@@ -324,176 +326,176 @@ typedef val_t (*syntax___icode_generation___ABlockExpr___generate_icode_t)(val_t
   void OC_syntax___icode_generation___ABlockExpr___generate_icode_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_syntax___icode_generation___ABlockExpr___generate_icode_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_ABlockExpr_parser___parser_prod___ABlockExpr___empty_init();
-val_t NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0);
-val_t NEW_ABlockExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0, val_t p1);
+val_t NEW_ABlockExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___ADoExpr___generate_icode = "icode_generation::ADoExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___ADoExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___ADoExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_ADoExpr_parser___parser_prod___ADoExpr___empty_init();
 val_t NEW_ADoExpr_parser___parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t p1, val_t p2);
-val_t NEW_ADoExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ADoExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AReturnExpr___generate_icode = "icode_generation::AReturnExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AReturnExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AReturnExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AReturnExpr_parser___parser_prod___AReturnExpr___empty_init();
 val_t NEW_AReturnExpr_parser___parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1);
-val_t NEW_AReturnExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AReturnExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___ABreakExpr___generate_icode = "icode_generation::ABreakExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___ABreakExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___ABreakExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_ABreakExpr_parser___parser_prod___ABreakExpr___empty_init();
 val_t NEW_ABreakExpr_parser___parser_prod___ABreakExpr___init_abreakexpr(val_t p0, val_t p1, val_t p2);
-val_t NEW_ABreakExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABreakExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AContinueExpr___generate_icode = "icode_generation::AContinueExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AContinueExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AContinueExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AContinueExpr_parser___parser_prod___AContinueExpr___empty_init();
 val_t NEW_AContinueExpr_parser___parser_prod___AContinueExpr___init_acontinueexpr(val_t p0, val_t p1, val_t p2);
-val_t NEW_AContinueExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AContinueExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AAbortExpr___generate_icode = "icode_generation::AAbortExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AAbortExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AAbortExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AAbortExpr_parser___parser_prod___AAbortExpr___empty_init();
 val_t NEW_AAbortExpr_parser___parser_prod___AAbortExpr___init_aabortexpr(val_t p0);
-val_t NEW_AAbortExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAbortExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AIfExpr___generate_icode = "icode_generation::AIfExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AIfExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AIfExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AIfExpr_parser___parser_prod___AIfExpr___empty_init();
 val_t NEW_AIfExpr_parser___parser_prod___AIfExpr___init_aifexpr(val_t p0, val_t p1, val_t p2, val_t p3);
-val_t NEW_AIfExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIfExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AWhileExpr___generate_icode = "icode_generation::AWhileExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AWhileExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AWhileExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AWhileExpr_parser___parser_prod___AWhileExpr___empty_init();
 val_t NEW_AWhileExpr_parser___parser_prod___AWhileExpr___init_awhileexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-val_t NEW_AWhileExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AWhileExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___ALoopExpr___generate_icode = "icode_generation::ALoopExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___ALoopExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___ALoopExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_ALoopExpr_parser___parser_prod___ALoopExpr___empty_init();
 val_t NEW_ALoopExpr_parser___parser_prod___ALoopExpr___init_aloopexpr(val_t p0, val_t p1, val_t p2);
-val_t NEW_ALoopExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALoopExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AForExpr___generate_icode = "icode_generation::AForExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AForExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AForExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AForExpr_parser___parser_prod___AForExpr___empty_init();
 val_t NEW_AForExpr_parser___parser_prod___AForExpr___init_aforexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
-val_t NEW_AForExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AForExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AAssertExpr___generate_icode = "icode_generation::AAssertExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AAssertExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AAssertExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AAssertExpr_parser___parser_prod___AAssertExpr___empty_init();
 val_t NEW_AAssertExpr_parser___parser_prod___AAssertExpr___init_aassertexpr(val_t p0, val_t p1, val_t p2, val_t p3);
-val_t NEW_AAssertExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAssertExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AVarExpr___generate_icode = "icode_generation::AVarExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AVarExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AVarExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AVarExpr_parser___parser_prod___AVarExpr___init_avarexpr(val_t p0);
 val_t NEW_AVarExpr_parser___parser_prod___AVarExpr___empty_init();
-val_t NEW_AVarExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AVarExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AVarAssignExpr___generate_icode = "icode_generation::AVarAssignExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AVarAssignExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AVarAssignExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___init_avarassignexpr(val_t p0, val_t p1, val_t p2);
 val_t NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___empty_init();
-val_t NEW_AVarAssignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AVarAssignExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AVarReassignExpr___generate_icode = "icode_generation::AVarReassignExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AVarReassignExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AVarReassignExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t p0, val_t p1, val_t p2);
 val_t NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___empty_init();
-val_t NEW_AVarReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AVarReassignExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___ASelfExpr___generate_icode = "icode_generation::ASelfExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___ASelfExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___ASelfExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_ASelfExpr_parser___parser_prod___ASelfExpr___empty_init();
 val_t NEW_ASelfExpr_parser___parser_prod___ASelfExpr___init_aselfexpr(val_t p0);
-val_t NEW_ASelfExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASelfExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AIfexprExpr___generate_icode = "icode_generation::AIfexprExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AIfexprExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AIfexprExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AIfexprExpr_parser___parser_prod___AIfexprExpr___empty_init();
 val_t NEW_AIfexprExpr_parser___parser_prod___AIfexprExpr___init_aifexprexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
-val_t NEW_AIfexprExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIfexprExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AEeExpr___generate_icode = "icode_generation::AEeExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AEeExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AEeExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AEeExpr_parser___parser_prod___AEeExpr___empty_init();
 val_t NEW_AEeExpr_parser___parser_prod___AEeExpr___init_aeeexpr(val_t p0, val_t p1);
-val_t NEW_AEeExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AEeExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AOrExpr___generate_icode = "icode_generation::AOrExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AOrExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AOrExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AOrExpr_parser___parser_prod___AOrExpr___empty_init();
 val_t NEW_AOrExpr_parser___parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t p1);
-val_t NEW_AOrExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AOrExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AAndExpr___generate_icode = "icode_generation::AAndExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AAndExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AAndExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AAndExpr_parser___parser_prod___AAndExpr___empty_init();
 val_t NEW_AAndExpr_parser___parser_prod___AAndExpr___init_aandexpr(val_t p0, val_t p1);
-val_t NEW_AAndExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAndExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___ANotExpr___generate_icode = "icode_generation::ANotExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___ANotExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___ANotExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_ANotExpr_parser___parser_prod___ANotExpr___empty_init();
 val_t NEW_ANotExpr_parser___parser_prod___ANotExpr___init_anotexpr(val_t p0, val_t p1);
-val_t NEW_ANotExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANotExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AOrElseExpr___generate_icode = "icode_generation::AOrElseExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AOrElseExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AOrElseExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AOrElseExpr_parser___parser_prod___AOrElseExpr___empty_init();
 val_t NEW_AOrElseExpr_parser___parser_prod___AOrElseExpr___init_aorelseexpr(val_t p0, val_t p1);
-val_t NEW_AOrElseExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AOrElseExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AIsaExpr___generate_icode = "icode_generation::AIsaExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AIsaExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AIsaExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AIsaExpr_parser___parser_prod___AIsaExpr___empty_init();
 val_t NEW_AIsaExpr_parser___parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val_t p1);
-val_t NEW_AIsaExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIsaExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AAsCastExpr___generate_icode = "icode_generation::AAsCastExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AAsCastExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AAsCastExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___empty_init();
-val_t NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2);
-val_t NEW_AAsCastExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+val_t NEW_AAsCastExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AAsNotnullExpr___generate_icode = "icode_generation::AAsNotnullExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AAsNotnullExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AAsNotnullExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___empty_init();
-val_t NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3);
-val_t NEW_AAsNotnullExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
+val_t NEW_AAsNotnullExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___ATrueExpr___generate_icode = "icode_generation::ATrueExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___ATrueExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___ATrueExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_ATrueExpr_parser___parser_prod___ATrueExpr___empty_init();
 val_t NEW_ATrueExpr_parser___parser_prod___ATrueExpr___init_atrueexpr(val_t p0);
-val_t NEW_ATrueExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ATrueExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AFalseExpr___generate_icode = "icode_generation::AFalseExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AFalseExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AFalseExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AFalseExpr_parser___parser_prod___AFalseExpr___empty_init();
 val_t NEW_AFalseExpr_parser___parser_prod___AFalseExpr___init_afalseexpr(val_t p0);
-val_t NEW_AFalseExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AFalseExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AIntExpr___generate_icode = "icode_generation::AIntExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AIntExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AIntExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AIntExpr_parser___parser_prod___AIntExpr___empty_init();
 val_t NEW_AIntExpr_parser___parser_prod___AIntExpr___init_aintexpr(val_t p0);
-val_t NEW_AIntExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIntExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AFloatExpr___generate_icode = "icode_generation::AFloatExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AFloatExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AFloatExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AFloatExpr_parser___parser_prod___AFloatExpr___empty_init();
 val_t NEW_AFloatExpr_parser___parser_prod___AFloatExpr___init_afloatexpr(val_t p0);
-val_t NEW_AFloatExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AFloatExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___ACharExpr___generate_icode = "icode_generation::ACharExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___ACharExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___ACharExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_ACharExpr_parser___parser_prod___ACharExpr___empty_init();
 val_t NEW_ACharExpr_parser___parser_prod___ACharExpr___init_acharexpr(val_t p0);
-val_t NEW_ACharExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ACharExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AStringFormExpr___generate_icode = "icode_generation::AStringFormExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AStringFormExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AStringFormExpr___generate_icode_t)(val_t p0, val_t p1);
@@ -503,31 +505,31 @@ typedef val_t (*syntax___icode_generation___AStringFormExpr___string_text_t)(val
 static const char * const LOCATE_syntax___icode_generation___AStringFormExpr___compute_string_infos = "icode_generation::AStringFormExpr::compute_string_infos";
 void syntax___icode_generation___AStringFormExpr___compute_string_infos(val_t p0);
 typedef void (*syntax___icode_generation___AStringFormExpr___compute_string_infos_t)(val_t p0);
-val_t NEW_AStringFormExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStringFormExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AStringExpr___string_text = "icode_generation::AStringExpr::(icode_generation::AStringFormExpr::string_text)";
 val_t syntax___icode_generation___AStringExpr___string_text(val_t p0);
 typedef val_t (*syntax___icode_generation___AStringExpr___string_text_t)(val_t p0);
 val_t NEW_AStringExpr_parser___parser_prod___AStringExpr___empty_init();
 val_t NEW_AStringExpr_parser___parser_prod___AStringExpr___init_astringexpr(val_t p0);
-val_t NEW_AStringExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStringExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AStartStringExpr___string_text = "icode_generation::AStartStringExpr::(icode_generation::AStringFormExpr::string_text)";
 val_t syntax___icode_generation___AStartStringExpr___string_text(val_t p0);
 typedef val_t (*syntax___icode_generation___AStartStringExpr___string_text_t)(val_t p0);
 val_t NEW_AStartStringExpr_parser___parser_prod___AStartStringExpr___empty_init();
 val_t NEW_AStartStringExpr_parser___parser_prod___AStartStringExpr___init_astartstringexpr(val_t p0);
-val_t NEW_AStartStringExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStartStringExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AMidStringExpr___string_text = "icode_generation::AMidStringExpr::(icode_generation::AStringFormExpr::string_text)";
 val_t syntax___icode_generation___AMidStringExpr___string_text(val_t p0);
 typedef val_t (*syntax___icode_generation___AMidStringExpr___string_text_t)(val_t p0);
 val_t NEW_AMidStringExpr_parser___parser_prod___AMidStringExpr___empty_init();
 val_t NEW_AMidStringExpr_parser___parser_prod___AMidStringExpr___init_amidstringexpr(val_t p0);
-val_t NEW_AMidStringExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMidStringExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AEndStringExpr___string_text = "icode_generation::AEndStringExpr::(icode_generation::AStringFormExpr::string_text)";
 val_t syntax___icode_generation___AEndStringExpr___string_text(val_t p0);
 typedef val_t (*syntax___icode_generation___AEndStringExpr___string_text_t)(val_t p0);
 val_t NEW_AEndStringExpr_parser___parser_prod___AEndStringExpr___empty_init();
 val_t NEW_AEndStringExpr_parser___parser_prod___AEndStringExpr___init_aendstringexpr(val_t p0);
-val_t NEW_AEndStringExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AEndStringExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___ASuperstringExpr___generate_icode = "icode_generation::ASuperstringExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___ASuperstringExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___ASuperstringExpr___generate_icode_t)(val_t p0, val_t p1);
@@ -536,13 +538,13 @@ typedef val_t (*syntax___icode_generation___ASuperstringExpr___generate_icode_t)
   typedef void (*OC_syntax___icode_generation___ASuperstringExpr___generate_icode_3_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_ASuperstringExpr_parser___parser_prod___ASuperstringExpr___empty_init();
 val_t NEW_ASuperstringExpr_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0);
-val_t NEW_ASuperstringExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASuperstringExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___ANullExpr___generate_icode = "icode_generation::ANullExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___ANullExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___ANullExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_ANullExpr_parser___parser_prod___ANullExpr___empty_init();
 val_t NEW_ANullExpr_parser___parser_prod___ANullExpr___init_anullexpr(val_t p0);
-val_t NEW_ANullExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANullExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AArrayExpr___generate_icode = "icode_generation::AArrayExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AArrayExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AArrayExpr___generate_icode_t)(val_t p0, val_t p1);
@@ -551,22 +553,22 @@ typedef val_t (*syntax___icode_generation___AArrayExpr___generate_icode_t)(val_t
   typedef void (*OC_syntax___icode_generation___AArrayExpr___generate_icode_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_AArrayExpr_parser___parser_prod___AArrayExpr___empty_init();
 val_t NEW_AArrayExpr_parser___parser_prod___AArrayExpr___init_aarrayexpr(val_t p0);
-val_t NEW_AArrayExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AArrayExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___ACrangeExpr___generate_icode = "icode_generation::ACrangeExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___ACrangeExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___ACrangeExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_ACrangeExpr_parser___parser_prod___ARangeExpr___empty_init();
 val_t NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___empty_init();
-val_t NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1);
-val_t NEW_ACrangeExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ACrangeExpr_parser___parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1, val_t p2, val_t p3);
+val_t NEW_ACrangeExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ACrangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1);
 static const char * const LOCATE_syntax___icode_generation___AOrangeExpr___generate_icode = "icode_generation::AOrangeExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AOrangeExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AOrangeExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AOrangeExpr_parser___parser_prod___ARangeExpr___empty_init();
 val_t NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___empty_init();
-val_t NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1);
-val_t NEW_AOrangeExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AOrangeExpr_parser___parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1, val_t p2, val_t p3);
+val_t NEW_AOrangeExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AOrangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1);
 static const char * const LOCATE_syntax___icode_generation___ASuperExpr___generate_icode = "icode_generation::ASuperExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___ASuperExpr___generate_icode(val_t p0, val_t p1);
@@ -576,73 +578,79 @@ typedef val_t (*syntax___icode_generation___ASuperExpr___generate_icode_t)(val_t
     typedef void (*OC_syntax___icode_generation___ASuperExpr___generate_icode_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_ASuperExpr_parser___parser_prod___ASuperExpr___empty_init();
 val_t NEW_ASuperExpr_parser___parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val_t p2);
-val_t NEW_ASuperExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASuperExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AAttrExpr___generate_icode = "icode_generation::AAttrExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AAttrExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AAttrExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AAttrExpr_parser___parser_prod___AAttrExpr___empty_init();
 val_t NEW_AAttrExpr_parser___parser_prod___AAttrExpr___init_aattrexpr(val_t p0, val_t p1);
-val_t NEW_AAttrExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAttrExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AAttrAssignExpr___generate_icode = "icode_generation::AAttrAssignExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AAttrAssignExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AAttrAssignExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AAttrAssignExpr_parser___parser_prod___AAttrAssignExpr___empty_init();
 val_t NEW_AAttrAssignExpr_parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr(val_t p0, val_t p1, val_t p2, val_t p3);
-val_t NEW_AAttrAssignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAttrAssignExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AAttrReassignExpr___generate_icode = "icode_generation::AAttrReassignExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AAttrReassignExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AAttrReassignExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AAttrReassignExpr_parser___parser_prod___AAttrReassignExpr___empty_init();
 val_t NEW_AAttrReassignExpr_parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3);
-val_t NEW_AAttrReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAttrReassignExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AIssetAttrExpr___generate_icode = "icode_generation::AIssetAttrExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AIssetAttrExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AIssetAttrExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AIssetAttrExpr_parser___parser_prod___AIssetAttrExpr___empty_init();
 val_t NEW_AIssetAttrExpr_parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr(val_t p0, val_t p1, val_t p2);
-val_t NEW_AIssetAttrExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIssetAttrExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in = "icode_generation::AAbsAbsSendExpr::generate_icode_for_arguments_in";
 void syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(val_t p0, val_t p1, val_t p2, val_t p3);
 typedef void (*syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in_t)(val_t p0, val_t p1, val_t p2, val_t p3);
-val_t NEW_AAbsAbsSendExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAbsAbsSendExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___ASendExpr___generate_icode = "icode_generation::ASendExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___ASendExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___ASendExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_ASendExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ASendExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
-val_t NEW_ASendExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASendExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___ASendReassignExpr___generate_icode = "icode_generation::ASendReassignExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___ASendReassignExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___ASendReassignExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_ASendReassignExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ASendReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
-val_t NEW_ASendReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASendReassignExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___ANewExpr___generate_icode = "icode_generation::ANewExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___ANewExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___ANewExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_ANewExpr_parser___parser_prod___ANewExpr___empty_init();
 val_t NEW_ANewExpr_parser___parser_prod___ANewExpr___init_anewexpr(val_t p0, val_t p1, val_t p2, val_t p3);
-val_t NEW_ANewExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANewExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AProxyExpr___generate_icode = "icode_generation::AProxyExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AProxyExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AProxyExpr___generate_icode_t)(val_t p0, val_t p1);
-val_t NEW_AProxyExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AProxyExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AOnceExpr___generate_icode = "icode_generation::AOnceExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AOnceExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AOnceExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AOnceExpr_parser___parser_prod___AOnceExpr___empty_init();
 val_t NEW_AOnceExpr_parser___parser_prod___AOnceExpr___init_aonceexpr(val_t p0, val_t p1);
-val_t NEW_AOnceExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AOnceExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AClosureDef___generate_iclosuredef = "icode_generation::AClosureDef::generate_iclosuredef";
 val_t syntax___icode_generation___AClosureDef___generate_iclosuredef(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AClosureDef___generate_iclosuredef_t)(val_t p0, val_t p1);
 val_t NEW_AClosureDef_parser___parser_prod___AClosureDef___empty_init();
 val_t NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
-val_t NEW_AClosureDef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AClosureDef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___icode_generation___AClosureCallExpr___generate_icode = "icode_generation::AClosureCallExpr::(icode_generation::AExpr::generate_icode)";
 val_t syntax___icode_generation___AClosureCallExpr___generate_icode(val_t p0, val_t p1);
 typedef val_t (*syntax___icode_generation___AClosureCallExpr___generate_icode_t)(val_t p0, val_t p1);
 val_t NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(val_t p0, val_t p1, val_t p2);
 val_t NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___empty_init();
-val_t NEW_AClosureCallExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AClosureCallExpr_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_syntax___icode_generation___ADebugTypeExpr___generate_icode = "icode_generation::ADebugTypeExpr::(icode_generation::AExpr::generate_icode)";
+val_t syntax___icode_generation___ADebugTypeExpr___generate_icode(val_t p0, val_t p1);
+typedef val_t (*syntax___icode_generation___ADebugTypeExpr___generate_icode_t)(val_t p0, val_t p1);
+val_t NEW_ADebugTypeExpr_parser___parser_prod___ADebugTypeExpr___empty_init();
+val_t NEW_ADebugTypeExpr_parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr(val_t p0, val_t p1, val_t p2, val_t p3);
+val_t NEW_ADebugTypeExpr_parser___parser_nodes___ANode___init();
 #endif
index 0c3314f..2e07bbf 100644 (file)
@@ -29,14 +29,14 @@ void syntax___mmbuilder___ToolContext___handle_property_conflict(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//mmbuilder.nit:28 */
+  /* syntax/mmbuilder.nit:28 */
   fra.me.REG[3] = NIT_NULL;
-  /* ./syntax//mmbuilder.nit:29 */
+  /* syntax/mmbuilder.nit:29 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_syntax___syntax_base___MMSrcLocalClass, ID_syntax___syntax_base___MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:30 */
+    /* syntax/mmbuilder.nit:30 */
     fra.me.REG[4] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./syntax//mmbuilder.nit:31 */
+    /* syntax/mmbuilder.nit:31 */
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -58,24 +58,24 @@ void syntax___mmbuilder___ToolContext___handle_property_conflict(val_t p0, val_t
       CALL_parser___parser_nodes___ANode___location(fra.me.REG[4])(fra.me.REG[4]);
     }
   }
-  /* ./syntax//mmbuilder.nit:34 */
+  /* syntax/mmbuilder.nit:34 */
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ./../lib/standard//collection//array.nit:266 */
+  /* ../lib/standard/collection/array.nit:266 */
   fra.me.REG[5] = fra.me.REG[2];
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -87,33 +87,33 @@ void syntax___mmbuilder___ToolContext___handle_property_conflict(val_t p0, val_t
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
-      /* ./syntax//mmbuilder.nit:36 */
+      /* syntax/mmbuilder.nit:36 */
       fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[7])(fra.me.REG[7]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./syntax//mmbuilder.nit:38 */
+  /* syntax/mmbuilder.nit:38 */
   REGB0 = TAG_Int(7);
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_2) {
@@ -173,7 +173,7 @@ void syntax___mmbuilder___ToolContext___handle_property_conflict(val_t p0, val_t
   fra.me.REG[2] = fra.me.REG[2];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
   fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-  CALL_mmloader___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[6]);
+  CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[6]);
   stack_frame_head = fra.me.prev;
   return;
 }
@@ -195,7 +195,7 @@ val_t syntax___mmbuilder___CSHSorter___compare(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//mmbuilder.nit:47 */
+  /* syntax/mmbuilder.nit:47 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = CALL_metamodel___partial_order___PartialOrderElement___rank(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]);
@@ -220,8 +220,6 @@ void syntax___mmbuilder___CSHSorter___init(val_t p0, int* init_table){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:50 */
-  CALL_standard___collection___sorter___AbstractSorter___init(fra.me.REG[0])(fra.me.REG[0], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
   return;
@@ -250,16 +248,16 @@ void syntax___mmbuilder___MMSrcModule___do_mmbuilder(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:59 */
+  /* syntax/mmbuilder.nit:59 */
   CALL_metamodel___inheritance___MMModule___import_global_classes(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./syntax//mmbuilder.nit:62 */
+  /* syntax/mmbuilder.nit:62 */
   fra.me.REG[2] = NEW_ClassBuilderVisitor_syntax___mmbuilder___ClassBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
-  /* ./syntax//mmbuilder.nit:63 */
+  /* syntax/mmbuilder.nit:63 */
   fra.me.REG[3] = CALL_syntax___syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./syntax//mmbuilder.nit:64 */
-  CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:66 */
+  /* syntax/mmbuilder.nit:64 */
+  CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
+  /* syntax/mmbuilder.nit:66 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -268,53 +266,53 @@ void syntax___mmbuilder___MMSrcModule___do_mmbuilder(val_t p0, val_t p1){
   fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:67 */
+    /* syntax/mmbuilder.nit:67 */
     CALL_syntax___mmbuilder___MMSrcModule___process_default_classes(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   }
-  /* ./syntax//mmbuilder.nit:71 */
+  /* syntax/mmbuilder.nit:71 */
   CALL_metamodel___inheritance___MMModule___import_local_classes(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./syntax//mmbuilder.nit:74 */
+  /* syntax/mmbuilder.nit:74 */
   fra.me.REG[3] = NEW_ClassSpecializationBuilderVisitor_syntax___mmbuilder___ClassSpecializationBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
-  /* ./syntax//mmbuilder.nit:75 */
+  /* syntax/mmbuilder.nit:75 */
   fra.me.REG[2] = CALL_syntax___syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:76 */
-  CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:79 */
+  /* syntax/mmbuilder.nit:76 */
+  CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
+  /* syntax/mmbuilder.nit:79 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcModule___do_mmbuilder_1));
-  /* ./syntax//mmbuilder.nit:85 */
-  CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:90 */
+  /* syntax/mmbuilder.nit:85 */
+  CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
+  /* syntax/mmbuilder.nit:90 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___class_specialization_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:93 */
+  /* syntax/mmbuilder.nit:93 */
   if (!once_value_3) {
     fra.me.REG[3] = NEW_CSHSorter_syntax___mmbuilder___CSHSorter___init();
     once_value_3 = fra.me.REG[3];
     register_static_object(&once_value_3);
   } else fra.me.REG[3] = once_value_3;
   fra.me.REG[3] = fra.me.REG[3];
-  /* ./syntax//mmbuilder.nit:94 */
+  /* syntax/mmbuilder.nit:94 */
   CALL_standard___collection___sorter___AbstractSorter___sort(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:97 */
+  /* syntax/mmbuilder.nit:97 */
   fra.me.REG[3] = NEW_ClassAncestorBuilder_syntax___mmbuilder___ClassAncestorBuilder___init(fra.me.REG[1], fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:266 */
+  /* ../lib/standard/collection/array.nit:266 */
   fra.me.REG[4] = fra.me.REG[2];
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -326,53 +324,53 @@ void syntax___mmbuilder___MMSrcModule___do_mmbuilder(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-      /* ./syntax//mmbuilder.nit:99 */
+      /* syntax/mmbuilder.nit:99 */
       CALL_syntax___mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
-      /* ./syntax//mmbuilder.nit:100 */
-      CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./syntax//mmbuilder.nit:101 */
+      /* syntax/mmbuilder.nit:100 */
+      CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
+      /* syntax/mmbuilder.nit:101 */
       CALL_metamodel___inheritance___MMLocalClass___compute_ancestors(fra.me.REG[6])(fra.me.REG[6]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label4;
     }
   }
   label4: while(0);
-  /* ./syntax//mmbuilder.nit:105 */
+  /* syntax/mmbuilder.nit:105 */
   fra.me.REG[3] = NEW_ClassVerifierVisitor_syntax___mmbuilder___ClassVerifierVisitor___init(fra.me.REG[1], fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:266 */
+  /* ../lib/standard/collection/array.nit:266 */
   fra.me.REG[5] = fra.me.REG[2];
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -384,51 +382,51 @@ void syntax___mmbuilder___MMSrcModule___do_mmbuilder(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-      /* ./syntax//mmbuilder.nit:107 */
+      /* syntax/mmbuilder.nit:107 */
       CALL_syntax___mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label5;
     }
   }
   label5: while(0);
-  /* ./syntax//mmbuilder.nit:109 */
-  CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:112 */
+  /* syntax/mmbuilder.nit:109 */
+  CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
+  /* syntax/mmbuilder.nit:112 */
   fra.me.REG[3] = NEW_PropertyBuilderVisitor_syntax___mmbuilder___PropertyBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:266 */
+  /* ../lib/standard/collection/array.nit:266 */
   fra.me.REG[4] = fra.me.REG[2];
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -440,20 +438,20 @@ void syntax___mmbuilder___MMSrcModule___do_mmbuilder(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-      /* ./syntax//mmbuilder.nit:115 */
+      /* syntax/mmbuilder.nit:115 */
       CALL_syntax___mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
-      /* ./syntax//mmbuilder.nit:118 */
+      /* syntax/mmbuilder.nit:118 */
       REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[6], COLOR_syntax___syntax_base___MMSrcLocalClass, ID_syntax___syntax_base___MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
       if (UNTAG_Bool(REGB1)) {
         fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
@@ -493,39 +491,39 @@ void syntax___mmbuilder___MMSrcModule___do_mmbuilder(val_t p0, val_t p1){
         REGB1 = REGB2;
       }
       if (UNTAG_Bool(REGB1)) {
-        /* ./syntax//mmbuilder.nit:119 */
+        /* syntax/mmbuilder.nit:119 */
         CALL_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label6;
     }
   }
   label6: while(0);
-  /* ./syntax//mmbuilder.nit:124 */
-  CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:127 */
+  /* syntax/mmbuilder.nit:124 */
+  CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
+  /* syntax/mmbuilder.nit:127 */
   fra.me.REG[0] = NEW_PropertyVerifierVisitor_syntax___mmbuilder___PropertyVerifierVisitor___init(fra.me.REG[1], fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -537,33 +535,33 @@ void syntax___mmbuilder___MMSrcModule___do_mmbuilder(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
-      /* ./syntax//mmbuilder.nit:129 */
+      /* syntax/mmbuilder.nit:129 */
       CALL_syntax___mmbuilder___MMLocalClass___accept_properties_visitor(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label7;
     }
   }
   label7: while(0);
-  /* ./syntax//mmbuilder.nit:132 */
-  CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
+  /* syntax/mmbuilder.nit:132 */
+  CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
 }
@@ -587,7 +585,7 @@ void syntax___mmbuilder___MMSrcModule___do_mmbuilder(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./syntax//mmbuilder.nit:80 */
+    /* syntax/mmbuilder.nit:80 */
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
@@ -599,14 +597,14 @@ void syntax___mmbuilder___MMSrcModule___do_mmbuilder(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./syntax//mmbuilder.nit:80 */
+    /* syntax/mmbuilder.nit:80 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./syntax//mmbuilder.nit:81 */
+      /* syntax/mmbuilder.nit:81 */
       goto label2;
     }
-    /* ./syntax//mmbuilder.nit:83 */
+    /* syntax/mmbuilder.nit:83 */
     CALL_metamodel___inheritance___MMLocalClass___compute_super_classes(fra.me.REG[0])(fra.me.REG[0]);
     label2: while(0);
     stack_frame_head = fra.me.prev;
@@ -633,7 +631,7 @@ void syntax___mmbuilder___MMSrcModule___process_default_classes(val_t p0, val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:138 */
+  /* syntax/mmbuilder.nit:138 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[1] = BOX_NativeString("Object");
@@ -648,20 +646,20 @@ void syntax___mmbuilder___MMSrcModule___process_default_classes(val_t p0, val_t
     register_static_object(&once_value_1);
   } else fra.me.REG[1] = once_value_1;
   fra.me.REG[1] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:139 */
+  /* syntax/mmbuilder.nit:139 */
   REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:140 */
+    /* syntax/mmbuilder.nit:140 */
     REGB0 = TAG_Int(0);
     fra.me.REG[2] = NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0);
-    /* ./syntax//mmbuilder.nit:141 */
+    /* syntax/mmbuilder.nit:141 */
     CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
-    /* ./syntax//mmbuilder.nit:142 */
+    /* syntax/mmbuilder.nit:142 */
     fra.me.REG[3] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2]);
   }
-  /* ./syntax//mmbuilder.nit:144 */
+  /* syntax/mmbuilder.nit:144 */
   if (!once_value_3) {
     if (!once_value_4) {
       fra.me.REG[2] = BOX_NativeString("Bool");
@@ -677,16 +675,16 @@ void syntax___mmbuilder___MMSrcModule___process_default_classes(val_t p0, val_t
   } else fra.me.REG[2] = once_value_3;
   fra.me.REG[2] = fra.me.REG[2];
   fra.me.REG[1] = fra.me.REG[2];
-  /* ./syntax//mmbuilder.nit:145 */
+  /* syntax/mmbuilder.nit:145 */
   REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:146 */
+    /* syntax/mmbuilder.nit:146 */
     REGB0 = TAG_Int(0);
     fra.me.REG[2] = NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0);
-    /* ./syntax//mmbuilder.nit:147 */
+    /* syntax/mmbuilder.nit:147 */
     CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
-    /* ./syntax//mmbuilder.nit:148 */
+    /* syntax/mmbuilder.nit:148 */
     fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
   }
@@ -744,9 +742,9 @@ void syntax___mmbuilder___MMSrcLocalClass___accept_class_visitor(val_t p0, val_t
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:168 */
+  /* syntax/mmbuilder.nit:168 */
   fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./syntax//mmbuilder.nit:169 */
+  /* syntax/mmbuilder.nit:169 */
   while(1) {
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -762,9 +760,9 @@ void syntax___mmbuilder___MMSrcLocalClass___accept_class_visitor(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:170 */
+      /* syntax/mmbuilder.nit:170 */
       CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-      /* ./syntax//mmbuilder.nit:171 */
+      /* syntax/mmbuilder.nit:171 */
       REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 171);
@@ -772,7 +770,7 @@ void syntax___mmbuilder___MMSrcLocalClass___accept_class_visitor(val_t p0, val_t
       fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[0] = fra.me.REG[2];
     } else {
-      /* ./syntax//mmbuilder.nit:169 */
+      /* syntax/mmbuilder.nit:169 */
       goto label1;
     }
   }
@@ -798,9 +796,9 @@ void syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor(val_t p0,
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:178 */
+  /* syntax/mmbuilder.nit:178 */
   fra.me.REG[2] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./syntax//mmbuilder.nit:179 */
+  /* syntax/mmbuilder.nit:179 */
   while(1) {
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -816,9 +814,9 @@ void syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor(val_t p0,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:180 */
+      /* syntax/mmbuilder.nit:180 */
       CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-      /* ./syntax//mmbuilder.nit:181 */
+      /* syntax/mmbuilder.nit:181 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 181);
@@ -826,12 +824,12 @@ void syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor(val_t p0,
       fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[2])(fra.me.REG[2]);
       fra.me.REG[2] = fra.me.REG[3];
     } else {
-      /* ./syntax//mmbuilder.nit:179 */
+      /* syntax/mmbuilder.nit:179 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./syntax//mmbuilder.nit:184 */
+  /* syntax/mmbuilder.nit:184 */
   fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___values(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor_2));
@@ -854,7 +852,7 @@ void syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor(val_t p0,
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./syntax//mmbuilder.nit:185 */
+    /* syntax/mmbuilder.nit:185 */
     CALL_syntax___mmbuilder___MMLocalProperty___accept_property_visitor(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
     stack_frame_head = fra.me.prev;
     return;
@@ -893,36 +891,36 @@ void syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:189 */
+  /* syntax/mmbuilder.nit:189 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//mmbuilder.nit:193 */
+  /* syntax/mmbuilder.nit:193 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_1));
   switch ((&(fra.me))->has_broke) {
     case 0: break;
     case 1: (&(fra.me))->has_broke = 0; goto label3;
   }
-  /* ./syntax//mmbuilder.nit:201 */
+  /* syntax/mmbuilder.nit:201 */
   fra.me.REG[3] = NEW_ArraySet_standard___collection___array___ArraySet___init();
-  /* ./syntax//mmbuilder.nit:202 */
+  /* syntax/mmbuilder.nit:202 */
   fra.me.REG[4] = NEW_ArraySet_standard___collection___array___ArraySet___init();
-  /* ./syntax//mmbuilder.nit:203 */
+  /* syntax/mmbuilder.nit:203 */
   fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[5])(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -934,18 +932,18 @@ void syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
-      /* ./syntax//mmbuilder.nit:204 */
+      /* syntax/mmbuilder.nit:204 */
       fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
       REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[8])(fra.me.REG[8]);
       if (UNTAG_Bool(REGB1)) {
@@ -966,10 +964,10 @@ void syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p
       if (UNTAG_Bool(REGB1)) {
         goto label4;
       }
-      /* ./syntax//mmbuilder.nit:205 */
+      /* syntax/mmbuilder.nit:205 */
       fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[7])(fra.me.REG[7]);
       CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[8])(fra.me.REG[8], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_5));
-      /* ./syntax//mmbuilder.nit:209 */
+      /* syntax/mmbuilder.nit:209 */
       if (!once_value_7) {
         if (!once_value_8) {
           fra.me.REG[8] = BOX_NativeString("init");
@@ -984,67 +982,67 @@ void syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p
         register_static_object(&once_value_7);
       } else fra.me.REG[8] = once_value_7;
       fra.me.REG[8] = fra.me.REG[8];
-      /* ./syntax//mmbuilder.nit:210 */
+      /* syntax/mmbuilder.nit:210 */
       REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
       if (UNTAG_Bool(REGB1)) {
-        /* ./syntax//mmbuilder.nit:211 */
+        /* syntax/mmbuilder.nit:211 */
         fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-        /* ./syntax//mmbuilder.nit:212 */
+        /* syntax/mmbuilder.nit:212 */
         fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
       }
       label4: while(0);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label9;
     }
   }
   label9: while(0);
-  /* ./syntax//mmbuilder.nit:217 */
+  /* syntax/mmbuilder.nit:217 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./syntax//mmbuilder.nit:218 */
+  /* syntax/mmbuilder.nit:218 */
   fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[5] = CALL_standard___collection___abstract_collection___MapRead___values(fra.me.REG[5])(fra.me.REG[5]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_10));
-  /* ./syntax//mmbuilder.nit:225 */
+  /* syntax/mmbuilder.nit:225 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:228 */
+    /* syntax/mmbuilder.nit:228 */
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
     CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_11));
-    /* ./syntax//mmbuilder.nit:236 */
+    /* syntax/mmbuilder.nit:236 */
     fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[8] = CALL_metamodel___partial_order___PartialOrderElement___order(fra.me.REG[8])(fra.me.REG[8]);
     fra.me.REG[8] = CALL_metamodel___partial_order___PartialOrder___select_smallests(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
     fra.me.REG[5] = fra.me.REG[8];
-    /* ./syntax//mmbuilder.nit:239 */
+    /* syntax/mmbuilder.nit:239 */
     fra.me.REG[8] = NIT_NULL;
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-    /* ./syntax//mmbuilder.nit:241 */
+    /* syntax/mmbuilder.nit:241 */
     REGB1 = TAG_Int(1);
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-    /* ./syntax//mmbuilder.nit:241 */
+    /* syntax/mmbuilder.nit:241 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./syntax//mmbuilder.nit:242 */
+      /* syntax/mmbuilder.nit:242 */
       fra.me.REG[7] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[2])(fra.me.REG[2]);
       REGB1 = TAG_Int(7);
       fra.me.REG[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
@@ -1108,34 +1106,34 @@ void syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
       fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7], fra.me.REG[9]);
-      /* ./syntax//mmbuilder.nit:243 */
+      /* syntax/mmbuilder.nit:243 */
       goto label3;
     } else {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
       }
       REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-      /* ./syntax//mmbuilder.nit:244 */
+      /* syntax/mmbuilder.nit:244 */
       REGB0 = TAG_Int(1);
       REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
       if (UNTAG_Bool(REGB2)) {
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB0 = TAG_Bool((REGB1)==(REGB0));
-        /* ./syntax//mmbuilder.nit:244 */
+        /* syntax/mmbuilder.nit:244 */
         REGB2 = REGB0;
       }
       if (UNTAG_Bool(REGB2)) {
-        /* ./syntax//mmbuilder.nit:245 */
+        /* syntax/mmbuilder.nit:245 */
         fra.me.REG[5] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[5])(fra.me.REG[5]);
         fra.me.REG[8] = fra.me.REG[5];
       }
     }
     CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_19));
-    /* ./syntax//mmbuilder.nit:254 */
+    /* syntax/mmbuilder.nit:254 */
     fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
     REGB2 = TAG_Bool(fra.me.REG[8]!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
@@ -1149,10 +1147,10 @@ void syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p
     fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[8])(fra.me.REG[8]);
     CALL_metamodel___abstractmetamodel___MMGlobalClass___mixin_of__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
   } else {
-    /* ./syntax//mmbuilder.nit:259 */
+    /* syntax/mmbuilder.nit:259 */
     fra.me.REG[3] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[3])(fra.me.REG[3]);
     fra.me.REG[3] = NEW_MMImplicitInit_syntax___syntax_base___MMImplicitInit___init(fra.me.REG[2], fra.me.REG[6], fra.me.REG[3]);
-    /* ./syntax//mmbuilder.nit:260 */
+    /* syntax/mmbuilder.nit:260 */
     CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[3]);
   }
   label3: while(0);
@@ -1177,10 +1175,10 @@ void syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./syntax//mmbuilder.nit:194 */
+    /* syntax/mmbuilder.nit:194 */
     REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:196 */
+      /* syntax/mmbuilder.nit:196 */
       fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
       REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],closctx->REG[2]));
@@ -1211,13 +1209,13 @@ void syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p
         fra.me.nitni_local_ref_head = NULL;
         fra.me.REG[0] = NIT_NULL;
         fra.me.REG[0] = p0;
-        /* ./syntax//mmbuilder.nit:206 */
+        /* syntax/mmbuilder.nit:206 */
         REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
         REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
         if (UNTAG_Bool(REGB0)) {
           goto label6;
         }
-        /* ./syntax//mmbuilder.nit:207 */
+        /* syntax/mmbuilder.nit:207 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[4])(closctx->REG[4], fra.me.REG[0]);
         label6: while(0);
         stack_frame_head = fra.me.prev;
@@ -1242,12 +1240,12 @@ void syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./syntax//mmbuilder.nit:219 */
+    /* syntax/mmbuilder.nit:219 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_syntax___syntax_base___MMSrcAttribute, ID_syntax___syntax_base___MMSrcAttribute)) /*cast MMSrcAttribute*/;
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:220 */
+      /* syntax/mmbuilder.nit:220 */
       fra.me.REG[1] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[0])(fra.me.REG[0]);
-      /* ./syntax//mmbuilder.nit:221 */
+      /* syntax/mmbuilder.nit:221 */
       REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 221);
@@ -1277,7 +1275,7 @@ void syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p
       val_t REGB0;
       fun_t CREG[1];
       val_t tmp;
-      /* ./syntax//mmbuilder.nit:229 */
+      /* syntax/mmbuilder.nit:229 */
       fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
       fra.me.file = LOCATE_syntax___mmbuilder;
       fra.me.line = 0;
@@ -1291,19 +1289,19 @@ void syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./syntax//mmbuilder.nit:230 */
+      /* syntax/mmbuilder.nit:230 */
       fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
-      /* ./syntax//mmbuilder.nit:231 */
+      /* syntax/mmbuilder.nit:231 */
       REGB0 = CALL_standard___collection___abstract_collection___Collection___has(closctx->REG[5])(closctx->REG[5], fra.me.REG[0]);
       if (UNTAG_Bool(REGB0)) {
         goto label12;
       }
-      /* ./syntax//mmbuilder.nit:232 */
+      /* syntax/mmbuilder.nit:232 */
       fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
       REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_mixin(fra.me.REG[1])(fra.me.REG[1]);
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//mmbuilder.nit:233 */
+        /* syntax/mmbuilder.nit:233 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[5])(closctx->REG[5], fra.me.REG[0]);
       }
       label12: while(0);
@@ -1317,7 +1315,7 @@ void syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p
       val_t REGB2;
       fun_t CREG[1];
       val_t tmp;
-      /* ./syntax//mmbuilder.nit:248 */
+      /* syntax/mmbuilder.nit:248 */
       fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
       fra.me.file = LOCATE_syntax___mmbuilder;
       fra.me.line = 0;
@@ -1331,7 +1329,7 @@ void syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./syntax//mmbuilder.nit:250 */
+      /* syntax/mmbuilder.nit:250 */
       REGB0 = TAG_Bool(closctx->REG[8]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -1357,7 +1355,7 @@ void syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p
         REGB0 = REGB1;
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//mmbuilder.nit:251 */
+        /* syntax/mmbuilder.nit:251 */
         CALL_metamodel___inheritance___MMLocalClass___make_visible_an_inherited_global_property(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
       }
       stack_frame_head = fra.me.prev;
@@ -1387,13 +1385,13 @@ void syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(val_t p0, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//mmbuilder.nit:269 */
+  /* syntax/mmbuilder.nit:269 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:271 */
+  /* syntax/mmbuilder.nit:271 */
   fra.me.REG[4] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:272 */
+    /* syntax/mmbuilder.nit:272 */
     fra.me.REG[4] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Int(5);
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -1431,27 +1429,27 @@ void syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(val_t p0, val
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]);
-    /* ./syntax//mmbuilder.nit:273 */
+    /* syntax/mmbuilder.nit:273 */
     goto label4;
   }
-  /* ./syntax//mmbuilder.nit:275 */
+  /* syntax/mmbuilder.nit:275 */
   fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:278 */
+  /* syntax/mmbuilder.nit:278 */
   REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:279 */
+    /* syntax/mmbuilder.nit:279 */
     fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-    /* ./syntax//mmbuilder.nit:280 */
+    /* syntax/mmbuilder.nit:280 */
     CALL_metamodel___inheritance___MMLocalProperty___inherit_global(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   }
-  /* ./syntax//mmbuilder.nit:283 */
+  /* syntax/mmbuilder.nit:283 */
   REGB0 = CALL_metamodel___abstractmetamodel___MMLocalProperty___is_global_set(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:284 */
+    /* syntax/mmbuilder.nit:284 */
     CALL_metamodel___abstractmetamodel___MMLocalProperty___new_global(fra.me.REG[2])(fra.me.REG[2]);
-    /* ./syntax//mmbuilder.nit:285 */
+    /* syntax/mmbuilder.nit:285 */
     fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = CALL_syntax___syntax_base___MMLocalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
     CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
@@ -1489,7 +1487,7 @@ val_t syntax___mmbuilder___MMImplicitInit___super_init(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:297 */
+  /* syntax/mmbuilder.nit:297 */
   fra.me.REG[0] = ATTR_syntax___mmbuilder___MMImplicitInit____super_init(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1524,26 +1522,26 @@ void syntax___mmbuilder___MMImplicitInit___accept_property_visitor(val_t p0, val
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:298 */
+  /* syntax/mmbuilder.nit:298 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//mmbuilder.nit:300 */
+  /* syntax/mmbuilder.nit:300 */
   fra.me.REG[3] = NIT_NULL;
-  /* ./syntax//mmbuilder.nit:301 */
+  /* syntax/mmbuilder.nit:301 */
   fra.me.REG[4] = CALL_syntax___syntax_base___MMImplicitInit___super_inits(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1555,18 +1553,18 @@ void syntax___mmbuilder___MMImplicitInit___accept_property_visitor(val_t p0, val
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-      /* ./syntax//mmbuilder.nit:302 */
+      /* syntax/mmbuilder.nit:302 */
       fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[6])(fra.me.REG[6]);
       REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
@@ -1579,11 +1577,11 @@ void syntax___mmbuilder___MMImplicitInit___accept_property_visitor(val_t p0, val
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:234 */
+      /* ../lib/standard/kernel.nit:234 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
-      /* ./syntax//mmbuilder.nit:302 */
+      /* syntax/mmbuilder.nit:302 */
       if (UNTAG_Bool(REGB2)) {
-        /* ./syntax//mmbuilder.nit:303 */
+        /* syntax/mmbuilder.nit:303 */
         REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
         } else {
@@ -1597,10 +1595,10 @@ void syntax___mmbuilder___MMImplicitInit___accept_property_visitor(val_t p0, val
           }
         }
         if (UNTAG_Bool(REGB2)) {
-          /* ./syntax//mmbuilder.nit:304 */
+          /* syntax/mmbuilder.nit:304 */
           fra.me.REG[3] = fra.me.REG[6];
         } else {
-          /* ./syntax//mmbuilder.nit:306 */
+          /* syntax/mmbuilder.nit:306 */
           REGB2 = TAG_Int(7);
           fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
           if (!once_value_1) {
@@ -1652,27 +1650,27 @@ void syntax___mmbuilder___MMImplicitInit___accept_property_visitor(val_t p0, val
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
           fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
           CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[7]);
-          /* ./syntax//mmbuilder.nit:307 */
+          /* syntax/mmbuilder.nit:307 */
           goto label5;
         }
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label6;
     }
   }
   label6: while(0);
-  /* ./syntax//mmbuilder.nit:311 */
+  /* syntax/mmbuilder.nit:311 */
   ATTR_syntax___mmbuilder___MMImplicitInit____super_init(fra.me.REG[2]) = fra.me.REG[3];
-  /* ./syntax//mmbuilder.nit:313 */
+  /* syntax/mmbuilder.nit:313 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  /* ./syntax//mmbuilder.nit:314 */
+  /* syntax/mmbuilder.nit:314 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1687,48 +1685,48 @@ void syntax___mmbuilder___MMImplicitInit___accept_property_visitor(val_t p0, val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:315 */
+    /* syntax/mmbuilder.nit:315 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 315);
     }
     fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[3])(fra.me.REG[3]);
-    /* ./syntax//mmbuilder.nit:316 */
+    /* syntax/mmbuilder.nit:316 */
     REGB0 = TAG_Int(0);
     REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
       nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 316);
     }
     REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]);
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     while(1) {
       REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB1)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       if (UNTAG_Bool(REGB1)) {
-        /* ./syntax//mmbuilder.nit:316 */
+        /* syntax/mmbuilder.nit:316 */
         REGB1 = REGB0;
-        /* ./syntax//mmbuilder.nit:317 */
+        /* syntax/mmbuilder.nit:317 */
         REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
           nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 317);
         }
         fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[3])(fra.me.REG[3]);
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB3 = TAG_Int(0);
         REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB4)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB3));
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB3)) {
           REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
@@ -1741,59 +1739,59 @@ void syntax___mmbuilder___MMImplicitInit___accept_property_visitor(val_t p0, val
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB3));
         } else {
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB4 = TAG_Bool(false);
           REGB3 = REGB4;
         }
         if (UNTAG_Bool(REGB3)) {
         } else {
-          nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+          nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
         }
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
         REGB3 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         goto label7;
         label7: while(0);
-        /* ./syntax//mmbuilder.nit:317 */
+        /* syntax/mmbuilder.nit:317 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB1 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB0 = REGB1;
       } else {
-        /* ./../lib/standard//kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:352 */
         goto label8;
       }
     }
     label8: while(0);
   }
-  /* ./syntax//mmbuilder.nit:320 */
+  /* syntax/mmbuilder.nit:320 */
   fra.me.REG[3] = CALL_syntax___syntax_base___MMImplicitInit___unassigned_attributes(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -1805,20 +1803,20 @@ void syntax___mmbuilder___MMImplicitInit___accept_property_visitor(val_t p0, val
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-      /* ./syntax//mmbuilder.nit:321 */
+      /* syntax/mmbuilder.nit:321 */
       fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[4])(fra.me.REG[4]);
-      /* ./syntax//mmbuilder.nit:322 */
+      /* syntax/mmbuilder.nit:322 */
       REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -1834,9 +1832,9 @@ void syntax___mmbuilder___MMImplicitInit___accept_property_visitor(val_t p0, val
       if (UNTAG_Bool(REGB2)) {
         goto label5;
       }
-      /* ./syntax//mmbuilder.nit:323 */
+      /* syntax/mmbuilder.nit:323 */
       fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[4])(fra.me.REG[4]);
-      /* ./syntax//mmbuilder.nit:324 */
+      /* syntax/mmbuilder.nit:324 */
       fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
       fra.me.REG[8] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[8])(fra.me.REG[8]);
       REGB2 = TAG_Char('_');
@@ -1848,9 +1846,9 @@ void syntax___mmbuilder___MMImplicitInit___accept_property_visitor(val_t p0, val
           REGB3 = TAG_Bool(false);
           REGB1 = REGB3;
         } else {
-          /* ./../lib/standard//kernel.nit:378 */
+          /* ../lib/standard/kernel.nit:378 */
           REGB2 = TAG_Bool((fra.me.REG[8])==(REGB2));
-          /* ./syntax//mmbuilder.nit:324 */
+          /* syntax/mmbuilder.nit:324 */
           REGB1 = REGB2;
         }
       }
@@ -1868,23 +1866,23 @@ void syntax___mmbuilder___MMImplicitInit___accept_property_visitor(val_t p0, val
             REGB4 = TAG_Bool(false);
             REGB3 = REGB4;
           } else {
-            /* ./../lib/standard//kernel.nit:378 */
+            /* ../lib/standard/kernel.nit:378 */
             REGB2 = TAG_Bool((fra.me.REG[8])==(REGB2));
-            /* ./syntax//mmbuilder.nit:324 */
+            /* syntax/mmbuilder.nit:324 */
             REGB3 = REGB2;
           }
         }
         REGB1 = REGB3;
       }
       if (UNTAG_Bool(REGB1)) {
-        /* ./syntax//mmbuilder.nit:325 */
+        /* syntax/mmbuilder.nit:325 */
         fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
         REGB1 = TAG_Int(1);
         fra.me.REG[4] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[4])(fra.me.REG[4], REGB1);
         fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
         fra.me.REG[6] = fra.me.REG[4];
       }
-      /* ./syntax//mmbuilder.nit:327 */
+      /* syntax/mmbuilder.nit:327 */
       REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 327);
@@ -1897,19 +1895,19 @@ void syntax___mmbuilder___MMImplicitInit___accept_property_visitor(val_t p0, val
       }
       fra.me.REG[6] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[7], fra.me.REG[6]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label9;
     }
   }
   label9: while(0);
-  /* ./syntax//mmbuilder.nit:329 */
+  /* syntax/mmbuilder.nit:329 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[0] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], NIT_NULL, fra.me.REG[0]);
@@ -1931,7 +1929,7 @@ val_t syntax___mmbuilder___MMSrcAncestor___local_class(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:337 */
+  /* syntax/mmbuilder.nit:337 */
   REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1958,10 +1956,10 @@ void syntax___mmbuilder___MMSrcAncestor___init(val_t p0, val_t p1, int* init_tab
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:339 */
+  /* syntax/mmbuilder.nit:339 */
   fra.me.REG[2] = fra.me.REG[0];
   CALL_metamodel___static_type___MMAncestor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./syntax//mmbuilder.nit:341 */
+  /* syntax/mmbuilder.nit:341 */
   ATTR_syntax___mmbuilder___MMSrcAncestor____local_class(fra.me.REG[2]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
@@ -1980,7 +1978,7 @@ val_t syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:352 */
+  /* syntax/mmbuilder.nit:352 */
   REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2004,7 +2002,7 @@ void syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(val_t p0,
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./syntax//mmbuilder.nit:352 */
+  /* syntax/mmbuilder.nit:352 */
   ATTR_syntax___mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -2021,7 +2019,7 @@ val_t syntax___mmbuilder___ClassBuilderVisitor___formals(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:355 */
+  /* syntax/mmbuilder.nit:355 */
   fra.me.REG[0] = ATTR_syntax___mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -2040,7 +2038,7 @@ void syntax___mmbuilder___ClassBuilderVisitor___formals__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:355 */
+  /* syntax/mmbuilder.nit:355 */
   ATTR_syntax___mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2060,7 +2058,7 @@ void syntax___mmbuilder___ClassBuilderVisitor___visit(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:358 */
+  /* syntax/mmbuilder.nit:358 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 358);
@@ -2087,7 +2085,7 @@ void syntax___mmbuilder___ClassBuilderVisitor___init(val_t p0, val_t p1, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//mmbuilder.nit:359 */
+  /* syntax/mmbuilder.nit:359 */
   CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos2] = 1;
@@ -2108,7 +2106,7 @@ void syntax___mmbuilder___ClassSpecializationBuilderVisitor___visit(val_t p0, va
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:366 */
+  /* syntax/mmbuilder.nit:366 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 366);
@@ -2135,7 +2133,7 @@ void syntax___mmbuilder___ClassSpecializationBuilderVisitor___init(val_t p0, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//mmbuilder.nit:367 */
+  /* syntax/mmbuilder.nit:367 */
   CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos3] = 1;
@@ -2156,7 +2154,7 @@ void syntax___mmbuilder___ClassAncestorBuilder___visit(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:374 */
+  /* syntax/mmbuilder.nit:374 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 374);
@@ -2183,7 +2181,7 @@ void syntax___mmbuilder___ClassAncestorBuilder___init(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//mmbuilder.nit:375 */
+  /* syntax/mmbuilder.nit:375 */
   CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos4] = 1;
@@ -2204,7 +2202,7 @@ void syntax___mmbuilder___ClassVerifierVisitor___visit(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:382 */
+  /* syntax/mmbuilder.nit:382 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 382);
@@ -2231,7 +2229,7 @@ void syntax___mmbuilder___ClassVerifierVisitor___init(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//mmbuilder.nit:383 */
+  /* syntax/mmbuilder.nit:383 */
   CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos5] = 1;
@@ -2252,7 +2250,7 @@ void syntax___mmbuilder___PropertyBuilderVisitor___visit(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:393 */
+  /* syntax/mmbuilder.nit:393 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 393);
@@ -2279,7 +2277,7 @@ void syntax___mmbuilder___PropertyBuilderVisitor___init(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//mmbuilder.nit:394 */
+  /* syntax/mmbuilder.nit:394 */
   CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos6] = 1;
@@ -2298,7 +2296,7 @@ val_t syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(val_t p0)
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:402 */
+  /* syntax/mmbuilder.nit:402 */
   REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2322,7 +2320,7 @@ void syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:402 */
+  /* syntax/mmbuilder.nit:402 */
   ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2342,7 +2340,7 @@ void syntax___mmbuilder___PropertyVerifierVisitor___visit(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:405 */
+  /* syntax/mmbuilder.nit:405 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 405);
@@ -2370,11 +2368,11 @@ void syntax___mmbuilder___PropertyVerifierVisitor___init(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//mmbuilder.nit:407 */
+  /* syntax/mmbuilder.nit:407 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./syntax//mmbuilder.nit:409 */
+  /* syntax/mmbuilder.nit:409 */
   CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  /* ./syntax//mmbuilder.nit:410 */
+  /* syntax/mmbuilder.nit:410 */
   fra.me.REG[2] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
   ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[3]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
@@ -2394,7 +2392,7 @@ val_t syntax___mmbuilder___SignatureBuilder___params(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:416 */
+  /* syntax/mmbuilder.nit:416 */
   REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2418,7 +2416,7 @@ void syntax___mmbuilder___SignatureBuilder___params__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:416 */
+  /* syntax/mmbuilder.nit:416 */
   ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2436,7 +2434,7 @@ val_t syntax___mmbuilder___SignatureBuilder___untyped_params(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:419 */
+  /* syntax/mmbuilder.nit:419 */
   REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2460,7 +2458,7 @@ void syntax___mmbuilder___SignatureBuilder___untyped_params__eq(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:419 */
+  /* syntax/mmbuilder.nit:419 */
   ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2478,7 +2476,7 @@ val_t syntax___mmbuilder___SignatureBuilder___vararg_rank(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:422 */
+  /* syntax/mmbuilder.nit:422 */
   REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2502,7 +2500,7 @@ void syntax___mmbuilder___SignatureBuilder___vararg_rank__eq(val_t p0, val_t p1)
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./syntax//mmbuilder.nit:422 */
+  /* syntax/mmbuilder.nit:422 */
   ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -2520,7 +2518,7 @@ val_t syntax___mmbuilder___SignatureBuilder___closure_decls(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:425 */
+  /* syntax/mmbuilder.nit:425 */
   REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2544,7 +2542,7 @@ void syntax___mmbuilder___SignatureBuilder___closure_decls__eq(val_t p0, val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:425 */
+  /* syntax/mmbuilder.nit:425 */
   ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2562,7 +2560,7 @@ val_t syntax___mmbuilder___SignatureBuilder___has_error_occured(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:428 */
+  /* syntax/mmbuilder.nit:428 */
   REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2586,7 +2584,7 @@ void syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(val_t p0, val
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./syntax//mmbuilder.nit:428 */
+  /* syntax/mmbuilder.nit:428 */
   ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -2603,7 +2601,7 @@ val_t syntax___mmbuilder___SignatureBuilder___signature(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:431 */
+  /* syntax/mmbuilder.nit:431 */
   fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____signature(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -2622,7 +2620,7 @@ void syntax___mmbuilder___SignatureBuilder___signature__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:431 */
+  /* syntax/mmbuilder.nit:431 */
   ATTR_syntax___mmbuilder___SignatureBuilder____signature(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2657,7 +2655,7 @@ void syntax___mmbuilder___ANode___accept_class_builder(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:438 */
+  /* syntax/mmbuilder.nit:438 */
   CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -2676,7 +2674,7 @@ void syntax___mmbuilder___ANode___accept_class_specialization_builder(val_t p0,
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:439 */
+  /* syntax/mmbuilder.nit:439 */
   CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -2695,7 +2693,7 @@ void syntax___mmbuilder___ANode___accept_class_ancestor_builder(val_t p0, val_t
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:440 */
+  /* syntax/mmbuilder.nit:440 */
   CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -2714,7 +2712,7 @@ void syntax___mmbuilder___ANode___accept_class_verifier(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:441 */
+  /* syntax/mmbuilder.nit:441 */
   CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -2733,7 +2731,7 @@ void syntax___mmbuilder___ANode___accept_property_builder(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:442 */
+  /* syntax/mmbuilder.nit:442 */
   CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -2752,7 +2750,7 @@ void syntax___mmbuilder___ANode___accept_property_verifier(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:443 */
+  /* syntax/mmbuilder.nit:443 */
   CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -2780,14 +2778,14 @@ void syntax___mmbuilder___AModule___import_super_modules(val_t p0, val_t p1, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//mmbuilder.nit:451 */
+  /* syntax/mmbuilder.nit:451 */
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-  /* ./syntax//mmbuilder.nit:452 */
+  /* syntax/mmbuilder.nit:452 */
   fra.me.REG[4] = NIT_NULL;
-  /* ./syntax//mmbuilder.nit:453 */
+  /* syntax/mmbuilder.nit:453 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AModule___n_imports(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___AModule___import_super_modules_1));
-  /* ./syntax//mmbuilder.nit:463 */
+  /* syntax/mmbuilder.nit:463 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2802,11 +2800,11 @@ void syntax___mmbuilder___AModule___import_super_modules(val_t p0, val_t p1, val
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:464 */
+    /* syntax/mmbuilder.nit:464 */
     REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:465 */
+      /* syntax/mmbuilder.nit:465 */
       REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 465);
@@ -2820,13 +2818,13 @@ void syntax___mmbuilder___AModule___import_super_modules(val_t p0, val_t p1, val
         register_static_object(&once_value_2);
       } else fra.me.REG[0] = once_value_2;
       fra.me.REG[0] = fra.me.REG[0];
-      CALL_mmloader___ToolContext___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
+      CALL_toolcontext___ToolContext___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
     }
   } else {
-    /* ./syntax//mmbuilder.nit:467 */
+    /* syntax/mmbuilder.nit:467 */
     REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:468 */
+      /* syntax/mmbuilder.nit:468 */
       if (!once_value_3) {
         if (!once_value_4) {
           fra.me.REG[0] = BOX_NativeString("standard");
@@ -2841,16 +2839,16 @@ void syntax___mmbuilder___AModule___import_super_modules(val_t p0, val_t p1, val
         register_static_object(&once_value_3);
       } else fra.me.REG[0] = once_value_3;
       fra.me.REG[0] = fra.me.REG[0];
-      /* ./syntax//mmbuilder.nit:469 */
+      /* syntax/mmbuilder.nit:469 */
       fra.me.REG[0] = CALL_mmloader___ToolContext___get_module(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
-      /* ./syntax//mmbuilder.nit:470 */
+      /* syntax/mmbuilder.nit:470 */
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-      /* ./syntax//mmbuilder.nit:471 */
+      /* syntax/mmbuilder.nit:471 */
       REGB0 = TAG_Int(1);
       CALL_metamodel___abstractmetamodel___MMModule___add_super_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], REGB0);
     }
   }
-  /* ./syntax//mmbuilder.nit:474 */
+  /* syntax/mmbuilder.nit:474 */
   CALL_metamodel___abstractmetamodel___MMContext___add_module(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
   return;
@@ -2874,9 +2872,9 @@ void syntax___mmbuilder___AModule___import_super_modules(val_t p0, val_t p1, val
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./syntax//mmbuilder.nit:454 */
+    /* syntax/mmbuilder.nit:454 */
     fra.me.REG[1] = CALL_syntax___mmbuilder___AImport___module_name(fra.me.REG[0])(fra.me.REG[0]);
-    /* ./syntax//mmbuilder.nit:455 */
+    /* syntax/mmbuilder.nit:455 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -2891,15 +2889,15 @@ void syntax___mmbuilder___AModule___import_super_modules(val_t p0, val_t p1, val
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:456 */
+      /* syntax/mmbuilder.nit:456 */
       fra.me.REG[1] = CALL_mmloader___ToolContext___get_module(closctx->REG[1])(closctx->REG[1], fra.me.REG[1], closctx->REG[2]);
-      /* ./syntax//mmbuilder.nit:457 */
+      /* syntax/mmbuilder.nit:457 */
       CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[1]);
-      /* ./syntax//mmbuilder.nit:458 */
+      /* syntax/mmbuilder.nit:458 */
       REGB0 = CALL_syntax___mmbuilder___AImport___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
       CALL_metamodel___abstractmetamodel___MMModule___add_super_module(closctx->REG[2])(closctx->REG[2], fra.me.REG[1], REGB0);
     } else {
-      /* ./syntax//mmbuilder.nit:460 */
+      /* syntax/mmbuilder.nit:460 */
       closctx->REG[4] = fra.me.REG[0];
     }
     stack_frame_head = fra.me.prev;
@@ -2927,7 +2925,7 @@ void syntax___mmbuilder___AModuledecl___accept_class_builder(val_t p0, val_t p1)
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:481 */
+  /* syntax/mmbuilder.nit:481 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
@@ -2941,7 +2939,7 @@ void syntax___mmbuilder___AModuledecl___accept_class_builder(val_t p0, val_t p1)
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:482 */
+    /* syntax/mmbuilder.nit:482 */
     fra.me.REG[3] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[3] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[3])(fra.me.REG[3]);
     REGB0 = TAG_Int(5);
@@ -2998,7 +2996,7 @@ val_t syntax___mmbuilder___AImport___module_name(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//mmbuilder.nit:488 */
+  /* syntax/mmbuilder.nit:488 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 488);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3013,7 +3011,7 @@ val_t syntax___mmbuilder___AImport___visibility_level(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//mmbuilder.nit:491 */
+  /* syntax/mmbuilder.nit:491 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 491);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3030,7 +3028,7 @@ val_t syntax___mmbuilder___AStdImport___module_name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:497 */
+  /* syntax/mmbuilder.nit:497 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AStdImport___n_name(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
@@ -3052,7 +3050,7 @@ val_t syntax___mmbuilder___AStdImport___visibility_level(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:501 */
+  /* syntax/mmbuilder.nit:501 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AStdImport___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -3072,7 +3070,7 @@ val_t syntax___mmbuilder___ANoImport___module_name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:507 */
+  /* syntax/mmbuilder.nit:507 */
   fra.me.REG[0] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -3089,7 +3087,7 @@ val_t syntax___mmbuilder___AVisibility___level(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//mmbuilder.nit:512 */
+  /* syntax/mmbuilder.nit:512 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 512);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3107,7 +3105,7 @@ val_t syntax___mmbuilder___APublicVisibility___level(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:516 */
+  /* syntax/mmbuilder.nit:516 */
   REGB0 = TAG_Int(1);
   goto label1;
   label1: while(0);
@@ -3127,7 +3125,7 @@ val_t syntax___mmbuilder___AProtectedVisibility___level(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:519 */
+  /* syntax/mmbuilder.nit:519 */
   REGB0 = TAG_Int(2);
   goto label1;
   label1: while(0);
@@ -3147,7 +3145,7 @@ val_t syntax___mmbuilder___APrivateVisibility___level(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:522 */
+  /* syntax/mmbuilder.nit:522 */
   REGB0 = TAG_Int(3);
   goto label1;
   label1: while(0);
@@ -3167,7 +3165,7 @@ val_t syntax___mmbuilder___AIntrudeVisibility___level(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:525 */
+  /* syntax/mmbuilder.nit:525 */
   REGB0 = TAG_Int(0);
   goto label1;
   label1: while(0);
@@ -3188,7 +3186,7 @@ val_t syntax___mmbuilder___AClassdef___local_class(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:530 */
+  /* syntax/mmbuilder.nit:530 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
@@ -3211,7 +3209,7 @@ val_t syntax___mmbuilder___AClassdef___name(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//mmbuilder.nit:533 */
+  /* syntax/mmbuilder.nit:533 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 533);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3229,7 +3227,7 @@ val_t syntax___mmbuilder___AClassdef___arity(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:537 */
+  /* syntax/mmbuilder.nit:537 */
   REGB0 = TAG_Int(0);
   goto label1;
   label1: while(0);
@@ -3249,7 +3247,7 @@ val_t syntax___mmbuilder___AClassdef___visibility_level(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:540 */
+  /* syntax/mmbuilder.nit:540 */
   REGB0 = TAG_Int(1);
   goto label1;
   label1: while(0);
@@ -3282,26 +3280,26 @@ void syntax___mmbuilder___AClassdef___accept_class_builder(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:542 */
+  /* syntax/mmbuilder.nit:542 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:545 */
+  /* syntax/mmbuilder.nit:545 */
   fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//mmbuilder.nit:546 */
+  /* syntax/mmbuilder.nit:546 */
   fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./syntax//mmbuilder.nit:547 */
+  /* syntax/mmbuilder.nit:547 */
   fra.me.REG[6] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:548 */
+    /* syntax/mmbuilder.nit:548 */
     fra.me.REG[6] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[6] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-    /* ./syntax//mmbuilder.nit:549 */
+    /* syntax/mmbuilder.nit:549 */
     ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6];
-    /* ./syntax//mmbuilder.nit:550 */
+    /* syntax/mmbuilder.nit:550 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:552 */
+      /* syntax/mmbuilder.nit:552 */
       REGB0 = TAG_Int(5);
       fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_1) {
@@ -3345,12 +3343,12 @@ void syntax___mmbuilder___AClassdef___accept_class_builder(val_t p0, val_t p1){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
       fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
-      /* ./syntax//mmbuilder.nit:553 */
+      /* syntax/mmbuilder.nit:553 */
       goto label4;
     }
-    /* ./syntax//mmbuilder.nit:556 */
+    /* syntax/mmbuilder.nit:556 */
     fra.me.REG[7] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
-    /* ./syntax//mmbuilder.nit:557 */
+    /* syntax/mmbuilder.nit:557 */
     while(1) {
       REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
@@ -3382,47 +3380,47 @@ void syntax___mmbuilder___AClassdef___accept_class_builder(val_t p0, val_t p1){
       }
     }
     label5: while(0);
-    /* ./syntax//mmbuilder.nit:558 */
+    /* syntax/mmbuilder.nit:558 */
     REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 558);
     }
     CALL_syntax___syntax_base___AClassdef___next_node__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
   } else {
-    /* ./syntax//mmbuilder.nit:560 */
+    /* syntax/mmbuilder.nit:560 */
     fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = CALL_syntax___mmbuilder___AClassdef___arity(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[7] = NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[4], fra.me.REG[7], fra.me.REG[2], REGB0);
     fra.me.REG[6] = fra.me.REG[7];
-    /* ./syntax//mmbuilder.nit:561 */
+    /* syntax/mmbuilder.nit:561 */
     ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6];
-    /* ./syntax//mmbuilder.nit:562 */
+    /* syntax/mmbuilder.nit:562 */
     fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
     CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7], fra.me.REG[6]);
-    /* ./syntax//mmbuilder.nit:563 */
+    /* syntax/mmbuilder.nit:563 */
     fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:564 */
+      /* syntax/mmbuilder.nit:564 */
       CALL_syntax___mmbuilder___AClassdef___build_class_introduction(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
     } else {
-      /* ./syntax//mmbuilder.nit:566 */
+      /* syntax/mmbuilder.nit:566 */
       fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
       fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMModule___global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
-      /* ./syntax//mmbuilder.nit:567 */
+      /* syntax/mmbuilder.nit:567 */
       CALL_syntax___mmbuilder___AClassdef___build_class_refinement(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[7]);
     }
   }
-  /* ./syntax//mmbuilder.nit:571 */
+  /* syntax/mmbuilder.nit:571 */
   REGB0 = TAG_Int(0);
   CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
-  /* ./syntax//mmbuilder.nit:572 */
+  /* syntax/mmbuilder.nit:572 */
   fra.me.REG[6] = CALL_syntax___syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[6])(fra.me.REG[6]);
   CALL_syntax___mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
-  /* ./syntax//mmbuilder.nit:575 */
+  /* syntax/mmbuilder.nit:575 */
   CALL_SUPER_syntax___mmbuilder___AClassdef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:578 */
+  /* syntax/mmbuilder.nit:578 */
   CALL_syntax___mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
   label4: while(0);
   stack_frame_head = fra.me.prev;
@@ -3449,19 +3447,19 @@ void syntax___mmbuilder___AClassdef___build_class_introduction(val_t p0, val_t p
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:583 */
+  /* syntax/mmbuilder.nit:583 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
   CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:584 */
+  /* syntax/mmbuilder.nit:584 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:586 */
+  /* syntax/mmbuilder.nit:586 */
   REGB0 = CALL_syntax___mmbuilder___AClassdef___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
   CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
-  /* ./syntax//mmbuilder.nit:587 */
+  /* syntax/mmbuilder.nit:587 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:588 */
+    /* syntax/mmbuilder.nit:588 */
     fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -3477,7 +3475,7 @@ void syntax___mmbuilder___AClassdef___build_class_introduction(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:589 */
+      /* syntax/mmbuilder.nit:589 */
       REGB0 = TAG_Int(3);
       fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_1) {
@@ -3503,18 +3501,18 @@ void syntax___mmbuilder___AClassdef___build_class_introduction(val_t p0, val_t p
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
       fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
-      /* ./syntax//mmbuilder.nit:590 */
+      /* syntax/mmbuilder.nit:590 */
       goto label3;
     }
-    /* ./syntax//mmbuilder.nit:592 */
+    /* syntax/mmbuilder.nit:592 */
     fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
     CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    /* ./syntax//mmbuilder.nit:593 */
+    /* syntax/mmbuilder.nit:593 */
     fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
     CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    /* ./syntax//mmbuilder.nit:594 */
+    /* syntax/mmbuilder.nit:594 */
     fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[0])(fra.me.REG[0]);
     CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
@@ -3551,13 +3549,13 @@ void syntax___mmbuilder___AClassdef___build_class_refinement(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//mmbuilder.nit:600 */
+  /* syntax/mmbuilder.nit:600 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
   CALL_metamodel___abstractmetamodel___MMLocalClass___set_global(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:602 */
+  /* syntax/mmbuilder.nit:602 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
   CALL_syntax___syntax_base___MMGlobalClass___check_visibility(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
-  /* ./syntax//mmbuilder.nit:603 */
+  /* syntax/mmbuilder.nit:603 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
   if (UNTAG_Bool(REGB0)) {
     fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[0])(fra.me.REG[0]);
@@ -3578,7 +3576,7 @@ void syntax___mmbuilder___AClassdef___build_class_refinement(val_t p0, val_t p1,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:604 */
+    /* syntax/mmbuilder.nit:604 */
     REGB0 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -3604,10 +3602,10 @@ void syntax___mmbuilder___AClassdef___build_class_refinement(val_t p0, val_t p1,
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
-    /* ./syntax//mmbuilder.nit:605 */
+    /* syntax/mmbuilder.nit:605 */
     goto label3;
   }
-  /* ./syntax//mmbuilder.nit:608 */
+  /* syntax/mmbuilder.nit:608 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[0]);
@@ -3619,14 +3617,14 @@ void syntax___mmbuilder___AClassdef___build_class_refinement(val_t p0, val_t p1,
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./syntax//mmbuilder.nit:608 */
+    /* syntax/mmbuilder.nit:608 */
     REGB2 = REGB1;
   }
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//mmbuilder.nit:609 */
+    /* syntax/mmbuilder.nit:609 */
     REGB2 = TAG_Int(5);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
     if (!once_value_4) {
@@ -3671,7 +3669,7 @@ void syntax___mmbuilder___AClassdef___build_class_refinement(val_t p0, val_t p1,
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
   }
-  /* ./syntax//mmbuilder.nit:612 */
+  /* syntax/mmbuilder.nit:612 */
   REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
   if (UNTAG_Bool(REGB2)) {
     REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[2])(fra.me.REG[2]);
@@ -3686,36 +3684,36 @@ void syntax___mmbuilder___AClassdef___build_class_refinement(val_t p0, val_t p1,
     if (UNTAG_Bool(REGB2)) {
       REGB2 = TAG_Bool(true);
     } else {
-      /* ./syntax//mmbuilder.nit:613 */
+      /* syntax/mmbuilder.nit:613 */
       REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[2])(fra.me.REG[2]);
       REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-      /* ./syntax//mmbuilder.nit:612 */
+      /* syntax/mmbuilder.nit:612 */
       REGB2 = REGB1;
     }
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//mmbuilder.nit:613 */
+      /* syntax/mmbuilder.nit:613 */
       fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
       REGB2 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
     } else {
-      /* ./syntax//mmbuilder.nit:612 */
+      /* syntax/mmbuilder.nit:612 */
       REGB1 = TAG_Bool(false);
       REGB2 = REGB1;
     }
     if (UNTAG_Bool(REGB2)) {
       REGB2 = TAG_Bool(true);
     } else {
-      /* ./syntax//mmbuilder.nit:614 */
+      /* syntax/mmbuilder.nit:614 */
       REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[2])(fra.me.REG[2]);
       REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-      /* ./syntax//mmbuilder.nit:612 */
+      /* syntax/mmbuilder.nit:612 */
       REGB2 = REGB1;
     }
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//mmbuilder.nit:614 */
+      /* syntax/mmbuilder.nit:614 */
       fra.me.REG[2] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
       REGB2 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[2])(fra.me.REG[2]);
     } else {
-      /* ./syntax//mmbuilder.nit:612 */
+      /* syntax/mmbuilder.nit:612 */
       REGB1 = TAG_Bool(false);
       REGB2 = REGB1;
     }
@@ -3724,7 +3722,7 @@ void syntax___mmbuilder___AClassdef___build_class_refinement(val_t p0, val_t p1,
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//mmbuilder.nit:616 */
+    /* syntax/mmbuilder.nit:616 */
     REGB2 = TAG_Int(3);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
     if (!once_value_7) {
@@ -3791,19 +3789,19 @@ void syntax___mmbuilder___AClassdef___accept_class_verifier(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:620 */
+  /* syntax/mmbuilder.nit:620 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:622 */
+  /* syntax/mmbuilder.nit:622 */
   CALL_SUPER_syntax___mmbuilder___AClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:623 */
+  /* syntax/mmbuilder.nit:623 */
   fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 623);
   }
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:624 */
+  /* syntax/mmbuilder.nit:624 */
   fra.me.REG[0] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -3811,20 +3809,20 @@ void syntax___mmbuilder___AClassdef___accept_class_verifier(val_t p0, val_t p1){
   }
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -3836,26 +3834,26 @@ void syntax___mmbuilder___AClassdef___accept_class_verifier(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-      /* ./syntax//mmbuilder.nit:625 */
+      /* syntax/mmbuilder.nit:625 */
       fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
-      /* ./syntax//mmbuilder.nit:626 */
+      /* syntax/mmbuilder.nit:626 */
       REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
       if (UNTAG_Bool(REGB1)) {
-        /* ./syntax//mmbuilder.nit:627 */
+        /* syntax/mmbuilder.nit:627 */
         REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
         if (UNTAG_Bool(REGB1)) {
-          /* ./syntax//mmbuilder.nit:628 */
+          /* syntax/mmbuilder.nit:628 */
           REGB1 = TAG_Int(5);
           fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
           if (!once_value_1) {
@@ -3894,11 +3892,11 @@ void syntax___mmbuilder___AClassdef___accept_class_verifier(val_t p0, val_t p1){
           fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
           CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
         } else {
-          /* ./syntax//mmbuilder.nit:629 */
+          /* syntax/mmbuilder.nit:629 */
           REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
           REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
           if (UNTAG_Bool(REGB1)) {
-            /* ./syntax//mmbuilder.nit:630 */
+            /* syntax/mmbuilder.nit:630 */
             REGB1 = TAG_Int(5);
             fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
             if (!once_value_4) {
@@ -3939,10 +3937,10 @@ void syntax___mmbuilder___AClassdef___accept_class_verifier(val_t p0, val_t p1){
           }
         }
       } else {
-        /* ./syntax//mmbuilder.nit:632 */
+        /* syntax/mmbuilder.nit:632 */
         REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
         if (UNTAG_Bool(REGB1)) {
-          /* ./syntax//mmbuilder.nit:633 */
+          /* syntax/mmbuilder.nit:633 */
           REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
           REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
           if (UNTAG_Bool(REGB1)) {
@@ -3953,7 +3951,7 @@ void syntax___mmbuilder___AClassdef___accept_class_verifier(val_t p0, val_t p1){
             REGB1 = REGB2;
           }
           if (UNTAG_Bool(REGB1)) {
-            /* ./syntax//mmbuilder.nit:634 */
+            /* syntax/mmbuilder.nit:634 */
             REGB1 = TAG_Int(5);
             fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
             if (!once_value_7) {
@@ -3993,10 +3991,10 @@ void syntax___mmbuilder___AClassdef___accept_class_verifier(val_t p0, val_t p1){
             CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
           }
         } else {
-          /* ./syntax//mmbuilder.nit:637 */
+          /* syntax/mmbuilder.nit:637 */
           REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
           if (UNTAG_Bool(REGB1)) {
-            /* ./syntax//mmbuilder.nit:638 */
+            /* syntax/mmbuilder.nit:638 */
             REGB1 = TAG_Int(5);
             fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
             if (!once_value_10) {
@@ -4037,14 +4035,14 @@ void syntax___mmbuilder___AClassdef___accept_class_verifier(val_t p0, val_t p1){
           }
         }
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label13;
     }
   }
@@ -4068,15 +4066,15 @@ void syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor(val_t p0, val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:645 */
+  /* syntax/mmbuilder.nit:645 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:647 */
+  /* syntax/mmbuilder.nit:647 */
   fra.me.REG[2] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
   CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:648 */
+  /* syntax/mmbuilder.nit:648 */
   CALL_SUPER_syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:649 */
+  /* syntax/mmbuilder.nit:649 */
   CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
   stack_frame_head = fra.me.prev;
   return;
@@ -4094,7 +4092,7 @@ val_t syntax___mmbuilder___AClasskind___is_interface(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:654 */
+  /* syntax/mmbuilder.nit:654 */
   REGB0 = TAG_Bool(false);
   goto label1;
   label1: while(0);
@@ -4114,7 +4112,7 @@ val_t syntax___mmbuilder___AClasskind___is_enum(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:655 */
+  /* syntax/mmbuilder.nit:655 */
   REGB0 = TAG_Bool(false);
   goto label1;
   label1: while(0);
@@ -4134,7 +4132,7 @@ val_t syntax___mmbuilder___AClasskind___is_abstract(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:656 */
+  /* syntax/mmbuilder.nit:656 */
   REGB0 = TAG_Bool(false);
   goto label1;
   label1: while(0);
@@ -4154,7 +4152,7 @@ val_t syntax___mmbuilder___AClasskind___is_extern(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:657 */
+  /* syntax/mmbuilder.nit:657 */
   REGB0 = TAG_Bool(false);
   goto label1;
   label1: while(0);
@@ -4174,7 +4172,7 @@ val_t syntax___mmbuilder___AInterfaceClasskind___is_interface(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:661 */
+  /* syntax/mmbuilder.nit:661 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -4194,7 +4192,7 @@ val_t syntax___mmbuilder___AEnumClasskind___is_enum(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:664 */
+  /* syntax/mmbuilder.nit:664 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -4214,7 +4212,7 @@ val_t syntax___mmbuilder___AExternClasskind___is_extern(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:667 */
+  /* syntax/mmbuilder.nit:667 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -4234,7 +4232,7 @@ val_t syntax___mmbuilder___AAbstractClasskind___is_abstract(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:670 */
+  /* syntax/mmbuilder.nit:670 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -4254,7 +4252,7 @@ val_t syntax___mmbuilder___AStdClassdef___name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:676 */
+  /* syntax/mmbuilder.nit:676 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_id(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -4279,7 +4277,7 @@ val_t syntax___mmbuilder___AStdClassdef___arity(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:680 */
+  /* syntax/mmbuilder.nit:680 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_formaldefs(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -4305,14 +4303,14 @@ void syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder(val
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:682 */
+  /* syntax/mmbuilder.nit:682 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//mmbuilder.nit:684 */
+  /* syntax/mmbuilder.nit:684 */
   CALL_SUPER_syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:686 */
+  /* syntax/mmbuilder.nit:686 */
   fra.me.REG[1] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:687 */
+  /* syntax/mmbuilder.nit:687 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[3]));
@@ -4322,23 +4320,23 @@ void syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder(val
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:688 */
+    /* syntax/mmbuilder.nit:688 */
     fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
     CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
-    /* ./syntax//mmbuilder.nit:689 */
+    /* syntax/mmbuilder.nit:689 */
     fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
     CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
-    /* ./syntax//mmbuilder.nit:690 */
+    /* syntax/mmbuilder.nit:690 */
     fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[3])(fra.me.REG[3]);
     CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
-    /* ./syntax//mmbuilder.nit:691 */
+    /* syntax/mmbuilder.nit:691 */
     fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = CALL_syntax___mmbuilder___AClasskind___is_extern(fra.me.REG[3])(fra.me.REG[3]);
     CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
-    /* ./syntax//mmbuilder.nit:692 */
+    /* syntax/mmbuilder.nit:692 */
     REGB0 = CALL_syntax___mmbuilder___AClassdef___visibility_level(fra.me.REG[2])(fra.me.REG[2]);
     CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
   }
@@ -4396,19 +4394,19 @@ void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:695 */
+  /* syntax/mmbuilder.nit:695 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:697 */
+  /* syntax/mmbuilder.nit:697 */
   CALL_SUPER_syntax___mmbuilder___AStdClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:698 */
+  /* syntax/mmbuilder.nit:698 */
   fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 698);
   }
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:699 */
+  /* syntax/mmbuilder.nit:699 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[4]));
@@ -4418,7 +4416,7 @@ void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:701 */
+    /* syntax/mmbuilder.nit:701 */
     fra.me.REG[4] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -4434,7 +4432,7 @@ void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:702 */
+      /* syntax/mmbuilder.nit:702 */
       REGB0 = TAG_Int(3);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_1) {
@@ -4461,15 +4459,15 @@ void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p
       fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
     }
-    /* ./syntax//mmbuilder.nit:704 */
+    /* syntax/mmbuilder.nit:704 */
     REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:705 */
+      /* syntax/mmbuilder.nit:705 */
       fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
       REGB0 = TAG_Bool(true);
       CALL_metamodel___abstractmetamodel___MMModule___is_extern_hybrid__eq(fra.me.REG[4])(fra.me.REG[4], REGB0);
     }
-    /* ./syntax//mmbuilder.nit:708 */
+    /* syntax/mmbuilder.nit:708 */
     fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -4477,20 +4475,20 @@ void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p
     }
     fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[4])(fra.me.REG[4]);
     fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[4])(fra.me.REG[4]);
-    /* ./../lib/standard//collection//array.nit:269 */
+    /* ../lib/standard/collection/array.nit:269 */
     REGB0 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:270 */
+    /* ../lib/standard/collection/array.nit:270 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-    /* ./../lib/standard//collection//array.nit:271 */
+    /* ../lib/standard/collection/array.nit:271 */
     fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     while(1) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -4502,26 +4500,26 @@ void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       if (UNTAG_Bool(REGB1)) {
-        /* ./../lib/standard//collection//array.nit:273 */
+        /* ../lib/standard/collection/array.nit:273 */
         REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
-        /* ./syntax//mmbuilder.nit:709 */
+        /* syntax/mmbuilder.nit:709 */
         fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
-        /* ./syntax//mmbuilder.nit:710 */
+        /* syntax/mmbuilder.nit:710 */
         REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
         if (UNTAG_Bool(REGB1)) {
-          /* ./syntax//mmbuilder.nit:711 */
+          /* syntax/mmbuilder.nit:711 */
           REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
           if (UNTAG_Bool(REGB1)) {
-            /* ./syntax//mmbuilder.nit:712 */
+            /* syntax/mmbuilder.nit:712 */
             REGB1 = TAG_Int(5);
             fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
             if (!once_value_3) {
@@ -4560,11 +4558,11 @@ void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p
             fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
             CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
           } else {
-            /* ./syntax//mmbuilder.nit:713 */
+            /* syntax/mmbuilder.nit:713 */
             REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
             REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
             if (UNTAG_Bool(REGB1)) {
-              /* ./syntax//mmbuilder.nit:714 */
+              /* syntax/mmbuilder.nit:714 */
               REGB1 = TAG_Int(5);
               fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
               if (!once_value_6) {
@@ -4605,10 +4603,10 @@ void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p
             }
           }
         } else {
-          /* ./syntax//mmbuilder.nit:716 */
+          /* syntax/mmbuilder.nit:716 */
           REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
           if (UNTAG_Bool(REGB1)) {
-            /* ./syntax//mmbuilder.nit:717 */
+            /* syntax/mmbuilder.nit:717 */
             REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
             REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
             if (UNTAG_Bool(REGB1)) {
@@ -4619,7 +4617,7 @@ void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p
               REGB1 = REGB2;
             }
             if (UNTAG_Bool(REGB1)) {
-              /* ./syntax//mmbuilder.nit:718 */
+              /* syntax/mmbuilder.nit:718 */
               REGB1 = TAG_Int(5);
               fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
               if (!once_value_9) {
@@ -4659,10 +4657,10 @@ void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p
               CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
             }
           } else {
-            /* ./syntax//mmbuilder.nit:720 */
+            /* syntax/mmbuilder.nit:720 */
             REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
             if (UNTAG_Bool(REGB1)) {
-              /* ./syntax//mmbuilder.nit:721 */
+              /* syntax/mmbuilder.nit:721 */
               REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
               REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
               if (UNTAG_Bool(REGB1)) {
@@ -4673,7 +4671,7 @@ void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p
                REGB1 = REGB2;
               }
               if (UNTAG_Bool(REGB1)) {
-               /* ./syntax//mmbuilder.nit:722 */
+               /* syntax/mmbuilder.nit:722 */
                REGB1 = TAG_Int(5);
                fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_12) {
@@ -4713,10 +4711,10 @@ void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p
                CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
               }
             } else {
-              /* ./syntax//mmbuilder.nit:725 */
+              /* syntax/mmbuilder.nit:725 */
               REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
               if (UNTAG_Bool(REGB1)) {
-               /* ./syntax//mmbuilder.nit:726 */
+               /* syntax/mmbuilder.nit:726 */
                REGB1 = TAG_Int(5);
                fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_15) {
@@ -4755,10 +4753,10 @@ void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p
                fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
                CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
               } else {
-               /* ./syntax//mmbuilder.nit:727 */
+               /* syntax/mmbuilder.nit:727 */
                REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[6])(fra.me.REG[6]);
                if (UNTAG_Bool(REGB1)) {
-               /* ./syntax//mmbuilder.nit:728 */
+               /* syntax/mmbuilder.nit:728 */
                REGB1 = TAG_Int(5);
                fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_18) {
@@ -4801,25 +4799,25 @@ void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p
             }
           }
         }
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB1 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB0 = REGB1;
       } else {
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         goto label21;
       }
     }
     label21: while(0);
-    /* ./syntax//mmbuilder.nit:733 */
+    /* syntax/mmbuilder.nit:733 */
     goto label22;
   }
-  /* ./syntax//mmbuilder.nit:738 */
+  /* syntax/mmbuilder.nit:738 */
   fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
   CALL_syntax___syntax_base___MMGlobalClass___check_visibility(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
-  /* ./syntax//mmbuilder.nit:739 */
+  /* syntax/mmbuilder.nit:739 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -4834,7 +4832,7 @@ void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:740 */
+    /* syntax/mmbuilder.nit:740 */
     REGB0 = TAG_Int(3);
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_23) {
@@ -4860,10 +4858,10 @@ void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
-    /* ./syntax//mmbuilder.nit:741 */
+    /* syntax/mmbuilder.nit:741 */
     goto label22;
   }
-  /* ./syntax//mmbuilder.nit:744 */
+  /* syntax/mmbuilder.nit:744 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
@@ -4875,14 +4873,14 @@ void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./syntax//mmbuilder.nit:744 */
+    /* syntax/mmbuilder.nit:744 */
     REGB2 = REGB1;
   }
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//mmbuilder.nit:745 */
+    /* syntax/mmbuilder.nit:745 */
     REGB2 = TAG_Int(5);
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
     if (!once_value_25) {
@@ -4927,7 +4925,7 @@ void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
   }
-  /* ./syntax//mmbuilder.nit:749 */
+  /* syntax/mmbuilder.nit:749 */
   REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   if (UNTAG_Bool(REGB2)) {
@@ -4940,60 +4938,60 @@ void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p
   if (UNTAG_Bool(REGB2)) {
     REGB2 = TAG_Bool(true);
   } else {
-    /* ./syntax//mmbuilder.nit:750 */
+    /* syntax/mmbuilder.nit:750 */
     REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[1])(fra.me.REG[1]);
     REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-    /* ./syntax//mmbuilder.nit:749 */
+    /* syntax/mmbuilder.nit:749 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//mmbuilder.nit:750 */
+    /* syntax/mmbuilder.nit:750 */
     fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
     REGB2 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[0])(fra.me.REG[0]);
   } else {
-    /* ./syntax//mmbuilder.nit:749 */
+    /* syntax/mmbuilder.nit:749 */
     REGB1 = TAG_Bool(false);
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
     REGB2 = TAG_Bool(true);
   } else {
-    /* ./syntax//mmbuilder.nit:751 */
+    /* syntax/mmbuilder.nit:751 */
     REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
     REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-    /* ./syntax//mmbuilder.nit:749 */
+    /* syntax/mmbuilder.nit:749 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//mmbuilder.nit:751 */
+    /* syntax/mmbuilder.nit:751 */
     fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
     REGB2 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[0])(fra.me.REG[0]);
   } else {
-    /* ./syntax//mmbuilder.nit:749 */
+    /* syntax/mmbuilder.nit:749 */
     REGB1 = TAG_Bool(false);
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
     REGB2 = TAG_Bool(true);
   } else {
-    /* ./syntax//mmbuilder.nit:752 */
+    /* syntax/mmbuilder.nit:752 */
     REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
     REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-    /* ./syntax//mmbuilder.nit:749 */
+    /* syntax/mmbuilder.nit:749 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//mmbuilder.nit:752 */
+    /* syntax/mmbuilder.nit:752 */
     fra.me.REG[1] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
     REGB2 = CALL_syntax___mmbuilder___AClasskind___is_extern(fra.me.REG[1])(fra.me.REG[1]);
   } else {
-    /* ./syntax//mmbuilder.nit:749 */
+    /* syntax/mmbuilder.nit:749 */
     REGB1 = TAG_Bool(false);
     REGB2 = REGB1;
   }
-  /* ./syntax//mmbuilder.nit:748 */
+  /* syntax/mmbuilder.nit:748 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//mmbuilder.nit:754 */
+    /* syntax/mmbuilder.nit:754 */
     REGB2 = TAG_Int(3);
     fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
     if (!once_value_28) {
@@ -5037,7 +5035,7 @@ val_t syntax___mmbuilder___AStdClassdef___visibility_level(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:760 */
+  /* syntax/mmbuilder.nit:760 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -5060,7 +5058,7 @@ val_t syntax___mmbuilder___AMainClassdef___name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:767 */
+  /* syntax/mmbuilder.nit:767 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("Sys");
@@ -5095,7 +5093,7 @@ val_t syntax___mmbuilder___ATopClassdef___name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:774 */
+  /* syntax/mmbuilder.nit:774 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("Object");
@@ -5135,36 +5133,36 @@ void syntax___mmbuilder___AFormaldef___accept_class_builder(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:782 */
+  /* syntax/mmbuilder.nit:782 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:784 */
+  /* syntax/mmbuilder.nit:784 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AFormaldef___n_id(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./syntax//mmbuilder.nit:785 */
+  /* syntax/mmbuilder.nit:785 */
   REGB0 = CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[5] = NEW_MMTypeFormalParameter_metamodel___genericity___MMTypeFormalParameter___init(fra.me.REG[4], REGB0, fra.me.REG[5]);
-  /* ./syntax//mmbuilder.nit:786 */
+  /* syntax/mmbuilder.nit:786 */
   ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]) = fra.me.REG[5];
-  /* ./syntax//mmbuilder.nit:787 */
+  /* syntax/mmbuilder.nit:787 */
   REGB0 = CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* ./syntax//mmbuilder.nit:787 */
+  /* syntax/mmbuilder.nit:787 */
   CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
-  /* ./syntax//mmbuilder.nit:788 */
+  /* syntax/mmbuilder.nit:788 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
   CALL_metamodel___genericity___MMLocalClass___register_formal(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-  /* ./syntax//mmbuilder.nit:789 */
+  /* syntax/mmbuilder.nit:789 */
   fra.me.REG[3] = CALL_syntax___mmbuilder___ClassBuilderVisitor___formals(fra.me.REG[3])(fra.me.REG[3]);
   REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 789);
   }
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
-  /* ./syntax//mmbuilder.nit:790 */
+  /* syntax/mmbuilder.nit:790 */
   CALL_SUPER_syntax___mmbuilder___AFormaldef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -5193,17 +5191,17 @@ void syntax___mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1)
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:793 */
+  /* syntax/mmbuilder.nit:793 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:795 */
+  /* syntax/mmbuilder.nit:795 */
   CALL_SUPER_syntax___mmbuilder___AFormaldef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:796 */
+  /* syntax/mmbuilder.nit:796 */
   fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//mmbuilder.nit:797 */
+  /* syntax/mmbuilder.nit:797 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./syntax//mmbuilder.nit:798 */
+  /* syntax/mmbuilder.nit:798 */
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -5211,7 +5209,7 @@ void syntax___mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1)
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:799 */
+    /* syntax/mmbuilder.nit:799 */
     fra.me.REG[4] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -5226,7 +5224,7 @@ void syntax___mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1)
       }
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:800 */
+      /* syntax/mmbuilder.nit:800 */
       fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
       fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
       fra.me.REG[5] = CALL_metamodel___inheritance___MMModule___type_any(fra.me.REG[5])(fra.me.REG[5]);
@@ -5237,14 +5235,14 @@ void syntax___mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1)
       }
       CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
     } else {
-      /* ./syntax//mmbuilder.nit:802 */
+      /* syntax/mmbuilder.nit:802 */
       fra.me.REG[5] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
       REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 802);
       }
       fra.me.REG[5] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
-      /* ./syntax//mmbuilder.nit:803 */
+      /* syntax/mmbuilder.nit:803 */
       REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -5260,7 +5258,7 @@ void syntax___mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1)
       if (UNTAG_Bool(REGB0)) {
         goto label1;
       }
-      /* ./syntax//mmbuilder.nit:804 */
+      /* syntax/mmbuilder.nit:804 */
       fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
       REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
@@ -5269,7 +5267,7 @@ void syntax___mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1)
       CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
     }
   } else {
-    /* ./syntax//mmbuilder.nit:807 */
+    /* syntax/mmbuilder.nit:807 */
     fra.me.REG[5] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -5280,7 +5278,7 @@ void syntax___mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1)
     fra.me.REG[0] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
     fra.me.REG[5] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
-    /* ./syntax//mmbuilder.nit:808 */
+    /* syntax/mmbuilder.nit:808 */
     fra.me.REG[0] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -5295,7 +5293,7 @@ void syntax___mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1)
       }
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:809 */
+      /* syntax/mmbuilder.nit:809 */
       fra.me.REG[0] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
       REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
@@ -5303,14 +5301,14 @@ void syntax___mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1)
       }
       CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
     } else {
-      /* ./syntax//mmbuilder.nit:811 */
+      /* syntax/mmbuilder.nit:811 */
       fra.me.REG[0] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
       REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 811);
       }
       fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-      /* ./syntax//mmbuilder.nit:812 */
+      /* syntax/mmbuilder.nit:812 */
       REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -5326,14 +5324,14 @@ void syntax___mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1)
       if (UNTAG_Bool(REGB0)) {
         goto label1;
       }
-      /* ./syntax//mmbuilder.nit:813 */
+      /* syntax/mmbuilder.nit:813 */
       fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
       REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 813);
       }
       CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
-      /* ./syntax//mmbuilder.nit:814 */
+      /* syntax/mmbuilder.nit:814 */
       fra.me.REG[0] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
       REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
@@ -5348,7 +5346,7 @@ void syntax___mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1)
       }
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//mmbuilder.nit:815 */
+        /* syntax/mmbuilder.nit:815 */
         REGB0 = TAG_Int(7);
         fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_2) {
@@ -5420,7 +5418,7 @@ val_t syntax___mmbuilder___ASuperclass___ancestor(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:823 */
+  /* syntax/mmbuilder.nit:823 */
   fra.me.REG[0] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -5443,15 +5441,15 @@ void syntax___mmbuilder___ASuperclass___accept_class_specialization_builder(val_
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:825 */
+  /* syntax/mmbuilder.nit:825 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:827 */
+  /* syntax/mmbuilder.nit:827 */
   CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_specialization_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:828 */
+  /* syntax/mmbuilder.nit:828 */
   fra.me.REG[1] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[1] = CALL_syntax___syntax_base___AType___get_local_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//mmbuilder.nit:829 */
+  /* syntax/mmbuilder.nit:829 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -5467,11 +5465,11 @@ void syntax___mmbuilder___ASuperclass___accept_class_specialization_builder(val_
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//mmbuilder.nit:830 */
+  /* syntax/mmbuilder.nit:830 */
   fra.me.REG[1] = NEW_MMSrcAncestor_syntax___mmbuilder___MMSrcAncestor___init(fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:831 */
+  /* syntax/mmbuilder.nit:831 */
   ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:832 */
+  /* syntax/mmbuilder.nit:832 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
   CALL_metamodel___inheritance___MMLocalClass___add_direct_parent(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
   label1: while(0);
@@ -5495,12 +5493,12 @@ void syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder(val_t p0,
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:835 */
+  /* syntax/mmbuilder.nit:835 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:837 */
+  /* syntax/mmbuilder.nit:837 */
   CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:838 */
+  /* syntax/mmbuilder.nit:838 */
   fra.me.REG[1] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
   fra.me.REG[0] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_unchecked_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
@@ -5509,7 +5507,7 @@ void syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder(val_t p0,
     nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 838);
   }
   CALL_metamodel___static_type___MMAncestor___stype__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./syntax//mmbuilder.nit:839 */
+  /* syntax/mmbuilder.nit:839 */
   fra.me.REG[2] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[3])(fra.me.REG[3]);
@@ -5537,12 +5535,12 @@ void syntax___mmbuilder___ASuperclass___accept_class_verifier(val_t p0, val_t p1
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:842 */
+  /* syntax/mmbuilder.nit:842 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:844 */
+  /* syntax/mmbuilder.nit:844 */
   CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:845 */
+  /* syntax/mmbuilder.nit:845 */
   fra.me.REG[2] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
   CALL_syntax___syntax_base___AType___check_conform(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -5571,7 +5569,7 @@ void syntax___mmbuilder___APropdef___process_and_check(val_t p0, val_t p1, val_t
   fra.me.REG[2] = p2;
   REGB0 = p3;
   REGB1 = p4;
-  /* ./syntax//mmbuilder.nit:858 */
+  /* syntax/mmbuilder.nit:858 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[3])(fra.me.REG[3]);
   REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[2]));
@@ -5581,10 +5579,10 @@ void syntax___mmbuilder___APropdef___process_and_check(val_t p0, val_t p1, val_t
     REGB2 = REGB3;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//mmbuilder.nit:859 */
+    /* syntax/mmbuilder.nit:859 */
     CALL_syntax___mmbuilder___APropdef___do_and_check_intro(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, REGB1);
   } else {
-    /* ./syntax//mmbuilder.nit:861 */
+    /* syntax/mmbuilder.nit:861 */
     CALL_syntax___mmbuilder___APropdef___do_and_check_redef(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, REGB1);
   }
   stack_frame_head = fra.me.prev;
@@ -5636,12 +5634,12 @@ void syntax___mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_
   fra.me.REG[2] = p2;
   REGB0 = p3;
   REGB1 = p4;
-  /* ./syntax//mmbuilder.nit:868 */
+  /* syntax/mmbuilder.nit:868 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:869 */
+  /* syntax/mmbuilder.nit:869 */
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./syntax//mmbuilder.nit:870 */
+  /* syntax/mmbuilder.nit:870 */
   fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
   REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[5])(fra.me.REG[5]);
@@ -5651,19 +5649,19 @@ void syntax___mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
-  /* ./syntax//mmbuilder.nit:870 */
+  /* syntax/mmbuilder.nit:870 */
   if (UNTAG_Bool(REGB3)) {
-    /* ./syntax//mmbuilder.nit:872 */
+    /* syntax/mmbuilder.nit:872 */
     REGB3 = TAG_Int(3);
     REGB1 = REGB3;
   }
-  /* ./syntax//mmbuilder.nit:874 */
+  /* syntax/mmbuilder.nit:874 */
   CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
-  /* ./syntax//mmbuilder.nit:875 */
+  /* syntax/mmbuilder.nit:875 */
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:876 */
+    /* syntax/mmbuilder.nit:876 */
     REGB0 = TAG_Int(5);
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -5701,13 +5699,13 @@ void syntax___mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
   }
-  /* ./syntax//mmbuilder.nit:878 */
+  /* syntax/mmbuilder.nit:878 */
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_attribute(fra.me.REG[3])(fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:879 */
+    /* syntax/mmbuilder.nit:879 */
     REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:880 */
+      /* syntax/mmbuilder.nit:880 */
       REGB0 = TAG_Int(5);
       fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_4) {
@@ -5745,10 +5743,10 @@ void syntax___mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_
       fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
     } else {
-      /* ./syntax//mmbuilder.nit:881 */
+      /* syntax/mmbuilder.nit:881 */
       REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]);
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//mmbuilder.nit:882 */
+        /* syntax/mmbuilder.nit:882 */
         REGB0 = TAG_Int(5);
         fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_7) {
@@ -5786,10 +5784,10 @@ void syntax___mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_
         fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
         CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
       } else {
-        /* ./syntax//mmbuilder.nit:883 */
+        /* syntax/mmbuilder.nit:883 */
         REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[4])(fra.me.REG[4]);
         if (UNTAG_Bool(REGB0)) {
-          /* ./syntax//mmbuilder.nit:884 */
+          /* syntax/mmbuilder.nit:884 */
           REGB0 = TAG_Int(5);
           fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
           if (!once_value_10) {
@@ -5830,13 +5828,13 @@ void syntax___mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_
       }
     }
   } else {
-    /* ./syntax//mmbuilder.nit:886 */
+    /* syntax/mmbuilder.nit:886 */
     REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:887 */
+      /* syntax/mmbuilder.nit:887 */
       REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//mmbuilder.nit:888 */
+        /* syntax/mmbuilder.nit:888 */
         REGB0 = TAG_Int(5);
         fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_13) {
@@ -5874,10 +5872,10 @@ void syntax___mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_
         fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
         CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
       } else {
-        /* ./syntax//mmbuilder.nit:889 */
+        /* syntax/mmbuilder.nit:889 */
         REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]);
         if (UNTAG_Bool(REGB0)) {
-          /* ./syntax//mmbuilder.nit:890 */
+          /* syntax/mmbuilder.nit:890 */
           REGB0 = TAG_Int(5);
           fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
           if (!once_value_16) {
@@ -5918,7 +5916,7 @@ void syntax___mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_
       }
     }
   }
-  /* ./syntax//mmbuilder.nit:895 */
+  /* syntax/mmbuilder.nit:895 */
   fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -5933,17 +5931,17 @@ void syntax___mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:896 */
+    /* syntax/mmbuilder.nit:896 */
     REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:897 */
+      /* syntax/mmbuilder.nit:897 */
       fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
       fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
       fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-      /* ./syntax//mmbuilder.nit:898 */
+      /* syntax/mmbuilder.nit:898 */
       CALL_syntax___mmbuilder___APropdef___inherit_signature(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]);
     }
-    /* ./syntax//mmbuilder.nit:900 */
+    /* syntax/mmbuilder.nit:900 */
     fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -5967,13 +5965,13 @@ void syntax___mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_
     }
     if (UNTAG_Bool(REGB0)) {
     } else {
-      /* ./syntax//mmbuilder.nit:902 */
+      /* syntax/mmbuilder.nit:902 */
       fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
       REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]);
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//mmbuilder.nit:903 */
+        /* syntax/mmbuilder.nit:903 */
         fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
         fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
@@ -5987,29 +5985,29 @@ void syntax___mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_
         fra.me.REG[0] = fra.me.REG[0];
         CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
       } else {
-        /* ./syntax//mmbuilder.nit:905 */
+        /* syntax/mmbuilder.nit:905 */
         fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
         fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
         fra.me.REG[4] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[4]);
         CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-        /* ./syntax//mmbuilder.nit:906 */
+        /* syntax/mmbuilder.nit:906 */
         fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[1])(fra.me.REG[1]);
-        /* ./../lib/standard//collection//array.nit:269 */
+        /* ../lib/standard/collection/array.nit:269 */
         REGB0 = TAG_Int(0);
-        /* ./../lib/standard//collection//array.nit:270 */
+        /* ../lib/standard/collection/array.nit:270 */
         REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
         }
         REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-        /* ./../lib/standard//collection//array.nit:271 */
+        /* ../lib/standard/collection/array.nit:271 */
         fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         while(1) {
-          /* ./../lib/standard//collection//array.nit:24 */
+          /* ../lib/standard/collection/array.nit:24 */
           REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
           } else {
@@ -6021,18 +6019,18 @@ void syntax___mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           if (UNTAG_Bool(REGB1)) {
-            /* ./../lib/standard//collection//array.nit:273 */
+            /* ../lib/standard/collection/array.nit:273 */
             REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
             if (UNTAG_Bool(REGB1)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-            /* ./syntax//mmbuilder.nit:907 */
+            /* syntax/mmbuilder.nit:907 */
             fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
             REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
             if (UNTAG_Bool(REGB1)) {
@@ -6042,14 +6040,14 @@ void syntax___mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_
             fra.me.REG[0] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[0])(fra.me.REG[0]);
             fra.me.REG[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[0])(fra.me.REG[0]);
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB1 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB0 = REGB1;
           } else {
-            /* ./../lib/standard//collection//array.nit:272 */
+            /* ../lib/standard/collection/array.nit:272 */
             goto label20;
           }
         }
@@ -6090,22 +6088,22 @@ void syntax___mmbuilder___APropdef___inherit_signature(val_t p0, val_t p1, val_t
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./syntax//mmbuilder.nit:915 */
+  /* syntax/mmbuilder.nit:915 */
   fra.me.REG[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -6117,18 +6115,18 @@ void syntax___mmbuilder___APropdef___inherit_signature(val_t p0, val_t p1, val_t
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-      /* ./syntax//mmbuilder.nit:917 */
+      /* syntax/mmbuilder.nit:917 */
       fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[5])(fra.me.REG[5]);
       fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
@@ -6137,7 +6135,7 @@ void syntax___mmbuilder___APropdef___inherit_signature(val_t p0, val_t p1, val_t
         nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 917);
       }
       fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___adaptation_to(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-      /* ./syntax//mmbuilder.nit:919 */
+      /* syntax/mmbuilder.nit:919 */
       REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -6151,48 +6149,48 @@ void syntax___mmbuilder___APropdef___inherit_signature(val_t p0, val_t p1, val_t
         }
       }
       if (UNTAG_Bool(REGB1)) {
-        /* ./syntax//mmbuilder.nit:920 */
+        /* syntax/mmbuilder.nit:920 */
         fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]);
-        /* ./../lib/standard//collection//array.nit:24 */
+        /* ../lib/standard/collection/array.nit:24 */
         REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
         }
         REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-        /* ./syntax//mmbuilder.nit:920 */
+        /* syntax/mmbuilder.nit:920 */
         REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]);
         REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
         if (UNTAG_Bool(REGB3)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB2 = TAG_Bool((REGB1)==(REGB2));
-          /* ./syntax//mmbuilder.nit:920 */
+          /* syntax/mmbuilder.nit:920 */
           REGB3 = REGB2;
         }
         REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
         if (UNTAG_Bool(REGB3)) {
-          /* ./syntax//mmbuilder.nit:921 */
+          /* syntax/mmbuilder.nit:921 */
           goto label1;
         }
-        /* ./syntax//mmbuilder.nit:923 */
+        /* syntax/mmbuilder.nit:923 */
         fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]);
-        /* ./../lib/standard//collection//array.nit:269 */
+        /* ../lib/standard/collection/array.nit:269 */
         REGB3 = TAG_Int(0);
-        /* ./../lib/standard//collection//array.nit:270 */
+        /* ../lib/standard/collection/array.nit:270 */
         REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
         }
         REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-        /* ./../lib/standard//collection//array.nit:271 */
+        /* ../lib/standard/collection/array.nit:271 */
         fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         while(1) {
-          /* ./../lib/standard//collection//array.nit:24 */
+          /* ../lib/standard/collection/array.nit:24 */
           REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
           } else {
@@ -6204,66 +6202,66 @@ void syntax___mmbuilder___APropdef___inherit_signature(val_t p0, val_t p1, val_t
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           if (UNTAG_Bool(REGB2)) {
-            /* ./../lib/standard//collection//array.nit:273 */
+            /* ../lib/standard/collection/array.nit:273 */
             REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
             if (UNTAG_Bool(REGB2)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB3)];
-            /* ./syntax//mmbuilder.nit:924 */
+            /* syntax/mmbuilder.nit:924 */
             REGB2 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]);
             fra.me.REG[9] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[6])(fra.me.REG[6], REGB2);
-            /* ./syntax//mmbuilder.nit:925 */
+            /* syntax/mmbuilder.nit:925 */
             CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
-            /* ./syntax//mmbuilder.nit:926 */
+            /* syntax/mmbuilder.nit:926 */
             REGB2 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]);
             REGB1 = CALL_metamodel___vararg___MMSignature___vararg_rank(fra.me.REG[6])(fra.me.REG[6]);
             REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
             if (UNTAG_Bool(REGB4)) {
             } else {
-              /* ./../lib/standard//kernel.nit:227 */
+              /* ../lib/standard/kernel.nit:227 */
               REGB1 = TAG_Bool((REGB2)==(REGB1));
-              /* ./syntax//mmbuilder.nit:926 */
+              /* syntax/mmbuilder.nit:926 */
               REGB4 = REGB1;
             }
             if (UNTAG_Bool(REGB4)) {
-              /* ./syntax//mmbuilder.nit:927 */
+              /* syntax/mmbuilder.nit:927 */
               fra.me.REG[10] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
               fra.me.REG[9] = fra.me.REG[10];
             }
-            /* ./syntax//mmbuilder.nit:929 */
+            /* syntax/mmbuilder.nit:929 */
             fra.me.REG[8] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[8])(fra.me.REG[8]);
             CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB4 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB3 = REGB4;
           } else {
-            /* ./../lib/standard//collection//array.nit:272 */
+            /* ../lib/standard/collection/array.nit:272 */
             goto label2;
           }
         }
         label2: while(0);
-        /* ./syntax//mmbuilder.nit:932 */
+        /* syntax/mmbuilder.nit:932 */
         fra.me.REG[0] = fra.me.REG[6];
-        /* ./syntax//mmbuilder.nit:933 */
+        /* syntax/mmbuilder.nit:933 */
         CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB3;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label3;
     }
   }
@@ -6370,14 +6368,14 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
   fra.me.REG[2] = p2;
   REGB0 = p3;
   REGB1 = p4;
-  /* ./syntax//mmbuilder.nit:941 */
+  /* syntax/mmbuilder.nit:941 */
   REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AInitPropdef, ID_parser___parser_nodes___AInitPropdef)) /*cast AInitPropdef*/;
-  /* ./syntax//mmbuilder.nit:942 */
+  /* syntax/mmbuilder.nit:942 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:944 */
+  /* syntax/mmbuilder.nit:944 */
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:945 */
+    /* syntax/mmbuilder.nit:945 */
     REGB0 = TAG_Int(5);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -6414,10 +6412,10 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
-    /* ./syntax//mmbuilder.nit:946 */
+    /* syntax/mmbuilder.nit:946 */
     goto label4;
   }
-  /* ./syntax//mmbuilder.nit:948 */
+  /* syntax/mmbuilder.nit:948 */
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB2));
@@ -6426,7 +6424,7 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
     REGB0 = REGB3;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:949 */
+    /* syntax/mmbuilder.nit:949 */
     REGB0 = TAG_Int(5);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_5) {
@@ -6464,7 +6462,7 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
   } else {
-    /* ./syntax//mmbuilder.nit:950 */
+    /* syntax/mmbuilder.nit:950 */
     REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
@@ -6473,7 +6471,7 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
       REGB2 = REGB0;
     }
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//mmbuilder.nit:951 */
+      /* syntax/mmbuilder.nit:951 */
       REGB2 = TAG_Int(5);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_8) {
@@ -6512,25 +6510,25 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
     }
   }
-  /* ./syntax//mmbuilder.nit:954 */
+  /* syntax/mmbuilder.nit:954 */
   fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:956 */
+  /* syntax/mmbuilder.nit:956 */
   fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[5])(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB2 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -6542,24 +6540,24 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB2)];
-      /* ./syntax//mmbuilder.nit:957 */
+      /* syntax/mmbuilder.nit:957 */
       fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[7])(fra.me.REG[7]);
       fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
       fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
-      /* ./syntax//mmbuilder.nit:958 */
+      /* syntax/mmbuilder.nit:958 */
       fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[7])(fra.me.REG[7]);
-      /* ./syntax//mmbuilder.nit:959 */
+      /* syntax/mmbuilder.nit:959 */
       REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -6575,7 +6573,7 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
       if (UNTAG_Bool(REGB0)) {
         goto label11;
       }
-      /* ./syntax//mmbuilder.nit:960 */
+      /* syntax/mmbuilder.nit:960 */
       fra.me.REG[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[8] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[8])(fra.me.REG[8]);
       REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
@@ -6584,7 +6582,7 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
       }
       fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___adaptation_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
       fra.me.REG[7] = fra.me.REG[8];
-      /* ./syntax//mmbuilder.nit:962 */
+      /* syntax/mmbuilder.nit:962 */
       REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -6598,17 +6596,17 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
         }
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//mmbuilder.nit:964 */
+        /* syntax/mmbuilder.nit:964 */
         fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[8])(fra.me.REG[8]);
-        /* ./../lib/standard//collection//array.nit:24 */
+        /* ../lib/standard/collection/array.nit:24 */
         REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
         }
         REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
-        /* ./syntax//mmbuilder.nit:964 */
+        /* syntax/mmbuilder.nit:964 */
         REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
           nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 964);
@@ -6617,14 +6615,14 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
         REGB4 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB3));
         if (UNTAG_Bool(REGB4)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB3 = TAG_Bool((REGB0)==(REGB3));
-          /* ./syntax//mmbuilder.nit:964 */
+          /* syntax/mmbuilder.nit:964 */
           REGB4 = REGB3;
         }
         REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
         if (UNTAG_Bool(REGB4)) {
-          /* ./syntax//mmbuilder.nit:965 */
+          /* syntax/mmbuilder.nit:965 */
           REGB4 = TAG_Int(11);
           fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
           if (!once_value_12) {
@@ -6700,44 +6698,44 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
           fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
           CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
-          /* ./syntax//mmbuilder.nit:966 */
+          /* syntax/mmbuilder.nit:966 */
           goto label4;
         }
-        /* ./syntax//mmbuilder.nit:968 */
+        /* syntax/mmbuilder.nit:968 */
         fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[8])(fra.me.REG[8]);
-        /* ./../lib/standard//collection//array.nit:24 */
+        /* ../lib/standard/collection/array.nit:24 */
         REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
         if (UNTAG_Bool(REGB4)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
         }
         REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
-        /* ./syntax//mmbuilder.nit:968 */
+        /* syntax/mmbuilder.nit:968 */
         REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
           nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 968);
         }
         fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[7])(fra.me.REG[7]);
-        /* ./../lib/standard//collection//array.nit:24 */
+        /* ../lib/standard/collection/array.nit:24 */
         REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
         }
         REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
-        /* ./syntax//mmbuilder.nit:968 */
+        /* syntax/mmbuilder.nit:968 */
         REGB0 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB3));
         if (UNTAG_Bool(REGB0)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB3 = TAG_Bool((REGB4)==(REGB3));
-          /* ./syntax//mmbuilder.nit:968 */
+          /* syntax/mmbuilder.nit:968 */
           REGB0 = REGB3;
         }
         REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
         if (UNTAG_Bool(REGB0)) {
-          /* ./syntax//mmbuilder.nit:969 */
+          /* syntax/mmbuilder.nit:969 */
           REGB0 = TAG_Int(11);
           fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
           if (!once_value_18) {
@@ -6813,26 +6811,26 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
           fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
           CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
-          /* ./syntax//mmbuilder.nit:970 */
+          /* syntax/mmbuilder.nit:970 */
           goto label4;
         }
-        /* ./syntax//mmbuilder.nit:972 */
+        /* syntax/mmbuilder.nit:972 */
         fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[8])(fra.me.REG[8]);
-        /* ./../lib/standard//collection//array.nit:269 */
+        /* ../lib/standard/collection/array.nit:269 */
         REGB0 = TAG_Int(0);
-        /* ./../lib/standard//collection//array.nit:270 */
+        /* ../lib/standard/collection/array.nit:270 */
         REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
         }
         REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
-        /* ./../lib/standard//collection//array.nit:271 */
+        /* ../lib/standard/collection/array.nit:271 */
         fra.me.REG[10] = ATTR_standard___collection___array___Array____items(fra.me.REG[8]);
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         while(1) {
-          /* ./../lib/standard//collection//array.nit:24 */
+          /* ../lib/standard/collection/array.nit:24 */
           REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
@@ -6844,27 +6842,27 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           if (UNTAG_Bool(REGB3)) {
-            /* ./../lib/standard//collection//array.nit:273 */
+            /* ../lib/standard/collection/array.nit:273 */
             REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
             if (UNTAG_Bool(REGB3)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[11] = ((Nit_NativeArray)fra.me.REG[10])->val[UNTAG_Int(REGB0)];
-            /* ./syntax//mmbuilder.nit:973 */
+            /* syntax/mmbuilder.nit:973 */
             REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
             REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
             if (UNTAG_Bool(REGB4)) {
               nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 973);
             }
             fra.me.REG[12] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB3);
-            /* ./syntax//mmbuilder.nit:974 */
+            /* syntax/mmbuilder.nit:974 */
             CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
-            /* ./syntax//mmbuilder.nit:975 */
+            /* syntax/mmbuilder.nit:975 */
             REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
             REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
             if (UNTAG_Bool(REGB4)) {
@@ -6874,36 +6872,36 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
             REGB5 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4));
             if (UNTAG_Bool(REGB5)) {
             } else {
-              /* ./../lib/standard//kernel.nit:227 */
+              /* ../lib/standard/kernel.nit:227 */
               REGB4 = TAG_Bool((REGB3)==(REGB4));
-              /* ./syntax//mmbuilder.nit:975 */
+              /* syntax/mmbuilder.nit:975 */
               REGB5 = REGB4;
             }
             if (UNTAG_Bool(REGB5)) {
-              /* ./syntax//mmbuilder.nit:976 */
+              /* syntax/mmbuilder.nit:976 */
               fra.me.REG[13] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[12]);
               fra.me.REG[12] = fra.me.REG[13];
             }
-            /* ./syntax//mmbuilder.nit:978 */
+            /* syntax/mmbuilder.nit:978 */
             fra.me.REG[13] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[11])(fra.me.REG[11]);
             CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[13])(fra.me.REG[13], fra.me.REG[12]);
-            /* ./syntax//mmbuilder.nit:980 */
+            /* syntax/mmbuilder.nit:980 */
             REGB5 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
             if (UNTAG_Bool(REGB5)) {
               nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 980);
             }
             fra.me.REG[12] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[7])(fra.me.REG[7]);
             REGB5 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB4 = TAG_Int(0);
             REGB3 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
             if (UNTAG_Bool(REGB3)) {
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:233 */
+            /* ../lib/standard/kernel.nit:233 */
             REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             if (UNTAG_Bool(REGB4)) {
               REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[12])!=NIT_NULL);
               if (UNTAG_Bool(REGB4)) {
@@ -6916,29 +6914,29 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:232 */
+              /* ../lib/standard/kernel.nit:232 */
               REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
             } else {
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB3 = TAG_Bool(false);
               REGB4 = REGB3;
             }
             if (UNTAG_Bool(REGB4)) {
             } else {
-              nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+              nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
             }
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             fra.me.REG[12] = ATTR_standard___collection___array___Array____items(fra.me.REG[12]);
             REGB4 = TAG_Bool(fra.me.REG[12]==NIT_NULL);
             if (UNTAG_Bool(REGB4)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[12] = ((Nit_NativeArray)fra.me.REG[12])->val[UNTAG_Int(REGB5)];
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             goto label24;
             label24: while(0);
-            /* ./syntax//mmbuilder.nit:980 */
+            /* syntax/mmbuilder.nit:980 */
             fra.me.REG[11] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[11])(fra.me.REG[11]);
             fra.me.REG[11] = CALL_syntax___syntax_base___Variable___name(fra.me.REG[11])(fra.me.REG[11]);
             REGB5 = TAG_Bool(fra.me.REG[12]==NIT_NULL);
@@ -6946,27 +6944,27 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
               nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 980);
             }
             CALL_metamodel___static_type___MMParam___name__eq(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB5 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB5 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB5));
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB0 = REGB5;
           } else {
-            /* ./../lib/standard//collection//array.nit:272 */
+            /* ../lib/standard/collection/array.nit:272 */
             goto label25;
           }
         }
         label25: while(0);
-        /* ./syntax//mmbuilder.nit:982 */
+        /* syntax/mmbuilder.nit:982 */
         fra.me.REG[4] = fra.me.REG[7];
-        /* ./syntax//mmbuilder.nit:983 */
+        /* syntax/mmbuilder.nit:983 */
         CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
       }
-      /* ./syntax//mmbuilder.nit:987 */
+      /* syntax/mmbuilder.nit:987 */
       fra.me.REG[10] = CALL_syntax___syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
-      REGB0 = CALL_mmloader___ToolContext___error_count(fra.me.REG[10])(fra.me.REG[10]);
-      /* ./syntax//mmbuilder.nit:995 */
+      REGB0 = CALL_toolcontext___ToolContext___error_count(fra.me.REG[10])(fra.me.REG[10]);
+      /* syntax/mmbuilder.nit:995 */
       REGB5 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB5)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 995);
@@ -6980,14 +6978,14 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
       REGB3 = TAG_Bool(IS_EQUAL_OO(REGB5,REGB4));
       if (UNTAG_Bool(REGB3)) {
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB4 = TAG_Bool((REGB5)==(REGB4));
-        /* ./syntax//mmbuilder.nit:995 */
+        /* syntax/mmbuilder.nit:995 */
         REGB3 = REGB4;
       }
       REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
       if (UNTAG_Bool(REGB3)) {
-        /* ./syntax//mmbuilder.nit:996 */
+        /* syntax/mmbuilder.nit:996 */
         REGB3 = TAG_Int(11);
         fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
         if (!once_value_26) {
@@ -7064,7 +7062,7 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
         fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
         CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]);
       } else {
-        /* ./syntax//mmbuilder.nit:997 */
+        /* syntax/mmbuilder.nit:997 */
         REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
           nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 997);
@@ -7076,34 +7074,34 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:234 */
+        /* ../lib/standard/kernel.nit:234 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB4));
-        /* ./syntax//mmbuilder.nit:997 */
+        /* syntax/mmbuilder.nit:997 */
         if (UNTAG_Bool(REGB4)) {
-          /* ./syntax//mmbuilder.nit:998 */
+          /* syntax/mmbuilder.nit:998 */
           REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AMethPropdef, ID_parser___parser_nodes___AMethPropdef)) /*cast AMethPropdef*/;
           if (UNTAG_Bool(REGB4)) {
-            /* ./syntax//mmbuilder.nit:1000 */
+            /* syntax/mmbuilder.nit:1000 */
             REGB4 = TAG_Int(0);
             REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
             if (UNTAG_Bool(REGB3)) {
               nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1000);
             }
             REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
-            /* ./../lib/standard//kernel.nit:352 */
+            /* ../lib/standard/kernel.nit:352 */
             while(1) {
               REGB5 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
               if (UNTAG_Bool(REGB5)) {
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:232 */
+              /* ../lib/standard/kernel.nit:232 */
               REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB3));
-              /* ./../lib/standard//kernel.nit:352 */
+              /* ../lib/standard/kernel.nit:352 */
               if (UNTAG_Bool(REGB5)) {
-               /* ./syntax//mmbuilder.nit:1000 */
+               /* syntax/mmbuilder.nit:1000 */
                REGB5 = REGB4;
-               /* ./syntax//mmbuilder.nit:1001 */
+               /* syntax/mmbuilder.nit:1001 */
                REGB6 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
                if (UNTAG_Bool(REGB6)) {
                nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1001);
@@ -7122,7 +7120,7 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
                }
                REGB6 = TAG_Bool(!UNTAG_Bool(REGB6));
                if (UNTAG_Bool(REGB6)) {
-               /* ./syntax//mmbuilder.nit:1002 */
+               /* syntax/mmbuilder.nit:1002 */
                fra.me.REG[8] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[0])(fra.me.REG[0]);
                REGB6 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
                if (UNTAG_Bool(REGB6)) {
@@ -7183,23 +7181,23 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
                fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
                CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8], fra.me.REG[10]);
                }
-               /* ./../lib/standard//kernel.nit:354 */
+               /* ../lib/standard/kernel.nit:354 */
                REGB5 = TAG_Int(1);
-               /* ./../lib/standard//kernel.nit:235 */
+               /* ../lib/standard/kernel.nit:235 */
                REGB5 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB5));
-               /* ./../lib/standard//kernel.nit:354 */
+               /* ../lib/standard/kernel.nit:354 */
                REGB4 = REGB5;
               } else {
-               /* ./../lib/standard//kernel.nit:352 */
+               /* ../lib/standard/kernel.nit:352 */
                goto label36;
               }
             }
             label36: while(0);
           } else {
-            /* ./syntax//mmbuilder.nit:1005 */
+            /* syntax/mmbuilder.nit:1005 */
             REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AAttrPropdef, ID_parser___parser_nodes___AAttrPropdef)) /*cast AAttrPropdef*/;
             if (UNTAG_Bool(REGB4)) {
-              /* ./syntax//mmbuilder.nit:1007 */
+              /* syntax/mmbuilder.nit:1007 */
               REGB4 = TAG_Int(0);
               REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
               if (UNTAG_Bool(REGB3)) {
@@ -7220,7 +7218,7 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
               }
               REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
               if (UNTAG_Bool(REGB4)) {
-               /* ./syntax//mmbuilder.nit:1008 */
+               /* syntax/mmbuilder.nit:1008 */
                fra.me.REG[8] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
                REGB4 = TAG_Int(7);
                fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
@@ -7277,25 +7275,25 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
                CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8], fra.me.REG[10]);
               }
             } else {
-              /* ./syntax//mmbuilder.nit:1012 */
+              /* syntax/mmbuilder.nit:1012 */
               nit_abort("Aborted", NULL, LOCATE_syntax___mmbuilder, 1012);
             }
           }
         }
       }
-      /* ./syntax//mmbuilder.nit:1016 */
+      /* syntax/mmbuilder.nit:1016 */
       REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB4)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1016);
       }
       fra.me.REG[10] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]);
-      /* ./syntax//mmbuilder.nit:1017 */
+      /* syntax/mmbuilder.nit:1017 */
       REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
       if (UNTAG_Bool(REGB4)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1017);
       }
       fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[7])(fra.me.REG[7]);
-      /* ./syntax//mmbuilder.nit:1018 */
+      /* syntax/mmbuilder.nit:1018 */
       REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
       if (UNTAG_Bool(REGB4)) {
       } else {
@@ -7327,7 +7325,7 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
         REGB4 = REGB3;
       }
       if (UNTAG_Bool(REGB4)) {
-        /* ./syntax//mmbuilder.nit:1019 */
+        /* syntax/mmbuilder.nit:1019 */
         REGB4 = TAG_Int(9);
         fra.me.REG[11] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
         if (!once_value_41) {
@@ -7388,7 +7386,7 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
         fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
         CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[11]);
       } else {
-        /* ./syntax//mmbuilder.nit:1020 */
+        /* syntax/mmbuilder.nit:1020 */
         REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
         if (UNTAG_Bool(REGB4)) {
         } else {
@@ -7420,7 +7418,7 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
           REGB4 = REGB3;
         }
         if (UNTAG_Bool(REGB4)) {
-          /* ./syntax//mmbuilder.nit:1021 */
+          /* syntax/mmbuilder.nit:1021 */
           REGB4 = TAG_Int(9);
           fra.me.REG[11] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
           if (!once_value_46) {
@@ -7481,7 +7479,7 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
           fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
           CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[11]);
         } else {
-          /* ./syntax//mmbuilder.nit:1022 */
+          /* syntax/mmbuilder.nit:1022 */
           REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
           if (UNTAG_Bool(REGB4)) {
           } else {
@@ -7525,12 +7523,12 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
             REGB4 = REGB3;
           }
           if (UNTAG_Bool(REGB4)) {
-            /* ./syntax//mmbuilder.nit:1023 */
+            /* syntax/mmbuilder.nit:1023 */
             fra.me.REG[11] = NIT_NULL;
-            /* ./syntax//mmbuilder.nit:1024 */
+            /* syntax/mmbuilder.nit:1024 */
             REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AMethPropdef, ID_parser___parser_nodes___AMethPropdef)) /*cast AMethPropdef*/;
             if (UNTAG_Bool(REGB4)) {
-              /* ./syntax//mmbuilder.nit:1025 */
+              /* syntax/mmbuilder.nit:1025 */
               fra.me.REG[12] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[0])(fra.me.REG[0]);
               REGB4 = TAG_Bool(fra.me.REG[12]==NIT_NULL);
               if (UNTAG_Bool(REGB4)) {
@@ -7539,23 +7537,23 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
               fra.me.REG[12] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[12])(fra.me.REG[12]);
               fra.me.REG[11] = fra.me.REG[12];
             } else {
-              /* ./syntax//mmbuilder.nit:1026 */
+              /* syntax/mmbuilder.nit:1026 */
               REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AAttrPropdef, ID_parser___parser_nodes___AAttrPropdef)) /*cast AAttrPropdef*/;
               if (UNTAG_Bool(REGB4)) {
-               /* ./syntax//mmbuilder.nit:1027 */
+               /* syntax/mmbuilder.nit:1027 */
                fra.me.REG[12] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
                fra.me.REG[11] = fra.me.REG[12];
               } else {
-               /* ./syntax//mmbuilder.nit:1028 */
+               /* syntax/mmbuilder.nit:1028 */
                REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___ATypePropdef, ID_parser___parser_nodes___ATypePropdef)) /*cast ATypePropdef*/;
                if (UNTAG_Bool(REGB4)) {
-               /* ./syntax//mmbuilder.nit:1029 */
+               /* syntax/mmbuilder.nit:1029 */
                fra.me.REG[12] = CALL_parser___parser_nodes___ATypePropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
                fra.me.REG[11] = fra.me.REG[12];
                }
               }
             }
-            /* ./syntax//mmbuilder.nit:1031 */
+            /* syntax/mmbuilder.nit:1031 */
             REGB4 = TAG_Int(7);
             fra.me.REG[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
             if (!once_value_51) {
@@ -7604,7 +7602,7 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
             fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
             CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[11], fra.me.REG[12]);
           } else {
-            /* ./syntax//mmbuilder.nit:1032 */
+            /* syntax/mmbuilder.nit:1032 */
             REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
             if (UNTAG_Bool(REGB4)) {
               nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1032);
@@ -7613,13 +7611,13 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
             REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
             if (UNTAG_Bool(REGB4)) {
               fra.me.REG[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
-              REGB4 = CALL_mmloader___ToolContext___error_count(fra.me.REG[7])(fra.me.REG[7]);
+              REGB4 = CALL_toolcontext___ToolContext___error_count(fra.me.REG[7])(fra.me.REG[7]);
               REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB4));
               if (UNTAG_Bool(REGB3)) {
               } else {
-               /* ./../lib/standard//kernel.nit:227 */
+               /* ../lib/standard/kernel.nit:227 */
                REGB4 = TAG_Bool((REGB0)==(REGB4));
-               /* ./syntax//mmbuilder.nit:1032 */
+               /* syntax/mmbuilder.nit:1032 */
                REGB3 = REGB4;
               }
             } else {
@@ -7627,7 +7625,7 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
               REGB3 = REGB4;
             }
             if (UNTAG_Bool(REGB3)) {
-              /* ./syntax//mmbuilder.nit:1034 */
+              /* syntax/mmbuilder.nit:1034 */
               REGB3 = TAG_Int(9);
               fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
               if (!once_value_55) {
@@ -7688,7 +7686,7 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
               fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
               CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]);
             } else {
-              /* ./syntax//mmbuilder.nit:1035 */
+              /* syntax/mmbuilder.nit:1035 */
               REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
               if (UNTAG_Bool(REGB3)) {
               } else {
@@ -7745,7 +7743,7 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
                REGB3 = REGB4;
               }
               if (UNTAG_Bool(REGB3)) {
-               /* ./syntax//mmbuilder.nit:1037 */
+               /* syntax/mmbuilder.nit:1037 */
                REGB3 = TAG_Int(7);
                fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
                if (!once_value_60) {
@@ -7798,27 +7796,27 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
           }
         }
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB3 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = REGB3;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label64;
     }
   }
   label64: while(0);
   label11: while(0);
-  /* ./syntax//mmbuilder.nit:1041 */
+  /* syntax/mmbuilder.nit:1041 */
   REGB2 = TAG_Int(1);
   REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
   if (UNTAG_Bool(REGB3)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB2 = TAG_Bool((REGB1)==(REGB2));
-    /* ./syntax//mmbuilder.nit:1041 */
+    /* syntax/mmbuilder.nit:1041 */
     REGB3 = REGB2;
   }
   REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
@@ -7827,9 +7825,9 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
     REGB2 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB1));
     if (UNTAG_Bool(REGB2)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB1 = TAG_Bool((REGB3)==(REGB1));
-      /* ./syntax//mmbuilder.nit:1041 */
+      /* syntax/mmbuilder.nit:1041 */
       REGB2 = REGB1;
     }
     REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
@@ -7838,7 +7836,7 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//mmbuilder.nit:1042 */
+    /* syntax/mmbuilder.nit:1042 */
     REGB2 = TAG_Int(5);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
     if (!once_value_65) {
@@ -7876,7 +7874,7 @@ void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
   }
-  /* ./syntax//mmbuilder.nit:1044 */
+  /* syntax/mmbuilder.nit:1044 */
   fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
   REGB2 = TAG_Bool(true);
   CALL_syntax___syntax_base___MMGlobalProperty___check_visibility(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[0], fra.me.REG[4], REGB2);
@@ -7896,7 +7894,7 @@ val_t syntax___mmbuilder___AAttrPropdef___readmethod(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:1049 */
+  /* syntax/mmbuilder.nit:1049 */
   fra.me.REG[0] = ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -7913,7 +7911,7 @@ val_t syntax___mmbuilder___AAttrPropdef___writemethod(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:1050 */
+  /* syntax/mmbuilder.nit:1050 */
   fra.me.REG[0] = ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -7932,7 +7930,7 @@ val_t syntax___mmbuilder___AAttrPropdef___prop(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:1052 */
+  /* syntax/mmbuilder.nit:1052 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
@@ -7969,12 +7967,12 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:1054 */
+  /* syntax/mmbuilder.nit:1054 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:1056 */
+  /* syntax/mmbuilder.nit:1056 */
   CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:1058 */
+  /* syntax/mmbuilder.nit:1058 */
   fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -7990,7 +7988,7 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:1059 */
+    /* syntax/mmbuilder.nit:1059 */
     fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -7998,7 +7996,7 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t
     }
     fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
   } else {
-    /* ./syntax//mmbuilder.nit:1061 */
+    /* syntax/mmbuilder.nit:1061 */
     if (!once_value_1) {
       fra.me.REG[0] = BOX_NativeString("@");
       REGB0 = TAG_Int(1);
@@ -8012,21 +8010,21 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1061);
     }
-    fra.me.REG[4] = CALL_parser___lexer___Token___text(fra.me.REG[4])(fra.me.REG[4]);
+    fra.me.REG[4] = CALL_parser___parser_nodes___Token___text(fra.me.REG[4])(fra.me.REG[4]);
     fra.me.REG[4] = CALL_standard___string___String_____plus(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
     fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
     fra.me.REG[1] = fra.me.REG[4];
   }
-  /* ./syntax//mmbuilder.nit:1063 */
+  /* syntax/mmbuilder.nit:1063 */
   fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//mmbuilder.nit:1064 */
+  /* syntax/mmbuilder.nit:1064 */
   fra.me.REG[0] = NEW_MMSrcAttribute_syntax___syntax_base___MMSrcAttribute___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:1065 */
+  /* syntax/mmbuilder.nit:1065 */
   ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
-  /* ./syntax//mmbuilder.nit:1066 */
+  /* syntax/mmbuilder.nit:1066 */
   fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
   CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
-  /* ./syntax//mmbuilder.nit:1068 */
+  /* syntax/mmbuilder.nit:1068 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -8060,7 +8058,7 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:1069 */
+    /* syntax/mmbuilder.nit:1069 */
     fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -8076,19 +8074,19 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:1070 */
+      /* syntax/mmbuilder.nit:1070 */
       fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
       REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1070);
       }
-      fra.me.REG[0] = CALL_parser___lexer___Token___text(fra.me.REG[0])(fra.me.REG[0]);
+      fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
       REGB0 = TAG_Int(1);
       fra.me.REG[0] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
       fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[1] = fra.me.REG[0];
     } else {
-      /* ./syntax//mmbuilder.nit:1072 */
+      /* syntax/mmbuilder.nit:1072 */
       fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
       REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
@@ -8097,15 +8095,15 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t
       fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[1] = fra.me.REG[0];
     }
-    /* ./syntax//mmbuilder.nit:1074 */
+    /* syntax/mmbuilder.nit:1074 */
     fra.me.REG[0] = NEW_MMReadImplementationMethod_syntax___syntax_base___MMReadImplementationMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
-    /* ./syntax//mmbuilder.nit:1075 */
+    /* syntax/mmbuilder.nit:1075 */
     ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]) = fra.me.REG[0];
-    /* ./syntax//mmbuilder.nit:1076 */
+    /* syntax/mmbuilder.nit:1076 */
     fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
     CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
   }
-  /* ./syntax//mmbuilder.nit:1078 */
+  /* syntax/mmbuilder.nit:1078 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -8139,7 +8137,7 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:1079 */
+    /* syntax/mmbuilder.nit:1079 */
     fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -8155,13 +8153,13 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:1080 */
+      /* syntax/mmbuilder.nit:1080 */
       fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
       REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1080);
       }
-      fra.me.REG[0] = CALL_parser___lexer___Token___text(fra.me.REG[0])(fra.me.REG[0]);
+      fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
       REGB0 = TAG_Int(1);
       fra.me.REG[0] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
       if (!once_value_2) {
@@ -8176,13 +8174,13 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t
       fra.me.REG[5] = CALL_standard___symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
       fra.me.REG[1] = fra.me.REG[5];
     } else {
-      /* ./syntax//mmbuilder.nit:1082 */
+      /* syntax/mmbuilder.nit:1082 */
       fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
       REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1082);
       }
-      fra.me.REG[5] = CALL_parser___lexer___Token___text(fra.me.REG[5])(fra.me.REG[5]);
+      fra.me.REG[5] = CALL_parser___parser_nodes___Token___text(fra.me.REG[5])(fra.me.REG[5]);
       if (!once_value_3) {
         fra.me.REG[0] = BOX_NativeString("=");
         REGB0 = TAG_Int(1);
@@ -8195,11 +8193,11 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t
       fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[1] = fra.me.REG[0];
     }
-    /* ./syntax//mmbuilder.nit:1084 */
+    /* syntax/mmbuilder.nit:1084 */
     fra.me.REG[4] = NEW_MMWriteImplementationMethod_syntax___syntax_base___MMWriteImplementationMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
-    /* ./syntax//mmbuilder.nit:1085 */
+    /* syntax/mmbuilder.nit:1085 */
     ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]) = fra.me.REG[4];
-    /* ./syntax//mmbuilder.nit:1086 */
+    /* syntax/mmbuilder.nit:1086 */
     fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
     CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
   }
@@ -8234,54 +8232,97 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:1090 */
+  /* syntax/mmbuilder.nit:1090 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:1092 */
+  /* syntax/mmbuilder.nit:1092 */
   CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:1094 */
-  fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+  /* syntax/mmbuilder.nit:1093 */
+  fra.me.REG[1] = NIT_NULL;
+  /* syntax/mmbuilder.nit:1094 */
+  fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
+  REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+    REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       REGB1 = TAG_Bool(false);
       REGB0 = REGB1;
     } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
       REGB0 = REGB1;
     }
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:1095 */
-    fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+    /* syntax/mmbuilder.nit:1095 */
+    fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
+    REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1095);
     }
-    fra.me.REG[1] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-    /* ./syntax//mmbuilder.nit:1096 */
-    REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+    fra.me.REG[4] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
+    /* syntax/mmbuilder.nit:1096 */
+    REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+      REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         REGB1 = TAG_Bool(false);
         REGB0 = REGB1;
       } else {
-        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
         REGB0 = REGB1;
       }
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
+      fra.me.REG[1] = fra.me.REG[4];
     } else {
       goto label1;
     }
   } else {
-    /* ./syntax//mmbuilder.nit:1098 */
+    /* syntax/mmbuilder.nit:1097 */
+    fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra.me.REG[2])(fra.me.REG[2]);
+    REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* syntax/mmbuilder.nit:1098 */
+      fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra.me.REG[2])(fra.me.REG[2]);
+      REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1098);
+      }
+      fra.me.REG[4] = CALL_syntax___mmbuilder___AExpr___get_easy_stype(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
+      fra.me.REG[1] = fra.me.REG[4];
+    }
+  }
+  /* syntax/mmbuilder.nit:1101 */
+  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* syntax/mmbuilder.nit:1102 */
     REGB0 = TAG_Int(5);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_2) {
@@ -8320,22 +8361,22 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
-    /* ./syntax//mmbuilder.nit:1099 */
+    /* syntax/mmbuilder.nit:1103 */
     goto label1;
   }
-  /* ./syntax//mmbuilder.nit:1102 */
+  /* syntax/mmbuilder.nit:1106 */
   fra.me.REG[4] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:1103 */
+  /* syntax/mmbuilder.nit:1107 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
   fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
   fra.me.REG[6] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[5], fra.me.REG[1], fra.me.REG[6]);
-  /* ./syntax//mmbuilder.nit:1104 */
+  /* syntax/mmbuilder.nit:1108 */
   CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-  /* ./syntax//mmbuilder.nit:1105 */
+  /* syntax/mmbuilder.nit:1109 */
   fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[5])(fra.me.REG[5]);
-  /* ./syntax//mmbuilder.nit:1106 */
+  /* syntax/mmbuilder.nit:1110 */
   fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
   REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -8370,7 +8411,7 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_
     REGB1 = REGB2;
   }
   CALL_syntax___mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], REGB1, REGB0);
-  /* ./syntax//mmbuilder.nit:1107 */
+  /* syntax/mmbuilder.nit:1111 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
   REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -8404,16 +8445,16 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
-    /* ./syntax//mmbuilder.nit:1108 */
+    /* syntax/mmbuilder.nit:1112 */
     fra.me.REG[4] = ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]);
     REGB1 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1108);
+      nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1112);
     }
-    /* ./syntax//mmbuilder.nit:1109 */
+    /* syntax/mmbuilder.nit:1113 */
     CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-    /* ./syntax//mmbuilder.nit:1110 */
+    /* syntax/mmbuilder.nit:1114 */
     fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
     REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -8432,7 +8473,7 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_
       fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
       REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1110);
+        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1114);
       }
       fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_kwredef(fra.me.REG[6])(fra.me.REG[6]);
       REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
@@ -8490,15 +8531,31 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_
       REGB1 = REGB2;
     }
     CALL_syntax___mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], REGB1, REGB0);
-    /* ./syntax//mmbuilder.nit:1111 */
+    /* syntax/mmbuilder.nit:1115 */
     fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
     REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1111);
+    } else {
+      REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
+      if (UNTAG_Bool(REGB2)) {
+        REGB2 = TAG_Bool(false);
+        REGB1 = REGB2;
+      } else {
+        REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
+        REGB1 = REGB2;
+      }
+    }
+    REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
+    if (UNTAG_Bool(REGB1)) {
+      fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
+      REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1115);
+      }
+      CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3], fra.me.REG[4]);
     }
-    CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3], fra.me.REG[4]);
   }
-  /* ./syntax//mmbuilder.nit:1113 */
+  /* syntax/mmbuilder.nit:1117 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
   REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -8532,14 +8589,14 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
-    /* ./syntax//mmbuilder.nit:1114 */
+    /* syntax/mmbuilder.nit:1118 */
     fra.me.REG[4] = ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]);
     REGB1 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1114);
+      nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1118);
     }
-    /* ./syntax//mmbuilder.nit:1115 */
+    /* syntax/mmbuilder.nit:1119 */
     REGB1 = TAG_Int(0);
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
     if (!once_value_5) {
@@ -8563,7 +8620,7 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_
     fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
     fra.me.REG[6] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[6]);
     CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-    /* ./syntax//mmbuilder.nit:1117 */
+    /* syntax/mmbuilder.nit:1121 */
     fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
     REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -8578,7 +8635,7 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_
       }
     }
     if (UNTAG_Bool(REGB1)) {
-      /* ./syntax//mmbuilder.nit:1118 */
+      /* syntax/mmbuilder.nit:1122 */
       fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
       REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
@@ -8599,18 +8656,18 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_
         fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
         REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1118);
+          nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1122);
         }
         fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_visibility(fra.me.REG[6])(fra.me.REG[6]);
         REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1118);
+          nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1122);
         }
         REGB1 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[6])(fra.me.REG[6]);
         REGB0 = REGB1;
       }
     }
-    /* ./syntax//mmbuilder.nit:1120 */
+    /* syntax/mmbuilder.nit:1124 */
     fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
     REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -8629,7 +8686,7 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_
       fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
       REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1120);
+        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1124);
       }
       fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_kwredef(fra.me.REG[6])(fra.me.REG[6]);
       REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
@@ -8650,13 +8707,29 @@ void syntax___mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_
       REGB1 = REGB2;
     }
     CALL_syntax___mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], REGB1, REGB0);
-    /* ./syntax//mmbuilder.nit:1121 */
-    fra.me.REG[2] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    /* syntax/mmbuilder.nit:1125 */
+    fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
+    REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1121);
+      fra.me.REG[2] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1125);
+      }
+      CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
     }
-    CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
   }
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -8667,7 +8740,7 @@ void syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(val_t p0, val
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1125;
+  fra.me.line = 1129;
   fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -8678,15 +8751,15 @@ void syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(val_t p0, val
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:1125 */
+  /* syntax/mmbuilder.nit:1129 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:1127 */
+  /* syntax/mmbuilder.nit:1131 */
   fra.me.REG[2] = ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[2]);
   CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:1128 */
+  /* syntax/mmbuilder.nit:1132 */
   CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:1129 */
+  /* syntax/mmbuilder.nit:1133 */
   CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
   stack_frame_head = fra.me.prev;
   return;
@@ -8696,14 +8769,14 @@ val_t syntax___mmbuilder___AMethPropdef___name(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1134;
+  fra.me.line = 1138;
   fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:1134 */
+  /* syntax/mmbuilder.nit:1138 */
   fra.me.REG[0] = ATTR_syntax___mmbuilder___AMethPropdef____name(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -8714,7 +8787,7 @@ val_t syntax___mmbuilder___AMethPropdef___method(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1138;
+  fra.me.line = 1142;
   fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___method;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -8722,13 +8795,13 @@ val_t syntax___mmbuilder___AMethPropdef___method(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:1138 */
+  /* syntax/mmbuilder.nit:1142 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1138);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1142);
   }
   goto label1;
   label1: while(0);
@@ -8751,7 +8824,7 @@ void syntax___mmbuilder___AMethPropdef___accept_property_builder(val_t p0, val_t
           static val_t once_value_8; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1140;
+  fra.me.line = 1144;
   fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_builder;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -8763,12 +8836,12 @@ void syntax___mmbuilder___AMethPropdef___accept_property_builder(val_t p0, val_t
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:1140 */
+  /* syntax/mmbuilder.nit:1144 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:1142 */
+  /* syntax/mmbuilder.nit:1146 */
   CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:1144 */
+  /* syntax/mmbuilder.nit:1148 */
   fra.me.REG[1] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -8783,10 +8856,10 @@ void syntax___mmbuilder___AMethPropdef___accept_property_builder(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:1145 */
+    /* syntax/mmbuilder.nit:1149 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AInitPropdef, ID_parser___parser_nodes___AInitPropdef)) /*cast AInitPropdef*/;
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:1146 */
+      /* syntax/mmbuilder.nit:1150 */
       if (!once_value_1) {
         if (!once_value_2) {
           fra.me.REG[1] = BOX_NativeString("init");
@@ -8802,7 +8875,7 @@ void syntax___mmbuilder___AMethPropdef___accept_property_builder(val_t p0, val_t
       } else fra.me.REG[1] = once_value_1;
       fra.me.REG[1] = fra.me.REG[1];
     } else {
-      /* ./syntax//mmbuilder.nit:1148 */
+      /* syntax/mmbuilder.nit:1152 */
       if (!once_value_3) {
         if (!once_value_4) {
           fra.me.REG[4] = BOX_NativeString("main");
@@ -8820,24 +8893,24 @@ void syntax___mmbuilder___AMethPropdef___accept_property_builder(val_t p0, val_t
       fra.me.REG[1] = fra.me.REG[4];
     }
   } else {
-    /* ./syntax//mmbuilder.nit:1151 */
+    /* syntax/mmbuilder.nit:1155 */
     fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1151);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1155);
     }
     fra.me.REG[4] = CALL_syntax___syntax_base___AMethid___name(fra.me.REG[4])(fra.me.REG[4]);
     REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1151);
+      nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1155);
     }
     fra.me.REG[1] = fra.me.REG[4];
-    /* ./syntax//mmbuilder.nit:1153 */
+    /* syntax/mmbuilder.nit:1157 */
     fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1153);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1157);
     }
     fra.me.REG[4] = CALL_syntax___syntax_base___AMethid___name(fra.me.REG[4])(fra.me.REG[4]);
     if (!once_value_5) {
@@ -8867,9 +8940,9 @@ void syntax___mmbuilder___AMethPropdef___accept_property_builder(val_t p0, val_t
       }
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:1154 */
+      /* syntax/mmbuilder.nit:1158 */
       fra.me.REG[0] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
-      /* ./syntax//mmbuilder.nit:1155 */
+      /* syntax/mmbuilder.nit:1159 */
       REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -8886,7 +8959,7 @@ void syntax___mmbuilder___AMethPropdef___accept_property_builder(val_t p0, val_t
       if (UNTAG_Bool(REGB0)) {
         REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1155);
+          nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1159);
         }
         fra.me.REG[0] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]);
         REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
@@ -8894,9 +8967,9 @@ void syntax___mmbuilder___AMethPropdef___accept_property_builder(val_t p0, val_t
         REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
         if (UNTAG_Bool(REGB2)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB1 = TAG_Bool((REGB0)==(REGB1));
-          /* ./syntax//mmbuilder.nit:1155 */
+          /* syntax/mmbuilder.nit:1159 */
           REGB2 = REGB1;
         }
       } else {
@@ -8904,7 +8977,7 @@ void syntax___mmbuilder___AMethPropdef___accept_property_builder(val_t p0, val_t
         REGB2 = REGB1;
       }
       if (UNTAG_Bool(REGB2)) {
-        /* ./syntax//mmbuilder.nit:1156 */
+        /* syntax/mmbuilder.nit:1160 */
         if (!once_value_7) {
           if (!once_value_8) {
             fra.me.REG[0] = BOX_NativeString("unary -");
@@ -8923,14 +8996,14 @@ void syntax___mmbuilder___AMethPropdef___accept_property_builder(val_t p0, val_t
       }
     }
   }
-  /* ./syntax//mmbuilder.nit:1160 */
+  /* syntax/mmbuilder.nit:1164 */
   ATTR_syntax___mmbuilder___AMethPropdef____name(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:1161 */
+  /* syntax/mmbuilder.nit:1165 */
   fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[0] = NEW_MMMethSrcMethod_syntax___syntax_base___MMMethSrcMethod___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:1162 */
+  /* syntax/mmbuilder.nit:1166 */
   ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[2]) = fra.me.REG[0];
-  /* ./syntax//mmbuilder.nit:1163 */
+  /* syntax/mmbuilder.nit:1167 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
   CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -8945,7 +9018,7 @@ void syntax___mmbuilder___AMethPropdef___accept_property_verifier(val_t p0, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1166;
+  fra.me.line = 1170;
   fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_verifier;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -8957,21 +9030,21 @@ void syntax___mmbuilder___AMethPropdef___accept_property_verifier(val_t p0, val_
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:1166 */
+  /* syntax/mmbuilder.nit:1170 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:1168 */
+  /* syntax/mmbuilder.nit:1172 */
   fra.me.REG[4] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
   CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./syntax//mmbuilder.nit:1169 */
+  /* syntax/mmbuilder.nit:1173 */
   CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:1171 */
+  /* syntax/mmbuilder.nit:1175 */
   fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//mmbuilder.nit:1173 */
+  /* syntax/mmbuilder.nit:1177 */
   fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
@@ -8988,20 +9061,20 @@ void syntax___mmbuilder___AMethPropdef___accept_property_verifier(val_t p0, val_
   }
   if (UNTAG_Bool(REGB0)) {
   } else {
-    /* ./syntax//mmbuilder.nit:1176 */
+    /* syntax/mmbuilder.nit:1180 */
     fra.me.REG[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
     fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[4])(fra.me.REG[4]);
     REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1176);
+      nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1180);
     }
     CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
   }
-  /* ./syntax//mmbuilder.nit:1178 */
+  /* syntax/mmbuilder.nit:1182 */
   REGB0 = TAG_Int(1);
-  /* ./syntax//mmbuilder.nit:1179 */
+  /* syntax/mmbuilder.nit:1183 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
   REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -9020,7 +9093,7 @@ void syntax___mmbuilder___AMethPropdef___accept_property_verifier(val_t p0, val_
     fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
     REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1179);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1183);
     }
     REGB1 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
     REGB2 = TAG_Int(1);
@@ -9029,24 +9102,24 @@ void syntax___mmbuilder___AMethPropdef___accept_property_verifier(val_t p0, val_
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
   } else {
-    /* ./syntax//mmbuilder.nit:1179 */
+    /* syntax/mmbuilder.nit:1183 */
     REGB1 = TAG_Bool(false);
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//mmbuilder.nit:1180 */
+    /* syntax/mmbuilder.nit:1184 */
     fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
     REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1180);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1184);
     }
     REGB2 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
     REGB0 = REGB2;
   }
-  /* ./syntax//mmbuilder.nit:1182 */
+  /* syntax/mmbuilder.nit:1186 */
   fra.me.REG[4] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[1] = CALL_parser___parser_nodes___AMethPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
   REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
@@ -9063,7 +9136,7 @@ void syntax___mmbuilder___AMethPropdef___accept_property_verifier(val_t p0, val_
   }
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   CALL_syntax___mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], REGB2, REGB0);
-  /* ./syntax//mmbuilder.nit:1183 */
+  /* syntax/mmbuilder.nit:1187 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -9083,7 +9156,7 @@ void syntax___mmbuilder___AMethPropdef___accept_property_verifier(val_t p0, val_
     fra.me.REG[2] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1183);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1187);
     }
     CALL_syntax___mmbuilder___ASignature___check_visibility(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3], fra.me.REG[2]);
   }
@@ -9096,7 +9169,7 @@ void syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor(val_t p0, val
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1186;
+  fra.me.line = 1190;
   fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -9107,15 +9180,15 @@ void syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor(val_t p0, val
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:1186 */
+  /* syntax/mmbuilder.nit:1190 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:1188 */
+  /* syntax/mmbuilder.nit:1192 */
   fra.me.REG[2] = ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[2]);
   CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:1189 */
+  /* syntax/mmbuilder.nit:1193 */
   CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:1190 */
+  /* syntax/mmbuilder.nit:1194 */
   CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
   stack_frame_head = fra.me.prev;
   return;
@@ -9127,7 +9200,7 @@ void syntax___mmbuilder___AMainMethPropdef___process_and_check(val_t p0, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1195;
+  fra.me.line = 1199;
   fra.me.meth = LOCATE_syntax___mmbuilder___AMainMethPropdef___process_and_check;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -9140,10 +9213,10 @@ void syntax___mmbuilder___AMainMethPropdef___process_and_check(val_t p0, val_t p
   fra.me.REG[2] = p2;
   REGB0 = p3;
   REGB1 = p4;
-  /* ./syntax//mmbuilder.nit:1197 */
+  /* syntax/mmbuilder.nit:1201 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
   CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[0])(fra.me.REG[0], REGB1);
-  /* ./syntax//mmbuilder.nit:1198 */
+  /* syntax/mmbuilder.nit:1202 */
   fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
   fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
@@ -9160,7 +9233,7 @@ void syntax___mmbuilder___AExternPropdef___accept_property_verifier(val_t p0, va
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1204;
+  fra.me.line = 1208;
   fra.me.meth = LOCATE_syntax___mmbuilder___AExternPropdef___accept_property_verifier;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -9170,11 +9243,11 @@ void syntax___mmbuilder___AExternPropdef___accept_property_verifier(val_t p0, va
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:1204 */
+  /* syntax/mmbuilder.nit:1208 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//mmbuilder.nit:1206 */
+  /* syntax/mmbuilder.nit:1210 */
   CALL_SUPER_syntax___mmbuilder___AExternPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:1208 */
+  /* syntax/mmbuilder.nit:1212 */
   fra.me.REG[1] = CALL_parser___parser_nodes___AExternPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -9190,36 +9263,36 @@ void syntax___mmbuilder___AExternPropdef___accept_property_verifier(val_t p0, va
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:1209 */
+    /* syntax/mmbuilder.nit:1213 */
     fra.me.REG[1] = CALL_parser___parser_nodes___AExternPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1209);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1213);
     }
-    fra.me.REG[1] = CALL_parser___lexer___Token___text(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./syntax//mmbuilder.nit:1210 */
+    fra.me.REG[1] = CALL_parser___parser_nodes___Token___text(fra.me.REG[1])(fra.me.REG[1]);
+    /* syntax/mmbuilder.nit:1214 */
     REGB0 = TAG_Int(1);
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-    /* ./syntax//mmbuilder.nit:1210 */
+    /* syntax/mmbuilder.nit:1214 */
     REGB2 = TAG_Int(2);
-    /* ./../lib/standard//kernel.nit:237 */
+    /* ../lib/standard/kernel.nit:237 */
     REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-    /* ./syntax//mmbuilder.nit:1210 */
+    /* syntax/mmbuilder.nit:1214 */
     fra.me.REG[0] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB0, REGB2);
     fra.me.REG[1] = fra.me.REG[0];
   } else {
-    /* ./syntax//mmbuilder.nit:1212 */
+    /* syntax/mmbuilder.nit:1216 */
     fra.me.REG[0] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[0] = CALL_primitive_info___MMMethod___default_extern_name(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = fra.me.REG[0];
   }
-  /* ./syntax//mmbuilder.nit:1214 */
+  /* syntax/mmbuilder.nit:1218 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
   CALL_syntax___syntax_base___MMMethSrcMethod___extern_name__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
@@ -9231,7 +9304,7 @@ val_t syntax___mmbuilder___ATypePropdef___prop(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1219;
+  fra.me.line = 1223;
   fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___prop;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -9239,13 +9312,13 @@ val_t syntax___mmbuilder___ATypePropdef___prop(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:1219 */
+  /* syntax/mmbuilder.nit:1223 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1219);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1223);
   }
   goto label1;
   label1: while(0);
@@ -9257,7 +9330,7 @@ void syntax___mmbuilder___ATypePropdef___accept_property_builder(val_t p0, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1222;
+  fra.me.line = 1226;
   fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_builder;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -9268,20 +9341,20 @@ void syntax___mmbuilder___ATypePropdef___accept_property_builder(val_t p0, val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:1222 */
+  /* syntax/mmbuilder.nit:1226 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:1224 */
+  /* syntax/mmbuilder.nit:1228 */
   CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:1225 */
+  /* syntax/mmbuilder.nit:1229 */
   fra.me.REG[1] = CALL_parser___parser_nodes___ATypePropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:1226 */
+  /* syntax/mmbuilder.nit:1230 */
   fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[0] = NEW_MMSrcTypeProperty_syntax___syntax_base___MMSrcTypeProperty___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:1227 */
+  /* syntax/mmbuilder.nit:1231 */
   ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
-  /* ./syntax//mmbuilder.nit:1228 */
+  /* syntax/mmbuilder.nit:1232 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
   CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -9295,7 +9368,7 @@ void syntax___mmbuilder___ATypePropdef___accept_property_verifier(val_t p0, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1231;
+  fra.me.line = 1235;
   fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_verifier;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -9307,25 +9380,25 @@ void syntax___mmbuilder___ATypePropdef___accept_property_verifier(val_t p0, val_
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:1231 */
+  /* syntax/mmbuilder.nit:1235 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:1233 */
+  /* syntax/mmbuilder.nit:1237 */
   CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:1234 */
+  /* syntax/mmbuilder.nit:1238 */
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
   fra.me.REG[0] = CALL_parser___parser_nodes___ATypePropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
   fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
-  /* ./syntax//mmbuilder.nit:1235 */
+  /* syntax/mmbuilder.nit:1239 */
   fra.me.REG[0] = CALL_syntax___syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
   CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-  /* ./syntax//mmbuilder.nit:1236 */
+  /* syntax/mmbuilder.nit:1240 */
   fra.me.REG[4] = CALL_parser___parser_nodes___ATypePropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./syntax//mmbuilder.nit:1237 */
+  /* syntax/mmbuilder.nit:1241 */
   fra.me.REG[4] = CALL_syntax___syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[0] = CALL_parser___parser_nodes___ATypePropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
   REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
@@ -9350,7 +9423,7 @@ void syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor(val_t p0, val
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1240;
+  fra.me.line = 1244;
   fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -9361,15 +9434,15 @@ void syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor(val_t p0, val
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:1240 */
+  /* syntax/mmbuilder.nit:1244 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:1242 */
+  /* syntax/mmbuilder.nit:1246 */
   fra.me.REG[2] = ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[2]);
   CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:1243 */
+  /* syntax/mmbuilder.nit:1247 */
   CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:1244 */
+  /* syntax/mmbuilder.nit:1248 */
   CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
   stack_frame_head = fra.me.prev;
   return;
@@ -9380,18 +9453,18 @@ val_t syntax___mmbuilder___MethidAccumulator___name(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1251;
+  fra.me.line = 1255;
   fra.me.meth = LOCATE_syntax___mmbuilder___MethidAccumulator___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:1251 */
+  /* syntax/mmbuilder.nit:1255 */
   REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_name", LOCATE_syntax___mmbuilder, 1251);
+    nit_abort("Uninitialized attribute %s", "_name", LOCATE_syntax___mmbuilder, 1255);
   }
   fra.me.REG[0] = ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -9403,7 +9476,7 @@ void syntax___mmbuilder___MethidAccumulator___visit(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1252;
+  fra.me.line = 1256;
   fra.me.meth = LOCATE_syntax___mmbuilder___MethidAccumulator___visit;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -9414,27 +9487,27 @@ void syntax___mmbuilder___MethidAccumulator___visit(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:1254 */
+  /* syntax/mmbuilder.nit:1258 */
   REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_parser___parser_nodes___Token, ID_parser___parser_nodes___Token)) /*cast Token*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:1255 */
+    /* syntax/mmbuilder.nit:1259 */
     REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_name", LOCATE_syntax___mmbuilder, 1255);
+      nit_abort("Uninitialized attribute %s", "_name", LOCATE_syntax___mmbuilder, 1259);
     }
     fra.me.REG[2] = ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1255);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1259);
     }
-    fra.me.REG[3] = CALL_parser___lexer___Token___text(fra.me.REG[1])(fra.me.REG[1]);
+    fra.me.REG[3] = CALL_parser___parser_nodes___Token___text(fra.me.REG[1])(fra.me.REG[1]);
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   } else {
-    /* ./syntax//mmbuilder.nit:1257 */
+    /* syntax/mmbuilder.nit:1261 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1257);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1261);
     }
     CALL_parser___parser_prod___ANode___visit_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
@@ -9446,14 +9519,14 @@ val_t syntax___mmbuilder___AMethid___name(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1263;
+  fra.me.line = 1267;
   fra.me.meth = LOCATE_syntax___mmbuilder___AMethid___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:1263 */
+  /* syntax/mmbuilder.nit:1267 */
   fra.me.REG[0] = ATTR_syntax___mmbuilder___AMethid____name(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -9463,7 +9536,7 @@ void syntax___mmbuilder___AMethid___accept_property_builder(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1265;
+  fra.me.line = 1269;
   fra.me.meth = LOCATE_syntax___mmbuilder___AMethid___accept_property_builder;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -9474,18 +9547,18 @@ void syntax___mmbuilder___AMethid___accept_property_builder(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:1265 */
+  /* syntax/mmbuilder.nit:1269 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//mmbuilder.nit:1267 */
+  /* syntax/mmbuilder.nit:1271 */
   fra.me.REG[3] = NEW_MethidAccumulator_parser___parser_prod___Visitor___init();
-  /* ./syntax//mmbuilder.nit:1268 */
+  /* syntax/mmbuilder.nit:1272 */
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:1269 */
+  /* syntax/mmbuilder.nit:1273 */
   fra.me.REG[3] = CALL_syntax___mmbuilder___MethidAccumulator___name(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
   ATTR_syntax___mmbuilder___AMethid____name(fra.me.REG[2]) = fra.me.REG[3];
-  /* ./syntax//mmbuilder.nit:1270 */
+  /* syntax/mmbuilder.nit:1274 */
   CALL_SUPER_syntax___mmbuilder___AMethid___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -9499,7 +9572,7 @@ void syntax___mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t
         static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1275;
+  fra.me.line = 1279;
   fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___accept_property_verifier;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -9514,25 +9587,25 @@ void syntax___mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:1275 */
+  /* syntax/mmbuilder.nit:1279 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:1277 */
+  /* syntax/mmbuilder.nit:1281 */
   CALL_SUPER_syntax___mmbuilder___ASignature___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:1278 */
+  /* syntax/mmbuilder.nit:1282 */
   fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:1279 */
+    /* syntax/mmbuilder.nit:1283 */
     goto label1;
   } else {
-    /* ./syntax//mmbuilder.nit:1280 */
+    /* syntax/mmbuilder.nit:1284 */
     fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
     fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:1281 */
+      /* syntax/mmbuilder.nit:1285 */
       fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
       fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[1] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
@@ -9572,7 +9645,7 @@ void syntax___mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t
         REGB0 = REGB1;
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//mmbuilder.nit:1282 */
+        /* syntax/mmbuilder.nit:1286 */
         fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
         fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
         fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
@@ -9585,11 +9658,11 @@ void syntax___mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t
         } else fra.me.REG[1] = once_value_2;
         fra.me.REG[1] = fra.me.REG[1];
         CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[1]);
-        /* ./syntax//mmbuilder.nit:1283 */
+        /* syntax/mmbuilder.nit:1287 */
         goto label1;
       }
     } else {
-      /* ./syntax//mmbuilder.nit:1285 */
+      /* syntax/mmbuilder.nit:1289 */
       fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
       fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
       REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
@@ -9614,25 +9687,25 @@ void syntax___mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t
         REGB0 = REGB1;
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//mmbuilder.nit:1286 */
+        /* syntax/mmbuilder.nit:1290 */
         fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-        /* ./syntax//mmbuilder.nit:1287 */
+        /* syntax/mmbuilder.nit:1291 */
         fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
         fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[4])(fra.me.REG[4]);
-        /* ./../lib/standard//collection//array.nit:269 */
+        /* ../lib/standard/collection/array.nit:269 */
         REGB0 = TAG_Int(0);
-        /* ./../lib/standard//collection//array.nit:270 */
+        /* ../lib/standard/collection/array.nit:270 */
         REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
         }
         REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-        /* ./../lib/standard//collection//array.nit:271 */
+        /* ../lib/standard/collection/array.nit:271 */
         fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         while(1) {
-          /* ./../lib/standard//collection//array.nit:24 */
+          /* ../lib/standard/collection/array.nit:24 */
           REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
           } else {
@@ -9644,43 +9717,43 @@ void syntax___mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           if (UNTAG_Bool(REGB1)) {
-            /* ./../lib/standard//collection//array.nit:273 */
+            /* ../lib/standard/collection/array.nit:273 */
             REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
             if (UNTAG_Bool(REGB1)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-            /* ./syntax//mmbuilder.nit:1288 */
+            /* syntax/mmbuilder.nit:1292 */
             fra.me.REG[7] = CALL_syntax___mmbuilder___AParam___stype(fra.me.REG[6])(fra.me.REG[6]);
             REGB1 = TAG_Bool(fra.me.REG[7]!=NIT_NULL);
             if (UNTAG_Bool(REGB1)) {
             } else {
-              nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1288);
+              nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1292);
             }
             fra.me.REG[6] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[6])(fra.me.REG[6]);
             fra.me.REG[6] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
             fra.me.REG[6] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[7], fra.me.REG[6]);
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB1 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB0 = REGB1;
           } else {
-            /* ./../lib/standard//collection//array.nit:272 */
+            /* ../lib/standard/collection/array.nit:272 */
             goto label3;
           }
         }
         label3: while(0);
-        /* ./syntax//mmbuilder.nit:1290 */
+        /* syntax/mmbuilder.nit:1294 */
         fra.me.REG[0] = NIT_NULL;
-        /* ./syntax//mmbuilder.nit:1291 */
+        /* syntax/mmbuilder.nit:1295 */
         fra.me.REG[5] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
         REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
@@ -9696,15 +9769,15 @@ void syntax___mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t
         }
         REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
         if (UNTAG_Bool(REGB0)) {
-          /* ./syntax//mmbuilder.nit:1292 */
+          /* syntax/mmbuilder.nit:1296 */
           fra.me.REG[2] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
           REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB0)) {
-            nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1292);
+            nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1296);
           }
           fra.me.REG[2] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
           fra.me.REG[0] = fra.me.REG[2];
-          /* ./syntax//mmbuilder.nit:1293 */
+          /* syntax/mmbuilder.nit:1297 */
           REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
           if (UNTAG_Bool(REGB0)) {
           } else {
@@ -9718,21 +9791,21 @@ void syntax___mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t
             }
           }
           if (UNTAG_Bool(REGB0)) {
-            /* ./syntax//mmbuilder.nit:1294 */
+            /* syntax/mmbuilder.nit:1298 */
             fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
             REGB0 = TAG_Bool(true);
             CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
-            /* ./syntax//mmbuilder.nit:1295 */
+            /* syntax/mmbuilder.nit:1299 */
             goto label1;
           }
         }
-        /* ./syntax//mmbuilder.nit:1298 */
+        /* syntax/mmbuilder.nit:1302 */
         fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
         fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
         fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
         fra.me.REG[5] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
         CALL_syntax___mmbuilder___SignatureBuilder___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-        /* ./syntax//mmbuilder.nit:1299 */
+        /* syntax/mmbuilder.nit:1303 */
         fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
         REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[5])(fra.me.REG[5]);
         REGB1 = TAG_Int(0);
@@ -9741,38 +9814,38 @@ void syntax___mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-        /* ./syntax//mmbuilder.nit:1299 */
+        /* syntax/mmbuilder.nit:1303 */
         if (UNTAG_Bool(REGB1)) {
-          /* ./syntax//mmbuilder.nit:1300 */
+          /* syntax/mmbuilder.nit:1304 */
           fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
           fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[5])(fra.me.REG[5]);
           fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
           REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[2])(fra.me.REG[2]);
           REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
           if (UNTAG_Bool(REGB0)) {
-            nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1300);
+            nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1304);
           }
           CALL_metamodel___vararg___MMSignature___vararg_rank__eq(fra.me.REG[5])(fra.me.REG[5], REGB1);
         }
-        /* ./syntax//mmbuilder.nit:1302 */
+        /* syntax/mmbuilder.nit:1306 */
         fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
         fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[5])(fra.me.REG[5]);
-        /* ./../lib/standard//collection//array.nit:269 */
+        /* ../lib/standard/collection/array.nit:269 */
         REGB1 = TAG_Int(0);
-        /* ./../lib/standard//collection//array.nit:270 */
+        /* ../lib/standard/collection/array.nit:270 */
         REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
         }
         REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-        /* ./../lib/standard//collection//array.nit:271 */
+        /* ../lib/standard/collection/array.nit:271 */
         fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         while(1) {
-          /* ./../lib/standard//collection//array.nit:24 */
+          /* ../lib/standard/collection/array.nit:24 */
           REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
           if (UNTAG_Bool(REGB0)) {
           } else {
@@ -9784,36 +9857,36 @@ void syntax___mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           if (UNTAG_Bool(REGB0)) {
-            /* ./../lib/standard//collection//array.nit:273 */
+            /* ../lib/standard/collection/array.nit:273 */
             REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
             if (UNTAG_Bool(REGB0)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
-            /* ./syntax//mmbuilder.nit:1303 */
+            /* syntax/mmbuilder.nit:1307 */
             fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
             fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
             REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
             if (UNTAG_Bool(REGB0)) {
-              nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1303);
+              nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1307);
             }
             fra.me.REG[1] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
             fra.me.REG[0] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[0])(fra.me.REG[0]);
             fra.me.REG[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[0])(fra.me.REG[0]);
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB0 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB1 = REGB0;
           } else {
-            /* ./../lib/standard//collection//array.nit:272 */
+            /* ../lib/standard/collection/array.nit:272 */
             goto label4;
           }
         }
@@ -9833,7 +9906,7 @@ void syntax___mmbuilder___ASignature___check_visibility(val_t p0, val_t p1, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1308;
+  fra.me.line = 1312;
   fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___check_visibility;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -9845,7 +9918,7 @@ void syntax___mmbuilder___ASignature___check_visibility(val_t p0, val_t p1, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//mmbuilder.nit:1311 */
+  /* syntax/mmbuilder.nit:1315 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
   REGB1 = TAG_Int(3);
@@ -9854,16 +9927,16 @@ void syntax___mmbuilder___ASignature___check_visibility(val_t p0, val_t p1, val_
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./syntax//mmbuilder.nit:1311 */
+  /* syntax/mmbuilder.nit:1315 */
   if (UNTAG_Bool(REGB1)) {
     goto label1;
   }
-  /* ./syntax//mmbuilder.nit:1312 */
+  /* syntax/mmbuilder.nit:1316 */
   fra.me.REG[3] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___ASignature___check_visibility_2));
-  /* ./syntax//mmbuilder.nit:1315 */
+  /* syntax/mmbuilder.nit:1319 */
   fra.me.REG[3] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -9882,7 +9955,7 @@ void syntax___mmbuilder___ASignature___check_visibility(val_t p0, val_t p1, val_
     fra.me.REG[0] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
     REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1315);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1319);
     }
     CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
   }
@@ -9909,7 +9982,7 @@ void syntax___mmbuilder___ASignature___check_visibility(val_t p0, val_t p1, val_
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./syntax//mmbuilder.nit:1313 */
+    /* syntax/mmbuilder.nit:1317 */
     fra.me.REG[1] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -9928,7 +10001,7 @@ void syntax___mmbuilder___ASignature___check_visibility(val_t p0, val_t p1, val_
       fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]);
       REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1313);
+        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1317);
       }
       CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]);
     }
@@ -9941,18 +10014,18 @@ val_t syntax___mmbuilder___AParam___position(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1320;
+  fra.me.line = 1324;
   fra.me.meth = LOCATE_syntax___mmbuilder___AParam___position;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:1320 */
+  /* syntax/mmbuilder.nit:1324 */
   REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_position", LOCATE_syntax___mmbuilder, 1320);
+    nit_abort("Uninitialized attribute %s", "_position", LOCATE_syntax___mmbuilder, 1324);
   }
   REGB0 = ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -9964,7 +10037,7 @@ val_t syntax___mmbuilder___AParam___variable(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1322;
+  fra.me.line = 1326;
   fra.me.meth = LOCATE_syntax___mmbuilder___AParam___variable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -9972,13 +10045,13 @@ val_t syntax___mmbuilder___AParam___variable(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:1322 */
+  /* syntax/mmbuilder.nit:1326 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_syntax___mmbuilder___AParam____variable(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1322);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1326);
   }
   goto label1;
   label1: while(0);
@@ -9990,14 +10063,14 @@ val_t syntax___mmbuilder___AParam___stype(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1325;
+  fra.me.line = 1329;
   fra.me.meth = LOCATE_syntax___mmbuilder___AParam___stype;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:1325 */
+  /* syntax/mmbuilder.nit:1329 */
   fra.me.REG[0] = ATTR_syntax___mmbuilder___AParam____stype(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -10007,7 +10080,7 @@ void syntax___mmbuilder___AParam___stype__eq(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1325;
+  fra.me.line = 1329;
   fra.me.meth = LOCATE_syntax___mmbuilder___AParam___stype__eq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -10016,7 +10089,7 @@ void syntax___mmbuilder___AParam___stype__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:1325 */
+  /* syntax/mmbuilder.nit:1329 */
   ATTR_syntax___mmbuilder___AParam____stype(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -10031,7 +10104,7 @@ void syntax___mmbuilder___AParam___accept_property_verifier(val_t p0, val_t p1){
             static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1328;
+  fra.me.line = 1332;
   fra.me.meth = LOCATE_syntax___mmbuilder___AParam___accept_property_verifier;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -10045,38 +10118,38 @@ void syntax___mmbuilder___AParam___accept_property_verifier(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:1328 */
+  /* syntax/mmbuilder.nit:1332 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:1330 */
+  /* syntax/mmbuilder.nit:1334 */
   CALL_SUPER_syntax___mmbuilder___AParam___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:1331 */
+  /* syntax/mmbuilder.nit:1335 */
   fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:1331 */
+  /* syntax/mmbuilder.nit:1335 */
   ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[2]) = REGB0;
-  /* ./syntax//mmbuilder.nit:1332 */
+  /* syntax/mmbuilder.nit:1336 */
   fra.me.REG[1] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[0] = NEW_ParamVariable_syntax___syntax_base___ParamVariable___init(fra.me.REG[1], fra.me.REG[0]);
   ATTR_syntax___mmbuilder___AParam____variable(fra.me.REG[2]) = fra.me.REG[0];
-  /* ./syntax//mmbuilder.nit:1333 */
+  /* syntax/mmbuilder.nit:1337 */
   fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:1334 */
+  /* syntax/mmbuilder.nit:1338 */
   fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:1335 */
+  /* syntax/mmbuilder.nit:1339 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -10092,14 +10165,14 @@ void syntax___mmbuilder___AParam___accept_property_verifier(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:1336 */
+    /* syntax/mmbuilder.nit:1340 */
     fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1336);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1340);
     }
     fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-    /* ./syntax//mmbuilder.nit:1337 */
+    /* syntax/mmbuilder.nit:1341 */
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -10113,30 +10186,30 @@ void syntax___mmbuilder___AParam___accept_property_verifier(val_t p0, val_t p1){
       }
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//mmbuilder.nit:1338 */
+      /* syntax/mmbuilder.nit:1342 */
       fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
       REGB0 = TAG_Bool(true);
       CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
-      /* ./syntax//mmbuilder.nit:1339 */
+      /* syntax/mmbuilder.nit:1343 */
       goto label1;
     }
-    /* ./syntax//mmbuilder.nit:1341 */
+    /* syntax/mmbuilder.nit:1345 */
     fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
     fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./../lib/standard//collection//array.nit:269 */
+    /* ../lib/standard/collection/array.nit:269 */
     REGB0 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:270 */
+    /* ../lib/standard/collection/array.nit:270 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-    /* ./../lib/standard//collection//array.nit:271 */
+    /* ../lib/standard/collection/array.nit:271 */
     fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     while(1) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -10148,44 +10221,44 @@ void syntax___mmbuilder___AParam___accept_property_verifier(val_t p0, val_t p1){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       if (UNTAG_Bool(REGB1)) {
-        /* ./../lib/standard//collection//array.nit:273 */
+        /* ../lib/standard/collection/array.nit:273 */
         REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-        /* ./syntax//mmbuilder.nit:1342 */
+        /* syntax/mmbuilder.nit:1346 */
         CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
-        /* ./syntax//mmbuilder.nit:1343 */
+        /* syntax/mmbuilder.nit:1347 */
         REGB1 = CALL_syntax___mmbuilder___AParam___is_vararg(fra.me.REG[2])(fra.me.REG[2]);
         if (UNTAG_Bool(REGB1)) {
-          /* ./syntax//mmbuilder.nit:1344 */
+          /* syntax/mmbuilder.nit:1348 */
           fra.me.REG[6] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
           REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[6])(fra.me.REG[6]);
           REGB2 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:236 */
+          /* ../lib/standard/kernel.nit:236 */
           REGB2 = TAG_Int(-UNTAG_Int(REGB2));
-          /* ./syntax//mmbuilder.nit:1344 */
+          /* syntax/mmbuilder.nit:1348 */
           REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
           if (UNTAG_Bool(REGB3)) {
           } else {
-            /* ./../lib/standard//kernel.nit:227 */
+            /* ../lib/standard/kernel.nit:227 */
             REGB2 = TAG_Bool((REGB1)==(REGB2));
-            /* ./syntax//mmbuilder.nit:1344 */
+            /* syntax/mmbuilder.nit:1348 */
             REGB3 = REGB2;
           }
           if (UNTAG_Bool(REGB3)) {
-            /* ./syntax//mmbuilder.nit:1345 */
+            /* syntax/mmbuilder.nit:1349 */
             fra.me.REG[6] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
             REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[5])(fra.me.REG[5]);
             CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank__eq(fra.me.REG[6])(fra.me.REG[6], REGB3);
           } else {
-            /* ./syntax//mmbuilder.nit:1347 */
+            /* syntax/mmbuilder.nit:1351 */
             if (!once_value_2) {
               fra.me.REG[6] = BOX_NativeString("Error: A vararg parameter is already defined.");
               REGB3 = TAG_Int(45);
@@ -10196,26 +10269,26 @@ void syntax___mmbuilder___AParam___accept_property_verifier(val_t p0, val_t p1){
             fra.me.REG[6] = fra.me.REG[6];
             CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
           }
-          /* ./syntax//mmbuilder.nit:1349 */
+          /* syntax/mmbuilder.nit:1353 */
           fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
           fra.me.REG[0] = fra.me.REG[6];
         }
-        /* ./syntax//mmbuilder.nit:1351 */
+        /* syntax/mmbuilder.nit:1355 */
         fra.me.REG[5] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[5])(fra.me.REG[5]);
         CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB3 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB0 = REGB3;
       } else {
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         goto label3;
       }
     }
     label3: while(0);
-    /* ./syntax//mmbuilder.nit:1353 */
+    /* syntax/mmbuilder.nit:1357 */
     fra.me.REG[3] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
     fra.me.REG[3] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[3])(fra.me.REG[3]);
     CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[3])(fra.me.REG[3]);
@@ -10231,14 +10304,14 @@ val_t syntax___mmbuilder___AParam___is_vararg(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1357;
+  fra.me.line = 1361;
   fra.me.meth = LOCATE_syntax___mmbuilder___AParam___is_vararg;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:1357 */
+  /* syntax/mmbuilder.nit:1361 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_dotdotdot(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -10264,18 +10337,18 @@ val_t syntax___mmbuilder___AClosureDecl___position(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1361;
+  fra.me.line = 1365;
   fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___position;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:1361 */
+  /* syntax/mmbuilder.nit:1365 */
   REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_position", LOCATE_syntax___mmbuilder, 1361);
+    nit_abort("Uninitialized attribute %s", "_position", LOCATE_syntax___mmbuilder, 1365);
   }
   REGB0 = ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -10287,7 +10360,7 @@ val_t syntax___mmbuilder___AClosureDecl___variable(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1363;
+  fra.me.line = 1367;
   fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___variable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -10295,13 +10368,13 @@ val_t syntax___mmbuilder___AClosureDecl___variable(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//mmbuilder.nit:1363 */
+  /* syntax/mmbuilder.nit:1367 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_syntax___mmbuilder___AClosureDecl____variable(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1363);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1367);
   }
   goto label1;
   label1: while(0);
@@ -10322,7 +10395,7 @@ void syntax___mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_
         static val_t once_value_7; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1366;
+  fra.me.line = 1370;
   fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___accept_property_verifier;
   fra.me.has_broke = 0;
   fra.me.REG_size = 11;
@@ -10340,27 +10413,27 @@ void syntax___mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_
   fra.me.REG[10] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//mmbuilder.nit:1366 */
+  /* syntax/mmbuilder.nit:1370 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//mmbuilder.nit:1368 */
+  /* syntax/mmbuilder.nit:1372 */
   fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//mmbuilder.nit:1369 */
+  /* syntax/mmbuilder.nit:1373 */
   fra.me.REG[5] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
   CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-  /* ./syntax//mmbuilder.nit:1370 */
+  /* syntax/mmbuilder.nit:1374 */
   CALL_SUPER_syntax___mmbuilder___AClosureDecl___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:1371 */
+  /* syntax/mmbuilder.nit:1375 */
   fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:1372 */
+    /* syntax/mmbuilder.nit:1376 */
     goto label1;
   }
-  /* ./syntax//mmbuilder.nit:1374 */
+  /* syntax/mmbuilder.nit:1378 */
   fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:1375 */
+  /* syntax/mmbuilder.nit:1379 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -10374,17 +10447,17 @@ void syntax___mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:1376 */
+    /* syntax/mmbuilder.nit:1380 */
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
     fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
     fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
     fra.me.REG[5] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[5]);
     fra.me.REG[1] = fra.me.REG[5];
   }
-  /* ./syntax//mmbuilder.nit:1378 */
+  /* syntax/mmbuilder.nit:1382 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1378);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1382);
   }
   fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
@@ -10420,7 +10493,7 @@ void syntax___mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:1379 */
+    /* syntax/mmbuilder.nit:1383 */
     if (!once_value_2) {
       fra.me.REG[5] = BOX_NativeString("Syntax Error: A break block cannot have a return value.");
       REGB0 = TAG_Int(55);
@@ -10431,12 +10504,12 @@ void syntax___mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_
     fra.me.REG[5] = fra.me.REG[5];
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[5]);
   }
-  /* ./syntax//mmbuilder.nit:1383 */
+  /* syntax/mmbuilder.nit:1387 */
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
   fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[0] = CALL_metamodel___inheritance___MMModule___type_any(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[5], NIT_NULL, fra.me.REG[0]);
-  /* ./syntax//mmbuilder.nit:1384 */
+  /* syntax/mmbuilder.nit:1388 */
   if (!once_value_3) {
     if (!once_value_4) {
       fra.me.REG[5] = BOX_NativeString("break");
@@ -10454,17 +10527,17 @@ void syntax___mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_
   REGB0 = TAG_Bool(false);
   REGB1 = TAG_Bool(true);
   fra.me.REG[0] = NEW_MMClosure_metamodel___static_type___MMClosure___init(fra.me.REG[5], fra.me.REG[0], REGB0, REGB1);
-  /* ./syntax//mmbuilder.nit:1385 */
+  /* syntax/mmbuilder.nit:1389 */
   REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1385);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1389);
   }
   fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
-  /* ./syntax//mmbuilder.nit:1387 */
+  /* syntax/mmbuilder.nit:1391 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./syntax//mmbuilder.nit:1388 */
+  /* syntax/mmbuilder.nit:1392 */
   fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
   REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -10494,22 +10567,22 @@ void syntax___mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   fra.me.REG[1] = NEW_MMClosure_metamodel___static_type___MMClosure___init(fra.me.REG[0], fra.me.REG[1], REGB1, REGB0);
-  /* ./syntax//mmbuilder.nit:1389 */
+  /* syntax/mmbuilder.nit:1393 */
   fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -10521,18 +10594,18 @@ void syntax___mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
-      /* ./syntax//mmbuilder.nit:1390 */
+      /* syntax/mmbuilder.nit:1394 */
       fra.me.REG[8] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]);
       fra.me.REG[8] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[8])(fra.me.REG[8]);
       REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[8],fra.me.REG[0]));
@@ -10542,7 +10615,7 @@ void syntax___mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_
         REGB1 = REGB2;
       }
       if (UNTAG_Bool(REGB1)) {
-        /* ./syntax//mmbuilder.nit:1391 */
+        /* syntax/mmbuilder.nit:1395 */
         fra.me.REG[8] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
         REGB1 = TAG_Int(5);
         fra.me.REG[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
@@ -10583,38 +10656,38 @@ void syntax___mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
         fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
         CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8], fra.me.REG[9]);
-        /* ./syntax//mmbuilder.nit:1392 */
+        /* syntax/mmbuilder.nit:1396 */
         goto label1;
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label8;
     }
   }
   label8: while(0);
-  /* ./syntax//mmbuilder.nit:1395 */
+  /* syntax/mmbuilder.nit:1399 */
   CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./syntax//mmbuilder.nit:1396 */
+  /* syntax/mmbuilder.nit:1400 */
   fra.me.REG[3] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./syntax//mmbuilder.nit:1396 */
+  /* syntax/mmbuilder.nit:1400 */
   ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[2]) = REGB0;
-  /* ./syntax//mmbuilder.nit:1397 */
+  /* syntax/mmbuilder.nit:1401 */
   fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-  /* ./syntax//mmbuilder.nit:1398 */
+  /* syntax/mmbuilder.nit:1402 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[3] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
@@ -10635,7 +10708,7 @@ void syntax___mmbuilder___AType___check_visibility(val_t p0, val_t p1, val_t p2)
     static val_t once_value_4; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1403;
+  fra.me.line = 1407;
   fra.me.meth = LOCATE_syntax___mmbuilder___AType___check_visibility;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -10649,7 +10722,7 @@ void syntax___mmbuilder___AType___check_visibility(val_t p0, val_t p1, val_t p2)
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//mmbuilder.nit:1406 */
+  /* syntax/mmbuilder.nit:1410 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
   REGB1 = TAG_Int(3);
@@ -10658,15 +10731,15 @@ void syntax___mmbuilder___AType___check_visibility(val_t p0, val_t p1, val_t p2)
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./syntax//mmbuilder.nit:1406 */
+  /* syntax/mmbuilder.nit:1410 */
   if (UNTAG_Bool(REGB1)) {
     goto label1;
   }
-  /* ./syntax//mmbuilder.nit:1407 */
+  /* syntax/mmbuilder.nit:1411 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//mmbuilder.nit:1408 */
+  /* syntax/mmbuilder.nit:1412 */
   REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -10682,13 +10755,13 @@ void syntax___mmbuilder___AType___check_visibility(val_t p0, val_t p1, val_t p2)
   if (UNTAG_Bool(REGB1)) {
     goto label1;
   }
-  /* ./syntax//mmbuilder.nit:1409 */
+  /* syntax/mmbuilder.nit:1413 */
   REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1409);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1413);
   }
   fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//mmbuilder.nit:1410 */
+  /* syntax/mmbuilder.nit:1414 */
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
   REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = TAG_Int(3);
@@ -10697,11 +10770,11 @@ void syntax___mmbuilder___AType___check_visibility(val_t p0, val_t p1, val_t p2)
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:233 */
   REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
-  /* ./syntax//mmbuilder.nit:1410 */
+  /* syntax/mmbuilder.nit:1414 */
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//mmbuilder.nit:1411 */
+    /* syntax/mmbuilder.nit:1415 */
     REGB0 = TAG_Int(5);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_2) {
@@ -10738,7 +10811,7 @@ void syntax___mmbuilder___AType___check_visibility(val_t p0, val_t p1, val_t p2)
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
   }
-  /* ./syntax//mmbuilder.nit:1413 */
+  /* syntax/mmbuilder.nit:1417 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___AType___check_visibility_5));
   label1: while(0);
@@ -10761,7 +10834,7 @@ void syntax___mmbuilder___AType___check_visibility(val_t p0, val_t p1, val_t p2)
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./syntax//mmbuilder.nit:1414 */
+    /* syntax/mmbuilder.nit:1418 */
     CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]);
     stack_frame_head = fra.me.prev;
     return;
@@ -10771,7 +10844,7 @@ void syntax___mmbuilder___AExpr___accept_class_builder(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1420;
+  fra.me.line = 1424;
   fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_class_builder;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -10788,7 +10861,7 @@ void syntax___mmbuilder___AExpr___accept_property_builder(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1421;
+  fra.me.line = 1425;
   fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_property_builder;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -10805,7 +10878,7 @@ void syntax___mmbuilder___AExpr___accept_property_verifier(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1422;
+  fra.me.line = 1426;
   fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_property_verifier;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -10817,3 +10890,151 @@ void syntax___mmbuilder___AExpr___accept_property_verifier(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
+val_t syntax___mmbuilder___AExpr___get_easy_stype(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_syntax___mmbuilder;
+  fra.me.line = 1428;
+  fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___get_easy_stype;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* syntax/mmbuilder.nit:1428 */
+  fra.me.REG[1] = NIT_NULL;
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t syntax___mmbuilder___ABoolExpr___get_easy_stype(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_syntax___mmbuilder;
+  fra.me.line = 1432;
+  fra.me.meth = LOCATE_syntax___mmbuilder___ABoolExpr___get_easy_stype;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* syntax/mmbuilder.nit:1432 */
+  fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]);
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t syntax___mmbuilder___AStringExpr___get_easy_stype(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_syntax___mmbuilder;
+  fra.me.line = 1436;
+  fra.me.meth = LOCATE_syntax___mmbuilder___AStringExpr___get_easy_stype;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* syntax/mmbuilder.nit:1436 */
+  fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra.me.REG[1])(fra.me.REG[1]);
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t syntax___mmbuilder___ACharExpr___get_easy_stype(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_syntax___mmbuilder;
+  fra.me.line = 1440;
+  fra.me.meth = LOCATE_syntax___mmbuilder___ACharExpr___get_easy_stype;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* syntax/mmbuilder.nit:1440 */
+  fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_char(fra.me.REG[1])(fra.me.REG[1]);
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t syntax___mmbuilder___AIntExpr___get_easy_stype(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_syntax___mmbuilder;
+  fra.me.line = 1444;
+  fra.me.meth = LOCATE_syntax___mmbuilder___AIntExpr___get_easy_stype;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* syntax/mmbuilder.nit:1444 */
+  fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra.me.REG[1])(fra.me.REG[1]);
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t syntax___mmbuilder___AFloatExpr___get_easy_stype(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_syntax___mmbuilder;
+  fra.me.line = 1448;
+  fra.me.meth = LOCATE_syntax___mmbuilder___AFloatExpr___get_easy_stype;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* syntax/mmbuilder.nit:1448 */
+  fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_float(fra.me.REG[1])(fra.me.REG[1]);
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
+val_t syntax___mmbuilder___ANewExpr___get_easy_stype(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_syntax___mmbuilder;
+  fra.me.line = 1452;
+  fra.me.meth = LOCATE_syntax___mmbuilder___ANewExpr___get_easy_stype;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* syntax/mmbuilder.nit:1452 */
+  fra.me.REG[0] = CALL_parser___parser_nodes___ANewExpr___n_type(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[1] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
+}
index 2eb675f..af78cdd 100644 (file)
@@ -172,10 +172,11 @@ extern const int SFT_syntax___mmbuilder[];
 #define ATTR_syntax___mmbuilder___AClosureDecl____variable(recv) ATTR(recv, (SFT_syntax___mmbuilder[65] + 1))
 #define CALL_SUPER_syntax___mmbuilder___AClosureDecl___accept_property_verifier(recv) ((syntax___mmbuilder___AClosureDecl___accept_property_verifier_t)CALL((recv), (SFT_syntax___mmbuilder[66] + 0)))
 #define CALL_syntax___mmbuilder___AType___check_visibility(recv) ((syntax___mmbuilder___AType___check_visibility_t)CALL((recv), (SFT_syntax___mmbuilder[67] + 0)))
+#define CALL_syntax___mmbuilder___AExpr___get_easy_stype(recv) ((syntax___mmbuilder___AExpr___get_easy_stype_t)CALL((recv), (SFT_syntax___mmbuilder[68] + 0)))
 static const char * const LOCATE_syntax___mmbuilder___ToolContext___handle_property_conflict = "mmbuilder::ToolContext::(inheritance::MMContext::handle_property_conflict)";
 void syntax___mmbuilder___ToolContext___handle_property_conflict(val_t p0, val_t p1, val_t p2);
 typedef void (*syntax___mmbuilder___ToolContext___handle_property_conflict_t)(val_t p0, val_t p1, val_t p2);
-val_t NEW_ToolContext_mmloader___ToolContext___init();
+val_t NEW_ToolContext_toolcontext___ToolContext___init();
 static const char * const LOCATE_syntax___mmbuilder___CSHSorter___compare = "mmbuilder::CSHSorter::(sorter::AbstractSorter::compare)";
 val_t syntax___mmbuilder___CSHSorter___compare(val_t p0, val_t p1, val_t p2);
 typedef val_t (*syntax___mmbuilder___CSHSorter___compare_t)(val_t p0, val_t p1, val_t p2);
@@ -366,7 +367,7 @@ typedef void (*syntax___mmbuilder___ANode___accept_property_builder_t)(val_t p0,
 static const char * const LOCATE_syntax___mmbuilder___ANode___accept_property_verifier = "mmbuilder::ANode::accept_property_verifier";
 void syntax___mmbuilder___ANode___accept_property_verifier(val_t p0, val_t p1);
 typedef void (*syntax___mmbuilder___ANode___accept_property_verifier_t)(val_t p0, val_t p1);
-val_t NEW_ANode_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANode_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AModule___import_super_modules = "mmbuilder::AModule::import_super_modules";
 void syntax___mmbuilder___AModule___import_super_modules(val_t p0, val_t p1, val_t p2);
 typedef void (*syntax___mmbuilder___AModule___import_super_modules_t)(val_t p0, val_t p1, val_t p2);
@@ -375,20 +376,20 @@ typedef void (*syntax___mmbuilder___AModule___import_super_modules_t)(val_t p0,
   typedef void (*OC_syntax___mmbuilder___AModule___import_super_modules_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_AModule_parser___parser_prod___AModule___empty_init();
 val_t NEW_AModule_parser___parser_prod___AModule___init_amodule(val_t p0, val_t p1, val_t p2);
-val_t NEW_AModule_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AModule_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AModuledecl___accept_class_builder = "mmbuilder::AModuledecl::(mmbuilder::ANode::accept_class_builder)";
 void syntax___mmbuilder___AModuledecl___accept_class_builder(val_t p0, val_t p1);
 typedef void (*syntax___mmbuilder___AModuledecl___accept_class_builder_t)(val_t p0, val_t p1);
 val_t NEW_AModuledecl_parser___parser_prod___AModuledecl___empty_init();
 val_t NEW_AModuledecl_parser___parser_prod___AModuledecl___init_amoduledecl(val_t p0, val_t p1, val_t p2);
-val_t NEW_AModuledecl_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AModuledecl_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AImport___module_name = "mmbuilder::AImport::module_name";
 val_t syntax___mmbuilder___AImport___module_name(val_t p0);
 typedef val_t (*syntax___mmbuilder___AImport___module_name_t)(val_t p0);
 static const char * const LOCATE_syntax___mmbuilder___AImport___visibility_level = "mmbuilder::AImport::visibility_level";
 val_t syntax___mmbuilder___AImport___visibility_level(val_t p0);
 typedef val_t (*syntax___mmbuilder___AImport___visibility_level_t)(val_t p0);
-val_t NEW_AImport_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AImport_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AStdImport___module_name = "mmbuilder::AStdImport::(mmbuilder::AImport::module_name)";
 val_t syntax___mmbuilder___AStdImport___module_name(val_t p0);
 typedef val_t (*syntax___mmbuilder___AStdImport___module_name_t)(val_t p0);
@@ -397,41 +398,41 @@ val_t syntax___mmbuilder___AStdImport___visibility_level(val_t p0);
 typedef val_t (*syntax___mmbuilder___AStdImport___visibility_level_t)(val_t p0);
 val_t NEW_AStdImport_parser___parser_prod___AStdImport___empty_init();
 val_t NEW_AStdImport_parser___parser_prod___AStdImport___init_astdimport(val_t p0, val_t p1, val_t p2);
-val_t NEW_AStdImport_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStdImport_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___ANoImport___module_name = "mmbuilder::ANoImport::(mmbuilder::AImport::module_name)";
 val_t syntax___mmbuilder___ANoImport___module_name(val_t p0);
 typedef val_t (*syntax___mmbuilder___ANoImport___module_name_t)(val_t p0);
 val_t NEW_ANoImport_parser___parser_prod___ANoImport___empty_init();
 val_t NEW_ANoImport_parser___parser_prod___ANoImport___init_anoimport(val_t p0, val_t p1, val_t p2);
-val_t NEW_ANoImport_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANoImport_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AVisibility___level = "mmbuilder::AVisibility::level";
 val_t syntax___mmbuilder___AVisibility___level(val_t p0);
 typedef val_t (*syntax___mmbuilder___AVisibility___level_t)(val_t p0);
-val_t NEW_AVisibility_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AVisibility_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___APublicVisibility___level = "mmbuilder::APublicVisibility::(mmbuilder::AVisibility::level)";
 val_t syntax___mmbuilder___APublicVisibility___level(val_t p0);
 typedef val_t (*syntax___mmbuilder___APublicVisibility___level_t)(val_t p0);
 val_t NEW_APublicVisibility_parser___parser_prod___APublicVisibility___empty_init();
 val_t NEW_APublicVisibility_parser___parser_prod___APublicVisibility___init_apublicvisibility();
-val_t NEW_APublicVisibility_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_APublicVisibility_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AProtectedVisibility___level = "mmbuilder::AProtectedVisibility::(mmbuilder::AVisibility::level)";
 val_t syntax___mmbuilder___AProtectedVisibility___level(val_t p0);
 typedef val_t (*syntax___mmbuilder___AProtectedVisibility___level_t)(val_t p0);
 val_t NEW_AProtectedVisibility_parser___parser_prod___AProtectedVisibility___empty_init();
 val_t NEW_AProtectedVisibility_parser___parser_prod___AProtectedVisibility___init_aprotectedvisibility(val_t p0);
-val_t NEW_AProtectedVisibility_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AProtectedVisibility_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___APrivateVisibility___level = "mmbuilder::APrivateVisibility::(mmbuilder::AVisibility::level)";
 val_t syntax___mmbuilder___APrivateVisibility___level(val_t p0);
 typedef val_t (*syntax___mmbuilder___APrivateVisibility___level_t)(val_t p0);
 val_t NEW_APrivateVisibility_parser___parser_prod___APrivateVisibility___empty_init();
 val_t NEW_APrivateVisibility_parser___parser_prod___APrivateVisibility___init_aprivatevisibility(val_t p0);
-val_t NEW_APrivateVisibility_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_APrivateVisibility_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AIntrudeVisibility___level = "mmbuilder::AIntrudeVisibility::(mmbuilder::AVisibility::level)";
 val_t syntax___mmbuilder___AIntrudeVisibility___level(val_t p0);
 typedef val_t (*syntax___mmbuilder___AIntrudeVisibility___level_t)(val_t p0);
 val_t NEW_AIntrudeVisibility_parser___parser_prod___AIntrudeVisibility___empty_init();
 val_t NEW_AIntrudeVisibility_parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t p0);
-val_t NEW_AIntrudeVisibility_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIntrudeVisibility_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AClassdef___local_class = "mmbuilder::AClassdef::(syntax_base::AClassdef::local_class)";
 val_t syntax___mmbuilder___AClassdef___local_class(val_t p0);
 typedef val_t (*syntax___mmbuilder___AClassdef___local_class_t)(val_t p0);
@@ -459,7 +460,7 @@ typedef void (*syntax___mmbuilder___AClassdef___accept_class_verifier_t)(val_t p
 static const char * const LOCATE_syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor = "mmbuilder::AClassdef::(syntax_base::ANode::accept_abs_syntax_visitor)";
 void syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor(val_t p0, val_t p1);
 typedef void (*syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor_t)(val_t p0, val_t p1);
-val_t NEW_AClassdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AClassdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AClasskind___is_interface = "mmbuilder::AClasskind::is_interface";
 val_t syntax___mmbuilder___AClasskind___is_interface(val_t p0);
 typedef val_t (*syntax___mmbuilder___AClasskind___is_interface_t)(val_t p0);
@@ -472,31 +473,31 @@ typedef val_t (*syntax___mmbuilder___AClasskind___is_abstract_t)(val_t p0);
 static const char * const LOCATE_syntax___mmbuilder___AClasskind___is_extern = "mmbuilder::AClasskind::is_extern";
 val_t syntax___mmbuilder___AClasskind___is_extern(val_t p0);
 typedef val_t (*syntax___mmbuilder___AClasskind___is_extern_t)(val_t p0);
-val_t NEW_AClasskind_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AClasskind_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AInterfaceClasskind___is_interface = "mmbuilder::AInterfaceClasskind::(mmbuilder::AClasskind::is_interface)";
 val_t syntax___mmbuilder___AInterfaceClasskind___is_interface(val_t p0);
 typedef val_t (*syntax___mmbuilder___AInterfaceClasskind___is_interface_t)(val_t p0);
 val_t NEW_AInterfaceClasskind_parser___parser_prod___AInterfaceClasskind___empty_init();
 val_t NEW_AInterfaceClasskind_parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t p0);
-val_t NEW_AInterfaceClasskind_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AInterfaceClasskind_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AEnumClasskind___is_enum = "mmbuilder::AEnumClasskind::(mmbuilder::AClasskind::is_enum)";
 val_t syntax___mmbuilder___AEnumClasskind___is_enum(val_t p0);
 typedef val_t (*syntax___mmbuilder___AEnumClasskind___is_enum_t)(val_t p0);
 val_t NEW_AEnumClasskind_parser___parser_prod___AEnumClasskind___empty_init();
 val_t NEW_AEnumClasskind_parser___parser_prod___AEnumClasskind___init_aenumclasskind(val_t p0);
-val_t NEW_AEnumClasskind_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AEnumClasskind_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AExternClasskind___is_extern = "mmbuilder::AExternClasskind::(mmbuilder::AClasskind::is_extern)";
 val_t syntax___mmbuilder___AExternClasskind___is_extern(val_t p0);
 typedef val_t (*syntax___mmbuilder___AExternClasskind___is_extern_t)(val_t p0);
 val_t NEW_AExternClasskind_parser___parser_prod___AExternClasskind___empty_init();
 val_t NEW_AExternClasskind_parser___parser_prod___AExternClasskind___init_aexternclasskind(val_t p0);
-val_t NEW_AExternClasskind_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AExternClasskind_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AAbstractClasskind___is_abstract = "mmbuilder::AAbstractClasskind::(mmbuilder::AClasskind::is_abstract)";
 val_t syntax___mmbuilder___AAbstractClasskind___is_abstract(val_t p0);
 typedef val_t (*syntax___mmbuilder___AAbstractClasskind___is_abstract_t)(val_t p0);
 val_t NEW_AAbstractClasskind_parser___parser_prod___AAbstractClasskind___empty_init();
 val_t NEW_AAbstractClasskind_parser___parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t p0, val_t p1);
-val_t NEW_AAbstractClasskind_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAbstractClasskind_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AStdClassdef___name = "mmbuilder::AStdClassdef::(mmbuilder::AClassdef::name)";
 val_t syntax___mmbuilder___AStdClassdef___name(val_t p0);
 typedef val_t (*syntax___mmbuilder___AStdClassdef___name_t)(val_t p0);
@@ -513,20 +514,20 @@ static const char * const LOCATE_syntax___mmbuilder___AStdClassdef___visibility_
 val_t syntax___mmbuilder___AStdClassdef___visibility_level(val_t p0);
 typedef val_t (*syntax___mmbuilder___AStdClassdef___visibility_level_t)(val_t p0);
 val_t NEW_AStdClassdef_parser___parser_prod___AStdClassdef___empty_init();
-val_t NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7);
-val_t NEW_AStdClassdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStdClassdef_parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8);
+val_t NEW_AStdClassdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AMainClassdef___name = "mmbuilder::AMainClassdef::(mmbuilder::AClassdef::name)";
 val_t syntax___mmbuilder___AMainClassdef___name(val_t p0);
 typedef val_t (*syntax___mmbuilder___AMainClassdef___name_t)(val_t p0);
 val_t NEW_AMainClassdef_parser___parser_prod___AMainClassdef___empty_init();
 val_t NEW_AMainClassdef_parser___parser_prod___AMainClassdef___init_amainclassdef(val_t p0);
-val_t NEW_AMainClassdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMainClassdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___ATopClassdef___name = "mmbuilder::ATopClassdef::(mmbuilder::AClassdef::name)";
 val_t syntax___mmbuilder___ATopClassdef___name(val_t p0);
 typedef val_t (*syntax___mmbuilder___ATopClassdef___name_t)(val_t p0);
 val_t NEW_ATopClassdef_parser___parser_prod___ATopClassdef___empty_init();
 val_t NEW_ATopClassdef_parser___parser_prod___ATopClassdef___init_atopclassdef(val_t p0);
-val_t NEW_ATopClassdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ATopClassdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AFormaldef___accept_class_builder = "mmbuilder::AFormaldef::(mmbuilder::ANode::accept_class_builder)";
 void syntax___mmbuilder___AFormaldef___accept_class_builder(val_t p0, val_t p1);
 typedef void (*syntax___mmbuilder___AFormaldef___accept_class_builder_t)(val_t p0, val_t p1);
@@ -535,7 +536,7 @@ void syntax___mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1)
 typedef void (*syntax___mmbuilder___AFormaldef___accept_class_verifier_t)(val_t p0, val_t p1);
 val_t NEW_AFormaldef_parser___parser_prod___AFormaldef___empty_init();
 val_t NEW_AFormaldef_parser___parser_prod___AFormaldef___init_aformaldef(val_t p0, val_t p1);
-val_t NEW_AFormaldef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AFormaldef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___ASuperclass___ancestor = "mmbuilder::ASuperclass::ancestor";
 val_t syntax___mmbuilder___ASuperclass___ancestor(val_t p0);
 typedef val_t (*syntax___mmbuilder___ASuperclass___ancestor_t)(val_t p0);
@@ -550,7 +551,7 @@ void syntax___mmbuilder___ASuperclass___accept_class_verifier(val_t p0, val_t p1
 typedef void (*syntax___mmbuilder___ASuperclass___accept_class_verifier_t)(val_t p0, val_t p1);
 val_t NEW_ASuperclass_parser___parser_prod___ASuperclass___empty_init();
 val_t NEW_ASuperclass_parser___parser_prod___ASuperclass___init_asuperclass(val_t p0, val_t p1, val_t p2);
-val_t NEW_ASuperclass_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASuperclass_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___APropdef___process_and_check = "mmbuilder::APropdef::process_and_check";
 void syntax___mmbuilder___APropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 typedef void (*syntax___mmbuilder___APropdef___process_and_check_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
@@ -563,7 +564,7 @@ typedef void (*syntax___mmbuilder___APropdef___inherit_signature_t)(val_t p0, va
 static const char * const LOCATE_syntax___mmbuilder___APropdef___do_and_check_redef = "mmbuilder::APropdef::do_and_check_redef";
 void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 typedef void (*syntax___mmbuilder___APropdef___do_and_check_redef_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-val_t NEW_APropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_APropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AAttrPropdef___readmethod = "mmbuilder::AAttrPropdef::(syntax_base::AAttrPropdef::readmethod)";
 val_t syntax___mmbuilder___AAttrPropdef___readmethod(val_t p0);
 typedef val_t (*syntax___mmbuilder___AAttrPropdef___readmethod_t)(val_t p0);
@@ -584,7 +585,7 @@ void syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(val_t p0, val
 typedef void (*syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor_t)(val_t p0, val_t p1);
 val_t NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___empty_init();
 val_t NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, val_t p9);
-val_t NEW_AAttrPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAttrPropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AMethPropdef___name = "mmbuilder::AMethPropdef::name";
 val_t syntax___mmbuilder___AMethPropdef___name(val_t p0);
 typedef val_t (*syntax___mmbuilder___AMethPropdef___name_t)(val_t p0);
@@ -602,21 +603,21 @@ void syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor(val_t p0, val
 typedef void (*syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor_t)(val_t p0, val_t p1);
 val_t NEW_AMethPropdef_parser___parser_prod___AMethPropdef___empty_init();
 val_t NEW_AMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-val_t NEW_AMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMethPropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AMainMethPropdef___process_and_check = "mmbuilder::AMainMethPropdef::(mmbuilder::APropdef::process_and_check)";
 void syntax___mmbuilder___AMainMethPropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 typedef void (*syntax___mmbuilder___AMainMethPropdef___process_and_check_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 val_t NEW_AMainMethPropdef_parser___parser_prod___AConcreteMethPropdef___empty_init();
 val_t NEW_AMainMethPropdef_parser___parser_prod___AMainMethPropdef___empty_init();
 val_t NEW_AMainMethPropdef_parser___parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t p0, val_t p1);
-val_t NEW_AMainMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMainMethPropdef_parser___parser_nodes___ANode___init();
 val_t NEW_AMainMethPropdef_parser___parser_prod___AMethPropdef___empty_init();
 val_t NEW_AMainMethPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
 val_t NEW_AMainMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_syntax___mmbuilder___AExternPropdef___accept_property_verifier = "mmbuilder::AExternPropdef::(mmbuilder::ANode::accept_property_verifier)";
 void syntax___mmbuilder___AExternPropdef___accept_property_verifier(val_t p0, val_t p1);
 typedef void (*syntax___mmbuilder___AExternPropdef___accept_property_verifier_t)(val_t p0, val_t p1);
-val_t NEW_AExternPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AExternPropdef_parser___parser_nodes___ANode___init();
 val_t NEW_AExternPropdef_parser___parser_prod___AMethPropdef___empty_init();
 val_t NEW_AExternPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_syntax___mmbuilder___ATypePropdef___prop = "mmbuilder::ATypePropdef::(syntax_base::ATypePropdef::prop)";
@@ -633,7 +634,7 @@ void syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor(val_t p0, val
 typedef void (*syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor_t)(val_t p0, val_t p1);
 val_t NEW_ATypePropdef_parser___parser_prod___ATypePropdef___empty_init();
 val_t NEW_ATypePropdef_parser___parser_prod___ATypePropdef___init_atypepropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
-val_t NEW_ATypePropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ATypePropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___MethidAccumulator___name = "mmbuilder::MethidAccumulator::name";
 val_t syntax___mmbuilder___MethidAccumulator___name(val_t p0);
 typedef val_t (*syntax___mmbuilder___MethidAccumulator___name_t)(val_t p0);
@@ -647,7 +648,7 @@ typedef val_t (*syntax___mmbuilder___AMethid___name_t)(val_t p0);
 static const char * const LOCATE_syntax___mmbuilder___AMethid___accept_property_builder = "mmbuilder::AMethid::(mmbuilder::ANode::accept_property_builder)";
 void syntax___mmbuilder___AMethid___accept_property_builder(val_t p0, val_t p1);
 typedef void (*syntax___mmbuilder___AMethid___accept_property_builder_t)(val_t p0, val_t p1);
-val_t NEW_AMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMethid_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___ASignature___accept_property_verifier = "mmbuilder::ASignature::(mmbuilder::ANode::accept_property_verifier)";
 void syntax___mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t p1);
 typedef void (*syntax___mmbuilder___ASignature___accept_property_verifier_t)(val_t p0, val_t p1);
@@ -658,8 +659,8 @@ typedef void (*syntax___mmbuilder___ASignature___check_visibility_t)(val_t p0, v
   void OC_syntax___mmbuilder___ASignature___check_visibility_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_syntax___mmbuilder___ASignature___check_visibility_2_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_ASignature_parser___parser_prod___ASignature___empty_init();
-val_t NEW_ASignature_parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2);
-val_t NEW_ASignature_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASignature_parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+val_t NEW_ASignature_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AParam___position = "mmbuilder::AParam::(syntax_base::AParam::position)";
 val_t syntax___mmbuilder___AParam___position(val_t p0);
 typedef val_t (*syntax___mmbuilder___AParam___position_t)(val_t p0);
@@ -680,7 +681,7 @@ val_t syntax___mmbuilder___AParam___is_vararg(val_t p0);
 typedef val_t (*syntax___mmbuilder___AParam___is_vararg_t)(val_t p0);
 val_t NEW_AParam_parser___parser_prod___AParam___empty_init();
 val_t NEW_AParam_parser___parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2);
-val_t NEW_AParam_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AParam_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AClosureDecl___position = "mmbuilder::AClosureDecl::(syntax_base::AClosureDecl::position)";
 val_t syntax___mmbuilder___AClosureDecl___position(val_t p0);
 typedef val_t (*syntax___mmbuilder___AClosureDecl___position_t)(val_t p0);
@@ -692,7 +693,7 @@ void syntax___mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_
 typedef void (*syntax___mmbuilder___AClosureDecl___accept_property_verifier_t)(val_t p0, val_t p1);
 val_t NEW_AClosureDecl_parser___parser_prod___AClosureDecl___empty_init();
 val_t NEW_AClosureDecl_parser___parser_prod___AClosureDecl___init_aclosuredecl(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-val_t NEW_AClosureDecl_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AClosureDecl_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AType___check_visibility = "mmbuilder::AType::check_visibility";
 void syntax___mmbuilder___AType___check_visibility(val_t p0, val_t p1, val_t p2);
 typedef void (*syntax___mmbuilder___AType___check_visibility_t)(val_t p0, val_t p1, val_t p2);
@@ -701,7 +702,7 @@ typedef void (*syntax___mmbuilder___AType___check_visibility_t)(val_t p0, val_t
   typedef void (*OC_syntax___mmbuilder___AType___check_visibility_5_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_AType_parser___parser_prod___AType___empty_init();
 val_t NEW_AType_parser___parser_prod___AType___init_atype(val_t p0, val_t p1, val_t p2);
-val_t NEW_AType_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AType_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___mmbuilder___AExpr___accept_class_builder = "mmbuilder::AExpr::(mmbuilder::ANode::accept_class_builder)";
 void syntax___mmbuilder___AExpr___accept_class_builder(val_t p0, val_t p1);
 typedef void (*syntax___mmbuilder___AExpr___accept_class_builder_t)(val_t p0, val_t p1);
@@ -711,5 +712,42 @@ typedef void (*syntax___mmbuilder___AExpr___accept_property_builder_t)(val_t p0,
 static const char * const LOCATE_syntax___mmbuilder___AExpr___accept_property_verifier = "mmbuilder::AExpr::(mmbuilder::ANode::accept_property_verifier)";
 void syntax___mmbuilder___AExpr___accept_property_verifier(val_t p0, val_t p1);
 typedef void (*syntax___mmbuilder___AExpr___accept_property_verifier_t)(val_t p0, val_t p1);
-val_t NEW_AExpr_parser___parser_nodes___ANode___init(val_t p0);
+static const char * const LOCATE_syntax___mmbuilder___AExpr___get_easy_stype = "mmbuilder::AExpr::get_easy_stype";
+val_t syntax___mmbuilder___AExpr___get_easy_stype(val_t p0, val_t p1);
+typedef val_t (*syntax___mmbuilder___AExpr___get_easy_stype_t)(val_t p0, val_t p1);
+val_t NEW_AExpr_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_syntax___mmbuilder___ABoolExpr___get_easy_stype = "mmbuilder::ABoolExpr::(mmbuilder::AExpr::get_easy_stype)";
+val_t syntax___mmbuilder___ABoolExpr___get_easy_stype(val_t p0, val_t p1);
+typedef val_t (*syntax___mmbuilder___ABoolExpr___get_easy_stype_t)(val_t p0, val_t p1);
+val_t NEW_ABoolExpr_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_syntax___mmbuilder___AStringExpr___get_easy_stype = "mmbuilder::AStringExpr::(mmbuilder::AExpr::get_easy_stype)";
+val_t syntax___mmbuilder___AStringExpr___get_easy_stype(val_t p0, val_t p1);
+typedef val_t (*syntax___mmbuilder___AStringExpr___get_easy_stype_t)(val_t p0, val_t p1);
+val_t NEW_AStringExpr_parser___parser_prod___AStringExpr___empty_init();
+val_t NEW_AStringExpr_parser___parser_prod___AStringExpr___init_astringexpr(val_t p0);
+val_t NEW_AStringExpr_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_syntax___mmbuilder___ACharExpr___get_easy_stype = "mmbuilder::ACharExpr::(mmbuilder::AExpr::get_easy_stype)";
+val_t syntax___mmbuilder___ACharExpr___get_easy_stype(val_t p0, val_t p1);
+typedef val_t (*syntax___mmbuilder___ACharExpr___get_easy_stype_t)(val_t p0, val_t p1);
+val_t NEW_ACharExpr_parser___parser_prod___ACharExpr___empty_init();
+val_t NEW_ACharExpr_parser___parser_prod___ACharExpr___init_acharexpr(val_t p0);
+val_t NEW_ACharExpr_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_syntax___mmbuilder___AIntExpr___get_easy_stype = "mmbuilder::AIntExpr::(mmbuilder::AExpr::get_easy_stype)";
+val_t syntax___mmbuilder___AIntExpr___get_easy_stype(val_t p0, val_t p1);
+typedef val_t (*syntax___mmbuilder___AIntExpr___get_easy_stype_t)(val_t p0, val_t p1);
+val_t NEW_AIntExpr_parser___parser_prod___AIntExpr___empty_init();
+val_t NEW_AIntExpr_parser___parser_prod___AIntExpr___init_aintexpr(val_t p0);
+val_t NEW_AIntExpr_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_syntax___mmbuilder___AFloatExpr___get_easy_stype = "mmbuilder::AFloatExpr::(mmbuilder::AExpr::get_easy_stype)";
+val_t syntax___mmbuilder___AFloatExpr___get_easy_stype(val_t p0, val_t p1);
+typedef val_t (*syntax___mmbuilder___AFloatExpr___get_easy_stype_t)(val_t p0, val_t p1);
+val_t NEW_AFloatExpr_parser___parser_prod___AFloatExpr___empty_init();
+val_t NEW_AFloatExpr_parser___parser_prod___AFloatExpr___init_afloatexpr(val_t p0);
+val_t NEW_AFloatExpr_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_syntax___mmbuilder___ANewExpr___get_easy_stype = "mmbuilder::ANewExpr::(mmbuilder::AExpr::get_easy_stype)";
+val_t syntax___mmbuilder___ANewExpr___get_easy_stype(val_t p0, val_t p1);
+typedef val_t (*syntax___mmbuilder___ANewExpr___get_easy_stype_t)(val_t p0, val_t p1);
+val_t NEW_ANewExpr_parser___parser_prod___ANewExpr___empty_init();
+val_t NEW_ANewExpr_parser___parser_prod___ANewExpr___init_anewexpr(val_t p0, val_t p1, val_t p2, val_t p3);
+val_t NEW_ANewExpr_parser___parser_nodes___ANode___init();
 #endif
index bd5daa0..a7d215b 100644 (file)
@@ -19,25 +19,25 @@ val_t syntax___scope___ScopeContext_____bra(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//scope.nit:48 */
+  /* syntax/scope.nit:48 */
   REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_stack", LOCATE_syntax___scope, 48);
   }
   fra.me.REG[2] = ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./syntax//scope.nit:48 */
+  /* syntax/scope.nit:48 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./syntax//scope.nit:49 */
+  /* syntax/scope.nit:49 */
   while(1) {
     REGB0 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
@@ -45,29 +45,29 @@ val_t syntax___scope___ScopeContext_____bra(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
-    /* ./syntax//scope.nit:49 */
+    /* syntax/scope.nit:49 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//scope.nit:50 */
+      /* syntax/scope.nit:50 */
       REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_stack", LOCATE_syntax___scope, 50);
       }
       fra.me.REG[2] = ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0]);
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       REGB0 = REGB1;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB2 = TAG_Int(0);
       REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB3)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB2)) {
         REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
@@ -80,31 +80,31 @@ val_t syntax___scope___ScopeContext_____bra(val_t p0, val_t p1){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB3 = TAG_Bool(false);
         REGB2 = REGB3;
       }
       if (UNTAG_Bool(REGB2)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
       REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label1;
       label1: while(0);
-      /* ./syntax//scope.nit:51 */
+      /* syntax/scope.nit:51 */
       fra.me.REG[2] = CALL_syntax___scope___ScopeBlock___get_variable(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-      /* ./syntax//scope.nit:52 */
+      /* syntax/scope.nit:52 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -121,19 +121,19 @@ val_t syntax___scope___ScopeContext_____bra(val_t p0, val_t p1){
       if (UNTAG_Bool(REGB0)) {
         goto label2;
       }
-      /* ./syntax//scope.nit:53 */
+      /* syntax/scope.nit:53 */
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
-      /* ./syntax//scope.nit:53 */
+      /* syntax/scope.nit:53 */
       REGB1 = REGB0;
     } else {
-      /* ./syntax//scope.nit:49 */
+      /* syntax/scope.nit:49 */
       goto label3;
     }
   }
   label3: while(0);
-  /* ./syntax//scope.nit:55 */
+  /* syntax/scope.nit:55 */
   fra.me.REG[2] = NIT_NULL;
   goto label2;
   label2: while(0);
@@ -164,10 +164,10 @@ void syntax___scope___ScopeContext___add_variable(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//scope.nit:62 */
+  /* syntax/scope.nit:62 */
   fra.me.REG[2] = CALL_syntax___syntax_base___Variable___name(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_syntax___scope___ScopeContext_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./syntax//scope.nit:63 */
+  /* syntax/scope.nit:63 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -182,7 +182,7 @@ void syntax___scope___ScopeContext___add_variable(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//scope.nit:64 */
+    /* syntax/scope.nit:64 */
     REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____visitor(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -242,7 +242,7 @@ void syntax___scope___ScopeContext___add_variable(val_t p0, val_t p1){
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
   }
-  /* ./syntax//scope.nit:66 */
+  /* syntax/scope.nit:66 */
   REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -255,7 +255,7 @@ void syntax___scope___ScopeContext___add_variable(val_t p0, val_t p1){
     nit_abort("Reciever is null", NULL, LOCATE_syntax___scope, 66);
   }
   CALL_syntax___scope___ScopeBlock___add_variable(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
-  /* ./syntax//scope.nit:67 */
+  /* syntax/scope.nit:67 */
   REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____variables(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -281,9 +281,9 @@ void syntax___scope___ScopeContext___push(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//scope.nit:73 */
+  /* syntax/scope.nit:73 */
   fra.me.REG[1] = NEW_ScopeBlock_syntax___scope___ScopeBlock___init(fra.me.REG[1]);
-  /* ./syntax//scope.nit:74 */
+  /* syntax/scope.nit:74 */
   REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -323,7 +323,7 @@ void syntax___scope___ScopeContext___push_escapable(val_t p0, val_t p1, val_t p2
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//scope.nit:81 */
+  /* syntax/scope.nit:81 */
   REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -331,7 +331,7 @@ void syntax___scope___ScopeContext___push_escapable(val_t p0, val_t p1, val_t p2
   }
   fra.me.REG[3] = ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Sequence___push(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-  /* ./syntax//scope.nit:82 */
+  /* syntax/scope.nit:82 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -346,34 +346,34 @@ void syntax___scope___ScopeContext___push_escapable(val_t p0, val_t p1, val_t p2
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//scope.nit:83 */
+    /* syntax/scope.nit:83 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_syntax___scope, 83);
     }
     fra.me.REG[3] = CALL_parser___parser_nodes___ALabel___n_id(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[3] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
-    /* ./syntax//scope.nit:84 */
+    /* syntax/scope.nit:84 */
     REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____labels(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_labels", LOCATE_syntax___scope, 84);
     }
     fra.me.REG[4] = ATTR_syntax___scope___ScopeContext____labels(fra.me.REG[0]);
-    /* ./../lib/standard//collection//array.nit:269 */
+    /* ../lib/standard/collection/array.nit:269 */
     REGB0 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:270 */
+    /* ../lib/standard/collection/array.nit:270 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-    /* ./../lib/standard//collection//array.nit:271 */
+    /* ../lib/standard/collection/array.nit:271 */
     fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     while(1) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -385,18 +385,18 @@ void syntax___scope___ScopeContext___push_escapable(val_t p0, val_t p1, val_t p2
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       if (UNTAG_Bool(REGB1)) {
-        /* ./../lib/standard//collection//array.nit:273 */
+        /* ../lib/standard/collection/array.nit:273 */
         REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-        /* ./syntax//scope.nit:85 */
+        /* syntax/scope.nit:85 */
         REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[6],fra.me.REG[2]));
         if (UNTAG_Bool(REGB1)) {
         } else {
@@ -424,7 +424,7 @@ void syntax___scope___ScopeContext___push_escapable(val_t p0, val_t p1, val_t p2
           REGB1 = REGB2;
         }
         if (UNTAG_Bool(REGB1)) {
-          /* ./syntax//scope.nit:86 */
+          /* syntax/scope.nit:86 */
           fra.me.REG[7] = CALL_syntax___scope___ScopeContext___visitor(fra.me.REG[0])(fra.me.REG[0]);
           REGB1 = TAG_Int(5);
           fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
@@ -467,22 +467,22 @@ void syntax___scope___ScopeContext___push_escapable(val_t p0, val_t p1, val_t p2
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
           fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
           CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2], fra.me.REG[8]);
-          /* ./syntax//scope.nit:87 */
+          /* syntax/scope.nit:87 */
           goto label4;
         }
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB1 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB0 = REGB1;
       } else {
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         goto label5;
       }
     }
     label5: while(0);
-    /* ./syntax//scope.nit:90 */
+    /* syntax/scope.nit:90 */
     REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____labels(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -490,7 +490,7 @@ void syntax___scope___ScopeContext___push_escapable(val_t p0, val_t p1, val_t p2
     }
     fra.me.REG[0] = ATTR_syntax___scope___ScopeContext____labels(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-    /* ./syntax//scope.nit:91 */
+    /* syntax/scope.nit:91 */
     ATTR_syntax___scope___EscapableBlock____lab(fra.me.REG[1]) = fra.me.REG[3];
   }
   label4: while(0);
@@ -514,25 +514,25 @@ val_t syntax___scope___ScopeContext___head(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:98 */
+  /* syntax/scope.nit:98 */
   REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_stack", LOCATE_syntax___scope, 98);
   }
   fra.me.REG[1] = ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./syntax//scope.nit:98 */
+  /* syntax/scope.nit:98 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./syntax//scope.nit:99 */
+  /* syntax/scope.nit:99 */
   while(1) {
     REGB0 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
@@ -540,29 +540,29 @@ val_t syntax___scope___ScopeContext___head(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
-    /* ./syntax//scope.nit:99 */
+    /* syntax/scope.nit:99 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//scope.nit:100 */
+      /* syntax/scope.nit:100 */
       REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_stack", LOCATE_syntax___scope, 100);
       }
       fra.me.REG[1] = ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0]);
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       REGB0 = REGB1;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB2 = TAG_Int(0);
       REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB3)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB2)) {
         REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
@@ -575,29 +575,29 @@ val_t syntax___scope___ScopeContext___head(val_t p0){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB3 = TAG_Bool(false);
         REGB2 = REGB3;
       }
       if (UNTAG_Bool(REGB2)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
       REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label1;
       label1: while(0);
-      /* ./syntax//scope.nit:101 */
+      /* syntax/scope.nit:101 */
       REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_syntax___scope___EscapableBlock, ID_syntax___scope___EscapableBlock)) /*cast EscapableBlock*/;
       if (UNTAG_Bool(REGB0)) {
         REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_syntax___scope___BreakOnlyEscapableBlock, ID_syntax___scope___BreakOnlyEscapableBlock)) /*cast BreakOnlyEscapableBlock*/;
@@ -609,19 +609,19 @@ val_t syntax___scope___ScopeContext___head(val_t p0){
       if (UNTAG_Bool(REGB0)) {
         goto label2;
       }
-      /* ./syntax//scope.nit:102 */
+      /* syntax/scope.nit:102 */
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
-      /* ./syntax//scope.nit:102 */
+      /* syntax/scope.nit:102 */
       REGB1 = REGB0;
     } else {
-      /* ./syntax//scope.nit:99 */
+      /* syntax/scope.nit:99 */
       goto label3;
     }
   }
   label3: while(0);
-  /* ./syntax//scope.nit:104 */
+  /* syntax/scope.nit:104 */
   fra.me.REG[1] = NIT_NULL;
   goto label2;
   label2: while(0);
@@ -652,28 +652,28 @@ val_t syntax___scope___ScopeContext___get_by_label(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//scope.nit:111 */
+  /* syntax/scope.nit:111 */
   REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_stack", LOCATE_syntax___scope, 111);
   }
   fra.me.REG[2] = ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./syntax//scope.nit:111 */
+  /* syntax/scope.nit:111 */
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./syntax//scope.nit:112 */
+  /* syntax/scope.nit:112 */
   fra.me.REG[2] = CALL_parser___parser_nodes___ALabel___n_id(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//scope.nit:113 */
+  /* syntax/scope.nit:113 */
   while(1) {
     REGB0 = TAG_Int(0);
     REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
@@ -681,29 +681,29 @@ val_t syntax___scope___ScopeContext___get_by_label(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:233 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
-    /* ./syntax//scope.nit:113 */
+    /* syntax/scope.nit:113 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//scope.nit:114 */
+      /* syntax/scope.nit:114 */
       REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_stack", LOCATE_syntax___scope, 114);
       }
       fra.me.REG[3] = ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0]);
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       REGB0 = REGB1;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB2 = TAG_Int(0);
       REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB3)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB2)) {
         REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
@@ -716,29 +716,29 @@ val_t syntax___scope___ScopeContext___get_by_label(val_t p0, val_t p1){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB3 = TAG_Bool(false);
         REGB2 = REGB3;
       }
       if (UNTAG_Bool(REGB2)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
       REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label1;
       label1: while(0);
-      /* ./syntax//scope.nit:115 */
+      /* syntax/scope.nit:115 */
       REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_syntax___scope___EscapableBlock, ID_syntax___scope___EscapableBlock)) /*cast EscapableBlock*/;
       if (UNTAG_Bool(REGB0)) {
         fra.me.REG[4] = CALL_syntax___scope___EscapableBlock___lab(fra.me.REG[3])(fra.me.REG[3]);
@@ -761,19 +761,19 @@ val_t syntax___scope___ScopeContext___get_by_label(val_t p0, val_t p1){
       if (UNTAG_Bool(REGB0)) {
         goto label2;
       }
-      /* ./syntax//scope.nit:116 */
+      /* syntax/scope.nit:116 */
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
-      /* ./syntax//scope.nit:116 */
+      /* syntax/scope.nit:116 */
       REGB1 = REGB0;
     } else {
-      /* ./syntax//scope.nit:113 */
+      /* syntax/scope.nit:113 */
       goto label3;
     }
   }
   label3: while(0);
-  /* ./syntax//scope.nit:118 */
+  /* syntax/scope.nit:118 */
   fra.me.REG[0] = CALL_syntax___scope___ScopeContext___visitor(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = TAG_Int(3);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
@@ -799,7 +799,7 @@ val_t syntax___scope___ScopeContext___get_by_label(val_t p0, val_t p1){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
   CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//scope.nit:119 */
+  /* syntax/scope.nit:119 */
   fra.me.REG[3] = NIT_NULL;
   goto label2;
   label2: while(0);
@@ -819,7 +819,7 @@ void syntax___scope___ScopeContext___pop(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:125 */
+  /* syntax/scope.nit:125 */
   REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____stack(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -843,7 +843,7 @@ val_t syntax___scope___ScopeContext___visitor(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:128 */
+  /* syntax/scope.nit:128 */
   REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeContext____visitor(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -869,7 +869,7 @@ void syntax___scope___ScopeContext___init(val_t p0, val_t p1, int* init_table){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//scope.nit:131 */
+  /* syntax/scope.nit:131 */
   ATTR_syntax___scope___ScopeContext____visitor(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -888,7 +888,7 @@ val_t syntax___scope___ScopeBlock___node(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:140 */
+  /* syntax/scope.nit:140 */
   REGB0 = TAG_Bool(ATTR_syntax___scope___ScopeBlock____node(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -916,9 +916,9 @@ void syntax___scope___ScopeBlock___add_variable(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//scope.nit:149 */
+  /* syntax/scope.nit:149 */
   fra.me.REG[2] = ATTR_syntax___scope___ScopeBlock____dico(fra.me.REG[0]);
-  /* ./syntax//scope.nit:150 */
+  /* syntax/scope.nit:150 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -932,13 +932,13 @@ void syntax___scope___ScopeBlock___add_variable(val_t p0, val_t p1){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//scope.nit:151 */
+    /* syntax/scope.nit:151 */
     fra.me.REG[3] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
     fra.me.REG[2] = fra.me.REG[3];
-    /* ./syntax//scope.nit:152 */
+    /* syntax/scope.nit:152 */
     ATTR_syntax___scope___ScopeBlock____dico(fra.me.REG[0]) = fra.me.REG[2];
   }
-  /* ./syntax//scope.nit:154 */
+  /* syntax/scope.nit:154 */
   fra.me.REG[0] = CALL_syntax___syntax_base___Variable___name(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -965,9 +965,9 @@ val_t syntax___scope___ScopeBlock___get_variable(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//scope.nit:159 */
+  /* syntax/scope.nit:159 */
   fra.me.REG[0] = ATTR_syntax___scope___ScopeBlock____dico(fra.me.REG[0]);
-  /* ./syntax//scope.nit:160 */
+  /* syntax/scope.nit:160 */
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -984,7 +984,7 @@ val_t syntax___scope___ScopeBlock___get_variable(val_t p0, val_t p1){
     fra.me.REG[2] = NIT_NULL;
     goto label1;
   }
-  /* ./syntax//scope.nit:161 */
+  /* syntax/scope.nit:161 */
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___scope, 161);
@@ -995,7 +995,7 @@ val_t syntax___scope___ScopeBlock___get_variable(val_t p0, val_t p1){
     fra.me.REG[2] = NIT_NULL;
     goto label1;
   }
-  /* ./syntax//scope.nit:162 */
+  /* syntax/scope.nit:162 */
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___scope, 162);
@@ -1023,7 +1023,7 @@ void syntax___scope___ScopeBlock___init(val_t p0, val_t p1, int* init_table){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//scope.nit:167 */
+  /* syntax/scope.nit:167 */
   ATTR_syntax___scope___ScopeBlock____node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
@@ -1041,7 +1041,7 @@ val_t syntax___scope___EscapableBlock___lab(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:178 */
+  /* syntax/scope.nit:178 */
   fra.me.REG[0] = ATTR_syntax___scope___EscapableBlock____lab(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1059,7 +1059,7 @@ val_t syntax___scope___EscapableBlock___is_break_block(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:183 */
+  /* syntax/scope.nit:183 */
   REGB0 = TAG_Bool(false);
   goto label1;
   label1: while(0);
@@ -1078,7 +1078,7 @@ val_t syntax___scope___EscapableBlock___break_list(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:188 */
+  /* syntax/scope.nit:188 */
   fra.me.REG[0] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -1097,7 +1097,7 @@ val_t syntax___scope___EscapableBlock___continue_stype(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:191 */
+  /* syntax/scope.nit:191 */
   fra.me.REG[0] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -1117,7 +1117,7 @@ val_t syntax___scope___EscapableBlock___break_flow_contexts(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:193 */
+  /* syntax/scope.nit:193 */
   REGB0 = TAG_Bool(ATTR_syntax___scope___EscapableBlock____break_flow_contexts(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1143,7 +1143,7 @@ void syntax___scope___EscapableBlock___init(val_t p0, val_t p1, int* init_table)
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//scope.nit:198 */
+  /* syntax/scope.nit:198 */
   CALL_syntax___scope___ScopeBlock___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos2] = 1;
@@ -1162,7 +1162,7 @@ val_t syntax___scope___BreakOnlyEscapableBlock___is_break_block(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:205 */
+  /* syntax/scope.nit:205 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -1185,7 +1185,7 @@ void syntax___scope___BreakOnlyEscapableBlock___init(val_t p0, val_t p1, int* in
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//scope.nit:207 */
+  /* syntax/scope.nit:207 */
   CALL_syntax___scope___EscapableBlock___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos3] = 1;
@@ -1204,7 +1204,7 @@ val_t syntax___scope___EscapableClosure___closure(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:213 */
+  /* syntax/scope.nit:213 */
   REGB0 = TAG_Bool(ATTR_syntax___scope___EscapableClosure____closure(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1227,7 +1227,7 @@ val_t syntax___scope___EscapableClosure___is_break_block(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:216 */
+  /* syntax/scope.nit:216 */
   REGB0 = TAG_Bool(ATTR_syntax___scope___EscapableClosure____closure(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1252,7 +1252,7 @@ val_t syntax___scope___EscapableClosure___break_list(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:218 */
+  /* syntax/scope.nit:218 */
   fra.me.REG[0] = ATTR_syntax___scope___EscapableClosure____break_list(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1270,7 +1270,7 @@ val_t syntax___scope___EscapableClosure___continue_stype(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:220 */
+  /* syntax/scope.nit:220 */
   REGB0 = TAG_Bool(ATTR_syntax___scope___EscapableClosure____closure(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1305,13 +1305,13 @@ void syntax___scope___EscapableClosure___init(val_t p0, val_t p1, val_t p2, val_
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./syntax//scope.nit:222 */
+  /* syntax/scope.nit:222 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./syntax//scope.nit:224 */
+  /* syntax/scope.nit:224 */
   CALL_syntax___scope___EscapableBlock___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
-  /* ./syntax//scope.nit:225 */
+  /* syntax/scope.nit:225 */
   ATTR_syntax___scope___EscapableClosure____closure(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./syntax//scope.nit:226 */
+  /* syntax/scope.nit:226 */
   ATTR_syntax___scope___EscapableClosure____break_list(fra.me.REG[4]) = fra.me.REG[3];
   stack_frame_head = fra.me.prev;
   init_table[itpos4] = 1;
@@ -1329,7 +1329,7 @@ val_t syntax___scope___AEscapeExpr___escapable(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:234 */
+  /* syntax/scope.nit:234 */
   fra.me.REG[0] = ATTR_syntax___scope___AEscapeExpr____escapable(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1344,7 +1344,7 @@ val_t syntax___scope___AEscapeExpr___kwname(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//scope.nit:237 */
+  /* syntax/scope.nit:237 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___scope, 237);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1370,9 +1370,9 @@ val_t syntax___scope___AEscapeExpr___compute_escapable_block(val_t p0, val_t p1)
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//scope.nit:244 */
+  /* syntax/scope.nit:244 */
   fra.me.REG[2] = CALL_parser___parser_nodes___ALabelable___n_label(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./syntax//scope.nit:245 */
+  /* syntax/scope.nit:245 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1387,13 +1387,13 @@ val_t syntax___scope___AEscapeExpr___compute_escapable_block(val_t p0, val_t p1)
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//scope.nit:246 */
+    /* syntax/scope.nit:246 */
     fra.me.REG[2] = CALL_syntax___scope___ScopeContext___get_by_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   } else {
-    /* ./syntax//scope.nit:248 */
+    /* syntax/scope.nit:248 */
     fra.me.REG[3] = CALL_syntax___scope___ScopeContext___head(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[2] = fra.me.REG[3];
-    /* ./syntax//scope.nit:249 */
+    /* syntax/scope.nit:249 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -1407,7 +1407,7 @@ val_t syntax___scope___AEscapeExpr___compute_escapable_block(val_t p0, val_t p1)
       }
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//scope.nit:250 */
+      /* syntax/scope.nit:250 */
       fra.me.REG[1] = CALL_syntax___scope___ScopeContext___visitor(fra.me.REG[1])(fra.me.REG[1]);
       REGB0 = TAG_Int(3);
       fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -1435,9 +1435,9 @@ val_t syntax___scope___AEscapeExpr___compute_escapable_block(val_t p0, val_t p1)
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
     }
   }
-  /* ./syntax//scope.nit:253 */
+  /* syntax/scope.nit:253 */
   ATTR_syntax___scope___AEscapeExpr____escapable(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./syntax//scope.nit:254 */
+  /* syntax/scope.nit:254 */
   goto label3;
   label3: while(0);
   stack_frame_head = fra.me.prev;
@@ -1457,7 +1457,7 @@ val_t syntax___scope___AContinueExpr___kwname(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:260 */
+  /* syntax/scope.nit:260 */
   if (!once_value_1) {
     fra.me.REG[0] = BOX_NativeString("continue");
     REGB0 = TAG_Int(8);
@@ -1485,7 +1485,7 @@ val_t syntax___scope___ABreakExpr___kwname(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//scope.nit:265 */
+  /* syntax/scope.nit:265 */
   if (!once_value_1) {
     fra.me.REG[0] = BOX_NativeString("break");
     REGB0 = TAG_Int(5);
index a8076aa..1bfd13d 100644 (file)
@@ -163,17 +163,17 @@ typedef val_t (*syntax___scope___AEscapeExpr___kwname_t)(val_t p0);
 static const char * const LOCATE_syntax___scope___AEscapeExpr___compute_escapable_block = "scope::AEscapeExpr::compute_escapable_block";
 val_t syntax___scope___AEscapeExpr___compute_escapable_block(val_t p0, val_t p1);
 typedef val_t (*syntax___scope___AEscapeExpr___compute_escapable_block_t)(val_t p0, val_t p1);
-val_t NEW_AEscapeExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AEscapeExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___scope___AContinueExpr___kwname = "scope::AContinueExpr::(scope::AEscapeExpr::kwname)";
 val_t syntax___scope___AContinueExpr___kwname(val_t p0);
 typedef val_t (*syntax___scope___AContinueExpr___kwname_t)(val_t p0);
 val_t NEW_AContinueExpr_parser___parser_prod___AContinueExpr___empty_init();
 val_t NEW_AContinueExpr_parser___parser_prod___AContinueExpr___init_acontinueexpr(val_t p0, val_t p1, val_t p2);
-val_t NEW_AContinueExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AContinueExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___scope___ABreakExpr___kwname = "scope::ABreakExpr::(scope::AEscapeExpr::kwname)";
 val_t syntax___scope___ABreakExpr___kwname(val_t p0);
 typedef val_t (*syntax___scope___ABreakExpr___kwname_t)(val_t p0);
 val_t NEW_ABreakExpr_parser___parser_prod___ABreakExpr___empty_init();
 val_t NEW_ABreakExpr_parser___parser_prod___ABreakExpr___init_abreakexpr(val_t p0, val_t p1, val_t p2);
-val_t NEW_ABreakExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABreakExpr_parser___parser_nodes___ANode___init();
 #endif
index db604fa..c41d03f 100644 (file)
@@ -12,7 +12,7 @@ void syntax___syntax_base___MMSrcModule___clear_ast(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:32 */
+  /* syntax/syntax_base.nit:32 */
   ATTR_syntax___syntax_base___MMSrcModule____nodes(fra.me.REG[0]) = NIT_NULL;
   stack_frame_head = fra.me.prev;
   return;
@@ -31,9 +31,9 @@ val_t syntax___syntax_base___MMSrcModule___node(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:34 */
+  /* syntax/syntax_base.nit:34 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./syntax//syntax_base.nit:35 */
+  /* syntax/syntax_base.nit:35 */
   fra.me.REG[1] = CALL_syntax___syntax_base___MMModule___nodes(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[1]);
   REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_parser___parser_nodes___AModule, ID_parser___parser_nodes___AModule)) /*cast AModule*/;
   if (UNTAG_Bool(REGB0)) {
@@ -58,7 +58,7 @@ val_t syntax___syntax_base___MMSrcModule___src_local_classes(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:37 */
+  /* syntax/syntax_base.nit:37 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMSrcModule____src_local_classes(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -93,13 +93,13 @@ void syntax___syntax_base___MMSrcModule___init(val_t p0, val_t p1, val_t p2, val
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
   fra.me.REG[5] = p5;
-  /* ./syntax//syntax_base.nit:40 */
+  /* syntax/syntax_base.nit:40 */
   fra.me.REG[6] = fra.me.REG[0];
-  /* ./syntax//syntax_base.nit:42 */
+  /* syntax/syntax_base.nit:42 */
   CALL_metamodel___abstractmetamodel___MMModule___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3], fra.me.REG[1], fra.me.REG[5], init_table);
-  /* ./syntax//syntax_base.nit:43 */
+  /* syntax/syntax_base.nit:43 */
   CALL_syntax___syntax_base___MMModule___nodes__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[6], fra.me.REG[2]);
-  /* ./syntax//syntax_base.nit:44 */
+  /* syntax/syntax_base.nit:44 */
   fra.me.REG[2] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_syntax___syntax_base___MMSrcModule____src_local_classes(fra.me.REG[6]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
@@ -123,7 +123,7 @@ val_t syntax___syntax_base___MMSrcModule___nodes(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:49 */
+  /* syntax/syntax_base.nit:49 */
   fra.me.REG[2] = ATTR_syntax___syntax_base___MMSrcModule____nodes(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -183,7 +183,7 @@ void syntax___syntax_base___MMSrcModule___nodes__eq(val_t p0, val_t p1, val_t p2
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:53 */
+  /* syntax/syntax_base.nit:53 */
   fra.me.REG[3] = ATTR_syntax___syntax_base___MMSrcModule____nodes(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -195,7 +195,7 @@ void syntax___syntax_base___MMSrcModule___nodes__eq(val_t p0, val_t p1, val_t p2
   } else {
     nit_abort("Assert failed", NULL, LOCATE_syntax___syntax_base, 53);
   }
-  /* ./syntax//syntax_base.nit:54 */
+  /* syntax/syntax_base.nit:54 */
   fra.me.REG[0] = ATTR_syntax___syntax_base___MMSrcModule____nodes(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -219,7 +219,7 @@ val_t syntax___syntax_base___MMModule___nodes(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:60 */
+  /* syntax/syntax_base.nit:60 */
   fra.me.REG[1] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -242,7 +242,7 @@ void syntax___syntax_base___MMModule___nodes__eq(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:62 */
+  /* syntax/syntax_base.nit:62 */
   nit_abort("Aborted", NULL, LOCATE_syntax___syntax_base, 62);
   stack_frame_head = fra.me.prev;
   return;
@@ -276,44 +276,44 @@ val_t syntax___syntax_base___MMGlobalClass___check_visibility(val_t p0, val_t p1
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./syntax//syntax_base.nit:68 */
+  /* syntax/syntax_base.nit:68 */
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./syntax//syntax_base.nit:69 */
+  /* syntax/syntax_base.nit:69 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_syntax___syntax_base___MMSrcModule, ID_syntax___syntax_base___MMSrcModule)) /*cast MMSrcModule*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_syntax___syntax_base, 69);
   }
-  /* ./syntax//syntax_base.nit:70 */
+  /* syntax/syntax_base.nit:70 */
   REGB0 = CALL_metamodel___abstractmetamodel___MMModule___visibility_for(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./syntax//syntax_base.nit:71 */
+  /* syntax/syntax_base.nit:71 */
   REGB1 = TAG_Int(3);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./syntax//syntax_base.nit:71 */
+    /* syntax/syntax_base.nit:71 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//syntax_base.nit:72 */
+    /* syntax/syntax_base.nit:72 */
     REGB2 = TAG_Bool(true);
     goto label1;
   } else {
-    /* ./syntax//syntax_base.nit:73 */
+    /* syntax/syntax_base.nit:73 */
     REGB1 = TAG_Int(0);
     REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
     if (UNTAG_Bool(REGB3)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB1 = TAG_Bool((REGB0)==(REGB1));
-      /* ./syntax//syntax_base.nit:73 */
+      /* syntax/syntax_base.nit:73 */
       REGB3 = REGB1;
     }
     if (UNTAG_Bool(REGB3)) {
-      /* ./syntax//syntax_base.nit:74 */
+      /* syntax/syntax_base.nit:74 */
       REGB3 = TAG_Int(5);
       fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
       if (!once_value_2) {
@@ -349,12 +349,12 @@ val_t syntax___syntax_base___MMGlobalClass___check_visibility(val_t p0, val_t p1
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
       fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
-      /* ./syntax//syntax_base.nit:75 */
+      /* syntax/syntax_base.nit:75 */
       REGB3 = TAG_Bool(false);
       REGB2 = REGB3;
       goto label1;
     } else {
-      /* ./syntax//syntax_base.nit:76 */
+      /* syntax/syntax_base.nit:76 */
       REGB3 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
       REGB1 = TAG_Int(3);
       REGB0 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
@@ -362,11 +362,11 @@ val_t syntax___syntax_base___MMGlobalClass___check_visibility(val_t p0, val_t p1
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB1));
-      /* ./syntax//syntax_base.nit:76 */
+      /* syntax/syntax_base.nit:76 */
       if (UNTAG_Bool(REGB1)) {
-        /* ./syntax//syntax_base.nit:77 */
+        /* syntax/syntax_base.nit:77 */
         REGB1 = TAG_Int(3);
         fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
         if (!once_value_5) {
@@ -391,14 +391,14 @@ val_t syntax___syntax_base___MMGlobalClass___check_visibility(val_t p0, val_t p1
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
         fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
         CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
-        /* ./syntax//syntax_base.nit:78 */
+        /* syntax/syntax_base.nit:78 */
         REGB1 = TAG_Bool(false);
         REGB2 = REGB1;
         goto label1;
       }
     }
   }
-  /* ./syntax//syntax_base.nit:80 */
+  /* syntax/syntax_base.nit:80 */
   REGB1 = TAG_Bool(true);
   REGB2 = REGB1;
   goto label1;
@@ -421,9 +421,9 @@ val_t syntax___syntax_base___MMSrcLocalClass___node(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:87 */
+  /* syntax/syntax_base.nit:87 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./syntax//syntax_base.nit:88 */
+  /* syntax/syntax_base.nit:88 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = CALL_syntax___syntax_base___MMModule___nodes(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   REGB0 = TAG_Bool((fra.me.REG[1]==NIT_NULL) || VAL_ISA(fra.me.REG[1], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast nullable AClassdef*/;
@@ -449,7 +449,7 @@ val_t syntax___syntax_base___MMSrcLocalClass___formal_dict(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:90 */
+  /* syntax/syntax_base.nit:90 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMSrcLocalClass____formal_dict(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -472,7 +472,7 @@ val_t syntax___syntax_base___MMSrcLocalClass___src_local_properties(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:93 */
+  /* syntax/syntax_base.nit:93 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMSrcLocalClass____src_local_properties(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -505,13 +505,13 @@ void syntax___syntax_base___MMSrcLocalClass___init(val_t p0, val_t p1, val_t p2,
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   REGB0 = p4;
-  /* ./syntax//syntax_base.nit:96 */
+  /* syntax/syntax_base.nit:96 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./syntax//syntax_base.nit:98 */
+  /* syntax/syntax_base.nit:98 */
   CALL_metamodel___abstractmetamodel___MMLocalClass___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, init_table);
-  /* ./syntax//syntax_base.nit:99 */
+  /* syntax/syntax_base.nit:99 */
   CALL_syntax___syntax_base___MMModule___nodes__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[3]);
-  /* ./syntax//syntax_base.nit:100 */
+  /* syntax/syntax_base.nit:100 */
   fra.me.REG[3] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
   ATTR_syntax___syntax_base___MMSrcLocalClass____src_local_properties(fra.me.REG[4]) = fra.me.REG[3];
   stack_frame_head = fra.me.prev;
@@ -551,44 +551,44 @@ val_t syntax___syntax_base___MMGlobalProperty___check_visibility(val_t p0, val_t
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   REGB0 = p4;
-  /* ./syntax//syntax_base.nit:107 */
+  /* syntax/syntax_base.nit:107 */
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./syntax//syntax_base.nit:108 */
+  /* syntax/syntax_base.nit:108 */
   REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_syntax___syntax_base___MMSrcModule, ID_syntax___syntax_base___MMSrcModule)) /*cast MMSrcModule*/;
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Assert failed", NULL, LOCATE_syntax___syntax_base, 108);
   }
-  /* ./syntax//syntax_base.nit:109 */
+  /* syntax/syntax_base.nit:109 */
   REGB1 = CALL_metamodel___abstractmetamodel___MMModule___visibility_for(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./syntax//syntax_base.nit:110 */
+  /* syntax/syntax_base.nit:110 */
   REGB2 = TAG_Int(3);
   REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
   if (UNTAG_Bool(REGB3)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB2 = TAG_Bool((REGB1)==(REGB2));
-    /* ./syntax//syntax_base.nit:110 */
+    /* syntax/syntax_base.nit:110 */
     REGB3 = REGB2;
   }
   if (UNTAG_Bool(REGB3)) {
-    /* ./syntax//syntax_base.nit:111 */
+    /* syntax/syntax_base.nit:111 */
     REGB3 = TAG_Bool(true);
     goto label1;
   } else {
-    /* ./syntax//syntax_base.nit:112 */
+    /* syntax/syntax_base.nit:112 */
     REGB2 = TAG_Int(0);
     REGB4 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
     if (UNTAG_Bool(REGB4)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB2 = TAG_Bool((REGB1)==(REGB2));
-      /* ./syntax//syntax_base.nit:112 */
+      /* syntax/syntax_base.nit:112 */
       REGB4 = REGB2;
     }
     if (UNTAG_Bool(REGB4)) {
-      /* ./syntax//syntax_base.nit:114 */
+      /* syntax/syntax_base.nit:114 */
       REGB4 = TAG_Int(5);
       fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
       if (!once_value_2) {
@@ -624,12 +624,12 @@ val_t syntax___syntax_base___MMGlobalProperty___check_visibility(val_t p0, val_t
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
       fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
-      /* ./syntax//syntax_base.nit:115 */
+      /* syntax/syntax_base.nit:115 */
       REGB4 = TAG_Bool(false);
       REGB3 = REGB4;
       goto label1;
     } else {
-      /* ./syntax//syntax_base.nit:116 */
+      /* syntax/syntax_base.nit:116 */
       REGB4 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
       REGB2 = TAG_Int(3);
       REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
@@ -637,11 +637,11 @@ val_t syntax___syntax_base___MMGlobalProperty___check_visibility(val_t p0, val_t
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB2));
-      /* ./syntax//syntax_base.nit:116 */
+      /* syntax/syntax_base.nit:116 */
       if (UNTAG_Bool(REGB2)) {
-        /* ./syntax//syntax_base.nit:117 */
+        /* syntax/syntax_base.nit:117 */
         REGB2 = TAG_Int(3);
         fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
         if (!once_value_5) {
@@ -666,12 +666,12 @@ val_t syntax___syntax_base___MMGlobalProperty___check_visibility(val_t p0, val_t
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
         fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
         CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
-        /* ./syntax//syntax_base.nit:118 */
+        /* syntax/syntax_base.nit:118 */
         REGB2 = TAG_Bool(false);
         REGB3 = REGB2;
         goto label1;
       } else {
-        /* ./syntax//syntax_base.nit:119 */
+        /* syntax/syntax_base.nit:119 */
         REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
         REGB4 = TAG_Int(2);
         REGB1 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
@@ -679,9 +679,9 @@ val_t syntax___syntax_base___MMGlobalProperty___check_visibility(val_t p0, val_t
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB4));
-        /* ./syntax//syntax_base.nit:119 */
+        /* syntax/syntax_base.nit:119 */
         if (UNTAG_Bool(REGB4)) {
           REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
         } else {
@@ -689,7 +689,7 @@ val_t syntax___syntax_base___MMGlobalProperty___check_visibility(val_t p0, val_t
           REGB0 = REGB4;
         }
         if (UNTAG_Bool(REGB0)) {
-          /* ./syntax//syntax_base.nit:120 */
+          /* syntax/syntax_base.nit:120 */
           REGB0 = TAG_Int(3);
           fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
           if (!once_value_7) {
@@ -714,7 +714,7 @@ val_t syntax___syntax_base___MMGlobalProperty___check_visibility(val_t p0, val_t
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
           fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
           CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
-          /* ./syntax//syntax_base.nit:121 */
+          /* syntax/syntax_base.nit:121 */
           REGB0 = TAG_Bool(false);
           REGB3 = REGB0;
           goto label1;
@@ -722,7 +722,7 @@ val_t syntax___syntax_base___MMGlobalProperty___check_visibility(val_t p0, val_t
       }
     }
   }
-  /* ./syntax//syntax_base.nit:123 */
+  /* syntax/syntax_base.nit:123 */
   REGB0 = TAG_Bool(true);
   REGB3 = REGB0;
   goto label1;
@@ -742,7 +742,7 @@ val_t syntax___syntax_base___MMLocalProperty___node(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:129 */
+  /* syntax/syntax_base.nit:129 */
   fra.me.REG[0] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -762,7 +762,7 @@ val_t syntax___syntax_base___MMLocalProperty___is_init(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:132 */
+  /* syntax/syntax_base.nit:132 */
   REGB0 = TAG_Bool(false);
   goto label1;
   label1: while(0);
@@ -784,7 +784,7 @@ val_t syntax___syntax_base___MMSrcAttribute___node(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:138 */
+  /* syntax/syntax_base.nit:138 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = CALL_syntax___syntax_base___MMModule___nodes(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
@@ -819,11 +819,11 @@ void syntax___syntax_base___MMSrcAttribute___init(val_t p0, val_t p1, val_t p2,
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./syntax//syntax_base.nit:139 */
+  /* syntax/syntax_base.nit:139 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./syntax//syntax_base.nit:141 */
+  /* syntax/syntax_base.nit:141 */
   CALL_metamodel___abstractmetamodel___MMLocalProperty___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  /* ./syntax//syntax_base.nit:142 */
+  /* syntax/syntax_base.nit:142 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[2])(fra.me.REG[2]);
   CALL_syntax___syntax_base___MMModule___nodes__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -843,7 +843,7 @@ val_t syntax___syntax_base___MMSrcMethod___is_intern(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:149 */
+  /* syntax/syntax_base.nit:149 */
   REGB0 = TAG_Bool(false);
   goto label1;
   label1: while(0);
@@ -863,7 +863,7 @@ val_t syntax___syntax_base___MMSrcMethod___is_extern(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:150 */
+  /* syntax/syntax_base.nit:150 */
   REGB0 = TAG_Bool(false);
   goto label1;
   label1: while(0);
@@ -883,7 +883,7 @@ val_t syntax___syntax_base___MMSrcMethod___is_abstract(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:151 */
+  /* syntax/syntax_base.nit:151 */
   REGB0 = TAG_Bool(false);
   goto label1;
   label1: while(0);
@@ -902,7 +902,7 @@ val_t syntax___syntax_base___MMSrcMethod___extern_name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:152 */
+  /* syntax/syntax_base.nit:152 */
   fra.me.REG[0] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -924,7 +924,7 @@ val_t syntax___syntax_base___MMAttrImplementationMethod___node(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:158 */
+  /* syntax/syntax_base.nit:158 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = CALL_syntax___syntax_base___MMModule___nodes(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
@@ -959,11 +959,11 @@ void syntax___syntax_base___MMAttrImplementationMethod___init(val_t p0, val_t p1
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./syntax//syntax_base.nit:159 */
+  /* syntax/syntax_base.nit:159 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./syntax//syntax_base.nit:161 */
+  /* syntax/syntax_base.nit:161 */
   CALL_metamodel___abstractmetamodel___MMLocalProperty___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  /* ./syntax//syntax_base.nit:162 */
+  /* syntax/syntax_base.nit:162 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[2])(fra.me.REG[2]);
   CALL_syntax___syntax_base___MMModule___nodes__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4], fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -990,7 +990,7 @@ void syntax___syntax_base___MMReadImplementationMethod___init(val_t p0, val_t p1
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./syntax//syntax_base.nit:171 */
+  /* syntax/syntax_base.nit:171 */
   CALL_syntax___syntax_base___MMAttrImplementationMethod___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos4] = 1;
@@ -1016,7 +1016,7 @@ void syntax___syntax_base___MMWriteImplementationMethod___init(val_t p0, val_t p
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./syntax//syntax_base.nit:180 */
+  /* syntax/syntax_base.nit:180 */
   CALL_syntax___syntax_base___MMAttrImplementationMethod___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos5] = 1;
@@ -1035,7 +1035,7 @@ val_t syntax___syntax_base___MMMethSrcMethod___is_init(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:187 */
+  /* syntax/syntax_base.nit:187 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMMethSrcMethod____is_init(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1058,7 +1058,7 @@ val_t syntax___syntax_base___MMMethSrcMethod___is_intern(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:188 */
+  /* syntax/syntax_base.nit:188 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMMethSrcMethod____is_intern(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1081,7 +1081,7 @@ val_t syntax___syntax_base___MMMethSrcMethod___is_extern(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:189 */
+  /* syntax/syntax_base.nit:189 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMMethSrcMethod____is_extern(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1104,7 +1104,7 @@ val_t syntax___syntax_base___MMMethSrcMethod___is_abstract(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:190 */
+  /* syntax/syntax_base.nit:190 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMMethSrcMethod____is_abstract(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1126,7 +1126,7 @@ val_t syntax___syntax_base___MMMethSrcMethod___extern_name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:191 */
+  /* syntax/syntax_base.nit:191 */
   fra.me.REG[0] = ATTR_syntax___syntax_base___MMMethSrcMethod____extern_name(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1145,7 +1145,7 @@ void syntax___syntax_base___MMMethSrcMethod___extern_name__eq(val_t p0, val_t p1
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:191 */
+  /* syntax/syntax_base.nit:191 */
   ATTR_syntax___syntax_base___MMMethSrcMethod____extern_name(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1163,7 +1163,7 @@ val_t syntax___syntax_base___MMMethSrcMethod___explicit_casts(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:192 */
+  /* syntax/syntax_base.nit:192 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMMethSrcMethod____explicit_casts(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1186,7 +1186,7 @@ val_t syntax___syntax_base___MMMethSrcMethod___explicit_imports(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:193 */
+  /* syntax/syntax_base.nit:193 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMMethSrcMethod____explicit_imports(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1211,7 +1211,7 @@ val_t syntax___syntax_base___MMMethSrcMethod___node(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:194 */
+  /* syntax/syntax_base.nit:194 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = CALL_syntax___syntax_base___MMModule___nodes(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
@@ -1247,35 +1247,35 @@ void syntax___syntax_base___MMMethSrcMethod___init(val_t p0, val_t p1, val_t p2,
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./syntax//syntax_base.nit:195 */
+  /* syntax/syntax_base.nit:195 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./syntax//syntax_base.nit:197 */
+  /* syntax/syntax_base.nit:197 */
   CALL_metamodel___abstractmetamodel___MMLocalProperty___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  /* ./syntax//syntax_base.nit:198 */
+  /* syntax/syntax_base.nit:198 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[2])(fra.me.REG[2]);
   CALL_syntax___syntax_base___MMModule___nodes__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4], fra.me.REG[3]);
-  /* ./syntax//syntax_base.nit:199 */
+  /* syntax/syntax_base.nit:199 */
   fra.me.REG[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AInitPropdef, ID_parser___parser_nodes___AInitPropdef)) /*cast AInitPropdef*/;
   ATTR_syntax___syntax_base___MMMethSrcMethod____is_init(fra.me.REG[4]) = REGB0;
-  /* ./syntax//syntax_base.nit:200 */
+  /* syntax/syntax_base.nit:200 */
   fra.me.REG[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AInternMethPropdef, ID_parser___parser_nodes___AInternMethPropdef)) /*cast AInternMethPropdef*/;
   ATTR_syntax___syntax_base___MMMethSrcMethod____is_intern(fra.me.REG[4]) = REGB0;
-  /* ./syntax//syntax_base.nit:201 */
+  /* syntax/syntax_base.nit:201 */
   fra.me.REG[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternPropdef, ID_parser___parser_nodes___AExternPropdef)) /*cast AExternPropdef*/;
   ATTR_syntax___syntax_base___MMMethSrcMethod____is_extern(fra.me.REG[4]) = REGB0;
-  /* ./syntax//syntax_base.nit:202 */
+  /* syntax/syntax_base.nit:202 */
   fra.me.REG[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADeferredMethPropdef, ID_parser___parser_nodes___ADeferredMethPropdef)) /*cast ADeferredMethPropdef*/;
   ATTR_syntax___syntax_base___MMMethSrcMethod____is_abstract(fra.me.REG[4]) = REGB0;
-  /* ./syntax//syntax_base.nit:203 */
+  /* syntax/syntax_base.nit:203 */
   ATTR_syntax___syntax_base___MMMethSrcMethod____extern_name(fra.me.REG[4]) = NIT_NULL;
-  /* ./syntax//syntax_base.nit:205 */
+  /* syntax/syntax_base.nit:205 */
   REGB0 = CALL_metamodel___abstractmetamodel___MMMethod___is_extern(fra.me.REG[4])(fra.me.REG[4]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//syntax_base.nit:206 */
+    /* syntax/syntax_base.nit:206 */
     fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[4])(fra.me.REG[4]);
     REGB0 = TAG_Bool(true);
     CALL_metamodel___abstractmetamodel___MMModule___is_extern_hybrid__eq(fra.me.REG[4])(fra.me.REG[4], REGB0);
@@ -1304,7 +1304,7 @@ void syntax___syntax_base___MMSrcTypeProperty___init(val_t p0, val_t p1, val_t p
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./syntax//syntax_base.nit:217 */
+  /* syntax/syntax_base.nit:217 */
   CALL_metamodel___abstractmetamodel___MMLocalProperty___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos7] = 1;
@@ -1320,7 +1320,7 @@ val_t syntax___syntax_base___MMImplicitInit___super_init(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:224 */
+  /* syntax/syntax_base.nit:224 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 224);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1338,7 +1338,7 @@ val_t syntax___syntax_base___MMImplicitInit___is_init(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:225 */
+  /* syntax/syntax_base.nit:225 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -1358,7 +1358,7 @@ val_t syntax___syntax_base___MMImplicitInit___unassigned_attributes(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:226 */
+  /* syntax/syntax_base.nit:226 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMImplicitInit____unassigned_attributes(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1381,7 +1381,7 @@ val_t syntax___syntax_base___MMImplicitInit___super_inits(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:227 */
+  /* syntax/syntax_base.nit:227 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMImplicitInit____super_inits(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1416,9 +1416,9 @@ void syntax___syntax_base___MMImplicitInit___init(val_t p0, val_t p1, val_t p2,
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./syntax//syntax_base.nit:228 */
+  /* syntax/syntax_base.nit:228 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./syntax//syntax_base.nit:230 */
+  /* syntax/syntax_base.nit:230 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[5] = BOX_NativeString("init");
@@ -1434,9 +1434,9 @@ void syntax___syntax_base___MMImplicitInit___init(val_t p0, val_t p1, val_t p2,
   } else fra.me.REG[5] = once_value_1;
   fra.me.REG[5] = fra.me.REG[5];
   CALL_syntax___syntax_base___MMMethSrcMethod___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[1], NIT_NULL, init_table);
-  /* ./syntax//syntax_base.nit:231 */
+  /* syntax/syntax_base.nit:231 */
   ATTR_syntax___syntax_base___MMImplicitInit____unassigned_attributes(fra.me.REG[4]) = fra.me.REG[2];
-  /* ./syntax//syntax_base.nit:232 */
+  /* syntax/syntax_base.nit:232 */
   ATTR_syntax___syntax_base___MMImplicitInit____super_inits(fra.me.REG[4]) = fra.me.REG[3];
   stack_frame_head = fra.me.prev;
   init_table[itpos8] = 1;
@@ -1455,7 +1455,7 @@ val_t syntax___syntax_base___Variable___name(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:238 */
+  /* syntax/syntax_base.nit:238 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___Variable____name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1477,7 +1477,7 @@ val_t syntax___syntax_base___Variable___decl(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:241 */
+  /* syntax/syntax_base.nit:241 */
   fra.me.REG[0] = ATTR_syntax___syntax_base___Variable____decl(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1494,7 +1494,7 @@ val_t syntax___syntax_base___Variable___stype(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:244 */
+  /* syntax/syntax_base.nit:244 */
   fra.me.REG[0] = ATTR_syntax___syntax_base___Variable____stype(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -1513,7 +1513,7 @@ void syntax___syntax_base___Variable___stype__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:244 */
+  /* syntax/syntax_base.nit:244 */
   ATTR_syntax___syntax_base___Variable____stype(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -1531,7 +1531,7 @@ val_t syntax___syntax_base___Variable___to_s(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:247 */
+  /* syntax/syntax_base.nit:247 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___Variable____name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1554,7 +1554,7 @@ val_t syntax___syntax_base___Variable___kind(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:249 */
+  /* syntax/syntax_base.nit:249 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 249);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -1577,9 +1577,9 @@ void syntax___syntax_base___Variable___init(val_t p0, val_t p1, val_t p2, int* i
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:253 */
+  /* syntax/syntax_base.nit:253 */
   ATTR_syntax___syntax_base___Variable____name(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//syntax_base.nit:254 */
+  /* syntax/syntax_base.nit:254 */
   ATTR_syntax___syntax_base___Variable____decl(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos9] = 1;
@@ -1600,7 +1600,7 @@ val_t syntax___syntax_base___VarVariable___kind(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:261 */
+  /* syntax/syntax_base.nit:261 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("variable");
@@ -1637,7 +1637,7 @@ void syntax___syntax_base___VarVariable___init(val_t p0, val_t p1, val_t p2, int
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:262 */
+  /* syntax/syntax_base.nit:262 */
   CALL_syntax___syntax_base___Variable___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos10] = 1;
@@ -1658,7 +1658,7 @@ val_t syntax___syntax_base___ParamVariable___kind(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:268 */
+  /* syntax/syntax_base.nit:268 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("parameter");
@@ -1695,7 +1695,7 @@ void syntax___syntax_base___ParamVariable___init(val_t p0, val_t p1, val_t p2, i
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:269 */
+  /* syntax/syntax_base.nit:269 */
   CALL_syntax___syntax_base___Variable___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos11] = 1;
@@ -1716,7 +1716,7 @@ val_t syntax___syntax_base___AutoVariable___kind(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:275 */
+  /* syntax/syntax_base.nit:275 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("automatic variable");
@@ -1753,7 +1753,7 @@ void syntax___syntax_base___AutoVariable___init(val_t p0, val_t p1, val_t p2, in
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:276 */
+  /* syntax/syntax_base.nit:276 */
   CALL_syntax___syntax_base___Variable___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos12] = 1;
@@ -1774,7 +1774,7 @@ val_t syntax___syntax_base___ClosureVariable___kind(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:283 */
+  /* syntax/syntax_base.nit:283 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("closure");
@@ -1806,7 +1806,7 @@ val_t syntax___syntax_base___ClosureVariable___closure(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:285 */
+  /* syntax/syntax_base.nit:285 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___ClosureVariable____closure(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1837,11 +1837,11 @@ void syntax___syntax_base___ClosureVariable___init(val_t p0, val_t p1, val_t p2,
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./syntax//syntax_base.nit:288 */
+  /* syntax/syntax_base.nit:288 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./syntax//syntax_base.nit:290 */
+  /* syntax/syntax_base.nit:290 */
   CALL_syntax___syntax_base___Variable___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  /* ./syntax//syntax_base.nit:291 */
+  /* syntax/syntax_base.nit:291 */
   ATTR_syntax___syntax_base___ClosureVariable____closure(fra.me.REG[4]) = fra.me.REG[3];
   stack_frame_head = fra.me.prev;
   init_table[itpos13] = 1;
@@ -1868,7 +1868,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name(val_t p0, val_t
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:302 */
+  /* syntax/syntax_base.nit:302 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1914,9 +1914,9 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name(val_t p0, val_t
     fra.me.REG[5] = fra.me.REG[5];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-    CALL_mmloader___ToolContext___fatal_error(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
+    CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
   }
-  /* ./syntax//syntax_base.nit:303 */
+  /* syntax/syntax_base.nit:303 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -1924,7 +1924,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name(val_t p0, val_t
   }
   fra.me.REG[0] = ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0]);
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//syntax_base.nit:304 */
+  /* syntax/syntax_base.nit:304 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
   goto label3;
   label3: while(0);
@@ -1954,7 +1954,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name(va
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:309 */
+  /* syntax/syntax_base.nit:309 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2000,9 +2000,9 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name(va
     fra.me.REG[6] = fra.me.REG[6];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-    CALL_mmloader___ToolContext___fatal_error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
+    CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
   }
-  /* ./syntax//syntax_base.nit:310 */
+  /* syntax/syntax_base.nit:310 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2010,7 +2010,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name(va
   }
   fra.me.REG[0] = ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0]);
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//syntax_base.nit:311 */
+  /* syntax/syntax_base.nit:311 */
   fra.me.REG[2] = CALL_metamodel___genericity___MMLocalClass___get_instantiate_type(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   goto label3;
   label3: while(0);
@@ -2033,7 +2033,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___type_object(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:317 */
+  /* syntax/syntax_base.nit:317 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[1] = BOX_NativeString("Object");
@@ -2070,7 +2070,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___type_bool(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:323 */
+  /* syntax/syntax_base.nit:323 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[1] = BOX_NativeString("Bool");
@@ -2107,7 +2107,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___type_int(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:329 */
+  /* syntax/syntax_base.nit:329 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[1] = BOX_NativeString("Int");
@@ -2144,7 +2144,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___type_float(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:335 */
+  /* syntax/syntax_base.nit:335 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[1] = BOX_NativeString("Float");
@@ -2181,7 +2181,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___type_char(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:341 */
+  /* syntax/syntax_base.nit:341 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[1] = BOX_NativeString("Char");
@@ -2218,7 +2218,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___type_string(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:347 */
+  /* syntax/syntax_base.nit:347 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[1] = BOX_NativeString("String");
@@ -2255,7 +2255,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___type_nativestring(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:353 */
+  /* syntax/syntax_base.nit:353 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[1] = BOX_NativeString("NativeString");
@@ -2295,7 +2295,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___type_array(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:359 */
+  /* syntax/syntax_base.nit:359 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("Array");
@@ -2335,7 +2335,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___type_discrete(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:365 */
+  /* syntax/syntax_base.nit:365 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[1] = BOX_NativeString("Discrete");
@@ -2375,7 +2375,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___type_range(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:371 */
+  /* syntax/syntax_base.nit:371 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("Range");
@@ -2412,7 +2412,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___type_none(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:377 */
+  /* syntax/syntax_base.nit:377 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2448,12 +2448,12 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___get_method(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:382 */
+  /* syntax/syntax_base.nit:382 */
   fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//syntax_base.nit:383 */
+    /* syntax/syntax_base.nit:383 */
     fra.me.REG[3] = CALL_parser___parser_prod___Visitor___current_node(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Int(5);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -2491,7 +2491,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___get_method(val_t p0, val_t p1, v
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___fatal_error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[4]);
   }
-  /* ./syntax//syntax_base.nit:385 */
+  /* syntax/syntax_base.nit:385 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   goto label4;
@@ -2512,7 +2512,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___mmmodule(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:388 */
+  /* syntax/syntax_base.nit:388 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2536,9 +2536,9 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___local_class(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:391 */
+  /* syntax/syntax_base.nit:391 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./syntax//syntax_base.nit:392 */
+  /* syntax/syntax_base.nit:392 */
   fra.me.REG[1] = ATTR_syntax___syntax_base___AbsSyntaxVisitor____local_class(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2564,7 +2564,7 @@ void syntax___syntax_base___AbsSyntaxVisitor___local_class__eq(val_t p0, val_t p
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:393 */
+  /* syntax/syntax_base.nit:393 */
   ATTR_syntax___syntax_base___AbsSyntaxVisitor____local_class(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2583,9 +2583,9 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___local_property(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:395 */
+  /* syntax/syntax_base.nit:395 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./syntax//syntax_base.nit:396 */
+  /* syntax/syntax_base.nit:396 */
   fra.me.REG[1] = ATTR_syntax___syntax_base___AbsSyntaxVisitor____local_property(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2611,7 +2611,7 @@ void syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(val_t p0, val_
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:397 */
+  /* syntax/syntax_base.nit:397 */
   ATTR_syntax___syntax_base___AbsSyntaxVisitor____local_property(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -2629,7 +2629,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___tc(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:399 */
+  /* syntax/syntax_base.nit:399 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2658,7 +2658,7 @@ void syntax___syntax_base___AbsSyntaxVisitor___error(val_t p0, val_t p1, val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:405 */
+  /* syntax/syntax_base.nit:405 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2687,7 +2687,7 @@ void syntax___syntax_base___AbsSyntaxVisitor___error(val_t p0, val_t p1, val_t p
     fra.me.REG[1] = CALL_parser___parser_nodes___ANode___hot_location(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[3] = fra.me.REG[1];
   }
-  CALL_mmloader___ToolContext___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
+  CALL_toolcontext___ToolContext___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
 }
@@ -2710,7 +2710,7 @@ void syntax___syntax_base___AbsSyntaxVisitor___fatal_error(val_t p0, val_t p1, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:411 */
+  /* syntax/syntax_base.nit:411 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2739,7 +2739,7 @@ void syntax___syntax_base___AbsSyntaxVisitor___fatal_error(val_t p0, val_t p1, v
     fra.me.REG[1] = CALL_parser___parser_nodes___ANode___hot_location(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[3] = fra.me.REG[1];
   }
-  CALL_mmloader___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
+  CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
 }
@@ -2762,7 +2762,7 @@ void syntax___syntax_base___AbsSyntaxVisitor___warning(val_t p0, val_t p1, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:417 */
+  /* syntax/syntax_base.nit:417 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2791,7 +2791,7 @@ void syntax___syntax_base___AbsSyntaxVisitor___warning(val_t p0, val_t p1, val_t
     fra.me.REG[1] = CALL_parser___parser_nodes___ANode___hot_location(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[3] = fra.me.REG[1];
   }
-  CALL_mmloader___ToolContext___warning(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
+  CALL_toolcontext___ToolContext___warning(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
 }
@@ -2821,7 +2821,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform(val_t p0, val_t p1
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./syntax//syntax_base.nit:423 */
+  /* syntax/syntax_base.nit:423 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2852,23 +2852,23 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform(val_t p0, val_t p1
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//syntax_base.nit:424 */
+    /* syntax/syntax_base.nit:424 */
     REGB0 = TAG_Bool(false);
     goto label1;
   }
-  /* ./syntax//syntax_base.nit:426 */
+  /* syntax/syntax_base.nit:426 */
   REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 426);
   }
   REGB1 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   if (UNTAG_Bool(REGB1)) {
-    /* ./syntax//syntax_base.nit:427 */
+    /* syntax/syntax_base.nit:427 */
     REGB1 = TAG_Bool(true);
     REGB0 = REGB1;
     goto label1;
   }
-  /* ./syntax//syntax_base.nit:429 */
+  /* syntax/syntax_base.nit:429 */
   REGB1 = TAG_Int(5);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
   if (!once_value_2) {
@@ -2904,7 +2904,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform(val_t p0, val_t p1
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
   CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//syntax_base.nit:430 */
+  /* syntax/syntax_base.nit:430 */
   REGB1 = TAG_Bool(false);
   REGB0 = REGB1;
   goto label1;
@@ -2934,24 +2934,24 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_expr(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:438 */
+  /* syntax/syntax_base.nit:438 */
   REGB0 = CALL_syntax___syntax_base___AExpr___is_typed(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//syntax_base.nit:439 */
+    /* syntax/syntax_base.nit:439 */
     fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[0])(fra.me.REG[0]);
-    REGB0 = CALL_mmloader___ToolContext___error_count(fra.me.REG[2])(fra.me.REG[2]);
+    REGB0 = CALL_toolcontext___ToolContext___error_count(fra.me.REG[2])(fra.me.REG[2]);
     REGB1 = TAG_Int(0);
     REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
     if (UNTAG_Bool(REGB2)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB1 = TAG_Bool((REGB0)==(REGB1));
-      /* ./syntax//syntax_base.nit:439 */
+      /* syntax/syntax_base.nit:439 */
       REGB2 = REGB1;
     }
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//syntax_base.nit:440 */
+      /* syntax/syntax_base.nit:440 */
       REGB2 = TAG_Int(3);
       fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_1) {
@@ -2977,17 +2977,17 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_expr(val_t p0, val_t p1){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
       fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
       CALL_standard___file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-      /* ./syntax//syntax_base.nit:441 */
+      /* syntax/syntax_base.nit:441 */
       nit_abort("Aborted", NULL, LOCATE_syntax___syntax_base, 441);
     }
-    /* ./syntax//syntax_base.nit:445 */
+    /* syntax/syntax_base.nit:445 */
     REGB2 = TAG_Bool(false);
     goto label3;
   } else {
-    /* ./syntax//syntax_base.nit:446 */
+    /* syntax/syntax_base.nit:446 */
     REGB1 = CALL_syntax___syntax_base___AExpr___is_statement(fra.me.REG[1])(fra.me.REG[1]);
     if (UNTAG_Bool(REGB1)) {
-      /* ./syntax//syntax_base.nit:447 */
+      /* syntax/syntax_base.nit:447 */
       if (!once_value_4) {
         fra.me.REG[2] = BOX_NativeString("Type error: expected expression.");
         REGB1 = TAG_Int(32);
@@ -2997,13 +2997,13 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_expr(val_t p0, val_t p1){
       } else fra.me.REG[2] = once_value_4;
       fra.me.REG[2] = fra.me.REG[2];
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
-      /* ./syntax//syntax_base.nit:448 */
+      /* syntax/syntax_base.nit:448 */
       REGB1 = TAG_Bool(false);
       REGB2 = REGB1;
       goto label3;
     }
   }
-  /* ./syntax//syntax_base.nit:450 */
+  /* syntax/syntax_base.nit:450 */
   REGB1 = TAG_Bool(true);
   REGB2 = REGB1;
   goto label3;
@@ -3030,7 +3030,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(val_t p0, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:456 */
+  /* syntax/syntax_base.nit:456 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3047,7 +3047,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(val_t p0, val
     REGB0 = TAG_Bool(false);
     goto label1;
   }
-  /* ./syntax//syntax_base.nit:457 */
+  /* syntax/syntax_base.nit:457 */
   REGB1 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (UNTAG_Bool(REGB1)) {
     fra.me.REG[3] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]);
@@ -3083,14 +3083,14 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(val_t p0
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:472 */
+  /* syntax/syntax_base.nit:472 */
   fra.me.REG[3] = NIT_NULL;
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr_1));
   switch ((&(fra.me))->has_broke) {
     case 0: break;
     case 1: (&(fra.me))->has_broke = 0; goto label3;
   }
-  /* ./syntax//syntax_base.nit:486 */
+  /* syntax/syntax_base.nit:486 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3113,7 +3113,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(val_t p0
     case 0: break;
     case 1: (&(fra.me))->has_broke = 0; goto label3;
   }
-  /* ./syntax//syntax_base.nit:497 */
+  /* syntax/syntax_base.nit:497 */
   fra.me.REG[4] = fra.me.REG[1];
   goto label3;
   label3: while(0);
@@ -3127,7 +3127,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(val_t p0
     val_t REGB2;
     fun_t CREG[1];
     val_t tmp;
-    /* ./syntax//syntax_base.nit:473 */
+    /* syntax/syntax_base.nit:473 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_syntax___syntax_base;
     fra.me.line = 0;
@@ -3142,7 +3142,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(val_t p0
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./syntax//syntax_base.nit:474 */
+    /* syntax/syntax_base.nit:474 */
     REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
@@ -3150,9 +3150,9 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(val_t p0
       closctx->has_broke = 1;
       goto label2;
     }
-    /* ./syntax//syntax_base.nit:475 */
+    /* syntax/syntax_base.nit:475 */
     fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
-    /* ./syntax//syntax_base.nit:476 */
+    /* syntax/syntax_base.nit:476 */
     REGB0 = TAG_Bool(closctx->REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -3176,9 +3176,9 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(val_t p0
       REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
       if (UNTAG_Bool(REGB2)) {
       } else {
-        /* ./../lib/standard//kernel.nit:195 */
+        /* ../lib/standard/kernel.nit:195 */
         REGB1 = TAG_Bool((REGB0)==(REGB1));
-        /* ./syntax//syntax_base.nit:476 */
+        /* syntax/syntax_base.nit:476 */
         REGB2 = REGB1;
       }
       REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
@@ -3187,18 +3187,18 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(val_t p0
       REGB2 = REGB1;
     }
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//syntax_base.nit:478 */
+      /* syntax/syntax_base.nit:478 */
       REGB2 = TAG_Bool(closctx->REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 478);
       }
       fra.me.REG[2] = CALL_metamodel___static_type___MMType___as_nullable(closctx->REG[1])(closctx->REG[1]);
       closctx->REG[1] = fra.me.REG[2];
-      /* ./syntax//syntax_base.nit:479 */
+      /* syntax/syntax_base.nit:479 */
       fra.me.REG[2] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[1] = fra.me.REG[2];
     }
-    /* ./syntax//syntax_base.nit:481 */
+    /* syntax/syntax_base.nit:481 */
     REGB2 = TAG_Bool(closctx->REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -3222,9 +3222,9 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(val_t p0
       REGB2 = REGB1;
     }
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//syntax_base.nit:482 */
+      /* syntax/syntax_base.nit:482 */
       closctx->REG[1] = fra.me.REG[1];
-      /* ./syntax//syntax_base.nit:483 */
+      /* syntax/syntax_base.nit:483 */
       closctx->REG[3] = fra.me.REG[0];
     }
     label2: while(0);
@@ -3244,7 +3244,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(val_t p0
         static val_t once_value_9; /* Once value */
         static val_t once_value_10; /* Once value */
         static val_t once_value_11; /* Once value */
-    /* ./syntax//syntax_base.nit:487 */
+    /* syntax/syntax_base.nit:487 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_syntax___syntax_base;
     fra.me.line = 0;
@@ -3260,12 +3260,12 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(val_t p0
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./syntax//syntax_base.nit:488 */
+    /* syntax/syntax_base.nit:488 */
     fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[1])(fra.me.REG[1], closctx->REG[1]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//syntax_base.nit:489 */
+      /* syntax/syntax_base.nit:489 */
       REGB0 = TAG_Bool(closctx->REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -3279,7 +3279,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(val_t p0
         }
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//syntax_base.nit:490 */
+        /* syntax/syntax_base.nit:490 */
         REGB0 = TAG_Int(5);
         fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_5) {
@@ -3317,7 +3317,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(val_t p0
         fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
         CALL_syntax___syntax_base___AbsSyntaxVisitor___error(closctx->REG[0])(closctx->REG[0], fra.me.REG[0], fra.me.REG[1]);
       } else {
-        /* ./syntax//syntax_base.nit:492 */
+        /* syntax/syntax_base.nit:492 */
         REGB0 = TAG_Int(7);
         fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_8) {
@@ -3372,7 +3372,7 @@ val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(val_t p0
         fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
         CALL_syntax___syntax_base___AbsSyntaxVisitor___error(closctx->REG[0])(closctx->REG[0], fra.me.REG[0], fra.me.REG[1]);
       }
-      /* ./syntax//syntax_base.nit:494 */
+      /* syntax/syntax_base.nit:494 */
       closctx->REG[4] = NIT_NULL;
       closctx->has_broke = 1;
       goto label12;
@@ -3400,12 +3400,12 @@ void syntax___syntax_base___AbsSyntaxVisitor___init(val_t p0, val_t p1, val_t p2
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//syntax_base.nit:500 */
+  /* syntax/syntax_base.nit:500 */
   fra.me.REG[3] = fra.me.REG[0];
   CALL_parser___parser_prod___Visitor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* ./syntax//syntax_base.nit:502 */
+  /* syntax/syntax_base.nit:502 */
   ATTR_syntax___syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[3]) = fra.me.REG[1];
-  /* ./syntax//syntax_base.nit:503 */
+  /* syntax/syntax_base.nit:503 */
   ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[3]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos14] = 1;
@@ -3425,7 +3425,7 @@ void syntax___syntax_base___ANode___accept_abs_syntax_visitor(val_t p0, val_t p1
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:510 */
+  /* syntax/syntax_base.nit:510 */
   CALL_parser___parser_prod___ANode___visit_all(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -3446,9 +3446,9 @@ val_t syntax___syntax_base___Token___to_symbol(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:520 */
+  /* syntax/syntax_base.nit:520 */
   fra.me.REG[1] = ATTR_syntax___syntax_base___Token____symbol_cache(fra.me.REG[0]);
-  /* ./syntax//syntax_base.nit:521 */
+  /* syntax/syntax_base.nit:521 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3462,14 +3462,14 @@ val_t syntax___syntax_base___Token___to_symbol(val_t p0){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//syntax_base.nit:522 */
-    fra.me.REG[2] = CALL_parser___lexer___Token___text(fra.me.REG[0])(fra.me.REG[0]);
+    /* syntax/syntax_base.nit:522 */
+    fra.me.REG[2] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[2] = CALL_standard___symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[1] = fra.me.REG[2];
-    /* ./syntax//syntax_base.nit:523 */
+    /* syntax/syntax_base.nit:523 */
     ATTR_syntax___syntax_base___Token____symbol_cache(fra.me.REG[0]) = fra.me.REG[1];
   }
-  /* ./syntax//syntax_base.nit:525 */
+  /* syntax/syntax_base.nit:525 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -3485,7 +3485,7 @@ val_t syntax___syntax_base___AClassdef___local_class(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:530 */
+  /* syntax/syntax_base.nit:530 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 530);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3502,7 +3502,7 @@ val_t syntax___syntax_base___AClassdef___next_node(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:533 */
+  /* syntax/syntax_base.nit:533 */
   fra.me.REG[0] = ATTR_syntax___syntax_base___AClassdef____next_node(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -3521,7 +3521,7 @@ void syntax___syntax_base___AClassdef___next_node__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:533 */
+  /* syntax/syntax_base.nit:533 */
   ATTR_syntax___syntax_base___AClassdef____next_node(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -3536,7 +3536,7 @@ val_t syntax___syntax_base___APropdef___self_var(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:538 */
+  /* syntax/syntax_base.nit:538 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 538);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3551,7 +3551,7 @@ val_t syntax___syntax_base___AAttrPropdef___prop(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:543 */
+  /* syntax/syntax_base.nit:543 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 543);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3566,7 +3566,7 @@ val_t syntax___syntax_base___AAttrPropdef___readmethod(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:546 */
+  /* syntax/syntax_base.nit:546 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 546);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3581,7 +3581,7 @@ val_t syntax___syntax_base___AAttrPropdef___writemethod(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:549 */
+  /* syntax/syntax_base.nit:549 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 549);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3599,7 +3599,7 @@ val_t syntax___syntax_base___AConcreteInitPropdef___super_init_calls(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:554 */
+  /* syntax/syntax_base.nit:554 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AConcreteInitPropdef____super_init_calls(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3622,7 +3622,7 @@ val_t syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(va
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:555 */
+  /* syntax/syntax_base.nit:555 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AConcreteInitPropdef____explicit_super_init_calls(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3642,7 +3642,7 @@ val_t syntax___syntax_base___AMethPropdef___method(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:559 */
+  /* syntax/syntax_base.nit:559 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 559);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3657,7 +3657,7 @@ val_t syntax___syntax_base___ATypePropdef___prop(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:564 */
+  /* syntax/syntax_base.nit:564 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 564);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3672,7 +3672,7 @@ val_t syntax___syntax_base___AParam___position(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:569 */
+  /* syntax/syntax_base.nit:569 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 569);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3687,7 +3687,7 @@ val_t syntax___syntax_base___AParam___variable(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:572 */
+  /* syntax/syntax_base.nit:572 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 572);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3702,7 +3702,7 @@ val_t syntax___syntax_base___AClosureDecl___position(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:577 */
+  /* syntax/syntax_base.nit:577 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 577);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3717,7 +3717,7 @@ val_t syntax___syntax_base___AClosureDecl___variable(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:580 */
+  /* syntax/syntax_base.nit:580 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 580);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3732,7 +3732,7 @@ val_t syntax___syntax_base___AType___is_typed(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:585 */
+  /* syntax/syntax_base.nit:585 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 585);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3747,7 +3747,7 @@ val_t syntax___syntax_base___AType___stype(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:590 */
+  /* syntax/syntax_base.nit:590 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 590);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -3779,14 +3779,14 @@ val_t syntax___syntax_base___AType___get_local_class(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:601 */
+  /* syntax/syntax_base.nit:601 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AType___n_id(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//syntax_base.nit:602 */
+  /* syntax/syntax_base.nit:602 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//syntax_base.nit:603 */
+  /* syntax/syntax_base.nit:603 */
   fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//syntax_base.nit:605 */
+  /* syntax/syntax_base.nit:605 */
   fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
   if (UNTAG_Bool(REGB0)) {
@@ -3796,7 +3796,7 @@ val_t syntax___syntax_base___AType___get_local_class(val_t p0, val_t p1){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//syntax_base.nit:606 */
+    /* syntax/syntax_base.nit:606 */
     fra.me.REG[4] = CALL_parser___parser_nodes___AType___n_id(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Int(3);
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -3822,18 +3822,18 @@ val_t syntax___syntax_base___AType___get_local_class(val_t p0, val_t p1){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]);
-    /* ./syntax//syntax_base.nit:607 */
+    /* syntax/syntax_base.nit:607 */
     REGB0 = TAG_Bool(true);
     ATTR_syntax___syntax_base___AType____stype_cached(fra.me.REG[0]) = REGB0;
-    /* ./syntax//syntax_base.nit:608 */
+    /* syntax/syntax_base.nit:608 */
     fra.me.REG[5] = NIT_NULL;
     goto label3;
   }
-  /* ./syntax//syntax_base.nit:611 */
+  /* syntax/syntax_base.nit:611 */
   REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//syntax_base.nit:612 */
+    /* syntax/syntax_base.nit:612 */
     fra.me.REG[4] = CALL_parser___parser_nodes___AType___n_id(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Int(5);
     fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -3870,19 +3870,19 @@ val_t syntax___syntax_base___AType___get_local_class(val_t p0, val_t p1){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
     fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[6]);
-    /* ./syntax//syntax_base.nit:613 */
+    /* syntax/syntax_base.nit:613 */
     REGB0 = TAG_Bool(true);
     ATTR_syntax___syntax_base___AType____stype_cached(fra.me.REG[0]) = REGB0;
-    /* ./syntax//syntax_base.nit:614 */
+    /* syntax/syntax_base.nit:614 */
     fra.me.REG[5] = NIT_NULL;
     goto label3;
   }
-  /* ./syntax//syntax_base.nit:617 */
+  /* syntax/syntax_base.nit:617 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./syntax//syntax_base.nit:618 */
+  /* syntax/syntax_base.nit:618 */
   fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
   CALL_syntax___syntax_base___MMGlobalClass___check_visibility(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
-  /* ./syntax//syntax_base.nit:619 */
+  /* syntax/syntax_base.nit:619 */
   fra.me.REG[5] = fra.me.REG[2];
   goto label3;
   label3: while(0);
@@ -3927,7 +3927,7 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:628 */
+  /* syntax/syntax_base.nit:628 */
   REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AType____stype_cached(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -3938,21 +3938,21 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
     fra.me.REG[2] = ATTR_syntax___syntax_base___AType____stype_cache(fra.me.REG[0]);
     goto label1;
   }
-  /* ./syntax//syntax_base.nit:629 */
+  /* syntax/syntax_base.nit:629 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___syntax_base___AType____stype_cached(fra.me.REG[0]) = REGB0;
-  /* ./syntax//syntax_base.nit:631 */
+  /* syntax/syntax_base.nit:631 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AType___n_id(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//syntax_base.nit:632 */
+  /* syntax/syntax_base.nit:632 */
   fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//syntax_base.nit:633 */
+  /* syntax/syntax_base.nit:633 */
   fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//syntax_base.nit:636 */
+  /* syntax/syntax_base.nit:636 */
   fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//syntax_base.nit:637 */
+    /* syntax/syntax_base.nit:637 */
     fra.me.REG[5] = CALL_parser___parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[5])(fra.me.REG[5]);
     REGB1 = TAG_Int(0);
@@ -3961,11 +3961,11 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-    /* ./syntax//syntax_base.nit:637 */
+    /* syntax/syntax_base.nit:637 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./syntax//syntax_base.nit:638 */
+      /* syntax/syntax_base.nit:638 */
       REGB1 = TAG_Int(3);
       fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_2) {
@@ -3990,14 +3990,14 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
       fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
-      /* ./syntax//syntax_base.nit:639 */
+      /* syntax/syntax_base.nit:639 */
       fra.me.REG[2] = NIT_NULL;
       goto label1;
     }
-    /* ./syntax//syntax_base.nit:641 */
+    /* syntax/syntax_base.nit:641 */
     fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[4])(fra.me.REG[4]);
     fra.me.REG[5] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
-    /* ./syntax//syntax_base.nit:642 */
+    /* syntax/syntax_base.nit:642 */
     fra.me.REG[6] = CALL_parser___parser_nodes___AType___n_kwnullable(fra.me.REG[0])(fra.me.REG[0]);
     REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
@@ -4020,16 +4020,16 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
       fra.me.REG[6] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[5])(fra.me.REG[5]);
       fra.me.REG[5] = fra.me.REG[6];
     }
-    /* ./syntax//syntax_base.nit:643 */
+    /* syntax/syntax_base.nit:643 */
     ATTR_syntax___syntax_base___AType____stype_cache(fra.me.REG[0]) = fra.me.REG[5];
-    /* ./syntax//syntax_base.nit:644 */
+    /* syntax/syntax_base.nit:644 */
     fra.me.REG[2] = fra.me.REG[5];
     goto label1;
   }
-  /* ./syntax//syntax_base.nit:647 */
+  /* syntax/syntax_base.nit:647 */
   REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   if (UNTAG_Bool(REGB1)) {
-    /* ./syntax//syntax_base.nit:648 */
+    /* syntax/syntax_base.nit:648 */
     fra.me.REG[6] = CALL_parser___parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
     REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[6])(fra.me.REG[6]);
     REGB0 = TAG_Int(0);
@@ -4038,11 +4038,11 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
-    /* ./syntax//syntax_base.nit:648 */
+    /* syntax/syntax_base.nit:648 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//syntax_base.nit:649 */
+      /* syntax/syntax_base.nit:649 */
       REGB0 = TAG_Int(3);
       fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_4) {
@@ -4067,18 +4067,18 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
       fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[6]);
-      /* ./syntax//syntax_base.nit:650 */
+      /* syntax/syntax_base.nit:650 */
       fra.me.REG[2] = NIT_NULL;
       goto label1;
     }
-    /* ./syntax//syntax_base.nit:652 */
+    /* syntax/syntax_base.nit:652 */
     fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
     fra.me.REG[6] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[6])(fra.me.REG[6]);
     fra.me.REG[6] = CALL_metamodel___virtualtype___MMLocalClass___select_virtual_type(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
     fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
     fra.me.REG[4] = CALL_metamodel___virtualtype___MMTypeProperty___stype_for(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
     fra.me.REG[5] = fra.me.REG[4];
-    /* ./syntax//syntax_base.nit:653 */
+    /* syntax/syntax_base.nit:653 */
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -4092,7 +4092,7 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
       }
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//syntax_base.nit:654 */
+      /* syntax/syntax_base.nit:654 */
       REGB0 = TAG_Int(3);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_6) {
@@ -4117,11 +4117,11 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
       fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
-      /* ./syntax//syntax_base.nit:655 */
+      /* syntax/syntax_base.nit:655 */
       fra.me.REG[2] = NIT_NULL;
       goto label1;
     }
-    /* ./syntax//syntax_base.nit:657 */
+    /* syntax/syntax_base.nit:657 */
     fra.me.REG[4] = CALL_parser___parser_nodes___AType___n_kwnullable(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
@@ -4144,15 +4144,15 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
       fra.me.REG[4] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[5])(fra.me.REG[5]);
       fra.me.REG[5] = fra.me.REG[4];
     }
-    /* ./syntax//syntax_base.nit:658 */
+    /* syntax/syntax_base.nit:658 */
     ATTR_syntax___syntax_base___AType____stype_cache(fra.me.REG[0]) = fra.me.REG[5];
-    /* ./syntax//syntax_base.nit:659 */
+    /* syntax/syntax_base.nit:659 */
     fra.me.REG[2] = fra.me.REG[5];
     goto label1;
   }
-  /* ./syntax//syntax_base.nit:662 */
+  /* syntax/syntax_base.nit:662 */
   fra.me.REG[4] = CALL_syntax___syntax_base___AType___get_local_class(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//syntax_base.nit:663 */
+  /* syntax/syntax_base.nit:663 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -4169,10 +4169,10 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
     fra.me.REG[2] = NIT_NULL;
     goto label1;
   }
-  /* ./syntax//syntax_base.nit:665 */
+  /* syntax/syntax_base.nit:665 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//syntax_base.nit:666 */
+  /* syntax/syntax_base.nit:666 */
   REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 666);
@@ -4181,25 +4181,25 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB1)==(REGB0));
-    /* ./syntax//syntax_base.nit:666 */
+    /* syntax/syntax_base.nit:666 */
     REGB2 = REGB1;
   }
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//syntax_base.nit:667 */
+    /* syntax/syntax_base.nit:667 */
     REGB2 = TAG_Int(0);
     REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
     if (UNTAG_Bool(REGB1)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB2 = TAG_Bool((REGB0)==(REGB2));
-      /* ./syntax//syntax_base.nit:667 */
+      /* syntax/syntax_base.nit:667 */
       REGB1 = REGB2;
     }
     if (UNTAG_Bool(REGB1)) {
-      /* ./syntax//syntax_base.nit:668 */
+      /* syntax/syntax_base.nit:668 */
       REGB1 = TAG_Int(3);
       fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_8) {
@@ -4225,7 +4225,7 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
       fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
     } else {
-      /* ./syntax//syntax_base.nit:669 */
+      /* syntax/syntax_base.nit:669 */
       REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 669);
@@ -4235,13 +4235,13 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
       REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
       if (UNTAG_Bool(REGB3)) {
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB2 = TAG_Bool((REGB1)==(REGB2));
-        /* ./syntax//syntax_base.nit:669 */
+        /* syntax/syntax_base.nit:669 */
         REGB3 = REGB2;
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./syntax//syntax_base.nit:670 */
+        /* syntax/syntax_base.nit:670 */
         REGB3 = TAG_Int(3);
         fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
         if (!once_value_10) {
@@ -4267,7 +4267,7 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
         fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
         CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
       } else {
-        /* ./syntax//syntax_base.nit:672 */
+        /* syntax/syntax_base.nit:672 */
         REGB3 = TAG_Int(7);
         fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
         if (!once_value_12) {
@@ -4321,31 +4321,31 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
         CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
       }
     }
-    /* ./syntax//syntax_base.nit:674 */
+    /* syntax/syntax_base.nit:674 */
     fra.me.REG[2] = NIT_NULL;
     goto label1;
   }
-  /* ./syntax//syntax_base.nit:677 */
+  /* syntax/syntax_base.nit:677 */
   REGB3 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB3 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB3));
-  /* ./syntax//syntax_base.nit:677 */
+  /* syntax/syntax_base.nit:677 */
   if (UNTAG_Bool(REGB3)) {
-    /* ./syntax//syntax_base.nit:678 */
+    /* syntax/syntax_base.nit:678 */
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-    /* ./syntax//syntax_base.nit:679 */
+    /* syntax/syntax_base.nit:679 */
     fra.me.REG[6] = CALL_parser___parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[6])(fra.me.REG[6], (&(fra.me)), ((fun_t)OC_syntax___syntax_base___AType___get_unchecked_stype_16));
     switch ((&(fra.me))->has_broke) {
       case 0: break;
       case 1: (&(fra.me))->has_broke = 0; goto label1;
     }
-    /* ./syntax//syntax_base.nit:684 */
+    /* syntax/syntax_base.nit:684 */
     REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB3)) {
       nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 684);
@@ -4353,7 +4353,7 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
     fra.me.REG[3] = CALL_metamodel___genericity___MMLocalClass___get_instantiate_type(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
     fra.me.REG[5] = fra.me.REG[3];
   } else {
-    /* ./syntax//syntax_base.nit:686 */
+    /* syntax/syntax_base.nit:686 */
     REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB3)) {
       nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 686);
@@ -4361,7 +4361,7 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
     fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
     fra.me.REG[5] = fra.me.REG[4];
   }
-  /* ./syntax//syntax_base.nit:688 */
+  /* syntax/syntax_base.nit:688 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AType___n_kwnullable(fra.me.REG[0])(fra.me.REG[0]);
   REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB3)) {
@@ -4384,9 +4384,9 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
     fra.me.REG[4] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[5])(fra.me.REG[5]);
     fra.me.REG[5] = fra.me.REG[4];
   }
-  /* ./syntax//syntax_base.nit:689 */
+  /* syntax/syntax_base.nit:689 */
   ATTR_syntax___syntax_base___AType____stype_cache(fra.me.REG[0]) = fra.me.REG[5];
-  /* ./syntax//syntax_base.nit:690 */
+  /* syntax/syntax_base.nit:690 */
   fra.me.REG[2] = fra.me.REG[5];
   goto label1;
   label1: while(0);
@@ -4411,9 +4411,9 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./syntax//syntax_base.nit:680 */
+      /* syntax/syntax_base.nit:680 */
       fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_unchecked_stype(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
-      /* ./syntax//syntax_base.nit:681 */
+      /* syntax/syntax_base.nit:681 */
       REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -4431,7 +4431,7 @@ val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
         closctx->has_broke = 1;
         goto label17;
       }
-      /* ./syntax//syntax_base.nit:682 */
+      /* syntax/syntax_base.nit:682 */
       CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[0]);
       label17: while(0);
       stack_frame_head = fra.me.prev;
@@ -4455,9 +4455,9 @@ val_t syntax___syntax_base___AType___get_stype(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:697 */
+  /* syntax/syntax_base.nit:697 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AType___get_unchecked_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//syntax_base.nit:698 */
+  /* syntax/syntax_base.nit:698 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -4474,7 +4474,7 @@ val_t syntax___syntax_base___AType___get_stype(val_t p0, val_t p1){
     fra.me.REG[3] = NIT_NULL;
     goto label1;
   }
-  /* ./syntax//syntax_base.nit:699 */
+  /* syntax/syntax_base.nit:699 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 699);
@@ -4485,9 +4485,9 @@ val_t syntax___syntax_base___AType___get_stype(val_t p0, val_t p1){
     fra.me.REG[3] = NIT_NULL;
     goto label1;
   }
-  /* ./syntax//syntax_base.nit:700 */
+  /* syntax/syntax_base.nit:700 */
   CALL_syntax___syntax_base___AType___check_conform(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//syntax_base.nit:701 */
+  /* syntax/syntax_base.nit:701 */
   fra.me.REG[3] = fra.me.REG[2];
   goto label1;
   label1: while(0);
@@ -4517,9 +4517,9 @@ void syntax___syntax_base___AType___check_conform(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:709 */
+  /* syntax/syntax_base.nit:709 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AType___get_unchecked_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//syntax_base.nit:710 */
+  /* syntax/syntax_base.nit:710 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -4535,69 +4535,69 @@ void syntax___syntax_base___AType___check_conform(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//syntax_base.nit:711 */
+  /* syntax/syntax_base.nit:711 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 711);
   }
   fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//syntax_base.nit:712 */
+  /* syntax/syntax_base.nit:712 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./syntax//syntax_base.nit:713 */
+  /* syntax/syntax_base.nit:713 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-  /* ./syntax//syntax_base.nit:713 */
+  /* syntax/syntax_base.nit:713 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./syntax//syntax_base.nit:714 */
+    /* syntax/syntax_base.nit:714 */
     REGB1 = TAG_Int(0);
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     while(1) {
       REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       if (UNTAG_Bool(REGB2)) {
-        /* ./syntax//syntax_base.nit:714 */
+        /* syntax/syntax_base.nit:714 */
         REGB2 = REGB1;
-        /* ./syntax//syntax_base.nit:715 */
+        /* syntax/syntax_base.nit:715 */
         fra.me.REG[4] = CALL_parser___parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
         fra.me.REG[4] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[4])(fra.me.REG[4], REGB2);
-        /* ./syntax//syntax_base.nit:716 */
+        /* syntax/syntax_base.nit:716 */
         fra.me.REG[5] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
-        /* ./syntax//syntax_base.nit:717 */
+        /* syntax/syntax_base.nit:717 */
         fra.me.REG[6] = CALL_metamodel___genericity___MMLocalClass___get_formal(fra.me.REG[3])(fra.me.REG[3], REGB2);
-        /* ./syntax//syntax_base.nit:718 */
+        /* syntax/syntax_base.nit:718 */
         REGB2 = CALL_metamodel___static_type___MMType___is_valid(fra.me.REG[6])(fra.me.REG[6]);
         REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
         if (UNTAG_Bool(REGB2)) {
           goto label1;
         }
-        /* ./syntax//syntax_base.nit:719 */
+        /* syntax/syntax_base.nit:719 */
         fra.me.REG[6] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[6])(fra.me.REG[6]);
-        /* ./syntax//syntax_base.nit:720 */
+        /* syntax/syntax_base.nit:720 */
         fra.me.REG[7] = CALL_metamodel___static_type___MMType___adapt_to(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
         fra.me.REG[6] = fra.me.REG[7];
-        /* ./syntax//syntax_base.nit:721 */
+        /* syntax/syntax_base.nit:721 */
         CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-        /* ./../lib/standard//kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:354 */
         REGB1 = REGB2;
       } else {
-        /* ./../lib/standard//kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:352 */
         goto label2;
       }
     }
@@ -4617,7 +4617,7 @@ val_t syntax___syntax_base___AExpr___is_typed(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:728 */
+  /* syntax/syntax_base.nit:728 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 728);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4632,7 +4632,7 @@ val_t syntax___syntax_base___AExpr___is_statement(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:733 */
+  /* syntax/syntax_base.nit:733 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 733);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4647,7 +4647,7 @@ val_t syntax___syntax_base___AExpr___stype(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:737 */
+  /* syntax/syntax_base.nit:737 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 737);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4662,7 +4662,7 @@ val_t syntax___syntax_base___AAbsAbsSendExpr___prop_signature(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:744 */
+  /* syntax/syntax_base.nit:744 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 744);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4677,7 +4677,7 @@ val_t syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:747 */
+  /* syntax/syntax_base.nit:747 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 747);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4692,7 +4692,7 @@ val_t syntax___syntax_base___AAbsSendExpr___prop(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:753 */
+  /* syntax/syntax_base.nit:753 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 753);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4707,7 +4707,7 @@ val_t syntax___syntax_base___AAbsSendExpr___return_type(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:756 */
+  /* syntax/syntax_base.nit:756 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 756);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4722,7 +4722,7 @@ val_t syntax___syntax_base___ASuperExpr___init_in_superclass(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:766 */
+  /* syntax/syntax_base.nit:766 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 766);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4737,7 +4737,7 @@ val_t syntax___syntax_base___ASendExpr___closure_defs(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:775 */
+  /* syntax/syntax_base.nit:775 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 775);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4752,7 +4752,7 @@ val_t syntax___syntax_base___AReassignFormExpr___assign_method(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:780 */
+  /* syntax/syntax_base.nit:780 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 780);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4767,7 +4767,7 @@ val_t syntax___syntax_base___ASendReassignExpr___read_prop(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:787 */
+  /* syntax/syntax_base.nit:787 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 787);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4782,7 +4782,7 @@ val_t syntax___syntax_base___AAttrFormExpr___prop(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:801 */
+  /* syntax/syntax_base.nit:801 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 801);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4797,7 +4797,7 @@ val_t syntax___syntax_base___AAttrFormExpr___attr_type(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:804 */
+  /* syntax/syntax_base.nit:804 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 804);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4812,7 +4812,7 @@ val_t syntax___syntax_base___ASuperstringExpr___atype(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:809 */
+  /* syntax/syntax_base.nit:809 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 809);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4827,7 +4827,7 @@ val_t syntax___syntax_base___AVardeclExpr___variable(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:813 */
+  /* syntax/syntax_base.nit:813 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 813);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4842,7 +4842,7 @@ val_t syntax___syntax_base___AForExpr___variables(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:819 */
+  /* syntax/syntax_base.nit:819 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 819);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4857,7 +4857,7 @@ val_t syntax___syntax_base___ASelfExpr___variable(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:824 */
+  /* syntax/syntax_base.nit:824 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 824);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4872,7 +4872,7 @@ val_t syntax___syntax_base___AVarFormExpr___variable(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:829 */
+  /* syntax/syntax_base.nit:829 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 829);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4887,7 +4887,7 @@ val_t syntax___syntax_base___AClosureCallExpr___variable(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:835 */
+  /* syntax/syntax_base.nit:835 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 835);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4902,7 +4902,7 @@ val_t syntax___syntax_base___AClosureDef___closure(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:840 */
+  /* syntax/syntax_base.nit:840 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 840);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
@@ -4919,7 +4919,7 @@ val_t syntax___syntax_base___AClosureDef___variables(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//syntax_base.nit:843 */
+  /* syntax/syntax_base.nit:843 */
   fra.me.REG[0] = ATTR_syntax___syntax_base___AClosureDef____variables(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -4938,7 +4938,7 @@ void syntax___syntax_base___AClosureDef___variables__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//syntax_base.nit:843 */
+  /* syntax/syntax_base.nit:843 */
   ATTR_syntax___syntax_base___AClosureDef____variables(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -4953,8 +4953,28 @@ val_t syntax___syntax_base___AMethid___name(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//syntax_base.nit:848 */
+  /* syntax/syntax_base.nit:848 */
   nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 848);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
+val_t syntax___syntax_base___AExprs___to_a(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_syntax___syntax_base;
+  fra.me.line = 853;
+  fra.me.meth = LOCATE_syntax___syntax_base___AExprs___to_a;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* syntax/syntax_base.nit:854 */
+  fra.me.REG[0] = CALL_parser___parser_nodes___AExprs___n_exprs(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[0] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[0])(fra.me.REG[0]);
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
index af09278..48a690a 100644 (file)
@@ -244,6 +244,7 @@ extern const int SFT_syntax___syntax_base[];
 #define CALL_syntax___syntax_base___AClosureDef___variables(recv) ((syntax___syntax_base___AClosureDef___variables_t)CALL((recv), (SFT_syntax___syntax_base[98] + 1)))
 #define CALL_syntax___syntax_base___AClosureDef___variables__eq(recv) ((syntax___syntax_base___AClosureDef___variables__eq_t)CALL((recv), (SFT_syntax___syntax_base[98] + 2)))
 #define CALL_syntax___syntax_base___AMethid___name(recv) ((syntax___syntax_base___AMethid___name_t)CALL((recv), (SFT_syntax___syntax_base[99] + 0)))
+#define CALL_syntax___syntax_base___AExprs___to_a(recv) ((syntax___syntax_base___AExprs___to_a_t)CALL((recv), (SFT_syntax___syntax_base[100] + 0)))
 static const char * const LOCATE_syntax___syntax_base___MMSrcModule___clear_ast = "syntax_base::MMSrcModule::clear_ast";
 void syntax___syntax_base___MMSrcModule___clear_ast(val_t p0);
 typedef void (*syntax___syntax_base___MMSrcModule___clear_ast_t)(val_t p0);
@@ -531,11 +532,11 @@ val_t NEW_AbsSyntaxVisitor_syntax___syntax_base___AbsSyntaxVisitor___init(val_t
 static const char * const LOCATE_syntax___syntax_base___ANode___accept_abs_syntax_visitor = "syntax_base::ANode::accept_abs_syntax_visitor";
 void syntax___syntax_base___ANode___accept_abs_syntax_visitor(val_t p0, val_t p1);
 typedef void (*syntax___syntax_base___ANode___accept_abs_syntax_visitor_t)(val_t p0, val_t p1);
-val_t NEW_ANode_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANode_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___Token___to_symbol = "syntax_base::Token::to_symbol";
 val_t syntax___syntax_base___Token___to_symbol(val_t p0);
 typedef val_t (*syntax___syntax_base___Token___to_symbol_t)(val_t p0);
-val_t NEW_Token_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_Token_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___AClassdef___local_class = "syntax_base::AClassdef::local_class";
 val_t syntax___syntax_base___AClassdef___local_class(val_t p0);
 typedef val_t (*syntax___syntax_base___AClassdef___local_class_t)(val_t p0);
@@ -545,11 +546,11 @@ typedef val_t (*syntax___syntax_base___AClassdef___next_node_t)(val_t p0);
 static const char * const LOCATE_syntax___syntax_base___AClassdef___next_node__eq = "syntax_base::AClassdef::next_node=";
 void syntax___syntax_base___AClassdef___next_node__eq(val_t p0, val_t p1);
 typedef void (*syntax___syntax_base___AClassdef___next_node__eq_t)(val_t p0, val_t p1);
-val_t NEW_AClassdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AClassdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___APropdef___self_var = "syntax_base::APropdef::self_var";
 val_t syntax___syntax_base___APropdef___self_var(val_t p0);
 typedef val_t (*syntax___syntax_base___APropdef___self_var_t)(val_t p0);
-val_t NEW_APropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_APropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___AAttrPropdef___prop = "syntax_base::AAttrPropdef::prop";
 val_t syntax___syntax_base___AAttrPropdef___prop(val_t p0);
 typedef val_t (*syntax___syntax_base___AAttrPropdef___prop_t)(val_t p0);
@@ -561,28 +562,32 @@ val_t syntax___syntax_base___AAttrPropdef___writemethod(val_t p0);
 typedef val_t (*syntax___syntax_base___AAttrPropdef___writemethod_t)(val_t p0);
 val_t NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___empty_init();
 val_t NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, val_t p9);
-val_t NEW_AAttrPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAttrPropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___AConcreteInitPropdef___super_init_calls = "syntax_base::AConcreteInitPropdef::super_init_calls";
 val_t syntax___syntax_base___AConcreteInitPropdef___super_init_calls(val_t p0);
 typedef val_t (*syntax___syntax_base___AConcreteInitPropdef___super_init_calls_t)(val_t p0);
 static const char * const LOCATE_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls = "syntax_base::AConcreteInitPropdef::explicit_super_init_calls";
 val_t syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(val_t p0);
 typedef val_t (*syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls_t)(val_t p0);
+val_t NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteMethPropdef___empty_init();
 val_t NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___empty_init();
 val_t NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
-val_t NEW_AConcreteInitPropdef_parser___parser_nodes___AConcreteInitPropdef___init();
+val_t NEW_AConcreteInitPropdef_parser___parser_nodes___ANode___init();
+val_t NEW_AConcreteInitPropdef_parser___parser_prod___AMethPropdef___empty_init();
+val_t NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
+val_t NEW_AConcreteInitPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_syntax___syntax_base___AMethPropdef___method = "syntax_base::AMethPropdef::method";
 val_t syntax___syntax_base___AMethPropdef___method(val_t p0);
 typedef val_t (*syntax___syntax_base___AMethPropdef___method_t)(val_t p0);
 val_t NEW_AMethPropdef_parser___parser_prod___AMethPropdef___empty_init();
 val_t NEW_AMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-val_t NEW_AMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMethPropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___ATypePropdef___prop = "syntax_base::ATypePropdef::prop";
 val_t syntax___syntax_base___ATypePropdef___prop(val_t p0);
 typedef val_t (*syntax___syntax_base___ATypePropdef___prop_t)(val_t p0);
 val_t NEW_ATypePropdef_parser___parser_prod___ATypePropdef___empty_init();
 val_t NEW_ATypePropdef_parser___parser_prod___ATypePropdef___init_atypepropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
-val_t NEW_ATypePropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ATypePropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___AParam___position = "syntax_base::AParam::position";
 val_t syntax___syntax_base___AParam___position(val_t p0);
 typedef val_t (*syntax___syntax_base___AParam___position_t)(val_t p0);
@@ -591,7 +596,7 @@ val_t syntax___syntax_base___AParam___variable(val_t p0);
 typedef val_t (*syntax___syntax_base___AParam___variable_t)(val_t p0);
 val_t NEW_AParam_parser___parser_prod___AParam___empty_init();
 val_t NEW_AParam_parser___parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2);
-val_t NEW_AParam_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AParam_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___AClosureDecl___position = "syntax_base::AClosureDecl::position";
 val_t syntax___syntax_base___AClosureDecl___position(val_t p0);
 typedef val_t (*syntax___syntax_base___AClosureDecl___position_t)(val_t p0);
@@ -600,7 +605,7 @@ val_t syntax___syntax_base___AClosureDecl___variable(val_t p0);
 typedef val_t (*syntax___syntax_base___AClosureDecl___variable_t)(val_t p0);
 val_t NEW_AClosureDecl_parser___parser_prod___AClosureDecl___empty_init();
 val_t NEW_AClosureDecl_parser___parser_prod___AClosureDecl___init_aclosuredecl(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-val_t NEW_AClosureDecl_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AClosureDecl_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___AType___is_typed = "syntax_base::AType::is_typed";
 val_t syntax___syntax_base___AType___is_typed(val_t p0);
 typedef val_t (*syntax___syntax_base___AType___is_typed_t)(val_t p0);
@@ -624,7 +629,7 @@ void syntax___syntax_base___AType___check_conform(val_t p0, val_t p1);
 typedef void (*syntax___syntax_base___AType___check_conform_t)(val_t p0, val_t p1);
 val_t NEW_AType_parser___parser_prod___AType___empty_init();
 val_t NEW_AType_parser___parser_prod___AType___init_atype(val_t p0, val_t p1, val_t p2);
-val_t NEW_AType_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AType_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___AExpr___is_typed = "syntax_base::AExpr::is_typed";
 val_t syntax___syntax_base___AExpr___is_typed(val_t p0);
 typedef val_t (*syntax___syntax_base___AExpr___is_typed_t)(val_t p0);
@@ -634,56 +639,56 @@ typedef val_t (*syntax___syntax_base___AExpr___is_statement_t)(val_t p0);
 static const char * const LOCATE_syntax___syntax_base___AExpr___stype = "syntax_base::AExpr::stype";
 val_t syntax___syntax_base___AExpr___stype(val_t p0);
 typedef val_t (*syntax___syntax_base___AExpr___stype_t)(val_t p0);
-val_t NEW_AExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___AAbsAbsSendExpr___prop_signature = "syntax_base::AAbsAbsSendExpr::prop_signature";
 val_t syntax___syntax_base___AAbsAbsSendExpr___prop_signature(val_t p0);
 typedef val_t (*syntax___syntax_base___AAbsAbsSendExpr___prop_signature_t)(val_t p0);
 static const char * const LOCATE_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments = "syntax_base::AAbsAbsSendExpr::raw_arguments";
 val_t syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(val_t p0);
 typedef val_t (*syntax___syntax_base___AAbsAbsSendExpr___raw_arguments_t)(val_t p0);
-val_t NEW_AAbsAbsSendExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAbsAbsSendExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___AAbsSendExpr___prop = "syntax_base::AAbsSendExpr::prop";
 val_t syntax___syntax_base___AAbsSendExpr___prop(val_t p0);
 typedef val_t (*syntax___syntax_base___AAbsSendExpr___prop_t)(val_t p0);
 static const char * const LOCATE_syntax___syntax_base___AAbsSendExpr___return_type = "syntax_base::AAbsSendExpr::return_type";
 val_t syntax___syntax_base___AAbsSendExpr___return_type(val_t p0);
 typedef val_t (*syntax___syntax_base___AAbsSendExpr___return_type_t)(val_t p0);
-val_t NEW_AAbsSendExpr_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_ASuperInitCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAbsSendExpr_parser___parser_nodes___ANode___init();
+val_t NEW_ASuperInitCall_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___ASuperExpr___init_in_superclass = "syntax_base::ASuperExpr::init_in_superclass";
 val_t syntax___syntax_base___ASuperExpr___init_in_superclass(val_t p0);
 typedef val_t (*syntax___syntax_base___ASuperExpr___init_in_superclass_t)(val_t p0);
 val_t NEW_ASuperExpr_parser___parser_prod___ASuperExpr___empty_init();
 val_t NEW_ASuperExpr_parser___parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val_t p2);
-val_t NEW_ASuperExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASuperExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ANewExpr_parser___parser_prod___ANewExpr___empty_init();
 val_t NEW_ANewExpr_parser___parser_prod___ANewExpr___init_anewexpr(val_t p0, val_t p1, val_t p2, val_t p3);
-val_t NEW_ANewExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANewExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___ASendExpr___closure_defs = "syntax_base::ASendExpr::closure_defs";
 val_t syntax___syntax_base___ASendExpr___closure_defs(val_t p0);
 typedef val_t (*syntax___syntax_base___ASendExpr___closure_defs_t)(val_t p0);
 val_t NEW_ASendExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ASendExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
-val_t NEW_ASendExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASendExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___AReassignFormExpr___assign_method = "syntax_base::AReassignFormExpr::assign_method";
 val_t syntax___syntax_base___AReassignFormExpr___assign_method(val_t p0);
 typedef val_t (*syntax___syntax_base___AReassignFormExpr___assign_method_t)(val_t p0);
-val_t NEW_AReassignFormExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AReassignFormExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___ASendReassignExpr___read_prop = "syntax_base::ASendReassignExpr::read_prop";
 val_t syntax___syntax_base___ASendReassignExpr___read_prop(val_t p0);
 typedef val_t (*syntax___syntax_base___ASendReassignExpr___read_prop_t)(val_t p0);
 val_t NEW_ASendReassignExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ASendReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
-val_t NEW_ASendReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASendReassignExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ACallReassignExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ACallReassignExpr_parser___parser_prod___ACallReassignExpr___empty_init();
 val_t NEW_ACallReassignExpr_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-val_t NEW_ACallReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ACallReassignExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ACallReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 val_t NEW_ABraReassignExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ABraReassignExpr_parser___parser_prod___ABraReassignExpr___empty_init();
 val_t NEW_ABraReassignExpr_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t p0, val_t p1, val_t p2, val_t p3);
-val_t NEW_ABraReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABraReassignExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ABraReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 static const char * const LOCATE_syntax___syntax_base___AAttrFormExpr___prop = "syntax_base::AAttrFormExpr::prop";
 val_t syntax___syntax_base___AAttrFormExpr___prop(val_t p0);
@@ -691,41 +696,41 @@ typedef val_t (*syntax___syntax_base___AAttrFormExpr___prop_t)(val_t p0);
 static const char * const LOCATE_syntax___syntax_base___AAttrFormExpr___attr_type = "syntax_base::AAttrFormExpr::attr_type";
 val_t syntax___syntax_base___AAttrFormExpr___attr_type(val_t p0);
 typedef val_t (*syntax___syntax_base___AAttrFormExpr___attr_type_t)(val_t p0);
-val_t NEW_AAttrFormExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAttrFormExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___ASuperstringExpr___atype = "syntax_base::ASuperstringExpr::atype";
 val_t syntax___syntax_base___ASuperstringExpr___atype(val_t p0);
 typedef val_t (*syntax___syntax_base___ASuperstringExpr___atype_t)(val_t p0);
 val_t NEW_ASuperstringExpr_parser___parser_prod___ASuperstringExpr___empty_init();
 val_t NEW_ASuperstringExpr_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0);
-val_t NEW_ASuperstringExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASuperstringExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___AVardeclExpr___variable = "syntax_base::AVardeclExpr::variable";
 val_t syntax___syntax_base___AVardeclExpr___variable(val_t p0);
 typedef val_t (*syntax___syntax_base___AVardeclExpr___variable_t)(val_t p0);
 val_t NEW_AVardeclExpr_parser___parser_prod___AVardeclExpr___empty_init();
 val_t NEW_AVardeclExpr_parser___parser_prod___AVardeclExpr___init_avardeclexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-val_t NEW_AVardeclExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AVardeclExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___AForExpr___variables = "syntax_base::AForExpr::variables";
 val_t syntax___syntax_base___AForExpr___variables(val_t p0);
 typedef val_t (*syntax___syntax_base___AForExpr___variables_t)(val_t p0);
 val_t NEW_AForExpr_parser___parser_prod___AForExpr___empty_init();
 val_t NEW_AForExpr_parser___parser_prod___AForExpr___init_aforexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
-val_t NEW_AForExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AForExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___ASelfExpr___variable = "syntax_base::ASelfExpr::variable";
 val_t syntax___syntax_base___ASelfExpr___variable(val_t p0);
 typedef val_t (*syntax___syntax_base___ASelfExpr___variable_t)(val_t p0);
 val_t NEW_ASelfExpr_parser___parser_prod___ASelfExpr___empty_init();
 val_t NEW_ASelfExpr_parser___parser_prod___ASelfExpr___init_aselfexpr(val_t p0);
-val_t NEW_ASelfExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASelfExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___AVarFormExpr___variable = "syntax_base::AVarFormExpr::variable";
 val_t syntax___syntax_base___AVarFormExpr___variable(val_t p0);
 typedef val_t (*syntax___syntax_base___AVarFormExpr___variable_t)(val_t p0);
-val_t NEW_AVarFormExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AVarFormExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___AClosureCallExpr___variable = "syntax_base::AClosureCallExpr::variable";
 val_t syntax___syntax_base___AClosureCallExpr___variable(val_t p0);
 typedef val_t (*syntax___syntax_base___AClosureCallExpr___variable_t)(val_t p0);
 val_t NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(val_t p0, val_t p1, val_t p2);
 val_t NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___empty_init();
-val_t NEW_AClosureCallExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AClosureCallExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___AClosureDef___closure = "syntax_base::AClosureDef::closure";
 val_t syntax___syntax_base___AClosureDef___closure(val_t p0);
 typedef val_t (*syntax___syntax_base___AClosureDef___closure_t)(val_t p0);
@@ -737,9 +742,13 @@ void syntax___syntax_base___AClosureDef___variables__eq(val_t p0, val_t p1);
 typedef void (*syntax___syntax_base___AClosureDef___variables__eq_t)(val_t p0, val_t p1);
 val_t NEW_AClosureDef_parser___parser_prod___AClosureDef___empty_init();
 val_t NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
-val_t NEW_AClosureDef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AClosureDef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___syntax_base___AMethid___name = "syntax_base::AMethid::name";
 val_t syntax___syntax_base___AMethid___name(val_t p0);
 typedef val_t (*syntax___syntax_base___AMethid___name_t)(val_t p0);
-val_t NEW_AMethid_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMethid_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_syntax___syntax_base___AExprs___to_a = "syntax_base::AExprs::to_a";
+val_t syntax___syntax_base___AExprs___to_a(val_t p0);
+typedef val_t (*syntax___syntax_base___AExprs___to_a_t)(val_t p0);
+val_t NEW_AExprs_parser___parser_nodes___ANode___init();
 #endif
index 8a13e10..7887561 100644 (file)
@@ -14,9 +14,9 @@ void syntax___typing___MMSrcModule___do_typing(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:29 */
+  /* syntax/typing.nit:29 */
   fra.me.REG[1] = NEW_TypingVisitor_syntax___typing___TypingVisitor___init(fra.me.REG[1], fra.me.REG[0]);
-  /* ./syntax//typing.nit:30 */
+  /* syntax/typing.nit:30 */
   fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -38,7 +38,7 @@ void syntax___typing___TypingVisitor___visit(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:43 */
+  /* syntax/typing.nit:43 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -75,7 +75,7 @@ val_t syntax___typing___TypingVisitor___scope_ctx(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:46 */
+  /* syntax/typing.nit:46 */
   REGB0 = TAG_Bool(ATTR_syntax___typing___TypingVisitor____scope_ctx(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -99,9 +99,9 @@ val_t syntax___typing___TypingVisitor___flow_ctx(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:49 */
+  /* syntax/typing.nit:49 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./syntax//typing.nit:50 */
+  /* syntax/typing.nit:50 */
   fra.me.REG[1] = ATTR_syntax___typing___TypingVisitor____flow_ctx(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -127,7 +127,7 @@ void syntax___typing___TypingVisitor___flow_ctx__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:51 */
+  /* syntax/typing.nit:51 */
   ATTR_syntax___typing___TypingVisitor____flow_ctx(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -148,13 +148,13 @@ void syntax___typing___TypingVisitor___mark_is_set(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:56 */
+  /* syntax/typing.nit:56 */
   fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___flow___FlowContext___is_set(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:57 */
+  /* syntax/typing.nit:57 */
   fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_syntax___flow___FlowContext___sub_setvariable(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
@@ -177,7 +177,7 @@ void syntax___typing___TypingVisitor___mark_unreash(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:63 */
+  /* syntax/typing.nit:63 */
   fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_syntax___flow___FlowContext___sub_unreash(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
@@ -201,7 +201,7 @@ void syntax___typing___TypingVisitor___enter_visit_block(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:69 */
+  /* syntax/typing.nit:69 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -217,12 +217,12 @@ void syntax___typing___TypingVisitor___enter_visit_block(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:70 */
+  /* syntax/typing.nit:70 */
   fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___scope___ScopeContext___push(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* ./syntax//typing.nit:71 */
+  /* syntax/typing.nit:71 */
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//typing.nit:72 */
+  /* syntax/typing.nit:72 */
   fra.me.REG[0] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___scope___ScopeContext___pop(fra.me.REG[0])(fra.me.REG[0]);
   label1: while(0);
@@ -243,9 +243,9 @@ val_t syntax___typing___TypingVisitor___base_flow_ctx(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:75 */
+  /* syntax/typing.nit:75 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./syntax//typing.nit:76 */
+  /* syntax/typing.nit:76 */
   fra.me.REG[1] = ATTR_syntax___typing___TypingVisitor____base_flow_ctx(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -271,7 +271,7 @@ void syntax___typing___TypingVisitor___base_flow_ctx__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:77 */
+  /* syntax/typing.nit:77 */
   ATTR_syntax___typing___TypingVisitor____base_flow_ctx(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -290,9 +290,9 @@ val_t syntax___typing___TypingVisitor___self_var(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:79 */
+  /* syntax/typing.nit:79 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./syntax//typing.nit:80 */
+  /* syntax/typing.nit:80 */
   fra.me.REG[1] = ATTR_syntax___typing___TypingVisitor____self_var(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -318,7 +318,7 @@ void syntax___typing___TypingVisitor___self_var__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:81 */
+  /* syntax/typing.nit:81 */
   ATTR_syntax___typing___TypingVisitor____self_var(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -335,7 +335,7 @@ val_t syntax___typing___TypingVisitor___top_block(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:83 */
+  /* syntax/typing.nit:83 */
   fra.me.REG[0] = ATTR_syntax___typing___TypingVisitor____top_block(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -354,7 +354,7 @@ void syntax___typing___TypingVisitor___top_block__eq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:83 */
+  /* syntax/typing.nit:83 */
   ATTR_syntax___typing___TypingVisitor____top_block(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -371,7 +371,7 @@ val_t syntax___typing___TypingVisitor___explicit_super_init_calls(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:86 */
+  /* syntax/typing.nit:86 */
   fra.me.REG[0] = ATTR_syntax___typing___TypingVisitor____explicit_super_init_calls(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -390,7 +390,7 @@ void syntax___typing___TypingVisitor___explicit_super_init_calls__eq(val_t p0, v
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:86 */
+  /* syntax/typing.nit:86 */
   ATTR_syntax___typing___TypingVisitor____explicit_super_init_calls(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
@@ -408,7 +408,7 @@ val_t syntax___typing___TypingVisitor___explicit_other_init_call(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:89 */
+  /* syntax/typing.nit:89 */
   REGB0 = TAG_Bool(ATTR_syntax___typing___TypingVisitor____explicit_other_init_call(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -432,7 +432,7 @@ void syntax___typing___TypingVisitor___explicit_other_init_call__eq(val_t p0, va
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./syntax//typing.nit:89 */
+  /* syntax/typing.nit:89 */
   ATTR_syntax___typing___TypingVisitor____explicit_other_init_call(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -453,9 +453,9 @@ void syntax___typing___TypingVisitor___use_if_true_flow_ctx(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:95 */
+  /* syntax/typing.nit:95 */
   fra.me.REG[1] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:96 */
+  /* syntax/typing.nit:96 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -491,9 +491,9 @@ void syntax___typing___TypingVisitor___use_if_false_flow_ctx(val_t p0, val_t p1)
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:102 */
+  /* syntax/typing.nit:102 */
   fra.me.REG[1] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:103 */
+  /* syntax/typing.nit:103 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -526,7 +526,7 @@ val_t syntax___typing___TypingVisitor___is_default_closure_definition(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:106 */
+  /* syntax/typing.nit:106 */
   REGB0 = TAG_Bool(ATTR_syntax___typing___TypingVisitor____is_default_closure_definition(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -550,7 +550,7 @@ void syntax___typing___TypingVisitor___is_default_closure_definition__eq(val_t p
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./syntax//typing.nit:106 */
+  /* syntax/typing.nit:106 */
   ATTR_syntax___typing___TypingVisitor____is_default_closure_definition(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -568,7 +568,7 @@ val_t syntax___typing___TypingVisitor___once_count(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:109 */
+  /* syntax/typing.nit:109 */
   REGB0 = TAG_Bool(ATTR_syntax___typing___TypingVisitor____once_count(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -592,7 +592,7 @@ void syntax___typing___TypingVisitor___once_count__eq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./syntax//typing.nit:109 */
+  /* syntax/typing.nit:109 */
   ATTR_syntax___typing___TypingVisitor____once_count(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
   return;
@@ -615,7 +615,7 @@ void syntax___typing___TypingVisitor___init(val_t p0, val_t p1, val_t p2, int* i
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//typing.nit:112 */
+  /* syntax/typing.nit:112 */
   CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -666,15 +666,15 @@ val_t syntax___typing___TypingVisitor___get_default_constructor_for(val_t p0, va
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./syntax//typing.nit:114 */
+  /* syntax/typing.nit:114 */
   fra.me.REG[4] = fra.me.REG[0];
-  /* ./syntax//typing.nit:116 */
+  /* syntax/typing.nit:116 */
   fra.me.REG[5] = fra.me.REG[4];
-  /* ./syntax//typing.nit:119 */
+  /* syntax/typing.nit:119 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* ./syntax//typing.nit:120 */
+  /* syntax/typing.nit:120 */
   fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
-  /* ./syntax//typing.nit:121 */
+  /* syntax/typing.nit:121 */
   fra.me.REG[8] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -682,70 +682,70 @@ val_t syntax___typing___TypingVisitor___get_default_constructor_for(val_t p0, va
   }
   REGB0 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]);
   fra.me.REG[8] = REGB0;
-  /* ./syntax//typing.nit:122 */
+  /* syntax/typing.nit:122 */
   fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[9])(fra.me.REG[9], (&(fra.me)), ((fun_t)OC_syntax___typing___TypingVisitor___get_default_constructor_for_1));
   switch ((&(fra.me))->has_broke) {
     case 0: break;
     case 1: (&(fra.me))->has_broke = 0; goto label5;
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
-  /* ./syntax//typing.nit:141 */
+  /* syntax/typing.nit:141 */
   REGB1 = TAG_Int(1);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./syntax//typing.nit:141 */
+    /* syntax/typing.nit:141 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//typing.nit:142 */
+    /* syntax/typing.nit:142 */
     fra.me.REG[3] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[6])(fra.me.REG[6]);
     fra.me.REG[9] = fra.me.REG[3];
     goto label5;
   } else {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
-    /* ./syntax//typing.nit:143 */
+    /* syntax/typing.nit:143 */
     REGB1 = TAG_Int(0);
     REGB0 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB2)>UNTAG_Int(REGB1));
-    /* ./syntax//typing.nit:143 */
+    /* syntax/typing.nit:143 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./syntax//typing.nit:144 */
+      /* syntax/typing.nit:144 */
       fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-      /* ./../lib/standard//collection//array.nit:269 */
+      /* ../lib/standard/collection/array.nit:269 */
       REGB1 = TAG_Int(0);
-      /* ./../lib/standard//collection//array.nit:270 */
+      /* ../lib/standard/collection/array.nit:270 */
       REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
       }
       REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
-      /* ./../lib/standard//collection//array.nit:271 */
+      /* ../lib/standard/collection/array.nit:271 */
       fra.me.REG[8] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       while(1) {
-        /* ./../lib/standard//collection//array.nit:24 */
+        /* ../lib/standard/collection/array.nit:24 */
         REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
         } else {
@@ -757,18 +757,18 @@ val_t syntax___typing___TypingVisitor___get_default_constructor_for(val_t p0, va
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         if (UNTAG_Bool(REGB2)) {
-          /* ./../lib/standard//collection//array.nit:273 */
+          /* ../lib/standard/collection/array.nit:273 */
           REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
             nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
           }
-          /* ./../lib/standard//collection//array.nit:718 */
+          /* ../lib/standard/collection/array.nit:718 */
           fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[8])->val[UNTAG_Int(REGB1)];
-          /* ./syntax//typing.nit:146 */
+          /* syntax/typing.nit:146 */
           REGB2 = TAG_Int(5);
           fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
           if (!once_value_6) {
@@ -810,19 +810,19 @@ val_t syntax___typing___TypingVisitor___get_default_constructor_for(val_t p0, va
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[4]);
           fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[10]);
-          /* ./../lib/standard//collection//array.nit:274 */
+          /* ../lib/standard/collection/array.nit:274 */
           REGB2 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-          /* ./../lib/standard//collection//array.nit:274 */
+          /* ../lib/standard/collection/array.nit:274 */
           REGB1 = REGB2;
         } else {
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           goto label9;
         }
       }
       label9: while(0);
-      /* ./syntax//typing.nit:148 */
+      /* syntax/typing.nit:148 */
       REGB1 = TAG_Int(5);
       fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_10) {
@@ -866,44 +866,44 @@ val_t syntax___typing___TypingVisitor___get_default_constructor_for(val_t p0, va
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6]);
       fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[8]);
-      /* ./syntax//typing.nit:149 */
+      /* syntax/typing.nit:149 */
       fra.me.REG[9] = NIT_NULL;
       goto label5;
     } else {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
       }
       REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
-      /* ./syntax//typing.nit:150 */
+      /* syntax/typing.nit:150 */
       REGB2 = TAG_Int(0);
       REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:234 */
+      /* ../lib/standard/kernel.nit:234 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
-      /* ./syntax//typing.nit:150 */
+      /* syntax/typing.nit:150 */
       if (UNTAG_Bool(REGB2)) {
-        /* ./syntax//typing.nit:151 */
+        /* syntax/typing.nit:151 */
         fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
-        /* ./../lib/standard//collection//array.nit:269 */
+        /* ../lib/standard/collection/array.nit:269 */
         REGB2 = TAG_Int(0);
-        /* ./../lib/standard//collection//array.nit:270 */
+        /* ../lib/standard/collection/array.nit:270 */
         REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
         }
         REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
-        /* ./../lib/standard//collection//array.nit:271 */
+        /* ../lib/standard/collection/array.nit:271 */
         fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         while(1) {
-          /* ./../lib/standard//collection//array.nit:24 */
+          /* ../lib/standard/collection/array.nit:24 */
           REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
           } else {
@@ -915,18 +915,18 @@ val_t syntax___typing___TypingVisitor___get_default_constructor_for(val_t p0, va
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           if (UNTAG_Bool(REGB1)) {
-            /* ./../lib/standard//collection//array.nit:273 */
+            /* ../lib/standard/collection/array.nit:273 */
             REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
             if (UNTAG_Bool(REGB1)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB2)];
-            /* ./syntax//typing.nit:153 */
+            /* syntax/typing.nit:153 */
             REGB1 = TAG_Int(5);
             fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
             if (!once_value_14) {
@@ -968,19 +968,19 @@ val_t syntax___typing___TypingVisitor___get_default_constructor_for(val_t p0, va
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[3]);
             fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB1 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB1 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1));
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB2 = REGB1;
           } else {
-            /* ./../lib/standard//collection//array.nit:272 */
+            /* ../lib/standard/collection/array.nit:272 */
             goto label17;
           }
         }
         label17: while(0);
-        /* ./syntax//typing.nit:155 */
+        /* syntax/typing.nit:155 */
         REGB2 = TAG_Int(5);
         fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
         if (!once_value_18) {
@@ -1024,11 +1024,11 @@ val_t syntax___typing___TypingVisitor___get_default_constructor_for(val_t p0, va
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
         fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
         CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[0]);
-        /* ./syntax//typing.nit:156 */
+        /* syntax/typing.nit:156 */
         fra.me.REG[9] = NIT_NULL;
         goto label5;
       } else {
-        /* ./syntax//typing.nit:158 */
+        /* syntax/typing.nit:158 */
         REGB2 = TAG_Int(3);
         fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
         if (!once_value_22) {
@@ -1053,7 +1053,7 @@ val_t syntax___typing___TypingVisitor___get_default_constructor_for(val_t p0, va
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
         fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
         CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[0]);
-        /* ./syntax//typing.nit:159 */
+        /* syntax/typing.nit:159 */
         fra.me.REG[9] = NIT_NULL;
         goto label5;
       }
@@ -1088,26 +1088,26 @@ val_t syntax___typing___TypingVisitor___get_default_constructor_for(val_t p0, va
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./syntax//typing.nit:123 */
+    /* syntax/typing.nit:123 */
     REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra.me.REG[0])(fra.me.REG[0], closctx->REG[2]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
       goto label2;
     }
-    /* ./syntax//typing.nit:124 */
+    /* syntax/typing.nit:124 */
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
-    /* ./syntax//typing.nit:125 */
+    /* syntax/typing.nit:125 */
     fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(closctx->REG[2])(closctx->REG[2]);
     fra.me.REG[1] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    /* ./syntax//typing.nit:126 */
+    /* syntax/typing.nit:126 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_syntax___syntax_base___MMSrcMethod, ID_syntax___syntax_base___MMSrcMethod)) /*cast MMSrcMethod*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Assert failed", NULL, LOCATE_syntax___typing, 126);
     }
-    /* ./syntax//typing.nit:127 */
+    /* syntax/typing.nit:127 */
     REGB0 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./syntax//typing.nit:128 */
+    /* syntax/typing.nit:128 */
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(closctx->REG[3])(closctx->REG[3]);
     REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
@@ -1117,14 +1117,14 @@ val_t syntax___typing___TypingVisitor___get_default_constructor_for(val_t p0, va
       REGB1 = REGB2;
     }
     if (UNTAG_Bool(REGB1)) {
-      /* ./syntax//typing.nit:129 */
+      /* syntax/typing.nit:129 */
       REGB1 = TAG_Int(0);
       REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
       if (UNTAG_Bool(REGB2)) {
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB1 = TAG_Bool((REGB0)==(REGB1));
-        /* ./syntax//typing.nit:129 */
+        /* syntax/typing.nit:129 */
         REGB2 = REGB1;
       }
       if (UNTAG_Bool(REGB2)) {
@@ -1133,9 +1133,9 @@ val_t syntax___typing___TypingVisitor___get_default_constructor_for(val_t p0, va
         REGB1 = TAG_Bool(IS_EQUAL_OO(closctx->REG[8],REGB0));
         if (UNTAG_Bool(REGB1)) {
         } else {
-          /* ./../lib/standard//kernel.nit:227 */
+          /* ../lib/standard/kernel.nit:227 */
           REGB3 = TAG_Bool((closctx->REG[8])==(REGB0));
-          /* ./syntax//typing.nit:129 */
+          /* syntax/typing.nit:129 */
           REGB1 = REGB3;
         }
         if (UNTAG_Bool(REGB1)) {
@@ -1152,23 +1152,23 @@ val_t syntax___typing___TypingVisitor___get_default_constructor_for(val_t p0, va
         REGB2 = REGB1;
       }
       if (UNTAG_Bool(REGB2)) {
-        /* ./syntax//typing.nit:130 */
+        /* syntax/typing.nit:130 */
         closctx->REG[9] = fra.me.REG[0];
         closctx->has_broke = 1;
         goto label2;
       } else {
-        /* ./syntax//typing.nit:132 */
+        /* syntax/typing.nit:132 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[7])(closctx->REG[7], fra.me.REG[0]);
       }
     } else {
-      /* ./syntax//typing.nit:134 */
+      /* syntax/typing.nit:134 */
       REGB2 = TAG_Int(0);
       REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
       if (UNTAG_Bool(REGB1)) {
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB2 = TAG_Bool((REGB0)==(REGB2));
-        /* ./syntax//typing.nit:134 */
+        /* syntax/typing.nit:134 */
         REGB1 = REGB2;
       }
       if (UNTAG_Bool(REGB1)) {
@@ -1198,12 +1198,12 @@ val_t syntax___typing___TypingVisitor___get_default_constructor_for(val_t p0, va
         REGB1 = REGB2;
       }
       if (UNTAG_Bool(REGB1)) {
-        /* ./syntax//typing.nit:135 */
+        /* syntax/typing.nit:135 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[6])(closctx->REG[6], fra.me.REG[0]);
-        /* ./syntax//typing.nit:136 */
+        /* syntax/typing.nit:136 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[7])(closctx->REG[7], fra.me.REG[0]);
       } else {
-        /* ./syntax//typing.nit:138 */
+        /* syntax/typing.nit:138 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[7])(closctx->REG[7], fra.me.REG[0]);
       }
     }
@@ -1225,9 +1225,9 @@ void syntax___typing___ANode___accept_typing(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:170 */
+  /* syntax/typing.nit:170 */
   CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//typing.nit:171 */
+  /* syntax/typing.nit:171 */
   CALL_syntax___typing___ANode___after_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -1268,10 +1268,10 @@ void syntax___typing___AClassdef___accept_typing(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:177 */
+  /* syntax/typing.nit:177 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//typing.nit:179 */
+  /* syntax/typing.nit:179 */
   if (!once_value_1) {
     fra.me.REG[4] = BOX_NativeString("self");
     REGB0 = TAG_Int(4);
@@ -1283,12 +1283,12 @@ void syntax___typing___AClassdef___accept_typing(val_t p0, val_t p1){
   fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = NEW_ParamVariable_syntax___syntax_base___ParamVariable___init(fra.me.REG[4], fra.me.REG[2]);
   CALL_syntax___typing___TypingVisitor___self_var__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./syntax//typing.nit:180 */
+  /* syntax/typing.nit:180 */
   fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___self_var(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[2])(fra.me.REG[2]);
   CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./syntax//typing.nit:181 */
+  /* syntax/typing.nit:181 */
   CALL_SUPER_syntax___typing___AClassdef___accept_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -1307,7 +1307,7 @@ val_t syntax___typing___APropdef___self_var(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:186 */
+  /* syntax/typing.nit:186 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_syntax___typing___APropdef____self_var(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
@@ -1339,24 +1339,24 @@ void syntax___typing___AAttrPropdef___accept_typing(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:191 */
+  /* syntax/typing.nit:191 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//typing.nit:193 */
+  /* syntax/typing.nit:193 */
   fra.me.REG[4] = NEW_RootFlowContext_syntax___flow___RootFlowContext___init(fra.me.REG[3], fra.me.REG[2]);
   CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./syntax//typing.nit:194 */
+  /* syntax/typing.nit:194 */
   fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[3])(fra.me.REG[3]);
   CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./syntax//typing.nit:196 */
+  /* syntax/typing.nit:196 */
   fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[3])(fra.me.REG[3]);
   CALL_syntax___scope___ScopeContext___push(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-  /* ./syntax//typing.nit:197 */
+  /* syntax/typing.nit:197 */
   fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___self_var(fra.me.REG[3])(fra.me.REG[3]);
   ATTR_syntax___typing___APropdef____self_var(fra.me.REG[2]) = fra.me.REG[4];
-  /* ./syntax//typing.nit:198 */
+  /* syntax/typing.nit:198 */
   CALL_SUPER_syntax___typing___AAttrPropdef___accept_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//typing.nit:199 */
+  /* syntax/typing.nit:199 */
   fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -1372,7 +1372,7 @@ void syntax___typing___AAttrPropdef___accept_typing(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:200 */
+    /* syntax/typing.nit:200 */
     fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
     if (UNTAG_Bool(REGB0)) {
@@ -1393,7 +1393,7 @@ void syntax___typing___AAttrPropdef___accept_typing(val_t p0, val_t p1){
     }
     CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2]);
   }
-  /* ./syntax//typing.nit:202 */
+  /* syntax/typing.nit:202 */
   fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[3])(fra.me.REG[3]);
   CALL_syntax___scope___ScopeContext___pop(fra.me.REG[3])(fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -1416,24 +1416,24 @@ void syntax___typing___AMethPropdef___accept_typing(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:207 */
+  /* syntax/typing.nit:207 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//typing.nit:209 */
+  /* syntax/typing.nit:209 */
   fra.me.REG[4] = NEW_RootFlowContext_syntax___flow___RootFlowContext___init(fra.me.REG[3], fra.me.REG[2]);
   CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./syntax//typing.nit:210 */
+  /* syntax/typing.nit:210 */
   fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[3])(fra.me.REG[3]);
   CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./syntax//typing.nit:212 */
+  /* syntax/typing.nit:212 */
   fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[3])(fra.me.REG[3]);
   CALL_syntax___scope___ScopeContext___push(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-  /* ./syntax//typing.nit:213 */
+  /* syntax/typing.nit:213 */
   fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___self_var(fra.me.REG[3])(fra.me.REG[3]);
   ATTR_syntax___typing___APropdef____self_var(fra.me.REG[2]) = fra.me.REG[4];
-  /* ./syntax//typing.nit:214 */
+  /* syntax/typing.nit:214 */
   CALL_SUPER_syntax___typing___AMethPropdef___accept_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//typing.nit:215 */
+  /* syntax/typing.nit:215 */
   fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[3])(fra.me.REG[3]);
   CALL_syntax___scope___ScopeContext___pop(fra.me.REG[3])(fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -1458,12 +1458,12 @@ void syntax___typing___AConcreteMethPropdef___after_typing(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:220 */
+  /* syntax/typing.nit:220 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//typing.nit:222 */
+  /* syntax/typing.nit:222 */
   CALL_SUPER_syntax___typing___AConcreteMethPropdef___after_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//typing.nit:223 */
+  /* syntax/typing.nit:223 */
   fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = CALL_syntax___flow___FlowContext___unreash(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
@@ -1493,7 +1493,7 @@ void syntax___typing___AConcreteMethPropdef___after_typing(val_t p0, val_t p1){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:224 */
+    /* syntax/typing.nit:224 */
     if (!once_value_1) {
       fra.me.REG[1] = BOX_NativeString("Control error: Reached end of function (a 'return' with a value was expected).");
       REGB0 = TAG_Int(78);
@@ -1525,19 +1525,19 @@ void syntax___typing___AConcreteInitPropdef___accept_typing(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:230 */
+  /* syntax/typing.nit:230 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//typing.nit:232 */
+  /* syntax/typing.nit:232 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AConcreteMethPropdef___n_block(fra.me.REG[2])(fra.me.REG[2]);
   CALL_syntax___typing___TypingVisitor___top_block__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./syntax//typing.nit:233 */
+  /* syntax/typing.nit:233 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra.me.REG[2])(fra.me.REG[2]);
   CALL_syntax___typing___TypingVisitor___explicit_super_init_calls__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./syntax//typing.nit:234 */
+  /* syntax/typing.nit:234 */
   REGB0 = TAG_Bool(false);
   CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
-  /* ./syntax//typing.nit:235 */
+  /* syntax/typing.nit:235 */
   CALL_SUPER_syntax___typing___AConcreteInitPropdef___accept_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -1568,12 +1568,12 @@ void syntax___typing___AConcreteInitPropdef___after_typing(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:238 */
+  /* syntax/typing.nit:238 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//typing.nit:240 */
+  /* syntax/typing.nit:240 */
   CALL_SUPER_syntax___typing___AConcreteInitPropdef___after_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//typing.nit:241 */
+  /* syntax/typing.nit:241 */
   REGB0 = CALL_syntax___typing___TypingVisitor___explicit_other_init_call(fra.me.REG[3])(fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(true);
@@ -1593,44 +1593,44 @@ void syntax___typing___AConcreteInitPropdef___after_typing(val_t p0, val_t p1){
   }
   if (UNTAG_Bool(REGB0)) {
   } else {
-    /* ./syntax//typing.nit:244 */
+    /* syntax/typing.nit:244 */
     REGB0 = TAG_Int(0);
-    /* ./syntax//typing.nit:245 */
+    /* syntax/typing.nit:245 */
     fra.me.REG[4] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra.me.REG[2])(fra.me.REG[2]);
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-    /* ./syntax//typing.nit:246 */
+    /* syntax/typing.nit:246 */
     fra.me.REG[4] = NIT_NULL;
-    /* ./syntax//typing.nit:247 */
+    /* syntax/typing.nit:247 */
     fra.me.REG[1] = NIT_NULL;
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./syntax//typing.nit:248 */
+    /* syntax/typing.nit:248 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//typing.nit:249 */
+      /* syntax/typing.nit:249 */
       fra.me.REG[5] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra.me.REG[2])(fra.me.REG[2]);
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       REGB2 = REGB0;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB3 = TAG_Int(0);
       REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB4)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB3)) {
         REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
@@ -1643,31 +1643,31 @@ void syntax___typing___AConcreteInitPropdef___after_typing(val_t p0, val_t p1){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB4 = TAG_Bool(false);
         REGB3 = REGB4;
       }
       if (UNTAG_Bool(REGB3)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
       REGB3 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB2)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label1;
       label1: while(0);
-      /* ./syntax//typing.nit:249 */
+      /* syntax/typing.nit:249 */
       fra.me.REG[4] = fra.me.REG[5];
-      /* ./syntax//typing.nit:250 */
+      /* syntax/typing.nit:250 */
       REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 250);
@@ -1679,14 +1679,14 @@ void syntax___typing___AConcreteInitPropdef___after_typing(val_t p0, val_t p1){
       fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
       fra.me.REG[1] = fra.me.REG[6];
     }
-    /* ./syntax//typing.nit:252 */
+    /* syntax/typing.nit:252 */
     REGB2 = TAG_Int(0);
-    /* ./syntax//typing.nit:253 */
+    /* syntax/typing.nit:253 */
     while(1) {
       fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
       fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[6])(fra.me.REG[6]);
       fra.me.REG[6] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[6])(fra.me.REG[6]);
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
       } else {
@@ -1698,26 +1698,26 @@ void syntax___typing___AConcreteInitPropdef___after_typing(val_t p0, val_t p1){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
-      /* ./syntax//typing.nit:253 */
+      /* syntax/typing.nit:253 */
       if (UNTAG_Bool(REGB3)) {
-        /* ./syntax//typing.nit:254 */
+        /* syntax/typing.nit:254 */
         fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
         fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[6])(fra.me.REG[6]);
         fra.me.REG[6] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[6])(fra.me.REG[6]);
-        /* ./../lib/standard//collection//array.nit:278 */
+        /* ../lib/standard/collection/array.nit:278 */
         REGB3 = REGB2;
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB4 = TAG_Int(0);
         REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB5)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB4)) {
           REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
           if (UNTAG_Bool(REGB4)) {
@@ -1730,29 +1730,29 @@ void syntax___typing___AConcreteInitPropdef___after_typing(val_t p0, val_t p1){
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
         } else {
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB5 = TAG_Bool(false);
           REGB4 = REGB5;
         }
         if (UNTAG_Bool(REGB4)) {
         } else {
-          nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+          nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
         }
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
         REGB4 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
         if (UNTAG_Bool(REGB4)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB3)];
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         goto label2;
         label2: while(0);
-        /* ./syntax//typing.nit:255 */
+        /* syntax/typing.nit:255 */
         fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
         REGB3 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[5])(fra.me.REG[5]);
         if (UNTAG_Bool(REGB3)) {
@@ -1777,14 +1777,14 @@ void syntax___typing___AConcreteInitPropdef___after_typing(val_t p0, val_t p1){
           REGB3 = REGB4;
         }
         if (UNTAG_Bool(REGB3)) {
-          /* ./syntax//typing.nit:256 */
+          /* syntax/typing.nit:256 */
           REGB3 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-          /* ./syntax//typing.nit:256 */
+          /* syntax/typing.nit:256 */
           REGB2 = REGB3;
         } else {
-          /* ./syntax//typing.nit:257 */
+          /* syntax/typing.nit:257 */
           REGB3 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
           if (UNTAG_Bool(REGB3)) {
           } else {
@@ -1817,7 +1817,7 @@ void syntax___typing___AConcreteInitPropdef___after_typing(val_t p0, val_t p1){
             REGB3 = REGB4;
           }
           if (UNTAG_Bool(REGB3)) {
-            /* ./syntax//typing.nit:258 */
+            /* syntax/typing.nit:258 */
             REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[6],fra.me.REG[1]));
             if (UNTAG_Bool(REGB3)) {
             } else {
@@ -1826,12 +1826,12 @@ void syntax___typing___AConcreteInitPropdef___after_typing(val_t p0, val_t p1){
             }
             if (UNTAG_Bool(REGB3)) {
               REGB3 = TAG_Int(1);
-              /* ./../lib/standard//kernel.nit:235 */
+              /* ../lib/standard/kernel.nit:235 */
               REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-              /* ./syntax//typing.nit:258 */
+              /* syntax/typing.nit:258 */
               REGB2 = REGB3;
             }
-            /* ./syntax//typing.nit:259 */
+            /* syntax/typing.nit:259 */
             fra.me.REG[5] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra.me.REG[2])(fra.me.REG[2]);
             REGB3 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
             if (UNTAG_Bool(REGB3)) {
@@ -1839,35 +1839,35 @@ void syntax___typing___AConcreteInitPropdef___after_typing(val_t p0, val_t p1){
               nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 259);
             }
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-            /* ./syntax//typing.nit:260 */
+            /* syntax/typing.nit:260 */
             REGB3 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-            /* ./syntax//typing.nit:260 */
+            /* syntax/typing.nit:260 */
             REGB0 = REGB3;
             REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
             if (UNTAG_Bool(REGB3)) {
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:232 */
+            /* ../lib/standard/kernel.nit:232 */
             REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-            /* ./syntax//typing.nit:261 */
+            /* syntax/typing.nit:261 */
             if (UNTAG_Bool(REGB3)) {
-              /* ./syntax//typing.nit:262 */
+              /* syntax/typing.nit:262 */
               fra.me.REG[5] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra.me.REG[2])(fra.me.REG[2]);
-              /* ./../lib/standard//collection//array.nit:278 */
+              /* ../lib/standard/collection/array.nit:278 */
               REGB3 = REGB0;
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB4 = TAG_Int(0);
               REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
               if (UNTAG_Bool(REGB5)) {
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:233 */
+              /* ../lib/standard/kernel.nit:233 */
               REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               if (UNTAG_Bool(REGB4)) {
                REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
                if (UNTAG_Bool(REGB4)) {
@@ -1880,31 +1880,31 @@ void syntax___typing___AConcreteInitPropdef___after_typing(val_t p0, val_t p1){
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
               } else {
-               /* ./../lib/standard//collection//array.nit:280 */
+               /* ../lib/standard/collection/array.nit:280 */
                REGB5 = TAG_Bool(false);
                REGB4 = REGB5;
               }
               if (UNTAG_Bool(REGB4)) {
               } else {
-               nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+               nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
               }
-              /* ./../lib/standard//collection//array.nit:281 */
+              /* ../lib/standard/collection/array.nit:281 */
               fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
               REGB4 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
               if (UNTAG_Bool(REGB4)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
               }
-              /* ./../lib/standard//collection//array.nit:718 */
+              /* ../lib/standard/collection/array.nit:718 */
               fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB3)];
-              /* ./../lib/standard//collection//array.nit:281 */
+              /* ../lib/standard/collection/array.nit:281 */
               goto label3;
               label3: while(0);
-              /* ./syntax//typing.nit:262 */
+              /* syntax/typing.nit:262 */
               fra.me.REG[4] = fra.me.REG[5];
-              /* ./syntax//typing.nit:263 */
+              /* syntax/typing.nit:263 */
               REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
               if (UNTAG_Bool(REGB3)) {
                nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 263);
@@ -1916,16 +1916,16 @@ void syntax___typing___AConcreteInitPropdef___after_typing(val_t p0, val_t p1){
               fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
               fra.me.REG[1] = fra.me.REG[7];
             } else {
-              /* ./syntax//typing.nit:265 */
+              /* syntax/typing.nit:265 */
               fra.me.REG[4] = NIT_NULL;
-              /* ./syntax//typing.nit:266 */
+              /* syntax/typing.nit:266 */
               fra.me.REG[1] = NIT_NULL;
             }
           } else {
-            /* ./syntax//typing.nit:269 */
+            /* syntax/typing.nit:269 */
             fra.me.REG[7] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
             fra.me.REG[7] = CALL_syntax___typing___TypingVisitor___get_default_constructor_for(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6], fra.me.REG[7]);
-            /* ./syntax//typing.nit:270 */
+            /* syntax/typing.nit:270 */
             REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
             if (UNTAG_Bool(REGB3)) {
             } else {
@@ -1940,20 +1940,20 @@ void syntax___typing___AConcreteInitPropdef___after_typing(val_t p0, val_t p1){
             }
             REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
             if (UNTAG_Bool(REGB3)) {
-              /* ./syntax//typing.nit:271 */
+              /* syntax/typing.nit:271 */
               fra.me.REG[6] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra.me.REG[2])(fra.me.REG[2]);
               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
             }
-            /* ./syntax//typing.nit:273 */
+            /* syntax/typing.nit:273 */
             REGB3 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-            /* ./syntax//typing.nit:273 */
+            /* syntax/typing.nit:273 */
             REGB2 = REGB3;
           }
         }
       } else {
-        /* ./syntax//typing.nit:253 */
+        /* syntax/typing.nit:253 */
         goto label4;
       }
     }
@@ -1978,12 +1978,12 @@ void syntax___typing___AExternInitPropdef___accept_typing(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:281 */
+  /* syntax/typing.nit:281 */
   fra.me.REG[2] = fra.me.REG[1];
-  /* ./syntax//typing.nit:283 */
+  /* syntax/typing.nit:283 */
   REGB0 = TAG_Bool(false);
   CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
-  /* ./syntax//typing.nit:284 */
+  /* syntax/typing.nit:284 */
   CALL_SUPER_syntax___typing___AExternInitPropdef___accept_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -2002,17 +2002,72 @@ void syntax___typing___AExternInitPropdef___after_typing(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:288 */
+  /* syntax/typing.nit:288 */
   CALL_SUPER_syntax___typing___AExternInitPropdef___after_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
 }
+void syntax___typing___ASignature___after_typing(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t tmp;
+    static val_t once_value_1; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_syntax___typing;
+  fra.me.line = 293;
+  fra.me.meth = LOCATE_syntax___typing___ASignature___after_typing;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* syntax/typing.nit:295 */
+  fra.me.REG[2] = CALL_parser___parser_nodes___ASignature___n_opar(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  if (UNTAG_Bool(REGB0)) {
+    fra.me.REG[2] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]);
+    REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
+  } else {
+    REGB1 = TAG_Bool(false);
+    REGB0 = REGB1;
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* syntax/typing.nit:296 */
+    if (!once_value_1) {
+      fra.me.REG[2] = BOX_NativeString("Warning: superfluous parentheses.");
+      REGB0 = TAG_Int(33);
+      fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+      once_value_1 = fra.me.REG[2];
+      register_static_object(&once_value_1);
+    } else fra.me.REG[2] = once_value_1;
+    fra.me.REG[2] = fra.me.REG[2];
+    CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
+  }
+  stack_frame_head = fra.me.prev;
+  return;
+}
 void syntax___typing___AParam___after_typing(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 293;
+  fra.me.line = 302;
   fra.me.meth = LOCATE_syntax___typing___AParam___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2021,7 +2076,7 @@ void syntax___typing___AParam___after_typing(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:295 */
+  /* syntax/typing.nit:304 */
   fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___scope___ScopeContext___add_variable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -2033,14 +2088,14 @@ val_t syntax___typing___AClosureDecl___escapable(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 300;
+  fra.me.line = 309;
   fra.me.meth = LOCATE_syntax___typing___AClosureDecl___escapable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:300 */
+  /* syntax/typing.nit:309 */
   fra.me.REG[0] = ATTR_syntax___typing___AClosureDecl____escapable(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -2055,7 +2110,7 @@ void syntax___typing___AClosureDecl___accept_typing(val_t p0, val_t p1){
           static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 303;
+  fra.me.line = 312;
   fra.me.meth = LOCATE_syntax___typing___AClosureDecl___accept_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -2072,31 +2127,31 @@ void syntax___typing___AClosureDecl___accept_typing(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:303 */
+  /* syntax/typing.nit:312 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//typing.nit:306 */
+  /* syntax/typing.nit:315 */
   fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[5] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[2])(fra.me.REG[2]);
   CALL_syntax___scope___ScopeContext___add_variable(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-  /* ./syntax//typing.nit:308 */
+  /* syntax/typing.nit:317 */
   fra.me.REG[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//typing.nit:309 */
+  /* syntax/typing.nit:318 */
   fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//typing.nit:310 */
+  /* syntax/typing.nit:319 */
   fra.me.REG[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[3])(fra.me.REG[3]);
   CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
-  /* ./syntax//typing.nit:312 */
+  /* syntax/typing.nit:321 */
   fra.me.REG[6] = NIT_NULL;
-  /* ./syntax//typing.nit:313 */
+  /* syntax/typing.nit:322 */
   fra.me.REG[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[7])(fra.me.REG[7]);
   REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 313);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 322);
   }
   fra.me.REG[7] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[7])(fra.me.REG[7]);
-  /* ./syntax//typing.nit:314 */
+  /* syntax/typing.nit:323 */
   REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2114,24 +2169,24 @@ void syntax___typing___AClosureDecl___accept_typing(val_t p0, val_t p1){
     fra.me.REG[8] = NEW_Array_standard___collection___array___Array___init();
     fra.me.REG[6] = fra.me.REG[8];
   }
-  /* ./syntax//typing.nit:315 */
+  /* syntax/typing.nit:324 */
   fra.me.REG[8] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[8] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[8])(fra.me.REG[8]);
   fra.me.REG[8] = NEW_EscapableClosure_syntax___scope___EscapableClosure___init(fra.me.REG[2], fra.me.REG[8], fra.me.REG[6]);
-  /* ./syntax//typing.nit:316 */
+  /* syntax/typing.nit:325 */
   ATTR_syntax___typing___AClosureDecl____escapable(fra.me.REG[2]) = fra.me.REG[8];
-  /* ./syntax//typing.nit:317 */
+  /* syntax/typing.nit:326 */
   fra.me.REG[9] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[3])(fra.me.REG[3]);
   CALL_syntax___scope___ScopeContext___push_escapable(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[8], NIT_NULL);
-  /* ./syntax//typing.nit:319 */
+  /* syntax/typing.nit:328 */
   REGB0 = TAG_Bool(true);
   CALL_syntax___typing___TypingVisitor___is_default_closure_definition__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
-  /* ./syntax//typing.nit:321 */
+  /* syntax/typing.nit:330 */
   CALL_SUPER_syntax___typing___AClosureDecl___accept_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//typing.nit:323 */
+  /* syntax/typing.nit:332 */
   REGB0 = TAG_Bool(false);
   CALL_syntax___typing___TypingVisitor___is_default_closure_definition__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
-  /* ./syntax//typing.nit:325 */
+  /* syntax/typing.nit:334 */
   fra.me.REG[1] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2147,20 +2202,20 @@ void syntax___typing___AClosureDecl___accept_typing(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:326 */
+    /* syntax/typing.nit:335 */
     fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[3])(fra.me.REG[3]);
     REGB0 = CALL_syntax___flow___FlowContext___unreash(fra.me.REG[1])(fra.me.REG[1]);
     REGB1 = TAG_Bool(false);
     REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
     if (UNTAG_Bool(REGB2)) {
     } else {
-      /* ./../lib/standard//kernel.nit:195 */
+      /* ../lib/standard/kernel.nit:195 */
       REGB1 = TAG_Bool((REGB0)==(REGB1));
-      /* ./syntax//typing.nit:326 */
+      /* syntax/typing.nit:335 */
       REGB2 = REGB1;
     }
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//typing.nit:327 */
+      /* syntax/typing.nit:336 */
       fra.me.REG[1] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[2])(fra.me.REG[2]);
       fra.me.REG[1] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[1] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[1])(fra.me.REG[1]);
@@ -2179,7 +2234,7 @@ void syntax___typing___AClosureDecl___accept_typing(val_t p0, val_t p1){
       }
       REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
       if (UNTAG_Bool(REGB2)) {
-        /* ./syntax//typing.nit:328 */
+        /* syntax/typing.nit:337 */
         if (!once_value_1) {
           fra.me.REG[1] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
           REGB2 = TAG_Int(77);
@@ -2190,7 +2245,7 @@ void syntax___typing___AClosureDecl___accept_typing(val_t p0, val_t p1){
         fra.me.REG[1] = fra.me.REG[1];
         CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]);
       } else {
-        /* ./syntax//typing.nit:329 */
+        /* syntax/typing.nit:338 */
         fra.me.REG[1] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[2])(fra.me.REG[2]);
         fra.me.REG[1] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[1])(fra.me.REG[1]);
         REGB2 = CALL_metamodel___static_type___MMClosure___is_break(fra.me.REG[1])(fra.me.REG[1]);
@@ -2214,7 +2269,7 @@ void syntax___typing___AClosureDecl___accept_typing(val_t p0, val_t p1){
           REGB2 = REGB1;
         }
         if (UNTAG_Bool(REGB2)) {
-          /* ./syntax//typing.nit:330 */
+          /* syntax/typing.nit:339 */
           if (!once_value_2) {
             fra.me.REG[8] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
             REGB2 = TAG_Int(80);
@@ -2228,7 +2283,7 @@ void syntax___typing___AClosureDecl___accept_typing(val_t p0, val_t p1){
       }
     }
   }
-  /* ./syntax//typing.nit:334 */
+  /* syntax/typing.nit:343 */
   REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -2245,22 +2300,22 @@ void syntax___typing___AClosureDecl___accept_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB2)) {
     REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 334);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 343);
     }
-    /* ./../lib/standard//collection//array.nit:269 */
+    /* ../lib/standard/collection/array.nit:269 */
     REGB2 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:270 */
+    /* ../lib/standard/collection/array.nit:270 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
-    /* ./../lib/standard//collection//array.nit:271 */
+    /* ../lib/standard/collection/array.nit:271 */
     fra.me.REG[8] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     while(1) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -2272,37 +2327,37 @@ void syntax___typing___AClosureDecl___accept_typing(val_t p0, val_t p1){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       if (UNTAG_Bool(REGB1)) {
-        /* ./../lib/standard//collection//array.nit:273 */
+        /* ../lib/standard/collection/array.nit:273 */
         REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[8])->val[UNTAG_Int(REGB2)];
-        /* ./syntax//typing.nit:335 */
+        /* syntax/typing.nit:344 */
         CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB1 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB1 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB2 = REGB1;
       } else {
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         goto label3;
       }
     }
     label3: while(0);
   }
-  /* ./syntax//typing.nit:338 */
+  /* syntax/typing.nit:347 */
   CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-  /* ./syntax//typing.nit:339 */
+  /* syntax/typing.nit:348 */
   CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./syntax//typing.nit:340 */
+  /* syntax/typing.nit:349 */
   fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[3])(fra.me.REG[3]);
   CALL_syntax___scope___ScopeContext___pop(fra.me.REG[3])(fra.me.REG[3]);
   stack_frame_head = fra.me.prev;
@@ -2314,7 +2369,7 @@ val_t syntax___typing___AType___stype(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 345;
+  fra.me.line = 354;
   fra.me.meth = LOCATE_syntax___typing___AType___stype;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2322,13 +2377,13 @@ val_t syntax___typing___AType___stype(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:345 */
+  /* syntax/typing.nit:354 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_syntax___typing___AType____stype(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 345);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 354);
   }
   goto label1;
   label1: while(0);
@@ -2342,14 +2397,14 @@ val_t syntax___typing___AType___is_typed(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 346;
+  fra.me.line = 355;
   fra.me.meth = LOCATE_syntax___typing___AType___is_typed;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:346 */
+  /* syntax/typing.nit:355 */
   fra.me.REG[0] = ATTR_syntax___typing___AType____stype(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2374,7 +2429,7 @@ void syntax___typing___AType___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 349;
+  fra.me.line = 358;
   fra.me.meth = LOCATE_syntax___typing___AType___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2383,7 +2438,7 @@ void syntax___typing___AType___after_typing(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:351 */
+  /* syntax/typing.nit:360 */
   fra.me.REG[1] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   ATTR_syntax___typing___AType____stype(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
@@ -2395,18 +2450,18 @@ val_t syntax___typing___AExpr___is_typed(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 356;
+  fra.me.line = 365;
   fra.me.meth = LOCATE_syntax___typing___AExpr___is_typed;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:356 */
+  /* syntax/typing.nit:365 */
   REGB0 = TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_syntax___typing, 356);
+    nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_syntax___typing, 365);
   }
   REGB0 = ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -2419,14 +2474,14 @@ val_t syntax___typing___AExpr___is_statement(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 357;
+  fra.me.line = 366;
   fra.me.meth = LOCATE_syntax___typing___AExpr___is_statement;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:357 */
+  /* syntax/typing.nit:366 */
   fra.me.REG[0] = ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2455,7 +2510,7 @@ val_t syntax___typing___AExpr___stype(val_t p0){
     static val_t once_value_4; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 358;
+  fra.me.line = 367;
   fra.me.meth = LOCATE_syntax___typing___AExpr___stype;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -2465,13 +2520,13 @@ val_t syntax___typing___AExpr___stype(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:358 */
+  /* syntax/typing.nit:367 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./syntax//typing.nit:360 */
+  /* syntax/typing.nit:369 */
   REGB0 = CALL_syntax___syntax_base___AExpr___is_typed(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:361 */
+    /* syntax/typing.nit:370 */
     REGB0 = TAG_Int(3);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -2497,13 +2552,13 @@ val_t syntax___typing___AExpr___stype(val_t p0){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
     fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
     CALL_standard___file___Object___print(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-    /* ./syntax//typing.nit:362 */
-    nit_abort("Aborted", NULL, LOCATE_syntax___typing, 362);
+    /* syntax/typing.nit:371 */
+    nit_abort("Aborted", NULL, LOCATE_syntax___typing, 371);
   }
-  /* ./syntax//typing.nit:364 */
+  /* syntax/typing.nit:373 */
   REGB0 = CALL_syntax___syntax_base___AExpr___is_statement(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:365 */
+    /* syntax/typing.nit:374 */
     REGB0 = TAG_Int(3);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_3) {
@@ -2529,15 +2584,15 @@ val_t syntax___typing___AExpr___stype(val_t p0){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
     fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
     CALL_standard___file___Object___print(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-    /* ./syntax//typing.nit:366 */
-    nit_abort("Aborted", NULL, LOCATE_syntax___typing, 366);
+    /* syntax/typing.nit:375 */
+    nit_abort("Aborted", NULL, LOCATE_syntax___typing, 375);
   }
-  /* ./syntax//typing.nit:368 */
+  /* syntax/typing.nit:377 */
   fra.me.REG[1] = ATTR_syntax___typing___AExpr____stype(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 368);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 377);
   }
   goto label5;
   label5: while(0);
@@ -2550,7 +2605,7 @@ void syntax___typing___AExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 372;
+  fra.me.line = 381;
   fra.me.meth = LOCATE_syntax___typing___AExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2559,7 +2614,7 @@ void syntax___typing___AExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:375 */
+  /* syntax/typing.nit:384 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -2571,14 +2626,14 @@ val_t syntax___typing___AExpr___is_implicit_self(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 378;
+  fra.me.line = 387;
   fra.me.meth = LOCATE_syntax___typing___AExpr___is_implicit_self;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:379 */
+  /* syntax/typing.nit:388 */
   REGB0 = TAG_Bool(false);
   goto label1;
   label1: while(0);
@@ -2591,14 +2646,14 @@ val_t syntax___typing___AExpr___is_self(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 381;
+  fra.me.line = 390;
   fra.me.meth = LOCATE_syntax___typing___AExpr___is_self;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:382 */
+  /* syntax/typing.nit:391 */
   REGB0 = TAG_Bool(false);
   goto label1;
   label1: while(0);
@@ -2610,14 +2665,14 @@ val_t syntax___typing___AExpr___its_variable(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 384;
+  fra.me.line = 393;
   fra.me.meth = LOCATE_syntax___typing___AExpr___its_variable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:385 */
+  /* syntax/typing.nit:394 */
   fra.me.REG[0] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -2629,14 +2684,14 @@ val_t syntax___typing___AExpr___if_true_flow_ctx(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 387;
+  fra.me.line = 396;
   fra.me.meth = LOCATE_syntax___typing___AExpr___if_true_flow_ctx;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:387 */
+  /* syntax/typing.nit:396 */
   fra.me.REG[0] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -2646,25 +2701,107 @@ val_t syntax___typing___AExpr___if_false_flow_ctx(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 390;
+  fra.me.line = 399;
   fra.me.meth = LOCATE_syntax___typing___AExpr___if_false_flow_ctx;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:390 */
+  /* syntax/typing.nit:399 */
   fra.me.REG[0] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+void syntax___typing___AExpr___warn_parentheses(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_syntax___typing;
+  fra.me.line = 402;
+  fra.me.meth = LOCATE_syntax___typing___AExpr___warn_parentheses;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void syntax___typing___AParExpr___warn_parentheses(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t tmp;
+  static val_t once_value_1; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_syntax___typing;
+  fra.me.line = 409;
+  fra.me.meth = LOCATE_syntax___typing___AParExpr___warn_parentheses;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* syntax/typing.nit:411 */
+  if (!once_value_1) {
+    fra.me.REG[2] = BOX_NativeString("Warning: superfluous parentheses.");
+    REGB0 = TAG_Int(33);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    once_value_1 = fra.me.REG[2];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[2] = once_value_1;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void syntax___typing___AParExprs___after_typing(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t tmp;
+    static val_t once_value_1; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_syntax___typing;
+  fra.me.line = 416;
+  fra.me.meth = LOCATE_syntax___typing___AParExprs___after_typing;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* syntax/typing.nit:418 */
+  fra.me.REG[2] = CALL_parser___parser_nodes___AExprs___n_exprs(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
+  if (UNTAG_Bool(REGB0)) {
+    /* syntax/typing.nit:419 */
+    if (!once_value_1) {
+      fra.me.REG[2] = BOX_NativeString("Warning: superfluous parentheses.");
+      REGB0 = TAG_Int(33);
+      fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+      once_value_1 = fra.me.REG[2];
+      register_static_object(&once_value_1);
+    } else fra.me.REG[2] = once_value_1;
+    fra.me.REG[2] = fra.me.REG[2];
+    CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
+  }
+  stack_frame_head = fra.me.prev;
+  return;
+}
 val_t syntax___typing___AVardeclExpr___variable(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 396;
+  fra.me.line = 426;
   fra.me.meth = LOCATE_syntax___typing___AVardeclExpr___variable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2672,13 +2809,13 @@ val_t syntax___typing___AVardeclExpr___variable(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:396 */
+  /* syntax/typing.nit:426 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_syntax___typing___AVardeclExpr____variable(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 396);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 426);
   }
   goto label1;
   label1: while(0);
@@ -2692,7 +2829,7 @@ void syntax___typing___AVardeclExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 398;
+  fra.me.line = 428;
   fra.me.meth = LOCATE_syntax___typing___AVardeclExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -2704,19 +2841,19 @@ void syntax___typing___AVardeclExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:400 */
+  /* syntax/typing.nit:430 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AVardeclExpr___n_id(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_parser___parser_nodes___AVardeclExpr___n_id(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = NEW_VarVariable_syntax___syntax_base___VarVariable___init(fra.me.REG[2], fra.me.REG[3]);
-  /* ./syntax//typing.nit:401 */
+  /* syntax/typing.nit:431 */
   ATTR_syntax___typing___AVardeclExpr____variable(fra.me.REG[0]) = fra.me.REG[3];
-  /* ./syntax//typing.nit:402 */
+  /* syntax/typing.nit:432 */
   fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]);
   CALL_syntax___scope___ScopeContext___add_variable(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./syntax//typing.nit:403 */
+  /* syntax/typing.nit:433 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AVardeclExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./syntax//typing.nit:404 */
+  /* syntax/typing.nit:434 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2733,7 +2870,7 @@ void syntax___typing___AVardeclExpr___after_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     CALL_syntax___typing___TypingVisitor___mark_is_set(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./syntax//typing.nit:406 */
+  /* syntax/typing.nit:436 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -2749,26 +2886,26 @@ void syntax___typing___AVardeclExpr___after_typing(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:407 */
+    /* syntax/typing.nit:437 */
     fra.me.REG[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 407);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 437);
     }
     REGB0 = CALL_syntax___syntax_base___AType___is_typed(fra.me.REG[4])(fra.me.REG[4]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
       goto label1;
     }
-    /* ./syntax//typing.nit:408 */
+    /* syntax/typing.nit:438 */
     fra.me.REG[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 408);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 438);
     }
     fra.me.REG[4] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[4])(fra.me.REG[4]);
     CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-    /* ./syntax//typing.nit:409 */
+    /* syntax/typing.nit:439 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -2783,12 +2920,12 @@ void syntax___typing___AVardeclExpr___after_typing(val_t p0, val_t p1){
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:410 */
+      /* syntax/typing.nit:440 */
       fra.me.REG[4] = CALL_syntax___syntax_base___Variable___stype(fra.me.REG[3])(fra.me.REG[3]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]);
     }
   } else {
-    /* ./syntax//typing.nit:412 */
+    /* syntax/typing.nit:442 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -2803,27 +2940,27 @@ void syntax___typing___AVardeclExpr___after_typing(val_t p0, val_t p1){
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:413 */
+      /* syntax/typing.nit:443 */
       REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
         goto label1;
       }
-      /* ./syntax//typing.nit:414 */
+      /* syntax/typing.nit:444 */
       REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 414);
+        nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 444);
       }
       fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]);
       CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
     } else {
-      /* ./syntax//typing.nit:416 */
+      /* syntax/typing.nit:446 */
       fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[1] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[1])(fra.me.REG[1]);
       CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
     }
   }
-  /* ./syntax//typing.nit:418 */
+  /* syntax/typing.nit:448 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   label1: while(0);
@@ -2836,7 +2973,7 @@ void syntax___typing___ABlockExpr___accept_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 423;
+  fra.me.line = 453;
   fra.me.meth = LOCATE_syntax___typing___ABlockExpr___accept_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2846,10 +2983,10 @@ void syntax___typing___ABlockExpr___accept_typing(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:425 */
+  /* syntax/typing.nit:455 */
   fra.me.REG[2] = CALL_parser___parser_nodes___ABlockExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_syntax___typing___ABlockExpr___accept_typing_1));
-  /* ./syntax//typing.nit:434 */
+  /* syntax/typing.nit:464 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -2874,24 +3011,24 @@ void syntax___typing___ABlockExpr___accept_typing(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./syntax//typing.nit:426 */
+    /* syntax/typing.nit:456 */
     fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx->REG[1])(closctx->REG[1]);
     REGB0 = CALL_syntax___flow___FlowContext___unreash(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:427 */
+      /* syntax/typing.nit:457 */
       CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
     } else {
-      /* ./syntax//typing.nit:428 */
+      /* syntax/typing.nit:458 */
       fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx->REG[1])(closctx->REG[1]);
       REGB0 = CALL_syntax___flow___FlowContext___already_unreash(fra.me.REG[1])(fra.me.REG[1]);
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//typing.nit:429 */
+        /* syntax/typing.nit:459 */
         fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx->REG[1])(closctx->REG[1]);
         REGB0 = TAG_Bool(true);
         CALL_syntax___flow___FlowContext___already_unreash__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
-        /* ./syntax//typing.nit:430 */
+        /* syntax/typing.nit:460 */
         if (!once_value_2) {
           fra.me.REG[1] = BOX_NativeString("Error: unreachable statement.");
           REGB0 = TAG_Int(29);
@@ -2916,7 +3053,7 @@ void syntax___typing___AReturnExpr___after_typing(val_t p0, val_t p1){
       static val_t once_value_4; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 439;
+  fra.me.line = 469;
   fra.me.meth = LOCATE_syntax___typing___AReturnExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -2928,20 +3065,20 @@ void syntax___typing___AReturnExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:441 */
+  /* syntax/typing.nit:471 */
   CALL_syntax___typing___TypingVisitor___mark_unreash(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./syntax//typing.nit:442 */
+  /* syntax/typing.nit:472 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 442);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 472);
   }
   fra.me.REG[2] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:444 */
+  /* syntax/typing.nit:474 */
   REGB0 = CALL_syntax___typing___TypingVisitor___is_default_closure_definition(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:445 */
+    /* syntax/typing.nit:475 */
     if (!once_value_1) {
       fra.me.REG[3] = BOX_NativeString("Error: 'return' invalid in default closure definitions. Use 'continue' or 'break'.");
       REGB0 = TAG_Int(82);
@@ -2951,12 +3088,12 @@ void syntax___typing___AReturnExpr___after_typing(val_t p0, val_t p1){
     } else fra.me.REG[3] = once_value_1;
     fra.me.REG[3] = fra.me.REG[3];
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
-    /* ./syntax//typing.nit:446 */
+    /* syntax/typing.nit:476 */
     goto label2;
   }
-  /* ./syntax//typing.nit:449 */
+  /* syntax/typing.nit:479 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AReturnExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./syntax//typing.nit:450 */
+  /* syntax/typing.nit:480 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -2988,7 +3125,7 @@ void syntax___typing___AReturnExpr___after_typing(val_t p0, val_t p1){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:451 */
+    /* syntax/typing.nit:481 */
     if (!once_value_3) {
       fra.me.REG[4] = BOX_NativeString("Error: Return without value in a function.");
       REGB0 = TAG_Int(42);
@@ -2999,7 +3136,7 @@ void syntax___typing___AReturnExpr___after_typing(val_t p0, val_t p1){
     fra.me.REG[4] = fra.me.REG[4];
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
   } else {
-    /* ./syntax//typing.nit:452 */
+    /* syntax/typing.nit:482 */
     REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -3031,7 +3168,7 @@ void syntax___typing___AReturnExpr___after_typing(val_t p0, val_t p1){
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:453 */
+      /* syntax/typing.nit:483 */
       if (!once_value_4) {
         fra.me.REG[4] = BOX_NativeString("Error: Return with value in a procedure.");
         REGB0 = TAG_Int(40);
@@ -3042,7 +3179,7 @@ void syntax___typing___AReturnExpr___after_typing(val_t p0, val_t p1){
       fra.me.REG[4] = fra.me.REG[4];
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
     } else {
-      /* ./syntax//typing.nit:454 */
+      /* syntax/typing.nit:484 */
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -3075,12 +3212,34 @@ void syntax___typing___AReturnExpr___after_typing(val_t p0, val_t p1){
         REGB0 = REGB1;
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//typing.nit:455 */
+        /* syntax/typing.nit:485 */
         CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]);
       }
     }
   }
-  /* ./syntax//typing.nit:457 */
+  /* syntax/typing.nit:487 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  if (UNTAG_Bool(REGB0)) {
+    /* syntax/typing.nit:488 */
+    REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 488);
+    }
+    CALL_syntax___typing___AExpr___warn_parentheses(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  }
+  /* syntax/typing.nit:490 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   label2: while(0);
@@ -3097,7 +3256,7 @@ void syntax___typing___AContinueExpr___after_typing(val_t p0, val_t p1){
       static val_t once_value_4; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 462;
+  fra.me.line = 495;
   fra.me.meth = LOCATE_syntax___typing___AContinueExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -3109,79 +3268,78 @@ void syntax___typing___AContinueExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:462 */
-  fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//typing.nit:464 */
-  CALL_syntax___typing___TypingVisitor___mark_unreash(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//typing.nit:465 */
-  fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[3] = CALL_syntax___scope___AEscapeExpr___compute_escapable_block(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./syntax//typing.nit:466 */
-  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  /* syntax/typing.nit:497 */
+  CALL_syntax___typing___TypingVisitor___mark_unreash(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  /* syntax/typing.nit:498 */
+  fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[2] = CALL_syntax___scope___AEscapeExpr___compute_escapable_block(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
+  /* syntax/typing.nit:499 */
+  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       REGB1 = TAG_Bool(false);
       REGB0 = REGB1;
     } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
       REGB0 = REGB1;
     }
   }
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:468 */
-  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  /* syntax/typing.nit:501 */
+  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 468);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 501);
   }
-  REGB0 = CALL_syntax___scope___EscapableBlock___is_break_block(fra.me.REG[3])(fra.me.REG[3]);
+  REGB0 = CALL_syntax___scope___EscapableBlock___is_break_block(fra.me.REG[2])(fra.me.REG[2]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:469 */
+    /* syntax/typing.nit:502 */
     if (!once_value_2) {
-      fra.me.REG[4] = BOX_NativeString("Error: cannot 'continue', only 'break'.");
+      fra.me.REG[3] = BOX_NativeString("Error: cannot 'continue', only 'break'.");
       REGB0 = TAG_Int(39);
-      fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
-      once_value_2 = fra.me.REG[4];
+      fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+      once_value_2 = fra.me.REG[3];
       register_static_object(&once_value_2);
-    } else fra.me.REG[4] = once_value_2;
-    fra.me.REG[4] = fra.me.REG[4];
-    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]);
-    /* ./syntax//typing.nit:470 */
+    } else fra.me.REG[3] = once_value_2;
+    fra.me.REG[3] = fra.me.REG[3];
+    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
+    /* syntax/typing.nit:503 */
     goto label1;
   }
-  /* ./syntax//typing.nit:473 */
-  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  /* syntax/typing.nit:506 */
+  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 473);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 506);
   }
-  fra.me.REG[3] = CALL_syntax___scope___EscapableBlock___continue_stype(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//typing.nit:474 */
-  fra.me.REG[4] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+  fra.me.REG[2] = CALL_syntax___scope___EscapableBlock___continue_stype(fra.me.REG[2])(fra.me.REG[2]);
+  /* syntax/typing.nit:507 */
+  fra.me.REG[3] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
+  /* syntax/typing.nit:508 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       REGB1 = TAG_Bool(false);
       REGB0 = REGB1;
     } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
       REGB0 = REGB1;
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         REGB1 = TAG_Bool(false);
         REGB0 = REGB1;
       } else {
-        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
         REGB0 = REGB1;
       }
     }
@@ -3191,7 +3349,7 @@ void syntax___typing___AContinueExpr___after_typing(val_t p0, val_t p1){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:475 */
+    /* syntax/typing.nit:509 */
     if (!once_value_3) {
       fra.me.REG[4] = BOX_NativeString("Error: continue with a value required in this block.");
       REGB0 = TAG_Int(52);
@@ -3200,33 +3358,32 @@ void syntax___typing___AContinueExpr___after_typing(val_t p0, val_t p1){
       register_static_object(&once_value_3);
     } else fra.me.REG[4] = once_value_3;
     fra.me.REG[4] = fra.me.REG[4];
-    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]);
+    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
   } else {
-    /* ./syntax//typing.nit:476 */
-    fra.me.REG[4] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+    /* syntax/typing.nit:510 */
+    REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+      REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         REGB1 = TAG_Bool(false);
         REGB0 = REGB1;
       } else {
-        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
         REGB0 = REGB1;
       }
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
-        REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+        REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           REGB1 = TAG_Bool(false);
           REGB0 = REGB1;
         } else {
-          REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+          REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
           REGB0 = REGB1;
         }
       }
@@ -3235,7 +3392,7 @@ void syntax___typing___AContinueExpr___after_typing(val_t p0, val_t p1){
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:477 */
+      /* syntax/typing.nit:511 */
       if (!once_value_4) {
         fra.me.REG[4] = BOX_NativeString("Error: continue without value required in this block.");
         REGB0 = TAG_Int(53);
@@ -3244,33 +3401,32 @@ void syntax___typing___AContinueExpr___after_typing(val_t p0, val_t p1){
         register_static_object(&once_value_4);
       } else fra.me.REG[4] = once_value_4;
       fra.me.REG[4] = fra.me.REG[4];
-      CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]);
+      CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
     } else {
-      /* ./syntax//typing.nit:478 */
-      fra.me.REG[4] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
-      REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+      /* syntax/typing.nit:512 */
+      REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
-        REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+        REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           REGB1 = TAG_Bool(false);
           REGB0 = REGB1;
         } else {
-          REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
+          REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
           REGB0 = REGB1;
         }
       }
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
-        REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+        REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
         } else {
-          REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+          REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
             REGB1 = TAG_Bool(false);
             REGB0 = REGB1;
           } else {
-            REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+            REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
             REGB0 = REGB1;
           }
         }
@@ -3280,26 +3436,42 @@ void syntax___typing___AContinueExpr___after_typing(val_t p0, val_t p1){
         REGB0 = REGB1;
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//typing.nit:479 */
-        fra.me.REG[4] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
-        REGB0 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-        if (UNTAG_Bool(REGB0)) {
-        } else {
-          nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 479);
-        }
-        CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[3]);
+        /* syntax/typing.nit:513 */
+        CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]);
       }
     }
   }
-  /* ./syntax//typing.nit:481 */
+  /* syntax/typing.nit:515 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  if (UNTAG_Bool(REGB0)) {
+    /* syntax/typing.nit:516 */
+    REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 516);
+    }
+    CALL_syntax___typing___AExpr___warn_parentheses(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  }
+  /* syntax/typing.nit:518 */
   REGB0 = TAG_Bool(true);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[2]) = REGB0;
+  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return;
 }
 void syntax___typing___ABreakExpr___after_typing(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
   val_t REGB1;
   val_t tmp;
@@ -3307,81 +3479,79 @@ void syntax___typing___ABreakExpr___after_typing(val_t p0, val_t p1){
       static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 486;
+  fra.me.line = 523;
   fra.me.meth = LOCATE_syntax___typing___ABreakExpr___after_typing;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
+  fra.me.REG_size = 5;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:486 */
-  fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//typing.nit:488 */
-  fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:489 */
-  CALL_syntax___typing___TypingVisitor___mark_unreash(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//typing.nit:490 */
-  fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[4] = CALL_syntax___scope___AEscapeExpr___compute_escapable_block(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* ./syntax//typing.nit:491 */
-  REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+  /* syntax/typing.nit:525 */
+  fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
+  /* syntax/typing.nit:526 */
+  CALL_syntax___typing___TypingVisitor___mark_unreash(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  /* syntax/typing.nit:527 */
+  fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[3] = CALL_syntax___scope___AEscapeExpr___compute_escapable_block(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
+  /* syntax/typing.nit:528 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       REGB1 = TAG_Bool(false);
       REGB0 = REGB1;
     } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
       REGB0 = REGB1;
     }
   }
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:493 */
-  REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+  /* syntax/typing.nit:530 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 493);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 530);
   }
-  fra.me.REG[5] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra.me.REG[4])(fra.me.REG[4]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
-  /* ./syntax//typing.nit:495 */
-  REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+  fra.me.REG[4] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra.me.REG[3])(fra.me.REG[3]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
+  /* syntax/typing.nit:532 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 495);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 532);
   }
-  fra.me.REG[4] = CALL_syntax___scope___EscapableBlock___break_list(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./syntax//typing.nit:496 */
-  fra.me.REG[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  fra.me.REG[3] = CALL_syntax___scope___EscapableBlock___break_list(fra.me.REG[3])(fra.me.REG[3]);
+  /* syntax/typing.nit:533 */
+  fra.me.REG[2] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
+  /* syntax/typing.nit:534 */
+  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       REGB1 = TAG_Bool(false);
       REGB0 = REGB1;
     } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
       REGB0 = REGB1;
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+    REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+      REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         REGB1 = TAG_Bool(false);
         REGB0 = REGB1;
       } else {
-        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
         REGB0 = REGB1;
       }
     }
@@ -3391,42 +3561,41 @@ void syntax___typing___ABreakExpr___after_typing(val_t p0, val_t p1){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:497 */
+    /* syntax/typing.nit:535 */
     if (!once_value_2) {
-      fra.me.REG[3] = BOX_NativeString("Error: break with a value required in this block.");
+      fra.me.REG[4] = BOX_NativeString("Error: break with a value required in this block.");
       REGB0 = TAG_Int(49);
-      fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-      once_value_2 = fra.me.REG[3];
+      fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+      once_value_2 = fra.me.REG[4];
       register_static_object(&once_value_2);
-    } else fra.me.REG[3] = once_value_2;
-    fra.me.REG[3] = fra.me.REG[3];
-    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
+    } else fra.me.REG[4] = once_value_2;
+    fra.me.REG[4] = fra.me.REG[4];
+    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
   } else {
-    /* ./syntax//typing.nit:498 */
-    fra.me.REG[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    /* syntax/typing.nit:536 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         REGB1 = TAG_Bool(false);
         REGB0 = REGB1;
       } else {
-        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
         REGB0 = REGB1;
       }
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+      REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
-        REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+        REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           REGB1 = TAG_Bool(false);
           REGB0 = REGB1;
         } else {
-          REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
+          REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
           REGB0 = REGB1;
         }
       }
@@ -3435,42 +3604,41 @@ void syntax___typing___ABreakExpr___after_typing(val_t p0, val_t p1){
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:499 */
+      /* syntax/typing.nit:537 */
       if (!once_value_3) {
-        fra.me.REG[3] = BOX_NativeString("Error: break without value required in this block.");
+        fra.me.REG[4] = BOX_NativeString("Error: break without value required in this block.");
         REGB0 = TAG_Int(50);
-        fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
-        once_value_3 = fra.me.REG[3];
+        fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+        once_value_3 = fra.me.REG[4];
         register_static_object(&once_value_3);
-      } else fra.me.REG[3] = once_value_3;
-      fra.me.REG[3] = fra.me.REG[3];
-      CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
+      } else fra.me.REG[4] = once_value_3;
+      fra.me.REG[4] = fra.me.REG[4];
+      CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
     } else {
-      /* ./syntax//typing.nit:500 */
-      fra.me.REG[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
-      REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+      /* syntax/typing.nit:538 */
+      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
-        REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+        REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           REGB1 = TAG_Bool(false);
           REGB0 = REGB1;
         } else {
-          REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+          REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
           REGB0 = REGB1;
         }
       }
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
-        REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+        REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
         } else {
-          REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+          REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
             REGB1 = TAG_Bool(false);
             REGB0 = REGB1;
           } else {
-            REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
+            REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
             REGB0 = REGB1;
           }
         }
@@ -3480,24 +3648,40 @@ void syntax___typing___ABreakExpr___after_typing(val_t p0, val_t p1){
         REGB0 = REGB1;
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//typing.nit:502 */
-        fra.me.REG[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
-        REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
-        if (UNTAG_Bool(REGB0)) {
-        } else {
-          nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 502);
-        }
-        REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+        /* syntax/typing.nit:540 */
+        REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 502);
+          nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 540);
         }
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
+        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
       }
     }
   }
-  /* ./syntax//typing.nit:504 */
+  /* syntax/typing.nit:542 */
+  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  if (UNTAG_Bool(REGB0)) {
+    /* syntax/typing.nit:543 */
+    REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 543);
+    }
+    CALL_syntax___typing___AExpr___warn_parentheses(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  }
+  /* syntax/typing.nit:545 */
   REGB0 = TAG_Bool(true);
-  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[2]) = REGB0;
+  ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return;
@@ -3508,7 +3692,7 @@ void syntax___typing___AAbortExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 509;
+  fra.me.line = 550;
   fra.me.meth = LOCATE_syntax___typing___AAbortExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -3517,9 +3701,9 @@ void syntax___typing___AAbortExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:511 */
+  /* syntax/typing.nit:552 */
   CALL_syntax___typing___TypingVisitor___mark_unreash(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./syntax//typing.nit:512 */
+  /* syntax/typing.nit:553 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -3530,14 +3714,14 @@ val_t syntax___typing___AAbsControl___escapable(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 519;
+  fra.me.line = 560;
   fra.me.meth = LOCATE_syntax___typing___AAbsControl___escapable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:519 */
+  /* syntax/typing.nit:560 */
   fra.me.REG[0] = ATTR_syntax___typing___AAbsControl____escapable(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -3549,7 +3733,7 @@ void syntax___typing___AAbsControl___process_control(val_t p0, val_t p1, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 522;
+  fra.me.line = 563;
   fra.me.meth = LOCATE_syntax___typing___AAbsControl___process_control;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -3566,54 +3750,54 @@ void syntax___typing___AAbsControl___process_control(val_t p0, val_t p1, val_t p
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   REGB0 = p4;
-  /* ./syntax//typing.nit:526 */
+  /* syntax/typing.nit:567 */
   ATTR_syntax___typing___AAbsControl____escapable(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./syntax//typing.nit:527 */
+  /* syntax/typing.nit:568 */
   fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]);
   CALL_syntax___scope___ScopeContext___push_escapable(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2], fra.me.REG[3]);
-  /* ./syntax//typing.nit:530 */
+  /* syntax/typing.nit:571 */
   fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:531 */
+  /* syntax/typing.nit:572 */
   fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:532 */
+  /* syntax/typing.nit:573 */
   if (UNTAG_Bool(REGB0)) {
     fra.me.REG[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
     CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
   }
-  /* ./syntax//typing.nit:535 */
+  /* syntax/typing.nit:576 */
   CALL_syntax___typing___AAbsControl___process_control_inside(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//typing.nit:538 */
+  /* syntax/typing.nit:579 */
   fra.me.REG[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
   REGB1 = CALL_syntax___flow___FlowContext___unreash(fra.me.REG[5])(fra.me.REG[5]);
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
   if (UNTAG_Bool(REGB1)) {
-    /* ./syntax//typing.nit:539 */
+    /* syntax/typing.nit:580 */
     fra.me.REG[5] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
   }
-  /* ./syntax//typing.nit:543 */
+  /* syntax/typing.nit:584 */
   fra.me.REG[6] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra.me.REG[2])(fra.me.REG[2]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[6])(fra.me.REG[6]);
   if (UNTAG_Bool(REGB1)) {
-    /* ./syntax//typing.nit:544 */
+    /* syntax/typing.nit:585 */
     CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-    /* ./syntax//typing.nit:545 */
+    /* syntax/typing.nit:586 */
     CALL_syntax___typing___TypingVisitor___mark_unreash(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   } else {
-    /* ./syntax//typing.nit:547 */
+    /* syntax/typing.nit:588 */
     fra.me.REG[2] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[2] = CALL_syntax___flow___FlowContext___merge(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0], fra.me.REG[2]);
     CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
-  /* ./syntax//typing.nit:550 */
+  /* syntax/typing.nit:591 */
   if (UNTAG_Bool(REGB0)) {
     CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
   }
-  /* ./syntax//typing.nit:551 */
+  /* syntax/typing.nit:592 */
   fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]);
   CALL_syntax___scope___ScopeContext___pop(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:552 */
+  /* syntax/typing.nit:593 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -3624,13 +3808,13 @@ void syntax___typing___AAbsControl___process_control_inside(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 555;
+  fra.me.line = 596;
   fra.me.meth = LOCATE_syntax___typing___AAbsControl___process_control_inside;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//typing.nit:555 */
-  nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 555);
+  /* syntax/typing.nit:596 */
+  nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 596);
   stack_frame_head = fra.me.prev;
   return;
 }
@@ -3640,7 +3824,7 @@ void syntax___typing___ADoExpr___accept_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 561;
+  fra.me.line = 602;
   fra.me.meth = LOCATE_syntax___typing___ADoExpr___accept_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -3651,7 +3835,7 @@ void syntax___typing___ADoExpr___accept_typing(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:563 */
+  /* syntax/typing.nit:604 */
   fra.me.REG[2] = NEW_BreakOnlyEscapableBlock_syntax___scope___BreakOnlyEscapableBlock___init(fra.me.REG[0]);
   fra.me.REG[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(false);
@@ -3664,7 +3848,7 @@ void syntax___typing___ADoExpr___process_control_inside(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 566;
+  fra.me.line = 607;
   fra.me.meth = LOCATE_syntax___typing___ADoExpr___process_control_inside;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -3673,7 +3857,7 @@ void syntax___typing___ADoExpr___process_control_inside(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:568 */
+  /* syntax/typing.nit:609 */
   fra.me.REG[0] = CALL_parser___parser_nodes___ADoExpr___n_block(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___TypingVisitor___enter_visit_block(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
@@ -3685,7 +3869,7 @@ void syntax___typing___AIfExpr___accept_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 573;
+  fra.me.line = 614;
   fra.me.meth = LOCATE_syntax___typing___AIfExpr___accept_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -3697,37 +3881,40 @@ void syntax___typing___AIfExpr___accept_typing(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:575 */
+  /* syntax/typing.nit:616 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//typing.nit:576 */
+  /* syntax/typing.nit:617 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]);
   CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
-  /* ./syntax//typing.nit:579 */
+  /* syntax/typing.nit:619 */
+  fra.me.REG[3] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_syntax___typing___AExpr___warn_parentheses(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  /* syntax/typing.nit:622 */
   fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:580 */
+  /* syntax/typing.nit:623 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//typing.nit:583 */
+  /* syntax/typing.nit:626 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AIfExpr___n_then(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___TypingVisitor___enter_visit_block(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//typing.nit:586 */
+  /* syntax/typing.nit:629 */
   fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:589 */
+  /* syntax/typing.nit:632 */
   CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//typing.nit:590 */
+  /* syntax/typing.nit:633 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//typing.nit:593 */
+  /* syntax/typing.nit:636 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AIfExpr___n_else(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___TypingVisitor___enter_visit_block(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//typing.nit:596 */
+  /* syntax/typing.nit:639 */
   fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[4] = CALL_syntax___flow___FlowContext___merge_reash(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0], fra.me.REG[2], fra.me.REG[4]);
   CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//typing.nit:597 */
+  /* syntax/typing.nit:640 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -3739,7 +3926,7 @@ void syntax___typing___AWhileExpr___accept_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 603;
+  fra.me.line = 646;
   fra.me.meth = LOCATE_syntax___typing___AWhileExpr___accept_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -3750,7 +3937,7 @@ void syntax___typing___AWhileExpr___accept_typing(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:605 */
+  /* syntax/typing.nit:648 */
   fra.me.REG[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra.me.REG[0]);
   fra.me.REG[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(true);
@@ -3765,7 +3952,7 @@ void syntax___typing___AWhileExpr___process_control_inside(val_t p0, val_t p1){
     static val_t once_value_1; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 608;
+  fra.me.line = 651;
   fra.me.meth = LOCATE_syntax___typing___AWhileExpr___process_control_inside;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -3777,20 +3964,20 @@ void syntax___typing___AWhileExpr___process_control_inside(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:610 */
+  /* syntax/typing.nit:653 */
   fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:613 */
+  /* syntax/typing.nit:656 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//typing.nit:614 */
+  /* syntax/typing.nit:657 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]);
   CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[4]);
-  /* ./syntax//typing.nit:616 */
+  /* syntax/typing.nit:659 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_parser___parser_nodes___ATrueExpr, ID_parser___parser_nodes___ATrueExpr)) /*cast ATrueExpr*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:617 */
+    /* syntax/typing.nit:660 */
     if (!once_value_1) {
       fra.me.REG[4] = BOX_NativeString("Warning: use 'loop' instead of 'while true do'.");
       REGB0 = TAG_Int(47);
@@ -3800,23 +3987,27 @@ void syntax___typing___AWhileExpr___process_control_inside(val_t p0, val_t p1){
     } else fra.me.REG[4] = once_value_1;
     fra.me.REG[4] = fra.me.REG[4];
     CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
+  } else {
+    /* syntax/typing.nit:662 */
+    fra.me.REG[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
+    CALL_syntax___typing___AExpr___warn_parentheses(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
   }
-  /* ./syntax//typing.nit:621 */
+  /* syntax/typing.nit:666 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//typing.nit:624 */
+  /* syntax/typing.nit:669 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___TypingVisitor___enter_visit_block(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//typing.nit:627 */
+  /* syntax/typing.nit:672 */
   CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//typing.nit:628 */
+  /* syntax/typing.nit:673 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//typing.nit:629 */
+  /* syntax/typing.nit:674 */
   fra.me.REG[0] = CALL_syntax___typing___AAbsControl___escapable(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 629);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 674);
   }
   fra.me.REG[0] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
@@ -3830,7 +4021,7 @@ void syntax___typing___ALoopExpr___accept_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 635;
+  fra.me.line = 680;
   fra.me.meth = LOCATE_syntax___typing___ALoopExpr___accept_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -3841,7 +4032,7 @@ void syntax___typing___ALoopExpr___accept_typing(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:637 */
+  /* syntax/typing.nit:682 */
   fra.me.REG[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra.me.REG[0]);
   fra.me.REG[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(true);
@@ -3854,7 +4045,7 @@ void syntax___typing___ALoopExpr___process_control_inside(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 640;
+  fra.me.line = 685;
   fra.me.meth = LOCATE_syntax___typing___ALoopExpr___process_control_inside;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3864,10 +4055,10 @@ void syntax___typing___ALoopExpr___process_control_inside(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:643 */
+  /* syntax/typing.nit:688 */
   fra.me.REG[2] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___TypingVisitor___enter_visit_block(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//typing.nit:646 */
+  /* syntax/typing.nit:691 */
   CALL_syntax___typing___TypingVisitor___mark_unreash(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return;
@@ -3878,7 +4069,7 @@ val_t syntax___typing___AForExpr___variables(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 653;
+  fra.me.line = 698;
   fra.me.meth = LOCATE_syntax___typing___AForExpr___variables;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -3886,13 +4077,13 @@ val_t syntax___typing___AForExpr___variables(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:653 */
+  /* syntax/typing.nit:698 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_syntax___typing___AForExpr____variables(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 653);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 698);
   }
   goto label1;
   label1: while(0);
@@ -3905,7 +4096,7 @@ void syntax___typing___AForExpr___accept_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 655;
+  fra.me.line = 700;
   fra.me.meth = LOCATE_syntax___typing___AForExpr___accept_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -3916,7 +4107,7 @@ void syntax___typing___AForExpr___accept_typing(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:657 */
+  /* syntax/typing.nit:702 */
   fra.me.REG[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra.me.REG[0]);
   fra.me.REG[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(true);
@@ -3929,7 +4120,7 @@ void syntax___typing___AForExpr___process_control_inside(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 660;
+  fra.me.line = 705;
   fra.me.meth = LOCATE_syntax___typing___AForExpr___process_control_inside;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -3939,19 +4130,19 @@ void syntax___typing___AForExpr___process_control_inside(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:662 */
+  /* syntax/typing.nit:707 */
   fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]);
   CALL_syntax___scope___ScopeContext___push(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* ./syntax//typing.nit:663 */
+  /* syntax/typing.nit:708 */
   fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:665 */
+  /* syntax/typing.nit:710 */
   CALL_syntax___typing___AForExpr___do_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//typing.nit:668 */
+  /* syntax/typing.nit:713 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AForExpr___n_block(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___TypingVisitor___enter_visit_block(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./syntax//typing.nit:671 */
+  /* syntax/typing.nit:716 */
   CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//typing.nit:672 */
+  /* syntax/typing.nit:717 */
   fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]);
   CALL_syntax___scope___ScopeContext___pop(fra.me.REG[1])(fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
@@ -3984,7 +4175,7 @@ void syntax___typing___AForExpr___do_typing(val_t p0, val_t p1){
       static val_t once_value_18; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 675;
+  fra.me.line = 720;
   fra.me.meth = LOCATE_syntax___typing___AForExpr___do_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -3999,30 +4190,30 @@ void syntax___typing___AForExpr___do_typing(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:678 */
+  /* syntax/typing.nit:723 */
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
-  /* ./syntax//typing.nit:679 */
+  /* syntax/typing.nit:724 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AForExpr___n_ids(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_syntax___typing___AForExpr___do_typing_1));
-  /* ./syntax//typing.nit:684 */
+  /* syntax/typing.nit:729 */
   ATTR_syntax___typing___AForExpr____variables(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./syntax//typing.nit:687 */
+  /* syntax/typing.nit:732 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//typing.nit:688 */
+  /* syntax/typing.nit:733 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label2;
   }
-  /* ./syntax//typing.nit:689 */
+  /* syntax/typing.nit:734 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//typing.nit:691 */
+  /* syntax/typing.nit:736 */
   REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:692 */
+    /* syntax/typing.nit:737 */
     fra.me.REG[4] = CALL_parser___parser_nodes___AForExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
     if (!once_value_3) {
       fra.me.REG[5] = BOX_NativeString("Type error: 'for' on a nullable expression.");
@@ -4033,10 +4224,13 @@ void syntax___typing___AForExpr___do_typing(val_t p0, val_t p1){
     } else fra.me.REG[5] = once_value_3;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]);
-    /* ./syntax//typing.nit:693 */
+    /* syntax/typing.nit:738 */
     goto label2;
   }
-  /* ./syntax//typing.nit:697 */
+  /* syntax/typing.nit:740 */
+  fra.me.REG[5] = CALL_parser___parser_nodes___AForExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_syntax___typing___AExpr___warn_parentheses(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
+  /* syntax/typing.nit:743 */
   if (!once_value_4) {
     if (!once_value_5) {
       fra.me.REG[5] = BOX_NativeString("iterate");
@@ -4051,12 +4245,12 @@ void syntax___typing___AForExpr___do_typing(val_t p0, val_t p1){
     register_static_object(&once_value_4);
   } else fra.me.REG[5] = once_value_4;
   fra.me.REG[5] = fra.me.REG[5];
-  /* ./syntax//typing.nit:698 */
+  /* syntax/typing.nit:744 */
   fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:699 */
+    /* syntax/typing.nit:745 */
     fra.me.REG[4] = CALL_parser___parser_nodes___AForExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Int(3);
     fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
@@ -4082,21 +4276,21 @@ void syntax___typing___AForExpr___do_typing(val_t p0, val_t p1){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
     fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[6]);
-    /* ./syntax//typing.nit:700 */
+    /* syntax/typing.nit:746 */
     goto label2;
   }
-  /* ./syntax//typing.nit:702 */
+  /* syntax/typing.nit:748 */
   fra.me.REG[6] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
-  /* ./syntax//typing.nit:703 */
+  /* syntax/typing.nit:749 */
   fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[5])(fra.me.REG[5]);
   fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[7] = CALL_parser___parser_nodes___AForExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___typing___AExpr___is_self(fra.me.REG[7])(fra.me.REG[7]);
   CALL_syntax___syntax_base___MMGlobalProperty___check_visibility(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1], fra.me.REG[0], fra.me.REG[4], REGB0);
-  /* ./syntax//typing.nit:704 */
+  /* syntax/typing.nit:750 */
   fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
-  /* ./syntax//typing.nit:705 */
+  /* syntax/typing.nit:751 */
   fra.me.REG[5] = CALL_parser___parser_nodes___AForExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___typing___AExpr___is_self(fra.me.REG[5])(fra.me.REG[5]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
@@ -4104,20 +4298,20 @@ void syntax___typing___AForExpr___do_typing(val_t p0, val_t p1){
     fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___not_for_self(fra.me.REG[3])(fra.me.REG[3]);
     fra.me.REG[3] = fra.me.REG[5];
   }
-  /* ./syntax//typing.nit:706 */
+  /* syntax/typing.nit:752 */
   REGB0 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]);
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./syntax//typing.nit:706 */
+    /* syntax/typing.nit:752 */
     REGB2 = REGB1;
   }
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//typing.nit:707 */
+    /* syntax/typing.nit:753 */
     if (!once_value_8) {
       fra.me.REG[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require no arguments.");
       REGB2 = TAG_Int(63);
@@ -4127,31 +4321,31 @@ void syntax___typing___AForExpr___do_typing(val_t p0, val_t p1){
     } else fra.me.REG[5] = once_value_8;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
-    /* ./syntax//typing.nit:708 */
+    /* syntax/typing.nit:754 */
     goto label2;
   } else {
-    /* ./syntax//typing.nit:709 */
+    /* syntax/typing.nit:755 */
     fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[3])(fra.me.REG[3]);
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-    /* ./syntax//typing.nit:709 */
+    /* syntax/typing.nit:755 */
     REGB1 = TAG_Int(1);
     REGB0 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
     if (UNTAG_Bool(REGB0)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB1 = TAG_Bool((REGB2)==(REGB1));
-      /* ./syntax//typing.nit:709 */
+      /* syntax/typing.nit:755 */
       REGB0 = REGB1;
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:710 */
+      /* syntax/typing.nit:756 */
       if (!once_value_9) {
         fra.me.REG[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require one closure.");
         REGB0 = TAG_Int(62);
@@ -4161,20 +4355,20 @@ void syntax___typing___AForExpr___do_typing(val_t p0, val_t p1){
       } else fra.me.REG[5] = once_value_9;
       fra.me.REG[5] = fra.me.REG[5];
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
-      /* ./syntax//typing.nit:711 */
+      /* syntax/typing.nit:757 */
       goto label2;
     }
   }
-  /* ./syntax//typing.nit:713 */
+  /* syntax/typing.nit:759 */
   fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[5] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[5])(fra.me.REG[5]);
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 713);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 759);
   }
   fra.me.REG[5] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[5])(fra.me.REG[5]);
   fra.me.REG[3] = fra.me.REG[5];
-  /* ./syntax//typing.nit:714 */
+  /* syntax/typing.nit:760 */
   fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -4190,7 +4384,7 @@ void syntax___typing___AForExpr___do_typing(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:715 */
+    /* syntax/typing.nit:761 */
     if (!once_value_10) {
       fra.me.REG[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require one procedural closure.");
       REGB0 = TAG_Int(73);
@@ -4200,41 +4394,41 @@ void syntax___typing___AForExpr___do_typing(val_t p0, val_t p1){
     } else fra.me.REG[5] = once_value_10;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
-    /* ./syntax//typing.nit:716 */
+    /* syntax/typing.nit:762 */
     goto label2;
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./syntax//typing.nit:718 */
+  /* syntax/typing.nit:764 */
   REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./syntax//typing.nit:718 */
+    /* syntax/typing.nit:764 */
     REGB2 = REGB1;
   }
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//typing.nit:719 */
+    /* syntax/typing.nit:765 */
     REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]);
     REGB1 = TAG_Int(1);
     REGB0 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
     if (UNTAG_Bool(REGB0)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB1 = TAG_Bool((REGB2)==(REGB1));
-      /* ./syntax//typing.nit:719 */
+      /* syntax/typing.nit:765 */
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:720 */
+      /* syntax/typing.nit:766 */
       REGB0 = TAG_Int(7);
       fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_11) {
@@ -4269,14 +4463,14 @@ void syntax___typing___AForExpr___do_typing(val_t p0, val_t p1){
       } else fra.me.REG[4] = once_value_13;
       fra.me.REG[4] = fra.me.REG[4];
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
       }
       REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-      /* ./syntax//typing.nit:720 */
+      /* syntax/typing.nit:766 */
       fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
       if (!once_value_14) {
@@ -4291,7 +4485,7 @@ void syntax___typing___AForExpr___do_typing(val_t p0, val_t p1){
       fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
     } else {
-      /* ./syntax//typing.nit:722 */
+      /* syntax/typing.nit:768 */
       REGB0 = TAG_Int(7);
       fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_15) {
@@ -4326,14 +4520,14 @@ void syntax___typing___AForExpr___do_typing(val_t p0, val_t p1){
       } else fra.me.REG[4] = once_value_17;
       fra.me.REG[4] = fra.me.REG[4];
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
       }
       REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-      /* ./syntax//typing.nit:722 */
+      /* syntax/typing.nit:768 */
       fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
       if (!once_value_18) {
@@ -4348,44 +4542,44 @@ void syntax___typing___AForExpr___do_typing(val_t p0, val_t p1){
       fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
     }
-    /* ./syntax//typing.nit:724 */
+    /* syntax/typing.nit:770 */
     goto label2;
   }
-  /* ./syntax//typing.nit:728 */
+  /* syntax/typing.nit:774 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//typing.nit:728 */
+      /* syntax/typing.nit:774 */
       REGB2 = REGB0;
-      /* ./../lib/standard//collection//array.nit:278 */
+      /* ../lib/standard/collection/array.nit:278 */
       fra.me.REG[5] = fra.me.REG[2];
       REGB3 = REGB2;
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       REGB4 = TAG_Int(0);
       REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
       if (UNTAG_Bool(REGB5)) {
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:233 */
       REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
-      /* ./../lib/standard//collection//array.nit:280 */
+      /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB4)) {
         REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
         if (UNTAG_Bool(REGB4)) {
@@ -4398,43 +4592,43 @@ void syntax___typing___AForExpr___do_typing(val_t p0, val_t p1){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
       } else {
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB5 = TAG_Bool(false);
         REGB4 = REGB5;
       }
       if (UNTAG_Bool(REGB4)) {
       } else {
-        nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+        nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
       }
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
       REGB4 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB4)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB3)];
-      /* ./../lib/standard//collection//array.nit:281 */
+      /* ../lib/standard/collection/array.nit:281 */
       goto label19;
       label19: while(0);
-      /* ./syntax//typing.nit:729 */
+      /* syntax/typing.nit:775 */
       fra.me.REG[0] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
       REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 729);
+        nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 775);
       }
       CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label20;
     }
   }
@@ -4460,13 +4654,13 @@ void syntax___typing___AForExpr___do_typing(val_t p0, val_t p1){
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./syntax//typing.nit:680 */
+    /* syntax/typing.nit:725 */
     fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[0] = NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(fra.me.REG[1], fra.me.REG[0]);
-    /* ./syntax//typing.nit:681 */
+    /* syntax/typing.nit:726 */
     fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(closctx->REG[1])(closctx->REG[1]);
     CALL_syntax___scope___ScopeContext___add_variable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./syntax//typing.nit:682 */
+    /* syntax/typing.nit:727 */
     CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
     stack_frame_head = fra.me.prev;
     return;
@@ -4478,7 +4672,7 @@ void syntax___typing___AAssertExpr___accept_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 735;
+  fra.me.line = 781;
   fra.me.meth = LOCATE_syntax___typing___AAssertExpr___accept_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -4489,14 +4683,17 @@ void syntax___typing___AAssertExpr___accept_typing(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:738 */
+  /* syntax/typing.nit:784 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//typing.nit:739 */
+  /* syntax/typing.nit:785 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]);
   CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
-  /* ./syntax//typing.nit:742 */
+  /* syntax/typing.nit:786 */
+  fra.me.REG[3] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_syntax___typing___AExpr___warn_parentheses(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+  /* syntax/typing.nit:789 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -4512,21 +4709,21 @@ void syntax___typing___AAssertExpr___accept_typing(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:743 */
+    /* syntax/typing.nit:790 */
     fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./syntax//typing.nit:744 */
+    /* syntax/typing.nit:791 */
     fra.me.REG[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
     CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-    /* ./syntax//typing.nit:745 */
+    /* syntax/typing.nit:792 */
     fra.me.REG[2] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra.me.REG[0])(fra.me.REG[0]);
     CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-    /* ./syntax//typing.nit:746 */
+    /* syntax/typing.nit:793 */
     CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   }
-  /* ./syntax//typing.nit:750 */
+  /* syntax/typing.nit:797 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//typing.nit:751 */
+  /* syntax/typing.nit:798 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -4538,7 +4735,7 @@ val_t syntax___typing___AVarFormExpr___variable(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 757;
+  fra.me.line = 804;
   fra.me.meth = LOCATE_syntax___typing___AVarFormExpr___variable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -4546,13 +4743,13 @@ val_t syntax___typing___AVarFormExpr___variable(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:757 */
+  /* syntax/typing.nit:804 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_syntax___typing___AVarFormExpr____variable(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 757);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 804);
   }
   goto label1;
   label1: while(0);
@@ -4564,14 +4761,14 @@ val_t syntax___typing___AVarExpr___its_variable(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 761;
+  fra.me.line = 808;
   fra.me.meth = LOCATE_syntax___typing___AVarExpr___its_variable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:761 */
+  /* syntax/typing.nit:808 */
   fra.me.REG[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -4585,7 +4782,7 @@ void syntax___typing___AVarExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 763;
+  fra.me.line = 810;
   fra.me.meth = LOCATE_syntax___typing___AVarExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -4596,16 +4793,16 @@ void syntax___typing___AVarExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:765 */
+  /* syntax/typing.nit:812 */
   fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___flow___FlowContext___check_is_set(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[3]);
-  /* ./syntax//typing.nit:766 */
+  /* syntax/typing.nit:813 */
   fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[3];
-  /* ./syntax//typing.nit:767 */
+  /* syntax/typing.nit:814 */
   fra.me.REG[3] = ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -4631,7 +4828,7 @@ void syntax___typing___AVarAssignExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 772;
+  fra.me.line = 819;
   fra.me.meth = LOCATE_syntax___typing___AVarAssignExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -4643,21 +4840,21 @@ void syntax___typing___AVarAssignExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:774 */
+  /* syntax/typing.nit:821 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___TypingVisitor___mark_is_set(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//typing.nit:777 */
+  /* syntax/typing.nit:824 */
   fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./syntax//typing.nit:778 */
+  /* syntax/typing.nit:825 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:779 */
+  /* syntax/typing.nit:826 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -4682,14 +4879,14 @@ void syntax___typing___AVarAssignExpr___after_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:782 */
+  /* syntax/typing.nit:829 */
   fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = CALL_syntax___flow___FlowContext___sub_with(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0], fra.me.REG[2], fra.me.REG[4]);
   CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//typing.nit:784 */
+  /* syntax/typing.nit:831 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   label1: while(0);
@@ -4708,7 +4905,7 @@ val_t syntax___typing___AReassignFormExpr___do_rvalue_typing(val_t p0, val_t p1,
     static val_t once_value_6; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 789;
+  fra.me.line = 836;
   fra.me.meth = LOCATE_syntax___typing___AReassignFormExpr___do_rvalue_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -4724,7 +4921,7 @@ val_t syntax___typing___AReassignFormExpr___do_rvalue_typing(val_t p0, val_t p1,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//typing.nit:794 */
+  /* syntax/typing.nit:841 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -4738,17 +4935,17 @@ val_t syntax___typing___AReassignFormExpr___do_rvalue_typing(val_t p0, val_t p1,
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:795 */
+    /* syntax/typing.nit:842 */
     fra.me.REG[3] = NIT_NULL;
     goto label1;
   }
-  /* ./syntax//typing.nit:797 */
+  /* syntax/typing.nit:844 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_syntax___typing___AAssignOp___method_name(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./syntax//typing.nit:798 */
+  /* syntax/typing.nit:845 */
   REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:799 */
+    /* syntax/typing.nit:846 */
     REGB0 = TAG_Int(3);
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_2) {
@@ -4773,21 +4970,21 @@ val_t syntax___typing___AReassignFormExpr___do_rvalue_typing(val_t p0, val_t p1,
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
-    /* ./syntax//typing.nit:800 */
+    /* syntax/typing.nit:847 */
     fra.me.REG[3] = NIT_NULL;
     goto label1;
   }
-  /* ./syntax//typing.nit:802 */
+  /* syntax/typing.nit:849 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 802);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 849);
   }
   fra.me.REG[5] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:803 */
+  /* syntax/typing.nit:850 */
   REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:804 */
+    /* syntax/typing.nit:851 */
     REGB0 = TAG_Int(5);
     fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_4) {
@@ -4823,22 +5020,22 @@ val_t syntax___typing___AReassignFormExpr___do_rvalue_typing(val_t p0, val_t p1,
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
     fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[6]);
-    /* ./syntax//typing.nit:805 */
+    /* syntax/typing.nit:852 */
     fra.me.REG[3] = NIT_NULL;
     goto label1;
   }
-  /* ./syntax//typing.nit:807 */
+  /* syntax/typing.nit:854 */
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-  /* ./syntax//typing.nit:808 */
+  /* syntax/typing.nit:855 */
   fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(false);
   CALL_syntax___syntax_base___MMGlobalProperty___check_visibility(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[0], fra.me.REG[6], REGB0);
-  /* ./syntax//typing.nit:809 */
+  /* syntax/typing.nit:856 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-  /* ./syntax//typing.nit:810 */
+  /* syntax/typing.nit:857 */
   ATTR_syntax___typing___AReassignFormExpr____assign_method(fra.me.REG[0]) = fra.me.REG[4];
-  /* ./syntax//typing.nit:811 */
+  /* syntax/typing.nit:858 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Int(0);
   fra.me.REG[4] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[2])(fra.me.REG[2], REGB0);
@@ -4849,11 +5046,11 @@ val_t syntax___typing___AReassignFormExpr___do_rvalue_typing(val_t p0, val_t p1,
     fra.me.REG[3] = NIT_NULL;
     goto label1;
   }
-  /* ./syntax//typing.nit:812 */
+  /* syntax/typing.nit:859 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 812);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 859);
   }
   fra.me.REG[2] = CALL_metamodel___static_type___MMType___not_for_self(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = fra.me.REG[2];
@@ -4868,7 +5065,7 @@ val_t syntax___typing___AReassignFormExpr___assign_method(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 815;
+  fra.me.line = 862;
   fra.me.meth = LOCATE_syntax___typing___AReassignFormExpr___assign_method;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -4876,13 +5073,13 @@ val_t syntax___typing___AReassignFormExpr___assign_method(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:815 */
+  /* syntax/typing.nit:862 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_syntax___typing___AReassignFormExpr____assign_method(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 815);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 862);
   }
   goto label1;
   label1: while(0);
@@ -4896,7 +5093,7 @@ void syntax___typing___AVarReassignExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 820;
+  fra.me.line = 867;
   fra.me.meth = LOCATE_syntax___typing___AVarReassignExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -4908,20 +5105,20 @@ void syntax___typing___AVarReassignExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:822 */
+  /* syntax/typing.nit:869 */
   fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___flow___FlowContext___check_is_set(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[3]);
-  /* ./syntax//typing.nit:823 */
+  /* syntax/typing.nit:870 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___TypingVisitor___mark_is_set(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//typing.nit:824 */
+  /* syntax/typing.nit:871 */
   fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./syntax//typing.nit:825 */
+  /* syntax/typing.nit:872 */
   fra.me.REG[2] = CALL_syntax___typing___AReassignFormExpr___do_rvalue_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//typing.nit:826 */
+  /* syntax/typing.nit:873 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -4937,18 +5134,18 @@ void syntax___typing___AVarReassignExpr___after_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:829 */
+  /* syntax/typing.nit:876 */
   fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[4] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./syntax//typing.nit:830 */
+  /* syntax/typing.nit:877 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:831 */
+  /* syntax/typing.nit:878 */
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -4973,12 +5170,12 @@ void syntax___typing___AVarReassignExpr___after_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:834 */
+  /* syntax/typing.nit:881 */
   fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___flow___FlowContext___sub_with(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
   CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//typing.nit:836 */
+  /* syntax/typing.nit:883 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   label1: while(0);
@@ -4990,13 +5187,13 @@ val_t syntax___typing___AAssignOp___method_name(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 841;
+  fra.me.line = 888;
   fra.me.meth = LOCATE_syntax___typing___AAssignOp___method_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//typing.nit:841 */
-  nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 841);
+  /* syntax/typing.nit:888 */
+  nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 888);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
@@ -5008,14 +5205,14 @@ val_t syntax___typing___APlusAssignOp___method_name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 844;
+  fra.me.line = 891;
   fra.me.meth = LOCATE_syntax___typing___APlusAssignOp___method_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:844 */
+  /* syntax/typing.nit:891 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("+");
@@ -5043,14 +5240,14 @@ val_t syntax___typing___AMinusAssignOp___method_name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 847;
+  fra.me.line = 894;
   fra.me.meth = LOCATE_syntax___typing___AMinusAssignOp___method_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:847 */
+  /* syntax/typing.nit:894 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("-");
@@ -5076,7 +5273,7 @@ val_t syntax___typing___ASelfExpr___variable(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 852;
+  fra.me.line = 899;
   fra.me.meth = LOCATE_syntax___typing___ASelfExpr___variable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -5084,13 +5281,13 @@ val_t syntax___typing___ASelfExpr___variable(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:852 */
+  /* syntax/typing.nit:899 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_syntax___typing___ASelfExpr____variable(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 852);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 899);
   }
   goto label1;
   label1: while(0);
@@ -5102,14 +5299,14 @@ val_t syntax___typing___ASelfExpr___its_variable(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 854;
+  fra.me.line = 901;
   fra.me.meth = LOCATE_syntax___typing___ASelfExpr___its_variable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:854 */
+  /* syntax/typing.nit:901 */
   fra.me.REG[0] = CALL_syntax___syntax_base___ASelfExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
@@ -5122,7 +5319,7 @@ void syntax___typing___ASelfExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 856;
+  fra.me.line = 903;
   fra.me.meth = LOCATE_syntax___typing___ASelfExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -5132,15 +5329,15 @@ void syntax___typing___ASelfExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:858 */
+  /* syntax/typing.nit:905 */
   fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___self_var(fra.me.REG[1])(fra.me.REG[1]);
   ATTR_syntax___typing___ASelfExpr____variable(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./syntax//typing.nit:859 */
+  /* syntax/typing.nit:906 */
   fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_syntax___syntax_base___ASelfExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./syntax//typing.nit:860 */
+  /* syntax/typing.nit:907 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -5152,14 +5349,14 @@ val_t syntax___typing___ASelfExpr___is_self(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 863;
+  fra.me.line = 910;
   fra.me.meth = LOCATE_syntax___typing___ASelfExpr___is_self;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:863 */
+  /* syntax/typing.nit:910 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -5172,14 +5369,14 @@ val_t syntax___typing___AImplicitSelfExpr___is_implicit_self(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 867;
+  fra.me.line = 914;
   fra.me.meth = LOCATE_syntax___typing___AImplicitSelfExpr___is_implicit_self;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:867 */
+  /* syntax/typing.nit:914 */
   REGB0 = TAG_Bool(true);
   goto label1;
   label1: while(0);
@@ -5193,7 +5390,7 @@ void syntax___typing___AIfexprExpr___accept_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 871;
+  fra.me.line = 918;
   fra.me.meth = LOCATE_syntax___typing___AIfexprExpr___accept_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -5205,37 +5402,37 @@ void syntax___typing___AIfexprExpr___accept_typing(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:873 */
+  /* syntax/typing.nit:920 */
   fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:876 */
+  /* syntax/typing.nit:923 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//typing.nit:877 */
+  /* syntax/typing.nit:924 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]);
   CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[4]);
-  /* ./syntax//typing.nit:880 */
+  /* syntax/typing.nit:927 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//typing.nit:883 */
+  /* syntax/typing.nit:930 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___TypingVisitor___enter_visit_block(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//typing.nit:886 */
+  /* syntax/typing.nit:933 */
   fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:889 */
+  /* syntax/typing.nit:936 */
   CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//typing.nit:890 */
+  /* syntax/typing.nit:937 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//typing.nit:893 */
+  /* syntax/typing.nit:940 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___TypingVisitor___enter_visit_block(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//typing.nit:896 */
+  /* syntax/typing.nit:943 */
   fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = CALL_syntax___flow___FlowContext___merge_reash(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]);
   CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//typing.nit:898 */
+  /* syntax/typing.nit:945 */
   REGB0 = TAG_Int(2);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   fra.me.REG[4] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra.me.REG[0])(fra.me.REG[0]);
@@ -5243,7 +5440,7 @@ void syntax___typing___AIfexprExpr___accept_typing(val_t p0, val_t p1){
   fra.me.REG[4] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[3]);
-  /* ./syntax//typing.nit:899 */
+  /* syntax/typing.nit:946 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -5259,9 +5456,9 @@ void syntax___typing___AIfexprExpr___accept_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:901 */
+  /* syntax/typing.nit:948 */
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[3];
-  /* ./syntax//typing.nit:902 */
+  /* syntax/typing.nit:949 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   label1: while(0);
@@ -5274,7 +5471,7 @@ void syntax___typing___ABoolExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 907;
+  fra.me.line = 954;
   fra.me.meth = LOCATE_syntax___typing___ABoolExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -5283,10 +5480,10 @@ void syntax___typing___ABoolExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:909 */
+  /* syntax/typing.nit:956 */
   fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]);
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:910 */
+  /* syntax/typing.nit:957 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -5299,7 +5496,7 @@ void syntax___typing___AOrExpr___accept_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 915;
+  fra.me.line = 962;
   fra.me.meth = LOCATE_syntax___typing___AOrExpr___accept_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -5311,22 +5508,22 @@ void syntax___typing___AOrExpr___accept_typing(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:917 */
+  /* syntax/typing.nit:964 */
   fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:918 */
+  /* syntax/typing.nit:965 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:919 */
+  /* syntax/typing.nit:966 */
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[3];
-  /* ./syntax//typing.nit:922 */
+  /* syntax/typing.nit:969 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//typing.nit:925 */
+  /* syntax/typing.nit:972 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//typing.nit:928 */
+  /* syntax/typing.nit:975 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//typing.nit:929 */
+  /* syntax/typing.nit:976 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
@@ -5343,26 +5540,26 @@ void syntax___typing___AOrExpr___accept_typing(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:930 */
+    /* syntax/typing.nit:977 */
     fra.me.REG[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[4] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra.me.REG[4])(fra.me.REG[4]);
     ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra.me.REG[0]) = fra.me.REG[4];
   } else {
-    /* ./syntax//typing.nit:932 */
+    /* syntax/typing.nit:979 */
     fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
     ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra.me.REG[0]) = fra.me.REG[4];
   }
-  /* ./syntax//typing.nit:935 */
+  /* syntax/typing.nit:982 */
   CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//typing.nit:937 */
+  /* syntax/typing.nit:984 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
-  /* ./syntax//typing.nit:938 */
+  /* syntax/typing.nit:985 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
-  /* ./syntax//typing.nit:939 */
+  /* syntax/typing.nit:986 */
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[3];
-  /* ./syntax//typing.nit:940 */
+  /* syntax/typing.nit:987 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -5375,7 +5572,7 @@ void syntax___typing___AAndExpr___accept_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 945;
+  fra.me.line = 992;
   fra.me.meth = LOCATE_syntax___typing___AAndExpr___accept_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -5387,20 +5584,20 @@ void syntax___typing___AAndExpr___accept_typing(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:947 */
+  /* syntax/typing.nit:994 */
   fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:948 */
+  /* syntax/typing.nit:995 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:951 */
+  /* syntax/typing.nit:998 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//typing.nit:954 */
+  /* syntax/typing.nit:1001 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//typing.nit:957 */
+  /* syntax/typing.nit:1004 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//typing.nit:958 */
+  /* syntax/typing.nit:1005 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
@@ -5417,26 +5614,26 @@ void syntax___typing___AAndExpr___accept_typing(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:959 */
+    /* syntax/typing.nit:1006 */
     fra.me.REG[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[4] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra.me.REG[4])(fra.me.REG[4]);
     ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra.me.REG[0]) = fra.me.REG[4];
   } else {
-    /* ./syntax//typing.nit:961 */
+    /* syntax/typing.nit:1008 */
     fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
     ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra.me.REG[0]) = fra.me.REG[4];
   }
-  /* ./syntax//typing.nit:964 */
+  /* syntax/typing.nit:1011 */
   CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//typing.nit:966 */
+  /* syntax/typing.nit:1013 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
-  /* ./syntax//typing.nit:967 */
+  /* syntax/typing.nit:1014 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
-  /* ./syntax//typing.nit:968 */
+  /* syntax/typing.nit:1015 */
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[3];
-  /* ./syntax//typing.nit:969 */
+  /* syntax/typing.nit:1016 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -5448,7 +5645,7 @@ void syntax___typing___ANotExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 974;
+  fra.me.line = 1021;
   fra.me.meth = LOCATE_syntax___typing___ANotExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -5459,22 +5656,22 @@ void syntax___typing___ANotExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:976 */
+  /* syntax/typing.nit:1023 */
   fra.me.REG[2] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]);
   CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
-  /* ./syntax//typing.nit:979 */
+  /* syntax/typing.nit:1026 */
   fra.me.REG[3] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra.me.REG[3]);
   ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra.me.REG[0]) = fra.me.REG[3];
-  /* ./syntax//typing.nit:980 */
+  /* syntax/typing.nit:1027 */
   fra.me.REG[3] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra.me.REG[3]);
   ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra.me.REG[0]) = fra.me.REG[3];
-  /* ./syntax//typing.nit:982 */
+  /* syntax/typing.nit:1029 */
   fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]);
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:983 */
+  /* syntax/typing.nit:1030 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -5488,7 +5685,7 @@ void syntax___typing___AOrElseExpr___after_typing(val_t p0, val_t p1){
     static val_t once_value_1; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 988;
+  fra.me.line = 1035;
   fra.me.meth = LOCATE_syntax___typing___AOrElseExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -5502,25 +5699,25 @@ void syntax___typing___AOrElseExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:990 */
+  /* syntax/typing.nit:1037 */
   fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:993 */
+  /* syntax/typing.nit:1040 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//typing.nit:994 */
+  /* syntax/typing.nit:1041 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//typing.nit:997 */
+  /* syntax/typing.nit:1044 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//typing.nit:998 */
+  /* syntax/typing.nit:1045 */
   REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:999 */
+    /* syntax/typing.nit:1046 */
     fra.me.REG[4] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
     if (!once_value_1) {
-      fra.me.REG[5] = BOX_NativeString("Warning: left operant of a 'or else' is not a nullable type.");
+      fra.me.REG[5] = BOX_NativeString("Warning: left operand of a 'or else' is not a nullable type.");
       REGB0 = TAG_Int(60);
       fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
       once_value_1 = fra.me.REG[5];
@@ -5529,14 +5726,14 @@ void syntax___typing___AOrElseExpr___after_typing(val_t p0, val_t p1){
     fra.me.REG[5] = fra.me.REG[5];
     CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]);
   } else {
-    /* ./syntax//typing.nit:1001 */
+    /* syntax/typing.nit:1048 */
     fra.me.REG[5] = CALL_metamodel___static_type___MMType___as_notnull(fra.me.REG[3])(fra.me.REG[3]);
     fra.me.REG[3] = fra.me.REG[5];
   }
-  /* ./syntax//typing.nit:1005 */
+  /* syntax/typing.nit:1052 */
   fra.me.REG[5] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[5] = CALL_syntax___typing___AExpr___its_variable(fra.me.REG[5])(fra.me.REG[5]);
-  /* ./syntax//typing.nit:1006 */
+  /* syntax/typing.nit:1053 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -5551,26 +5748,26 @@ void syntax___typing___AOrElseExpr___after_typing(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1007 */
+    /* syntax/typing.nit:1054 */
     fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra.me.REG[1])(fra.me.REG[1]);
     CALL_syntax___flow___FlowContext___sub_with(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0], fra.me.REG[5], fra.me.REG[6]);
   }
-  /* ./syntax//typing.nit:1011 */
+  /* syntax/typing.nit:1058 */
   fra.me.REG[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]);
   CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-  /* ./syntax//typing.nit:1012 */
+  /* syntax/typing.nit:1059 */
   fra.me.REG[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-  /* ./syntax//typing.nit:1015 */
+  /* syntax/typing.nit:1062 */
   CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//typing.nit:1018 */
+  /* syntax/typing.nit:1065 */
   REGB0 = TAG_Int(1);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   fra.me.REG[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
   fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]);
-  /* ./syntax//typing.nit:1019 */
+  /* syntax/typing.nit:1066 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -5586,9 +5783,9 @@ void syntax___typing___AOrElseExpr___after_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     goto label2;
   }
-  /* ./syntax//typing.nit:1021 */
+  /* syntax/typing.nit:1068 */
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./syntax//typing.nit:1022 */
+  /* syntax/typing.nit:1069 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   label2: while(0);
@@ -5601,7 +5798,7 @@ void syntax___typing___AIntExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1027;
+  fra.me.line = 1074;
   fra.me.meth = LOCATE_syntax___typing___AIntExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -5610,10 +5807,10 @@ void syntax___typing___AIntExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1029 */
+  /* syntax/typing.nit:1076 */
   fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra.me.REG[1])(fra.me.REG[1]);
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:1030 */
+  /* syntax/typing.nit:1077 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -5625,7 +5822,7 @@ void syntax___typing___AFloatExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1035;
+  fra.me.line = 1082;
   fra.me.meth = LOCATE_syntax___typing___AFloatExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -5634,10 +5831,10 @@ void syntax___typing___AFloatExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1037 */
+  /* syntax/typing.nit:1084 */
   fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_float(fra.me.REG[1])(fra.me.REG[1]);
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:1038 */
+  /* syntax/typing.nit:1085 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -5649,7 +5846,7 @@ void syntax___typing___ACharExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1043;
+  fra.me.line = 1090;
   fra.me.meth = LOCATE_syntax___typing___ACharExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -5658,10 +5855,10 @@ void syntax___typing___ACharExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1045 */
+  /* syntax/typing.nit:1092 */
   fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_char(fra.me.REG[1])(fra.me.REG[1]);
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:1046 */
+  /* syntax/typing.nit:1093 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -5673,7 +5870,7 @@ void syntax___typing___AStringFormExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1051;
+  fra.me.line = 1098;
   fra.me.meth = LOCATE_syntax___typing___AStringFormExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -5682,10 +5879,10 @@ void syntax___typing___AStringFormExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1053 */
+  /* syntax/typing.nit:1100 */
   fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra.me.REG[1])(fra.me.REG[1]);
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:1054 */
+  /* syntax/typing.nit:1101 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -5697,7 +5894,7 @@ val_t syntax___typing___ASuperstringExpr___atype(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1059;
+  fra.me.line = 1106;
   fra.me.meth = LOCATE_syntax___typing___ASuperstringExpr___atype;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -5705,13 +5902,13 @@ val_t syntax___typing___ASuperstringExpr___atype(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1059 */
+  /* syntax/typing.nit:1106 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_syntax___typing___ASuperstringExpr____atype(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1059);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1106);
   }
   goto label1;
   label1: while(0);
@@ -5724,7 +5921,7 @@ void syntax___typing___ASuperstringExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1061;
+  fra.me.line = 1108;
   fra.me.meth = LOCATE_syntax___typing___ASuperstringExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -5736,20 +5933,20 @@ void syntax___typing___ASuperstringExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1063 */
+  /* syntax/typing.nit:1110 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:1064 */
+  /* syntax/typing.nit:1111 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:1065 */
+  /* syntax/typing.nit:1112 */
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[3];
-  /* ./syntax//typing.nit:1066 */
+  /* syntax/typing.nit:1113 */
   fra.me.REG[4] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_syntax___typing___ASuperstringExpr___after_typing_1));
-  /* ./syntax//typing.nit:1067 */
+  /* syntax/typing.nit:1114 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./syntax//typing.nit:1068 */
+  /* syntax/typing.nit:1115 */
   ATTR_syntax___typing___ASuperstringExpr____atype(fra.me.REG[0]) = fra.me.REG[3];
-  /* ./syntax//typing.nit:1069 */
+  /* syntax/typing.nit:1116 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -5781,7 +5978,7 @@ void syntax___typing___ANullExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1074;
+  fra.me.line = 1121;
   fra.me.meth = LOCATE_syntax___typing___ANullExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -5790,10 +5987,10 @@ void syntax___typing___ANullExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1076 */
+  /* syntax/typing.nit:1123 */
   fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra.me.REG[1])(fra.me.REG[1]);
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:1077 */
+  /* syntax/typing.nit:1124 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -5806,7 +6003,7 @@ void syntax___typing___AArrayExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1082;
+  fra.me.line = 1129;
   fra.me.meth = LOCATE_syntax___typing___AArrayExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -5816,10 +6013,11 @@ void syntax___typing___AArrayExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1084 */
+  /* syntax/typing.nit:1131 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[2] = CALL_parser___parser_nodes___AExprs___n_exprs(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[2]);
-  /* ./syntax//typing.nit:1085 */
+  /* syntax/typing.nit:1132 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -5845,7 +6043,7 @@ void syntax___typing___AArrayExpr___do_typing(val_t p0, val_t p1, val_t p2){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1088;
+  fra.me.line = 1135;
   fra.me.meth = LOCATE_syntax___typing___AArrayExpr___do_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -5856,10 +6054,10 @@ void syntax___typing___AArrayExpr___do_typing(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//typing.nit:1090 */
+  /* syntax/typing.nit:1137 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./syntax//typing.nit:1091 */
+  /* syntax/typing.nit:1138 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   stack_frame_head = fra.me.prev;
@@ -5875,7 +6073,7 @@ void syntax___typing___ARangeExpr___after_typing(val_t p0, val_t p1){
       static val_t once_value_4; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1096;
+  fra.me.line = 1143;
   fra.me.meth = LOCATE_syntax___typing___ARangeExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -5888,7 +6086,7 @@ void syntax___typing___ARangeExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1098 */
+  /* syntax/typing.nit:1145 */
   fra.me.REG[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
@@ -5903,23 +6101,23 @@ void syntax___typing___ARangeExpr___after_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1099 */
+  /* syntax/typing.nit:1146 */
   fra.me.REG[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:1100 */
+  /* syntax/typing.nit:1147 */
   fra.me.REG[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//typing.nit:1101 */
+  /* syntax/typing.nit:1148 */
   REGB0 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1102 */
+    /* syntax/typing.nit:1149 */
     fra.me.REG[2] = fra.me.REG[3];
   } else {
-    /* ./syntax//typing.nit:1103 */
+    /* syntax/typing.nit:1150 */
     REGB0 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:1104 */
+      /* syntax/typing.nit:1151 */
       REGB0 = TAG_Int(5);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_2) {
@@ -5955,13 +6153,13 @@ void syntax___typing___ARangeExpr___after_typing(val_t p0, val_t p1){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
       fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
-      /* ./syntax//typing.nit:1105 */
+      /* syntax/typing.nit:1152 */
       goto label1;
     }
   }
-  /* ./syntax//typing.nit:1107 */
+  /* syntax/typing.nit:1154 */
   fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_discrete(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:1108 */
+  /* syntax/typing.nit:1155 */
   fra.me.REG[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[4]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
@@ -5976,10 +6174,10 @@ void syntax___typing___ARangeExpr___after_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1109 */
+  /* syntax/typing.nit:1156 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_range(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./syntax//typing.nit:1110 */
+  /* syntax/typing.nit:1157 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   label1: while(0);
@@ -5991,14 +6189,14 @@ val_t syntax___typing___ASuperExpr___init_in_superclass(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1115;
+  fra.me.line = 1162;
   fra.me.meth = LOCATE_syntax___typing___ASuperExpr___init_in_superclass;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1115 */
+  /* syntax/typing.nit:1162 */
   fra.me.REG[0] = ATTR_syntax___typing___ASuperExpr____init_in_superclass(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -6008,16 +6206,16 @@ val_t syntax___typing___ASuperExpr___compute_raw_arguments(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1116;
+  fra.me.line = 1163;
   fra.me.meth = LOCATE_syntax___typing___ASuperExpr___compute_raw_arguments;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1116 */
+  /* syntax/typing.nit:1163 */
   fra.me.REG[0] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[0] = CALL_syntax___syntax_base___AExprs___to_a(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -6042,7 +6240,7 @@ void syntax___typing___ASuperExpr___after_typing(val_t p0, val_t p1){
       static val_t once_value_13; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1117;
+  fra.me.line = 1164;
   fra.me.meth = LOCATE_syntax___typing___ASuperExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -6059,47 +6257,47 @@ void syntax___typing___ASuperExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1117 */
+  /* syntax/typing.nit:1164 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//typing.nit:1119 */
+  /* syntax/typing.nit:1166 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//typing.nit:1120 */
+  /* syntax/typing.nit:1167 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1121 */
+    /* syntax/typing.nit:1168 */
     fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(true);
     CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super__eq(fra.me.REG[4])(fra.me.REG[4], REGB0);
   } else {
-    /* ./syntax//typing.nit:1122 */
+    /* syntax/typing.nit:1169 */
     fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[4])(fra.me.REG[4]);
     REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:1123 */
+      /* syntax/typing.nit:1170 */
       fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[5])(fra.me.REG[5]);
       fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-      /* ./../lib/standard//collection//array.nit:266 */
+      /* ../lib/standard/collection/array.nit:266 */
       fra.me.REG[4] = fra.me.REG[5];
-      /* ./../lib/standard//collection//array.nit:269 */
+      /* ../lib/standard/collection/array.nit:269 */
       REGB0 = TAG_Int(0);
-      /* ./../lib/standard//collection//array.nit:270 */
+      /* ../lib/standard/collection/array.nit:270 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
       }
       REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-      /* ./../lib/standard//collection//array.nit:271 */
+      /* ../lib/standard/collection/array.nit:271 */
       fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       while(1) {
-        /* ./../lib/standard//collection//array.nit:24 */
+        /* ../lib/standard/collection/array.nit:24 */
         REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
@@ -6111,23 +6309,23 @@ void syntax___typing___ASuperExpr___after_typing(val_t p0, val_t p1){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         if (UNTAG_Bool(REGB1)) {
-          /* ./../lib/standard//collection//array.nit:273 */
+          /* ../lib/standard/collection/array.nit:273 */
           REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
             nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
           }
-          /* ./../lib/standard//collection//array.nit:718 */
+          /* ../lib/standard/collection/array.nit:718 */
           fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
-          /* ./syntax//typing.nit:1125 */
+          /* syntax/typing.nit:1172 */
           fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[7])(fra.me.REG[7]);
           REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[8])(fra.me.REG[8]);
           REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
           if (UNTAG_Bool(REGB1)) {
-            /* ./syntax//typing.nit:1126 */
+            /* syntax/typing.nit:1173 */
             REGB1 = TAG_Int(5);
             fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
             if (!once_value_1) {
@@ -6165,28 +6363,28 @@ void syntax___typing___ASuperExpr___after_typing(val_t p0, val_t p1){
             fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
             CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[8]);
           } else {
-            /* ./syntax//typing.nit:1128 */
+            /* syntax/typing.nit:1175 */
             fra.me.REG[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
             fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[7])(fra.me.REG[7]);
             fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
           }
-          /* ./../lib/standard//collection//array.nit:274 */
+          /* ../lib/standard/collection/array.nit:274 */
           REGB1 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-          /* ./../lib/standard//collection//array.nit:274 */
+          /* ../lib/standard/collection/array.nit:274 */
           REGB0 = REGB1;
         } else {
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           goto label4;
         }
       }
       label4: while(0);
-      /* ./syntax//typing.nit:1131 */
+      /* syntax/typing.nit:1178 */
       REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//typing.nit:1132 */
+        /* syntax/typing.nit:1179 */
         REGB0 = TAG_Int(3);
         fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_5) {
@@ -6213,28 +6411,28 @@ void syntax___typing___ASuperExpr___after_typing(val_t p0, val_t p1){
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
         fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
         CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[6]);
-        /* ./syntax//typing.nit:1133 */
+        /* syntax/typing.nit:1180 */
         goto label7;
       } else {
-        /* ./../lib/standard//collection//array.nit:24 */
+        /* ../lib/standard/collection/array.nit:24 */
         REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
         }
         REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-        /* ./syntax//typing.nit:1134 */
+        /* syntax/typing.nit:1181 */
         REGB1 = TAG_Int(1);
         REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB2)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:234 */
+        /* ../lib/standard/kernel.nit:234 */
         REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-        /* ./syntax//typing.nit:1134 */
+        /* syntax/typing.nit:1181 */
         if (UNTAG_Bool(REGB1)) {
-          /* ./syntax//typing.nit:1135 */
+          /* syntax/typing.nit:1182 */
           REGB1 = TAG_Int(5);
           fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
           if (!once_value_8) {
@@ -6280,24 +6478,25 @@ void syntax___typing___ASuperExpr___after_typing(val_t p0, val_t p1){
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
           fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
           CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[6]);
-          /* ./syntax//typing.nit:1136 */
+          /* syntax/typing.nit:1183 */
           goto label7;
         }
       }
-      /* ./syntax//typing.nit:1138 */
+      /* syntax/typing.nit:1185 */
       fra.me.REG[5] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[5])(fra.me.REG[5]);
-      /* ./syntax//typing.nit:1139 */
+      /* syntax/typing.nit:1186 */
       REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[5], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
       if (UNTAG_Bool(REGB1)) {
       } else {
-        nit_abort("Assert failed", NULL, LOCATE_syntax___typing, 1139);
+        nit_abort("Assert failed", NULL, LOCATE_syntax___typing, 1186);
       }
-      /* ./syntax//typing.nit:1140 */
+      /* syntax/typing.nit:1187 */
       ATTR_syntax___typing___ASuperExpr____init_in_superclass(fra.me.REG[2]) = fra.me.REG[5];
-      /* ./syntax//typing.nit:1141 */
+      /* syntax/typing.nit:1188 */
       CALL_syntax___typing___ASuperInitCall___register_super_init_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[5]);
-      /* ./syntax//typing.nit:1142 */
+      /* syntax/typing.nit:1189 */
       fra.me.REG[6] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra.me.REG[2])(fra.me.REG[2]);
+      fra.me.REG[6] = CALL_parser___parser_nodes___AExprs___n_exprs(fra.me.REG[6])(fra.me.REG[6]);
       REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[6])(fra.me.REG[6]);
       REGB0 = TAG_Int(0);
       REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
@@ -6305,27 +6504,27 @@ void syntax___typing___ASuperExpr___after_typing(val_t p0, val_t p1){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:234 */
+      /* ../lib/standard/kernel.nit:234 */
       REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
-      /* ./syntax//typing.nit:1142 */
+      /* syntax/typing.nit:1189 */
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//typing.nit:1143 */
+        /* syntax/typing.nit:1190 */
         fra.me.REG[6] = CALL_syntax___typing___TypingVisitor___self_var(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[6] = CALL_syntax___syntax_base___Variable___stype(fra.me.REG[6])(fra.me.REG[6]);
         REGB0 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_metamodel___static_type___MMType, ID_metamodel___static_type___MMType)) /*cast MMType*/;
         if (UNTAG_Bool(REGB0)) {
         } else {
-          nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1143);
+          nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1190);
         }
         REGB0 = TAG_Bool(true);
         fra.me.REG[6] = CALL_syntax___typing___AAbsSendExpr___get_signature(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[6], fra.me.REG[5], REGB0);
-        /* ./syntax//typing.nit:1144 */
+        /* syntax/typing.nit:1191 */
         fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[5])(fra.me.REG[5]);
         fra.me.REG[4] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra.me.REG[2])(fra.me.REG[2]);
         CALL_syntax___typing___AAbsAbsSendExpr___process_signature(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[6], fra.me.REG[5], fra.me.REG[4]);
       }
     } else {
-      /* ./syntax//typing.nit:1147 */
+      /* syntax/typing.nit:1194 */
       REGB0 = TAG_Int(3);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_12) {
@@ -6351,22 +6550,22 @@ void syntax___typing___ASuperExpr___after_typing(val_t p0, val_t p1){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
       fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]);
-      /* ./syntax//typing.nit:1148 */
+      /* syntax/typing.nit:1195 */
       goto label7;
     }
   }
-  /* ./syntax//typing.nit:1151 */
+  /* syntax/typing.nit:1198 */
   fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[5] = CALL_syntax___typing___TypingVisitor___self_var(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[5] = CALL_syntax___syntax_base___Variable___stype(fra.me.REG[5])(fra.me.REG[5]);
   REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_metamodel___static_type___MMType, ID_metamodel___static_type___MMType)) /*cast MMType*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1151);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1198);
   }
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1151);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1198);
   }
   fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[5])(fra.me.REG[5]);
@@ -6384,24 +6583,24 @@ void syntax___typing___ASuperExpr___after_typing(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1152 */
+    /* syntax/typing.nit:1199 */
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-    /* ./syntax//typing.nit:1153 */
+    /* syntax/typing.nit:1200 */
     fra.me.REG[4] = NIT_NULL;
-    /* ./../lib/standard//collection//array.nit:269 */
+    /* ../lib/standard/collection/array.nit:269 */
     REGB0 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:270 */
+    /* ../lib/standard/collection/array.nit:270 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-    /* ./../lib/standard//collection//array.nit:271 */
+    /* ../lib/standard/collection/array.nit:271 */
     fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     while(1) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -6413,50 +6612,50 @@ void syntax___typing___ASuperExpr___after_typing(val_t p0, val_t p1){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       if (UNTAG_Bool(REGB1)) {
-        /* ./../lib/standard//collection//array.nit:273 */
+        /* ../lib/standard/collection/array.nit:273 */
         REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
-        /* ./syntax//typing.nit:1155 */
+        /* syntax/typing.nit:1202 */
         REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[7], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
         if (UNTAG_Bool(REGB1)) {
         } else {
-          nit_abort("Assert failed", NULL, LOCATE_syntax___typing, 1155);
+          nit_abort("Assert failed", NULL, LOCATE_syntax___typing, 1202);
         }
-        /* ./syntax//typing.nit:1156 */
+        /* syntax/typing.nit:1203 */
         fra.me.REG[8] = CALL_syntax___typing___TypingVisitor___self_var(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[8] = CALL_syntax___syntax_base___Variable___stype(fra.me.REG[8])(fra.me.REG[8]);
         REGB1 = TAG_Bool((fra.me.REG[8]!=NIT_NULL) && VAL_ISA(fra.me.REG[8], COLOR_metamodel___static_type___MMType, ID_metamodel___static_type___MMType)) /*cast MMType*/;
         if (UNTAG_Bool(REGB1)) {
         } else {
-          nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1156);
+          nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1203);
         }
         fra.me.REG[8] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
         fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[8])(fra.me.REG[8]);
         fra.me.REG[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
         REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1156);
+          nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1203);
         }
         fra.me.REG[7] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
         fra.me.REG[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]);
         fra.me.REG[8] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[8])(fra.me.REG[8]);
         REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1156);
+          nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1203);
         }
         fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___recv(fra.me.REG[8])(fra.me.REG[8]);
         fra.me.REG[8] = CALL_metamodel___static_type___MMType___adapt_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-        /* ./syntax//typing.nit:1157 */
+        /* syntax/typing.nit:1204 */
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
-        /* ./syntax//typing.nit:1158 */
+        /* syntax/typing.nit:1205 */
         REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
@@ -6474,41 +6673,41 @@ void syntax___typing___ASuperExpr___after_typing(val_t p0, val_t p1){
         } else {
           REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
-            nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1158);
+            nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1205);
           }
           REGB2 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
           REGB1 = REGB2;
         }
         if (UNTAG_Bool(REGB1)) {
-          /* ./syntax//typing.nit:1159 */
+          /* syntax/typing.nit:1206 */
           fra.me.REG[4] = fra.me.REG[8];
         }
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB1 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB0 = REGB1;
       } else {
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         goto label14;
       }
     }
     label14: while(0);
-    /* ./../lib/standard//collection//array.nit:269 */
+    /* ../lib/standard/collection/array.nit:269 */
     REGB0 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:270 */
+    /* ../lib/standard/collection/array.nit:270 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-    /* ./../lib/standard//collection//array.nit:271 */
+    /* ../lib/standard/collection/array.nit:271 */
     fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     while(1) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
@@ -6520,50 +6719,50 @@ void syntax___typing___ASuperExpr___after_typing(val_t p0, val_t p1){
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:232 */
       REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       if (UNTAG_Bool(REGB1)) {
-        /* ./../lib/standard//collection//array.nit:273 */
+        /* ../lib/standard/collection/array.nit:273 */
         REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
-        /* ./syntax//typing.nit:1163 */
+        /* syntax/typing.nit:1210 */
         REGB1 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
-          nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1163);
+          nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1210);
         }
         CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB1 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB0 = REGB1;
       } else {
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         goto label15;
       }
     }
     label15: while(0);
-    /* ./syntax//typing.nit:1165 */
+    /* syntax/typing.nit:1212 */
     ATTR_syntax___typing___AExpr____stype(fra.me.REG[2]) = fra.me.REG[4];
   }
-  /* ./syntax//typing.nit:1167 */
+  /* syntax/typing.nit:1214 */
   fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:1168 */
+  /* syntax/typing.nit:1215 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_syntax___syntax_base___MMSrcMethod, ID_syntax___syntax_base___MMSrcMethod)) /*cast MMSrcMethod*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_syntax___typing, 1168);
+    nit_abort("Assert failed", NULL, LOCATE_syntax___typing, 1215);
   }
-  /* ./syntax//typing.nit:1169 */
+  /* syntax/typing.nit:1216 */
   ATTR_syntax___typing___AAbsSendExpr____prop(fra.me.REG[2]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:1170 */
+  /* syntax/typing.nit:1217 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[2]) = REGB0;
   label7: while(0);
@@ -6575,14 +6774,14 @@ val_t syntax___typing___AExternCall___target_class_name(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1175;
+  fra.me.line = 1222;
   fra.me.meth = LOCATE_syntax___typing___AExternCall___target_class_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1175 */
+  /* syntax/typing.nit:1222 */
   fra.me.REG[0] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -6594,13 +6793,13 @@ val_t syntax___typing___AExternCall___target_method_name(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1176;
+  fra.me.line = 1223;
   fra.me.meth = LOCATE_syntax___typing___AExternCall___target_method_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//typing.nit:1176 */
-  nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 1176);
+  /* syntax/typing.nit:1223 */
+  nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 1223);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
@@ -6617,7 +6816,7 @@ void syntax___typing___AExternCall___after_typing(val_t p0, val_t p1){
     static val_t once_value_7; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1178;
+  fra.me.line = 1225;
   fra.me.meth = LOCATE_syntax___typing___AExternCall___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -6632,13 +6831,13 @@ void syntax___typing___AExternCall___after_typing(val_t p0, val_t p1){
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1178 */
+  /* syntax/typing.nit:1225 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//typing.nit:1180 */
+  /* syntax/typing.nit:1227 */
   fra.me.REG[3] = CALL_syntax___typing___AExternCall___target_class_name(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:1181 */
+  /* syntax/typing.nit:1228 */
   fra.me.REG[4] = CALL_syntax___typing___AExternCall___target_method_name(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:1188 */
+  /* syntax/typing.nit:1235 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -6652,26 +6851,26 @@ void syntax___typing___AExternCall___after_typing(val_t p0, val_t p1){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1189 */
+    /* syntax/typing.nit:1236 */
     fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[5])(fra.me.REG[5]);
   } else {
-    /* ./syntax//typing.nit:1191 */
+    /* syntax/typing.nit:1238 */
     fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[6])(fra.me.REG[6]);
     REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:1192 */
+      /* syntax/typing.nit:1239 */
       fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[6])(fra.me.REG[6]);
       fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMModule___global_class_named(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
-      /* ./syntax//typing.nit:1193 */
+      /* syntax/typing.nit:1240 */
       fra.me.REG[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[7])(fra.me.REG[7]);
       fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
       fra.me.REG[5] = fra.me.REG[6];
     } else {
-      /* ./syntax//typing.nit:1195 */
+      /* syntax/typing.nit:1242 */
       REGB0 = TAG_Int(3);
       fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_1) {
@@ -6685,7 +6884,7 @@ void syntax___typing___AExternCall___after_typing(val_t p0, val_t p1){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1195);
+        nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1242);
       }
       fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
@@ -6700,22 +6899,22 @@ void syntax___typing___AExternCall___after_typing(val_t p0, val_t p1){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
       fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[6]);
-      /* ./syntax//typing.nit:1196 */
+      /* syntax/typing.nit:1243 */
       goto label3;
     }
   }
-  /* ./syntax//typing.nit:1200 */
+  /* syntax/typing.nit:1247 */
   REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1201 */
+    /* syntax/typing.nit:1248 */
     fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-    /* ./syntax//typing.nit:1203 */
+    /* syntax/typing.nit:1250 */
     fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-    /* ./syntax//typing.nit:1205 */
+    /* syntax/typing.nit:1252 */
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[6], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
-      /* ./syntax//typing.nit:1208 */
+      /* syntax/typing.nit:1255 */
       REGB0 = TAG_Int(3);
       fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_4) {
@@ -6740,11 +6939,11 @@ void syntax___typing___AExternCall___after_typing(val_t p0, val_t p1){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
       fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
-      /* ./syntax//typing.nit:1209 */
+      /* syntax/typing.nit:1256 */
       goto label3;
     }
   } else {
-    /* ./syntax//typing.nit:1212 */
+    /* syntax/typing.nit:1259 */
     REGB0 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_6) {
@@ -6769,17 +6968,17 @@ void syntax___typing___AExternCall___after_typing(val_t p0, val_t p1){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
-    /* ./syntax//typing.nit:1213 */
+    /* syntax/typing.nit:1260 */
     goto label3;
   }
-  /* ./syntax//typing.nit:1216 */
+  /* syntax/typing.nit:1263 */
   fra.me.REG[6] = NEW_MMExplicitImport_metamodel___abstractmetamodel___MMExplicitImport___init(fra.me.REG[5], fra.me.REG[6]);
-  /* ./syntax//typing.nit:1217 */
+  /* syntax/typing.nit:1264 */
   fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_syntax___syntax_base___MMSrcMethod, ID_syntax___syntax_base___MMSrcMethod)) /*cast MMSrcMethod*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1217);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1264);
   }
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMMethod___explicit_imports(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
@@ -6792,14 +6991,14 @@ val_t syntax___typing___ALocalPropExternCall___target_class_name(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1222;
+  fra.me.line = 1269;
   fra.me.meth = LOCATE_syntax___typing___ALocalPropExternCall___target_class_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1222 */
+  /* syntax/typing.nit:1269 */
   fra.me.REG[0] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -6812,7 +7011,7 @@ val_t syntax___typing___ALocalPropExternCall___target_method_name(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1223;
+  fra.me.line = 1270;
   fra.me.meth = LOCATE_syntax___typing___ALocalPropExternCall___target_method_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -6820,14 +7019,14 @@ val_t syntax___typing___ALocalPropExternCall___target_method_name(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1223 */
+  /* syntax/typing.nit:1270 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = CALL_parser___parser_nodes___ALocalPropExternCall___n_methid(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = CALL_syntax___syntax_base___AMethid___name(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_standard___symbol___Symbol, ID_standard___symbol___Symbol)) /*cast Symbol*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1223);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1270);
   }
   goto label1;
   label1: while(0);
@@ -6842,7 +7041,7 @@ void syntax___typing___ASuperExternCall___after_typing(val_t p0, val_t p1){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1227;
+  fra.me.line = 1274;
   fra.me.meth = LOCATE_syntax___typing___ASuperExternCall___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -6853,20 +7052,20 @@ void syntax___typing___ASuperExternCall___after_typing(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1229 */
+  /* syntax/typing.nit:1276 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:1230 */
+  /* syntax/typing.nit:1277 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1231 */
+    /* syntax/typing.nit:1278 */
     fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(true);
     CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
   } else {
-    /* ./syntax//typing.nit:1233 */
+    /* syntax/typing.nit:1280 */
     REGB0 = TAG_Int(3);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -6892,7 +7091,7 @@ void syntax___typing___ASuperExternCall___after_typing(val_t p0, val_t p1){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
     fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
-    /* ./syntax//typing.nit:1234 */
+    /* syntax/typing.nit:1281 */
     goto label3;
   }
   label3: while(0);
@@ -6904,14 +7103,14 @@ val_t syntax___typing___AFullPropExternCall___target_class_name(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1240;
+  fra.me.line = 1287;
   fra.me.meth = LOCATE_syntax___typing___AFullPropExternCall___target_class_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1240 */
+  /* syntax/typing.nit:1287 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AFullPropExternCall___n_classid(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -6925,7 +7124,7 @@ val_t syntax___typing___AFullPropExternCall___target_method_name(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1241;
+  fra.me.line = 1288;
   fra.me.meth = LOCATE_syntax___typing___AFullPropExternCall___target_method_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -6933,14 +7132,14 @@ val_t syntax___typing___AFullPropExternCall___target_method_name(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1241 */
+  /* syntax/typing.nit:1288 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = CALL_parser___parser_nodes___AFullPropExternCall___n_methid(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[1] = CALL_syntax___syntax_base___AMethid___name(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_standard___symbol___Symbol, ID_standard___symbol___Symbol)) /*cast Symbol*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1241);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1288);
   }
   goto label1;
   label1: while(0);
@@ -6952,14 +7151,14 @@ val_t syntax___typing___AInitPropExternCall___target_class_name(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1245;
+  fra.me.line = 1292;
   fra.me.meth = LOCATE_syntax___typing___AInitPropExternCall___target_class_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1245 */
+  /* syntax/typing.nit:1292 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AInitPropExternCall___n_classid(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -6974,14 +7173,14 @@ val_t syntax___typing___AInitPropExternCall___target_method_name(val_t p0){
   static val_t once_value_1; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1246;
+  fra.me.line = 1293;
   fra.me.meth = LOCATE_syntax___typing___AInitPropExternCall___target_method_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1246 */
+  /* syntax/typing.nit:1293 */
   if (!once_value_1) {
     fra.me.REG[0] = BOX_NativeString("init");
     REGB0 = TAG_Int(4);
@@ -7001,13 +7200,13 @@ val_t syntax___typing___ACastExternCall___from_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1250;
+  fra.me.line = 1297;
   fra.me.meth = LOCATE_syntax___typing___ACastExternCall___from_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//typing.nit:1250 */
-  nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 1250);
+  /* syntax/typing.nit:1297 */
+  nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 1297);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
@@ -7016,13 +7215,13 @@ val_t syntax___typing___ACastExternCall___to_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1251;
+  fra.me.line = 1298;
   fra.me.meth = LOCATE_syntax___typing___ACastExternCall___to_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//typing.nit:1251 */
-  nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 1251);
+  /* syntax/typing.nit:1298 */
+  nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 1298);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
@@ -7034,7 +7233,7 @@ void syntax___typing___ACastExternCall___after_typing(val_t p0, val_t p1){
     static val_t once_value_1; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1253;
+  fra.me.line = 1300;
   fra.me.meth = LOCATE_syntax___typing___ACastExternCall___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -7045,7 +7244,7 @@ void syntax___typing___ACastExternCall___after_typing(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1255 */
+  /* syntax/typing.nit:1302 */
   fra.me.REG[2] = CALL_syntax___typing___ACastExternCall___from_type(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___typing___ACastExternCall___to_type(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
@@ -7055,7 +7254,7 @@ void syntax___typing___ACastExternCall___after_typing(val_t p0, val_t p1){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1257 */
+    /* syntax/typing.nit:1304 */
     if (!once_value_1) {
       fra.me.REG[3] = BOX_NativeString("Attepting to cast from and to the same type.");
       REGB0 = TAG_Int(44);
@@ -7066,19 +7265,19 @@ void syntax___typing___ACastExternCall___after_typing(val_t p0, val_t p1){
     fra.me.REG[3] = fra.me.REG[3];
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
   }
-  /* ./syntax//typing.nit:1260 */
+  /* syntax/typing.nit:1307 */
   fra.me.REG[3] = CALL_syntax___typing___ACastExternCall___from_type(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___typing___ACastExternCall___to_type(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = NEW_MMImportedCast_metamodel___static_type___MMImportedCast___init(fra.me.REG[3], fra.me.REG[2]);
-  /* ./syntax//typing.nit:1261 */
+  /* syntax/typing.nit:1308 */
   fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:1262 */
+  /* syntax/typing.nit:1309 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_syntax___typing, 1262);
+    nit_abort("Assert failed", NULL, LOCATE_syntax___typing, 1309);
   }
-  /* ./syntax//typing.nit:1263 */
+  /* syntax/typing.nit:1310 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMMethod___explicit_casts(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -7089,14 +7288,14 @@ val_t syntax___typing___ACastAsExternCall___from_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1268;
+  fra.me.line = 1315;
   fra.me.meth = LOCATE_syntax___typing___ACastAsExternCall___from_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1268 */
+  /* syntax/typing.nit:1315 */
   fra.me.REG[0] = CALL_parser___parser_nodes___ACastAsExternCall___n_from_type(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -7109,14 +7308,14 @@ val_t syntax___typing___ACastAsExternCall___to_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1269;
+  fra.me.line = 1316;
   fra.me.meth = LOCATE_syntax___typing___ACastAsExternCall___to_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1269 */
+  /* syntax/typing.nit:1316 */
   fra.me.REG[0] = CALL_parser___parser_nodes___ACastAsExternCall___n_to_type(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -7129,14 +7328,14 @@ val_t syntax___typing___AAsNullableExternCall___from_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1273;
+  fra.me.line = 1320;
   fra.me.meth = LOCATE_syntax___typing___AAsNullableExternCall___from_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1273 */
+  /* syntax/typing.nit:1320 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AAsNullableExternCall___n_type(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -7149,14 +7348,14 @@ val_t syntax___typing___AAsNullableExternCall___to_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1274;
+  fra.me.line = 1321;
   fra.me.meth = LOCATE_syntax___typing___AAsNullableExternCall___to_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1274 */
+  /* syntax/typing.nit:1321 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AAsNullableExternCall___n_type(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[0])(fra.me.REG[0]);
@@ -7171,7 +7370,7 @@ val_t syntax___typing___AAsNotNullableExternCall___from_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1278;
+  fra.me.line = 1325;
   fra.me.meth = LOCATE_syntax___typing___AAsNotNullableExternCall___from_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -7179,17 +7378,17 @@ val_t syntax___typing___AAsNotNullableExternCall___from_type(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1280 */
+  /* syntax/typing.nit:1327 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AAsNotNullableExternCall___n_type(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./syntax//typing.nit:1281 */
+  /* syntax/typing.nit:1328 */
   REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1283 */
+    /* syntax/typing.nit:1330 */
     fra.me.REG[1] = fra.me.REG[0];
     goto label1;
   } else {
-    /* ./syntax//typing.nit:1285 */
+    /* syntax/typing.nit:1332 */
     fra.me.REG[0] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = fra.me.REG[0];
     goto label1;
@@ -7203,14 +7402,14 @@ val_t syntax___typing___AAsNotNullableExternCall___to_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1288;
+  fra.me.line = 1335;
   fra.me.meth = LOCATE_syntax___typing___AAsNotNullableExternCall___to_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1288 */
+  /* syntax/typing.nit:1335 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AAsNotNullableExternCall___n_type(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___static_type___MMType___as_notnull(fra.me.REG[0])(fra.me.REG[0]);
@@ -7225,7 +7424,7 @@ val_t syntax___typing___AAttrFormExpr___prop(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1292;
+  fra.me.line = 1339;
   fra.me.meth = LOCATE_syntax___typing___AAttrFormExpr___prop;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -7233,13 +7432,13 @@ val_t syntax___typing___AAttrFormExpr___prop(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1292 */
+  /* syntax/typing.nit:1339 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_syntax___typing___AAttrFormExpr____prop(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1292);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1339);
   }
   goto label1;
   label1: while(0);
@@ -7252,7 +7451,7 @@ val_t syntax___typing___AAttrFormExpr___attr_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1295;
+  fra.me.line = 1342;
   fra.me.meth = LOCATE_syntax___typing___AAttrFormExpr___attr_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -7260,13 +7459,13 @@ val_t syntax___typing___AAttrFormExpr___attr_type(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1295 */
+  /* syntax/typing.nit:1342 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_syntax___typing___AAttrFormExpr____attr_type(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1295);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1342);
   }
   goto label1;
   label1: while(0);
@@ -7290,7 +7489,7 @@ void syntax___typing___AAttrFormExpr___do_typing(val_t p0, val_t p1){
     static val_t once_value_10; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1298;
+  fra.me.line = 1345;
   fra.me.meth = LOCATE_syntax___typing___AAttrFormExpr___do_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -7304,23 +7503,23 @@ void syntax___typing___AAttrFormExpr___do_typing(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1301 */
+  /* syntax/typing.nit:1348 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1302 */
+  /* syntax/typing.nit:1349 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:1303 */
+  /* syntax/typing.nit:1350 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_id(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//typing.nit:1304 */
+  /* syntax/typing.nit:1351 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1305 */
+    /* syntax/typing.nit:1352 */
     REGB0 = TAG_Int(3);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_2) {
@@ -7345,16 +7544,16 @@ void syntax___typing___AAttrFormExpr___do_typing(val_t p0, val_t p1){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
-    /* ./syntax//typing.nit:1306 */
+    /* syntax/typing.nit:1353 */
     goto label1;
   }
-  /* ./syntax//typing.nit:1308 */
+  /* syntax/typing.nit:1355 */
   fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:1309 */
+  /* syntax/typing.nit:1356 */
   REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1310 */
+    /* syntax/typing.nit:1357 */
     REGB0 = TAG_Int(5);
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_4) {
@@ -7390,12 +7589,12 @@ void syntax___typing___AAttrFormExpr___do_typing(val_t p0, val_t p1){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
-    /* ./syntax//typing.nit:1311 */
+    /* syntax/typing.nit:1358 */
     goto label1;
   }
-  /* ./syntax//typing.nit:1313 */
+  /* syntax/typing.nit:1360 */
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_attribute(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-  /* ./syntax//typing.nit:1314 */
+  /* syntax/typing.nit:1361 */
   fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[6])(fra.me.REG[6]);
@@ -7407,11 +7606,11 @@ void syntax___typing___AAttrFormExpr___do_typing(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:232 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-  /* ./syntax//typing.nit:1314 */
+  /* syntax/typing.nit:1361 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./syntax//typing.nit:1315 */
+    /* syntax/typing.nit:1362 */
     REGB1 = TAG_Int(7);
     fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
     if (!once_value_7) {
@@ -7463,24 +7662,24 @@ void syntax___typing___AAttrFormExpr___do_typing(val_t p0, val_t p1){
     fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[6]);
   }
-  /* ./syntax//typing.nit:1317 */
+  /* syntax/typing.nit:1364 */
   ATTR_syntax___typing___AAttrFormExpr____prop(fra.me.REG[0]) = fra.me.REG[4];
-  /* ./syntax//typing.nit:1318 */
+  /* syntax/typing.nit:1365 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
   fra.me.REG[2] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:1319 */
+  /* syntax/typing.nit:1366 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = CALL_syntax___typing___AExpr___is_self(fra.me.REG[4])(fra.me.REG[4]);
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1319);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1366);
     }
     fra.me.REG[4] = CALL_metamodel___static_type___MMType___not_for_self(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[2] = fra.me.REG[4];
   }
-  /* ./syntax//typing.nit:1320 */
+  /* syntax/typing.nit:1367 */
   ATTR_syntax___typing___AAttrFormExpr____attr_type(fra.me.REG[0]) = fra.me.REG[2];
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -7493,7 +7692,7 @@ void syntax___typing___AAttrExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1325;
+  fra.me.line = 1372;
   fra.me.meth = LOCATE_syntax___typing___AAttrExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -7502,9 +7701,9 @@ void syntax___typing___AAttrExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1327 */
+  /* syntax/typing.nit:1374 */
   CALL_syntax___typing___AAttrFormExpr___do_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//typing.nit:1328 */
+  /* syntax/typing.nit:1375 */
   fra.me.REG[1] = ATTR_syntax___typing___AAttrFormExpr____prop(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -7521,10 +7720,10 @@ void syntax___typing___AAttrExpr___after_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1329 */
+  /* syntax/typing.nit:1376 */
   fra.me.REG[1] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra.me.REG[0])(fra.me.REG[0]);
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:1330 */
+  /* syntax/typing.nit:1377 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   label1: while(0);
@@ -7538,7 +7737,7 @@ void syntax___typing___AAttrAssignExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1335;
+  fra.me.line = 1382;
   fra.me.meth = LOCATE_syntax___typing___AAttrAssignExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -7549,9 +7748,9 @@ void syntax___typing___AAttrAssignExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1337 */
+  /* syntax/typing.nit:1384 */
   CALL_syntax___typing___AAttrFormExpr___do_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//typing.nit:1338 */
+  /* syntax/typing.nit:1385 */
   fra.me.REG[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -7568,7 +7767,7 @@ void syntax___typing___AAttrAssignExpr___after_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1339 */
+  /* syntax/typing.nit:1386 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
@@ -7576,7 +7775,7 @@ void syntax___typing___AAttrAssignExpr___after_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1340 */
+  /* syntax/typing.nit:1387 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   label1: while(0);
@@ -7590,7 +7789,7 @@ void syntax___typing___AAttrReassignExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1345;
+  fra.me.line = 1392;
   fra.me.meth = LOCATE_syntax___typing___AAttrReassignExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -7601,9 +7800,9 @@ void syntax___typing___AAttrReassignExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1347 */
+  /* syntax/typing.nit:1394 */
   CALL_syntax___typing___AAttrFormExpr___do_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//typing.nit:1348 */
+  /* syntax/typing.nit:1395 */
   fra.me.REG[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -7620,10 +7819,10 @@ void syntax___typing___AAttrReassignExpr___after_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1349 */
+  /* syntax/typing.nit:1396 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___typing___AReassignFormExpr___do_rvalue_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
-  /* ./syntax//typing.nit:1350 */
+  /* syntax/typing.nit:1397 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -7639,11 +7838,11 @@ void syntax___typing___AAttrReassignExpr___after_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1351 */
+  /* syntax/typing.nit:1398 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[3])(fra.me.REG[3]);
   CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]);
-  /* ./syntax//typing.nit:1352 */
+  /* syntax/typing.nit:1399 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   label1: while(0);
@@ -7658,7 +7857,7 @@ void syntax___typing___AIssetAttrExpr___after_typing(val_t p0, val_t p1){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1357;
+  fra.me.line = 1404;
   fra.me.meth = LOCATE_syntax___typing___AIssetAttrExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -7668,9 +7867,9 @@ void syntax___typing___AIssetAttrExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1359 */
+  /* syntax/typing.nit:1406 */
   CALL_syntax___typing___AAttrFormExpr___do_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//typing.nit:1360 */
+  /* syntax/typing.nit:1407 */
   fra.me.REG[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -7687,11 +7886,11 @@ void syntax___typing___AIssetAttrExpr___after_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1361 */
+  /* syntax/typing.nit:1408 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[2])(fra.me.REG[2]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1362 */
+    /* syntax/typing.nit:1409 */
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("Error: isset on a nullable attribute.");
       REGB0 = TAG_Int(37);
@@ -7702,10 +7901,10 @@ void syntax___typing___AIssetAttrExpr___after_typing(val_t p0, val_t p1){
     fra.me.REG[2] = fra.me.REG[2];
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
   }
-  /* ./syntax//typing.nit:1364 */
+  /* syntax/typing.nit:1411 */
   fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]);
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:1365 */
+  /* syntax/typing.nit:1412 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   label1: while(0);
@@ -7718,7 +7917,7 @@ val_t syntax___typing___AAbsAbsSendExpr___prop_signature(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1370;
+  fra.me.line = 1417;
   fra.me.meth = LOCATE_syntax___typing___AAbsAbsSendExpr___prop_signature;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -7726,14 +7925,14 @@ val_t syntax___typing___AAbsAbsSendExpr___prop_signature(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1370 */
+  /* syntax/typing.nit:1417 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./syntax//typing.nit:1371 */
+  /* syntax/typing.nit:1418 */
   fra.me.REG[1] = ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1371);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1418);
   }
   goto label1;
   label1: while(0);
@@ -7747,7 +7946,7 @@ val_t syntax___typing___AAbsAbsSendExpr___raw_arguments(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1374;
+  fra.me.line = 1421;
   fra.me.meth = LOCATE_syntax___typing___AAbsAbsSendExpr___raw_arguments;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -7757,9 +7956,9 @@ val_t syntax___typing___AAbsAbsSendExpr___raw_arguments(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1377 */
+  /* syntax/typing.nit:1424 */
   fra.me.REG[1] = ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]);
-  /* ./syntax//typing.nit:1378 */
+  /* syntax/typing.nit:1425 */
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -7774,14 +7973,14 @@ val_t syntax___typing___AAbsAbsSendExpr___raw_arguments(val_t p0){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1379 */
+    /* syntax/typing.nit:1426 */
     fra.me.REG[2] = fra.me.REG[1];
     goto label1;
   } else {
-    /* ./syntax//typing.nit:1381 */
+    /* syntax/typing.nit:1428 */
     fra.me.REG[3] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = fra.me.REG[3];
-    /* ./syntax//typing.nit:1382 */
+    /* syntax/typing.nit:1429 */
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -7798,9 +7997,9 @@ val_t syntax___typing___AAbsAbsSendExpr___raw_arguments(val_t p0){
       fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
       fra.me.REG[1] = fra.me.REG[3];
     }
-    /* ./syntax//typing.nit:1383 */
+    /* syntax/typing.nit:1430 */
     ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra.me.REG[0]) = fra.me.REG[1];
-    /* ./syntax//typing.nit:1384 */
+    /* syntax/typing.nit:1431 */
     fra.me.REG[2] = fra.me.REG[1];
     goto label1;
   }
@@ -7816,7 +8015,7 @@ val_t syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(val_t p0){
   static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1390;
+  fra.me.line = 1437;
   fra.me.meth = LOCATE_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -7825,7 +8024,7 @@ val_t syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1392 */
+  /* syntax/typing.nit:1439 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -7851,7 +8050,7 @@ val_t syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(val_t p0){
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   CALL_standard___file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//typing.nit:1393 */
+  /* syntax/typing.nit:1440 */
   fra.me.REG[1] = NIT_NULL;
   goto label3;
   label3: while(0);
@@ -7878,7 +8077,7 @@ val_t syntax___typing___AAbsAbsSendExpr___process_signature(val_t p0, val_t p1,
     static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1396;
+  fra.me.line = 1443;
   fra.me.meth = LOCATE_syntax___typing___AAbsAbsSendExpr___process_signature;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -7895,11 +8094,11 @@ val_t syntax___typing___AAbsAbsSendExpr___process_signature(val_t p0, val_t p1,
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./syntax//typing.nit:1399 */
+  /* syntax/typing.nit:1446 */
   REGB0 = CALL_metamodel___vararg___MMSignature___vararg_rank(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:1400 */
+  /* syntax/typing.nit:1447 */
   REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:1402 */
+  /* syntax/typing.nit:1449 */
   REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -7917,16 +8116,16 @@ val_t syntax___typing___AAbsAbsSendExpr___process_signature(val_t p0, val_t p1,
   } else {
     REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB3)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1402);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1449);
     }
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-    /* ./syntax//typing.nit:1402 */
+    /* syntax/typing.nit:1449 */
     REGB2 = REGB3;
   }
   REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
@@ -7934,32 +8133,32 @@ val_t syntax___typing___AAbsAbsSendExpr___process_signature(val_t p0, val_t p1,
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB3 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
-  /* ./syntax//typing.nit:1403 */
+  /* syntax/typing.nit:1450 */
   if (UNTAG_Bool(REGB3)) {
     REGB3 = TAG_Bool(true);
   } else {
     REGB4 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
     if (UNTAG_Bool(REGB4)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB5 = TAG_Bool((REGB1)==(REGB2));
-      /* ./syntax//typing.nit:1403 */
+      /* syntax/typing.nit:1450 */
       REGB4 = REGB5;
     }
     REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
     if (UNTAG_Bool(REGB4)) {
       REGB4 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:236 */
+      /* ../lib/standard/kernel.nit:236 */
       REGB4 = TAG_Int(-UNTAG_Int(REGB4));
-      /* ./syntax//typing.nit:1403 */
+      /* syntax/typing.nit:1450 */
       REGB5 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB4));
       if (UNTAG_Bool(REGB5)) {
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB4 = TAG_Bool((REGB0)==(REGB4));
-        /* ./syntax//typing.nit:1403 */
+        /* syntax/typing.nit:1450 */
         REGB5 = REGB4;
       }
     } else {
@@ -7969,7 +8168,7 @@ val_t syntax___typing___AAbsAbsSendExpr___process_signature(val_t p0, val_t p1,
     REGB3 = REGB5;
   }
   if (UNTAG_Bool(REGB3)) {
-    /* ./syntax//typing.nit:1404 */
+    /* syntax/typing.nit:1451 */
     REGB3 = TAG_Int(5);
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
     if (!once_value_1) {
@@ -8005,74 +8204,74 @@ val_t syntax___typing___AAbsAbsSendExpr___process_signature(val_t p0, val_t p1,
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
-    /* ./syntax//typing.nit:1405 */
+    /* syntax/typing.nit:1452 */
     REGB3 = TAG_Bool(false);
     goto label4;
   }
-  /* ./syntax//typing.nit:1407 */
+  /* syntax/typing.nit:1454 */
   REGB5 = TAG_Int(0);
-  /* ./syntax//typing.nit:1408 */
+  /* syntax/typing.nit:1455 */
   REGB4 = TAG_Int(0);
-  /* ./../lib/standard//kernel.nit:347 */
+  /* ../lib/standard/kernel.nit:347 */
   REGB6 = REGB1;
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB7 = TAG_Bool(VAL_ISA(REGB6, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB7)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB7 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB6));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB7)) {
-      /* ./syntax//typing.nit:1408 */
+      /* syntax/typing.nit:1455 */
       REGB7 = REGB4;
-      /* ./syntax//typing.nit:1410 */
+      /* syntax/typing.nit:1457 */
       fra.me.REG[5] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[2])(fra.me.REG[2], REGB7);
-      /* ./syntax//typing.nit:1411 */
+      /* syntax/typing.nit:1458 */
       REGB8 = TAG_Bool(IS_EQUAL_OO(REGB7,REGB0));
       if (UNTAG_Bool(REGB8)) {
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB7 = TAG_Bool((REGB7)==(REGB0));
-        /* ./syntax//typing.nit:1411 */
+        /* syntax/typing.nit:1458 */
         REGB8 = REGB7;
       }
       if (UNTAG_Bool(REGB8)) {
-        /* ./syntax//typing.nit:1412 */
+        /* syntax/typing.nit:1459 */
         REGB8 = TAG_Int(0);
-        /* ./../lib/standard//kernel.nit:237 */
+        /* ../lib/standard/kernel.nit:237 */
         REGB7 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB1));
-        /* ./../lib/standard//kernel.nit:341 */
+        /* ../lib/standard/kernel.nit:341 */
         while(1) {
           REGB9 = TAG_Bool(VAL_ISA(REGB7, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8), VTID_standard___kernel___Comparable___OTHER(REGB8))) /*cast OTHER*/;
           if (UNTAG_Bool(REGB9)) {
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:231 */
+          /* ../lib/standard/kernel.nit:231 */
           REGB9 = TAG_Bool(UNTAG_Int(REGB8)<=UNTAG_Int(REGB7));
-          /* ./../lib/standard//kernel.nit:341 */
+          /* ../lib/standard/kernel.nit:341 */
           if (UNTAG_Bool(REGB9)) {
-            /* ./syntax//typing.nit:1413 */
+            /* syntax/typing.nit:1460 */
             REGB9 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
             if (UNTAG_Bool(REGB9)) {
-              nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1413);
+              nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1460);
             }
-            /* ./../lib/standard//collection//array.nit:278 */
+            /* ../lib/standard/collection/array.nit:278 */
             fra.me.REG[0] = fra.me.REG[4];
             REGB9 = REGB5;
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB10 = TAG_Int(0);
             REGB11 = TAG_Bool(VAL_ISA(REGB10, VTCOLOR_standard___kernel___Comparable___OTHER(REGB9), VTID_standard___kernel___Comparable___OTHER(REGB9))) /*cast OTHER*/;
             if (UNTAG_Bool(REGB11)) {
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:233 */
+            /* ../lib/standard/kernel.nit:233 */
             REGB10 = TAG_Bool(UNTAG_Int(REGB9)>=UNTAG_Int(REGB10));
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             if (UNTAG_Bool(REGB10)) {
               REGB10 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
               if (UNTAG_Bool(REGB10)) {
@@ -8085,67 +8284,67 @@ val_t syntax___typing___AAbsAbsSendExpr___process_signature(val_t p0, val_t p1,
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:232 */
+              /* ../lib/standard/kernel.nit:232 */
               REGB10 = TAG_Bool(UNTAG_Int(REGB9)<UNTAG_Int(REGB10));
             } else {
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB11 = TAG_Bool(false);
               REGB10 = REGB11;
             }
             if (UNTAG_Bool(REGB10)) {
             } else {
-              nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+              nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
             }
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
             REGB10 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
             if (UNTAG_Bool(REGB10)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB9)];
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             goto label5;
             label5: while(0);
-            /* ./syntax//typing.nit:1414 */
+            /* syntax/typing.nit:1461 */
             CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
-            /* ./syntax//typing.nit:1415 */
+            /* syntax/typing.nit:1462 */
             REGB9 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB9 = TAG_Int(UNTAG_Int(REGB5)+UNTAG_Int(REGB9));
-            /* ./syntax//typing.nit:1415 */
+            /* syntax/typing.nit:1462 */
             REGB5 = REGB9;
-            /* ./../lib/standard//kernel.nit:343 */
+            /* ../lib/standard/kernel.nit:343 */
             REGB9 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB9 = TAG_Int(UNTAG_Int(REGB8)+UNTAG_Int(REGB9));
-            /* ./../lib/standard//kernel.nit:343 */
+            /* ../lib/standard/kernel.nit:343 */
             REGB8 = REGB9;
           } else {
-            /* ./../lib/standard//kernel.nit:341 */
+            /* ../lib/standard/kernel.nit:341 */
             goto label6;
           }
         }
         label6: while(0);
       } else {
-        /* ./syntax//typing.nit:1418 */
+        /* syntax/typing.nit:1465 */
         REGB8 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
         if (UNTAG_Bool(REGB8)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1418);
+          nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1465);
         }
-        /* ./../lib/standard//collection//array.nit:278 */
+        /* ../lib/standard/collection/array.nit:278 */
         fra.me.REG[3] = fra.me.REG[4];
         REGB8 = REGB5;
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         REGB7 = TAG_Int(0);
         REGB9 = TAG_Bool(VAL_ISA(REGB7, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8), VTID_standard___kernel___Comparable___OTHER(REGB8))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB9)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:233 */
         REGB7 = TAG_Bool(UNTAG_Int(REGB8)>=UNTAG_Int(REGB7));
-        /* ./../lib/standard//collection//array.nit:280 */
+        /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB7)) {
           REGB7 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
           if (UNTAG_Bool(REGB7)) {
@@ -8158,52 +8357,52 @@ val_t syntax___typing___AAbsAbsSendExpr___process_signature(val_t p0, val_t p1,
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB7 = TAG_Bool(UNTAG_Int(REGB8)<UNTAG_Int(REGB7));
         } else {
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB9 = TAG_Bool(false);
           REGB7 = REGB9;
         }
         if (UNTAG_Bool(REGB7)) {
         } else {
-          nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+          nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
         }
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
         REGB7 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB7)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:718 */
         fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB8)];
-        /* ./../lib/standard//collection//array.nit:281 */
+        /* ../lib/standard/collection/array.nit:281 */
         goto label7;
         label7: while(0);
-        /* ./syntax//typing.nit:1418 */
+        /* syntax/typing.nit:1465 */
         fra.me.REG[0] = fra.me.REG[3];
-        /* ./syntax//typing.nit:1419 */
+        /* syntax/typing.nit:1466 */
         CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
-        /* ./syntax//typing.nit:1420 */
+        /* syntax/typing.nit:1467 */
         REGB8 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB8 = TAG_Int(UNTAG_Int(REGB5)+UNTAG_Int(REGB8));
-        /* ./syntax//typing.nit:1420 */
+        /* syntax/typing.nit:1467 */
         REGB5 = REGB8;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB8 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB8 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB8));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB4 = REGB8;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label8;
     }
   }
   label8: while(0);
-  /* ./syntax//typing.nit:1423 */
+  /* syntax/typing.nit:1470 */
   REGB4 = TAG_Bool(true);
   REGB3 = REGB4;
   goto label4;
@@ -8242,7 +8441,7 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
       static val_t once_value_25; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1426;
+  fra.me.line = 1473;
   fra.me.meth = LOCATE_syntax___typing___AAbsAbsSendExpr___process_closures;
   fra.me.has_broke = 0;
   fra.me.REG_size = 17;
@@ -8269,28 +8468,28 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   fra.me.REG[4] = p4;
-  /* ./syntax//typing.nit:1429 */
+  /* syntax/typing.nit:1476 */
   fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:1430 */
+  /* syntax/typing.nit:1477 */
   fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:1431 */
+  /* syntax/typing.nit:1478 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:266 */
+  /* ../lib/standard/collection/array.nit:266 */
   fra.me.REG[7] = fra.me.REG[6];
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[8] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -8302,42 +8501,42 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[9] = ((Nit_NativeArray)fra.me.REG[8])->val[UNTAG_Int(REGB1)];
-      /* ./syntax//typing.nit:1433 */
+      /* syntax/typing.nit:1480 */
       REGB2 = CALL_metamodel___static_type___MMClosure___is_optional(fra.me.REG[9])(fra.me.REG[9]);
       REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
       if (UNTAG_Bool(REGB2)) {
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-        /* ./syntax//typing.nit:1433 */
+        /* syntax/typing.nit:1480 */
         REGB0 = REGB2;
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label1;
     }
   }
   label1: while(0);
-  /* ./syntax//typing.nit:1435 */
+  /* syntax/typing.nit:1482 */
   REGB1 = TAG_Int(0);
-  /* ./syntax//typing.nit:1436 */
+  /* syntax/typing.nit:1483 */
   REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -8354,44 +8553,44 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
   if (UNTAG_Bool(REGB2)) {
     REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1436);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1483);
     }
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-    /* ./syntax//typing.nit:1436 */
+    /* syntax/typing.nit:1483 */
     REGB1 = REGB2;
   }
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
-  /* ./syntax//typing.nit:1437 */
+  /* syntax/typing.nit:1484 */
   REGB3 = TAG_Int(0);
   REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB4)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB3 = TAG_Bool(UNTAG_Int(REGB2)>UNTAG_Int(REGB3));
-  /* ./syntax//typing.nit:1437 */
+  /* syntax/typing.nit:1484 */
   if (UNTAG_Bool(REGB3)) {
-    /* ./syntax//typing.nit:1438 */
+    /* syntax/typing.nit:1485 */
     REGB3 = TAG_Int(0);
     REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB3));
     if (UNTAG_Bool(REGB2)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB3 = TAG_Bool((REGB1)==(REGB3));
-      /* ./syntax//typing.nit:1438 */
+      /* syntax/typing.nit:1485 */
       REGB2 = REGB3;
     }
     if (UNTAG_Bool(REGB2)) {
@@ -8401,15 +8600,15 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:234 */
+      /* ../lib/standard/kernel.nit:234 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB2));
     } else {
-      /* ./syntax//typing.nit:1438 */
+      /* syntax/typing.nit:1485 */
       REGB3 = TAG_Bool(false);
       REGB2 = REGB3;
     }
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//typing.nit:1439 */
+      /* syntax/typing.nit:1486 */
       REGB2 = TAG_Int(5);
       fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_2) {
@@ -8432,14 +8631,14 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
       } else fra.me.REG[7] = once_value_3;
       fra.me.REG[7] = fra.me.REG[7];
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
       }
       REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
-      /* ./syntax//typing.nit:1439 */
+      /* syntax/typing.nit:1486 */
       fra.me.REG[7] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
       if (!once_value_4) {
@@ -8454,7 +8653,7 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
       fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
     } else {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -8466,9 +8665,9 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:234 */
+      /* ../lib/standard/kernel.nit:234 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
-      /* ./syntax//typing.nit:1440 */
+      /* syntax/typing.nit:1487 */
       if (UNTAG_Bool(REGB2)) {
         REGB2 = TAG_Bool(true);
       } else {
@@ -8477,13 +8676,13 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:232 */
         REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-        /* ./syntax//typing.nit:1440 */
+        /* syntax/typing.nit:1487 */
         REGB2 = REGB0;
       }
       if (UNTAG_Bool(REGB2)) {
-        /* ./syntax//typing.nit:1441 */
+        /* syntax/typing.nit:1488 */
         REGB2 = TAG_Int(7);
         fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
         if (!once_value_5) {
@@ -8506,14 +8705,14 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
         } else fra.me.REG[7] = once_value_6;
         fra.me.REG[7] = fra.me.REG[7];
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
-        /* ./../lib/standard//collection//array.nit:24 */
+        /* ../lib/standard/collection/array.nit:24 */
         REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
         }
         REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
-        /* ./syntax//typing.nit:1441 */
+        /* syntax/typing.nit:1488 */
         fra.me.REG[7] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
         if (!once_value_7) {
@@ -8527,16 +8726,16 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
         REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1441);
+          nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1488);
         }
-        /* ./../lib/standard//collection//array.nit:24 */
+        /* ../lib/standard/collection/array.nit:24 */
         REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
         }
         REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-        /* ./syntax//typing.nit:1441 */
+        /* syntax/typing.nit:1488 */
         fra.me.REG[7] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
         if (!once_value_8) {
@@ -8551,9 +8750,9 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
         fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
         CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
       } else {
-        /* ./syntax//typing.nit:1444 */
+        /* syntax/typing.nit:1491 */
         fra.me.REG[8] = NIT_NULL;
-        /* ./syntax//typing.nit:1445 */
+        /* syntax/typing.nit:1492 */
         REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
         } else {
@@ -8571,37 +8770,37 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
           fra.me.REG[7] = NEW_Array_standard___collection___array___Array___init();
           fra.me.REG[8] = fra.me.REG[7];
         }
-        /* ./syntax//typing.nit:1448 */
+        /* syntax/typing.nit:1495 */
         REGB2 = TAG_Int(0);
         REGB0 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB0)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:234 */
+        /* ../lib/standard/kernel.nit:234 */
         REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
-        /* ./syntax//typing.nit:1448 */
+        /* syntax/typing.nit:1495 */
         if (UNTAG_Bool(REGB2)) {
           REGB2 = TAG_Int(1);
-          /* ./../lib/standard//kernel.nit:237 */
+          /* ../lib/standard/kernel.nit:237 */
           REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-          /* ./syntax//typing.nit:1448 */
+          /* syntax/typing.nit:1495 */
           REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
           if (UNTAG_Bool(REGB0)) {
-            nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1448);
+            nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1495);
           }
-          /* ./../lib/standard//collection//array.nit:278 */
+          /* ../lib/standard/collection/array.nit:278 */
           fra.me.REG[7] = fra.me.REG[4];
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           REGB0 = TAG_Int(0);
           REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:233 */
+          /* ../lib/standard/kernel.nit:233 */
           REGB0 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB0));
-          /* ./../lib/standard//collection//array.nit:280 */
+          /* ../lib/standard/collection/array.nit:280 */
           if (UNTAG_Bool(REGB0)) {
             REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
             if (UNTAG_Bool(REGB0)) {
@@ -8614,71 +8813,71 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:232 */
+            /* ../lib/standard/kernel.nit:232 */
             REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
           } else {
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB3 = TAG_Bool(false);
             REGB0 = REGB3;
           }
           if (UNTAG_Bool(REGB0)) {
           } else {
-            nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+            nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
           }
-          /* ./../lib/standard//collection//array.nit:281 */
+          /* ../lib/standard/collection/array.nit:281 */
           fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
           REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
           if (UNTAG_Bool(REGB0)) {
             nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
           }
-          /* ./../lib/standard//collection//array.nit:718 */
+          /* ../lib/standard/collection/array.nit:718 */
           fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB2)];
-          /* ./../lib/standard//collection//array.nit:281 */
+          /* ../lib/standard/collection/array.nit:281 */
           goto label9;
           label9: while(0);
-          /* ./syntax//typing.nit:1448 */
+          /* syntax/typing.nit:1495 */
           REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
           if (UNTAG_Bool(REGB2)) {
-            nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1448);
+            nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1495);
           }
           fra.me.REG[7] = CALL_parser___parser_nodes___ALabelable___n_label(fra.me.REG[7])(fra.me.REG[7]);
         } else {
           fra.me.REG[7] = NIT_NULL;
         }
-        /* ./syntax//typing.nit:1451 */
+        /* syntax/typing.nit:1498 */
         REGB2 = TAG_Int(0);
-        /* ./../lib/standard//kernel.nit:347 */
+        /* ../lib/standard/kernel.nit:347 */
         REGB0 = REGB1;
-        /* ./../lib/standard//kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:352 */
         while(1) {
           REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
           if (UNTAG_Bool(REGB3)) {
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
-          /* ./../lib/standard//kernel.nit:352 */
+          /* ../lib/standard/kernel.nit:352 */
           if (UNTAG_Bool(REGB3)) {
-            /* ./syntax//typing.nit:1451 */
+            /* syntax/typing.nit:1498 */
             REGB3 = REGB2;
-            /* ./syntax//typing.nit:1452 */
+            /* syntax/typing.nit:1499 */
             REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
             if (UNTAG_Bool(REGB4)) {
-              nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1452);
+              nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1499);
             }
-            /* ./../lib/standard//collection//array.nit:278 */
+            /* ../lib/standard/collection/array.nit:278 */
             fra.me.REG[9] = fra.me.REG[4];
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             REGB4 = TAG_Int(0);
             REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
             if (UNTAG_Bool(REGB5)) {
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:233 */
+            /* ../lib/standard/kernel.nit:233 */
             REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
-            /* ./../lib/standard//collection//array.nit:280 */
+            /* ../lib/standard/collection/array.nit:280 */
             if (UNTAG_Bool(REGB4)) {
               REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[9])!=NIT_NULL);
               if (UNTAG_Bool(REGB4)) {
@@ -8691,34 +8890,34 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ./../lib/standard//kernel.nit:232 */
+              /* ../lib/standard/kernel.nit:232 */
               REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
             } else {
-              /* ./../lib/standard//collection//array.nit:280 */
+              /* ../lib/standard/collection/array.nit:280 */
               REGB5 = TAG_Bool(false);
               REGB4 = REGB5;
             }
             if (UNTAG_Bool(REGB4)) {
             } else {
-              nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+              nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
             }
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             fra.me.REG[9] = ATTR_standard___collection___array___Array____items(fra.me.REG[9]);
             REGB4 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
             if (UNTAG_Bool(REGB4)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[9] = ((Nit_NativeArray)fra.me.REG[9])->val[UNTAG_Int(REGB3)];
-            /* ./../lib/standard//collection//array.nit:281 */
+            /* ../lib/standard/collection/array.nit:281 */
             goto label10;
             label10: while(0);
-            /* ./syntax//typing.nit:1453 */
+            /* syntax/typing.nit:1500 */
             fra.me.REG[10] = CALL_parser___parser_nodes___AClosureDef___n_id(fra.me.REG[9])(fra.me.REG[9]);
             fra.me.REG[10] = CALL_syntax___typing___AClosureId___to_symbol(fra.me.REG[10])(fra.me.REG[10]);
-            /* ./syntax//typing.nit:1454 */
+            /* syntax/typing.nit:1501 */
             fra.me.REG[11] = CALL_metamodel___static_type___MMSignature___closure_named(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[10]);
-            /* ./syntax//typing.nit:1455 */
+            /* syntax/typing.nit:1502 */
             REGB3 = TAG_Bool(fra.me.REG[11]==NIT_NULL);
             if (UNTAG_Bool(REGB3)) {
             } else {
@@ -8733,36 +8932,36 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
             }
             REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
             if (UNTAG_Bool(REGB3)) {
-              /* ./syntax//typing.nit:1456 */
+              /* syntax/typing.nit:1503 */
               fra.me.REG[11] = NEW_EscapableClosure_syntax___scope___EscapableClosure___init(fra.me.REG[9], fra.me.REG[11], fra.me.REG[8]);
-              /* ./syntax//typing.nit:1457 */
+              /* syntax/typing.nit:1504 */
               fra.me.REG[12] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]);
               CALL_syntax___scope___ScopeContext___push_escapable(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11], fra.me.REG[7]);
-              /* ./syntax//typing.nit:1458 */
+              /* syntax/typing.nit:1505 */
               CALL_syntax___typing___AClosureDef___accept_typing2(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[1], fra.me.REG[11]);
-              /* ./syntax//typing.nit:1459 */
+              /* syntax/typing.nit:1506 */
               fra.me.REG[11] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]);
               CALL_syntax___scope___ScopeContext___pop(fra.me.REG[11])(fra.me.REG[11]);
             } else {
-              /* ./../lib/standard//collection//array.nit:24 */
+              /* ../lib/standard/collection/array.nit:24 */
               REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
               if (UNTAG_Bool(REGB3)) {
               } else {
                nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
               }
               REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
-              /* ./syntax//typing.nit:1460 */
+              /* syntax/typing.nit:1507 */
               REGB4 = TAG_Int(1);
               REGB5 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4));
               if (UNTAG_Bool(REGB5)) {
               } else {
-               /* ./../lib/standard//kernel.nit:227 */
+               /* ../lib/standard/kernel.nit:227 */
                REGB4 = TAG_Bool((REGB3)==(REGB4));
-               /* ./syntax//typing.nit:1460 */
+               /* syntax/typing.nit:1507 */
                REGB5 = REGB4;
               }
               if (UNTAG_Bool(REGB5)) {
-               /* ./syntax//typing.nit:1461 */
+               /* syntax/typing.nit:1508 */
                fra.me.REG[11] = CALL_parser___parser_nodes___AClosureDef___n_id(fra.me.REG[9])(fra.me.REG[9]);
                REGB5 = TAG_Int(7);
                fra.me.REG[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB5);
@@ -8800,7 +8999,7 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
                fra.me.REG[13] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[6])(fra.me.REG[6]);
                REGB5 = TAG_Bool(fra.me.REG[13]==NIT_NULL);
                if (UNTAG_Bool(REGB5)) {
-               nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1461);
+               nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1508);
                }
                fra.me.REG[13] = CALL_metamodel___static_type___MMClosure___name(fra.me.REG[13])(fra.me.REG[13]);
                fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[13])(fra.me.REG[13]);
@@ -8817,24 +9016,24 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
                fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
                CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[11], fra.me.REG[12]);
               } else {
-               /* ./syntax//typing.nit:1463 */
+               /* syntax/typing.nit:1510 */
                fra.me.REG[12] = NEW_Array_standard___collection___array___Array___init();
-               /* ./../lib/standard//collection//array.nit:266 */
+               /* ../lib/standard/collection/array.nit:266 */
                fra.me.REG[11] = fra.me.REG[6];
-               /* ./../lib/standard//collection//array.nit:269 */
+               /* ../lib/standard/collection/array.nit:269 */
                REGB5 = TAG_Int(0);
-               /* ./../lib/standard//collection//array.nit:270 */
+               /* ../lib/standard/collection/array.nit:270 */
                REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[11])!=NIT_NULL);
                if (UNTAG_Bool(REGB4)) {
                } else {
                nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
                }
                REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[11]);
-               /* ./../lib/standard//collection//array.nit:271 */
+               /* ../lib/standard/collection/array.nit:271 */
                fra.me.REG[13] = ATTR_standard___collection___array___Array____items(fra.me.REG[11]);
-               /* ./../lib/standard//collection//array.nit:272 */
+               /* ../lib/standard/collection/array.nit:272 */
                while(1) {
-               /* ./../lib/standard//collection//array.nit:24 */
+               /* ../lib/standard/collection/array.nit:24 */
                REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[11])!=NIT_NULL);
                if (UNTAG_Bool(REGB4)) {
                } else {
@@ -8846,18 +9045,18 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
                } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
                }
-               /* ./../lib/standard//kernel.nit:232 */
+               /* ../lib/standard/kernel.nit:232 */
                REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
-               /* ./../lib/standard//collection//array.nit:272 */
+               /* ../lib/standard/collection/array.nit:272 */
                if (UNTAG_Bool(REGB4)) {
-               /* ./../lib/standard//collection//array.nit:273 */
+               /* ../lib/standard/collection/array.nit:273 */
                REGB4 = TAG_Bool(fra.me.REG[13]==NIT_NULL);
                if (UNTAG_Bool(REGB4)) {
                nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
                }
-               /* ./../lib/standard//collection//array.nit:718 */
+               /* ../lib/standard/collection/array.nit:718 */
                fra.me.REG[14] = ((Nit_NativeArray)fra.me.REG[13])->val[UNTAG_Int(REGB5)];
-               /* ./syntax//typing.nit:1465 */
+               /* syntax/typing.nit:1512 */
                REGB4 = TAG_Int(3);
                fra.me.REG[15] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
                if (!once_value_15) {
@@ -8883,19 +9082,19 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[15])(fra.me.REG[15], fra.me.REG[14]);
                fra.me.REG[15] = CALL_standard___string___Object___to_s(fra.me.REG[15])(fra.me.REG[15]);
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[15]);
-               /* ./../lib/standard//collection//array.nit:274 */
+               /* ../lib/standard/collection/array.nit:274 */
                REGB4 = TAG_Int(1);
-               /* ./../lib/standard//kernel.nit:235 */
+               /* ../lib/standard/kernel.nit:235 */
                REGB4 = TAG_Int(UNTAG_Int(REGB5)+UNTAG_Int(REGB4));
-               /* ./../lib/standard//collection//array.nit:274 */
+               /* ../lib/standard/collection/array.nit:274 */
                REGB5 = REGB4;
                } else {
-               /* ./../lib/standard//collection//array.nit:272 */
+               /* ../lib/standard/collection/array.nit:272 */
                goto label17;
                }
                }
                label17: while(0);
-               /* ./syntax//typing.nit:1467 */
+               /* syntax/typing.nit:1514 */
                fra.me.REG[9] = CALL_parser___parser_nodes___AClosureDef___n_id(fra.me.REG[9])(fra.me.REG[9]);
                REGB5 = TAG_Int(7);
                fra.me.REG[13] = NEW_Array_standard___collection___array___Array___with_capacity(REGB5);
@@ -8953,19 +9152,19 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
                CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9], fra.me.REG[13]);
               }
             }
-            /* ./../lib/standard//kernel.nit:354 */
+            /* ../lib/standard/kernel.nit:354 */
             REGB5 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
-            /* ./../lib/standard//kernel.nit:354 */
+            /* ../lib/standard/kernel.nit:354 */
             REGB2 = REGB5;
           } else {
-            /* ./../lib/standard//kernel.nit:352 */
+            /* ../lib/standard/kernel.nit:352 */
             goto label23;
           }
         }
         label23: while(0);
-        /* ./syntax//typing.nit:1472 */
+        /* syntax/typing.nit:1519 */
         REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
         } else {
@@ -8980,26 +9179,26 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
         }
         REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
         if (UNTAG_Bool(REGB2)) {
-          /* ./syntax//typing.nit:1473 */
+          /* syntax/typing.nit:1520 */
           fra.me.REG[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5], fra.me.REG[8]);
           fra.me.REG[5] = fra.me.REG[8];
         }
       }
     }
   } else {
-    /* ./syntax//typing.nit:1476 */
+    /* syntax/typing.nit:1523 */
     REGB2 = TAG_Int(0);
     REGB0 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
     if (UNTAG_Bool(REGB0)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
+      /* ../lib/standard/kernel.nit:227 */
       REGB2 = TAG_Bool((REGB1)==(REGB2));
-      /* ./syntax//typing.nit:1476 */
+      /* syntax/typing.nit:1523 */
       REGB0 = REGB2;
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:1477 */
+      /* syntax/typing.nit:1524 */
       REGB0 = TAG_Int(3);
       fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_24) {
@@ -9026,7 +9225,7 @@ val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, v
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
     }
   }
-  /* ./syntax//typing.nit:1479 */
+  /* syntax/typing.nit:1526 */
   goto label26;
   label26: while(0);
   stack_frame_head = fra.me.prev;
@@ -9040,7 +9239,7 @@ void syntax___typing___AAbsSendExpr___do_typing(val_t p0, val_t p1, val_t p2, va
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1484;
+  fra.me.line = 1531;
   fra.me.meth = LOCATE_syntax___typing___AAbsSendExpr___do_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -9060,9 +9259,9 @@ void syntax___typing___AAbsSendExpr___do_typing(val_t p0, val_t p1, val_t p2, va
   fra.me.REG[3] = p5;
   fra.me.REG[4] = p6;
   fra.me.REG[5] = p7;
-  /* ./syntax//typing.nit:1487 */
+  /* syntax/typing.nit:1534 */
   fra.me.REG[3] = CALL_syntax___typing___AAbsSendExpr___get_property(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, fra.me.REG[3]);
-  /* ./syntax//typing.nit:1488 */
+  /* syntax/typing.nit:1535 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -9078,12 +9277,12 @@ void syntax___typing___AAbsSendExpr___do_typing(val_t p0, val_t p1, val_t p2, va
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1489 */
+  /* syntax/typing.nit:1536 */
   fra.me.REG[2] = CALL_syntax___typing___AAbsSendExpr___get_signature(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], REGB1);
-  /* ./syntax//typing.nit:1490 */
+  /* syntax/typing.nit:1537 */
   REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1490);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1537);
   }
   fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[3])(fra.me.REG[3]);
   REGB1 = CALL_syntax___typing___AAbsAbsSendExpr___process_signature(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[6], fra.me.REG[4]);
@@ -9091,14 +9290,14 @@ void syntax___typing___AAbsSendExpr___do_typing(val_t p0, val_t p1, val_t p2, va
   if (UNTAG_Bool(REGB1)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1491 */
+  /* syntax/typing.nit:1538 */
   REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1491);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1538);
   }
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[5] = CALL_syntax___typing___AAbsAbsSendExpr___process_closures(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[4], fra.me.REG[5]);
-  /* ./syntax//typing.nit:1492 */
+  /* syntax/typing.nit:1539 */
   REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -9133,11 +9332,11 @@ void syntax___typing___AAbsSendExpr___do_typing(val_t p0, val_t p1, val_t p2, va
   if (UNTAG_Bool(REGB1)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1493 */
+  /* syntax/typing.nit:1540 */
   ATTR_syntax___typing___AAbsSendExpr____prop(fra.me.REG[0]) = fra.me.REG[3];
-  /* ./syntax//typing.nit:1494 */
+  /* syntax/typing.nit:1541 */
   ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./syntax//typing.nit:1495 */
+  /* syntax/typing.nit:1542 */
   ATTR_syntax___typing___AAbsSendExpr____return_type(fra.me.REG[0]) = fra.me.REG[5];
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -9168,7 +9367,7 @@ val_t syntax___typing___AAbsSendExpr___get_property(val_t p0, val_t p1, val_t p2
       static val_t once_value_17; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1498;
+  fra.me.line = 1545;
   fra.me.meth = LOCATE_syntax___typing___AAbsSendExpr___get_property;
   fra.me.has_broke = 0;
   fra.me.REG_size = 10;
@@ -9188,10 +9387,10 @@ val_t syntax___typing___AAbsSendExpr___get_property(val_t p0, val_t p1, val_t p2
   fra.me.REG[2] = p2;
   REGB0 = p3;
   fra.me.REG[3] = p4;
-  /* ./syntax//typing.nit:1500 */
+  /* syntax/typing.nit:1547 */
   REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
   if (UNTAG_Bool(REGB1)) {
-    /* ./syntax//typing.nit:1501 */
+    /* syntax/typing.nit:1548 */
     if (!once_value_1) {
       if (!once_value_2) {
         fra.me.REG[4] = BOX_NativeString("==");
@@ -9238,12 +9437,12 @@ val_t syntax___typing___AAbsSendExpr___get_property(val_t p0, val_t p1, val_t p2
       REGB1 = REGB2;
     }
     if (UNTAG_Bool(REGB1)) {
-      /* ./syntax//typing.nit:1503 */
+      /* syntax/typing.nit:1550 */
       fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[4] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[4])(fra.me.REG[4]);
       fra.me.REG[2] = fra.me.REG[4];
     } else {
-      /* ./syntax//typing.nit:1505 */
+      /* syntax/typing.nit:1552 */
       REGB1 = TAG_Int(3);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_5) {
@@ -9268,22 +9467,22 @@ val_t syntax___typing___AAbsSendExpr___get_property(val_t p0, val_t p1, val_t p2
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
       fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
-      /* ./syntax//typing.nit:1506 */
+      /* syntax/typing.nit:1553 */
       fra.me.REG[4] = NIT_NULL;
       goto label7;
     }
   }
-  /* ./syntax//typing.nit:1509 */
+  /* syntax/typing.nit:1556 */
   fra.me.REG[5] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:1510 */
+  /* syntax/typing.nit:1557 */
   fra.me.REG[6] = NIT_NULL;
-  /* ./syntax//typing.nit:1511 */
+  /* syntax/typing.nit:1558 */
   REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
   if (UNTAG_Bool(REGB1)) {
     fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
     fra.me.REG[6] = fra.me.REG[7];
   }
-  /* ./syntax//typing.nit:1512 */
+  /* syntax/typing.nit:1559 */
   REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -9305,27 +9504,27 @@ val_t syntax___typing___AAbsSendExpr___get_property(val_t p0, val_t p1, val_t p2
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
-    /* ./syntax//typing.nit:1513 */
+    /* syntax/typing.nit:1560 */
     fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
-    /* ./syntax//typing.nit:1514 */
+    /* syntax/typing.nit:1561 */
     REGB2 = TAG_Int(1);
     REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:234 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
-    /* ./syntax//typing.nit:1514 */
+    /* syntax/typing.nit:1561 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./syntax//typing.nit:1515 */
+      /* syntax/typing.nit:1562 */
       REGB2 = TAG_Int(5);
       fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_8) {
@@ -9369,48 +9568,48 @@ val_t syntax___typing___AAbsSendExpr___get_property(val_t p0, val_t p1, val_t p2
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
       fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
-      /* ./syntax//typing.nit:1516 */
+      /* syntax/typing.nit:1563 */
       fra.me.REG[4] = NIT_NULL;
       goto label7;
     } else {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
       }
       REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
-      /* ./syntax//typing.nit:1517 */
+      /* syntax/typing.nit:1564 */
       REGB1 = TAG_Int(1);
       REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
       if (UNTAG_Bool(REGB3)) {
       } else {
-        /* ./../lib/standard//kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:227 */
         REGB1 = TAG_Bool((REGB2)==(REGB1));
-        /* ./syntax//typing.nit:1517 */
+        /* syntax/typing.nit:1564 */
         REGB3 = REGB1;
       }
       if (UNTAG_Bool(REGB3)) {
-        /* ./syntax//typing.nit:1518 */
+        /* syntax/typing.nit:1565 */
         fra.me.REG[7] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[7])(fra.me.REG[7]);
         REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1518);
+          nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1565);
         }
         fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[7])(fra.me.REG[7]);
         fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
-        /* ./syntax//typing.nit:1519 */
+        /* syntax/typing.nit:1566 */
         REGB3 = TAG_Bool(VAL_ISA(fra.me.REG[7], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
         if (UNTAG_Bool(REGB3)) {
         } else {
-          nit_abort("Assert failed", NULL, LOCATE_syntax___typing, 1519);
+          nit_abort("Assert failed", NULL, LOCATE_syntax___typing, 1566);
         }
-        /* ./syntax//typing.nit:1520 */
+        /* syntax/typing.nit:1567 */
         fra.me.REG[6] = fra.me.REG[7];
       }
     }
   }
-  /* ./syntax//typing.nit:1524 */
+  /* syntax/typing.nit:1571 */
   REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB3)) {
   } else {
@@ -9424,9 +9623,9 @@ val_t syntax___typing___AAbsSendExpr___get_property(val_t p0, val_t p1, val_t p2
     }
   }
   if (UNTAG_Bool(REGB3)) {
-    /* ./syntax//typing.nit:1525 */
+    /* syntax/typing.nit:1572 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:1526 */
+      /* syntax/typing.nit:1573 */
       REGB0 = TAG_Int(5);
       fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_12) {
@@ -9463,7 +9662,7 @@ val_t syntax___typing___AAbsSendExpr___get_property(val_t p0, val_t p1, val_t p2
       fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]);
     } else {
-      /* ./syntax//typing.nit:1528 */
+      /* syntax/typing.nit:1575 */
       REGB0 = TAG_Int(5);
       fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_15) {
@@ -9500,11 +9699,11 @@ val_t syntax___typing___AAbsSendExpr___get_property(val_t p0, val_t p1, val_t p2
       fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]);
     }
-    /* ./syntax//typing.nit:1530 */
+    /* syntax/typing.nit:1577 */
     fra.me.REG[4] = NIT_NULL;
     goto label7;
   }
-  /* ./syntax//typing.nit:1532 */
+  /* syntax/typing.nit:1579 */
   fra.me.REG[4] = fra.me.REG[6];
   goto label7;
   label7: while(0);
@@ -9517,7 +9716,7 @@ val_t syntax___typing___AAbsSendExpr___get_signature(val_t p0, val_t p1, val_t p
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1535;
+  fra.me.line = 1582;
   fra.me.meth = LOCATE_syntax___typing___AAbsSendExpr___get_signature;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -9533,19 +9732,19 @@ val_t syntax___typing___AAbsSendExpr___get_signature(val_t p0, val_t p1, val_t p
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
   REGB0 = p4;
-  /* ./syntax//typing.nit:1538 */
+  /* syntax/typing.nit:1585 */
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
   CALL_syntax___syntax_base___MMGlobalProperty___check_visibility(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[0], fra.me.REG[5], REGB0);
-  /* ./syntax//typing.nit:1539 */
+  /* syntax/typing.nit:1586 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* ./syntax//typing.nit:1540 */
+  /* syntax/typing.nit:1587 */
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___not_for_self(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[2] = fra.me.REG[3];
   }
-  /* ./syntax//typing.nit:1541 */
+  /* syntax/typing.nit:1588 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -9557,7 +9756,7 @@ val_t syntax___typing___AAbsSendExpr___prop(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1544;
+  fra.me.line = 1591;
   fra.me.meth = LOCATE_syntax___typing___AAbsSendExpr___prop;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -9565,14 +9764,14 @@ val_t syntax___typing___AAbsSendExpr___prop(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1544 */
+  /* syntax/typing.nit:1591 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./syntax//typing.nit:1545 */
+  /* syntax/typing.nit:1592 */
   fra.me.REG[1] = ATTR_syntax___typing___AAbsSendExpr____prop(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1545);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1592);
   }
   goto label1;
   label1: while(0);
@@ -9584,14 +9783,14 @@ val_t syntax___typing___AAbsSendExpr___return_type(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1548;
+  fra.me.line = 1595;
   fra.me.meth = LOCATE_syntax___typing___AAbsSendExpr___return_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1548 */
+  /* syntax/typing.nit:1595 */
   fra.me.REG[0] = ATTR_syntax___typing___AAbsSendExpr____return_type(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -9615,7 +9814,7 @@ void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0, val_t
                static val_t once_value_11; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1555;
+  fra.me.line = 1602;
   fra.me.meth = LOCATE_syntax___typing___ASuperInitCall___register_super_init_call;
   fra.me.has_broke = 0;
   fra.me.REG_size = 11;
@@ -9634,9 +9833,9 @@ void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//typing.nit:1555 */
+  /* syntax/typing.nit:1602 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./syntax//typing.nit:1557 */
+  /* syntax/typing.nit:1604 */
   fra.me.REG[4] = CALL_parser___parser_prod___ANode___parent(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[5] = CALL_syntax___typing___TypingVisitor___top_block(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[4],fra.me.REG[5]));
@@ -9666,7 +9865,7 @@ void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1558 */
+    /* syntax/typing.nit:1605 */
     REGB0 = TAG_Int(3);
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -9692,42 +9891,42 @@ void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0, val_t
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[5]);
   }
-  /* ./syntax//typing.nit:1560 */
+  /* syntax/typing.nit:1607 */
   fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-  /* ./syntax//typing.nit:1561 */
+  /* syntax/typing.nit:1608 */
   fra.me.REG[5] = NIT_NULL;
-  /* ./syntax//typing.nit:1562 */
+  /* syntax/typing.nit:1609 */
   fra.me.REG[6] = CALL_syntax___typing___TypingVisitor___explicit_super_init_calls(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1562);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1609);
   }
-  /* ./syntax//typing.nit:1563 */
+  /* syntax/typing.nit:1610 */
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[6])(fra.me.REG[6]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1564 */
+    /* syntax/typing.nit:1611 */
     fra.me.REG[0] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra.me.REG[6])(fra.me.REG[6]);
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1564);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1611);
     }
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[5] = fra.me.REG[0];
   }
-  /* ./syntax//typing.nit:1566 */
+  /* syntax/typing.nit:1613 */
   fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___partial_order___PartialOrderElement___reverse_linear_extension(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./syntax//typing.nit:1567 */
+  /* syntax/typing.nit:1614 */
   fra.me.REG[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[7]));
   if (UNTAG_Bool(REGB0)) {
@@ -9736,15 +9935,15 @@ void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0, val_t
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1568 */
+    /* syntax/typing.nit:1615 */
     REGB0 = TAG_Bool(true);
     CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
   } else {
-    /* ./syntax//typing.nit:1569 */
+    /* syntax/typing.nit:1616 */
     REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:1570 */
+      /* syntax/typing.nit:1617 */
       REGB0 = TAG_Int(5);
       fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_3) {
@@ -9789,7 +9988,7 @@ void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0, val_t
       fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[7]);
     } else {
-      /* ./syntax//typing.nit:1571 */
+      /* syntax/typing.nit:1618 */
       REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[4],fra.me.REG[5]));
       if (UNTAG_Bool(REGB0)) {
       } else {
@@ -9797,7 +9996,7 @@ void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0, val_t
         REGB0 = REGB1;
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//typing.nit:1572 */
+        /* syntax/typing.nit:1619 */
         REGB0 = TAG_Int(3);
         fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_7) {
@@ -9823,20 +10022,20 @@ void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0, val_t
         fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
         CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[7]);
       } else {
-        /* ./../lib/standard//collection//array.nit:269 */
+        /* ../lib/standard/collection/array.nit:269 */
         REGB0 = TAG_Int(0);
-        /* ./../lib/standard//collection//array.nit:270 */
+        /* ../lib/standard/collection/array.nit:270 */
         REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
         } else {
           nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
         }
         REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-        /* ./../lib/standard//collection//array.nit:271 */
+        /* ../lib/standard/collection/array.nit:271 */
         fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:272 */
         while(1) {
-          /* ./../lib/standard//collection//array.nit:24 */
+          /* ../lib/standard/collection/array.nit:24 */
           REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
           if (UNTAG_Bool(REGB1)) {
           } else {
@@ -9848,18 +10047,18 @@ void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0, val_t
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:232 */
           REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-          /* ./../lib/standard//collection//array.nit:272 */
+          /* ../lib/standard/collection/array.nit:272 */
           if (UNTAG_Bool(REGB1)) {
-            /* ./../lib/standard//collection//array.nit:273 */
+            /* ../lib/standard/collection/array.nit:273 */
             REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
             if (UNTAG_Bool(REGB1)) {
               nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
             }
-            /* ./../lib/standard//collection//array.nit:718 */
+            /* ../lib/standard/collection/array.nit:718 */
             fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB0)];
-            /* ./syntax//typing.nit:1575 */
+            /* syntax/typing.nit:1622 */
             REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[8],fra.me.REG[5]));
             if (UNTAG_Bool(REGB1)) {
             } else {
@@ -9867,10 +10066,10 @@ void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0, val_t
               REGB1 = REGB2;
             }
             if (UNTAG_Bool(REGB1)) {
-              /* ./syntax//typing.nit:1576 */
+              /* syntax/typing.nit:1623 */
               fra.me.REG[5] = NIT_NULL;
             } else {
-              /* ./syntax//typing.nit:1577 */
+              /* syntax/typing.nit:1624 */
               REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[8],fra.me.REG[4]));
               if (UNTAG_Bool(REGB1)) {
               } else {
@@ -9878,7 +10077,7 @@ void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0, val_t
                REGB1 = REGB2;
               }
               if (UNTAG_Bool(REGB1)) {
-               /* ./syntax//typing.nit:1578 */
+               /* syntax/typing.nit:1625 */
                REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
                if (UNTAG_Bool(REGB1)) {
                } else {
@@ -9893,7 +10092,7 @@ void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0, val_t
                }
                REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
                if (UNTAG_Bool(REGB1)) {
-               /* ./syntax//typing.nit:1579 */
+               /* syntax/typing.nit:1626 */
                REGB1 = TAG_Int(5);
                fra.me.REG[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
                if (!once_value_9) {
@@ -9930,20 +10129,20 @@ void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0, val_t
                fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
                CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[9]);
                }
-               /* ./syntax//typing.nit:1581 */
+               /* syntax/typing.nit:1628 */
                CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
-               /* ./syntax//typing.nit:1582 */
+               /* syntax/typing.nit:1629 */
                goto label12;
               }
             }
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB1 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-            /* ./../lib/standard//collection//array.nit:274 */
+            /* ../lib/standard/collection/array.nit:274 */
             REGB0 = REGB1;
           } else {
-            /* ./../lib/standard//collection//array.nit:272 */
+            /* ../lib/standard/collection/array.nit:272 */
             goto label13;
           }
         }
@@ -9960,16 +10159,16 @@ val_t syntax___typing___ANewExpr___compute_raw_arguments(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1591;
+  fra.me.line = 1638;
   fra.me.meth = LOCATE_syntax___typing___ANewExpr___compute_raw_arguments;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1591 */
+  /* syntax/typing.nit:1638 */
   fra.me.REG[0] = CALL_parser___parser_nodes___ANewExpr___n_args(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[0] = CALL_syntax___syntax_base___AExprs___to_a(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -9988,7 +10187,7 @@ void syntax___typing___ANewExpr___after_typing(val_t p0, val_t p1){
     static val_t once_value_7; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1592;
+  fra.me.line = 1639;
   fra.me.meth = LOCATE_syntax___typing___ANewExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -10000,22 +10199,22 @@ void syntax___typing___ANewExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1594 */
+  /* syntax/typing.nit:1641 */
   fra.me.REG[2] = CALL_parser___parser_nodes___ANewExpr___n_type(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___syntax_base___AType___is_typed(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1595 */
+  /* syntax/typing.nit:1642 */
   fra.me.REG[2] = CALL_parser___parser_nodes___ANewExpr___n_type(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:1596 */
+  /* syntax/typing.nit:1643 */
   fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1597 */
+    /* syntax/typing.nit:1644 */
     REGB0 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_2) {
@@ -10041,10 +10240,10 @@ void syntax___typing___ANewExpr___after_typing(val_t p0, val_t p1){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
-    /* ./syntax//typing.nit:1598 */
+    /* syntax/typing.nit:1645 */
     goto label1;
   }
-  /* ./syntax//typing.nit:1601 */
+  /* syntax/typing.nit:1648 */
   fra.me.REG[3] = CALL_parser___parser_nodes___ANewExpr___n_id(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -10059,7 +10258,7 @@ void syntax___typing___ANewExpr___after_typing(val_t p0, val_t p1){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1602 */
+    /* syntax/typing.nit:1649 */
     if (!once_value_4) {
       if (!once_value_5) {
         fra.me.REG[3] = BOX_NativeString("init");
@@ -10075,21 +10274,21 @@ void syntax___typing___ANewExpr___after_typing(val_t p0, val_t p1){
     } else fra.me.REG[3] = once_value_4;
     fra.me.REG[3] = fra.me.REG[3];
   } else {
-    /* ./syntax//typing.nit:1604 */
+    /* syntax/typing.nit:1651 */
     fra.me.REG[4] = CALL_parser___parser_nodes___ANewExpr___n_id(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1604);
+      nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1651);
     }
     fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
     fra.me.REG[3] = fra.me.REG[4];
   }
-  /* ./syntax//typing.nit:1607 */
+  /* syntax/typing.nit:1654 */
   REGB0 = TAG_Bool(false);
   REGB1 = TAG_Bool(false);
   fra.me.REG[4] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___AAbsSendExpr___do_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, REGB1, fra.me.REG[3], fra.me.REG[4], NIT_NULL);
-  /* ./syntax//typing.nit:1608 */
+  /* syntax/typing.nit:1655 */
   fra.me.REG[4] = ATTR_syntax___typing___AAbsSendExpr____prop(fra.me.REG[0]);
   REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -10106,13 +10305,13 @@ void syntax___typing___ANewExpr___after_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB1)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1610 */
+  /* syntax/typing.nit:1657 */
   fra.me.REG[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[4])(fra.me.REG[4]);
   REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]);
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
   if (UNTAG_Bool(REGB1)) {
-    /* ./syntax//typing.nit:1611 */
+    /* syntax/typing.nit:1658 */
     REGB1 = TAG_Int(3);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
     if (!once_value_6) {
@@ -10138,12 +10337,12 @@ void syntax___typing___ANewExpr___after_typing(val_t p0, val_t p1){
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
-    /* ./syntax//typing.nit:1612 */
+    /* syntax/typing.nit:1659 */
     goto label1;
   }
-  /* ./syntax//typing.nit:1614 */
+  /* syntax/typing.nit:1661 */
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./syntax//typing.nit:1615 */
+  /* syntax/typing.nit:1662 */
   REGB1 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB1;
   label1: while(0);
@@ -10155,13 +10354,13 @@ val_t syntax___typing___ASendExpr___name(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1621;
+  fra.me.line = 1668;
   fra.me.meth = LOCATE_syntax___typing___ASendExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//typing.nit:1621 */
-  nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 1621);
+  /* syntax/typing.nit:1668 */
+  nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 1668);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
@@ -10170,14 +10369,14 @@ val_t syntax___typing___ASendExpr___closure_defs(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1624;
+  fra.me.line = 1671;
   fra.me.meth = LOCATE_syntax___typing___ASendExpr___closure_defs;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1625 */
+  /* syntax/typing.nit:1672 */
   fra.me.REG[0] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -10189,7 +10388,7 @@ void syntax___typing___ASendExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1627;
+  fra.me.line = 1674;
   fra.me.meth = LOCATE_syntax___typing___ASendExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -10198,7 +10397,7 @@ void syntax___typing___ASendExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1629 */
+  /* syntax/typing.nit:1676 */
   CALL_syntax___typing___ASendExpr___do_all_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   stack_frame_head = fra.me.prev;
   return;
@@ -10214,7 +10413,7 @@ void syntax___typing___ASendExpr___do_all_typing(val_t p0, val_t p1){
         static val_t once_value_5; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1632;
+  fra.me.line = 1679;
   fra.me.meth = LOCATE_syntax___typing___ASendExpr___do_all_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -10228,16 +10427,16 @@ void syntax___typing___ASendExpr___do_all_typing(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1632 */
+  /* syntax/typing.nit:1679 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//typing.nit:1634 */
+  /* syntax/typing.nit:1681 */
   fra.me.REG[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1635 */
+  /* syntax/typing.nit:1682 */
   fra.me.REG[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
@@ -10248,7 +10447,7 @@ void syntax___typing___ASendExpr___do_all_typing(val_t p0, val_t p1){
   fra.me.REG[5] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[6] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra.me.REG[2])(fra.me.REG[2]);
   CALL_syntax___typing___AAbsSendExpr___do_typing(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[3], REGB0, REGB1, fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
-  /* ./syntax//typing.nit:1636 */
+  /* syntax/typing.nit:1683 */
   fra.me.REG[6] = ATTR_syntax___typing___AAbsSendExpr____prop(fra.me.REG[2]);
   REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
@@ -10265,24 +10464,24 @@ void syntax___typing___ASendExpr___do_all_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB1)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1637 */
+  /* syntax/typing.nit:1684 */
   fra.me.REG[6] = ATTR_syntax___typing___AAbsSendExpr____prop(fra.me.REG[2]);
   REGB1 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1637);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1684);
   }
-  /* ./syntax//typing.nit:1639 */
+  /* syntax/typing.nit:1686 */
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[6])(fra.me.REG[6]);
   REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB1)) {
-    /* ./syntax//typing.nit:1640 */
+    /* syntax/typing.nit:1687 */
     fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
     REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
     REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
     if (UNTAG_Bool(REGB1)) {
-      /* ./syntax//typing.nit:1641 */
+      /* syntax/typing.nit:1688 */
       REGB1 = TAG_Int(3);
       fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_2) {
@@ -10308,12 +10507,12 @@ void syntax___typing___ASendExpr___do_all_typing(val_t p0, val_t p1){
       fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
     } else {
-      /* ./syntax//typing.nit:1642 */
+      /* syntax/typing.nit:1689 */
       fra.me.REG[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
       REGB1 = CALL_syntax___typing___AExpr___is_self(fra.me.REG[0])(fra.me.REG[0]);
       REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
       if (UNTAG_Bool(REGB1)) {
-        /* ./syntax//typing.nit:1643 */
+        /* syntax/typing.nit:1690 */
         REGB1 = TAG_Int(3);
         fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
         if (!once_value_4) {
@@ -10339,15 +10538,15 @@ void syntax___typing___ASendExpr___do_all_typing(val_t p0, val_t p1){
         fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
         CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
       } else {
-        /* ./syntax//typing.nit:1645 */
+        /* syntax/typing.nit:1692 */
         CALL_syntax___typing___ASuperInitCall___register_super_init_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[6]);
       }
     }
   }
-  /* ./syntax//typing.nit:1649 */
+  /* syntax/typing.nit:1696 */
   fra.me.REG[6] = CALL_syntax___syntax_base___AAbsSendExpr___return_type(fra.me.REG[2])(fra.me.REG[2]);
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[2]) = fra.me.REG[6];
-  /* ./syntax//typing.nit:1650 */
+  /* syntax/typing.nit:1697 */
   REGB1 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[2]) = REGB1;
   label1: while(0);
@@ -10360,7 +10559,7 @@ val_t syntax___typing___ASendReassignExpr___read_prop(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1655;
+  fra.me.line = 1702;
   fra.me.meth = LOCATE_syntax___typing___ASendReassignExpr___read_prop;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -10368,13 +10567,13 @@ val_t syntax___typing___ASendReassignExpr___read_prop(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1655 */
+  /* syntax/typing.nit:1702 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_syntax___typing___ASendReassignExpr____read_prop(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1655);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1702);
   }
   goto label1;
   label1: while(0);
@@ -10399,7 +10598,7 @@ void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0, val_t p1){
         static val_t once_value_11; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1657;
+  fra.me.line = 1704;
   fra.me.meth = LOCATE_syntax___typing___ASendReassignExpr___do_all_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 7;
@@ -10413,18 +10612,18 @@ void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1657 */
+  /* syntax/typing.nit:1704 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//typing.nit:1659 */
+  /* syntax/typing.nit:1706 */
   fra.me.REG[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1660 */
+  /* syntax/typing.nit:1707 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:1661 */
+  /* syntax/typing.nit:1708 */
   fra.me.REG[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[4] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[5] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
@@ -10433,9 +10632,9 @@ void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0, val_t p1){
   REGB1 = CALL_syntax___typing___AExpr___is_self(fra.me.REG[5])(fra.me.REG[5]);
   fra.me.REG[5] = CALL_syntax___typing___ASendExpr___name(fra.me.REG[2])(fra.me.REG[2]);
   CALL_syntax___typing___AAbsSendExpr___do_typing(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[4], REGB0, REGB1, fra.me.REG[5], fra.me.REG[3], NIT_NULL);
-  /* ./syntax//typing.nit:1662 */
+  /* syntax/typing.nit:1709 */
   fra.me.REG[5] = ATTR_syntax___typing___AAbsSendExpr____prop(fra.me.REG[2]);
-  /* ./syntax//typing.nit:1663 */
+  /* syntax/typing.nit:1710 */
   REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -10451,21 +10650,21 @@ void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB1)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1664 */
+  /* syntax/typing.nit:1711 */
   REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1664);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1711);
   }
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[5])(fra.me.REG[5]);
   REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]);
   if (UNTAG_Bool(REGB1)) {
-    /* ./syntax//typing.nit:1665 */
+    /* syntax/typing.nit:1712 */
     fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[4])(fra.me.REG[4]);
     REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]);
     REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
     if (UNTAG_Bool(REGB1)) {
-      /* ./syntax//typing.nit:1666 */
+      /* syntax/typing.nit:1713 */
       REGB1 = TAG_Int(3);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_2) {
@@ -10491,12 +10690,12 @@ void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0, val_t p1){
       fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]);
     } else {
-      /* ./syntax//typing.nit:1667 */
+      /* syntax/typing.nit:1714 */
       fra.me.REG[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
       REGB1 = CALL_syntax___typing___AExpr___is_self(fra.me.REG[4])(fra.me.REG[4]);
       REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
       if (UNTAG_Bool(REGB1)) {
-        /* ./syntax//typing.nit:1668 */
+        /* syntax/typing.nit:1715 */
         REGB1 = TAG_Int(3);
         fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
         if (!once_value_4) {
@@ -10524,21 +10723,21 @@ void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0, val_t p1){
       }
     }
   }
-  /* ./syntax//typing.nit:1671 */
+  /* syntax/typing.nit:1718 */
   fra.me.REG[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[4] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[4])(fra.me.REG[4]);
   REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1671);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1718);
   }
   fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
   fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]);
   REGB1 = TAG_Bool((fra.me.REG[4]!=NIT_NULL) && VAL_ISA(fra.me.REG[4], COLOR_metamodel___static_type___MMType, ID_metamodel___static_type___MMType)) /*cast MMType*/;
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1671);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1718);
   }
-  /* ./syntax//typing.nit:1672 */
+  /* syntax/typing.nit:1719 */
   fra.me.REG[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   REGB1 = CALL_syntax___typing___AExpr___is_self(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
@@ -10546,9 +10745,9 @@ void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0, val_t p1){
     fra.me.REG[0] = CALL_metamodel___static_type___MMType___not_for_self(fra.me.REG[4])(fra.me.REG[4]);
     fra.me.REG[4] = fra.me.REG[0];
   }
-  /* ./syntax//typing.nit:1674 */
+  /* syntax/typing.nit:1721 */
   fra.me.REG[4] = CALL_syntax___typing___AReassignFormExpr___do_rvalue_typing(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//typing.nit:1675 */
+  /* syntax/typing.nit:1722 */
   REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -10564,19 +10763,19 @@ void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB1)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1676 */
+  /* syntax/typing.nit:1723 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[0] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[4], fra.me.REG[0]);
-  /* ./syntax//typing.nit:1678 */
+  /* syntax/typing.nit:1725 */
   ATTR_syntax___typing___ASendReassignExpr____read_prop(fra.me.REG[2]) = fra.me.REG[5];
-  /* ./syntax//typing.nit:1679 */
+  /* syntax/typing.nit:1726 */
   fra.me.REG[0] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./syntax//typing.nit:1680 */
+  /* syntax/typing.nit:1727 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  /* ./syntax//typing.nit:1682 */
+  /* syntax/typing.nit:1729 */
   fra.me.REG[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[0] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
@@ -10609,21 +10808,21 @@ void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0, val_t p1){
   fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
   CALL_syntax___typing___AAbsSendExpr___do_typing(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[0], REGB1, REGB0, fra.me.REG[4], fra.me.REG[3], NIT_NULL);
-  /* ./syntax//typing.nit:1683 */
+  /* syntax/typing.nit:1730 */
   REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1683);
+    nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1730);
   }
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[5])(fra.me.REG[5]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1684 */
+    /* syntax/typing.nit:1731 */
     fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
     REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:1685 */
+      /* syntax/typing.nit:1732 */
       REGB0 = TAG_Int(3);
       fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_8) {
@@ -10649,12 +10848,12 @@ void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0, val_t p1){
       fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
     } else {
-      /* ./syntax//typing.nit:1686 */
+      /* syntax/typing.nit:1733 */
       fra.me.REG[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
       REGB0 = CALL_syntax___typing___AExpr___is_self(fra.me.REG[3])(fra.me.REG[3]);
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//typing.nit:1687 */
+        /* syntax/typing.nit:1734 */
         REGB0 = TAG_Int(3);
         fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_10) {
@@ -10682,7 +10881,7 @@ void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0, val_t p1){
       }
     }
   }
-  /* ./syntax//typing.nit:1691 */
+  /* syntax/typing.nit:1738 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[2]) = REGB0;
   label1: while(0);
@@ -10695,7 +10894,7 @@ val_t syntax___typing___ABinopExpr___compute_raw_arguments(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1696;
+  fra.me.line = 1743;
   fra.me.meth = LOCATE_syntax___typing___ABinopExpr___compute_raw_arguments;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -10703,7 +10902,7 @@ val_t syntax___typing___ABinopExpr___compute_raw_arguments(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1696 */
+  /* syntax/typing.nit:1743 */
   REGB0 = TAG_Int(1);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   fra.me.REG[0] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[0])(fra.me.REG[0]);
@@ -10721,14 +10920,14 @@ val_t syntax___typing___AEqExpr___name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1699;
+  fra.me.line = 1746;
   fra.me.meth = LOCATE_syntax___typing___AEqExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1699 */
+  /* syntax/typing.nit:1746 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("==");
@@ -10757,7 +10956,7 @@ void syntax___typing___AEqExpr___after_typing(val_t p0, val_t p1){
       static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1700;
+  fra.me.line = 1747;
   fra.me.meth = LOCATE_syntax___typing___AEqExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -10768,12 +10967,12 @@ void syntax___typing___AEqExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1700 */
+  /* syntax/typing.nit:1747 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//typing.nit:1702 */
+  /* syntax/typing.nit:1749 */
   CALL_SUPER_syntax___typing___AEqExpr___after_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//typing.nit:1703 */
+  /* syntax/typing.nit:1750 */
   fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_syntax___syntax_base___AExpr___is_typed(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
@@ -10788,7 +10987,7 @@ void syntax___typing___AEqExpr___after_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1704 */
+  /* syntax/typing.nit:1751 */
   fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
@@ -10804,26 +11003,26 @@ void syntax___typing___AEqExpr___after_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(true);
   } else {
-    /* ./syntax//typing.nit:1705 */
+    /* syntax/typing.nit:1752 */
     fra.me.REG[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]);
     REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
-    /* ./syntax//typing.nit:1704 */
+    /* syntax/typing.nit:1751 */
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1705 */
+    /* syntax/typing.nit:1752 */
     fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   } else {
-    /* ./syntax//typing.nit:1704 */
+    /* syntax/typing.nit:1751 */
     REGB1 = TAG_Bool(false);
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1706 */
+    /* syntax/typing.nit:1753 */
     if (!once_value_2) {
       fra.me.REG[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
       REGB0 = TAG_Int(59);
@@ -10834,20 +11033,20 @@ void syntax___typing___AEqExpr___after_typing(val_t p0, val_t p1){
     fra.me.REG[1] = fra.me.REG[1];
     CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]);
   }
-  /* ./syntax//typing.nit:1709 */
+  /* syntax/typing.nit:1756 */
   fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1710 */
+    /* syntax/typing.nit:1757 */
     fra.me.REG[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:1711 */
+      /* syntax/typing.nit:1758 */
       if (!once_value_3) {
-        fra.me.REG[1] = BOX_NativeString("Warning: comparaison between 2 null values.");
-        REGB0 = TAG_Int(43);
+        fra.me.REG[1] = BOX_NativeString("Warning: comparaison between two null values.");
+        REGB0 = TAG_Int(45);
         fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
         once_value_3 = fra.me.REG[1];
         register_static_object(&once_value_3);
@@ -10855,17 +11054,17 @@ void syntax___typing___AEqExpr___after_typing(val_t p0, val_t p1){
       fra.me.REG[1] = fra.me.REG[1];
       CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]);
     } else {
-      /* ./syntax//typing.nit:1713 */
+      /* syntax/typing.nit:1760 */
       fra.me.REG[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]);
       CALL_syntax___typing___AEqExpr___try_to_isa(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[1]);
     }
   } else {
-    /* ./syntax//typing.nit:1715 */
+    /* syntax/typing.nit:1762 */
     fra.me.REG[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:1716 */
+      /* syntax/typing.nit:1763 */
       fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
       CALL_syntax___typing___AEqExpr___try_to_isa(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[1]);
     }
@@ -10881,7 +11080,7 @@ void syntax___typing___AEqExpr___try_to_isa(val_t p0, val_t p1, val_t p2){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1720;
+  fra.me.line = 1767;
   fra.me.meth = LOCATE_syntax___typing___AEqExpr___try_to_isa;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -10894,9 +11093,9 @@ void syntax___typing___AEqExpr___try_to_isa(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//typing.nit:1722 */
+  /* syntax/typing.nit:1769 */
   fra.me.REG[3] = CALL_syntax___typing___AExpr___its_variable(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:1723 */
+  /* syntax/typing.nit:1770 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -10918,13 +11117,13 @@ void syntax___typing___AEqExpr___try_to_isa(val_t p0, val_t p1, val_t p2){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1724 */
+    /* syntax/typing.nit:1771 */
     fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[2] = CALL_metamodel___static_type___MMType___as_notnull(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[2] = CALL_syntax___flow___FlowContext___sub_with(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
     ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra.me.REG[0]) = fra.me.REG[2];
-    /* ./syntax//typing.nit:1725 */
+    /* syntax/typing.nit:1772 */
     fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[1] = CALL_syntax___flow___FlowContext___sub_with(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[3], fra.me.REG[1]);
@@ -10941,14 +11140,14 @@ val_t syntax___typing___ANeExpr___name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1730;
+  fra.me.line = 1777;
   fra.me.meth = LOCATE_syntax___typing___ANeExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1730 */
+  /* syntax/typing.nit:1777 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("!=");
@@ -10977,7 +11176,7 @@ void syntax___typing___ANeExpr___after_typing(val_t p0, val_t p1){
       static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1731;
+  fra.me.line = 1778;
   fra.me.meth = LOCATE_syntax___typing___ANeExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -10988,12 +11187,12 @@ void syntax___typing___ANeExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1731 */
+  /* syntax/typing.nit:1778 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//typing.nit:1733 */
+  /* syntax/typing.nit:1780 */
   CALL_SUPER_syntax___typing___ANeExpr___after_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//typing.nit:1734 */
+  /* syntax/typing.nit:1781 */
   fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_syntax___syntax_base___AExpr___is_typed(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
@@ -11008,7 +11207,7 @@ void syntax___typing___ANeExpr___after_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1735 */
+  /* syntax/typing.nit:1782 */
   fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
@@ -11024,26 +11223,26 @@ void syntax___typing___ANeExpr___after_typing(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB0)) {
     REGB0 = TAG_Bool(true);
   } else {
-    /* ./syntax//typing.nit:1736 */
+    /* syntax/typing.nit:1783 */
     fra.me.REG[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]);
     REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
-    /* ./syntax//typing.nit:1735 */
+    /* syntax/typing.nit:1782 */
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1736 */
+    /* syntax/typing.nit:1783 */
     fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   } else {
-    /* ./syntax//typing.nit:1735 */
+    /* syntax/typing.nit:1782 */
     REGB1 = TAG_Bool(false);
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1737 */
+    /* syntax/typing.nit:1784 */
     if (!once_value_2) {
       fra.me.REG[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
       REGB0 = TAG_Int(59);
@@ -11054,20 +11253,20 @@ void syntax___typing___ANeExpr___after_typing(val_t p0, val_t p1){
     fra.me.REG[1] = fra.me.REG[1];
     CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]);
   }
-  /* ./syntax//typing.nit:1740 */
+  /* syntax/typing.nit:1787 */
   fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1741 */
+    /* syntax/typing.nit:1788 */
     fra.me.REG[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:1742 */
+      /* syntax/typing.nit:1789 */
       if (!once_value_3) {
-        fra.me.REG[1] = BOX_NativeString("Warning: comparaison between 2 null values.");
-        REGB0 = TAG_Int(43);
+        fra.me.REG[1] = BOX_NativeString("Warning: comparaison between two null values.");
+        REGB0 = TAG_Int(45);
         fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
         once_value_3 = fra.me.REG[1];
         register_static_object(&once_value_3);
@@ -11075,17 +11274,17 @@ void syntax___typing___ANeExpr___after_typing(val_t p0, val_t p1){
       fra.me.REG[1] = fra.me.REG[1];
       CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]);
     } else {
-      /* ./syntax//typing.nit:1744 */
+      /* syntax/typing.nit:1791 */
       fra.me.REG[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]);
       CALL_syntax___typing___ANeExpr___try_to_isa(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[1]);
     }
   } else {
-    /* ./syntax//typing.nit:1746 */
+    /* syntax/typing.nit:1793 */
     fra.me.REG[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:1747 */
+      /* syntax/typing.nit:1794 */
       fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
       CALL_syntax___typing___ANeExpr___try_to_isa(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[1]);
     }
@@ -11101,7 +11300,7 @@ void syntax___typing___ANeExpr___try_to_isa(val_t p0, val_t p1, val_t p2){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1751;
+  fra.me.line = 1798;
   fra.me.meth = LOCATE_syntax___typing___ANeExpr___try_to_isa;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -11114,9 +11313,9 @@ void syntax___typing___ANeExpr___try_to_isa(val_t p0, val_t p1, val_t p2){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//typing.nit:1753 */
+  /* syntax/typing.nit:1800 */
   fra.me.REG[3] = CALL_syntax___typing___AExpr___its_variable(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:1754 */
+  /* syntax/typing.nit:1801 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -11138,13 +11337,13 @@ void syntax___typing___ANeExpr___try_to_isa(val_t p0, val_t p1, val_t p2){
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1755 */
+    /* syntax/typing.nit:1802 */
     fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[2] = CALL_metamodel___static_type___MMType___as_notnull(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[2] = CALL_syntax___flow___FlowContext___sub_with(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
     ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra.me.REG[0]) = fra.me.REG[2];
-    /* ./syntax//typing.nit:1756 */
+    /* syntax/typing.nit:1803 */
     fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[1] = CALL_syntax___flow___FlowContext___sub_with(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[3], fra.me.REG[1]);
@@ -11161,14 +11360,14 @@ val_t syntax___typing___ALtExpr___name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1761;
+  fra.me.line = 1808;
   fra.me.meth = LOCATE_syntax___typing___ALtExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1761 */
+  /* syntax/typing.nit:1808 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("<");
@@ -11196,14 +11395,14 @@ val_t syntax___typing___ALeExpr___name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1764;
+  fra.me.line = 1811;
   fra.me.meth = LOCATE_syntax___typing___ALeExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1764 */
+  /* syntax/typing.nit:1811 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("<=");
@@ -11231,14 +11430,14 @@ val_t syntax___typing___ALlExpr___name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1767;
+  fra.me.line = 1814;
   fra.me.meth = LOCATE_syntax___typing___ALlExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1767 */
+  /* syntax/typing.nit:1814 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("<<");
@@ -11266,14 +11465,14 @@ val_t syntax___typing___AGtExpr___name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1770;
+  fra.me.line = 1817;
   fra.me.meth = LOCATE_syntax___typing___AGtExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1770 */
+  /* syntax/typing.nit:1817 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString(">");
@@ -11301,14 +11500,14 @@ val_t syntax___typing___AGeExpr___name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1773;
+  fra.me.line = 1820;
   fra.me.meth = LOCATE_syntax___typing___AGeExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1773 */
+  /* syntax/typing.nit:1820 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString(">=");
@@ -11336,14 +11535,14 @@ val_t syntax___typing___AGgExpr___name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1776;
+  fra.me.line = 1823;
   fra.me.meth = LOCATE_syntax___typing___AGgExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1776 */
+  /* syntax/typing.nit:1823 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString(">>");
@@ -11371,14 +11570,14 @@ val_t syntax___typing___APlusExpr___name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1779;
+  fra.me.line = 1826;
   fra.me.meth = LOCATE_syntax___typing___APlusExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1779 */
+  /* syntax/typing.nit:1826 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("+");
@@ -11406,14 +11605,14 @@ val_t syntax___typing___AMinusExpr___name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1782;
+  fra.me.line = 1829;
   fra.me.meth = LOCATE_syntax___typing___AMinusExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1782 */
+  /* syntax/typing.nit:1829 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("-");
@@ -11441,14 +11640,14 @@ val_t syntax___typing___AStarshipExpr___name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1785;
+  fra.me.line = 1832;
   fra.me.meth = LOCATE_syntax___typing___AStarshipExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1785 */
+  /* syntax/typing.nit:1832 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("<=>");
@@ -11476,14 +11675,14 @@ val_t syntax___typing___AStarExpr___name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1788;
+  fra.me.line = 1835;
   fra.me.meth = LOCATE_syntax___typing___AStarExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1788 */
+  /* syntax/typing.nit:1835 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("*");
@@ -11511,14 +11710,14 @@ val_t syntax___typing___ASlashExpr___name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1791;
+  fra.me.line = 1838;
   fra.me.meth = LOCATE_syntax___typing___ASlashExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1791 */
+  /* syntax/typing.nit:1838 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("/");
@@ -11546,14 +11745,14 @@ val_t syntax___typing___APercentExpr___name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1794;
+  fra.me.line = 1841;
   fra.me.meth = LOCATE_syntax___typing___APercentExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1794 */
+  /* syntax/typing.nit:1841 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("%");
@@ -11581,14 +11780,14 @@ val_t syntax___typing___AUminusExpr___name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1798;
+  fra.me.line = 1845;
   fra.me.meth = LOCATE_syntax___typing___AUminusExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1798 */
+  /* syntax/typing.nit:1845 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("unary -");
@@ -11613,14 +11812,14 @@ val_t syntax___typing___AUminusExpr___compute_raw_arguments(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1799;
+  fra.me.line = 1846;
   fra.me.meth = LOCATE_syntax___typing___AUminusExpr___compute_raw_arguments;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1799 */
+  /* syntax/typing.nit:1846 */
   fra.me.REG[0] = NIT_NULL;
   goto label1;
   label1: while(0);
@@ -11636,7 +11835,7 @@ void syntax___typing___ACallFormExpr___after_typing(val_t p0, val_t p1){
           static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1803;
+  fra.me.line = 1850;
   fra.me.meth = LOCATE_syntax___typing___ACallFormExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 9;
@@ -11652,20 +11851,20 @@ void syntax___typing___ACallFormExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1803 */
+  /* syntax/typing.nit:1850 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//typing.nit:1805 */
+  /* syntax/typing.nit:1852 */
   fra.me.REG[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_syntax___typing___AExpr___is_implicit_self(fra.me.REG[4])(fra.me.REG[4]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1806 */
+    /* syntax/typing.nit:1853 */
     fra.me.REG[4] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
-    /* ./syntax//typing.nit:1807 */
+    /* syntax/typing.nit:1854 */
     fra.me.REG[5] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[3])(fra.me.REG[3]);
     fra.me.REG[5] = CALL_syntax___scope___ScopeContext_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
-    /* ./syntax//typing.nit:1808 */
+    /* syntax/typing.nit:1855 */
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -11680,23 +11879,31 @@ void syntax___typing___ACallFormExpr___after_typing(val_t p0, val_t p1){
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:1810 */
+      /* syntax/typing.nit:1857 */
       REGB0 = TAG_Bool((fra.me.REG[5]!=NIT_NULL) && VAL_ISA(fra.me.REG[5], COLOR_syntax___syntax_base___ClosureVariable, ID_syntax___syntax_base___ClosureVariable)) /*cast ClosureVariable*/;
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//typing.nit:1811 */
+        /* syntax/typing.nit:1858 */
         fra.me.REG[6] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra.me.REG[2])(fra.me.REG[2]);
         fra.me.REG[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra.me.REG[2])(fra.me.REG[2]);
         fra.me.REG[8] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra.me.REG[2])(fra.me.REG[2]);
         fra.me.REG[8] = NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(fra.me.REG[6], fra.me.REG[7], fra.me.REG[8]);
-        /* ./syntax//typing.nit:1812 */
+        /* syntax/typing.nit:1859 */
         ATTR_syntax___typing___AClosureCallExpr____variable(fra.me.REG[8]) = fra.me.REG[5];
       } else {
-        /* ./syntax//typing.nit:1814 */
+        /* syntax/typing.nit:1861 */
         fra.me.REG[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra.me.REG[2])(fra.me.REG[2]);
+        fra.me.REG[7] = CALL_parser___parser_nodes___AExprs___n_exprs(fra.me.REG[7])(fra.me.REG[7]);
         REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[7])(fra.me.REG[7]);
         REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
         if (UNTAG_Bool(REGB0)) {
-          /* ./syntax//typing.nit:1815 */
+          REGB0 = TAG_Bool(true);
+        } else {
+          fra.me.REG[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra.me.REG[2])(fra.me.REG[2]);
+          REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[7], COLOR_parser___parser_nodes___AParExprs, ID_parser___parser_nodes___AParExprs)) /*cast AParExprs*/;
+          REGB0 = REGB1;
+        }
+        if (UNTAG_Bool(REGB0)) {
+          /* syntax/typing.nit:1862 */
           REGB0 = TAG_Int(3);
           fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
           if (!once_value_1) {
@@ -11721,24 +11928,24 @@ void syntax___typing___ACallFormExpr___after_typing(val_t p0, val_t p1){
           CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
           fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
           CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
-          /* ./syntax//typing.nit:1816 */
+          /* syntax/typing.nit:1863 */
           goto label3;
         }
-        /* ./syntax//typing.nit:1818 */
+        /* syntax/typing.nit:1865 */
         fra.me.REG[7] = CALL_syntax___typing___ACallFormExpr___variable_create(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
         fra.me.REG[8] = fra.me.REG[7];
-        /* ./syntax//typing.nit:1819 */
+        /* syntax/typing.nit:1866 */
         ATTR_syntax___typing___AVarFormExpr____variable(fra.me.REG[8]) = fra.me.REG[5];
       }
-      /* ./syntax//typing.nit:1821 */
+      /* syntax/typing.nit:1868 */
       CALL_parser___parser_prod___ANode___replace_with(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
-      /* ./syntax//typing.nit:1822 */
+      /* syntax/typing.nit:1869 */
       CALL_syntax___typing___ANode___after_typing(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
-      /* ./syntax//typing.nit:1823 */
+      /* syntax/typing.nit:1870 */
       goto label3;
     }
   }
-  /* ./syntax//typing.nit:1827 */
+  /* syntax/typing.nit:1874 */
   CALL_SUPER_syntax___typing___ACallFormExpr___after_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   label3: while(0);
   stack_frame_head = fra.me.prev;
@@ -11750,7 +11957,7 @@ val_t syntax___typing___ACallFormExpr___closure_defs(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1830;
+  fra.me.line = 1877;
   fra.me.meth = LOCATE_syntax___typing___ACallFormExpr___closure_defs;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -11758,15 +11965,15 @@ val_t syntax___typing___ACallFormExpr___closure_defs(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1832 */
+  /* syntax/typing.nit:1879 */
   fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1833 */
+    /* syntax/typing.nit:1880 */
     fra.me.REG[1] = NIT_NULL;
     goto label1;
   } else {
-    /* ./syntax//typing.nit:1835 */
+    /* syntax/typing.nit:1882 */
     fra.me.REG[0] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[0] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = fra.me.REG[0];
@@ -11781,13 +11988,13 @@ val_t syntax___typing___ACallFormExpr___variable_create(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1839;
+  fra.me.line = 1886;
   fra.me.meth = LOCATE_syntax___typing___ACallFormExpr___variable_create;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//typing.nit:1839 */
-  nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 1839);
+  /* syntax/typing.nit:1886 */
+  nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 1886);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
@@ -11796,7 +12003,7 @@ val_t syntax___typing___ACallExpr___variable_create(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1844;
+  fra.me.line = 1891;
   fra.me.meth = LOCATE_syntax___typing___ACallExpr___variable_create;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -11805,7 +12012,7 @@ val_t syntax___typing___ACallExpr___variable_create(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1846 */
+  /* syntax/typing.nit:1893 */
   fra.me.REG[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = NEW_AVarExpr_parser___parser_prod___AVarExpr___init_avarexpr(fra.me.REG[0]);
   goto label1;
@@ -11818,14 +12025,14 @@ val_t syntax___typing___ACallExpr___name(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1849;
+  fra.me.line = 1896;
   fra.me.meth = LOCATE_syntax___typing___ACallExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1849 */
+  /* syntax/typing.nit:1896 */
   fra.me.REG[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -11838,16 +12045,16 @@ val_t syntax___typing___ACallExpr___compute_raw_arguments(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1850;
+  fra.me.line = 1897;
   fra.me.meth = LOCATE_syntax___typing___ACallExpr___compute_raw_arguments;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1850 */
+  /* syntax/typing.nit:1897 */
   fra.me.REG[0] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[0] = CALL_syntax___syntax_base___AExprs___to_a(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -11858,7 +12065,7 @@ val_t syntax___typing___ACallAssignExpr___variable_create(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1854;
+  fra.me.line = 1901;
   fra.me.meth = LOCATE_syntax___typing___ACallAssignExpr___variable_create;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -11868,7 +12075,7 @@ val_t syntax___typing___ACallAssignExpr___variable_create(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1856 */
+  /* syntax/typing.nit:1903 */
   fra.me.REG[1] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_assign(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]);
@@ -11885,7 +12092,7 @@ val_t syntax___typing___ACallAssignExpr___name(val_t p0){
   static val_t once_value_1; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1859;
+  fra.me.line = 1906;
   fra.me.meth = LOCATE_syntax___typing___ACallAssignExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -11893,9 +12100,9 @@ val_t syntax___typing___ACallAssignExpr___name(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1859 */
+  /* syntax/typing.nit:1906 */
   fra.me.REG[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_parser___lexer___Token___text(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
   if (!once_value_1) {
     fra.me.REG[1] = BOX_NativeString("=");
     REGB0 = TAG_Int(1);
@@ -11916,7 +12123,7 @@ val_t syntax___typing___ACallAssignExpr___compute_raw_arguments(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1860;
+  fra.me.line = 1907;
   fra.me.meth = LOCATE_syntax___typing___ACallAssignExpr___compute_raw_arguments;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -11924,13 +12131,13 @@ val_t syntax___typing___ACallAssignExpr___compute_raw_arguments(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1861 */
+  /* syntax/typing.nit:1908 */
   fra.me.REG[1] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[1] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:1862 */
+  fra.me.REG[1] = CALL_syntax___syntax_base___AExprs___to_a(fra.me.REG[1])(fra.me.REG[1]);
+  /* syntax/typing.nit:1909 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./syntax//typing.nit:1863 */
+  /* syntax/typing.nit:1910 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -11941,7 +12148,7 @@ val_t syntax___typing___ACallReassignExpr___variable_create(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1868;
+  fra.me.line = 1915;
   fra.me.meth = LOCATE_syntax___typing___ACallReassignExpr___variable_create;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -11951,7 +12158,7 @@ val_t syntax___typing___ACallReassignExpr___variable_create(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1870 */
+  /* syntax/typing.nit:1917 */
   fra.me.REG[1] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]);
@@ -11966,14 +12173,14 @@ val_t syntax___typing___ACallReassignExpr___name(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1873;
+  fra.me.line = 1920;
   fra.me.meth = LOCATE_syntax___typing___ACallReassignExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1873 */
+  /* syntax/typing.nit:1920 */
   fra.me.REG[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -11986,16 +12193,16 @@ val_t syntax___typing___ACallReassignExpr___compute_raw_arguments(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1874;
+  fra.me.line = 1921;
   fra.me.meth = LOCATE_syntax___typing___ACallReassignExpr___compute_raw_arguments;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1874 */
+  /* syntax/typing.nit:1921 */
   fra.me.REG[0] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[0] = CALL_syntax___syntax_base___AExprs___to_a(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -12009,14 +12216,14 @@ val_t syntax___typing___ABraExpr___name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1878;
+  fra.me.line = 1925;
   fra.me.meth = LOCATE_syntax___typing___ABraExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1878 */
+  /* syntax/typing.nit:1925 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("[]");
@@ -12041,16 +12248,16 @@ val_t syntax___typing___ABraExpr___compute_raw_arguments(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1879;
+  fra.me.line = 1926;
   fra.me.meth = LOCATE_syntax___typing___ABraExpr___compute_raw_arguments;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1879 */
+  /* syntax/typing.nit:1926 */
   fra.me.REG[0] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[0] = CALL_syntax___syntax_base___AExprs___to_a(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -12062,7 +12269,7 @@ val_t syntax___typing___ABraExpr___closure_defs(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1880;
+  fra.me.line = 1927;
   fra.me.meth = LOCATE_syntax___typing___ABraExpr___closure_defs;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -12070,15 +12277,15 @@ val_t syntax___typing___ABraExpr___closure_defs(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1882 */
+  /* syntax/typing.nit:1929 */
   fra.me.REG[1] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1883 */
+    /* syntax/typing.nit:1930 */
     fra.me.REG[1] = NIT_NULL;
     goto label1;
   } else {
-    /* ./syntax//typing.nit:1885 */
+    /* syntax/typing.nit:1932 */
     fra.me.REG[0] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[0] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = fra.me.REG[0];
@@ -12096,14 +12303,14 @@ val_t syntax___typing___ABraAssignExpr___name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1891;
+  fra.me.line = 1938;
   fra.me.meth = LOCATE_syntax___typing___ABraAssignExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1891 */
+  /* syntax/typing.nit:1938 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("[]=");
@@ -12128,7 +12335,7 @@ val_t syntax___typing___ABraAssignExpr___compute_raw_arguments(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1892;
+  fra.me.line = 1939;
   fra.me.meth = LOCATE_syntax___typing___ABraAssignExpr___compute_raw_arguments;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -12136,13 +12343,13 @@ val_t syntax___typing___ABraAssignExpr___compute_raw_arguments(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1893 */
+  /* syntax/typing.nit:1940 */
   fra.me.REG[1] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[1] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:1894 */
+  fra.me.REG[1] = CALL_syntax___syntax_base___AExprs___to_a(fra.me.REG[1])(fra.me.REG[1]);
+  /* syntax/typing.nit:1941 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./syntax//typing.nit:1895 */
+  /* syntax/typing.nit:1942 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -12156,14 +12363,14 @@ val_t syntax___typing___ABraReassignExpr___name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1900;
+  fra.me.line = 1947;
   fra.me.meth = LOCATE_syntax___typing___ABraReassignExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1900 */
+  /* syntax/typing.nit:1947 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("[]");
@@ -12188,16 +12395,16 @@ val_t syntax___typing___ABraReassignExpr___compute_raw_arguments(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1901;
+  fra.me.line = 1948;
   fra.me.meth = LOCATE_syntax___typing___ABraReassignExpr___compute_raw_arguments;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1901 */
+  /* syntax/typing.nit:1948 */
   fra.me.REG[0] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[0] = CALL_syntax___syntax_base___AExprs___to_a(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -12211,14 +12418,14 @@ val_t syntax___typing___AInitExpr___name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1905;
+  fra.me.line = 1952;
   fra.me.meth = LOCATE_syntax___typing___AInitExpr___name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1905 */
+  /* syntax/typing.nit:1952 */
   if (!once_value_1) {
     if (!once_value_2) {
       fra.me.REG[0] = BOX_NativeString("init");
@@ -12243,16 +12450,16 @@ val_t syntax___typing___AInitExpr___compute_raw_arguments(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1906;
+  fra.me.line = 1953;
   fra.me.meth = LOCATE_syntax___typing___AInitExpr___compute_raw_arguments;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1906 */
+  /* syntax/typing.nit:1953 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AInitExpr___n_args(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[0] = CALL_syntax___syntax_base___AExprs___to_a(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -12264,7 +12471,7 @@ val_t syntax___typing___AClosureCallExpr___variable(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1911;
+  fra.me.line = 1958;
   fra.me.meth = LOCATE_syntax___typing___AClosureCallExpr___variable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -12272,13 +12479,13 @@ val_t syntax___typing___AClosureCallExpr___variable(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1911 */
+  /* syntax/typing.nit:1958 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_syntax___typing___AClosureCallExpr____variable(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1911);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1958);
   }
   goto label1;
   label1: while(0);
@@ -12290,16 +12497,16 @@ val_t syntax___typing___AClosureCallExpr___compute_raw_arguments(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1912;
+  fra.me.line = 1959;
   fra.me.meth = LOCATE_syntax___typing___AClosureCallExpr___compute_raw_arguments;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1912 */
+  /* syntax/typing.nit:1959 */
   fra.me.REG[0] = CALL_parser___parser_nodes___AClosureCallExpr___n_args(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[0] = CALL_syntax___syntax_base___AExprs___to_a(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
@@ -12312,7 +12519,7 @@ void syntax___typing___AClosureCallExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1914;
+  fra.me.line = 1961;
   fra.me.meth = LOCATE_syntax___typing___AClosureCallExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -12324,45 +12531,45 @@ void syntax___typing___AClosureCallExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1916 */
+  /* syntax/typing.nit:1963 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./syntax//typing.nit:1917 */
+  /* syntax/typing.nit:1964 */
   fra.me.REG[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_metamodel___static_type___MMClosure___is_break(fra.me.REG[3])(fra.me.REG[3]);
   if (UNTAG_Bool(REGB0)) {
     CALL_syntax___typing___TypingVisitor___mark_unreash(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
-  /* ./syntax//typing.nit:1918 */
+  /* syntax/typing.nit:1965 */
   fra.me.REG[2] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:1919 */
+  /* syntax/typing.nit:1966 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AClosureCallExpr___n_id(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[4] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___typing___AAbsAbsSendExpr___process_signature(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
-  /* ./syntax//typing.nit:1920 */
+  /* syntax/typing.nit:1967 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]);
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
   if (UNTAG_Bool(REGB1)) {
-    /* ./syntax//typing.nit:1921 */
+    /* syntax/typing.nit:1968 */
     fra.me.REG[4] = CALL_parser___parser_nodes___AClosureCallExpr___n_id(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
     fra.me.REG[3] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[3] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[3])(fra.me.REG[3]);
     CALL_syntax___typing___AAbsAbsSendExpr___process_closures(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[4], fra.me.REG[3]);
   }
-  /* ./syntax//typing.nit:1923 */
+  /* syntax/typing.nit:1970 */
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1924 */
+  /* syntax/typing.nit:1971 */
   ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./syntax//typing.nit:1925 */
+  /* syntax/typing.nit:1972 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[2])(fra.me.REG[2]);
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./syntax//typing.nit:1926 */
+  /* syntax/typing.nit:1973 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   label1: while(0);
@@ -12374,13 +12581,13 @@ val_t syntax___typing___AClosureId___to_symbol(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1931;
+  fra.me.line = 1978;
   fra.me.meth = LOCATE_syntax___typing___AClosureId___to_symbol;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./syntax//typing.nit:1931 */
-  nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 1931);
+  /* syntax/typing.nit:1978 */
+  nit_abort("Deferred method called", NULL, LOCATE_syntax___typing, 1978);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
@@ -12389,14 +12596,14 @@ val_t syntax___typing___ASimpleClosureId___to_symbol(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1934;
+  fra.me.line = 1981;
   fra.me.meth = LOCATE_syntax___typing___ASimpleClosureId___to_symbol;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1934 */
+  /* syntax/typing.nit:1981 */
   fra.me.REG[0] = CALL_parser___parser_nodes___ASimpleClosureId___n_id(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -12409,14 +12616,14 @@ val_t syntax___typing___ABreakClosureId___to_symbol(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1937;
+  fra.me.line = 1984;
   fra.me.meth = LOCATE_syntax___typing___ABreakClosureId___to_symbol;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1937 */
+  /* syntax/typing.nit:1984 */
   fra.me.REG[0] = CALL_parser___parser_nodes___ABreakClosureId___n_kwbreak(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
@@ -12430,7 +12637,7 @@ val_t syntax___typing___AClosureDef___closure(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1942;
+  fra.me.line = 1989;
   fra.me.meth = LOCATE_syntax___typing___AClosureDef___closure;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -12438,13 +12645,13 @@ val_t syntax___typing___AClosureDef___closure(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1942 */
+  /* syntax/typing.nit:1989 */
   fra.me.REG[1] = fra.me.REG[0];
   fra.me.REG[1] = ATTR_syntax___typing___AClosureDef____closure(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1942);
+    nit_abort("Cast failed", NULL, LOCATE_syntax___typing, 1989);
   }
   goto label1;
   label1: while(0);
@@ -12456,14 +12663,14 @@ val_t syntax___typing___AClosureDef___escapable(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1944;
+  fra.me.line = 1991;
   fra.me.meth = LOCATE_syntax___typing___AClosureDef___escapable;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./syntax//typing.nit:1944 */
+  /* syntax/typing.nit:1991 */
   fra.me.REG[0] = ATTR_syntax___typing___AClosureDef____escapable(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
@@ -12474,7 +12681,7 @@ void syntax___typing___AClosureDef___accept_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1948;
+  fra.me.line = 1995;
   fra.me.meth = LOCATE_syntax___typing___AClosureDef___accept_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -12484,13 +12691,13 @@ void syntax___typing___AClosureDef___accept_typing(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:1948 */
+  /* syntax/typing.nit:1995 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./syntax//typing.nit:1951 */
+  /* syntax/typing.nit:1998 */
   REGB0 = TAG_Bool(ATTR_syntax___typing___AClosureDef____accept_typing2(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_accept_typing2", LOCATE_syntax___typing, 1951);
+    nit_abort("Uninitialized attribute %s", "_accept_typing2", LOCATE_syntax___typing, 1998);
   }
   REGB0 = ATTR_syntax___typing___AClosureDef____accept_typing2(fra.me.REG[2]);
   if (UNTAG_Bool(REGB0)) {
@@ -12513,7 +12720,7 @@ void syntax___typing___AClosureDef___accept_typing2(val_t p0, val_t p1, val_t p2
         static val_t once_value_7; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1954;
+  fra.me.line = 2001;
   fra.me.meth = LOCATE_syntax___typing___AClosureDef___accept_typing2;
   fra.me.has_broke = 0;
   fra.me.REG_size = 8;
@@ -12529,26 +12736,26 @@ void syntax___typing___AClosureDef___accept_typing2(val_t p0, val_t p1, val_t p2
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./syntax//typing.nit:1956 */
+  /* syntax/typing.nit:2003 */
   ATTR_syntax___typing___AClosureDef____escapable(fra.me.REG[0]) = fra.me.REG[2];
-  /* ./syntax//typing.nit:1958 */
+  /* syntax/typing.nit:2005 */
   fra.me.REG[3] = CALL_syntax___scope___EscapableClosure___closure(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//typing.nit:1959 */
+  /* syntax/typing.nit:2006 */
   REGB0 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[4] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:227 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./syntax//typing.nit:1959 */
+    /* syntax/typing.nit:2006 */
     REGB2 = REGB1;
   }
   REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
   if (UNTAG_Bool(REGB2)) {
-    /* ./syntax//typing.nit:1960 */
+    /* syntax/typing.nit:2007 */
     REGB2 = TAG_Int(5);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
     if (!once_value_1) {
@@ -12587,97 +12794,97 @@ void syntax___typing___AClosureDef___accept_typing2(val_t p0, val_t p1, val_t p2
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
-    /* ./syntax//typing.nit:1961 */
+    /* syntax/typing.nit:2008 */
     goto label4;
   }
-  /* ./syntax//typing.nit:1964 */
+  /* syntax/typing.nit:2011 */
   fra.me.REG[4] = CALL_syntax___scope___EscapableClosure___closure(fra.me.REG[2])(fra.me.REG[2]);
   ATTR_syntax___typing___AClosureDef____closure(fra.me.REG[0]) = fra.me.REG[4];
-  /* ./syntax//typing.nit:1966 */
+  /* syntax/typing.nit:2013 */
   fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]);
   CALL_syntax___scope___ScopeContext___push(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
-  /* ./syntax//typing.nit:1967 */
+  /* syntax/typing.nit:2014 */
   fra.me.REG[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:1968 */
+  /* syntax/typing.nit:2015 */
   fra.me.REG[5] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./syntax//typing.nit:1969 */
+  /* syntax/typing.nit:2016 */
   fra.me.REG[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
   CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-  /* ./syntax//typing.nit:1970 */
+  /* syntax/typing.nit:2017 */
   fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
   CALL_syntax___syntax_base___AClosureDef___variables__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
-  /* ./syntax//typing.nit:1971 */
+  /* syntax/typing.nit:2018 */
   REGB2 = TAG_Int(0);
   fra.me.REG[6] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[6])(fra.me.REG[6]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:352 */
   while(1) {
     REGB0 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB0)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:352 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:1971 */
+      /* syntax/typing.nit:2018 */
       REGB0 = REGB2;
-      /* ./syntax//typing.nit:1972 */
+      /* syntax/typing.nit:2019 */
       fra.me.REG[6] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[6] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[6])(fra.me.REG[6], REGB0);
       REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1972);
+        nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 2019);
       }
       fra.me.REG[6] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
       fra.me.REG[7] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra.me.REG[0])(fra.me.REG[0]);
       fra.me.REG[7] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[7])(fra.me.REG[7], REGB0);
       fra.me.REG[7] = NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(fra.me.REG[6], fra.me.REG[7]);
-      /* ./syntax//typing.nit:1973 */
+      /* syntax/typing.nit:2020 */
       fra.me.REG[6] = CALL_syntax___syntax_base___AClosureDef___variables(fra.me.REG[0])(fra.me.REG[0]);
       REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB3)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 1973);
+        nit_abort("Reciever is null", NULL, LOCATE_syntax___typing, 2020);
       }
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-      /* ./syntax//typing.nit:1974 */
+      /* syntax/typing.nit:2021 */
       fra.me.REG[6] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[3])(fra.me.REG[3], REGB0);
       CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
-      /* ./syntax//typing.nit:1975 */
+      /* syntax/typing.nit:2022 */
       fra.me.REG[6] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]);
       CALL_syntax___scope___ScopeContext___add_variable(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:354 */
       REGB2 = REGB0;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:352 */
       goto label5;
     }
   }
   label5: while(0);
-  /* ./syntax//typing.nit:1978 */
+  /* syntax/typing.nit:2025 */
   REGB2 = TAG_Bool(true);
   ATTR_syntax___typing___AClosureDef____accept_typing2(fra.me.REG[0]) = REGB2;
-  /* ./syntax//typing.nit:1979 */
+  /* syntax/typing.nit:2026 */
   CALL_syntax___typing___ANode___accept_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//typing.nit:1981 */
+  /* syntax/typing.nit:2028 */
   fra.me.REG[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
   REGB2 = CALL_syntax___flow___FlowContext___unreash(fra.me.REG[3])(fra.me.REG[3]);
   REGB1 = TAG_Bool(false);
   REGB0 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
   if (UNTAG_Bool(REGB0)) {
   } else {
-    /* ./../lib/standard//kernel.nit:195 */
+    /* ../lib/standard/kernel.nit:195 */
     REGB1 = TAG_Bool((REGB2)==(REGB1));
-    /* ./syntax//typing.nit:1981 */
+    /* syntax/typing.nit:2028 */
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:1982 */
+    /* syntax/typing.nit:2029 */
     fra.me.REG[3] = CALL_syntax___syntax_base___AClosureDef___closure(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[3] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[3])(fra.me.REG[3]);
     fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[3])(fra.me.REG[3]);
@@ -12695,7 +12902,7 @@ void syntax___typing___AClosureDef___accept_typing2(val_t p0, val_t p1, val_t p2
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:1983 */
+      /* syntax/typing.nit:2030 */
       if (!once_value_6) {
         fra.me.REG[3] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
         REGB0 = TAG_Int(77);
@@ -12706,7 +12913,7 @@ void syntax___typing___AClosureDef___accept_typing2(val_t p0, val_t p1, val_t p2
       fra.me.REG[3] = fra.me.REG[3];
       CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
     } else {
-      /* ./syntax//typing.nit:1984 */
+      /* syntax/typing.nit:2031 */
       fra.me.REG[3] = CALL_syntax___syntax_base___AClosureDef___closure(fra.me.REG[0])(fra.me.REG[0]);
       REGB0 = CALL_metamodel___static_type___MMClosure___is_break(fra.me.REG[3])(fra.me.REG[3]);
       if (UNTAG_Bool(REGB0)) {
@@ -12729,7 +12936,7 @@ void syntax___typing___AClosureDef___accept_typing2(val_t p0, val_t p1, val_t p2
         REGB0 = REGB1;
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//typing.nit:1985 */
+        /* syntax/typing.nit:2032 */
         if (!once_value_7) {
           fra.me.REG[2] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
           REGB0 = TAG_Int(80);
@@ -12742,11 +12949,11 @@ void syntax___typing___AClosureDef___accept_typing2(val_t p0, val_t p1, val_t p2
       }
     }
   }
-  /* ./syntax//typing.nit:1988 */
+  /* syntax/typing.nit:2035 */
   CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./syntax//typing.nit:1989 */
+  /* syntax/typing.nit:2036 */
   CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./syntax//typing.nit:1990 */
+  /* syntax/typing.nit:2037 */
   fra.me.REG[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra.me.REG[1])(fra.me.REG[1]);
   CALL_syntax___scope___ScopeContext___pop(fra.me.REG[1])(fra.me.REG[1]);
   label4: while(0);
@@ -12769,7 +12976,7 @@ void syntax___typing___ATypeCheckExpr___check_expr_cast(val_t p0, val_t p1, val_
               static val_t once_value_10; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 1996;
+  fra.me.line = 2043;
   fra.me.meth = LOCATE_syntax___typing___ATypeCheckExpr___check_expr_cast;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -12784,23 +12991,23 @@ void syntax___typing___ATypeCheckExpr___check_expr_cast(val_t p0, val_t p1, val_
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
   fra.me.REG[3] = p3;
-  /* ./syntax//typing.nit:1998 */
+  /* syntax/typing.nit:2045 */
   REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:1999 */
+  /* syntax/typing.nit:2046 */
   REGB0 = CALL_syntax___syntax_base___AType___is_typed(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:2000 */
+  /* syntax/typing.nit:2047 */
   fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:2001 */
+  /* syntax/typing.nit:2048 */
   fra.me.REG[3] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//typing.nit:2002 */
+  /* syntax/typing.nit:2049 */
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -12808,7 +13015,7 @@ void syntax___typing___ATypeCheckExpr___check_expr_cast(val_t p0, val_t p1, val_
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:2003 */
+    /* syntax/typing.nit:2050 */
     REGB0 = TAG_Int(3);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_2) {
@@ -12834,10 +13041,10 @@ void syntax___typing___ATypeCheckExpr___check_expr_cast(val_t p0, val_t p1, val_
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
   } else {
-    /* ./syntax//typing.nit:2004 */
+    /* syntax/typing.nit:2051 */
     REGB0 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:2005 */
+      /* syntax/typing.nit:2052 */
       REGB0 = TAG_Int(5);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_4) {
@@ -12874,10 +13081,10 @@ void syntax___typing___ATypeCheckExpr___check_expr_cast(val_t p0, val_t p1, val_
       fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
       CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
     } else {
-      /* ./syntax//typing.nit:2006 */
+      /* syntax/typing.nit:2053 */
       REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
       if (UNTAG_Bool(REGB0)) {
-        /* ./syntax//typing.nit:2008 */
+        /* syntax/typing.nit:2055 */
         REGB0 = TAG_Int(3);
         fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_7) {
@@ -12903,7 +13110,7 @@ void syntax___typing___ATypeCheckExpr___check_expr_cast(val_t p0, val_t p1, val_
         fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
         CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
       } else {
-        /* ./syntax//typing.nit:2009 */
+        /* syntax/typing.nit:2056 */
         REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[2])(fra.me.REG[2]);
         if (UNTAG_Bool(REGB0)) {
           fra.me.REG[2] = CALL_metamodel___static_type___MMType___as_notnull(fra.me.REG[2])(fra.me.REG[2]);
@@ -12918,7 +13125,7 @@ void syntax___typing___ATypeCheckExpr___check_expr_cast(val_t p0, val_t p1, val_
           REGB0 = REGB1;
         }
         if (UNTAG_Bool(REGB0)) {
-          /* ./syntax//typing.nit:2010 */
+          /* syntax/typing.nit:2057 */
           REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_metamodel___type_formal___MMTypeFormal, ID_metamodel___type_formal___MMTypeFormal)) /*cast MMTypeFormal*/;
           if (UNTAG_Bool(REGB0)) {
             fra.me.REG[3] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[3])(fra.me.REG[3]);
@@ -12929,10 +13136,10 @@ void syntax___typing___ATypeCheckExpr___check_expr_cast(val_t p0, val_t p1, val_
           }
           if (UNTAG_Bool(REGB0)) {
           } else {
-            /* ./syntax//typing.nit:2016 */
+            /* syntax/typing.nit:2063 */
             REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AIsaExpr, ID_parser___parser_nodes___AIsaExpr)) /*cast AIsaExpr*/;
             if (UNTAG_Bool(REGB0)) {
-              /* ./syntax//typing.nit:2017 */
+              /* syntax/typing.nit:2064 */
               if (!once_value_9) {
                fra.me.REG[3] = BOX_NativeString("Warning: Prefer '!= null'.");
                REGB0 = TAG_Int(26);
@@ -12943,7 +13150,7 @@ void syntax___typing___ATypeCheckExpr___check_expr_cast(val_t p0, val_t p1, val_
               fra.me.REG[3] = fra.me.REG[3];
               CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
             } else {
-              /* ./syntax//typing.nit:2019 */
+              /* syntax/typing.nit:2066 */
               if (!once_value_10) {
                fra.me.REG[3] = BOX_NativeString("Warning: Prefer '.as(not null)'.");
                REGB0 = TAG_Int(32);
@@ -12970,7 +13177,7 @@ void syntax___typing___AIsaExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 2027;
+  fra.me.line = 2074;
   fra.me.meth = LOCATE_syntax___typing___AIsaExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -12982,21 +13189,21 @@ void syntax___typing___AIsaExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:2029 */
+  /* syntax/typing.nit:2076 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___ATypeCheckExpr___check_expr_cast(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
-  /* ./syntax//typing.nit:2030 */
+  /* syntax/typing.nit:2077 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___syntax_base___AType___is_typed(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:2031 */
+  /* syntax/typing.nit:2078 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___typing___AExpr___its_variable(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./syntax//typing.nit:2032 */
+  /* syntax/typing.nit:2079 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -13011,17 +13218,17 @@ void syntax___typing___AIsaExpr___after_typing(val_t p0, val_t p1){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:2033 */
+    /* syntax/typing.nit:2080 */
     fra.me.REG[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[4] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[4] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[4])(fra.me.REG[4]);
     fra.me.REG[4] = CALL_syntax___flow___FlowContext___sub_with(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[3], fra.me.REG[4]);
     ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra.me.REG[0]) = fra.me.REG[4];
   }
-  /* ./syntax//typing.nit:2035 */
+  /* syntax/typing.nit:2082 */
   fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]);
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./syntax//typing.nit:2036 */
+  /* syntax/typing.nit:2083 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   label1: while(0);
@@ -13035,7 +13242,7 @@ void syntax___typing___AAsCastExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 2042;
+  fra.me.line = 2089;
   fra.me.meth = LOCATE_syntax___typing___AAsCastExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -13046,22 +13253,22 @@ void syntax___typing___AAsCastExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:2044 */
+  /* syntax/typing.nit:2091 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAsCastExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra.me.REG[0])(fra.me.REG[0]);
   CALL_syntax___typing___ATypeCheckExpr___check_expr_cast(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
-  /* ./syntax//typing.nit:2045 */
+  /* syntax/typing.nit:2092 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___syntax_base___AType___is_typed(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:2046 */
+  /* syntax/typing.nit:2093 */
   fra.me.REG[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[3])(fra.me.REG[3]);
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[3];
-  /* ./syntax//typing.nit:2047 */
+  /* syntax/typing.nit:2094 */
   fra.me.REG[3] = ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
@@ -13089,7 +13296,7 @@ void syntax___typing___AAsNotnullExpr___after_typing(val_t p0, val_t p1){
       static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 2052;
+  fra.me.line = 2099;
   fra.me.meth = LOCATE_syntax___typing___AAsNotnullExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -13101,20 +13308,20 @@ void syntax___typing___AAsNotnullExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:2054 */
+  /* syntax/typing.nit:2101 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:2055 */
+  /* syntax/typing.nit:2102 */
   fra.me.REG[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./syntax//typing.nit:2056 */
+  /* syntax/typing.nit:2103 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
   if (UNTAG_Bool(REGB0)) {
-    /* ./syntax//typing.nit:2057 */
+    /* syntax/typing.nit:2104 */
     fra.me.REG[3] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
     if (!once_value_2) {
       fra.me.REG[4] = BOX_NativeString("Type error: 'as(not null)' on 'null' value.");
@@ -13125,14 +13332,14 @@ void syntax___typing___AAsNotnullExpr___after_typing(val_t p0, val_t p1){
     } else fra.me.REG[4] = once_value_2;
     fra.me.REG[4] = fra.me.REG[4];
     CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[4]);
-    /* ./syntax//typing.nit:2058 */
+    /* syntax/typing.nit:2105 */
     goto label1;
   } else {
-    /* ./syntax//typing.nit:2059 */
+    /* syntax/typing.nit:2106 */
     REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./syntax//typing.nit:2060 */
+      /* syntax/typing.nit:2107 */
       fra.me.REG[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
       if (!once_value_3) {
         fra.me.REG[4] = BOX_NativeString("Warning: 'as(not null)' on non nullable type.");
@@ -13145,12 +13352,12 @@ void syntax___typing___AAsNotnullExpr___after_typing(val_t p0, val_t p1){
       CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]);
     }
   }
-  /* ./syntax//typing.nit:2062 */
+  /* syntax/typing.nit:2109 */
   fra.me.REG[4] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = CALL_metamodel___static_type___MMType___as_notnull(fra.me.REG[4])(fra.me.REG[4]);
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[4];
-  /* ./syntax//typing.nit:2063 */
+  /* syntax/typing.nit:2110 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
   label1: while(0);
@@ -13163,7 +13370,7 @@ void syntax___typing___AProxyExpr___after_typing(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 2068;
+  fra.me.line = 2115;
   fra.me.meth = LOCATE_syntax___typing___AProxyExpr___after_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -13172,30 +13379,79 @@ void syntax___typing___AProxyExpr___after_typing(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:2070 */
+  /* syntax/typing.nit:2117 */
   fra.me.REG[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___syntax_base___AExpr___is_typed(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:2071 */
+  /* syntax/typing.nit:2118 */
   REGB0 = TAG_Bool(true);
   ATTR_syntax___typing___AExpr____is_typed(fra.me.REG[0]) = REGB0;
-  /* ./syntax//typing.nit:2072 */
+  /* syntax/typing.nit:2119 */
   fra.me.REG[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_syntax___syntax_base___AExpr___is_statement(fra.me.REG[1])(fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
     goto label1;
   }
-  /* ./syntax//typing.nit:2073 */
+  /* syntax/typing.nit:2120 */
   fra.me.REG[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]);
   ATTR_syntax___typing___AExpr____stype(fra.me.REG[0]) = fra.me.REG[1];
+  /* syntax/typing.nit:2121 */
+  fra.me.REG[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[1] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra.me.REG[1]);
+  ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra.me.REG[0]) = fra.me.REG[1];
+  /* syntax/typing.nit:2122 */
+  fra.me.REG[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[1] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra.me.REG[1]);
+  ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra.me.REG[0]) = fra.me.REG[1];
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return;
 }
+val_t syntax___typing___AProxyExpr___is_self(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_syntax___typing;
+  fra.me.line = 2125;
+  fra.me.meth = LOCATE_syntax___typing___AProxyExpr___is_self;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* syntax/typing.nit:2125 */
+  fra.me.REG[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = CALL_syntax___typing___AExpr___is_self(fra.me.REG[0])(fra.me.REG[0]);
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return REGB0;
+}
+val_t syntax___typing___AProxyExpr___its_variable(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_syntax___typing;
+  fra.me.line = 2127;
+  fra.me.meth = LOCATE_syntax___typing___AProxyExpr___its_variable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* syntax/typing.nit:2127 */
+  fra.me.REG[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[0] = CALL_syntax___typing___AExpr___its_variable(fra.me.REG[0])(fra.me.REG[0]);
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
 void syntax___typing___AOnceExpr___accept_typing(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -13205,7 +13461,7 @@ void syntax___typing___AOnceExpr___accept_typing(val_t p0, val_t p1){
     static val_t once_value_1; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_syntax___typing;
-  fra.me.line = 2078;
+  fra.me.line = 2131;
   fra.me.meth = LOCATE_syntax___typing___AOnceExpr___accept_typing;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -13217,10 +13473,10 @@ void syntax___typing___AOnceExpr___accept_typing(val_t p0, val_t p1){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./syntax//typing.nit:2078 */
+  /* syntax/typing.nit:2131 */
   fra.me.REG[2] = fra.me.REG[0];
   fra.me.REG[3] = fra.me.REG[1];
-  /* ./syntax//typing.nit:2080 */
+  /* syntax/typing.nit:2133 */
   REGB0 = CALL_syntax___typing___TypingVisitor___once_count(fra.me.REG[3])(fra.me.REG[3]);
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -13228,11 +13484,11 @@ void syntax___typing___AOnceExpr___accept_typing(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:234 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-  /* ./syntax//typing.nit:2080 */
+  /* syntax/typing.nit:2133 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./syntax//typing.nit:2081 */
+    /* syntax/typing.nit:2134 */
     if (!once_value_1) {
       fra.me.REG[4] = BOX_NativeString("Useless once in a once expression.");
       REGB1 = TAG_Int(34);
@@ -13243,22 +13499,115 @@ void syntax___typing___AOnceExpr___accept_typing(val_t p0, val_t p1){
     fra.me.REG[4] = fra.me.REG[4];
     CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
   }
-  /* ./syntax//typing.nit:2083 */
+  /* syntax/typing.nit:2136 */
   REGB1 = CALL_syntax___typing___TypingVisitor___once_count(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:235 */
   REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
-  /* ./syntax//typing.nit:2083 */
+  /* syntax/typing.nit:2136 */
   CALL_syntax___typing___TypingVisitor___once_count__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
-  /* ./syntax//typing.nit:2085 */
+  /* syntax/typing.nit:2138 */
   CALL_SUPER_syntax___typing___AOnceExpr___accept_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* ./syntax//typing.nit:2087 */
+  /* syntax/typing.nit:2140 */
   REGB0 = CALL_syntax___typing___TypingVisitor___once_count(fra.me.REG[3])(fra.me.REG[3]);
   REGB1 = TAG_Int(1);
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./syntax//typing.nit:2087 */
+  /* syntax/typing.nit:2140 */
   CALL_syntax___typing___TypingVisitor___once_count__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
   stack_frame_head = fra.me.prev;
   return;
 }
+void syntax___typing___ADebugTypeExpr___after_typing(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t tmp;
+    static val_t once_value_2; /* Once value */
+    static val_t once_value_3; /* Once value */
+    static val_t once_value_4; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_syntax___typing;
+  fra.me.line = 2145;
+  fra.me.meth = LOCATE_syntax___typing___ADebugTypeExpr___after_typing;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 6;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* syntax/typing.nit:2147 */
+  fra.me.REG[2] = CALL_parser___parser_nodes___ADebugTypeExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  if (UNTAG_Bool(REGB0)) {
+    goto label1;
+  }
+  /* syntax/typing.nit:2148 */
+  fra.me.REG[2] = CALL_parser___parser_nodes___ADebugTypeExpr___n_type(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = CALL_syntax___syntax_base___AType___is_typed(fra.me.REG[2])(fra.me.REG[2]);
+  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  if (UNTAG_Bool(REGB0)) {
+    goto label1;
+  }
+  /* syntax/typing.nit:2149 */
+  fra.me.REG[2] = CALL_parser___parser_nodes___ADebugTypeExpr___n_expr(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[2])(fra.me.REG[2]);
+  /* syntax/typing.nit:2150 */
+  fra.me.REG[3] = CALL_parser___parser_nodes___ADebugTypeExpr___n_type(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[3] = CALL_syntax___syntax_base___AType___stype(fra.me.REG[3])(fra.me.REG[3]);
+  /* syntax/typing.nit:2151 */
+  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+    REGB0 = REGB1;
+  }
+  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  if (UNTAG_Bool(REGB0)) {
+    /* syntax/typing.nit:2152 */
+    REGB0 = TAG_Int(5);
+    fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+    if (!once_value_2) {
+      fra.me.REG[5] = BOX_NativeString("Warning: Expression is a ");
+      REGB0 = TAG_Int(25);
+      fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
+      once_value_2 = fra.me.REG[5];
+      register_static_object(&once_value_2);
+    } else fra.me.REG[5] = once_value_2;
+    fra.me.REG[5] = fra.me.REG[5];
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
+    fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
+    if (!once_value_3) {
+      fra.me.REG[2] = BOX_NativeString(", expected ");
+      REGB0 = TAG_Int(11);
+      fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+      once_value_3 = fra.me.REG[2];
+      register_static_object(&once_value_3);
+    } else fra.me.REG[2] = once_value_3;
+    fra.me.REG[2] = fra.me.REG[2];
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
+    fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
+    if (!once_value_4) {
+      fra.me.REG[3] = BOX_NativeString(".");
+      REGB0 = TAG_Int(1);
+      fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+      once_value_4 = fra.me.REG[3];
+      register_static_object(&once_value_4);
+    } else fra.me.REG[3] = once_value_4;
+    fra.me.REG[3] = fra.me.REG[3];
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
+    fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
+    CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
+  }
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return;
+}
index 626eca6..04c0dfa 100644 (file)
@@ -72,6 +72,7 @@ extern const int SFT_syntax___typing[];
 #define CALL_syntax___typing___AExpr___its_variable(recv) ((syntax___typing___AExpr___its_variable_t)CALL((recv), (SFT_syntax___typing[17] + 2)))
 #define CALL_syntax___typing___AExpr___if_true_flow_ctx(recv) ((syntax___typing___AExpr___if_true_flow_ctx_t)CALL((recv), (SFT_syntax___typing[17] + 3)))
 #define CALL_syntax___typing___AExpr___if_false_flow_ctx(recv) ((syntax___typing___AExpr___if_false_flow_ctx_t)CALL((recv), (SFT_syntax___typing[17] + 4)))
+#define CALL_syntax___typing___AExpr___warn_parentheses(recv) ((syntax___typing___AExpr___warn_parentheses_t)CALL((recv), (SFT_syntax___typing[17] + 5)))
 #define ATTR_syntax___typing___AVardeclExpr____variable(recv) ATTR(recv, (SFT_syntax___typing[18] + 0))
 #define ID_syntax___typing___AAbsControl (SFT_syntax___typing[19])
 #define COLOR_syntax___typing___AAbsControl (SFT_syntax___typing[20])
@@ -219,34 +220,34 @@ typedef void (*syntax___typing___ANode___accept_typing_t)(val_t p0, val_t p1);
 static const char * const LOCATE_syntax___typing___ANode___after_typing = "typing::ANode::after_typing";
 void syntax___typing___ANode___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___ANode___after_typing_t)(val_t p0, val_t p1);
-val_t NEW_ANode_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANode_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AClassdef___accept_typing = "typing::AClassdef::(typing::ANode::accept_typing)";
 void syntax___typing___AClassdef___accept_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AClassdef___accept_typing_t)(val_t p0, val_t p1);
-val_t NEW_AClassdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AClassdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___APropdef___self_var = "typing::APropdef::(syntax_base::APropdef::self_var)";
 val_t syntax___typing___APropdef___self_var(val_t p0);
 typedef val_t (*syntax___typing___APropdef___self_var_t)(val_t p0);
-val_t NEW_APropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_APropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AAttrPropdef___accept_typing = "typing::AAttrPropdef::(typing::ANode::accept_typing)";
 void syntax___typing___AAttrPropdef___accept_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AAttrPropdef___accept_typing_t)(val_t p0, val_t p1);
 val_t NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___empty_init();
 val_t NEW_AAttrPropdef_parser___parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, val_t p9);
-val_t NEW_AAttrPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAttrPropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AMethPropdef___accept_typing = "typing::AMethPropdef::(typing::ANode::accept_typing)";
 void syntax___typing___AMethPropdef___accept_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AMethPropdef___accept_typing_t)(val_t p0, val_t p1);
 val_t NEW_AMethPropdef_parser___parser_prod___AMethPropdef___empty_init();
 val_t NEW_AMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-val_t NEW_AMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMethPropdef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AConcreteMethPropdef___after_typing = "typing::AConcreteMethPropdef::(typing::ANode::after_typing)";
 void syntax___typing___AConcreteMethPropdef___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AConcreteMethPropdef___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AConcreteMethPropdef_parser___parser_prod___AMethPropdef___empty_init();
 val_t NEW_AConcreteMethPropdef_parser___parser_prod___AConcreteMethPropdef___empty_init();
 val_t NEW_AConcreteMethPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
-val_t NEW_AConcreteMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AConcreteMethPropdef_parser___parser_nodes___ANode___init();
 val_t NEW_AConcreteMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_syntax___typing___AConcreteInitPropdef___accept_typing = "typing::AConcreteInitPropdef::(typing::ANode::accept_typing)";
 void syntax___typing___AConcreteInitPropdef___accept_typing(val_t p0, val_t p1);
@@ -254,24 +255,36 @@ typedef void (*syntax___typing___AConcreteInitPropdef___accept_typing_t)(val_t p
 static const char * const LOCATE_syntax___typing___AConcreteInitPropdef___after_typing = "typing::AConcreteInitPropdef::(typing::ANode::after_typing)";
 void syntax___typing___AConcreteInitPropdef___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AConcreteInitPropdef___after_typing_t)(val_t p0, val_t p1);
+val_t NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteMethPropdef___empty_init();
 val_t NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___empty_init();
 val_t NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
-val_t NEW_AConcreteInitPropdef_parser___parser_nodes___AConcreteInitPropdef___init();
+val_t NEW_AConcreteInitPropdef_parser___parser_nodes___ANode___init();
+val_t NEW_AConcreteInitPropdef_parser___parser_prod___AMethPropdef___empty_init();
+val_t NEW_AConcreteInitPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
+val_t NEW_AConcreteInitPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 static const char * const LOCATE_syntax___typing___AExternInitPropdef___accept_typing = "typing::AExternInitPropdef::(typing::ANode::accept_typing)";
 void syntax___typing___AExternInitPropdef___accept_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AExternInitPropdef___accept_typing_t)(val_t p0, val_t p1);
 static const char * const LOCATE_syntax___typing___AExternInitPropdef___after_typing = "typing::AExternInitPropdef::(typing::ANode::after_typing)";
 void syntax___typing___AExternInitPropdef___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AExternInitPropdef___after_typing_t)(val_t p0, val_t p1);
+val_t NEW_AExternInitPropdef_parser___parser_prod___AMethPropdef___empty_init();
 val_t NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___empty_init();
 val_t NEW_AExternInitPropdef_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7);
-val_t NEW_AExternInitPropdef_parser___parser_nodes___AExternInitPropdef___init();
+val_t NEW_AExternInitPropdef_parser___parser_nodes___ANode___init();
+val_t NEW_AExternInitPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+static const char * const LOCATE_syntax___typing___ASignature___after_typing = "typing::ASignature::(typing::ANode::after_typing)";
+void syntax___typing___ASignature___after_typing(val_t p0, val_t p1);
+typedef void (*syntax___typing___ASignature___after_typing_t)(val_t p0, val_t p1);
+val_t NEW_ASignature_parser___parser_prod___ASignature___empty_init();
+val_t NEW_ASignature_parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+val_t NEW_ASignature_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AParam___after_typing = "typing::AParam::(typing::ANode::after_typing)";
 void syntax___typing___AParam___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AParam___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AParam_parser___parser_prod___AParam___empty_init();
 val_t NEW_AParam_parser___parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2);
-val_t NEW_AParam_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AParam_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AClosureDecl___escapable = "typing::AClosureDecl::escapable";
 val_t syntax___typing___AClosureDecl___escapable(val_t p0);
 typedef val_t (*syntax___typing___AClosureDecl___escapable_t)(val_t p0);
@@ -280,7 +293,7 @@ void syntax___typing___AClosureDecl___accept_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AClosureDecl___accept_typing_t)(val_t p0, val_t p1);
 val_t NEW_AClosureDecl_parser___parser_prod___AClosureDecl___empty_init();
 val_t NEW_AClosureDecl_parser___parser_prod___AClosureDecl___init_aclosuredecl(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-val_t NEW_AClosureDecl_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AClosureDecl_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AType___stype = "typing::AType::(syntax_base::AType::stype)";
 val_t syntax___typing___AType___stype(val_t p0);
 typedef val_t (*syntax___typing___AType___stype_t)(val_t p0);
@@ -292,7 +305,7 @@ void syntax___typing___AType___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AType___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AType_parser___parser_prod___AType___empty_init();
 val_t NEW_AType_parser___parser_prod___AType___init_atype(val_t p0, val_t p1, val_t p2);
-val_t NEW_AType_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AType_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AExpr___is_typed = "typing::AExpr::(syntax_base::AExpr::is_typed)";
 val_t syntax___typing___AExpr___is_typed(val_t p0);
 typedef val_t (*syntax___typing___AExpr___is_typed_t)(val_t p0);
@@ -320,7 +333,22 @@ typedef val_t (*syntax___typing___AExpr___if_true_flow_ctx_t)(val_t p0);
 static const char * const LOCATE_syntax___typing___AExpr___if_false_flow_ctx = "typing::AExpr::if_false_flow_ctx";
 val_t syntax___typing___AExpr___if_false_flow_ctx(val_t p0);
 typedef val_t (*syntax___typing___AExpr___if_false_flow_ctx_t)(val_t p0);
-val_t NEW_AExpr_parser___parser_nodes___ANode___init(val_t p0);
+static const char * const LOCATE_syntax___typing___AExpr___warn_parentheses = "typing::AExpr::warn_parentheses";
+void syntax___typing___AExpr___warn_parentheses(val_t p0, val_t p1);
+typedef void (*syntax___typing___AExpr___warn_parentheses_t)(val_t p0, val_t p1);
+val_t NEW_AExpr_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_syntax___typing___AParExpr___warn_parentheses = "typing::AParExpr::(typing::AExpr::warn_parentheses)";
+void syntax___typing___AParExpr___warn_parentheses(val_t p0, val_t p1);
+typedef void (*syntax___typing___AParExpr___warn_parentheses_t)(val_t p0, val_t p1);
+val_t NEW_AParExpr_parser___parser_prod___AParExpr___empty_init();
+val_t NEW_AParExpr_parser___parser_prod___AParExpr___init_aparexpr(val_t p0, val_t p1, val_t p2);
+val_t NEW_AParExpr_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_syntax___typing___AParExprs___after_typing = "typing::AParExprs::(typing::ANode::after_typing)";
+void syntax___typing___AParExprs___after_typing(val_t p0, val_t p1);
+typedef void (*syntax___typing___AParExprs___after_typing_t)(val_t p0, val_t p1);
+val_t NEW_AParExprs_parser___parser_prod___AParExprs___empty_init();
+val_t NEW_AParExprs_parser___parser_prod___AParExprs___init_aparexprs(val_t p0, val_t p1, val_t p2);
+val_t NEW_AParExprs_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AVardeclExpr___variable = "typing::AVardeclExpr::(syntax_base::AVardeclExpr::variable)";
 val_t syntax___typing___AVardeclExpr___variable(val_t p0);
 typedef val_t (*syntax___typing___AVardeclExpr___variable_t)(val_t p0);
@@ -329,7 +357,7 @@ void syntax___typing___AVardeclExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AVardeclExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AVardeclExpr_parser___parser_prod___AVardeclExpr___empty_init();
 val_t NEW_AVardeclExpr_parser___parser_prod___AVardeclExpr___init_avardeclexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-val_t NEW_AVardeclExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AVardeclExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ABlockExpr___accept_typing = "typing::ABlockExpr::(typing::ANode::accept_typing)";
 void syntax___typing___ABlockExpr___accept_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___ABlockExpr___accept_typing_t)(val_t p0, val_t p1);
@@ -337,32 +365,32 @@ typedef void (*syntax___typing___ABlockExpr___accept_typing_t)(val_t p0, val_t p
   void OC_syntax___typing___ABlockExpr___accept_typing_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
   typedef void (*OC_syntax___typing___ABlockExpr___accept_typing_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_ABlockExpr_parser___parser_prod___ABlockExpr___empty_init();
-val_t NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0);
-val_t NEW_ABlockExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABlockExpr_parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0, val_t p1);
+val_t NEW_ABlockExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AReturnExpr___after_typing = "typing::AReturnExpr::(typing::ANode::after_typing)";
 void syntax___typing___AReturnExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AReturnExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AReturnExpr_parser___parser_prod___AReturnExpr___empty_init();
 val_t NEW_AReturnExpr_parser___parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1);
-val_t NEW_AReturnExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AReturnExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AContinueExpr___after_typing = "typing::AContinueExpr::(typing::ANode::after_typing)";
 void syntax___typing___AContinueExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AContinueExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AContinueExpr_parser___parser_prod___AContinueExpr___empty_init();
 val_t NEW_AContinueExpr_parser___parser_prod___AContinueExpr___init_acontinueexpr(val_t p0, val_t p1, val_t p2);
-val_t NEW_AContinueExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AContinueExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ABreakExpr___after_typing = "typing::ABreakExpr::(typing::ANode::after_typing)";
 void syntax___typing___ABreakExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___ABreakExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_ABreakExpr_parser___parser_prod___ABreakExpr___empty_init();
 val_t NEW_ABreakExpr_parser___parser_prod___ABreakExpr___init_abreakexpr(val_t p0, val_t p1, val_t p2);
-val_t NEW_ABreakExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABreakExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AAbortExpr___after_typing = "typing::AAbortExpr::(typing::ANode::after_typing)";
 void syntax___typing___AAbortExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AAbortExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AAbortExpr_parser___parser_prod___AAbortExpr___empty_init();
 val_t NEW_AAbortExpr_parser___parser_prod___AAbortExpr___init_aabortexpr(val_t p0);
-val_t NEW_AAbortExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAbortExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AAbsControl___escapable = "typing::AAbsControl::escapable";
 val_t syntax___typing___AAbsControl___escapable(val_t p0);
 typedef val_t (*syntax___typing___AAbsControl___escapable_t)(val_t p0);
@@ -372,7 +400,7 @@ typedef void (*syntax___typing___AAbsControl___process_control_t)(val_t p0, val_
 static const char * const LOCATE_syntax___typing___AAbsControl___process_control_inside = "typing::AAbsControl::process_control_inside";
 void syntax___typing___AAbsControl___process_control_inside(val_t p0, val_t p1);
 typedef void (*syntax___typing___AAbsControl___process_control_inside_t)(val_t p0, val_t p1);
-val_t NEW_AAbsControl_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAbsControl_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ADoExpr___accept_typing = "typing::ADoExpr::(typing::ANode::accept_typing)";
 void syntax___typing___ADoExpr___accept_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___ADoExpr___accept_typing_t)(val_t p0, val_t p1);
@@ -381,13 +409,13 @@ void syntax___typing___ADoExpr___process_control_inside(val_t p0, val_t p1);
 typedef void (*syntax___typing___ADoExpr___process_control_inside_t)(val_t p0, val_t p1);
 val_t NEW_ADoExpr_parser___parser_prod___ADoExpr___empty_init();
 val_t NEW_ADoExpr_parser___parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t p1, val_t p2);
-val_t NEW_ADoExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ADoExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AIfExpr___accept_typing = "typing::AIfExpr::(typing::ANode::accept_typing)";
 void syntax___typing___AIfExpr___accept_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AIfExpr___accept_typing_t)(val_t p0, val_t p1);
 val_t NEW_AIfExpr_parser___parser_prod___AIfExpr___empty_init();
 val_t NEW_AIfExpr_parser___parser_prod___AIfExpr___init_aifexpr(val_t p0, val_t p1, val_t p2, val_t p3);
-val_t NEW_AIfExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIfExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AWhileExpr___accept_typing = "typing::AWhileExpr::(typing::ANode::accept_typing)";
 void syntax___typing___AWhileExpr___accept_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AWhileExpr___accept_typing_t)(val_t p0, val_t p1);
@@ -396,7 +424,7 @@ void syntax___typing___AWhileExpr___process_control_inside(val_t p0, val_t p1);
 typedef void (*syntax___typing___AWhileExpr___process_control_inside_t)(val_t p0, val_t p1);
 val_t NEW_AWhileExpr_parser___parser_prod___AWhileExpr___empty_init();
 val_t NEW_AWhileExpr_parser___parser_prod___AWhileExpr___init_awhileexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-val_t NEW_AWhileExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AWhileExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ALoopExpr___accept_typing = "typing::ALoopExpr::(typing::ANode::accept_typing)";
 void syntax___typing___ALoopExpr___accept_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___ALoopExpr___accept_typing_t)(val_t p0, val_t p1);
@@ -405,7 +433,7 @@ void syntax___typing___ALoopExpr___process_control_inside(val_t p0, val_t p1);
 typedef void (*syntax___typing___ALoopExpr___process_control_inside_t)(val_t p0, val_t p1);
 val_t NEW_ALoopExpr_parser___parser_prod___ALoopExpr___empty_init();
 val_t NEW_ALoopExpr_parser___parser_prod___ALoopExpr___init_aloopexpr(val_t p0, val_t p1, val_t p2);
-val_t NEW_ALoopExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALoopExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AForExpr___variables = "typing::AForExpr::(syntax_base::AForExpr::variables)";
 val_t syntax___typing___AForExpr___variables(val_t p0);
 typedef val_t (*syntax___typing___AForExpr___variables_t)(val_t p0);
@@ -423,17 +451,17 @@ typedef void (*syntax___typing___AForExpr___do_typing_t)(val_t p0, val_t p1);
   typedef void (*OC_syntax___typing___AForExpr___do_typing_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_AForExpr_parser___parser_prod___AForExpr___empty_init();
 val_t NEW_AForExpr_parser___parser_prod___AForExpr___init_aforexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
-val_t NEW_AForExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AForExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AAssertExpr___accept_typing = "typing::AAssertExpr::(typing::ANode::accept_typing)";
 void syntax___typing___AAssertExpr___accept_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AAssertExpr___accept_typing_t)(val_t p0, val_t p1);
 val_t NEW_AAssertExpr_parser___parser_prod___AAssertExpr___empty_init();
 val_t NEW_AAssertExpr_parser___parser_prod___AAssertExpr___init_aassertexpr(val_t p0, val_t p1, val_t p2, val_t p3);
-val_t NEW_AAssertExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAssertExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AVarFormExpr___variable = "typing::AVarFormExpr::(syntax_base::AVarFormExpr::variable)";
 val_t syntax___typing___AVarFormExpr___variable(val_t p0);
 typedef val_t (*syntax___typing___AVarFormExpr___variable_t)(val_t p0);
-val_t NEW_AVarFormExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AVarFormExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AVarExpr___its_variable = "typing::AVarExpr::(typing::AExpr::its_variable)";
 val_t syntax___typing___AVarExpr___its_variable(val_t p0);
 typedef val_t (*syntax___typing___AVarExpr___its_variable_t)(val_t p0);
@@ -442,42 +470,42 @@ void syntax___typing___AVarExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AVarExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AVarExpr_parser___parser_prod___AVarExpr___init_avarexpr(val_t p0);
 val_t NEW_AVarExpr_parser___parser_prod___AVarExpr___empty_init();
-val_t NEW_AVarExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AVarExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AVarAssignExpr___after_typing = "typing::AVarAssignExpr::(typing::ANode::after_typing)";
 void syntax___typing___AVarAssignExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AVarAssignExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___init_avarassignexpr(val_t p0, val_t p1, val_t p2);
 val_t NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___empty_init();
-val_t NEW_AVarAssignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AVarAssignExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AReassignFormExpr___do_rvalue_typing = "typing::AReassignFormExpr::do_rvalue_typing";
 val_t syntax___typing___AReassignFormExpr___do_rvalue_typing(val_t p0, val_t p1, val_t p2);
 typedef val_t (*syntax___typing___AReassignFormExpr___do_rvalue_typing_t)(val_t p0, val_t p1, val_t p2);
 static const char * const LOCATE_syntax___typing___AReassignFormExpr___assign_method = "typing::AReassignFormExpr::(syntax_base::AReassignFormExpr::assign_method)";
 val_t syntax___typing___AReassignFormExpr___assign_method(val_t p0);
 typedef val_t (*syntax___typing___AReassignFormExpr___assign_method_t)(val_t p0);
-val_t NEW_AReassignFormExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AReassignFormExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AVarReassignExpr___after_typing = "typing::AVarReassignExpr::(typing::ANode::after_typing)";
 void syntax___typing___AVarReassignExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AVarReassignExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t p0, val_t p1, val_t p2);
 val_t NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___empty_init();
-val_t NEW_AVarReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AVarReassignExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AAssignOp___method_name = "typing::AAssignOp::method_name";
 val_t syntax___typing___AAssignOp___method_name(val_t p0);
 typedef val_t (*syntax___typing___AAssignOp___method_name_t)(val_t p0);
-val_t NEW_AAssignOp_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAssignOp_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___APlusAssignOp___method_name = "typing::APlusAssignOp::(typing::AAssignOp::method_name)";
 val_t syntax___typing___APlusAssignOp___method_name(val_t p0);
 typedef val_t (*syntax___typing___APlusAssignOp___method_name_t)(val_t p0);
 val_t NEW_APlusAssignOp_parser___parser_prod___APlusAssignOp___empty_init();
 val_t NEW_APlusAssignOp_parser___parser_prod___APlusAssignOp___init_aplusassignop(val_t p0);
-val_t NEW_APlusAssignOp_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_APlusAssignOp_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AMinusAssignOp___method_name = "typing::AMinusAssignOp::(typing::AAssignOp::method_name)";
 val_t syntax___typing___AMinusAssignOp___method_name(val_t p0);
 typedef val_t (*syntax___typing___AMinusAssignOp___method_name_t)(val_t p0);
 val_t NEW_AMinusAssignOp_parser___parser_prod___AMinusAssignOp___empty_init();
 val_t NEW_AMinusAssignOp_parser___parser_prod___AMinusAssignOp___init_aminusassignop(val_t p0);
-val_t NEW_AMinusAssignOp_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMinusAssignOp_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ASelfExpr___variable = "typing::ASelfExpr::(syntax_base::ASelfExpr::variable)";
 val_t syntax___typing___ASelfExpr___variable(val_t p0);
 typedef val_t (*syntax___typing___ASelfExpr___variable_t)(val_t p0);
@@ -492,71 +520,71 @@ val_t syntax___typing___ASelfExpr___is_self(val_t p0);
 typedef val_t (*syntax___typing___ASelfExpr___is_self_t)(val_t p0);
 val_t NEW_ASelfExpr_parser___parser_prod___ASelfExpr___empty_init();
 val_t NEW_ASelfExpr_parser___parser_prod___ASelfExpr___init_aselfexpr(val_t p0);
-val_t NEW_ASelfExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASelfExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AImplicitSelfExpr___is_implicit_self = "typing::AImplicitSelfExpr::(typing::AExpr::is_implicit_self)";
 val_t syntax___typing___AImplicitSelfExpr___is_implicit_self(val_t p0);
 typedef val_t (*syntax___typing___AImplicitSelfExpr___is_implicit_self_t)(val_t p0);
 val_t NEW_AImplicitSelfExpr_parser___parser_prod___ASelfExpr___empty_init();
 val_t NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___empty_init();
 val_t NEW_AImplicitSelfExpr_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr();
-val_t NEW_AImplicitSelfExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AImplicitSelfExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AImplicitSelfExpr_parser___parser_prod___ASelfExpr___init_aselfexpr(val_t p0);
 static const char * const LOCATE_syntax___typing___AIfexprExpr___accept_typing = "typing::AIfexprExpr::(typing::ANode::accept_typing)";
 void syntax___typing___AIfexprExpr___accept_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AIfexprExpr___accept_typing_t)(val_t p0, val_t p1);
 val_t NEW_AIfexprExpr_parser___parser_prod___AIfexprExpr___empty_init();
 val_t NEW_AIfexprExpr_parser___parser_prod___AIfexprExpr___init_aifexprexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
-val_t NEW_AIfexprExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIfexprExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ABoolExpr___after_typing = "typing::ABoolExpr::(typing::ANode::after_typing)";
 void syntax___typing___ABoolExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___ABoolExpr___after_typing_t)(val_t p0, val_t p1);
-val_t NEW_ABoolExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABoolExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AOrExpr___accept_typing = "typing::AOrExpr::(typing::ANode::accept_typing)";
 void syntax___typing___AOrExpr___accept_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AOrExpr___accept_typing_t)(val_t p0, val_t p1);
 val_t NEW_AOrExpr_parser___parser_prod___AOrExpr___empty_init();
 val_t NEW_AOrExpr_parser___parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t p1);
-val_t NEW_AOrExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AOrExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AAndExpr___accept_typing = "typing::AAndExpr::(typing::ANode::accept_typing)";
 void syntax___typing___AAndExpr___accept_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AAndExpr___accept_typing_t)(val_t p0, val_t p1);
 val_t NEW_AAndExpr_parser___parser_prod___AAndExpr___empty_init();
 val_t NEW_AAndExpr_parser___parser_prod___AAndExpr___init_aandexpr(val_t p0, val_t p1);
-val_t NEW_AAndExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAndExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ANotExpr___after_typing = "typing::ANotExpr::(typing::ANode::after_typing)";
 void syntax___typing___ANotExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___ANotExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_ANotExpr_parser___parser_prod___ANotExpr___empty_init();
 val_t NEW_ANotExpr_parser___parser_prod___ANotExpr___init_anotexpr(val_t p0, val_t p1);
-val_t NEW_ANotExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANotExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AOrElseExpr___after_typing = "typing::AOrElseExpr::(typing::ANode::after_typing)";
 void syntax___typing___AOrElseExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AOrElseExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AOrElseExpr_parser___parser_prod___AOrElseExpr___empty_init();
 val_t NEW_AOrElseExpr_parser___parser_prod___AOrElseExpr___init_aorelseexpr(val_t p0, val_t p1);
-val_t NEW_AOrElseExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AOrElseExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AIntExpr___after_typing = "typing::AIntExpr::(typing::ANode::after_typing)";
 void syntax___typing___AIntExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AIntExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AIntExpr_parser___parser_prod___AIntExpr___empty_init();
 val_t NEW_AIntExpr_parser___parser_prod___AIntExpr___init_aintexpr(val_t p0);
-val_t NEW_AIntExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIntExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AFloatExpr___after_typing = "typing::AFloatExpr::(typing::ANode::after_typing)";
 void syntax___typing___AFloatExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AFloatExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AFloatExpr_parser___parser_prod___AFloatExpr___empty_init();
 val_t NEW_AFloatExpr_parser___parser_prod___AFloatExpr___init_afloatexpr(val_t p0);
-val_t NEW_AFloatExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AFloatExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ACharExpr___after_typing = "typing::ACharExpr::(typing::ANode::after_typing)";
 void syntax___typing___ACharExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___ACharExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_ACharExpr_parser___parser_prod___ACharExpr___empty_init();
 val_t NEW_ACharExpr_parser___parser_prod___ACharExpr___init_acharexpr(val_t p0);
-val_t NEW_ACharExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ACharExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AStringFormExpr___after_typing = "typing::AStringFormExpr::(typing::ANode::after_typing)";
 void syntax___typing___AStringFormExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AStringFormExpr___after_typing_t)(val_t p0, val_t p1);
-val_t NEW_AStringFormExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStringFormExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ASuperstringExpr___atype = "typing::ASuperstringExpr::(syntax_base::ASuperstringExpr::atype)";
 val_t syntax___typing___ASuperstringExpr___atype(val_t p0);
 typedef val_t (*syntax___typing___ASuperstringExpr___atype_t)(val_t p0);
@@ -568,13 +596,13 @@ typedef void (*syntax___typing___ASuperstringExpr___after_typing_t)(val_t p0, va
   typedef void (*OC_syntax___typing___ASuperstringExpr___after_typing_1_t)(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0);
 val_t NEW_ASuperstringExpr_parser___parser_prod___ASuperstringExpr___empty_init();
 val_t NEW_ASuperstringExpr_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0);
-val_t NEW_ASuperstringExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASuperstringExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ANullExpr___after_typing = "typing::ANullExpr::(typing::ANode::after_typing)";
 void syntax___typing___ANullExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___ANullExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_ANullExpr_parser___parser_prod___ANullExpr___empty_init();
 val_t NEW_ANullExpr_parser___parser_prod___ANullExpr___init_anullexpr(val_t p0);
-val_t NEW_ANullExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANullExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AArrayExpr___after_typing = "typing::AArrayExpr::(typing::ANode::after_typing)";
 void syntax___typing___AArrayExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AArrayExpr___after_typing_t)(val_t p0, val_t p1);
@@ -583,13 +611,13 @@ void syntax___typing___AArrayExpr___do_typing(val_t p0, val_t p1, val_t p2);
 typedef void (*syntax___typing___AArrayExpr___do_typing_t)(val_t p0, val_t p1, val_t p2);
 val_t NEW_AArrayExpr_parser___parser_prod___AArrayExpr___empty_init();
 val_t NEW_AArrayExpr_parser___parser_prod___AArrayExpr___init_aarrayexpr(val_t p0);
-val_t NEW_AArrayExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AArrayExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ARangeExpr___after_typing = "typing::ARangeExpr::(typing::ANode::after_typing)";
 void syntax___typing___ARangeExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___ARangeExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_ARangeExpr_parser___parser_prod___ARangeExpr___empty_init();
 val_t NEW_ARangeExpr_parser___parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1);
-val_t NEW_ARangeExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ARangeExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ASuperExpr___init_in_superclass = "typing::ASuperExpr::(syntax_base::ASuperExpr::init_in_superclass)";
 val_t syntax___typing___ASuperExpr___init_in_superclass(val_t p0);
 typedef val_t (*syntax___typing___ASuperExpr___init_in_superclass_t)(val_t p0);
@@ -601,7 +629,7 @@ void syntax___typing___ASuperExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___ASuperExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_ASuperExpr_parser___parser_prod___ASuperExpr___empty_init();
 val_t NEW_ASuperExpr_parser___parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val_t p2);
-val_t NEW_ASuperExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASuperExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AExternCall___target_class_name = "typing::AExternCall::target_class_name";
 val_t syntax___typing___AExternCall___target_class_name(val_t p0);
 typedef val_t (*syntax___typing___AExternCall___target_class_name_t)(val_t p0);
@@ -613,7 +641,7 @@ void syntax___typing___AExternCall___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AExternCall___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AExternCall_parser___parser_prod___AExternCall___empty_init();
 val_t NEW_AExternCall_parser___parser_prod___AExternCall___init_aexterncall();
-val_t NEW_AExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AExternCall_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ALocalPropExternCall___target_class_name = "typing::ALocalPropExternCall::(typing::AExternCall::target_class_name)";
 val_t syntax___typing___ALocalPropExternCall___target_class_name(val_t p0);
 typedef val_t (*syntax___typing___ALocalPropExternCall___target_class_name_t)(val_t p0);
@@ -623,7 +651,7 @@ typedef val_t (*syntax___typing___ALocalPropExternCall___target_method_name_t)(v
 val_t NEW_ALocalPropExternCall_parser___parser_prod___AExternCall___empty_init();
 val_t NEW_ALocalPropExternCall_parser___parser_prod___ALocalPropExternCall___empty_init();
 val_t NEW_ALocalPropExternCall_parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall(val_t p0);
-val_t NEW_ALocalPropExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALocalPropExternCall_parser___parser_nodes___ANode___init();
 val_t NEW_ALocalPropExternCall_parser___parser_prod___AExternCall___init_aexterncall();
 static const char * const LOCATE_syntax___typing___ASuperExternCall___after_typing = "typing::ASuperExternCall::(typing::ANode::after_typing)";
 void syntax___typing___ASuperExternCall___after_typing(val_t p0, val_t p1);
@@ -631,7 +659,7 @@ typedef void (*syntax___typing___ASuperExternCall___after_typing_t)(val_t p0, va
 val_t NEW_ASuperExternCall_parser___parser_prod___AExternCall___empty_init();
 val_t NEW_ASuperExternCall_parser___parser_prod___ASuperExternCall___empty_init();
 val_t NEW_ASuperExternCall_parser___parser_prod___ASuperExternCall___init_asuperexterncall(val_t p0);
-val_t NEW_ASuperExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASuperExternCall_parser___parser_nodes___ANode___init();
 val_t NEW_ASuperExternCall_parser___parser_prod___AExternCall___init_aexterncall();
 static const char * const LOCATE_syntax___typing___AFullPropExternCall___target_class_name = "typing::AFullPropExternCall::(typing::AExternCall::target_class_name)";
 val_t syntax___typing___AFullPropExternCall___target_class_name(val_t p0);
@@ -642,7 +670,7 @@ typedef val_t (*syntax___typing___AFullPropExternCall___target_method_name_t)(va
 val_t NEW_AFullPropExternCall_parser___parser_prod___AExternCall___empty_init();
 val_t NEW_AFullPropExternCall_parser___parser_prod___AFullPropExternCall___empty_init();
 val_t NEW_AFullPropExternCall_parser___parser_prod___AFullPropExternCall___init_afullpropexterncall(val_t p0, val_t p1, val_t p2);
-val_t NEW_AFullPropExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AFullPropExternCall_parser___parser_nodes___ANode___init();
 val_t NEW_AFullPropExternCall_parser___parser_prod___AExternCall___init_aexterncall();
 static const char * const LOCATE_syntax___typing___AInitPropExternCall___target_class_name = "typing::AInitPropExternCall::(typing::AExternCall::target_class_name)";
 val_t syntax___typing___AInitPropExternCall___target_class_name(val_t p0);
@@ -653,7 +681,7 @@ typedef val_t (*syntax___typing___AInitPropExternCall___target_method_name_t)(va
 val_t NEW_AInitPropExternCall_parser___parser_prod___AExternCall___empty_init();
 val_t NEW_AInitPropExternCall_parser___parser_prod___AInitPropExternCall___empty_init();
 val_t NEW_AInitPropExternCall_parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall(val_t p0);
-val_t NEW_AInitPropExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AInitPropExternCall_parser___parser_nodes___ANode___init();
 val_t NEW_AInitPropExternCall_parser___parser_prod___AExternCall___init_aexterncall();
 static const char * const LOCATE_syntax___typing___ACastExternCall___from_type = "typing::ACastExternCall::from_type";
 val_t syntax___typing___ACastExternCall___from_type(val_t p0);
@@ -664,7 +692,7 @@ typedef val_t (*syntax___typing___ACastExternCall___to_type_t)(val_t p0);
 static const char * const LOCATE_syntax___typing___ACastExternCall___after_typing = "typing::ACastExternCall::(typing::ANode::after_typing)";
 void syntax___typing___ACastExternCall___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___ACastExternCall___after_typing_t)(val_t p0, val_t p1);
-val_t NEW_ACastExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ACastExternCall_parser___parser_nodes___ANode___init();
 val_t NEW_ACastExternCall_parser___parser_prod___AExternCall___empty_init();
 val_t NEW_ACastExternCall_parser___parser_prod___AExternCall___init_aexterncall();
 static const char * const LOCATE_syntax___typing___ACastAsExternCall___from_type = "typing::ACastAsExternCall::(typing::ACastExternCall::from_type)";
@@ -676,7 +704,7 @@ typedef val_t (*syntax___typing___ACastAsExternCall___to_type_t)(val_t p0);
 val_t NEW_ACastAsExternCall_parser___parser_prod___AExternCall___empty_init();
 val_t NEW_ACastAsExternCall_parser___parser_prod___ACastAsExternCall___empty_init();
 val_t NEW_ACastAsExternCall_parser___parser_prod___ACastAsExternCall___init_acastasexterncall(val_t p0, val_t p1, val_t p2);
-val_t NEW_ACastAsExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ACastAsExternCall_parser___parser_nodes___ANode___init();
 val_t NEW_ACastAsExternCall_parser___parser_prod___AExternCall___init_aexterncall();
 static const char * const LOCATE_syntax___typing___AAsNullableExternCall___from_type = "typing::AAsNullableExternCall::(typing::ACastExternCall::from_type)";
 val_t syntax___typing___AAsNullableExternCall___from_type(val_t p0);
@@ -687,7 +715,7 @@ typedef val_t (*syntax___typing___AAsNullableExternCall___to_type_t)(val_t p0);
 val_t NEW_AAsNullableExternCall_parser___parser_prod___AExternCall___empty_init();
 val_t NEW_AAsNullableExternCall_parser___parser_prod___AAsNullableExternCall___empty_init();
 val_t NEW_AAsNullableExternCall_parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall(val_t p0, val_t p1, val_t p2);
-val_t NEW_AAsNullableExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAsNullableExternCall_parser___parser_nodes___ANode___init();
 val_t NEW_AAsNullableExternCall_parser___parser_prod___AExternCall___init_aexterncall();
 static const char * const LOCATE_syntax___typing___AAsNotNullableExternCall___from_type = "typing::AAsNotNullableExternCall::(typing::ACastExternCall::from_type)";
 val_t syntax___typing___AAsNotNullableExternCall___from_type(val_t p0);
@@ -698,7 +726,7 @@ typedef val_t (*syntax___typing___AAsNotNullableExternCall___to_type_t)(val_t p0
 val_t NEW_AAsNotNullableExternCall_parser___parser_prod___AExternCall___empty_init();
 val_t NEW_AAsNotNullableExternCall_parser___parser_prod___AAsNotNullableExternCall___empty_init();
 val_t NEW_AAsNotNullableExternCall_parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall(val_t p0, val_t p1, val_t p2, val_t p3);
-val_t NEW_AAsNotNullableExternCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAsNotNullableExternCall_parser___parser_nodes___ANode___init();
 val_t NEW_AAsNotNullableExternCall_parser___parser_prod___AExternCall___init_aexterncall();
 static const char * const LOCATE_syntax___typing___AAttrFormExpr___prop = "typing::AAttrFormExpr::(syntax_base::AAttrFormExpr::prop)";
 val_t syntax___typing___AAttrFormExpr___prop(val_t p0);
@@ -709,31 +737,31 @@ typedef val_t (*syntax___typing___AAttrFormExpr___attr_type_t)(val_t p0);
 static const char * const LOCATE_syntax___typing___AAttrFormExpr___do_typing = "typing::AAttrFormExpr::do_typing";
 void syntax___typing___AAttrFormExpr___do_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AAttrFormExpr___do_typing_t)(val_t p0, val_t p1);
-val_t NEW_AAttrFormExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAttrFormExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AAttrExpr___after_typing = "typing::AAttrExpr::(typing::ANode::after_typing)";
 void syntax___typing___AAttrExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AAttrExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AAttrExpr_parser___parser_prod___AAttrExpr___empty_init();
 val_t NEW_AAttrExpr_parser___parser_prod___AAttrExpr___init_aattrexpr(val_t p0, val_t p1);
-val_t NEW_AAttrExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAttrExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AAttrAssignExpr___after_typing = "typing::AAttrAssignExpr::(typing::ANode::after_typing)";
 void syntax___typing___AAttrAssignExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AAttrAssignExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AAttrAssignExpr_parser___parser_prod___AAttrAssignExpr___empty_init();
 val_t NEW_AAttrAssignExpr_parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr(val_t p0, val_t p1, val_t p2, val_t p3);
-val_t NEW_AAttrAssignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAttrAssignExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AAttrReassignExpr___after_typing = "typing::AAttrReassignExpr::(typing::ANode::after_typing)";
 void syntax___typing___AAttrReassignExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AAttrReassignExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AAttrReassignExpr_parser___parser_prod___AAttrReassignExpr___empty_init();
 val_t NEW_AAttrReassignExpr_parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3);
-val_t NEW_AAttrReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAttrReassignExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AIssetAttrExpr___after_typing = "typing::AIssetAttrExpr::(typing::ANode::after_typing)";
 void syntax___typing___AIssetAttrExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AIssetAttrExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AIssetAttrExpr_parser___parser_prod___AIssetAttrExpr___empty_init();
 val_t NEW_AIssetAttrExpr_parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr(val_t p0, val_t p1, val_t p2);
-val_t NEW_AIssetAttrExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIssetAttrExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AAbsAbsSendExpr___prop_signature = "typing::AAbsAbsSendExpr::(syntax_base::AAbsAbsSendExpr::prop_signature)";
 val_t syntax___typing___AAbsAbsSendExpr___prop_signature(val_t p0);
 typedef val_t (*syntax___typing___AAbsAbsSendExpr___prop_signature_t)(val_t p0);
@@ -749,7 +777,7 @@ typedef val_t (*syntax___typing___AAbsAbsSendExpr___process_signature_t)(val_t p
 static const char * const LOCATE_syntax___typing___AAbsAbsSendExpr___process_closures = "typing::AAbsAbsSendExpr::process_closures";
 val_t syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
 typedef val_t (*syntax___typing___AAbsAbsSendExpr___process_closures_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-val_t NEW_AAbsAbsSendExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAbsAbsSendExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AAbsSendExpr___do_typing = "typing::AAbsSendExpr::do_typing";
 void syntax___typing___AAbsSendExpr___do_typing(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7);
 typedef void (*syntax___typing___AAbsSendExpr___do_typing_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7);
@@ -765,11 +793,11 @@ typedef val_t (*syntax___typing___AAbsSendExpr___prop_t)(val_t p0);
 static const char * const LOCATE_syntax___typing___AAbsSendExpr___return_type = "typing::AAbsSendExpr::(syntax_base::AAbsSendExpr::return_type)";
 val_t syntax___typing___AAbsSendExpr___return_type(val_t p0);
 typedef val_t (*syntax___typing___AAbsSendExpr___return_type_t)(val_t p0);
-val_t NEW_AAbsSendExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAbsSendExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ASuperInitCall___register_super_init_call = "typing::ASuperInitCall::register_super_init_call";
 void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0, val_t p1, val_t p2);
 typedef void (*syntax___typing___ASuperInitCall___register_super_init_call_t)(val_t p0, val_t p1, val_t p2);
-val_t NEW_ASuperInitCall_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASuperInitCall_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ANewExpr___compute_raw_arguments = "typing::ANewExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
 val_t syntax___typing___ANewExpr___compute_raw_arguments(val_t p0);
 typedef val_t (*syntax___typing___ANewExpr___compute_raw_arguments_t)(val_t p0);
@@ -778,7 +806,7 @@ void syntax___typing___ANewExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___ANewExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_ANewExpr_parser___parser_prod___ANewExpr___empty_init();
 val_t NEW_ANewExpr_parser___parser_prod___ANewExpr___init_anewexpr(val_t p0, val_t p1, val_t p2, val_t p3);
-val_t NEW_ANewExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANewExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ASendExpr___name = "typing::ASendExpr::name";
 val_t syntax___typing___ASendExpr___name(val_t p0);
 typedef val_t (*syntax___typing___ASendExpr___name_t)(val_t p0);
@@ -793,7 +821,7 @@ void syntax___typing___ASendExpr___do_all_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___ASendExpr___do_all_typing_t)(val_t p0, val_t p1);
 val_t NEW_ASendExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ASendExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
-val_t NEW_ASendExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASendExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ASendReassignExpr___read_prop = "typing::ASendReassignExpr::(syntax_base::ASendReassignExpr::read_prop)";
 val_t syntax___typing___ASendReassignExpr___read_prop(val_t p0);
 typedef val_t (*syntax___typing___ASendReassignExpr___read_prop_t)(val_t p0);
@@ -802,14 +830,14 @@ void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___ASendReassignExpr___do_all_typing_t)(val_t p0, val_t p1);
 val_t NEW_ASendReassignExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ASendReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
-val_t NEW_ASendReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASendReassignExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ABinopExpr___compute_raw_arguments = "typing::ABinopExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
 val_t syntax___typing___ABinopExpr___compute_raw_arguments(val_t p0);
 typedef val_t (*syntax___typing___ABinopExpr___compute_raw_arguments_t)(val_t p0);
 val_t NEW_ABinopExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ABinopExpr_parser___parser_prod___ABinopExpr___empty_init();
 val_t NEW_ABinopExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
-val_t NEW_ABinopExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABinopExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ABinopExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 static const char * const LOCATE_syntax___typing___AEqExpr___name = "typing::AEqExpr::(typing::ASendExpr::name)";
 val_t syntax___typing___AEqExpr___name(val_t p0);
@@ -823,7 +851,7 @@ typedef void (*syntax___typing___AEqExpr___try_to_isa_t)(val_t p0, val_t p1, val
 val_t NEW_AEqExpr_parser___parser_prod___ABinopExpr___empty_init();
 val_t NEW_AEqExpr_parser___parser_prod___AEqExpr___empty_init();
 val_t NEW_AEqExpr_parser___parser_prod___AEqExpr___init_aeqexpr(val_t p0, val_t p1);
-val_t NEW_AEqExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AEqExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AEqExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_AEqExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_AEqExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -839,7 +867,7 @@ typedef void (*syntax___typing___ANeExpr___try_to_isa_t)(val_t p0, val_t p1, val
 val_t NEW_ANeExpr_parser___parser_prod___ABinopExpr___empty_init();
 val_t NEW_ANeExpr_parser___parser_prod___ANeExpr___empty_init();
 val_t NEW_ANeExpr_parser___parser_prod___ANeExpr___init_aneexpr(val_t p0, val_t p1);
-val_t NEW_ANeExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ANeExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ANeExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ANeExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_ANeExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -849,7 +877,7 @@ typedef val_t (*syntax___typing___ALtExpr___name_t)(val_t p0);
 val_t NEW_ALtExpr_parser___parser_prod___ABinopExpr___empty_init();
 val_t NEW_ALtExpr_parser___parser_prod___ALtExpr___empty_init();
 val_t NEW_ALtExpr_parser___parser_prod___ALtExpr___init_altexpr(val_t p0, val_t p1);
-val_t NEW_ALtExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALtExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ALtExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ALtExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_ALtExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -859,7 +887,7 @@ typedef val_t (*syntax___typing___ALeExpr___name_t)(val_t p0);
 val_t NEW_ALeExpr_parser___parser_prod___ABinopExpr___empty_init();
 val_t NEW_ALeExpr_parser___parser_prod___ALeExpr___empty_init();
 val_t NEW_ALeExpr_parser___parser_prod___ALeExpr___init_aleexpr(val_t p0, val_t p1);
-val_t NEW_ALeExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALeExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ALeExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ALeExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_ALeExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -869,7 +897,7 @@ typedef val_t (*syntax___typing___ALlExpr___name_t)(val_t p0);
 val_t NEW_ALlExpr_parser___parser_prod___ABinopExpr___empty_init();
 val_t NEW_ALlExpr_parser___parser_prod___ALlExpr___empty_init();
 val_t NEW_ALlExpr_parser___parser_prod___ALlExpr___init_allexpr(val_t p0, val_t p1);
-val_t NEW_ALlExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ALlExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ALlExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ALlExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_ALlExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -879,7 +907,7 @@ typedef val_t (*syntax___typing___AGtExpr___name_t)(val_t p0);
 val_t NEW_AGtExpr_parser___parser_prod___ABinopExpr___empty_init();
 val_t NEW_AGtExpr_parser___parser_prod___AGtExpr___empty_init();
 val_t NEW_AGtExpr_parser___parser_prod___AGtExpr___init_agtexpr(val_t p0, val_t p1);
-val_t NEW_AGtExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AGtExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AGtExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_AGtExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_AGtExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -889,7 +917,7 @@ typedef val_t (*syntax___typing___AGeExpr___name_t)(val_t p0);
 val_t NEW_AGeExpr_parser___parser_prod___ABinopExpr___empty_init();
 val_t NEW_AGeExpr_parser___parser_prod___AGeExpr___empty_init();
 val_t NEW_AGeExpr_parser___parser_prod___AGeExpr___init_ageexpr(val_t p0, val_t p1);
-val_t NEW_AGeExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AGeExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AGeExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_AGeExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_AGeExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -899,7 +927,7 @@ typedef val_t (*syntax___typing___AGgExpr___name_t)(val_t p0);
 val_t NEW_AGgExpr_parser___parser_prod___ABinopExpr___empty_init();
 val_t NEW_AGgExpr_parser___parser_prod___AGgExpr___empty_init();
 val_t NEW_AGgExpr_parser___parser_prod___AGgExpr___init_aggexpr(val_t p0, val_t p1);
-val_t NEW_AGgExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AGgExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AGgExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_AGgExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_AGgExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -909,7 +937,7 @@ typedef val_t (*syntax___typing___APlusExpr___name_t)(val_t p0);
 val_t NEW_APlusExpr_parser___parser_prod___ABinopExpr___empty_init();
 val_t NEW_APlusExpr_parser___parser_prod___APlusExpr___empty_init();
 val_t NEW_APlusExpr_parser___parser_prod___APlusExpr___init_aplusexpr(val_t p0, val_t p1);
-val_t NEW_APlusExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_APlusExpr_parser___parser_nodes___ANode___init();
 val_t NEW_APlusExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_APlusExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_APlusExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -919,7 +947,7 @@ typedef val_t (*syntax___typing___AMinusExpr___name_t)(val_t p0);
 val_t NEW_AMinusExpr_parser___parser_prod___ABinopExpr___empty_init();
 val_t NEW_AMinusExpr_parser___parser_prod___AMinusExpr___empty_init();
 val_t NEW_AMinusExpr_parser___parser_prod___AMinusExpr___init_aminusexpr(val_t p0, val_t p1);
-val_t NEW_AMinusExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AMinusExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AMinusExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_AMinusExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_AMinusExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -929,7 +957,7 @@ typedef val_t (*syntax___typing___AStarshipExpr___name_t)(val_t p0);
 val_t NEW_AStarshipExpr_parser___parser_prod___ABinopExpr___empty_init();
 val_t NEW_AStarshipExpr_parser___parser_prod___AStarshipExpr___empty_init();
 val_t NEW_AStarshipExpr_parser___parser_prod___AStarshipExpr___init_astarshipexpr(val_t p0, val_t p1);
-val_t NEW_AStarshipExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStarshipExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AStarshipExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_AStarshipExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_AStarshipExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -939,7 +967,7 @@ typedef val_t (*syntax___typing___AStarExpr___name_t)(val_t p0);
 val_t NEW_AStarExpr_parser___parser_prod___ABinopExpr___empty_init();
 val_t NEW_AStarExpr_parser___parser_prod___AStarExpr___empty_init();
 val_t NEW_AStarExpr_parser___parser_prod___AStarExpr___init_astarexpr(val_t p0, val_t p1);
-val_t NEW_AStarExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AStarExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AStarExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_AStarExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_AStarExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -949,7 +977,7 @@ typedef val_t (*syntax___typing___ASlashExpr___name_t)(val_t p0);
 val_t NEW_ASlashExpr_parser___parser_prod___ABinopExpr___empty_init();
 val_t NEW_ASlashExpr_parser___parser_prod___ASlashExpr___empty_init();
 val_t NEW_ASlashExpr_parser___parser_prod___ASlashExpr___init_aslashexpr(val_t p0, val_t p1);
-val_t NEW_ASlashExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASlashExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ASlashExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ASlashExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_ASlashExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -959,7 +987,7 @@ typedef val_t (*syntax___typing___APercentExpr___name_t)(val_t p0);
 val_t NEW_APercentExpr_parser___parser_prod___ABinopExpr___empty_init();
 val_t NEW_APercentExpr_parser___parser_prod___APercentExpr___empty_init();
 val_t NEW_APercentExpr_parser___parser_prod___APercentExpr___init_apercentexpr(val_t p0, val_t p1);
-val_t NEW_APercentExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_APercentExpr_parser___parser_nodes___ANode___init();
 val_t NEW_APercentExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_APercentExpr_parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1);
 val_t NEW_APercentExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
@@ -972,7 +1000,7 @@ typedef val_t (*syntax___typing___AUminusExpr___compute_raw_arguments_t)(val_t p
 val_t NEW_AUminusExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_AUminusExpr_parser___parser_prod___AUminusExpr___empty_init();
 val_t NEW_AUminusExpr_parser___parser_prod___AUminusExpr___init_auminusexpr(val_t p0, val_t p1);
-val_t NEW_AUminusExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AUminusExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AUminusExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 static const char * const LOCATE_syntax___typing___ACallFormExpr___after_typing = "typing::ACallFormExpr::(typing::ANode::after_typing)";
 void syntax___typing___ACallFormExpr___after_typing(val_t p0, val_t p1);
@@ -983,7 +1011,7 @@ typedef val_t (*syntax___typing___ACallFormExpr___closure_defs_t)(val_t p0);
 static const char * const LOCATE_syntax___typing___ACallFormExpr___variable_create = "typing::ACallFormExpr::variable_create";
 val_t syntax___typing___ACallFormExpr___variable_create(val_t p0, val_t p1);
 typedef val_t (*syntax___typing___ACallFormExpr___variable_create_t)(val_t p0, val_t p1);
-val_t NEW_ACallFormExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ACallFormExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ACallFormExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ACallFormExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 static const char * const LOCATE_syntax___typing___ACallExpr___variable_create = "typing::ACallExpr::(typing::ACallFormExpr::variable_create)";
@@ -998,7 +1026,7 @@ typedef val_t (*syntax___typing___ACallExpr___compute_raw_arguments_t)(val_t p0)
 val_t NEW_ACallExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ACallExpr_parser___parser_prod___ACallExpr___empty_init();
 val_t NEW_ACallExpr_parser___parser_prod___ACallExpr___init_acallexpr(val_t p0, val_t p1, val_t p2, val_t p3);
-val_t NEW_ACallExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ACallExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ACallExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 static const char * const LOCATE_syntax___typing___ACallAssignExpr___variable_create = "typing::ACallAssignExpr::(typing::ACallFormExpr::variable_create)";
 val_t syntax___typing___ACallAssignExpr___variable_create(val_t p0, val_t p1);
@@ -1012,7 +1040,7 @@ typedef val_t (*syntax___typing___ACallAssignExpr___compute_raw_arguments_t)(val
 val_t NEW_ACallAssignExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ACallAssignExpr_parser___parser_prod___ACallAssignExpr___empty_init();
 val_t NEW_ACallAssignExpr_parser___parser_prod___ACallAssignExpr___init_acallassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-val_t NEW_ACallAssignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ACallAssignExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ACallAssignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 static const char * const LOCATE_syntax___typing___ACallReassignExpr___variable_create = "typing::ACallReassignExpr::(typing::ACallFormExpr::variable_create)";
 val_t syntax___typing___ACallReassignExpr___variable_create(val_t p0, val_t p1);
@@ -1026,7 +1054,7 @@ typedef val_t (*syntax___typing___ACallReassignExpr___compute_raw_arguments_t)(v
 val_t NEW_ACallReassignExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ACallReassignExpr_parser___parser_prod___ACallReassignExpr___empty_init();
 val_t NEW_ACallReassignExpr_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-val_t NEW_ACallReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ACallReassignExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ACallReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 static const char * const LOCATE_syntax___typing___ABraExpr___name = "typing::ABraExpr::(typing::ASendExpr::name)";
 val_t syntax___typing___ABraExpr___name(val_t p0);
@@ -1040,7 +1068,7 @@ typedef val_t (*syntax___typing___ABraExpr___closure_defs_t)(val_t p0);
 val_t NEW_ABraExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ABraExpr_parser___parser_prod___ABraExpr___empty_init();
 val_t NEW_ABraExpr_parser___parser_prod___ABraExpr___init_abraexpr(val_t p0, val_t p1, val_t p2);
-val_t NEW_ABraExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABraExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ABraExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 static const char * const LOCATE_syntax___typing___ABraAssignExpr___name = "typing::ABraAssignExpr::(typing::ASendExpr::name)";
 val_t syntax___typing___ABraAssignExpr___name(val_t p0);
@@ -1051,7 +1079,7 @@ typedef val_t (*syntax___typing___ABraAssignExpr___compute_raw_arguments_t)(val_
 val_t NEW_ABraAssignExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ABraAssignExpr_parser___parser_prod___ABraAssignExpr___empty_init();
 val_t NEW_ABraAssignExpr_parser___parser_prod___ABraAssignExpr___init_abraassignexpr(val_t p0, val_t p1, val_t p2, val_t p3);
-val_t NEW_ABraAssignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABraAssignExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ABraAssignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 static const char * const LOCATE_syntax___typing___ABraReassignExpr___name = "typing::ABraReassignExpr::(typing::ASendExpr::name)";
 val_t syntax___typing___ABraReassignExpr___name(val_t p0);
@@ -1062,7 +1090,7 @@ typedef val_t (*syntax___typing___ABraReassignExpr___compute_raw_arguments_t)(va
 val_t NEW_ABraReassignExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_ABraReassignExpr_parser___parser_prod___ABraReassignExpr___empty_init();
 val_t NEW_ABraReassignExpr_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t p0, val_t p1, val_t p2, val_t p3);
-val_t NEW_ABraReassignExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABraReassignExpr_parser___parser_nodes___ANode___init();
 val_t NEW_ABraReassignExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 static const char * const LOCATE_syntax___typing___AInitExpr___name = "typing::AInitExpr::(typing::ASendExpr::name)";
 val_t syntax___typing___AInitExpr___name(val_t p0);
@@ -1073,7 +1101,7 @@ typedef val_t (*syntax___typing___AInitExpr___compute_raw_arguments_t)(val_t p0)
 val_t NEW_AInitExpr_parser___parser_prod___ASendExpr___empty_init();
 val_t NEW_AInitExpr_parser___parser_prod___AInitExpr___empty_init();
 val_t NEW_AInitExpr_parser___parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1, val_t p2);
-val_t NEW_AInitExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AInitExpr_parser___parser_nodes___ANode___init();
 val_t NEW_AInitExpr_parser___parser_prod___ASendExpr___init_asendexpr(val_t p0);
 static const char * const LOCATE_syntax___typing___AClosureCallExpr___variable = "typing::AClosureCallExpr::(syntax_base::AClosureCallExpr::variable)";
 val_t syntax___typing___AClosureCallExpr___variable(val_t p0);
@@ -1086,23 +1114,23 @@ void syntax___typing___AClosureCallExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AClosureCallExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(val_t p0, val_t p1, val_t p2);
 val_t NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___empty_init();
-val_t NEW_AClosureCallExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AClosureCallExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AClosureId___to_symbol = "typing::AClosureId::to_symbol";
 val_t syntax___typing___AClosureId___to_symbol(val_t p0);
 typedef val_t (*syntax___typing___AClosureId___to_symbol_t)(val_t p0);
-val_t NEW_AClosureId_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AClosureId_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ASimpleClosureId___to_symbol = "typing::ASimpleClosureId::(typing::AClosureId::to_symbol)";
 val_t syntax___typing___ASimpleClosureId___to_symbol(val_t p0);
 typedef val_t (*syntax___typing___ASimpleClosureId___to_symbol_t)(val_t p0);
 val_t NEW_ASimpleClosureId_parser___parser_prod___ASimpleClosureId___empty_init();
 val_t NEW_ASimpleClosureId_parser___parser_prod___ASimpleClosureId___init_asimpleclosureid(val_t p0);
-val_t NEW_ASimpleClosureId_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ASimpleClosureId_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ABreakClosureId___to_symbol = "typing::ABreakClosureId::(typing::AClosureId::to_symbol)";
 val_t syntax___typing___ABreakClosureId___to_symbol(val_t p0);
 typedef val_t (*syntax___typing___ABreakClosureId___to_symbol_t)(val_t p0);
 val_t NEW_ABreakClosureId_parser___parser_prod___ABreakClosureId___empty_init();
 val_t NEW_ABreakClosureId_parser___parser_prod___ABreakClosureId___init_abreakclosureid(val_t p0);
-val_t NEW_ABreakClosureId_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ABreakClosureId_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AClosureDef___closure = "typing::AClosureDef::(syntax_base::AClosureDef::closure)";
 val_t syntax___typing___AClosureDef___closure(val_t p0);
 typedef val_t (*syntax___typing___AClosureDef___closure_t)(val_t p0);
@@ -1117,37 +1145,49 @@ void syntax___typing___AClosureDef___accept_typing2(val_t p0, val_t p1, val_t p2
 typedef void (*syntax___typing___AClosureDef___accept_typing2_t)(val_t p0, val_t p1, val_t p2);
 val_t NEW_AClosureDef_parser___parser_prod___AClosureDef___empty_init();
 val_t NEW_AClosureDef_parser___parser_prod___AClosureDef___init_aclosuredef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
-val_t NEW_AClosureDef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AClosureDef_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___ATypeCheckExpr___check_expr_cast = "typing::ATypeCheckExpr::check_expr_cast";
 void syntax___typing___ATypeCheckExpr___check_expr_cast(val_t p0, val_t p1, val_t p2, val_t p3);
 typedef void (*syntax___typing___ATypeCheckExpr___check_expr_cast_t)(val_t p0, val_t p1, val_t p2, val_t p3);
-val_t NEW_ATypeCheckExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_ATypeCheckExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AIsaExpr___after_typing = "typing::AIsaExpr::(typing::ANode::after_typing)";
 void syntax___typing___AIsaExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AIsaExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AIsaExpr_parser___parser_prod___AIsaExpr___empty_init();
 val_t NEW_AIsaExpr_parser___parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val_t p1);
-val_t NEW_AIsaExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AIsaExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AAsCastExpr___after_typing = "typing::AAsCastExpr::(typing::ANode::after_typing)";
 void syntax___typing___AAsCastExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AAsCastExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___empty_init();
-val_t NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2);
-val_t NEW_AAsCastExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAsCastExpr_parser___parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+val_t NEW_AAsCastExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AAsNotnullExpr___after_typing = "typing::AAsNotnullExpr::(typing::ANode::after_typing)";
 void syntax___typing___AAsNotnullExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AAsNotnullExpr___after_typing_t)(val_t p0, val_t p1);
 val_t NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___empty_init();
-val_t NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3);
-val_t NEW_AAsNotnullExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AAsNotnullExpr_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5);
+val_t NEW_AAsNotnullExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AProxyExpr___after_typing = "typing::AProxyExpr::(typing::ANode::after_typing)";
 void syntax___typing___AProxyExpr___after_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AProxyExpr___after_typing_t)(val_t p0, val_t p1);
-val_t NEW_AProxyExpr_parser___parser_nodes___ANode___init(val_t p0);
+static const char * const LOCATE_syntax___typing___AProxyExpr___is_self = "typing::AProxyExpr::(typing::AExpr::is_self)";
+val_t syntax___typing___AProxyExpr___is_self(val_t p0);
+typedef val_t (*syntax___typing___AProxyExpr___is_self_t)(val_t p0);
+static const char * const LOCATE_syntax___typing___AProxyExpr___its_variable = "typing::AProxyExpr::(typing::AExpr::its_variable)";
+val_t syntax___typing___AProxyExpr___its_variable(val_t p0);
+typedef val_t (*syntax___typing___AProxyExpr___its_variable_t)(val_t p0);
+val_t NEW_AProxyExpr_parser___parser_nodes___ANode___init();
 static const char * const LOCATE_syntax___typing___AOnceExpr___accept_typing = "typing::AOnceExpr::(typing::ANode::accept_typing)";
 void syntax___typing___AOnceExpr___accept_typing(val_t p0, val_t p1);
 typedef void (*syntax___typing___AOnceExpr___accept_typing_t)(val_t p0, val_t p1);
 val_t NEW_AOnceExpr_parser___parser_prod___AOnceExpr___empty_init();
 val_t NEW_AOnceExpr_parser___parser_prod___AOnceExpr___init_aonceexpr(val_t p0, val_t p1);
-val_t NEW_AOnceExpr_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AOnceExpr_parser___parser_nodes___ANode___init();
+static const char * const LOCATE_syntax___typing___ADebugTypeExpr___after_typing = "typing::ADebugTypeExpr::(typing::ANode::after_typing)";
+void syntax___typing___ADebugTypeExpr___after_typing(val_t p0, val_t p1);
+typedef void (*syntax___typing___ADebugTypeExpr___after_typing_t)(val_t p0, val_t p1);
+val_t NEW_ADebugTypeExpr_parser___parser_prod___ADebugTypeExpr___empty_init();
+val_t NEW_ADebugTypeExpr_parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr(val_t p0, val_t p1, val_t p2, val_t p3);
+val_t NEW_ADebugTypeExpr_parser___parser_nodes___ANode___init();
 #endif
index c45e828..2ace60a 100644 (file)
@@ -1,5 +1,5 @@
 #include "tables._nitni.h"
-#include "../src/parser//tables_nit.h"
+#include "tables_nit.h"
 /* out/indirect function for tables::TablesCapable::lexer_goto */
 val_t TablesCapable_lexer_goto___out( val_t recv, val_t i, val_t j )
 {
index f899f51..3da30c6 100644 (file)
@@ -12,7 +12,7 @@ typedef struct s_TablesCapable *TablesCapable;
 #define TablesCapable_incr_ref( x ) nitni_global_ref_incr( (struct nitni_ref*)(x) )
 #define TablesCapable_decr_ref( x ) nitni_global_ref_decr( (struct nitni_ref*)(x) )
 #endif
-#include "../src/parser//tables_nit.h"
+#include "tables_nit.h"
 
 /* out/indirect function for tables::TablesCapable::lexer_goto */
 val_t TablesCapable_lexer_goto___out( val_t recv, val_t i, val_t j );
index 486af38..ec268ca 100644 (file)
@@ -92,233 +92,236 @@ static const int lexer_goto_row8[] = {
        14, 255, 53
 };
 static const int lexer_goto_row10[] = {
-       5,
+       7,
        0, 9, 56,
        11, 12, 56,
        14, 38, 56,
        39, 39, 57,
-       40, 255, 56
+       40, 91, 56,
+       92, 92, 58,
+       93, 255, 56
 };
 static const int lexer_goto_row14[] = {
        1,
-       61, 61, 58
+       61, 61, 59
 };
 static const int lexer_goto_row16[] = {
        1,
-       61, 61, 59
+       61, 61, 60
 };
 static const int lexer_goto_row17[] = {
        2,
-       46, 46, 60,
-       48, 57, 61
+       46, 46, 61,
+       48, 57, 62
 };
 static const int lexer_goto_row19[] = {
        2,
-       46, 46, 62,
+       46, 46, 63,
        48, 57, 18
 };
 static const int lexer_goto_row20[] = {
        1,
-       58, 58, 63
+       58, 58, 64
 };
 static const int lexer_goto_row21[] = {
        2,
-       60, 60, 64,
-       61, 61, 65
+       60, 60, 65,
+       61, 61, 66
 };
 static const int lexer_goto_row22[] = {
        1,
-       61, 61, 66
+       61, 61, 67
 };
 static const int lexer_goto_row23[] = {
        2,
-       61, 61, 67,
-       62, 62, 68
+       61, 61, 68,
+       62, 62, 69
 };
 static const int lexer_goto_row24[] = {
        4,
-       48, 57, 69,
-       65, 90, 70,
-       95, 95, 71,
-       97, 122, 72
+       48, 57, 70,
+       65, 90, 71,
+       95, 95, 72,
+       97, 122, 73
 };
 static const int lexer_goto_row27[] = {
-       1,
-       97, 122, 73
+       2,
+       95, 95, 74,
+       97, 122, 75
 };
 static const int lexer_goto_row28[] = {
        10,
-       48, 57, 74,
-       65, 90, 75,
-       95, 95, 76,
-       97, 97, 77,
-       98, 98, 78,
-       99, 109, 77,
-       110, 110, 79,
-       111, 114, 77,
-       115, 115, 80,
-       116, 122, 77
+       48, 57, 76,
+       65, 90, 77,
+       95, 95, 78,
+       97, 97, 79,
+       98, 98, 80,
+       99, 109, 79,
+       110, 110, 81,
+       111, 114, 79,
+       115, 115, 82,
+       116, 122, 79
 };
 static const int lexer_goto_row29[] = {
        4,
        48, 95, -29,
-       97, 113, 77,
-       114, 114, 81,
-       115, 122, 77
+       97, 113, 79,
+       114, 114, 83,
+       115, 122, 79
 };
 static const int lexer_goto_row30[] = {
        6,
        48, 95, -29,
-       97, 107, 77,
-       108, 108, 82,
-       109, 110, 77,
-       111, 111, 83,
-       112, 122, 77
+       97, 107, 79,
+       108, 108, 84,
+       109, 110, 79,
+       111, 111, 85,
+       112, 122, 79
 };
 static const int lexer_goto_row31[] = {
        4,
        48, 95, -29,
-       97, 110, 77,
-       111, 111, 84,
-       112, 122, 77
+       97, 110, 79,
+       111, 111, 86,
+       112, 122, 79
 };
 static const int lexer_goto_row32[] = {
        7,
        48, 107, -31,
-       108, 108, 85,
-       109, 109, 77,
-       110, 110, 86,
-       111, 119, 77,
-       120, 120, 87,
-       121, 122, 77
+       108, 108, 87,
+       109, 109, 79,
+       110, 110, 88,
+       111, 119, 79,
+       120, 120, 89,
+       121, 122, 79
 };
 static const int lexer_goto_row33[] = {
        7,
        48, 95, -29,
-       97, 97, 88,
-       98, 110, 77,
-       111, 111, 89,
-       112, 116, 77,
-       117, 117, 90,
-       118, 122, 77
+       97, 97, 90,
+       98, 110, 79,
+       111, 111, 91,
+       112, 116, 79,
+       117, 117, 92,
+       118, 122, 79
 };
 static const int lexer_goto_row34[] = {
        2,
        48, 95, -29,
-       97, 122, 77
+       97, 122, 79
 };
 static const int lexer_goto_row35[] = {
        9,
        48, 95, -29,
-       97, 101, 77,
-       102, 102, 91,
-       103, 108, 77,
-       109, 109, 92,
-       110, 110, 93,
-       111, 114, 77,
-       115, 115, 94,
-       116, 122, 77
+       97, 101, 79,
+       102, 102, 93,
+       103, 108, 79,
+       109, 109, 94,
+       110, 110, 95,
+       111, 114, 79,
+       115, 115, 96,
+       116, 122, 79
 };
 static const int lexer_goto_row36[] = {
        5,
        48, 95, -29,
-       97, 97, 95,
-       98, 110, 77,
-       111, 111, 96,
-       112, 122, 77
+       97, 97, 97,
+       98, 110, 79,
+       111, 111, 98,
+       112, 122, 79
 };
 static const int lexer_goto_row37[] = {
        3,
        48, 110, -32,
-       111, 111, 97,
-       112, 122, 77
+       111, 111, 99,
+       112, 122, 79
 };
 static const int lexer_goto_row38[] = {
        8,
        48, 95, -29,
-       97, 100, 77,
-       101, 101, 98,
-       102, 110, 77,
-       111, 111, 99,
-       112, 116, 77,
-       117, 117, 100,
-       118, 122, 77
+       97, 100, 79,
+       101, 101, 100,
+       102, 110, 79,
+       111, 111, 101,
+       112, 116, 79,
+       117, 117, 102,
+       118, 122, 79
 };
 static const int lexer_goto_row39[] = {
        6,
        48, 95, -29,
-       97, 109, 77,
-       110, 110, 101,
-       111, 113, 77,
-       114, 114, 102,
-       115, 122, 77
+       97, 109, 79,
+       110, 110, 103,
+       111, 113, 79,
+       114, 114, 104,
+       115, 122, 79
 };
 static const int lexer_goto_row40[] = {
        5,
        48, 95, -29,
-       97, 97, 103,
-       98, 113, 77,
-       114, 114, 104,
-       115, 122, 77
+       97, 97, 105,
+       98, 113, 79,
+       114, 114, 106,
+       115, 122, 79
 };
 static const int lexer_goto_row41[] = {
        3,
        48, 100, -39,
-       101, 101, 105,
-       102, 122, 77
+       101, 101, 107,
+       102, 122, 79
 };
 static const int lexer_goto_row42[] = {
        7,
        48, 100, -39,
-       101, 101, 106,
-       102, 111, 77,
-       112, 112, 107,
-       113, 116, 77,
-       117, 117, 108,
-       118, 122, 77
+       101, 101, 108,
+       102, 111, 79,
+       112, 112, 109,
+       113, 116, 79,
+       117, 117, 110,
+       118, 122, 79
 };
 static const int lexer_goto_row43[] = {
        8,
        48, 95, -29,
-       97, 103, 77,
-       104, 104, 109,
-       105, 113, 77,
-       114, 114, 110,
-       115, 120, 77,
-       121, 121, 111,
-       122, 122, 77
+       97, 103, 79,
+       104, 104, 111,
+       105, 113, 79,
+       114, 114, 112,
+       115, 120, 79,
+       121, 121, 113,
+       122, 122, 79
 };
 static const int lexer_goto_row44[] = {
        3,
        48, 109, -40,
-       110, 110, 112,
-       111, 122, 77
+       110, 110, 114,
+       111, 122, 79
 };
 static const int lexer_goto_row45[] = {
        3,
        48, 95, -29,
-       97, 97, 113,
-       98, 122, 77
+       97, 97, 115,
+       98, 122, 79
 };
 static const int lexer_goto_row46[] = {
        5,
        48, 103, -44,
-       104, 104, 114,
-       105, 113, 77,
-       114, 114, 115,
-       115, 122, 77
+       104, 104, 116,
+       105, 113, 79,
+       114, 114, 117,
+       115, 122, 79
 };
 static const int lexer_goto_row47[] = {
        9,
-       0, 9, 116,
-       11, 12, 116,
-       14, 33, 116,
-       34, 34, 117,
-       35, 91, 116,
-       92, 92, 118,
-       93, 122, 116,
-       123, 123, 119,
-       124, 255, 116
+       0, 9, 118,
+       11, 12, 118,
+       14, 33, 118,
+       34, 34, 119,
+       35, 91, 118,
+       92, 92, 120,
+       93, 122, 118,
+       123, 123, 121,
+       124, 255, 118
 };
 static const int lexer_goto_row50[] = {
        1,
@@ -326,9 +329,9 @@ static const int lexer_goto_row50[] = {
 };
 static const int lexer_goto_row52[] = {
        3,
-       0, 9, 120,
-       11, 12, 120,
-       14, 255, 120
+       0, 9, 122,
+       11, 12, 122,
+       14, 255, 122
 };
 static const int lexer_goto_row54[] = {
        1,
@@ -336,31 +339,33 @@ static const int lexer_goto_row54[] = {
 };
 static const int lexer_goto_row56[] = {
        1,
-       10, 10, 121
+       10, 10, 123
 };
 static const int lexer_goto_row57[] = {
        1,
-       0, 255, -11
+       39, 39, 124
 };
-static const int lexer_goto_row61[] = {
-       1,
-       46, 46, 122
+static const int lexer_goto_row59[] = {
+       3,
+       0, 9, 125,
+       11, 12, 125,
+       14, 255, 125
 };
 static const int lexer_goto_row62[] = {
        1,
-       48, 57, 61
+       46, 46, 126
 };
 static const int lexer_goto_row63[] = {
        1,
-       48, 57, 61
+       48, 57, 62
 };
-static const int lexer_goto_row66[] = {
+static const int lexer_goto_row64[] = {
        1,
-       62, 62, 123
+       48, 57, 62
 };
-static const int lexer_goto_row70[] = {
+static const int lexer_goto_row67[] = {
        1,
-       48, 122, -25
+       62, 62, 127
 };
 static const int lexer_goto_row71[] = {
        1,
@@ -375,19 +380,19 @@ static const int lexer_goto_row73[] = {
        48, 122, -25
 };
 static const int lexer_goto_row74[] = {
-       4,
-       48, 57, 124,
-       65, 90, 125,
-       95, 95, 126,
-       97, 122, 127
+       1,
+       48, 122, -25
 };
 static const int lexer_goto_row75[] = {
        1,
-       48, 122, -35
+       100, 100, 128
 };
 static const int lexer_goto_row76[] = {
-       1,
-       48, 122, -35
+       4,
+       48, 57, 129,
+       65, 90, 130,
+       95, 95, 131,
+       97, 122, 132
 };
 static const int lexer_goto_row77[] = {
        1,
@@ -398,1064 +403,1100 @@ static const int lexer_goto_row78[] = {
        48, 122, -35
 };
 static const int lexer_goto_row79[] = {
+       1,
+       48, 122, -35
+};
+static const int lexer_goto_row80[] = {
+       1,
+       48, 122, -35
+};
+static const int lexer_goto_row81[] = {
        5,
        48, 110, -32,
-       111, 111, 128,
-       112, 114, 77,
-       115, 115, 129,
-       116, 122, 77
+       111, 111, 133,
+       112, 114, 79,
+       115, 115, 134,
+       116, 122, 79
 };
-static const int lexer_goto_row80[] = {
+static const int lexer_goto_row82[] = {
        4,
        48, 95, -29,
-       97, 99, 77,
-       100, 100, 130,
-       101, 122, 77
+       97, 99, 79,
+       100, 100, 135,
+       101, 122, 79
 };
-static const int lexer_goto_row81[] = {
+static const int lexer_goto_row83[] = {
        4,
        48, 95, -29,
-       97, 114, 77,
-       115, 115, 131,
-       116, 122, 77
+       97, 114, 79,
+       115, 115, 136,
+       116, 122, 79
 };
-static const int lexer_goto_row82[] = {
+static const int lexer_goto_row84[] = {
        3,
        48, 100, -39,
-       101, 101, 132,
-       102, 122, 77
+       101, 101, 137,
+       102, 122, 79
 };
-static const int lexer_goto_row83[] = {
+static const int lexer_goto_row85[] = {
        3,
        48, 95, -29,
-       97, 97, 133,
-       98, 122, 77
+       97, 97, 138,
+       98, 122, 79
 };
-static const int lexer_goto_row84[] = {
+static const int lexer_goto_row86[] = {
        3,
        48, 109, -40,
-       110, 110, 134,
-       111, 122, 77
+       110, 110, 139,
+       111, 122, 79
 };
-static const int lexer_goto_row85[] = {
+static const int lexer_goto_row87[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row86[] = {
+static const int lexer_goto_row88[] = {
        3,
-       48, 114, -82,
-       115, 115, 135,
-       116, 122, 77
+       48, 114, -84,
+       115, 115, 140,
+       116, 122, 79
 };
-static const int lexer_goto_row87[] = {
+static const int lexer_goto_row89[] = {
        5,
-       48, 99, -81,
-       100, 100, 136,
-       101, 116, 77,
-       117, 117, 137,
-       118, 122, 77
+       48, 99, -83,
+       100, 100, 141,
+       101, 116, 79,
+       117, 117, 142,
+       118, 122, 79
 };
-static const int lexer_goto_row88[] = {
+static const int lexer_goto_row90[] = {
        4,
        48, 95, -29,
-       97, 115, 77,
-       116, 116, 138,
-       117, 122, 77
+       97, 115, 79,
+       116, 116, 143,
+       117, 122, 79
 };
-static const int lexer_goto_row89[] = {
+static const int lexer_goto_row91[] = {
        3,
        48, 107, -31,
-       108, 108, 139,
-       109, 122, 77
+       108, 108, 144,
+       109, 122, 79
 };
-static const int lexer_goto_row90[] = {
+static const int lexer_goto_row92[] = {
        3,
        48, 113, -30,
-       114, 114, 140,
-       115, 122, 77
+       114, 114, 145,
+       115, 122, 79
 };
-static const int lexer_goto_row91[] = {
+static const int lexer_goto_row93[] = {
        3,
        48, 109, -40,
-       110, 110, 141,
-       111, 122, 77
+       110, 110, 146,
+       111, 122, 79
 };
-static const int lexer_goto_row92[] = {
+static const int lexer_goto_row94[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row93[] = {
+static const int lexer_goto_row95[] = {
        4,
        48, 95, -29,
-       97, 111, 77,
-       112, 112, 142,
-       113, 122, 77
+       97, 111, 79,
+       112, 112, 147,
+       113, 122, 79
 };
-static const int lexer_goto_row94[] = {
+static const int lexer_goto_row96[] = {
        6,
        48, 95, -29,
-       97, 104, 77,
-       105, 105, 143,
-       106, 115, 77,
-       116, 116, 144,
-       117, 122, 77
+       97, 104, 79,
+       105, 105, 148,
+       106, 115, 79,
+       116, 116, 149,
+       117, 122, 79
 };
-static const int lexer_goto_row95[] = {
+static const int lexer_goto_row97[] = {
        5,
        48, 95, -29,
-       97, 97, 145,
-       98, 114, 77,
-       115, 115, 146,
-       116, 122, 77
+       97, 97, 150,
+       98, 114, 79,
+       115, 115, 151,
+       116, 122, 79
 };
-static const int lexer_goto_row96[] = {
+static const int lexer_goto_row98[] = {
        3,
        48, 97, -29,
-       98, 98, 147,
-       99, 122, 77
+       98, 98, 152,
+       99, 122, 79
 };
-static const int lexer_goto_row97[] = {
+static const int lexer_goto_row99[] = {
        3,
        48, 110, -32,
-       111, 111, 148,
-       112, 122, 77
+       111, 111, 153,
+       112, 122, 79
 };
-static const int lexer_goto_row98[] = {
+static const int lexer_goto_row100[] = {
        3,
-       48, 99, -81,
-       100, 100, 149,
-       101, 122, 77
+       48, 99, -83,
+       100, 100, 154,
+       101, 122, 79
 };
-static const int lexer_goto_row99[] = {
+static const int lexer_goto_row101[] = {
        4,
        48, 95, -29,
-       97, 118, 77,
-       119, 119, 150,
-       120, 122, 77
+       97, 118, 79,
+       119, 119, 155,
+       120, 122, 79
 };
-static const int lexer_goto_row100[] = {
+static const int lexer_goto_row102[] = {
        3,
-       48, 115, -89,
-       116, 116, 151,
-       117, 122, 77
+       48, 115, -91,
+       116, 116, 156,
+       117, 122, 79
 };
-static const int lexer_goto_row101[] = {
+static const int lexer_goto_row103[] = {
        3,
        48, 107, -31,
-       108, 108, 152,
-       109, 122, 77
+       108, 108, 157,
+       109, 122, 79
 };
-static const int lexer_goto_row102[] = {
+static const int lexer_goto_row104[] = {
        4,
        48, 95, -29,
-       97, 98, 77,
-       99, 99, 153,
-       100, 122, 77
+       97, 98, 79,
+       99, 99, 158,
+       100, 122, 79
 };
-static const int lexer_goto_row103[] = {
+static const int lexer_goto_row105[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row104[] = {
+static const int lexer_goto_row106[] = {
        3,
-       48, 98, -103,
-       99, 99, 154,
-       100, 122, 77
+       48, 98, -105,
+       99, 99, 159,
+       100, 122, 79
 };
-static const int lexer_goto_row105[] = {
+static const int lexer_goto_row107[] = {
        5,
-       48, 104, -95,
-       105, 105, 155,
-       106, 110, 77,
-       111, 111, 156,
-       112, 122, 77
+       48, 104, -97,
+       105, 105, 160,
+       106, 110, 79,
+       111, 111, 161,
+       112, 122, 79
 };
-static const int lexer_goto_row106[] = {
+static const int lexer_goto_row108[] = {
        7,
        48, 95, -29,
-       97, 97, 157,
-       98, 99, 77,
-       100, 100, 158,
-       101, 115, 77,
-       116, 116, 159,
-       117, 122, 77
+       97, 97, 162,
+       98, 99, 79,
+       100, 100, 163,
+       101, 115, 79,
+       116, 116, 164,
+       117, 122, 79
 };
-static const int lexer_goto_row107[] = {
+static const int lexer_goto_row109[] = {
        3,
        48, 107, -31,
-       108, 108, 160,
-       109, 122, 77
+       108, 108, 165,
+       109, 122, 79
 };
-static const int lexer_goto_row108[] = {
+static const int lexer_goto_row110[] = {
        3,
        48, 100, -39,
-       101, 101, 161,
-       102, 122, 77
+       101, 101, 166,
+       102, 122, 79
 };
-static const int lexer_goto_row109[] = {
+static const int lexer_goto_row111[] = {
        3,
-       48, 111, -94,
-       112, 112, 162,
-       113, 122, 77
+       48, 111, -96,
+       112, 112, 167,
+       113, 122, 79
 };
-static const int lexer_goto_row110[] = {
+static const int lexer_goto_row112[] = {
        3,
        48, 100, -39,
-       101, 101, 163,
-       102, 122, 77
+       101, 101, 168,
+       102, 122, 79
 };
-static const int lexer_goto_row111[] = {
+static const int lexer_goto_row113[] = {
        4,
        48, 95, -29,
-       97, 116, 77,
-       117, 117, 164,
-       118, 122, 77
+       97, 116, 79,
+       117, 117, 169,
+       118, 122, 79
 };
-static const int lexer_goto_row112[] = {
+static const int lexer_goto_row114[] = {
        3,
-       48, 111, -94,
-       112, 112, 165,
-       113, 122, 77
+       48, 111, -96,
+       112, 112, 170,
+       113, 122, 79
 };
-static const int lexer_goto_row113[] = {
+static const int lexer_goto_row115[] = {
        3,
-       48, 104, -95,
-       105, 105, 166,
-       106, 122, 77
+       48, 104, -97,
+       105, 105, 171,
+       106, 122, 79
 };
-static const int lexer_goto_row114[] = {
+static const int lexer_goto_row116[] = {
        3,
        48, 113, -30,
-       114, 114, 167,
-       115, 122, 77
+       114, 114, 172,
+       115, 122, 79
 };
-static const int lexer_goto_row115[] = {
+static const int lexer_goto_row117[] = {
        3,
-       48, 104, -95,
-       105, 105, 168,
-       106, 122, 77
+       48, 104, -97,
+       105, 105, 173,
+       106, 122, 79
 };
-static const int lexer_goto_row116[] = {
+static const int lexer_goto_row118[] = {
        3,
-       48, 104, -95,
-       105, 105, 169,
-       106, 122, 77
+       48, 104, -97,
+       105, 105, 174,
+       106, 122, 79
 };
-static const int lexer_goto_row117[] = {
+static const int lexer_goto_row119[] = {
        1,
        0, 255, -48
 };
-static const int lexer_goto_row119[] = {
+static const int lexer_goto_row121[] = {
        3,
-       0, 9, 170,
-       11, 12, 170,
-       14, 255, 170
+       0, 9, 175,
+       11, 12, 175,
+       14, 255, 175
 };
-static const int lexer_goto_row121[] = {
+static const int lexer_goto_row123[] = {
        1,
        0, 255, -8
 };
-static const int lexer_goto_row125[] = {
+static const int lexer_goto_row126[] = {
        1,
-       48, 122, -75
+       39, 39, 176
 };
-static const int lexer_goto_row126[] = {
+static const int lexer_goto_row129[] = {
        1,
-       48, 122, -75
+       101, 101, 177
 };
-static const int lexer_goto_row127[] = {
+static const int lexer_goto_row130[] = {
        1,
-       48, 122, -75
+       48, 122, -77
 };
-static const int lexer_goto_row128[] = {
+static const int lexer_goto_row131[] = {
        1,
-       48, 122, -75
+       48, 122, -77
 };
-static const int lexer_goto_row129[] = {
+static const int lexer_goto_row132[] = {
+       1,
+       48, 122, -77
+};
+static const int lexer_goto_row133[] = {
+       1,
+       48, 122, -77
+};
+static const int lexer_goto_row134[] = {
        3,
        48, 113, -30,
-       114, 114, 171,
-       115, 122, 77
+       114, 114, 178,
+       115, 122, 79
 };
-static const int lexer_goto_row130[] = {
+static const int lexer_goto_row135[] = {
        3,
-       48, 115, -89,
-       116, 116, 172,
-       117, 122, 77
+       48, 115, -91,
+       116, 116, 179,
+       117, 122, 79
 };
-static const int lexer_goto_row131[] = {
+static const int lexer_goto_row136[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row132[] = {
+static const int lexer_goto_row137[] = {
        3,
        48, 100, -39,
-       101, 101, 173,
-       102, 122, 77
+       101, 101, 180,
+       102, 122, 79
 };
-static const int lexer_goto_row133[] = {
+static const int lexer_goto_row138[] = {
        3,
        48, 95, -29,
-       97, 97, 174,
-       98, 122, 77
+       97, 97, 181,
+       98, 122, 79
 };
-static const int lexer_goto_row134[] = {
+static const int lexer_goto_row139[] = {
        3,
-       48, 114, -82,
-       115, 115, 175,
-       116, 122, 77
+       48, 114, -84,
+       115, 115, 182,
+       116, 122, 79
 };
-static const int lexer_goto_row135[] = {
+static const int lexer_goto_row140[] = {
        3,
-       48, 115, -89,
-       116, 116, 176,
-       117, 122, 77
+       48, 115, -91,
+       116, 116, 183,
+       117, 122, 79
 };
-static const int lexer_goto_row136[] = {
+static const int lexer_goto_row141[] = {
        3,
        48, 100, -39,
-       101, 101, 177,
-       102, 122, 77
+       101, 101, 184,
+       102, 122, 79
 };
-static const int lexer_goto_row137[] = {
+static const int lexer_goto_row142[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row138[] = {
+static const int lexer_goto_row143[] = {
        4,
        48, 95, -29,
-       97, 108, 77,
-       109, 109, 178,
-       110, 122, 77
+       97, 108, 79,
+       109, 109, 185,
+       110, 122, 79
 };
-static const int lexer_goto_row139[] = {
+static const int lexer_goto_row144[] = {
        3,
        48, 100, -39,
-       101, 101, 179,
-       102, 122, 77
+       101, 101, 186,
+       102, 122, 79
 };
-static const int lexer_goto_row140[] = {
+static const int lexer_goto_row145[] = {
        3,
-       48, 114, -82,
-       115, 115, 180,
-       116, 122, 77
+       48, 114, -84,
+       115, 115, 187,
+       116, 122, 79
 };
-static const int lexer_goto_row141[] = {
+static const int lexer_goto_row146[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row142[] = {
+static const int lexer_goto_row147[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row143[] = {
+static const int lexer_goto_row148[] = {
        3,
        48, 110, -32,
-       111, 111, 181,
-       112, 122, 77
+       111, 111, 188,
+       112, 122, 79
 };
-static const int lexer_goto_row144[] = {
+static const int lexer_goto_row149[] = {
        3,
-       48, 115, -89,
-       116, 116, 182,
-       117, 122, 77
+       48, 115, -91,
+       116, 116, 189,
+       117, 122, 79
 };
-static const int lexer_goto_row145[] = {
+static const int lexer_goto_row150[] = {
        5,
        48, 100, -39,
-       101, 101, 183,
-       102, 113, 77,
-       114, 114, 184,
-       115, 122, 77
+       101, 101, 190,
+       102, 113, 79,
+       114, 114, 191,
+       115, 122, 79
 };
-static const int lexer_goto_row146[] = {
+static const int lexer_goto_row151[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row147[] = {
+static const int lexer_goto_row152[] = {
        3,
        48, 100, -39,
-       101, 101, 185,
-       102, 122, 77
+       101, 101, 192,
+       102, 122, 79
 };
-static const int lexer_goto_row148[] = {
+static const int lexer_goto_row153[] = {
        3,
        48, 100, -39,
-       101, 101, 186,
-       102, 122, 77
+       101, 101, 193,
+       102, 122, 79
 };
-static const int lexer_goto_row149[] = {
+static const int lexer_goto_row154[] = {
        3,
-       48, 111, -94,
-       112, 112, 187,
-       113, 122, 77
+       48, 111, -96,
+       112, 112, 194,
+       113, 122, 79
 };
-static const int lexer_goto_row150[] = {
+static const int lexer_goto_row155[] = {
        3,
-       48, 116, -112,
-       117, 117, 188,
-       118, 122, 77
+       48, 116, -114,
+       117, 117, 195,
+       118, 122, 79
 };
-static const int lexer_goto_row151[] = {
+static const int lexer_goto_row156[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row152[] = {
+static const int lexer_goto_row157[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row153[] = {
+static const int lexer_goto_row158[] = {
        3,
        48, 107, -31,
-       108, 108, 189,
-       109, 122, 77
+       108, 108, 196,
+       109, 122, 79
 };
-static const int lexer_goto_row154[] = {
+static const int lexer_goto_row159[] = {
        3,
        48, 100, -39,
-       101, 101, 190,
-       102, 122, 77
+       101, 101, 197,
+       102, 122, 79
 };
-static const int lexer_goto_row155[] = {
+static const int lexer_goto_row160[] = {
        4,
        48, 95, -29,
-       97, 106, 77,
-       107, 107, 191,
-       108, 122, 77
+       97, 106, 79,
+       107, 107, 198,
+       108, 122, 79
 };
-static const int lexer_goto_row156[] = {
+static const int lexer_goto_row161[] = {
        4,
        48, 95, -29,
-       97, 117, 77,
-       118, 118, 192,
-       119, 122, 77
+       97, 117, 79,
+       118, 118, 199,
+       119, 122, 79
 };
-static const int lexer_goto_row157[] = {
+static const int lexer_goto_row162[] = {
        3,
-       48, 115, -89,
-       116, 116, 193,
-       117, 122, 77
+       48, 115, -91,
+       116, 116, 200,
+       117, 122, 79
 };
-static const int lexer_goto_row158[] = {
+static const int lexer_goto_row163[] = {
        3,
-       48, 99, -81,
-       100, 100, 194,
-       101, 122, 77
+       48, 99, -83,
+       100, 100, 201,
+       101, 122, 79
 };
-static const int lexer_goto_row159[] = {
+static const int lexer_goto_row164[] = {
        3,
        48, 100, -39,
-       101, 101, 195,
-       102, 122, 77
+       101, 101, 202,
+       102, 122, 79
 };
-static const int lexer_goto_row160[] = {
+static const int lexer_goto_row165[] = {
        3,
-       48, 116, -112,
-       117, 117, 196,
-       118, 122, 77
+       48, 116, -114,
+       117, 117, 203,
+       118, 122, 79
 };
-static const int lexer_goto_row161[] = {
+static const int lexer_goto_row166[] = {
        3,
        48, 101, -36,
-       102, 102, 197,
-       103, 122, 77
+       102, 102, 204,
+       103, 122, 79
 };
-static const int lexer_goto_row162[] = {
+static const int lexer_goto_row167[] = {
        3,
-       48, 98, -103,
-       99, 99, 198,
-       100, 122, 77
+       48, 98, -105,
+       99, 99, 205,
+       100, 122, 79
 };
-static const int lexer_goto_row163[] = {
+static const int lexer_goto_row168[] = {
        3,
        48, 100, -39,
-       101, 101, 199,
-       102, 122, 77
+       101, 101, 206,
+       102, 122, 79
 };
-static const int lexer_goto_row164[] = {
+static const int lexer_goto_row169[] = {
        3,
        48, 109, -40,
-       110, 110, 200,
-       111, 122, 77
+       110, 110, 207,
+       111, 122, 79
 };
-static const int lexer_goto_row165[] = {
+static const int lexer_goto_row170[] = {
        3,
        48, 100, -39,
-       101, 101, 201,
-       102, 122, 77
+       101, 101, 208,
+       102, 122, 79
 };
-static const int lexer_goto_row166[] = {
+static const int lexer_goto_row171[] = {
        3,
        48, 100, -39,
-       101, 101, 202,
-       102, 122, 77
+       101, 101, 209,
+       102, 122, 79
 };
-static const int lexer_goto_row167[] = {
+static const int lexer_goto_row172[] = {
        3,
-       48, 117, -157,
-       118, 118, 203,
-       119, 122, 77
+       48, 117, -162,
+       118, 118, 210,
+       119, 122, 79
 };
-static const int lexer_goto_row168[] = {
+static const int lexer_goto_row173[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row169[] = {
+static const int lexer_goto_row174[] = {
        3,
        48, 107, -31,
-       108, 108, 204,
-       109, 122, 77
+       108, 108, 211,
+       109, 122, 79
 };
-static const int lexer_goto_row170[] = {
+static const int lexer_goto_row175[] = {
        3,
-       48, 115, -89,
-       116, 116, 205,
-       117, 122, 77
+       48, 115, -91,
+       116, 116, 212,
+       117, 122, 79
 };
-static const int lexer_goto_row171[] = {
+static const int lexer_goto_row176[] = {
        1,
        0, 255, -48
 };
-static const int lexer_goto_row172[] = {
+static const int lexer_goto_row178[] = {
+       1,
+       98, 98, 213
+};
+static const int lexer_goto_row179[] = {
        3,
-       48, 115, -89,
-       116, 116, 206,
-       117, 122, 77
+       48, 115, -91,
+       116, 116, 214,
+       117, 122, 79
 };
-static const int lexer_goto_row173[] = {
+static const int lexer_goto_row180[] = {
        3,
        48, 113, -30,
-       114, 114, 207,
-       115, 122, 77
+       114, 114, 215,
+       115, 122, 79
 };
-static const int lexer_goto_row174[] = {
+static const int lexer_goto_row181[] = {
        3,
        48, 113, -30,
-       114, 114, 208,
-       115, 122, 77
+       114, 114, 216,
+       115, 122, 79
 };
-static const int lexer_goto_row175[] = {
+static const int lexer_goto_row182[] = {
        3,
-       48, 106, -156,
-       107, 107, 209,
-       108, 122, 77
+       48, 106, -161,
+       107, 107, 217,
+       108, 122, 79
 };
-static const int lexer_goto_row176[] = {
+static const int lexer_goto_row183[] = {
        3,
-       48, 114, -82,
-       115, 115, 210,
-       116, 122, 77
+       48, 114, -84,
+       115, 115, 218,
+       116, 122, 79
 };
-static const int lexer_goto_row177[] = {
+static const int lexer_goto_row184[] = {
        3,
-       48, 104, -95,
-       105, 105, 211,
-       106, 122, 77
+       48, 104, -97,
+       105, 105, 219,
+       106, 122, 79
 };
-static const int lexer_goto_row178[] = {
+static const int lexer_goto_row185[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row179[] = {
+static const int lexer_goto_row186[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row180[] = {
+static const int lexer_goto_row187[] = {
        3,
        48, 113, -30,
-       114, 114, 212,
-       115, 122, 77
+       114, 114, 220,
+       115, 122, 79
 };
-static const int lexer_goto_row181[] = {
+static const int lexer_goto_row188[] = {
        3,
        48, 100, -39,
-       101, 101, 213,
-       102, 122, 77
+       101, 101, 221,
+       102, 122, 79
 };
-static const int lexer_goto_row182[] = {
+static const int lexer_goto_row189[] = {
        3,
        48, 113, -30,
-       114, 114, 214,
-       115, 122, 77
+       114, 114, 222,
+       115, 122, 79
 };
-static const int lexer_goto_row183[] = {
+static const int lexer_goto_row190[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row184[] = {
+static const int lexer_goto_row191[] = {
        3,
        48, 113, -30,
-       114, 114, 215,
-       115, 122, 77
+       114, 114, 223,
+       115, 122, 79
 };
-static const int lexer_goto_row185[] = {
+static const int lexer_goto_row192[] = {
        3,
-       48, 116, -112,
-       117, 117, 216,
-       118, 122, 77
+       48, 116, -114,
+       117, 117, 224,
+       118, 122, 79
 };
-static const int lexer_goto_row186[] = {
+static const int lexer_goto_row193[] = {
        3,
-       48, 115, -89,
-       116, 116, 217,
-       117, 122, 77
+       48, 115, -91,
+       116, 116, 225,
+       117, 122, 79
 };
-static const int lexer_goto_row187[] = {
+static const int lexer_goto_row194[] = {
        3,
        48, 107, -31,
-       108, 108, 218,
-       109, 122, 77
+       108, 108, 226,
+       109, 122, 79
 };
-static const int lexer_goto_row188[] = {
+static const int lexer_goto_row195[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row189[] = {
+static const int lexer_goto_row196[] = {
        3,
        48, 107, -31,
-       108, 108, 219,
-       109, 122, 77
+       108, 108, 227,
+       109, 122, 79
 };
-static const int lexer_goto_row190[] = {
+static const int lexer_goto_row197[] = {
        3,
        48, 95, -29,
-       97, 97, 220,
-       98, 122, 77
+       97, 97, 228,
+       98, 122, 79
 };
-static const int lexer_goto_row191[] = {
+static const int lexer_goto_row198[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row192[] = {
+static const int lexer_goto_row199[] = {
        3,
        48, 95, -29,
-       97, 97, 221,
-       98, 122, 77
+       97, 97, 229,
+       98, 122, 79
 };
-static const int lexer_goto_row193[] = {
+static const int lexer_goto_row200[] = {
        3,
        48, 95, -29,
-       97, 97, 222,
-       98, 122, 77
+       97, 97, 230,
+       98, 122, 79
 };
-static const int lexer_goto_row194[] = {
+static const int lexer_goto_row201[] = {
        3,
        48, 100, -39,
-       101, 101, 223,
-       102, 122, 77
+       101, 101, 231,
+       102, 122, 79
 };
-static const int lexer_goto_row195[] = {
+static const int lexer_goto_row202[] = {
        3,
        48, 95, -29,
-       97, 97, 224,
-       98, 122, 77
+       97, 97, 232,
+       98, 122, 79
 };
-static const int lexer_goto_row196[] = {
+static const int lexer_goto_row203[] = {
        3,
        48, 101, -36,
-       102, 102, 225,
-       103, 122, 77
+       102, 102, 233,
+       103, 122, 79
 };
-static const int lexer_goto_row197[] = {
+static const int lexer_goto_row204[] = {
        3,
        48, 113, -30,
-       114, 114, 226,
-       115, 122, 77
+       114, 114, 234,
+       115, 122, 79
 };
-static const int lexer_goto_row198[] = {
+static const int lexer_goto_row205[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row199[] = {
+static const int lexer_goto_row206[] = {
        3,
-       48, 104, -95,
-       105, 105, 227,
-       106, 122, 77
+       48, 104, -97,
+       105, 105, 235,
+       106, 122, 79
 };
-static const int lexer_goto_row200[] = {
+static const int lexer_goto_row207[] = {
        3,
        48, 113, -30,
-       114, 114, 228,
-       115, 122, 77
+       114, 114, 236,
+       115, 122, 79
 };
-static const int lexer_goto_row201[] = {
+static const int lexer_goto_row208[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row202[] = {
+static const int lexer_goto_row209[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row203[] = {
+static const int lexer_goto_row210[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row204[] = {
+static const int lexer_goto_row211[] = {
        3,
        48, 100, -39,
-       101, 101, 229,
-       102, 122, 77
+       101, 101, 237,
+       102, 122, 79
 };
-static const int lexer_goto_row205[] = {
+static const int lexer_goto_row212[] = {
        3,
        48, 100, -39,
-       101, 101, 230,
-       102, 122, 77
+       101, 101, 238,
+       102, 122, 79
 };
-static const int lexer_goto_row206[] = {
+static const int lexer_goto_row213[] = {
        3,
        48, 95, -29,
-       97, 97, 231,
-       98, 122, 77
+       97, 97, 239,
+       98, 122, 79
 };
-static const int lexer_goto_row207[] = {
+static const int lexer_goto_row214[] = {
+       1,
+       117, 117, 240
+};
+static const int lexer_goto_row215[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row208[] = {
+static const int lexer_goto_row216[] = {
        3,
        48, 95, -29,
-       97, 97, 232,
-       98, 122, 77
+       97, 97, 241,
+       98, 122, 79
 };
-static const int lexer_goto_row209[] = {
+static const int lexer_goto_row217[] = {
        3,
-       48, 115, -89,
-       116, 116, 233,
-       117, 122, 77
+       48, 115, -91,
+       116, 116, 242,
+       117, 122, 79
 };
-static const int lexer_goto_row210[] = {
+static const int lexer_goto_row218[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row211[] = {
+static const int lexer_goto_row219[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row212[] = {
+static const int lexer_goto_row220[] = {
        3,
        48, 109, -40,
-       110, 110, 234,
-       111, 122, 77
+       110, 110, 243,
+       111, 122, 79
 };
-static const int lexer_goto_row213[] = {
+static const int lexer_goto_row221[] = {
        3,
        48, 109, -40,
-       110, 110, 235,
-       111, 122, 77
+       110, 110, 244,
+       111, 122, 79
 };
-static const int lexer_goto_row214[] = {
+static const int lexer_goto_row222[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row215[] = {
+static const int lexer_goto_row223[] = {
        3,
-       48, 115, -89,
-       116, 116, 236,
-       117, 122, 77
+       48, 115, -91,
+       116, 116, 245,
+       117, 122, 79
 };
-static const int lexer_goto_row216[] = {
+static const int lexer_goto_row224[] = {
        5,
        48, 101, -36,
-       102, 102, 237,
-       103, 109, 77,
-       110, 110, 238,
-       111, 122, 77
+       102, 102, 246,
+       103, 109, 79,
+       110, 110, 247,
+       111, 122, 79
 };
-static const int lexer_goto_row217[] = {
+static const int lexer_goto_row225[] = {
        3,
-       48, 99, -81,
-       100, 100, 239,
-       101, 122, 77
+       48, 99, -83,
+       100, 100, 248,
+       101, 122, 79
 };
-static const int lexer_goto_row218[] = {
+static const int lexer_goto_row226[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row219[] = {
+static const int lexer_goto_row227[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row220[] = {
+static const int lexer_goto_row228[] = {
        3,
        48, 100, -39,
-       101, 101, 240,
-       102, 122, 77
+       101, 101, 249,
+       102, 122, 79
 };
-static const int lexer_goto_row221[] = {
+static const int lexer_goto_row229[] = {
        3,
        48, 97, -29,
-       98, 98, 241,
-       99, 122, 77
+       98, 98, 250,
+       99, 122, 79
 };
-static const int lexer_goto_row222[] = {
+static const int lexer_goto_row230[] = {
        4,
        48, 95, -29,
-       97, 102, 77,
-       103, 103, 242,
-       104, 122, 77
+       97, 102, 79,
+       103, 103, 251,
+       104, 122, 79
 };
-static const int lexer_goto_row223[] = {
+static const int lexer_goto_row231[] = {
        3,
-       48, 115, -89,
-       116, 116, 243,
-       117, 122, 77
+       48, 115, -91,
+       116, 116, 252,
+       117, 122, 79
 };
-static const int lexer_goto_row224[] = {
+static const int lexer_goto_row232[] = {
        3,
-       48, 98, -103,
-       99, 99, 244,
-       100, 122, 77
+       48, 98, -105,
+       99, 99, 253,
+       100, 122, 79
 };
-static const int lexer_goto_row225[] = {
+static const int lexer_goto_row233[] = {
        3,
        48, 97, -29,
-       98, 98, 245,
-       99, 122, 77
+       98, 98, 254,
+       99, 122, 79
 };
-static const int lexer_goto_row226[] = {
+static const int lexer_goto_row234[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row227[] = {
+static const int lexer_goto_row235[] = {
        3,
        48, 109, -40,
-       110, 110, 246,
-       111, 122, 77
+       110, 110, 255,
+       111, 122, 79
 };
-static const int lexer_goto_row228[] = {
+static const int lexer_goto_row236[] = {
        3,
        48, 95, -29,
-       97, 97, 247,
-       98, 122, 77
+       97, 97, 256,
+       98, 122, 79
 };
-static const int lexer_goto_row229[] = {
+static const int lexer_goto_row237[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row230[] = {
+static const int lexer_goto_row238[] = {
        3,
        48, 113, -30,
-       114, 114, 248,
-       115, 122, 77
+       114, 114, 257,
+       115, 122, 79
 };
-static const int lexer_goto_row231[] = {
+static const int lexer_goto_row239[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row232[] = {
+static const int lexer_goto_row240[] = {
        3,
        48, 97, -29,
-       98, 98, 249,
-       99, 122, 77
+       98, 98, 258,
+       99, 122, 79
 };
-static const int lexer_goto_row233[] = {
+static const int lexer_goto_row241[] = {
+       1,
+       103, 103, 259
+};
+static const int lexer_goto_row242[] = {
        3,
-       48, 98, -103,
-       99, 99, 250,
-       100, 122, 77
+       48, 98, -105,
+       99, 99, 260,
+       100, 122, 79
 };
-static const int lexer_goto_row234[] = {
+static const int lexer_goto_row243[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row235[] = {
+static const int lexer_goto_row244[] = {
        3,
-       48, 116, -112,
-       117, 117, 251,
-       118, 122, 77
+       48, 116, -114,
+       117, 117, 261,
+       118, 122, 79
 };
-static const int lexer_goto_row236[] = {
+static const int lexer_goto_row245[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row237[] = {
+static const int lexer_goto_row246[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row238[] = {
+static const int lexer_goto_row247[] = {
        3,
        48, 95, -29,
-       97, 97, 252,
-       98, 122, 77
+       97, 97, 262,
+       98, 122, 79
 };
-static const int lexer_goto_row239[] = {
+static const int lexer_goto_row248[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row240[] = {
+static const int lexer_goto_row249[] = {
        3,
        48, 100, -39,
-       101, 101, 253,
-       102, 122, 77
+       101, 101, 263,
+       102, 122, 79
 };
-static const int lexer_goto_row241[] = {
+static const int lexer_goto_row250[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row242[] = {
+static const int lexer_goto_row251[] = {
        3,
        48, 107, -31,
-       108, 108, 254,
-       109, 122, 77
+       108, 108, 264,
+       109, 122, 79
 };
-static const int lexer_goto_row243[] = {
+static const int lexer_goto_row252[] = {
        3,
        48, 100, -39,
-       101, 101, 255,
-       102, 122, 77
+       101, 101, 265,
+       102, 122, 79
 };
-static const int lexer_goto_row244[] = {
+static const int lexer_goto_row253[] = {
        3,
        48, 100, -39,
-       101, 101, 256,
-       102, 122, 77
+       101, 101, 266,
+       102, 122, 79
 };
-static const int lexer_goto_row245[] = {
+static const int lexer_goto_row254[] = {
        3,
-       48, 115, -89,
-       116, 116, 257,
-       117, 122, 77
+       48, 115, -91,
+       116, 116, 267,
+       117, 122, 79
 };
-static const int lexer_goto_row246[] = {
+static const int lexer_goto_row255[] = {
        3,
        48, 107, -31,
-       108, 108, 258,
-       109, 122, 77
+       108, 108, 268,
+       109, 122, 79
 };
-static const int lexer_goto_row247[] = {
+static const int lexer_goto_row256[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row248[] = {
+static const int lexer_goto_row257[] = {
        3,
        48, 107, -31,
-       108, 108, 259,
-       109, 122, 77
+       108, 108, 269,
+       109, 122, 79
 };
-static const int lexer_goto_row249[] = {
+static const int lexer_goto_row258[] = {
        3,
-       48, 114, -82,
-       115, 115, 260,
-       116, 122, 77
+       48, 114, -84,
+       115, 115, 270,
+       116, 122, 79
 };
-static const int lexer_goto_row250[] = {
+static const int lexer_goto_row259[] = {
        3,
        48, 107, -31,
-       108, 108, 261,
-       109, 122, 77
+       108, 108, 271,
+       109, 122, 79
 };
-static const int lexer_goto_row251[] = {
+static const int lexer_goto_row260[] = {
+       1,
+       95, 95, 272
+};
+static const int lexer_goto_row261[] = {
        3,
-       48, 115, -89,
-       116, 116, 262,
-       117, 122, 77
+       48, 115, -91,
+       116, 116, 273,
+       117, 122, 79
 };
-static const int lexer_goto_row252[] = {
+static const int lexer_goto_row262[] = {
        3,
        48, 100, -39,
-       101, 101, 263,
-       102, 122, 77
+       101, 101, 274,
+       102, 122, 79
 };
-static const int lexer_goto_row253[] = {
+static const int lexer_goto_row263[] = {
        3,
-       48, 98, -103,
-       99, 99, 264,
-       100, 122, 77
+       48, 98, -105,
+       99, 99, 275,
+       100, 122, 79
 };
-static const int lexer_goto_row254[] = {
+static const int lexer_goto_row264[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row255[] = {
+static const int lexer_goto_row265[] = {
        3,
        48, 100, -39,
-       101, 101, 265,
-       102, 122, 77
+       101, 101, 276,
+       102, 122, 79
 };
-static const int lexer_goto_row256[] = {
+static const int lexer_goto_row266[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row257[] = {
+static const int lexer_goto_row267[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row258[] = {
+static const int lexer_goto_row268[] = {
        3,
        48, 100, -39,
-       101, 101, 266,
-       102, 122, 77
+       101, 101, 277,
+       102, 122, 79
 };
-static const int lexer_goto_row259[] = {
+static const int lexer_goto_row269[] = {
        3,
        48, 100, -39,
-       101, 101, 267,
-       102, 122, 77
+       101, 101, 278,
+       102, 122, 79
 };
-static const int lexer_goto_row260[] = {
+static const int lexer_goto_row270[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row261[] = {
+static const int lexer_goto_row271[] = {
        3,
        48, 95, -29,
-       97, 97, 268,
-       98, 122, 77
+       97, 97, 279,
+       98, 122, 79
 };
-static const int lexer_goto_row262[] = {
+static const int lexer_goto_row272[] = {
        3,
        48, 100, -39,
-       101, 101, 269,
-       102, 122, 77
+       101, 101, 280,
+       102, 122, 79
 };
-static const int lexer_goto_row263[] = {
+static const int lexer_goto_row273[] = {
+       1,
+       95, 95, 281
+};
+static const int lexer_goto_row274[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row264[] = {
+static const int lexer_goto_row275[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row265[] = {
+static const int lexer_goto_row276[] = {
        3,
        48, 100, -39,
-       101, 101, 270,
-       102, 122, 77
+       101, 101, 282,
+       102, 122, 79
 };
-static const int lexer_goto_row266[] = {
+static const int lexer_goto_row277[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row267[] = {
+static const int lexer_goto_row278[] = {
        3,
-       48, 99, -81,
-       100, 100, 271,
-       101, 122, 77
+       48, 99, -83,
+       100, 100, 283,
+       101, 122, 79
 };
-static const int lexer_goto_row268[] = {
+static const int lexer_goto_row279[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row269[] = {
+static const int lexer_goto_row280[] = {
        3,
        48, 107, -31,
-       108, 108, 272,
-       109, 122, 77
+       108, 108, 284,
+       109, 122, 79
 };
-static const int lexer_goto_row270[] = {
+static const int lexer_goto_row281[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row271[] = {
+static const int lexer_goto_row283[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row272[] = {
+static const int lexer_goto_row284[] = {
        1,
        48, 122, -35
 };
-static const int lexer_goto_row273[] = {
+static const int lexer_goto_row285[] = {
        1,
        48, 122, -35
 };
@@ -1519,18 +1560,18 @@ const int* const lexer_goto_table[] = {
        lexer_goto_row56,
        lexer_goto_row57,
        lexer_goto_row_null,
+       lexer_goto_row59,
        lexer_goto_row_null,
        lexer_goto_row_null,
-       lexer_goto_row61,
        lexer_goto_row62,
        lexer_goto_row63,
+       lexer_goto_row64,
        lexer_goto_row_null,
        lexer_goto_row_null,
-       lexer_goto_row66,
+       lexer_goto_row67,
        lexer_goto_row_null,
        lexer_goto_row_null,
        lexer_goto_row_null,
-       lexer_goto_row70,
        lexer_goto_row71,
        lexer_goto_row72,
        lexer_goto_row73,
@@ -1578,17 +1619,17 @@ const int* const lexer_goto_table[] = {
        lexer_goto_row115,
        lexer_goto_row116,
        lexer_goto_row117,
-       lexer_goto_row_null,
+       lexer_goto_row118,
        lexer_goto_row119,
        lexer_goto_row_null,
        lexer_goto_row121,
        lexer_goto_row_null,
+       lexer_goto_row123,
        lexer_goto_row_null,
        lexer_goto_row_null,
-       lexer_goto_row125,
        lexer_goto_row126,
-       lexer_goto_row127,
-       lexer_goto_row128,
+       lexer_goto_row_null,
+       lexer_goto_row_null,
        lexer_goto_row129,
        lexer_goto_row130,
        lexer_goto_row131,
@@ -1637,7 +1678,7 @@ const int* const lexer_goto_table[] = {
        lexer_goto_row174,
        lexer_goto_row175,
        lexer_goto_row176,
-       lexer_goto_row177,
+       lexer_goto_row_null,
        lexer_goto_row178,
        lexer_goto_row179,
        lexer_goto_row180,
@@ -1733,43 +1774,55 @@ const int* const lexer_goto_table[] = {
        lexer_goto_row270,
        lexer_goto_row271,
        lexer_goto_row272,
-       lexer_goto_row273
+       lexer_goto_row273,
+       lexer_goto_row274,
+       lexer_goto_row275,
+       lexer_goto_row276,
+       lexer_goto_row277,
+       lexer_goto_row278,
+       lexer_goto_row279,
+       lexer_goto_row280,
+       lexer_goto_row281,
+       lexer_goto_row_null,
+       lexer_goto_row283,
+       lexer_goto_row284,
+       lexer_goto_row285
 };
 
 const int lexer_accept_table[] = {
-       -1,0,1,1,0,79,-1,-1,69,-1,52,53,67,65,56,66,64,68,83,57,72,59,75,80,54,55,-1,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,-1,1,71,-1,86,-1,87,-1,2,2,-1,85,60,61,63,84,-1,58,74,73,70,76,77,80,80,80,80,82,81,81,81,81,81,81,48,81,81,81,16,81,81,81,81,81,81,25,81,31,15,81,81,81,81,81,81,81,33,81,81,81,81,81,81,81,81,81,81,81,81,81,-1,89,-1,88,-1,2,62,78,82,82,82,82,81,81,32,81,81,81,81,81,10,81,81,81,30,11,81,81,81,41,81,81,81,81,40,34,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,19,81,81,-1,81,81,81,81,81,81,27,8,81,81,81,13,81,81,81,81,29,81,47,42,81,81,81,81,81,81,44,81,81,26,45,12,81,81,81,38,81,81,37,5,81,81,46,81,81,81,50,51,81,81,81,81,81,81,14,81,81,43,81,28,81,81,39,81,21,4,81,20,81,3,81,81,81,81,81,35,81,81,81,81,81,81,24,81,3,23,81,81,9,81,81,6,36,81,49,81,17,81,18,7,22,8
+       -1,0,1,1,0,80,92,2,70,-1,53,54,68,66,57,67,65,69,84,58,73,60,76,81,55,56,-1,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,92,1,72,92,87,-1,88,2,2,2,91,91,91,61,62,64,85,-1,59,75,74,71,77,78,81,81,81,81,-1,83,82,82,82,82,82,82,48,82,82,82,16,82,82,82,82,82,82,25,82,31,15,82,82,82,82,82,82,82,33,82,82,82,82,82,82,82,82,82,82,82,82,82,92,90,-1,89,92,2,86,91,63,79,-1,83,83,83,83,82,82,32,82,82,82,82,82,10,82,82,82,30,11,82,82,82,41,82,82,82,82,40,34,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,19,82,82,92,86,-1,82,82,82,82,82,82,27,8,82,82,82,13,82,82,82,82,29,82,47,42,82,82,82,82,82,82,44,82,82,26,45,12,82,82,82,-1,38,82,82,37,5,82,82,46,82,82,82,50,51,82,82,82,82,82,82,14,82,82,43,82,28,82,-1,82,39,82,21,4,82,20,82,3,82,82,82,82,82,35,82,82,82,-1,82,82,82,24,82,3,23,82,82,9,82,82,-1,6,36,82,49,82,17,82,18,52,7,22,8
 };
 
 static int parser_action_row1[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       89, 1, 0
+       92, 1, 0
 };
 static int parser_action_row2[] = {
        1,
-       -1, 1, 744
+       -1, 1, 754
 };
 static int parser_action_row3[] = {
        1,
-       -1, 1, 742
+       -1, 1, 752
 };
 static int parser_action_row4[] = {
        2,
        -1, 3, 3,
-       89, 2, -1
+       92, 2, -1
 };
 static int parser_action_row5[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       89, 1, 1
+       92, 1, 1
 };
 static int parser_action_row6[] = {
        1,
-       -1, 1, 714
+       -1, 1, 724
 };
 static int parser_action_row7[] = {
        1,
@@ -1781,15 +1834,15 @@ static int parser_action_row8[] = {
 };
 static int parser_action_row9[] = {
        1,
-       -1, 1, 716
+       -1, 1, 726
 };
 static int parser_action_row10[] = {
        2,
-       -1, 1, 429,
-       89, 1, 36
+       -1, 1, 436,
+       92, 1, 36
 };
 static int parser_action_row11[] = {
-       34,
+       35,
        -1, 1, 166,
        2, 0, 24,
        12, 0, 25,
@@ -1815,69 +1868,70 @@ static int parser_action_row11[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row12[] = {
        2,
-       -1, 1, 427,
+       -1, 1, 434,
        1, 0, 2
 };
 static int parser_action_row13[] = {
        1,
-       -1, 1, 718
+       -1, 1, 728
 };
 static int parser_action_row14[] = {
        3,
        -1, 3, 13,
-       0, 0, 79,
-       1, 0, 80
+       0, 0, 80,
+       1, 0, 81
 };
 static int parser_action_row15[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       89, 1, 2
+       92, 1, 2
 };
 static int parser_action_row16[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       89, 1, 4
+       92, 1, 4
 };
 static int parser_action_row17[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       89, 1, 8
+       92, 1, 8
 };
 static int parser_action_row18[] = {
        3,
-       -1, 1, 425,
+       -1, 1, 432,
        0, 0, 1,
-       1, 0, 93
+       1, 0, 94
 };
 static int parser_action_row19[] = {
        2,
-       -1, 1, 432,
-       0, 0, 95
+       -1, 1, 439,
+       0, 0, 96
 };
 static int parser_action_row20[] = {
        1,
        -1, 1, 17
 };
 static int parser_action_row21[] = {
-       33,
+       34,
        -1, 1, 166,
        12, 0, 25,
        13, 0, 26,
@@ -1902,69 +1956,70 @@ static int parser_action_row21[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row22[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       89, 1, 3
+       92, 1, 3
 };
 static int parser_action_row23[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       89, 1, 5
+       92, 1, 5
 };
 static int parser_action_row24[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       89, 1, 9
+       92, 1, 9
 };
 static int parser_action_row25[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row26[] = {
        24,
-       -1, 1, 408,
-       12, 0, 104,
-       24, 0, 105,
-       33, 0, 106,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       51, 0, 115,
-       53, 1, 403,
-       63, 1, 403,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 1, 414,
+       12, 0, 105,
+       24, 0, 106,
+       33, 0, 107,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       52, 0, 116,
+       54, 1, 410,
+       64, 1, 410,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
 static int parser_action_row27[] = {
        4,
@@ -1974,11 +2029,11 @@ static int parser_action_row27[] = {
        23, 0, 31
 };
 static int parser_action_row28[] = {
-       32,
+       33,
        -1, 3, 27,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 137,
+       9, 0, 138,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -1998,57 +2053,58 @@ static int parser_action_row28[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row29[] = {
        2,
        -1, 3, 28,
-       80, 0, 142
+       81, 0, 143
 };
 static int parser_action_row30[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row31[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row32[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row33[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row34[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row35[] = {
-       32,
+       33,
        -1, 3, 34,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 137,
+       9, 0, 138,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -2068,428 +2124,434 @@ static int parser_action_row35[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row36[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row37[] = {
        23,
-       -1, 1, 246,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 1, 253,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row38[] = {
        24,
-       -1, 1, 253,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 1, 260,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       50, 0, 172,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       50, 0, 173,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row39[] = {
        24,
-       -1, 1, 248,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 1, 255,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       50, 0, 172,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       50, 0, 173,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row40[] = {
        1,
-       -1, 1, 252
+       -1, 1, 259
 };
 static int parser_action_row41[] = {
        23,
        -1, 3, 40,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 177,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 178,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row42[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row43[] = {
        24,
-       -1, 1, 408,
-       12, 0, 104,
-       24, 0, 105,
-       33, 0, 106,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       51, 0, 115,
-       53, 1, 403,
-       63, 1, 403,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 1, 414,
+       12, 0, 105,
+       24, 0, 106,
+       33, 0, 107,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       52, 0, 116,
+       54, 1, 410,
+       64, 1, 410,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
 static int parser_action_row44[] = {
        1,
-       -1, 1, 381
+       -1, 1, 389
 };
 static int parser_action_row45[] = {
        1,
-       -1, 1, 382
+       -1, 1, 390
 };
 static int parser_action_row46[] = {
        1,
-       -1, 1, 383
+       -1, 1, 391
 };
 static int parser_action_row47[] = {
        1,
-       -1, 1, 384
+       -1, 1, 392
 };
 static int parser_action_row48[] = {
-       23,
+       2,
        -1, 3, 47,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       11, 0, 187
+};
+static int parser_action_row49[] = {
+       23,
+       -1, 3, 48,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row49[] = {
+static int parser_action_row50[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row50[] = {
+static int parser_action_row51[] = {
        2,
-       -1, 3, 49,
-       57, 0, 190
+       -1, 3, 50,
+       58, 0, 192
 };
-static int parser_action_row51[] = {
+static int parser_action_row52[] = {
        28,
-       -1, 1, 403,
-       0, 1, 408,
-       1, 1, 408,
-       9, 1, 408,
-       12, 0, 104,
-       24, 0, 105,
-       33, 0, 106,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       51, 0, 115,
-       57, 0, 191,
-       65, 0, 116,
-       78, 1, 408,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 1, 410,
+       0, 1, 414,
+       1, 1, 414,
+       9, 1, 414,
+       12, 0, 105,
+       24, 0, 106,
+       33, 0, 107,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       52, 0, 116,
+       58, 0, 193,
+       66, 0, 117,
+       79, 1, 414,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56,
-       89, 1, 408
-};
-static int parser_action_row52[] = {
-       4,
-       -1, 1, 369,
-       58, 0, 194,
-       59, 0, 195,
-       60, 0, 196
+       86, 0, 123,
+       87, 0, 57,
+       92, 1, 414
 };
 static int parser_action_row53[] = {
-       1,
-       -1, 1, 385
+       4,
+       -1, 1, 377,
+       59, 0, 196,
+       60, 0, 197,
+       61, 0, 198
 };
 static int parser_action_row54[] = {
        1,
-       -1, 1, 386
+       -1, 1, 393
 };
 static int parser_action_row55[] = {
        1,
-       -1, 1, 387
+       -1, 1, 394
 };
 static int parser_action_row56[] = {
        1,
-       -1, 1, 388
+       -1, 1, 395
 };
 static int parser_action_row57[] = {
        1,
        -1, 1, 396
 };
 static int parser_action_row58[] = {
-       8,
-       -1, 3, 57,
-       3, 0, 198,
-       4, 0, 199,
-       5, 0, 200,
-       6, 0, 201,
-       7, 0, 202,
-       10, 0, 203,
-       20, 0, 204
+       1,
+       -1, 1, 404
 };
 static int parser_action_row59[] = {
+       8,
+       -1, 3, 58,
+       3, 0, 200,
+       4, 0, 201,
+       5, 0, 202,
+       6, 0, 203,
+       7, 0, 204,
+       10, 0, 205,
+       20, 0, 206
+};
+static int parser_action_row60[] = {
        1,
        -1, 1, 37
 };
-static int parser_action_row60[] = {
+static int parser_action_row61[] = {
        1,
        -1, 1, 38
 };
-static int parser_action_row61[] = {
+static int parser_action_row62[] = {
        3,
-       -1, 1, 239,
+       -1, 1, 244,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row62[] = {
-       1,
-       -1, 1, 244
-};
 static int parser_action_row63[] = {
        1,
-       -1, 1, 245
+       -1, 1, 251
 };
 static int parser_action_row64[] = {
        1,
-       -1, 1, 257
+       -1, 1, 252
 };
 static int parser_action_row65[] = {
        1,
-       -1, 1, 258
+       -1, 1, 264
 };
 static int parser_action_row66[] = {
        1,
-       -1, 1, 260
+       -1, 1, 265
 };
 static int parser_action_row67[] = {
        1,
-       -1, 1, 259
+       -1, 1, 267
 };
 static int parser_action_row68[] = {
        1,
-       -1, 1, 261
+       -1, 1, 266
 };
 static int parser_action_row69[] = {
        1,
-       -1, 1, 262
+       -1, 1, 268
 };
 static int parser_action_row70[] = {
-       3,
-       -1, 3, 69,
-       53, 0, 209,
-       63, 0, 210
+       1,
+       -1, 1, 269
 };
 static int parser_action_row71[] = {
-       1,
-       -1, 1, 389
+       3,
+       -1, 3, 70,
+       54, 0, 211,
+       64, 0, 212
 };
 static int parser_action_row72[] = {
-       3,
-       -1, 3, 71,
-       87, 0, 212,
-       88, 0, 213
+       1,
+       -1, 1, 397
 };
 static int parser_action_row73[] = {
        3,
-       -1, 1, 428,
-       0, 0, 1,
-       1, 0, 2
+       -1, 3, 72,
+       88, 0, 214,
+       89, 0, 215
 };
 static int parser_action_row74[] = {
-       1,
-       -1, 1, 380
+       3,
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2
 };
 static int parser_action_row75[] = {
-       2,
-       -1, 3, 74,
-       42, 0, 219
+       1,
+       -1, 1, 388
 };
 static int parser_action_row76[] = {
-       1,
-       -1, 1, 740
+       2,
+       -1, 3, 75,
+       42, 0, 221
 };
 static int parser_action_row77[] = {
        1,
-       -1, 1, 418
+       -1, 1, 750
 };
 static int parser_action_row78[] = {
-       3,
-       -1, 1, 420,
-       79, 0, 49,
-       80, 0, 220
+       1,
+       -1, 1, 425
 };
 static int parser_action_row79[] = {
        3,
-       -1, 1, 426,
-       0, 0, 1,
-       1, 0, 93
+       -1, 1, 427,
+       80, 0, 50,
+       81, 0, 222
 };
 static int parser_action_row80[] = {
-       1,
-       -1, 1, 424
+       3,
+       -1, 1, 433,
+       0, 0, 1,
+       1, 0, 94
 };
 static int parser_action_row81[] = {
        1,
-       -1, 1, 423
+       -1, 1, 431
 };
 static int parser_action_row82[] = {
        1,
-       -1, 1, 433
+       -1, 1, 430
 };
 static int parser_action_row83[] = {
        1,
-       -1, 1, 715
+       -1, 1, 440
 };
 static int parser_action_row84[] = {
        1,
-       -1, 1, 18
+       -1, 1, 725
 };
 static int parser_action_row85[] = {
+       1,
+       -1, 1, 18
+};
+static int parser_action_row86[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       89, 1, 6
+       92, 1, 6
 };
-static int parser_action_row86[] = {
+static int parser_action_row87[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       89, 1, 10
+       92, 1, 10
 };
-static int parser_action_row87[] = {
+static int parser_action_row88[] = {
        1,
        -1, 1, 20
 };
-static int parser_action_row88[] = {
+static int parser_action_row89[] = {
        1,
-       -1, 1, 717
+       -1, 1, 727
 };
-static int parser_action_row89[] = {
-       33,
+static int parser_action_row90[] = {
+       34,
        -1, 1, 166,
        12, 0, 25,
        13, 0, 26,
@@ -2514,32 +2576,33 @@ static int parser_action_row89[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row90[] = {
+static int parser_action_row91[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       89, 1, 12
+       92, 1, 12
 };
-static int parser_action_row91[] = {
+static int parser_action_row92[] = {
        1,
        -1, 1, 24
 };
-static int parser_action_row92[] = {
-       33,
+static int parser_action_row93[] = {
+       34,
        -1, 1, 166,
        12, 0, 25,
-       13, 0, 229,
+       13, 0, 231,
        15, 0, 27,
        18, 0, 28,
        21, 0, 29,
@@ -2561,283 +2624,284 @@ static int parser_action_row92[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
-};
-static int parser_action_row93[] = {
-       1,
-       -1, 1, 719
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row94[] = {
        1,
-       -1, 1, 743
+       -1, 1, 729
 };
 static int parser_action_row95[] = {
-       2,
-       -1, 1, 430,
-       0, 0, 95
+       1,
+       -1, 1, 753
 };
 static int parser_action_row96[] = {
-       1,
-       -1, 1, 745
+       2,
+       -1, 1, 437,
+       0, 0, 96
 };
 static int parser_action_row97[] = {
        1,
-       -1, 1, 19
+       -1, 1, 755
 };
 static int parser_action_row98[] = {
+       1,
+       -1, 1, 19
+};
+static int parser_action_row99[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       89, 1, 7
+       92, 1, 7
 };
-static int parser_action_row99[] = {
+static int parser_action_row100[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       89, 1, 11
+       92, 1, 11
 };
-static int parser_action_row100[] = {
+static int parser_action_row101[] = {
        1,
        -1, 1, 21
 };
-static int parser_action_row101[] = {
+static int parser_action_row102[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       89, 1, 13
-};
-static int parser_action_row102[] = {
-       1,
-       -1, 1, 25
+       92, 1, 13
 };
 static int parser_action_row103[] = {
        1,
-       -1, 1, 429
+       -1, 1, 25
 };
 static int parser_action_row104[] = {
-       3,
-       -1, 3, 103,
-       57, 0, 235,
-       80, 0, 236
+       1,
+       -1, 1, 436
 };
 static int parser_action_row105[] = {
-       2,
-       -1, 1, 403,
-       51, 0, 239
+       3,
+       -1, 3, 104,
+       58, 0, 237,
+       81, 0, 238
 };
 static int parser_action_row106[] = {
-       3,
-       -1, 1, 428,
-       0, 0, 1,
-       1, 0, 2
+       2,
+       -1, 1, 410,
+       52, 0, 241
 };
 static int parser_action_row107[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row108[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row109[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row110[] = {
-       2,
-       -1, 1, 403,
-       51, 0, 239
+       3,
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2
 };
 static int parser_action_row111[] = {
-       1,
-       -1, 1, 642
+       2,
+       -1, 1, 410,
+       52, 0, 241
 };
 static int parser_action_row112[] = {
        1,
-       -1, 1, 643
+       -1, 1, 652
 };
 static int parser_action_row113[] = {
        1,
-       -1, 1, 644
+       -1, 1, 653
 };
 static int parser_action_row114[] = {
        1,
-       -1, 1, 645
+       -1, 1, 654
 };
 static int parser_action_row115[] = {
+       1,
+       -1, 1, 655
+};
+static int parser_action_row116[] = {
        16,
-       -1, 3, 114,
-       12, 0, 104,
-       39, 0, 246,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       79, 0, 49,
-       80, 0, 117,
-       81, 0, 247,
-       82, 0, 119,
+       -1, 3, 115,
+       12, 0, 105,
+       39, 0, 248,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       80, 0, 50,
+       81, 0, 118,
+       82, 0, 249,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
-};
-static int parser_action_row116[] = {
-       3,
-       -1, 1, 428,
-       0, 0, 1,
-       1, 0, 2
+       86, 0, 123,
+       87, 0, 57
 };
 static int parser_action_row117[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row118[] = {
        3,
-       -1, 1, 403,
-       51, 0, 239,
-       57, 0, 191
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2
 };
 static int parser_action_row119[] = {
-       1,
-       -1, 1, 633
+       3,
+       -1, 1, 410,
+       52, 0, 241,
+       58, 0, 193
 };
 static int parser_action_row120[] = {
        1,
-       -1, 1, 646
+       -1, 1, 643
 };
 static int parser_action_row121[] = {
        1,
-       -1, 1, 647
+       -1, 1, 656
 };
 static int parser_action_row122[] = {
        1,
-       -1, 1, 648
+       -1, 1, 657
 };
 static int parser_action_row123[] = {
        1,
-       -1, 1, 649
+       -1, 1, 658
 };
 static int parser_action_row124[] = {
        1,
-       -1, 1, 650
+       -1, 1, 659
 };
 static int parser_action_row125[] = {
        1,
-       -1, 1, 375
+       -1, 1, 660
 };
 static int parser_action_row126[] = {
        1,
-       -1, 1, 270
+       -1, 1, 383
 };
 static int parser_action_row127[] = {
-       2,
-       -1, 3, 126,
-       42, 0, 252
+       1,
+       -1, 1, 277
 };
 static int parser_action_row128[] = {
-       1,
-       -1, 1, 406
+       2,
+       -1, 3, 127,
+       42, 0, 254
 };
 static int parser_action_row129[] = {
-       3,
-       -1, 1, 598,
-       31, 0, 253,
-       32, 0, 254
+       1,
+       -1, 1, 412
 };
 static int parser_action_row130[] = {
-       1,
-       -1, 1, 600
+       3,
+       -1, 1, 608,
+       31, 0, 255,
+       32, 0, 256
 };
 static int parser_action_row131[] = {
-       3,
-       -1, 1, 604,
-       73, 0, 255,
-       76, 0, 256
+       1,
+       -1, 1, 610
 };
 static int parser_action_row132[] = {
-       12,
-       -1, 1, 606,
-       14, 0, 257,
-       40, 0, 258,
-       64, 0, 259,
-       65, 0, 260,
-       69, 0, 261,
-       70, 0, 262,
-       71, 0, 263,
-       72, 0, 264,
-       74, 0, 265,
-       75, 0, 266,
-       77, 0, 267
+       3,
+       -1, 1, 614,
+       74, 0, 257,
+       77, 0, 258
 };
 static int parser_action_row133[] = {
-       4,
-       -1, 1, 618,
-       66, 0, 268,
-       67, 0, 269,
-       68, 0, 270
+       12,
+       -1, 1, 616,
+       14, 0, 259,
+       40, 0, 260,
+       65, 0, 261,
+       66, 0, 262,
+       70, 0, 263,
+       71, 0, 264,
+       72, 0, 265,
+       73, 0, 266,
+       75, 0, 267,
+       76, 0, 268,
+       78, 0, 269
 };
 static int parser_action_row134[] = {
-       1,
-       -1, 1, 621
+       4,
+       -1, 1, 628,
+       67, 0, 270,
+       68, 0, 271,
+       69, 0, 272
 };
 static int parser_action_row135[] = {
        1,
-       -1, 1, 625
+       -1, 1, 631
 };
 static int parser_action_row136[] = {
-       3,
-       -1, 1, 628,
-       53, 0, 209,
-       63, 0, 271
+       1,
+       -1, 1, 635
 };
 static int parser_action_row137[] = {
-       7,
-       -1, 3, 136,
-       4, 0, 199,
-       5, 0, 200,
-       6, 0, 201,
-       7, 0, 202,
-       10, 0, 273,
-       20, 0, 204
+       3,
+       -1, 1, 638,
+       54, 0, 211,
+       64, 0, 273
 };
 static int parser_action_row138[] = {
-       2,
-       -1, 1, 237,
-       50, 1, 591
+       7,
+       -1, 3, 137,
+       4, 0, 201,
+       5, 0, 202,
+       6, 0, 203,
+       7, 0, 204,
+       10, 0, 275,
+       20, 0, 206
 };
 static int parser_action_row139[] = {
-       1,
-       -1, 1, 309
+       2,
+       -1, 1, 242,
+       50, 1, 601
 };
 static int parser_action_row140[] = {
        1,
-       -1, 1, 238
+       -1, 1, 317
 };
 static int parser_action_row141[] = {
-       30,
-       -1, 3, 140,
-       9, 0, 275,
+       1,
+       -1, 1, 243
+};
+static int parser_action_row142[] = {
+       31,
+       -1, 3, 141,
+       9, 0, 277,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -2857,561 +2921,568 @@ static int parser_action_row141[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row142[] = {
+static int parser_action_row143[] = {
        2,
-       -1, 3, 141,
-       50, 0, 172
+       -1, 3, 142,
+       50, 0, 173
 };
-static int parser_action_row143[] = {
+static int parser_action_row144[] = {
        3,
-       -1, 1, 292,
-       56, 0, 279,
-       58, 0, 280
+       -1, 1, 300,
+       57, 0, 281,
+       59, 0, 282
 };
-static int parser_action_row144[] = {
+static int parser_action_row145[] = {
        1,
        -1, 1, 168
 };
-static int parser_action_row145[] = {
+static int parser_action_row146[] = {
        1,
        -1, 1, 167
 };
-static int parser_action_row146[] = {
+static int parser_action_row147[] = {
        1,
        -1, 1, 169
 };
-static int parser_action_row147[] = {
+static int parser_action_row148[] = {
        23,
-       -1, 3, 146,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 147,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row148[] = {
+static int parser_action_row149[] = {
        23,
-       -1, 3, 147,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 148,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
-};
-static int parser_action_row149[] = {
-       1,
-       -1, 1, 318
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row150[] = {
-       2,
-       -1, 3, 149,
-       50, 0, 172
+       1,
+       -1, 1, 326
 };
 static int parser_action_row151[] = {
-       3,
+       2,
        -1, 3, 150,
-       51, 0, 285,
-       80, 0, 286
+       50, 0, 173
 };
 static int parser_action_row152[] = {
-       2,
-       -1, 1, 403,
-       51, 0, 239
+       3,
+       -1, 3, 151,
+       52, 0, 287,
+       81, 0, 288
 };
 static int parser_action_row153[] = {
-       3,
-       -1, 1, 428,
-       0, 0, 1,
-       1, 0, 2
+       2,
+       -1, 1, 410,
+       52, 0, 241
 };
 static int parser_action_row154[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row155[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row156[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row157[] = {
-       2,
-       -1, 1, 403,
-       51, 0, 239
+       3,
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2
 };
 static int parser_action_row158[] = {
+       2,
+       -1, 1, 410,
+       52, 0, 241
+};
+static int parser_action_row159[] = {
        18,
-       -1, 3, 157,
-       12, 0, 151,
+       -1, 3, 158,
+       12, 0, 152,
        39, 0, 41,
-       42, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 292,
-       82, 0, 52,
+       52, 0, 48,
+       54, 0, 49,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 294,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row159[] = {
+static int parser_action_row160[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row160[] = {
-       3,
-       -1, 1, 403,
-       51, 0, 239,
-       57, 0, 191
-};
 static int parser_action_row161[] = {
-       1,
-       -1, 1, 369
+       3,
+       -1, 1, 410,
+       52, 0, 241,
+       58, 0, 193
 };
 static int parser_action_row162[] = {
        1,
-       -1, 1, 247
+       -1, 1, 377
 };
 static int parser_action_row163[] = {
        1,
-       -1, 1, 330
+       -1, 1, 254
 };
 static int parser_action_row164[] = {
-       3,
-       -1, 1, 334,
-       31, 0, 296,
-       32, 0, 297
+       1,
+       -1, 1, 338
 };
 static int parser_action_row165[] = {
-       1,
-       -1, 1, 336
+       3,
+       -1, 1, 342,
+       31, 0, 298,
+       32, 0, 299
 };
 static int parser_action_row166[] = {
-       3,
-       -1, 1, 340,
-       73, 0, 298,
-       76, 0, 299
+       1,
+       -1, 1, 344
 };
 static int parser_action_row167[] = {
-       12,
-       -1, 1, 342,
-       14, 0, 300,
-       40, 0, 301,
-       64, 0, 302,
-       65, 0, 303,
-       69, 0, 304,
-       70, 0, 305,
-       71, 0, 306,
-       72, 0, 307,
-       74, 0, 308,
-       75, 0, 309,
-       77, 0, 310
+       3,
+       -1, 1, 348,
+       74, 0, 300,
+       77, 0, 301
 };
 static int parser_action_row168[] = {
-       4,
-       -1, 1, 354,
-       66, 0, 311,
-       67, 0, 312,
-       68, 0, 313
+       12,
+       -1, 1, 350,
+       14, 0, 302,
+       40, 0, 303,
+       65, 0, 304,
+       66, 0, 305,
+       70, 0, 306,
+       71, 0, 307,
+       72, 0, 308,
+       73, 0, 309,
+       75, 0, 310,
+       76, 0, 311,
+       78, 0, 312
 };
 static int parser_action_row169[] = {
-       1,
-       -1, 1, 357
+       4,
+       -1, 1, 362,
+       67, 0, 313,
+       68, 0, 314,
+       69, 0, 315
 };
 static int parser_action_row170[] = {
        1,
-       -1, 1, 361
+       -1, 1, 365
 };
 static int parser_action_row171[] = {
-       3,
-       -1, 1, 364,
-       53, 0, 209,
-       63, 0, 314
+       1,
+       -1, 1, 369
 };
 static int parser_action_row172[] = {
-       2,
-       -1, 3, 171,
-       42, 0, 316
+       3,
+       -1, 1, 372,
+       54, 0, 211,
+       64, 0, 316
 };
 static int parser_action_row173[] = {
        2,
        -1, 3, 172,
-       80, 0, 317
+       42, 0, 318
 };
 static int parser_action_row174[] = {
+       2,
+       -1, 3, 173,
+       81, 0, 319
+};
+static int parser_action_row175[] = {
        23,
-       -1, 1, 254,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 1, 261,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row175[] = {
+static int parser_action_row176[] = {
        1,
-       -1, 1, 255
+       -1, 1, 262
 };
-static int parser_action_row176[] = {
+static int parser_action_row177[] = {
        23,
-       -1, 1, 249,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 1, 256,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row177[] = {
+static int parser_action_row178[] = {
        1,
-       -1, 1, 250
+       -1, 1, 257
 };
-static int parser_action_row178[] = {
+static int parser_action_row179[] = {
        4,
-       -1, 1, 403,
-       51, 0, 239,
-       56, 0, 320,
-       57, 0, 191
+       -1, 1, 410,
+       52, 0, 241,
+       57, 0, 322,
+       58, 0, 193
 };
-static int parser_action_row179[] = {
+static int parser_action_row180[] = {
        23,
-       -1, 3, 178,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 179,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
-};
-static int parser_action_row180[] = {
-       1,
-       -1, 1, 327
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row181[] = {
-       2,
-       -1, 1, 330,
-       26, 1, 582
+       1,
+       -1, 1, 335
 };
 static int parser_action_row182[] = {
-       3,
-       -1, 1, 364,
-       53, 0, 209,
-       63, 0, 325
+       2,
+       -1, 1, 338,
+       26, 1, 592
 };
 static int parser_action_row183[] = {
-       2,
-       -1, 3, 182,
-       26, 0, 327
+       3,
+       -1, 1, 372,
+       54, 0, 211,
+       64, 0, 327
 };
 static int parser_action_row184[] = {
-       3,
+       2,
        -1, 3, 183,
-       48, 0, 328,
-       79, 0, 329
+       26, 0, 329
 };
 static int parser_action_row185[] = {
-       1,
-       -1, 1, 372
+       3,
+       -1, 3, 184,
+       48, 0, 330,
+       80, 0, 331
 };
 static int parser_action_row186[] = {
        1,
-       -1, 1, 267
+       -1, 1, 380
 };
 static int parser_action_row187[] = {
-       3,
-       -1, 1, 403,
-       51, 0, 239,
-       57, 0, 191
+       1,
+       -1, 1, 274
 };
 static int parser_action_row188[] = {
-       2,
+       3,
        -1, 3, 187,
-       52, 0, 332
+       48, 0, 330,
+       80, 0, 331
 };
 static int parser_action_row189[] = {
        3,
-       -1, 1, 364,
-       53, 0, 209,
-       63, 0, 333
+       -1, 1, 410,
+       52, 0, 241,
+       58, 0, 193
 };
 static int parser_action_row190[] = {
-       23,
+       2,
        -1, 3, 189,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       53, 0, 335
+};
+static int parser_action_row191[] = {
+       3,
+       -1, 1, 372,
+       54, 0, 211,
+       64, 0, 336
+};
+static int parser_action_row192[] = {
+       23,
+       -1, 3, 191,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row191[] = {
+static int parser_action_row193[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row192[] = {
+static int parser_action_row194[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row193[] = {
+static int parser_action_row195[] = {
        4,
-       -1, 1, 371,
-       58, 0, 338,
-       59, 0, 195,
-       60, 0, 196
+       -1, 1, 379,
+       59, 0, 342,
+       60, 0, 197,
+       61, 0, 198
 };
-static int parser_action_row194[] = {
+static int parser_action_row196[] = {
        2,
-       -1, 1, 264,
-       78, 0, 340
+       -1, 1, 271,
+       79, 0, 344
 };
-static int parser_action_row195[] = {
+static int parser_action_row197[] = {
        23,
-       -1, 3, 194,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 196,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row196[] = {
+static int parser_action_row198[] = {
        1,
-       -1, 1, 306
+       -1, 1, 314
 };
-static int parser_action_row197[] = {
+static int parser_action_row199[] = {
        1,
-       -1, 1, 307
+       -1, 1, 315
 };
-static int parser_action_row198[] = {
+static int parser_action_row200[] = {
        23,
-       -1, 3, 197,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 199,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row199[] = {
+static int parser_action_row201[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row200[] = {
+static int parser_action_row202[] = {
        1,
        -1, 1, 55
 };
-static int parser_action_row201[] = {
+static int parser_action_row203[] = {
        2,
-       -1, 3, 200,
-       4, 0, 347
+       -1, 3, 202,
+       4, 0, 351
 };
-static int parser_action_row202[] = {
+static int parser_action_row204[] = {
        1,
        -1, 1, 57
 };
-static int parser_action_row203[] = {
+static int parser_action_row205[] = {
        1,
        -1, 1, 58
 };
-static int parser_action_row204[] = {
+static int parser_action_row206[] = {
        17,
-       -1, 3, 203,
-       53, 0, 348,
-       64, 0, 349,
-       65, 0, 350,
-       66, 0, 351,
-       67, 0, 352,
-       68, 0, 353,
-       69, 0, 354,
-       70, 0, 355,
-       71, 0, 356,
-       72, 0, 357,
-       73, 0, 358,
-       74, 0, 359,
-       75, 0, 360,
-       76, 0, 361,
-       77, 0, 362,
-       80, 0, 363
+       -1, 3, 205,
+       54, 0, 352,
+       65, 0, 353,
+       66, 0, 354,
+       67, 0, 355,
+       68, 0, 356,
+       69, 0, 357,
+       70, 0, 358,
+       71, 0, 359,
+       72, 0, 360,
+       73, 0, 361,
+       74, 0, 362,
+       75, 0, 363,
+       76, 0, 364,
+       77, 0, 365,
+       78, 0, 366,
+       81, 0, 367
 };
-static int parser_action_row205[] = {
+static int parser_action_row207[] = {
        1,
        -1, 1, 59
 };
-static int parser_action_row206[] = {
+static int parser_action_row208[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row207[] = {
+static int parser_action_row209[] = {
        1,
-       -1, 1, 734
+       -1, 1, 744
 };
-static int parser_action_row208[] = {
-       29,
-       -1, 1, 241,
+static int parser_action_row210[] = {
+       30,
+       -1, 1, 246,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -3431,902 +3502,903 @@ static int parser_action_row208[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row209[] = {
+static int parser_action_row211[] = {
        3,
-       -1, 1, 240,
+       -1, 1, 245,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row210[] = {
+static int parser_action_row212[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row211[] = {
+static int parser_action_row213[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row212[] = {
+static int parser_action_row214[] = {
        4,
-       -1, 1, 376,
-       58, 0, 371,
-       59, 0, 195,
-       60, 0, 196
+       -1, 1, 384,
+       59, 0, 375,
+       60, 0, 197,
+       61, 0, 198
 };
-static int parser_action_row213[] = {
+static int parser_action_row215[] = {
        1,
-       -1, 1, 398
+       -1, 1, 406
 };
-static int parser_action_row214[] = {
+static int parser_action_row216[] = {
        1,
-       -1, 1, 399
+       -1, 1, 407
 };
-static int parser_action_row215[] = {
+static int parser_action_row217[] = {
        1,
-       -1, 1, 736
+       -1, 1, 746
 };
-static int parser_action_row216[] = {
+static int parser_action_row218[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row217[] = {
+static int parser_action_row219[] = {
        1,
-       -1, 1, 393
+       -1, 1, 401
 };
-static int parser_action_row218[] = {
+static int parser_action_row220[] = {
        3,
-       -1, 3, 217,
-       87, 0, 212,
-       88, 0, 213
+       -1, 3, 219,
+       88, 0, 214,
+       89, 0, 215
 };
-static int parser_action_row219[] = {
+static int parser_action_row221[] = {
        23,
-       -1, 3, 218,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 220,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row220[] = {
+static int parser_action_row222[] = {
        24,
-       -1, 1, 408,
-       12, 0, 104,
-       24, 0, 105,
-       33, 0, 106,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       51, 0, 115,
-       53, 1, 403,
-       63, 1, 403,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 1, 414,
+       12, 0, 105,
+       24, 0, 106,
+       33, 0, 107,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       52, 0, 116,
+       54, 1, 410,
+       64, 1, 410,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row221[] = {
+static int parser_action_row223[] = {
        2,
-       -1, 3, 220,
-       57, 0, 191
+       -1, 3, 222,
+       58, 0, 193
 };
-static int parser_action_row222[] = {
+static int parser_action_row224[] = {
        1,
-       -1, 1, 741
+       -1, 1, 751
 };
-static int parser_action_row223[] = {
+static int parser_action_row225[] = {
        1,
-       -1, 1, 419
+       -1, 1, 426
 };
-static int parser_action_row224[] = {
+static int parser_action_row226[] = {
        2,
-       -1, 1, 431,
-       0, 0, 95
+       -1, 1, 438,
+       0, 0, 96
 };
-static int parser_action_row225[] = {
+static int parser_action_row227[] = {
        1,
        -1, 1, 22
 };
-static int parser_action_row226[] = {
+static int parser_action_row228[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       89, 1, 14
+       92, 1, 14
 };
-static int parser_action_row227[] = {
+static int parser_action_row229[] = {
        1,
        -1, 1, 26
 };
-static int parser_action_row228[] = {
+static int parser_action_row230[] = {
        7,
-       -1, 3, 227,
-       4, 0, 199,
-       5, 0, 200,
-       6, 0, 201,
-       7, 0, 202,
-       10, 0, 203,
-       20, 0, 204
+       -1, 3, 229,
+       4, 0, 201,
+       5, 0, 202,
+       6, 0, 203,
+       7, 0, 204,
+       10, 0, 205,
+       20, 0, 206
 };
-static int parser_action_row229[] = {
+static int parser_action_row231[] = {
        1,
        -1, 1, 28
 };
-static int parser_action_row230[] = {
+static int parser_action_row232[] = {
        4,
        -1, 1, 166,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31
 };
-static int parser_action_row231[] = {
+static int parser_action_row233[] = {
        2,
-       -1, 3, 230,
-       10, 0, 203
+       -1, 3, 232,
+       10, 0, 205
 };
-static int parser_action_row232[] = {
+static int parser_action_row234[] = {
        1,
        -1, 1, 23
 };
-static int parser_action_row233[] = {
+static int parser_action_row235[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       89, 1, 15
+       92, 1, 15
 };
-static int parser_action_row234[] = {
+static int parser_action_row236[] = {
        1,
        -1, 1, 27
 };
-static int parser_action_row235[] = {
+static int parser_action_row237[] = {
        1,
        -1, 1, 29
 };
-static int parser_action_row236[] = {
+static int parser_action_row238[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row237[] = {
+static int parser_action_row239[] = {
        2,
-       -1, 1, 414,
-       57, 0, 191
+       -1, 1, 421,
+       58, 0, 193
 };
-static int parser_action_row238[] = {
+static int parser_action_row240[] = {
        3,
-       -1, 3, 237,
-       0, 0, 79,
-       1, 0, 80
+       -1, 3, 239,
+       0, 0, 80,
+       1, 0, 81
 };
-static int parser_action_row239[] = {
+static int parser_action_row241[] = {
        2,
-       -1, 3, 238,
-       80, 0, 384
+       -1, 3, 240,
+       81, 0, 388
 };
-static int parser_action_row240[] = {
+static int parser_action_row242[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row241[] = {
+static int parser_action_row243[] = {
        1,
-       -1, 1, 639
+       -1, 1, 649
 };
-static int parser_action_row242[] = {
+static int parser_action_row244[] = {
        23,
-       -1, 3, 241,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 243,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row243[] = {
+static int parser_action_row245[] = {
        20,
-       -1, 3, 242,
-       12, 0, 104,
-       33, 0, 106,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 244,
+       12, 0, 105,
+       33, 0, 107,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row244[] = {
+static int parser_action_row246[] = {
        3,
-       -1, 3, 243,
-       48, 0, 328,
-       79, 0, 329
+       -1, 3, 245,
+       48, 0, 330,
+       80, 0, 331
 };
-static int parser_action_row245[] = {
+static int parser_action_row247[] = {
        19,
-       -1, 3, 244,
-       12, 0, 104,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 246,
+       12, 0, 105,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row246[] = {
+static int parser_action_row248[] = {
        1,
-       -1, 1, 636
+       -1, 1, 646
 };
-static int parser_action_row247[] = {
+static int parser_action_row249[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row248[] = {
+static int parser_action_row250[] = {
        3,
-       -1, 1, 631,
-       53, 1, 633,
-       63, 1, 633
+       -1, 1, 641,
+       54, 1, 643,
+       64, 1, 643
 };
-static int parser_action_row249[] = {
+static int parser_action_row251[] = {
        3,
-       -1, 3, 248,
-       53, 0, 209,
-       63, 0, 391
+       -1, 3, 250,
+       54, 0, 211,
+       64, 0, 395
 };
-static int parser_action_row250[] = {
+static int parser_action_row252[] = {
        24,
-       -1, 3, 249,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 251,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       52, 0, 392,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       53, 0, 396,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row251[] = {
+static int parser_action_row253[] = {
        19,
-       -1, 3, 250,
-       12, 0, 104,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 252,
+       12, 0, 105,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
-};
-static int parser_action_row252[] = {
-       1,
-       -1, 1, 635
-};
-static int parser_action_row253[] = {
-       2,
-       -1, 1, 403,
-       51, 0, 239
+       86, 0, 123,
+       87, 0, 57
 };
 static int parser_action_row254[] = {
-       3,
-       -1, 1, 428,
-       0, 0, 1,
-       1, 0, 2
+       1,
+       -1, 1, 645
 };
 static int parser_action_row255[] = {
-       4,
-       -1, 1, 428,
-       0, 0, 1,
-       1, 0, 2,
-       26, 0, 397
+       2,
+       -1, 1, 410,
+       52, 0, 241
 };
 static int parser_action_row256[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row257[] = {
-       3,
-       -1, 1, 428,
+       4,
+       -1, 1, 435,
        0, 0, 1,
-       1, 0, 2
+       1, 0, 2,
+       26, 0, 402
 };
 static int parser_action_row258[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row259[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row260[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row261[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row262[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row263[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row264[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row265[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row266[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row267[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row268[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row269[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row270[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row271[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row272[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row273[] = {
-       1,
-       -1, 1, 640
+       3,
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2
 };
 static int parser_action_row274[] = {
-       17,
-       -1, 3, 273,
-       53, 0, 348,
-       64, 0, 349,
-       65, 0, 350,
-       66, 0, 351,
-       67, 0, 352,
-       68, 0, 353,
-       69, 0, 354,
-       70, 0, 355,
-       71, 0, 356,
-       72, 0, 357,
-       73, 0, 358,
-       74, 0, 359,
-       75, 0, 360,
-       76, 0, 361,
-       77, 0, 362,
-       80, 0, 363
+       3,
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2
 };
 static int parser_action_row275[] = {
+       1,
+       -1, 1, 650
+};
+static int parser_action_row276[] = {
+       17,
+       -1, 3, 275,
+       54, 0, 352,
+       65, 0, 353,
+       66, 0, 354,
+       67, 0, 355,
+       68, 0, 356,
+       69, 0, 357,
+       70, 0, 358,
+       71, 0, 359,
+       72, 0, 360,
+       73, 0, 361,
+       74, 0, 362,
+       75, 0, 363,
+       76, 0, 364,
+       77, 0, 365,
+       78, 0, 366,
+       81, 0, 367
+};
+static int parser_action_row277[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row276[] = {
+static int parser_action_row278[] = {
        2,
-       -1, 1, 236,
-       50, 1, 590
+       -1, 1, 241,
+       50, 1, 600
 };
-static int parser_action_row277[] = {
+static int parser_action_row279[] = {
        2,
-       -1, 3, 276,
-       9, 0, 418
+       -1, 1, 240,
+       50, 1, 599
 };
-static int parser_action_row278[] = {
+static int parser_action_row280[] = {
        3,
-       -1, 3, 277,
+       -1, 3, 279,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row279[] = {
+static int parser_action_row281[] = {
        1,
-       -1, 1, 308
+       -1, 1, 316
 };
-static int parser_action_row280[] = {
+static int parser_action_row282[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row281[] = {
+static int parser_action_row283[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row282[] = {
+static int parser_action_row284[] = {
        2,
-       -1, 1, 293,
-       58, 0, 422
+       -1, 1, 301,
+       59, 0, 427
 };
-static int parser_action_row283[] = {
+static int parser_action_row285[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row284[] = {
+static int parser_action_row286[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row285[] = {
+static int parser_action_row287[] = {
        1,
-       -1, 1, 317
+       -1, 1, 325
 };
-static int parser_action_row286[] = {
+static int parser_action_row288[] = {
        2,
-       -1, 3, 285,
-       80, 0, 286
+       -1, 3, 287,
+       81, 0, 288
 };
-static int parser_action_row287[] = {
+static int parser_action_row289[] = {
        1,
-       -1, 1, 412
+       -1, 1, 419
 };
-static int parser_action_row288[] = {
+static int parser_action_row290[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row289[] = {
+static int parser_action_row291[] = {
        23,
-       -1, 3, 288,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 290,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row290[] = {
+static int parser_action_row292[] = {
        22,
-       -1, 3, 289,
-       12, 0, 151,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 291,
+       12, 0, 152,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row291[] = {
+static int parser_action_row293[] = {
        3,
-       -1, 3, 290,
-       48, 0, 328,
-       79, 0, 329
+       -1, 3, 292,
+       48, 0, 330,
+       80, 0, 331
 };
-static int parser_action_row292[] = {
+static int parser_action_row294[] = {
        21,
-       -1, 3, 291,
-       12, 0, 151,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 293,
+       12, 0, 152,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row293[] = {
+static int parser_action_row295[] = {
        3,
-       -1, 1, 367,
-       53, 1, 369,
-       63, 1, 369
+       -1, 1, 375,
+       54, 1, 377,
+       64, 1, 377
 };
-static int parser_action_row294[] = {
+static int parser_action_row296[] = {
        3,
-       -1, 3, 293,
-       53, 0, 209,
-       63, 0, 431
+       -1, 3, 295,
+       54, 0, 211,
+       64, 0, 436
 };
-static int parser_action_row295[] = {
+static int parser_action_row297[] = {
        21,
-       -1, 3, 294,
-       12, 0, 151,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 296,
+       12, 0, 152,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
-};
-static int parser_action_row296[] = {
-       2,
-       -1, 1, 371,
-       78, 0, 340
-};
-static int parser_action_row297[] = {
-       3,
-       -1, 1, 428,
-       0, 0, 1,
-       1, 0, 2
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row298[] = {
-       4,
-       -1, 1, 428,
-       0, 0, 1,
-       1, 0, 2,
-       26, 0, 435
+       2,
+       -1, 1, 379,
+       79, 0, 344
 };
 static int parser_action_row299[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row300[] = {
-       3,
-       -1, 1, 428,
+       4,
+       -1, 1, 435,
        0, 0, 1,
-       1, 0, 2
+       1, 0, 2,
+       26, 0, 440
 };
 static int parser_action_row301[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row302[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row303[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row304[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row305[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row306[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row307[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row308[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row309[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row310[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row311[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row312[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row313[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row314[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row315[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row316[] = {
-       2,
-       -1, 1, 376,
-       78, 0, 340
+       3,
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2
 };
 static int parser_action_row317[] = {
-       2,
-       -1, 1, 403,
-       51, 0, 239
+       3,
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2
 };
 static int parser_action_row318[] = {
-       1,
-       -1, 1, 271
+       2,
+       -1, 1, 384,
+       79, 0, 344
 };
 static int parser_action_row319[] = {
-       1,
-       -1, 1, 256
+       2,
+       -1, 1, 410,
+       52, 0, 241
 };
 static int parser_action_row320[] = {
        1,
-       -1, 1, 251
+       -1, 1, 279
 };
 static int parser_action_row321[] = {
        1,
-       -1, 1, 329
+       -1, 1, 263
 };
 static int parser_action_row322[] = {
-       2,
-       -1, 1, 371,
-       78, 0, 455
+       1,
+       -1, 1, 258
 };
 static int parser_action_row323[] = {
-       3,
-       -1, 1, 403,
-       51, 0, 239,
-       57, 0, 191
+       1,
+       -1, 1, 337
 };
 static int parser_action_row324[] = {
-       1,
-       -1, 1, 328
+       2,
+       -1, 1, 379,
+       79, 0, 460
 };
 static int parser_action_row325[] = {
-       2,
-       -1, 3, 324,
-       26, 0, 459
+       3,
+       -1, 1, 410,
+       52, 0, 241,
+       58, 0, 193
 };
 static int parser_action_row326[] = {
+       1,
+       -1, 1, 336
+};
+static int parser_action_row327[] = {
+       2,
+       -1, 3, 326,
+       26, 0, 464
+};
+static int parser_action_row328[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row327[] = {
+static int parser_action_row329[] = {
        2,
-       -1, 1, 376,
-       78, 0, 455
+       -1, 1, 384,
+       79, 0, 460
 };
-static int parser_action_row328[] = {
-       32,
-       -1, 3, 327,
+static int parser_action_row330[] = {
+       33,
+       -1, 3, 329,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 462,
+       9, 0, 467,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -4346,243 +4418,254 @@ static int parser_action_row328[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row329[] = {
+static int parser_action_row331[] = {
        2,
-       -1, 3, 328,
-       79, 0, 465
+       -1, 3, 330,
+       80, 0, 470
 };
-static int parser_action_row330[] = {
+static int parser_action_row332[] = {
        2,
-       -1, 1, 227,
-       53, 0, 466
+       -1, 1, 232,
+       54, 0, 471
 };
-static int parser_action_row331[] = {
+static int parser_action_row333[] = {
        2,
-       -1, 3, 330,
-       63, 0, 467
+       -1, 3, 332,
+       64, 0, 472
 };
-static int parser_action_row332[] = {
+static int parser_action_row334[] = {
+       2,
+       -1, 3, 333,
+       57, 0, 473
+};
+static int parser_action_row335[] = {
        1,
-       -1, 1, 371
+       -1, 1, 379
 };
-static int parser_action_row333[] = {
+static int parser_action_row336[] = {
        1,
-       -1, 1, 390
+       -1, 1, 398
 };
-static int parser_action_row334[] = {
+static int parser_action_row337[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row335[] = {
+static int parser_action_row338[] = {
        1,
-       -1, 1, 376
+       -1, 1, 384
 };
-static int parser_action_row336[] = {
+static int parser_action_row339[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row337[] = {
+static int parser_action_row340[] = {
+       2,
+       -1, 3, 339,
+       55, 0, 476
+};
+static int parser_action_row341[] = {
        1,
-       -1, 1, 422
+       -1, 1, 429
 };
-static int parser_action_row338[] = {
+static int parser_action_row342[] = {
        1,
-       -1, 1, 421
+       -1, 1, 428
 };
-static int parser_action_row339[] = {
+static int parser_action_row343[] = {
        23,
-       -1, 3, 338,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 342,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row340[] = {
+static int parser_action_row344[] = {
        23,
-       -1, 3, 339,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 343,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row341[] = {
+static int parser_action_row345[] = {
        3,
-       -1, 3, 340,
-       36, 0, 472,
-       80, 0, 473
+       -1, 3, 344,
+       36, 0, 479,
+       81, 0, 480
 };
-static int parser_action_row342[] = {
+static int parser_action_row346[] = {
        1,
-       -1, 1, 266
+       -1, 1, 273
 };
-static int parser_action_row343[] = {
+static int parser_action_row347[] = {
        1,
-       -1, 1, 272
+       -1, 1, 280
 };
-static int parser_action_row344[] = {
+static int parser_action_row348[] = {
        2,
-       -1, 3, 343,
-       78, 0, 340
+       -1, 3, 347,
+       79, 0, 344
 };
-static int parser_action_row345[] = {
+static int parser_action_row349[] = {
        1,
-       -1, 1, 297
+       -1, 1, 305
 };
-static int parser_action_row346[] = {
+static int parser_action_row350[] = {
        1,
-       -1, 1, 302
+       -1, 1, 310
 };
-static int parser_action_row347[] = {
+static int parser_action_row351[] = {
        4,
-       -1, 3, 346,
-       9, 0, 476,
-       57, 0, 235,
-       80, 0, 236
+       -1, 3, 350,
+       9, 0, 483,
+       58, 0, 237,
+       81, 0, 238
 };
-static int parser_action_row348[] = {
+static int parser_action_row352[] = {
        1,
        -1, 1, 56
 };
-static int parser_action_row349[] = {
+static int parser_action_row353[] = {
        2,
-       -1, 3, 348,
-       54, 0, 478
+       -1, 3, 352,
+       55, 0, 485
 };
-static int parser_action_row350[] = {
+static int parser_action_row354[] = {
        1,
        -1, 1, 171
 };
-static int parser_action_row351[] = {
+static int parser_action_row355[] = {
        1,
        -1, 1, 172
 };
-static int parser_action_row352[] = {
+static int parser_action_row356[] = {
        1,
        -1, 1, 173
 };
-static int parser_action_row353[] = {
+static int parser_action_row357[] = {
        1,
        -1, 1, 174
 };
-static int parser_action_row354[] = {
+static int parser_action_row358[] = {
        1,
        -1, 1, 175
 };
-static int parser_action_row355[] = {
+static int parser_action_row359[] = {
        1,
        -1, 1, 176
 };
-static int parser_action_row356[] = {
+static int parser_action_row360[] = {
        1,
        -1, 1, 177
 };
-static int parser_action_row357[] = {
+static int parser_action_row361[] = {
        1,
        -1, 1, 180
 };
-static int parser_action_row358[] = {
+static int parser_action_row362[] = {
        1,
        -1, 1, 178
 };
-static int parser_action_row359[] = {
+static int parser_action_row363[] = {
        1,
        -1, 1, 182
 };
-static int parser_action_row360[] = {
+static int parser_action_row364[] = {
        1,
        -1, 1, 181
 };
-static int parser_action_row361[] = {
+static int parser_action_row365[] = {
        1,
        -1, 1, 179
 };
-static int parser_action_row362[] = {
+static int parser_action_row366[] = {
        1,
        -1, 1, 183
 };
-static int parser_action_row363[] = {
+static int parser_action_row367[] = {
        1,
        -1, 1, 185
 };
-static int parser_action_row364[] = {
+static int parser_action_row368[] = {
        2,
        -1, 1, 170,
-       58, 0, 479
+       59, 0, 486
 };
-static int parser_action_row365[] = {
+static int parser_action_row369[] = {
        5,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       51, 0, 480,
-       56, 0, 279
+       52, 0, 487,
+       57, 0, 281
 };
-static int parser_action_row366[] = {
+static int parser_action_row370[] = {
        2,
-       -1, 3, 365,
-       79, 0, 487
+       -1, 3, 369,
+       80, 0, 492
 };
-static int parser_action_row367[] = {
+static int parser_action_row371[] = {
        1,
-       -1, 1, 243
+       -1, 1, 250
 };
-static int parser_action_row368[] = {
+static int parser_action_row372[] = {
        1,
-       -1, 1, 735
+       -1, 1, 745
 };
-static int parser_action_row369[] = {
-       29,
-       -1, 1, 242,
+static int parser_action_row373[] = {
+       30,
+       -1, 1, 247,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -4602,1233 +4685,1268 @@ static int parser_action_row369[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row370[] = {
+static int parser_action_row374[] = {
        23,
-       -1, 3, 369,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 373,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row371[] = {
+static int parser_action_row375[] = {
        5,
-       -1, 3, 370,
-       12, 0, 489,
-       47, 0, 490,
-       80, 0, 491,
-       81, 0, 492
+       -1, 3, 374,
+       12, 0, 493,
+       47, 0, 494,
+       81, 0, 495,
+       82, 0, 496
 };
-static int parser_action_row372[] = {
+static int parser_action_row376[] = {
        23,
-       -1, 3, 371,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 375,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row373[] = {
+static int parser_action_row377[] = {
        23,
-       -1, 3, 372,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 376,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row374[] = {
+static int parser_action_row378[] = {
        23,
-       -1, 3, 373,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 377,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row375[] = {
+static int parser_action_row379[] = {
        1,
-       -1, 1, 737
+       -1, 1, 747
 };
-static int parser_action_row376[] = {
+static int parser_action_row380[] = {
        1,
-       -1, 1, 394
+       -1, 1, 402
 };
-static int parser_action_row377[] = {
+static int parser_action_row381[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row378[] = {
+static int parser_action_row382[] = {
        1,
-       -1, 1, 373
+       -1, 1, 381
 };
-static int parser_action_row379[] = {
+static int parser_action_row383[] = {
        1,
-       -1, 1, 268
+       -1, 1, 275
 };
-static int parser_action_row380[] = {
+static int parser_action_row384[] = {
        1,
        -1, 1, 30
 };
-static int parser_action_row381[] = {
+static int parser_action_row385[] = {
        2,
-       -1, 3, 380,
-       10, 0, 273
+       -1, 3, 384,
+       10, 0, 275
 };
-static int parser_action_row382[] = {
+static int parser_action_row386[] = {
        1,
        -1, 1, 31
 };
-static int parser_action_row383[] = {
+static int parser_action_row387[] = {
        2,
-       -1, 3, 382,
-       80, 0, 497
+       -1, 3, 386,
+       81, 0, 501
 };
-static int parser_action_row384[] = {
+static int parser_action_row388[] = {
        1,
        -1, 1, 32
 };
-static int parser_action_row385[] = {
+static int parser_action_row389[] = {
        2,
-       -1, 1, 415,
-       57, 0, 191
+       -1, 1, 422,
+       58, 0, 193
 };
-static int parser_action_row386[] = {
+static int parser_action_row390[] = {
        24,
-       -1, 3, 385,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 389,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       52, 0, 499,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       53, 0, 503,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row387[] = {
+static int parser_action_row391[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row388[] = {
+static int parser_action_row392[] = {
        1,
-       -1, 1, 605
+       -1, 1, 615
 };
-static int parser_action_row389[] = {
+static int parser_action_row393[] = {
        3,
-       -1, 1, 403,
-       51, 0, 239,
-       63, 0, 502
+       -1, 1, 410,
+       52, 0, 241,
+       64, 0, 506
 };
-static int parser_action_row390[] = {
+static int parser_action_row394[] = {
        1,
-       -1, 1, 627
+       -1, 1, 637
 };
-static int parser_action_row391[] = {
+static int parser_action_row395[] = {
        3,
-       -1, 3, 390,
-       48, 0, 328,
-       79, 0, 329
+       -1, 3, 394,
+       48, 0, 330,
+       80, 0, 331
 };
-static int parser_action_row392[] = {
+static int parser_action_row396[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row393[] = {
+static int parser_action_row397[] = {
        6,
-       -1, 1, 407,
-       53, 1, 402,
-       58, 1, 402,
-       59, 1, 402,
-       60, 1, 402,
-       63, 1, 402
+       -1, 1, 413,
+       54, 1, 409,
+       59, 1, 409,
+       60, 1, 409,
+       61, 1, 409,
+       64, 1, 409
 };
-static int parser_action_row394[] = {
+static int parser_action_row398[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row395[] = {
+static int parser_action_row399[] = {
+       2,
+       -1, 3, 398,
+       53, 0, 511
+};
+static int parser_action_row400[] = {
        1,
-       -1, 1, 626
+       -1, 1, 636
 };
-static int parser_action_row396[] = {
+static int parser_action_row401[] = {
        1,
-       -1, 1, 637
+       -1, 1, 647
 };
-static int parser_action_row397[] = {
+static int parser_action_row402[] = {
        20,
-       -1, 3, 396,
-       12, 0, 104,
-       33, 0, 106,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 401,
+       12, 0, 105,
+       33, 0, 107,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row398[] = {
+static int parser_action_row403[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row399[] = {
+static int parser_action_row404[] = {
        20,
-       -1, 3, 398,
-       12, 0, 104,
-       33, 0, 106,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 403,
+       12, 0, 105,
+       33, 0, 107,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row400[] = {
+static int parser_action_row405[] = {
        19,
-       -1, 3, 399,
-       12, 0, 104,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 404,
+       12, 0, 105,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row401[] = {
+static int parser_action_row406[] = {
        19,
-       -1, 3, 400,
-       12, 0, 104,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 405,
+       12, 0, 105,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row402[] = {
+static int parser_action_row407[] = {
        19,
-       -1, 3, 401,
-       12, 0, 104,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 406,
+       12, 0, 105,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row403[] = {
+static int parser_action_row408[] = {
        3,
-       -1, 3, 402,
-       48, 0, 328,
-       79, 0, 329
+       -1, 3, 407,
+       48, 0, 330,
+       80, 0, 331
 };
-static int parser_action_row404[] = {
+static int parser_action_row409[] = {
        19,
-       -1, 3, 403,
-       12, 0, 104,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 408,
+       12, 0, 105,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row405[] = {
+static int parser_action_row410[] = {
        19,
-       -1, 3, 404,
-       12, 0, 104,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 409,
+       12, 0, 105,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row406[] = {
+static int parser_action_row411[] = {
        19,
-       -1, 3, 405,
-       12, 0, 104,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 410,
+       12, 0, 105,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row407[] = {
+static int parser_action_row412[] = {
        19,
-       -1, 3, 406,
-       12, 0, 104,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 411,
+       12, 0, 105,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row408[] = {
+static int parser_action_row413[] = {
        19,
-       -1, 3, 407,
-       12, 0, 104,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 412,
+       12, 0, 105,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row409[] = {
+static int parser_action_row414[] = {
        19,
-       -1, 3, 408,
-       12, 0, 104,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 413,
+       12, 0, 105,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row410[] = {
+static int parser_action_row415[] = {
        19,
-       -1, 3, 409,
-       12, 0, 104,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 414,
+       12, 0, 105,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row411[] = {
+static int parser_action_row416[] = {
        19,
-       -1, 3, 410,
-       12, 0, 104,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 415,
+       12, 0, 105,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row412[] = {
+static int parser_action_row417[] = {
        19,
-       -1, 3, 411,
-       12, 0, 104,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 416,
+       12, 0, 105,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row413[] = {
+static int parser_action_row418[] = {
        19,
-       -1, 3, 412,
-       12, 0, 104,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 417,
+       12, 0, 105,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row414[] = {
+static int parser_action_row419[] = {
        19,
-       -1, 3, 413,
-       12, 0, 104,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 418,
+       12, 0, 105,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row415[] = {
+static int parser_action_row420[] = {
        19,
-       -1, 3, 414,
-       12, 0, 104,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 419,
+       12, 0, 105,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row416[] = {
+static int parser_action_row421[] = {
        5,
-       -1, 3, 415,
-       12, 0, 526,
-       47, 0, 527,
-       80, 0, 528,
-       81, 0, 529
+       -1, 3, 420,
+       12, 0, 531,
+       47, 0, 532,
+       81, 0, 533,
+       82, 0, 534
 };
-static int parser_action_row417[] = {
+static int parser_action_row422[] = {
        5,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       51, 0, 480,
-       56, 0, 279
+       52, 0, 487,
+       57, 0, 281
 };
-static int parser_action_row418[] = {
+static int parser_action_row423[] = {
        2,
-       -1, 3, 417,
-       79, 0, 532
+       -1, 3, 422,
+       80, 0, 537
 };
-static int parser_action_row419[] = {
-       2,
-       -1, 1, 235,
-       50, 1, 589
+static int parser_action_row424[] = {
+       31,
+       -1, 3, 423,
+       9, 0, 538,
+       12, 0, 25,
+       15, 0, 27,
+       18, 0, 28,
+       24, 0, 32,
+       27, 0, 33,
+       28, 0, 34,
+       29, 0, 35,
+       34, 0, 36,
+       35, 0, 37,
+       36, 0, 38,
+       37, 0, 39,
+       38, 0, 40,
+       39, 0, 41,
+       42, 0, 42,
+       43, 0, 43,
+       44, 0, 44,
+       45, 0, 45,
+       46, 0, 46,
+       51, 0, 47,
+       52, 0, 48,
+       54, 0, 49,
+       80, 0, 50,
+       81, 0, 51,
+       82, 0, 52,
+       83, 0, 53,
+       84, 0, 54,
+       85, 0, 55,
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row420[] = {
+static int parser_action_row425[] = {
        3,
-       -1, 3, 419,
+       -1, 3, 424,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row421[] = {
+static int parser_action_row426[] = {
        3,
-       -1, 3, 420,
-       48, 0, 328,
-       79, 0, 329
+       -1, 3, 425,
+       48, 0, 330,
+       80, 0, 331
 };
-static int parser_action_row422[] = {
+static int parser_action_row427[] = {
        23,
-       -1, 3, 421,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 426,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row423[] = {
+static int parser_action_row428[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row424[] = {
+static int parser_action_row429[] = {
        2,
-       -1, 3, 423,
-       25, 0, 536
+       -1, 3, 428,
+       25, 0, 543
 };
-static int parser_action_row425[] = {
+static int parser_action_row430[] = {
        2,
-       -1, 3, 424,
-       15, 0, 537
+       -1, 3, 429,
+       15, 0, 544
 };
-static int parser_action_row426[] = {
+static int parser_action_row431[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       52, 0, 538
+       53, 0, 545
 };
-static int parser_action_row427[] = {
+static int parser_action_row432[] = {
        3,
-       -1, 3, 426,
-       30, 0, 540,
-       55, 0, 541
+       -1, 3, 431,
+       30, 0, 547,
+       56, 0, 548
 };
-static int parser_action_row428[] = {
+static int parser_action_row433[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row429[] = {
+static int parser_action_row434[] = {
        1,
-       -1, 1, 341
+       -1, 1, 349
 };
-static int parser_action_row430[] = {
+static int parser_action_row435[] = {
        3,
-       -1, 1, 403,
-       51, 0, 239,
-       63, 0, 467
+       -1, 1, 410,
+       52, 0, 241,
+       64, 0, 472
 };
-static int parser_action_row431[] = {
+static int parser_action_row436[] = {
        1,
-       -1, 1, 363
+       -1, 1, 371
 };
-static int parser_action_row432[] = {
+static int parser_action_row437[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row433[] = {
+static int parser_action_row438[] = {
        1,
-       -1, 1, 362
+       -1, 1, 370
 };
-static int parser_action_row434[] = {
+static int parser_action_row439[] = {
        1,
-       -1, 1, 332
+       -1, 1, 340
 };
-static int parser_action_row435[] = {
+static int parser_action_row440[] = {
        22,
-       -1, 3, 434,
-       12, 0, 151,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 439,
+       12, 0, 152,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row436[] = {
+static int parser_action_row441[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row437[] = {
+static int parser_action_row442[] = {
        22,
-       -1, 3, 436,
-       12, 0, 151,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 441,
+       12, 0, 152,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row438[] = {
+static int parser_action_row443[] = {
        21,
-       -1, 3, 437,
-       12, 0, 151,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 442,
+       12, 0, 152,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row439[] = {
+static int parser_action_row444[] = {
        21,
-       -1, 3, 438,
-       12, 0, 151,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 443,
+       12, 0, 152,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row440[] = {
+static int parser_action_row445[] = {
        21,
-       -1, 3, 439,
-       12, 0, 151,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 444,
+       12, 0, 152,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row441[] = {
+static int parser_action_row446[] = {
        3,
-       -1, 3, 440,
-       48, 0, 328,
-       79, 0, 329
+       -1, 3, 445,
+       48, 0, 330,
+       80, 0, 331
 };
-static int parser_action_row442[] = {
+static int parser_action_row447[] = {
        21,
-       -1, 3, 441,
-       12, 0, 151,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 446,
+       12, 0, 152,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row443[] = {
+static int parser_action_row448[] = {
        21,
-       -1, 3, 442,
-       12, 0, 151,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 447,
+       12, 0, 152,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row444[] = {
+static int parser_action_row449[] = {
        21,
-       -1, 3, 443,
-       12, 0, 151,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 448,
+       12, 0, 152,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row445[] = {
+static int parser_action_row450[] = {
        21,
-       -1, 3, 444,
-       12, 0, 151,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 449,
+       12, 0, 152,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row446[] = {
+static int parser_action_row451[] = {
        21,
-       -1, 3, 445,
-       12, 0, 151,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 450,
+       12, 0, 152,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row447[] = {
+static int parser_action_row452[] = {
        21,
-       -1, 3, 446,
-       12, 0, 151,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 451,
+       12, 0, 152,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row448[] = {
+static int parser_action_row453[] = {
        21,
-       -1, 3, 447,
-       12, 0, 151,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 452,
+       12, 0, 152,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row449[] = {
+static int parser_action_row454[] = {
        21,
-       -1, 3, 448,
-       12, 0, 151,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 453,
+       12, 0, 152,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row450[] = {
+static int parser_action_row455[] = {
        21,
-       -1, 3, 449,
-       12, 0, 151,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 454,
+       12, 0, 152,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row451[] = {
+static int parser_action_row456[] = {
        21,
-       -1, 3, 450,
-       12, 0, 151,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 455,
+       12, 0, 152,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row452[] = {
+static int parser_action_row457[] = {
        21,
-       -1, 3, 451,
-       12, 0, 151,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 456,
+       12, 0, 152,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row453[] = {
+static int parser_action_row458[] = {
        21,
-       -1, 3, 452,
-       12, 0, 151,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 457,
+       12, 0, 152,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row454[] = {
+static int parser_action_row459[] = {
        5,
-       -1, 3, 453,
-       12, 0, 564,
-       47, 0, 490,
-       80, 0, 565,
-       81, 0, 566
+       -1, 3, 458,
+       12, 0, 571,
+       47, 0, 494,
+       81, 0, 572,
+       82, 0, 573
 };
-static int parser_action_row455[] = {
+static int parser_action_row460[] = {
        1,
-       -1, 1, 333
+       -1, 1, 341
 };
-static int parser_action_row456[] = {
+static int parser_action_row461[] = {
        3,
-       -1, 3, 455,
-       36, 0, 472,
-       80, 0, 473
+       -1, 3, 460,
+       36, 0, 479,
+       81, 0, 480
 };
-static int parser_action_row457[] = {
+static int parser_action_row462[] = {
        2,
-       -1, 3, 456,
-       78, 0, 455
+       -1, 3, 461,
+       79, 0, 460
 };
-static int parser_action_row458[] = {
+static int parser_action_row463[] = {
        1,
-       -1, 1, 584
+       -1, 1, 594
 };
-static int parser_action_row459[] = {
+static int parser_action_row464[] = {
        1,
-       -1, 1, 543
+       -1, 1, 553
 };
-static int parser_action_row460[] = {
-       32,
-       -1, 3, 459,
+static int parser_action_row465[] = {
+       33,
+       -1, 3, 464,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 462,
+       9, 0, 467,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -5848,40 +5966,41 @@ static int parser_action_row460[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row461[] = {
+static int parser_action_row466[] = {
        5,
-       -1, 3, 460,
-       12, 0, 564,
-       47, 0, 490,
-       80, 0, 570,
-       81, 0, 566
+       -1, 3, 465,
+       12, 0, 571,
+       47, 0, 494,
+       81, 0, 577,
+       82, 0, 573
 };
-static int parser_action_row462[] = {
+static int parser_action_row467[] = {
        1,
-       -1, 1, 585
+       -1, 1, 595
 };
-static int parser_action_row463[] = {
+static int parser_action_row468[] = {
        1,
-       -1, 1, 237
+       -1, 1, 242
 };
-static int parser_action_row464[] = {
+static int parser_action_row469[] = {
        1,
-       -1, 1, 325
+       -1, 1, 333
 };
-static int parser_action_row465[] = {
-       30,
-       -1, 3, 464,
-       9, 0, 571,
+static int parser_action_row470[] = {
+       31,
+       -1, 3, 469,
+       9, 0, 578,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -5901,527 +6020,586 @@ static int parser_action_row465[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row466[] = {
+static int parser_action_row471[] = {
        2,
-       -1, 1, 228,
-       53, 0, 573
+       -1, 1, 233,
+       54, 0, 580
 };
-static int parser_action_row467[] = {
+static int parser_action_row472[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row468[] = {
+static int parser_action_row473[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row469[] = {
+static int parser_action_row474[] = {
+       23,
+       -1, 3, 473,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
+       43, 0, 43,
+       44, 0, 44,
+       45, 0, 45,
+       46, 0, 46,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 160,
+       82, 0, 161,
+       83, 0, 53,
+       84, 0, 54,
+       85, 0, 55,
+       86, 0, 56,
+       87, 0, 57
+};
+static int parser_action_row475[] = {
        5,
-       -1, 3, 468,
-       12, 0, 564,
-       47, 0, 490,
-       80, 0, 576,
-       81, 0, 566
+       -1, 3, 474,
+       12, 0, 571,
+       47, 0, 494,
+       81, 0, 584,
+       82, 0, 573
 };
-static int parser_action_row470[] = {
-       4,
-       -1, 3, 469,
-       54, 0, 577,
-       55, 0, 578,
-       62, 0, 579
+static int parser_action_row476[] = {
+       3,
+       -1, 1, 416,
+       56, 0, 585,
+       63, 0, 586
 };
-static int parser_action_row471[] = {
+static int parser_action_row477[] = {
        1,
-       -1, 1, 299
+       -1, 1, 415
 };
-static int parser_action_row472[] = {
+static int parser_action_row478[] = {
        1,
-       -1, 1, 304
+       -1, 1, 307
 };
-static int parser_action_row473[] = {
+static int parser_action_row479[] = {
        1,
-       -1, 1, 290
+       -1, 1, 312
 };
-static int parser_action_row474[] = {
+static int parser_action_row480[] = {
        1,
-       -1, 1, 289
+       -1, 1, 298
 };
-static int parser_action_row475[] = {
+static int parser_action_row481[] = {
+       1,
+       -1, 1, 297
+};
+static int parser_action_row482[] = {
        5,
-       -1, 3, 474,
-       15, 0, 582,
-       51, 0, 583,
-       58, 0, 584,
-       80, 0, 286
+       -1, 3, 481,
+       15, 0, 589,
+       52, 0, 590,
+       59, 0, 591,
+       81, 0, 288
 };
-static int parser_action_row476[] = {
+static int parser_action_row483[] = {
        1,
-       -1, 1, 273
+       -1, 1, 281
 };
-static int parser_action_row477[] = {
+static int parser_action_row484[] = {
        3,
-       -1, 3, 476,
-       0, 0, 79,
-       1, 0, 80
+       -1, 3, 483,
+       0, 0, 80,
+       1, 0, 81
 };
-static int parser_action_row478[] = {
+static int parser_action_row485[] = {
        3,
-       -1, 3, 477,
-       0, 0, 79,
-       1, 0, 80
+       -1, 3, 484,
+       0, 0, 80,
+       1, 0, 81
 };
-static int parser_action_row479[] = {
+static int parser_action_row486[] = {
        2,
        -1, 1, 184,
-       58, 0, 588
+       59, 0, 595
 };
-static int parser_action_row480[] = {
+static int parser_action_row487[] = {
        1,
        -1, 1, 186
 };
-static int parser_action_row481[] = {
+static int parser_action_row488[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row482[] = {
+static int parser_action_row489[] = {
        3,
-       -1, 3, 481,
-       14, 0, 590,
-       15, 0, 591
-};
-static int parser_action_row483[] = {
-       4,
-       -1, 1, 428,
-       0, 0, 1,
-       1, 0, 2,
-       56, 0, 279
-};
-static int parser_action_row484[] = {
-       1,
-       -1, 1, 192
+       -1, 3, 488,
+       14, 0, 597,
+       15, 0, 598
 };
-static int parser_action_row485[] = {
+static int parser_action_row490[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row486[] = {
+static int parser_action_row491[] = {
        3,
-       -1, 1, 194,
-       36, 0, 597,
-       78, 0, 598
+       -1, 1, 198,
+       36, 0, 600,
+       79, 0, 601
 };
-static int parser_action_row487[] = {
+static int parser_action_row492[] = {
        2,
-       -1, 3, 486,
-       58, 0, 601
+       -1, 3, 491,
+       59, 0, 605
 };
-static int parser_action_row488[] = {
+static int parser_action_row493[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       53, 0, 602
+       54, 0, 606
 };
-static int parser_action_row489[] = {
-       3,
-       -1, 1, 428,
-       0, 0, 1,
-       1, 0, 2
-};
-static int parser_action_row490[] = {
+static int parser_action_row494[] = {
        24,
-       -1, 1, 408,
-       12, 0, 104,
-       24, 0, 105,
-       33, 0, 106,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       51, 0, 115,
-       53, 1, 403,
-       63, 1, 403,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 1, 414,
+       12, 0, 105,
+       24, 0, 106,
+       33, 0, 107,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       52, 0, 116,
+       54, 1, 410,
+       64, 1, 410,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row491[] = {
+static int parser_action_row495[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row492[] = {
+static int parser_action_row496[] = {
        27,
-       -1, 1, 403,
-       0, 1, 408,
-       1, 1, 408,
-       9, 1, 408,
-       12, 0, 104,
-       24, 0, 105,
-       33, 0, 106,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       51, 0, 115,
-       65, 0, 116,
-       78, 1, 408,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 1, 410,
+       0, 1, 414,
+       1, 1, 414,
+       9, 1, 414,
+       12, 0, 105,
+       24, 0, 106,
+       33, 0, 107,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       52, 0, 116,
+       66, 0, 117,
+       79, 1, 414,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56,
-       89, 1, 408
+       86, 0, 123,
+       87, 0, 57,
+       92, 1, 414
 };
-static int parser_action_row493[] = {
+static int parser_action_row497[] = {
        4,
-       -1, 1, 368,
-       58, 0, 616,
-       59, 0, 195,
-       60, 0, 196
+       -1, 1, 376,
+       59, 0, 619,
+       60, 0, 197,
+       61, 0, 198
 };
-static int parser_action_row494[] = {
+static int parser_action_row498[] = {
        1,
-       -1, 1, 300
+       -1, 1, 308
 };
-static int parser_action_row495[] = {
+static int parser_action_row499[] = {
        1,
-       -1, 1, 305
+       -1, 1, 313
 };
-static int parser_action_row496[] = {
+static int parser_action_row500[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row497[] = {
-       1,
-       -1, 1, 395
-};
-static int parser_action_row498[] = {
-       2,
-       -1, 1, 416,
-       57, 0, 191
-};
-static int parser_action_row499[] = {
-       2,
-       -1, 3, 498,
-       80, 0, 619
-};
-static int parser_action_row500[] = {
-       1,
-       -1, 1, 402
-};
 static int parser_action_row501[] = {
-       3,
-       -1, 1, 428,
-       0, 0, 1,
-       1, 0, 2
+       1,
+       -1, 1, 403
 };
 static int parser_action_row502[] = {
        2,
-       -1, 3, 501,
-       25, 0, 621
+       -1, 1, 423,
+       58, 0, 193
 };
 static int parser_action_row503[] = {
-       3,
-       -1, 1, 428,
-       0, 0, 1,
-       1, 0, 2
+       2,
+       -1, 3, 502,
+       81, 0, 622
 };
 static int parser_action_row504[] = {
        1,
-       -1, 1, 629
+       -1, 1, 409
 };
 static int parser_action_row505[] = {
        2,
        -1, 3, 504,
-       63, 0, 502
+       53, 0, 623
 };
 static int parser_action_row506[] = {
-       5,
+       2,
        -1, 3, 505,
-       12, 0, 526,
-       47, 0, 527,
-       80, 0, 528,
-       81, 0, 623
+       25, 0, 624
 };
 static int parser_action_row507[] = {
        3,
-       -1, 3, 506,
-       52, 0, 624,
-       55, 0, 578
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2
 };
 static int parser_action_row508[] = {
        1,
-       -1, 1, 602
+       -1, 1, 639
 };
 static int parser_action_row509[] = {
-       20,
+       2,
        -1, 3, 508,
-       12, 0, 104,
-       33, 0, 106,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
-       81, 0, 118,
-       82, 0, 119,
-       83, 0, 120,
-       84, 0, 121,
-       85, 0, 122,
-       86, 0, 56
+       64, 0, 506
 };
 static int parser_action_row510[] = {
-       1,
-       -1, 1, 601
+       5,
+       -1, 3, 509,
+       12, 0, 531,
+       47, 0, 532,
+       81, 0, 533,
+       82, 0, 626
 };
 static int parser_action_row511[] = {
-       3,
-       -1, 1, 612,
-       64, 0, 259,
-       65, 0, 260
+       2,
+       -1, 1, 416,
+       56, 0, 585
 };
 static int parser_action_row512[] = {
-       3,
-       -1, 1, 615,
-       64, 0, 259,
-       65, 0, 260
+       6,
+       -1, 1, 411,
+       54, 1, 408,
+       59, 1, 408,
+       60, 1, 408,
+       61, 1, 408,
+       64, 1, 408
 };
 static int parser_action_row513[] = {
-       3,
-       -1, 1, 608,
-       64, 0, 259,
-       65, 0, 260
+       1,
+       -1, 1, 612
 };
 static int parser_action_row514[] = {
-       1,
-       -1, 1, 617
+       20,
+       -1, 3, 513,
+       12, 0, 105,
+       33, 0, 107,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
+       81, 0, 118,
+       82, 0, 119,
+       83, 0, 120,
+       84, 0, 121,
+       85, 0, 122,
+       86, 0, 123,
+       87, 0, 57
 };
 static int parser_action_row515[] = {
-       4,
-       -1, 1, 619,
-       66, 0, 268,
-       67, 0, 269,
-       68, 0, 270
+       1,
+       -1, 1, 611
 };
 static int parser_action_row516[] = {
-       4,
-       -1, 1, 620,
-       66, 0, 268,
-       67, 0, 269,
-       68, 0, 270
+       3,
+       -1, 1, 622,
+       65, 0, 261,
+       66, 0, 262
 };
 static int parser_action_row517[] = {
        3,
-       -1, 1, 607,
-       64, 0, 259,
-       65, 0, 260
+       -1, 1, 625,
+       65, 0, 261,
+       66, 0, 262
 };
 static int parser_action_row518[] = {
        3,
-       -1, 1, 609,
-       64, 0, 259,
-       65, 0, 260
+       -1, 1, 618,
+       65, 0, 261,
+       66, 0, 262
 };
 static int parser_action_row519[] = {
-       3,
-       -1, 1, 610,
-       64, 0, 259,
-       65, 0, 260
+       1,
+       -1, 1, 627
 };
 static int parser_action_row520[] = {
-       3,
-       -1, 1, 611,
-       64, 0, 259,
-       65, 0, 260
+       4,
+       -1, 1, 629,
+       67, 0, 270,
+       68, 0, 271,
+       69, 0, 272
 };
 static int parser_action_row521[] = {
-       3,
-       -1, 1, 613,
-       64, 0, 259,
-       65, 0, 260
+       4,
+       -1, 1, 630,
+       67, 0, 270,
+       68, 0, 271,
+       69, 0, 272
 };
 static int parser_action_row522[] = {
        3,
-       -1, 1, 614,
-       64, 0, 259,
-       65, 0, 260
+       -1, 1, 617,
+       65, 0, 261,
+       66, 0, 262
 };
 static int parser_action_row523[] = {
        3,
-       -1, 1, 616,
-       64, 0, 259,
-       65, 0, 260
+       -1, 1, 619,
+       65, 0, 261,
+       66, 0, 262
 };
 static int parser_action_row524[] = {
-       1,
-       -1, 1, 622
+       3,
+       -1, 1, 620,
+       65, 0, 261,
+       66, 0, 262
 };
 static int parser_action_row525[] = {
-       1,
-       -1, 1, 623
+       3,
+       -1, 1, 621,
+       65, 0, 261,
+       66, 0, 262
 };
 static int parser_action_row526[] = {
-       1,
-       -1, 1, 624
+       3,
+       -1, 1, 623,
+       65, 0, 261,
+       66, 0, 262
 };
 static int parser_action_row527[] = {
-       2,
-       -1, 1, 403,
-       51, 0, 239
+       3,
+       -1, 1, 624,
+       65, 0, 261,
+       66, 0, 262
 };
 static int parser_action_row528[] = {
        3,
-       -1, 1, 428,
-       0, 0, 1,
-       1, 0, 2
+       -1, 1, 626,
+       65, 0, 261,
+       66, 0, 262
 };
 static int parser_action_row529[] = {
-       2,
-       -1, 1, 403,
-       51, 0, 239
+       1,
+       -1, 1, 632
 };
 static int parser_action_row530[] = {
        1,
-       -1, 1, 632
+       -1, 1, 633
 };
 static int parser_action_row531[] = {
-       3,
-       -1, 3, 530,
-       14, 0, 630,
-       15, 0, 631
+       1,
+       -1, 1, 634
 };
 static int parser_action_row532[] = {
        2,
-       -1, 3, 531,
-       58, 0, 632
+       -1, 1, 410,
+       52, 0, 241
 };
 static int parser_action_row533[] = {
-       4,
-       -1, 1, 428,
+       3,
+       -1, 1, 435,
        0, 0, 1,
-       1, 0, 2,
-       53, 0, 602
+       1, 0, 2
 };
 static int parser_action_row534[] = {
-       1,
-       -1, 1, 234
+       2,
+       -1, 1, 410,
+       52, 0, 241
 };
 static int parser_action_row535[] = {
        1,
-       -1, 1, 294
+       -1, 1, 642
 };
 static int parser_action_row536[] = {
-       23,
+       3,
        -1, 3, 535,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       14, 0, 631,
+       15, 0, 632
+};
+static int parser_action_row537[] = {
+       2,
+       -1, 3, 536,
+       59, 0, 633
+};
+static int parser_action_row538[] = {
+       4,
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2,
+       54, 0, 606
+};
+static int parser_action_row539[] = {
+       1,
+       -1, 1, 248
+};
+static int parser_action_row540[] = {
+       31,
+       -1, 3, 539,
+       9, 0, 638,
+       12, 0, 25,
+       15, 0, 27,
+       18, 0, 28,
+       24, 0, 32,
+       27, 0, 33,
+       28, 0, 34,
+       29, 0, 35,
+       34, 0, 36,
+       35, 0, 37,
+       36, 0, 38,
+       37, 0, 39,
+       38, 0, 40,
+       39, 0, 41,
+       42, 0, 42,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
        51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
-       81, 0, 160,
+       52, 0, 48,
+       54, 0, 49,
+       80, 0, 50,
+       81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row537[] = {
-       33,
-       -1, 3, 536,
+static int parser_action_row541[] = {
+       1,
+       -1, 1, 239
+};
+static int parser_action_row542[] = {
+       1,
+       -1, 1, 302
+};
+static int parser_action_row543[] = {
+       23,
+       -1, 3, 542,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
+       43, 0, 43,
+       44, 0, 44,
+       45, 0, 45,
+       46, 0, 46,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 160,
+       82, 0, 161,
+       83, 0, 53,
+       84, 0, 54,
+       85, 0, 55,
+       86, 0, 56,
+       87, 0, 57
+};
+static int parser_action_row544[] = {
+       34,
+       -1, 3, 543,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 638,
-       12, 0, 639,
-       15, 0, 640,
-       18, 0, 641,
-       24, 0, 642,
-       26, 0, 643,
-       27, 0, 644,
-       28, 0, 645,
-       29, 0, 646,
-       34, 0, 647,
-       35, 0, 648,
-       36, 0, 649,
-       37, 0, 650,
-       38, 0, 651,
+       9, 0, 640,
+       12, 0, 641,
+       15, 0, 642,
+       18, 0, 643,
+       24, 0, 644,
+       26, 0, 645,
+       27, 0, 646,
+       28, 0, 647,
+       29, 0, 648,
+       34, 0, 649,
+       35, 0, 650,
+       36, 0, 651,
+       37, 0, 652,
+       38, 0, 653,
        39, 0, 41,
-       42, 0, 652,
+       42, 0, 654,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
-       46, 0, 46,
-       51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
-       80, 0, 653,
-       81, 0, 654,
-       82, 0, 52,
+       46, 0, 46,
+       51, 0, 655,
+       52, 0, 48,
+       54, 0, 49,
+       80, 0, 50,
+       81, 0, 656,
+       82, 0, 657,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row538[] = {
-       32,
-       -1, 3, 537,
+static int parser_action_row545[] = {
+       33,
+       -1, 3, 544,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 137,
+       9, 0, 138,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -6441,277 +6619,276 @@ static int parser_action_row538[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row539[] = {
+static int parser_action_row546[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row540[] = {
+static int parser_action_row547[] = {
        2,
-       -1, 3, 539,
-       55, 0, 541
+       -1, 3, 546,
+       56, 0, 548
 };
-static int parser_action_row541[] = {
+static int parser_action_row548[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row542[] = {
+static int parser_action_row549[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row543[] = {
+static int parser_action_row550[] = {
        2,
-       -1, 3, 542,
-       25, 0, 674
+       -1, 3, 549,
+       25, 0, 677
 };
-static int parser_action_row544[] = {
+static int parser_action_row551[] = {
        1,
-       -1, 1, 365
+       -1, 1, 373
 };
-static int parser_action_row545[] = {
+static int parser_action_row552[] = {
        5,
-       -1, 3, 544,
-       12, 0, 564,
-       47, 0, 490,
-       80, 0, 576,
-       81, 0, 675
+       -1, 3, 551,
+       12, 0, 571,
+       47, 0, 494,
+       81, 0, 584,
+       82, 0, 678
 };
-static int parser_action_row546[] = {
+static int parser_action_row553[] = {
        1,
-       -1, 1, 338
+       -1, 1, 346
 };
-static int parser_action_row547[] = {
+static int parser_action_row554[] = {
        22,
-       -1, 3, 546,
-       12, 0, 151,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 553,
+       12, 0, 152,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row548[] = {
+static int parser_action_row555[] = {
        1,
-       -1, 1, 337
+       -1, 1, 345
 };
-static int parser_action_row549[] = {
+static int parser_action_row556[] = {
        3,
-       -1, 1, 348,
-       64, 0, 302,
-       65, 0, 303
+       -1, 1, 356,
+       65, 0, 304,
+       66, 0, 305
 };
-static int parser_action_row550[] = {
+static int parser_action_row557[] = {
        3,
-       -1, 1, 351,
-       64, 0, 302,
-       65, 0, 303
+       -1, 1, 359,
+       65, 0, 304,
+       66, 0, 305
 };
-static int parser_action_row551[] = {
+static int parser_action_row558[] = {
        3,
-       -1, 1, 344,
-       64, 0, 302,
-       65, 0, 303
+       -1, 1, 352,
+       65, 0, 304,
+       66, 0, 305
 };
-static int parser_action_row552[] = {
+static int parser_action_row559[] = {
        1,
-       -1, 1, 353
+       -1, 1, 361
 };
-static int parser_action_row553[] = {
+static int parser_action_row560[] = {
        4,
-       -1, 1, 355,
-       66, 0, 311,
-       67, 0, 312,
-       68, 0, 313
+       -1, 1, 363,
+       67, 0, 313,
+       68, 0, 314,
+       69, 0, 315
 };
-static int parser_action_row554[] = {
+static int parser_action_row561[] = {
        4,
-       -1, 1, 356,
-       66, 0, 311,
-       67, 0, 312,
-       68, 0, 313
+       -1, 1, 364,
+       67, 0, 313,
+       68, 0, 314,
+       69, 0, 315
 };
-static int parser_action_row555[] = {
+static int parser_action_row562[] = {
        3,
-       -1, 1, 343,
-       64, 0, 302,
-       65, 0, 303
+       -1, 1, 351,
+       65, 0, 304,
+       66, 0, 305
 };
-static int parser_action_row556[] = {
+static int parser_action_row563[] = {
        3,
-       -1, 1, 345,
-       64, 0, 302,
-       65, 0, 303
+       -1, 1, 353,
+       65, 0, 304,
+       66, 0, 305
 };
-static int parser_action_row557[] = {
+static int parser_action_row564[] = {
        3,
-       -1, 1, 346,
-       64, 0, 302,
-       65, 0, 303
+       -1, 1, 354,
+       65, 0, 304,
+       66, 0, 305
 };
-static int parser_action_row558[] = {
+static int parser_action_row565[] = {
        3,
-       -1, 1, 347,
-       64, 0, 302,
-       65, 0, 303
+       -1, 1, 355,
+       65, 0, 304,
+       66, 0, 305
 };
-static int parser_action_row559[] = {
+static int parser_action_row566[] = {
        3,
-       -1, 1, 349,
-       64, 0, 302,
-       65, 0, 303
+       -1, 1, 357,
+       65, 0, 304,
+       66, 0, 305
 };
-static int parser_action_row560[] = {
+static int parser_action_row567[] = {
        3,
-       -1, 1, 350,
-       64, 0, 302,
-       65, 0, 303
+       -1, 1, 358,
+       65, 0, 304,
+       66, 0, 305
 };
-static int parser_action_row561[] = {
+static int parser_action_row568[] = {
        3,
-       -1, 1, 352,
-       64, 0, 302,
-       65, 0, 303
+       -1, 1, 360,
+       65, 0, 304,
+       66, 0, 305
 };
-static int parser_action_row562[] = {
+static int parser_action_row569[] = {
        1,
-       -1, 1, 358
+       -1, 1, 366
 };
-static int parser_action_row563[] = {
+static int parser_action_row570[] = {
        1,
-       -1, 1, 359
+       -1, 1, 367
 };
-static int parser_action_row564[] = {
+static int parser_action_row571[] = {
        1,
-       -1, 1, 360
+       -1, 1, 368
 };
-static int parser_action_row565[] = {
+static int parser_action_row572[] = {
        2,
-       -1, 1, 403,
-       51, 0, 239
+       -1, 1, 410,
+       52, 0, 241
 };
-static int parser_action_row566[] = {
+static int parser_action_row573[] = {
        2,
-       -1, 1, 403,
-       51, 0, 239
+       -1, 1, 410,
+       52, 0, 241
 };
-static int parser_action_row567[] = {
+static int parser_action_row574[] = {
        1,
-       -1, 1, 368
+       -1, 1, 376
 };
-static int parser_action_row568[] = {
+static int parser_action_row575[] = {
        5,
-       -1, 3, 567,
-       15, 0, 678,
-       51, 0, 679,
-       58, 0, 680,
-       80, 0, 286
+       -1, 3, 574,
+       15, 0, 681,
+       52, 0, 682,
+       59, 0, 683,
+       81, 0, 288
 };
-static int parser_action_row569[] = {
+static int parser_action_row576[] = {
        1,
-       -1, 1, 544
+       -1, 1, 554
 };
-static int parser_action_row570[] = {
+static int parser_action_row577[] = {
        1,
-       -1, 1, 326
+       -1, 1, 334
 };
-static int parser_action_row571[] = {
+static int parser_action_row578[] = {
        2,
-       -1, 1, 403,
-       51, 0, 239
+       -1, 1, 410,
+       52, 0, 241
 };
-static int parser_action_row572[] = {
+static int parser_action_row579[] = {
        1,
-       -1, 1, 236
+       -1, 1, 241
 };
-static int parser_action_row573[] = {
-       2,
-       -1, 3, 572,
-       9, 0, 683
+static int parser_action_row580[] = {
+       1,
+       -1, 1, 240
 };
-static int parser_action_row574[] = {
+static int parser_action_row581[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row575[] = {
+static int parser_action_row582[] = {
        3,
-       -1, 3, 574,
-       48, 0, 328,
-       79, 0, 329
-};
-static int parser_action_row576[] = {
-       2,
-       -1, 3, 575,
-       80, 0, 687
+       -1, 3, 581,
+       48, 0, 330,
+       80, 0, 331
 };
-static int parser_action_row577[] = {
+static int parser_action_row583[] = {
        2,
-       -1, 1, 403,
-       51, 0, 239
+       -1, 3, 582,
+       81, 0, 689
 };
-static int parser_action_row578[] = {
+static int parser_action_row584[] = {
        1,
-       -1, 1, 409
+       -1, 1, 278
 };
-static int parser_action_row579[] = {
+static int parser_action_row585[] = {
+       2,
+       -1, 1, 410,
+       52, 0, 241
+};
+static int parser_action_row586[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row580[] = {
+static int parser_action_row587[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row581[] = {
+static int parser_action_row588[] = {
        1,
-       -1, 1, 738
+       -1, 1, 748
 };
-static int parser_action_row582[] = {
-       3,
-       -1, 3, 581,
-       54, 0, 691,
-       55, 0, 578
+static int parser_action_row589[] = {
+       2,
+       -1, 1, 417,
+       56, 0, 585
 };
-static int parser_action_row583[] = {
-       32,
-       -1, 3, 582,
+static int parser_action_row590[] = {
+       33,
+       -1, 3, 589,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 137,
+       9, 0, 138,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -6731,64 +6908,65 @@ static int parser_action_row583[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row584[] = {
+static int parser_action_row591[] = {
        2,
-       -1, 3, 583,
-       80, 0, 286
+       -1, 3, 590,
+       81, 0, 288
 };
-static int parser_action_row585[] = {
+static int parser_action_row592[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row586[] = {
+static int parser_action_row593[] = {
        5,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       15, 0, 698,
-       58, 0, 699
+       15, 0, 699,
+       59, 0, 700
 };
-static int parser_action_row587[] = {
+static int parser_action_row594[] = {
        1,
        -1, 1, 34
 };
-static int parser_action_row588[] = {
+static int parser_action_row595[] = {
        1,
        -1, 1, 33
 };
-static int parser_action_row589[] = {
+static int parser_action_row596[] = {
        1,
        -1, 1, 187
 };
-static int parser_action_row590[] = {
+static int parser_action_row597[] = {
        3,
-       -1, 3, 589,
-       52, 0, 700,
-       80, 0, 701
+       -1, 3, 596,
+       53, 0, 701,
+       81, 0, 702
 };
-static int parser_action_row591[] = {
+static int parser_action_row598[] = {
        2,
-       -1, 3, 590,
-       20, 0, 703
+       -1, 3, 597,
+       20, 0, 705
 };
-static int parser_action_row592[] = {
-       32,
-       -1, 3, 591,
+static int parser_action_row599[] = {
+       33,
+       -1, 3, 598,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 462,
+       9, 0, 467,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -6808,279 +6986,240 @@ static int parser_action_row592[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
-};
-static int parser_action_row593[] = {
-       1,
-       -1, 1, 193
-};
-static int parser_action_row594[] = {
-       3,
-       -1, 1, 428,
-       0, 0, 1,
-       1, 0, 2
-};
-static int parser_action_row595[] = {
-       3,
-       -1, 1, 195,
-       36, 0, 597,
-       78, 0, 598
-};
-static int parser_action_row596[] = {
-       2,
-       -1, 1, 188,
-       58, 1, 448
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row597[] = {
+static int parser_action_row600[] = {
        4,
-       -1, 1, 190,
-       36, 0, 597,
-       58, 1, 450,
-       78, 0, 598
+       -1, 1, 196,
+       36, 0, 600,
+       59, 1, 459,
+       79, 0, 601
 };
-static int parser_action_row598[] = {
+static int parser_action_row601[] = {
        2,
-       -1, 3, 597,
-       78, 0, 707
+       -1, 3, 600,
+       79, 0, 708
 };
-static int parser_action_row599[] = {
+static int parser_action_row602[] = {
        2,
-       -1, 3, 598,
-       80, 0, 708
+       -1, 3, 601,
+       81, 0, 709
 };
-static int parser_action_row600[] = {
+static int parser_action_row603[] = {
        1,
-       -1, 1, 728
+       -1, 1, 199
 };
-static int parser_action_row601[] = {
+static int parser_action_row604[] = {
+       1,
+       -1, 1, 738
+};
+static int parser_action_row605[] = {
        3,
-       -1, 1, 207,
-       36, 0, 597,
-       78, 0, 598
+       -1, 1, 212,
+       36, 0, 600,
+       79, 0, 601
 };
-static int parser_action_row602[] = {
+static int parser_action_row606[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row603[] = {
+static int parser_action_row607[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row604[] = {
+static int parser_action_row608[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row605[] = {
+static int parser_action_row609[] = {
        1,
-       -1, 1, 720
+       -1, 1, 730
 };
-static int parser_action_row606[] = {
+static int parser_action_row610[] = {
        1,
-       -1, 1, 722
+       -1, 1, 732
 };
-static int parser_action_row607[] = {
+static int parser_action_row611[] = {
        3,
-       -1, 3, 606,
-       0, 0, 79,
-       1, 0, 80
+       -1, 3, 610,
+       0, 0, 80,
+       1, 0, 81
 };
-static int parser_action_row608[] = {
+static int parser_action_row612[] = {
        10,
        -1, 1, 166,
-       8, 0, 716,
-       9, 0, 717,
-       13, 0, 718,
-       16, 0, 719,
-       17, 0, 720,
+       8, 0, 717,
+       9, 0, 718,
+       13, 0, 719,
+       16, 0, 720,
+       17, 0, 721,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31,
-       42, 0, 721
+       42, 0, 722
 };
-static int parser_action_row609[] = {
+static int parser_action_row613[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row610[] = {
+static int parser_action_row614[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row611[] = {
-       3,
-       -1, 3, 610,
-       54, 0, 577,
-       55, 0, 578
-};
-static int parser_action_row612[] = {
+static int parser_action_row615[] = {
        1,
-       -1, 1, 374
+       -1, 1, 382
 };
-static int parser_action_row613[] = {
+static int parser_action_row616[] = {
        1,
-       -1, 1, 269
+       -1, 1, 276
 };
-static int parser_action_row614[] = {
+static int parser_action_row617[] = {
        2,
-       -1, 3, 613,
-       51, 0, 730
+       -1, 3, 616,
+       52, 0, 731
 };
-static int parser_action_row615[] = {
+static int parser_action_row618[] = {
        4,
-       -1, 1, 370,
-       58, 0, 731,
-       59, 0, 195,
-       60, 0, 196
+       -1, 1, 378,
+       59, 0, 732,
+       60, 0, 197,
+       61, 0, 198
 };
-static int parser_action_row616[] = {
+static int parser_action_row619[] = {
        2,
-       -1, 1, 263,
-       78, 0, 340
+       -1, 1, 270,
+       79, 0, 344
 };
-static int parser_action_row617[] = {
+static int parser_action_row620[] = {
        23,
-       -1, 3, 616,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 619,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row618[] = {
+static int parser_action_row621[] = {
        23,
-       -1, 3, 617,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 620,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
-};
-static int parser_action_row619[] = {
-       1,
-       -1, 1, 397
-};
-static int parser_action_row620[] = {
-       2,
-       -1, 1, 417,
-       57, 0, 191
-};
-static int parser_action_row621[] = {
-       3,
-       -1, 3, 620,
-       52, 0, 736,
-       55, 0, 578
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row622[] = {
-       3,
-       -1, 1, 428,
-       0, 0, 1,
-       1, 0, 2
+       1,
+       -1, 1, 405
 };
 static int parser_action_row623[] = {
        2,
-       -1, 3, 622,
-       80, 0, 739
+       -1, 1, 424,
+       58, 0, 193
 };
 static int parser_action_row624[] = {
-       3,
-       -1, 1, 630,
-       53, 1, 632,
-       63, 1, 632
+       1,
+       -1, 1, 408
 };
 static int parser_action_row625[] = {
-       6,
-       -1, 1, 404,
-       53, 1, 400,
-       58, 1, 400,
-       59, 1, 400,
-       60, 1, 400,
-       63, 1, 400
+       3,
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2
 };
 static int parser_action_row626[] = {
-       3,
+       2,
        -1, 3, 625,
-       52, 0, 740,
-       55, 0, 578
+       81, 0, 738
 };
 static int parser_action_row627[] = {
-       1,
-       -1, 1, 603
+       3,
+       -1, 1, 640,
+       54, 1, 642,
+       64, 1, 642
 };
 static int parser_action_row628[] = {
        1,
-       -1, 1, 638
+       -1, 1, 613
 };
 static int parser_action_row629[] = {
-       2,
-       -1, 3, 628,
-       51, 0, 741
+       1,
+       -1, 1, 648
 };
 static int parser_action_row630[] = {
-       1,
-       -1, 1, 634
+       2,
+       -1, 3, 629,
+       52, 0, 739
 };
 static int parser_action_row631[] = {
-       2,
-       -1, 3, 630,
-       20, 0, 742
+       1,
+       -1, 1, 644
 };
 static int parser_action_row632[] = {
-       32,
+       2,
        -1, 3, 631,
+       20, 0, 740
+};
+static int parser_action_row633[] = {
+       33,
+       -1, 3, 632,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 462,
+       9, 0, 467,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -7100,140 +7239,146 @@ static int parser_action_row632[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row633[] = {
+static int parser_action_row634[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row634[] = {
+static int parser_action_row635[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row635[] = {
+static int parser_action_row636[] = {
        10,
        -1, 1, 166,
-       8, 0, 716,
-       9, 0, 748,
-       13, 0, 718,
-       16, 0, 719,
-       17, 0, 720,
+       8, 0, 717,
+       9, 0, 746,
+       13, 0, 719,
+       16, 0, 720,
+       17, 0, 721,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31,
-       42, 0, 721
+       42, 0, 722
 };
-static int parser_action_row636[] = {
+static int parser_action_row637[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row637[] = {
+static int parser_action_row638[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row638[] = {
-       1,
-       -1, 1, 295
-};
 static int parser_action_row639[] = {
        1,
-       -1, 1, 316
+       -1, 1, 249
 };
 static int parser_action_row640[] = {
+       1,
+       -1, 1, 303
+};
+static int parser_action_row641[] = {
+       1,
+       -1, 1, 324
+};
+static int parser_action_row642[] = {
        24,
-       -1, 1, 408,
-       12, 0, 104,
-       24, 0, 105,
-       33, 0, 106,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       51, 0, 115,
-       53, 1, 403,
-       63, 1, 403,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 1, 414,
+       12, 0, 105,
+       24, 0, 106,
+       33, 0, 107,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       52, 0, 116,
+       54, 1, 410,
+       64, 1, 410,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row641[] = {
-       32,
-       -1, 3, 640,
+static int parser_action_row643[] = {
+       33,
+       -1, 3, 642,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 753,
-       12, 0, 639,
-       15, 0, 640,
-       18, 0, 641,
-       24, 0, 642,
-       27, 0, 644,
-       28, 0, 645,
-       29, 0, 646,
-       34, 0, 647,
-       35, 0, 648,
-       36, 0, 649,
-       37, 0, 650,
-       38, 0, 651,
+       9, 0, 751,
+       12, 0, 641,
+       15, 0, 642,
+       18, 0, 643,
+       24, 0, 644,
+       27, 0, 646,
+       28, 0, 647,
+       29, 0, 648,
+       34, 0, 649,
+       35, 0, 650,
+       36, 0, 651,
+       37, 0, 652,
+       38, 0, 653,
        39, 0, 41,
-       42, 0, 652,
+       42, 0, 654,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
-       80, 0, 653,
-       81, 0, 654,
-       82, 0, 52,
+       51, 0, 655,
+       52, 0, 48,
+       54, 0, 49,
+       80, 0, 50,
+       81, 0, 656,
+       82, 0, 657,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row642[] = {
+static int parser_action_row644[] = {
        2,
-       -1, 3, 641,
-       80, 0, 758
+       -1, 3, 643,
+       81, 0, 756
 };
-static int parser_action_row643[] = {
+static int parser_action_row645[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row644[] = {
-       32,
-       -1, 3, 643,
+static int parser_action_row646[] = {
+       33,
+       -1, 3, 645,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 462,
+       9, 0, 467,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -7253,270 +7398,277 @@ static int parser_action_row644[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row645[] = {
+static int parser_action_row647[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row646[] = {
-       32,
-       -1, 3, 645,
+static int parser_action_row648[] = {
+       33,
+       -1, 3, 647,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 753,
-       12, 0, 639,
-       15, 0, 640,
-       18, 0, 641,
-       24, 0, 642,
-       27, 0, 644,
-       28, 0, 645,
-       29, 0, 646,
-       34, 0, 647,
-       35, 0, 648,
-       36, 0, 649,
-       37, 0, 650,
-       38, 0, 651,
+       9, 0, 751,
+       12, 0, 641,
+       15, 0, 642,
+       18, 0, 643,
+       24, 0, 644,
+       27, 0, 646,
+       28, 0, 647,
+       29, 0, 648,
+       34, 0, 649,
+       35, 0, 650,
+       36, 0, 651,
+       37, 0, 652,
+       38, 0, 653,
        39, 0, 41,
-       42, 0, 652,
+       42, 0, 654,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
-       80, 0, 653,
-       81, 0, 654,
-       82, 0, 52,
+       51, 0, 655,
+       52, 0, 48,
+       54, 0, 49,
+       80, 0, 50,
+       81, 0, 656,
+       82, 0, 657,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row647[] = {
+static int parser_action_row649[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row648[] = {
+static int parser_action_row650[] = {
        24,
-       -1, 1, 246,
-       12, 0, 151,
-       24, 0, 152,
-       26, 1, 518,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 1, 253,
+       12, 0, 152,
+       24, 0, 153,
+       26, 1, 527,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row649[] = {
+static int parser_action_row651[] = {
        25,
-       -1, 1, 253,
-       12, 0, 151,
-       24, 0, 152,
-       26, 1, 525,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 1, 260,
+       12, 0, 152,
+       24, 0, 153,
+       26, 1, 534,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       50, 0, 172,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       50, 0, 173,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row650[] = {
+static int parser_action_row652[] = {
        25,
-       -1, 1, 248,
-       12, 0, 151,
-       24, 0, 152,
-       26, 1, 520,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 1, 255,
+       12, 0, 152,
+       24, 0, 153,
+       26, 1, 529,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       50, 0, 172,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       50, 0, 173,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row651[] = {
+static int parser_action_row653[] = {
        2,
-       -1, 1, 252,
-       26, 1, 524
+       -1, 1, 259,
+       26, 1, 533
 };
-static int parser_action_row652[] = {
+static int parser_action_row654[] = {
        23,
-       -1, 3, 651,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 653,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 177,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 178,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row653[] = {
+static int parser_action_row655[] = {
        24,
-       -1, 1, 408,
-       12, 0, 104,
-       24, 0, 105,
-       33, 0, 106,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       51, 0, 115,
-       53, 1, 403,
-       63, 1, 403,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 1, 414,
+       12, 0, 105,
+       24, 0, 106,
+       33, 0, 107,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       52, 0, 116,
+       54, 1, 410,
+       64, 1, 410,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row654[] = {
+static int parser_action_row656[] = {
+       2,
+       -1, 3, 655,
+       11, 0, 771
+};
+static int parser_action_row657[] = {
        28,
-       -1, 1, 408,
-       12, 0, 104,
-       24, 0, 105,
-       33, 0, 106,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       51, 0, 115,
-       53, 1, 403,
-       57, 0, 191,
-       58, 1, 403,
-       59, 1, 403,
-       60, 1, 403,
-       63, 1, 403,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 1, 414,
+       12, 0, 105,
+       24, 0, 106,
+       33, 0, 107,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       52, 0, 116,
+       54, 1, 410,
+       58, 0, 193,
+       59, 1, 410,
+       60, 1, 410,
+       61, 1, 410,
+       64, 1, 410,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row655[] = {
+static int parser_action_row658[] = {
        4,
-       -1, 1, 369,
-       58, 0, 775,
-       59, 0, 195,
-       60, 0, 196
+       -1, 1, 377,
+       59, 0, 774,
+       60, 0, 197,
+       61, 0, 198
 };
-static int parser_action_row656[] = {
+static int parser_action_row659[] = {
        1,
-       -1, 1, 311
+       -1, 1, 319
 };
-static int parser_action_row657[] = {
+static int parser_action_row660[] = {
        1,
-       -1, 1, 313
+       -1, 1, 321
 };
-static int parser_action_row658[] = {
+static int parser_action_row661[] = {
        3,
-       -1, 3, 657,
-       53, 0, 209,
-       63, 0, 777
+       -1, 3, 660,
+       54, 0, 211,
+       64, 0, 776
 };
-static int parser_action_row659[] = {
+static int parser_action_row662[] = {
        2,
-       -1, 3, 658,
-       42, 0, 779
+       -1, 3, 661,
+       42, 0, 778
 };
-static int parser_action_row660[] = {
-       31,
-       -1, 3, 659,
-       9, 0, 638,
+static int parser_action_row663[] = {
+       32,
+       -1, 3, 662,
+       9, 0, 640,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
        24, 0, 32,
-       26, 0, 643,
+       26, 0, 645,
        27, 0, 33,
        28, 0, 34,
        29, 0, 35,
@@ -7532,237 +7684,235 @@ static int parser_action_row660[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row661[] = {
+static int parser_action_row664[] = {
        2,
-       -1, 3, 660,
+       -1, 3, 663,
        26, 0, 782
 };
-static int parser_action_row662[] = {
-       1,
-       -1, 1, 516
-};
-static int parser_action_row663[] = {
-       1,
-       -1, 1, 517
-};
-static int parser_action_row664[] = {
-       1,
-       -1, 1, 529
-};
 static int parser_action_row665[] = {
        1,
-       -1, 1, 530
+       -1, 1, 525
 };
 static int parser_action_row666[] = {
        1,
-       -1, 1, 532
+       -1, 1, 526
 };
 static int parser_action_row667[] = {
        1,
-       -1, 1, 531
+       -1, 1, 538
 };
 static int parser_action_row668[] = {
        1,
-       -1, 1, 533
+       -1, 1, 539
 };
 static int parser_action_row669[] = {
        1,
-       -1, 1, 534
+       -1, 1, 541
 };
 static int parser_action_row670[] = {
        1,
-       -1, 1, 320
+       -1, 1, 540
 };
 static int parser_action_row671[] = {
-       2,
-       -1, 3, 670,
-       50, 0, 172
+       1,
+       -1, 1, 542
 };
 static int parser_action_row672[] = {
+       1,
+       -1, 1, 543
+};
+static int parser_action_row673[] = {
+       1,
+       -1, 1, 328
+};
+static int parser_action_row674[] = {
+       2,
+       -1, 3, 673,
+       50, 0, 173
+};
+static int parser_action_row675[] = {
        2,
-       -1, 3, 671,
+       -1, 3, 674,
        30, 0, 784
 };
-static int parser_action_row673[] = {
+static int parser_action_row676[] = {
        23,
-       -1, 3, 672,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 675,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row674[] = {
+static int parser_action_row677[] = {
        2,
-       -1, 3, 673,
-       80, 0, 786
+       -1, 3, 676,
+       81, 0, 786
 };
-static int parser_action_row675[] = {
+static int parser_action_row678[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row676[] = {
+static int parser_action_row679[] = {
        3,
-       -1, 1, 366,
-       53, 1, 368,
-       63, 1, 368
+       -1, 1, 374,
+       54, 1, 376,
+       64, 1, 376
 };
-static int parser_action_row677[] = {
+static int parser_action_row680[] = {
        1,
-       -1, 1, 339
+       -1, 1, 347
 };
-static int parser_action_row678[] = {
+static int parser_action_row681[] = {
        2,
-       -1, 1, 370,
-       78, 0, 340
+       -1, 1, 378,
+       79, 0, 344
 };
-static int parser_action_row679[] = {
-       32,
-       -1, 3, 678,
+static int parser_action_row682[] = {
+       33,
+       -1, 3, 681,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 753,
-       12, 0, 639,
-       15, 0, 640,
-       18, 0, 641,
-       24, 0, 642,
-       27, 0, 644,
-       28, 0, 645,
-       29, 0, 646,
-       34, 0, 647,
-       35, 0, 648,
-       36, 0, 649,
-       37, 0, 650,
-       38, 0, 651,
+       9, 0, 751,
+       12, 0, 641,
+       15, 0, 642,
+       18, 0, 643,
+       24, 0, 644,
+       27, 0, 646,
+       28, 0, 647,
+       29, 0, 648,
+       34, 0, 649,
+       35, 0, 650,
+       36, 0, 651,
+       37, 0, 652,
+       38, 0, 653,
        39, 0, 41,
-       42, 0, 652,
+       42, 0, 654,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
-       80, 0, 653,
-       81, 0, 654,
-       82, 0, 52,
+       51, 0, 655,
+       52, 0, 48,
+       54, 0, 49,
+       80, 0, 50,
+       81, 0, 656,
+       82, 0, 657,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row680[] = {
+static int parser_action_row683[] = {
        2,
-       -1, 3, 679,
-       80, 0, 286
+       -1, 3, 682,
+       81, 0, 288
 };
-static int parser_action_row681[] = {
+static int parser_action_row684[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row682[] = {
+static int parser_action_row685[] = {
        5,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
        15, 0, 794,
-       58, 0, 795
+       59, 0, 795
 };
-static int parser_action_row683[] = {
+static int parser_action_row686[] = {
        2,
-       -1, 1, 370,
-       78, 0, 455
-};
-static int parser_action_row684[] = {
-       1,
-       -1, 1, 235
+       -1, 1, 378,
+       79, 0, 460
 };
-static int parser_action_row685[] = {
+static int parser_action_row687[] = {
        3,
-       -1, 3, 684,
-       48, 0, 328,
-       79, 0, 329
+       -1, 3, 686,
+       48, 0, 330,
+       80, 0, 331
 };
-static int parser_action_row686[] = {
+static int parser_action_row688[] = {
        2,
-       -1, 1, 231,
-       55, 0, 798
+       -1, 1, 236,
+       56, 0, 798
 };
-static int parser_action_row687[] = {
+static int parser_action_row689[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row688[] = {
+static int parser_action_row690[] = {
        2,
-       -1, 1, 403,
-       51, 0, 239
+       -1, 1, 410,
+       52, 0, 241
 };
-static int parser_action_row689[] = {
+static int parser_action_row691[] = {
        1,
-       -1, 1, 370
+       -1, 1, 378
 };
-static int parser_action_row690[] = {
+static int parser_action_row692[] = {
        23,
-       -1, 3, 689,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 691,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row691[] = {
+static int parser_action_row693[] = {
        22,
-       -1, 3, 690,
+       -1, 3, 692,
        12, 0, 804,
        24, 0, 805,
        33, 0, 806,
@@ -7774,33 +7924,29 @@ static int parser_action_row691[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
-};
-static int parser_action_row692[] = {
-       1,
-       -1, 1, 410
-};
-static int parser_action_row693[] = {
-       1,
-       -1, 1, 739
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
 static int parser_action_row694[] = {
        1,
-       -1, 1, 277
+       -1, 1, 749
 };
 static int parser_action_row695[] = {
-       30,
-       -1, 1, 286,
-       9, 0, 275,
+       1,
+       -1, 1, 285
+};
+static int parser_action_row696[] = {
+       31,
+       -1, 1, 294,
+       9, 0, 277,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -7820,60 +7966,61 @@ static int parser_action_row695[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row696[] = {
+static int parser_action_row697[] = {
        2,
-       -1, 3, 695,
-       50, 0, 172
+       -1, 3, 696,
+       50, 0, 173
 };
-static int parser_action_row697[] = {
+static int parser_action_row698[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       52, 0, 836
+       53, 0, 837
 };
-static int parser_action_row698[] = {
+static int parser_action_row699[] = {
        23,
-       -1, 3, 697,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 698,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row699[] = {
-       32,
-       -1, 3, 698,
+static int parser_action_row700[] = {
+       33,
+       -1, 3, 699,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 137,
+       9, 0, 138,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -7893,470 +8040,453 @@ static int parser_action_row699[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row700[] = {
+static int parser_action_row701[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row701[] = {
-       1,
-       -1, 1, 202
-};
 static int parser_action_row702[] = {
-       2,
-       -1, 1, 204,
-       56, 0, 279
-};
-static int parser_action_row703[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       55, 0, 844
+       57, 0, 281
+};
+static int parser_action_row703[] = {
+       2,
+       -1, 1, 209,
+       57, 0, 281
 };
 static int parser_action_row704[] = {
-       3,
-       -1, 1, 440,
-       3, 0, 848,
-       85, 0, 849
+       2,
+       -1, 3, 703,
+       53, 0, 847
 };
 static int parser_action_row705[] = {
-       2,
-       -1, 1, 434,
-       9, 0, 851
+       4,
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2,
+       56, 0, 848
 };
 static int parser_action_row706[] = {
-       2,
-       -1, 1, 189,
-       58, 1, 449
+       3,
+       -1, 1, 447,
+       3, 0, 852,
+       86, 0, 853
 };
 static int parser_action_row707[] = {
-       4,
-       -1, 1, 191,
-       36, 0, 597,
-       58, 1, 451,
-       78, 0, 598
+       2,
+       -1, 1, 441,
+       9, 0, 855
 };
 static int parser_action_row708[] = {
        2,
-       -1, 3, 707,
-       80, 0, 852
+       -1, 1, 197,
+       59, 1, 460
 };
 static int parser_action_row709[] = {
-       3,
-       -1, 1, 196,
-       51, 0, 480,
-       56, 0, 279
+       2,
+       -1, 3, 708,
+       81, 0, 856
 };
 static int parser_action_row710[] = {
-       1,
-       -1, 1, 729
+       3,
+       -1, 1, 204,
+       52, 0, 857,
+       57, 0, 281
 };
 static int parser_action_row711[] = {
+       1,
+       -1, 1, 739
+};
+static int parser_action_row712[] = {
        23,
-       -1, 3, 710,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 711,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row712[] = {
+static int parser_action_row713[] = {
        2,
-       -1, 3, 711,
-       79, 0, 858
+       -1, 3, 712,
+       80, 0, 862
 };
-static int parser_action_row713[] = {
+static int parser_action_row714[] = {
        10,
        -1, 1, 166,
-       8, 0, 716,
-       9, 0, 860,
-       13, 0, 718,
-       16, 0, 719,
-       17, 0, 720,
+       8, 0, 717,
+       9, 0, 864,
+       13, 0, 719,
+       16, 0, 720,
+       17, 0, 721,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31,
-       42, 0, 721
+       42, 0, 722
 };
-static int parser_action_row714[] = {
+static int parser_action_row715[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row715[] = {
+static int parser_action_row716[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row716[] = {
+static int parser_action_row717[] = {
        1,
        -1, 1, 67
 };
-static int parser_action_row717[] = {
+static int parser_action_row718[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row718[] = {
+static int parser_action_row719[] = {
        1,
        -1, 1, 39
 };
-static int parser_action_row719[] = {
+static int parser_action_row720[] = {
        6,
        -1, 1, 166,
-       16, 0, 865,
-       17, 0, 866,
+       16, 0, 869,
+       17, 0, 870,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31
 };
-static int parser_action_row720[] = {
+static int parser_action_row721[] = {
        1,
        -1, 1, 160
 };
-static int parser_action_row721[] = {
+static int parser_action_row722[] = {
        1,
        -1, 1, 162
 };
-static int parser_action_row722[] = {
+static int parser_action_row723[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row723[] = {
+static int parser_action_row724[] = {
        6,
        -1, 1, 166,
-       13, 0, 869,
-       17, 0, 720,
+       13, 0, 873,
+       17, 0, 721,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31
 };
-static int parser_action_row724[] = {
+static int parser_action_row725[] = {
        5,
        -1, 1, 166,
-       13, 0, 872,
+       13, 0, 876,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31
 };
-static int parser_action_row725[] = {
+static int parser_action_row726[] = {
        6,
-       -1, 3, 724,
-       10, 0, 874,
-       11, 0, 875,
-       12, 0, 876,
-       18, 0, 877,
-       39, 0, 878
+       -1, 3, 725,
+       10, 0, 878,
+       11, 0, 879,
+       12, 0, 880,
+       18, 0, 881,
+       39, 0, 882
 };
-static int parser_action_row726[] = {
+static int parser_action_row727[] = {
        1,
-       -1, 1, 721
+       -1, 1, 731
 };
-static int parser_action_row727[] = {
+static int parser_action_row728[] = {
        10,
        -1, 1, 166,
-       8, 0, 716,
-       9, 0, 879,
-       13, 0, 718,
-       16, 0, 719,
-       17, 0, 720,
+       8, 0, 717,
+       9, 0, 883,
+       13, 0, 719,
+       16, 0, 720,
+       17, 0, 721,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31,
-       42, 0, 721
+       42, 0, 722
 };
-static int parser_action_row728[] = {
+static int parser_action_row729[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row729[] = {
+static int parser_action_row730[] = {
        1,
-       -1, 1, 723
+       -1, 1, 733
 };
-static int parser_action_row730[] = {
+static int parser_action_row731[] = {
        8,
        -1, 1, 166,
-       9, 0, 881,
-       13, 0, 718,
-       16, 0, 719,
-       17, 0, 720,
+       9, 0, 885,
+       13, 0, 719,
+       16, 0, 720,
+       17, 0, 721,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31
 };
-static int parser_action_row731[] = {
+static int parser_action_row732[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row732[] = {
+static int parser_action_row733[] = {
        23,
-       -1, 3, 731,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 732,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row733[] = {
+static int parser_action_row734[] = {
        23,
-       -1, 3, 732,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 733,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
-};
-static int parser_action_row734[] = {
-       1,
-       -1, 1, 265
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row735[] = {
        1,
-       -1, 1, 296
+       -1, 1, 272
 };
 static int parser_action_row736[] = {
        1,
-       -1, 1, 301
+       -1, 1, 304
 };
 static int parser_action_row737[] = {
        1,
-       -1, 1, 400
+       -1, 1, 309
 };
 static int parser_action_row738[] = {
-       3,
-       -1, 3, 737,
-       52, 0, 885,
-       55, 0, 578
-};
-static int parser_action_row739[] = {
        23,
-       -1, 3, 738,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 737,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row740[] = {
+static int parser_action_row739[] = {
        2,
-       -1, 1, 403,
-       51, 0, 239
-};
-static int parser_action_row741[] = {
-       6,
-       -1, 1, 405,
-       53, 1, 401,
-       58, 1, 401,
-       59, 1, 401,
-       60, 1, 401,
-       63, 1, 401
+       -1, 1, 410,
+       52, 0, 241
 };
-static int parser_action_row742[] = {
+static int parser_action_row740[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row743[] = {
+static int parser_action_row741[] = {
        3,
-       -1, 1, 441,
-       3, 0, 848,
-       85, 0, 889
+       -1, 1, 448,
+       3, 0, 852,
+       86, 0, 892
 };
-static int parser_action_row744[] = {
+static int parser_action_row742[] = {
        2,
-       -1, 1, 435,
-       9, 0, 891
+       -1, 1, 442,
+       9, 0, 894
 };
-static int parser_action_row745[] = {
+static int parser_action_row743[] = {
        23,
-       -1, 3, 744,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 742,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row746[] = {
+static int parser_action_row744[] = {
        10,
        -1, 1, 166,
-       8, 0, 716,
-       9, 0, 893,
-       13, 0, 718,
-       16, 0, 719,
-       17, 0, 720,
+       8, 0, 717,
+       9, 0, 896,
+       13, 0, 719,
+       16, 0, 720,
+       17, 0, 721,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31,
-       42, 0, 721
+       42, 0, 722
 };
-static int parser_action_row747[] = {
+static int parser_action_row745[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row748[] = {
+static int parser_action_row746[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row749[] = {
+static int parser_action_row747[] = {
        1,
        -1, 1, 40
 };
-static int parser_action_row750[] = {
+static int parser_action_row748[] = {
        10,
        -1, 1, 166,
-       8, 0, 716,
-       9, 0, 897,
-       13, 0, 718,
-       16, 0, 719,
-       17, 0, 720,
+       8, 0, 717,
+       9, 0, 900,
+       13, 0, 719,
+       16, 0, 720,
+       17, 0, 721,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31,
-       42, 0, 721
+       42, 0, 722
 };
-static int parser_action_row751[] = {
+static int parser_action_row749[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row752[] = {
+static int parser_action_row750[] = {
        8,
        -1, 1, 166,
-       9, 0, 899,
-       13, 0, 718,
-       16, 0, 719,
-       17, 0, 720,
+       9, 0, 902,
+       13, 0, 719,
+       16, 0, 720,
+       17, 0, 721,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31
 };
-static int parser_action_row753[] = {
+static int parser_action_row751[] = {
        2,
-       -1, 1, 270,
-       26, 1, 542
+       -1, 1, 277,
+       26, 1, 551
 };
-static int parser_action_row754[] = {
+static int parser_action_row752[] = {
        3,
-       -1, 1, 237,
-       26, 1, 514,
-       50, 1, 591
+       -1, 1, 242,
+       26, 1, 523,
+       50, 1, 601
 };
-static int parser_action_row755[] = {
-       30,
-       -1, 3, 754,
-       9, 0, 900,
+static int parser_action_row753[] = {
+       31,
+       -1, 3, 752,
+       9, 0, 903,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -8376,330 +8506,343 @@ static int parser_action_row755[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row756[] = {
+static int parser_action_row754[] = {
        1,
-       -1, 1, 570
+       -1, 1, 580
 };
-static int parser_action_row757[] = {
+static int parser_action_row755[] = {
        1,
-       -1, 1, 515
+       -1, 1, 524
 };
-static int parser_action_row758[] = {
+static int parser_action_row756[] = {
        2,
-       -1, 3, 757,
-       50, 0, 172
+       -1, 3, 755,
+       50, 0, 173
 };
-static int parser_action_row759[] = {
+static int parser_action_row757[] = {
        4,
-       -1, 1, 292,
-       26, 1, 555,
-       56, 0, 279,
-       58, 0, 903
+       -1, 1, 300,
+       26, 1, 565,
+       57, 0, 281,
+       59, 0, 906
 };
-static int parser_action_row760[] = {
+static int parser_action_row758[] = {
        23,
-       -1, 3, 759,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 757,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row761[] = {
+static int parser_action_row759[] = {
        1,
-       -1, 1, 315
+       -1, 1, 323
 };
-static int parser_action_row762[] = {
+static int parser_action_row760[] = {
        23,
-       -1, 3, 761,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 759,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row763[] = {
+static int parser_action_row761[] = {
        1,
-       -1, 1, 573
+       -1, 1, 583
 };
-static int parser_action_row764[] = {
+static int parser_action_row762[] = {
        2,
-       -1, 3, 763,
-       50, 0, 172
+       -1, 3, 761,
+       50, 0, 173
 };
-static int parser_action_row765[] = {
+static int parser_action_row763[] = {
        3,
-       -1, 3, 764,
-       51, 0, 908,
-       80, 0, 286
+       -1, 3, 762,
+       52, 0, 911,
+       81, 0, 288
 };
-static int parser_action_row766[] = {
+static int parser_action_row764[] = {
        1,
-       -1, 1, 519
+       -1, 1, 528
 };
-static int parser_action_row767[] = {
+static int parser_action_row765[] = {
        24,
-       -1, 1, 254,
-       12, 0, 151,
-       24, 0, 152,
-       26, 1, 526,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 1, 261,
+       12, 0, 152,
+       24, 0, 153,
+       26, 1, 535,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row768[] = {
+static int parser_action_row766[] = {
        1,
-       -1, 1, 527
+       -1, 1, 536
 };
-static int parser_action_row769[] = {
+static int parser_action_row767[] = {
        24,
-       -1, 1, 249,
-       12, 0, 151,
-       24, 0, 152,
-       26, 1, 521,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 1, 256,
+       12, 0, 152,
+       24, 0, 153,
+       26, 1, 530,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row770[] = {
+static int parser_action_row768[] = {
        1,
-       -1, 1, 522
+       -1, 1, 531
 };
-static int parser_action_row771[] = {
+static int parser_action_row769[] = {
        23,
-       -1, 3, 770,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 768,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row772[] = {
+static int parser_action_row770[] = {
        2,
-       -1, 3, 771,
-       26, 0, 913
+       -1, 3, 769,
+       26, 0, 916
 };
-static int parser_action_row773[] = {
+static int parser_action_row771[] = {
        2,
-       -1, 1, 267,
-       26, 1, 539
+       -1, 1, 274,
+       26, 1, 548
 };
-static int parser_action_row774[] = {
+static int parser_action_row772[] = {
+       3,
+       -1, 3, 771,
+       48, 0, 330,
+       80, 0, 331
+};
+static int parser_action_row773[] = {
        4,
-       -1, 1, 371,
-       58, 0, 914,
-       59, 0, 195,
-       60, 0, 196
+       -1, 1, 379,
+       59, 0, 918,
+       60, 0, 197,
+       61, 0, 198
 };
-static int parser_action_row775[] = {
+static int parser_action_row774[] = {
        3,
-       -1, 1, 264,
-       26, 1, 536,
-       78, 0, 455
+       -1, 1, 271,
+       26, 1, 545,
+       79, 0, 460
 };
-static int parser_action_row776[] = {
+static int parser_action_row775[] = {
        23,
-       -1, 3, 775,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 774,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row777[] = {
+static int parser_action_row776[] = {
        23,
-       -1, 3, 776,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 775,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row778[] = {
+static int parser_action_row777[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row779[] = {
+static int parser_action_row778[] = {
        4,
-       -1, 1, 376,
-       58, 0, 920,
-       59, 0, 195,
-       60, 0, 196
+       -1, 1, 384,
+       59, 0, 924,
+       60, 0, 197,
+       61, 0, 198
 };
-static int parser_action_row780[] = {
+static int parser_action_row779[] = {
        24,
-       -1, 1, 408,
-       12, 0, 104,
-       24, 0, 105,
-       33, 0, 106,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       51, 0, 115,
-       53, 1, 403,
-       63, 1, 403,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 1, 414,
+       12, 0, 105,
+       24, 0, 106,
+       33, 0, 107,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       52, 0, 116,
+       54, 1, 410,
+       64, 1, 410,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
+};
+static int parser_action_row780[] = {
+       3,
+       -1, 3, 779,
+       9, 0, 640,
+       26, 0, 645
 };
 static int parser_action_row781[] = {
        3,
        -1, 3, 780,
-       9, 0, 638,
-       26, 0, 643
+       0, 0, 1,
+       1, 0, 2
 };
 static int parser_action_row782[] = {
        1,
-       -1, 1, 314
+       -1, 1, 322
 };
 static int parser_action_row783[] = {
-       32,
+       33,
        -1, 3, 782,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 462,
+       9, 0, 467,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -8719,70 +8862,71 @@ static int parser_action_row783[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row784[] = {
        1,
-       -1, 1, 319
+       -1, 1, 327
 };
 static int parser_action_row785[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row786[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row787[] = {
        1,
-       -1, 1, 413
+       -1, 1, 420
 };
 static int parser_action_row788[] = {
        23,
        -1, 3, 787,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row789[] = {
        1,
-       -1, 1, 331
+       -1, 1, 339
 };
 static int parser_action_row790[] = {
-       30,
-       -1, 1, 286,
-       9, 0, 900,
+       31,
+       -1, 1, 294,
+       9, 0, 903,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -8802,364 +8946,371 @@ static int parser_action_row790[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row791[] = {
        1,
-       -1, 1, 548
+       -1, 1, 558
 };
 static int parser_action_row792[] = {
        2,
        -1, 3, 791,
-       50, 0, 172
+       50, 0, 173
 };
 static int parser_action_row793[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       52, 0, 930
+       53, 0, 934
 };
 static int parser_action_row794[] = {
        23,
        -1, 3, 793,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row795[] = {
-       32,
+       33,
        -1, 3, 794,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 753,
-       12, 0, 639,
-       15, 0, 640,
-       18, 0, 641,
-       24, 0, 642,
-       27, 0, 644,
-       28, 0, 645,
-       29, 0, 646,
-       34, 0, 647,
-       35, 0, 648,
-       36, 0, 649,
-       37, 0, 650,
-       38, 0, 651,
+       9, 0, 751,
+       12, 0, 641,
+       15, 0, 642,
+       18, 0, 643,
+       24, 0, 644,
+       27, 0, 646,
+       28, 0, 647,
+       29, 0, 648,
+       34, 0, 649,
+       35, 0, 650,
+       36, 0, 651,
+       37, 0, 652,
+       38, 0, 653,
        39, 0, 41,
-       42, 0, 652,
+       42, 0, 654,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
-       80, 0, 653,
-       81, 0, 654,
-       82, 0, 52,
+       51, 0, 655,
+       52, 0, 48,
+       54, 0, 49,
+       80, 0, 50,
+       81, 0, 656,
+       82, 0, 657,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row796[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row797[] = {
        1,
-       -1, 1, 583
+       -1, 1, 593
 };
 static int parser_action_row798[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row799[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row800[] = {
        1,
-       -1, 1, 732
+       -1, 1, 742
 };
 static int parser_action_row801[] = {
        2,
-       -1, 1, 232,
-       55, 0, 798
+       -1, 1, 237,
+       56, 0, 798
 };
 static int parser_action_row802[] = {
        2,
        -1, 3, 801,
-       54, 0, 940
+       55, 0, 944
 };
 static int parser_action_row803[] = {
        1,
-       -1, 1, 377
+       -1, 1, 385
 };
 static int parser_action_row804[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row805[] = {
        2,
-       -1, 1, 403,
-       51, 0, 239
+       -1, 1, 410,
+       52, 0, 241
 };
 static int parser_action_row806[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row807[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row808[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row809[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row810[] = {
        2,
-       -1, 1, 403,
-       51, 0, 239
+       -1, 1, 410,
+       52, 0, 241
 };
 static int parser_action_row811[] = {
        1,
-       -1, 1, 500
+       -1, 1, 509
 };
 static int parser_action_row812[] = {
        1,
-       -1, 1, 501
+       -1, 1, 510
 };
 static int parser_action_row813[] = {
        1,
-       -1, 1, 502
+       -1, 1, 511
 };
 static int parser_action_row814[] = {
        1,
-       -1, 1, 503
+       -1, 1, 512
 };
 static int parser_action_row815[] = {
        17,
        -1, 3, 814,
        12, 0, 804,
-       39, 0, 948,
+       39, 0, 952,
        42, 0, 809,
        43, 0, 810,
        44, 0, 811,
        45, 0, 812,
        46, 0, 813,
-       51, 0, 815,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 949,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 953,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
 static int parser_action_row816[] = {
        23,
        -1, 3, 815,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row817[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row818[] = {
        3,
-       -1, 1, 403,
-       51, 0, 239,
-       57, 0, 191
+       -1, 1, 410,
+       52, 0, 241,
+       58, 0, 193
 };
 static int parser_action_row819[] = {
        1,
-       -1, 1, 492
+       -1, 1, 501
 };
 static int parser_action_row820[] = {
        1,
-       -1, 1, 504
+       -1, 1, 513
 };
 static int parser_action_row821[] = {
        1,
-       -1, 1, 505
+       -1, 1, 514
 };
 static int parser_action_row822[] = {
        1,
-       -1, 1, 506
+       -1, 1, 515
 };
 static int parser_action_row823[] = {
        1,
-       -1, 1, 507
+       -1, 1, 516
 };
 static int parser_action_row824[] = {
        1,
-       -1, 1, 508
+       -1, 1, 517
 };
 static int parser_action_row825[] = {
        2,
        -1, 3, 824,
-       42, 0, 954
+       42, 0, 958
 };
 static int parser_action_row826[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row827[] = {
        3,
-       -1, 1, 457,
-       31, 0, 956,
-       32, 0, 957
+       -1, 1, 466,
+       31, 0, 960,
+       32, 0, 961
 };
 static int parser_action_row828[] = {
        1,
-       -1, 1, 459
+       -1, 1, 468
 };
 static int parser_action_row829[] = {
        3,
-       -1, 1, 463,
-       73, 0, 958,
-       76, 0, 959
+       -1, 1, 472,
+       74, 0, 962,
+       77, 0, 963
 };
 static int parser_action_row830[] = {
        12,
-       -1, 1, 465,
-       14, 0, 960,
-       40, 0, 961,
-       64, 0, 962,
-       65, 0, 963,
-       69, 0, 964,
-       70, 0, 965,
-       71, 0, 966,
-       72, 0, 967,
-       74, 0, 968,
-       75, 0, 969,
-       77, 0, 970
+       -1, 1, 474,
+       14, 0, 964,
+       40, 0, 965,
+       65, 0, 966,
+       66, 0, 967,
+       70, 0, 968,
+       71, 0, 969,
+       72, 0, 970,
+       73, 0, 971,
+       75, 0, 972,
+       76, 0, 973,
+       78, 0, 974
 };
 static int parser_action_row831[] = {
        4,
-       -1, 1, 477,
-       66, 0, 971,
-       67, 0, 972,
-       68, 0, 973
+       -1, 1, 486,
+       67, 0, 975,
+       68, 0, 976,
+       69, 0, 977
 };
 static int parser_action_row832[] = {
        1,
-       -1, 1, 480
+       -1, 1, 489
 };
 static int parser_action_row833[] = {
        1,
-       -1, 1, 484
+       -1, 1, 493
 };
 static int parser_action_row834[] = {
        2,
-       -1, 1, 487,
-       63, 0, 974
+       -1, 1, 496,
+       64, 0, 978
 };
 static int parser_action_row835[] = {
-       2,
-       -1, 1, 283,
-       9, 0, 418
+       1,
+       -1, 1, 291
 };
 static int parser_action_row836[] = {
-       1,
-       -1, 1, 274
+       3,
+       -1, 3, 835,
+       0, 0, 1,
+       1, 0, 2
 };
 static int parser_action_row837[] = {
-       3,
-       -1, 3, 836,
-       15, 0, 975,
-       58, 0, 976
+       1,
+       -1, 1, 282
 };
 static int parser_action_row838[] = {
-       1,
-       -1, 1, 280
+       3,
+       -1, 3, 837,
+       15, 0, 981,
+       59, 0, 982
 };
 static int parser_action_row839[] = {
        1,
-       -1, 1, 291
+       -1, 1, 288
 };
 static int parser_action_row840[] = {
        1,
-       -1, 1, 279
+       -1, 1, 299
 };
 static int parser_action_row841[] = {
-       30,
-       -1, 1, 288,
-       9, 0, 275,
+       1,
+       -1, 1, 287
+};
+static int parser_action_row842[] = {
+       31,
+       -1, 1, 296,
+       9, 0, 277,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -9179,742 +9330,766 @@ static int parser_action_row841[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row842[] = {
+static int parser_action_row843[] = {
        2,
-       -1, 3, 841,
-       50, 0, 172
+       -1, 3, 842,
+       50, 0, 173
 };
-static int parser_action_row843[] = {
+static int parser_action_row844[] = {
        23,
-       -1, 3, 842,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 843,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
-};
-static int parser_action_row844[] = {
-       2,
-       -1, 1, 205,
-       61, 0, 980
+       86, 0, 56,
+       87, 0, 57
 };
 static int parser_action_row845[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
 static int parser_action_row846[] = {
-       1,
-       -1, 1, 726
+       3,
+       -1, 1, 192,
+       36, 0, 600,
+       79, 0, 601
 };
 static int parser_action_row847[] = {
        2,
-       -1, 3, 846,
-       52, 0, 982
+       -1, 1, 210,
+       62, 0, 988
 };
 static int parser_action_row848[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       55, 0, 844
+       57, 0, 281
 };
 static int parser_action_row849[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2
+};
+static int parser_action_row850[] = {
+       1,
+       -1, 1, 736
+};
+static int parser_action_row851[] = {
+       1,
+       -1, 1, 206
+};
+static int parser_action_row852[] = {
+       4,
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2,
+       56, 0, 848
+};
+static int parser_action_row853[] = {
+       3,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row850[] = {
+static int parser_action_row854[] = {
        2,
-       -1, 1, 442,
-       3, 0, 848
+       -1, 1, 449,
+       3, 0, 852
 };
-static int parser_action_row851[] = {
+static int parser_action_row855[] = {
        1,
-       -1, 1, 444
+       -1, 1, 451
 };
-static int parser_action_row852[] = {
+static int parser_action_row856[] = {
        1,
-       -1, 1, 436
+       -1, 1, 443
 };
-static int parser_action_row853[] = {
+static int parser_action_row857[] = {
        3,
-       -1, 1, 196,
-       51, 0, 480,
-       56, 0, 279
+       -1, 1, 204,
+       52, 0, 857,
+       57, 0, 281
 };
-static int parser_action_row854[] = {
+static int parser_action_row858[] = {
+       3,
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2
+};
+static int parser_action_row859[] = {
        5,
-       -1, 3, 853,
+       -1, 3, 858,
        0, 0, 1,
        1, 0, 2,
-       15, 0, 988,
-       58, 0, 989
-};
-static int parser_action_row855[] = {
-       2,
-       -1, 1, 197,
-       56, 0, 279
+       15, 0, 998,
+       59, 0, 999
 };
-static int parser_action_row856[] = {
+static int parser_action_row860[] = {
        1,
-       -1, 1, 198
+       -1, 1, 205
 };
-static int parser_action_row857[] = {
+static int parser_action_row861[] = {
        1,
-       -1, 1, 438
+       -1, 1, 445
 };
-static int parser_action_row858[] = {
+static int parser_action_row862[] = {
        1,
-       -1, 1, 214
+       -1, 1, 219
 };
-static int parser_action_row859[] = {
+static int parser_action_row863[] = {
        2,
        -1, 1, 63,
-       56, 0, 279
+       57, 0, 281
 };
-static int parser_action_row860[] = {
+static int parser_action_row864[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       55, 0, 993
+       56, 0, 1002
 };
-static int parser_action_row861[] = {
+static int parser_action_row865[] = {
        1,
        -1, 1, 41
 };
-static int parser_action_row862[] = {
+static int parser_action_row866[] = {
        10,
        -1, 1, 166,
-       8, 0, 716,
-       9, 0, 997,
-       13, 0, 718,
-       16, 0, 719,
-       17, 0, 720,
+       8, 0, 717,
+       9, 0, 1006,
+       13, 0, 719,
+       16, 0, 720,
+       17, 0, 721,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31,
-       42, 0, 721
+       42, 0, 722
 };
-static int parser_action_row863[] = {
+static int parser_action_row867[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row864[] = {
+static int parser_action_row868[] = {
        8,
        -1, 1, 166,
-       9, 0, 999,
-       13, 0, 718,
-       16, 0, 719,
-       17, 0, 720,
+       9, 0, 1008,
+       13, 0, 719,
+       16, 0, 720,
+       17, 0, 721,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31
 };
-static int parser_action_row865[] = {
+static int parser_action_row869[] = {
        3,
-       -1, 3, 864,
-       48, 0, 328,
-       79, 0, 329
+       -1, 3, 868,
+       48, 0, 330,
+       80, 0, 331
 };
-static int parser_action_row866[] = {
+static int parser_action_row870[] = {
        1,
        -1, 1, 161
 };
-static int parser_action_row867[] = {
+static int parser_action_row871[] = {
        1,
        -1, 1, 163
 };
-static int parser_action_row868[] = {
+static int parser_action_row872[] = {
        6,
-       -1, 3, 867,
-       10, 0, 1001,
-       11, 0, 1002,
-       12, 0, 1003,
-       18, 0, 1004,
-       39, 0, 1005
+       -1, 3, 871,
+       10, 0, 1010,
+       11, 0, 1011,
+       12, 0, 1012,
+       18, 0, 1013,
+       39, 0, 1014
 };
-static int parser_action_row869[] = {
+static int parser_action_row873[] = {
        3,
-       -1, 3, 868,
-       48, 0, 328,
-       79, 0, 329
+       -1, 3, 872,
+       48, 0, 330,
+       80, 0, 331
 };
-static int parser_action_row870[] = {
+static int parser_action_row874[] = {
        5,
        -1, 1, 166,
-       17, 0, 866,
+       17, 0, 870,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31
 };
-static int parser_action_row871[] = {
+static int parser_action_row875[] = {
        5,
        -1, 1, 166,
-       13, 0, 1008,
+       13, 0, 1017,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31
 };
-static int parser_action_row872[] = {
+static int parser_action_row876[] = {
        2,
-       -1, 3, 871,
-       18, 0, 1010
+       -1, 3, 875,
+       18, 0, 1019
 };
-static int parser_action_row873[] = {
+static int parser_action_row877[] = {
        4,
        -1, 1, 166,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31
 };
-static int parser_action_row874[] = {
+static int parser_action_row878[] = {
        2,
-       -1, 3, 873,
-       18, 0, 1012
+       -1, 3, 877,
+       18, 0, 1021
 };
-static int parser_action_row875[] = {
+static int parser_action_row879[] = {
        17,
-       -1, 3, 874,
-       53, 0, 348,
-       64, 0, 349,
-       65, 0, 350,
-       66, 0, 351,
-       67, 0, 352,
-       68, 0, 353,
-       69, 0, 354,
-       70, 0, 355,
-       71, 0, 356,
-       72, 0, 357,
-       73, 0, 358,
-       74, 0, 359,
-       75, 0, 360,
-       76, 0, 361,
-       77, 0, 362,
-       80, 0, 363
+       -1, 3, 878,
+       54, 0, 352,
+       65, 0, 353,
+       66, 0, 354,
+       67, 0, 355,
+       68, 0, 356,
+       69, 0, 357,
+       70, 0, 358,
+       71, 0, 359,
+       72, 0, 360,
+       73, 0, 361,
+       74, 0, 362,
+       75, 0, 363,
+       76, 0, 364,
+       77, 0, 365,
+       78, 0, 366,
+       81, 0, 367
 };
-static int parser_action_row876[] = {
+static int parser_action_row880[] = {
        2,
-       -1, 3, 875,
-       79, 0, 1014
+       -1, 3, 879,
+       80, 0, 1023
 };
-static int parser_action_row877[] = {
+static int parser_action_row881[] = {
        21,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       51, 0, 480,
-       53, 0, 348,
-       56, 0, 279,
-       64, 0, 349,
-       65, 0, 350,
-       66, 0, 351,
-       67, 0, 352,
-       68, 0, 353,
-       69, 0, 354,
-       70, 0, 355,
-       71, 0, 356,
-       72, 0, 357,
-       73, 0, 358,
-       74, 0, 359,
-       75, 0, 360,
-       76, 0, 361,
-       77, 0, 362,
-       80, 0, 363
+       52, 0, 1024,
+       54, 0, 352,
+       57, 0, 281,
+       65, 0, 353,
+       66, 0, 354,
+       67, 0, 355,
+       68, 0, 356,
+       69, 0, 357,
+       70, 0, 358,
+       71, 0, 359,
+       72, 0, 360,
+       73, 0, 361,
+       74, 0, 362,
+       75, 0, 363,
+       76, 0, 364,
+       77, 0, 365,
+       78, 0, 366,
+       81, 0, 367
 };
-static int parser_action_row878[] = {
+static int parser_action_row882[] = {
        3,
-       -1, 3, 877,
-       80, 0, 1019,
-       81, 0, 1020
+       -1, 3, 881,
+       81, 0, 1028,
+       82, 0, 1029
 };
-static int parser_action_row879[] = {
+static int parser_action_row883[] = {
        21,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       51, 0, 480,
-       53, 0, 348,
-       56, 0, 279,
-       64, 0, 349,
-       65, 0, 350,
-       66, 0, 351,
-       67, 0, 352,
-       68, 0, 353,
-       69, 0, 354,
-       70, 0, 355,
-       71, 0, 356,
-       72, 0, 357,
-       73, 0, 358,
-       74, 0, 359,
-       75, 0, 360,
-       76, 0, 361,
-       77, 0, 362,
-       80, 0, 363
+       52, 0, 1024,
+       54, 0, 352,
+       57, 0, 281,
+       65, 0, 353,
+       66, 0, 354,
+       67, 0, 355,
+       68, 0, 356,
+       69, 0, 357,
+       70, 0, 358,
+       71, 0, 359,
+       72, 0, 360,
+       73, 0, 361,
+       74, 0, 362,
+       75, 0, 363,
+       76, 0, 364,
+       77, 0, 365,
+       78, 0, 366,
+       81, 0, 367
 };
-static int parser_action_row880[] = {
+static int parser_action_row884[] = {
        1,
        -1, 1, 43
 };
-static int parser_action_row881[] = {
+static int parser_action_row885[] = {
        8,
        -1, 1, 166,
-       9, 0, 1023,
-       13, 0, 718,
-       16, 0, 719,
-       17, 0, 720,
+       9, 0, 1032,
+       13, 0, 719,
+       16, 0, 720,
+       17, 0, 721,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31
 };
-static int parser_action_row882[] = {
+static int parser_action_row886[] = {
        1,
        -1, 1, 47
 };
-static int parser_action_row883[] = {
+static int parser_action_row887[] = {
        4,
-       -1, 3, 882,
-       33, 0, 1024,
-       48, 0, 328,
-       79, 0, 329
-};
-static int parser_action_row884[] = {
-       1,
-       -1, 1, 298
+       -1, 3, 886,
+       33, 0, 1033,
+       48, 0, 330,
+       80, 0, 331
 };
-static int parser_action_row885[] = {
+static int parser_action_row888[] = {
        1,
-       -1, 1, 303
+       -1, 1, 306
 };
-static int parser_action_row886[] = {
+static int parser_action_row889[] = {
        1,
-       -1, 1, 401
+       -1, 1, 311
 };
-static int parser_action_row887[] = {
+static int parser_action_row890[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row888[] = {
+static int parser_action_row891[] = {
        1,
-       -1, 1, 641
+       -1, 1, 651
 };
-static int parser_action_row889[] = {
+static int parser_action_row892[] = {
        4,
-       -1, 3, 888,
-       33, 0, 1027,
-       48, 0, 328,
-       79, 0, 329
+       -1, 3, 891,
+       33, 0, 1036,
+       48, 0, 330,
+       80, 0, 331
 };
-static int parser_action_row890[] = {
+static int parser_action_row893[] = {
        2,
-       -1, 1, 443,
-       3, 0, 848
+       -1, 1, 450,
+       3, 0, 852
 };
-static int parser_action_row891[] = {
+static int parser_action_row894[] = {
        1,
-       -1, 1, 445
+       -1, 1, 452
 };
-static int parser_action_row892[] = {
+static int parser_action_row895[] = {
        1,
-       -1, 1, 437
+       -1, 1, 444
 };
-static int parser_action_row893[] = {
+static int parser_action_row896[] = {
        1,
-       -1, 1, 439
+       -1, 1, 446
 };
-static int parser_action_row894[] = {
+static int parser_action_row897[] = {
        1,
        -1, 1, 42
 };
-static int parser_action_row895[] = {
+static int parser_action_row898[] = {
        10,
        -1, 1, 166,
-       8, 0, 716,
-       9, 0, 1030,
-       13, 0, 718,
-       16, 0, 719,
-       17, 0, 720,
+       8, 0, 717,
+       9, 0, 1039,
+       13, 0, 719,
+       16, 0, 720,
+       17, 0, 721,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31,
-       42, 0, 721
+       42, 0, 722
 };
-static int parser_action_row896[] = {
+static int parser_action_row899[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row897[] = {
+static int parser_action_row900[] = {
        8,
        -1, 1, 166,
-       9, 0, 1032,
-       13, 0, 718,
-       16, 0, 719,
-       17, 0, 720,
+       9, 0, 1041,
+       13, 0, 719,
+       16, 0, 720,
+       17, 0, 721,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31
 };
-static int parser_action_row898[] = {
+static int parser_action_row901[] = {
        1,
        -1, 1, 44
 };
-static int parser_action_row899[] = {
+static int parser_action_row902[] = {
        8,
        -1, 1, 166,
-       9, 0, 1033,
-       13, 0, 718,
-       16, 0, 719,
-       17, 0, 720,
+       9, 0, 1042,
+       13, 0, 719,
+       16, 0, 720,
+       17, 0, 721,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31
 };
-static int parser_action_row900[] = {
+static int parser_action_row903[] = {
        1,
        -1, 1, 48
 };
-static int parser_action_row901[] = {
+static int parser_action_row904[] = {
        3,
-       -1, 1, 236,
-       26, 1, 513,
-       50, 1, 590
+       -1, 1, 241,
+       26, 1, 522,
+       50, 1, 600
 };
-static int parser_action_row902[] = {
-       2,
-       -1, 3, 901,
-       9, 0, 1034
+static int parser_action_row905[] = {
+       3,
+       -1, 1, 240,
+       26, 1, 521,
+       50, 1, 599
 };
-static int parser_action_row903[] = {
+static int parser_action_row906[] = {
        2,
-       -1, 1, 308,
-       26, 1, 569
+       -1, 1, 316,
+       26, 1, 579
 };
-static int parser_action_row904[] = {
+static int parser_action_row907[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row905[] = {
+static int parser_action_row908[] = {
        3,
-       -1, 1, 293,
-       26, 1, 556,
-       58, 0, 1036
+       -1, 1, 301,
+       26, 1, 566,
+       59, 0, 1044
 };
-static int parser_action_row906[] = {
+static int parser_action_row909[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row907[] = {
+static int parser_action_row910[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row908[] = {
+static int parser_action_row911[] = {
        2,
-       -1, 1, 317,
-       26, 1, 572
+       -1, 1, 325,
+       26, 1, 582
 };
-static int parser_action_row909[] = {
+static int parser_action_row912[] = {
        2,
-       -1, 3, 908,
-       80, 0, 286
+       -1, 3, 911,
+       81, 0, 288
 };
-static int parser_action_row910[] = {
+static int parser_action_row913[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row911[] = {
+static int parser_action_row914[] = {
        1,
-       -1, 1, 528
+       -1, 1, 537
 };
-static int parser_action_row912[] = {
+static int parser_action_row915[] = {
        1,
-       -1, 1, 523
+       -1, 1, 532
 };
-static int parser_action_row913[] = {
+static int parser_action_row916[] = {
        2,
-       -1, 3, 912,
-       26, 0, 1041
+       -1, 3, 915,
+       26, 0, 1049
 };
-static int parser_action_row914[] = {
-       32,
-       -1, 3, 913,
+static int parser_action_row917[] = {
+       33,
+       -1, 3, 916,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 1042,
-       12, 0, 639,
-       15, 0, 640,
-       18, 0, 641,
-       24, 0, 642,
-       27, 0, 644,
-       28, 0, 645,
-       29, 0, 646,
-       34, 0, 647,
-       35, 0, 648,
-       36, 0, 649,
-       37, 0, 650,
-       38, 0, 651,
+       9, 0, 1050,
+       12, 0, 641,
+       15, 0, 642,
+       18, 0, 643,
+       24, 0, 644,
+       27, 0, 646,
+       28, 0, 647,
+       29, 0, 648,
+       34, 0, 649,
+       35, 0, 650,
+       36, 0, 651,
+       37, 0, 652,
+       38, 0, 653,
        39, 0, 41,
-       42, 0, 652,
+       42, 0, 654,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
-       80, 0, 653,
-       81, 0, 654,
-       82, 0, 52,
+       51, 0, 655,
+       52, 0, 48,
+       54, 0, 49,
+       80, 0, 50,
+       81, 0, 656,
+       82, 0, 657,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row915[] = {
+static int parser_action_row918[] = {
+       2,
+       -1, 3, 917,
+       57, 0, 1053
+};
+static int parser_action_row919[] = {
        23,
-       -1, 3, 914,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 918,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row916[] = {
+static int parser_action_row920[] = {
        23,
-       -1, 3, 915,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 919,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row917[] = {
+static int parser_action_row921[] = {
        1,
-       -1, 1, 538
+       -1, 1, 547
 };
-static int parser_action_row918[] = {
+static int parser_action_row922[] = {
        1,
-       -1, 1, 560
+       -1, 1, 570
 };
-static int parser_action_row919[] = {
+static int parser_action_row923[] = {
        1,
-       -1, 1, 565
+       -1, 1, 575
 };
-static int parser_action_row920[] = {
+static int parser_action_row924[] = {
        5,
-       -1, 3, 919,
-       12, 0, 1047,
-       47, 0, 490,
-       80, 0, 1048,
-       81, 0, 1049
+       -1, 3, 923,
+       12, 0, 1056,
+       47, 0, 494,
+       81, 0, 1057,
+       82, 0, 1058
 };
-static int parser_action_row921[] = {
+static int parser_action_row925[] = {
        23,
-       -1, 3, 920,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 924,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row922[] = {
+static int parser_action_row926[] = {
        23,
-       -1, 3, 921,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 925,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row923[] = {
+static int parser_action_row927[] = {
        2,
-       -1, 1, 268,
-       26, 1, 540
+       -1, 1, 275,
+       26, 1, 549
 };
-static int parser_action_row924[] = {
+static int parser_action_row928[] = {
        1,
-       -1, 1, 312
+       -1, 1, 320
+};
+static int parser_action_row929[] = {
+       3,
+       -1, 3, 928,
+       0, 0, 1,
+       1, 0, 2
 };
-static int parser_action_row925[] = {
+static int parser_action_row930[] = {
        1,
-       -1, 1, 310
+       -1, 1, 318
 };
-static int parser_action_row926[] = {
+static int parser_action_row931[] = {
        23,
-       -1, 3, 925,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 930,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row927[] = {
+static int parser_action_row932[] = {
        2,
-       -1, 3, 926,
-       15, 0, 1053
+       -1, 3, 931,
+       15, 0, 1062
 };
-static int parser_action_row928[] = {
+static int parser_action_row933[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row929[] = {
-       2,
-       -1, 1, 283,
-       9, 0, 1034
-};
-static int parser_action_row930[] = {
+static int parser_action_row934[] = {
        2,
-       -1, 1, 274,
-       26, 1, 545
+       -1, 1, 282,
+       26, 1, 555
 };
-static int parser_action_row931[] = {
+static int parser_action_row935[] = {
        3,
-       -1, 3, 930,
-       15, 0, 1055,
-       58, 0, 1056
+       -1, 3, 934,
+       15, 0, 1064,
+       59, 0, 1065
 };
-static int parser_action_row932[] = {
+static int parser_action_row936[] = {
        1,
-       -1, 1, 551
+       -1, 1, 561
 };
-static int parser_action_row933[] = {
+static int parser_action_row937[] = {
        1,
-       -1, 1, 554
+       -1, 1, 564
 };
-static int parser_action_row934[] = {
-       30,
-       -1, 1, 288,
-       9, 0, 900,
+static int parser_action_row938[] = {
+       31,
+       -1, 1, 296,
+       9, 0, 903,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -9934,107 +10109,108 @@ static int parser_action_row934[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row935[] = {
+static int parser_action_row939[] = {
        1,
-       -1, 1, 550
+       -1, 1, 560
 };
-static int parser_action_row936[] = {
+static int parser_action_row940[] = {
        2,
-       -1, 3, 935,
-       50, 0, 172
+       -1, 3, 939,
+       50, 0, 173
 };
-static int parser_action_row937[] = {
+static int parser_action_row941[] = {
        23,
-       -1, 3, 936,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 940,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row938[] = {
+static int parser_action_row942[] = {
        2,
-       -1, 3, 937,
-       54, 0, 1060
+       -1, 3, 941,
+       55, 0, 1068
 };
-static int parser_action_row939[] = {
+static int parser_action_row943[] = {
        3,
-       -1, 3, 938,
-       48, 0, 328,
-       79, 0, 329
+       -1, 3, 942,
+       48, 0, 330,
+       80, 0, 331
 };
-static int parser_action_row940[] = {
+static int parser_action_row944[] = {
        1,
-       -1, 1, 733
+       -1, 1, 743
 };
-static int parser_action_row941[] = {
+static int parser_action_row945[] = {
        1,
-       -1, 1, 229
+       -1, 1, 234
 };
-static int parser_action_row942[] = {
+static int parser_action_row946[] = {
        1,
-       -1, 1, 411
+       -1, 1, 418
 };
-static int parser_action_row943[] = {
+static int parser_action_row947[] = {
        1,
-       -1, 1, 498
+       -1, 1, 507
 };
-static int parser_action_row944[] = {
+static int parser_action_row948[] = {
        23,
-       -1, 3, 943,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 947,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row945[] = {
+static int parser_action_row949[] = {
        21,
-       -1, 3, 944,
+       -1, 3, 948,
        12, 0, 804,
        33, 0, 806,
        39, 0, 807,
@@ -10045,26 +10221,26 @@ static int parser_action_row945[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row946[] = {
+static int parser_action_row950[] = {
        3,
-       -1, 3, 945,
-       48, 0, 1064,
-       79, 0, 1065
+       -1, 3, 949,
+       48, 0, 1072,
+       80, 0, 1073
 };
-static int parser_action_row947[] = {
+static int parser_action_row951[] = {
        20,
-       -1, 3, 946,
+       -1, 3, 950,
        12, 0, 804,
        39, 0, 807,
        41, 0, 808,
@@ -10074,45 +10250,45 @@ static int parser_action_row947[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row948[] = {
+static int parser_action_row952[] = {
        1,
-       -1, 1, 495
+       -1, 1, 504
 };
-static int parser_action_row949[] = {
+static int parser_action_row953[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row950[] = {
+static int parser_action_row954[] = {
        2,
-       -1, 1, 490,
-       63, 1, 492
+       -1, 1, 499,
+       64, 1, 501
 };
-static int parser_action_row951[] = {
+static int parser_action_row955[] = {
        2,
-       -1, 3, 950,
-       63, 0, 1069
+       -1, 3, 954,
+       64, 0, 1077
 };
-static int parser_action_row952[] = {
+static int parser_action_row956[] = {
        2,
-       -1, 3, 951,
-       52, 0, 1070
+       -1, 3, 955,
+       53, 0, 1078
 };
-static int parser_action_row953[] = {
+static int parser_action_row957[] = {
        20,
-       -1, 3, 952,
+       -1, 3, 956,
        12, 0, 804,
        39, 0, 807,
        41, 0, 808,
@@ -10122,153 +10298,193 @@ static int parser_action_row953[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row954[] = {
+static int parser_action_row958[] = {
        1,
-       -1, 1, 494
+       -1, 1, 503
 };
-static int parser_action_row955[] = {
+static int parser_action_row959[] = {
        2,
-       -1, 1, 403,
-       51, 0, 239
+       -1, 1, 410,
+       52, 0, 241
 };
-static int parser_action_row956[] = {
+static int parser_action_row960[] = {
        3,
-       -1, 3, 955,
-       53, 0, 1073,
-       54, 0, 1074
+       -1, 3, 959,
+       54, 0, 1081,
+       55, 0, 1082
 };
-static int parser_action_row957[] = {
+static int parser_action_row961[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row958[] = {
+static int parser_action_row962[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       26, 0, 1076
+       26, 0, 1084
 };
-static int parser_action_row959[] = {
+static int parser_action_row963[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row960[] = {
+static int parser_action_row964[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row961[] = {
+static int parser_action_row965[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row962[] = {
+static int parser_action_row966[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row963[] = {
+static int parser_action_row967[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row964[] = {
+static int parser_action_row968[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row965[] = {
+static int parser_action_row969[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row966[] = {
+static int parser_action_row970[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row967[] = {
+static int parser_action_row971[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row968[] = {
+static int parser_action_row972[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row969[] = {
+static int parser_action_row973[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row970[] = {
+static int parser_action_row974[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row971[] = {
+static int parser_action_row975[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row972[] = {
+static int parser_action_row976[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row973[] = {
+static int parser_action_row977[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row974[] = {
+static int parser_action_row978[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row975[] = {
+static int parser_action_row979[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row976[] = {
-       32,
-       -1, 3, 975,
+static int parser_action_row980[] = {
+       31,
+       -1, 1, 246,
+       9, 0, 538,
+       12, 0, 25,
+       15, 0, 27,
+       18, 0, 28,
+       24, 0, 32,
+       27, 0, 33,
+       28, 0, 34,
+       29, 0, 35,
+       34, 0, 36,
+       35, 0, 37,
+       36, 0, 38,
+       37, 0, 39,
+       38, 0, 40,
+       39, 0, 41,
+       42, 0, 42,
+       43, 0, 43,
+       44, 0, 44,
+       45, 0, 45,
+       46, 0, 46,
+       51, 0, 47,
+       52, 0, 48,
+       54, 0, 49,
+       80, 0, 50,
+       81, 0, 51,
+       82, 0, 52,
+       83, 0, 53,
+       84, 0, 54,
+       85, 0, 55,
+       86, 0, 56,
+       87, 0, 57
+};
+static int parser_action_row981[] = {
+       3,
+       -1, 3, 980,
+       0, 0, 1,
+       1, 0, 2
+};
+static int parser_action_row982[] = {
+       33,
+       -1, 3, 981,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 137,
+       9, 0, 138,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -10288,98 +10504,122 @@ static int parser_action_row976[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row977[] = {
+static int parser_action_row983[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row978[] = {
-       2,
-       -1, 1, 285,
-       9, 0, 418
-};
-static int parser_action_row979[] = {
+static int parser_action_row984[] = {
        1,
-       -1, 1, 276
+       -1, 1, 293
 };
-static int parser_action_row980[] = {
+static int parser_action_row985[] = {
        1,
-       -1, 1, 282
+       -1, 1, 284
 };
-static int parser_action_row981[] = {
+static int parser_action_row986[] = {
        1,
-       -1, 1, 206
+       -1, 1, 290
 };
-static int parser_action_row982[] = {
-       2,
-       -1, 3, 981,
-       80, 0, 701
+static int parser_action_row987[] = {
+       4,
+       -1, 1, 188,
+       36, 0, 600,
+       59, 1, 455,
+       79, 0, 601
 };
-static int parser_action_row983[] = {
+static int parser_action_row988[] = {
        1,
-       -1, 1, 200
+       -1, 1, 194
 };
-static int parser_action_row984[] = {
+static int parser_action_row989[] = {
        1,
-       -1, 1, 727
+       -1, 1, 211
+};
+static int parser_action_row990[] = {
+       3,
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2
+};
+static int parser_action_row991[] = {
+       3,
+       -1, 1, 193,
+       36, 0, 600,
+       79, 0, 601
+};
+static int parser_action_row992[] = {
+       2,
+       -1, 3, 991,
+       81, 0, 702
+};
+static int parser_action_row993[] = {
+       1,
+       -1, 1, 737
 };
-static int parser_action_row985[] = {
-       2,
-       -1, 3, 984,
-       52, 0, 1100
+static int parser_action_row994[] = {
+       1,
+       -1, 1, 207
 };
-static int parser_action_row986[] = {
+static int parser_action_row995[] = {
        20,
-       -1, 3, 985,
-       42, 0, 1101,
-       48, 0, 328,
-       53, 0, 348,
-       64, 0, 349,
-       65, 0, 350,
-       66, 0, 351,
-       67, 0, 352,
-       68, 0, 353,
-       69, 0, 354,
-       70, 0, 355,
-       71, 0, 356,
-       72, 0, 357,
-       73, 0, 358,
-       74, 0, 359,
-       75, 0, 360,
-       76, 0, 361,
-       77, 0, 362,
-       79, 0, 1102,
-       80, 0, 363
+       -1, 3, 994,
+       42, 0, 1112,
+       48, 0, 330,
+       54, 0, 352,
+       65, 0, 353,
+       66, 0, 354,
+       67, 0, 355,
+       68, 0, 356,
+       69, 0, 357,
+       70, 0, 358,
+       71, 0, 359,
+       72, 0, 360,
+       73, 0, 361,
+       74, 0, 362,
+       75, 0, 363,
+       76, 0, 364,
+       77, 0, 365,
+       78, 0, 366,
+       80, 0, 1113,
+       81, 0, 367
 };
-static int parser_action_row987[] = {
+static int parser_action_row996[] = {
        1,
-       -1, 1, 446
+       -1, 1, 453
 };
-static int parser_action_row988[] = {
+static int parser_action_row997[] = {
        5,
-       -1, 3, 987,
+       -1, 3, 996,
        0, 0, 1,
        1, 0, 2,
-       15, 0, 1108,
-       58, 0, 1109
+       15, 0, 1119,
+       59, 0, 1120
 };
-static int parser_action_row989[] = {
-       32,
-       -1, 3, 988,
+static int parser_action_row998[] = {
+       3,
+       -1, 3, 997,
+       53, 0, 1122,
+       81, 0, 702
+};
+static int parser_action_row999[] = {
+       33,
+       -1, 3, 998,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 462,
+       9, 0, 467,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -10399,428 +10639,419 @@ static int parser_action_row989[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row990[] = {
+static int parser_action_row1000[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row991[] = {
-       1,
-       -1, 1, 208
-};
-static int parser_action_row992[] = {
+static int parser_action_row1001[] = {
        1,
-       -1, 1, 199
+       -1, 1, 213
 };
-static int parser_action_row993[] = {
+static int parser_action_row1002[] = {
        1,
        -1, 1, 64
 };
-static int parser_action_row994[] = {
+static int parser_action_row1003[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row995[] = {
+static int parser_action_row1004[] = {
        1,
-       -1, 1, 724
+       -1, 1, 734
 };
-static int parser_action_row996[] = {
+static int parser_action_row1005[] = {
        2,
-       -1, 3, 995,
-       54, 0, 1114
+       -1, 3, 1004,
+       55, 0, 1127
 };
-static int parser_action_row997[] = {
+static int parser_action_row1006[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       55, 0, 993
+       56, 0, 1002
 };
-static int parser_action_row998[] = {
+static int parser_action_row1007[] = {
        1,
        -1, 1, 45
 };
-static int parser_action_row999[] = {
+static int parser_action_row1008[] = {
        8,
        -1, 1, 166,
-       9, 0, 1117,
-       13, 0, 718,
-       16, 0, 719,
-       17, 0, 720,
+       9, 0, 1130,
+       13, 0, 719,
+       16, 0, 720,
+       17, 0, 721,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31
 };
-static int parser_action_row1000[] = {
+static int parser_action_row1009[] = {
        1,
        -1, 1, 49
 };
-static int parser_action_row1001[] = {
+static int parser_action_row1010[] = {
        1,
        -1, 1, 65
 };
-static int parser_action_row1002[] = {
+static int parser_action_row1011[] = {
        17,
-       -1, 3, 1001,
-       53, 0, 348,
-       64, 0, 349,
-       65, 0, 350,
-       66, 0, 351,
-       67, 0, 352,
-       68, 0, 353,
-       69, 0, 354,
-       70, 0, 355,
-       71, 0, 356,
-       72, 0, 357,
-       73, 0, 358,
-       74, 0, 359,
-       75, 0, 360,
-       76, 0, 361,
-       77, 0, 362,
-       80, 0, 363
+       -1, 3, 1010,
+       54, 0, 352,
+       65, 0, 353,
+       66, 0, 354,
+       67, 0, 355,
+       68, 0, 356,
+       69, 0, 357,
+       70, 0, 358,
+       71, 0, 359,
+       72, 0, 360,
+       73, 0, 361,
+       74, 0, 362,
+       75, 0, 363,
+       76, 0, 364,
+       77, 0, 365,
+       78, 0, 366,
+       81, 0, 367
 };
-static int parser_action_row1003[] = {
+static int parser_action_row1012[] = {
        2,
-       -1, 3, 1002,
-       79, 0, 1119
+       -1, 3, 1011,
+       80, 0, 1132
 };
-static int parser_action_row1004[] = {
+static int parser_action_row1013[] = {
        21,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       51, 0, 480,
-       53, 0, 348,
-       56, 0, 279,
-       64, 0, 349,
-       65, 0, 350,
-       66, 0, 351,
-       67, 0, 352,
-       68, 0, 353,
-       69, 0, 354,
-       70, 0, 355,
-       71, 0, 356,
-       72, 0, 357,
-       73, 0, 358,
-       74, 0, 359,
-       75, 0, 360,
-       76, 0, 361,
-       77, 0, 362,
-       80, 0, 363
+       52, 0, 1024,
+       54, 0, 352,
+       57, 0, 281,
+       65, 0, 353,
+       66, 0, 354,
+       67, 0, 355,
+       68, 0, 356,
+       69, 0, 357,
+       70, 0, 358,
+       71, 0, 359,
+       72, 0, 360,
+       73, 0, 361,
+       74, 0, 362,
+       75, 0, 363,
+       76, 0, 364,
+       77, 0, 365,
+       78, 0, 366,
+       81, 0, 367
 };
-static int parser_action_row1005[] = {
+static int parser_action_row1014[] = {
        3,
-       -1, 3, 1004,
-       80, 0, 1122,
-       81, 0, 1123
+       -1, 3, 1013,
+       81, 0, 1135,
+       82, 0, 1136
 };
-static int parser_action_row1006[] = {
+static int parser_action_row1015[] = {
        21,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       51, 0, 480,
-       53, 0, 348,
-       56, 0, 279,
-       64, 0, 349,
-       65, 0, 350,
-       66, 0, 351,
-       67, 0, 352,
-       68, 0, 353,
-       69, 0, 354,
-       70, 0, 355,
-       71, 0, 356,
-       72, 0, 357,
-       73, 0, 358,
-       74, 0, 359,
-       75, 0, 360,
-       76, 0, 361,
-       77, 0, 362,
-       80, 0, 363
+       52, 0, 1024,
+       54, 0, 352,
+       57, 0, 281,
+       65, 0, 353,
+       66, 0, 354,
+       67, 0, 355,
+       68, 0, 356,
+       69, 0, 357,
+       70, 0, 358,
+       71, 0, 359,
+       72, 0, 360,
+       73, 0, 361,
+       74, 0, 362,
+       75, 0, 363,
+       76, 0, 364,
+       77, 0, 365,
+       78, 0, 366,
+       81, 0, 367
 };
-static int parser_action_row1007[] = {
+static int parser_action_row1016[] = {
        1,
        -1, 1, 66
 };
-static int parser_action_row1008[] = {
+static int parser_action_row1017[] = {
        2,
-       -1, 3, 1007,
-       18, 0, 1126
+       -1, 3, 1016,
+       18, 0, 1139
 };
-static int parser_action_row1009[] = {
+static int parser_action_row1018[] = {
        4,
        -1, 1, 166,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31
 };
-static int parser_action_row1010[] = {
+static int parser_action_row1019[] = {
        2,
-       -1, 3, 1009,
-       18, 0, 1128
+       -1, 3, 1018,
+       18, 0, 1141
 };
-static int parser_action_row1011[] = {
+static int parser_action_row1020[] = {
        2,
-       -1, 3, 1010,
-       81, 0, 1129
+       -1, 3, 1019,
+       82, 0, 1142
 };
-static int parser_action_row1012[] = {
+static int parser_action_row1021[] = {
        2,
-       -1, 3, 1011,
-       18, 0, 1130
+       -1, 3, 1020,
+       18, 0, 1143
 };
-static int parser_action_row1013[] = {
+static int parser_action_row1022[] = {
        2,
-       -1, 3, 1012,
-       81, 0, 1131
+       -1, 3, 1021,
+       82, 0, 1144
 };
-static int parser_action_row1014[] = {
+static int parser_action_row1023[] = {
        5,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       51, 0, 480,
-       56, 0, 279
+       52, 0, 487,
+       57, 0, 281
 };
-static int parser_action_row1015[] = {
+static int parser_action_row1024[] = {
        2,
-       -1, 3, 1014,
-       56, 0, 279
+       -1, 3, 1023,
+       57, 0, 281
 };
-static int parser_action_row1016[] = {
+static int parser_action_row1025[] = {
+       3,
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2
+};
+static int parser_action_row1026[] = {
        5,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       51, 0, 480,
-       56, 0, 279
+       52, 0, 1024,
+       57, 0, 281
 };
-static int parser_action_row1017[] = {
+static int parser_action_row1027[] = {
        2,
-       -1, 3, 1016,
-       15, 0, 1136
-};
-static int parser_action_row1018[] = {
-       4,
-       -1, 1, 428,
-       0, 0, 1,
-       1, 0, 2,
-       56, 0, 279
+       -1, 3, 1026,
+       15, 0, 1150
 };
-static int parser_action_row1019[] = {
+static int parser_action_row1028[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1020[] = {
+static int parser_action_row1029[] = {
        8,
        -1, 1, 118,
-       13, 0, 1140,
+       13, 0, 1152,
        17, 1, 166,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31,
-       56, 0, 279,
-       58, 0, 1141
+       57, 0, 281,
+       59, 0, 1153
 };
-static int parser_action_row1021[] = {
+static int parser_action_row1030[] = {
        3,
        -1, 1, 86,
-       56, 0, 279,
-       58, 0, 1145
+       57, 0, 281,
+       59, 0, 1157
 };
-static int parser_action_row1022[] = {
+static int parser_action_row1031[] = {
        5,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       51, 0, 480,
-       56, 0, 279
+       52, 0, 1024,
+       57, 0, 281
 };
-static int parser_action_row1023[] = {
+static int parser_action_row1032[] = {
        2,
-       -1, 3, 1022,
-       14, 0, 1148
+       -1, 3, 1031,
+       14, 0, 1160
 };
-static int parser_action_row1024[] = {
+static int parser_action_row1033[] = {
        1,
        -1, 1, 51
 };
-static int parser_action_row1025[] = {
+static int parser_action_row1034[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1026[] = {
+static int parser_action_row1035[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1027[] = {
+static int parser_action_row1036[] = {
        2,
-       -1, 3, 1026,
-       26, 0, 1151
+       -1, 3, 1035,
+       26, 0, 1163
 };
-static int parser_action_row1028[] = {
+static int parser_action_row1037[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1029[] = {
+static int parser_action_row1038[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1030[] = {
+static int parser_action_row1039[] = {
        1,
-       -1, 1, 447
+       -1, 1, 454
 };
-static int parser_action_row1031[] = {
+static int parser_action_row1040[] = {
        1,
        -1, 1, 46
 };
-static int parser_action_row1032[] = {
+static int parser_action_row1041[] = {
        8,
        -1, 1, 166,
-       9, 0, 1154,
-       13, 0, 718,
-       16, 0, 719,
-       17, 0, 720,
+       9, 0, 1166,
+       13, 0, 719,
+       16, 0, 720,
+       17, 0, 721,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31
 };
-static int parser_action_row1033[] = {
+static int parser_action_row1042[] = {
        1,
        -1, 1, 50
 };
-static int parser_action_row1034[] = {
+static int parser_action_row1043[] = {
        1,
        -1, 1, 52
 };
-static int parser_action_row1035[] = {
-       3,
-       -1, 1, 235,
-       26, 1, 512,
-       50, 1, 589
-};
-static int parser_action_row1036[] = {
+static int parser_action_row1044[] = {
        23,
-       -1, 3, 1035,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1043,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1037[] = {
+static int parser_action_row1045[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1038[] = {
+static int parser_action_row1046[] = {
        2,
-       -1, 3, 1037,
-       25, 0, 1157
+       -1, 3, 1045,
+       25, 0, 1169
 };
-static int parser_action_row1039[] = {
+static int parser_action_row1047[] = {
        2,
-       -1, 3, 1038,
-       15, 0, 1158
+       -1, 3, 1046,
+       15, 0, 1170
 };
-static int parser_action_row1040[] = {
+static int parser_action_row1048[] = {
        4,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       52, 0, 1159
+       53, 0, 1171
 };
-static int parser_action_row1041[] = {
+static int parser_action_row1049[] = {
        3,
-       -1, 3, 1040,
-       30, 0, 1160,
-       55, 0, 541
+       -1, 3, 1048,
+       30, 0, 1172,
+       56, 0, 548
 };
-static int parser_action_row1042[] = {
-       32,
-       -1, 3, 1041,
+static int parser_action_row1050[] = {
+       33,
+       -1, 3, 1049,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 1042,
-       12, 0, 639,
-       15, 0, 640,
-       18, 0, 641,
-       24, 0, 642,
-       27, 0, 644,
-       28, 0, 645,
-       29, 0, 646,
-       34, 0, 647,
-       35, 0, 648,
-       36, 0, 649,
-       37, 0, 650,
-       38, 0, 651,
+       9, 0, 1050,
+       12, 0, 641,
+       15, 0, 642,
+       18, 0, 643,
+       24, 0, 644,
+       27, 0, 646,
+       28, 0, 647,
+       29, 0, 648,
+       34, 0, 649,
+       35, 0, 650,
+       36, 0, 651,
+       37, 0, 652,
+       38, 0, 653,
        39, 0, 41,
-       42, 0, 652,
+       42, 0, 654,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
-       80, 0, 653,
-       81, 0, 654,
-       82, 0, 52,
+       51, 0, 655,
+       52, 0, 48,
+       54, 0, 49,
+       80, 0, 50,
+       81, 0, 656,
+       82, 0, 657,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1043[] = {
+static int parser_action_row1051[] = {
        2,
-       -1, 1, 237,
-       26, 1, 514
+       -1, 1, 242,
+       26, 1, 523
 };
-static int parser_action_row1044[] = {
-       30,
-       -1, 3, 1043,
-       9, 0, 1162,
+static int parser_action_row1052[] = {
+       31,
+       -1, 3, 1051,
+       9, 0, 1174,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -10840,112 +11071,139 @@ static int parser_action_row1044[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1045[] = {
+static int parser_action_row1053[] = {
        1,
-       -1, 1, 580
+       -1, 1, 590
 };
-static int parser_action_row1046[] = {
+static int parser_action_row1054[] = {
+       23,
+       -1, 3, 1053,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
+       43, 0, 43,
+       44, 0, 44,
+       45, 0, 45,
+       46, 0, 46,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
+       83, 0, 53,
+       84, 0, 54,
+       85, 0, 55,
+       86, 0, 56,
+       87, 0, 57
+};
+static int parser_action_row1055[] = {
        1,
-       -1, 1, 562
+       -1, 1, 572
 };
-static int parser_action_row1047[] = {
+static int parser_action_row1056[] = {
        1,
-       -1, 1, 567
+       -1, 1, 577
 };
-static int parser_action_row1048[] = {
+static int parser_action_row1057[] = {
        24,
-       -1, 1, 408,
-       12, 0, 104,
-       24, 0, 105,
-       33, 0, 106,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       51, 0, 115,
-       53, 1, 403,
-       63, 1, 403,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 1, 414,
+       12, 0, 105,
+       24, 0, 106,
+       33, 0, 107,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       52, 0, 116,
+       54, 1, 410,
+       64, 1, 410,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row1049[] = {
+static int parser_action_row1058[] = {
        27,
-       -1, 1, 408,
-       12, 0, 104,
-       24, 0, 105,
-       33, 0, 106,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       51, 0, 115,
-       53, 1, 403,
-       58, 1, 403,
-       59, 1, 403,
-       60, 1, 403,
-       63, 1, 403,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 1, 414,
+       12, 0, 105,
+       24, 0, 106,
+       33, 0, 107,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       52, 0, 116,
+       54, 1, 410,
+       59, 1, 410,
+       60, 1, 410,
+       61, 1, 410,
+       64, 1, 410,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row1050[] = {
+static int parser_action_row1059[] = {
        4,
-       -1, 1, 368,
-       58, 0, 1167,
-       59, 0, 195,
-       60, 0, 196
+       -1, 1, 376,
+       59, 0, 1180,
+       60, 0, 197,
+       61, 0, 198
 };
-static int parser_action_row1051[] = {
+static int parser_action_row1060[] = {
        1,
-       -1, 1, 563
+       -1, 1, 573
 };
-static int parser_action_row1052[] = {
+static int parser_action_row1061[] = {
        1,
-       -1, 1, 568
+       -1, 1, 578
 };
-static int parser_action_row1053[] = {
+static int parser_action_row1062[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1054[] = {
-       32,
-       -1, 3, 1053,
+static int parser_action_row1063[] = {
+       33,
+       -1, 3, 1062,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 137,
+       9, 0, 138,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -10965,148 +11223,145 @@ static int parser_action_row1054[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1055[] = {
+static int parser_action_row1064[] = {
        2,
-       -1, 3, 1054,
-       26, 0, 1172
+       -1, 3, 1063,
+       26, 0, 1185
 };
-static int parser_action_row1056[] = {
-       32,
-       -1, 3, 1055,
+static int parser_action_row1065[] = {
+       33,
+       -1, 3, 1064,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 753,
-       12, 0, 639,
-       15, 0, 640,
-       18, 0, 641,
-       24, 0, 642,
-       27, 0, 644,
-       28, 0, 645,
-       29, 0, 646,
-       34, 0, 647,
-       35, 0, 648,
-       36, 0, 649,
-       37, 0, 650,
-       38, 0, 651,
+       9, 0, 751,
+       12, 0, 641,
+       15, 0, 642,
+       18, 0, 643,
+       24, 0, 644,
+       27, 0, 646,
+       28, 0, 647,
+       29, 0, 648,
+       34, 0, 649,
+       35, 0, 650,
+       36, 0, 651,
+       37, 0, 652,
+       38, 0, 653,
        39, 0, 41,
-       42, 0, 652,
+       42, 0, 654,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
-       80, 0, 653,
-       81, 0, 654,
-       82, 0, 52,
+       51, 0, 655,
+       52, 0, 48,
+       54, 0, 49,
+       80, 0, 50,
+       81, 0, 656,
+       82, 0, 657,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1057[] = {
+static int parser_action_row1066[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1058[] = {
-       2,
-       -1, 1, 285,
-       9, 0, 1034
-};
-static int parser_action_row1059[] = {
+static int parser_action_row1067[] = {
        2,
-       -1, 1, 276,
-       26, 1, 547
+       -1, 1, 284,
+       26, 1, 557
 };
-static int parser_action_row1060[] = {
+static int parser_action_row1068[] = {
        1,
-       -1, 1, 553
+       -1, 1, 563
 };
-static int parser_action_row1061[] = {
+static int parser_action_row1069[] = {
        1,
-       -1, 1, 230
+       -1, 1, 235
 };
-static int parser_action_row1062[] = {
+static int parser_action_row1070[] = {
        1,
-       -1, 1, 233
+       -1, 1, 238
 };
-static int parser_action_row1063[] = {
+static int parser_action_row1071[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1064[] = {
+static int parser_action_row1072[] = {
        1,
-       -1, 1, 464
+       -1, 1, 473
 };
-static int parser_action_row1065[] = {
+static int parser_action_row1073[] = {
        2,
-       -1, 3, 1064,
-       79, 0, 1178
+       -1, 3, 1072,
+       80, 0, 1191
 };
-static int parser_action_row1066[] = {
+static int parser_action_row1074[] = {
        1,
-       -1, 1, 452
+       -1, 1, 461
 };
-static int parser_action_row1067[] = {
+static int parser_action_row1075[] = {
        3,
-       -1, 1, 403,
-       51, 0, 239,
-       63, 0, 1179
+       -1, 1, 410,
+       52, 0, 241,
+       64, 0, 1192
 };
-static int parser_action_row1068[] = {
+static int parser_action_row1076[] = {
        1,
-       -1, 1, 486
+       -1, 1, 495
 };
-static int parser_action_row1069[] = {
+static int parser_action_row1077[] = {
        3,
-       -1, 3, 1068,
-       48, 0, 1064,
-       79, 0, 1065
+       -1, 3, 1076,
+       48, 0, 1072,
+       80, 0, 1073
 };
-static int parser_action_row1070[] = {
+static int parser_action_row1078[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1071[] = {
+static int parser_action_row1079[] = {
        1,
-       -1, 1, 509
+       -1, 1, 518
 };
-static int parser_action_row1072[] = {
+static int parser_action_row1080[] = {
        1,
-       -1, 1, 485
+       -1, 1, 494
 };
-static int parser_action_row1073[] = {
+static int parser_action_row1081[] = {
        1,
-       -1, 1, 496
+       -1, 1, 505
 };
-static int parser_action_row1074[] = {
+static int parser_action_row1082[] = {
        1,
-       -1, 1, 379
+       -1, 1, 387
 };
-static int parser_action_row1075[] = {
+static int parser_action_row1083[] = {
        1,
-       -1, 1, 378
+       -1, 1, 386
 };
-static int parser_action_row1076[] = {
+static int parser_action_row1084[] = {
        21,
-       -1, 3, 1075,
+       -1, 3, 1083,
        12, 0, 804,
        33, 0, 806,
        39, 0, 807,
@@ -11117,26 +11372,26 @@ static int parser_action_row1076[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row1077[] = {
+static int parser_action_row1085[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1078[] = {
+static int parser_action_row1086[] = {
        21,
-       -1, 3, 1077,
+       -1, 3, 1085,
        12, 0, 804,
        33, 0, 806,
        39, 0, 807,
@@ -11147,20 +11402,20 @@ static int parser_action_row1078[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row1079[] = {
+static int parser_action_row1087[] = {
        20,
-       -1, 3, 1078,
+       -1, 3, 1086,
        12, 0, 804,
        39, 0, 807,
        41, 0, 808,
@@ -11170,20 +11425,20 @@ static int parser_action_row1079[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row1080[] = {
+static int parser_action_row1088[] = {
        20,
-       -1, 3, 1079,
+       -1, 3, 1087,
        12, 0, 804,
        39, 0, 807,
        41, 0, 808,
@@ -11193,20 +11448,20 @@ static int parser_action_row1080[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row1081[] = {
+static int parser_action_row1089[] = {
        20,
-       -1, 3, 1080,
+       -1, 3, 1088,
        12, 0, 804,
        39, 0, 807,
        41, 0, 808,
@@ -11216,26 +11471,26 @@ static int parser_action_row1081[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row1082[] = {
+static int parser_action_row1090[] = {
        3,
-       -1, 3, 1081,
-       48, 0, 1064,
-       79, 0, 1065
+       -1, 3, 1089,
+       48, 0, 1072,
+       80, 0, 1073
 };
-static int parser_action_row1083[] = {
+static int parser_action_row1091[] = {
        20,
-       -1, 3, 1082,
+       -1, 3, 1090,
        12, 0, 804,
        39, 0, 807,
        41, 0, 808,
@@ -11245,20 +11500,20 @@ static int parser_action_row1083[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row1084[] = {
+static int parser_action_row1092[] = {
        20,
-       -1, 3, 1083,
+       -1, 3, 1091,
        12, 0, 804,
        39, 0, 807,
        41, 0, 808,
@@ -11268,20 +11523,20 @@ static int parser_action_row1084[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row1085[] = {
+static int parser_action_row1093[] = {
        20,
-       -1, 3, 1084,
+       -1, 3, 1092,
        12, 0, 804,
        39, 0, 807,
        41, 0, 808,
@@ -11291,20 +11546,20 @@ static int parser_action_row1085[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row1086[] = {
+static int parser_action_row1094[] = {
        20,
-       -1, 3, 1085,
+       -1, 3, 1093,
        12, 0, 804,
        39, 0, 807,
        41, 0, 808,
@@ -11314,20 +11569,20 @@ static int parser_action_row1086[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row1087[] = {
+static int parser_action_row1095[] = {
        20,
-       -1, 3, 1086,
+       -1, 3, 1094,
        12, 0, 804,
        39, 0, 807,
        41, 0, 808,
@@ -11337,20 +11592,20 @@ static int parser_action_row1087[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row1088[] = {
+static int parser_action_row1096[] = {
        20,
-       -1, 3, 1087,
+       -1, 3, 1095,
        12, 0, 804,
        39, 0, 807,
        41, 0, 808,
@@ -11360,20 +11615,20 @@ static int parser_action_row1088[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row1089[] = {
+static int parser_action_row1097[] = {
        20,
-       -1, 3, 1088,
+       -1, 3, 1096,
        12, 0, 804,
        39, 0, 807,
        41, 0, 808,
@@ -11383,20 +11638,20 @@ static int parser_action_row1089[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row1090[] = {
+static int parser_action_row1098[] = {
        20,
-       -1, 3, 1089,
+       -1, 3, 1097,
        12, 0, 804,
        39, 0, 807,
        41, 0, 808,
@@ -11406,20 +11661,20 @@ static int parser_action_row1090[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row1091[] = {
+static int parser_action_row1099[] = {
        20,
-       -1, 3, 1090,
+       -1, 3, 1098,
        12, 0, 804,
        39, 0, 807,
        41, 0, 808,
@@ -11429,20 +11684,20 @@ static int parser_action_row1091[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row1092[] = {
+static int parser_action_row1100[] = {
        20,
-       -1, 3, 1091,
+       -1, 3, 1099,
        12, 0, 804,
        39, 0, 807,
        41, 0, 808,
@@ -11452,20 +11707,20 @@ static int parser_action_row1092[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row1093[] = {
+static int parser_action_row1101[] = {
        20,
-       -1, 3, 1092,
+       -1, 3, 1100,
        12, 0, 804,
        39, 0, 807,
        41, 0, 808,
@@ -11475,20 +11730,20 @@ static int parser_action_row1093[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row1094[] = {
+static int parser_action_row1102[] = {
        20,
-       -1, 3, 1093,
+       -1, 3, 1101,
        12, 0, 804,
        39, 0, 807,
        41, 0, 808,
@@ -11498,33 +11753,67 @@ static int parser_action_row1094[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row1095[] = {
+static int parser_action_row1103[] = {
        5,
-       -1, 3, 1094,
-       12, 0, 1202,
-       47, 0, 1203,
-       80, 0, 1204,
-       81, 0, 1205
+       -1, 3, 1102,
+       12, 0, 1215,
+       47, 0, 1216,
+       81, 0, 1217,
+       82, 0, 1218
 };
-static int parser_action_row1096[] = {
+static int parser_action_row1104[] = {
+       31,
+       -1, 1, 247,
+       9, 0, 638,
+       12, 0, 25,
+       15, 0, 27,
+       18, 0, 28,
+       24, 0, 32,
+       27, 0, 33,
+       28, 0, 34,
+       29, 0, 35,
+       34, 0, 36,
+       35, 0, 37,
+       36, 0, 38,
+       37, 0, 39,
+       38, 0, 40,
+       39, 0, 41,
+       42, 0, 42,
+       43, 0, 43,
+       44, 0, 44,
+       45, 0, 45,
+       46, 0, 46,
+       51, 0, 47,
+       52, 0, 48,
+       54, 0, 49,
+       80, 0, 50,
+       81, 0, 51,
+       82, 0, 52,
+       83, 0, 53,
+       84, 0, 54,
+       85, 0, 55,
+       86, 0, 56,
+       87, 0, 57
+};
+static int parser_action_row1105[] = {
        1,
-       -1, 1, 278
+       -1, 1, 286
 };
-static int parser_action_row1097[] = {
-       30,
-       -1, 1, 287,
-       9, 0, 275,
+static int parser_action_row1106[] = {
+       31,
+       -1, 1, 295,
+       9, 0, 277,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -11544,94 +11833,107 @@ static int parser_action_row1097[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1098[] = {
+static int parser_action_row1107[] = {
        2,
-       -1, 3, 1097,
-       50, 0, 172
+       -1, 3, 1106,
+       50, 0, 173
 };
-static int parser_action_row1099[] = {
+static int parser_action_row1108[] = {
        23,
-       -1, 3, 1098,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1107,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1100[] = {
+static int parser_action_row1109[] = {
+       2,
+       -1, 1, 190,
+       59, 1, 457
+};
+static int parser_action_row1110[] = {
+       4,
+       -1, 1, 189,
+       36, 0, 600,
+       59, 1, 456,
+       79, 0, 601
+};
+static int parser_action_row1111[] = {
        1,
-       -1, 1, 203
+       -1, 1, 195
 };
-static int parser_action_row1101[] = {
+static int parser_action_row1112[] = {
        1,
-       -1, 1, 201
+       -1, 1, 208
 };
-static int parser_action_row1102[] = {
+static int parser_action_row1113[] = {
        1,
-       -1, 1, 220
+       -1, 1, 225
 };
-static int parser_action_row1103[] = {
+static int parser_action_row1114[] = {
        4,
-       -1, 1, 223,
-       47, 1, 227,
-       53, 0, 466,
-       57, 0, 1209
+       -1, 1, 228,
+       47, 1, 232,
+       54, 0, 471,
+       58, 0, 1223
 };
-static int parser_action_row1104[] = {
+static int parser_action_row1115[] = {
        1,
-       -1, 1, 221
+       -1, 1, 226
 };
-static int parser_action_row1105[] = {
+static int parser_action_row1116[] = {
        2,
-       -1, 1, 215,
-       55, 0, 1210
+       -1, 1, 220,
+       56, 0, 1224
 };
-static int parser_action_row1106[] = {
+static int parser_action_row1117[] = {
        1,
-       -1, 1, 218
+       -1, 1, 223
 };
-static int parser_action_row1107[] = {
+static int parser_action_row1118[] = {
        1,
-       -1, 1, 219
+       -1, 1, 224
 };
-static int parser_action_row1108[] = {
+static int parser_action_row1119[] = {
        2,
-       -1, 3, 1107,
-       47, 0, 1213
+       -1, 3, 1118,
+       47, 0, 1227
 };
-static int parser_action_row1109[] = {
-       32,
-       -1, 3, 1108,
+static int parser_action_row1120[] = {
+       33,
+       -1, 3, 1119,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 462,
+       9, 0, 467,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -11651,194 +11953,211 @@ static int parser_action_row1109[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1110[] = {
+static int parser_action_row1121[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1111[] = {
+static int parser_action_row1122[] = {
        1,
-       -1, 1, 209
+       -1, 1, 214
 };
-static int parser_action_row1112[] = {
+static int parser_action_row1123[] = {
+       2,
+       -1, 1, 200,
+       57, 0, 281
+};
+static int parser_action_row1124[] = {
+       2,
+       -1, 3, 1123,
+       53, 0, 1231
+};
+static int parser_action_row1125[] = {
        3,
-       -1, 3, 1111,
+       -1, 3, 1124,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1113[] = {
+static int parser_action_row1126[] = {
        23,
-       -1, 3, 1112,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1125,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1114[] = {
+static int parser_action_row1127[] = {
        2,
-       -1, 3, 1113,
-       79, 0, 858
+       -1, 3, 1126,
+       80, 0, 862
 };
-static int parser_action_row1115[] = {
+static int parser_action_row1128[] = {
        1,
        -1, 1, 60
 };
-static int parser_action_row1116[] = {
+static int parser_action_row1129[] = {
        1,
-       -1, 1, 725
+       -1, 1, 735
 };
-static int parser_action_row1117[] = {
+static int parser_action_row1130[] = {
        2,
-       -1, 3, 1116,
-       54, 0, 1219
+       -1, 3, 1129,
+       55, 0, 1235
 };
-static int parser_action_row1118[] = {
+static int parser_action_row1131[] = {
        1,
        -1, 1, 53
 };
-static int parser_action_row1119[] = {
+static int parser_action_row1132[] = {
        5,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       51, 0, 480,
-       56, 0, 279
+       52, 0, 487,
+       57, 0, 281
 };
-static int parser_action_row1120[] = {
+static int parser_action_row1133[] = {
        2,
-       -1, 3, 1119,
-       56, 0, 279
+       -1, 3, 1132,
+       57, 0, 281
 };
-static int parser_action_row1121[] = {
+static int parser_action_row1134[] = {
        5,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       51, 0, 480,
-       56, 0, 279
+       52, 0, 1024,
+       57, 0, 281
 };
-static int parser_action_row1122[] = {
+static int parser_action_row1135[] = {
        2,
-       -1, 3, 1121,
-       15, 0, 1224
+       -1, 3, 1134,
+       15, 0, 1240
 };
-static int parser_action_row1123[] = {
+static int parser_action_row1136[] = {
        8,
        -1, 1, 119,
-       13, 0, 1140,
+       13, 0, 1152,
        17, 1, 166,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31,
-       56, 0, 279,
-       58, 0, 1225
+       57, 0, 281,
+       59, 0, 1241
 };
-static int parser_action_row1124[] = {
+static int parser_action_row1137[] = {
        3,
        -1, 1, 87,
-       56, 0, 279,
-       58, 0, 1228
+       57, 0, 281,
+       59, 0, 1244
 };
-static int parser_action_row1125[] = {
+static int parser_action_row1138[] = {
        5,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2,
-       51, 0, 480,
-       56, 0, 279
+       52, 0, 1024,
+       57, 0, 281
 };
-static int parser_action_row1126[] = {
+static int parser_action_row1139[] = {
        2,
-       -1, 3, 1125,
-       14, 0, 1231
+       -1, 3, 1138,
+       14, 0, 1247
 };
-static int parser_action_row1127[] = {
+static int parser_action_row1140[] = {
        2,
-       -1, 3, 1126,
-       81, 0, 1232
+       -1, 3, 1139,
+       82, 0, 1248
 };
-static int parser_action_row1128[] = {
+static int parser_action_row1141[] = {
        2,
-       -1, 3, 1127,
-       18, 0, 1233
+       -1, 3, 1140,
+       18, 0, 1249
 };
-static int parser_action_row1129[] = {
+static int parser_action_row1142[] = {
        2,
-       -1, 3, 1128,
-       81, 0, 1234
+       -1, 3, 1141,
+       82, 0, 1250
 };
-static int parser_action_row1130[] = {
+static int parser_action_row1143[] = {
        3,
        -1, 1, 88,
-       56, 0, 279,
-       58, 0, 1235
+       57, 0, 281,
+       59, 0, 1251
 };
-static int parser_action_row1131[] = {
+static int parser_action_row1144[] = {
        2,
-       -1, 3, 1130,
-       81, 0, 1237
+       -1, 3, 1143,
+       82, 0, 1253
 };
-static int parser_action_row1132[] = {
+static int parser_action_row1145[] = {
        3,
        -1, 1, 90,
-       56, 0, 279,
-       58, 0, 1238
+       57, 0, 281,
+       59, 0, 1254
 };
-static int parser_action_row1133[] = {
+static int parser_action_row1146[] = {
        3,
-       -1, 3, 1132,
-       14, 0, 1240,
-       15, 0, 1241
+       -1, 3, 1145,
+       14, 0, 1256,
+       15, 0, 1257
 };
-static int parser_action_row1134[] = {
+static int parser_action_row1147[] = {
        2,
-       -1, 3, 1133,
-       58, 0, 1242
+       -1, 3, 1146,
+       59, 0, 1258
 };
-static int parser_action_row1135[] = {
+static int parser_action_row1148[] = {
        1,
        -1, 1, 142
 };
-static int parser_action_row1136[] = {
+static int parser_action_row1149[] = {
+       3,
+       -1, 3, 1148,
+       53, 0, 1259,
+       81, 0, 702
+};
+static int parser_action_row1150[] = {
        2,
-       -1, 3, 1135,
-       15, 0, 1243
+       -1, 3, 1149,
+       15, 0, 1261
 };
-static int parser_action_row1137[] = {
-       32,
-       -1, 3, 1136,
+static int parser_action_row1151[] = {
+       33,
+       -1, 3, 1150,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 462,
+       9, 0, 467,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -11858,337 +12177,334 @@ static int parser_action_row1137[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
-};
-static int parser_action_row1138[] = {
-       3,
-       -1, 1, 428,
-       0, 0, 1,
-       1, 0, 2
-};
-static int parser_action_row1139[] = {
-       1,
-       -1, 1, 188
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1140[] = {
+static int parser_action_row1152[] = {
        3,
-       -1, 1, 190,
-       36, 0, 597,
-       78, 0, 598
+       -1, 1, 196,
+       36, 0, 600,
+       79, 0, 601
 };
-static int parser_action_row1141[] = {
+static int parser_action_row1153[] = {
        4,
        -1, 1, 166,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31
 };
-static int parser_action_row1142[] = {
+static int parser_action_row1154[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1143[] = {
+static int parser_action_row1155[] = {
        2,
        -1, 1, 122,
-       58, 0, 1249
+       59, 0, 1266
 };
-static int parser_action_row1144[] = {
+static int parser_action_row1156[] = {
        2,
-       -1, 3, 1143,
-       17, 0, 1250
+       -1, 3, 1155,
+       17, 0, 1267
 };
-static int parser_action_row1145[] = {
+static int parser_action_row1157[] = {
        7,
        -1, 1, 120,
-       13, 0, 1140,
+       13, 0, 1152,
        17, 1, 166,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31,
-       58, 0, 1251
+       59, 0, 1268
 };
-static int parser_action_row1146[] = {
+static int parser_action_row1158[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1147[] = {
+static int parser_action_row1159[] = {
        2,
        -1, 1, 94,
-       58, 0, 1254
+       59, 0, 1271
 };
-static int parser_action_row1148[] = {
+static int parser_action_row1160[] = {
        2,
-       -1, 3, 1147,
-       14, 0, 1255
+       -1, 3, 1159,
+       14, 0, 1272
 };
-static int parser_action_row1149[] = {
+static int parser_action_row1161[] = {
        2,
-       -1, 3, 1148,
-       20, 0, 1256
+       -1, 3, 1160,
+       20, 0, 1273
 };
-static int parser_action_row1150[] = {
+static int parser_action_row1162[] = {
        2,
-       -1, 3, 1149,
-       46, 0, 1257
+       -1, 3, 1161,
+       46, 0, 1274
 };
-static int parser_action_row1151[] = {
+static int parser_action_row1163[] = {
        2,
-       -1, 3, 1150,
-       52, 0, 1258
+       -1, 3, 1162,
+       53, 0, 1275
 };
-static int parser_action_row1152[] = {
+static int parser_action_row1164[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1153[] = {
+static int parser_action_row1165[] = {
        2,
-       -1, 3, 1152,
-       46, 0, 1260
+       -1, 3, 1164,
+       46, 0, 1277
 };
-static int parser_action_row1154[] = {
+static int parser_action_row1166[] = {
        2,
-       -1, 3, 1153,
-       52, 0, 1261
+       -1, 3, 1165,
+       53, 0, 1278
 };
-static int parser_action_row1155[] = {
+static int parser_action_row1167[] = {
        1,
        -1, 1, 54
 };
-static int parser_action_row1156[] = {
+static int parser_action_row1168[] = {
        1,
-       -1, 1, 557
+       -1, 1, 567
 };
-static int parser_action_row1157[] = {
+static int parser_action_row1169[] = {
        23,
-       -1, 3, 1156,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1168,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1158[] = {
-       33,
-       -1, 3, 1157,
+static int parser_action_row1170[] = {
+       34,
+       -1, 3, 1169,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 638,
-       12, 0, 639,
-       15, 0, 640,
-       18, 0, 641,
-       24, 0, 642,
-       26, 0, 643,
-       27, 0, 644,
-       28, 0, 645,
-       29, 0, 646,
-       34, 0, 647,
-       35, 0, 648,
-       36, 0, 649,
-       37, 0, 650,
-       38, 0, 651,
+       9, 0, 640,
+       12, 0, 641,
+       15, 0, 642,
+       18, 0, 643,
+       24, 0, 644,
+       26, 0, 645,
+       27, 0, 646,
+       28, 0, 647,
+       29, 0, 648,
+       34, 0, 649,
+       35, 0, 650,
+       36, 0, 651,
+       37, 0, 652,
+       38, 0, 653,
        39, 0, 41,
-       42, 0, 652,
+       42, 0, 654,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
-       80, 0, 653,
-       81, 0, 654,
-       82, 0, 52,
+       51, 0, 655,
+       52, 0, 48,
+       54, 0, 49,
+       80, 0, 50,
+       81, 0, 656,
+       82, 0, 657,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1159[] = {
-       32,
-       -1, 3, 1158,
+static int parser_action_row1171[] = {
+       33,
+       -1, 3, 1170,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 753,
-       12, 0, 639,
-       15, 0, 640,
-       18, 0, 641,
-       24, 0, 642,
-       27, 0, 644,
-       28, 0, 645,
-       29, 0, 646,
-       34, 0, 647,
-       35, 0, 648,
-       36, 0, 649,
-       37, 0, 650,
-       38, 0, 651,
+       9, 0, 751,
+       12, 0, 641,
+       15, 0, 642,
+       18, 0, 643,
+       24, 0, 644,
+       27, 0, 646,
+       28, 0, 647,
+       29, 0, 648,
+       34, 0, 649,
+       35, 0, 650,
+       36, 0, 651,
+       37, 0, 652,
+       38, 0, 653,
        39, 0, 41,
-       42, 0, 652,
+       42, 0, 654,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
-       80, 0, 653,
-       81, 0, 654,
-       82, 0, 52,
+       51, 0, 655,
+       52, 0, 48,
+       54, 0, 49,
+       80, 0, 50,
+       81, 0, 656,
+       82, 0, 657,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1160[] = {
+static int parser_action_row1172[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1161[] = {
+static int parser_action_row1173[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1162[] = {
+static int parser_action_row1174[] = {
        1,
-       -1, 1, 581
+       -1, 1, 591
 };
-static int parser_action_row1163[] = {
+static int parser_action_row1175[] = {
        2,
-       -1, 1, 236,
-       26, 1, 513
+       -1, 1, 241,
+       26, 1, 522
 };
-static int parser_action_row1164[] = {
+static int parser_action_row1176[] = {
        2,
-       -1, 3, 1163,
-       9, 0, 1268
+       -1, 1, 240,
+       26, 1, 521
 };
-static int parser_action_row1165[] = {
+static int parser_action_row1177[] = {
+       1,
+       -1, 1, 552
+};
+static int parser_action_row1178[] = {
        2,
-       -1, 1, 269,
-       26, 1, 541
+       -1, 1, 276,
+       26, 1, 550
 };
-static int parser_action_row1166[] = {
+static int parser_action_row1179[] = {
        4,
-       -1, 1, 370,
-       58, 0, 1269,
-       59, 0, 195,
-       60, 0, 196
+       -1, 1, 378,
+       59, 0, 1285,
+       60, 0, 197,
+       61, 0, 198
 };
-static int parser_action_row1167[] = {
+static int parser_action_row1180[] = {
        3,
-       -1, 1, 263,
-       26, 1, 535,
-       78, 0, 455
+       -1, 1, 270,
+       26, 1, 544,
+       79, 0, 460
 };
-static int parser_action_row1168[] = {
+static int parser_action_row1181[] = {
        23,
-       -1, 3, 1167,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1180,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1169[] = {
+static int parser_action_row1182[] = {
        23,
-       -1, 3, 1168,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1181,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1170[] = {
+static int parser_action_row1183[] = {
        2,
-       -1, 3, 1169,
-       15, 0, 1274
+       -1, 3, 1182,
+       15, 0, 1290
 };
-static int parser_action_row1171[] = {
+static int parser_action_row1184[] = {
        1,
-       -1, 1, 324
+       -1, 1, 332
 };
-static int parser_action_row1172[] = {
+static int parser_action_row1185[] = {
        2,
-       -1, 3, 1171,
-       50, 0, 172
+       -1, 3, 1184,
+       50, 0, 173
 };
-static int parser_action_row1173[] = {
+static int parser_action_row1186[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1174[] = {
-       30,
-       -1, 1, 287,
-       9, 0, 900,
+static int parser_action_row1187[] = {
+       31,
+       -1, 1, 295,
+       9, 0, 903,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -12208,90 +12524,91 @@ static int parser_action_row1174[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1175[] = {
+static int parser_action_row1188[] = {
        1,
-       -1, 1, 549
+       -1, 1, 559
 };
-static int parser_action_row1176[] = {
+static int parser_action_row1189[] = {
        2,
-       -1, 3, 1175,
-       50, 0, 172
+       -1, 3, 1188,
+       50, 0, 173
 };
-static int parser_action_row1177[] = {
+static int parser_action_row1190[] = {
        23,
-       -1, 3, 1176,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1189,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1178[] = {
+static int parser_action_row1191[] = {
        2,
-       -1, 3, 1177,
-       25, 0, 1280
+       -1, 3, 1190,
+       25, 0, 1295
 };
-static int parser_action_row1179[] = {
+static int parser_action_row1192[] = {
        1,
-       -1, 1, 453
+       -1, 1, 462
 };
-static int parser_action_row1180[] = {
+static int parser_action_row1193[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1181[] = {
+static int parser_action_row1194[] = {
        1,
-       -1, 1, 488
+       -1, 1, 497
 };
-static int parser_action_row1182[] = {
+static int parser_action_row1195[] = {
        2,
-       -1, 3, 1181,
-       63, 0, 1179
+       -1, 3, 1194,
+       64, 0, 1192
 };
-static int parser_action_row1183[] = {
+static int parser_action_row1196[] = {
        5,
-       -1, 3, 1182,
-       12, 0, 1202,
-       47, 0, 1203,
-       80, 0, 1204,
-       81, 0, 1282
+       -1, 3, 1195,
+       12, 0, 1215,
+       47, 0, 1216,
+       81, 0, 1217,
+       82, 0, 1297
 };
-static int parser_action_row1184[] = {
+static int parser_action_row1197[] = {
        1,
-       -1, 1, 461
+       -1, 1, 470
 };
-static int parser_action_row1185[] = {
+static int parser_action_row1198[] = {
        21,
-       -1, 3, 1184,
+       -1, 3, 1197,
        12, 0, 804,
        33, 0, 806,
        39, 0, 807,
@@ -12302,261 +12619,274 @@ static int parser_action_row1185[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row1186[] = {
+static int parser_action_row1199[] = {
        1,
-       -1, 1, 460
+       -1, 1, 469
 };
-static int parser_action_row1187[] = {
+static int parser_action_row1200[] = {
        3,
-       -1, 1, 471,
-       64, 0, 962,
-       65, 0, 963
+       -1, 1, 480,
+       65, 0, 966,
+       66, 0, 967
 };
-static int parser_action_row1188[] = {
+static int parser_action_row1201[] = {
        3,
-       -1, 1, 474,
-       64, 0, 962,
-       65, 0, 963
+       -1, 1, 483,
+       65, 0, 966,
+       66, 0, 967
 };
-static int parser_action_row1189[] = {
+static int parser_action_row1202[] = {
        3,
-       -1, 1, 467,
-       64, 0, 962,
-       65, 0, 963
+       -1, 1, 476,
+       65, 0, 966,
+       66, 0, 967
 };
-static int parser_action_row1190[] = {
+static int parser_action_row1203[] = {
        1,
-       -1, 1, 476
+       -1, 1, 485
 };
-static int parser_action_row1191[] = {
+static int parser_action_row1204[] = {
        4,
-       -1, 1, 478,
-       66, 0, 971,
-       67, 0, 972,
-       68, 0, 973
+       -1, 1, 487,
+       67, 0, 975,
+       68, 0, 976,
+       69, 0, 977
 };
-static int parser_action_row1192[] = {
+static int parser_action_row1205[] = {
        4,
-       -1, 1, 479,
-       66, 0, 971,
-       67, 0, 972,
-       68, 0, 973
+       -1, 1, 488,
+       67, 0, 975,
+       68, 0, 976,
+       69, 0, 977
 };
-static int parser_action_row1193[] = {
+static int parser_action_row1206[] = {
        3,
-       -1, 1, 466,
-       64, 0, 962,
-       65, 0, 963
+       -1, 1, 475,
+       65, 0, 966,
+       66, 0, 967
 };
-static int parser_action_row1194[] = {
+static int parser_action_row1207[] = {
        3,
-       -1, 1, 468,
-       64, 0, 962,
-       65, 0, 963
+       -1, 1, 477,
+       65, 0, 966,
+       66, 0, 967
 };
-static int parser_action_row1195[] = {
+static int parser_action_row1208[] = {
        3,
-       -1, 1, 469,
-       64, 0, 962,
-       65, 0, 963
+       -1, 1, 478,
+       65, 0, 966,
+       66, 0, 967
 };
-static int parser_action_row1196[] = {
+static int parser_action_row1209[] = {
        3,
-       -1, 1, 470,
-       64, 0, 962,
-       65, 0, 963
+       -1, 1, 479,
+       65, 0, 966,
+       66, 0, 967
 };
-static int parser_action_row1197[] = {
+static int parser_action_row1210[] = {
        3,
-       -1, 1, 472,
-       64, 0, 962,
-       65, 0, 963
+       -1, 1, 481,
+       65, 0, 966,
+       66, 0, 967
 };
-static int parser_action_row1198[] = {
+static int parser_action_row1211[] = {
        3,
-       -1, 1, 473,
-       64, 0, 962,
-       65, 0, 963
+       -1, 1, 482,
+       65, 0, 966,
+       66, 0, 967
 };
-static int parser_action_row1199[] = {
+static int parser_action_row1212[] = {
        3,
-       -1, 1, 475,
-       64, 0, 962,
-       65, 0, 963
+       -1, 1, 484,
+       65, 0, 966,
+       66, 0, 967
 };
-static int parser_action_row1200[] = {
+static int parser_action_row1213[] = {
        1,
-       -1, 1, 481
+       -1, 1, 490
 };
-static int parser_action_row1201[] = {
+static int parser_action_row1214[] = {
        1,
-       -1, 1, 482
+       -1, 1, 491
 };
-static int parser_action_row1202[] = {
+static int parser_action_row1215[] = {
        1,
-       -1, 1, 483
+       -1, 1, 492
 };
-static int parser_action_row1203[] = {
+static int parser_action_row1216[] = {
        2,
-       -1, 1, 403,
-       51, 0, 239
+       -1, 1, 410,
+       52, 0, 241
 };
-static int parser_action_row1204[] = {
+static int parser_action_row1217[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1205[] = {
+static int parser_action_row1218[] = {
        2,
-       -1, 1, 403,
-       51, 0, 239
+       -1, 1, 410,
+       52, 0, 241
 };
-static int parser_action_row1206[] = {
+static int parser_action_row1219[] = {
        1,
-       -1, 1, 491
+       -1, 1, 500
 };
-static int parser_action_row1207[] = {
-       2,
-       -1, 1, 284,
-       9, 0, 418
+static int parser_action_row1220[] = {
+       1,
+       -1, 1, 292
 };
-static int parser_action_row1208[] = {
+static int parser_action_row1221[] = {
        1,
-       -1, 1, 275
+       -1, 1, 283
 };
-static int parser_action_row1209[] = {
+static int parser_action_row1222[] = {
        1,
-       -1, 1, 281
+       -1, 1, 289
 };
-static int parser_action_row1210[] = {
+static int parser_action_row1223[] = {
+       2,
+       -1, 1, 191,
+       59, 1, 458
+};
+static int parser_action_row1224[] = {
        17,
-       -1, 3, 1209,
-       53, 0, 348,
-       64, 0, 349,
-       65, 0, 350,
-       66, 0, 351,
-       67, 0, 352,
-       68, 0, 353,
-       69, 0, 354,
-       70, 0, 355,
-       71, 0, 356,
-       72, 0, 357,
-       73, 0, 358,
-       74, 0, 359,
-       75, 0, 360,
-       76, 0, 361,
-       77, 0, 362,
-       80, 0, 363
+       -1, 3, 1223,
+       54, 0, 352,
+       65, 0, 353,
+       66, 0, 354,
+       67, 0, 355,
+       68, 0, 356,
+       69, 0, 357,
+       70, 0, 358,
+       71, 0, 359,
+       72, 0, 360,
+       73, 0, 361,
+       74, 0, 362,
+       75, 0, 363,
+       76, 0, 364,
+       77, 0, 365,
+       78, 0, 366,
+       81, 0, 367
 };
-static int parser_action_row1211[] = {
+static int parser_action_row1225[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1212[] = {
+static int parser_action_row1226[] = {
        1,
-       -1, 1, 730
+       -1, 1, 740
 };
-static int parser_action_row1213[] = {
+static int parser_action_row1227[] = {
        2,
-       -1, 1, 216,
-       55, 0, 1210
+       -1, 1, 221,
+       56, 0, 1224
 };
-static int parser_action_row1214[] = {
+static int parser_action_row1228[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1215[] = {
+static int parser_action_row1229[] = {
        3,
-       -1, 3, 1214,
+       -1, 3, 1228,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1216[] = {
+static int parser_action_row1230[] = {
        23,
-       -1, 3, 1215,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1229,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1217[] = {
+static int parser_action_row1231[] = {
        1,
-       -1, 1, 210
+       -1, 1, 202
 };
-static int parser_action_row1218[] = {
+static int parser_action_row1232[] = {
+       2,
+       -1, 1, 201,
+       57, 0, 281
+};
+static int parser_action_row1233[] = {
+       1,
+       -1, 1, 215
+};
+static int parser_action_row1234[] = {
        3,
-       -1, 3, 1217,
+       -1, 3, 1233,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1219[] = {
+static int parser_action_row1235[] = {
        1,
        -1, 1, 62
 };
-static int parser_action_row1220[] = {
+static int parser_action_row1236[] = {
        1,
        -1, 1, 61
 };
-static int parser_action_row1221[] = {
+static int parser_action_row1237[] = {
        3,
-       -1, 3, 1220,
-       14, 0, 1294,
-       15, 0, 1295
+       -1, 3, 1236,
+       14, 0, 1310,
+       15, 0, 1311
 };
-static int parser_action_row1222[] = {
+static int parser_action_row1238[] = {
        2,
-       -1, 3, 1221,
-       58, 0, 1296
+       -1, 3, 1237,
+       59, 0, 1312
 };
-static int parser_action_row1223[] = {
+static int parser_action_row1239[] = {
        1,
        -1, 1, 143
 };
-static int parser_action_row1224[] = {
+static int parser_action_row1240[] = {
        2,
-       -1, 3, 1223,
-       15, 0, 1297
+       -1, 3, 1239,
+       15, 0, 1313
 };
-static int parser_action_row1225[] = {
-       32,
-       -1, 3, 1224,
+static int parser_action_row1241[] = {
+       33,
+       -1, 3, 1240,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 462,
+       9, 0, 467,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -12576,116 +12906,117 @@ static int parser_action_row1225[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1226[] = {
+static int parser_action_row1242[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1227[] = {
+static int parser_action_row1243[] = {
        2,
        -1, 1, 123,
-       58, 0, 1300
+       59, 0, 1316
 };
-static int parser_action_row1228[] = {
+static int parser_action_row1244[] = {
        7,
        -1, 1, 121,
-       13, 0, 1140,
+       13, 0, 1152,
        17, 1, 166,
        21, 0, 29,
        22, 0, 30,
        23, 0, 31,
-       58, 0, 1301
+       59, 0, 1317
 };
-static int parser_action_row1229[] = {
+static int parser_action_row1245[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1230[] = {
+static int parser_action_row1246[] = {
        2,
        -1, 1, 95,
-       58, 0, 1304
+       59, 0, 1320
 };
-static int parser_action_row1231[] = {
+static int parser_action_row1247[] = {
        2,
-       -1, 3, 1230,
-       14, 0, 1305
+       -1, 3, 1246,
+       14, 0, 1321
 };
-static int parser_action_row1232[] = {
+static int parser_action_row1248[] = {
        2,
-       -1, 3, 1231,
-       20, 0, 1306
+       -1, 3, 1247,
+       20, 0, 1322
 };
-static int parser_action_row1233[] = {
+static int parser_action_row1249[] = {
        3,
        -1, 1, 89,
-       56, 0, 279,
-       58, 0, 1307
+       57, 0, 281,
+       59, 0, 1323
 };
-static int parser_action_row1234[] = {
+static int parser_action_row1250[] = {
        2,
-       -1, 3, 1233,
-       81, 0, 1309
+       -1, 3, 1249,
+       82, 0, 1325
 };
-static int parser_action_row1235[] = {
+static int parser_action_row1251[] = {
        3,
        -1, 1, 92,
-       56, 0, 279,
-       58, 0, 1310
+       57, 0, 281,
+       59, 0, 1326
 };
-static int parser_action_row1236[] = {
+static int parser_action_row1252[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1237[] = {
+static int parser_action_row1253[] = {
        2,
        -1, 1, 96,
-       58, 0, 1313
+       59, 0, 1329
 };
-static int parser_action_row1238[] = {
+static int parser_action_row1254[] = {
        3,
        -1, 1, 91,
-       56, 0, 279,
-       58, 0, 1314
+       57, 0, 281,
+       59, 0, 1330
 };
-static int parser_action_row1239[] = {
+static int parser_action_row1255[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1240[] = {
+static int parser_action_row1256[] = {
        2,
        -1, 1, 98,
-       58, 0, 1317
+       59, 0, 1333
 };
-static int parser_action_row1241[] = {
+static int parser_action_row1257[] = {
        4,
-       -1, 3, 1240,
-       5, 0, 1318,
-       19, 0, 1319,
-       20, 0, 1320
+       -1, 3, 1256,
+       5, 0, 1334,
+       19, 0, 1335,
+       20, 0, 1336
 };
-static int parser_action_row1242[] = {
-       32,
-       -1, 3, 1241,
+static int parser_action_row1258[] = {
+       33,
+       -1, 3, 1257,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 462,
+       9, 0, 467,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -12705,28 +13036,41 @@ static int parser_action_row1242[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1243[] = {
+static int parser_action_row1259[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1244[] = {
-       32,
-       -1, 3, 1243,
+static int parser_action_row1260[] = {
+       4,
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2,
+       57, 0, 281
+};
+static int parser_action_row1261[] = {
+       2,
+       -1, 3, 1260,
+       53, 0, 1340
+};
+static int parser_action_row1262[] = {
+       33,
+       -1, 3, 1261,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 462,
+       9, 0, 467,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -12746,294 +13090,284 @@ static int parser_action_row1244[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1245[] = {
+static int parser_action_row1263[] = {
        2,
        -1, 1, 134,
-       9, 0, 1324
+       9, 0, 1342
 };
-static int parser_action_row1246[] = {
+static int parser_action_row1264[] = {
        1,
-       -1, 1, 189
-};
-static int parser_action_row1247[] = {
-       3,
-       -1, 1, 191,
-       36, 0, 597,
-       78, 0, 598
+       -1, 1, 197
 };
-static int parser_action_row1248[] = {
+static int parser_action_row1265[] = {
        2,
-       -1, 3, 1247,
-       17, 0, 1325
+       -1, 3, 1264,
+       17, 0, 1343
 };
-static int parser_action_row1249[] = {
+static int parser_action_row1266[] = {
        23,
-       -1, 3, 1248,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1265,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1250[] = {
+static int parser_action_row1267[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1251[] = {
+static int parser_action_row1268[] = {
        1,
        -1, 1, 164
 };
-static int parser_action_row1252[] = {
+static int parser_action_row1269[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1253[] = {
+static int parser_action_row1270[] = {
        2,
        -1, 1, 124,
-       58, 0, 1329
+       59, 0, 1347
 };
-static int parser_action_row1254[] = {
+static int parser_action_row1271[] = {
        23,
-       -1, 3, 1253,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1270,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1255[] = {
+static int parser_action_row1272[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1256[] = {
+static int parser_action_row1273[] = {
        2,
-       -1, 3, 1255,
-       20, 0, 1332
+       -1, 3, 1272,
+       20, 0, 1350
 };
-static int parser_action_row1257[] = {
+static int parser_action_row1274[] = {
        3,
        -1, 1, 144,
-       3, 0, 848,
-       85, 0, 1333
+       3, 0, 852,
+       86, 0, 1351
 };
-static int parser_action_row1258[] = {
+static int parser_action_row1275[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1259[] = {
+static int parser_action_row1276[] = {
        1,
-       -1, 1, 391
+       -1, 1, 399
 };
-static int parser_action_row1260[] = {
+static int parser_action_row1277[] = {
        21,
-       -1, 3, 1259,
-       12, 0, 104,
-       24, 0, 105,
-       33, 0, 106,
-       39, 0, 107,
-       41, 0, 108,
-       42, 0, 109,
-       43, 0, 110,
-       44, 0, 111,
-       45, 0, 112,
-       46, 0, 113,
-       49, 0, 114,
-       65, 0, 116,
-       79, 0, 49,
-       80, 0, 117,
+       -1, 3, 1276,
+       12, 0, 105,
+       24, 0, 106,
+       33, 0, 107,
+       39, 0, 108,
+       41, 0, 109,
+       42, 0, 110,
+       43, 0, 111,
+       44, 0, 112,
+       45, 0, 113,
+       46, 0, 114,
+       49, 0, 115,
+       66, 0, 117,
+       80, 0, 50,
        81, 0, 118,
        82, 0, 119,
        83, 0, 120,
        84, 0, 121,
        85, 0, 122,
-       86, 0, 56
+       86, 0, 123,
+       87, 0, 57
 };
-static int parser_action_row1261[] = {
+static int parser_action_row1278[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1262[] = {
+static int parser_action_row1279[] = {
        1,
-       -1, 1, 651
+       -1, 1, 661
 };
-static int parser_action_row1263[] = {
+static int parser_action_row1280[] = {
        1,
-       -1, 1, 558
+       -1, 1, 568
 };
-static int parser_action_row1264[] = {
+static int parser_action_row1281[] = {
        2,
-       -1, 3, 1263,
-       26, 0, 1338
+       -1, 3, 1280,
+       26, 0, 1356
 };
-static int parser_action_row1265[] = {
+static int parser_action_row1282[] = {
        1,
-       -1, 1, 575
+       -1, 1, 585
 };
-static int parser_action_row1266[] = {
+static int parser_action_row1283[] = {
        2,
-       -1, 3, 1265,
-       50, 0, 172
+       -1, 3, 1282,
+       50, 0, 173
 };
-static int parser_action_row1267[] = {
+static int parser_action_row1284[] = {
        2,
-       -1, 3, 1266,
-       30, 0, 1340
+       -1, 3, 1283,
+       30, 0, 1358
 };
-static int parser_action_row1268[] = {
+static int parser_action_row1285[] = {
        23,
-       -1, 3, 1267,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1284,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
-};
-static int parser_action_row1269[] = {
-       2,
-       -1, 1, 235,
-       26, 1, 512
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1270[] = {
+static int parser_action_row1286[] = {
        23,
-       -1, 3, 1269,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1285,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1271[] = {
+static int parser_action_row1287[] = {
        23,
-       -1, 3, 1270,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1286,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 322,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 324,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1272[] = {
+static int parser_action_row1288[] = {
        1,
-       -1, 1, 537
+       -1, 1, 546
 };
-static int parser_action_row1273[] = {
+static int parser_action_row1289[] = {
        1,
-       -1, 1, 559
+       -1, 1, 569
 };
-static int parser_action_row1274[] = {
+static int parser_action_row1290[] = {
        1,
-       -1, 1, 564
+       -1, 1, 574
 };
-static int parser_action_row1275[] = {
-       32,
-       -1, 3, 1274,
+static int parser_action_row1291[] = {
+       33,
+       -1, 3, 1290,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 137,
+       9, 0, 138,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -13053,158 +13387,158 @@ static int parser_action_row1275[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1276[] = {
+static int parser_action_row1292[] = {
        1,
-       -1, 1, 322
+       -1, 1, 330
 };
-static int parser_action_row1277[] = {
+static int parser_action_row1293[] = {
        23,
-       -1, 3, 1276,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1292,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
-};
-static int parser_action_row1278[] = {
-       2,
-       -1, 1, 284,
-       9, 0, 1034
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1279[] = {
+static int parser_action_row1294[] = {
        2,
-       -1, 1, 275,
-       26, 1, 546
+       -1, 1, 283,
+       26, 1, 556
 };
-static int parser_action_row1280[] = {
+static int parser_action_row1295[] = {
        1,
-       -1, 1, 552
+       -1, 1, 562
 };
-static int parser_action_row1281[] = {
+static int parser_action_row1296[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1282[] = {
+static int parser_action_row1297[] = {
        2,
-       -1, 3, 1281,
-       80, 0, 1348
+       -1, 3, 1296,
+       81, 0, 1366
 };
-static int parser_action_row1283[] = {
+static int parser_action_row1298[] = {
        2,
-       -1, 1, 489,
-       63, 1, 491
+       -1, 1, 498,
+       64, 1, 500
 };
-static int parser_action_row1284[] = {
+static int parser_action_row1299[] = {
        1,
-       -1, 1, 462
+       -1, 1, 471
 };
-static int parser_action_row1285[] = {
+static int parser_action_row1300[] = {
        1,
-       -1, 1, 497
+       -1, 1, 506
 };
-static int parser_action_row1286[] = {
+static int parser_action_row1301[] = {
        2,
-       -1, 3, 1285,
-       51, 0, 1349
+       -1, 3, 1300,
+       52, 0, 1367
 };
-static int parser_action_row1287[] = {
+static int parser_action_row1302[] = {
        1,
-       -1, 1, 493
+       -1, 1, 502
 };
-static int parser_action_row1288[] = {
+static int parser_action_row1303[] = {
        1,
-       -1, 1, 222
+       -1, 1, 227
 };
-static int parser_action_row1289[] = {
+static int parser_action_row1304[] = {
        20,
-       -1, 3, 1288,
-       42, 0, 1101,
-       48, 0, 328,
-       53, 0, 348,
-       64, 0, 349,
-       65, 0, 350,
-       66, 0, 351,
-       67, 0, 352,
-       68, 0, 353,
-       69, 0, 354,
-       70, 0, 355,
-       71, 0, 356,
-       72, 0, 357,
-       73, 0, 358,
-       74, 0, 359,
-       75, 0, 360,
-       76, 0, 361,
-       77, 0, 362,
-       79, 0, 1102,
-       80, 0, 363
+       -1, 3, 1303,
+       42, 0, 1112,
+       48, 0, 330,
+       54, 0, 352,
+       65, 0, 353,
+       66, 0, 354,
+       67, 0, 355,
+       68, 0, 356,
+       69, 0, 357,
+       70, 0, 358,
+       71, 0, 359,
+       72, 0, 360,
+       73, 0, 361,
+       74, 0, 362,
+       75, 0, 363,
+       76, 0, 364,
+       77, 0, 365,
+       78, 0, 366,
+       80, 0, 1113,
+       81, 0, 367
 };
-static int parser_action_row1290[] = {
+static int parser_action_row1305[] = {
        1,
-       -1, 1, 731
+       -1, 1, 741
 };
-static int parser_action_row1291[] = {
+static int parser_action_row1306[] = {
        4,
-       -1, 3, 1290,
-       33, 0, 1351,
-       48, 0, 1352,
-       51, 0, 1353
+       -1, 3, 1305,
+       33, 0, 1369,
+       48, 0, 1370,
+       52, 0, 1371
 };
-static int parser_action_row1292[] = {
+static int parser_action_row1307[] = {
        1,
-       -1, 1, 211
+       -1, 1, 216
 };
-static int parser_action_row1293[] = {
+static int parser_action_row1308[] = {
        3,
-       -1, 3, 1292,
+       -1, 3, 1307,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1294[] = {
+static int parser_action_row1309[] = {
        1,
-       -1, 1, 212
+       -1, 1, 203
 };
-static int parser_action_row1295[] = {
+static int parser_action_row1310[] = {
+       1,
+       -1, 1, 217
+};
+static int parser_action_row1311[] = {
        4,
-       -1, 3, 1294,
-       5, 0, 1355,
-       19, 0, 1356,
-       20, 0, 1357
+       -1, 3, 1310,
+       5, 0, 1373,
+       19, 0, 1374,
+       20, 0, 1375
 };
-static int parser_action_row1296[] = {
-       32,
-       -1, 3, 1295,
+static int parser_action_row1312[] = {
+       33,
+       -1, 3, 1311,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 462,
+       9, 0, 467,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -13224,28 +13558,29 @@ static int parser_action_row1296[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1297[] = {
+static int parser_action_row1313[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1298[] = {
-       32,
-       -1, 3, 1297,
+static int parser_action_row1314[] = {
+       33,
+       -1, 3, 1313,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 462,
+       9, 0, 467,
        12, 0, 25,
        15, 0, 27,
        18, 0, 28,
@@ -13265,1416 +13600,1459 @@ static int parser_action_row1298[] = {
        45, 0, 45,
        46, 0, 46,
        51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
+       52, 0, 48,
+       54, 0, 49,
        80, 0, 50,
        81, 0, 51,
        82, 0, 52,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1299[] = {
+static int parser_action_row1315[] = {
        2,
        -1, 1, 135,
-       9, 0, 1361
+       9, 0, 1379
 };
-static int parser_action_row1300[] = {
+static int parser_action_row1316[] = {
        23,
-       -1, 3, 1299,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1315,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1301[] = {
+static int parser_action_row1317[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1302[] = {
+static int parser_action_row1318[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1303[] = {
+static int parser_action_row1319[] = {
        2,
        -1, 1, 125,
-       58, 0, 1365
+       59, 0, 1383
 };
-static int parser_action_row1304[] = {
+static int parser_action_row1320[] = {
        23,
-       -1, 3, 1303,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1319,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1305[] = {
+static int parser_action_row1321[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1306[] = {
+static int parser_action_row1322[] = {
        2,
-       -1, 3, 1305,
-       20, 0, 1368
+       -1, 3, 1321,
+       20, 0, 1386
 };
-static int parser_action_row1307[] = {
+static int parser_action_row1323[] = {
        3,
        -1, 1, 145,
-       3, 0, 848,
-       85, 0, 1369
+       3, 0, 852,
+       86, 0, 1387
 };
-static int parser_action_row1308[] = {
+static int parser_action_row1324[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1309[] = {
+static int parser_action_row1325[] = {
        2,
        -1, 1, 97,
-       58, 0, 1372
+       59, 0, 1390
 };
-static int parser_action_row1310[] = {
+static int parser_action_row1326[] = {
        3,
        -1, 1, 93,
-       56, 0, 279,
-       58, 0, 1373
+       57, 0, 281,
+       59, 0, 1391
 };
-static int parser_action_row1311[] = {
+static int parser_action_row1327[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1312[] = {
+static int parser_action_row1328[] = {
        2,
        -1, 1, 100,
-       58, 0, 1376
+       59, 0, 1394
 };
-static int parser_action_row1313[] = {
+static int parser_action_row1329[] = {
        23,
-       -1, 3, 1312,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1328,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1314[] = {
+static int parser_action_row1330[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1315[] = {
+static int parser_action_row1331[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1316[] = {
+static int parser_action_row1332[] = {
        2,
        -1, 1, 99,
-       58, 0, 1380
+       59, 0, 1398
 };
-static int parser_action_row1317[] = {
+static int parser_action_row1333[] = {
        23,
-       -1, 3, 1316,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1332,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1318[] = {
+static int parser_action_row1334[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1319[] = {
+static int parser_action_row1335[] = {
        1,
        -1, 1, 74
 };
-static int parser_action_row1320[] = {
+static int parser_action_row1336[] = {
        1,
        -1, 1, 76
 };
-static int parser_action_row1321[] = {
+static int parser_action_row1337[] = {
        3,
        -1, 1, 78,
-       3, 0, 848,
-       85, 0, 1383
+       3, 0, 852,
+       86, 0, 1401
 };
-static int parser_action_row1322[] = {
+static int parser_action_row1338[] = {
        2,
        -1, 1, 68,
-       9, 0, 1385
+       9, 0, 1403
 };
-static int parser_action_row1323[] = {
+static int parser_action_row1339[] = {
        23,
-       -1, 3, 1322,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1338,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1324[] = {
+static int parser_action_row1340[] = {
+       3,
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2
+};
+static int parser_action_row1341[] = {
+       4,
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2,
+       57, 0, 281
+};
+static int parser_action_row1342[] = {
        2,
        -1, 1, 136,
-       9, 0, 1387
+       9, 0, 1407
 };
-static int parser_action_row1325[] = {
+static int parser_action_row1343[] = {
        1,
        -1, 1, 138
 };
-static int parser_action_row1326[] = {
+static int parser_action_row1344[] = {
        1,
        -1, 1, 165
 };
-static int parser_action_row1327[] = {
+static int parser_action_row1345[] = {
        1,
        -1, 1, 126
 };
-static int parser_action_row1328[] = {
+static int parser_action_row1346[] = {
        23,
-       -1, 3, 1327,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1345,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1329[] = {
+static int parser_action_row1347[] = {
        23,
-       -1, 3, 1328,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1346,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1330[] = {
+static int parser_action_row1348[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1331[] = {
+static int parser_action_row1349[] = {
        1,
        -1, 1, 102
 };
-static int parser_action_row1332[] = {
+static int parser_action_row1350[] = {
        23,
-       -1, 3, 1331,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1349,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1333[] = {
+static int parser_action_row1351[] = {
        3,
        -1, 1, 146,
-       3, 0, 848,
-       85, 0, 1392
+       3, 0, 852,
+       86, 0, 1412
 };
-static int parser_action_row1334[] = {
+static int parser_action_row1352[] = {
        2,
        -1, 1, 148,
-       3, 0, 848
+       3, 0, 852
 };
-static int parser_action_row1335[] = {
+static int parser_action_row1353[] = {
        1,
        -1, 1, 152
 };
-static int parser_action_row1336[] = {
+static int parser_action_row1354[] = {
        2,
-       -1, 3, 1335,
-       52, 0, 1395
+       -1, 3, 1353,
+       53, 0, 1415
 };
-static int parser_action_row1337[] = {
+static int parser_action_row1355[] = {
        1,
-       -1, 1, 599
+       -1, 1, 609
 };
-static int parser_action_row1338[] = {
+static int parser_action_row1356[] = {
        2,
-       -1, 3, 1337,
-       52, 0, 1396
+       -1, 3, 1355,
+       53, 0, 1416
 };
-static int parser_action_row1339[] = {
-       32,
-       -1, 3, 1338,
+static int parser_action_row1357[] = {
+       33,
+       -1, 3, 1356,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 1042,
-       12, 0, 639,
-       15, 0, 640,
-       18, 0, 641,
-       24, 0, 642,
-       27, 0, 644,
-       28, 0, 645,
-       29, 0, 646,
-       34, 0, 647,
-       35, 0, 648,
-       36, 0, 649,
-       37, 0, 650,
-       38, 0, 651,
+       9, 0, 1050,
+       12, 0, 641,
+       15, 0, 642,
+       18, 0, 643,
+       24, 0, 644,
+       27, 0, 646,
+       28, 0, 647,
+       29, 0, 648,
+       34, 0, 649,
+       35, 0, 650,
+       36, 0, 651,
+       37, 0, 652,
+       38, 0, 653,
        39, 0, 41,
-       42, 0, 652,
+       42, 0, 654,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
-       80, 0, 653,
-       81, 0, 654,
-       82, 0, 52,
+       51, 0, 655,
+       52, 0, 48,
+       54, 0, 49,
+       80, 0, 50,
+       81, 0, 656,
+       82, 0, 657,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1340[] = {
+static int parser_action_row1358[] = {
        2,
-       -1, 1, 319,
-       26, 1, 574
+       -1, 1, 327,
+       26, 1, 584
 };
-static int parser_action_row1341[] = {
+static int parser_action_row1359[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1342[] = {
+static int parser_action_row1360[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1343[] = {
+static int parser_action_row1361[] = {
        1,
-       -1, 1, 561
+       -1, 1, 571
 };
-static int parser_action_row1344[] = {
+static int parser_action_row1362[] = {
        1,
-       -1, 1, 566
+       -1, 1, 576
 };
-static int parser_action_row1345[] = {
+static int parser_action_row1363[] = {
        1,
-       -1, 1, 323
+       -1, 1, 331
 };
-static int parser_action_row1346[] = {
+static int parser_action_row1364[] = {
        2,
-       -1, 3, 1345,
-       50, 0, 172
+       -1, 3, 1363,
+       50, 0, 173
 };
-static int parser_action_row1347[] = {
+static int parser_action_row1365[] = {
        1,
-       -1, 1, 335
+       -1, 1, 343
 };
-static int parser_action_row1348[] = {
+static int parser_action_row1366[] = {
        23,
-       -1, 3, 1347,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1365,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1349[] = {
+static int parser_action_row1367[] = {
        2,
-       -1, 1, 403,
-       51, 0, 239
+       -1, 1, 410,
+       52, 0, 241
 };
-static int parser_action_row1350[] = {
+static int parser_action_row1368[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1351[] = {
+static int parser_action_row1369[] = {
        1,
-       -1, 1, 217
+       -1, 1, 222
 };
-static int parser_action_row1352[] = {
+static int parser_action_row1370[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1353[] = {
+static int parser_action_row1371[] = {
        1,
-       -1, 1, 225
+       -1, 1, 230
 };
-static int parser_action_row1354[] = {
+static int parser_action_row1372[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1355[] = {
+static int parser_action_row1373[] = {
        1,
-       -1, 1, 213
+       -1, 1, 218
 };
-static int parser_action_row1356[] = {
+static int parser_action_row1374[] = {
        1,
        -1, 1, 75
 };
-static int parser_action_row1357[] = {
+static int parser_action_row1375[] = {
        1,
        -1, 1, 77
 };
-static int parser_action_row1358[] = {
+static int parser_action_row1376[] = {
        3,
        -1, 1, 79,
-       3, 0, 848,
-       85, 0, 1406
+       3, 0, 852,
+       86, 0, 1426
 };
-static int parser_action_row1359[] = {
+static int parser_action_row1377[] = {
        2,
        -1, 1, 69,
-       9, 0, 1408
+       9, 0, 1428
 };
-static int parser_action_row1360[] = {
+static int parser_action_row1378[] = {
        23,
-       -1, 3, 1359,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1377,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 159,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
        81, 0, 160,
-       82, 0, 52,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1361[] = {
+static int parser_action_row1379[] = {
        2,
        -1, 1, 137,
-       9, 0, 1410
+       9, 0, 1430
 };
-static int parser_action_row1362[] = {
+static int parser_action_row1380[] = {
        1,
        -1, 1, 139
 };
-static int parser_action_row1363[] = {
+static int parser_action_row1381[] = {
        1,
        -1, 1, 127
 };
-static int parser_action_row1364[] = {
+static int parser_action_row1382[] = {
        23,
-       -1, 3, 1363,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1381,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1365[] = {
+static int parser_action_row1383[] = {
        23,
-       -1, 3, 1364,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1382,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1366[] = {
+static int parser_action_row1384[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1367[] = {
+static int parser_action_row1385[] = {
        1,
        -1, 1, 103
 };
-static int parser_action_row1368[] = {
+static int parser_action_row1386[] = {
        23,
-       -1, 3, 1367,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1385,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1369[] = {
+static int parser_action_row1387[] = {
        3,
        -1, 1, 147,
-       3, 0, 848,
-       85, 0, 1415
+       3, 0, 852,
+       86, 0, 1435
 };
-static int parser_action_row1370[] = {
+static int parser_action_row1388[] = {
        2,
        -1, 1, 149,
-       3, 0, 848
+       3, 0, 852
 };
-static int parser_action_row1371[] = {
+static int parser_action_row1389[] = {
        1,
        -1, 1, 153
 };
-static int parser_action_row1372[] = {
+static int parser_action_row1390[] = {
        23,
-       -1, 3, 1371,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1389,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1373[] = {
+static int parser_action_row1391[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1374[] = {
+static int parser_action_row1392[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1375[] = {
+static int parser_action_row1393[] = {
        2,
        -1, 1, 101,
-       58, 0, 1421
+       59, 0, 1441
 };
-static int parser_action_row1376[] = {
+static int parser_action_row1394[] = {
        23,
-       -1, 3, 1375,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1393,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1377[] = {
+static int parser_action_row1395[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1378[] = {
+static int parser_action_row1396[] = {
        1,
        -1, 1, 104
 };
-static int parser_action_row1379[] = {
+static int parser_action_row1397[] = {
        23,
-       -1, 3, 1378,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1396,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1380[] = {
+static int parser_action_row1398[] = {
        23,
-       -1, 3, 1379,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1397,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1381[] = {
+static int parser_action_row1399[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1382[] = {
+static int parser_action_row1400[] = {
        1,
        -1, 1, 106
 };
-static int parser_action_row1383[] = {
+static int parser_action_row1401[] = {
        23,
-       -1, 3, 1382,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1400,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1384[] = {
+static int parser_action_row1402[] = {
        2,
        -1, 1, 80,
-       3, 0, 848
+       3, 0, 852
 };
-static int parser_action_row1385[] = {
+static int parser_action_row1403[] = {
        1,
        -1, 1, 82
 };
-static int parser_action_row1386[] = {
+static int parser_action_row1404[] = {
        1,
        -1, 1, 70
 };
-static int parser_action_row1387[] = {
+static int parser_action_row1405[] = {
        1,
        -1, 1, 72
 };
-static int parser_action_row1388[] = {
+static int parser_action_row1406[] = {
+       3,
+       -1, 1, 188,
+       36, 0, 600,
+       79, 0, 601
+};
+static int parser_action_row1407[] = {
+       3,
+       -1, 1, 435,
+       0, 0, 1,
+       1, 0, 2
+};
+static int parser_action_row1408[] = {
        1,
        -1, 1, 140
 };
-static int parser_action_row1389[] = {
+static int parser_action_row1409[] = {
        1,
        -1, 1, 130
 };
-static int parser_action_row1390[] = {
+static int parser_action_row1410[] = {
        1,
        -1, 1, 128
 };
-static int parser_action_row1391[] = {
+static int parser_action_row1411[] = {
        23,
-       -1, 3, 1390,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1410,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1392[] = {
+static int parser_action_row1412[] = {
        1,
        -1, 1, 110
 };
-static int parser_action_row1393[] = {
+static int parser_action_row1413[] = {
        2,
        -1, 1, 150,
-       3, 0, 848
+       3, 0, 852
 };
-static int parser_action_row1394[] = {
+static int parser_action_row1414[] = {
        1,
        -1, 1, 154
 };
-static int parser_action_row1395[] = {
+static int parser_action_row1415[] = {
        1,
        -1, 1, 156
 };
-static int parser_action_row1396[] = {
+static int parser_action_row1416[] = {
        1,
-       -1, 1, 392
+       -1, 1, 400
 };
-static int parser_action_row1397[] = {
+static int parser_action_row1417[] = {
        1,
-       -1, 1, 652
+       -1, 1, 662
 };
-static int parser_action_row1398[] = {
+static int parser_action_row1418[] = {
        1,
-       -1, 1, 571
+       -1, 1, 581
 };
-static int parser_action_row1399[] = {
+static int parser_action_row1419[] = {
        23,
-       -1, 3, 1398,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1418,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1400[] = {
+static int parser_action_row1420[] = {
        2,
-       -1, 3, 1399,
-       15, 0, 1432
+       -1, 3, 1419,
+       15, 0, 1454
 };
-static int parser_action_row1401[] = {
+static int parser_action_row1421[] = {
        1,
-       -1, 1, 321
+       -1, 1, 329
 };
-static int parser_action_row1402[] = {
+static int parser_action_row1422[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1403[] = {
+static int parser_action_row1423[] = {
        1,
-       -1, 1, 499
+       -1, 1, 508
 };
-static int parser_action_row1404[] = {
+static int parser_action_row1424[] = {
        4,
-       -1, 3, 1403,
-       33, 0, 1434,
-       48, 0, 328,
-       79, 0, 329
+       -1, 3, 1423,
+       33, 0, 1456,
+       48, 0, 330,
+       80, 0, 331
 };
-static int parser_action_row1405[] = {
+static int parser_action_row1425[] = {
        2,
-       -1, 3, 1404,
-       48, 0, 1436
+       -1, 3, 1424,
+       48, 0, 1458
 };
-static int parser_action_row1406[] = {
+static int parser_action_row1426[] = {
        3,
-       -1, 3, 1405,
-       48, 0, 328,
-       79, 0, 329
+       -1, 3, 1425,
+       48, 0, 330,
+       80, 0, 331
 };
-static int parser_action_row1407[] = {
+static int parser_action_row1427[] = {
        2,
        -1, 1, 81,
-       3, 0, 848
+       3, 0, 852
 };
-static int parser_action_row1408[] = {
+static int parser_action_row1428[] = {
        1,
        -1, 1, 83
 };
-static int parser_action_row1409[] = {
+static int parser_action_row1429[] = {
        1,
        -1, 1, 71
 };
-static int parser_action_row1410[] = {
+static int parser_action_row1430[] = {
        1,
        -1, 1, 73
 };
-static int parser_action_row1411[] = {
+static int parser_action_row1431[] = {
        1,
        -1, 1, 141
 };
-static int parser_action_row1412[] = {
+static int parser_action_row1432[] = {
        1,
        -1, 1, 131
 };
-static int parser_action_row1413[] = {
+static int parser_action_row1433[] = {
        1,
        -1, 1, 129
 };
-static int parser_action_row1414[] = {
+static int parser_action_row1434[] = {
        23,
-       -1, 3, 1413,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1433,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1415[] = {
+static int parser_action_row1435[] = {
        1,
        -1, 1, 111
 };
-static int parser_action_row1416[] = {
+static int parser_action_row1436[] = {
        2,
        -1, 1, 151,
-       3, 0, 848
+       3, 0, 852
 };
-static int parser_action_row1417[] = {
+static int parser_action_row1437[] = {
        1,
        -1, 1, 155
 };
-static int parser_action_row1418[] = {
+static int parser_action_row1438[] = {
        1,
        -1, 1, 157
 };
-static int parser_action_row1419[] = {
+static int parser_action_row1439[] = {
        1,
        -1, 1, 105
 };
-static int parser_action_row1420[] = {
+static int parser_action_row1440[] = {
        23,
-       -1, 3, 1419,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1439,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1421[] = {
+static int parser_action_row1441[] = {
        23,
-       -1, 3, 1420,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1440,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1422[] = {
+static int parser_action_row1442[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1423[] = {
+static int parser_action_row1443[] = {
        1,
        -1, 1, 108
 };
-static int parser_action_row1424[] = {
+static int parser_action_row1444[] = {
        23,
-       -1, 3, 1423,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1443,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1425[] = {
+static int parser_action_row1445[] = {
        1,
        -1, 1, 112
 };
-static int parser_action_row1426[] = {
+static int parser_action_row1446[] = {
        1,
        -1, 1, 107
 };
-static int parser_action_row1427[] = {
+static int parser_action_row1447[] = {
        23,
-       -1, 3, 1426,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1446,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1428[] = {
+static int parser_action_row1448[] = {
        1,
        -1, 1, 114
 };
-static int parser_action_row1429[] = {
+static int parser_action_row1449[] = {
        1,
        -1, 1, 84
 };
-static int parser_action_row1430[] = {
+static int parser_action_row1450[] = {
+       1,
+       -1, 1, 190
+};
+static int parser_action_row1451[] = {
+       3,
+       -1, 1, 189,
+       36, 0, 600,
+       79, 0, 601
+};
+static int parser_action_row1452[] = {
        1,
        -1, 1, 132
 };
-static int parser_action_row1431[] = {
+static int parser_action_row1453[] = {
        1,
        -1, 1, 158
 };
-static int parser_action_row1432[] = {
+static int parser_action_row1454[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1433[] = {
-       32,
-       -1, 3, 1432,
+static int parser_action_row1455[] = {
+       33,
+       -1, 3, 1454,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 753,
-       12, 0, 639,
-       15, 0, 640,
-       18, 0, 641,
-       24, 0, 642,
-       27, 0, 644,
-       28, 0, 645,
-       29, 0, 646,
-       34, 0, 647,
-       35, 0, 648,
-       36, 0, 649,
-       37, 0, 650,
-       38, 0, 651,
+       9, 0, 751,
+       12, 0, 641,
+       15, 0, 642,
+       18, 0, 643,
+       24, 0, 644,
+       27, 0, 646,
+       28, 0, 647,
+       29, 0, 648,
+       34, 0, 649,
+       35, 0, 650,
+       36, 0, 651,
+       37, 0, 652,
+       38, 0, 653,
        39, 0, 41,
-       42, 0, 652,
+       42, 0, 654,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
-       80, 0, 653,
-       81, 0, 654,
-       82, 0, 52,
+       51, 0, 655,
+       52, 0, 48,
+       54, 0, 49,
+       80, 0, 50,
+       81, 0, 656,
+       82, 0, 657,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1434[] = {
+static int parser_action_row1456[] = {
        2,
-       -1, 3, 1433,
-       26, 0, 1449
+       -1, 3, 1455,
+       26, 0, 1472
 };
-static int parser_action_row1435[] = {
+static int parser_action_row1457[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1436[] = {
+static int parser_action_row1458[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1437[] = {
+static int parser_action_row1459[] = {
        1,
-       -1, 1, 226
+       -1, 1, 231
 };
-static int parser_action_row1438[] = {
+static int parser_action_row1460[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1439[] = {
+static int parser_action_row1461[] = {
        1,
        -1, 1, 85
 };
-static int parser_action_row1440[] = {
+static int parser_action_row1462[] = {
        1,
        -1, 1, 133
 };
-static int parser_action_row1441[] = {
+static int parser_action_row1463[] = {
        1,
        -1, 1, 159
 };
-static int parser_action_row1442[] = {
+static int parser_action_row1464[] = {
        1,
        -1, 1, 113
 };
-static int parser_action_row1443[] = {
+static int parser_action_row1465[] = {
        1,
        -1, 1, 109
 };
-static int parser_action_row1444[] = {
+static int parser_action_row1466[] = {
        23,
-       -1, 3, 1443,
-       12, 0, 151,
-       24, 0, 152,
-       33, 0, 153,
-       39, 0, 154,
-       41, 0, 155,
-       42, 0, 156,
+       -1, 3, 1465,
+       12, 0, 152,
+       24, 0, 153,
+       33, 0, 154,
+       39, 0, 155,
+       41, 0, 156,
+       42, 0, 157,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       49, 0, 157,
-       51, 0, 47,
-       53, 0, 48,
-       65, 0, 158,
-       79, 0, 49,
-       80, 0, 186,
-       81, 0, 160,
-       82, 0, 52,
+       49, 0, 158,
+       52, 0, 48,
+       54, 0, 49,
+       66, 0, 159,
+       80, 0, 50,
+       81, 0, 188,
+       82, 0, 161,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1445[] = {
+static int parser_action_row1467[] = {
        1,
        -1, 1, 116
 };
-static int parser_action_row1446[] = {
+static int parser_action_row1468[] = {
        1,
        -1, 1, 115
 };
-static int parser_action_row1447[] = {
+static int parser_action_row1469[] = {
+       1,
+       -1, 1, 191
+};
+static int parser_action_row1470[] = {
        2,
-       -1, 3, 1446,
-       15, 0, 1454
+       -1, 3, 1469,
+       15, 0, 1477
 };
-static int parser_action_row1448[] = {
+static int parser_action_row1471[] = {
        1,
-       -1, 1, 579
+       -1, 1, 589
 };
-static int parser_action_row1449[] = {
+static int parser_action_row1472[] = {
        2,
-       -1, 3, 1448,
-       50, 0, 172
+       -1, 3, 1471,
+       50, 0, 173
 };
-static int parser_action_row1450[] = {
+static int parser_action_row1473[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1451[] = {
+static int parser_action_row1474[] = {
        2,
-       -1, 3, 1450,
-       46, 0, 1457
+       -1, 3, 1473,
+       46, 0, 1480
 };
-static int parser_action_row1452[] = {
+static int parser_action_row1475[] = {
        2,
-       -1, 3, 1451,
-       52, 0, 1458
+       -1, 3, 1474,
+       53, 0, 1481
 };
-static int parser_action_row1453[] = {
+static int parser_action_row1476[] = {
        2,
-       -1, 3, 1452,
-       52, 0, 1459
+       -1, 3, 1475,
+       53, 0, 1482
 };
-static int parser_action_row1454[] = {
+static int parser_action_row1477[] = {
        1,
        -1, 1, 117
 };
-static int parser_action_row1455[] = {
-       32,
-       -1, 3, 1454,
+static int parser_action_row1478[] = {
+       33,
+       -1, 3, 1477,
        0, 0, 1,
        1, 0, 2,
-       9, 0, 753,
-       12, 0, 639,
-       15, 0, 640,
-       18, 0, 641,
-       24, 0, 642,
-       27, 0, 644,
-       28, 0, 645,
-       29, 0, 646,
-       34, 0, 647,
-       35, 0, 648,
-       36, 0, 649,
-       37, 0, 650,
-       38, 0, 651,
+       9, 0, 751,
+       12, 0, 641,
+       15, 0, 642,
+       18, 0, 643,
+       24, 0, 644,
+       27, 0, 646,
+       28, 0, 647,
+       29, 0, 648,
+       34, 0, 649,
+       35, 0, 650,
+       36, 0, 651,
+       37, 0, 652,
+       38, 0, 653,
        39, 0, 41,
-       42, 0, 652,
+       42, 0, 654,
        43, 0, 43,
        44, 0, 44,
        45, 0, 45,
        46, 0, 46,
-       51, 0, 47,
-       53, 0, 48,
-       79, 0, 49,
-       80, 0, 653,
-       81, 0, 654,
-       82, 0, 52,
+       51, 0, 655,
+       52, 0, 48,
+       54, 0, 49,
+       80, 0, 50,
+       81, 0, 656,
+       82, 0, 657,
        83, 0, 53,
        84, 0, 54,
        85, 0, 55,
-       86, 0, 56
+       86, 0, 56,
+       87, 0, 57
 };
-static int parser_action_row1456[] = {
+static int parser_action_row1479[] = {
        2,
-       -1, 1, 322,
-       26, 1, 577
+       -1, 1, 330,
+       26, 1, 587
 };
-static int parser_action_row1457[] = {
+static int parser_action_row1480[] = {
        22,
-       -1, 3, 1456,
+       -1, 3, 1479,
        12, 0, 804,
        24, 0, 805,
        33, 0, 806,
@@ -14686,57 +15064,57 @@ static int parser_action_row1457[] = {
        45, 0, 812,
        46, 0, 813,
        49, 0, 814,
-       51, 0, 815,
-       65, 0, 816,
-       79, 0, 49,
-       80, 0, 817,
-       81, 0, 818,
-       82, 0, 819,
-       83, 0, 820,
-       84, 0, 821,
-       85, 0, 822,
-       86, 0, 56
+       52, 0, 815,
+       66, 0, 816,
+       80, 0, 50,
+       81, 0, 817,
+       82, 0, 818,
+       83, 0, 819,
+       84, 0, 820,
+       85, 0, 821,
+       86, 0, 822,
+       87, 0, 57
 };
-static int parser_action_row1458[] = {
+static int parser_action_row1481[] = {
        3,
-       -1, 1, 428,
+       -1, 1, 435,
        0, 0, 1,
        1, 0, 2
 };
-static int parser_action_row1459[] = {
+static int parser_action_row1482[] = {
        1,
-       -1, 1, 510
+       -1, 1, 519
 };
-static int parser_action_row1460[] = {
+static int parser_action_row1483[] = {
        1,
-       -1, 1, 224
+       -1, 1, 229
 };
-static int parser_action_row1461[] = {
+static int parser_action_row1484[] = {
        1,
-       -1, 1, 578
+       -1, 1, 588
 };
-static int parser_action_row1462[] = {
+static int parser_action_row1485[] = {
        2,
-       -1, 3, 1461,
-       50, 0, 172
+       -1, 3, 1484,
+       50, 0, 173
 };
-static int parser_action_row1463[] = {
+static int parser_action_row1486[] = {
        1,
-       -1, 1, 458
+       -1, 1, 467
 };
-static int parser_action_row1464[] = {
+static int parser_action_row1487[] = {
        2,
-       -1, 3, 1463,
-       52, 0, 1465
+       -1, 3, 1486,
+       53, 0, 1488
 };
-static int parser_action_row1465[] = {
+static int parser_action_row1488[] = {
        2,
-       -1, 1, 321,
-       26, 1, 576
+       -1, 1, 329,
+       26, 1, 586
 };
-static int parser_action_row1466[] = {
+static int parser_action_row1489[] = {
        1,
-       -1, 1, 511
+       -1, 1, 520
 };
 
 const int* const parser_action_table[] = {
@@ -16205,7 +16583,30 @@ const int* const parser_action_table[] = {
        parser_action_row1463,
        parser_action_row1464,
        parser_action_row1465,
-       parser_action_row1466
+       parser_action_row1466,
+       parser_action_row1467,
+       parser_action_row1468,
+       parser_action_row1469,
+       parser_action_row1470,
+       parser_action_row1471,
+       parser_action_row1472,
+       parser_action_row1473,
+       parser_action_row1474,
+       parser_action_row1475,
+       parser_action_row1476,
+       parser_action_row1477,
+       parser_action_row1478,
+       parser_action_row1479,
+       parser_action_row1480,
+       parser_action_row1481,
+       parser_action_row1482,
+       parser_action_row1483,
+       parser_action_row1484,
+       parser_action_row1485,
+       parser_action_row1486,
+       parser_action_row1487,
+       parser_action_row1488,
+       parser_action_row1489
 };
 
 static int parser_goto_row1[] = {
@@ -16219,27 +16620,27 @@ static int parser_goto_row2[] = {
 static int parser_goto_row3[] = {
        3,
        -1, 5,
-       14, 82,
-       21, 82
+       14, 83,
+       21, 83
 };
 static int parser_goto_row4[] = {
        16,
        -1, 6,
        4, 19,
-       14, 83,
-       15, 86,
-       16, 90,
-       21, 96,
-       22, 99,
-       23, 101,
-       84, 224,
+       14, 84,
+       15, 87,
+       16, 91,
+       21, 97,
+       22, 100,
+       23, 102,
        85, 226,
-       89, 228,
-       97, 231,
+       86, 228,
+       90, 230,
        98, 233,
-       100, 234,
-       225, 379,
-       232, 381
+       99, 235,
+       101, 236,
+       227, 383,
+       234, 385
 };
 static int parser_goto_row5[] = {
        1,
@@ -16248,452 +16649,463 @@ static int parser_goto_row5[] = {
 static int parser_goto_row6[] = {
        5,
        -1, 8,
-       15, 87,
-       22, 87,
-       84, 87,
-       97, 87
+       15, 88,
+       22, 88,
+       85, 88,
+       98, 88
 };
 static int parser_goto_row7[] = {
        2,
-       -1, 205,
-       136, 274
+       -1, 207,
+       137, 276
 };
 static int parser_goto_row8[] = {
        2,
-       -1, 603,
-       532, 633
+       -1, 607,
+       537, 634
 };
 static int parser_goto_row9[] = {
        2,
-       -1, 994,
-       996, 1115
+       -1, 1003,
+       1005, 1128
 };
 static int parser_goto_row10[] = {
        2,
-       -1, 859,
-       1113, 1218
+       -1, 863,
+       1126, 1234
 };
 static int parser_goto_row11[] = {
        5,
-       -1, 604,
-       608, 725,
-       635, 725,
-       713, 725,
-       746, 725
+       -1, 608,
+       612, 726,
+       636, 726,
+       714, 726,
+       744, 726
 };
 static int parser_goto_row12[] = {
        9,
-       -1, 605,
-       609, 728,
-       636, 728,
-       714, 728,
-       727, 728,
-       747, 728,
-       750, 728,
-       862, 728,
-       895, 728
+       -1, 609,
+       613, 729,
+       637, 729,
+       715, 729,
+       728, 729,
+       745, 729,
+       748, 729,
+       866, 729,
+       898, 729
 };
 static int parser_goto_row13[] = {
        1,
-       -1, 606
+       -1, 610
 };
 static int parser_goto_row14[] = {
        1,
-       -1, 722
+       -1, 723
 };
 static int parser_goto_row15[] = {
        2,
-       -1, 723,
-       722, 870
+       -1, 724,
+       723, 874
 };
 static int parser_goto_row16[] = {
        4,
-       -1, 1142,
-       1122, 1226,
-       1144, 1252,
-       1227, 1302
+       -1, 1154,
+       1135, 1242,
+       1156, 1269,
+       1243, 1318
 };
 static int parser_goto_row17[] = {
        19,
-       -1, 724,
-       10, 57,
-       20, 57,
-       26, 136,
-       88, 227,
-       91, 230,
-       229, 380,
-       718, 867,
-       722, 871,
-       723, 873,
-       869, 1007,
-       870, 1009,
-       872, 1011,
-       1008, 1127,
-       1019, 1143,
-       1122, 1143,
-       1140, 1247,
-       1144, 1143,
-       1227, 1143
+       -1, 725,
+       10, 58,
+       20, 58,
+       26, 137,
+       89, 229,
+       92, 232,
+       231, 384,
+       719, 871,
+       723, 875,
+       724, 877,
+       873, 1016,
+       874, 1018,
+       876, 1020,
+       1017, 1140,
+       1028, 1155,
+       1135, 1155,
+       1152, 1264,
+       1156, 1155,
+       1243, 1155
 };
 static int parser_goto_row18[] = {
        10,
-       -1, 1103,
-       203, 364,
-       273, 416,
-       874, 1013,
-       876, 1015,
-       878, 1021,
-       1001, 1118,
-       1003, 1120,
-       1005, 1124,
-       1209, 1287
+       -1, 1114,
+       205, 368,
+       275, 421,
+       878, 1022,
+       880, 1025,
+       882, 1030,
+       1010, 1131,
+       1012, 1133,
+       1014, 1137,
+       1223, 1302
 };
 static int parser_goto_row19[] = {
        12,
-       -1, 481,
-       416, 530,
-       876, 1016,
-       878, 1022,
-       1003, 1121,
-       1005, 1125,
-       1013, 1132,
-       1015, 1135,
-       1021, 1147,
-       1118, 1220,
-       1120, 1223,
-       1124, 1230
+       -1, 488,
+       421, 535,
+       880, 1026,
+       882, 1031,
+       1012, 1134,
+       1014, 1138,
+       1022, 1145,
+       1025, 1149,
+       1030, 1159,
+       1131, 1236,
+       1133, 1239,
+       1137, 1246
 };
 static int parser_goto_row20[] = {
        2,
-       -1, 853,
-       852, 987
+       -1, 858,
+       856, 996
 };
 static int parser_goto_row21[] = {
-       7,
-       -1, 1017,
-       364, 482,
-       416, 482,
-       708, 854,
-       852, 854,
-       1013, 482,
-       1118, 482
+       3,
+       -1, 703,
+       997, 1123,
+       1148, 1260
 };
 static int parser_goto_row22[] = {
        2,
-       -1, 845,
-       847, 983
+       -1, 849,
+       851, 992
 };
 static int parser_goto_row23[] = {
        2,
-       -1, 702,
-       981, 1099
+       -1, 704,
+       991, 1111
 };
 static int parser_goto_row24[] = {
-       7,
-       -1, 483,
-       482, 592,
-       484, 595,
-       593, 705,
-       1017, 592,
-       1018, 1138,
-       1137, 1245
+       9,
+       -1, 602,
+       599, 707,
+       845, 987,
+       986, 1108,
+       990, 1110,
+       1109, 1222,
+       1151, 1263,
+       1405, 1449,
+       1450, 1468
 };
 static int parser_goto_row25[] = {
        2,
-       -1, 599,
-       600, 709
+       -1, 603,
+       604, 710
 };
 static int parser_goto_row26[] = {
        4,
-       -1, 856,
-       744, 892,
-       1322, 1386,
-       1359, 1409
+       -1, 860,
+       742, 895,
+       1338, 1404,
+       1377, 1429
 };
 static int parser_goto_row27[] = {
        16,
-       -1, 850,
-       742, 890,
-       849, 986,
-       889, 1029,
-       1256, 1334,
-       1306, 1370,
-       1320, 1384,
-       1332, 1393,
-       1333, 1394,
-       1357, 1407,
-       1368, 1416,
-       1369, 1417,
-       1383, 1428,
-       1392, 1430,
-       1406, 1438,
-       1415, 1440
+       -1, 854,
+       740, 893,
+       853, 995,
+       892, 1038,
+       1273, 1352,
+       1322, 1388,
+       1336, 1402,
+       1350, 1413,
+       1351, 1414,
+       1375, 1427,
+       1386, 1436,
+       1387, 1437,
+       1401, 1448,
+       1412, 1452,
+       1426, 1460,
+       1435, 1462
 };
 static int parser_goto_row28[] = {
        2,
-       -1, 1211,
-       1212, 1289
+       -1, 1225,
+       1226, 1304
 };
 static int parser_goto_row29[] = {
        2,
-       -1, 1104,
-       1288, 1350
+       -1, 1115,
+       1303, 1368
 };
 static int parser_goto_row30[] = {
        1,
-       -1, 1105
+       -1, 1116
 };
 static int parser_goto_row31[] = {
        1,
-       -1, 1106
+       -1, 1117
 };
 static int parser_goto_row32[] = {
-       17,
-       -1, 685,
-       183, 330,
-       243, 388,
-       290, 429,
-       390, 504,
-       402, 513,
-       420, 533,
-       440, 551,
-       864, 1000,
-       868, 1006,
-       882, 1025,
-       888, 1028,
-       938, 1061,
-       985, 1107,
-       1288, 1107,
-       1403, 1435,
-       1405, 1437
+       19,
+       -1, 687,
+       184, 332,
+       187, 333,
+       245, 392,
+       292, 434,
+       394, 508,
+       407, 518,
+       425, 540,
+       445, 558,
+       771, 917,
+       868, 1009,
+       872, 1015,
+       886, 1034,
+       891, 1037,
+       942, 1069,
+       994, 1118,
+       1303, 1118,
+       1423, 1457,
+       1425, 1459
 };
 static int parser_goto_row33[] = {
        2,
-       -1, 686,
-       684, 797
+       -1, 688,
+       686, 797
 };
 static int parser_goto_row34[] = {
        2,
        -1, 799,
-       800, 939
+       800, 943
 };
 static int parser_goto_row35[] = {
-       26,
-       -1, 1018,
-       142, 281,
-       364, 484,
-       416, 484,
-       482, 593,
-       701, 843,
-       708, 855,
-       758, 904,
-       852, 855,
-       854, 991,
-       858, 992,
-       1013, 484,
-       1014, 1134,
-       1017, 1137,
-       1019, 1144,
-       1020, 1146,
-       1118, 484,
-       1119, 1222,
-       1122, 1227,
-       1123, 1229,
-       1129, 1236,
-       1131, 1239,
-       1232, 1308,
-       1234, 1311,
-       1237, 1315,
-       1309, 1374
+       29,
+       -1, 1027,
+       143, 283,
+       368, 489,
+       421, 489,
+       701, 844,
+       702, 846,
+       709, 859,
+       756, 907,
+       847, 989,
+       856, 859,
+       862, 1001,
+       1022, 489,
+       1023, 1147,
+       1028, 1156,
+       1029, 1158,
+       1122, 1230,
+       1131, 489,
+       1132, 1238,
+       1135, 1243,
+       1136, 1245,
+       1142, 1252,
+       1144, 1255,
+       1231, 1308,
+       1248, 1324,
+       1250, 1327,
+       1253, 1331,
+       1259, 1339,
+       1325, 1392,
+       1340, 1406
 };
 static int parser_goto_row36[] = {
        32,
-       -1, 138,
-       34, 148,
-       327, 463,
-       459, 569,
-       537, 669,
-       582, 693,
-       591, 704,
-       631, 743,
-       643, 760,
-       645, 148,
-       678, 693,
-       698, 839,
-       782, 924,
-       794, 839,
-       913, 463,
-       975, 1095,
-       988, 1111,
-       1041, 569,
-       1053, 1170,
-       1055, 1095,
-       1108, 1214,
-       1136, 1244,
-       1158, 669,
-       1224, 1298,
-       1241, 1321,
-       1243, 1323,
-       1274, 1344,
-       1295, 1358,
-       1297, 1360,
-       1338, 924,
-       1432, 1170,
-       1454, 1344
+       -1, 139,
+       34, 149,
+       329, 468,
+       464, 576,
+       544, 672,
+       589, 694,
+       598, 706,
+       632, 741,
+       645, 758,
+       647, 149,
+       681, 694,
+       699, 840,
+       782, 929,
+       794, 840,
+       916, 468,
+       981, 1104,
+       998, 1124,
+       1049, 576,
+       1062, 1183,
+       1064, 1104,
+       1119, 1228,
+       1150, 1262,
+       1170, 672,
+       1240, 1314,
+       1257, 1337,
+       1261, 1341,
+       1290, 1362,
+       1311, 1376,
+       1313, 1378,
+       1356, 929,
+       1454, 1183,
+       1477, 1362
 };
 static int parser_goto_row37[] = {
        1,
-       -1, 58
+       -1, 59
 };
 static int parser_goto_row38[] = {
-       12,
-       -1, 59,
-       140, 276,
-       464, 572,
-       659, 780,
-       694, 834,
-       754, 901,
-       789, 928,
-       840, 977,
-       933, 1057,
-       1043, 1163,
-       1096, 1206,
-       1173, 1277
+       8,
+       -1, 60,
+       662, 779,
+       695, 834,
+       789, 834,
+       841, 983,
+       937, 983,
+       1105, 1219,
+       1186, 1219
 };
 static int parser_goto_row39[] = {
-       3,
-       -1, 206,
-       208, 367,
-       419, 367
+       7,
+       -1, 278,
+       469, 579,
+       752, 904,
+       789, 904,
+       937, 904,
+       1051, 1175,
+       1186, 904
 };
 static int parser_goto_row40[] = {
-       20,
-       -1, 139,
-       10, 60,
-       20, 60,
-       88, 60,
-       91, 60,
-       140, 277,
-       207, 366,
-       368, 366,
-       464, 277,
-       536, 655,
-       659, 277,
-       694, 277,
-       754, 277,
-       789, 277,
-       840, 277,
-       933, 277,
-       1043, 277,
-       1096, 277,
-       1157, 655,
-       1173, 277
+       5,
+       -1, 208,
+       210, 371,
+       424, 371,
+       928, 371,
+       980, 371
 };
 static int parser_goto_row41[] = {
-       20,
-       -1, 173,
-       38, 175,
-       141, 278,
-       149, 284,
-       648, 766,
-       649, 768,
-       670, 783,
+       24,
+       -1, 140,
+       10, 61,
+       20, 61,
+       89, 61,
+       92, 61,
+       141, 279,
+       209, 370,
+       372, 370,
+       423, 370,
+       469, 279,
+       539, 370,
+       543, 658,
+       662, 780,
        695, 835,
-       757, 902,
-       763, 907,
-       791, 929,
-       841, 978,
-       935, 1058,
-       1097, 1207,
-       1171, 1275,
-       1175, 1278,
-       1265, 1339,
-       1345, 1400,
-       1448, 1455,
-       1461, 1464
+       752, 279,
+       789, 835,
+       841, 835,
+       937, 835,
+       979, 370,
+       1051, 279,
+       1103, 370,
+       1105, 835,
+       1169, 658,
+       1186, 835
 };
 static int parser_goto_row42[] = {
-       11,
-       -1, 433,
-       193, 341,
-       315, 454,
-       326, 454,
-       343, 475,
-       456, 475,
-       615, 733,
-       677, 788,
-       682, 788,
-       774, 341,
-       1166, 733
+       20,
+       -1, 174,
+       38, 176,
+       142, 280,
+       150, 286,
+       650, 764,
+       651, 766,
+       673, 783,
+       696, 836,
+       755, 905,
+       761, 910,
+       791, 933,
+       842, 984,
+       939, 1066,
+       1106, 1220,
+       1184, 1291,
+       1188, 1293,
+       1282, 1357,
+       1363, 1420,
+       1471, 1478,
+       1484, 1487
 };
 static int parser_goto_row43[] = {
-       1,
-       -1, 342
+       11,
+       -1, 438,
+       195, 345,
+       317, 459,
+       328, 459,
+       347, 482,
+       461, 482,
+       618, 734,
+       680, 788,
+       685, 788,
+       773, 345,
+       1179, 734
 };
 static int parser_goto_row44[] = {
-       7,
-       -1, 343,
-       321, 456,
-       326, 456,
-       456, 456,
-       682, 456,
-       774, 456,
-       1166, 456
+       1,
+       -1, 346
 };
 static int parser_goto_row45[] = {
-       2,
-       -1, 474,
-       455, 567
+       7,
+       -1, 347,
+       323, 461,
+       328, 461,
+       461, 461,
+       685, 461,
+       773, 461,
+       1179, 461
 };
 static int parser_goto_row46[] = {
-       7,
-       -1, 837,
-       842, 979,
-       936, 979,
-       1098, 1208,
-       1112, 1217,
-       1176, 1208,
-       1215, 1292
+       2,
+       -1, 481,
+       460, 574
 };
 static int parser_goto_row47[] = {
-       1,
-       -1, 61
+       7,
+       -1, 838,
+       843, 985,
+       940, 985,
+       1107, 1221,
+       1125, 1233,
+       1189, 1221,
+       1229, 1307
 };
 static int parser_goto_row48[] = {
        1,
        -1, 62
 };
 static int parser_goto_row49[] = {
-       10,
-       -1, 197,
-       192, 339,
-       211, 372,
-       492, 617,
-       614, 732,
-       654, 776,
-       773, 915,
-       778, 921,
-       1049, 1168,
-       1165, 1270
-};
-static int parser_goto_row50[] = {
        1,
        -1, 63
 };
+static int parser_goto_row50[] = {
+       10,
+       -1, 199,
+       194, 343,
+       213, 376,
+       496, 620,
+       617, 733,
+       657, 775,
+       772, 919,
+       777, 925,
+       1058, 1181,
+       1178, 1286
+};
 static int parser_goto_row51[] = {
        1,
        -1, 64
 };
 static int parser_goto_row52[] = {
-       3,
-       -1, 656,
-       659, 781,
-       780, 923
-};
-static int parser_goto_row53[] = {
        1,
        -1, 65
 };
+static int parser_goto_row53[] = {
+       3,
+       -1, 659,
+       662, 781,
+       779, 927
+};
 static int parser_goto_row54[] = {
        1,
        -1, 66
@@ -16707,603 +17119,624 @@ static int parser_goto_row56[] = {
        -1, 68
 };
 static int parser_goto_row57[] = {
-       2,
-       -1, 178,
-       651, 770
+       1,
+       -1, 69
 };
 static int parser_goto_row58[] = {
-       43,
-       -1, 838,
-       36, 161,
-       37, 174,
-       38, 176,
-       40, 179,
-       173, 318,
-       175, 319,
-       178, 323,
-       194, 344,
-       197, 345,
-       338, 470,
-       339, 471,
-       371, 493,
-       372, 494,
-       421, 534,
-       535, 637,
-       616, 734,
-       617, 735,
-       647, 161,
-       648, 174,
-       649, 176,
-       651, 179,
-       710, 857,
-       731, 883,
-       732, 884,
-       744, 857,
-       766, 318,
-       768, 319,
-       770, 323,
-       775, 344,
-       776, 345,
-       914, 470,
-       915, 471,
-       920, 493,
-       921, 494,
-       1035, 534,
-       1156, 637,
-       1167, 734,
-       1168, 735,
-       1269, 883,
-       1270, 884,
-       1322, 857,
-       1359, 857
+       2,
+       -1, 179,
+       653, 768
 };
 static int parser_goto_row59[] = {
-       73,
-       -1, 162,
+       45,
+       -1, 839,
+       36, 162,
+       37, 175,
+       38, 177,
        40, 180,
-       47, 187,
-       146, 282,
-       147, 283,
-       178, 180,
-       189, 335,
-       218, 376,
-       241, 386,
-       249, 393,
-       288, 427,
-       369, 488,
-       373, 495,
-       385, 500,
-       647, 180,
-       648, 180,
-       649, 180,
-       651, 180,
-       672, 785,
-       689, 803,
-       738, 886,
-       759, 905,
-       761, 906,
-       766, 180,
-       768, 180,
-       770, 180,
-       775, 180,
-       776, 180,
-       787, 927,
-       793, 180,
-       815, 951,
-       914, 180,
-       915, 180,
-       920, 180,
-       921, 180,
-       925, 1052,
-       936, 180,
-       943, 1062,
-       1035, 180,
-       1156, 180,
-       1167, 180,
-       1168, 180,
-       1176, 180,
-       1248, 1326,
-       1253, 1330,
-       1267, 1341,
-       1269, 180,
-       1270, 180,
-       1276, 1346,
-       1299, 1362,
-       1303, 1366,
-       1312, 1377,
-       1316, 1381,
-       1327, 1388,
-       1328, 1389,
-       1331, 1391,
-       1347, 1401,
-       1363, 1411,
-       1364, 1412,
-       1367, 1414,
-       1371, 1418,
-       1375, 1422,
-       1378, 1424,
-       1379, 1425,
-       1382, 1427,
-       1390, 1429,
-       1398, 1431,
-       1413, 1439,
-       1419, 1441,
-       1420, 1442,
-       1423, 1444,
-       1426, 1445,
-       1443, 1453
+       174, 320,
+       176, 321,
+       179, 325,
+       196, 348,
+       199, 349,
+       342, 477,
+       343, 478,
+       375, 497,
+       376, 498,
+       426, 541,
+       473, 583,
+       542, 639,
+       619, 735,
+       620, 736,
+       649, 162,
+       650, 175,
+       651, 177,
+       653, 180,
+       711, 861,
+       732, 887,
+       733, 888,
+       742, 861,
+       764, 320,
+       766, 321,
+       768, 325,
+       774, 348,
+       775, 349,
+       918, 477,
+       919, 478,
+       924, 497,
+       925, 498,
+       1043, 541,
+       1053, 583,
+       1168, 639,
+       1180, 735,
+       1181, 736,
+       1285, 887,
+       1286, 888,
+       1338, 861,
+       1377, 861
 };
 static int parser_goto_row60[] = {
-       1,
-       -1, 163
+       74,
+       -1, 163,
+       40, 181,
+       48, 189,
+       147, 284,
+       148, 285,
+       179, 181,
+       191, 338,
+       220, 380,
+       243, 390,
+       251, 397,
+       290, 432,
+       373, 397,
+       377, 499,
+       389, 397,
+       649, 181,
+       650, 181,
+       651, 181,
+       653, 181,
+       675, 785,
+       691, 803,
+       737, 889,
+       757, 908,
+       759, 909,
+       764, 181,
+       766, 181,
+       768, 181,
+       774, 181,
+       775, 181,
+       787, 932,
+       793, 181,
+       815, 955,
+       918, 181,
+       919, 181,
+       924, 181,
+       925, 181,
+       930, 1061,
+       940, 181,
+       947, 1070,
+       1043, 181,
+       1053, 181,
+       1168, 181,
+       1180, 181,
+       1181, 181,
+       1189, 181,
+       1265, 1344,
+       1270, 1348,
+       1284, 1359,
+       1285, 181,
+       1286, 181,
+       1292, 1364,
+       1315, 1380,
+       1319, 1384,
+       1328, 1395,
+       1332, 1399,
+       1345, 1408,
+       1346, 1409,
+       1349, 1411,
+       1365, 1421,
+       1381, 1431,
+       1382, 1432,
+       1385, 1434,
+       1389, 1438,
+       1393, 1442,
+       1396, 1444,
+       1397, 1445,
+       1400, 1447,
+       1410, 1451,
+       1418, 1453,
+       1433, 1461,
+       1439, 1463,
+       1440, 1464,
+       1443, 1466,
+       1446, 1467,
+       1465, 1476
 };
 static int parser_goto_row61[] = {
-       5,
-       -1, 164,
-       289, 428,
-       434, 545,
-       436, 547,
-       546, 676
+       1,
+       -1, 164
 };
 static int parser_goto_row62[] = {
-       1,
-       -1, 165
+       5,
+       -1, 165,
+       291, 433,
+       439, 552,
+       441, 554,
+       553, 679
 };
 static int parser_goto_row63[] = {
-       11,
-       -1, 166,
-       437, 548,
-       438, 549,
-       439, 550,
-       443, 554,
-       444, 555,
-       445, 556,
-       446, 557,
-       447, 558,
-       448, 559,
-       449, 560
+       1,
+       -1, 166
 };
 static int parser_goto_row64[] = {
-       3,
+       11,
        -1, 167,
-       441, 552,
-       442, 553
+       442, 555,
+       443, 556,
+       444, 557,
+       448, 561,
+       449, 562,
+       450, 563,
+       451, 564,
+       452, 565,
+       453, 566,
+       454, 567
 };
 static int parser_goto_row65[] = {
-       6,
+       3,
        -1, 168,
-       291, 430,
-       294, 432,
-       450, 561,
-       451, 562,
-       452, 563
+       446, 559,
+       447, 560
 };
 static int parser_goto_row66[] = {
-       1,
-       -1, 169
+       6,
+       -1, 169,
+       293, 435,
+       296, 437,
+       455, 568,
+       456, 569,
+       457, 570
 };
 static int parser_goto_row67[] = {
-       104,
-       -1, 188,
-       10, 69,
-       20, 69,
-       27, 69,
-       34, 69,
-       36, 170,
-       37, 170,
-       38, 170,
-       40, 181,
-       88, 69,
-       91, 69,
-       140, 69,
-       157, 293,
-       173, 170,
-       175, 170,
-       178, 181,
-       194, 170,
-       197, 170,
-       207, 69,
-       327, 69,
-       338, 170,
-       339, 170,
-       368, 69,
-       371, 170,
-       372, 170,
-       421, 170,
-       459, 69,
-       464, 69,
-       535, 170,
-       536, 657,
-       537, 69,
-       582, 69,
-       591, 69,
-       616, 170,
-       617, 170,
-       631, 69,
-       640, 657,
-       643, 69,
-       645, 657,
-       647, 181,
-       648, 181,
-       649, 181,
-       651, 181,
-       659, 69,
-       678, 657,
-       694, 69,
-       697, 170,
-       698, 69,
-       710, 170,
-       731, 170,
-       732, 170,
-       744, 170,
-       754, 69,
-       766, 181,
-       768, 181,
-       770, 181,
-       775, 181,
-       776, 181,
-       782, 69,
-       789, 69,
-       793, 181,
-       794, 657,
-       840, 69,
-       842, 170,
-       913, 657,
-       914, 181,
-       915, 181,
-       920, 181,
-       921, 181,
-       933, 69,
-       936, 181,
-       975, 69,
-       988, 69,
-       1035, 181,
-       1041, 657,
-       1043, 69,
-       1053, 69,
-       1055, 657,
-       1096, 69,
-       1098, 170,
-       1108, 69,
-       1112, 170,
-       1136, 69,
-       1156, 181,
-       1157, 657,
-       1158, 657,
-       1167, 181,
-       1168, 181,
-       1173, 69,
-       1176, 181,
-       1215, 170,
-       1224, 69,
-       1241, 69,
-       1243, 69,
-       1269, 181,
-       1270, 181,
-       1274, 69,
-       1295, 69,
-       1297, 69,
-       1322, 170,
-       1338, 657,
-       1359, 170,
-       1432, 657,
-       1454, 657
+       1,
+       -1, 170
 };
 static int parser_goto_row68[] = {
+       110,
+       -1, 190,
+       10, 70,
+       20, 70,
+       27, 70,
+       34, 70,
+       36, 171,
+       37, 171,
+       38, 171,
+       40, 182,
+       89, 70,
+       92, 70,
+       141, 70,
+       158, 295,
+       174, 171,
+       176, 171,
+       179, 182,
+       196, 171,
+       199, 171,
+       209, 70,
+       329, 70,
+       342, 171,
+       343, 171,
+       372, 70,
+       375, 171,
+       376, 171,
+       423, 70,
+       426, 171,
+       464, 70,
+       469, 70,
+       473, 171,
+       539, 70,
+       542, 171,
+       543, 660,
+       544, 70,
+       589, 70,
+       598, 70,
+       619, 171,
+       620, 171,
+       632, 70,
+       642, 660,
+       645, 70,
+       647, 660,
+       649, 182,
+       650, 182,
+       651, 182,
+       653, 182,
+       662, 70,
+       681, 660,
+       695, 70,
+       698, 171,
+       699, 70,
+       711, 171,
+       732, 171,
+       733, 171,
+       742, 171,
+       752, 70,
+       764, 182,
+       766, 182,
+       768, 182,
+       774, 182,
+       775, 182,
+       782, 70,
+       789, 70,
+       793, 182,
+       794, 660,
+       841, 70,
+       843, 171,
+       916, 660,
+       918, 182,
+       919, 182,
+       924, 182,
+       925, 182,
+       937, 70,
+       940, 182,
+       979, 70,
+       981, 70,
+       998, 70,
+       1043, 182,
+       1049, 660,
+       1051, 70,
+       1053, 182,
+       1062, 70,
+       1064, 660,
+       1103, 70,
+       1105, 70,
+       1107, 171,
+       1119, 70,
+       1125, 171,
+       1150, 70,
+       1168, 182,
+       1169, 660,
+       1170, 660,
+       1180, 182,
+       1181, 182,
+       1186, 70,
+       1189, 182,
+       1229, 171,
+       1240, 70,
+       1257, 70,
+       1261, 70,
+       1285, 182,
+       1286, 182,
+       1290, 70,
+       1311, 70,
+       1313, 70,
+       1338, 171,
+       1356, 660,
+       1377, 171,
+       1454, 660,
+       1477, 660
+};
+static int parser_goto_row69[] = {
        60,
-       -1, 70,
-       25, 123,
-       42, 123,
-       50, 123,
-       114, 123,
-       219, 123,
-       242, 123,
-       244, 123,
-       250, 123,
-       396, 123,
-       398, 123,
-       399, 123,
-       400, 123,
-       401, 123,
-       403, 123,
-       404, 123,
-       405, 123,
-       406, 123,
-       407, 123,
-       408, 123,
-       409, 123,
-       410, 123,
-       411, 123,
-       412, 123,
-       413, 123,
-       414, 123,
-       489, 123,
-       491, 123,
-       508, 123,
-       639, 123,
-       652, 123,
-       653, 123,
-       690, 823,
-       779, 123,
+       -1, 71,
+       25, 124,
+       42, 124,
+       51, 124,
+       115, 124,
+       221, 124,
+       244, 124,
+       246, 124,
+       252, 124,
+       401, 124,
+       403, 124,
+       404, 124,
+       405, 124,
+       406, 124,
+       408, 124,
+       409, 124,
+       410, 124,
+       411, 124,
+       412, 124,
+       413, 124,
+       414, 124,
+       415, 124,
+       416, 124,
+       417, 124,
+       418, 124,
+       419, 124,
+       493, 124,
+       495, 124,
+       513, 124,
+       641, 124,
+       654, 124,
+       656, 124,
+       692, 823,
+       778, 124,
        814, 823,
-       944, 823,
-       946, 823,
-       952, 823,
-       1047, 123,
-       1048, 123,
-       1075, 823,
-       1077, 823,
-       1078, 823,
-       1079, 823,
-       1080, 823,
-       1082, 823,
+       948, 823,
+       950, 823,
+       956, 823,
+       1056, 124,
+       1057, 124,
        1083, 823,
-       1084, 823,
        1085, 823,
        1086, 823,
        1087, 823,
        1088, 823,
-       1089, 823,
        1090, 823,
        1091, 823,
        1092, 823,
        1093, 823,
-       1184, 823,
-       1259, 123,
-       1456, 823
-};
-static int parser_goto_row69[] = {
-       1,
-       -1, 71
+       1094, 823,
+       1095, 823,
+       1096, 823,
+       1097, 823,
+       1098, 823,
+       1099, 823,
+       1100, 823,
+       1101, 823,
+       1197, 823,
+       1276, 124,
+       1479, 823
 };
 static int parser_goto_row70[] = {
        1,
        -1, 72
 };
 static int parser_goto_row71[] = {
-       2,
-       -1, 214,
-       217, 374
-};
-static int parser_goto_row72[] = {
        1,
-       -1, 215
+       -1, 73
 };
-static int parser_goto_row73[] = {
+static int parser_goto_row72[] = {
        2,
        -1, 216,
-       217, 375
+       219, 378
+};
+static int parser_goto_row73[] = {
+       1,
+       -1, 217
 };
 static int parser_goto_row74[] = {
-       39,
-       -1, 124,
-       42, 184,
-       50, 192,
-       104, 240,
-       109, 245,
-       117, 251,
-       156, 184,
-       159, 295,
-       177, 321,
-       186, 331,
-       219, 377,
-       252, 395,
-       316, 377,
-       322, 321,
-       388, 503,
-       429, 543,
-       489, 611,
-       491, 614,
-       526, 627,
-       528, 629,
-       564, 611,
-       565, 677,
-       570, 682,
-       576, 688,
-       652, 184,
-       653, 773,
-       687, 802,
-       739, 887,
-       779, 377,
-       804, 942,
-       809, 947,
-       817, 953,
-       954, 1072,
-       1047, 611,
-       1048, 1165,
-       1066, 1180,
-       1202, 1284,
-       1204, 1286,
-       1348, 1402
+       2,
+       -1, 218,
+       219, 379
 };
 static int parser_goto_row75[] = {
-       12,
+       39,
        -1, 125,
        42, 185,
-       50, 193,
-       219, 378,
-       489, 612,
-       491, 615,
-       639, 752,
-       652, 772,
-       653, 774,
-       779, 922,
-       1047, 1164,
-       1048, 1166
+       51, 194,
+       105, 242,
+       110, 247,
+       118, 253,
+       157, 185,
+       160, 297,
+       178, 323,
+       188, 334,
+       221, 381,
+       254, 400,
+       318, 381,
+       324, 323,
+       392, 507,
+       434, 550,
+       493, 614,
+       495, 617,
+       531, 628,
+       533, 630,
+       571, 614,
+       572, 680,
+       577, 685,
+       584, 690,
+       654, 185,
+       656, 772,
+       689, 802,
+       738, 890,
+       778, 381,
+       804, 946,
+       809, 951,
+       817, 957,
+       958, 1080,
+       1056, 614,
+       1057, 1178,
+       1074, 1193,
+       1215, 1299,
+       1217, 1301,
+       1366, 1422
 };
 static int parser_goto_row76[] = {
-       9,
-       -1, 73,
-       69, 211,
-       135, 272,
-       170, 315,
-       181, 326,
-       188, 334,
-       248, 272,
-       293, 334,
-       657, 778
+       12,
+       -1, 126,
+       42, 186,
+       51, 195,
+       221, 382,
+       493, 615,
+       495, 618,
+       641, 750,
+       654, 770,
+       656, 773,
+       778, 926,
+       1056, 1177,
+       1057, 1179
 };
 static int parser_goto_row77[] = {
-       4,
-       -1, 580,
-       581, 692,
-       625, 692,
-       737, 692
+       9,
+       -1, 74,
+       70, 213,
+       136, 274,
+       171, 317,
+       182, 328,
+       190, 337,
+       250, 274,
+       295, 337,
+       660, 777
 };
 static int parser_goto_row78[] = {
-       8,
-       -1, 287,
-       285, 425,
-       474, 585,
-       567, 681,
-       583, 696,
-       679, 792,
-       764, 909,
-       908, 1039
+       3,
+       -1, 339,
+       251, 398,
+       389, 504
 };
 static int parser_goto_row79[] = {
        2,
-       -1, 237,
-       346, 477
+       -1, 587,
+       588, 693
 };
 static int parser_goto_row80[] = {
-       112,
-       -1, 171,
-       10, 74,
-       20, 74,
-       25, 126,
-       27, 74,
-       34, 74,
-       42, 126,
-       50, 126,
-       88, 74,
-       91, 74,
-       114, 126,
-       140, 74,
-       207, 74,
-       219, 126,
-       242, 126,
-       244, 126,
-       250, 126,
-       327, 74,
-       368, 74,
-       396, 126,
-       398, 126,
-       399, 126,
-       400, 126,
-       401, 126,
-       403, 126,
-       404, 126,
-       405, 126,
-       406, 126,
-       407, 126,
-       408, 126,
-       409, 126,
-       410, 126,
-       411, 126,
-       412, 126,
-       413, 126,
-       414, 126,
-       459, 74,
-       464, 74,
-       489, 126,
-       491, 126,
-       508, 126,
-       536, 658,
-       537, 74,
-       582, 74,
-       591, 74,
-       631, 74,
-       639, 126,
-       640, 658,
-       643, 74,
-       645, 658,
-       652, 126,
-       653, 126,
-       659, 74,
-       678, 658,
-       690, 824,
-       694, 74,
-       698, 74,
-       754, 74,
-       779, 126,
-       782, 74,
-       789, 74,
-       794, 658,
+       8,
+       -1, 289,
+       287, 430,
+       481, 592,
+       574, 684,
+       590, 697,
+       682, 792,
+       762, 912,
+       911, 1047
+};
+static int parser_goto_row81[] = {
+       2,
+       -1, 239,
+       350, 484
+};
+static int parser_goto_row82[] = {
+       116,
+       -1, 172,
+       10, 75,
+       20, 75,
+       25, 127,
+       27, 75,
+       34, 75,
+       42, 127,
+       51, 127,
+       89, 75,
+       92, 75,
+       115, 127,
+       141, 75,
+       209, 75,
+       221, 127,
+       244, 127,
+       246, 127,
+       252, 127,
+       329, 75,
+       372, 75,
+       401, 127,
+       403, 127,
+       404, 127,
+       405, 127,
+       406, 127,
+       408, 127,
+       409, 127,
+       410, 127,
+       411, 127,
+       412, 127,
+       413, 127,
+       414, 127,
+       415, 127,
+       416, 127,
+       417, 127,
+       418, 127,
+       419, 127,
+       423, 75,
+       464, 75,
+       469, 75,
+       493, 127,
+       495, 127,
+       513, 127,
+       539, 75,
+       543, 661,
+       544, 75,
+       589, 75,
+       598, 75,
+       632, 75,
+       641, 127,
+       642, 661,
+       645, 75,
+       647, 661,
+       654, 127,
+       656, 127,
+       662, 75,
+       681, 661,
+       692, 824,
+       695, 75,
+       699, 75,
+       752, 75,
+       778, 127,
+       782, 75,
+       789, 75,
+       794, 661,
        814, 824,
-       840, 74,
-       913, 658,
-       933, 74,
-       944, 824,
-       946, 824,
-       952, 824,
-       975, 74,
-       988, 74,
-       1041, 658,
-       1043, 74,
-       1047, 126,
-       1048, 126,
-       1053, 74,
-       1055, 658,
-       1075, 824,
-       1077, 824,
-       1078, 824,
-       1079, 824,
-       1080, 824,
-       1082, 824,
+       841, 75,
+       916, 661,
+       937, 75,
+       948, 824,
+       950, 824,
+       956, 824,
+       979, 75,
+       981, 75,
+       998, 75,
+       1049, 661,
+       1051, 75,
+       1056, 127,
+       1057, 127,
+       1062, 75,
+       1064, 661,
        1083, 824,
-       1084, 824,
        1085, 824,
        1086, 824,
        1087, 824,
        1088, 824,
-       1089, 824,
        1090, 824,
        1091, 824,
        1092, 824,
        1093, 824,
-       1096, 74,
-       1108, 74,
-       1136, 74,
-       1157, 658,
-       1158, 658,
-       1173, 74,
-       1184, 824,
-       1224, 74,
-       1241, 74,
-       1243, 74,
-       1259, 126,
-       1274, 74,
-       1295, 74,
-       1297, 74,
-       1338, 658,
-       1432, 658,
-       1454, 658,
-       1456, 824
+       1094, 824,
+       1095, 824,
+       1096, 824,
+       1097, 824,
+       1098, 824,
+       1099, 824,
+       1100, 824,
+       1101, 824,
+       1103, 75,
+       1105, 75,
+       1119, 75,
+       1150, 75,
+       1169, 661,
+       1170, 661,
+       1186, 75,
+       1197, 824,
+       1240, 75,
+       1257, 75,
+       1261, 75,
+       1276, 127,
+       1290, 75,
+       1311, 75,
+       1313, 75,
+       1356, 661,
+       1454, 661,
+       1477, 661,
+       1479, 824
 };
-static int parser_goto_row81[] = {
+static int parser_goto_row83[] = {
        4,
-       -1, 75,
-       77, 221,
-       238, 221,
-       498, 221
+       -1, 76,
+       78, 223,
+       240, 223,
+       502, 223
 };
-static int parser_goto_row82[] = {
+static int parser_goto_row84[] = {
        2,
-       -1, 76,
-       77, 222
+       -1, 77,
+       78, 224
 };
-static int parser_goto_row83[] = {
+static int parser_goto_row85[] = {
        5,
-       -1, 81,
-       237, 383,
-       476, 586,
-       477, 587,
-       606, 715
+       -1, 82,
+       239, 387,
+       483, 593,
+       484, 594,
+       610, 716
 };
-static int parser_goto_row84[] = {
-       62,
-       -1, 102,
+static int parser_goto_row86[] = {
+       66,
+       -1, 103,
        0, 9,
        4, 9,
        14, 9,
@@ -17312,623 +17745,624 @@ static int parser_goto_row84[] = {
        21, 9,
        22, 9,
        23, 9,
-       27, 140,
-       34, 140,
-       60, 207,
-       84, 9,
+       27, 141,
+       34, 141,
+       61, 209,
        85, 9,
-       89, 9,
-       97, 9,
+       86, 9,
+       90, 9,
        98, 9,
-       100, 9,
-       208, 368,
-       225, 9,
-       232, 9,
-       277, 207,
-       327, 464,
-       419, 368,
-       459, 464,
-       536, 659,
-       537, 140,
-       582, 694,
-       591, 464,
-       631, 464,
-       640, 754,
-       643, 464,
-       645, 754,
-       678, 789,
-       698, 840,
-       782, 464,
-       794, 933,
-       853, 990,
-       913, 1043,
-       975, 1096,
-       987, 1110,
-       988, 464,
-       1041, 1043,
-       1053, 140,
-       1055, 1173,
-       1108, 464,
-       1111, 1216,
-       1136, 464,
-       1157, 659,
-       1158, 754,
-       1214, 1291,
-       1217, 1293,
-       1224, 464,
-       1241, 464,
-       1243, 464,
-       1274, 140,
-       1292, 1354,
-       1295, 464,
-       1297, 464,
-       1338, 1043,
-       1432, 754,
-       1454, 754
+       99, 9,
+       101, 9,
+       210, 372,
+       227, 9,
+       234, 9,
+       279, 423,
+       329, 469,
+       424, 539,
+       464, 469,
+       543, 662,
+       544, 141,
+       589, 695,
+       598, 469,
+       632, 469,
+       642, 752,
+       645, 469,
+       647, 752,
+       681, 789,
+       699, 841,
+       780, 209,
+       782, 469,
+       794, 937,
+       835, 979,
+       858, 1000,
+       916, 1051,
+       928, 372,
+       980, 1103,
+       981, 1105,
+       996, 1121,
+       998, 469,
+       1049, 1051,
+       1062, 141,
+       1064, 1186,
+       1119, 469,
+       1124, 1232,
+       1150, 469,
+       1169, 662,
+       1170, 752,
+       1228, 1306,
+       1233, 1309,
+       1240, 469,
+       1257, 469,
+       1261, 469,
+       1290, 141,
+       1307, 1372,
+       1311, 469,
+       1313, 469,
+       1356, 1051,
+       1454, 752,
+       1477, 752
 };
-static int parser_goto_row85[] = {
-       271,
-       -1, 485,
+static int parser_goto_row87[] = {
+       275,
+       -1, 490,
        0, 10,
        4, 20,
        14, 20,
-       15, 88,
-       16, 91,
+       15, 89,
+       16, 92,
        21, 20,
-       22, 88,
-       23, 91,
-       24, 103,
-       29, 143,
-       30, 144,
-       31, 145,
-       32, 146,
-       33, 147,
-       35, 150,
-       41, 183,
-       48, 189,
-       72, 218,
-       84, 88,
-       85, 91,
-       89, 91,
-       97, 88,
-       98, 91,
-       100, 91,
-       105, 241,
-       106, 242,
-       107, 243,
-       108, 244,
-       115, 249,
-       116, 250,
-       152, 288,
-       153, 289,
-       154, 290,
-       155, 291,
-       158, 294,
-       190, 336,
-       191, 337,
-       198, 346,
-       205, 365,
-       209, 369,
-       210, 370,
-       215, 373,
-       225, 91,
-       232, 91,
-       235, 382,
-       239, 385,
-       246, 390,
-       253, 396,
-       254, 398,
-       255, 399,
-       256, 400,
-       257, 401,
-       258, 402,
-       259, 403,
-       260, 404,
-       261, 405,
-       262, 406,
-       263, 407,
-       264, 408,
-       265, 409,
-       266, 410,
-       267, 411,
-       268, 412,
-       269, 413,
-       270, 414,
-       271, 415,
-       274, 417,
-       279, 420,
-       280, 421,
-       282, 423,
-       283, 424,
-       287, 426,
-       296, 434,
-       297, 436,
-       298, 437,
-       299, 438,
-       300, 439,
-       301, 440,
-       302, 441,
-       303, 442,
-       304, 443,
-       305, 444,
-       306, 445,
-       307, 446,
-       308, 447,
-       309, 448,
-       310, 449,
-       311, 450,
-       312, 451,
-       313, 452,
-       314, 453,
-       325, 460,
-       333, 468,
-       335, 469,
-       376, 496,
-       386, 501,
-       391, 505,
-       393, 506,
-       397, 508,
-       422, 535,
-       425, 539,
+       22, 89,
+       23, 92,
+       24, 104,
+       29, 144,
+       30, 145,
+       31, 146,
+       32, 147,
+       33, 148,
+       35, 151,
+       41, 184,
+       49, 191,
+       73, 220,
+       85, 89,
+       86, 92,
+       90, 92,
+       98, 89,
+       99, 92,
+       101, 92,
+       106, 243,
+       107, 244,
+       108, 245,
+       109, 246,
+       116, 251,
+       117, 252,
+       153, 290,
+       154, 291,
+       155, 292,
+       156, 293,
+       159, 296,
+       192, 340,
+       193, 341,
+       200, 350,
+       207, 369,
+       211, 373,
+       212, 374,
+       217, 377,
+       227, 92,
+       234, 92,
+       237, 386,
+       241, 389,
+       248, 394,
+       255, 401,
+       256, 403,
+       257, 404,
+       258, 405,
+       259, 406,
+       260, 407,
+       261, 408,
+       262, 409,
+       263, 410,
+       264, 411,
+       265, 412,
+       266, 413,
+       267, 414,
+       268, 415,
+       269, 416,
+       270, 417,
+       271, 418,
+       272, 419,
+       273, 420,
+       276, 422,
+       281, 425,
+       282, 426,
+       284, 428,
+       285, 429,
+       289, 431,
+       298, 439,
+       299, 441,
+       300, 442,
+       301, 443,
+       302, 444,
+       303, 445,
+       304, 446,
+       305, 447,
+       306, 448,
+       307, 449,
+       308, 450,
+       309, 451,
+       310, 452,
+       311, 453,
+       312, 454,
+       313, 455,
+       314, 456,
+       315, 457,
+       316, 458,
+       327, 465,
+       336, 474,
+       338, 475,
+       380, 500,
+       390, 505,
+       395, 509,
+       397, 510,
+       402, 513,
        427, 542,
-       431, 544,
-       435, 546,
-       466, 574,
-       467, 575,
-       480, 589,
-       482, 594,
-       484, 596,
-       487, 607,
-       488, 610,
-       490, 613,
-       495, 618,
-       500, 620,
-       502, 622,
-       527, 628,
-       532, 634,
-       538, 671,
-       540, 672,
-       541, 673,
-       573, 684,
-       578, 689,
-       579, 690,
-       584, 697,
-       585, 539,
-       593, 706,
-       601, 710,
-       602, 711,
-       603, 712,
-       608, 726,
-       609, 729,
-       621, 738,
-       632, 744,
-       633, 745,
-       635, 749,
-       636, 751,
-       642, 759,
-       644, 761,
-       646, 764,
-       674, 787,
-       680, 793,
-       681, 539,
-       686, 801,
-       696, 539,
-       699, 842,
-       702, 846,
-       713, 861,
-       714, 863,
-       716, 864,
-       721, 868,
-       727, 880,
-       730, 882,
-       741, 888,
-       746, 894,
-       747, 896,
-       750, 898,
-       777, 919,
-       784, 925,
-       785, 926,
-       792, 539,
-       795, 936,
-       797, 937,
-       798, 938,
-       803, 941,
-       805, 943,
-       806, 944,
-       807, 945,
-       808, 946,
-       816, 952,
-       825, 955,
-       844, 981,
-       847, 984,
-       848, 985,
-       859, 995,
-       862, 998,
-       886, 1026,
-       895, 1031,
-       903, 1035,
-       905, 1037,
-       906, 1038,
-       909, 1040,
-       927, 1054,
-       948, 1068,
-       956, 1075,
-       957, 1077,
-       958, 1078,
-       959, 1079,
-       960, 1080,
-       961, 1081,
-       962, 1082,
-       963, 1083,
-       964, 1084,
-       965, 1085,
-       966, 1086,
-       967, 1087,
-       968, 1088,
-       969, 1089,
-       970, 1090,
-       971, 1091,
-       972, 1092,
-       973, 1093,
-       974, 1094,
-       976, 1098,
-       989, 1112,
-       993, 1113,
-       996, 1116,
-       1017, 594,
-       1018, 1139,
-       1024, 1149,
-       1025, 1150,
-       1027, 1152,
-       1028, 1153,
-       1036, 1156,
-       1039, 539,
-       1052, 1169,
-       1056, 1176,
-       1062, 1177,
-       1069, 1182,
-       1076, 1184,
-       1109, 1215,
-       1137, 1246,
-       1141, 1248,
-       1145, 1253,
-       1151, 1259,
-       1159, 1266,
-       1160, 1267,
-       1172, 1276,
-       1179, 1281,
-       1203, 1285,
-       1210, 1288,
-       1213, 1290,
-       1225, 1299,
-       1228, 1303,
-       1235, 1312,
-       1238, 1316,
-       1242, 1322,
-       1249, 1327,
+       430, 546,
+       432, 549,
+       436, 551,
+       440, 553,
+       471, 581,
+       472, 582,
+       487, 596,
+       489, 599,
+       492, 611,
+       494, 616,
+       499, 621,
+       506, 625,
+       532, 629,
+       537, 635,
+       545, 674,
+       547, 675,
+       548, 676,
+       580, 686,
+       585, 691,
+       586, 692,
+       591, 698,
+       592, 546,
+       605, 711,
+       606, 712,
+       607, 713,
+       612, 727,
+       613, 730,
+       624, 737,
+       633, 742,
+       634, 743,
+       636, 747,
+       637, 749,
+       644, 757,
+       646, 759,
+       648, 762,
+       677, 787,
+       683, 793,
+       684, 546,
+       688, 801,
+       697, 546,
+       700, 843,
+       701, 845,
+       704, 850,
+       714, 865,
+       715, 867,
+       717, 868,
+       722, 872,
+       728, 884,
+       731, 886,
+       739, 891,
+       744, 897,
+       745, 899,
+       748, 901,
+       776, 923,
+       784, 930,
+       785, 931,
+       792, 546,
+       795, 940,
+       797, 941,
+       798, 942,
+       803, 945,
+       805, 947,
+       806, 948,
+       807, 949,
+       808, 950,
+       816, 956,
+       825, 959,
+       844, 986,
+       847, 990,
+       848, 991,
+       851, 993,
+       852, 994,
+       857, 997,
+       863, 1004,
+       866, 1007,
+       889, 1035,
+       898, 1040,
+       906, 1043,
+       908, 1045,
+       909, 1046,
+       912, 1048,
+       932, 1063,
+       952, 1076,
+       960, 1083,
+       961, 1085,
+       962, 1086,
+       963, 1087,
+       964, 1088,
+       965, 1089,
+       966, 1090,
+       967, 1091,
+       968, 1092,
+       969, 1093,
+       970, 1094,
+       971, 1095,
+       972, 1096,
+       973, 1097,
+       974, 1098,
+       975, 1099,
+       976, 1100,
+       977, 1101,
+       978, 1102,
+       982, 1107,
+       989, 1109,
+       999, 1125,
+       1002, 1126,
+       1005, 1129,
+       1024, 1148,
+       1027, 1151,
+       1033, 1161,
+       1034, 1162,
+       1036, 1164,
+       1037, 1165,
+       1044, 1168,
+       1047, 546,
+       1061, 1182,
+       1065, 1189,
+       1070, 1190,
+       1077, 1195,
+       1084, 1197,
+       1120, 1229,
+       1153, 1265,
+       1157, 1270,
+       1163, 1276,
+       1171, 1283,
+       1172, 1284,
+       1185, 1292,
+       1192, 1296,
+       1216, 1300,
+       1224, 1303,
+       1227, 1305,
+       1241, 1315,
+       1244, 1319,
        1251, 1328,
-       1254, 1331,
-       1257, 1335,
-       1260, 1337,
-       1280, 1347,
-       1296, 1359,
-       1300, 1363,
-       1301, 1364,
-       1304, 1367,
-       1307, 1371,
-       1310, 1375,
-       1313, 1378,
-       1314, 1379,
+       1254, 1332,
+       1258, 1338,
+       1259, 845,
+       1266, 1345,
+       1268, 1346,
+       1271, 1349,
+       1274, 1353,
+       1277, 1355,
+       1295, 1365,
+       1312, 1377,
+       1316, 1381,
        1317, 1382,
-       1329, 1390,
-       1340, 1398,
-       1341, 1399,
-       1349, 1403,
-       1351, 1404,
-       1353, 1405,
-       1365, 1413,
-       1372, 1419,
-       1373, 1420,
-       1376, 1423,
-       1380, 1426,
-       1401, 1433,
-       1421, 1443,
-       1431, 1446,
-       1434, 1450,
-       1435, 1451,
-       1437, 1452,
-       1449, 1456,
-       1457, 1463
+       1320, 1385,
+       1323, 1389,
+       1326, 1393,
+       1329, 1396,
+       1330, 1397,
+       1333, 1400,
+       1339, 1405,
+       1340, 990,
+       1347, 1410,
+       1358, 1418,
+       1359, 1419,
+       1367, 1423,
+       1369, 1424,
+       1371, 1425,
+       1383, 1433,
+       1390, 1439,
+       1391, 1440,
+       1394, 1443,
+       1398, 1446,
+       1406, 1450,
+       1421, 1455,
+       1441, 1465,
+       1453, 1469,
+       1456, 1473,
+       1457, 1474,
+       1459, 1475,
+       1472, 1479,
+       1480, 1486
 };
-static int parser_goto_row86[] = {
+static int parser_goto_row88[] = {
        1,
        -1, 11
 };
-static int parser_goto_row87[] = {
+static int parser_goto_row89[] = {
        9,
        -1, 12,
-       16, 92,
-       23, 92,
-       85, 92,
-       89, 92,
-       98, 92,
-       100, 92,
-       225, 92,
-       232, 92
+       16, 93,
+       23, 93,
+       86, 93,
+       90, 93,
+       99, 93,
+       101, 93,
+       227, 93,
+       234, 93
 };
-static int parser_goto_row88[] = {
+static int parser_goto_row90[] = {
        1,
        -1, 13
 };
-static int parser_goto_row89[] = {
+static int parser_goto_row91[] = {
        4,
-       -1, 486,
-       416, 531,
-       1013, 1133,
-       1118, 1221
+       -1, 491,
+       421, 536,
+       1022, 1146,
+       1131, 1237
 };
-static int parser_goto_row90[] = {
+static int parser_goto_row92[] = {
        3,
-       -1, 1066,
-       1068, 1181,
-       1081, 1189
+       -1, 1074,
+       1076, 1194,
+       1089, 1202
 };
-static int parser_goto_row91[] = {
+static int parser_goto_row93[] = {
        1,
        -1, -1
 };
-static int parser_goto_row92[] = {
+static int parser_goto_row94[] = {
        2,
        -1, 825,
-       1456, 1462
+       1479, 1485
 };
-static int parser_goto_row93[] = {
+static int parser_goto_row95[] = {
        1,
        -1, 826
 };
-static int parser_goto_row94[] = {
+static int parser_goto_row96[] = {
        5,
        -1, 827,
-       944, 1063,
-       1075, 1183,
-       1077, 1185,
-       1184, 1283
+       948, 1071,
+       1083, 1196,
+       1085, 1198,
+       1197, 1298
 };
-static int parser_goto_row95[] = {
+static int parser_goto_row97[] = {
        1,
        -1, 828
 };
-static int parser_goto_row96[] = {
+static int parser_goto_row98[] = {
        11,
        -1, 829,
-       1078, 1186,
-       1079, 1187,
-       1080, 1188,
-       1084, 1192,
-       1085, 1193,
-       1086, 1194,
-       1087, 1195,
-       1088, 1196,
-       1089, 1197,
-       1090, 1198
+       1086, 1199,
+       1087, 1200,
+       1088, 1201,
+       1092, 1205,
+       1093, 1206,
+       1094, 1207,
+       1095, 1208,
+       1096, 1209,
+       1097, 1210,
+       1098, 1211
 };
-static int parser_goto_row97[] = {
+static int parser_goto_row99[] = {
        3,
        -1, 830,
-       1082, 1190,
-       1083, 1191
+       1090, 1203,
+       1091, 1204
 };
-static int parser_goto_row98[] = {
+static int parser_goto_row100[] = {
        6,
        -1, 831,
-       946, 1067,
-       952, 1071,
-       1091, 1199,
-       1092, 1200,
-       1093, 1201
+       950, 1075,
+       956, 1079,
+       1099, 1212,
+       1100, 1213,
+       1101, 1214
 };
-static int parser_goto_row99[] = {
+static int parser_goto_row101[] = {
        1,
        -1, 832
 };
-static int parser_goto_row100[] = {
+static int parser_goto_row102[] = {
        2,
        -1, 833,
-       814, 950
-};
-static int parser_goto_row101[] = {
-       11,
-       -1, 755,
-       645, 762,
-       678, 790,
-       794, 934,
-       913, 1044,
-       1041, 1161,
-       1055, 1174,
-       1158, 1264,
-       1338, 1397,
-       1432, 1447,
-       1454, 1460
-};
-static int parser_goto_row102[] = {
-       3,
-       -1, 756,
-       536, 660,
-       1157, 1263
+       814, 954
 };
 static int parser_goto_row103[] = {
-       6,
-       -1, 457,
-       326, 461,
-       456, 568,
-       682, 796,
-       774, 916,
-       1166, 1271
+       11,
+       -1, 753,
+       647, 760,
+       681, 790,
+       794, 938,
+       916, 1052,
+       1049, 1173,
+       1064, 1187,
+       1170, 1281,
+       1356, 1417,
+       1454, 1470,
+       1477, 1483
 };
 static int parser_goto_row104[] = {
-       1,
-       -1, 458
+       3,
+       -1, 754,
+       543, 663,
+       1169, 1280
 };
 static int parser_goto_row105[] = {
-       3,
-       -1, 931,
-       936, 1059,
-       1176, 1279
+       6,
+       -1, 462,
+       328, 466,
+       461, 575,
+       685, 796,
+       773, 920,
+       1179, 1287
 };
 static int parser_goto_row106[] = {
        1,
-       -1, 661
+       -1, 463
 };
 static int parser_goto_row107[] = {
-       1,
-       -1, 662
+       3,
+       -1, 935,
+       940, 1067,
+       1189, 1294
 };
 static int parser_goto_row108[] = {
        1,
-       -1, 663
+       -1, 664
 };
 static int parser_goto_row109[] = {
        1,
-       -1, 664
+       -1, 665
 };
 static int parser_goto_row110[] = {
        1,
-       -1, 665
+       -1, 666
 };
 static int parser_goto_row111[] = {
        1,
-       -1, 666
+       -1, 667
 };
 static int parser_goto_row112[] = {
        1,
-       -1, 667
+       -1, 668
 };
 static int parser_goto_row113[] = {
        1,
-       -1, 668
+       -1, 669
 };
 static int parser_goto_row114[] = {
-       22,
-       -1, 932,
-       40, 182,
-       178, 324,
-       647, 765,
-       648, 767,
-       649, 769,
-       651, 771,
-       766, 910,
-       768, 911,
-       770, 912,
-       775, 917,
-       776, 918,
-       914, 1045,
-       915, 1046,
-       920, 1050,
-       921, 1051,
-       1035, 1155,
-       1156, 1262,
-       1167, 1272,
-       1168, 1273,
-       1269, 1342,
-       1270, 1343
+       1,
+       -1, 670
 };
 static int parser_goto_row115[] = {
        1,
-       -1, -1
+       -1, 671
 };
 static int parser_goto_row116[] = {
-       16,
-       -1, 141,
-       34, 149,
-       537, 670,
-       582, 695,
-       640, 757,
-       645, 763,
-       678, 791,
-       698, 841,
-       794, 935,
-       975, 1097,
-       1053, 1171,
-       1055, 1175,
-       1158, 1265,
-       1274, 1345,
-       1432, 1448,
-       1454, 1461
+       23,
+       -1, 936,
+       40, 183,
+       179, 326,
+       649, 763,
+       650, 765,
+       651, 767,
+       653, 769,
+       764, 913,
+       766, 914,
+       768, 915,
+       774, 921,
+       775, 922,
+       918, 1054,
+       919, 1055,
+       924, 1059,
+       925, 1060,
+       1043, 1167,
+       1053, 1176,
+       1168, 1279,
+       1180, 1288,
+       1181, 1289,
+       1285, 1360,
+       1286, 1361
 };
 static int parser_goto_row117[] = {
        1,
        -1, -1
 };
 static int parser_goto_row118[] = {
-       1,
-       -1, -1
+       16,
+       -1, 142,
+       34, 150,
+       544, 673,
+       589, 696,
+       642, 755,
+       647, 761,
+       681, 791,
+       699, 842,
+       794, 939,
+       981, 1106,
+       1062, 1184,
+       1064, 1188,
+       1170, 1282,
+       1290, 1363,
+       1454, 1471,
+       1477, 1484
 };
 static int parser_goto_row119[] = {
-       2,
-       -1, 127,
-       1259, 1336
+       1,
+       -1, -1
 };
 static int parser_goto_row120[] = {
        1,
-       -1, 128
+       -1, -1
 };
 static int parser_goto_row121[] = {
-       5,
-       -1, 129,
-       242, 387,
-       396, 507,
-       398, 509,
-       508, 626
+       2,
+       -1, 128,
+       1276, 1354
 };
 static int parser_goto_row122[] = {
        1,
-       -1, 130
+       -1, 129
 };
 static int parser_goto_row123[] = {
-       11,
-       -1, 131,
-       399, 510,
-       400, 511,
+       5,
+       -1, 130,
+       244, 391,
        401, 512,
-       405, 516,
-       406, 517,
-       407, 518,
-       408, 519,
-       409, 520,
-       410, 521,
-       411, 522
+       403, 514,
+       513, 627
 };
 static int parser_goto_row124[] = {
-       3,
-       -1, 132,
-       403, 514,
-       404, 515
+       1,
+       -1, 131
 };
 static int parser_goto_row125[] = {
-       6,
-       -1, 133,
-       244, 389,
-       250, 394,
+       11,
+       -1, 132,
+       404, 515,
+       405, 516,
+       406, 517,
+       410, 521,
+       411, 522,
        412, 523,
        413, 524,
-       414, 525
+       414, 525,
+       415, 526,
+       416, 527
 };
 static int parser_goto_row126[] = {
-       1,
-       -1, 134
+       3,
+       -1, 133,
+       408, 519,
+       409, 520
 };
 static int parser_goto_row127[] = {
-       2,
-       -1, 135,
-       114, 248
+       6,
+       -1, 134,
+       246, 393,
+       252, 399,
+       417, 528,
+       418, 529,
+       419, 530
 };
 static int parser_goto_row128[] = {
        1,
-       -1, -1
+       -1, 135
 };
 static int parser_goto_row129[] = {
-       1,
-       -1, -1
+       2,
+       -1, 136,
+       115, 250
 };
 static int parser_goto_row130[] = {
        1,
@@ -17975,98 +18409,106 @@ static int parser_goto_row140[] = {
        -1, -1
 };
 static int parser_goto_row141[] = {
+       1,
+       -1, -1
+};
+static int parser_goto_row142[] = {
+       1,
+       -1, -1
+};
+static int parser_goto_row143[] = {
        2,
        -1, 14,
        4, 21
 };
-static int parser_goto_row142[] = {
+static int parser_goto_row144[] = {
        4,
        -1, 15,
        4, 22,
-       14, 84,
-       21, 97
-};
-static int parser_goto_row143[] = {
-       8,
-       -1, 16,
-       4, 23,
        14, 85,
-       15, 89,
-       21, 98,
-       22, 100,
-       84, 225,
-       97, 232
-};
-static int parser_goto_row144[] = {
-       4,
-       -1, 608,
-       532, 635,
-       603, 713,
-       633, 746
+       21, 98
 };
 static int parser_goto_row145[] = {
        8,
-       -1, 609,
-       532, 636,
-       603, 714,
-       608, 727,
-       633, 747,
-       635, 750,
-       713, 862,
-       746, 895
+       -1, 16,
+       4, 23,
+       14, 86,
+       15, 90,
+       21, 99,
+       22, 101,
+       85, 227,
+       98, 234
 };
 static int parser_goto_row146[] = {
-       1,
-       -1, 996
+       4,
+       -1, 612,
+       537, 636,
+       607, 714,
+       634, 744
 };
 static int parser_goto_row147[] = {
-       1,
-       -1, 847
+       8,
+       -1, 613,
+       537, 637,
+       607, 715,
+       612, 728,
+       634, 745,
+       636, 748,
+       714, 866,
+       744, 898
 };
 static int parser_goto_row148[] = {
        1,
-       -1, 600
+       -1, 1005
 };
 static int parser_goto_row149[] = {
        1,
-       -1, 1212
+       -1, 851
 };
 static int parser_goto_row150[] = {
        1,
-       -1, 800
+       -1, 604
 };
 static int parser_goto_row151[] = {
-       2,
-       -1, 208,
-       277, 419
+       1,
+       -1, 1226
 };
 static int parser_goto_row152[] = {
        1,
-       -1, 217
+       -1, 800
 };
 static int parser_goto_row153[] = {
-       3,
-       -1, 581,
-       506, 625,
-       620, 737
+       4,
+       -1, 210,
+       279, 424,
+       780, 928,
+       835, 980
 };
 static int parser_goto_row154[] = {
-       4,
-       -1, 77,
-       103, 238,
-       346, 238,
-       382, 498
+       1,
+       -1, 219
 };
 static int parser_goto_row155[] = {
+       1,
+       -1, 588
+};
+static int parser_goto_row156[] = {
+       4,
+       -1, 78,
+       104, 240,
+       350, 240,
+       386, 502
+};
+static int parser_goto_row157[] = {
        2,
        -1, 17,
-       11, 78
+       11, 79
 };
-static int parser_goto_row156[] = {
+static int parser_goto_row158[] = {
        3,
        -1, 18,
-       17, 94,
-       78, 223
+       17, 95,
+       79, 225
 };
 
 const int* const parser_goto_table[] = {
@@ -18225,5 +18667,7 @@ const int* const parser_goto_table[] = {
        parser_goto_row153,
        parser_goto_row154,
        parser_goto_row155,
-       parser_goto_row156
+       parser_goto_row156,
+       parser_goto_row157,
+       parser_goto_row158
 };
diff --git a/c_src/toolcontext._sep.c b/c_src/toolcontext._sep.c
new file mode 100644 (file)
index 0000000..aa63338
--- /dev/null
@@ -0,0 +1,1447 @@
+/* This C file is generated by NIT to compile module toolcontext. */
+#include "toolcontext._sep.h"
+val_t toolcontext___Message___location(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 29;
+  fra.me.meth = LOCATE_toolcontext___Message___location;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:29 */
+  fra.me.REG[0] = ATTR_toolcontext___Message____location(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t toolcontext___Message___text(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 30;
+  fra.me.meth = LOCATE_toolcontext___Message___text;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:30 */
+  REGB0 = TAG_Bool(ATTR_toolcontext___Message____text(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_text", LOCATE_toolcontext, 30);
+  }
+  fra.me.REG[0] = ATTR_toolcontext___Message____text(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t toolcontext___Message_____l(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t REGB2;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 32;
+  fra.me.meth = LOCATE_toolcontext___Message_____l;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], VTCOLOR_standard___kernel___Comparable___OTHER(fra.me.REG[0]), VTID_standard___kernel___Comparable___OTHER(fra.me.REG[0]))) /*cast OTHER*/;
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_toolcontext, 0);
+  }
+  /* toolcontext.nit:32 */
+  fra.me.REG[2] = fra.me.REG[0];
+  /* toolcontext.nit:33 */
+  fra.me.REG[3] = CALL_toolcontext___Message___location(fra.me.REG[2])(fra.me.REG[2]);
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  if (UNTAG_Bool(REGB0)) {
+    REGB0 = TAG_Bool(true);
+    goto label1;
+  }
+  /* toolcontext.nit:34 */
+  fra.me.REG[3] = CALL_toolcontext___Message___location(fra.me.REG[1])(fra.me.REG[1]);
+  REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB1)) {
+  } else {
+    REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB2)) {
+      REGB2 = TAG_Bool(false);
+      REGB1 = REGB2;
+    } else {
+      REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+      REGB1 = REGB2;
+    }
+  }
+  if (UNTAG_Bool(REGB1)) {
+    REGB1 = TAG_Bool(false);
+    REGB0 = REGB1;
+    goto label1;
+  }
+  /* toolcontext.nit:36 */
+  fra.me.REG[2] = CALL_toolcontext___Message___location(fra.me.REG[2])(fra.me.REG[2]);
+  REGB1 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
+  if (UNTAG_Bool(REGB1)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_toolcontext, 36);
+  }
+  fra.me.REG[1] = CALL_toolcontext___Message___location(fra.me.REG[1])(fra.me.REG[1]);
+  REGB1 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
+  if (UNTAG_Bool(REGB1)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_toolcontext, 36);
+  }
+  REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+  if (UNTAG_Bool(REGB1)) {
+    nit_abort("Reciever is null", NULL, LOCATE_toolcontext, 36);
+  }
+  REGB1 = CALL_standard___kernel___Comparable_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+  REGB0 = REGB1;
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return REGB0;
+}
+val_t toolcontext___Message___to_s(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t tmp;
+    static val_t once_value_2; /* Once value */
+    static val_t once_value_3; /* Once value */
+    static val_t once_value_4; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 39;
+  fra.me.meth = LOCATE_toolcontext___Message___to_s;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 5;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:41 */
+  fra.me.REG[1] = CALL_toolcontext___Message___location(fra.me.REG[0])(fra.me.REG[0]);
+  /* toolcontext.nit:42 */
+  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* toolcontext.nit:43 */
+    fra.me.REG[2] = CALL_toolcontext___Message___text(fra.me.REG[0])(fra.me.REG[0]);
+    goto label1;
+  } else {
+    /* toolcontext.nit:45 */
+    REGB0 = TAG_Int(5);
+    fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+    if (!once_value_2) {
+      fra.me.REG[4] = BOX_NativeString("");
+      REGB0 = TAG_Int(0);
+      fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+      once_value_2 = fra.me.REG[4];
+      register_static_object(&once_value_2);
+    } else fra.me.REG[4] = once_value_2;
+    fra.me.REG[4] = fra.me.REG[4];
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
+    fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    if (!once_value_3) {
+      fra.me.REG[1] = BOX_NativeString(": ");
+      REGB0 = TAG_Int(2);
+      fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+      once_value_3 = fra.me.REG[1];
+      register_static_object(&once_value_3);
+    } else fra.me.REG[1] = once_value_3;
+    fra.me.REG[1] = fra.me.REG[1];
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+    fra.me.REG[0] = CALL_toolcontext___Message___text(fra.me.REG[0])(fra.me.REG[0]);
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
+    if (!once_value_4) {
+      fra.me.REG[0] = BOX_NativeString("");
+      REGB0 = TAG_Int(0);
+      fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+      once_value_4 = fra.me.REG[0];
+      register_static_object(&once_value_4);
+    } else fra.me.REG[0] = once_value_4;
+    fra.me.REG[0] = fra.me.REG[0];
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
+    fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
+    fra.me.REG[2] = fra.me.REG[3];
+    goto label1;
+  }
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
+}
+val_t toolcontext___Message___to_color_string(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t tmp;
+  static val_t once_value_1; /* Once value */
+  static val_t once_value_2; /* Once value */
+  static val_t once_value_3; /* Once value */
+  static val_t once_value_4; /* Once value */
+  static val_t once_value_5; /* Once value */
+  static val_t once_value_6; /* Once value */
+  static val_t once_value_7; /* Once value */
+  static val_t once_value_8; /* Once value */
+  static val_t once_value_9; /* Once value */
+  static val_t once_value_10; /* Once value */
+      static val_t once_value_12; /* Once value */
+      static val_t once_value_13; /* Once value */
+      static val_t once_value_14; /* Once value */
+      static val_t once_value_15; /* Once value */
+      static val_t once_value_16; /* Once value */
+      static val_t once_value_17; /* Once value */
+      static val_t once_value_18; /* Once value */
+      static val_t once_value_19; /* Once value */
+      static val_t once_value_20; /* Once value */
+      static val_t once_value_21; /* Once value */
+      static val_t once_value_22; /* Once value */
+      static val_t once_value_23; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 49;
+  fra.me.meth = LOCATE_toolcontext___Message___to_color_string;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 7;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:51 */
+  REGB0 = TAG_Int(27);
+  /* ../lib/standard/kernel.nit:297 */
+  REGB0 = TAG_Char(UNTAG_Int(REGB0));
+  /* toolcontext.nit:52 */
+  REGB1 = TAG_Int(3);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
+  if (!once_value_1) {
+    fra.me.REG[2] = BOX_NativeString("");
+    REGB1 = TAG_Int(0);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
+    once_value_1 = fra.me.REG[2];
+    register_static_object(&once_value_1);
+  } else fra.me.REG[2] = once_value_1;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  fra.me.REG[2] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  if (!once_value_2) {
+    fra.me.REG[2] = BOX_NativeString("[0;31m");
+    REGB1 = TAG_Int(6);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
+    once_value_2 = fra.me.REG[2];
+    register_static_object(&once_value_2);
+  } else fra.me.REG[2] = once_value_2;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+  /* toolcontext.nit:53 */
+  REGB1 = TAG_Int(3);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
+  if (!once_value_3) {
+    fra.me.REG[2] = BOX_NativeString("");
+    REGB1 = TAG_Int(0);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
+    once_value_3 = fra.me.REG[2];
+    register_static_object(&once_value_3);
+  } else fra.me.REG[2] = once_value_3;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  fra.me.REG[2] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  if (!once_value_4) {
+    fra.me.REG[2] = BOX_NativeString("[1;31m");
+    REGB1 = TAG_Int(6);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
+    once_value_4 = fra.me.REG[2];
+    register_static_object(&once_value_4);
+  } else fra.me.REG[2] = once_value_4;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+  /* toolcontext.nit:54 */
+  REGB1 = TAG_Int(3);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
+  if (!once_value_5) {
+    fra.me.REG[2] = BOX_NativeString("");
+    REGB1 = TAG_Int(0);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
+    once_value_5 = fra.me.REG[2];
+    register_static_object(&once_value_5);
+  } else fra.me.REG[2] = once_value_5;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  fra.me.REG[2] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  if (!once_value_6) {
+    fra.me.REG[2] = BOX_NativeString("[0;32m");
+    REGB1 = TAG_Int(6);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
+    once_value_6 = fra.me.REG[2];
+    register_static_object(&once_value_6);
+  } else fra.me.REG[2] = once_value_6;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+  /* toolcontext.nit:55 */
+  REGB1 = TAG_Int(3);
+  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
+  if (!once_value_7) {
+    fra.me.REG[2] = BOX_NativeString("");
+    REGB1 = TAG_Int(0);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
+    once_value_7 = fra.me.REG[2];
+    register_static_object(&once_value_7);
+  } else fra.me.REG[2] = once_value_7;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  fra.me.REG[2] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  if (!once_value_8) {
+    fra.me.REG[2] = BOX_NativeString("[0;33m");
+    REGB1 = TAG_Int(6);
+    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
+    once_value_8 = fra.me.REG[2];
+    register_static_object(&once_value_8);
+  } else fra.me.REG[2] = once_value_8;
+  fra.me.REG[2] = fra.me.REG[2];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+  /* toolcontext.nit:56 */
+  REGB1 = TAG_Int(3);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
+  if (!once_value_9) {
+    fra.me.REG[3] = BOX_NativeString("");
+    REGB1 = TAG_Int(0);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
+    once_value_9 = fra.me.REG[3];
+    register_static_object(&once_value_9);
+  } else fra.me.REG[3] = once_value_9;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[3] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  if (!once_value_10) {
+    fra.me.REG[3] = BOX_NativeString("[0m");
+    REGB0 = TAG_Int(3);
+    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    once_value_10 = fra.me.REG[3];
+    register_static_object(&once_value_10);
+  } else fra.me.REG[3] = once_value_10;
+  fra.me.REG[3] = fra.me.REG[3];
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
+  /* toolcontext.nit:58 */
+  fra.me.REG[3] = CALL_toolcontext___Message___location(fra.me.REG[0])(fra.me.REG[0]);
+  /* toolcontext.nit:59 */
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  if (UNTAG_Bool(REGB0)) {
+    /* toolcontext.nit:60 */
+    fra.me.REG[4] = CALL_toolcontext___Message___text(fra.me.REG[0])(fra.me.REG[0]);
+    goto label11;
+  } else {
+    /* toolcontext.nit:61 */
+    REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+      nit_abort("Reciever is null", NULL, LOCATE_toolcontext, 61);
+    }
+    fra.me.REG[5] = CALL_location___Location___file(fra.me.REG[3])(fra.me.REG[3]);
+    REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        REGB1 = TAG_Bool(false);
+        REGB0 = REGB1;
+      } else {
+        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
+        REGB0 = REGB1;
+      }
+    }
+    if (UNTAG_Bool(REGB0)) {
+      /* toolcontext.nit:62 */
+      REGB0 = TAG_Int(9);
+      fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+      if (!once_value_12) {
+        fra.me.REG[6] = BOX_NativeString("");
+        REGB0 = TAG_Int(0);
+        fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
+        once_value_12 = fra.me.REG[6];
+        register_static_object(&once_value_12);
+      } else fra.me.REG[6] = once_value_12;
+      fra.me.REG[6] = fra.me.REG[6];
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
+      if (!once_value_13) {
+        fra.me.REG[6] = BOX_NativeString("");
+        REGB0 = TAG_Int(0);
+        fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
+        once_value_13 = fra.me.REG[6];
+        register_static_object(&once_value_13);
+      } else fra.me.REG[6] = once_value_13;
+      fra.me.REG[6] = fra.me.REG[6];
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
+      fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
+      if (!once_value_14) {
+        fra.me.REG[6] = BOX_NativeString("");
+        REGB0 = TAG_Int(0);
+        fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
+        once_value_14 = fra.me.REG[6];
+        register_static_object(&once_value_14);
+      } else fra.me.REG[6] = once_value_14;
+      fra.me.REG[6] = fra.me.REG[6];
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
+      if (!once_value_15) {
+        fra.me.REG[6] = BOX_NativeString(": ");
+        REGB0 = TAG_Int(2);
+        fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
+        once_value_15 = fra.me.REG[6];
+        register_static_object(&once_value_15);
+      } else fra.me.REG[6] = once_value_15;
+      fra.me.REG[6] = fra.me.REG[6];
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
+      fra.me.REG[6] = CALL_toolcontext___Message___text(fra.me.REG[0])(fra.me.REG[0]);
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
+      if (!once_value_16) {
+        fra.me.REG[6] = BOX_NativeString("");
+        REGB0 = TAG_Int(0);
+        fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
+        once_value_16 = fra.me.REG[6];
+        register_static_object(&once_value_16);
+      } else fra.me.REG[6] = once_value_16;
+      fra.me.REG[6] = fra.me.REG[6];
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
+      fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
+      fra.me.REG[4] = fra.me.REG[5];
+      goto label11;
+    } else {
+      /* toolcontext.nit:64 */
+      REGB0 = TAG_Int(11);
+      fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+      if (!once_value_17) {
+        fra.me.REG[6] = BOX_NativeString("");
+        REGB0 = TAG_Int(0);
+        fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
+        once_value_17 = fra.me.REG[6];
+        register_static_object(&once_value_17);
+      } else fra.me.REG[6] = once_value_17;
+      fra.me.REG[6] = fra.me.REG[6];
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
+      if (!once_value_18) {
+        fra.me.REG[1] = BOX_NativeString("");
+        REGB0 = TAG_Int(0);
+        fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+        once_value_18 = fra.me.REG[1];
+        register_static_object(&once_value_18);
+      } else fra.me.REG[1] = once_value_18;
+      fra.me.REG[1] = fra.me.REG[1];
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
+      fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
+      if (!once_value_19) {
+        fra.me.REG[1] = BOX_NativeString("");
+        REGB0 = TAG_Int(0);
+        fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+        once_value_19 = fra.me.REG[1];
+        register_static_object(&once_value_19);
+      } else fra.me.REG[1] = once_value_19;
+      fra.me.REG[1] = fra.me.REG[1];
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
+      if (!once_value_20) {
+        fra.me.REG[2] = BOX_NativeString(": ");
+        REGB0 = TAG_Int(2);
+        fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+        once_value_20 = fra.me.REG[2];
+        register_static_object(&once_value_20);
+      } else fra.me.REG[2] = once_value_20;
+      fra.me.REG[2] = fra.me.REG[2];
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
+      fra.me.REG[0] = CALL_toolcontext___Message___text(fra.me.REG[0])(fra.me.REG[0]);
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
+      if (!once_value_21) {
+        fra.me.REG[0] = BOX_NativeString("\n");
+        REGB0 = TAG_Int(1);
+        fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+        once_value_21 = fra.me.REG[0];
+        register_static_object(&once_value_21);
+      } else fra.me.REG[0] = once_value_21;
+      fra.me.REG[0] = fra.me.REG[0];
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
+      if (!once_value_22) {
+        fra.me.REG[0] = BOX_NativeString("1;31");
+        REGB0 = TAG_Int(4);
+        fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+        once_value_22 = fra.me.REG[0];
+        register_static_object(&once_value_22);
+      } else fra.me.REG[0] = once_value_22;
+      fra.me.REG[0] = fra.me.REG[0];
+      REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+        nit_abort("Reciever is null", NULL, LOCATE_toolcontext, 64);
+      }
+      fra.me.REG[0] = CALL_location___Location___colored_line(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
+      if (!once_value_23) {
+        fra.me.REG[0] = BOX_NativeString("");
+        REGB0 = TAG_Int(0);
+        fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+        once_value_23 = fra.me.REG[0];
+        register_static_object(&once_value_23);
+      } else fra.me.REG[0] = once_value_23;
+      fra.me.REG[0] = fra.me.REG[0];
+      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
+      fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
+      fra.me.REG[4] = fra.me.REG[5];
+      goto label11;
+    }
+  }
+  label11: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[4];
+}
+void toolcontext___Message___init(val_t p0, val_t p1, val_t p2, int* init_table){
+  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_toolcontext___Message].i;
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  if (init_table[itpos0]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_toolcontext___Message___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  ATTR_toolcontext___Message____location(fra.me.REG[0]) = fra.me.REG[1];
+  ATTR_toolcontext___Message____text(fra.me.REG[0]) = fra.me.REG[2];
+  stack_frame_head = fra.me.prev;
+  init_table[itpos0] = 1;
+  return;
+}
+val_t toolcontext___ToolContext___error_count(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 71;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___error_count;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:71 */
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_error_count", LOCATE_toolcontext, 71);
+  }
+  REGB0 = ATTR_toolcontext___ToolContext____error_count(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return REGB0;
+}
+val_t toolcontext___ToolContext___warning_count(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 74;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___warning_count;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:74 */
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____warning_count(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_warning_count", LOCATE_toolcontext, 74);
+  }
+  REGB0 = ATTR_toolcontext___ToolContext____warning_count(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return REGB0;
+}
+val_t toolcontext___ToolContext___log_directory(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 77;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___log_directory;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:77 */
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____log_directory(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_log_directory", LOCATE_toolcontext, 77);
+  }
+  fra.me.REG[0] = ATTR_toolcontext___ToolContext____log_directory(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+void toolcontext___ToolContext___check_errors(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t REGB2;
+  val_t tmp;
+          static val_t once_value_1; /* Once value */
+          static val_t once_value_2; /* Once value */
+          static val_t once_value_3; /* Once value */
+          static val_t once_value_4; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 84;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___check_errors;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 7;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[4] = NIT_NULL;
+  fra.me.REG[5] = NIT_NULL;
+  fra.me.REG[6] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:86 */
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_messages", LOCATE_toolcontext, 86);
+  }
+  fra.me.REG[1] = ATTR_toolcontext___ToolContext____messages(fra.me.REG[0]);
+  /* ../lib/standard/collection/array.nit:24 */
+  REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
+  }
+  REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
+  /* toolcontext.nit:86 */
+  REGB1 = TAG_Int(0);
+  REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
+  if (UNTAG_Bool(REGB2)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+  }
+  /* ../lib/standard/kernel.nit:234 */
+  REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
+  /* toolcontext.nit:86 */
+  if (UNTAG_Bool(REGB1)) {
+    /* toolcontext.nit:87 */
+    REGB1 = TAG_Bool(ATTR_toolcontext___ToolContext____message_sorter(fra.me.REG[0])!=NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+    } else {
+      nit_abort("Uninitialized attribute %s", "_message_sorter", LOCATE_toolcontext, 87);
+    }
+    fra.me.REG[1] = ATTR_toolcontext___ToolContext____message_sorter(fra.me.REG[0]);
+    REGB1 = TAG_Bool(ATTR_toolcontext___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+    } else {
+      nit_abort("Uninitialized attribute %s", "_messages", LOCATE_toolcontext, 87);
+    }
+    fra.me.REG[2] = ATTR_toolcontext___ToolContext____messages(fra.me.REG[0]);
+    CALL_standard___collection___sorter___AbstractSorter___sort(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+    /* toolcontext.nit:89 */
+    REGB1 = TAG_Bool(ATTR_toolcontext___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+    } else {
+      nit_abort("Uninitialized attribute %s", "_messages", LOCATE_toolcontext, 89);
+    }
+    fra.me.REG[2] = ATTR_toolcontext___ToolContext____messages(fra.me.REG[0]);
+    /* ../lib/standard/collection/array.nit:269 */
+    REGB1 = TAG_Int(0);
+    /* ../lib/standard/collection/array.nit:270 */
+    REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
+    }
+    REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
+    /* ../lib/standard/collection/array.nit:271 */
+    fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
+    /* ../lib/standard/collection/array.nit:272 */
+    while(1) {
+      /* ../lib/standard/collection/array.nit:24 */
+      REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
+      }
+      REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
+      REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
+      if (UNTAG_Bool(REGB2)) {
+      } else {
+        nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+      }
+      /* ../lib/standard/kernel.nit:232 */
+      REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
+      /* ../lib/standard/collection/array.nit:272 */
+      if (UNTAG_Bool(REGB0)) {
+        /* ../lib/standard/collection/array.nit:273 */
+        REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+        if (UNTAG_Bool(REGB0)) {
+          nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
+        }
+        /* ../lib/standard/collection/array.nit:718 */
+        fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB1)];
+        /* toolcontext.nit:90 */
+        fra.me.REG[4] = CALL_toolcontext___ToolContext___opt_no_color(fra.me.REG[0])(fra.me.REG[0]);
+        fra.me.REG[4] = CALL_opts___Option___value(fra.me.REG[4])(fra.me.REG[4]);
+        if (UNTAG_Bool(fra.me.REG[4])) {
+          /* toolcontext.nit:91 */
+          fra.me.REG[4] = CALL_standard___file___Object___stderr(fra.me.REG[0])(fra.me.REG[0]);
+          REGB0 = TAG_Int(3);
+          fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+          if (!once_value_1) {
+            fra.me.REG[6] = BOX_NativeString("");
+            REGB0 = TAG_Int(0);
+            fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
+            once_value_1 = fra.me.REG[6];
+            register_static_object(&once_value_1);
+          } else fra.me.REG[6] = once_value_1;
+          fra.me.REG[6] = fra.me.REG[6];
+          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
+          fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
+          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
+          if (!once_value_2) {
+            fra.me.REG[6] = BOX_NativeString("\n");
+            REGB0 = TAG_Int(1);
+            fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
+            once_value_2 = fra.me.REG[6];
+            register_static_object(&once_value_2);
+          } else fra.me.REG[6] = once_value_2;
+          fra.me.REG[6] = fra.me.REG[6];
+          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
+          fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
+          CALL_standard___stream___OStream___write(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
+        } else {
+          /* toolcontext.nit:93 */
+          fra.me.REG[5] = CALL_standard___file___Object___stderr(fra.me.REG[0])(fra.me.REG[0]);
+          REGB0 = TAG_Int(3);
+          fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+          if (!once_value_3) {
+            fra.me.REG[6] = BOX_NativeString("");
+            REGB0 = TAG_Int(0);
+            fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
+            once_value_3 = fra.me.REG[6];
+            register_static_object(&once_value_3);
+          } else fra.me.REG[6] = once_value_3;
+          fra.me.REG[6] = fra.me.REG[6];
+          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
+          fra.me.REG[3] = CALL_toolcontext___Message___to_color_string(fra.me.REG[3])(fra.me.REG[3]);
+          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
+          if (!once_value_4) {
+            fra.me.REG[3] = BOX_NativeString("\n");
+            REGB0 = TAG_Int(1);
+            fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+            once_value_4 = fra.me.REG[3];
+            register_static_object(&once_value_4);
+          } else fra.me.REG[3] = once_value_4;
+          fra.me.REG[3] = fra.me.REG[3];
+          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
+          fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
+          CALL_standard___stream___OStream___write(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
+        }
+        /* ../lib/standard/collection/array.nit:274 */
+        REGB0 = TAG_Int(1);
+        /* ../lib/standard/kernel.nit:235 */
+        REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
+        /* ../lib/standard/collection/array.nit:274 */
+        REGB1 = REGB0;
+      } else {
+        /* ../lib/standard/collection/array.nit:272 */
+        goto label5;
+      }
+    }
+    label5: while(0);
+    /* toolcontext.nit:97 */
+    REGB1 = TAG_Bool(ATTR_toolcontext___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+    } else {
+      nit_abort("Uninitialized attribute %s", "_messages", LOCATE_toolcontext, 97);
+    }
+    fra.me.REG[1] = ATTR_toolcontext___ToolContext____messages(fra.me.REG[0]);
+    CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[1])(fra.me.REG[1]);
+  }
+  /* toolcontext.nit:100 */
+  REGB1 = CALL_toolcontext___ToolContext___error_count(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = TAG_Int(0);
+  REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
+  if (UNTAG_Bool(REGB2)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+  }
+  /* ../lib/standard/kernel.nit:234 */
+  REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
+  /* toolcontext.nit:100 */
+  if (UNTAG_Bool(REGB0)) {
+    REGB0 = TAG_Int(1);
+    CALL_standard___kernel___Object___exit(fra.me.REG[0])(fra.me.REG[0], REGB0);
+  }
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void toolcontext___ToolContext___error(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 103;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___error;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  /* toolcontext.nit:106 */
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_messages", LOCATE_toolcontext, 106);
+  }
+  fra.me.REG[3] = ATTR_toolcontext___ToolContext____messages(fra.me.REG[0]);
+  fra.me.REG[2] = NEW_Message_toolcontext___Message___init(fra.me.REG[1], fra.me.REG[2]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
+  /* toolcontext.nit:107 */
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_error_count", LOCATE_toolcontext, 107);
+  }
+  REGB0 = ATTR_toolcontext___ToolContext____error_count(fra.me.REG[0]);
+  REGB1 = TAG_Int(1);
+  /* ../lib/standard/kernel.nit:235 */
+  REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
+  /* toolcontext.nit:107 */
+  ATTR_toolcontext___ToolContext____error_count(fra.me.REG[0]) = REGB1;
+  /* toolcontext.nit:108 */
+  fra.me.REG[2] = CALL_toolcontext___ToolContext___opt_stop_on_first_error(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
+  if (UNTAG_Bool(fra.me.REG[2])) {
+    CALL_toolcontext___ToolContext___check_errors(fra.me.REG[0])(fra.me.REG[0]);
+  }
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void toolcontext___ToolContext___fatal_error(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 111;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___fatal_error;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  /* toolcontext.nit:114 */
+  CALL_toolcontext___ToolContext___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
+  /* toolcontext.nit:115 */
+  CALL_toolcontext___ToolContext___check_errors(fra.me.REG[0])(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void toolcontext___ToolContext___warning(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t REGB2;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 118;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___warning;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  fra.me.REG[2] = p2;
+  /* toolcontext.nit:121 */
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_warn", LOCATE_toolcontext, 121);
+  }
+  fra.me.REG[3] = ATTR_toolcontext___ToolContext____opt_warn(fra.me.REG[0]);
+  fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]);
+  REGB0 = TAG_Int(0);
+  REGB1 = TAG_Bool(IS_EQUAL_ON(REGB0,fra.me.REG[3]));
+  if (UNTAG_Bool(REGB1)) {
+  } else {
+    REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB2)) {
+      REGB2 = TAG_Bool(false);
+      REGB1 = REGB2;
+    } else {
+      /* ../lib/standard/kernel.nit:227 */
+      REGB0 = TAG_Bool((fra.me.REG[3])==(REGB0));
+      /* toolcontext.nit:121 */
+      REGB1 = REGB0;
+    }
+  }
+  if (UNTAG_Bool(REGB1)) {
+    goto label1;
+  }
+  /* toolcontext.nit:122 */
+  REGB1 = TAG_Bool(ATTR_toolcontext___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB1)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_messages", LOCATE_toolcontext, 122);
+  }
+  fra.me.REG[3] = ATTR_toolcontext___ToolContext____messages(fra.me.REG[0]);
+  fra.me.REG[2] = NEW_Message_toolcontext___Message___init(fra.me.REG[1], fra.me.REG[2]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
+  /* toolcontext.nit:123 */
+  REGB1 = TAG_Bool(ATTR_toolcontext___ToolContext____warning_count(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB1)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_warning_count", LOCATE_toolcontext, 123);
+  }
+  REGB1 = ATTR_toolcontext___ToolContext____warning_count(fra.me.REG[0]);
+  REGB0 = TAG_Int(1);
+  /* ../lib/standard/kernel.nit:235 */
+  REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
+  /* toolcontext.nit:123 */
+  ATTR_toolcontext___ToolContext____warning_count(fra.me.REG[0]) = REGB0;
+  /* toolcontext.nit:124 */
+  fra.me.REG[2] = CALL_toolcontext___ToolContext___opt_stop_on_first_error(fra.me.REG[0])(fra.me.REG[0]);
+  fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
+  if (UNTAG_Bool(fra.me.REG[2])) {
+    CALL_toolcontext___ToolContext___check_errors(fra.me.REG[0])(fra.me.REG[0]);
+  }
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return;
+}
+void toolcontext___ToolContext___info(val_t p0, val_t p1, val_t p2){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t REGB2;
+  val_t tmp;
+    static val_t once_value_1; /* Once value */
+    static val_t once_value_2; /* Once value */
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 127;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___info;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  REGB0 = p2;
+  /* toolcontext.nit:130 */
+  REGB1 = CALL_toolcontext___ToolContext___verbose_level(fra.me.REG[0])(fra.me.REG[0]);
+  REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
+  if (UNTAG_Bool(REGB2)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+  }
+  /* ../lib/standard/kernel.nit:231 */
+  REGB1 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1));
+  /* toolcontext.nit:130 */
+  if (UNTAG_Bool(REGB1)) {
+    /* toolcontext.nit:131 */
+    REGB1 = TAG_Int(3);
+    fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
+    if (!once_value_1) {
+      fra.me.REG[3] = BOX_NativeString("");
+      REGB1 = TAG_Int(0);
+      fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
+      once_value_1 = fra.me.REG[3];
+      register_static_object(&once_value_1);
+    } else fra.me.REG[3] = once_value_1;
+    fra.me.REG[3] = fra.me.REG[3];
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+    if (!once_value_2) {
+      fra.me.REG[1] = BOX_NativeString("");
+      REGB1 = TAG_Int(0);
+      fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB1);
+      once_value_2 = fra.me.REG[1];
+      register_static_object(&once_value_2);
+    } else fra.me.REG[1] = once_value_2;
+    fra.me.REG[1] = fra.me.REG[1];
+    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+    fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
+    CALL_standard___file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
+  }
+  stack_frame_head = fra.me.prev;
+  return;
+}
+val_t toolcontext___ToolContext___option_context(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 135;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___option_context;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:135 */
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____option_context(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_option_context", LOCATE_toolcontext, 135);
+  }
+  fra.me.REG[0] = ATTR_toolcontext___ToolContext____option_context(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t toolcontext___ToolContext___opt_warn(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 138;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___opt_warn;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:138 */
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_warn", LOCATE_toolcontext, 138);
+  }
+  fra.me.REG[0] = ATTR_toolcontext___ToolContext____opt_warn(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t toolcontext___ToolContext___opt_quiet(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 141;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___opt_quiet;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:141 */
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_quiet(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_quiet", LOCATE_toolcontext, 141);
+  }
+  fra.me.REG[0] = ATTR_toolcontext___ToolContext____opt_quiet(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t toolcontext___ToolContext___opt_log(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 144;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___opt_log;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:144 */
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_log(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_log", LOCATE_toolcontext, 144);
+  }
+  fra.me.REG[0] = ATTR_toolcontext___ToolContext____opt_log(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t toolcontext___ToolContext___opt_log_dir(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 147;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___opt_log_dir;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:147 */
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_log_dir(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_log_dir", LOCATE_toolcontext, 147);
+  }
+  fra.me.REG[0] = ATTR_toolcontext___ToolContext____opt_log_dir(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t toolcontext___ToolContext___opt_help(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 150;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___opt_help;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:150 */
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_help(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_help", LOCATE_toolcontext, 150);
+  }
+  fra.me.REG[0] = ATTR_toolcontext___ToolContext____opt_help(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t toolcontext___ToolContext___opt_version(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 153;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___opt_version;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:153 */
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_version(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_version", LOCATE_toolcontext, 153);
+  }
+  fra.me.REG[0] = ATTR_toolcontext___ToolContext____opt_version(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t toolcontext___ToolContext___opt_verbose(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 156;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___opt_verbose;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:156 */
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_verbose(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_verbose", LOCATE_toolcontext, 156);
+  }
+  fra.me.REG[0] = ATTR_toolcontext___ToolContext____opt_verbose(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t toolcontext___ToolContext___opt_stop_on_first_error(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 159;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___opt_stop_on_first_error;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:159 */
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_stop_on_first_error(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_stop_on_first_error", LOCATE_toolcontext, 159);
+  }
+  fra.me.REG[0] = ATTR_toolcontext___ToolContext____opt_stop_on_first_error(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t toolcontext___ToolContext___opt_no_color(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 162;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___opt_no_color;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:162 */
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_no_color(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_no_color", LOCATE_toolcontext, 162);
+  }
+  fra.me.REG[0] = ATTR_toolcontext___ToolContext____opt_no_color(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+val_t toolcontext___ToolContext___verbose_level(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 165;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___verbose_level;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:165 */
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____verbose_level(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_verbose_level", LOCATE_toolcontext, 165);
+  }
+  REGB0 = ATTR_toolcontext___ToolContext____verbose_level(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return REGB0;
+}
+void toolcontext___ToolContext___init(val_t p0, int* init_table){
+  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_toolcontext___ToolContext].i;
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t tmp;
+  if (init_table[itpos1]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 168;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:170 */
+  fra.me.REG[1] = CALL_toolcontext___ToolContext___option_context(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = TAG_Int(8);
+  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
+  fra.me.REG[3] = CALL_toolcontext___ToolContext___opt_warn(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[3] = CALL_toolcontext___ToolContext___opt_quiet(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[3] = CALL_toolcontext___ToolContext___opt_stop_on_first_error(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[3] = CALL_toolcontext___ToolContext___opt_no_color(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[3] = CALL_toolcontext___ToolContext___opt_log(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[3] = CALL_toolcontext___ToolContext___opt_log_dir(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[3] = CALL_toolcontext___ToolContext___opt_help(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[3] = CALL_toolcontext___ToolContext___opt_version(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  fra.me.REG[0] = CALL_toolcontext___ToolContext___opt_verbose(fra.me.REG[0])(fra.me.REG[0]);
+  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+  CALL_opts___OptionContext___add_option(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+  stack_frame_head = fra.me.prev;
+  init_table[itpos1] = 1;
+  return;
+}
+void toolcontext___ToolContext___process_options(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_toolcontext;
+  fra.me.line = 173;
+  fra.me.meth = LOCATE_toolcontext___ToolContext___process_options;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* toolcontext.nit:173 */
+  fra.me.REG[1] = fra.me.REG[0];
+  /* toolcontext.nit:176 */
+  fra.me.REG[2] = CALL_toolcontext___ToolContext___opt_warn(fra.me.REG[1])(fra.me.REG[1]);
+  REGB0 = TAG_Int(1);
+  CALL_opts___Option___value__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
+  /* toolcontext.nit:179 */
+  fra.me.REG[2] = CALL_toolcontext___ToolContext___option_context(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[3] = CALL_standard___string___Object___args(fra.me.REG[1])(fra.me.REG[1]);
+  CALL_opts___OptionContext___parse(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+  /* toolcontext.nit:182 */
+  fra.me.REG[3] = CALL_toolcontext___ToolContext___opt_verbose(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]);
+  ATTR_toolcontext___ToolContext____verbose_level(fra.me.REG[1]) = fra.me.REG[3];
+  /* toolcontext.nit:184 */
+  fra.me.REG[3] = CALL_toolcontext___ToolContext___opt_quiet(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]);
+  if (UNTAG_Bool(fra.me.REG[3])) {
+    fra.me.REG[3] = CALL_toolcontext___ToolContext___opt_warn(fra.me.REG[1])(fra.me.REG[1]);
+    REGB0 = TAG_Int(0);
+    CALL_opts___Option___value__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
+  }
+  /* toolcontext.nit:186 */
+  fra.me.REG[3] = CALL_toolcontext___ToolContext___opt_log_dir(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]);
+  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = TAG_Bool(false);
+      REGB0 = REGB1;
+    } else {
+      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+      REGB0 = REGB1;
+    }
+  }
+  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  if (UNTAG_Bool(REGB0)) {
+    fra.me.REG[3] = CALL_toolcontext___ToolContext___opt_log_dir(fra.me.REG[1])(fra.me.REG[1]);
+    fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]);
+    REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_standard___string___String, ID_standard___string___String)) /*cast String*/;
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      nit_abort("Cast failed", NULL, LOCATE_toolcontext, 186);
+    }
+    ATTR_toolcontext___ToolContext____log_directory(fra.me.REG[1]) = fra.me.REG[3];
+  }
+  /* toolcontext.nit:187 */
+  REGB0 = TAG_Bool(ATTR_toolcontext___ToolContext____opt_log(fra.me.REG[1])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_opt_log", LOCATE_toolcontext, 187);
+  }
+  fra.me.REG[3] = ATTR_toolcontext___ToolContext____opt_log(fra.me.REG[1]);
+  fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]);
+  if (UNTAG_Bool(fra.me.REG[3])) {
+    /* toolcontext.nit:189 */
+    fra.me.REG[1] = CALL_toolcontext___ToolContext___log_directory(fra.me.REG[1])(fra.me.REG[1]);
+    CALL_standard___file___String___mkdir(fra.me.REG[1])(fra.me.REG[1]);
+  }
+  stack_frame_head = fra.me.prev;
+  return;
+}
diff --git a/c_src/toolcontext._sep.h b/c_src/toolcontext._sep.h
new file mode 100644 (file)
index 0000000..4d128b7
--- /dev/null
@@ -0,0 +1,145 @@
+/* This C header file is generated by NIT to compile modules and programs that requires ./toolcontext. */
+#ifndef toolcontext_sep
+#define toolcontext_sep
+#include "opts._sep.h"
+#include "location._sep.h"
+#include <nit_common.h>
+
+extern const classtable_elt_t VFT_toolcontext___Message[];
+
+extern const classtable_elt_t VFT_toolcontext___ToolContext[];
+extern const char *LOCATE_toolcontext;
+extern const int SFT_toolcontext[];
+#define ID_toolcontext___Message (SFT_toolcontext[0])
+#define COLOR_toolcontext___Message (SFT_toolcontext[1])
+#define ATTR_toolcontext___Message____location(recv) ATTR(recv, (SFT_toolcontext[2] + 0))
+#define ATTR_toolcontext___Message____text(recv) ATTR(recv, (SFT_toolcontext[2] + 1))
+#define INIT_TABLE_POS_toolcontext___Message (SFT_toolcontext[3] + 0)
+#define CALL_toolcontext___Message___location(recv) ((toolcontext___Message___location_t)CALL((recv), (SFT_toolcontext[3] + 1)))
+#define CALL_toolcontext___Message___text(recv) ((toolcontext___Message___text_t)CALL((recv), (SFT_toolcontext[3] + 2)))
+#define CALL_toolcontext___Message___to_color_string(recv) ((toolcontext___Message___to_color_string_t)CALL((recv), (SFT_toolcontext[3] + 3)))
+#define CALL_toolcontext___Message___init(recv) ((toolcontext___Message___init_t)CALL((recv), (SFT_toolcontext[3] + 4)))
+#define ID_toolcontext___ToolContext (SFT_toolcontext[4])
+#define COLOR_toolcontext___ToolContext (SFT_toolcontext[5])
+#define ATTR_toolcontext___ToolContext____error_count(recv) ATTR(recv, (SFT_toolcontext[6] + 0))
+#define ATTR_toolcontext___ToolContext____warning_count(recv) ATTR(recv, (SFT_toolcontext[6] + 1))
+#define ATTR_toolcontext___ToolContext____log_directory(recv) ATTR(recv, (SFT_toolcontext[6] + 2))
+#define ATTR_toolcontext___ToolContext____messages(recv) ATTR(recv, (SFT_toolcontext[6] + 3))
+#define ATTR_toolcontext___ToolContext____message_sorter(recv) ATTR(recv, (SFT_toolcontext[6] + 4))
+#define ATTR_toolcontext___ToolContext____option_context(recv) ATTR(recv, (SFT_toolcontext[6] + 5))
+#define ATTR_toolcontext___ToolContext____opt_warn(recv) ATTR(recv, (SFT_toolcontext[6] + 6))
+#define ATTR_toolcontext___ToolContext____opt_quiet(recv) ATTR(recv, (SFT_toolcontext[6] + 7))
+#define ATTR_toolcontext___ToolContext____opt_log(recv) ATTR(recv, (SFT_toolcontext[6] + 8))
+#define ATTR_toolcontext___ToolContext____opt_log_dir(recv) ATTR(recv, (SFT_toolcontext[6] + 9))
+#define ATTR_toolcontext___ToolContext____opt_help(recv) ATTR(recv, (SFT_toolcontext[6] + 10))
+#define ATTR_toolcontext___ToolContext____opt_version(recv) ATTR(recv, (SFT_toolcontext[6] + 11))
+#define ATTR_toolcontext___ToolContext____opt_verbose(recv) ATTR(recv, (SFT_toolcontext[6] + 12))
+#define ATTR_toolcontext___ToolContext____opt_stop_on_first_error(recv) ATTR(recv, (SFT_toolcontext[6] + 13))
+#define ATTR_toolcontext___ToolContext____opt_no_color(recv) ATTR(recv, (SFT_toolcontext[6] + 14))
+#define ATTR_toolcontext___ToolContext____verbose_level(recv) ATTR(recv, (SFT_toolcontext[6] + 15))
+#define INIT_TABLE_POS_toolcontext___ToolContext (SFT_toolcontext[7] + 0)
+#define CALL_toolcontext___ToolContext___error_count(recv) ((toolcontext___ToolContext___error_count_t)CALL((recv), (SFT_toolcontext[7] + 1)))
+#define CALL_toolcontext___ToolContext___warning_count(recv) ((toolcontext___ToolContext___warning_count_t)CALL((recv), (SFT_toolcontext[7] + 2)))
+#define CALL_toolcontext___ToolContext___log_directory(recv) ((toolcontext___ToolContext___log_directory_t)CALL((recv), (SFT_toolcontext[7] + 3)))
+#define CALL_toolcontext___ToolContext___check_errors(recv) ((toolcontext___ToolContext___check_errors_t)CALL((recv), (SFT_toolcontext[7] + 4)))
+#define CALL_toolcontext___ToolContext___error(recv) ((toolcontext___ToolContext___error_t)CALL((recv), (SFT_toolcontext[7] + 5)))
+#define CALL_toolcontext___ToolContext___fatal_error(recv) ((toolcontext___ToolContext___fatal_error_t)CALL((recv), (SFT_toolcontext[7] + 6)))
+#define CALL_toolcontext___ToolContext___warning(recv) ((toolcontext___ToolContext___warning_t)CALL((recv), (SFT_toolcontext[7] + 7)))
+#define CALL_toolcontext___ToolContext___info(recv) ((toolcontext___ToolContext___info_t)CALL((recv), (SFT_toolcontext[7] + 8)))
+#define CALL_toolcontext___ToolContext___option_context(recv) ((toolcontext___ToolContext___option_context_t)CALL((recv), (SFT_toolcontext[7] + 9)))
+#define CALL_toolcontext___ToolContext___opt_warn(recv) ((toolcontext___ToolContext___opt_warn_t)CALL((recv), (SFT_toolcontext[7] + 10)))
+#define CALL_toolcontext___ToolContext___opt_quiet(recv) ((toolcontext___ToolContext___opt_quiet_t)CALL((recv), (SFT_toolcontext[7] + 11)))
+#define CALL_toolcontext___ToolContext___opt_log(recv) ((toolcontext___ToolContext___opt_log_t)CALL((recv), (SFT_toolcontext[7] + 12)))
+#define CALL_toolcontext___ToolContext___opt_log_dir(recv) ((toolcontext___ToolContext___opt_log_dir_t)CALL((recv), (SFT_toolcontext[7] + 13)))
+#define CALL_toolcontext___ToolContext___opt_help(recv) ((toolcontext___ToolContext___opt_help_t)CALL((recv), (SFT_toolcontext[7] + 14)))
+#define CALL_toolcontext___ToolContext___opt_version(recv) ((toolcontext___ToolContext___opt_version_t)CALL((recv), (SFT_toolcontext[7] + 15)))
+#define CALL_toolcontext___ToolContext___opt_verbose(recv) ((toolcontext___ToolContext___opt_verbose_t)CALL((recv), (SFT_toolcontext[7] + 16)))
+#define CALL_toolcontext___ToolContext___opt_stop_on_first_error(recv) ((toolcontext___ToolContext___opt_stop_on_first_error_t)CALL((recv), (SFT_toolcontext[7] + 17)))
+#define CALL_toolcontext___ToolContext___opt_no_color(recv) ((toolcontext___ToolContext___opt_no_color_t)CALL((recv), (SFT_toolcontext[7] + 18)))
+#define CALL_toolcontext___ToolContext___verbose_level(recv) ((toolcontext___ToolContext___verbose_level_t)CALL((recv), (SFT_toolcontext[7] + 19)))
+#define CALL_toolcontext___ToolContext___init(recv) ((toolcontext___ToolContext___init_t)CALL((recv), (SFT_toolcontext[7] + 20)))
+#define CALL_toolcontext___ToolContext___process_options(recv) ((toolcontext___ToolContext___process_options_t)CALL((recv), (SFT_toolcontext[7] + 21)))
+static const char * const LOCATE_toolcontext___Message___location = "toolcontext::Message::location";
+val_t toolcontext___Message___location(val_t p0);
+typedef val_t (*toolcontext___Message___location_t)(val_t p0);
+static const char * const LOCATE_toolcontext___Message___text = "toolcontext::Message::text";
+val_t toolcontext___Message___text(val_t p0);
+typedef val_t (*toolcontext___Message___text_t)(val_t p0);
+static const char * const LOCATE_toolcontext___Message_____l = "toolcontext::Message::(kernel::Comparable::<)";
+val_t toolcontext___Message_____l(val_t p0, val_t p1);
+typedef val_t (*toolcontext___Message_____l_t)(val_t p0, val_t p1);
+static const char * const LOCATE_toolcontext___Message___to_s = "toolcontext::Message::(string::Object::to_s)";
+val_t toolcontext___Message___to_s(val_t p0);
+typedef val_t (*toolcontext___Message___to_s_t)(val_t p0);
+static const char * const LOCATE_toolcontext___Message___to_color_string = "toolcontext::Message::to_color_string";
+val_t toolcontext___Message___to_color_string(val_t p0);
+typedef val_t (*toolcontext___Message___to_color_string_t)(val_t p0);
+static const char * const LOCATE_toolcontext___Message___init = "toolcontext::Message::init";
+void toolcontext___Message___init(val_t p0, val_t p1, val_t p2, int* init_table);
+typedef void (*toolcontext___Message___init_t)(val_t p0, val_t p1, val_t p2, int* init_table);
+val_t NEW_Message_toolcontext___Message___init(val_t p0, val_t p1);
+static const char * const LOCATE_toolcontext___ToolContext___error_count = "toolcontext::ToolContext::error_count";
+val_t toolcontext___ToolContext___error_count(val_t p0);
+typedef val_t (*toolcontext___ToolContext___error_count_t)(val_t p0);
+static const char * const LOCATE_toolcontext___ToolContext___warning_count = "toolcontext::ToolContext::warning_count";
+val_t toolcontext___ToolContext___warning_count(val_t p0);
+typedef val_t (*toolcontext___ToolContext___warning_count_t)(val_t p0);
+static const char * const LOCATE_toolcontext___ToolContext___log_directory = "toolcontext::ToolContext::log_directory";
+val_t toolcontext___ToolContext___log_directory(val_t p0);
+typedef val_t (*toolcontext___ToolContext___log_directory_t)(val_t p0);
+static const char * const LOCATE_toolcontext___ToolContext___check_errors = "toolcontext::ToolContext::check_errors";
+void toolcontext___ToolContext___check_errors(val_t p0);
+typedef void (*toolcontext___ToolContext___check_errors_t)(val_t p0);
+static const char * const LOCATE_toolcontext___ToolContext___error = "toolcontext::ToolContext::error";
+void toolcontext___ToolContext___error(val_t p0, val_t p1, val_t p2);
+typedef void (*toolcontext___ToolContext___error_t)(val_t p0, val_t p1, val_t p2);
+static const char * const LOCATE_toolcontext___ToolContext___fatal_error = "toolcontext::ToolContext::fatal_error";
+void toolcontext___ToolContext___fatal_error(val_t p0, val_t p1, val_t p2);
+typedef void (*toolcontext___ToolContext___fatal_error_t)(val_t p0, val_t p1, val_t p2);
+static const char * const LOCATE_toolcontext___ToolContext___warning = "toolcontext::ToolContext::warning";
+void toolcontext___ToolContext___warning(val_t p0, val_t p1, val_t p2);
+typedef void (*toolcontext___ToolContext___warning_t)(val_t p0, val_t p1, val_t p2);
+static const char * const LOCATE_toolcontext___ToolContext___info = "toolcontext::ToolContext::info";
+void toolcontext___ToolContext___info(val_t p0, val_t p1, val_t p2);
+typedef void (*toolcontext___ToolContext___info_t)(val_t p0, val_t p1, val_t p2);
+static const char * const LOCATE_toolcontext___ToolContext___option_context = "toolcontext::ToolContext::option_context";
+val_t toolcontext___ToolContext___option_context(val_t p0);
+typedef val_t (*toolcontext___ToolContext___option_context_t)(val_t p0);
+static const char * const LOCATE_toolcontext___ToolContext___opt_warn = "toolcontext::ToolContext::opt_warn";
+val_t toolcontext___ToolContext___opt_warn(val_t p0);
+typedef val_t (*toolcontext___ToolContext___opt_warn_t)(val_t p0);
+static const char * const LOCATE_toolcontext___ToolContext___opt_quiet = "toolcontext::ToolContext::opt_quiet";
+val_t toolcontext___ToolContext___opt_quiet(val_t p0);
+typedef val_t (*toolcontext___ToolContext___opt_quiet_t)(val_t p0);
+static const char * const LOCATE_toolcontext___ToolContext___opt_log = "toolcontext::ToolContext::opt_log";
+val_t toolcontext___ToolContext___opt_log(val_t p0);
+typedef val_t (*toolcontext___ToolContext___opt_log_t)(val_t p0);
+static const char * const LOCATE_toolcontext___ToolContext___opt_log_dir = "toolcontext::ToolContext::opt_log_dir";
+val_t toolcontext___ToolContext___opt_log_dir(val_t p0);
+typedef val_t (*toolcontext___ToolContext___opt_log_dir_t)(val_t p0);
+static const char * const LOCATE_toolcontext___ToolContext___opt_help = "toolcontext::ToolContext::opt_help";
+val_t toolcontext___ToolContext___opt_help(val_t p0);
+typedef val_t (*toolcontext___ToolContext___opt_help_t)(val_t p0);
+static const char * const LOCATE_toolcontext___ToolContext___opt_version = "toolcontext::ToolContext::opt_version";
+val_t toolcontext___ToolContext___opt_version(val_t p0);
+typedef val_t (*toolcontext___ToolContext___opt_version_t)(val_t p0);
+static const char * const LOCATE_toolcontext___ToolContext___opt_verbose = "toolcontext::ToolContext::opt_verbose";
+val_t toolcontext___ToolContext___opt_verbose(val_t p0);
+typedef val_t (*toolcontext___ToolContext___opt_verbose_t)(val_t p0);
+static const char * const LOCATE_toolcontext___ToolContext___opt_stop_on_first_error = "toolcontext::ToolContext::opt_stop_on_first_error";
+val_t toolcontext___ToolContext___opt_stop_on_first_error(val_t p0);
+typedef val_t (*toolcontext___ToolContext___opt_stop_on_first_error_t)(val_t p0);
+static const char * const LOCATE_toolcontext___ToolContext___opt_no_color = "toolcontext::ToolContext::opt_no_color";
+val_t toolcontext___ToolContext___opt_no_color(val_t p0);
+typedef val_t (*toolcontext___ToolContext___opt_no_color_t)(val_t p0);
+static const char * const LOCATE_toolcontext___ToolContext___verbose_level = "toolcontext::ToolContext::verbose_level";
+val_t toolcontext___ToolContext___verbose_level(val_t p0);
+typedef val_t (*toolcontext___ToolContext___verbose_level_t)(val_t p0);
+static const char * const LOCATE_toolcontext___ToolContext___init = "toolcontext::ToolContext::init";
+void toolcontext___ToolContext___init(val_t p0, int* init_table);
+typedef void (*toolcontext___ToolContext___init_t)(val_t p0, int* init_table);
+val_t NEW_ToolContext_toolcontext___ToolContext___init();
+static const char * const LOCATE_toolcontext___ToolContext___process_options = "toolcontext::ToolContext::process_options";
+void toolcontext___ToolContext___process_options(val_t p0);
+typedef void (*toolcontext___ToolContext___process_options_t)(val_t p0);
+#endif
index fa15ea9..1f2cd28 100644 (file)
@@ -23,36 +23,36 @@ val_t utils___Object___cmangle(val_t p0, val_t p1){
   fra.me.REG[6] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./utils.nit:21 */
+  /* utils.nit:21 */
   fra.me.REG[2] = fra.me.REG[0];
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[Symbol]*/;
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_utils, 21);
   }
-  /* ./utils.nit:24 */
+  /* utils.nit:24 */
   if (!once_value_1) {
     fra.me.REG[2] = CALL_utils___Object___cmangle_table(fra.me.REG[2])(fra.me.REG[2]);
     once_value_1 = fra.me.REG[2];
     register_static_object(&once_value_1);
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
-  /* ./utils.nit:25 */
+  /* utils.nit:25 */
   fra.me.REG[0] = NEW_Buffer_standard___string___Buffer___init();
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:269 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:271 */
   fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:272 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -64,53 +64,53 @@ val_t utils___Object___cmangle(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:232 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:273 */
       REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:718 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
-      /* ./utils.nit:27 */
+      /* utils.nit:27 */
       REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
       REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
       if (UNTAG_Bool(REGB1)) {
-        /* ./utils.nit:28 */
+        /* utils.nit:28 */
         REGB1 = TAG_Char('_');
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], REGB1);
-        /* ./utils.nit:29 */
+        /* utils.nit:29 */
         REGB1 = TAG_Char('_');
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], REGB1);
-        /* ./utils.nit:30 */
+        /* utils.nit:30 */
         REGB1 = TAG_Char('_');
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], REGB1);
       }
-      /* ./utils.nit:32 */
+      /* utils.nit:32 */
       REGB1 = TAG_Bool(false);
       fra.me.REG[5] = REGB1;
-      /* ./utils.nit:33 */
+      /* utils.nit:33 */
       REGB1 = TAG_Bool(true);
       fra.me.REG[6] = REGB1;
-      /* ./utils.nit:34 */
+      /* utils.nit:34 */
       fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
       CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_utils___Object___cmangle_2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:272 */
       goto label3;
     }
   }
   label3: while(0);
-  /* ./utils.nit:55 */
+  /* utils.nit:55 */
   fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
   goto label4;
   label4: while(0);
@@ -124,7 +124,7 @@ val_t utils___Object___cmangle(val_t p0, val_t p1){
         val_t REGB2;
         val_t REGB3;
         val_t tmp;
-        /* ./utils.nit:35 */
+        /* utils.nit:35 */
         fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
         fra.me.file = LOCATE_utils;
         fra.me.line = 0;
@@ -135,16 +135,16 @@ val_t utils___Object___cmangle(val_t p0, val_t p1){
         fra.me.REG[0] = NIT_NULL;
         fra.me.REG[0] = p0;
         REGB0 = fra.me.REG[0];
-        /* ./utils.nit:36 */
+        /* utils.nit:36 */
         REGB1 = TAG_Char('a');
         REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB2)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ./../lib/standard//kernel.nit:384 */
+        /* ../lib/standard/kernel.nit:384 */
         REGB1 = TAG_Bool(UNTAG_Char(REGB0)>=UNTAG_Char(REGB1));
-        /* ./utils.nit:36 */
+        /* utils.nit:36 */
         if (UNTAG_Bool(REGB1)) {
           REGB1 = TAG_Char('z');
           REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -152,10 +152,10 @@ val_t utils___Object___cmangle(val_t p0, val_t p1){
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:382 */
+          /* ../lib/standard/kernel.nit:382 */
           REGB1 = TAG_Bool(UNTAG_Char(REGB0)<=UNTAG_Char(REGB1));
         } else {
-          /* ./utils.nit:36 */
+          /* utils.nit:36 */
           REGB2 = TAG_Bool(false);
           REGB1 = REGB2;
         }
@@ -168,9 +168,9 @@ val_t utils___Object___cmangle(val_t p0, val_t p1){
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:384 */
+          /* ../lib/standard/kernel.nit:384 */
           REGB2 = TAG_Bool(UNTAG_Char(REGB0)>=UNTAG_Char(REGB2));
-          /* ./utils.nit:36 */
+          /* utils.nit:36 */
           if (UNTAG_Bool(REGB2)) {
             REGB2 = TAG_Char('Z');
             REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -178,10 +178,10 @@ val_t utils___Object___cmangle(val_t p0, val_t p1){
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:382 */
+            /* ../lib/standard/kernel.nit:382 */
             REGB2 = TAG_Bool(UNTAG_Char(REGB0)<=UNTAG_Char(REGB2));
           } else {
-            /* ./utils.nit:36 */
+            /* utils.nit:36 */
             REGB3 = TAG_Bool(false);
             REGB2 = REGB3;
           }
@@ -196,9 +196,9 @@ val_t utils___Object___cmangle(val_t p0, val_t p1){
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:384 */
+          /* ../lib/standard/kernel.nit:384 */
           REGB2 = TAG_Bool(UNTAG_Char(REGB0)>=UNTAG_Char(REGB2));
-          /* ./utils.nit:36 */
+          /* utils.nit:36 */
           if (UNTAG_Bool(REGB2)) {
             REGB2 = TAG_Char('9');
             REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -206,33 +206,33 @@ val_t utils___Object___cmangle(val_t p0, val_t p1){
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ./../lib/standard//kernel.nit:382 */
+            /* ../lib/standard/kernel.nit:382 */
             REGB2 = TAG_Bool(UNTAG_Char(REGB0)<=UNTAG_Char(REGB2));
           } else {
-            /* ./utils.nit:36 */
+            /* utils.nit:36 */
             REGB3 = TAG_Bool(false);
             REGB2 = REGB3;
           }
           REGB1 = REGB2;
         }
         if (UNTAG_Bool(REGB1)) {
-          /* ./utils.nit:37 */
+          /* utils.nit:37 */
           CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[0])(closctx->REG[0], REGB0);
-          /* ./utils.nit:38 */
+          /* utils.nit:38 */
           REGB1 = TAG_Bool(false);
           closctx->REG[5] = REGB1;
-          /* ./utils.nit:39 */
+          /* utils.nit:39 */
           REGB1 = TAG_Bool(true);
           closctx->REG[6] = REGB1;
         } else {
-          /* ./utils.nit:40 */
+          /* utils.nit:40 */
           REGB1 = TAG_Char('_');
           REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
           if (UNTAG_Bool(REGB2)) {
           } else {
-            /* ./../lib/standard//kernel.nit:378 */
+            /* ../lib/standard/kernel.nit:378 */
             REGB1 = TAG_Bool((REGB0)==(REGB1));
-            /* ./utils.nit:40 */
+            /* utils.nit:40 */
             REGB2 = REGB1;
           }
           if (UNTAG_Bool(REGB2)) {
@@ -242,34 +242,34 @@ val_t utils___Object___cmangle(val_t p0, val_t p1){
             REGB2 = REGB1;
           }
           if (UNTAG_Bool(REGB2)) {
-            /* ./utils.nit:41 */
+            /* utils.nit:41 */
             CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[0])(closctx->REG[0], REGB0);
-            /* ./utils.nit:42 */
+            /* utils.nit:42 */
             REGB2 = TAG_Bool(true);
             closctx->REG[5] = REGB2;
-            /* ./utils.nit:43 */
+            /* utils.nit:43 */
             REGB2 = TAG_Bool(true);
             closctx->REG[6] = REGB2;
           } else {
-            /* ./utils.nit:44 */
+            /* utils.nit:44 */
             REGB2 = CALL_standard___collection___abstract_collection___MapRead___has_key(closctx->REG[2])(closctx->REG[2], REGB0);
             if (UNTAG_Bool(REGB2)) {
-              /* ./utils.nit:45 */
+              /* utils.nit:45 */
               if (UNTAG_Bool(closctx->REG[6])) {
-               /* ./utils.nit:46 */
+               /* utils.nit:46 */
                REGB2 = TAG_Char('_');
                CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[0])(closctx->REG[0], REGB2);
-               /* ./utils.nit:47 */
+               /* utils.nit:47 */
                REGB2 = TAG_Char('_');
                CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[0])(closctx->REG[0], REGB2);
               }
-              /* ./utils.nit:49 */
+              /* utils.nit:49 */
               fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(closctx->REG[2])(closctx->REG[2], REGB0);
               CALL_standard___collection___abstract_collection___Sequence___append(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
-              /* ./utils.nit:50 */
+              /* utils.nit:50 */
               REGB0 = TAG_Bool(false);
               closctx->REG[6] = REGB0;
-              /* ./utils.nit:51 */
+              /* utils.nit:51 */
               REGB0 = TAG_Bool(false);
               closctx->REG[5] = REGB0;
             }
@@ -305,9 +305,9 @@ val_t utils___Object___cmangle_table(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./utils.nit:61 */
+  /* utils.nit:61 */
   fra.me.REG[0] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
-  /* ./utils.nit:62 */
+  /* utils.nit:62 */
   REGB0 = TAG_Char('+');
   if (!once_value_1) {
     fra.me.REG[1] = BOX_NativeString("plus");
@@ -318,7 +318,7 @@ val_t utils___Object___cmangle_table(val_t p0){
   } else fra.me.REG[1] = once_value_1;
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
-  /* ./utils.nit:63 */
+  /* utils.nit:63 */
   REGB0 = TAG_Char('-');
   if (!once_value_2) {
     fra.me.REG[1] = BOX_NativeString("minus");
@@ -329,7 +329,7 @@ val_t utils___Object___cmangle_table(val_t p0){
   } else fra.me.REG[1] = once_value_2;
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
-  /* ./utils.nit:64 */
+  /* utils.nit:64 */
   REGB0 = TAG_Char('*');
   if (!once_value_3) {
     fra.me.REG[1] = BOX_NativeString("star");
@@ -340,7 +340,7 @@ val_t utils___Object___cmangle_table(val_t p0){
   } else fra.me.REG[1] = once_value_3;
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
-  /* ./utils.nit:65 */
+  /* utils.nit:65 */
   REGB0 = TAG_Char('/');
   if (!once_value_4) {
     fra.me.REG[1] = BOX_NativeString("slash");
@@ -351,7 +351,7 @@ val_t utils___Object___cmangle_table(val_t p0){
   } else fra.me.REG[1] = once_value_4;
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
-  /* ./utils.nit:66 */
+  /* utils.nit:66 */
   REGB0 = TAG_Char('%');
   if (!once_value_5) {
     fra.me.REG[1] = BOX_NativeString("percent");
@@ -362,7 +362,7 @@ val_t utils___Object___cmangle_table(val_t p0){
   } else fra.me.REG[1] = once_value_5;
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
-  /* ./utils.nit:67 */
+  /* utils.nit:67 */
   REGB0 = TAG_Char('[');
   if (!once_value_6) {
     fra.me.REG[1] = BOX_NativeString("bra");
@@ -373,7 +373,7 @@ val_t utils___Object___cmangle_table(val_t p0){
   } else fra.me.REG[1] = once_value_6;
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
-  /* ./utils.nit:68 */
+  /* utils.nit:68 */
   REGB0 = TAG_Char('=');
   if (!once_value_7) {
     fra.me.REG[1] = BOX_NativeString("eq");
@@ -384,7 +384,7 @@ val_t utils___Object___cmangle_table(val_t p0){
   } else fra.me.REG[1] = once_value_7;
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
-  /* ./utils.nit:69 */
+  /* utils.nit:69 */
   REGB0 = TAG_Char('<');
   if (!once_value_8) {
     fra.me.REG[1] = BOX_NativeString("l");
@@ -395,7 +395,7 @@ val_t utils___Object___cmangle_table(val_t p0){
   } else fra.me.REG[1] = once_value_8;
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
-  /* ./utils.nit:70 */
+  /* utils.nit:70 */
   REGB0 = TAG_Char('>');
   if (!once_value_9) {
     fra.me.REG[1] = BOX_NativeString("g");
@@ -406,7 +406,7 @@ val_t utils___Object___cmangle_table(val_t p0){
   } else fra.me.REG[1] = once_value_9;
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
-  /* ./utils.nit:71 */
+  /* utils.nit:71 */
   REGB0 = TAG_Char('!');
   if (!once_value_10) {
     fra.me.REG[1] = BOX_NativeString("n");
@@ -417,7 +417,7 @@ val_t utils___Object___cmangle_table(val_t p0){
   } else fra.me.REG[1] = once_value_10;
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
-  /* ./utils.nit:72 */
+  /* utils.nit:72 */
   REGB0 = TAG_Char('_');
   if (!once_value_11) {
     fra.me.REG[1] = BOX_NativeString("u");
@@ -428,7 +428,7 @@ val_t utils___Object___cmangle_table(val_t p0){
   } else fra.me.REG[1] = once_value_11;
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
-  /* ./utils.nit:73 */
+  /* utils.nit:73 */
   REGB0 = TAG_Char('@');
   if (!once_value_12) {
     fra.me.REG[1] = BOX_NativeString("at");
@@ -439,7 +439,7 @@ val_t utils___Object___cmangle_table(val_t p0){
   } else fra.me.REG[1] = once_value_12;
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
-  /* ./utils.nit:74 */
+  /* utils.nit:74 */
   goto label13;
   label13: while(0);
   stack_frame_head = fra.me.prev;